{"version":3,"file":"src_app_modules_site_site_module_ts.js","mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uDAAY;AAC7C,gCAAgC,uDAAY;AAC5C,oCAAoC,uDAAY;AAChD,qCAAqC,uDAAY;AACjD,yCAAyC,uDAAY;AACrD,6BAA6B,uDAAY;AACzC,2BAA2B,uDAAY;AACvC,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,iCAAiC;AACjC;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA,sBAAsB;AACtB,2BAA2B;AAC3B;AACA;AACA;AACA,sBAAsB;AACtB,2BAA2B;AAC3B;AACA;AACA;AACA,0BAA0B;AAC1B,+BAA+B;AAC/B,yBAAyB;AACzB,8BAA8B;AAC9B,yBAAyB;AACzB,8BAA8B;AAC9B,uBAAuB;AACvB,4BAA4B;AAC5B,yBAAyB;AACzB,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,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,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,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,4EAA4E,KAAK;AACjF;AACA;AACA,4EAA4E,KAAK;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,oBAAoB;AAChH,6FAA6F,oBAAoB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,oBAAoB;AACjH;AACA;AACA;AACA;AACA;AACA,4FAA4F,oBAAoB;AAChH;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT;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,wBAAwB,oBAAoB;AAC5C;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,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;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,qDAAU,GAAG,+DAAwB,CAAC,oDAAS,GAAG,+DAAwB,CAAC,qDAAQ;AACvN,yCAAyC,+DAAwB,GAAG,0IAA0I;AAC9M,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QA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AACxF,sCAAsC,8DAAuB,GAAG;AAChE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,qBAAqB,uHAAuH,IAAI;;AAE3O;AACA;AACA;;AAEA;AACA;AACA;;AAE0E;;;;;;;;;;;;;AC/yB7D;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,gCAAgC,mBAAO,CAAC,2CAAgC;AACxE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uBAAuB;;;;;;;;;;;;ACtDV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,mBAAO,CAAC,kCAAuB;AACtD,qBAAqB,mBAAO,CAAC,gCAAqB;AAClD,mBAAmB,mBAAO,CAAC,gCAAqB;AAChD,aAAa,mBAAO,CAAC,wBAAa;AAClC,eAAe,mBAAO,CAAC,qBAAU;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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB,mBAAmB,qBAAqB,gBAAgB,wBAAwB;AAC9I,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,qBAAU;AACjC,wBAAwB,mBAAO,CAAC,mCAAwB;AACxD,aAAa;AACb;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;AChBa;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,yBAAc;AACzC,mBAAmB,mBAAO,CAAC,wBAAc;AACzC,qBAAqB,mBAAO,CAAC,0BAAgB;AAC7C,gCAAgC,mBAAO,CAAC,2CAAgC;AACxE,4BAA4B,mBAAO,CAAC,kCAAuB;AAC3D,qBAAqB,mBAAO,CAAC,4CAAiC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,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,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB;;;;;;;;;;;;ACzKX;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,mBAAO,CAAC,0BAAgB;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,CAAC;AACD,2BAA2B;;;;;;;;;;;;AC3Cd;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C,iBAAiB,mBAAO,CAAC,uBAAY;AACrC,qBAAqB,mBAAO,CAAC,0BAAgB;AAC7C,qBAAqB,mBAAO,CAAC,4CAAiC;AAC9D,eAAe,mBAAO,CAAC,qBAAU;AACjC,wBAAwB,mBAAO,CAAC,mCAAwB;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,sEAAsE;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,CAAC;AACD,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,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,CAAC;AACD,sBAAsB;;;;;;;;;;;;ACpPT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,2BAAgB;AACxC,iBAAiB,mBAAO,CAAC,4BAAiB;AAC1C,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C,4BAA4B,mBAAO,CAAC,uCAA4B;AAChE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAC;AACD,oBAAoB;AACpB;AACA,gDAAgD,oGAAoG;AACpJ;;;;;;;;;;;;AC3Ia;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;;;;;;;;;;;AClBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,kBAAkB,6EAA6E;;;;;;;;;;;;ACFpG;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB;AACA;AACA;AACA,CAAC;AACD,sBAAsB;;;;;;;;;;;;ACPT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+BAA+B;;;;;;;;;;;;ACZlB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,yGAAyG,uCAAuC;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2BAA2B;;;;;;;;;;;;ACdd;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,yBAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;;;;;;;;;;;AClBT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,6BAA6B,YAAY;AACzC;AACA,uBAAuB;;;;;;;;;;;;ACLV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACLH;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,kBAAkB,wCAAwC,2CAA2C,IAAI;;;;;;;;;;;;ACF3G;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA,kBAAkB;;;;;;;;;;;;ACLL;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACLH;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,mBAAO,CAAC,uBAAY;AACrC;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA,qBAAqB;;;;;;;;;;;;ACtBR;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,yBAAe;AAC1C,qBAAqB,mBAAO,CAAC,mCAAwB;AACrD,iBAAiB,mBAAO,CAAC,wBAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;;;;;;;;;;;;;;;;;ACkDnB,CAAC;AAUF,IAAY,UAOX;AAPD,WAAY,UAAU;IACrB,2BAAa;IACb,2BAAa;IACb,2BAAa;IACb,2BAAa;IACb,2BAAa;IACb,2BAAa;AACd,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC7B,iEAAW;IACX,6EAAiB;AAClB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,6CAAW;IACX,mDAAc;AACf,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/FmE;AAEb;AAES;;;;;;;;;;;;ICkD5D,wEAAoC;IACnC,0EAAyE;IAAvB,wTAAmB,CAAC,KAAE;IACvE,4EAAqI;IACpI,yEAAyB;IAAA,mEAAQ;IAAA,4DAAM;IACvC,yEAAyB;IACxB,qEAA8G;IAC/G,4DAAM;IACP,4DAAQ;IACT,4DAAM;IACP,qEAAe;;;;IAPN,0DAAkH;IAAlH,2QAAkH;;;IAiD5H,wEAAmC;IAClC,wFAA0D;IAC3D,qEAAe;;AD9FX,MAAM,kBAAkB;IAuB9B,iEAAiE;IAEjE,kBAAkB;IAClB,oDAAoD;IACpD,qDAAqD;IAErD,mDAAmD;IACnD,wBAAwB;IAGxB,YACQ,WAAwB;;QAAxB,gBAAW,GAAX,WAAW,CAAa;QA9BhC,WAAM,GAAQ,EAAE,CAAC;QAEjB,cAAS,GAAQ,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,CAAC;QACvC,gBAAW,GAAM,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;QACxC,iBAAY,GAAK,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC;QACzC,kBAAa,GAAI,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,aAAa,EAAC,CAAC,CAAC;QAEvC,UAAK,GAAG,iEAAU,CAAC;QAC1B,YAAO,GAAG,CAAC,CAAC;QAIZ,iBAAY,GAAG,KAAK,CAAC;QAErB,cAAS,GAAG,EAAE,CAAC;QAkBd,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,aAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,KAAK,EAAC;gBAC7B,GAAG,GAAG,KAAK,CAAC;aACZ;SACD;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,0EAAe,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,8DAA8D;IAC9D,yDAAyD;IACzD,mDAAmD;IACnD,MAAM;IAEN,QAAQ;QACP,IAAI,CAAC,OAAO;aACX,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YAEnB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAEjD,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YAE1B,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAE3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAC,eAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,MAAM,KAAI,IAAI,IAAC,CAAC;YAE/D,YAAY;YAEZ,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAInD,CAAC,CAAC,CAAC;QAEH,wBAAwB;QAExB,IAAI,CAAC,MAAM,GAAG;YACb;gBACC,KAAK,EAAE,iBAAiB;gBACxB,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,gBAAgB;gBACtB,GAAG,EAAE,yHAAyH;aAC9H;YACD;gBACC,KAAK,EAAE,iBAAiB;gBACxB,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,gBAAgB;gBACtB,GAAG,EAAE,yHAAyH;aAC9H;YACD;gBACC,KAAK,EAAE,iBAAiB;gBACxB,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,gBAAgB;gBACtB,GAAG,EAAE,yHAAyH;aAC9H;SACD,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,qDAAS,CAAC;YAElC,IAAI,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAC,CAAC,+DAAmB,CAAC,CAAC;YAC/C,KAAK,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAC,CAAC,+DAAmB,CAAC,CAAC;YAChD,MAAM,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAC,CAAC,+DAAmB,CAAC,CAAC;YACjD,OAAO,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAC,CAAC,+DAAmB,CAAC,CAAC;YAClD,WAAW,EAAE,IAAI,uDAAW,CAAC,GAAG,CAAC;SACjC,CAAC,CAAC;IACJ,CAAC;IAID,SAAS,CAAC,EAAE;QACX,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEjD,IAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAC;YACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,OAAO;SACP;QAED,IAAI,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QAE9B,IAAG,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,EAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,OAAO;SACP;IAGF,CAAC;IAED,UAAU,CAAC,EAAE;QACZ,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAI,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QAC9B,OAAO,KAAK,CAAC;IACd,CAAC;;oFAzIW,kBAAkB;gHAAlB,kBAAkB;QCG/B,6EAA0E;QACzE,yEAAwB;QAEvB,yEAAkB;QACjB,qEAAiC;QACjC,yEAAsB;QAGrB,yEAAyE;QAAxB,uIAAS,cAAU,CAAC,CAAC,IAAC;QACtE,2EAAqI;QACpI,yEAAyB;QAAA,8EAAc;QAAA,4DAAM;QAC7C,yEAAyB;QACxB,qEAA8G;QAC/G,4DAAM;QACP,4DAAQ;QACT,4DAAM;QAGN,2EAAwE;QAAvB,wIAAS,cAAU,CAAC,CAAC,IAAC;QACtE,6EAAqI;QACpI,0EAAyB;QAAA,oFAAwB;QAAA,4DAAM;QACvD,0EAAyB;QACxB,sEAA8G;QAC/G,4DAAM;QACP,4DAAQ;QACT,4DAAM;QAGN,2EAAwE;QAAvB,wIAAS,cAAU,CAAC,CAAC,IAAC;QACtE,6EAAmI;QAClI,0EAAyB;QAAA,0EAAc;QAAA,4DAAM;QAC7C,0EAAyB;QACxB,sEAA8G;QAC/G,4DAAM;QACP,4DAAQ;QACT,4DAAM;QAGN,mIASe;QAIf,2EAAwE;QAAvB,wIAAS,cAAU,CAAC,CAAC,IAAC;QACtE,6EAAqI;QACpI,0EAAyB;QAAA,wDAAiD;QAAA,4DAAM;QAChF,0EAAyB;QACxB,sEAA8G;QAC/G,4DAAM;QACP,4DAAQ;QACT,4DAAM;QAGN,sEAA0B;QAE3B,4DAAM;QACP,4DAAM;QACP,4DAAM;QAEN,qFAAuG;QACtG,mFAAmC;QAClC,yEAAe;QACd,8EAA+C;QAChD,qEAAe;QAChB,4DAAU;QACV,+EAAwB;QACvB,yEAAe;QACd,8EAA+C;QAChD,qEAAe;QAChB,4DAAU;QACV,+EAAuB;QAErB,+EAAiD;QAEnD,4DAAU;QACV,+EAAwB;QACvB,yEAAe;QACd,gFAAmD;QACpD,qEAAe;QAChB,4DAAU;QACV,+EAAuB;QACtB,mIAEe;QAEhB,4DAAU;QACX,4DAAgB;QAQjB,4DAAU;;;;;;QA7FE,0DAAkH;QAAlH,+PAAkH;QAUlH,0DAAkH;QAAlH,+PAAkH;QAUlH,0DAAgH;QAAhH,+PAAgH;QASzG,0DAAmB;QAAnB,mFAAmB;QAc1B,0DAAkH;QAAlH,+PAAkH;QAC/F,0DAAiD;QAAjD,yHAAiD;QAcjB,0DAAyB;QAAzB,sFAAyB;QAGvE,0DAAmB;QAAnB,gFAAmB;QAKnB,0DAAmB;QAAnB,gFAAmB;QAKlB,0DAAmB;QAAnB,gFAAmB;QAKlB,0DAAmB;QAAnB,gFAAmB;QAIpB,0DAAkB;QAAlB,kFAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzG4C;AAGhB;AAEI;;;;;;;;;;;;;;;;;ICO1D,iFAAoE;IAClE,uDACF;IAAA,4DAAa;;;IAFsC,4EAAgB;IACjE,0DACF;IADE,qFACF;;;IAUA,iFAAsE;IACpE,uDACF;IAAA,4DAAa;;;IAFqC,+EAAmB;IACnE,0DACF;IADE,0FACF;;;IA8BJ,0EAAoD;IAClD,4EAA4D;IAC9D,4DAAM;;;;IADQ,0DAAe;IAAf,2EAAe;;;IAM3B,wEAA2C;IAEzC,4EAA4D;IAC9D,qEAAe;;;;IADD,0DAAe;IAAf,2EAAe;;ADxDrC,IAAK,kBAGJ;AAHD,WAAK,kBAAkB;IACtB,iEAAW;IACX,6EAAiB;AAClB,CAAC,EAHI,kBAAkB,KAAlB,kBAAkB,QAGtB;AAOM,MAAM,kBAAkB;IAsB9B,YACS,MAAc,EACd,WAAwB,EACxB,WAAwB,EACxB,QAAqB,EACZ,KAAsB;QAJ/B,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAa;QACZ,UAAK,GAAL,KAAK,CAAiB;QAtBxC,WAAM,GAAG,EAAE,CAAC;QAEZ,cAAS,GAAQ,kBAAkB,CAAC,aAAa,CAAC;QAClD,YAAO,GAAW,CAAC,CAAC;QAEpB,oBAAe,GAAG,CAAC,QAAQ,EAAC,UAAU,EAAC,IAAI,CAAC,CAAC;QAC7C,mBAAc,GAAI,CAAC,EAAC,EAAE,EAAC,CAAC,EAAG,IAAI,EAAC,SAAS,EAAE,EAAC,EAAE,EAAE,EAAC,CAAC,EAAG,IAAI,EAAC,YAAY,EAAE,CAAC,CAAC;QAK1E,QAAG,GAAG,EAAE,CAAC;QAGT,cAAS,GAAG,KAAK,CAAC;QAWjB,IAAI,CAAC,MAAM,GAAG,IAAI,0EAAe,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;;QACP,IAAI,CAAC,aAAa,GAAG,IAAI,qDAAS,CAAC;YAChC,MAAM,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAE,CAAC,+DAAmB,CAAC,CAAC;YAClD,WAAW,EAAE,IAAI,uDAAW,CAAC,GAAG,CAAC;YACjC,SAAS,EAAE,IAAI,uDAAW,CAAC,QAAQ,EAAC,CAAC,+DAAmB,CAAC,CAAC;YAC1D,QAAQ,EAAE,IAAI,uDAAW,CAAC,CAAC,EAAC,CAAC,+DAAmB,CAAC,CAAC;YAClD,IAAI,EAAE,IAAI,uDAAW,CAAC,GAAG,CAAC;YAC1B,IAAI,EAAE,IAAI,uDAAW,CAAC,SAAS,CAAC;SAGjC,CAAC,CAAC;QAEJ,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE,GAAE,IAAI,CAAC,aAAa,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;YACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACrD,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,UAAU,mCAAO,UAAU,KAAC,SAAS,EAAE,GAAG,GAAC,CAAC;YAE3D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAC,EAAE;YAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACrD,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,UAAU,mCAAO,UAAU,KAAC,QAAQ,EAAE,GAAG,GAAC,CAAC;YAE1D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEjD,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACrD,IAAI,UAAU,GAAG,gBAAI,CAAC,SAAS,0CAAE,UAAU,mCAAI,EAAC,kBAAkB,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC;YAEpH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAE7D,IAAG,UAAU,CAAC,kBAAkB,IAAK,CAAC,EAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;iBAAI;gBACJ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aACpD;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAEjD,IAAI,QAAQ,GAAG,CAAC,CAAE;YAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACjB,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACxB,OAAO;oBACN,QAAQ,EAAE,CAAC;oBACX,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE;oBACvD,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3B,WAAW,EAAE,EAAE;oBACf,IAAI,EAAE,EAAE;oBACR,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;oBACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;oBACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;oBACrB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;oBACvB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;oBACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;iBACvB;YACF,CAAC,CAAC,CAAC;YAGH,UAAU,CAAC,GAAG,EAAE;gBACf,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,EAAC,GAAG,CAAC;SACN;QAGD,IAAI,CAAC,OAAO;aACX,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAGjD,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;gBAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAE9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBAErD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBAEjD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;gBAEtC,UAAU,CAAC,GAAG,EAAE;;oBAEf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAG,iBAAI,CAAC,SAAS,0CAAE,UAAU,0CAAE,kBAAkB,KAAK,CAAC,EAAC;wBACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;qBACtB;yBAAI;wBACJ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;wBAC5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACvB;oBAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAIvD,IAAI,QAAQ,GAAG,CAAC,CAAE;oBAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC;wBACjB,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;wBACxB,OAAO;4BACN,QAAQ,EAAE,CAAC;4BACX,UAAU,EAAE,CAAC,CAAC,UAAU;4BACxB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE;4BACvD,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;4BAC3B,WAAW,EAAE,EAAE;4BACf,IAAI,EAAE,EAAE;4BACR,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;4BACzB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;4BACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;4BACrB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;4BACvB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;4BACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;yBAEvB;oBACF,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;gBACvC,CAAC,EAAE,GAAG,CAAC,CAAC;aAER;QACF,CAAC,CAAC,CAAC;IAEJ,CAAC;IAED,IAAI;QACH,mDAAmD;QACnD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEjD,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAGtB,CAAC;IAED,yBAAyB;IACzB,0DAA0D;IAC1D,IAAI;IAEJ,oBAAoB,CAAC,KAAK;QACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEtD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;QAE3C,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,EAAC,GAAG,CAAC;IAEP,CAAC;IACD,cAAc,CAAC,KAAK;QACnB,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEtD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC5C,UAAU,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,EAAC,GAAG,CAAC;SACN;IAEF,CAAC;IAED,KAAK,CAAC,KAAS;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACxB;IACF,CAAC;IAED,YAAY,CAAC,KAAK;;QACjB,sBAAsB;QACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,WAAI,CAAC,aAAa,0CAAE,MAAM,GAAE;YAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;YACtC,OAAO;SACP;QAGD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,iCAAiC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;aAC5F,SAAS,CACT,CAAC,GAAQ,EAAE,EAAE;YACZ,IAAI,GAAG,CAAC,KAAK,EAAE;aAEd;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE;aAEzB;iBAAM;gBACN,IAAI,SAAS,GAAG,GAAG,CAAC;gBAEpB,IAAI,CAAC,SAAS,EAAE;oBACf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;oBACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8DAA8D,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC9G,OAAO;iBACP;gBAGD,qBAAqB;gBACrB,YAAY;gBACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACrD,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gBAC3C,IAAI,CAAC,SAAS,CAAC,UAAU,mCAAO,UAAU,KAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAC,CAAC;gBAE9E,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEnD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;aAGtC;QACF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACjB,IAAI,GAAG,GAAG,MAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,EAAE,CAAC;YAC7B,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;gBACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACnD,OAAO;aACP;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oDAAoD,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACpG,OAAO;YACP,wBAAwB;YACxB,kCAAkC;QACnC,CAAC,CACD;IACH,CAAC;;oFAhRW,kBAAkB;gHAAlB,kBAAkB;QCpB/B,yEAAwB;QACtB,yEAAsE;QACpE,yEAAmC;QACjC,wEAAyB;QACvB,0EAAyB;QAAA,4DAAC;QAAA,4DAAO;QAAA,uDACjC;QAAA,oEAAmM;QAErM,4DAAK;QACP,4DAAM;QACN,yEAAsF;QACpF,oFAA2D;QACzD,6EAAW;QAAA,oFAAwB;QAAA,4DAAY;QAC/C,iFAAmL;QAAvD,yKAAmB,sCAAkC,IAAC;QAChL,8HAEa;QAIf,4DAAa;QACf,4DAAiB;QAEjB,qFAA2D;QACzD,6EAAW;QAAA,wDAAgE;QAAA,4DAAY;QACvF,kFAA2K;QAAjD,yKAAmB,gCAA4B,IAAC;QACxK,8HAEa;QAOf,4DAAa;QACf,4DAAiB;QAIjB,qFAA2D;QACzD,6EAAW;QAAA,yFAAwB;QAAA,4DAAY;QAC/C,6EAAwK;QAApH,oLAAmB,wGAA2C,wBAAoB,IAA/D,wGAAkF,iBAAa,IAA/F;QAAvE,4DAAwK;QACxK,8EAAsG;QAApE,iJAAS,wBAAoB,IAAC;QAC5D,4EAAU;QAAA,kEAAM;QAAA,4DAAW;QAC/B,4DAAS;QACX,4DAAiB;QASnB,4DAAM;QAEN,2EAA6B;QAC3B,iHAEM;QACR,4DAAM;QAEN,6EAAkC;QAChC,2EAA8H;QAC5H,mIAGe;QACjB,4DAAM;QACR,qEAAe;QAEf,2EAA2D;QACzD,8EAAyD;QAAjB,2IAAS,UAAM,IAAC;QAAC,qEAAS;QAAA,4DAAS;QAE/E,4DAAM;QAON,4DAAM;QAER,4DAAM;;;QA/EmC,0DACjC;QADiC,6IACjC;QAAK,0DAA6J;QAA7J,4ZAA6J;QAI5G,0DAA2B;QAA3B,wFAA2B;QACnE,0DAAuB;QAAvB,gFAAuB;QAGJ,0DAAkB;QAAlB,wFAAkB;QASrC,0DAAuB;QAAvB,gFAAuB;QAC1B,0DAAgE;QAAhE,wIAAgE;QAE1C,0DAAiB;QAAjB,uFAAiB;QAcpC,0DAAuB;QAAvB,gFAAuB;QAEe,0DAAmB;QAAnB,8EAAmB;QACN,0DAAoC;QAApC,yFAAoC;QAe9D,0DAAS;QAAT,+EAAS;QAOhB,0DAAS;QAAT,+EAAS;;;;;;;;;;;;;;;;;;;;;;;;;ACrD1C,MAAM,mBAAmB;IAI9B,YACU,WAAwB,EACxB,WAAwB;QADxB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;IAE5B,CAAC;IAEP,QAAQ;IACR,CAAC;IAGD,IAAI;QACF,oDAAoD;QAEtD,qBAAqB;QAErB,8CAA8C;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtB,CAAC;IAGD,KAAK,CAAC,QAAQ;QACZ,QAAQ,QAAQ,EAAE;YAChB,KAAK,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM;YACR,KAAK,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,MAAM;SACT;IACH,CAAC;;sFAtCU,mBAAmB;iHAAnB,mBAAmB;QCXhC,yEAAwB;QACvB,yEAAsE;QAIrE,yEAAmC;QAClC,wEAAyB;QAAA,0EAAyB;QAAA,4DAAC;QAAA,4DAAO;QAAA,kGAA6B;QAAA,4DAAK;QAC7F,4DAAM;QACN,gEAAI;QACJ,yEAA8B;QAC7B,8EAA0E;QAAnB,6IAAS,UAAM,CAAC,CAAC,IAAC;QACxE,oFAAkB;QACjB,iEAAI;QACJ,iEAAI;QAEJ,qEAA0B;QAC1B,iEAAI;QAGJ,0EAAsB;QACrB,qEAA6G;QAC9G,4DAAM;QAEN,2EAAwB;QACvB,0EAAmB;QAAA,sEAAU;QAAA,4DAAK;QAClC,iEAAI;QACL,4DAAM;QACP,4DAAmB;QACpB,4DAAW;QACX,+EAA0E;QAAnB,8IAAS,UAAM,CAAC,CAAC,IAAC;QACxE,oFAAkB;QACjB,iEAAI;QACJ,iEAAI;QACJ,qEAA0B;QAC1B,iEAAI;QAGJ,0EAAsB;QACrB,sEAA0G;QAC3G,4DAAM;QAEN,2EAAwB;QACvB,0EAAmB;QAAA,mEAAO;QAAA,4DAAK;QAC/B,iEAAI;QACL,4DAAM;QACP,4DAAmB;QACpB,4DAAW;QACZ,4DAAM;QACP,4DAAM;QACP,4DAAM;;;;;;;;;;;;;;;;;;;;;AC9CyD;;;;AASxD,MAAM,gBAAgB;IAO5B,YACe,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IACnC,CAAC;IAEL,QAAQ;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;IAE5D,CAAC;IAGD,IAAI;;QACH,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEjD,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAClD,IAAG,KAAK,GAAG,CAAC,EAAC;gBACZ,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;aACtB;SACD;QAEK,IAAI,UAAU,GAAG,UAAI,CAAC,SAAS,CAAC,UAAU,mCAAI,EAAE,CAAC;QAEvD,IAAI,CAAC,SAAS,CAAC,UAAU,mCAAQ,UAAU,KAAE,kBAAkB,EAAE,IAAI,CAAC,IAAI,GAAE,CAAC;QAEvE,IAAI,CAAC,WAAW,CAAC,iBAAiB,iCAAK,IAAI,CAAC,SAAS,KAAE,KAAK,EAAG,KAAK,IAAE,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ;QAEb,QAAQ,QAAQ,EAAE;YACjB,KAAK,CAAC;gBACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,GAAG,iFAA0B,CAAC;gBACvC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM;YACP,KAAK,CAAC;gBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,GAAG,uFAAgC,CAAC;gBAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM;YACP,KAAK,CAAC;gBACL,yDAAyD;gBACzD,eAAe;gBACf,MAAM;YACP;gBACC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,MAAM;SACP;IACF,CAAC;;gFA1DW,gBAAgB;8GAAhB,gBAAgB;QCZ7B,yEAAwB;QACvB,yEAAsE;QAIrE,yEAAmC;QAClC,wEAAyB;QAAA,0EAAyB;QAAA,4DAAC;QAAA,4DAAO;QAAA,sFAA2B;QAAA,4DAAK;QAC3F,4DAAM;QACN,gEAAI;QACJ,yEAA8B;QAC7B,8EAAoF;QAAnB,0IAAS,UAAM,CAAC,CAAC,IAAC;QAClF,oFAAkB;QACjB,0EAAwB;QACvB,yEAAmB;QAAA,wEAAO;QAAA,4DAAK;QAChC,4DAAM;QACN,iEAAI;QAAA,iEAAI;QACR,qEAA0B;QAC1B,iEAAI;QACJ,2EAAsB;QACrB,sEAAiF;QAClF,4DAAM;QACN,iEAAI;QACJ,2EAAuB;QACtB,+FACA;QAAA,iEAAI;QAAA,uFACJ;QAAA,iEAAI;QAAA,oFACJ;QAAA,iEAAI;QAAA,mFACL;QAAA,4DAAM;QAAA,iEAAI;QACX,4DAAmB;QACpB,4DAAW;QACX,+EAAoF;QAAnB,2IAAS,UAAM,CAAC,CAAC,IAAC;QAClF,oFAAkB;QACjB,0EAAwB;QACvB,yEAAmB;QAAA,yEAAa;QAAA,4DAAK;QACtC,4DAAM;QACN,iEAAI;QAAA,iEAAI;QACR,qEAA0B;QAC1B,iEAAI;QACJ,2EAAsB;QACrB,sEAAuF;QACxF,4DAAM;QACN,iEAAI;QACJ,2EAAuB;QACtB,6KAID;QAAA,4DAAM;QAAA,iEAAI;QACX,4DAAmB;QACpB,4DAAW;QACX,gFAA8F;QAAnB,2IAAS,UAAM,CAAC,CAAC,IAAC;QAC5F,oFAAkB;QACjB,0EAAwB;QACvB,yEAAmB;QAAA,uFAA2B;QAAA,4DAAK;QACpD,4DAAM;QACN,iEAAI;QAAA,iEAAI;QACR,2EAAuB;QACtB,2FACA;QAAA,iEAAI;QAAA,kFACJ;QAAA,iEAAI;QAAA,qFACJ;QAAA,iEAAI;QAAA,0EACJ;QAAA,iEAAI;QACL,4DAAM;QACN,iEAAI;QAAA,iEAAI;QACR,2EAA2B;QAC1B,2EAAsB;QACrB,sEAAuE;QACxE,4DAAM;QACN,8EACA;QAAA,iEAAI;QACJ,0EAEA;QAAA,2EAAkB;QACjB,wFACD;QAAA,4DAAM;QACN,iEAAI;QACL,4DAAM;QACN,2EAAmB;QAClB,iEAAI;QAAA,iEAAI;QAAA,iEAAI;QACb,4DAAM;QACP,4DAAmB;QACpB,4DAAW;QACZ,4DAAM;QACP,4DAAM;QACP,4DAAM;;;;;;;;;;;;;;;;;;;AC7EC,MAAM,iBAAiB;IAE5B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;kFALU,iBAAiB;+GAAjB,iBAAiB;QCP9B,oEAAG;QACD,6EACF;QAAA,4DAAI;;;;;;;;;;;;;;;;;;;;;;;;;;IEIgB,qEAAmH;;;IACnH,qEAA6G;;;IAWrH,0EAAqD;IACjD,8EAAwE;IAC5E,4DAAM;;;;IADY,0DAAe;IAAf,2EAAe;;;IAKjC,wEAA2C;IAEvC,8EAAwE;IAC5E,qEAAe;;;;IADG,0DAAe;IAAf,2EAAe;;ADrB7C,IAAK,kBAGJ;AAHD,WAAK,kBAAkB;IACtB,iEAAW;IACX,6EAAiB;AAClB,CAAC,EAHI,kBAAkB,KAAlB,kBAAkB,QAGtB;AAOM,MAAM,iBAAiB;IAa7B,MAAM;IACN,0IAA0I;IAC1I,gGAAgG;IAChG,gGAAgG;IAChG,IAAI;IAGJ,yCAAyC;IACzC,4CAA4C;IAC5C,8CAA8C;IAC9C,oDAAoD;IAEpD,YACS,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;QAtBhC,cAAS,GAAQ,kBAAkB,CAAC,aAAa,CAAC;QAClD,YAAO,GAAW,CAAC,CAAC;QACpB,kBAAa,GAAW,CAAC,CAAC;QAK1B,iBAAY,GAAG,KAAK,CAAC;IAgBjB,CAAC;IAEL,QAAQ;QAEP,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACjD,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;YACrB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAC,eAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,MAAM,KAAI,IAAI,IAAC,CAAC;YAE/D,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAElD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACpD,IAAI,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC;YACnD,qBAAqB;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAI,CAAC,MAAM,GAAG;gBACb,MAAM,EAAE,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,2CAA2C;gBAC9H,KAAK,EAAE,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB;gBAChF,MAAM,EAAE,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB;aACjF;YAGD,IAAI,QAAQ,GAAG,CAAC,CAAE;YAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;gBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACjB,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACxB,OAAO;oBACN,QAAQ,EAAE,CAAC;oBACX,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE;oBACvD,KAAK,EAAE,CAAC,CAAC,MAAM;oBACf,QAAQ,EAAE,OAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,mCAAI,EAAE;oBAC3B,WAAW,EAAE,EAAE;oBACf,IAAI,EAAE,EAAE;oBACR,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;iBACzB;YACF,CAAC,CAAC;SAEF;QAED,IAAI,CAAC,OAAO;aACX,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAElB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAC,eAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,MAAM,KAAI,IAAI,IAAC,CAAC;YAE/D,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAElD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAEjD,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAC;gBAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBAEjD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACpD,IAAI,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBACnD,qBAAqB;gBACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAEhD,IAAI,CAAC,MAAM,GAAG;oBACb,MAAM,EAAE,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,2CAA2C;oBAC9H,KAAK,EAAE,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB;oBAChF,MAAM,EAAE,CAAC,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB;iBACjF;gBAGD,IAAI,QAAQ,GAAG,CAAC,CAAE;gBAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;oBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC;oBACjB,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACxB,OAAO;wBACN,QAAQ,EAAE,CAAC;wBACX,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE;wBACvD,KAAK,EAAE,CAAC,CAAC,MAAM;wBACf,QAAQ,EAAE,OAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,mCAAI,EAAE;wBAC3B,WAAW,EAAE,EAAE;wBACf,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;qBACzB;gBACF,CAAC,CAAC;aAEF;QAGF,CAAC,CAAC,CAAC;QAIH,kBAAkB;QAClB,KAAK;QACL,mBAAmB;QACnB,8BAA8B;QAC9B,oBAAoB;QACpB,gCAAgC;QAChC,4BAA4B;QAC5B,oIAAoI;QACpI,MAAM;QACN,KAAK;QACL,mBAAmB;QACnB,8BAA8B;QAC9B,oBAAoB;QACpB,gCAAgC;QAChC,4BAA4B;QAC5B,oIAAoI;QACpI,MAAM;QACN,KAAK;QACL,mBAAmB;QACnB,8BAA8B;QAC9B,oBAAoB;QACpB,gCAAgC;QAChC,4BAA4B;QAC5B,oIAAoI;QACpI,KAAK;QACL,KAAK;IACN,CAAC;IAGD,IAAI;QACH,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEjD,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAClB,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAGD,WAAW,CAAC,CAAS;QACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,SAAS;QACR,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,yHAAyH;SAC9H,CAAC;IACH,CAAC;IAED,YAAY,CAAC,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE7B,IAAI,cAAc,GAAG,EAAE;QACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE;gBAC1B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;aACzB;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;IAC9B,CAAC;;kFA3LW,iBAAiB;+GAAjB,iBAAiB;QCf9B,yEAAwB;QACpB,yEAAsE;QAClE,yEAAiB;QACb,yEAAuB;QACnB,wEAAuB;QACnB,0EAAyB;QAAA,4DAAC;QAAA,4DAAO;QAAA,uDACjC;QAAA,6GAAmH;QACnH,6GAA6G;QACjH,4DAAK;QACT,4DAAM;QACV,4DAAM;QAON,0EAA6B;QACzB,+GAEM;QACV,4DAAM;QAEN,2EAA+H;QAC3H,kIAGe;QACnB,4DAAM;QACN,2EAA0D;QACtD,8EAAyD;QAAjB,0IAAS,UAAM,IAAC;QAAC,qEAAS;QAAA,4DAAS;QAC/E,4DAAM;QACV,4DAAM;QACV,4DAAM;;QA5B+C,0DACjC;QADiC,wHACjC;QAAM,0DAAwB;QAAxB,wFAAwB;QACxB,0DAAwB;QAAxB,wFAAwB;QAWI,0DAAS;QAAT,+EAAS;QAMnB,0DAAS;QAAT,+EAAS;;;;;;;;;;;;;;;;;;;;;;;;;;ACnB6C;;;;;;;;;;;ICEtF,wEAA2C;IACvC,sEAAK;IACD,0EAAsF;IAA1D,+ZAAyD;IACjF,0EAAgE;IACpE,4DAAM;IACN,mFAAuD;IAC3D,4DAAM;IACV,qEAAe;;;IAJgB,0DAAiC;IAAjC,0FAAiC;IAErC,0DAAe;IAAf,2EAAe;;;;IAKtC,wEAAyE;IACrE,0EACwL;IADnL,2UAAsB;IAGvB,qEAAmE;IACnE,wEAAO;IAAA,4EAAiB;IAAA,4DAAQ;IACpC,4DAAM;IACV,qEAAe;;;IARnB,wEAAoD;IAChD,6IAOe;IACnB,qEAAe;;;IARoB,0DAAwC;IAAxC,8HAAwC;;ADDhF,MAAM,gBAAgB;IAe5B,YACS,MAAc,EACd,WAAuB,EACvB,WAAwB,EACf,KAAsB;QAH/B,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAY;QACvB,gBAAW,GAAX,WAAW,CAAa;QACf,UAAK,GAAL,KAAK,CAAiB;QAfxC,UAAK,GAAG,EAAE;QACV,YAAO,GAAW,CAAC,CAAC;QACpB,WAAM,GAAG,EAAE,EAAC,0GAA0G;QAGtH,cAAS,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,gBAAW,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACzC,iBAAY,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,kBAAa,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAQ7C,CAAC;IAEL,QAAQ;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAGlD,IAAI,QAAQ,GAAG,CAAC,CAAE;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACjB,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;YACxB,OAAO;gBACN,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE;gBACvD,KAAK,EAAE,CAAC,CAAC,MAAM;gBACf,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;aACzB;QACF,CAAC,CAAC;QAEF,kBAAkB;QAClB,KAAK;QACL,mBAAmB;QACnB,8BAA8B;QAC9B,oBAAoB;QACpB,gCAAgC;QAChC,4BAA4B;QAC5B,oIAAoI;QACpI,KAAK;QACL,KAAK;IACN,CAAC;IAGD,IAAI;QACH,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAClD,iBAAiB;YAChB,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACtB,IAAI;SACL;QAED,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAClB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,iBAAiB,iCAAK,UAAU,KAAE,KAAK,EAAG,KAAK,IAAE,CAAC;QAEnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,CAAS;QACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,SAAS;QACR,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,qBAAqB;QACrB,mBAAmB;QACnB,6BAA6B;QAC7B,mBAAmB;QACnB,+BAA+B;QAC/B,2BAA2B;QAC3B,mIAAmI;QACnI,KAAK;IACN,CAAC;IAED,YAAY,CAAC,EAAE,EAAC,QAAQ;QACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE7B,IAAI,cAAc,GAAG,EAAE,CAAE;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;gBAC9B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;aACzB;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACpD,SAAS,mCAAO,SAAS,KAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;QAE7B,uCAAuC;QACvC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACjD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAClD,iBAAiB;YAChB,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACtB,IAAI;SACL;QAED,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAClB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,WAAW,CAAC,iBAAiB,iCAAK,SAAS,KAAC,KAAK,EAAG,KAAK,IAAE,CAAC;IAGlE,CAAC;IAED,UAAU;QACT,+FAA+F;QAC/F,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW;QACJ,yCAAyC;QACzC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,uBAAuB,EAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;QAEhF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAEJ,QAAQ;QACD,yCAAyC;QACzC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB,EAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;QAE5E,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAEJ,eAAe;QACR,yCAAyC;QAE/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG;YACX,gBAAgB,EAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;YAC3C,kBAAkB,EAAI,IAAI;YAC1B,kBAAkB,EAAI,QAAQ;YAC9B,cAAc,EAAQ,QAAQ;YAC9B,gBAAgB,EAAM,OAAO;SAC7B;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAGtB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACtF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEhC,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAEJ,aAAa;QACN,yCAAyC;QAE/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,KAAK,GAAG;YACX,gBAAgB,EAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;YAC3C,kBAAkB,EAAI,IAAI;YAC1B,kBAAkB,EAAI,QAAQ;YAC9B,cAAc,EAAQ,QAAQ;YAC9B,gBAAgB,EAAM,OAAO;SAC7B;QAEK,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACzF,OAAO,CAAC,GAAG,CAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC;YAEvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;;gFA1LQ,gBAAgB;8GAAhB,gBAAgB;QChB7B,yEAAwB;QACpB,yEAAsE;QAClE,yEAAmC;QAC/B,wEAAyB;QAAA,0EAAyB;QAAA,4DAAC;QAAA,4DAAO;QAAA,sFAC1D;QAAA,4DAAK;QACT,4DAAM;QACN,yEAA4F;QACxF,8HAOe;QAEf,8HASe;QACnB,4DAAM;QACN,0EAA0D;QACtD,6EAAyD;QAAjB,yIAAS,UAAM,IAAC;QAAC,qEAAS;QAAA,4DAAS;QAO/E,4DAAM;QACV,4DAAM;QAMV,4DAAM;;QAnCsC,0DAAS;QAAT,+EAAS;QAS1B,0DAAmC;QAAnC,qGAAmC;;;;;;;;;;;;;;;;;;;;;;;;;AChByB;AACW;AACxC;AAGU;;;;;;;;AAS7D,MAAM,mBAAmB;IA+B5B,YACY,MAAc,EACd,MAAsB,EACtB,WAAwB,EACzB,OAAgB,EACN,KAAsB;QAJ/B,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAgB;QACtB,gBAAW,GAAX,WAAW,CAAa;QACzB,YAAO,GAAP,OAAO,CAAS;QACN,UAAK,GAAL,KAAK,CAAiB;QAV3C,iBAAY,GAAW,IAAI,CAAC;QAC5B,gBAAW,GAAQ,EAAE,CAAC;QACtB,eAAU,GAAG,EAAE,CAAC;QAChB,QAAG,GAAW,IAAI,CAAC;IAQf,CAAC;IAEL,QAAQ;QACJ,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,KAAI,IAAI,GAAG,IAAI,IAAI,EAAC;YAChB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,aAAa;QACb,IAAI,CAAC,UAAU,GAAG;YAChB,WAAW,EAAS,QAAQ;YAC5B,MAAM,EAAc,eAAe;YACnC,MAAM,EAAc,UAAU;YAC9B,IAAI,EAAgB,YAAY;YAChC,gBAAgB,EAAI,YAAY;YAChC,QAAQ,EAAY,aAAa;YACjC,MAAM,EAAc,WAAW;YAC/B,WAAW,EAAS,YAAY;SACjC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAS,EAAE,EAAE;YACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAE,IAAI,CAAC,UAAU,CAAE,CAAC;YAEpC,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBACnF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;aACnB;iBACG;gBACA,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC1C;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,0BAA0B;YAE1B,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;gBACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,cAAc,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE,CAAC;aAC1C;iBACG;gBACA,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,8BAA8B;gBAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC,CAAC;gBAG/D,IAAI,cAAc,CAAC,OAAO,CAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,IAAI,CAAC,CAAC,EAAE;oBACzD,cAAc,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE,CAAC;iBAC1C;aACJ;YAED,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,oGAAoG;QACpG,mGAAmG;QACnG,wGAAwG;IAE5G,CAAC;IAED,UAAU;QACZ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAEE,WAAW,CAAE,EAAS;QAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,wBAAwB,EAAE,EAAE,CAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC9E,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC;YACjE,iBAAiB;YACjB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,IAAI;aAC3B;iBACG;gBACA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;oBACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACzD;qBACG;oBACA,IAAI,CAAC,YAAY,GAAG,IAAI;iBAC3B;aACJ;YAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAG5D,IAAI,CAAC,UAAU,GAAG,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACrC,kDAAkD;gBAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBACjB,MAAM,EAAE,OAAO,CAAC,QAAQ;oBACxB,UAAU,EAAE,OAAO,CAAC,QAAQ;iBAC/B,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;YAEtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,wDAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1G,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;;sFA1IQ,mBAAmB;iHAAnB,mBAAmB;kEAGd,oEAAiB,KAAS,qDAAU;;;;;QCjBtD,yEAAmB;QACf,6EAA8B;QAC1B,yEAAuB;QACnB,wEAAkD;QAAA,oFAAoB;QAAA,4DAAK;QAC/E,4DAAM;QACV,4DAAU;QAEV,yEAAmC;QAC/B,yEAA0D;QACtD,uEAA4D;QAAA,iEAAM;QAAA,4DAAI;QACtE,qEAAuC;QACvC,wEAA+G;QAAA,wDAAuB;QAAA,4DAAI;QAC1I,sEAAuC;QACvC,wEAA+I;QAAA,wDAAwB;QAAA,4DAAI;QAC/K,4DAAM;QACV,4DAAM;QAGN,+EAAmC;QAC/B,0EAAuB;QACnB,8EAAiF;QAC7E,2EAAiB;QACb,2EAAgC;QAC5B,2EAAkC;QAC9B,sEAAI;QAAA,wDAAwB;QAAA,4DAAK;QACjC,sEAAI;QAAA,wDAAuB;QAAA,4DAAK;QACpC,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAS;QAET,2EAAiB;QACb,2EAAsB;QAClB,0EAOU;QAOV,qEAAG;QAAA,yEAAO;QAAA,8HAAwD;QAAA,4DAAQ;QAAA,4DAAI;QAClF,4DAAM;QACN,sEAA4B;QAC5B,2EAAsB;QAClB,6EAAoC;QAChC,2EAA0E;QACtE,0EAAuB;QAAA,4EAAW;QAAA,4DAAK;QACvC,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,iEAAK;QAAA,4DAAK;QAC1D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAwB;QAAA,4DAAI;QAC3E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,kEAAM;QAAA,4DAAK;QAC3D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAyB;QAAA,4DAAI;QAC5E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,oEAAG;QAAA,4DAAK;QACxD,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAuB;QAAA,4DAAI;QAC1E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,mEAAO;QAAA,4DAAK;QAC5D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAA0B;QAAA,4DAAI;QAC7E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,gEAAI;QAAA,4DAAK;QACzD,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAuB;QAAA,4DAAI;QAC1E,4DAAM;QACV,4DAAM;QACN,iEAAI;QAAA,iEAAI;QACR,0EAAuB;QAAA,uFAA2B;QAAA,4DAAK;QACvD,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,kEAAM;QAAA,4DAAK;QAC3D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAyB;QAAA,4DAAI;QAC5E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,wEAAY;QAAA,4DAAK;QACjE,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAkC;QAAA,4DAAI;QACrF,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,wEAAY;QAAA,4DAAK;QACjE,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAiC;QAAA,4DAAI;QACpF,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,4EAAe;QAAA,4DAAK;QACpE,4DAAM;QACN,4EAAsB;QAClB,0EAA2C;QAAA,yDAA6B;QAAA,4DAAI;QAChF,4DAAM;QACV,4DAAM;QACN,kEAAI;QAAA,kEAAI;QACR,2EAAuB;QAAA,yEAAY;QAAA,4DAAK;QACxC,4EAAiB;QACb,4EAAsB;QAClB,2EAA4C;QAAA,uFAAqB;QAAA,4DAAK;QAC1E,4DAAM;QACN,4EAAsB;QAClB,0EAA2C;QAAA,yDAAkC;QAAA,4DAAI;QACrF,4DAAM;QACV,4DAAM;QACN,4EAAiB;QACb,4EAAsB;QAClB,2EAA4C;QAAA,qEAAQ;QAAA,4DAAK;QAC7D,4DAAM;QACN,4EAAsB;QAClB,0EAA2C;QAAA,yDAA0B;QAAA,4DAAI;QAC7E,4DAAM;QACV,4DAAM;QACN,4EAAiB;QACb,4EAAsB;QAClB,2EAA4C;QAAA,mEAAM;QAAA,4DAAK;QAC3D,4DAAM;QACN,4EAAsB;QAClB,0EAA2C;QAAA,yDAAwB;QAAA,4DAAI;QAC3E,4DAAM;QACV,4DAAM;QACN,4EAAiB;QACb,4EAAsB;QAClB,2EAA4C;QAAA,+EAAkB;QAAA,4DAAK;QACvE,4DAAM;QACN,4EAAsB;QAClB,0EAA2C;QAAA,yDAA6B;QAAA,4DAAI;QAChF,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAQ;QACR,+EAA6B;QAAA,0EAAa;QAAA,4DAAS;QACvD,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAU;QAEd,4DAAM;;QAjKS,0DAA6B;QAA7B,8IAA6B;QAE7B,0DAAgF;QAAhF,oPAAgF;QAA4B,0DAAuB;QAAvB,qHAAuB;QAEnI,0DAAuG;QAAvG,kTAAuG;QAAqC,0DAAwB;QAAxB,sHAAwB;QAWnJ,0DAAwB;QAAxB,sHAAwB;QACxB,0DAAuB;QAAvB,qHAAuB;QAS3B,0DAAe;QAAf,4EAAe;QAyBoC,2DAAwB;QAAxB,uHAAwB;QAQxB,0DAAyB;QAAzB,wHAAyB;QAQzB,0DAAuB;QAAvB,sHAAuB;QAQvB,0DAA0B;QAA1B,yHAA0B;QAQ1B,0DAAuB;QAAvB,sHAAuB;QAUvB,2DAAyB;QAAzB,wHAAyB;QAQzB,0DAAkC;QAAlC,0KAAkC;QAQlC,0DAAiC;QAAjC,yKAAiC;QAQjC,0DAA6B;QAA7B,2HAA6B;QAU7B,2DAAkC;QAAlC,gIAAkC;QAQlC,0DAA0B;QAA1B,wHAA0B;QAQ1B,0DAAwB;QAAxB,sHAAwB;QAQxB,0DAA6B;QAA7B,2HAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/J5G;AACA;AAEA;AAEA;AAGA;AAIA;AAIA;AAEA;CACkC;;AAClC;AACA;;;;;;;;;;;;;;;;;;;;;AClBQ;AAAmF;AAAyB;AAAC;AAAO;AAA2B;AAAkF;;;;;;AACjO;AAAmF;AAAyB;AAAC;AAAO;AAA2B;AAAwF;;;;;;AA6BhM;;;;;;AAiBf;AACI;AACJ;;;;;;AACA;AACI;AACJ;;;;;;AACA;AACI;AACJ;;;;;;;;AArBZ;AACI;AAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC7B;AACI;AACA;AACA;AACI;AACJ;AACA;AACA;AACI;;AACJ;AACA;AACA;AAGA;AAGA;AAGA;AACI;;AACA;AACA;AAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AAAW;AAC5E;AACJ;AACJ;AACJ;;;;;;AA5BkF;AAAA;AAEjE;AAAA;AAGD;AAAA;AAIA;AAAA;AAG+C;AAAA;AAGA;AAAA;AAGH;AAAA;AAI5C;AAAA;;;;;;AAUY;;;;;;;;AA7D5C;AACI;AACI;AACI;AAEI;AACI;AACJ;AACJ;AACA;AACA;AACI;AACI;AAA6B;AAAyD;AAC1F;AACA;AACA;AACI;;AACJ;AACA;AAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AAAwB;AAC/F;AACJ;AACJ;AACJ;AACA;AACI;AAAc;AAAA;AAAA;AAAA;AAAA;AAAqB;AAAmH;AAEtJ;AACI;AACI;AA+BJ;AACJ;AACA;AAAc;AAAA;AAAA;AAAA;AAAA;AAAsB;AAAoH;AAC5J;AACJ;;;;;;AAzDyB;AAAA;AAMwB;AAAA;AAI7B;AAAA;AAQiF;AAAA;AAI/D;AAAA;AAiCiE;AAAA;;;;;;AA0CvF;AACI;AACJ;;;;;;AACA;AACI;AACJ;;;;;;AACA;AACI;AACJ;;;;;;;;AArBZ;AACI;AAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC7B;AACI;AACA;AACA;AACI;AACJ;AACA;AACA;AACI;;AACJ;AACA;AACA;AAGA;AAGA;AAGA;AACI;;AACA;AACA;AAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AAAW;AAC5E;AACJ;AACJ;AACJ;;;;;;AA5BkF;AAAA;AAEjE;AAAA;AAGD;AAAA;AAIA;AAAA;AAG+C;AAAA;AAGA;AAAA;AAGH;AAAA;AAI5C;AAAA;;;;;;;;AA9CpB;AACI;AACI;AAEI;AACI;AACJ;AAEJ;AACA;AACA;AACI;AACI;AAAkD;AAAyD;AAC/G;AACA;AACA;AACI;;AACJ;AACA;AAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AAAwB;AAC/F;AACJ;AACJ;AAEA;AA8BJ;;;;;AAhDqB;AAAA;AAO6C;AAAA;AAIlD;AAAA;AAOU;AAAA;;;;;;ACnG9B;;;;;;AAkCwB;AACI;AAAiB;AAAI;AACrB;AAAiB;AAAoC;AACzD;;;;;AADqB;AAAA;;;;;;AAMrB;AAA2E;AAAY;;;;;;AACvF;AAA2E;AAAa;;;;;;AAsE5E;AAAsG;AAAY;;;;;;AAClH;AAAsG;AAAa;;;;;;AAM3H;AACI;AACI;AAA4C;AAAiB;AACjE;AACA;AACI;AAAiD;;AAA+E;AACpI;AACJ;;;;;AAFyD;AAAA;;;;;;AAKzD;AAEI;AAAuB;AAAY;AACnC;AACI;AACI;AAA4C;AAAqB;AACrE;AACA;AACI;AAAiD;;AAAoF;AACzI;AACJ;AACA;AACI;AACI;AAA4C;AAAQ;AACxD;AACA;AACI;AAAiD;;AAA4E;AACjI;AACJ;AACA;AACI;AACI;AAA4C;AAAM;AACtD;AACA;AACI;AAAiD;;AAA0E;AAC/H;AACJ;AACA;AACI;AACI;AAA4C;AAAkB;AAClE;AACA;AACI;AAAiD;;AAA4E;AACjI;AACJ;AAEJ;;;;;AA5B6D;AAAA;AAQA;AAAA;AAQA;AAAA;AAQA;AAAA;;;;;;AAM7D;AAEI;AAAuB;AAAY;AACnC;AACI;AACI;AAA4C;AAAiB;AACjE;AACA;AACI;AAAiD;;AAA+E;AACpI;AACJ;AACA;AACI;AACI;AAA4C;AAAgB;AAChE;AACA;AACI;AAAiD;;AAA4E;AACjI;AACJ;AACA;AACI;AACI;AAA4C;AAAM;AACtD;AACA;AACI;AAAiD;;AAA0E;AAC/H;AACJ;AACA;AACI;AACI;AAA4C;AAAqB;AACrE;AACA;AACI;AAAiD;;AAAoF;AACzI;AACJ;AACA;AACI;AACI;AAA4C;AAAoB;AACpE;AACA;AACI;AAAiD;;AAA4E;AACjI;AACJ;AACA;AACI;AACI;AAA4C;AAAkB;AAClE;AACA;AACI;AAAiD;;AAA4E;AACjI;AACJ;AAEJ;;;;;AA5C6D;AAAA;AAQA;AAAA;AAQA;AAAA;AAQA;AAAA;AAQA;AAAA;AAQA;AAAA;;;;;;AAqBzD;AACI;AAAiB;AAAI;AACrB;AAAiB;AAAoC;AACzD;;;;;AADqB;AAAA;;;;;;AAMrB;AAA2E;AAAY;;;;;;AACvF;AAA2E;AAAa;;;;AFrNlH,MAAO,8BAAP,CAAqC;AASzC,cAAoB,QAApB,EAAmD,OAAnD,EAAyF,KAAzF,EAAwH,MAAxH,EAA8I,MAA9I,EAAwK,WAAxK,EAAyM,EAAzM,EAAyN;AAArM;AAA+B;AAAsC;AAA+B;AAAsB;AAA0B;AAAiC;AAGzM,kBAAe,EAAf;AACA,mBAAmB,KAAnB;AAJ8N;;AAO9N,UAAQ;AACN,SAAK,SAAL,GAAiB,KAAK,WAAL,CAAiB,gBAAjB,EAAjB;AACA,SAAK,OAAL,GAAe,KAAK,SAAL,CAAe,KAA9B;AACA,SAAK,kBAAL;AAEA,UAAM,OAAO,GAAG,8CAAiB,MAAM,CAAC,SAAP,CAAiB,SAAlC,CAAhB;AACA,UAAM,GAAG,GAAG,OAAO,CAAC,UAAR,EAAZ;AAEA,SAAK,QAAL,GAAgB,GAAG,CAAC,IAAJ,IAAY,QAAZ,GAAuB,IAAvB,GAA8B,KAA9C;AAED;;AACK,oBAAkB;AAAA;;AAAA;qBAAA,CACtB;;;AACA,WAAI,CAAC,MAAL,SAAoB,KAAI,CAAC,SAAL,CAAe,KAAI,CAAC,SAAL,CAAe,UAAf,CAA0B,kBAAzC,CAApB;AACA,UAAI,IAAJ;;AACA,WAAI,IAAI,CAAC,GAAG,CAAZ,EAAe,CAAC,IAAE,KAAI,CAAC,OAAL,CAAa,MAAb,GAAoB,CAAtC,EAAwC,CAAC,EAAzC,EAA4C;AAC1C,YAAI,YAAY,GAAG,EAAnB;;AACA,aAAI,IAAI,CAAC,GAAG,CAAZ,EAAe,CAAC,IAAE,KAAI,CAAC,MAAL,CAAY,MAAZ,GAAmB,CAArC,EAAuC,CAAC,EAAxC,EAA2C;AACzC,kBAAO,KAAI,CAAC,SAAL,CAAe,UAAf,CAA0B,kBAAjC;AACM,iBAAK,CAAL;AACE,qBAAO,CAAC,GAAR,CAAY,oBAAZ;AACA,qBAAO,CAAC,GAAR,CAAa,WAAI,CAAC,OAAL,CAAa,CAAb,OAAe,IAAf,IAAe,aAAf,GAAe,MAAf,GAAe,GAAE,QAA9B;AACA,kBAAI,GAAG;AACH,sBAAM,EAAG,CADN;AAEH,sBAAM,EAAG,KAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,MAFtB;AAGH,0BAAU,EAAG,CAHV;AAIH,sBAAM,EAAG,KAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,MAAhB,CAAuB,MAJ7B;AAKH,0BAAU,EAAG,CALV;AAMH,qBAAK,EAAG,CANL;AAOH,qBAAK,EAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe,KAPpB;AAQH,oBAAI,EAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe,IARnB;AASH,wBAAQ,EAAG,YAAI,CAAC,OAAL,CAAa,CAAb,OAAe,IAAf,IAAe,aAAf,GAAe,MAAf,GAAe,GAAE,QAAjB,KAA6B,CATrC;AAUH,yBAAS,EAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe;AAVxB,eAAP;AAYA,kBAAI,GAAG,SAAS,KAAI,CAAC,kBAAL,CAAwB,IAAxB,CAAhB;AACA,iBAAG,CAAC,SAAD,CAAH,GAAiB,eAAjB;AACA,0BAAY,CAAC,IAAb,CAAkB,GAAlB;AACF;;AACA,iBAAK,CAAL;AACE,kBAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe,SAAlB,EAA4B;AAC1B,oBAAI,GAAG;AACL,wBAAM,EAAG,EADJ;AAEL,sBAAI,EAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe,IAFjB;AAGL,uBAAK,EAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe,KAHlB;AAIL,6BAAW,EAAG,KAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,MAJzB;AAKL,qCAAmB,EAAG,YAAI,CAAC,OAAL,CAAa,CAAb,OAAe,IAAf,IAAe,aAAf,GAAe,MAAf,GAAe,GAAE,QAAjB,KAA6B,CAL9C;AAML,4BAAU,EAAG,KAAI,CAAC,SAAL,CAAe,UAAf,CAA0B,QANlC;AAOL,wBAAM,EAAG,KAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,MAAhB,CAAuB,MAP3B;AAQL,4BAAU,EAAI,KAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,MAAhB,CAAuB,WAAvB,GAAqC,KAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,MAAhB,CAAuB,aARrE;AASL,+BAAa,EAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe,SAT1B;AAUL,2BAAS,EAAG,KAAI,CAAC,MAAL,CAAY,CAAZ,EAAe;AAVtB,iBAAP;AAYA,oBAAI,GAAG,SAAS,KAAI,CAAC,wBAAL,CAA8B,IAA9B,CAAhB;AACA,mBAAG,CAAC,SAAD,CAAH,GAAiB,eAAjB;AACA,4BAAY,CAAC,IAAb,CAAkB,GAAlB;AACD;;AACH;;AACA;AACE,qBAAO,CAAC,GAAR,CAAY,iBAAZ;AACF;AAzCN;AA2CD;;AAAA;AACD,aAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,GAA6B,YAA7B;AACD;;AAAA;AApDqB;AAsDvB;;AAED,yBAAuB,CAAE,GAAF,EAAS;AAC9B,QAAI,QAAQ,GAAG,KAAf;AACE,QAAI,MAAJ;AAEA,OAAG,CAAC,UAAJ,CAAe,OAAf,CAAuB,OAAO,IAAG;AAC7B,UAAI,OAAO,CAAC,IAAR,KAAiB,wBAArB,EAA+C;AAC3C,gBAAQ,GAAG,IAAX;AACA,cAAM,GAAG,OAAT;AACH;AACJ,KALD;;AAOA,QAAI,QAAJ,EAAc;AACZ,YAAM,SAAS,GAAG,KAAK,MAAL,CAAY,IAAZ,CAAiB,8GAAjB,EAA+C;AAC/D,cAAM,EAAE,KADuD;AAE/D,aAAK,EAAE,OAFwD;AAG/D,YAAI,EAAE;AAAE,cAAI,EAAE;AAAR;AAHyD,OAA/C,CAAlB;AAMA,eAAS,CAAC,WAAV,GAAwB,SAAxB,CAAkC,MAAM,IAAG;AACzC,eAAO,CAAC,GAAR,CAAY,yBAAZ,EAAuC,MAAvC;;AACA,YAAI,MAAJ,EAAY;AACV;AAEA,eAAK,eAAL,CAAsB,GAAtB,EAHU,CAKV;;AACA,cAAI,QAAQ,GAAG,KAAf;AACA,cAAI,MAAJ;AAEA,aAAG,CAAC,UAAJ,CAAe,OAAf,CAAuB,OAAO,IAAG;AAC7B,gBAAI,OAAO,CAAC,IAAR,KAAiB,wBAArB,EAA+C;AAC3C,sBAAQ,GAAG,IAAX;AACA,oBAAM,GAAG,OAAT;AACH;AACJ,WALD;;AAOA,cAAI,QAAJ,EAAc;AACV,iBAAK,mBAAL,GAA2B,MAA3B;AACH;;AAED,eAAK,WAAL,CAAkB,MAAlB;;AAEA,cAAI,MAAM,CAAC,aAAP,IAAwB,OAA5B,EAAqC;AACnC,sBAAU,CAAC,MAAK;AACd,mBAAK,YAAL;AACD,aAFS,EAEP,IAFO,CAAV;AAGD;AACF;AAEF,OA/BD;AAgCD,KAvCD,MAwCI;AACA,WAAK,QAAL,CAAc,IAAd,CAAmB,uDAAnB,EAA4E,IAA5E,EAAkF;AAAE,gBAAQ,EAAE;AAAZ,OAAlF;AACH;AAEJ;;AAED,iBAAe,CAAE,GAAF,EAAS;AACpB,QAAI,QAAQ,GAAG,KAAf;AACA,QAAI,MAAJ;AAEA,OAAG,CAAC,UAAJ,CAAe,OAAf,CAAuB,OAAO,IAAG;AAC7B,UAAI,OAAO,CAAC,IAAR,KAAiB,wBAArB,EAA+C;AAC3C,gBAAQ,GAAG,IAAX;AACA,cAAM,GAAG,OAAT;AACH;AACJ,KALD;;AAOA,QAAI,QAAJ,EAAc;AACV,WAAK,cAAL,CAAqB,MAArB;AACH,KAFD,MAGI;AACA,WAAK,QAAL,CAAc,IAAd,CAAmB,uDAAnB,EAA4E,IAA5E,EAAkF;AAAE,gBAAQ,EAAE;AAAZ,OAAlF;AACH;AACJ;;AAEC,gBAAc,CAAE,MAAF,EAAY;AACtB,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AAEA,SAAK,IAAL,GAAY,KAAK,WAAL,CAAiB,WAAjB,EAAZ,CAHsB,CAItB;;AAEA,QAAI,KAAK,IAAL,KAAc,IAAlB,EAAwB;AACtB,WAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,WAAK,QAAL,CAAc,IAAd,CAAmB,uDAAnB,EAA4E,IAA5E,EAAkF;AAAE,gBAAQ,EAAE;AAAZ,OAAlF;AACA,WAAK,MAAL,CAAY,aAAZ,CAA0B,UAA1B;AACD,KAJD,MAKI;AACA,UAAG,KAAK,QAAR,EAAiB;AACb,YAAI,eAAe,GAAG,MAAM,CAAC,IAAP,CAAY,yCAAZ,CAAtB;AACH;;AAED,UAAI,KAAK,GAAG;AACR,0BAAmB,KAAK,IAAL,CAAU,IAAV,CAAe,SAD1B;AAER,4BAAsB,IAAI,CAAC,KAAL,CAAW,MAAM,CAAC,MAAlB,CAFd;AAGR,4BAAuB,MAAM,CAAC,UAAP,KAAsB,SAAvB,GAAoC,IAAI,CAAC,KAAL,CAAW,MAAM,CAAC,cAAlB,CAApC,GAAwE,IAAI,CAAC,KAAL,CAAW,MAAM,CAAC,UAAlB,CAHtF;AAIR,wBAAuB,MAAM,CAAC,QAAP,KAAoB,SAArB,GAAkC,CAAlC,GAAsC,IAAI,CAAC,KAAL,CAAW,MAAM,CAAC,QAAlB,CAJpD;AAKR,0BAAsB,IAAI,CAAC,KAAL,CAAW,MAAM,CAAC,WAAlB;AALd,OAAZ;AAQA,WAAK,OAAL,CAAa,WAAb,CAAyB,uBAAzB,EAAkD,KAAlD,EAAyD,SAAzD,CAAoE,GAAD,IAAa;AAC5E,aAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC,EAD4E,CAE5E;;AACA,eAAO,CAAC,GAAR,CAAY,gBAAZ,EAA8B,GAAG,CAAC,UAAlC;;AAEA,YAAG,KAAK,QAAR,EAAiB;AACb,yBAAe,CAAC,QAAhB,CAAyB,IAAzB,GAAgC,GAAG,CAAC,UAAJ,CAAe,QAA/C;AACH,SAFD,MAGI;AACA,gBAAM,CAAC,IAAP,CAAa,GAAG,CAAC,UAAJ,CAAe,QAA5B;AACH;AACD;;;;;;AAMO;;AACV,OAlBD,EAkBI,KAAD,IAAe;AACd,aAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACH,OApBD;AAqBH;AACJ;;AAGD,aAAW,CAAE,GAAF,EAAK;AACd,QAAI,QAAQ,GAAG;AACb,yBAAmB,EAAE,KAAK,mBADb;AAEb,eAAS,EAAE,KAAK,WAAL,CAAiB,gBAAjB;AAFE,KAAf;AAKA,QAAI,KAAK,GAAG;AACV,cAAQ,EAAM,GAAG,CAAC,QAAJ,IAAgB,OAAlB,GAA8B,CAA9B,GAAkC,CADpC;AAEV,sBAAgB,EAAK,GAAG,CAAC,cAAJ,IAAsB,SAAxB,GAAsC,CAAtC,GAA4C,GAAG,CAAC,cAAJ,IAAsB,oBAAxB,GAAiD,CAAjD,GAAqD,CAFxG;AAGV,iBAAW,EAAG,GAAG,CAAC,WAHR;AAIV,kBAAY,EAAK,GAAG,CAAC,aAAJ,IAAqB,EAAvB,GAA8B,IAA9B,GAAuC,GAAG,CAAC,aAAJ,IAAqB,OAAvB,GAAmC,CAAnC,GAA0C,GAAG,CAAC,aAAJ,IAAqB,OAAvB,GAAmC,CAAnC,GAAuC,CAJzH;AAKV,cAAQ,EAAI,GAAG,CAAC,YALN;AAMV,YAAM,EAAG,GAAG,CAAC,MANH;AAOV,iBAAW,EAAG,GAAG,CAAC,WAPR;AAQV,cAAQ,EAAE,IAAI,CAAC,SAAL,CAAgB,QAAhB;AARA,KAAZ;AAWE,SAAK,OAAL,CAAa,WAAb,CAAyB,yBAAzB,EAAoD,KAApD,EAA2D,SAA3D,CAAsE,GAAD,IAAa,CAEjF,CAFD,EAEI,KAAD,IAAe;AACd,WAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACH,KAJD;AAKH;;AAEH,oBAAkB,CAAC,OAAD,EAAQ;AAAA;;AACxB,WAAO,IAAI,OAAJ;AAAA,mNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AAC9C,cAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,oBAAzB,EAA8C,OAA9C,EAAuD,SAAvD,CAAkE,GAAD,IAAa;AACzE,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAO,CAAC,GAAG,CAAC,UAAJ,CAAe,CAAf,EAAkB,CAAlB,CAAD,CAAP;AACH;;AACD,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACD,SAXJ,EAWO,KAAD,IAAe;AACd,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAdJ;AAeA,OAhBQ;;AAAA;AAAA;AAAA;AAAA,QAAP;AAiBD;;AACD,0BAAwB,CAAC,OAAD,EAAQ;AAAA;;AAC9B,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AAC9C,cAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,gCAAzB,EAA0D,OAA1D,EAAmE,SAAnE,CAA8E,GAAD,IAAa;AACrF,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAO,CAAC,GAAG,CAAC,UAAJ,CAAe,CAAf,EAAkB,CAAlB,CAAD,CAAP;AACH;;AACD,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACD,SAXJ,EAWO,KAAD,IAAe;AACd,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAdJ;AAeA,OAhBQ;;AAAA;AAAA;AAAA;AAAA,QAAP;AAiBD;;AACD,WAAS,CAAC,QAAD,EAAS;AAAA;;AAChB,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AAC3C,YAAI,SAAJ;;AACA,YAAG,QAAQ,IAAE,CAAb,EAAe;AACb,mBAAS,GAAG,CAAZ;AACD,SAFD,MAEK;AACH,mBAAS,GAAG,EAAZ;AACD;;AACD,YAAI,IAAI,GAAG;AACT,mBAAS,EAAG;AADH,SAAX;;AAGH,cAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,qBAAzB,EAA+C,IAA/C,EAAqD,SAArD,CAAgE,GAAD,IAAa;AACvE,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAO,CAAC,GAAG,CAAC,UAAJ,CAAe,CAAf,CAAD,CAAP;AACH;;AACD,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACD,SAXJ,EAWO,KAAD,IAAe;AACd,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAdJ;AAeA,OAzBQ;;AAAA;AAAA;AAAA;AAAA,QAAP;AA0BD;;AACD,aAAW,CAAE,GAAF,EAAQ,IAAR,EAAY;AACrB,OAAG,CAAC,QAAJ,GAAe,IAAf;AACA,UAAM,SAAS,GAAG,KAAK,MAAL,CAAY,IAAZ,CAAiB,uBAAjB,EAA0C;AAC1D,YAAM,EAAE,KADkD;AAE1D,WAAK,EAAE,KAFmD;AAG1D,UAAI,EAAE;AAAC,gBAAQ,EAAE,GAAG,CAAC,UAAf;AAA2B,YAAI,EAAE;AAAjC;AAHoD,KAA1C,CAAlB;AAMA,aAAS,CAAC,WAAV,GAAwB,SAAxB,CAAkC,MAAM,IAAG;AACzC,aAAO,CAAC,GAAR,CAAY,uBAAZ;AACD,KAFD;AAGD;;AAED,iBAAe;AAIb,QAAI,MAAM,GAAG,IAAI,CAAC,IAAL,CAAU,KAAK,IAAL,CAAU,UAAV,EAAsB,MAAtB,GAA6B,CAAvC,IAA0C,CAAvD;AACA,SAAK,IAAL,CAAU,UAAV,EAAsB,OAAtB,CAA8B,SAAS,QAAT,CAAkB,OAAlB,EAA2B,KAA3B,EAAgC;AAC5D,UAAG,KAAK,IAAE,MAAV,EAAiB;AACf,eAAO,CAAC,aAAR,CAAsB,KAAtB,CAA4B,UAA5B,GAAuC,QAAvC;AACD;AACF,KAJD;AAKA,SAAK,IAAL,CAAU,UAAV,EAAsB,OAAtB,CAA8B,SAAS,QAAT,CAAkB,OAAlB,EAA2B,KAA3B,EAAgC;AAC5D,UAAG,KAAK,IAAE,MAAV,EAAiB;AACf,eAAO,CAAC,aAAR,CAAsB,KAAtB,CAA4B,UAA5B,GAAuC,QAAvC;AACD;AACF,KAJD;AAKD;;AACD,UAAQ;AACN,SAAK,EAAL,CAAQ,UAAR,EAAoB,OAApB,CAA4B,OAAO,IAAG;AAClC,aAAO,CAAC,QAAR;AACH,KAFD,EADM,CAIN;AACA;AACA;AACA;AACD;;AACD,WAAS;AACP,SAAK,EAAL,CAAQ,UAAR,EAAoB,OAApB,CAA4B,OAAO,IAAG;AACpC,aAAO,CAAC,SAAR;AACH,KAFC,EADO,CAIP;AACA;AACA;AACD;;AACD,eAAa,CAAC,KAAD,EAAO,GAAP,EAAU;AAErB,QAAG,KAAK,CAAC,OAAN,IAAiB,eAApB,EAAoC;AAClC;AACA,SAAG,CAAC,OAAJ,CAAY,OAAO,IAAG;AACpB,eAAO,CAAC,OAAR,GAAkB,eAAlB;AACA,eAAO,CAAC,IAAR,GAAe,eAAf;AACD,OAHD;AAIA,WAAK,CAAC,OAAN,GAAgB,wBAAhB;AACA,WAAK,CAAC,IAAN,GAAa,wBAAb;AACD,KARD,MAQK;AACH,WAAK,CAAC,OAAN,GAAgB,eAAhB;AACA,WAAK,CAAC,IAAN,GAAa,eAAb;AACD;AACF;;AAED,cAAY;AACV,UAAM,CAAC,IAAP,CAAY,+FAAZ,EADU,CAEV;AACH;;AAEG,iBAAe;AACb,QAAI,SAAS,GAAG,CAAhB;;AAEA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,IAAI,KAAK,OAAL,CAAa,MAAb,GAAsB,CAA3C,EAA8C,CAAC,EAA/C,EAAmD;AACjD,WAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,IAAI,KAAK,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,MAA3B,GAAoC,CAAzD,EAA4D,CAAC,EAA7D,EAAiE;AAC7D,YAAI,KAAK,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,IAA9B,IAAsC,wBAA1C,EAAoE;AAChE,mBAAS;AACZ;AACJ;AACF;;AAED,QAAI,SAAS,IAAI,CAAjB,EAAoB;AAClB,WAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,WAAK,QAAL,CAAc,IAAd,CAAmB,8CAAnB,EAAmE,IAAnE,EAAyE;AACrE,gBAAQ,EAAE;AAD2D,OAAzE;AAIA,aAAO,KAAP;AACD,KAPD,MAOO;AACL,YAAM,SAAS,GAAG,KAAK,MAAL,CAAY,IAAZ,CAAiB,yFAAjB,EAAwC;AACxD,cAAM,EAAE,KADgD;AAExD,aAAK,EAAE,OAFiD;AAGxD,YAAI,EAAE;AAAE,cAAI,EAAE;AAAR;AAHkD,OAAxC,CAAlB;AAMA,eAAS,CAAC,WAAV,GAAwB,SAAxB,CAAkC,MAAM,IAAG;AACzC,eAAO,CAAC,GAAR,CAAY,iBAAZ,EAA+B,MAA/B;;AACA,YAAI,MAAJ,EAAY;AACV,eAAK,MAAL,CAAY,MAAZ;AACA,eAAK,WAAL,CAAkB,MAAlB;;AAEA,cAAI,MAAM,CAAC,aAAP,IAAwB,OAA5B,EAAqC;AACnC,sBAAU,CAAC,MAAK;AACd,mBAAK,YAAL;AACD,aAFS,EAEP,IAFO,CAAV;AAGD;AACF;AAEF,OAbD;AAcD;AACF;;AAEK,QAAM,CAAE,eAAF,EAAiB;AAAA;;AAAA;AACzB,YAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AAEA,UAAI,IAAJ;AACI,UAAI,SAAS,GAAG,CAAhB;AACA,UAAI,SAAS,GAAG,EAAhB;AACA,UAAI,IAAJ;AACA,UAAI,MAAJ;AACA,UAAI,QAAJ;AACA,UAAI,GAAJ;AACA,UAAI,SAAJ;;AAEA,WAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,IAAI,MAAI,CAAC,OAAL,CAAa,MAAb,GAAsB,CAA3C,EAA8C,CAAC,EAA/C,EAAmD;AAC/C,aAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,IAAI,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,MAA3B,GAAoC,CAAzD,EAA4D,CAAC,EAA7D,EAAiE;AAC7D,cAAI,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,IAA9B,IAAsC,wBAA1C,EAAoE;AAChE,qBAAS;AACZ;AACJ;AACJ;;AAED,aAAO,CAAC,GAAR,CAAY,eAAZ,EAA6B,SAA7B,EAAwC,SAAxC;;AAEA,UAAI,SAAS,IAAI,CAAjB,EAAoB;AAChB,cAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,cAAI,CAAC,QAAL,CAAc,IAAd,CAAmB,8CAAnB,EAAmE,IAAnE,EAAyE;AACrE,kBAAQ,EAAE;AAD2D,SAAzE;;AAGA,eAAO,KAAP;AACH,OAND,MAMO;AACH,YAAI,MAAI,CAAC,QAAT,EAAmB;AACf,cAAI,eAAe,GAAG,MAAM,CAAC,IAAP,CAAY,gCAAZ,CAAtB;AACH;;AAED,YAAI,GAAG,MAAI,CAAC,WAAL,CAAiB,WAAjB,EAAP;AACA,YAAI,WAAW,GAAI,eAAe,CAAC,MAAhB,IAA0B,EAA3B,GAAiC,qBAAjC,GAAyD,eAAe,CAAC,MAA3F;AACA,YAAI,aAAa,GAAI,eAAe,CAAC,MAAhB,IAA0B,EAA3B,GAAiC,EAAjC,GAAsC,eAAe,CAAC,MAAhB,CAAuB,UAAvB,CAAkC,GAAlC,EAAuC,GAAvC,CAA1D;;AACA,aAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,IAAI,MAAI,CAAC,OAAL,CAAa,MAAb,GAAsB,CAA3C,EAA8C,CAAC,EAA/C,EAAmD;AAC/C,eAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,IAAI,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,MAA3B,GAAoC,CAAzD,EAA4D,CAAC,EAA7D,EAAiE;AAC7D,gBAAI,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,IAA9B,IAAsC,wBAA1C,EAAoE;AAChE,kBAAI,KAAJ;AAEA,oBAAM,sBAAsB,GAAG,eAAe,CAAC,WAA/C,CAHgE,CAIhE;;AAEA,kBAAI,MAAI,CAAC,SAAL,CAAe,UAAf,CAA0B,kBAA1B,IAAgD,CAApD,EAAuD;AACnD,qBAAK,SAAS,MAAI,CAAC,UAAL,CAAgB,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,CAAhB,CAAd;AACA,oBAAI,OAAO,GAAG;AACV,sCAAoB,EAAE,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,UAD1C;AAEV,8BAAY,EAAE,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,WAFlC;AAGV,uBAAK,EAAE,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,MAH3B;AAIV,kCAAgB,EAAE,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B;AAJtC,iBAAd;AAOA,sBAAI,CAAC,mBAAL,GAA2B,OAA3B;AACA,mBAAG,SAAS,MAAI,CAAC,MAAL,CAAY,OAAZ,CAAZ;AACA,yBAAS,GAAG,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,EAAU,GAAtB;AACA,sBAAM,GAAG,uCAAuC,sBAAhD,CAZmD,CAanD;AACA;;AACA,wBAAQ,GAAG,qBAAqB,aAArB,GAAqC,GAArC,GAA2C,4DAAU,CAAC,IAAI,IAAJ,EAAD,EAAa,QAAb,EAAuB,IAAvB,CAArD,GAAoF,GAApF,GAA0F,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,MAAnI;AAEH,eAjBD,MAiBO;AACH,sBAAM,GAAG,mCAAmC,sBAA5C,CADG,CAEH;AACA;;AACA,wBAAQ,GAAG,iBAAiB,aAAjB,GAAiC,GAAjC,GAAuC,4DAAU,CAAC,IAAI,IAAJ,EAAD,EAAa,QAAb,EAAuB,IAAvB,CAAjD,GAAgF,GAAhF,GAAsF,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,EAA8B,MAA/H;AACA,yBAAS,GAAG,CAAZ;AACH;;AACD,kBAAI,GAAG,MAAI,CAAC,WAAL,CAAiB,MAAI,CAAC,OAAL,CAAa,CAAb,CAAjB,EAAkC,MAAI,CAAC,OAAL,CAAa,CAAb,EAAgB,UAAhB,CAA2B,CAA3B,CAAlC,EAAiE,KAAjE,EAAwE,MAAI,CAAC,SAAL,CAAe,UAAf,CAA0B,kBAAlG,EAAsH,SAAtH,CAAP;AACA,uBAAS,CAAC,IAAV,CAAe,IAAf;AACH;AACJ;AACJ;;AAGD,YAAI,GAAG,MAAI,CAAC,WAAL,CAAiB,WAAjB,EAAP;AAEA,eAAO,CAAC,GAAR,CAAY,cAAZ,EAA4B,QAA5B;AAEA,YAAI,QAAQ,GAAG;AACX,kBAAQ,EAAE;AACN,gBAAI,EAAE;AADA,WADC;AAIX,cAAI,EAAE;AACF,0BAAc,CAAC;AACX,2BAAa;AACT,4BAAY,QADH;AAET,kCAAkB,SAFT;AAGT;AACA,+BAAe,WAJN;AAKT,8BAAc,mBALL;AAMT,yBAAS,4DAAU,CAAC,IAAI,IAAJ,EAAD,EAAa,YAAb,EAA2B,IAA3B,CANV;AAOT,yBAAS,YAPA;AAQT,0BAAU;AARD,eADF;AAWX,2BAAa,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,SAAL,CAAe,SAAf,CAAX;AAXF,aAAD;AADZ;AAJK,SAAf;AAqBA,eAAO,CAAC,GAAR,CAAY,0EAAoB,QAApB,GAA+B,MAA3C;AACA,cAAI,CAAC,QAAL,GAAgB,0EAAoB,QAApB,GAA+B,MAA/C;AACA,cAAI,CAAC,QAAL,GAAgB,2EAA2E,QAA3E,GAAsF,MAAtG;AAEA,YAAI,GAAG,SAAS,MAAI,CAAC,SAAL,CAAe,QAAf,EAAyB,MAAI,CAAC,QAA9B,CAAhB,CA5EG,CA8EH;;AACA,YAAG,MAAI,CAAC,QAAR,EAAiB;AACb,yBAAe,CAAC,QAAhB,CAAyB,IAAzB,GAAgC,MAAI,CAAC,QAArC;AACH,SAFD,MAGI;AACA,gBAAM,CAAC,IAAP,CAAa,MAAI,CAAC,QAAlB;AACH;AACJ;;AAED,aAAO,KAAP;AAEJ,YAAI,CAAC,IAAL,GAAY,MAAI,CAAC,WAAL,CAAiB,WAAjB,EAAZ;;AAEA,UAAI,MAAI,CAAC,IAAL,KAAc,IAAlB,EAAwB;AACpB,cAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,cAAI,CAAC,QAAL,CAAc,IAAd,CAAmB,kDAAnB,EAAuE,IAAvE,EAA6E;AACzE,kBAAQ,EAAE;AAD+D,SAA7E;;AAGA,cAAI,CAAC,MAAL,CAAY,aAAZ,CAA0B,UAA1B;AACH,OAND,MAMO,CAEN;AA/HwB;AAgI5B;;AAEH,WAAS,CAAC,QAAD,EAAW,OAAX,EAAkB;AAAA;;AACzB;AACA;AACA;;AAEA;;;;AAIE;AAGF,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AAE3C,cAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,cAAI,CAAC,OAAL,GAAe,IAAf;;AACH,cAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,qBAAzB,EAA+C,QAA/C,EAAyD,SAAzD,CAAoE,GAAD,IAAa;AAC3E,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,kBAAI,CAAC,OAAL,GAAe,KAAf;AACA,mBAAO,CAAC,GAAG,CAAC,GAAL,CAAP;AACH;;AACD,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACD,SAbJ,EAaO,KAAD,IAAe;AACd,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAhBJ;AAiBA,OArBQ;;AAAA;AAAA;AAAA;AAAA,QAAP;AAsBD;;AACD,aAAW,CAAC,QAAD,EAAU,UAAV,EAAqB,KAArB,EAA2B,cAA3B,EAA0C,GAA1C,EAA6C;AACtD,QAAI,SAAJ;AACA,QAAI,IAAI,GAAG,IAAI,IAAJ,EAAX;;AACA,QAAG,cAAc,IAAE,CAAnB,EAAqB;AACnB,eAAS,GAAG;AACV,qBAAa;AACT,oBAAU,QAAQ,CAAC,MAAT,CAAgB,CAAhB,EAAmB;AADpB,SADH;AAIV,2BAAkB,CACd;AAAC,4BAAkB,OAAnB;AAA4B,kBAAQ,QAAQ,CAAC;AAA7C,SADc,EAEd;AAAC,4BAAkB,QAAnB;AAA6B,kBAAQ,QAAQ,CAAC;AAA9C,SAFc,EAGd;AAAC,4BAAkB,SAAnB;AAA8B,kBAAQ,QAAQ,CAAC;AAA/C,SAHc,EAId;AAAC,4BAAkB,KAAnB;AAA0B,kBAAQ,QAAQ,CAAC;AAA3C,SAJc,CAJR;AAUV,kBAAU,CACN;AACA;AACF;AAAC,kBAAQ,IAAT;AAAe,sBAAY,aAA3B;AAA0C,qBAAW,QAAQ,CAAC,MAAT,CAAgB;AAArE,SAHQ,EAIR;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,WAA5B;AAAyC,qBAAW,KAAK,SAAL,CAAe,UAAf,CAA0B;AAA9E,SAJQ,EAKR;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,cAA5B;AAA4C,qBAAW,UAAU,CAAC;AAAlE,SALQ,EAMR;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,mBAA5B;AAAiD,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAA5D,SANQ,CAVA;AAkBV,0BAAkB,CAChB;AAAC,sBAAY,iCAAb;AAAgD,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,MAAlC;AAA3D,SADgB,EAEhB;AAAC,sBAAY,UAAb;AAAyB,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAApC,SAFgB,EAGhB;AAAC,sBAAY,KAAb;AAAoB,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,IAAlC;AAA/B,SAHgB,CAKhB;AALgB,SAlBR;AA0BV,qBAAa,CACT;AAAC,oBAAU,EAAX;AAAc,sBAAY,UAA1B;AAAsC,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,SAAlC,CAAlD;AAAgG,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA5G,SADS,EAET;AAAE,oBAAU,EAAZ;AAAe,sBAAY,UAA3B;AAAuC,sBAAW,OAAlD;AAA2D,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,gBAAlC;AAAvE,SAFS,EAGT;AAAE,oBAAU,EAAZ;AAAe,sBAAY,mBAA3B;AAAgD,sBAAW,EAA3D;AAA+D,sBAAY,KAAK,iBAAL,CAAuB,QAAQ,CAAC,MAAT,CAAgB,MAAvC;AAA3E,SAHS,CAIT;AAGA;AAPS,SA1BH;AAmCV,mBAAW;AACP,4BAAkB;AAAE,wBAAY,yBAAd;AAAyC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,UAAlC;AAAjD,WADX;AAEP,yBAAgB;AAAE,wBAAY,oBAAd;AAAoC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA5C,WAFT;AAGP,mBAAU;AAAE,wBAAY,OAAd;AAAuB,qBAAQ,UAAU,CAAC;AAA1C,WAHH;AAIP,kBAAS;AAAE,wBAAY,MAAd;AAAsB,qBAAS,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAZ,CAAX,CAAX,GAA2C;AAA1E,WAJF;AAKP,qBAAY;AAAE,wBAAY,eAAd;AAA+B,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAAvC;AALL,SAnCD;AA0CV,6BAAoB;AAChB,oBAAU,CACN;AAAE,qBAAS,UAAX;AAAuB,qBAAS;AAAhC,WADM,EAEN;AAAE,qBAAS,gBAAX;AAA6B,qBAAS;AAAtC,WAFM,EAGN;AAAE,qBAAS,cAAX;AAA2B,qBAAS;AAApC,WAHM,EAIN;AAAE,qBAAS,WAAX;AAAwB,qBAAS;AAAjC,WAJM,EAKN;AAAE,qBAAS,uBAAX;AAAoC,qBAAS;AAA7C,WALM,EAMN;AAAE,qBAAS,mBAAX;AAAgC,qBAAS;AAAzC,WANM,CADM;AAShB,kBAAO;AATS,SA1CV;AAsDV,eAAM;AACJ,qBAAU,UAAU,CAAC,OADjB;AAEJ,mBAAS;AAFL;AAtDI,OAAZ;AA2DD,KA5DD,MA4DK;AACH,eAAS,GAAG;AACV,qBAAa;AACT,oBAAU,QAAQ,CAAC,MAAT,CAAgB,CAAhB,EAAmB;AADpB,SADH;AAIV,2BAAkB,CACd;AAAC,4BAAkB,OAAnB;AAA4B,kBAAQ,QAAQ,CAAC;AAA7C,SADc,EAEd;AAAC,4BAAkB,QAAnB;AAA6B,kBAAQ,QAAQ,CAAC;AAA9C,SAFc,EAGd;AAAC,4BAAkB,SAAnB;AAA8B,kBAAQ,QAAQ,CAAC;AAA/C,SAHc,EAId;AAAC,4BAAkB,KAAnB;AAA0B,kBAAQ,QAAQ,CAAC;AAA3C,SAJc,CAJR;AAUV,kBAAU,CACN;AACA;AACA;AAAC,kBAAQ,IAAT;AAAe,sBAAY,aAA3B;AAA0C,qBAAW,QAAQ,CAAC,MAAT,CAAgB;AAArE,SAHM,EAIN;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,WAA5B;AAAyC,qBAAW,KAAK,SAAL,CAAe,UAAf,CAA0B;AAA9E,SAJM,EAKN;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,cAA5B;AAA4C,qBAAW,UAAU,CAAC;AAAlE,SALM,EAMN;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,mBAA5B;AAAiD,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAA5D,SANM,CAVA;AAkBV,0BAAkB,CACd;AAAC,sBAAY,gCAAb;AAA+C,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,KAAlC;AAA1D,SADc,EAEd;AAAC,sBAAY,sBAAb;AAAqC,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAAhD,SAFc,EAGd;AAAC,sBAAY,KAAb;AAAoB,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,IAAlC;AAA/B,SAHc,CAId;AAJc,SAlBR;AAyBV,qBAAa,CACT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,sBAA5B;AAAoD,sBAAW,EAA/D;AAAmE,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA/E,SADS,EAET;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,mBAA5B;AAAiD,sBAAW,EAA5D;AAAgE,sBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA3E,SAFS,EAGT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,kBAA5B;AAAgD,sBAAW,EAA3D;AAA+D,sBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAA1E,SAHS,EAIT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,UAA5B;AAAwC,sBAAW,OAAnD;AAA4D,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,gBAAlC;AAAxE,SAJS,EAKT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,mBAA5B;AAAiD,sBAAW,EAA5D;AAAgE,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,MAAlC;AAA5E,SALS,CAMT;AACA;AAPS,SAzBH;AAkCV,mBAAW;AACP,4BAAkB;AAAE,wBAAY,wBAAd;AAAwC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,cAAlC;AAAhD,WADX;AAEP,mBAAU;AAAE,wBAAY,OAAd;AAAuB,qBAAQ,UAAU,CAAC;AAA1C,WAFH;AAGP;AACA,qBAAY;AAAE,wBAAY,iBAAd;AAAiC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAAzC,WAJL;AAKP,yBAAgB;AAAE,wBAAY,oBAAd;AAAoC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA5C,WALT;AAMP,mBAAU;AAAE,wBAAY,OAAd;AAAuB,qBAAS,cAAc,CAAC,IAAD;AAA9C;AANH,SAlCD;AA0CV,eAAM;AACJ,qBAAU,MADN;AAEJ,mBAAS;AAFL;AA1CI,OAAZ;AA+CD;;AAED,WAAO,SAAP;AACD;;AACK,YAAU,CAAC,UAAD,EAAW;AAAA;;AAAA;AACzB,UAAI,KAAK,GAAS,EAAlB;AACA,UAAI,YAAY,GAAG,EAAnB;AACA,UAAI,IAAJ,CAHyB,CAIzB;;AACA,UAAI,KAAK,GAAG;AACV,aAAK,EAAG,UAAU,CAAC,MADT;AAEV,mBAAW,EAAG,UAAU,CAAC,WAFf;AAGV,gBAAQ,EAAG,UAAU,CAAC,WAHZ;AAIV,iBAAS,EAAG,UAAU,CAAC;AAJb,OAAZ;AAMA,aAAO,CAAC,GAAR,CAAY,WAAZ;AACA,WAAK,SAAU,MAAI,CAAC,gBAAL,CAAsB,KAAtB,CAAf;;AACA,WAAI,IAAI,CAAC,GAAC,CAAV,EAAY,CAAC,IAAE,KAAK,CAAC,MAAN,GAAa,CAA5B,EAA8B,CAAC,EAA/B,EAAkC;AAChC,YAAI,GAAG;AAAC,kBAAQ,CACZ;AAAC,mBAAO,CAAC,GAAC;AAAV,WADY,EAEZ;AAAC,mBAAO,MAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,SAA5C;AAAR,WAFY,EAGZ;AAAC,mBAAO,MAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,QAA5C;AAAR,WAHY,EAIZ;AAAC,mBAAO,MAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,OAA5C;AAAR,WAJY,EAKZ;AAAC,mBAAO,MAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,OAA5C;AAAR,WALY,EAMZ;AAAC,mBAAO,MAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,WAA5C;AAAR,WANY;AAAT,SAAP;AAQA,oBAAY,CAAC,IAAb,CAAkB,IAAlB;AACD;;AACD,aAAO,YAAP;AAxByB;AAyB1B;;AACD,kBAAgB,CAAC,IAAD,EAAK;AAAA;;AACnB,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AAC9C,cAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,0BAAzB,EAAoD,IAApD,EAA0D,SAA1D,CAAqE,GAAD,IAAa;AAC5E,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAO,CAAC,GAAG,CAAC,UAAL,CAAP;AACH;;AACD,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACD,SAXJ,EAWO,KAAD,IAAe;AACd,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAdJ;AAeA,OAhBQ;;AAAA;AAAA;AAAA;AAAA,QAAP;AAiBD;;AACC,QAAM,CAAC,IAAD,EAAK;AAAA;;AACP,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AACzC,cAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,gBAAzB,EAA0C,IAA1C,EAAgD,SAAhD,CAA2D,GAAD,IAAa;AACvE,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,kBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAO,CAAC,GAAG,CAAC,UAAL,CAAP;AACH;;AACD,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACC,SAXD,EAWI,KAAD,IAAe;AACd,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,gBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAdD;AAeH,OAhBM;;AAAA;AAAA;AAAA;AAAA,QAAP;AAiBH;;AACH,mBAAiB,CAAC,SAAD,EAAU;AACzB,WAAO,KAAK,EAAL,CAAQ,SAAR,CAAkB,SAAlB,EAA6B,KAA7B,EAAoC,QAApC,EAA8C,OAA9C,CAAP;AACD;;AAED,4BAA0B,CAAC,SAAD,EAAU;AAClC,WAAO,KAAK,EAAL,CAAQ,SAAR,CAAkB,SAAlB,EAA6B,KAA7B,EAAoC,QAApC,EAA8C,OAA9C,CAAP;AACD;;AAvvBwC;;;mBAA9B,gCAA8B;AAAA;;;QAA9B;AAA8B;AAAA;AAAA;wEAEZ;wEACK;wEACA;;;;;;;;;;;;;;;;ACrCpC;AAEI;AACI;AACA;AACF;AACF;AAAI;AACR;AACA;AACI;AAgEJ;AAEA;AACI;AAsDJ;AAEA;AAEI;AAAoD;AAAA,eAAS,qBAAT;AAA0B,OAA1B;AAA4B;AAAa;AACjG;;;;AApIkC;AAAA;AACA;AAAA;AAK6B;AAAA;AAmE7B;AAAA;;;;;;;ADqtB5B,MAAO,uBAAP,CAA8B;AAKlC,cACS,SADT,EAEkC,OAFlC,EAGU,MAHV,EAIU,MAJV,EAKU,WALV,EAMS,OANT,EAOmB,KAPnB,EAQU,OARV,EASU,QATV,EAUU,WAVV,EAWU,EAXV,EAYS,MAZT,EAY0B;AAXjB;AACyB;AACxB;AACA;AACA;AACD;AACU;AACT;AACA;AACA;AACA;AACD;AA+BP,wBAAuB,IAAvB;AACA,uBAAmB,EAAnB;AACA,sBAAa,EAAb;AACA,eAAc,IAAd;AAGA,mBAAmB,KAAnB;AApCE;;AAEJ,WAAS;AACP,SAAK,SAAL,CAAe,KAAf;AACD;;AAiCC,UAAQ;AACJ,SAAK,SAAL,GAAiB,KAAK,WAAL,CAAiB,gBAAjB,EAAjB;AACA,QAAI,IAAI,GAAG,KAAK,OAAL,CAAa,MAAb,CAAX;;AACA,SAAI,IAAI,GAAR,IAAe,IAAf,EAAoB;AAChB,WAAK,WAAL,CAAiB,GAAjB,IAAwB,IAAI,CAAC,GAAD,CAA5B;AACF;;AAEF,WAAO,CAAC,GAAR,CAAY,aAAZ,EAA2B,KAAK,WAAhC;;AAGA,SAAK,MAAL,CAAY,MAAZ,CAAmB,SAAnB,CAA8B,CAAD,IAAc;AACvC,WAAK,UAAL,GAAkB,MAAM,CAAC,KAAK,OAAL,CAAa,UAAb,CAAD,CAAxB;AACA,WAAK,WAAL,CAAkB,KAAK,UAAvB;;AAEA,UAAI,YAAY,CAAC,OAAb,CAAqB,KAArB,MAAgC,SAAhC,IAA6C,YAAY,CAAC,OAAb,CAAqB,KAArB,MAAgC,IAAjF,EAAuF;AACnF,aAAK,GAAL,GAAW,IAAX;AACH,OAFD,MAGI;AACA,aAAK,GAAL,GAAW,YAAY,CAAC,OAAb,CAAqB,KAArB,CAAX;AACH;;AAED,YAAM,GAAG,GAAG,YAAY,CAAC,OAAb,CAAqB,GAArB,CAAZ,CAXuC,CAYvC;;AAEA,UAAI,cAAc,GAAG,EAArB;;AACA,UAAI,GAAG,KAAK,SAAR,IAAqB,GAAG,KAAK,IAAjC,EAAuC;AACnC,eAAO,CAAC,GAAR,CAAY,QAAZ;AACA,sBAAc,CAAC,IAAf,CAAqB,KAAK,UAA1B;AACH,OAHD,MAII;AACA,sBAAc,GAAG,GAAG,CAAC,KAAJ,CAAU,GAAV,CAAjB,CADA,CAEA;;AACA,eAAO,CAAC,GAAR,CAAY,cAAc,CAAC,OAAf,CAAwB,MAAM,CAAC,KAAK,UAAN,CAA9B,CAAZ;;AAGA,YAAI,cAAc,CAAC,OAAf,CAAwB,MAAM,CAAC,KAAK,UAAN,CAA9B,KAAqD,CAAC,CAA1D,EAA6D;AACzD,wBAAc,CAAC,IAAf,CAAqB,KAAK,UAA1B;AACH;AACJ;;AAED,kBAAY,CAAC,OAAb,CAAqB,GAArB,EAA0B,cAAc,CAAC,IAAf,CAAoB,GAApB,CAA1B;AACH,KA/BD,EAVI,CA2CJ;AACA;AACA;;;AAEA,UAAM,OAAO,GAAG,8CAAiB,MAAM,CAAC,SAAP,CAAiB,SAAlC,CAAhB;AACA,UAAM,GAAG,GAAG,OAAO,CAAC,UAAR,EAAZ;AAEA,SAAK,QAAL,GAAgB,GAAG,CAAC,IAAJ,IAAY,QAAZ,GAAuB,IAAvB,GAA8B,KAA9C;AACH;;AAED,YAAU;AACZ,SAAK,MAAL,CAAY,aAAZ,CAA0B,iBAA1B;AACE;;AAEA,aAAW,CAAE,EAAF,EAAW;AAClB,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,SAAK,WAAL,CAAiB,UAAjB,CAA4B,wBAAwB,EAAE,EAAtD,EAA2D,SAA3D,CAAsE,GAAD,IAAa;AAC9E,WAAK,UAAL,GAAkB,GAAG,CAAC,UAAJ,CAAe,CAAf,EAAkB,CAAlB,CAAlB;AACA,WAAK,UAAL,CAAgB,MAAhB,GAAyB,IAAI,CAAC,KAAL,CAAY,GAAG,CAAC,UAAJ,CAAe,CAAf,EAAkB,CAAlB,EAAqB,MAAjC,CAAzB;AACA,WAAK,UAAL,CAAgB,KAAhB,GAAwB,IAAI,CAAC,KAAL,CAAY,GAAG,CAAC,UAAJ,CAAe,CAAf,EAAkB,CAAlB,EAAqB,KAAjC,CAAxB,CAH8E,CAI9E;;AACA,UAAI,KAAK,UAAL,CAAgB,KAAhB,KAA0B,IAA9B,EAAoC;AAChC,aAAK,YAAL,GAAoB,IAApB;AACH,OAFD,MAGI;AACA,YAAI,KAAK,UAAL,CAAgB,KAAhB,CAAsB,MAAtB,IAAgC,CAApC,EAAuC;AACnC,eAAK,YAAL,GAAoB,KAAK,UAAL,CAAgB,KAAhB,CAAsB,CAAtB,EAAyB,QAA7C;AACH,SAFD,MAGI;AACA,eAAK,YAAL,GAAoB,IAApB;AACH;AACJ;;AAED,aAAO,CAAC,GAAR,CAAY,uBAAZ,EAAqC,KAAK,UAAL,CAAgB,KAArD;AAGA,WAAK,UAAL,GAAkB,EAAlB;AACA,WAAK,UAAL,CAAgB,MAAhB,CAAuB,OAAvB,CAA+B,OAAO,IAAG;AACrC;AACA,aAAK,UAAL,CAAgB,IAAhB,CAAqB;AACjB,gBAAM,EAAE,OAAO,CAAC,QADC;AAEjB,oBAAU,EAAE,OAAO,CAAC;AAFH,SAArB;AAIH,OAND;AAQA,WAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AAEA,WAAK,KAAL,GAAa,KAAK,UAAL,CAAgB,GAAhB,CAAoB,IAAI,IAAI,IAAI,yDAAJ,CAAc;AAAE,WAAG,EAAE,IAAI,CAAC,MAAZ;AAAoB,aAAK,EAAE,IAAI,CAAC;AAAhC,OAAd,CAA5B,CAAb;AACH,KAhCD,EAgCI,KAAD,IAAe;AACd,WAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACH,KAlCD;AAmCH;;AAED,cAAY;AACV,UAAM,CAAC,IAAP,CAAY,+FAAZ;AACH;;AAEC,yBAAuB;AACrB,UAAM,SAAS,GAAG,KAAK,MAAL,CAAY,IAAZ,CAAiB,8GAAjB,EAA+C;AAC/D,YAAM,EAAE,KADuD;AAE/D,WAAK,EAAE,OAFwD;AAG/D,UAAI,EAAE;AAAE,YAAI,EAAE;AAAR;AAHyD,KAA/C,CAAlB;AAMA,aAAS,CAAC,WAAV,GAAwB,SAAxB,CAAkC,MAAM,IAAG;AACzC,aAAO,CAAC,GAAR,CAAY,yBAAZ,EAAuC,MAAvC;;AACA,UAAI,MAAJ,EAAY;AACV;AAEA,aAAK,eAAL,GAHU,CAKV;;AAEA,aAAK,mBAAL,GAA2B,KAAK,WAAL,CAAiB,QAA5C;AAEA,aAAK,WAAL,CAAkB,MAAlB;;AAEA,YAAI,MAAM,CAAC,aAAP,IAAwB,OAA5B,EAAqC;AACnC,oBAAU,CAAC,MAAK;AACd,iBAAK,YAAL;AACD,WAFS,EAEP,IAFO,CAAV;AAGD;AACF;AAEF,KApBD;AAqBD;;AAED,iBAAe;AACb,UAAM,SAAS,GAAG,KAAK,MAAL,CAAY,IAAZ,CAAiB,yFAAjB,EAAwC;AACxD,YAAM,EAAE,KADgD;AAExD,WAAK,EAAE,OAFiD;AAGxD,UAAI,EAAE;AAAE,YAAI,EAAE;AAAR;AAHkD,KAAxC,CAAlB;AAMA,aAAS,CAAC,WAAV,GAAwB,SAAxB,CAAkC,MAAM,IAAG;AACzC,aAAO,CAAC,GAAR,CAAY,iBAAZ,EAA+B,MAA/B;;AACA,UAAI,MAAJ,EAAY;AACV,aAAK,MAAL,CAAY,MAAZ;AACA,aAAK,WAAL,CAAkB,MAAlB;AACD;AAEF,KAPD;AAQD;;AAEK,QAAM,CAAC,eAAD,EAAgB;AAAA;;AAAA;;;AACxB,aAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AAEA,aAAI,CAAC,IAAL,GAAY,OAAI,CAAC,WAAL,CAAiB,WAAjB,EAAZ;AACA,aAAO,CAAC,GAAR,CAAY,OAAI,CAAC,IAAjB;;AAEA,UAAI,OAAI,CAAC,QAAT,EAAmB;AACf,YAAI,eAAe,GAAG,MAAM,CAAC,IAAP,CAAY,gCAAZ,CAAtB;AACH;;AAED,UAAI,IAAJ;AACA,UAAI,SAAS,GAAG,EAAhB;AACA,UAAI,KAAJ;AACA,UAAI,IAAJ;AACA,UAAI,MAAJ;AACA,UAAI,QAAJ;AACA,UAAI,GAAJ;AACA,UAAI,SAAJ;AACA,aAAI,CAAC,SAAL,GAAiB,OAAI,CAAC,WAAL,CAAiB,gBAAjB,EAAjB;AACA,aAAI,CAAC,OAAL,GAAe,OAAI,CAAC,SAAL,CAAe,KAA9B;AACA,UAAI,GAAG,OAAI,CAAC,WAAL,CAAiB,WAAjB,EAAP;AACA,UAAI,WAAW,GAAI,eAAe,CAAC,MAAhB,IAA0B,EAA3B,GAAiC,qBAAjC,GAAyD,eAAe,CAAC,MAA3F;AACA,UAAI,aAAa,GAAI,eAAe,CAAC,MAAhB,IAA0B,EAA3B,GAAiC,EAAjC,GAAsC,eAAe,CAAC,MAAhB,CAAuB,UAAvB,CAAkC,GAAlC,EAAuC,GAAvC,CAA1D;AACA,aAAO,CAAC,GAAR,CAAY,IAAZ;AAEA,YAAM,sBAAsB,GAAG,eAAe,CAAC,WAA/C,CAzBwB,CA0BxB;;AAEA,UAAI,OAAI,CAAC,SAAL,CAAe,UAAf,CAA0B,kBAA1B,IAAgD,CAApD,EAAuD;AACnD,aAAK,SAAS,OAAI,CAAC,UAAL,CAAgB,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAAlC,CAAd;AACA,YAAI,OAAO,GAAG;AACV,8BAAoB,EAAE,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAAF,CAAW,UADvC;AAEV,sBAAY,EAAE,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAAF,CAAW,WAF/B;AAGV,eAAK,EAAE,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAAF,CAAW,MAHxB;AAIV,0BAAgB,EAAE,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAAF,CAAW;AAJnC,SAAd;AAMA,eAAI,CAAC,mBAAL,GAA2B,OAA3B;AACA,WAAG,SAAS,OAAI,CAAC,MAAL,CAAY,OAAZ,CAAZ;AACA,iBAAS,GAAG,GAAG,CAAC,CAAD,CAAH,CAAO,CAAP,EAAU,GAAtB;AACA,cAAM,GAAG,uCAAuC,EAAvC,GAA4C,sBAArD,CAXmD,CAYnD;AACA;AACA;;AACA,gBAAQ,GAAG,qBAAqB,aAArB,GAAqC,GAArC,GAA2C,4DAAU,CAAC,IAAI,IAAJ,EAAD,EAAa,QAAb,EAAuB,IAAvB,CAArD,GAAoF,GAApF,IAA0F,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAAF,CAAW,MAArH,CAAX;AACH,OAhBD,MAgBO;AACH,cAAM,GAAG,2CAA2C,EAA3C,GAAgD,sBAAzD,CADG,CAEH;AACA;;AACA,gBAAQ,GAAG,iBAAiB,aAAjB,GAAiC,GAAjC,GAAuC,4DAAU,CAAC,IAAI,IAAJ,EAAD,EAAa,QAAb,EAAuB,IAAvB,CAAjD,GAAgF,GAAhF,IAAsF,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAAF,CAAW,MAAjH,CAAX;AACA,iBAAS,GAAG,CAAZ;AACH;;AACD,UAAI,GAAG,OAAI,CAAC,WAAL,CAAiB,OAAI,CAAC,WAAtB,EAAmC,aAAI,CAAC,WAAL,MAAgB,IAAhB,IAAgB,aAAhB,GAAgB,MAAhB,GAAgB,GAAE,QAArD,EAA+D,KAA/D,EAAsE,OAAI,CAAC,SAAL,CAAe,UAAf,CAA0B,kBAAhG,EAAoH,SAApH,CAAP;AACA,eAAS,CAAC,IAAV,CAAe,IAAf;AAEA,aAAO,CAAC,GAAR,CAAY,cAAZ;AAEA,UAAI,QAAQ,GAAG;AACX,gBAAQ,EAAE;AACN,cAAI,EAAE;AADA,SADC;AAIX,YAAI,EAAE;AACF,wBAAc,CAAC;AACX,yBAAa;AACT,0BAAY,QADH;AAET,gCAAkB,SAFT;AAGT;AACA,6BAAe,WAJN;AAKT,4BAAc,mBALL;AAMT,uBAAS,4DAAU,CAAC,IAAI,IAAJ,EAAD,EAAa,YAAb,EAA2B,IAA3B,CANV;AAOT,uBAAS,YAPA;AAQT,wBAAU;AARD,aADF;AAWX,yBAAa,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,SAAL,CAAe,SAAf,CAAX;AAXF,WAAD;AADZ;AAJK,OAAf;AAqBA,aAAI,CAAC,QAAL,GAAgB,0EAAoB,QAApB,GAA+B,MAA/C;AACA,aAAI,CAAC,QAAL,GAAgB,2EAA2E,QAA3E,GAAsF,MAAtG;AAEA,UAAI,GAAG,SAAS,OAAI,CAAC,SAAL,CAAe,QAAf,CAAhB;;AAEA,UAAG,OAAI,CAAC,QAAR,EAAiB;AACb,uBAAe,CAAC,QAAhB,CAAyB,IAAzB,GAAgC,OAAI,CAAC,QAArC;AACH,OAFD,MAGI;AACA,cAAM,CAAC,IAAP,CAAa,OAAI,CAAC,QAAlB;AACH;;AAED,aAAO,KAAP;;AAEA,UAAI,OAAI,CAAC,IAAL,KAAc,IAAlB,EAAwB;AACpB,eAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,eAAI,CAAC,SAAL,CAAe,KAAf;;AACA,eAAI,CAAC,QAAL,CAAc,IAAd,CAAmB,kDAAnB,EAAuE,IAAvE,EAA6E;AACzE,kBAAQ,EAAE;AAD+D,SAA7E;;AAGA,eAAI,CAAC,MAAL,CAAY,aAAZ,CAA0B,UAA1B;AACH,OAPD,MAOO,CACH;AACH;AApGuB;AAqG3B;;AAED,aAAW,CAAC,QAAD,EAAU,UAAV,EAAqB,KAArB,EAA2B,cAA3B,EAA0C,GAA1C,EAA6C;AACtD,QAAI,SAAJ;AACA,QAAI,IAAI,GAAG,IAAI,IAAJ,EAAX;;AACA,QAAG,cAAc,IAAE,CAAnB,EAAqB;AACnB,eAAS,GAAG;AACV,qBAAa;AACT,oBAAU,QAAQ,CAAC,MAAT,CAAgB,CAAhB,EAAmB;AADpB,SADH;AAIV,2BAAkB,CACd;AAAC,4BAAkB,OAAnB;AAA4B,kBAAQ,QAAQ,CAAC;AAA7C,SADc,EAEd;AAAC,4BAAkB,QAAnB;AAA6B,kBAAQ,QAAQ,CAAC;AAA9C,SAFc,EAGd;AAAC,4BAAkB,SAAnB;AAA8B,kBAAQ,QAAQ,CAAC;AAA/C,SAHc,EAId;AAAC,4BAAkB,KAAnB;AAA0B,kBAAQ,QAAQ,CAAC;AAA3C,SAJc,CAJR;AAUV,kBAAU,CACN;AACA;AACF;AAAC,kBAAQ,IAAT;AAAe,sBAAY,aAA3B;AAA0C,qBAAW,QAAQ,CAAC,MAAT,CAAgB;AAArE,SAHQ,EAIR;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,WAA5B;AAAyC,qBAAW,KAAK,SAAL,CAAe,UAAf,CAA0B;AAA9E,SAJQ,EAKR;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,cAA5B;AAA4C,qBAAW,UAAU,CAAC;AAAlE,SALQ,EAMR;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,mBAA5B;AAAiD,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAA5D,SANQ,CAVA;AAkBV,0BAAkB,CAChB;AAAC,sBAAY,iCAAb;AAAgD,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,MAAlC;AAA3D,SADgB,EAEhB;AAAC,sBAAY,UAAb;AAAyB,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAApC,SAFgB,EAGhB;AAAC,sBAAY,KAAb;AAAoB,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,IAAlC;AAA/B,SAHgB,CAKhB;AALgB,SAlBR;AA0BV,qBAAa,CACT;AAAC,oBAAU,EAAX;AAAc,sBAAY,UAA1B;AAAsC,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,SAAlC,CAAlD;AAAgG,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA5G,SADS,EAET;AAAE,oBAAU,EAAZ;AAAe,sBAAY,UAA3B;AAAuC,sBAAW,OAAlD;AAA2D,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,gBAAlC;AAAvE,SAFS,EAGT;AAAE,oBAAU,EAAZ;AAAe,sBAAY,mBAA3B;AAAgD,sBAAW,EAA3D;AAA+D,sBAAY,KAAK,iBAAL,CAAuB,QAAQ,CAAC,MAAT,CAAgB,MAAvC;AAA3E,SAHS,CAIT;AAGA;AAPS,SA1BH;AAmCV,mBAAW;AACP,4BAAkB;AAAE,wBAAY,yBAAd;AAAyC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,UAAlC;AAAjD,WADX;AAEP,yBAAgB;AAAE,wBAAY,oBAAd;AAAoC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA5C,WAFT;AAGP,mBAAU;AAAE,wBAAY,OAAd;AAAuB,qBAAQ,UAAU,CAAC;AAA1C,WAHH;AAIP,kBAAS;AAAE,wBAAY,MAAd;AAAsB,qBAAS,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAZ,CAAX,CAAX,GAA2C;AAA1E,WAJF;AAKP,qBAAY;AAAE,wBAAY,eAAd;AAA+B,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAAvC;AALL,SAnCD;AA0CV,6BAAoB;AAChB,oBAAU,CACN;AAAE,qBAAS,UAAX;AAAuB,qBAAS;AAAhC,WADM,EAEN;AAAE,qBAAS,gBAAX;AAA6B,qBAAS;AAAtC,WAFM,EAGN;AAAE,qBAAS,cAAX;AAA2B,qBAAS;AAApC,WAHM,EAIN;AAAE,qBAAS,WAAX;AAAwB,qBAAS;AAAjC,WAJM,EAKN;AAAE,qBAAS,uBAAX;AAAoC,qBAAS;AAA7C,WALM,EAMN;AAAE,qBAAS,mBAAX;AAAgC,qBAAS;AAAzC,WANM,CADM;AAShB,kBAAO;AATS,SA1CV;AAsDV,eAAM;AACJ,qBAAU,UAAU,CAAC,OADjB;AAEJ,mBAAS;AAFL;AAtDI,OAAZ;AA2DD,KA5DD,MA4DK;AACH,eAAS,GAAG;AACV,qBAAa;AACT,oBAAU,QAAQ,CAAC,MAAT,CAAgB,CAAhB,EAAmB;AADpB,SADH;AAIV,2BAAkB,CACd;AAAC,4BAAkB,OAAnB;AAA4B,kBAAQ,QAAQ,CAAC;AAA7C,SADc,EAEd;AAAC,4BAAkB,QAAnB;AAA6B,kBAAQ,QAAQ,CAAC;AAA9C,SAFc,EAGd;AAAC,4BAAkB,SAAnB;AAA8B,kBAAQ,QAAQ,CAAC;AAA/C,SAHc,EAId;AAAC,4BAAkB,KAAnB;AAA0B,kBAAQ,QAAQ,CAAC;AAA3C,SAJc,CAJR;AAUV,kBAAU,CACN;AACA;AACA;AAAC,kBAAQ,IAAT;AAAe,sBAAY,aAA3B;AAA0C,qBAAW,QAAQ,CAAC,MAAT,CAAgB;AAArE,SAHM,EAIN;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,WAA5B;AAAyC,qBAAW,KAAK,SAAL,CAAe,UAAf,CAA0B;AAA9E,SAJM,EAKN;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,cAA5B;AAA4C,qBAAW,UAAU,CAAC;AAAlE,SALM,EAMN;AAAC,kBAAQ,KAAT;AAAgB,sBAAY,mBAA5B;AAAiD,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAA5D,SANM,CAVA;AAkBV,0BAAkB,CACd;AAAC,sBAAY,gCAAb;AAA+C,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,KAAlC;AAA1D,SADc,EAEd;AAAC,sBAAY,sBAAb;AAAqC,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAAhD,SAFc,EAGd;AAAC,sBAAY,KAAb;AAAoB,qBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,IAAlC;AAA/B,SAHc,CAId;AAJc,SAlBR;AAyBV,qBAAa,CACT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,sBAA5B;AAAoD,sBAAW,EAA/D;AAAmE,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA/E,SADS,EAET;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,mBAA5B;AAAiD,sBAAW,EAA5D;AAAgE,sBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA3E,SAFS,EAGT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,kBAA5B;AAAgD,sBAAW,EAA3D;AAA+D,sBAAW,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAA1E,SAHS,EAIT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,UAA5B;AAAwC,sBAAW,OAAnD;AAA4D,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,gBAAlC;AAAxE,SAJS,EAKT;AAAE,oBAAU,EAAZ;AAAgB,sBAAY,mBAA5B;AAAiD,sBAAW,EAA5D;AAAgE,sBAAY,KAAK,iBAAL,CAAuB,UAAU,CAAC,MAAlC;AAA5E,SALS,CAMT;AACA;AAPS,SAzBH;AAkCV,mBAAW;AACP,4BAAkB;AAAE,wBAAY,wBAAd;AAAwC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,cAAlC;AAAhD,WADX;AAEP,mBAAU;AAAE,wBAAY,OAAd;AAAuB,qBAAQ,UAAU,CAAC;AAA1C,WAFH;AAGP;AACA,qBAAY;AAAE,wBAAY,iBAAd;AAAiC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,WAAlC;AAAzC,WAJL;AAKP,yBAAgB;AAAE,wBAAY,oBAAd;AAAoC,qBAAQ,KAAK,iBAAL,CAAuB,UAAU,CAAC,QAAlC;AAA5C,WALT;AAMP,mBAAU;AAAE,wBAAY,OAAd;AAAuB,qBAAS,cAAc,CAAC,IAAD;AAA9C;AANH,SAlCD;AA0CV,eAAM;AACJ,qBAAU,MADN;AAEJ,mBAAS;AAFL;AA1CI,OAAZ;AA+CD;;AAED,WAAO,SAAP;AACD;;AACK,YAAU,CAAC,UAAD,EAAW;AAAA;;AAAA;AACzB,UAAI,KAAK,GAAS,EAAlB;AACA,UAAI,YAAY,GAAG,EAAnB;AACA,UAAI,IAAJ,CAHyB,CAIzB;;AACA,UAAI,KAAK,GAAG;AACV,aAAK,EAAG,UAAU,CAAC,MADT;AAEV,mBAAW,EAAG,UAAU,CAAC,WAFf;AAGV,gBAAQ,EAAG,UAAU,CAAC,WAHZ;AAIV,iBAAS,EAAG,UAAU,CAAC;AAJb,OAAZ;AAMA,WAAK,SAAU,OAAI,CAAC,gBAAL,CAAsB,KAAtB,CAAf;;AACA,WAAI,IAAI,CAAC,GAAC,CAAV,EAAY,CAAC,IAAE,KAAK,CAAC,MAAN,GAAa,CAA5B,EAA8B,CAAC,EAA/B,EAAkC;AAChC,YAAI,GAAG;AAAC,kBAAQ,CACZ;AAAC,mBAAO,CAAC,GAAC;AAAV,WADY,EAEZ;AAAC,mBAAO,OAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,SAA5C;AAAR,WAFY,EAGZ;AAAC,mBAAO,OAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,QAA5C;AAAR,WAHY,EAIZ;AAAC,mBAAO,OAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,OAA5C;AAAR,WAJY,EAKZ;AAAC,mBAAO,OAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,OAA5C;AAAR,WALY,EAMZ;AAAC,mBAAO,OAAI,CAAC,0BAAL,CAAgC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,EAAY,WAA5C;AAAR,WANY;AAAT,SAAP;AAQA,oBAAY,CAAC,IAAb,CAAkB,IAAlB;AACD;;AACD,aAAO,YAAP;AAvByB;AAwB1B;;AACD,WAAS,CAAC,QAAD,EAAS;AAAA;;AAChB,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,SAAK,OAAL,GAAe,IAAf;AACA,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AAC3C,eAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,qBAAzB,EAA+C,QAA/C,EAAyD,SAAzD,CAAoE,GAAD,IAAa;AAC9E,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,mBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,mBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,mBAAI,CAAC,OAAL,GAAe,KAAf;AACA,mBAAO,CAAC,GAAG,CAAC,GAAL,CAAP;AACH;;AACD,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACD,SAbD,EAaI,KAAD,IAAe;AACd,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAhBD;AAiBD,OAlBM;;AAAA;AAAA;AAAA;AAAA,QAAP;AAmBD;;AACD,kBAAgB,CAAC,IAAD,EAAK;AAAA;;AACjB,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AACzC,eAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,0BAAzB,EAAoD,IAApD,EAA0D,SAA1D,CAAqE,GAAD,IAAa;AACjF,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,mBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,mBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAO,CAAC,GAAG,CAAC,UAAL,CAAP;AACH;;AACD,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACC,SAXD,EAWI,KAAD,IAAe;AACd,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAdD;AAeH,OAhBM;;AAAA;AAAA;AAAA;AAAA,QAAP;AAiBH;;AAED,QAAM,CAAC,IAAD,EAAK;AAAA;;AACP,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,WAAO,IAAI,OAAJ;AAAA,oNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AACzC,eAAI,CAAC,OAAL,CAAa,WAAb,CAAyB,gBAAzB,EAA0C,IAA1C,EAAgD,SAAhD,CAA2D,GAAD,IAAa;AACvE,cAAI,GAAG,CAAC,GAAR,EAAa;AACT,mBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,KAAV;AAAiB,2BAAa,EAAE;AAAhC,aAAD,CAApC;AACH,WAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB;AACtB,mBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,kBAAI,EAAC,GAAG,CAAC,SAAV;AAAqB,2BAAa,EAAE;AAApC,aAAD,CAApC;AACH,WAFM,MAEA;AACH;AACA;AACA,mBAAO,CAAC,GAAG,CAAC,UAAL,CAAP;AACH;;AACD,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACC,SAXD,EAWI,KAAD,IAAe;AACd,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,iBAAI,CAAC,KAAL,CAAW,QAAX,CAAoB,gFAAgB,CAAC;AAAC,gBAAI,EAAC,KAAN;AAAa,yBAAa,EAAE;AAA5B,WAAD,CAApC;AACH,SAdD;AAeH,OAhBM;;AAAA;AAAA;AAAA;AAAA,QAAP;AAiBH;;AACD,iBAAe;AACb,SAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AAEA,SAAK,IAAL,GAAY,KAAK,WAAL,CAAiB,WAAjB,EAAZ;AACA,WAAO,CAAC,GAAR,CAAY,KAAK,IAAjB;;AAEA,QAAI,KAAK,IAAL,KAAc,IAAlB,EAAwB;AACtB,WAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACA,WAAK,SAAL,CAAe,KAAf;AACA,WAAK,QAAL,CAAc,IAAd,CAAmB,uDAAnB,EAA4E,IAA5E,EAAkF;AAAE,gBAAQ,EAAE;AAAZ,OAAlF;AACA,WAAK,MAAL,CAAY,aAAZ,CAA0B,UAA1B;AACD,KALD,MAMI;AACF;AACA;AACA;AACA,UAAG,KAAK,QAAR,EAAiB;AACb,YAAI,eAAe,GAAG,MAAM,CAAC,IAAP,CAAY,yCAAZ,CAAtB;AACH;;AAED,UAAI,KAAK,GAAG;AACV,0BAAmB,KAAK,IAAL,CAAU,IAAV,CAAe,SADxB;AAEV,4BAAsB,IAAI,CAAC,KAAL,CAAW,KAAK,WAAL,CAAiB,QAAjB,CAA0B,MAArC,CAFZ;AAGV,4BAAuB,KAAK,WAAL,CAAiB,QAAjB,CAA0B,UAA1B,KAAyC,SAA1C,GAAuD,IAAI,CAAC,KAAL,CAAW,KAAK,WAAL,CAAiB,QAAjB,CAA0B,cAArC,CAAvD,GAA8G,IAAI,CAAC,KAAL,CAAW,KAAK,WAAL,CAAiB,QAAjB,CAA0B,UAArC,CAH1H;AAIV,wBAAuB,KAAK,WAAL,CAAiB,QAAjB,CAA0B,QAA1B,KAAuC,SAAxC,GAAqD,CAArD,GAAyD,IAAI,CAAC,KAAL,CAAW,KAAK,WAAL,CAAiB,QAAjB,CAA0B,QAArC,CAJrE;AAKV,0BAAsB,IAAI,CAAC,KAAL,CAAW,KAAK,WAAL,CAAiB,QAAjB,CAA0B,WAArC;AALZ,OAAZ,CARE,CAgBF;;AAGI,WAAK,OAAL,CAAa,WAAb,CAAyB,uBAAzB,EAAkD,KAAlD,EAAyD,SAAzD,CAAoE,GAAD,IAAa;AAC5E,aAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;;AACA,YAAG,KAAK,QAAR,EAAiB;AACb,yBAAe,CAAC,QAAhB,CAAyB,IAAzB,GAAgC,GAAG,CAAC,UAAJ,CAAe,QAA/C;AACH,SAFD,MAGI;AACA,gBAAM,CAAC,IAAP,CAAa,GAAG,CAAC,UAAJ,CAAe,QAA5B;AACH;AACJ,OARD,EAQI,KAAD,IAAe;AACd,aAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACH,OAVD;AAYH;AACJ;;AAED,mBAAiB,CAAC,SAAD,EAAU;AACzB,WAAO,KAAK,EAAL,CAAQ,SAAR,CAAkB,SAAlB,EAA6B,KAA7B,EAAoC,QAApC,EAA8C,OAA9C,CAAP;AACD;;AAED,4BAA0B,CAAC,SAAD,EAAU;AAClC,WAAO,KAAK,EAAL,CAAQ,SAAR,CAAkB,SAAlB,EAA6B,KAA7B,EAAoC,QAApC,EAA8C,OAA9C,CAAP;AACD;;AAED,aAAW,CAAE,GAAF,EAAK;AACd,QAAI,QAAQ,GAAG;AACb,yBAAmB,EAAE,KAAK,mBADb;AAEb,eAAS,EAAE,KAAK,WAAL,CAAiB,gBAAjB;AAFE,KAAf;AAKA,QAAI,KAAK,GAAG;AACR,cAAQ,EAAM,GAAG,CAAC,QAAJ,IAAgB,OAAlB,GAA8B,CAA9B,GAAkC,CADtC;AAER,sBAAgB,EAAK,GAAG,CAAC,cAAJ,IAAsB,SAAxB,GAAsC,CAAtC,GAA4C,GAAG,CAAC,cAAJ,IAAsB,oBAAxB,GAAiD,CAAjD,GAAqD,CAF1G;AAGR,iBAAW,EAAG,GAAG,CAAC,WAHV;AAIR,kBAAY,EAAK,GAAG,CAAC,aAAJ,IAAqB,EAAvB,GAA8B,IAA9B,GAAuC,GAAG,CAAC,aAAJ,IAAqB,OAAvB,GAAmC,CAAnC,GAA0C,GAAG,CAAC,aAAJ,IAAqB,OAAvB,GAAmC,CAAnC,GAAuC,CAJ3H;AAKR,cAAQ,EAAI,GAAG,CAAC,YALR;AAMR,YAAM,EAAG,GAAG,CAAC,MANL;AAOR,iBAAW,EAAG,GAAG,CAAC,WAPV;AAQR,cAAQ,EAAE,IAAI,CAAC,SAAL,CAAgB,QAAhB;AARF,KAAZ;AAWE,SAAK,OAAL,CAAa,WAAb,CAAyB,yBAAzB,EAAoD,KAApD,EAA2D,SAA3D,CAAsE,GAAD,IAAa,CAEjF,CAFD,EAEI,KAAD,IAAe;AACd,WAAK,KAAL,CAAW,QAAX,CAAoB,8EAAc,EAAlC;AACH,KAJD;AAKH;;AAzkB+B;;;mBAAvB,yBAAuB,sMAOxB,sEAPwB,GAOT;AAAA;;;QAPd;AAAuB;AAAA;AAAA;gEAyBlB,sEAAiB,GAAS;;;;;;;;;;;;;;AE1zB5C;AACA;AACI;AAAoC;AAAK;AAC3C;AACF;AACY;AACI;AACI;AACI;AACI;AAAI;AAAyE;AAC7E;AAAI;AAAuB;AAC/B;AACJ;AACA;AACI;AACI;AAAiB;;AAAgE;AACjF;AAAiB;AAAM;AAC3B;AACA;AAAqB;AAAO;AACsB;AAC9C;AAA+B;AAAQ;AAC/C;AACJ;AACJ;AAEA;AACI;AACI;AACI;AAAiB;AAAK;AACtB;AAAiB;AAAkC;AACvD;AACJ;AACA;AACI;AACI;AAIJ;AACJ;AACA;AACI;AACI;AACA;AACA;AAAiB;;AAA+E;AACpG;AACJ;AAGA;AACI;AACI;AACI;AAAuB;AAAW;AAClC;AACI;AACI;AAA4C;AAAK;AACrD;AACA;AACI;AAAiD;AAAwB;AAC7E;AACJ;AACA;AACI;AACI;AAA4C;AAAM;AACtD;AACA;AACI;AAAiD;AAAyB;AAC9E;AACJ;AACA;AACI;AACI;AAA4C;AAAG;AACnD;AACA;AACI;AAAiD;AAAuB;AAC5E;AACJ;AACA;AACI;AACI;AAA4C;AAAO;AACvD;AACA;AACI;AAAiD;AAA0B;AAC/E;AACJ;AACA;AACI;AACI;AAA4C;AAAI;AACpD;AACA;AACI;AAAiD;AAAuB;AAC5E;AACJ;AACA;AAAI;AACJ;AAAuB;AAA2B;AAClD;AACI;AACI;AAA4C;AAAM;AACtD;AACA;AACI;AAAiD;;AAAiE;AACtH;AACJ;AACA;AACI;AACI;AAA4C;AAAK;AACrD;AACA;AACI;AAAiD;AAAkC;AACvF;AACJ;AACA;AACI;AACI;AACA;AACJ;AACA;AACI;AAAiD;;AAA+E;AACpI;AACJ;AACA;AAQA;AAAI;AAEJ;AAsCA;AAqDA;AAEJ;AACJ;AACJ;AACA;AACA;AACI;AACI;AACI;AACI;AAAiB;AAAK;AACtB;AAAiB;AAAkC;AACvD;AACJ;AACA;AACI;AACI;AAIJ;AACJ;AACA;AACI;AACI;AACA;AACA;AAAiB;;AAA+E;AACpG;AACJ;AACJ;AAEA;AAQA;AAAG;AAAO;AAAwD;AAAQ;AAC1E;AACI;AACA;AACI;AAAoD;AAAA,eAAS,6BAAT;AAAkC,OAAlC;AAAoC;AAAwB;AACpH;AACJ;AACA;AACI;AACA;AACI;AAAoD;AAAA,eAAS,qBAAT;AAA0B,OAA1B;AAA4B;AAAa;AAC7F;AAAsF;AAAQ;AAClG;AACJ;AACJ;AAEJ;AAEZ;;;;AAtRuB;AASS;AAAA;AACA;AAAA;AAKa;AAAA;AAGO;AAAA;AAWX;AAAA;AAKF;AAAA;AAQG;AAAA;AACA;AAAA;AACD;AAAA;AAc4C;AAAA;AAQA;AAAA;AAQA;AAAA;AAQA;AAAA;AAQA;AAAA;AAUA;AAAA;AAQA;AAAA;AAKJ;AAAA;AACA;AAAA;AAGI;AAAA;AAGvC;AAAA;AAUZ;AAAA;AAsCA;AAAA;AAgEe;AAAA;AAKF;AAAA;AAQG;AAAA;AACA;AAAA;AACD;AAAA;AAMrB;AAAA,mFAAe,UAAf,EAAe,IAAf,EAAe,YAAf,EAAe,GAAf,EAAe,aAAf,EAAe,GAAf,EAAe,SAAf,EAAe,KAAf,EAAe,gBAAf,EAAe,IAAf;;;;;;;;AFinC5B,SAAS,cAAT,CAAwB,IAAxB,EAA4B;AAC1B,QAAM,IAAI,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,CAAb;AACA,QAAM,KAAK,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,EAAkD,KAAlD,EAAyD,KAAzD,EAAgE,KAAhE,EAAuE,KAAvE,EAA8E,KAA9E,CAAd;AACA,QAAM,EAAE,GAAG,IAAI,IAAJ,CAAS,IAAT,CAAX;AACA,QAAM,KAAK,GAAG,EAAE,CAAC,WAAH,EAAd;AAEA,QAAM,IAAI,GAAI,EAAE,CAAC,WAAH,KAAmB,EAApB,GAA0B,MAAM,EAAE,CAAC,WAAH,EAAhC,GAAmD,EAAE,CAAC,WAAH,EAAhE;AACA,QAAM,GAAG,GAAI,EAAE,CAAC,aAAH,KAAqB,EAAtB,GAA4B,MAAM,EAAE,CAAC,aAAH,EAAlC,GAAuD,EAAE,CAAC,aAAH,EAAnE;AACA,MAAI,KAAK,GAAG,GAAG,EAAE,CAAC,UAAH,EAAe,IAAI,KAAK,CAAC,EAAE,CAAC,WAAH,EAAD,CAAkB,KAAK,EAAE,CAAC,cAAH,EAAmB,EAAjF;AAEA,SAAO,KAAP;AACD;;AAED,SAAS,WAAT,CAAqB,KAArB,EAA0B;AACxB,OAAK,GAAG,CAAC,KAAT;AAEA,MAAI,KAAK,CAAC,KAAD,CAAT,EACE,OAAO,GAAP,CAJsB,CAMxB;;AACA,OAAK,GAAG,KAAK,CAAC,QAAN,GAAiB,KAAjB,CAAuB,GAAvB,CAAR;AACA,OAAK,GAAG,IAAI,CAAC,KAAL,CAAW,EAAE,KAAK,CAAC,CAAD,CAAL,GAAW,GAAX,IAAkB,KAAK,CAAC,CAAD,CAAL,GAAY,CAAC,KAAK,CAAC,CAAD,CAAN,GAAY,CAAxB,GAA6B,CAA/C,CAAF,CAAX,CAAR,CARwB,CAUxB;;AACA,OAAK,GAAG,KAAK,CAAC,QAAN,GAAiB,KAAjB,CAAuB,GAAvB,CAAR;AACA,SAAO,CAAC,EAAE,KAAK,CAAC,CAAD,CAAL,GAAW,GAAX,IAAkB,KAAK,CAAC,CAAD,CAAL,GAAY,CAAC,KAAK,CAAC,CAAD,CAAN,GAAY,CAAxB,GAA6B,CAAC,CAAhD,CAAF,CAAD,EAAwD,OAAxD,CAAgE,CAAhE,CAAP;AACD;;;;;;;;;;;;;;;;;AGv4CgF;;;;AAkB1E,MAAM,mBAAmB;IAG9B;QADS,eAAU,GAAG,QAAQ,CAAC;IACf,CAAC;IAEjB,QAAQ;IACR,CAAC;;sFANU,mBAAmB;iHAAnB,mBAAmB;;QCnBhC,yEAAyC;QACvC,sEAAK;QAAA,6DAA4C;QAAA,4DAAM;QACvD,sEAAK;QAAA,gEAA4C;QAAA,4DAAM;QACvD,sEAAK;QAAA,gEAA6C;QAAA,4DAAM;QACxD,sEAAK;QAAA,gEAA+C;QAAA,4DAAM;QAC1D,sEAAK;QAAA,iEAA8C;QAAA,4DAAM;QAE3D,4DAAM;;QAPa,kFAAqB;04BDO1B;YACV,4DAAO,CAAC,OAAO,EAAE;gBACf,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;gBACtD,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACzD,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACzD,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACzD,0DAAK,CAAC,QAAQ,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACzD,8DAA8D;gBAC9D,+DAAU,CAAC,QAAQ,EAAE,4DAAO,CAAC,GAAG,CAAC,CAAC;aACnC,CAAC;SACH;;;;;;;;;;;;;;;;;;;;;;;;AEhB+E;;;;;;;;;;ICqD9E,0EAAoE;IAChE,qEAAyB;IACzB,0EAA8B;IAC1B,2EAA+B;IAAA,wFAAwB;IAAA,4DAAO;IAClE,4DAAM;IACN,qEAAyB;IACzB,0EAAoB;IAChB,uEAA4B;IAChC,4DAAM;IACV,4DAAM;;;IAuBU,uFAAqM;IACjM,0EAAiD;IAAA,uDAAU;IAAA,4DAAM;IACrE,4DAAmB;;;IAFD,qMAAkI;IAAgC,4EAAgB;IAC/I,0DAAU;IAAV,0EAAU;;;IA4BnE,uFAAyI;IACrI,qEAA6I;IACjJ,4DAAmB;;;IAFwE,+EAAkB;IAChF,0DAAqD;IAArD,iMAAqD;;;;IAN1F,0EAAuD;IACnD,sFAGgC;IAA5B,uWAA2B;IAC3B,mJAEmB;IACvB,4DAAkB;IACtB,4DAAM;;;IALE,0DAA2B;IAA3B,yFAA2B;IACkD,0DAAY;IAAZ,qFAAY;;;IAuB7E,qEAA8D;;;IAG9D,qEAAgE;;;IAGhE,qEAA8D;;;IAY9E,2EAAyD;IAAA,6FAA6B;IAAA,4DAAO;;;IAC7F,2EAA2D;IAAA,kGAA6B;IAAA,4DAAO;;;IAFnG,0EAA+D;IAC3D,iIAA6F;IAC7F,iIAA+F;IACnG,4DAAM;;;IAFK,0DAA8B;IAA9B,kGAA8B;IAC9B,0DAAgC;IAAhC,oGAAgC;;;;IAIvC,4EAAyF;IAA5B,2WAA0B;IAAvF,4DAAyF;;;IAA5B,yFAA0B;;;;IAEvF,4EAAqK;IAAtG,0VAA+B;IAA9F,4DAAqK;;;IAAtE,yFAA0B;;;IACzH,0EAAoE;IAChE,wEAAO;IAAA,wEAAa;IAAA,4DAAQ;IAChC,4DAAM;;;IANV,0EAAsD;IAClD,mIAAyF;IAEzF,mIAAqK;IACrK,+HAEM;IACV,4DAAM;;;IANM,0DAA8B;IAA9B,kGAA8B;IAE9B,0DAAgC;IAAhC,oGAAgC;IAClC,0DAAgC;IAAhC,oGAAgC;;;IAX9C,0EAAiE;IAC7D,qEAAyB;IACzB,yHAGM;IACN,qEAAyB;IACzB,yHAOM;IACV,4DAAM;;;IAb6B,0DAA8B;IAA9B,iGAA8B;IAKvC,0DAA8B;IAA9B,iGAA8B;;;IAchD,0EAA2G;IACvG,uDACJ;IAAA,4DAAM;;;IAFD,2GAAkC;IACnC,0DACJ;IADI,gGACJ;;;ADrKL,MAAM,qBAAqB;IAwB9B,YACW,SAA8C,EACrB,IAAI,EAC5B,WAAwB,EACxB,QAAmB,EACnB,OAAoB;QAJrB,cAAS,GAAT,SAAS,CAAqC;QACrB,SAAI,GAAJ,IAAI;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAW;QACnB,YAAO,GAAP,OAAO,CAAa;QA3BhC,kBAAa,GAAW,IAAI,CAAC;QAC7B,YAAO,GAAa,CAAC,oBAAoB,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;QACrF,cAAS,GAAa,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEpD,qBAAgB,GAAW,KAAK,CAAC;QACjC,sBAAiB,GAAW,KAAK,CAAC;QAElC,WAAM,GAAW,EAAE,CAAC;QACpB,gBAAW,GAAW,EAAE,CAAC;QACzB,gBAAW,GAAW,EAAE,CAAC;QACzB,iBAAY,GAAW,EAAE,CAAC;QAK1B,cAAS,GAAY,KAAK,CAAC;QAC3B,UAAK,GAAsC;YAC7C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,EAAE;SACX,CAAC;IASK,CAAC;IAEL,QAAQ;QACJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnG,IAAI,CAAC,gBAAgB,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAE;SACrF;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,QAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAG;gBACpD,KAAK,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;oBAChC,MAAM;gBAEV,KAAK,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC;oBAC3C,MAAM;gBAEV,KAAK,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC;oBACpD,MAAM;gBACV;oBACI,MAAM;aACb;SACJ;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjD,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAG,CAAE,IAAI,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAE,gBAAgB;YAC7E,QAAQ,EAAM,CAAE,IAAI,CAAC,iBAAiB,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,OAAO;YACjE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,sIAAsI,CAAC,EAAE;oBAC/K,mEAAmE;oBACnE,IAAI,CAAC,KAAK,GAAG;wBACT,IAAI,EAAK,QAAQ;wBACjB,OAAO,EAAE,4DAA4D;qBACxE,CAAC;oBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE;YACjC,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,2BAA2B,CAAC,EAAE;oBACpE,IAAI,CAAC,KAAK,GAAG;wBACT,IAAI,EAAK,QAAQ;wBACjB,OAAO,EAAE,+DAA+D;qBAC3E,CAAC;oBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;IACvC,CAAC;IAED,cAAc,CAAE,KAAa;QAEzB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE;YAC/B,IAAI,CAAC,KAAK,GAAG;gBACT,IAAI,EAAK,QAAQ;gBACjB,OAAO,EAAE,8DAA8D;aAC1E,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,OAAO,KAAK,CAAC;SAChB;aACG;YACA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QAE1F,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;IAC3C,CAAC;IAED,cAAc;QACV,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,YAAY;IACpC,CAAC;IAED,gBAAgB,CAAE,KAAK;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,KAAK,EAAE,KAAK;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,GAAG;QAET,+DAA+D;QAC/D,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QAEjD,IAAG,IAAI,IAAE,CAAC,EAAE,EAAE,aAAa;YACzB,OAAO,IAAI,CAAC;SACb;aAAM,IAAG,IAAI,IAAE,EAAE,IAAI,IAAI,IAAE,EAAE,EAAE,EAAE,eAAe;YAC/C,OAAO,IAAI,CAAC;SACb;aAAK,EAAE,cAAc;YACpB,OAAO,KAAK,CAAC;SACd;IACL,CAAC;IAED,YAAY;QACR,MAAM,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;IACjH,CAAC;IAED,QAAQ;QACJ,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC;QACT,IAAG,IAAI,CAAC,gBAAgB,EAAC;YACrB,IAAI,GAAG,gBAAgB,CAAC;SAC3B;aAAI;YACD,IAAI,GAAG,gBAAgB,CAAC;SAC3B;QACD,IAAG,IAAI,CAAC,iBAAiB,EAAC;YACtB,IAAI,GAAG,WAAW;SACrB;aAAI;YACD,IAAI,GAAG,OAAO;SACjB;QACD,QAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAG;YACpD,KAAK,CAAC;gBACF,KAAK,GAAG,SAAS,CAAC;gBAClB,MAAM;YAEV,KAAK,CAAC;gBACF,KAAK,GAAG,oBAAoB,CAAC;gBAC7B,MAAM;YAEV,KAAK,CAAC;gBACF,KAAK,GAAG,6BAA6B,CAAC;gBACtC,MAAM;YACV;gBACI,MAAM;SACb;QACD,IAAI,IAAI,GAAG;YACT,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,yCAAyC;YAClD,QAAQ,EAAG,IAAI;YACf,KAAK,EAAG,IAAI;YACZ,WAAW,EAAG,IAAI,CAAC,MAAM;YACzB,QAAQ,EAAG,KAAK;YAChB,WAAW,EAAG,IAAI,CAAC,WAAW;YAC9B,SAAS,EAAG,IAAI,CAAC,YAAY;YAC7B,KAAK,EAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC;SAC1D;QACD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC,SAAS,CACzE,CAAC,IAAS,EAAE,EAAE;YACV,oBAAoB;YACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;QAClB,CAAC,CACJ,CAAC;IACN,CAAC;;0FAhNQ,qBAAqB,uMA0BlB,qEAAe;mHA1BlB,qBAAqB;QCXlC,yEAAwD;QACpD,oEAAkG;QAClG,oEAAmC;QACnC,wEAAsB;QAAA,+HAAqD;QAAA,4DAAK;QAEhF,yEAAiB;QACb,oEAA4B;QAC5B,yEAAgD;QAC5C,yEAAiB;QACb,yEAAoB;QAChB,2EAAyC;QAAA,2EAAe;QAAA,4DAAO;QACnE,4DAAM;QACV,4DAAM;QACN,0EAAiB;QACb,0EAA8B;QAC1B,6EAA2I;QAAA,+EAAc;QAAA,4DAAQ;QACrK,4DAAM;QACN,2EAAmB;QACf,wFAGwB;QADpB,+MAA8B;QAElC,4DAAmB;QACvB,4DAAM;QACN,2EAAmB;QACf,6EAA0I;QAAA,yEAAa;QAAA,4DAAQ;QACnK,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,0EAAgD;QAC5C,0EAAiB;QACb,0EAAoB;QAChB,2EAAyC;QAAA,wFAA4B;QAAA,4DAAO;QAChF,4DAAM;QACV,4DAAM;QACN,0EAAiB;QACb,0EAA8B;QAC1B,6EAA4I;QAAA,iEAAK;QAAA,4DAAQ;QAC7J,4DAAM;QACN,2EAAmB;QACf,wFAGwB;QADpB,gNAA+B;QAEnC,4DAAmB;QACvB,4DAAM;QACN,2EAAmB;QACf,6EAA0I;QAAA,qEAAS;QAAA,4DAAQ;QAC/J,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,oHASM;QAEN,2EAA4C;QACxC,sEAAyB;QACzB,2EAA6B;QACzB,4EAAwB;QAAA,oFAAmB;QAAA,4DAAO;QACtD,4DAAM;QACN,2EAAmB;QACf,6EAA6D;QAArB,0LAAoB;QAA5D,4DAA6D;QACjE,4DAAM;QACV,4DAAM;QAEN,2EAAkE;QAC9D,sEAAyB;QACzB,2EAA8B;QAC1B,4EAA+B;QAAA,oHAAyC;QAAA,4DAAO;QACnF,4DAAM;QACN,sEAAyB;QACzB,2EAAyB;QACjB,uFAG6B;QAA7B,4MAA4B;QACxB,8IAEmB;QACvB,4DAAkB;QAE1B,4DAAM;QACV,4DAAM;QAEN,2EAA2C;QACvC,sEAAyB;QACzB,2EAA8B;QAC1B,4EAA+B;QAAA,uEAAW;QAAA,4DAAO;QACrD,4DAAM;QACN,sEAAyB;QACzB,2EAAoB;QAChB,gFAAyD;QAA1B,kMAAyB;QAAC,4DAAW;QACxE,4DAAM;QACV,4DAAM;QAEN,2EAA4C;QACxC,sEAAyB;QACzB,2EAA4B;QACxB,4EAAwB;QAAA,kHAAuC;QAAA,4DAAO;QAC1E,4DAAM;QACN,oHASM;QAEN,0EAAoB;QAChB,0EAAiB;QACb,sEAAyB;QACzB,2EAAmB;QACf,0EAAiB;QACb,2EAA+C;QAC3C,2EAAoJ;QAApC,2IAAS,qBAAiB,OAAO,CAAC,IAAC;QAAnJ,4DAAoJ;QACxJ,4DAAM;QACN,2EAA+C;QAC3C,2EAAuJ;QAAtC,2IAAS,qBAAiB,SAAS,CAAC,IAAC;QAAtJ,4DAAuJ;QAC3J,4DAAM;QACN,2EAA+C;QAC3C,2EAAsJ;QAApC,2IAAS,qBAAiB,OAAO,CAAC,IAAC;QAArJ,4DAAsJ;QAC1J,4DAAM;QACV,4DAAM;QACN,0EAAiB;QACb,2EAA+C;QAC3C,oHAA8D;QAClE,4DAAM;QACN,2EAA+C;QAC3C,oHAAgE;QACpE,4DAAM;QACN,2EAA+C;QAC3C,oHAA8D;QAClE,4DAAM;QACV,4DAAM;QACV,4DAAM;QACN,sEAAyB;QAC7B,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,oHAeM;QAEN,2EAA4C;QACxC,sEAAyB;QACzB,2EAAoB;QAEhB,oHAEM;QACV,4DAAM;QACN,sEAAyB;QAC7B,4DAAM;QAEN,2EAA2C;QACvC,8EAAkF;QAA9B,8IAAS,uBAAmB,IAAC;QAAC,yEAAa;QAAA,4DAAS;QAC5G,4DAAM;QACV,4DAAM;;QAzKqB,2DAAmI;QAAnI,wOAAmI;QAKtI,0DAA8B;QAA9B,yFAA8B;QAK3B,0DAAkI;QAAlI,sOAAkI;QAalI,0DAAoI;QAApI,0OAAoI;QAKvI,0DAA+B;QAA/B,0FAA+B;QAK5B,0DAAkI;QAAlI,wOAAkI;QAM7G,0DAAsB;QAAtB,sFAAsB;QAiBlB,0DAAoB;QAApB,+EAAoB;QAcxD,0DAA4B;QAA5B,uFAA4B;QACgJ,0DAAU;QAAV,gFAAU;QAe3J,0DAAyB;QAAzB,oFAAyB;QASlB,0DAAW;QAAX,uEAAW;QA4B3B,2DAA8B;QAA9B,8FAA8B;QAG9B,0DAAgC;QAAhC,gGAAgC;QAGhC,0DAA8B;QAA9B,8FAA8B;QAShB,0DAAmB;QAAnB,mFAAmB;QAqBD,0DAAe;QAAf,+EAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5KC;AAOgB;AAC3C;AAEa;AAIsC;;;;;;;;;;;;;;;;;;ICZlG,2EAA8E;IAA3B,mUAAmB,KAAK,IAAE;IAAC,uFAAkB;IAAA,4DAAO;;;IACvG,2EAAmD;IAAC,gEAAI;IAAC,iFAAgB;IAAA,4DAAO;;;IAFpF,yEAAuC;IAAA,uFACnC;IAAA,gIAAuG;IACvG,gIAAgF;IACpF,4DAAK;;;IAFM,0DAAyB;IAAzB,mGAAyB;IACzB,0DAA0B;IAA1B,oGAA0B;;;IAGrC,yEAAsC;IAAA,6HAAmD;IAAA,4DAAK;;;;IAE9F,0EAA6F;IACzF,qEAAyB;IACzB,0EAAoB;IAChB,0EAA4B;IACxB,0EAAsB;IAClB,yEAAiB;IACb,yEAAoB;IAChB,2EAA+B;IAAA,kEAAO;IAAA,2EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IAC9E,6EAAgE;IAAxB,gWAAuB;IAA/D,4DAAgE;IACpE,4DAAM;IACV,4DAAM;IACV,4DAAM;IACN,2EAAsB;IAClB,0EAAiB;IACb,0EAAoB;IAChB,4EAA+B;IAAA,4EAAW;IAAA,4EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IAClF,6EAAkE;IAAtB,8VAAqB;IAAjE,4DAAkE;IACtE,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;;;IAd0D,2DAAuB;IAAvB,qFAAuB;IAQnB,0DAAqB;IAArB,mFAAqB;;;IASrF,2EAAkD;IAAA,8GAAoC;IAAA,4DAAO;;;;IAC7F,2EAA8E;IAA1B,mUAAmB,IAAI,IAAE;IAAC,+EAAe;IAAA,4DAAO;;;IAFxG,yEAAkC;IAAA,wFAAmB;IAAA,gEAAI;IACrD,gIAA6F;IAC7F,gIAAoG;IACxG,4DAAK;;;IAFM,0DAAyB;IAAzB,mGAAyB;IACzB,0DAA0B;IAA1B,oGAA0B;;;IAoDrC,0EAAoE;IAChE,qEAAyB;IACzB,0EAA8B;IAC1B,2EAA+B;IAAA,wFAAwB;IAAA,4DAAO;IAClE,4DAAM;IACN,qEAAyB;IACzB,0EAAoB;IAChB,uEAA4B;IAChC,4DAAM;IACV,4DAAM;;;;IAEN,0EAAuE;IACnE,qEAAyB;IACzB,0EAAoB;IAChB,0EAA4B;IACxB,0EAAsB;IAClB,yEAAiB;IACb,yEAAoB;IAChB,2EAA+B;IAAA,kEAAO;IAAA,2EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IAC9E,6EAAgE;IAAxB,iWAAuB;IAA/D,4DAAgE;IACpE,4DAAM;IACV,4DAAM;IACV,4DAAM;IACN,2EAAsB;IAClB,0EAAiB;IACb,0EAAoB;IAChB,4EAA+B;IAAA,6EAAiB;IAAA,4EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IACxF,6EAAyE;IAAjC,0WAAgC;IAAxE,4DAAyE;IAC7E,4DAAM;IACV,4DAAM;IACV,4DAAM;IACN,2EAAsB;IAClB,0EAAiB;IACb,0EAAoB;IAChB,4EAA+B;IAAA,6EAAiB;IAAA,4EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IACxF,6EAAyE;IAAjC,0WAAgC;IAAxE,4DAAyE;IAC7E,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;;;IAtB0D,2DAAuB;IAAvB,qFAAuB;IAQvB,0DAAgC;IAAhC,8FAAgC;IAQhC,0DAAgC;IAAhC,8FAAgC;;;;IAQhG,0EAAuE;IACnE,qEAAyB;IACzB,0EAAoB;IAChB,0EAA4B;IACxB,0EAAsB;IAClB,yEAAiB;IACb,yEAAoB;IAChB,2EAA+B;IAAA,kEAAO;IAAA,2EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IAC9E,6EAAgE;IAAxB,iWAAuB;IAA/D,4DAAgE;IACpE,4DAAM;IACV,4DAAM;IACV,4DAAM;IACN,2EAAsB;IAClB,0EAAiB;IACb,0EAAoB;IAChB,4EAA+B;IAAA,4EAAW;IAAA,4EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IAClF,6EAAkE;IAAtB,+VAAqB;IAAjE,4DAAkE;IACtE,4DAAM;IACV,4DAAM;IACV,4DAAM;IACN,2EAAsB;IAClB,0EAAiB;IACb,0EAAoB;IAChB,4EAA+B;IAAA,sFAAqB;IAAA,4EAAyB;IAAA,6DAAC;IAAA,4DAAO;IAAA,4DAAO;IAC5F,6EAAyE;IAA7B,sWAA4B;IAAxE,4DAAyE;IAC7E,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAM;;;IAtB0D,2DAAuB;IAAvB,qFAAuB;IAQnB,0DAAqB;IAArB,mFAAqB;IAQrB,0DAA4B;IAA5B,0FAA4B;;;;IAQhG,0EAA4E;IACxE,qEACM;IACN,0EAAoB;IAEhB,0EAAkD;IAE9C,mFAC2F;IACvF,uEAAM;IAAA,mFAAwB;IAAA,4DAAO;IAMrC,wEAEG;IAFA,2TAAoB,MAAM,KAAE;IAE5B,+EACH;IAAA,4DAAI;IACR,4DAAe;IACnB,4DAAM;IAEN,0EAAiD;IAC7C,oFAC4F;IACxF,wEAAM;IAAA,uEAAW;IAAA,4DAAO;IAMxB,yEAEG;IAFA,4TAAoB,MAAM,KAAE;IAE5B,wFACH;IAAA,4DAAI;IACR,4DAAe;IACnB,4DAAM;IACV,4DAAM;IACV,4DAAM;;;IAtCgB,wFAAwB;IAQ9B,0DAAgC;IAAhC,yFAAgC;IAgBhC,0DAAiC;IAAjC,0FAAiC;;;;IAiBjD,0EAA4D;IACxD,qEAAyB;IACzB,0EAA6B;IACzB,2EAAwB;IAAA,6EAAkB;IAAA,4DAAO;IACrD,4DAAM;IACN,0EAAmB;IACf,4EAA6D;IAArB,6VAAoB;IAA5D,4DAA6D;IACjE,4DAAM;IACV,4DAAM;;;IAF0C,0DAAoB;IAApB,kFAAoB;;;IAexD,uFAAqM;IACjM,0EAAiD;IAAA,uDAAU;IAAA,4DAAM;IACrE,4DAAmB;;;IAFD,uMAAkI;IAAgC,6EAAgB;IAC/I,0DAAU;IAAV,2EAAU;;;IA4B/D,uFAAyI;IACrI,qEAA6I;IACjJ,4DAAmB;;;IAFwE,+EAAkB;IAChF,0DAAqD;IAArD,iMAAqD;;;;IAN1F,0EAAuD;IACnD,sFAGgC;IAA5B,8WAA2B;IAC3B,0JAEmB;IACvB,4DAAkB;IACtB,4DAAM;;;IALE,0DAA2B;IAA3B,0FAA2B;IACkD,0DAAY;IAAZ,sFAAY;;;IAuB7E,qEAA8D;;;IAG9D,qEAAgE;;;IAGhE,qEAA8D;;;IAc9E,2EAAyD;IAAA,6FAA6B;IAAA,4DAAO;;;IAC7F,2EAA2D;IAAA,kGAA6B;IAAA,4DAAO;;;IAFnG,0EAA+D;IAC3D,wIAA6F;IAC7F,wIAA+F;IACnG,4DAAM;;;IAFK,0DAA8B;IAA9B,kGAA8B;IAC9B,0DAAgC;IAAhC,oGAAgC;;;;IAIvC,4EAAyF;IAA5B,kXAA0B;IAAvF,4DAAyF;;;IAA5B,yFAA0B;;;;IAEvF,4EAAqK;IAAtG,iWAA+B;IAA9F,4DAAqK;;;IAAtE,yFAA0B;;;IACzH,0EAAoE;IAChE,wEAAO;IAAA,wEAAa;IAAA,4DAAQ;IAChC,4DAAM;;;IANV,0EAAsD;IAClD,0IAAyF;IAEzF,0IAAqK;IACrK,sIAEM;IACV,4DAAM;;;IANM,0DAA8B;IAA9B,kGAA8B;IAE9B,0DAAgC;IAAhC,oGAAgC;IAClC,0DAAgC;IAAhC,oGAAgC;;;IAX9C,0EAAiE;IAC7D,qEAAyB;IACzB,gIAGM;IACN,qEAAyB;IACzB,gIAOM;IACV,4DAAM;;;IAb6B,0DAA8B;IAA9B,kGAA8B;IAKvC,0DAA8B;IAA9B,kGAA8B;;;;IAUxD,0EAA6D;IACzD,qEAAyB;IACzB,0EAAgC;IAC5B,2EAAwB;IACpB,2EAA+B;IAC3B,yFAQ4B;IAN5B,8UAAuB;IAOvB,4DAAiB;IACrB,4DAAO;IACX,4DAAO;IACX,4DAAM;IACV,4DAAM;;;IAdY,0DAAwB;IAAxB,yFAAwB;IAE1B,0DAAmB;IAAnB,oFAAmB;;;IAiB3B,0EAA2G;IACvG,uDACF;IAAA,4DAAM;;;IAFH,4GAAkC;IACnC,0DACF;IADE,iGACF;;;ADzTP,MAAM,4BAA4B;IAkDrC,YACW,SAAqD,EAC5B,IAAI,EAC5B,WAAwB,EACxB,OAAoB,EACpB,KAAsB,EACtB,QAAqB,EACtB,IAAqB,EACpB,GAAsB,EAC5B,WAAwB,EAClB,UAAsB,EACtB,QAAmB,EACpB,MAAiB,EAChB,YAAyB;QAZ1B,cAAS,GAAT,SAAS,CAA4C;QAC5B,SAAI,GAAJ,IAAI;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,YAAO,GAAP,OAAO,CAAa;QACpB,UAAK,GAAL,KAAK,CAAiB;QACtB,aAAQ,GAAR,QAAQ,CAAa;QACtB,SAAI,GAAJ,IAAI,CAAiB;QACpB,QAAG,GAAH,GAAG,CAAmB;QAC5B,gBAAW,GAAX,WAAW,CAAa;QAClB,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAW;QACpB,WAAM,GAAN,MAAM,CAAW;QAChB,iBAAY,GAAZ,YAAY,CAAa;QA5DrC,kBAAa,GAAW,IAAI,CAAC;QAC7B,YAAO,GAAa,CAAC,oBAAoB,EAAE,6BAA6B,EAAE,SAAS,CAAC,CAAC;QACrF,cAAS,GAAa,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEpD,qBAAgB,GAAW,KAAK,CAAC;QACjC,sBAAiB,GAAW,KAAK,CAAC;QAElC,WAAM,GAAW,EAAE,CAAC;QACpB,gBAAW,GAAW,EAAE,CAAC;QACzB,gBAAW,GAAW,EAAE,CAAC;QACzB,iBAAY,GAAW,EAAE,CAAC;QAK1B,YAAO,GAAY,IAAI,CAAC;QASxB,YAAO,GAAY,KAAK,CAAC;QAEzB,cAAS,GAAY,KAAK,CAAC;QAC3B,UAAK,GAAsC;YAC7C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,EAAE;SACX,CAAC;QAGiB,YAAO,GAAG,0CAA0C,CAAC;QAC9D,oBAAe,GAAG,KAAK,CAAC;QACxB,mBAAc,GAAG,KAAK,CAAC;QACvB,qBAAgB,GAAG,KAAK,CAAC;QAGzB,UAAK,GAAqB,OAAO,CAAC;QAClC,SAAI,GAAyB,SAAS,CAAC;QACvC,SAAI,GAAG,IAAI,CAAC;QAEZ,oBAAe,GAAY,KAAK,CAAC;IAkBpC,CAAC;IAEL,QAAQ;QACJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACrC,SAAS,EAAE,CAAC,EAAE,EAAE,+DAAmB,CAAC;SAC7C,CAAC,CAAC;QACG,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnG,IAAI,CAAC,gBAAgB,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAE;YAClF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,QAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAG;gBACpD,KAAK,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;oBAChC,MAAM;gBAEV,KAAK,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC;oBAC3C,MAAM;gBAEV,KAAK,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,6BAA6B,CAAC;oBACpD,MAAM;gBACV;oBACI,MAAM;aACb;SACJ;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YACtC,UAAU,EAAQ,CAAC,KAAK,EAAE,mEAAuB,CAAC;YAClD,WAAW,EAAO,CAAC,KAAK,EAAE,mEAAuB,CAAC;SACrD,CACJ,CAAC;IACF,CAAC;IACD,QAAQ;QACJ,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC;QACT,IAAG,IAAI,CAAC,gBAAgB,EAAC;YACrB,IAAI,GAAG,gBAAgB,CAAC;SAC3B;aAAI;YACD,IAAI,GAAG,gBAAgB,CAAC;SAC3B;QACD,QAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAG;YACpD,KAAK,CAAC;gBACF,KAAK,GAAG,SAAS,CAAC;gBAClB,MAAM;YAEV,KAAK,CAAC;gBACF,KAAK,GAAG,oBAAoB,CAAC;gBAC7B,MAAM;YAEV,KAAK,CAAC;gBACF,KAAK,GAAG,6BAA6B,CAAC;gBACtC,MAAM;YACV;gBACI,MAAM;SACb;QACD,IAAG,IAAI,CAAC,iBAAiB,EAAC;YACtB,IAAI,GAAG,WAAW;SACrB;aAAI;YACD,IAAI,GAAG,OAAO;SACjB;QACD,IAAI,IAAI,GAAG;YACT,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAG,IAAI;YACf,WAAW,EAAG,IAAI,CAAC,SAAS,GAAC,GAAG,GAAC,IAAI,CAAC,kBAAkB,GAAC,GAAG,GAAC,IAAI,CAAC,kBAAkB;YACpF,KAAK,EAAG,IAAI;YACZ,QAAQ,EAAG,KAAK;YAChB,WAAW,EAAG,IAAI,CAAC,WAAW;YAC9B,SAAS,EAAG,IAAI,CAAC,YAAY;YAC7B,KAAK,EAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC;SAC1D;QACD,IAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,IAAE,CAAC,EAAC;YAClC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC,SAAS,CACzE,CAAC,IAAS,EAAE,EAAE;gBACV,oBAAoB;gBACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAClC,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAClB,CAAC,CACJ,CAAC;SACL;IACL,CAAC;IACD,iBAAiB;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,kBAAkB;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;aACG;YACA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW;gBAC3B,IAAI,CAAC,wBAAwB,EAAE,CAAC;aACnC;iBACG;gBACA,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,iBAAiB;aAC1C;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnG,IAAI,CAAC,gBAAgB,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAE;YAClF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAG,CAAE,IAAI,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAE,gBAAgB;YAC7E,QAAQ,EAAM,CAAE,IAAI,CAAC,iBAAiB,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,OAAO;YACjE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,sIAAsI,CAAC,EAAE;oBAC/K,IAAI,CAAC,KAAK,GAAG;wBACT,IAAI,EAAK,QAAQ;wBACjB,OAAO,EAAE,4DAA4D;qBACxE,CAAC;oBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE;YACjC,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,2BAA2B,CAAC,EAAE;oBACpE,IAAI,CAAC,KAAK,GAAG;wBACT,IAAI,EAAK,QAAQ;wBACjB,OAAO,EAAE,+DAA+D;qBAC3E,CAAC;oBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;IACvC,CAAC;IAED,UAAU,CAAE,IAAW;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oHAAwB,EAAE;YACzD,mBAAmB;YACnB,IAAI,EAAE,EAAC,cAAc,EAAE,IAAI,EAAC;SAC7B,CAAC,CAAC;QAEL,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAE,KAAa;QAEzB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE;YAC/B,IAAI,CAAC,KAAK,GAAG;gBACT,IAAI,EAAK,QAAQ;gBACjB,OAAO,EAAE,8DAA8D;aAC1E,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,OAAO,KAAK,CAAC;SAChB;aACG;YACA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QAE1F,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;IAC3C,CAAC;IAED,cAAc;QACV,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,YAAY;IACpC,CAAC;IAED,gBAAgB,CAAE,KAAK;QACnB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,KAAK,EAAE,KAAK;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;QACT,IAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC;YACrB,IAAI,CAAC,KAAK,GAAG;gBACT,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,oBAAoB;aAC9B,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,CAAC,CAAC;SACf;aACI,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE;YACpC,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,sIAAsI,CAAC,EAAE;oBAC/K,mEAAmE;oBACnE,IAAI,CAAC,KAAK,GAAG;wBACT,IAAI,EAAK,QAAQ;wBACjB,OAAO,EAAE,4DAA4D;qBACxE,CAAC;oBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;aACI,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE;YACtC,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,2BAA2B,CAAC,EAAE;oBACpE,IAAI,CAAC,KAAK,GAAG;wBACT,IAAI,EAAK,QAAQ;wBACjB,OAAO,EAAE,+DAA+D;qBAC3E,CAAC;oBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAGP,MAAM,OAAO,GAAG;YACf,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,KAAK,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;aACpE,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YACxB,YAAY;YACZ,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,qCAAqC;YACrC,kBAAkB;YAClB,sBAAsB;YACtB,6EAA6E;YAC7E,MAAM;YACN,0BAA0B;YAC1B,IAAI;YACJ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,EAAC,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,EAAC,EAAE,CAAC,CAAC;YAE5D,IAAI,SAAS,IAAI,qBAAqB,EAAE;gBACvC,IAAI,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAK,QAAQ;oBACjB,OAAO,EAAE,+DAA+D;iBACxE,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;iBAAM;gBACN,IAAI,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAK,QAAQ;oBACjB,OAAO,EAAE,0FAA0F;iBACnG,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,WAAW;aACX;QACF,CAAC,CAAC,CAAC;QACH,OAAO;IACR,CAAC;IAEE,MAAM,CAAC,OAAO;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,qEAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QACf,UAAU;IACX,CAAC;IAEE,wBAAwB;QACpB,OAAO,CAAC,GAAG,CAAE,0BAA0B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;QAEjE,MAAM,WAAW,GAAG,4BAA4B,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACvD,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,wDAAwD;aAClE,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAClF,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,kEAAkE;aAC5E,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAClF,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,kEAAkE;aAC5E,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1D,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qEAAqE;aAC/E,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,EAAE;YAC/C,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,+BAA+B;aACzC,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;aACI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,KAAK,GAAG;gBACT,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gEAAgE;aAC1E,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SAC3B;aACI,IAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7D,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,4CAA4C;aACtD,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;aAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5C,IAAI,CAAC,KAAK,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gDAAgD;aAC1D,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;aACI;YACD,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC;gBACrB,6DAA6D;gBAE7D,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE;oBAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;wBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,sIAAsI,CAAC,EAAE;4BAC/K,mEAAmE;4BACnE,IAAI,CAAC,KAAK,GAAG;gCACT,IAAI,EAAK,QAAQ;gCACjB,OAAO,EAAE,4DAA4D;6BACxE,CAAC;4BACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,OAAO,KAAK,CAAC;yBAChB;qBACJ;iBACJ;qBACI,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE;oBACtC,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE;wBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAC,2BAA2B,CAAC,EAAE;4BACpE,IAAI,CAAC,KAAK,GAAG;gCACT,IAAI,EAAK,QAAQ;gCACjB,OAAO,EAAE,+DAA+D;6BAC3E,CAAC;4BACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,OAAO,KAAK,CAAC;yBAChB;qBACJ;iBACJ;qBACG;oBACA,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;aACH;iBAAI;gBACD,IAAI,CAAC,KAAK,GAAG;oBACT,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,oBAAoB;iBAC9B,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aAC3B;SACL;IACL,CAAC;IAED,cAAc;QAEhB,iBAAiB;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;aACrE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QAEf,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YAEZ,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,EAAC,EAAE,CAAC,CAAC;YAE5D,IAAI,SAAS,IAAI,oBAAoB,EAAE;gBACtC,IAAI,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAK,QAAQ;oBACjB,OAAO,EAAE,0EAA0E;iBACnF,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;iBAAK,IAAI,SAAS,IAAI,2BAA2B,EAAE;gBACnD,IAAI,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAK,QAAQ;oBACjB,OAAO,EAAE,sEAAsE;iBAC/E,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;iBAAM;gBACN,IAAI,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAK,QAAQ;oBACjB,OAAO,EAAE,yDAAyD;iBAClE,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,WAAW;aACX;QACD,CAAC,CAAC,CAAC;IACL,CAAC;IAEE,MAAM;QACF,IAAI,UAAU,GAAG;YACb,MAAM,EAAY,IAAI,CAAC,SAAS;YAChC,cAAc,EAAI,IAAI,CAAC,kBAAkB;YACzC,eAAe,EAAG,IAAI,CAAC,kBAAkB;YACzC,WAAW,EAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;YAC9D,KAAK,EAAa,IAAI,CAAC,SAAS;YAChC,QAAQ,EAAU,IAAI,CAAC,OAAO;YAC9B,KAAK,EAAQ,EAAE;YACf,UAAU,EAAQ,IAAI;YACtB,WAAW,EAAO,IAAI;SACzB;QACP,UAAU;QACV,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAC,UAAU,CAAC;aAC7D,SAAS,CACT,CAAC,GAAQ,EAAE,EAAE;YACZ,IAAI,GAAG,CAAC,KAAK,EAAE;gBAEd,gBAAgB;gBAChB,IAAI,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAK,QAAQ;oBACjB,OAAO,EAAE,0DAA0D;iBACnE,CAAC;gBACF,iBAAiB;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE;gBAEzB,gBAAgB;gBAChB,IAAI,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAK,QAAQ;oBACjB,OAAO,EAAE,0DAA0D;iBACnE,CAAC;gBACF,iBAAiB;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;iBAAM;gBACN,IAAI,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,wDAAwD;gBACxD,MAAM,OAAO,GAAG;oBACf,KAAK,EAAE,IAAI,CAAC,SAAS;oBACrB,QAAQ,EAAE,IAAI,CAAC,OAAO;oBACtB,KAAK,EAAE,EAAE;iBACT,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,qEAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAErB,UAAU,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,CAAC,EAAE,IAAI,CAAC,CAAC;aAExB;QACF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YAEjB,IAAI,CAAC,KAAK,GAAG;gBACZ,IAAI,EAAK,QAAQ;gBACjB,OAAO,EAAE,iDAAiD;aAC1D,CAAC;YACF,iBAAiB;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC,CACD;QAEK,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAEH,aAAa,CAAC,eAAuB;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,UAAU;QACV,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,YAAY;QACZ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,KAAuB;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,IAA0B;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,IAAuB;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,GAAY;QAC/B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC3B,CAAC;IAED,kBAAkB;QAClB,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAC9D,IAAI,CAAC,eAAe,EAAE;YAClB,KAAK,CAAC,oBAAoB,CAAC,CAAC;SAC/B;aAAM;YACH,KAAK,CAAC,eAAe,CAAC,CAAC;SAC1B;IACD,CAAC;IAED,WAAW;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE;YACX,KAAK,CAAC,oBAAoB,CAAC,CAAC;SAC/B;aAAM;YACH,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnB;IACD,CAAC;IAED,MAAM;QACN,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;IACjC,CAAC;IAED,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK;QACL,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;;wGAhnBQ,4BAA4B,uMAoDzB,qEAAe;0HApDlB,4BAA4B;;;;;;QCvBzC,yEAAwD;QACpD,oEAAkG;QAClG,oEAAmC;QACnC,sHAGK;QAEL,sHAA8F;QAE9F,yHAsBM;QAEN,sHAGK;QAEL,yEAAiB;QACb,oEAA4B;QAC5B,yEAAgD;QAC5C,0EAAiB;QACb,0EAAoB;QAChB,4EAAyC;QAAA,2EAAe;QAAA,4DAAO;QACnE,4DAAM;QACV,4DAAM;QACN,0EAAiB;QACb,2EAA8B;QAC1B,6EAA2I;QAAA,+EAAc;QAAA,4DAAQ;QACrK,4DAAM;QACN,2EAAmB;QACf,wFAGwB;QADpB,sNAA8B;QAElC,4DAAmB;QACvB,4DAAM;QACN,2EAAmB;QACf,6EAA0I;QAAA,yEAAa;QAAA,4DAAQ;QACnK,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,0EAAgD;QAC5C,0EAAiB;QACb,0EAAoB;QAChB,4EAAyC;QAAA,wFAA4B;QAAA,4DAAO;QAChF,4DAAM;QACV,4DAAM;QACN,0EAAiB;QACb,2EAA8B;QAC1B,6EAA4I;QAAA,iEAAK;QAAA,4DAAQ;QAC7J,4DAAM;QACN,2EAAmB;QACf,wFAGwB;QADpB,uNAA+B;QAEnC,4DAAmB;QACvB,4DAAM;QACN,2EAAmB;QACf,6EAA0I;QAAA,qEAAS;QAAA,4DAAQ;QAC/J,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,2HASM;QAEN,4HA8BM;QAEN,4HA8BM;QAEN,4HAsCM;QAGN,2HAQM;QAEN,2EAAkE;QAC9D,sEAAyB;QACzB,2EAA8B;QAC1B,4EAA+B;QAAA,oHAAyC;QAAA,4DAAO;QACnF,4DAAM;QACN,sEAAyB;QACzB,2EAAyB;QACrB,uFAG6B;QAA7B,mNAA4B;QACxB,qJAEmB;QACvB,4DAAkB;QAEtB,4DAAM;QACV,4DAAM;QAEN,2EAA2C;QACvC,sEAAyB;QACzB,2EAA8B;QAC1B,4EAA+B;QAAA,uEAAW;QAAA,4DAAO;QACrD,4DAAM;QACN,sEAAyB;QACzB,2EAAoB;QAChB,gFAAyD;QAA1B,yMAAyB;QAAC,4DAAW;QACxE,4DAAM;QACV,4DAAM;QAEN,2EAA4C;QACxC,sEAAyB;QACzB,2EAAyB;QACrB,4EAAwB;QAAA,kHAAuC;QAAA,4DAAO;QAC1E,4DAAM;QACN,2HASM;QAEN,0EAAoB;QAChB,0EAAiB;QACb,sEAAyB;QACzB,2EAAmB;QACf,0EAAiB;QACb,2EAA+C;QAC3C,2EAAoJ;QAApC,kJAAS,qBAAiB,OAAO,CAAC,IAAC;QAAnJ,4DAAoJ;QACxJ,4DAAM;QACN,2EAA+C;QAC3C,2EAAuJ;QAAtC,kJAAS,qBAAiB,SAAS,CAAC,IAAC;QAAtJ,4DAAuJ;QAC3J,4DAAM;QACN,2EAA+C;QAC3C,2EAAsJ;QAApC,kJAAS,qBAAiB,OAAO,CAAC,IAAC;QAArJ,4DAAsJ;QAC1J,4DAAM;QACV,4DAAM;QACN,0EAAiB;QACb,2EAA+C;QAC3C,2HAA8D;QAClE,4DAAM;QACN,2EAA+C;QAC3C,2HAAgE;QACpE,4DAAM;QACN,2EAA+C;QAC3C,2HAA8D;QAClE,4DAAM;QACV,4DAAM;QACV,4DAAM;QACN,sEAAyB;QAC7B,4DAAM;QACV,4DAAM;QACV,4DAAM;QAIN,2HAeM;QAEN,2HAkBM;QACN,2EAA4C;QACxC,sEAAyB;QACzB,2EAAoB;QAEhB,2HAEQ;QACZ,4DAAM;QACN,sEAAyB;QAC7B,4DAAM;QAEN,2EAA2C;QACvC,8EAAkF;QAA9B,qJAAS,uBAAmB,IAAC;QAAC,yFAAwB;QAAA,4DAAS;QAEnH,8EAAsF;QAAA,oEAAQ;QAAA,4DAAS;QAC3G,4DAAM;QACV,4DAAM;;QAvVqB,0DAAc;QAAd,8EAAc;QAKd,0DAAa;QAAb,6EAAa;QAE6B,0DAA0B;QAA1B,8FAA0B;QAwBzE,0DAAc;QAAd,8EAAc;QAeT,2DAAmI;QAAnI,wOAAmI;QAKtI,0DAA8B;QAA9B,yFAA8B;QAK3B,0DAAkI;QAAlI,sOAAkI;QAalI,0DAAoI;QAApI,0OAAoI;QAKvI,0DAA+B;QAA/B,0FAA+B;QAK5B,0DAAkI;QAAlI,wOAAkI;QAM7G,0DAAsB;QAAtB,sFAAsB;QAWtB,0DAAyB;QAAzB,6FAAyB;QAgCzB,0DAAyB;QAAzB,6FAAyB;QAgCpB,0DAAyB;QAAzB,6FAAyB;QAyC7B,0DAAa;QAAb,6EAAa;QAoBlD,0DAA4B;QAA5B,uFAA4B;QACgJ,0DAAU;QAAV,gFAAU;QAevJ,0DAAyB;QAAzB,oFAAyB;QASlB,0DAAW;QAAX,uEAAW;QA4B3B,2DAA8B;QAA9B,8FAA8B;QAG9B,0DAAgC;QAAhC,gGAAgC;QAGhC,0DAA8B;QAA9B,8FAA8B;QAWhB,0DAAmB;QAAnB,mFAAmB;QAiBlB,0DAAc;QAAd,8EAAc;QAuBG,0DAAe;QAAf,+EAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9UM;AACgC;AAC7D;AAGU;AAO6B;;;;;;;;;;;;;IC2BjF,wEAAmC;IAC/B,qEAAqD;IACrD,gEAAI;IAAA,gEAAI;IACZ,qEAAe;;;IAEf,wEAAkC;IAC9B,yEAOU;IACV,oEAAG;IAAA,wEAAO;IAAA,6HAAwD;IAAA,4DAAQ;IAAA,4DAAI;IAClF,qEAAe;;;IARH,0DAAe;IAAf,+EAAe;;;;AD3BpC,MAAM,sBAAsB;IAe/B,YACY,MAAc,EACd,MAAsB,EACtB,WAAwB,EACxB,WAAwB,EACzB,OAAgB,EAChB,MAAiB,EACP,KAAsB;QAN/B,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAgB;QACtB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACzB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAW;QACP,UAAK,GAAL,KAAK,CAAiB;QAf3C,iBAAY,GAAW,IAAI,CAAC;QAE5B,eAAU,GAAG,EAAE,CAAC;QAChB,QAAG,GAAW,IAAI,CAAC;IAaf,CAAC;IAEL,QAAQ;QAEJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAS,EAAE,EAAE;YACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAE,IAAI,CAAC,UAAU,CAAE,CAAC;YAEpC,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBACnF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;aACnB;iBACG;gBACA,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC1C;YAED,6FAA6F;YAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;YACjE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAExB,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;gBACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,cAAc,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE,CAAC;aAC1C;iBACG;gBACA,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC,CAAC;gBAG/D,IAAI,cAAc,CAAC,OAAO,CAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,IAAI,CAAC,CAAC,EAAE;oBACzD,cAAc,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE,CAAC;iBAC1C;aACJ;YAED,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAE,mFAAmB,CAAC,EAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,CAAE;YAC9E,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;QAC9C,CAAC,CAAC;QAEF,oGAAoG;QACpG,mGAAmG;QACnG,wGAAwG;IAE5G,CAAC;IAED,UAAU;QACZ,iDAAiD;IAClD,CAAC;IAEE,WAAW,CAAE,EAAS;QAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,wBAAwB,EAAE,EAAE,CAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC9E,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC;YAEjE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,IAAI;aAC3B;iBACG;gBACA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;oBACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACzD;qBACG;oBACA,IAAI,CAAC,YAAY,GAAG,IAAI;iBAC3B;aACJ;YAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAG5D,IAAI,CAAC,UAAU,GAAG,EAAE;YAGpB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,EAAE;gBACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC5B;iBACG;gBACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wBACjB,MAAM,EAAE,OAAO,CAAC,QAAQ;wBACxB,UAAU,EAAE,OAAO,CAAC,QAAQ;qBAC/B,CAAC;gBACN,CAAC,CAAC,CAAC;aACN;YAGD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;YAEtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,wDAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1G,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,UAAU;;QACN,IAAI,IAAI,GAAG,mBAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,IAAI,KAAK,GAAG,gBAAI,CAAC,SAAS,0CAAE,KAAK,mCAAI,EAAE,CAAC;QAExC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAG5C,CAAC;IAED,UAAU;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2GAAqB,EAAE;YACtD,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,IAAI,CAAC,UAAU;SACtB,CAAC,CAAC;QAEL,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;QAE1C,CAAC,CAAC,CAAC;IACP,CAAC;;4FArJQ,sBAAsB;oHAAtB,sBAAsB;kEAGjB,oEAAiB,KAAS,qDAAU;;;;;QCtBtD,6EAA8B;QAC1B,yEAAuB;QACnB,wEAAkD;QAAA,oFAAoB;QAAA,4DAAK;QAC/E,4DAAM;QACV,4DAAU;QAEV,yEAAmC;QAC/B,yEAA0D;QACtD,uEAA4D;QAAA,iEAAM;QAAA,4DAAI;QACtE,qEAAuC;QACvC,uEAA+G;QAAA,wDAAuB;QAAA,4DAAI;QAC1I,sEAAuC;QACvC,wEAA+I;QAAA,wDAAwB;QAAA,4DAAI;QAC/K,4DAAM;QACV,4DAAM;QAGN,8EAAmC;QAC/B,0EAAuB;QACnB,8EAAiF;QAC7E,2EAAiB;QACb,2EAAgC;QAC5B,2EAAkC;QAC9B,sEAAI;QAAA,wDAAwB;QAAA,4DAAK;QACjC,sEAAI;QAAA,wDAAuB;QAAA,4DAAK;QACpC,4DAAM;QACV,4DAAM;QACN,2EAAgC;QAC5B,2EAAkC;QAC9B,2EAAsC;QAAA,wDAAqD;;QAAA,4DAAM;QACjG,qEAAG;QAAA,wDAAiG;QAAA,4DAAI;QACxG,qEAAG;QAAA,2FAA+B;QAAA,4DAAI;QAC1C,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAS;QAET,2EAAiB;QACb,2EAAsB;QAClB,uIAGe;QAEf,uIAUe;QAEnB,4DAAM;QAEN,2EAAsB;QAClB,6EAAoC;QAChC,2EAA0E;QACtE,0EAAuB;QAAA,4EAAW;QAAA,4DAAK;QACvC,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,oEAAG;QAAA,4DAAK;QACxD,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAsB;QAAA,4DAAI;QACzE,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,iEAAK;QAAA,4DAAK;QAC1D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAuB;QAAA,4DAAI;QAC1E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,kEAAM;QAAA,4DAAK;QAC3D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAwB;QAAA,4DAAI;QAC3E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,wEAAO;QAAA,4DAAK;QAC5D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAyB;QAAA,4DAAI;QAC5E,4DAAM;QACV,4DAAM;QACN,2EAAiB;QACb,2EAAsB;QAClB,0EAA4C;QAAA,oEAAQ;QAAA,4DAAK;QAC7D,4DAAM;QACN,2EAAsB;QAClB,yEAA2C;QAAA,wDAAsB;QAAA,4DAAI;QACzE,4DAAM;QACV,4DAAM;QAEN,2EAAiB;QACb,2EAAsB;QAAA,kEAAM;QAAA,4DAAM;QAClC,2EAAsB;QAClB,2EAAiB;QACb,2EAAuB;QACnB,8EAAiE;QAAvB,+IAAS,gBAAY,IAAC;QAAC,kFAAsB;QAAA,4DAAS;QACpG,4DAAM;QACN,2EAAuB;QACnB,yEAA+F;QAAA,8EAAa;QAAA,4DAAI;QACpH,4DAAM;QACN,2EAAuB;QACnB,yEAAkE;QAAA,2EAAe;QAAA,4DAAI;QACzF,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAQ;QAiBZ,4DAAM;QAGV,4DAAM;QACV,4DAAM;QACV,4DAAU;QAGV,+EAA8C;QAC1C,mFAA0D;QAC9D,4DAAU;QAGV,+EAAmC;QAC/B,0EAAuB;QACnB,yEAAyB;QAC7B,4DAAM;QACV,4DAAU;;QAlJC,0DAA6B;QAA7B,8IAA6B;QAE7B,0DAAgF;QAAhF,oPAAgF;QAA4B,0DAAuB;QAAvB,qHAAuB;QAEnI,0DAAuG;QAAvG,kTAAuG;QAAqC,0DAAwB;QAAxB,sHAAwB;QAWnJ,0DAAwB;QAAxB,sHAAwB;QACxB,0DAAuB;QAAvB,qHAAuB;QAKW,0DAAqD;QAArD,6MAAqD;QACxF,0DAAiG;QAAjG,wMAAiG;QAS7F,0DAAkB;QAAlB,kFAAkB;QAKlB,0DAAiB;QAAjB,iFAAiB;QAuB2B,2DAAsB;QAAtB,oHAAsB;QAQtB,0DAAuB;QAAvB,qHAAuB;QAQvB,0DAAwB;QAAxB,sHAAwB;QAQxB,0DAAyB;QAAzB,uHAAyB;QAQzB,0DAAsB;QAAtB,oHAAsB;QAYtD,2DAAyB;QAAzB,0JAAyB;QAAC,4FAA+B;QAGzD,0DAAoB;QAApB,uJAAoB;QAgCzC,0DAAoB;QAApB,iFAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClJ6E;AACrB;AAEjB;;;;;;;;;;;;;;;;;;;;;ICyBjD,qEAAmC;IAC/B,wEAAkF;IAAA,uDAAmB;IAAA,4DAAI;IAC7G,4DAAK;;;IADE,0DAAyC;IAAzC,mLAAyC;IAAsC,0DAAmB;IAAnB,kFAAmB;;;IALrH,wEAAwC;IACpC,0EAA2C;IACvC,wEAAmF;IAAA,sEAAmC;IAAA,+EAAoB;IAAA,4DAAI;IAC9I,yEAAmC;IAC/B,2HAEK;IACT,4DAAK;IACT,4DAAM;IACV,qEAAe;;;IALkB,0DAAY;IAAZ,qFAAY;;;;IAyHL,6EAA4G;IAA9B,mUAA6B;IACvG,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B,4DAAS;;;;IAOrB,oFAAmH;IAA/C,uYAA0B,OAAO,oBAAa;IAC9G,4EAAuC;IACnC,qEAAI;IACA,yEAAyB;IAAC,qEAA8C;IAAE,4DAAK;IAC/E,yEAA8B;IAAC,uEAAM;IAAA,wEAAO;IAAA,uDAA6B;IAAA,4DAAQ;IAAA,4DAAO;IAAA,4DAAK;IACjG,4DAAK;IACT,4DAAQ;IAEZ,4DAAgB;;;IAL2B,0DAAmB;IAAnB,6IAAmB;IACN,0DAA6B;IAA7B,qGAA6B;;;;IA2BzE,6EAA8G;IAA/B,oUAA8B;IACzG,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B,4DAAS;;;;IAOrB,oFAAqH;IAAhD,uYAA0B,QAAQ,oBAAa;IAChH,uEAAM;IAAA,wEAAO;IAAA,uDAAa;IAAA,4DAAQ;IAAA,4DAAO;IAC7C,4DAAgB;;;IADC,0DAAa;IAAb,8EAAa;;;;IAc9B,oFAAmH;IAAhD,uYAA0B,MAAM,sBAAe;IAC9G,uEAAM;IAAA,wEAAO;IAAA,uDAAe;IAAA,4DAAQ;IAAA,4DAAO;IAC/C,4DAAgB;;;IADC,0DAAe;IAAf,gFAAe;;;;IAwBpB,6EAAwH;IAApC,yUAAmC;IACnH,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B,4DAAS;;;;IAOrB,oFAA+H;IAArD,uYAA0B,aAAa,oBAAa;IAC1H,uEAAM;IAAA,wEAAO;IAAA,uDAAa;IAAA,4DAAQ;IAAA,4DAAO;IAC7C,4DAAgB;;;IADC,0DAAa;IAAb,8EAAa;;;;IAwBlB,6EAAkG;IAAzB,2TAAqB,EAAE,IAAC;IAC7F,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAC9B,4DAAS;;;;IASb,qEAA4C;IACxC,mFACkD;IADpC,yUAA4B;IAE1C,uDACA;IAAA,4DAAe;IACnB,4DAAK;;;IAJa,0DAA4B;IAA5B,uFAA4B;IAE1C,0DACA;IADA,yFACA;;;IAwEhC,wEAA6F;IACzF,sFAAqH;IACzH,qEAAe;;;IADW,0DAAa;IAAb,0EAAa;;;;IAF3C,wEAA0C;IACtC,gJAEe;;IACnB,qEAAe;;;IAHoB,0DAA4D;IAA5D,wOAA4D;;;IAK/F,wEAA2C;IACvC,0EAAuB;IACnB,qEAAI;IAAA,gJAA2E;IAAA,4DAAK;IACxF,4DAAM;IACV,qEAAe;;;;IAGf,0FAA0H;IAAzE,qWAAyB;IAAgD,4DAAsB;;;ADlWjK,MAAM,gBAAgB;IA+DzB,YACY,MAAc,EACd,MAAsB,EACtB,WAAwB,EACxB,WAAwB,EACxB,EAAe,EACN,KAAsB,EAChC,kBAAsC;QANrC,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAgB;QACtB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,OAAE,GAAF,EAAE,CAAa;QACN,UAAK,GAAL,KAAK,CAAiB;QAChC,uBAAkB,GAAlB,kBAAkB,CAAoB;QArEjD,UAAK,GAAW,MAAM,CAAC;QACvB,cAAS,GAAW,OAAO,CAAC;QAC5B,YAAO,GAAY;YACf,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC,KAAa,EAAE,KAAgB,EAAU,EAAE;gBACnD,OAAO,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;SACJ,CAAC;QAEF,aAAQ,GAAQ,EAAE;QAClB,mBAAc,GAAW,IAAI,CAAC;QAG9B,gBAAW,GAAO,IAAI,uDAAW,CAAE,EAAE,CAAE,CAAC;QACxC,cAAS,GAAS,IAAI,uDAAW,CAAE,EAAE,CAAE,CAAC;QACxC,mBAAc,GAAI,IAAI,uDAAW,CAAE,EAAE,CAAE,CAAC;QACxC,aAAQ,GAAU,IAAI,uDAAW,CAAE,EAAE,CAAE,CAAC;QACxC,gBAAW,GAAO,EAAE,CAAC;QAErB,iBAAY,GAAO,EAAE,CAAC;QAEtB,cAAS,GAAQ;YACb,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,EAAE;SACX;QAED,gBAAW,GAAY,KAAK,CAAC;QAG7B,MAAC,GAAW,CAAC,CAAC;QAKd,qBAAgB,GAAY,IAAI,CAAC;QAEjC,iBAAY,GAAO,EAAE;QACrB,iBAAY,GAAY,IAAI,CAAC;QAU7B,oBAAe,GAAQ,IAAI,CAAC;QAC5B,cAAS,GAAQ,IAAI,CAAC;QAEtB,cAAS,GAAW,IAAI,CAAC;QACzB,aAAQ,GAAY,IAAI,CAAC;QACzB,eAAU,GAAY,IAAI,CAAC;QAC3B,gBAAW,GAAY,IAAI,CAAC;QAElB,gBAAW,GAAG,IAAI,uDAAY,EAAQ,CAAC;QAW7C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC;YAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,qDAAS,CAAC;YAClC,UAAU,EAAE,IAAI,uDAAW,EAAE;YAC7B,WAAW,EAAE,IAAI,uDAAW,EAAE;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC;QAE1D,6FAA6F;QAE7F,oDAAoD;IACxD,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAS,EAAE,EAAE;YACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEzC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAEtE,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC;gBAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YACtF,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC;gBAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YACtF,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG;gBAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5E,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG;gBAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAC/E,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG;gBAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YACzE,IAAI,IAAI,CAAC,iBAAiB,IAAI,GAAG;gBAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC9F,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG;gBAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACrF,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG;gBAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAErF,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;QACjE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,kBAAkB;aACtB,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC;aAC/B,SAAS,CAAC,CAAC,KAAsB,EAAE,EAAE;YAClC,IAAI,KAAK,CAAC,OAAO,EAAE;gBACnB,6BAA6B;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aAE3B;iBAAM;gBACP,8BAA8B;gBAC1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED,gBAAgB,CAAC,KAAK;QACxB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;QAChE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;QAC3H,UAAU,CAAC,GAAE,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC;QACpD,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,MAAM;QACL,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,QAAQ,CAAC,GAAG,CAAC,CAAE,CAAC;IAC/D,CAAC;IAED,aAAa;QACZ,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;QAC5H,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC;QAEhI,UAAU,CAAC,GAAE,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAC;QACtD,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,oBAAoB,CAAE,KAAK;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QACrE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC;QAC/H,UAAU,CAAC,GAAE,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC;QACrD,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,UAAU;QACT,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,QAAQ,CAAC,GAAG,CAAC,CAAE,CAAC;IAChE,CAAC;IAEE,UAAU;QACN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC;aACvE,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAEzC,cAAc;YACd,wBAAwB;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjE,wBAAwB;YACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC;YAE1D,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,kCAAkC;YAClC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9E,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAG9E,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAClD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;YAEhE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAE,yBAAyB,EAAE,IAAI,CAAC,eAAe,EAAE,CAAE,CAAC;YAGjE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd;oBACI,QAAQ,EAAE,OAAO,CAAC,UAAU;oBAC5B,GAAG,EAAE,OAAO,CAAC,MAAM;oBACnB,WAAW,EAAE,OAAO,CAAC,KAAK,GAAG,GAAG,GAAE,OAAO,CAAC,MAAM;oBAChD,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,EAAE;oBACZ,WAAW,EAAE,EAAE;oBACf,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,aAAa,EAAE,OAAO,CAAC,aAAa;iBACvC,CACJ;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAI5C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACD,CAAC;IAED,eAAe,CAAE,CAAC;QACd,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK;QAE/D,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,GAAG;IACjC,CAAC;IAED,aAAa;QACT,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK;QAE7D,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG;IAC/B,CAAC;IAED,kBAAkB;QACd,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,KAAK;QAElE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG;IACpC,CAAC;IAED,YAAY;QACR,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK;QAE5D,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,EAAE;IACxB,CAAC;IAED,uBAAuB;QACnB,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,EAAE;IAC7B,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,EAAE;IACvB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB;QACnB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACZ,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAE,OAAO,CAAC,GAAG,CAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,GAAG,IAAI;QACtB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC;IAClD,CAAC;IAED,gBAAgB,CAAC,IAAW,EAAE,KAAY;QACtC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,YAAY,CAAE,IAAI,CAAE,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY;QACR,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAI,IAAI,CAAC,mBAAmB,CAAC;QAC1D,yBAAyB;QAEzB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACnI,CAAC;IAED,eAAe;QACX,OAAO,CACH,CAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;eACpD,CAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE;eACvD,CAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,CAAE;eAClF,CAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAE;eACpF,CAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAE;eAChF,CAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,IAAI,CAAE;eAC9F,CAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,CAAE;QAC3F,uFAAuF;SACzF,CAAC;IACP,CAAC;IAED,aAAa;QACT,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,IAAI,EAAC;YAC/E,QAAQ,GAAG,EAAE;SAChB;aACG;YACA,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACtC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;SACrC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,cAAc;QAEV,IAAI,CAAC,eAAe,GAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAU,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAW,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAW,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5J,IAAI,CAAC,YAAY,GAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAU,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAU,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7J,IAAI,CAAC,UAAU,GAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAY,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAY,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3J,IAAI,CAAC,iBAAiB,GAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAClK,IAAI,CAAC,cAAc,GAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/J,IAAI,CAAC,cAAc,GAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/J,uGAAuG;QACvG,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;QAED,MAAM,GAAG,GAAG,oBAAqB,IAAI,CAAC,eAAgB,IAAK,IAAI,CAAC,eAAgB,IAAK,IAAI,CAAC,WAAY,IAAK,IAAI,CAAC,YAAa,IAAK,IAAI,CAAC,UAAW,IAAK,IAAI,CAAC,iBAAkB,IAAK,IAAI,CAAC,cAAe,IAAK,IAAI,CAAC,cAAe,EAAE,CAAC;QAEnO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,eAAe,GAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAU,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAW,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAW,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5J,IAAI,CAAC,YAAY,GAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAU,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAU,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7J,IAAI,CAAC,UAAU,GAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAY,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAY,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3J,IAAI,CAAC,iBAAiB,GAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAClK,IAAI,CAAC,cAAc,GAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/J,IAAI,CAAC,cAAc,GAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAQ,IAAI,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/J,uGAAuG;QACvG,MAAM,GAAG,GAAG,kBAAmB,IAAI,CAAC,CAAE,IAAK,IAAI,CAAC,eAAgB,IAAK,IAAI,CAAC,eAAgB,IAAK,IAAI,CAAC,WAAY,IAAK,IAAI,CAAC,YAAa,IAAK,IAAI,CAAC,UAAW,IAAK,IAAI,CAAC,iBAAkB,IAAK,IAAI,CAAC,cAAe,IAAK,IAAI,CAAC,cAAe,EAAE,CAAC;QAC7O,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,SAAS;QACL,IAAI,KAAK,GAAG;YACR,SAAS,EAAE,IAAI,CAAC,eAAe;SAClC;QACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC;aAC3D,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACd,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACD,CAAC;;gFAzbQ,gBAAgB;8GAAhB,gBAAgB;QCjB7B,6EAA8B;QAC1B,yEAAuB;QACnB,wEAAkD;QAAA,iFAAiB;QAAA,4DAAK;QAI5E,4DAAM;QACV,4DAAU;QAGV,yEAAmC;QAC/B,yEAA0D;QACtD,uEAA4D;QAAA,iEAAM;QAAA,4DAAI;QACtE,qEAAuC;QACvC,uEAA+D;QAAA,sEAAU;QAAA,4DAAI;QACjF,4DAAM;QACV,4DAAM;QAGN,0EAAuB;QACnB,0EAAuB;QACnB,0EAAiB;QACb,2EAAgC;QAC5B,2EAAmE;QAC/D,iIASe;QAEnB,4DAAM;QACV,4DAAM;QACN,2EAAgC;QAC5B,2EAAoC;QAChC,2EAAyC;QACrC,6EAMwC;QALhC,kMAAiC,gGAChB,sBAAkB,IADF;QADzC,4DAMwC;QACxC,2EAAgC;QAC9B,8EAAqF;QAA7E,yIAAS,sBAAkB,IAAC;QAAiD,oEAA+C;QAAC,mEAAM;QAAA,4DAAS;QACtJ,4DAAM;QACR,4DAAM;QAEZ,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,2EAA8G;QAAxE,gJAAsB,IAAI,2BAAgB,KAAK,IAAE;QACnF,oEAA+C;QACnD,4DAAM;QAEN,2EAA+G;QAAzE,gJAAsB,KAAK,2BAAgB,IAAI,IAAE;QACnF,oEAA8C;QAClD,4DAAM;QAEN,6EAAsC;QAClC,2EAAqB;QACjB,2EAA2B;QACvB,0EAAiB;QACb,2EAAkD;QAC9C,6EAA8B;QAC1B,2EAAoE;QAChE,2EAAsC;QAClC,0EAAqE;QAAA,mEAAO;QAAA,4DAAK;QAMjF,2EAA2C;QACvC,yEAAO;QAAA,6EAAiB;QAAA,4DAAQ;QAChC,2EAA2B;QACvB,kFAAwG;QAA5F,iJAAW,mBAAe,IAAC;QAAiE,4DAAa;QACzH,4DAAM;QACN,0EAAiB;QACb,4EAA4B;QACxB,2EAAsB;QAOlB,6EAKuB;QAFnB,gLAAiB,oFACT,4BAAwB,IADf,gFAER,YAAQ,IAFA;QAHrB,4DAKuB;QAC3B,4DAAM;QAEN,2EAAsB;QAOlB,6EAK2B;QAFvB,oLAAqB,oFACb,gCAA4B,IADf,gFAEZ,gBAAY,IAFA;QAHzB,4DAK2B;QAC/B,4DAAM;QACV,4DAAO;QAQX,4DAAM;QACN,iEAAI;QACJ,8EAA8E;QAApC,yIAAS,6BAAyB,IAAC;QAAC,2EAAe;QAAA,4DAAS;QAC1G,4DAAM;QACN,2EAA2C;QACvC,iFAAe;QAEX,2FAC0D;QADrC,6KAA2B,IAAI,IAAC,qHACF,KAAK,IADH;QAEjD,8FAA4B;QACxB,mFAAiB;QACb,wDACJ;QAAA,4DAAkB;QACtB,4DAA6B;QAE7B,2EAA8D;QAC1D,2EAAuB;QACnB,4EAAkC;QAC9B,sFAA6D;QACzD,6EAKiC;QAHzB,+LAA8B,gFAGrB,kBAAc,IAHO;QAFtC,4DAKiC;QACjC,qHAES;QACb,4DAAiB;QACrB,4DAAO;QACX,4DAAM;QACV,4DAAM;QAEN,gFAA0C;QACtC,mIAQgB;QACpB,4DAAW;QACf,4DAAsB;QAGtB,2FAC0D;QADrC,6KAA2B,IAAI,IAAC,qHACF,KAAK,IADH;QAEjD,8FAA4B;QACxB,mFAAiB;QACb,wDACJ;QAAA,4DAAkB;QACtB,4DAA6B;QAE7B,2EAA+D;QAC3D,2EAAuB;QACnB,4EAAkC;QAC9B,sFAA6D;QACzD,6EAKkC;QAH1B,gMAA+B,gFAGtB,mBAAe,IAHO;QAFvC,4DAKkC;QAClC,qHAES;QACb,4DAAiB;QACrB,4DAAO;QACX,4DAAM;QACV,4DAAM;QAEN,gFAA0C;QACtC,mIAEgB;QACpB,4DAAW;QACf,4DAAsB;QAGtB,2FAC0D;QADrC,6KAA2B,IAAI,IAAC,qHACF,KAAK,IADH;QAEjD,8FAA4B;QACxB,mFAAiB;QACb,wDACJ;QAAA,4DAAkB;QACtB,4DAA6B;QAC7B,gFAA0C;QACtC,mIAEgB;QACpB,4DAAW;QACf,4DAAsB;QAGtB,2FAC0D;QADrC,6KAA2B,IAAI,IAAC,qHACF,KAAK,IADH;QAEjD,8FAA4B;QACxB,mFAAiB;QACb,wDACJ;QAAA,4DAAkB;QACtB,4DAA6B;QAE7B,2EAAoE;QAChE,2EAAuB;QACnB,4EAAkC;QAC9B,sFAA6D;QACzD,6EAKuC;QAH/B,qMAAoC,gFAG3B,wBAAoB,IAHO;QAF5C,4DAKuC;QACvC,qHAES;QACb,4DAAiB;QACrB,4DAAO;QACX,4DAAM;QACV,4DAAM;QAEN,gFAA0C;QACtC,mIAEgB;QACpB,4DAAW;QACf,4DAAsB;QAGtB,2FAC0D;QADrC,6KAA2B,IAAI,IAAC,qHACF,KAAK,IADH;QAEjD,8FAA4B;QACxB,mFAAiB;QACb,yDACJ;QAAA,4DAAkB;QACtB,4DAA6B;QAE7B,4EAAwC;QACpC,4EAAuB;QACnB,6EAAkC;QAC9B,uFAA6D;QACzD,8EAK0C;QAHlC,2LAAyB,uFAGhB,2BAAuB,IAHP;QAFjC,4DAK0C;QAC1C,uHAES;QACb,4DAAiB;QACrB,4DAAO;QACX,4DAAM;QACV,4DAAM;QAEN,gFAAiC;QAC7B,6EAAmC;QAC/B,uEAAI;QACA,+GAKK;QACT,4DAAK;QACT,4DAAO;QAEP,+EAAmG;QAA7B,0IAAS,sBAAkB,IAAC;QAAC,8EAAiB;QAAA,4DAAS;QACjI,4DAAU;QACd,4DAAsB;QAE1B,4DAAgB;QACpB,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAQ;QACZ,4DAAM;QACN,4EAAgD;QAC5C,4EAA0B;QACtB,4EAAuB;QAEnB,sFAA0C;QACtC,6EAAU;QACN,yDACJ;;;QAAA,4DAAW;QAGX,iFAAuF;QACnF,yDACA;QAAA,+EAAgE;QAA1C,0IAAS,qBAAiB,OAAO,EAAE,IAAI,CAAC,IAAC;QAC3D,6EAAU;QAAA,mEAAM;QAAA,4DAAW;QAC/B,4DAAS;QACb,4DAAW;QAGX,iFAAyF;QACrF,yDACA;QAAA,+EAAiE;QAA3C,0IAAS,qBAAiB,QAAQ,EAAE,IAAI,CAAC,IAAC;QAC5D,6EAAU;QAAA,mEAAM;QAAA,4DAAW;QAC/B,4DAAS;QACb,4DAAW;QAGX,iFAAqF;QACjF,yDACA;QAAA,+EAA+D;QAAzC,0IAAS,qBAAiB,MAAM,EAAE,IAAI,CAAC,IAAC;QAC1D,6EAAU;QAAA,mEAAM;QAAA,4DAAW;QAC/B,4DAAS;QACb,4DAAW;QAGX,iFAAmG;QAC/F,yDACA;QAAA,+EAAsE;QAAhD,0IAAS,qBAAiB,aAAa,EAAE,IAAI,CAAC,IAAC;QACjE,6EAAU;QAAA,mEAAM;QAAA,4DAAW;QAC/B,4DAAS;QACb,4DAAW;QAGX,iFAA6F;QACzF,yDACA;QAAA,+EAAmE;QAA7C,0IAAS,qBAAiB,UAAU,EAAE,IAAI,CAAC,IAAC;QAC9D,6EAAU;QAAA,mEAAM;QAAA,4DAAW;QAC/B,4DAAS;QACb,4DAAW;QAGX,iFAA2E;QAAzB,4IAAS,kBAAc,IAAC;QACtE,8EACJ;QAAA,4DAAW;QAEf,4DAAgB;QACpB,4DAAM;QACN,mIAIe;QAEf,mIAIe;QACnB,4DAAM;QACN,4EAAiC;QAC7B,iJAAgJ;QACpJ,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QAGV,qEAAe;;QA/WJ,0DAA6B;QAA7B,8IAA6B;QAYL,2DAAuB;QAAvB,uFAAuB;QAiB1B,0DAAiC;QAAjC,4FAAiC;QAiBuB,0DAAqB;QAArB,kFAAqB;QAIrB,0DAAsB;QAAtB,mFAAsB;QAQnE,0DAAsB;QAAtB,mFAAsB;QAae,2DAAiB;QAAjB,4EAAiB;QAGnD,0DAAqB;QAArB,kFAAqB;QAWf,0DAAiB;QAAjB,4EAAiB;QAejB,0DAAqB;QAArB,gFAAqB;QAuBrB,0DACJ;QADI,qLACJ;QAGa,0DAA4C;QAA5C,6KAA4C;QAE/C,0DAA2B;QAA3B,wFAA2B;QAIjB,0DAA8B;QAA9B,yFAA8B;QAI7B,0DAAsB;QAAtB,sFAAsB;QASK,0DAAkB;QAAlB,wFAAkB;QAiB9D,0DACJ;QADI,wLACJ;QAGa,0DAA6C;QAA7C,+KAA6C;QAEhD,0DAA2B;QAA3B,wFAA2B;QAIjB,0DAA+B;QAA/B,0FAA+B;QAI9B,0DAAuB;QAAvB,uFAAuB;QASI,0DAAmB;QAAnB,yFAAmB;QAW/D,0DACJ;QADI,oJACJ;QAGgD,0DAAiB;QAAjB,uFAAiB;QAW7D,0DACJ;QADI,4MACJ;QAGa,0DAAkD;QAAlD,yLAAkD;QAErD,0DAA2B;QAA3B,wFAA2B;QAIjB,0DAAoC;QAApC,+FAAoC;QAInC,0DAA4B;QAA5B,4FAA4B;QASD,0DAAwB;QAAxB,8FAAwB;QAWpE,0DACJ;QADI,4JACJ;QAKU,0DAA2B;QAA3B,wFAA2B;QAIjB,0DAAyB;QAAzB,oFAAyB;QAIxB,0DAAiB;QAAjB,iFAAiB;QAWT,0DAAqB;QAArB,2FAAqB;QASR,0DAA2B;QAA3B,wFAA2B;QAgBjF,0DACJ;QADI,qVACJ;QAGU,0DAA4E;QAA5E,2IAA4E;QAClF,0DACA;QADA,kGACA;QAMM,0DAA8E;QAA9E,6IAA8E;QACpF,0DACA;QADA,mGACA;QAMM,0DAA0E;QAA1E,yIAA0E;QAChF,0DACA;QADA,iGACA;QAMM,0DAAwF;QAAxF,uJAAwF;QAC9F,0DACA;QADA,wGACA;QAMM,0DAAkF;QAAlF,iJAAkF;QACxF,0DACA;QADA,+FACA;QAMM,0DAAuB;QAAvB,oFAAuB;QAM1B,0DAAyB;QAAzB,yFAAyB;QAMzB,0DAA0B;QAA1B,0FAA0B;QAOnB,0DAAyB;QAAzB,yFAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClXgD;AAGtC;;;;;;;;;;;;;;IC8FjD,wEAA4C;IACxC,qEAA4C;IAChD,qEAAe;;;IACf,wEAA4C;IACxC,qEAA8C;IAClD,qEAAe;;;IAOf,wEAAwD;IACpD,qEAAsC;IAC1C,qEAAe;;;IACf,wEAAwD;IACpD,qEAAwC;IAC5C,qEAAe;;;IAOf,wEAAwC;IACpC,qEAA8C;IAClD,qEAAe;;;IACf,wEAAwC;IACpC,qEAAgD;IACpD,qEAAe;;;IAOf,wEAAuC;IACnC,qEAAwC;IAC5C,qEAAe;;;IACf,wEAAuC;IACnC,qEAA0C;IAC9C,qEAAe;;;IAyBa,iFAAuE;IACnE,4EAAkB;IACd,qEAAI;IACA,qEAAI;IAAC,qEAA8C;IAAE,4DAAK;IAC1D,qEAAI;IAAC,uDAA6B;IAAA,4DAAK;IAC3C,4DAAK;IACT,4DAAQ;IACZ,4DAAa;;;IAPqC,iFAAoB;IAGhD,0DAAmB;IAAnB,6IAAmB;IACxB,0DAA6B;IAA7B,sGAA6B;;;IAY9C,iFAAwE;IAAC,uDAAgB;IAAA,4DAAa;;;IAAnD,iFAAoB;IAAE,0DAAgB;IAAhB,yFAAgB;;;IAWzF,iFAAyE;IAAC,uDAAgB;IAAA,4DAAa;;;IAAnD,iFAAoB;IAAE,0DAAgB;IAAhB,yFAAgB;;;IAS1F,iFAAsE;IAAC,uDAAgB;IAAA,4DAAa;;;IAAnD,iFAAoB;IAAE,0DAAgB;IAAhB,yFAAgB;;ADvL5I,MAAM,gBAAgB;IAqD5B,YACS,MAAc,EACd,WAAwB,EACxB,EAAe,EACf,IAAuB,EACvB,QAAqB,EACZ,KAAsB;QAL/B,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,OAAE,GAAF,EAAE,CAAa;QACf,SAAI,GAAJ,IAAI,CAAmB;QACvB,aAAQ,GAAR,QAAQ,CAAa;QACZ,UAAK,GAAL,KAAK,CAAiB;QA1DxC,UAAK,GAAW,MAAM,CAAC;QACvB,cAAS,GAAW,OAAO,CAAC;QAC5B,YAAO,GAAY;YAClB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC,KAAa,EAAE,KAAgB,EAAU,EAAE;gBACtD,OAAO,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;SACD,CAAC;QAEF,aAAQ,GAAQ,EAAE,CAAC;QACnB,SAAI,GAAY,KAAK,CAAC;QACtB,YAAO,GAAY,KAAK,CAAC;QAEzB,aAAQ,GAAG,IAAI,CAAC;QAMhB,kCAAkC;QAClC,mCAAmC;QACnC,oCAAoC;QACpC,qCAAqC;QACrC,qCAAqC;QACrC,qCAAqC;QAErC,cAAS,GAAQ;YAChB,KAAK,EAAE;gBACN,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAAC;aAC9C;YACD,MAAM,EAAE;gBACP,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,kBAAkB,EAAC;aACnC;YACD,OAAO,EAAE;gBACR,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,mBAAmB,EAAC;aACpC;YACD,IAAI,EAAE;gBACL,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,eAAe,EAAC;aAChC;YACD,QAAQ,EAAE;gBACT,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,EAAE,EAAC;aACnB;SACD;QAED,iBAAY,GAAO,EAAE;QAGrB,mBAAc,GAAQ,EAAE,CAAC;IAYzB,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjC,yBAAyB;YACzB,2BAA2B;YAC3B,6BAA6B;YAC7B,yBAAyB;YACzB,4BAA4B;YAC5B,+BAA+B;YAC/B,KAAK,EAAG,IAAI,uDAAW,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAG,IAAI,uDAAW,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAG,IAAI,uDAAW,CAAC,CAAC,CAAC;YAC5B,IAAI,EAAG,IAAI,uDAAW,CAAC,CAAC,CAAC;YACzB,QAAQ,EAAG,IAAI,uDAAW,CAAC,CAAC,CAAC;YAC7B,SAAS,EAAE,IAAI,uDAAW,CAAC,MAAM,CAAC;YAClC,SAAS,EAAE,IAAI,uDAAW,CAAC,OAAO,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG;YACf;gBACC,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,wFAAwF;gBAC7F,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,SAAS;aACjB;YACD;gBACC,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,0HAA0H;gBAC/H,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,SAAS;aACjB;YACD;gBACC,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,8FAA8F;gBACnG,WAAW,EAAE,wBAAwB;gBACrC,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,cAAc;gBACvB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,SAAS;aACjB;YACD;gBACC,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,0HAA0H;gBAC/H,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,SAAS;aACjB;YACD;gBACC,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,8FAA8F;gBACnG,WAAW,EAAE,wBAAwB;gBACrC,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,cAAc;gBACvB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,SAAS;aACjB;YACD;gBACC,QAAQ,EAAE,CAAC;gBACX,GAAG,EAAE,0HAA0H;gBAC/H,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,SAAS;aACjB;SACD;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,qDAAS,CAAC;YAC5B,UAAU,EAAE,IAAI,uDAAW,EAAE;YAC7B,WAAW,EAAE,IAAI,uDAAW,EAAE;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,gBAAgB,CAAC,KAAK;QACrB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;QAChE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;QAC3H,UAAU,CAAC,GAAE,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC;QACpD,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,MAAM;QACL,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,QAAQ,CAAC,GAAG,CAAC,CAAE,CAAC;IAC/D,CAAC;IAED,aAAa;QACZ,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;QAC5H,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC;QAEhI,UAAU,CAAC,GAAE,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAC;QACtD,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,oBAAoB,CAAE,KAAK;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QACrE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC;QAC/H,UAAU,CAAC,GAAE,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC;QACrD,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;IAED,UAAU;QACT,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,QAAQ,CAAC,GAAG,CAAC,CAAE,CAAC;IAChE,CAAC;IAED,UAAU;QACT,yCAAyC;QACzC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAG,IAAI,CAAC,IAAI,EAAC;YACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjE;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAEhD,+FAA+F;QAC/F,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,UAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,KAAI,CAAC,CAAE,EAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,UAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,KAAI,CAAC,CAAE,EAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAI,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,EAAC,CAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,GAAG,CAAC,EAAC,CAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAI,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,EAAC,CAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,GAAG,CAAC,EAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC;aACjE,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAEvB,IAAG,CAAC,IAAI,CAAC,IAAI,EAAC;gBACb,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;aACzC;YAED,0GAA0G;YAC1G,uHAAuH;YAEvH,eAAe;YACf,IAAI;YAIJ,cAAc;YACd,wBAAwB;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjE,wBAAwB;YACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC;YAEhE,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjE,kCAAkC;YAClC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9E,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAG9E,6DAA6D;YAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,eAAe,EAAC,EAAC,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAC/F,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC,MAAM,EAAE,GAAC,CAC9C,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,GAAE,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,kBAAkB,EAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CACtG,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,GAAC,CAC1C,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,OAAO,GAAE,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,mBAAmB,EAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAC7G,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,GAAC,CAC1C,CAAC,CAAC;YAEH,IAAG,CAAC,IAAI,CAAC,OAAO,EAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAE,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAC9H,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAC,CAC5D,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;aAE9C;YAED,IAAG,CAAC,IAAI,CAAC,IAAI,EAAC;gBACb,IAAI,MAAM,GAAG;oBACZ,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;oBACjC,KAAK,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;oBACnC,MAAM,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;oBACrC,OAAO,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;oBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;oBACzC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;iBACzC;gBAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnC,gDAAgD;aAChD;YAED,IAAI,CAAC,IAAI,GAAE,IAAI,CAAC;YAChB,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC;QAEpB,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,aAAa;QACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAG,IAAI,CAAC,IAAI,EAAC;YACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjE;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAEhD,+FAA+F;QAC/F,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAK,IAAI,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAK,IAAI,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAM,IAAI,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAK,IAAI,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAM,IAAI,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAK,IAAI,CAAC;QAEvC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC;aACjE,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAEvB,IAAG,CAAC,IAAI,CAAC,IAAI,EAAC;gBACb,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;aACzC;YAED,IAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,EAAC;gBACrG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iEAAiE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjH,OAAO;aACP;YAID,cAAc;YACd,wBAAwB;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjE,wBAAwB;YACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE9D,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjE,kCAAkC;YAClC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9E,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAG9E,6DAA6D;YAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,eAAe,EAAC,EAAC,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAC/F,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC,MAAM,EAAE,GAAC,CAC9C,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,GAAE,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,kBAAkB,EAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CACtG,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,GAAC,CAC1C,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,OAAO,GAAE,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,mBAAmB,EAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAC7G,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,GAAC,CAC1C,CAAC,CAAC;YAEH,IAAG,CAAC,IAAI,CAAC,OAAO,EAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAE,CAAE,EAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAC,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAC9H,CAAC,CAAC,EAAC,EAAE,GAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAC,CAC5D,CAAC,CAAC;aACH;YAED,IAAG,CAAC,IAAI,CAAC,IAAI,EAAC;gBACb,IAAI,MAAM,GAAG;oBACZ,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;oBACjC,KAAK,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;oBACnC,MAAM,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;oBACrC,OAAO,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;oBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;oBACzC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;iBACzC;gBAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnC,gDAAgD;aAChD;YAED,IAAI,CAAC,IAAI,GAAE,IAAI,CAAC;YAChB,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,8EAAc,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAE;YACrD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE;YAClD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE;YACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;YACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;YAChD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAEtB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW;QACV,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,+FAA+F;QAC/F,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAC,CAAC,EAAE,CAAC,QAAQ,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpK,CAAC;IAED,aAAa,CAAC,KAAK;QAClB,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAEzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAE,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAEjC,IAAG,EAAE,CAAC,KAAK,IAAI,CAAC,EAAC;YAChB,IAAI,CAAC,cAAc,GAAG,2CAA2C,CAAC;YAClE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACrB;aACG;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC,IAAI,EAAC,EAAE;gBACrC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE;oBAC3B,IAAI,CAAC,cAAc,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;oBACjD,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;iBAChC;YACF,CAAC,CAAC,CAAC;SACH;QAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAGxD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;QAClD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;QACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;QAEhD,IAAI,CAAC,UAAU,EAAE,CAAC;IAEnB,CAAC;IACD,cAAc,CAAC,KAAK;QACnB,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAExC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;QACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IACD,eAAe,CAAC,KAAK;QACpB,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IACD,YAAY,CAAC,KAAK;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IACD,aAAa;QACZ,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAE;YAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE;YAClD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAE;YACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;YACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE;YAEhD,IAAI,CAAC,OAAO,GAAE,KAAK,CAAC;YAEpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,8BAA8B;QAC/B,CAAC,EAAC,GAAG,CAAC;IACP,CAAC;;gFA3cW,gBAAgB;8GAAhB,gBAAgB;QCjB7B,6EAA0B;QACtB,yEAAwD;QACpD,yEAA4B;QACxB,yEAAyB;QACrB,oEAAqE;QACrE,yEAAuB;QACnB,yEAA6F;QACzF,wEAA6B;QAAA,0FAA+B;QAAA,4DAAK;QAEjE,oEAAG;QAAA,mFAAkB;QAAA,4DAAI;QAC7B,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,0EAAkB;QACd,qEAAqE;QACrE,0EAAuB;QACnB,0EAA6F;QACzF,yEAA6B;QAAA,yFAA6B;QAAA,4DAAK;QAE/D,qEAAG;QAAA,mFAAkB;QAAA,4DAAI;QAC7B,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,0EAAkB;QACd,sEAAqE;QACrE,0EAAuB;QACnB,0EAA6F;QACzF,yEAA6B;QAAA,uFAA2B;QAAA,4DAAK;QAE7D,qEAAG;QAAA,mFAAkB;QAAA,4DAAI;QAC7B,4DAAM;QACV,4DAAM;QACV,4DAAM;QAmCV,4DAAM;QACN,yEAAqE;QACjE,uEAAuD;QAC3D,4DAAI;QACJ,yEAAoE;QAChE,uEAAqD;QACzD,4DAAI;QACR,4DAAM;QACV,4DAAU;QAIV,+EAA0B;QACtB,0EAAwB;QACpB,4EAAkE;QAC9D,2EAAqE;QACjE,0EAAwE;QAAA,sGAA0C;QAAA,4DAAK;QAC3H,4DAAM;QACN,2EAAoE;QAChE,2EAAsB;QAAA,kEAAM;QAAA,4DAAM;QAClC,2EAA0D;QACtD,sEAAI;QAAA,sFAA0B;QAAA,4DAAK;QACvC,4DAAM;QACN,2EAAiC;QAC7B,2EAA0C;QACtC,sEAAsC;QACtC,2EAA6G;QAA1B,sIAAS,mBAAe,IAAC;QACxG,6EAAoF;QAArD,uLAAsB;QAArD,4DAAoF;QACpF,6EAAmD;QAC/C,iIAEe;QACf,iIAEe;QACnB,4DAAQ;QACR,sEAAI;QAAA,6EAAmB;QAAA,iFAAqB;QAAA,4DAAQ;QAAA,4DAAK;QAC7D,4DAAM;QACN,2EAAyH;QAA1B,sIAAS,mBAAe,IAAC;QACpH,6EAAgG;QAAjE,uLAAsB;QAArD,4DAAgG;QAChG,6EAAmD;QAC/C,iIAEe;QACf,iIAEe;QACnB,4DAAQ;QACR,sEAAI;QAAA,6EAAmB;QAAA,oFAAwB;QAAA,4DAAQ;QAAA,4DAAK;QAChE,4DAAM;QACN,2EAAyG;QAA1B,sIAAS,mBAAe,IAAC;QACpG,6EAAgF;QAAjD,uLAAsB;QAArD,4DAAgF;QAChF,6EAAmD;QAC/C,iIAEe;QACf,iIAEe;QACnB,4DAAQ;QACR,sEAAI;QAAA,6EAAmB;QAAA,yEAAQ;QAAA,4DAAQ;QAAA,4DAAK;QAChD,4DAAM;QACN,2EAAwG;QAA1B,sIAAS,mBAAe,IAAC;QACnG,6EAA4F;QAAhD,uLAAsB;QAAlE,4DAA4F;QAC5F,6EAAmD;QAC/C,iIAEe;QACf,iIAEe;QACnB,4DAAQ;QACR,sEAAI;QAAA,6EAAmB;QAAA,iEAAK;QAAA,4DAAQ;QAAA,4DAAK;QAC7C,4DAAM;QAEN,sEAAsC;QAC1C,4DAAM;QACV,4DAAM;QACV,4DAAM;QACN,2EAAoE;QAChE,4EAA4D;QACxD,2EAAiB;QACb,2EAAuB;QACnB,2EAAiB;QAEb,2EAAsB;QAAA,kEAAM;QAAA,4DAAM;QAClC,2EAAuB;QACnB,2EAAiB;QACb,2EAAsB;QAClB,2EAAiB;QACb,2EAAsB;QAClB,2EAA8B;QAAA,iEAAK;QAAA,4DAAM;QACzC,sFAA2D;QAEvD,kFAA2J;QAAvH,uKAAmB,+BAA2B,IAAC;QAC/E,6HAOa;QACjB,4DAAa;QACjB,4DAAiB;QACrB,4DAAM;QACN,2EAAsB;QAClB,2EAA8B;QAAA,kEAAM;QAAA,4DAAM;QAC1C,sFAA2D;QAEvD,mFAAsF;QAAjD,wKAAmB,gCAA4B,IAAC;QACjF,+HAAsG;QAC1G,4DAAa;QACjB,4DAAiB;QACrB,4DAAM;QACV,4DAAM;QACN,4EAAiB;QACb,4EAAsB;QAClB,4EAA8B;QAAA,6EAAW;QAAA,4DAAM;QAC/C,uFAA2D;QAEvD,mFAAwF;QAAlD,wKAAmB,iCAA6B,IAAC;QACnF,+HAAuG;QAC3G,4DAAa;QACjB,4DAAiB;QACrB,4DAAM;QACN,4EAAsB;QAClB,4EAA8B;QAAA,qEAAG;QAAA,4DAAM;QACvC,uFAA2D;QAEvD,mFAAkF;QAA/C,wKAAmB,8BAA0B,IAAC;QAC7E,+HAAoG;QACxG,4DAAa;QACjB,4DAAiB;QACrB,4DAAM;QACV,4DAAM;QACV,4DAAM;QACN,4EAAsB;QAClB,4EAAiB;QACb,4EAA8E;QAC1E,kFAAiC;QAAA,4EAAe;QAAA,4DAAY;QAChE,4DAAM;QACV,4DAAM;QACN,4EAAiB;QACb,6EAAiD;QAC7C,4EAAsB;QAElB,8EAKuB;QAFnB,iLAAiB,qFACT,4BAAwB,IADf,iFAER,YAAQ,IAFA;QAHrB,4DAKuB;QAE3B,4DAAM;QAEN,4EAAsB;QAElB,8EAK2B;QAFvB,qLAAqB,qFACb,gCAA4B,IADf,iFAEZ,gBAAY,IAFA;QAHzB,4DAK2B;QAC/B,4DAAM;QACV,4DAAO;QACX,4DAAM;QACN,4EAA2B;QACvB,mFAIwB;QAHpB,kJAAW,mBAAe,IAAC;QAI/B,4DAAa;QACjB,4DAAM;QACV,4DAAM;QAaV,4DAAM;QACV,4DAAM;QACN,4EAAsB;QAAA,mEAAM;QAAA,4DAAM;QACtC,4DAAM;QACV,4DAAM;QACN,4EAAuD;QACnD,4EAAwC;QACpC,4EAAiB;QACb,uEAAwD;QACxD,4EAA+E;QAC3E,6EAA+D;QAA3C,wIAAS,mBAAe,IAAC;QACzC,4EAAwD;QACxD,yEAAM;QAAA,4EAAe;QAAA,4DAAO;QAChC,4DAAO;QACX,4DAAM;QACN,4EAA4D;QACxD,+EAAgE;QAA1C,0IAAS,iBAAa,IAAC;QAAmB,mEAAM;QAAA,wEAAuC;QAAA,4DAAS;QAC1H,4DAAM;QAEN,4EAA+E;QAC3E,kEAAI;QAAA,kEAAI;QACR,6EAA+D;QAA3C,wIAAS,mBAAe,IAAC;QACzC,4EAAwD;QACxD,yEAAM;QAAA,4EAAe;QAAA,4DAAO;QAChC,4DAAO;QACX,4DAAM;QAEN,uEAAsC;QAC1C,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAO;QACX,4DAAM;QACV,4DAAO;QACX,4DAAM;QACV,4DAAU;;QAtMmB,2DAA6E;QAA7E,kJAA6E;QAC/C,0DAAsB;QAAtB,iFAAsB;QAElC,0DAA2B;QAA3B,2FAA2B;QAG3B,0DAA2B;QAA3B,2FAA2B;QAM7C,0DAAyF;QAAzF,8JAAyF;QAC3D,0DAAsB;QAAtB,iFAAsB;QAElC,0DAAuC;QAAvC,uGAAuC;QAGvC,0DAAuC;QAAvC,uGAAuC;QAMzD,0DAAyE;QAAzE,8IAAyE;QAC3C,0DAAsB;QAAtB,iFAAsB;QAElC,0DAAuB;QAAvB,uFAAuB;QAGvB,0DAAuB;QAAvB,uFAAuB;QAMzC,0DAAwE;QAAxE,6IAAwE;QAC7B,0DAAsB;QAAtB,iFAAsB;QAE/C,0DAAsB;QAAtB,sFAAsB;QAGtB,0DAAsB;QAAtB,sFAAsB;QAY/C,0DAA0B;QAA1B,uFAA0B;QAYoB,2DAAuB;QAAvB,gFAAuB;QAE0E,0DAA6C;QAA7C,mHAA6C;QAAtE,wEAAwB;QAC1E,0DAAkB;QAAlB,wFAAkB;QAaxC,0DAAuB;QAAvB,gFAAuB;QAGD,0DAAmB;QAAnB,yFAAmB;QAQzC,0DAAuB;QAAvB,gFAAuB;QAGD,0DAAoB;QAApB,0FAAoB;QAM1C,0DAAuB;QAAvB,gFAAuB;QAGD,0DAAiB;QAAjB,uFAAiB;QAarD,0DAAqB;QAArB,kFAAqB;QAMf,0DAAiB;QAAjB,4EAAiB;QAWjB,0DAAqB;QAArB,gFAAqB;QAS7B,0DAAiB;QAAjB,4EAAiB;;;;;;;;;;;;;;;;;;;;;;;;;AC9Od;AACQ;AACA;AACoB;AAEJ;AAEoB;AACmC;;;AAEtI,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,wEAAgB;KAC5B;IACD;QACE,IAAI,EAAE,8FAA8F;QACpG,SAAS,EAAE,wEAAgB;KAC5B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,4FAAsB;KAClC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,wFAAkB;KAC9B;IACD,IAAI;IACJ,uBAAuB;IACvB,qCAAqC;IACrC,KAAK;IACL;QACE,IAAI,EAAE,qBAAqB;QAC3B,SAAS,EAAE,4GAAmB;KAC/B;IACD;QACE,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,+IAA8B;KAC1C;CACF,CAAC;AAMK,MAAM,iBAAiB;;kFAAjB,iBAAiB;8GAAjB,iBAAiB;kHAHnB,CAAC,kEAAqB,CAAC,MAAM,CAAC,CAAC,EAC9B,yDAAY;mIAEX,iBAAiB,oFAFlB,yDAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3CuB;AACW;AACF;AACI;AACI;AACX;AACrD,sDAAsD;AAES;AACA;AACoB;AACc;AAEjG,UAAU;AACwC;AACK;AACE;AAEzD,aAAa;AAC8E;AAC3F,6FAA6F;AACY;AAC1B;AACgB;AAClB;AAC7E,uBAAuB;AACmE;AACA;AACG;AACM;AACH;AACH;AAC7F,kFAAkF;AACmB;AAErG,sBAAsB;AACgF;AACd;AACN;AAC6E;AAC5D;AACnC;AACb;AACuD;AAChB;AACqB;AAChE;;;AA+DxC,MAAM,UAAU;;oEAAV,UAAU;wGAAV,UAAU;4GA7BV;YACL,0DAAY;YACZ,mEAAiB;YACjB,kEAAY;YACZ,wEAAe;YACf,2EAAiB;YACjB,+DAAmB;YACnB,6DAAa;YACb,kEAAc;YACd,oEAAe;YACf,mFAAyB,EAAE;YAC3B,8DAAgB;YAChB,0DAAgB;YAChB,eAAe;YACf,0BAA0B;SAC7B;oIAcQ,UAAU,mBA1Df,wEAAgB;QAChB,wEAAgB;QAChB,4FAAsB;QACtB,qGAAmB;QACnB,yBAAyB;QACzB,mHAAuB;QACvB,wFAAkB;QAClB,0GAAqB;QACrB,wFAAe;QACf,mBAAmB;QACnB,oGAAgB;QAChB,oGAAgB;QAChB,uGAAiB;QACjB,6GAAmB;QACnB,0GAAkB;QAClB,uGAAiB;QACjB,+GAAmB;QACnB,mBAAmB;QACnB,iHAAqB;QACrB,mGAAiB;QACjB,6FAAe;QACf,2GAAqB;QACrB,qHAAwB;QACxB,gJAA8B;QAC9B,6GAAmB;QACnB,yIAAuB;QACvB,oGAAqB;QACrB,yHAA4B,aAG5B,0DAAY;QACZ,mEAAiB;QACjB,kEAAY;QACZ,wEAAe;QACf,2EAAiB;QACjB,+DAAmB;QACnB,6DAAa;QACb,kEAAc;QACd,oEAAe,+EAEf,8DAAgB;QAChB,0DAAgB;QAChB,eAAe;QACf,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;AC9FmC;;;;;;;;;;ICoBrC,iFAAuE;IACnE,uDACJ;IAAA,4DAAa;;;IAFoC,iFAAqB;IAClE,0DACJ;IADI,0FACJ;;ADZzB,MAAM,iBAAiB;IAiB1B,YACM,WAAwB,EAClB,WAAwB,EACxB,EAAe;QAFrB,gBAAW,GAAX,WAAW,CAAa;QAClB,gBAAW,GAAX,WAAW,CAAa;QACxB,OAAE,GAAF,EAAE,CAAa;QAhB3B,cAAS,GAAQ;YACb,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAC,KAAK,EAAC;YACnB,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAC,KAAK,EAAC;YACnB,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAC,KAAK,EAAC;YACnB,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAC,KAAK,EAAC;SACtB,CAAC;QACF,kBAAa,GAAQ,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAC,GAAG,EAAC,CAAC,CAAC;QAIzC,YAAO,GAAO,IAAI,uDAAW,CAAE,EAAE,CAAE,CAAC;QAQhC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,cAAc;QACV,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC;aACzD,SAAS,CACT,CAAC,GAAQ,EAAE,EAAE;YACZ,IAAI,GAAG,CAAC,KAAK,EAAE;aAEd;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE;aAEzB;iBAAM;gBACS,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAE5C,IAAI,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;oBAC7B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAC;wBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;qBACvC;yBAAI;wBACD,IAAI,CAAC,QAAQ,GAAG,KAAK;qBACxB;iBACJ;qBACG;oBACA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAC;wBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;qBACvC;yBAAI;wBACD,IAAI,CAAC,QAAQ,GAAG,IAAI;qBACvB;iBACJ;gBAED,IAAI,CAAC,cAAc,EAAE,CAAC;aACrC;QACF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CACD;IACC,CAAC;IAED,cAAc;QACV,IAAI,UAAU,GAAG,QAAQ,CAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,CAAE,CAAC;QAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,UAAU;QAE3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,UAAU,CAAG,CAAC;QAGvF,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACvD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACpD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAGtC,IAAI,mCAAO,IAAI,KAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,UAAU,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAC;QAExF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAElC,SAAS,mCAAO,SAAS,KAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,GAAC;QAE7C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC;IAE3C,CAAC;;kFAvFQ,iBAAiB;+GAAjB,iBAAiB;QCX9B,yEAA2J;QACvJ,yEAAiD;QAC7C,oEAA0E;QAC9E,4DAAM;QAEN,yEAA4B;QACxB,yEAAiC;QAC7B,yEAAuC;QAAA,uEAA2B;QAAA,uDAAe;QAAA,4DAAI;QAAA,4DAAM;QAC3F,yEAA2B;QAAA,oEAAG;QAAA,qEAAG;QAAA,wDAA4C;;QAAA,4DAAI;QAAA,4DAAI;QAAA,4DAAM;QAC/F,4DAAM;QACV,4DAAM;QAGN,0EAAiC;QAC7B,0EAAiC;QAC7B,2EAAiC;QAC7B,2EAAgC;QAC5B,0EAAiC;QAAA,6EAAW;QAAA,yEAAO;QAAA,wDAAc;QAAA,4DAAQ;QAAA,4DAAY;QAAA,4DAAM;QAC3F,2EAAmC;QAC/B,sFAAwC;QACpC,kFAA6H;QAA1D,yLAAoB,0GAAoB,oBAAgB,IAApC;QACnF,8HAEa;QACjB,4DAAa;QACjB,4DAAiB;QACrB,4DAAM;QACN,2EAAgC;QAC5B,uEAAK;QACD,2EAAwB;QAAA,wDAAmD;;QAAA,4DAAM;QAQrF,4DAAM;QAEV,4DAAM;QACV,4DAAM;QACV,4DAAO;QACX,4DAAM;QACV,4DAAM;QACV,4DAAM;;QA1CO,0DAA6C;QAA7C,mHAA6C;QAKoB,0DAAe;QAAf,gFAAe;QAChD,0DAA4C;QAA5C,uKAA4C;QAOvE,0DAA0B;QAA1B,uFAA0B;QAE2B,0DAAc;QAAd,6EAAc;QAE7C,0DAAuB;QAAvB,gFAAuB;QACgC,0DAAoB;QAApB,+EAAoB;QACpD,0DAAgB;QAAhB,sFAAgB;QAQ3B,0DAAmD;QAAnD,4KAAmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BvG;;;;;;;;;;;;AC6BgB;AACI;AACI;AACI;AACI;AACJ;AACA;AACI;AACI;AACI;AACJ;AACJ;AACJ;AACA;AACI;AAAO;AAAgC;AAC3C;AACJ;AACJ;AACJ;;;;AAV0C;AAAA,6EAAe,MAAf,EAAe,eAAf;;;;;;AAe9B;AACI;AACI;AACI;AACJ;AAEA;AACI;AACI;AAIA;AACI;AACJ;AACA;AACI;AACI;AACI;AAEI;AACJ;AACJ;AACJ;AACJ;AAEJ;AACJ;AACJ;AACJ;;;;;AAhByB;AAAA;AAOO;AAAA;;;;;;;;AAUhC;AACI;AACI;AACI;AACJ;AAEA;AAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAC1B;AACI;AAGI;AAEJ;AACA;AACI;AACJ;AACA;AACI;AACI;AACI;AAGI;AAAG;;AAAoC;AAC3C;AACJ;AACA;AACI;AAEI;AACJ;AACJ;AACJ;AACJ;AAEJ;AACJ;AACJ;AACJ;;;;;;AA3BuC;AAAA;AAId;AAAA;AAQU;AAAA;AAMH;AAAA;;;;;;AA5DpC;AACI;AA8BA;AAuCJ;;;;;;;AArE4B;AAAA;AA8BA;AAAA;;;;;;AAjCpC;AACI;AACI;AAuEJ;AACJ;;;;;AA1EqC;AAEI;AAAA;;;;;;AAvB7C;AACI;AAoBA;AA4EJ;;;;;AAhGmB;AAAA;AAoBA;AAAA;;;;;;AA8EnB;AACI;AACI;AACI;AACI;AACJ;AACA;AACI;AACI;AAAO;AAAgE;AAC3E;AACJ;AACA;AACI;AACA;AACJ;AACJ;AACJ;AACJ;;;;;;AAtHJ;AAEI;AAmGA;AAoBJ;;;;;AAvHmB;AAAA;AAmGA;AAAA;;;;ADpHrB,MAAO,eAAP,CAAsB;AAqC3B,cACS,WADT,EAES,WAFT,EAGS,QAHT,EAG8B;AAE7B;AAJQ;AACA;AACA;AArCT,gBAAe,SAAf;AAEA,yBAAgB,KAAhB;AAGA,4BAAmB,EAAnB;AACA,2BAAkB,EAAlB;AAmCC;;AAED,UAAQ;AACP,SAAK,UAAL,GAAkB,IAAI,qDAAJ,CAAc;AAC/B,iBAAW,EAAE,IAAI,uDAAJ,CAAgB,EAAhB;AADkB,KAAd,CAAlB;AAIA,SAAK,MAAL,CAAY,SAAZ,CAAuB,GAAD,IAAa;;;AAClC,WAAK,UAAL,GAAkB,GAAlB;;AAEA,UAAG,iBAAK,UAAL,MAAe,IAAf,IAAe,aAAf,GAAe,MAAf,GAAe,GAAE,MAAjB,MAAuB,IAAvB,IAAuB,aAAvB,GAAuB,EAAvB,GAA2B,KAA9B,EAAoC;AACnC,YAAG,KAAK,UAAL,CAAgB,IAAhB,IAAwB,SAA3B,EAAqC;AACpC,eAAK,mBAAL;AACA;AACA;;AACD,YAAG,KAAK,UAAL,CAAgB,IAAhB,IAAwB,YAAxB,IAAwC,KAAK,gBAAL,CAAsB,MAAtB,GAA+B,CAA1E,EAA4E;AAC3E,eAAK,oBAAL;AACA;AACA,SAHD,MAGK;AACJ,eAAK,mBAAL;AACA;AACA;AACD;AACD,KAhBD;AAiBA;;AAED,kBAAgB,CAAC,EAAD,EAAI,QAAJ,EAAY;;;AAC3B,QAAI,KAAK,GAAG,KAAK,WAAL,CAAiB,iBAAjB,EAAZ;AACA,QAAI,SAAS,GAAG,KAAK,WAAL,CAAiB,gBAAjB,EAAhB;AACA,QAAI,IAAI,GAAG,KAAK,CAAC,KAAK,KAAL,CAAW,QAAZ,CAAhB;AAEA,QAAI,MAAM,GAAG,IAAI,CAAC,MAAlB;AAEA,QAAI,mCAAO,IAAP,GAAW;AAAC,YAAM,kCAAM,MAAN,GAAY;AACjC,cAAM,EAAE,EAAE,CAAC,UAAH,CAAc,MADW;AAEjC,iBAAS,EAAE,EAAE,CAAC,UAAH,CAAc,MAFQ;AAGjC,mBAAW,EAAE,oBAAE,SAAF,MAAE,WAAF,GAAE,MAAF,KAAE,CAAE,UAAJ,MAAc,IAAd,IAAc,aAAd,GAAc,MAAd,GAAc,GAAE,UAAhB,MAA0B,IAA1B,IAA0B,aAA1B,GAA0B,MAA1B,GAA0B,GAAE,OAA5B,MAAmC,IAAnC,IAAmC,aAAnC,GAAmC,EAAnC,GAAuC,CAHnB;AAIjC,qBAAa,EAAE,oBAAE,SAAF,MAAE,WAAF,GAAE,MAAF,KAAE,CAAE,UAAJ,MAAc,IAAd,IAAc,aAAd,GAAc,MAAd,GAAc,GAAE,UAAhB,MAA0B,IAA1B,IAA0B,aAA1B,GAA0B,MAA1B,GAA0B,GAAE,OAA5B,MAAmC,IAAnC,IAAmC,aAAnC,GAAmC,EAAnC,GAAuC,CAJrB;AAKjC,iBAAS,EAAE,cAAE,CAAC,UAAH,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,SAAf,MAAwB,IAAxB,IAAwB,aAAxB,GAAwB,EAAxB,GAA4B;AALN,OAAZ;AAAP,KAAX,CAAJ;AAQA,SAAK,CAAC,KAAK,KAAL,CAAW,QAAZ,CAAL,GAA6B,IAA7B;AAEA,aAAS,mCAAO,SAAP,GAAgB;AAAE,WAAK,EAAE,CAAC,GAAG,KAAJ;AAAT,KAAhB,CAAT;AAEA,SAAK,UAAL,CAAgB,GAAhB,CAAoB,aAApB,EAAmC,QAAnC,CAA4C,EAAE,CAAC,UAAH,CAAc,MAAd,GAAqB,GAArB,GAAyB,QAArE;AAEA,SAAK,WAAL,CAAiB,iBAAjB,CAAmC,SAAnC,EArB2B,CAsB3B;AACA;;AAED,qBAAmB;AAElB,QAAI,WAAW,GAAG,KAAK,UAAvB;AACA,QAAM,KAAK,GAAG;AACb,UAAI,EAAE,GADO;AAEb,iBAAW,EAAE,KAAK,KAAL,CAAW,OAFX;AAGb,UAAI,EAAE,KAAK,KAAL,CAAW,IAHJ;AAIb,gBAAU,EAAE,WAAW,CAAC,MAJX;AAKb,iBAAW,EAAE,WAAW,CAAC;AALZ,KAAd;AAOA,SAAK,aAAL,GAAqB,IAArB;AAEA,SAAK,WAAL,CAAiB,gBAAjB,CAAkC,8BAAlC,EAAiE,KAAjE,EACC,SADD,CAEE,GAAD,IAAa;AACZ;AACA,UAAI,GAAG,CAAC,KAAR,EAAe,CAEd,CAFD,MAEO,IAAI,GAAG,CAAC,SAAR,EAAmB,CAEzB,CAFM,MAEA;AACN,YAAI,SAAS,GAAG,GAAhB,CADM,CAEN;AACA;;AAEA,YAAI,QAAQ,GAAG,EAAf;;AAEA,YAAG,SAAS,CAAC,MAAV,IAAoB,CAAvB,EAAyB;AACxB,cAAG,SAAS,CAAC,MAAV,IAAoB,CAAvB,EAAyB;AACxB;AACD;AACC;AACD;;AAED,aAAK,gBAAL,GAAwB,SAAS,CAAC,GAAV,CAAe,CAAD,IAAM;;;AAC3C,kBAAQ,CAAC,IAAT,CAAe,IAAG,OAAC,SAAD,KAAC,WAAD,GAAC,MAAD,IAAC,CAAE,WAAH,MAAc,IAAd,IAAc,aAAd,GAAc,MAAd,GAAc,GAAE,QAAnB,CAAf;AACA,iDACI,CADJ,GACK;AACJ,sBAAU,EAAE,KAAK,aAAL,CAAmB,CAAnB;AADR,WADL;AAIA,SANuB,CAAxB,CAdM,CAsBN;AAGA;;AACA,YAAI,eAAe,GAAG,IAAI,GAAJ,EAAtB;AACA,gBAAQ,CAAC,OAAT,CAAkB,CAAD,IAAM;AACtB,yBAAe,CAAC,GAAhB,CAAoB,CAAC,CAAC,WAAtB,EAAkC,CAAC,CAAC,WAApC;AACA,SAFD;AAGA,cAAM,MAAM,GAAG,KAAK,CAAC,IAAN,CAAW,eAAe,CAAC,MAAhB,EAAX,CAAf;AACA,aAAK,eAAL,GAAuB,MAAM,CAAC,GAAP,CAAa,CAAD,IAAK;AACvC,iBAAO;AACN,uBAAW,EAAE;AADP,WAAP;AAGA,SAJsB,CAAvB;AAMA,aAAK,oBAAL;AAEA;AACD,KAhDF,EAgDK,KAAD,IAAe;AACjB,WAAK,aAAL,GAAqB,KAArB;AACA,WAAK,QAAL,CAAc,IAAd,CAAmB,oDAAnB,EAAyE,IAAzE,EAA+E;AAAE,gBAAQ,EAAE;AAAZ,OAA/E;AACA,aAAO,CAAC,KAAR,CAAc,KAAd;AACA,KApDF;AAuDA;;AAGK,sBAAoB;AAAA;;AAAA;;;AACzB,WAAI,CAAC,aAAL,GAAqB,IAArB;AACA,UAAI,gBAAgB,GAAG,CAAC,GAAG,KAAI,CAAC,gBAAT,CAAvB;;AACA,WAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,gBAAgB,CAAC,MAA7C,EAAqD,KAAK,EAA1D,EAA8D;AAC7D,YAAI,OAAO,GAAG,gBAAgB,CAAC,KAAD,CAA9B;AACA,eAAO,mCAAO,OAAP,GAAc;AAAE,aAAG,EAAE;AAAP,SAAd,CAAP;AAEA,cAAM,IAAI,GAAG,aAAO,CAAC,WAAR,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,QAAF,CAAW,SAAX,CAAqB,CAAC,IAAI,CAAC,CAAC,WAAF,IAAiB,KAAI,CAAC,UAAL,CAAgB,SAA3D,CAAhC;;AACA,YAAI,IAAI,GAAG,CAAC,CAAZ,EAAc;AACb,gBAAM,IAAI,GAAG,aAAO,CAAC,WAAR,MAAmB,IAAnB,IAAmB,aAAnB,GAAmB,MAAnB,GAAmB,GAAE,QAAF,CAAW,IAAX,EAAiB,EAAjD;AAEA,iBAAO,CAAC,SAAR,CAAkB,GAAlB,GAAwB,IAAxB;AACA,iBAAO,CAAC,SAAR,CAAkB,OAAlB,GAA4B,KAAI,CAAC,UAAL,CAAgB,SAA5C;AACA,iBAAO,CAAC,SAAR,CAAkB,MAAlB,GAA4B,KAAI,CAAC,UAAL,CAAgB,QAAhB,IAA4B,CAA7B,GAAiC,GAAjC,GAAuC,GAAlE;AAEA,iBAAO,CAAC,SAAR,CAAkB,KAAlB,GAA0B,KAAI,CAAC,KAAL,CAAW,KAArC;AACA,iBAAO,CAAC,SAAR,CAAkB,SAAlB,GAA8B,CAA9B;AAEA,cAAI,YAAY,SAAa,KAAI,CAAC,iBAAL,CAAuB,OAAO,CAAC,SAA/B,CAA7B;;AAEA,cAAG,YAAY,CAAC,OAAhB,EAAwB;AACvB,mBAAO,CAAC,UAAR,GAAqB,YAArB;AACA,4BAAgB,CAAC,KAAD,CAAhB,GAAuB,gCAAK,OAAL,GAAY;AAAC,wBAAU,EAAG,KAAI,CAAC,aAAL,CAAmB,OAAnB;AAAd,aAAZ,CAAvB;AACA,WAHD,MAGK;AACJ,4BAAgB,CAAC,KAAD,CAAhB,GAAuB,gCAAK,OAAL,GAAY;AAAC,wBAAU,EAAG,IAAd;AAAoB,iBAAG,EAAE,YAAY,CAAC;AAAtC,aAAZ,CAAvB;;AAEA,gBAAI,KAAK,GAAG,KAAI,CAAC,WAAL,CAAiB,iBAAjB,EAAZ;;AACA,gBAAI,SAAS,GAAG,KAAI,CAAC,WAAL,CAAiB,gBAAjB,EAAhB;;AACA,gBAAI,IAAI,GAAG,KAAK,CAAC,KAAI,CAAC,KAAL,CAAW,QAAZ,CAAhB;AAEA,gBAAI,MAAM,GAAG,IAAI,CAAC,MAAlB;AAEA,gBAAI,mCAAO,IAAP,GAAW;AAAC,oBAAM,kCAAM,MAAN,GAAY;AACjC,sBAAM,EAAE,CADyB;AAEjC,yBAAS,EAAE,WAFsB;AAGjC,2BAAW,EAAE,CAHoB;AAIjC,6BAAa,EAAE,CAJkB;AAKjC,yBAAS,EAAE;AALsB,eAAZ;AAAP,aAAX,CAAJ;AAOA,iBAAK,CAAC,KAAI,CAAC,KAAL,CAAW,QAAZ,CAAL,GAA6B,IAA7B;AACA,qBAAS,mCAAO,SAAP,GAAgB;AAAE,mBAAK,EAAE,CAAC,GAAG,KAAJ;AAAT,aAAhB,CAAT;;AACA,iBAAI,CAAC,WAAL,CAAiB,iBAAjB,CAAmC,SAAnC;AAEA;AACD,SApCD,MAoCK;AACJ,0BAAgB,CAAC,KAAD,CAAhB,GAAuB,gCAAK,OAAL,GAAY;AAAC,sBAAU,EAAG;AAAd,WAAZ,CAAvB;AACA;AACD;;AACD,WAAI,CAAC,aAAL,GAAqB,KAArB;AACA,WAAI,CAAC,gBAAL,GAAwB,CAAC,GAAG,gBAAJ,CAAxB,CAjDyB,CAkDzB;AAlDyB;AAoDzB;;AAED,WAAS,CAAC,IAAD,EAAK;AACb;AACA,WAAO,IAAI,CAAC,SAAL,CAAe,IAAf,CAAP;AACA;;AAGD,mBAAiB,CAAC,SAAD,EAAU;AAAA;;AAC1B,WAAO,IAAI,OAAJ;AAAA,mNAAY,WAAO,OAAP,EAAgB,MAAhB,EAA0B;AAC5C,cAAI,CAAC,WAAL,CAAiB,gBAAjB,CAAkC,uBAAlC,EAA2D,SAA3D,EACE,SADF,CAEG,GAAD,IAAa;AACZ,cAAI,GAAG,CAAC,KAAR,EAAe,CACd,CADD,MACO,IAAI,GAAG,CAAC,SAAR,EAAmB,CACzB,CADM,MACA;AACN,gBAAI,SAAS,GAAG,GAAhB;AACA,mBAAO,OAAO;AAAG,sBAAQ,EAAE;AAAb,eAAsB,SAAtB,GAA+B;AAAG,iBAAG,EAAE;AAAR,aAA/B,EAAd;AACA;AACD,SATH,EASM,KAAD,IAAe;AACjB;AACA,cAAI,GAAG,GAAG,kBAAV;AACA,iBAAO,OAAO,CAAC;AAAE,oBAAQ,EAAE,KAAZ;AAAmB,eAAG,EAAE;AAAxB,WAAD,CAAd;AACA,SAbH;AAeA,OAhBM;;AAAA;AAAA;AAAA;AAAA,QAAP;AAiBA;;AAED,eAAa,CAAC,oBAAD,EAAqB;+BAAA,CACjC;;;AACA,QAAI,MAAJ;;AACA,QAAI,oBAAoB,SAApB,wBAAoB,WAApB,GAAoB,MAApB,uBAAoB,CAAE,UAA1B,EAAsC;AACrC,UAAI,CAAC,GAAG,oBAAoB,CAAC,UAA7B;AAEA,YAAM,GAAG,IAAI,UAAJ,EAAT;AACA,YAAM,CAAC,SAAP,GAAmB,CAAC,CAAC,aAArB;AACA,YAAM,CAAC,UAAP,GAAoB,CAAC,CAAC,UAAtB;AACA,YAAM,CAAC,MAAP,GAAgB,CAAC,CAAC,MAAlB;AACA,YAAM,CAAC,EAAP,GAAY,CAAC,CAAC,EAAd;AACA,YAAM,CAAC,MAAP,GAAiB,KAAK,UAAL,CAAgB,QAAhB,IAA4B,CAA7B,GAAiC,GAAjC,GAAuC,GAAvD,CARqC,CAQuB;;AAC5D,YAAM,CAAC,YAAP,GAAuB,CAAC,CAAC,MAAF,IAAY,GAAb,GAAoB,6CAApB,GAAoE,EAA1F;AAEA,UAAI,KAAK,GAAG,IAAI,SAAJ,EAAZ;AACA,WAAK,CAAC,EAAN,GAAW,CAAC,CAAC,EAAb;AACA,WAAK,CAAC,MAAN,GAAe,CAAC,CAAC,MAAjB;AACA,WAAK,CAAC,OAAN,GAAgB,CAAhB;AACA,WAAK,CAAC,OAAN,GAAgB,CAAC,CAAC,EAAlB;AACA,WAAK,CAAC,OAAN,GAAgB,CAAhB;AACA,WAAK,CAAC,GAAN,GAAY,CAAZ;AACA,WAAK,CAAC,GAAN,GAAY,CAAC,CAAC,GAAd;AACA,WAAK,CAAC,GAAN,GAAY,CAAC,CAAC,GAAd;AACA,WAAK,CAAC,KAAN,GAAc,CAAd;AAEA,UAAI,IAAI,GAAI,KAAK,UAAL,CAAgB,QAAhB,IAA4B,CAA7B,GAAiC,GAAjC,GAAuC,GAAlD;;AACA,cAAQ,IAAR;AACC,aAAK,GAAL;AAAU,gBAAM,CAAC,UAAP,GAAoB,KAApB;AAA2B;;AACrC,aAAK,GAAL;AAAU,gBAAM,CAAC,UAAP,GAAoB,aAAC,CAAC,WAAF,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,OAAf,MAAsB,IAAtB,IAAsB,aAAtB,GAAsB,EAAtB,GAA0B,KAA9C;AAAqD;;AAC/D,aAAK,GAAL;AAAU,gBAAM,CAAC,UAAP,GAAoB,aAAC,CAAC,WAAF,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,UAAf,MAAyB,IAAzB,IAAyB,aAAzB,GAAyB,EAAzB,GAA6B,KAAjD;AAAwD;;AAClE,aAAK,GAAL;AAAU,gBAAM,CAAC,UAAP,GAAoB,aAAC,CAAC,WAAF,MAAa,IAAb,IAAa,aAAb,GAAa,MAAb,GAAa,GAAE,SAAf,MAAwB,IAAxB,IAAwB,aAAxB,GAAwB,EAAxB,GAA4B,KAAhD;AAAuD;;AACjE;AACC;AANF;AASA,KAhCD,MAgCO;AACN,YAAM,GAAG,IAAI,UAAJ,EAAT;AACA,YAAM,CAAC,SAAP,GAAmB,EAAnB;AACA,YAAM,CAAC,UAAP,GAAoB,EAApB;AACA,YAAM,CAAC,MAAP,GAAgB,CAAhB;AACA,YAAM,CAAC,EAAP,GAAY,CAAZ;AACA,YAAM,CAAC,MAAP,GAAgB,GAAhB;AACA,YAAM,CAAC,YAAP,GAAsB,EAAtB;AAEA,UAAI,KAAK,GAAG,IAAI,SAAJ,EAAZ;AACA,WAAK,CAAC,EAAN,GAAW,CAAX;AACA,WAAK,CAAC,MAAN,GAAe,GAAf;AACA,WAAK,CAAC,OAAN,GAAgB,CAAhB;AACA,WAAK,CAAC,OAAN,GAAgB,CAAhB;AACA,WAAK,CAAC,OAAN,GAAgB,CAAhB;AACA,WAAK,CAAC,GAAN,GAAY,CAAZ;AACA,WAAK,CAAC,GAAN,GAAY,CAAZ;AACA,WAAK,CAAC,GAAN,GAAY,CAAZ;AACA,WAAK,CAAC,KAAN,GAAc,CAAd;AACA;;AAAA,KAtDgC,CAwDjC;;AACA,WAAO,MAAP;AACA;;AA/S0B;;;mBAAf,iBAAe;AAAA;;;QAAf;AAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACZ5B;AACI;AACI;AACJ;AAEA;AACI;AACI;AAAiD;AAAG;AAAe;AAAI;AACvE;AAAqC;AAAG;AAAG;;AAA4C;AAAI;AAAI;AACnG;AACJ;AAGA;AAcI;AA4HJ;AACJ;;;;;AAtJa;AAAA;AAKmD;AAAA;AACT;AAAA;AAmBhC;AAAA;;;;;;;ADqSjB,MAAO,UAAP,CAAiB;AAMF,MAAT,SAAS;AAAK,WAAO,KAAK,UAAZ;AAAwB;;AAC5B,MAAV,UAAU;AAAK,WAAO,KAAK,WAAZ;AAAyB;;AAClC,MAAN,MAAM;AAAK,WAAO,KAAK,OAAZ;AAAqB;;AACpB,MAAZ,YAAY;AAAK,WAAO,KAAK,aAAZ;AAA2B,GATjC,CAUtB;;;AACoB,MAAT,SAAS,CAAC,EAAD,EAAG;AAAI,SAAK,UAAL,GAAkB,EAAlB;AAAsB;;AAC5B,MAAV,UAAU,CAAC,EAAD,EAAG;AAAI,SAAK,WAAL,GAAmB,EAAnB;AAAuB;;AAClC,MAAN,MAAM,CAAC,EAAD,EAAG;AAAI,SAAK,OAAL,GAAe,EAAf;AAAmB;;AACpB,MAAZ,YAAY,CAAC,EAAD,EAAG;AAAI,SAAK,aAAL,GAAqB,EAArB;AAAyB;;AAM1C,MAAF,EAAE;AAAK,WAAO,KAAK,GAAZ;AAAiB;;AAClB,MAAN,MAAM;AAAK,WAAO,KAAK,OAAZ;AAAqB;;AACtB,MAAV,UAAU;AAAK,WAAO,KAAK,WAAZ;AAAyB,GAtB7B,CAuBtB;;;AACa,MAAF,EAAE,CAAC,EAAD,EAAG;AAAI,SAAK,GAAL,GAAW,EAAX;AAAe;;AAClB,MAAN,MAAM,CAAC,EAAD,EAAG;AAAI,SAAK,OAAL,GAAe,EAAf;AAAmB;;AACtB,MAAV,UAAU,CAAC,EAAD,EAAG;AAAI,SAAK,WAAL,GAAmB,EAAnB;AAAuB,GA1B7B,CA6BtB;;;AACiB,MAAN,MAAM;AAChB;AACA,WAAQ,KAAK,MAAL,IAAe,GAAhB,GAAuB,KAAK,EAA5B,GAAiC,KAAK,UAAL,CAAgB,OAAxD;AACA;;AAEmB,MAAT,SAAS;AACnB,WAAO,aAAP,CADmB,CAEnB;AACA;;AAtCqB;AA0CjB,MAAO,SAAP,CAAgB;AAYJ,MAAN,MAAM;AAAK,WAAO,KAAK,OAAZ;AAAqB;;AAC7B,MAAH,GAAG;AAAK,WAAO,KAAK,IAAZ;AAAkB;;AACxB,MAAF,EAAE;AAAK,WAAO,KAAK,GAAZ;AAAiB;;AACrB,MAAH,GAAG;AAAK,WAAO,KAAK,IAAZ;AAAkB;;AACnB,MAAP,OAAO;AAAK,WAAO,KAAK,QAAZ;AAAsB;;AAC/B,MAAH,GAAG;AAAK,WAAO,KAAK,IAAZ;AAAkB;;AACnB,MAAP,OAAO;AAAK,WAAO,KAAK,QAAZ;AAAsB;;AAC3B,MAAP,OAAO;AAAK,WAAO,KAAK,QAAZ;AAAsB;;AAC7B,MAAL,KAAK;AAAK,WAAO,KAAK,MAAZ;AAAoB;;AACpB,MAAV,UAAU;AAAK,WAAO,KAAK,WAAZ;AAAyB;;AACnD;AACiB,MAAN,MAAM,CAAC,EAAD,EAAG;AAAI,SAAK,OAAL,GAAe,EAAf;AAAmB;;AAC7B,MAAH,GAAG,CAAC,EAAD,EAAG;AAAI,SAAK,IAAL,GAAY,EAAZ;AAAgB;;AACxB,MAAF,EAAE,CAAC,EAAD,EAAG;AAAI,SAAK,GAAL,GAAW,EAAX;AAAe;;AACrB,MAAH,GAAG,CAAC,EAAD,EAAG;AAAI,SAAK,IAAL,GAAY,EAAZ;AAAgB;;AACnB,MAAP,OAAO,CAAC,EAAD,EAAG;AAAI,SAAK,QAAL,GAAgB,EAAhB;AAAoB;;AAC/B,MAAH,GAAG,CAAC,EAAD,EAAG;AAAI,SAAK,IAAL,GAAY,EAAZ;AAAgB;;AACnB,MAAP,OAAO,CAAC,EAAD,EAAG;AAAI,SAAK,QAAL,GAAgB,EAAhB;AAAoB;;AAC3B,MAAP,OAAO,CAAC,EAAD,EAAG;AAAI,SAAK,QAAL,GAAgB,EAAhB;AAAoB;;AAC7B,MAAL,KAAK,CAAC,EAAD,EAAG;AAAI,SAAK,MAAL,GAAc,EAAd;AAAkB;;AACpB,MAAV,UAAU,CAAC,EAAD,EAAG;AAAI,SAAK,WAAL,GAAmB,EAAnB;AAAuB;;AAS7B,MAAX,WAAW;AAAK,WAAO,KAAK,WAAZ;AAAyB;;AAC7B,MAAZ,YAAY;AAAK,WAAO,KAAK,YAAZ;AAA0B;;AACtD;AACsB,MAAX,WAAW,CAAC,EAAD,EAAG;AAAI,SAAK,WAAL,GAAmB,EAAnB;AAAuB;;AAC7B,MAAZ,YAAY,CAAC,EAAD,EAAG;AAAI,SAAK,YAAL,GAAoB,EAApB;AAAwB;;AA7CjC;;;;;;;;;;;;;;;;;;;AEnWf,MAAM,qBAAqB;IAQhC;QALA,cAAS,GAAQ,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,CAAC;QACxC,gBAAW,GAAM,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;QACxC,iBAAY,GAAK,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC;QACzC,kBAAa,GAAI,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAC,aAAa,EAAC,CAAC,CAAC;IAE7B,CAAC;IAEjB,QAAQ;IACR,CAAC;;0FAXU,qBAAqB;mHAArB,qBAAqB;QCPlC,yEAA2J;QACvJ,yEAAiD;QAC7C,oEAAkE;QACtE,4DAAM;QAEN,yEAAuB;QACnB,yEAAiD;QAAA,oEAAG;QAAA,uDAAe;QAAA,4DAAI;QAAA,4DAAM;QAC7E,yEAAqC;QAAA,oEAAG;QAAA,oEAAG;QAAA,wDAA4C;;QAAA,4DAAI;QAAA,4DAAI;QAAA,4DAAM;QACzG,4DAAM;QAGV,4DAAM;;QATO,0DAA6C;QAA7C,mHAA6C;QAIE,0DAAe;QAAf,gFAAe;QACxB,0DAA4C;QAA5C,sKAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACN3B;AACK;;;;;;;;;;;;;;ICAjE,wEAAoC;IAChC,yEAAwB;IAAA,wHAAmD;IAAA,4DAAK;IACpF,qEAAe;;;IAgBa,iFAAqE;IACjE,uDACJ;IAAA,4DAAa;;;IAFkC,iFAAqB;IAChE,0DACJ;IADI,iGACJ;;;IAQJ,iFAAsE;IAClE,uDACJ;IAAA,4DAAa;;;IAFmC,kFAAqB;IACjE,0DACJ;IADI,2FACJ;;;IAUA,iFAA4F;IACxF,uDACJ;IAAA,4DAAa;;;IAFoC,kFAAqB;IAClE,0DACJ;IADI,kGACJ;;;;IA/BxB,wEAAoC;IAChC,0EAAuB;IACnB,yEAAiB;IACb,0EAAsB;IAClB,qFAAwC;IACpC,4EAAW;IAAA,wEAAO;IAAA,gEAAK;IAAA,4DAAQ;IAAA,4DAAY;IACvC,iFAAsK;IAAlI,mXAA+C;IAC/E,+IAEa;IACjB,4DAAa;IACrB,4DAAiB;IACrB,4DAAM;IACN,2EAAsB;IAClB,sFAAwC;IACpC,6EAAW;IAAA,yEAAO;IAAA,kEAAM;IAAA,4DAAQ;IAAA,4DAAY;IAC5C,kFAAyK;IAApI,qXAAgD;IACjF,iJAEa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IACV,4DAAM;IACN,0EAAiB;IACb,2EAAsB;IAClB,sFAAwC;IACpC,6EAAW;IAAA,yEAAO;IAAA,wEAAO;IAAA,4DAAQ;IAAA,4DAAY;IAC7C,kFAA4K;IAArI,sXAAiD;IACpF,iJAEa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IACN,2EAAsB;IAClB,sFAAwC;IACpC,6EAAW;IAAA,yEAAO;IAAA,oEAAG;IAAA,4DAAQ;IAAA,4DAAY;IACzC,wEAAiF;IAMrF,4DAAiB;IACrB,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,qEAAe;;;IA5CiB,0DAAuB;IAAvB,gFAAuB;IAGI,0DAAc;IAAd,uFAAc;IAOzC,0DAAuB;IAAvB,gFAAuB;IAGA,0DAAe;IAAf,wFAAe;IAStC,0DAAuB;IAAvB,gFAAuB;IAGA,0DAAgB;IAAhB,yFAAgB;IAOvC,0DAAuB;IAAvB,gFAAuB;;;IAcvD,wEAAqC;IACjC,yEAAuB;IACnB,uEAAM;IACF,oFAAmB;IAAA,oEAAG;IAAA,sEAAW;IAAA,4DAAI;IAAA,iIACzC;IAAA,4DAAO;IACX,4DAAM;IACV,qEAAe;;;IAInB,yEAAyC;IACrC,uEAAM;IACF,qPACJ;IAAA,4DAAO;IACX,4DAAM;;;;IAIF,wEAAsC;IAClC,6EAAiD;IAAvB,uUAAsB;IAAC,+EAAoB;IAAA,4DAAS;IAClF,qEAAe;;;;IAIX,wEAAiC;IAC7B,6EAAgD;IAAvB,uVAAsB;IAAC,+EAAoB;IAAA,4DAAS;IAC7E,6EAAgD;IAAtB,sVAAqB;IAAC,oEAAS;IAAA,4DAAS;IACtE,qEAAe;;;;IAEf,wEAA+B;IAC3B,6EAAgD;IAAtB,sVAAqB;IAAC,oEAAS;IAAA,4DAAS;IACtE,qEAAe;;;IATnB,wEAAoC;IAEhC,mJAGe;IAEf,mJAEe;IAEnB,qEAAe;;;IATI,0DAAe;IAAf,kFAAe;IAKf,0DAAc;IAAd,iFAAc;;AD7ElC,MAAM,qBAAqB;IAcjC,YACe,MAAc,EACpB,QAAqB,EACf,WAAwB,EAC9B,WAAwB,EACzB,SAA8C,EACrB,IAAS;QAL3B,WAAM,GAAN,MAAM,CAAQ;QACpB,aAAQ,GAAR,QAAQ,CAAa;QACf,gBAAW,GAAX,WAAW,CAAa;QAC9B,gBAAW,GAAX,WAAW,CAAa;QACzB,cAAS,GAAT,SAAS,CAAqC;QACrB,SAAI,GAAJ,IAAI,CAAK;QAjB1C,cAAS,GAAG,EAAE,CAAC,CAAC,gCAAgC;QAChD,gBAAW,GAAK,EAAE,CAAC,8BAA6B;QAChD,iBAAY,GAAI,EAAE,CAAC,+BAA8B;QACjD,kBAAa,GAAG,EAAE,CAAC,oCAAmC;QAItD,aAAQ,GAAG,IAAI,CAAC;QAChB,kBAAa,GAAG,IAAI,CAAC;IAS0B,CAAC;IAEhD,QAAQ;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE3C,IAAI,CAAC,aAAa,GAAG,IAAI,qDAAS,CAAC;YAElC,IAAI,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAE,CAAC,+DAAmB,CAAC,CAAC;YAChD,KAAK,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAE,CAAC,+DAAmB,CAAC,CAAC;YACjD,MAAM,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAE,CAAC,+DAAmB,CAAC,CAAC;YAClD,OAAO,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAE,CAAC,+DAAmB,CAAC,CAAC;YACnD,WAAW,EAAE,IAAI,uDAAW,CAAC,EAAE,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAEjF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,CAAC;IAED,UAAU;;QACT,0BAA0B;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAEtD,IAAI,KAAK,GAAG,UAAI,CAAC,SAAS,CAAC,KAAK,mCAAI,EAAE,CAAC;QACvC,IAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qDAAqD,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACpG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAC9C,OAAO;SACP;QACK,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAE,GAAG,KAAK,kCAAM,IAAI,CAAC,IAAI,KAAE,MAAM,kCAAM,IAAI,CAAC,aAAa,KAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAI,CAAC;QAErH,IAAG,UAAI,CAAC,SAAS,CAAC,KAAK,mCAAI,KAAK,EAAC;YAChC,0CAA0C;YAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG;gBACtB,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAC;gBACjC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;gBAClC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;gBAClC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;gBAClC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;aAClC,CAAC;SACF;aAAI;YACJ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAE,uCAAW,CAAC,KAAC,OAAO,EAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAC,EAAC,CAAC,CAAC;SAC1G;QACD,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS;;QAER,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;QAC5C,IAAK,IAAI,CAAC,aAAa,CAAC,OAAO,EAC/B;YACC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,OAAO;SACP;QAED,0BAA0B;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAEtD,IAAI,KAAK,GAAG,UAAI,CAAC,SAAS,CAAC,KAAK,mCAAI,EAAE,CAAC;QACvC,IAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qDAAqD,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACpG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAC9C,OAAO;SACP;QACK,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAE,GAAG,KAAK,kCAAM,IAAI,CAAC,IAAI,KAAE,MAAM,kCAAM,IAAI,CAAC,aAAa,KAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,OAAI,CAAC;QAEpH,IAAG,UAAI,CAAC,SAAS,CAAC,KAAK,mCAAI,KAAK,EAAC;YAChC,0CAA0C;YAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG;gBACtB,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAC;gBACjC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;gBAClC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;gBAClC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;gBAClC,EAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAC;aAClC,CAAC;SACF;aAAI;YACJ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAE,uCAAW,CAAC,KAAC,OAAO,EAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAC,EAAC,CAAC,CAAC;SAC1G;QACD,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,KAAK;QACjB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,2BAA2B,KAAK,EAAE,CAAC;aAClE,SAAS,CACT,CAAC,GAAQ,EAAE,EAAE;YACZ,IAAI,GAAG,CAAC,KAAK,EAAE;aAEd;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE;aAEzB;iBAAM;gBACN,IAAI,SAAS,GAAG,GAAG,CAAC;gBACpB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAElF,IAAI,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;gBAE1B,IAAI,KAAK,GAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAElF,IAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAC;oBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kFAAkF,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,yBAAyB;iBACzB;qBAAI;oBACJ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBACjC;gBAGD,0BAA0B;gBAC1B,kCAAkC;aAClC;QACF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,kCAAkC;QACnC,CAAC,CACD,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,KAAK;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,0BAA0B,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;aAC5F,SAAS,CACT,CAAC,GAAQ,EAAE,EAAE;YACZ,IAAI,GAAG,CAAC,KAAK,EAAE;aAEd;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE;aAEzB;iBAAM;gBACN,IAAI,SAAS,GAAG,GAAG,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEnE,IAAI,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;gBAE1B,IAAI,GAAG,GAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC1C,GAAG,GAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBACjC,IAAI,MAAM,GAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;gBAEjD,IAAG,MAAM,CAAC,MAAM,IAAI,CAAC,EAAC;oBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uEAAuE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBACxH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;iBACtB;qBAAI;oBACJ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC1D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBACnC;gBAID,0BAA0B;gBAC1B,kCAAkC;aAClC;QACF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,kCAAkC;QACnC,CAAC,CACD,CAAC;IAEJ,CAAC;IAED,eAAe,CAAC,KAAK;QACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC1B,IAAG,CAAC,CAAC,IAAI,IAAI,KAAK,EAAC;gBAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC9D;QACF,CAAC,CAAC;IACH,CAAC;IAGD,cAAc,CAAC,KAAK;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,kCAAkC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;aAChI,SAAS,CACT,CAAC,GAAQ,EAAE,EAAE;YACZ,IAAI,GAAG,CAAC,KAAK,EAAE;aAEd;iBAAM,IAAI,GAAG,CAAC,SAAS,EAAE;aAEzB;iBAAM;gBACN,IAAI,SAAS,GAAG,GAAG,CAAC;gBACpB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;gBAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEnD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sEAAsE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,OAAO;iBACP;gBAED,0BAA0B;gBAC1B,kCAAkC;aAClC;QACF,CAAC,EAAE,CAAC,KAAU,EAAE,EAAE;YACjB,IAAI,GAAG,GAAG,MAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,EAAE,CAAC;YAC7B,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACnD,OAAO;aACP;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,oDAAoD,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACnG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,OAAO;YACP,wBAAwB;YACxB,kCAAkC;QACnC,CAAC,CACD,CAAC;IAEJ,CAAC;;0FArPW,qBAAqB,8sBAoBxB,qEAAe;mHApBZ,qBAAqB;QCflC,yEAAiB;QACb,yEAA6B;QACzB,mIAEe;QACnB,4DAAM;QACN,yEAAsB;QAClB,oEAAmC;QACvC,4DAAM;QACN,yEAAkD;QAC9C,yEAAuB;QACnB,qEAAI;QAAA,uDAAY;QAAA,4DAAK;QACzB,4DAAM;QACN,oIAgDe;QAEf,qIAMe;QAEnB,4DAAM;QAEN,mHAIM;QACN,0EAAuB;QAGnB,qIAEe;QAEf,qIAWe;QACnB,4DAAM;QACN,0EAAmC;QAC/B,6EAAoE;QAAA,oEAAQ;QAAA,4DAAS;QACzF,4DAAM;QACV,4DAAM;;QAnGiB,0DAAmB;QAAnB,mFAAmB;QAK7B,0DAAgB;QAAhB,mJAAgB;QAEH,0DAA2B;QAA3B,wFAA2B;QAErC,0DAAY;QAAZ,2EAAY;QAEL,0DAAmB;QAAnB,mFAAmB;QAkDnB,0DAAoB;QAApB,oFAAoB;QAUf,0DAAe;QAAf,+EAAe;QAQpB,0DAAoB;QAApB,oFAAoB;QAIpB,0DAAmB;QAAnB,mFAAmB;;;;;;;;;;;;;;;;;;;;;;;;;IEnFlC,wEAAwC;IACpC,wEAA8F;IAA3F,iUAAuB;IAAoE,4DAAI;IACtG,qEAAe;;;;IACf,wEAAuC;IACnC,uEAAwE;IAArE,iUAAuB;IAA8C,4DAAI;IAChF,qEAAe;;;IADgB,0DAA4C;IAA5C,qHAA4C;;ADE5E,MAAM,uBAAuB;IAInC,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAErC,QAAQ;IACR,CAAC;IAEH,WAAW;QACV,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;;8FAXW,uBAAuB;qHAAvB,uBAAuB;QCRpC,yEAA4E;QAAjD,4IAAS,iBAAa,IAAC;QAC9C,yEAAiD;QAC7C,qIAEe;QACf,qIAEe;QACnB,4DAAM;QACN,yEAAgC;QAC5B,yEAA2B;QACvB,oEAAG;QAAA,2EAA+B;QAAxB,8IAAS,iBAAa,IAAC;QAAC,uDAAsB;QAAA,4DAAQ;QAAA,4DAAI;QACxE,4DAAM;QAEN,sEAAK;QACD,0EAAgC;QAC5B,0EAAsB;QAClB,2EAA2C;QAAA,qEAAI;QAAA,4DAAO;QACtD,2EAA2C;QAAA,mEAAO;QAAA,4DAAO;QACzD,2EAA2C;QAAA,yEAAQ;QAAA,4DAAO;QAC1D,2EAA2C;QAAA,6EAAY;QAAA,4DAAO;QAClE,4DAAM;QACN,0EAAsB;QAClB,4EAA2C;QAAA,wDAAe;QAAA,4DAAO;QACjE,4EAA2C;QAAA,wDAAiB;QAAA,4DAAO;QACnE,4EAA2C;QAAA,wDAAkB;QAAA,4DAAO;QACpE,4EAA2C;QAAA,wDAAsB;QAAA,4DAAO;QAC5E,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,0EAAgD;QAAA,wEAAM;QAAA,kEAAM;QAAA,4DAAO;QAAA,wDAA8C;;QAAA,4DAAK;QACtH,yEAAgB;QAAA,wDAEmB;QAAA,4DAAI;QACvC,2EAAsB;QAClB,8EAAgE;QAAxB,gJAAS,iBAAa,IAAC;QAAC,mEAAO;QAAA,4DAAS;QACpF,4DAAM;QAEV,4DAAM;QACV,4DAAM;;QAtCiB,0DAAuB;QAAvB,uFAAuB;QAGvB,0DAAsB;QAAtB,sFAAsB;QAMC,0DAAsB;QAAtB,qFAAsB;QAYL,2DAAe;QAAf,8EAAe;QACf,0DAAiB;QAAjB,gFAAiB;QACjB,0DAAkB;QAAlB,iFAAkB;QAClB,0DAAsB;QAAtB,qFAAsB;QAKV,0DAA8C;QAA9C,sKAA8C;QACjG,0DAEmB;QAFnB,4NAEmB;;;;;;;;;;;;;;;;;;;;;;;;;AC1BpC,MAAM,mBAAmB;IAG5B,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAEvC,QAAQ;IACR,CAAC;IAED,WAAW,CAAE,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAiB,EAAG,EAAE,CAAC,CAAC;IACpD,CAAC;;sFAVQ,mBAAmB;iHAAnB,mBAAmB;QCRhC,8EAKE;QACE,yEAA2B;QACvB,kEAAqE;QACzE,4DAAM;QAMN,yEAAsB;QAClB,yEAAkC;QAC9B,yEAA2B;QACvB,yEAA0D;QAAA,uDAAwD;QAAA,4DAAM;QACxH,yEAAuD;QAAA,uDAA8C;;QAAA,4DAAM;QAC/G,4DAAM;QACV,4DAAM;QACN,0EAAwB;QACpB,6EAA+E;QAArC,4IAAS,kCAA0B,IAAC;QAAC,mEAAO;QAAA,4DAAS;QACnG,4DAAM;QACV,4DAAM;QACV,4DAAW;;QAlBA,0DAA4C;QAA5C,kHAA4C;QAUmB,0DAAwD;QAAxD,wIAAwD;QAC3D,0DAA8C;QAA9C,sKAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;IEbzG,wEAA0C;IACtC,wEAA4B;IACxB,uEAAgJ;IAC5I,oEAA4E;IAChF,4DAAI;IACR,4DAAK;IACT,qEAAe;;;IAJ6E,0DAAyB;IAAzB,4FAAyB;IAAC,+FAAiC;IAA5I,+JAA8B;IACxB,0DAAuB;IAAvB,uJAAuB;IAAwB,0FAAuB;;ADA5F,MAAM,eAAe;IAGxB,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAI,CAAC;IAEjD,QAAQ;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,SAAS;QACL,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC;aAClD,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACD,CAAC;;8EAdQ,eAAe;6GAAf,eAAe;QCR5B,wEAAyD;QAAA,8EAAc;QAAA,4DAAK;QAAA,gEAAM;QAClF,wEAAuD;QAAA,iEAAM;QAAA,4DAAK;QAClE,yEAAiB;QACb,yEAAuB;QACnB,wEAA4E;QACxE,6HAMe;QACnB,4DAAK;QACT,4DAAM;QACV,4DAAM;;QATqC,0DAAS;QAAT,+EAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;IECpC,wEAA4C;IACxC,yEAAiE;IAC7D,gFAAkD;IACtD,4DAAM;IACV,qEAAe;;;IAFU,0DAAa;IAAb,yEAAa;;ADA/C,MAAM,qBAAqB;IAK9B,YACY,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAHpC,aAAQ,GAAQ,EAAE,CAAC;IAIf,CAAC;IAEL,QAAQ;QACJ,IAAI,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,GAAG,GAAG,IAAI,CAAC;SACd;QACD,IAAI,CAAC,eAAe,CAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAE,CAAC;IAC5C,CAAC;IAED,eAAe,CAAE,EAAE,EAAE,MAAM;QACvB,MAAM,KAAK,GAAG;YACV,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,MAAM;SACpB;QAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,CAAC;aACjE,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACd,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,OAAO,CAAC,UAAU;oBAC5B,GAAG,EAAE,OAAO,CAAC,MAAM;oBACnB,WAAW,EAAE,OAAO,CAAC,KAAK;oBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;iBACzB,CAAC;YACN,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACD,CAAC;;0FAtCQ,qBAAqB;mHAArB,qBAAqB;QCRlC,yEAAuB;QACnB,wEAAyD;QAAA,8EAAc;QAAA,4DAAK;QAAA,gEAAM;QAClF,wEAAuD;QAAA,6EAAkB;QAAA,4DAAK;QAC9E,yEAAiB;QACb,yEAAuB;QACnB,8EAA2I;QACvI,mIAIe;QACnB,4DAAW;QACf,4DAAM;QACV,4DAAM;QACV,4DAAM;;QATgB,0DAAc;QAAd,uEAAc;QACW,0DAAW;QAAX,iFAAW","sources":["./node_modules/bowser/es5.js","./node_modules/ngx-drag-scroll/__ivy_ngcc__/fesm2015/ngx-drag-scroll.js","./node_modules/rxjs/internal/BehaviorSubject.js","./node_modules/rxjs/internal/Observable.js","./node_modules/rxjs/internal/Observer.js","./node_modules/rxjs/internal/Subject.js","./node_modules/rxjs/internal/SubjectSubscription.js","./node_modules/rxjs/internal/Subscriber.js","./node_modules/rxjs/internal/Subscription.js","./node_modules/rxjs/internal/config.js","./node_modules/rxjs/internal/symbol/observable.js","./node_modules/rxjs/internal/symbol/rxSubscriber.js","./node_modules/rxjs/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/internal/util/UnsubscriptionError.js","./node_modules/rxjs/internal/util/canReportError.js","./node_modules/rxjs/internal/util/hostReportError.js","./node_modules/rxjs/internal/util/identity.js","./node_modules/rxjs/internal/util/isArray.js","./node_modules/rxjs/internal/util/isFunction.js","./node_modules/rxjs/internal/util/isObject.js","./node_modules/rxjs/internal/util/pipe.js","./node_modules/rxjs/internal/util/toSubscriber.js","./src/app/interfaces/interfaces.ts","./src/app/modules/site/cotizador/cotizador/cotizador.component.ts","./src/app/modules/site/cotizador/cotizador/cotizador.component.html","./src/app/modules/site/cotizador/cotizador/wizard/PasoCinco/PasoCinco.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/PasoCinco/PasoCinco.component.html","./src/app/modules/site/cotizador/cotizador/wizard/PasoCuatro/PasoCuatro.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/PasoCuatro/PasoCuatro.component.html","./src/app/modules/site/cotizador/cotizador/wizard/PasoDos/PasoDos.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/PasoDos/PasoDos.component.html","./src/app/modules/site/cotizador/cotizador/wizard/PasoSeis/PasoSeis.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/PasoSeis/PasoSeis.component.html","./src/app/modules/site/cotizador/cotizador/wizard/PasoTres/PasoTres.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/PasoTres/PasoTres.component.html","./src/app/modules/site/cotizador/cotizador/wizard/PasoUno/PasoUno.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/PasoUno/PasoUno.component.html","./src/app/modules/site/cotizador/cotizador/wizard/cotizacion/cotizacion.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/cotizacion/cotizacion.component.html","./src/app/modules/site/cotizador/cotizador/wizard/descripcion-cotizacion/descripcion-cotizacion.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/descripcion-cotizacion/descripcion-cotizacion.component.html","./src/app/modules/site/cotizador/cotizador/wizard/descripcion-cotizacion/Detalle-auto.component.html","./src/app/modules/site/cotizador/cotizador/wizard/slide-panel/slide-panel.component.ts","./src/app/modules/site/cotizador/cotizador/wizard/slide-panel/slide-panel.component.html","./src/app/modules/site/cotizador/descargar-pdf/descargar-pdf.component.ts","./src/app/modules/site/cotizador/descargar-pdf/descargar-pdf.component.html","./src/app/modules/site/cotizador/dialog-preaprobacion/dialog-preaprobacion.component.ts","./src/app/modules/site/cotizador/dialog-preaprobacion/dialog-preaprobacion.component.html","./src/app/modules/site/detalle-unidad/detalle-unidad.component.ts","./src/app/modules/site/detalle-unidad/detalle-unidad.component.html","./src/app/modules/site/filtros/filtros.component.ts","./src/app/modules/site/filtros/filtros.component.html","./src/app/modules/site/landing/landing.component.ts","./src/app/modules/site/landing/landing.component.html","./src/app/modules/site/site-routing.module.ts","./src/app/modules/site/site.module.ts","./src/app/utilerias/cotizador/enganche/enganche.component.ts","./src/app/utilerias/cotizador/enganche/enganche.component.html","./src/app/utilerias/cotizador/seguro/seguro.component.ts","./src/app/utilerias/cotizador/seguro/seguro.component.html","./src/app/utilerias/cotizador/unidad-select/unidad-select.component.ts","./src/app/utilerias/cotizador/unidad-select/unidad-select.component.html","./src/app/utilerias/site/dialog-seguro/dialog-seguro.component.ts","./src/app/utilerias/site/dialog-seguro/dialog-seguro.component.html","./src/app/utilerias/site/item-unidad-full/item-unidad-full.component.ts","./src/app/utilerias/site/item-unidad-full/item-unidad-full.component.html","./src/app/utilerias/site/item-unidad/item-unidad.component.ts","./src/app/utilerias/site/item-unidad/item-unidad.component.html","./src/app/utilerias/site/marcas/marcas.component.ts","./src/app/utilerias/site/marcas/marcas.component.html","./src/app/utilerias/site/recomendados/recomendados.component.ts","./src/app/utilerias/site/recomendados/recomendados.component.html"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","import { Directive, ElementRef, Inject, HostBinding, Input, EventEmitter, Component, Renderer2, ViewChild, ContentChildren, Output, HostListener, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport * as ɵngcc0 from '@angular/core';\n\nconst _c0 = [\"contentRef\"];\nconst _c1 = [\"*\"];\nclass DragScrollItemDirective {\n constructor(elementRef) {\n this.display = 'inline-block';\n this._dragDisabled = false;\n this._elementRef = elementRef;\n }\n get dragDisabled() { return this._dragDisabled; }\n set dragDisabled(value) { this._dragDisabled = value; }\n}\nDragScrollItemDirective.ɵfac = function DragScrollItemDirective_Factory(t) { return new (t || DragScrollItemDirective)(ɵngcc0.ɵɵdirectiveInject(ElementRef)); };\nDragScrollItemDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DragScrollItemDirective, selectors: [[\"\", \"drag-scroll-item\", \"\"]], hostVars: 2, hostBindings: function DragScrollItemDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.display);\n } }, inputs: { dragDisabled: [\"drag-disabled\", \"dragDisabled\"] } });\nDragScrollItemDirective.ctorParameters = () => [\n { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }\n];\nDragScrollItemDirective.propDecorators = {\n display: [{ type: HostBinding, args: ['style.display',] }],\n dragDisabled: [{ type: Input, args: ['drag-disabled',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragScrollItemDirective, [{\n type: Directive,\n args: [{\n selector: '[drag-scroll-item]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef, decorators: [{\n type: Inject,\n args: [ElementRef]\n }] }]; }, { display: [{\n type: HostBinding,\n args: ['style.display']\n }], dragDisabled: [{\n type: Input,\n args: ['drag-disabled']\n }] }); })();\n\nclass DragScrollComponent {\n constructor(_elementRef, _renderer, _document) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._document = _document;\n this._index = 0;\n this._scrollbarHidden = false;\n this._disabled = false;\n this._xDisabled = false;\n this._xWheelEnabled = false;\n this._yDisabled = false;\n this._dragDisabled = false;\n this._snapDisabled = false;\n this._snapOffset = 0;\n this._snapDuration = 500;\n this._isDragging = false;\n /**\n * Is the user currently pressing the element\n */\n this.isPressed = false;\n /**\n * Is the user currently scrolling the element\n */\n this.isScrolling = false;\n this.scrollTimer = -1;\n this.scrollToTimer = -1;\n /**\n * The x coordinates on the element\n */\n this.downX = 0;\n /**\n * The y coordinates on the element\n */\n this.downY = 0;\n this.displayType = 'block';\n this.elWidth = null;\n this.elHeight = null;\n this._pointerEvents = 'auto';\n this.scrollbarWidth = null;\n this.isAnimating = false;\n this.prevChildrenLength = 0;\n this.indexBound = 0;\n this.dsInitialized = new EventEmitter();\n this.indexChanged = new EventEmitter();\n this.reachesLeftBound = new EventEmitter();\n this.reachesRightBound = new EventEmitter();\n this.snapAnimationFinished = new EventEmitter();\n this.dragStart = new EventEmitter();\n this.dragEnd = new EventEmitter();\n this.scrollbarWidth = `${this.getScrollbarWidth()}px`;\n }\n /**\n * Is the user currently dragging the element\n */\n get isDragging() {\n return this._isDragging;\n }\n get currIndex() { return this._index; }\n set currIndex(value) {\n if (value !== this._index) {\n this._index = value;\n this.indexChanged.emit(value);\n }\n }\n /**\n * Whether the scrollbar is hidden\n */\n get scrollbarHidden() { return this._scrollbarHidden; }\n set scrollbarHidden(value) { this._scrollbarHidden = value; }\n /**\n * Whether horizontally and vertically draging and scrolling is be disabled\n */\n get disabled() { return this._disabled; }\n set disabled(value) { this._disabled = value; }\n /**\n * Whether horizontally dragging and scrolling is be disabled\n */\n get xDisabled() { return this._xDisabled; }\n set xDisabled(value) { this._xDisabled = value; }\n /**\n * Whether vertically dragging and scrolling events is disabled\n */\n get yDisabled() { return this._yDisabled; }\n set yDisabled(value) { this._yDisabled = value; }\n /**\n * Whether scrolling horizontally with mouse wheel is enabled\n */\n get xWheelEnabled() { return this._xWheelEnabled; }\n set xWheelEnabled(value) { this._xWheelEnabled = value; }\n get dragDisabled() { return this._dragDisabled; }\n set dragDisabled(value) { this._dragDisabled = value; }\n get snapDisabled() { return this._snapDisabled; }\n set snapDisabled(value) { this._snapDisabled = value; }\n get snapOffset() { return this._snapOffset; }\n set snapOffset(value) { this._snapOffset = value; }\n get snapDuration() { return this._snapDuration; }\n set snapDuration(value) { this._snapDuration = value; }\n ngOnChanges() {\n this.setScrollBar();\n if (this.xDisabled || this.disabled || this._scrollbarHidden) {\n this.disableScroll('x');\n }\n else {\n this.enableScroll('x');\n }\n if (this.yDisabled || this.disabled) {\n this.disableScroll('y');\n }\n else {\n this.enableScroll('y');\n }\n }\n ngAfterViewInit() {\n // auto assign computed css\n this._renderer.setAttribute(this._contentRef.nativeElement, 'drag-scroll', 'true');\n this.displayType = typeof window !== 'undefined' ? window.getComputedStyle(this._elementRef.nativeElement).display : 'block';\n this._renderer.setStyle(this._contentRef.nativeElement, 'display', this.displayType);\n this._renderer.setStyle(this._contentRef.nativeElement, 'whiteSpace', 'noWrap');\n // store ele width height for later user\n this.markElDimension();\n this._renderer.setStyle(this._contentRef.nativeElement, 'width', this.elWidth);\n this._renderer.setStyle(this._contentRef.nativeElement, 'height', this.elHeight);\n if (this.wrapper) {\n this.checkScrollbar();\n }\n this._onMouseDownListener = this._renderer.listen(this._contentRef.nativeElement, 'mousedown', this.onMouseDownHandler.bind(this));\n this._onScrollListener = this._renderer.listen(this._contentRef.nativeElement, 'scroll', this.onScrollHandler.bind(this));\n // prevent Firefox from dragging images\n this._onDragStartListener = this._renderer.listen(this._contentRef.nativeElement, 'dragstart', (e) => {\n e.preventDefault();\n });\n this.checkNavStatus();\n this.dsInitialized.emit();\n this.adjustMarginToLastChild();\n }\n ngAfterViewChecked() {\n // avoid extra checks\n if (this._children.length !== this.prevChildrenLength) {\n this.markElDimension();\n this.checkScrollbar();\n this.prevChildrenLength = this._children.length;\n this.checkNavStatus();\n }\n }\n ngOnDestroy() {\n this._renderer.setAttribute(this._contentRef.nativeElement, 'drag-scroll', 'false');\n if (this._onMouseDownListener) {\n this._onMouseDownListener = this._onMouseDownListener();\n }\n if (this._onScrollListener) {\n this._onScrollListener = this._onScrollListener();\n }\n if (this._onDragStartListener) {\n this._onDragStartListener = this._onDragStartListener();\n }\n }\n onMouseMoveHandler(event) {\n this.onMouseMove(event);\n }\n onMouseMove(event) {\n if (event.clientX === this.downX && event.clientY === this.downY) {\n // Ignore 'mousemove\" event triggered at the same coordinates that the last mousedown event (consequence of window resize)\n return;\n }\n if (this.isPressed && !this.disabled) {\n // Workaround for prevent scroll stuck if browser lost focus\n // MouseEvent.buttons not support by Safari\n // eslint-disable-next-line import/no-deprecated\n if (!event.buttons && !event.which) {\n return this.onMouseUpHandler(event);\n }\n this._pointerEvents = 'none';\n this._setIsDragging(true);\n // Drag X\n if (!this.xDisabled && !this.dragDisabled) {\n const clientX = event.clientX;\n this._contentRef.nativeElement.scrollLeft =\n this._contentRef.nativeElement.scrollLeft - clientX + this.downX;\n this.downX = clientX;\n }\n // Drag Y\n if (!this.yDisabled && !this.dragDisabled) {\n const clientY = event.clientY;\n this._contentRef.nativeElement.scrollTop =\n this._contentRef.nativeElement.scrollTop - clientY + this.downY;\n this.downY = clientY;\n }\n }\n }\n onMouseDownHandler(event) {\n const dragScrollItem = this.locateDragScrollItem(event.target);\n if (dragScrollItem && dragScrollItem.dragDisabled) {\n return;\n }\n const isTouchEvent = event.type === 'touchstart';\n this._startGlobalListening(isTouchEvent);\n this.isPressed = true;\n const mouseEvent = event;\n this.downX = mouseEvent.clientX;\n this.downY = mouseEvent.clientY;\n clearTimeout(this.scrollToTimer);\n }\n onScrollHandler() {\n this.checkNavStatus();\n if (!this.isPressed && !this.isAnimating && !this.snapDisabled) {\n this.isScrolling = true;\n clearTimeout(this.scrollTimer);\n this.scrollTimer = setTimeout(() => {\n this.isScrolling = false;\n this.locateCurrentIndex(true);\n }, 500);\n }\n else {\n this.locateCurrentIndex();\n }\n }\n onMouseUpHandler(event) {\n if (this.isPressed) {\n this.isPressed = false;\n this._pointerEvents = 'auto';\n this._setIsDragging(false);\n if (!this.snapDisabled) {\n this.locateCurrentIndex(true);\n }\n else {\n this.locateCurrentIndex();\n }\n this._stopGlobalListening();\n }\n }\n /*\n * Nav button\n */\n moveLeft() {\n if ((this.currIndex !== 0 || this.snapDisabled)) {\n this.currIndex--;\n clearTimeout(this.scrollToTimer);\n this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);\n }\n }\n moveRight() {\n const container = this.wrapper || this.parentNode;\n const containerWidth = container ? container.clientWidth : 0;\n if (!this.isScrollReachesRightEnd() && this.currIndex < this.maximumIndex(containerWidth, this._children.toArray())) {\n this.currIndex++;\n clearTimeout(this.scrollToTimer);\n this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);\n }\n }\n moveTo(index) {\n const container = this.wrapper || this.parentNode;\n const containerWidth = container ? container.clientWidth : 0;\n if (index >= 0 &&\n index !== this.currIndex &&\n this.currIndex <= this.maximumIndex(containerWidth, this._children.toArray())) {\n this.currIndex = Math.min(index, this.maximumIndex(containerWidth, this._children.toArray()));\n clearTimeout(this.scrollToTimer);\n this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);\n }\n }\n checkNavStatus() {\n setTimeout(() => {\n const onlyOneItem = Boolean(this._children.length <= 1);\n const containerIsLargerThanContent = Boolean(this._contentRef.nativeElement.scrollWidth <=\n this._contentRef.nativeElement.clientWidth);\n if (onlyOneItem || containerIsLargerThanContent) {\n // only one element\n this.reachesLeftBound.emit(true);\n this.reachesRightBound.emit(true);\n }\n else if (this.isScrollReachesRightEnd()) {\n // reached right end\n this.reachesLeftBound.emit(false);\n this.reachesRightBound.emit(true);\n }\n else if (this._contentRef.nativeElement.scrollLeft === 0 &&\n this._contentRef.nativeElement.scrollWidth > this._contentRef.nativeElement.clientWidth) {\n // reached left end\n this.reachesLeftBound.emit(true);\n this.reachesRightBound.emit(false);\n }\n else {\n // in the middle\n this.reachesLeftBound.emit(false);\n this.reachesRightBound.emit(false);\n }\n }, 0);\n }\n onWheel(event) {\n if (this._xWheelEnabled) {\n event.preventDefault();\n if (this._snapDisabled) {\n this._contentRef.nativeElement.scrollBy(event.deltaY, 0);\n }\n else {\n if (event.deltaY < 0) {\n this.moveLeft();\n }\n else if (event.deltaY > 0) {\n this.moveRight();\n }\n }\n }\n }\n onWindowResize() {\n this.refreshWrapperDimensions();\n this.checkNavStatus();\n }\n _setIsDragging(value) {\n if (this._isDragging === value) {\n return;\n }\n this._isDragging = value;\n value ? this.dragStart.emit() : this.dragEnd.emit();\n }\n _startGlobalListening(isTouchEvent) {\n if (!this._onMouseMoveListener) {\n const eventName = isTouchEvent ? 'touchmove' : 'mousemove';\n this._onMouseMoveListener = this._renderer.listen('document', eventName, this.onMouseMoveHandler.bind(this));\n }\n if (!this._onMouseUpListener) {\n const eventName = isTouchEvent ? 'touchend' : 'mouseup';\n this._onMouseUpListener = this._renderer.listen('document', eventName, this.onMouseUpHandler.bind(this));\n }\n }\n _stopGlobalListening() {\n if (this._onMouseMoveListener) {\n this._onMouseMoveListener = this._onMouseMoveListener();\n }\n if (this._onMouseUpListener) {\n this._onMouseUpListener = this._onMouseUpListener();\n }\n }\n disableScroll(axis) {\n this._renderer.setStyle(this._contentRef.nativeElement, `overflow-${axis}`, 'hidden');\n }\n enableScroll(axis) {\n this._renderer.setStyle(this._contentRef.nativeElement, `overflow-${axis}`, 'auto');\n }\n hideScrollbar() {\n if (this._contentRef.nativeElement.style.display !== 'none' && !this.wrapper) {\n this.parentNode = this._contentRef.nativeElement.parentNode;\n // create container element\n this.wrapper = this._renderer.createElement('div');\n this._renderer.setAttribute(this.wrapper, 'class', 'drag-scroll-wrapper');\n this._renderer.addClass(this.wrapper, 'drag-scroll-container');\n this.refreshWrapperDimensions();\n this._renderer.setStyle(this.wrapper, 'overflow', 'hidden');\n this._renderer.setStyle(this._contentRef.nativeElement, 'width', `calc(100% + ${this.scrollbarWidth})`);\n this._renderer.setStyle(this._contentRef.nativeElement, 'height', `calc(100% + ${this.scrollbarWidth})`);\n // Append container element to component element.\n this._renderer.appendChild(this._elementRef.nativeElement, this.wrapper);\n // Append content element to container element.\n this._renderer.appendChild(this.wrapper, this._contentRef.nativeElement);\n this.adjustMarginToLastChild();\n }\n }\n showScrollbar() {\n if (this.wrapper) {\n this._renderer.setStyle(this._contentRef.nativeElement, 'width', '100%');\n this._renderer.setStyle(this._contentRef.nativeElement, 'height', this.wrapper.style.height);\n if (this.parentNode !== null) {\n this.parentNode.removeChild(this.wrapper);\n this.parentNode.appendChild(this._contentRef.nativeElement);\n }\n this.wrapper = null;\n this.adjustMarginToLastChild();\n }\n }\n checkScrollbar() {\n if (this._contentRef.nativeElement.scrollWidth <= this._contentRef.nativeElement.clientWidth) {\n this._renderer.setStyle(this._contentRef.nativeElement, 'height', '100%');\n }\n else {\n this._renderer.setStyle(this._contentRef.nativeElement, 'height', `calc(100% + ${this.scrollbarWidth})`);\n }\n if (this._contentRef.nativeElement.scrollHeight <= this._contentRef.nativeElement.clientHeight) {\n this._renderer.setStyle(this._contentRef.nativeElement, 'width', '100%');\n }\n else {\n this._renderer.setStyle(this._contentRef.nativeElement, 'width', `calc(100% + ${this.scrollbarWidth})`);\n }\n }\n setScrollBar() {\n if (this.scrollbarHidden) {\n this.hideScrollbar();\n }\n else {\n this.showScrollbar();\n }\n }\n getScrollbarWidth() {\n /**\n * Browser Scrollbar Widths (2016)\n * OSX (Chrome, Safari, Firefox) - 15px\n * Windows XP (IE7, Chrome, Firefox) - 17px\n * Windows 7 (IE10, IE11, Chrome, Firefox) - 17px\n * Windows 8.1 (IE11, Chrome, Firefox) - 17px\n * Windows 10 (IE11, Chrome, Firefox) - 17px\n * Windows 10 (Edge 12/13) - 12px\n */\n const outer = this._renderer.createElement('div');\n this._renderer.setStyle(outer, 'visibility', 'hidden');\n this._renderer.setStyle(outer, 'width', '100px');\n this._renderer.setStyle(outer, 'msOverflowStyle', 'scrollbar'); // needed for WinJS apps\n // document.body.appendChild(outer);\n this._renderer.appendChild(this._document.body, outer);\n // this._renderer.appendChild(this._renderer.selectRootElement('body'), outer);\n const widthNoScroll = outer.offsetWidth;\n // force scrollbars\n this._renderer.setStyle(outer, 'overflow', 'scroll');\n // add innerdiv\n const inner = this._renderer.createElement('div');\n this._renderer.setStyle(inner, 'width', '100%');\n this._renderer.appendChild(outer, inner);\n const widthWithScroll = inner.offsetWidth;\n // remove divs\n this._renderer.removeChild(this._document.body, outer);\n /**\n * Scrollbar width will be 0 on Mac OS with the\n * default \"Only show scrollbars when scrolling\" setting (Yosemite and up).\n * setting default width to 20;\n */\n return widthNoScroll - widthWithScroll || 20;\n }\n refreshWrapperDimensions() {\n if (this.wrapper) {\n this._renderer.setStyle(this.wrapper, 'width', '100%');\n if (this._elementRef.nativeElement.style.height > 0 || this._elementRef.nativeElement.offsetHeight > 0) {\n this._renderer.setStyle(this.wrapper, 'height', this._elementRef.nativeElement.style.height\n || this._elementRef.nativeElement.offsetHeight + 'px');\n }\n else {\n this._renderer.setStyle(this.wrapper, 'height', '100%');\n }\n }\n }\n /*\n * The below solution is heavily inspired from\n * https://gist.github.com/andjosh/6764939\n */\n scrollTo(element, to, duration) {\n const self = this;\n self.isAnimating = true;\n const start = element.scrollLeft, change = to - start - this.snapOffset, increment = 20;\n let currentTime = 0;\n // t = current time\n // b = start value\n // c = change in value\n // d = duration\n const easeInOutQuad = function (t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t + b;\n }\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n };\n const animateScroll = function () {\n currentTime += increment;\n element.scrollLeft = easeInOutQuad(currentTime, start, change, duration);\n if (currentTime < duration) {\n self.scrollToTimer = setTimeout(animateScroll, increment);\n }\n else {\n // run one more frame to make sure the animation is fully finished\n setTimeout(() => {\n self.isAnimating = false;\n self.snapAnimationFinished.emit(self.currIndex);\n }, increment);\n }\n };\n animateScroll();\n }\n locateCurrentIndex(snap) {\n this.currentChildWidth((currentChildWidth, nextChildrenWidth, childrenWidth, idx, stop) => {\n if ((this._contentRef.nativeElement.scrollLeft >= childrenWidth &&\n this._contentRef.nativeElement.scrollLeft <= nextChildrenWidth)) {\n if (nextChildrenWidth - this._contentRef.nativeElement.scrollLeft > currentChildWidth / 2 && !this.isScrollReachesRightEnd()) {\n // roll back scrolling\n if (!this.isAnimating) {\n this.currIndex = idx;\n }\n if (snap) {\n this.scrollTo(this._contentRef.nativeElement, childrenWidth, this.snapDuration);\n }\n }\n else if (this._contentRef.nativeElement.scrollLeft !== 0) {\n // forward scrolling\n if (!this.isAnimating) {\n this.currIndex = idx + 1;\n }\n if (snap) {\n this.scrollTo(this._contentRef.nativeElement, childrenWidth + currentChildWidth, this.snapDuration);\n }\n }\n stop();\n }\n else if ((idx + 1) === (this._children.length - 1)) {\n // reaches last index\n if (!this.isAnimating) {\n this.currIndex = idx + 1;\n }\n stop();\n }\n });\n }\n currentChildWidth(cb) {\n let childrenWidth = 0;\n let shouldBreak = false;\n const breakFunc = function () {\n shouldBreak = true;\n };\n const childrenArr = this._children.toArray();\n for (let i = 0; i < childrenArr.length; i++) {\n if (i === childrenArr.length - 1) {\n break;\n }\n if (shouldBreak) {\n break;\n }\n const nextChildrenWidth = childrenWidth + childrenArr[i + 1]._elementRef.nativeElement.clientWidth;\n const currentClildWidth = childrenArr[i]._elementRef.nativeElement.clientWidth;\n cb(currentClildWidth, nextChildrenWidth, childrenWidth, i, breakFunc);\n childrenWidth += currentClildWidth;\n }\n }\n toChildrenLocation() {\n let to = 0;\n const childrenArr = this._children.toArray();\n for (let i = 0; i < this.currIndex; i++) {\n to += childrenArr[i]._elementRef.nativeElement.clientWidth;\n }\n return to;\n }\n locateDragScrollItem(element) {\n let item = null;\n const childrenArr = this._children.toArray();\n for (let i = 0; i < childrenArr.length; i++) {\n if (element === childrenArr[i]._elementRef.nativeElement) {\n item = childrenArr[i];\n }\n }\n return item;\n }\n markElDimension() {\n if (this.wrapper) {\n this.elWidth = this.wrapper.style.width;\n this.elHeight = this.wrapper.style.height;\n }\n else {\n this.elWidth = this._elementRef.nativeElement.style.width || (this._elementRef.nativeElement.offsetWidth + 'px');\n this.elHeight = this._elementRef.nativeElement.style.height || (this._elementRef.nativeElement.offsetHeight + 'px');\n }\n const container = this.wrapper || this.parentNode;\n const containerWidth = container ? container.clientWidth : 0;\n if (this._children.length > 1) {\n this.indexBound = this.maximumIndex(containerWidth, this._children.toArray());\n }\n }\n maximumIndex(containerWidth, childrenElements) {\n let count = 0;\n let childrenWidth = 0;\n for (let i = 0; i <= childrenElements.length; i++) {\n // last N element\n const dragScrollItemDirective = childrenElements[childrenElements.length - 1 - i];\n if (!dragScrollItemDirective) {\n break;\n }\n else {\n const nativeElement = dragScrollItemDirective._elementRef.nativeElement;\n let itemWidth = nativeElement.clientWidth;\n if (itemWidth === 0 && nativeElement.firstElementChild) {\n itemWidth = dragScrollItemDirective._elementRef.nativeElement.firstElementChild.clientWidth;\n }\n childrenWidth += itemWidth;\n if (childrenWidth < containerWidth) {\n count++;\n }\n else {\n break;\n }\n }\n }\n return childrenElements.length - count;\n }\n isScrollReachesRightEnd() {\n const scrollLeftPos = this._contentRef.nativeElement.scrollLeft + this._contentRef.nativeElement.offsetWidth;\n return scrollLeftPos >= this._contentRef.nativeElement.scrollWidth;\n }\n /**\n * adds a margin right style to the last child element which will resolve the issue\n * of last item gets cutoff.\n */\n adjustMarginToLastChild() {\n if (this._children && this._children.length > 0 && this.hideScrollbar) {\n const childrenArr = this._children.toArray();\n const lastItem = childrenArr[childrenArr.length - 1]._elementRef.nativeElement;\n if (this.wrapper && childrenArr.length > 1) {\n this._renderer.setStyle(lastItem, 'margin-right', this.scrollbarWidth);\n }\n else {\n this._renderer.setStyle(lastItem, 'margin-right', 0);\n }\n }\n }\n}\nDragScrollComponent.ɵfac = function DragScrollComponent_Factory(t) { return new (t || DragScrollComponent)(ɵngcc0.ɵɵdirectiveInject(ElementRef), ɵngcc0.ɵɵdirectiveInject(Renderer2), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\nDragScrollComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DragScrollComponent, selectors: [[\"drag-scroll\"]], contentQueries: function DragScrollComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DragScrollItemDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._children = _t);\n } }, viewQuery: function DragScrollComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._contentRef = _t.first);\n } }, hostVars: 2, hostBindings: function DragScrollComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"wheel\", function DragScrollComponent_wheel_HostBindingHandler($event) { return ctx.onWheel($event); })(\"resize\", function DragScrollComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); }, false, ɵngcc0.ɵɵresolveWindow);\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"pointer-events\", ctx._pointerEvents);\n } }, inputs: { scrollbarHidden: [\"scrollbar-hidden\", \"scrollbarHidden\"], disabled: [\"drag-scroll-disabled\", \"disabled\"], xDisabled: [\"drag-scroll-x-disabled\", \"xDisabled\"], yDisabled: [\"drag-scroll-y-disabled\", \"yDisabled\"], xWheelEnabled: [\"scroll-x-wheel-enabled\", \"xWheelEnabled\"], dragDisabled: [\"drag-disabled\", \"dragDisabled\"], snapDisabled: [\"snap-disabled\", \"snapDisabled\"], snapOffset: [\"snap-offset\", \"snapOffset\"], snapDuration: [\"snap-duration\", \"snapDuration\"] }, outputs: { dsInitialized: \"dsInitialized\", indexChanged: \"indexChanged\", reachesLeftBound: \"reachesLeftBound\", reachesRightBound: \"reachesRightBound\", snapAnimationFinished: \"snapAnimationFinished\", dragStart: \"dragStart\", dragEnd: \"dragEnd\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1, decls: 3, vars: 0, consts: [[1, \"drag-scroll-content\"], [\"contentRef\", \"\"]], template: function DragScrollComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n } }, styles: [\"[_nghost-%COMP%] {\\n overflow: hidden;\\n display: block;\\n }\\n .drag-scroll-content[_ngcontent-%COMP%] {\\n height: 100%;\\n overflow: auto;\\n white-space: nowrap;\\n }\"] });\nDragScrollComponent.ctorParameters = () => [\n { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },\n { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n];\nDragScrollComponent.propDecorators = {\n _contentRef: [{ type: ViewChild, args: ['contentRef', { static: true },] }],\n _children: [{ type: ContentChildren, args: [DragScrollItemDirective, { descendants: true },] }],\n _pointerEvents: [{ type: HostBinding, args: ['style.pointer-events',] }],\n dsInitialized: [{ type: Output }],\n indexChanged: [{ type: Output }],\n reachesLeftBound: [{ type: Output }],\n reachesRightBound: [{ type: Output }],\n snapAnimationFinished: [{ type: Output }],\n dragStart: [{ type: Output }],\n dragEnd: [{ type: Output }],\n scrollbarHidden: [{ type: Input, args: ['scrollbar-hidden',] }],\n disabled: [{ type: Input, args: ['drag-scroll-disabled',] }],\n xDisabled: [{ type: Input, args: ['drag-scroll-x-disabled',] }],\n yDisabled: [{ type: Input, args: ['drag-scroll-y-disabled',] }],\n xWheelEnabled: [{ type: Input, args: ['scroll-x-wheel-enabled',] }],\n dragDisabled: [{ type: Input, args: ['drag-disabled',] }],\n snapDisabled: [{ type: Input, args: ['snap-disabled',] }],\n snapOffset: [{ type: Input, args: ['snap-offset',] }],\n snapDuration: [{ type: Input, args: ['snap-duration',] }],\n onWheel: [{ type: HostListener, args: ['wheel', ['$event'],] }],\n onWindowResize: [{ type: HostListener, args: ['window:resize',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragScrollComponent, [{\n type: Component,\n args: [{\n selector: 'drag-scroll',\n template: `\n
\n \n
\n `,\n styles: [`\n :host {\n overflow: hidden;\n display: block;\n }\n .drag-scroll-content {\n height: 100%;\n overflow: auto;\n white-space: nowrap;\n }\n `]\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef, decorators: [{\n type: Inject,\n args: [ElementRef]\n }] }, { type: ɵngcc0.Renderer2, decorators: [{\n type: Inject,\n args: [Renderer2]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, { _pointerEvents: [{\n type: HostBinding,\n args: ['style.pointer-events']\n }], dsInitialized: [{\n type: Output\n }], indexChanged: [{\n type: Output\n }], reachesLeftBound: [{\n type: Output\n }], reachesRightBound: [{\n type: Output\n }], snapAnimationFinished: [{\n type: Output\n }], dragStart: [{\n type: Output\n }], dragEnd: [{\n type: Output\n }], scrollbarHidden: [{\n type: Input,\n args: ['scrollbar-hidden']\n }], disabled: [{\n type: Input,\n args: ['drag-scroll-disabled']\n }], xDisabled: [{\n type: Input,\n args: ['drag-scroll-x-disabled']\n }], yDisabled: [{\n type: Input,\n args: ['drag-scroll-y-disabled']\n }], xWheelEnabled: [{\n type: Input,\n args: ['scroll-x-wheel-enabled']\n }], dragDisabled: [{\n type: Input,\n args: ['drag-disabled']\n }], snapDisabled: [{\n type: Input,\n args: ['snap-disabled']\n }], snapOffset: [{\n type: Input,\n args: ['snap-offset']\n }], snapDuration: [{\n type: Input,\n args: ['snap-duration']\n }], onWheel: [{\n type: HostListener,\n args: ['wheel', ['$event']]\n }], onWindowResize: [{\n type: HostListener,\n args: ['window:resize']\n }], _contentRef: [{\n type: ViewChild,\n args: ['contentRef', { static: true }]\n }], _children: [{\n type: ContentChildren,\n args: [DragScrollItemDirective, { descendants: true }]\n }] }); })();\n\nclass DragScrollModule {\n}\nDragScrollModule.ɵfac = function DragScrollModule_Factory(t) { return new (t || DragScrollModule)(); };\nDragScrollModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DragScrollModule });\nDragScrollModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragScrollModule, [{\n type: NgModule,\n args: [{\n exports: [\n DragScrollComponent,\n DragScrollItemDirective\n ],\n declarations: [\n DragScrollComponent,\n DragScrollItemDirective\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DragScrollModule, { declarations: [DragScrollComponent, DragScrollItemDirective], exports: [DragScrollComponent, DragScrollItemDirective] }); })();\n\n/*\n * Public API Surface of ngx-drag-scroll\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DragScrollComponent, DragScrollItemDirective, DragScrollModule };\n\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subject_1 = require(\"./Subject\");\nvar ObjectUnsubscribedError_1 = require(\"./util/ObjectUnsubscribedError\");\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject_1.Subject));\nexports.BehaviorSubject = BehaviorSubject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar canReportError_1 = require(\"./util/canReportError\");\nvar toSubscriber_1 = require(\"./util/toSubscriber\");\nvar observable_1 = require(\"./symbol/observable\");\nvar pipe_1 = require(\"./util/pipe\");\nvar config_1 = require(\"./config\");\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError_1.canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipe_1.pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config_1.config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar config_1 = require(\"./config\");\nvar hostReportError_1 = require(\"./util/hostReportError\");\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n },\n complete: function () { }\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Observable_1 = require(\"./Observable\");\nvar Subscriber_1 = require(\"./Subscriber\");\nvar Subscription_1 = require(\"./Subscription\");\nvar ObjectUnsubscribedError_1 = require(\"./util/ObjectUnsubscribedError\");\nvar SubjectSubscription_1 = require(\"./SubjectSubscription\");\nvar rxSubscriber_1 = require(\"../internal/symbol/rxSubscriber\");\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber_1.Subscriber));\nexports.SubjectSubscriber = SubjectSubscriber;\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription_1.Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription_1.Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable_1.Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable_1.Observable));\nexports.Subject = Subject;\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription_1.Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexports.AnonymousSubject = AnonymousSubject;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscription_1 = require(\"./Subscription\");\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription_1.Subscription));\nexports.SubjectSubscription = SubjectSubscription;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isFunction_1 = require(\"./util/isFunction\");\nvar Observer_1 = require(\"./Observer\");\nvar Subscription_1 = require(\"./Subscription\");\nvar rxSubscriber_1 = require(\"../internal/symbol/rxSubscriber\");\nvar config_1 = require(\"./config\");\nvar hostReportError_1 = require(\"./util/hostReportError\");\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n if (isFunction_1.isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config_1.config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError_1.hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError_1.hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexports.SafeSubscriber = SafeSubscriber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isArray_1 = require(\"./util/isArray\");\nvar isObject_1 = require(\"./util/isObject\");\nvar isFunction_1 = require(\"./util/isFunction\");\nvar UnsubscriptionError_1 = require(\"./util/UnsubscriptionError\");\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction_1.isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexports.config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nexports.$$rxSubscriber = exports.rxSubscriber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexports.ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexports.UnsubscriptionError = UnsubscriptionErrorImpl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nfunction canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber_1.Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\nexports.canReportError = canReportError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\nexports.hostReportError = hostReportError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction identity(x) {\n return x;\n}\nexports.identity = identity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isObject(x) {\n return x !== null && typeof x === 'object';\n}\nexports.isObject = isObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar identity_1 = require(\"./identity\");\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexports.pipe = pipe;\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity_1.identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\nexports.pipeFromArray = pipeFromArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nvar rxSubscriber_1 = require(\"../symbol/rxSubscriber\");\nvar Observer_1 = require(\"../Observer\");\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n","export interface Cotizacion{\n\ttipoFinanciamiento ?: tipoFinanciamiento | null;\n\ttipoPago ?: tipoPago | null;\n\ttipoEnganche ?: number | null;\n\tplazo ?: number | string | null;\n\tcobertura ?: number | string | null;\n}\n\nexport interface Enganche{\n\tporcentaje : number | null;\n\tmonto \t: number | null;\n}\n\nexport interface Seguro{\n\tlogo_aseg?: string | null;\n\tprecio?: number | null;\n\taseguradora?: string | null;\n\tpagoRestantes?: number | null;\n\tpreciofPago?: number | null;\n\tformaPago?: string | null;\n\tarregoloPagos?: any | null;\n\tdescripcion: string | null;\n\tyear:\t number | null;\n\tmarca: string | null;\n\tmodelo: string | null;\n\tversion: string | null;\n\taplica?: boolean | null;\n}\n\nexport interface Auto{\n\tIdCatUnidad: string | null;\n\tidVehiculo: number | null;\n\tcondicion: string | null;\n\tmarca: string | null;\n\tmodelo: string | null;\n\tversion: string | null;\n\tanio: number | null;\n\tprecio: string | null;\n\ttransmision: string | null;\n\ttipo: string | null;\n\tkilometraje: number | null;\n\tPotencia: number | null;\n\tsucursal: number | null;\n\tidSucursal: number | null;\n\trendimientoCarretera: any | null\n\trendimientoCiudad: any | null\n\trendimientoMixto: any | null\n\temision: any | null\n\tesDemo: number | null;\n\tesCertificado: number | null;\n\tesClasificacion: boolean | null;\n\tidMarca: number | null;\n\tvigenciaPrecio: string | null;\n\tlabelVigencia: string | null;\n\tesCotizable: number | null;\n\timagen: any | null;\n\tficha: any | null;\n\t\n\tfulltext?: string | null;\n\tseguro?: Seguro | null | any;\n\tenganche?: number | null ;\n\teleccion?: string | null | any;\n}\n\nexport interface IOperacion{\n\tcotizacion? : Cotizacion | null;\n\tautos? : Auto[] | null ;\n\tflujo? : any | null;\n\ttoken? : Token | null;\n};\n\nexport interface Token{\n\ttoken: string | null;\n\taccess_token: string | null;\n\ttoken_type: string | null;\n\texpires_on: string | null;\n\tstatus: string | null;\n}\n\nexport enum SlidePanel {\n\tp1 = \"panel1\",\n\tp2 = \"panel2\",\n\tp3 = \"panel3\",\n\tp4 = \"panel4\",\n\tp5 = \"panel5\",\n\tp6 = \"panel6\",\n}\n\nexport enum tipoFinanciamiento {\n\tCredito = 1,\n\tArrendamiento = 2\n}\n\nexport enum tipoPago {\n\tContado = 1,\n\tFinanciado = 2\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { SlidePanel } from 'app/interfaces/interfaces';\nimport { BaseService } from 'app/services/base.service';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\n\n\n\n@Component({\n\tselector: 'app-cotizador',\n\ttemplateUrl: './cotizador.component.html',\n\tstyleUrls: ['./cotizador.component.scss'],\n})\nexport class CotizadorComponent implements OnInit {\n\tformCotizador: FormGroup;\n\n\t\n\tboards: any = [];\n\t\n\tselectAno = \t[{id: 1,name:'2021'}];\n\tselectMarca = \t[{id: 1,name:'Buick'}];\n\tselectModelo = \t[{id: 1,name:'Encore'}];\n\tselectVersion = \t[{id: 1,name:'GXX 2.0 Aut'}];\n\n\tpublic panel = SlidePanel;\n\tVisible = 0;\n\n\tonSlide: BehaviorSubject;\n\n\tquitarSeguro = false;\n\n\tflujoPaso = [];\n\n\n\n\n\t// @ViewChild(\"vf\", {read:ViewContainerRef}) vf:ViewContainerRef;\n\t\n\t// // ------------\n\t// @ViewChildren('comp', { read: ViewContainerRef })\n\t// public dynComponents: QueryList;\n\t\n\t// dataComponente = DataComponente.listaComponente;\n\t// listaComponente = [];\n\t\n\t\n\tconstructor(\n\t\tpublic baseService: BaseService\n\t) { \n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\t\tlet idx = 0;\n\t\tfor (let index = 0; index < flujo.length; index++) {\n\t\t\tconst element = flujo[index];\n\t\t\tif (element?.checked ?? false){\n\t\t\t\tidx = index;\n\t\t\t}\n\t\t}\n\n\t\tthis.onSlide = new BehaviorSubject(idx);\n\t}\n\n\t// tabChanged = (tabChangeEvent: MatTabChangeEvent): void => {\n\t// \t// console.log('tabChangeEvent => ', tabChangeEvent);\n\t// \tconsole.log('index => ', tabChangeEvent.index);\n\t// }\n\n\tngOnInit() {\n\t\tthis.onSlide\n\t\t.subscribe((res) => {\n\t\t\tthis.Visible = res;\n\n\t\t\tlet flujo = this.baseService.getOperacionFlujo();\n\t\t\tlet autos = this.baseService.getOperacionAutos();\n\n\t\t\tflujo[res].checked = true; \n\n\t\t\tthis.baseService.postOperacionFlujo(flujo);\n\n\t\t\tthis.flujoPaso = flujo;\n\n\t\t\tlet isSeguro = autos.findIndex(f => f?.seguro?.aplica == true);\n\n\t\t\t// debugger;\n\n\t\t\tthis.quitarSeguro = (isSeguro >= 0)? false : true;\n\n\n\n\t\t});\n\n\t\t// this.onSlide.next(0);\n\n\t\tthis.boards = [\n\t\t\t{\n\t\t\t\ttitle: 'Buick Encore GX',\n\t\t\t\tprice: 1000000,\n\t\t\t\tdescription: 'descripcion',\n\t\t\t\ticon: 'local_shipping',\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: 'Buick Encore GX',\n\t\t\t\tprice: 1000000,\n\t\t\t\tdescription: 'descripcion',\n\t\t\t\ticon: 'local_shipping',\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: 'Buick Encore GX',\n\t\t\t\tprice: 1000000,\n\t\t\t\tdescription: 'descripcion',\n\t\t\t\ticon: 'local_shipping',\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t\t},\n\t\t];\n\n\t\tthis.formCotizador = new FormGroup({\n\t\t\t\n\t\t\tyear: new FormControl('',[Validators.required]), \n\t\t\tmarca: new FormControl('',[Validators.required]),\n\t\t\tmodelo: new FormControl('',[Validators.required]),\n\t\t\tversion: new FormControl('',[Validators.required]),\n\t\t\ttipoPersona: new FormControl('F')\n\t\t});\n\t}\n\n\n\n\tcheckPaso(id){\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\n\t\tif(id < this.Visible){\n\t\t\tthis.Visible = id;\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tlet check = flujo[id].checked;\n\n\t\tif(id > this.Visible && check){\n\t\t\tthis.Visible = id;\n\t\t\treturn;\n\t\t}\n\n\t\t\n\t}\n\t\n\tcheckColor(id){\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\t\tlet check = flujo[id].checked;\n\t\treturn check;\n\t}\n\n}\n\n","\n\n\n
\n\t
\n\n\t\t
\n\t\t\t\n\t\t\t
\n\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t
\n\n\t\t\t
\n\t\t
\n\t
\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { MostrarSpinner, OcultarSpinner } from 'app/store/actions/utils.action';\nimport { Router } from '@angular/router';\nimport { BaseService } from 'app/services/base.service';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { CoalService } from 'app/services/coal.service';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Store } from '@ngrx/store';\nimport { AppState } from 'app/store/app.states';\nenum tipoFinanciamiento {\n\tCredito = 1,\n\tArrendamiento = 2\n}\n\n@Component({\n\tselector: 'app-PasoCinco',\n\ttemplateUrl: './PasoCinco.component.html',\n\tstyleUrls: ['./PasoCinco.component.scss']\n})\nexport class PasoCincoComponent implements OnInit {\n\t@Input() onSlide: BehaviorSubject;\n\tseguro: BehaviorSubject;\n\n\n\tboards = [];\n\n\ttipoFinan: any = tipoFinanciamiento.Arrendamiento;\n\tmaxUnit: number = 4;\n\n\tselectCobertura = ['AMPLIA','LIMITADA','RC'];\n\tselectTipoPago = [{id:1 , name:'Contado' },{ id:2 , name:'Financiado' }];\n\t\n\n\tformCotizador: FormGroup;\n\tdataCotizador: any;\n\tope = [];\n\toperacion:any;\n\n\tiscredito = false;\n\tcpvalue: string;\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate coalService: CoalService,\n\t\tprivate baseService: BaseService,\n\t\tprivate snackBar: MatSnackBar,\n\t\tprivate readonly store: Store\n\n\t) { \n\t\tthis.seguro = new BehaviorSubject({});\n\t}\n\n\tngOnInit() {\n\t\tthis.formCotizador = new FormGroup({\n\t\t\t\t\tcodigo: new FormControl('', [Validators.required]),\n\t\t\t\t\ttipoPersona: new FormControl('F'),\n\t\t\t\t\tcobertura: new FormControl('AMPLIA',[Validators.required]),\n\t\t\t\t\ttipoPago: new FormControl(1,[Validators.required]),\n\t\t\t\t\tpago: new FormControl('A'),\n\t\t\t\t\ttype: new FormControl('obtener'),\n\t\t\n\t\t\t\t\t\n\t\t\t});\n\n\t\tthis.formCotizador.valueChanges.subscribe((res)=>{ this.dataCotizador=res; })\n\t\tthis.formCotizador.get('cobertura').valueChanges.subscribe((res)=>{\n\t\t\tthis.operacion = this.baseService.getOperacionData();\n\t\t\tlet cotizacion = this.operacion.cotizacion;\n\t\t\tthis.operacion.cotizacion = {...cotizacion,cobertura: res};\n\n\t\t\tthis.baseService.postOperacionData(this.operacion);\n\t\t});\n\t\tthis.formCotizador.get('tipoPago').valueChanges.subscribe((res)=>{\n\t\t\tthis.operacion = this.baseService.getOperacionData();\n\t\t\tlet cotizacion = this.operacion.cotizacion;\n\t\t\tthis.operacion.cotizacion = {...cotizacion,tipoPago: res};\n\n\t\t\tthis.baseService.postOperacionData(this.operacion);\n\t\t});\n\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\t\t\n\t\tif(flujo[3].view == 1){\n\t\t\tthis.operacion = this.baseService.getOperacionData();\n\t\t\tlet cotizacion = this.operacion?.cotizacion ?? {tipoFinanciamiento:1,tipoPago:1,cobertura:\"AMPLIA\",postal: \"03740\"};\n\n\t\t\tthis.formCotizador.get('tipoPago').setValue(cotizacion.tipoPago);\n\t\t\tthis.formCotizador.get('cobertura').setValue(cotizacion.cobertura);\n\t\t\tthis.formCotizador.get('codigo').setValue(cotizacion.postal);\n\n\t\t\tif(cotizacion.tipoFinanciamiento == 1){\n\t\t\t\tthis.formCotizador.get('tipoPago').disable({onlySelf: true});\n\t\t\t\tthis.iscredito = true;\n\t\t\t}else{\n\t\t\t\tthis.formCotizador.get('tipoPago').enable({onlySelf: true});\n\t\t\t\tthis.iscredito = false;\n\t\t\t\tthis.formCotizador.controls['tipoPago'].setValue(2);\n\t\t\t}\n\n\t\t\tlet autos = this.baseService.getOperacionAutos();\n\n\t\t\tlet position = 0 ;\n\t\t\tthis.boards = autos.map(f => {\n\t\t\t\tlet i = position;\n\t\t\t\tposition = position + 1;\n\t\t\t\treturn {\n\t\t\t\t\tposition: i ,\n\t\t\t\t\tidVehiculo: f.idVehiculo,\n\t\t\t\t\ttitle: `${f.marca} ${f.modelo} ${f.version} ${f.anio}`,\n\t\t\t\t\tprice: parseFloat(f.precio),\n\t\t\t\t\tdescription: '',\n\t\t\t\t\ticon: '',\n\t\t\t\t\timg: f.imagen[0].UrlLocal,\n\t\t\t\t\tyear: f.seguro.year,\n\t\t\t\t\tmarca: f.seguro.marca,\n\t\t\t\t\tmodelo: f.seguro.modelo,\n\t\t\t\t\tversion: f.seguro.version,\n\t\t\t\t\taplica: f.seguro.aplica\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t\n\t\t\tsetTimeout(() => {\n\t\t\t\tlet data = this.formCotizador.getRawValue()\n\t\t\t\tthis.seguro.next(data);\n\t\t\t},100)\n\t\t}\n\n\t\t\n\t\tthis.onSlide\n\t\t.subscribe((res) => {\n\t\t\tlet flujo = this.baseService.getOperacionFlujo();\n\n\n\t\t\tif(flujo[2].view == 1 && flujo[3].view == 0){\n\t\t\t\tthis.formCotizador.get('codigo').setValue('');\n\n\t\t\t\tthis.operacion = this.baseService.getOperacionData();\n\t\t\t\t\n\t\t\t\tlet autos = this.baseService.getOperacionAutos();\n\n\t\t\t\tthis.store.dispatch(MostrarSpinner());\n\n\t\t\t\tsetTimeout(() => {\n\n\t\t\t\t\tthis.formCotizador.get('tipoPago').setValue(1);\n\t\t\t\t\tif(this.operacion?.cotizacion?.tipoFinanciamiento == 1){\n\t\t\t\t\t\tthis.formCotizador.get('tipoPago').disable({onlySelf: true});\n\t\t\t\t\t\tthis.formCotizador.get('tipoPago').setValue(1);\n\t\t\t\t\t\tthis.iscredito = true;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tthis.formCotizador.get('tipoPago').enable({onlySelf: true});\n\t\t\t\t\t\tthis.formCotizador.get('tipoPago').setValue(2);\n\t\t\t\t\t\tthis.iscredito = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.formCotizador.get('cobertura').setValue('AMPLIA');\n\n\n\n\t\t\t\t\tlet position = 0 ;\n\t\t\t\t\tthis.boards = autos.map(f => {\n\t\t\t\t\t\tlet i = position;\n\t\t\t\t\t\tposition = position + 1;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tposition: i ,\n\t\t\t\t\t\t\tidVehiculo: f.idVehiculo,\n\t\t\t\t\t\t\ttitle: `${f.marca} ${f.modelo} ${f.version} ${f.anio}`,\n\t\t\t\t\t\t\tprice: parseFloat(f.precio),\n\t\t\t\t\t\t\tdescription: '',\n\t\t\t\t\t\t\ticon: '',\n\t\t\t\t\t\t\timg: f.imagen[0].UrlLocal,\n\t\t\t\t\t\t\tyear: f.seguro.year,\n\t\t\t\t\t\t\tmarca: f.seguro.marca,\n\t\t\t\t\t\t\tmodelo: f.seguro.modelo,\n\t\t\t\t\t\t\tversion: f.seguro.version,\n\t\t\t\t\t\t\taplica: f.seguro.aplica\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.actualizarCotizacion('');\n\t\t\t\t\tthis.store.dispatch(OcultarSpinner());\n\t\t\t\t}, 300);\n\t\n\t\t\t}\n\t\t});\n\n\t}\n\n\tnext() {\n\t\t// this.router.navigateByUrl(`/cotizador/cotizar`);\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\n\t\tflujo[3].view = 1;\n\n\t\tthis.baseService.postOperacionFlujo(flujo);\n\t\tthis.onSlide.next(4);\n\n\n\t}\n\n\t// actualizarTipo(event){\n\t// \tthis.formCotizador.get('type').setValue('actualizar');\n\t// }\n\t\n\tactualizarCotizacion(event){\n\t\tthis.formCotizador.get('type').setValue('actualizar');\n\n\t\tlet data = this.formCotizador.getRawValue()\n\n\t\tsetTimeout(() => {\n\t\t\tthis.seguro.next(data);\n\t\t},100)\n\n\t}\n\tactualizarPago(event){\n\t\tlet pago = (event == 1)? 'A' : 'M';\n\t\tthis.formCotizador.get('pago').setValue(pago);\n\t\t\n\t\tif(this.dataCotizador.codigo){\n\t\t\tthis.formCotizador.get('type').setValue('actualizar');\n\n\t\t\tlet data = this.formCotizador.getRawValue();\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.seguro.next(data);\n\t\t\t},100)\n\t\t}\n\n\t}\n\n\tpress(event:any){\n\t\tif( this.dataCotizador.codigo.length == 5 ){\n\t\t\tthis.onBlurCodigo(null);\n\t\t}\t\t\n\t}\n\n\tonBlurCodigo(event) {\n\t\t// console.log(event);\n\t\tthis.store.dispatch(MostrarSpinner());\n\t\tif (!this.dataCotizador?.codigo) {\n\t\t\tthis.store.dispatch(OcultarSpinner());\n\t\t\treturn;\n\t\t}\n\t\t\t\n\n\t\tthis.coalService.getServiceApiGA(`api/Insurance/EstadoMunicipio/${this.dataCotizador.codigo}`)\n\t\t\t.subscribe(\n\t\t\t\t(res: any) => {\n\t\t\t\t\tif (res.error) {\n\n\t\t\t\t\t} else if (res.excepcion) {\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet respuesta = res;\n\n\t\t\t\t\t\tif (!respuesta) {\n\t\t\t\t\t\t\tthis.store.dispatch(OcultarSpinner());\n\t\t\t\t\t\t\tthis.snackBar.open('No se encontró el código postal insertado, intente con otro.', 'Ok', { duration: 10000 });\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t// setTimeout(() => {\n\t\t\t\t\t\t// }, 6000);\n\t\t\t\t\t\tthis.operacion = this.baseService.getOperacionData();\n\t\t\t\t\t\tlet cotizacion = this.operacion.cotizacion;\n\t\t\t\t\t\tthis.operacion.cotizacion = {...cotizacion,postal: this.dataCotizador.codigo};\n\n\t\t\t\t\t\tthis.baseService.postOperacionData(this.operacion);\n\n\t\t\t\t\t\tlet data = this.formCotizador.getRawValue();\n\t\t\t\t\t\tthis.seguro.next(data);\n\t\t\t\t\t\tthis.store.dispatch(OcultarSpinner());\t\t\t\t\t\t\t\n\n\n\t\t\t\t\t}\n\t\t\t\t}, (error: any) => {\n\t\t\t\t\tlet msg = error?.error || '';\n\t\t\t\t\tif (msg) {\n\t\t\t\t\t\tthis.store.dispatch(OcultarSpinner());\n\t\t\t\t\t\tthis.snackBar.open(msg, 'Ok', { duration: 10000 });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.store.dispatch(OcultarSpinner());\n\t\t\t\t\tthis.snackBar.open('Ocurrió un problema, vuelva a intentarlo de nuevo.', 'Ok', { duration: 10000 });\n\t\t\t\t\treturn;\n\t\t\t\t\t// console.error(error);\n\t\t\t\t\t// console.log('---------------');\n\t\t\t\t}\n\t\t\t)\n\t}\n\n}\n","
\n
\n
\n

\n 4Elige el seguro de {{(boards.length > 1)? 'tus autos' : 'tu auto' }}\n \n \n

\n
\n
\n \n Selecciona una cobertura\n \n \n {{choice}}\n \n \n \n \n \n \n {{(iscredito)? 'Tipo de pago' : 'Selecciona el tipo de pago' }} \n \n \n {{choice.name}}\n \n \n \n \n \n \n \n \n Ingresa tu Código Postal\n \n \n \n\n \n
\n\n
\n
\n \n
\n
\n\n \n
\n \n \n \n \n
\n
\n \n
\n \n \n
\n \n \n \n \n \n \n
\n \n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SlidePanel } from 'app/interfaces/interfaces';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { CoalService } from 'app/services/coal.service';\nimport { BaseService } from 'app/services/base.service';\n\n@Component({\n selector: 'app-PasoCuatro',\n templateUrl: './PasoCuatro.component.html',\n styleUrls: ['./PasoCuatro.component.scss']\n})\nexport class PasoCuatroComponent implements OnInit {\n // public panel = SlidePanel;\n @Input() onSlide: BehaviorSubject;\n\n constructor(\n private coalService: CoalService,\n private baseService: BaseService,\n\n ) { }\n\n ngOnInit() {\n }\n\n\n next() {\n // let flujo = this.baseService.getOperacionFlujo();\n\n\t\t// flujo[3].view = 1;\n\n\t\t// this.baseService.postOperacionFlujo(flujo);\n this.onSlide.next(4)\n }\n\n\n click(plantipo) {\n switch (plantipo) {\n case 1:\n console.log(\"Se escogio credito\");\n this.next();\n break;\n case 2:\n console.log(\"Se escogio Arrendamiento\");\n this.next();\n break;\n default:\n console.log(\"Opcion invalida\");\n break;\n }\n }\n}\n","
\n\t
\n\t\t\n\t\t
\n\t\t\t

4¿Cómo deseas pagar tu seguro?

\n\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
Financiado
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
Contado
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { IOperacion, SlidePanel } from 'app/interfaces/interfaces';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { tipoFinanciamiento } from 'app/interfaces/interfaces';\nimport { BaseService } from 'app/services/base.service';\n\n\n@Component({\n\tselector: 'app-PasoDos',\n\ttemplateUrl: './PasoDos.component.html',\n\tstyleUrls: ['./PasoDos.component.scss']\n})\nexport class PasoDosComponent implements OnInit {\n\t// public panel = SlidePanel;\n\t@Input() onSlide: BehaviorSubject;\n\n\ttipo: tipoFinanciamiento;\n operacion: IOperacion;\n\n\tconstructor(\n private baseService: BaseService,\n\t) { }\n\n\tngOnInit() {\n this.operacion = this.baseService.getOperacionData();\n\n\t}\n\n\n\tnext() {\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\n\t\tflujo[1].view = 1;\n\n\t\tfor (let index = 0; index < flujo.length; index++) {\n\t\t\tif(index > 1){\n\t\t\t\tflujo[index].checked = false;\n\t\t\t\tflujo[index].view = 0;\n\t\t\t}\n\t\t}\n\n let cotizacion = this.operacion.cotizacion ?? {};\n\n\t\tthis.operacion.cotizacion = { ...cotizacion, tipoFinanciamiento: this.tipo };\n\n this.baseService.postOperacionData({...this.operacion, flujo: flujo});\n\t\tthis.onSlide.next(2)\n\t}\n\n\tclick(plantipo) {\n\n\t\tswitch (plantipo) {\n\t\t\tcase 1:\n\t\t\t\tconsole.log(\"Se escogio credito\");\n\t\t\t\tthis.tipo = tipoFinanciamiento.Credito;\n\t\t\t\tthis.next();\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tconsole.log(\"Se escogio Arrendamiento\");\n\t\t\t\tthis.tipo = tipoFinanciamiento.Arrendamiento;\n\t\t\t\tthis.next();\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\t// console.log(\"Se escogio Arrendamiento todo incluido\");\n\t\t\t\t// this.next();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"Opcion invalida\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n","
\n\t
\n\t\t\n\t\t
\n\t\t\t

2Cotizador de financiamiento

\n\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
Crédito
\n\t\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tLa forma más fácil para\n\t\t\t\t\t\t
estrenar un auto nuevo con\n\t\t\t\t\t\t
enganche desde el 10% y\n\t\t\t\t\t\t
plazos hasta 48 meses.\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
Arrendamiento
\n\t\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tEmpieza a disfrutar hoy, un\n\t\t\t\t\t\tvehículo nuevo con el\n\t\t\t\t\t\tesquema de arrendamiento\n\t\t\t\t\t\tmás accesible del mercado.\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
Arrendamiento Todo Incluido
\n\t\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t\t\tContáctanos y conoce los\n\t\t\t\t\t\t
beneficios de nuestro\n\t\t\t\t\t\t
esquema de arrendamiento\n\t\t\t\t\t\t
todo incluido\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\tContáctanos\n\t\t\t\t\t\t
\n\t\t\t\t\t\t55 3690 0500\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tventas@integra-arrenda.com\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t


\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-PasoSeis',\n templateUrl: './PasoSeis.component.html',\n styleUrls: ['./PasoSeis.component.scss']\n})\nexport class PasoSeisComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","

\n PasoSeis works!\n

\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SlidePanel } from 'app/interfaces/interfaces';\nimport { BaseService } from 'app/services/base.service';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\n\nenum tipoFinanciamiento {\n\tCredito = 1,\n\tArrendamiento = 2\n}\n\n@Component({\n\tselector: 'app-PasoTres',\n\ttemplateUrl: './PasoTres.component.html',\n\tstyleUrls: ['./PasoTres.component.scss']\n})\nexport class PasoTresComponent implements OnInit {\n\t// public panel = SlidePanel;\n\t@Input() onSlide: BehaviorSubject;\n\n\ttipoFinan: any = tipoFinanciamiento.Arrendamiento;\n\tmaxUnit: number = 4;\n\ttipoFinanIcon: number = 1;\n\tboards: { idVehiculo: number; title: string; price: number; description: string; icon: string; img: string; }[];\n\n\ttextos: any;\n\n\tquitarSeguro = false;\n\n\t// = {\n\t// \ttitulo: (this.tipoFinan == tipoFinanciamiento.Credito) ? 'Elige del monto del enganche' : '¿Deseas incluir una renta extraordinaria?',\n\t// \tradio: (this.tipoFinan == tipoFinanciamiento.Credito) ? 'enganche' : 'renta extraordinaria',\n\t// \tselect: (this.tipoFinan == tipoFinanciamiento.Credito) ? 'Enganche' : 'Renta extraordinaria'\n\t// }\n\n\n\t// selectAno = [{ id: 1, name: '2021' }];\n\t// selectMarca = [{ id: 1, name: 'Buick' }];\n\t// selectModelo = [{ id: 1, name: 'Encore' }];\n\t// selectVersion = [{ id: 1, name: 'GXX 2.0 Aut' }];\n\n\tconstructor(\n\t\tprivate baseService:BaseService\n\t) { }\n\n\tngOnInit() {\n\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\t\tif(flujo[2].view == 1){\n\t\t\tlet autos = this.baseService.getOperacionAutos();\n\t\t\tlet isSeguro = autos.findIndex(f => f?.seguro?.aplica == true);\n\t\n\t\t\tthis.quitarSeguro = (isSeguro >= 0)? false : true;\n\t\n\t\t\tlet operacion = this.baseService.getOperacionData();\n\t\t\tlet tipo = operacion.cotizacion.tipoFinanciamiento;\n\t\t\t// console.log(tipo);\n\t\t\tthis.tipoFinanIcon = tipo;\n\t\t\tconsole.log(tipo == tipoFinanciamiento.Credito);\n\t\n\t\t\tthis.textos = {\n\t\t\t\ttitulo: (tipo == tipoFinanciamiento.Credito)? 'Elige el porcentaje del enganche' : '¿Deseas incluir una renta extraordinaria?',\n\t\t\t\tradio: (tipo == tipoFinanciamiento.Credito)? 'enganche' : 'renta extraordinaria',\n\t\t\t\tselect: (tipo == tipoFinanciamiento.Credito)? 'Enganche' : 'Renta extraordinaria'\n\t\t\t}\n\t\t\t\n\t\n\t\t\tlet position = 0 ;\n\t\t\tthis.boards = autos.map(f => {\n\t\t\t\tlet i = position;\n\t\t\t\tposition = position + 1;\n\t\t\t\treturn {\n\t\t\t\t\tposition: i ,\n\t\t\t\t\tidVehiculo: f.idVehiculo,\n\t\t\t\t\ttitle: `${f.marca} ${f.modelo} ${f.version} ${f.anio}`,\n\t\t\t\t\tprice: f.precio,\n\t\t\t\t\teleccion: f?.eleccion ?? '',\n\t\t\t\t\tdescription: '',\n\t\t\t\t\ticon: '',\n\t\t\t\t\timg: f.imagen[0].UrlLocal\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t\tthis.onSlide\n\t\t.subscribe((res) => {\n\n\t\t\tlet autos = this.baseService.getOperacionAutos();\n\t\t\tlet isSeguro = autos.findIndex(f => f?.seguro?.aplica == true);\n\t\n\t\t\tthis.quitarSeguro = (isSeguro >= 0)? false : true;\n\n\t\t\tlet flujo = this.baseService.getOperacionFlujo();\n\n\t\t\tif(flujo[1].view == 1 && flujo[2].view == 0){\n\t\t\t\tlet autos = this.baseService.getOperacionAutos();\n\t\t\n\t\t\t\tlet operacion = this.baseService.getOperacionData();\n\t\t\t\tlet tipo = operacion.cotizacion.tipoFinanciamiento;\n\t\t\t\t// console.log(tipo);\n\t\t\t\tthis.tipoFinanIcon = tipo;\n\t\t\t\tconsole.log(tipo == tipoFinanciamiento.Credito);\n\t\t\n\t\t\t\tthis.textos = {\n\t\t\t\t\ttitulo: (tipo == tipoFinanciamiento.Credito)? 'Elige el porcentaje del enganche' : '¿Deseas incluir una renta extraordinaria?',\n\t\t\t\t\tradio: (tipo == tipoFinanciamiento.Credito)? 'enganche' : 'renta extraordinaria',\n\t\t\t\t\tselect: (tipo == tipoFinanciamiento.Credito)? 'Enganche' : 'Renta extraordinaria'\n\t\t\t\t}\n\t\t\t\t\n\t\t\n\t\t\t\tlet position = 0 ;\n\t\t\t\tthis.boards = autos.map(f => {\n\t\t\t\t\tlet i = position;\n\t\t\t\t\tposition = position + 1;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tposition: i ,\n\t\t\t\t\t\tidVehiculo: f.idVehiculo,\n\t\t\t\t\t\ttitle: `${f.marca} ${f.modelo} ${f.version} ${f.anio}`,\n\t\t\t\t\t\tprice: f.precio,\n\t\t\t\t\t\teleccion: f?.eleccion ?? '',\n\t\t\t\t\t\tdescription: '',\n\t\t\t\t\t\ticon: '',\n\t\t\t\t\t\timg: f.imagen[0].UrlLocal\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\n\t\t});\n\t\t\n\n\n\t\t// this.boards = [\n\t\t// \t{\n\t\t// \t\tidVehiculo: 1,\n\t\t// \t\ttitle: 'Buick Encore GX',\n\t\t// \t\tprice: 1000000,\n\t\t// \t\tdescription: 'descripcion',\n\t\t// \t\ticon: 'local_shipping',\n\t\t// \t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t// \t},\n\t\t// \t{\n\t\t// \t\tidVehiculo: 1,\n\t\t// \t\ttitle: 'Buick Encore GX',\n\t\t// \t\tprice: 1000000,\n\t\t// \t\tdescription: 'descripcion',\n\t\t// \t\ticon: 'local_shipping',\n\t\t// \t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t// \t},\n\t\t// \t{\n\t\t// \t\tidVehiculo: 1,\n\t\t// \t\ttitle: 'Buick Encore GX',\n\t\t// \t\tprice: 1000000,\n\t\t// \t\tdescription: 'descripcion',\n\t\t// \t\ticon: 'local_shipping',\n\t\t// \t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t// \t}\n\t\t// ];\n\t}\n\n\n\tnext() {\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\n\t\tflujo[2].view = 1;\n\t\tflujo[3].view = 0;\n\n\t\tthis.baseService.postOperacionFlujo(flujo);\n\n\t\tlet paso = (this.quitarSeguro)? 4 : 3;\n\t\tthis.onSlide.next(paso)\n\t}\n\n\n\tnumSequence(n: number): Array {\n\t\treturn Array(n);\n\t}\n\n\taddUnidad() {\n\t\tvar id = Math.floor(Math.random() * (100 - 2)) + 2;\n\t\tthis.boards.push({\n\t\t\tidVehiculo: id,\n\t\t\ttitle: 'Buick Encore GX',\n\t\t\tprice: 1000000,\n\t\t\tdescription: 'descripcion',\n\t\t\ticon: 'local_shipping',\n\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t})\n\t}\n\n\tremoveUnidad(id) {\n\t\tconsole.log(this.boards, id);\n\n\t\tlet boardsAuxiliar = []\n\t\tthis.boards.forEach((item) => {\n\t\t\tif (item.idVehiculo != id) {\n\t\t\t\tboardsAuxiliar.push(item)\n\t\t\t}\n\t\t});\n\n\t\tthis.boards = boardsAuxiliar;\n\t}\n}\n","
\n
\n
\n
\n

\n 3{{ textos?.titulo }}\n \n \n

\n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n \n \n \n
\n
\n \n
\n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SlidePanel } from 'app/interfaces/interfaces';\nimport { BaseService } from 'app/services/base.service';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\nimport { MostrarExcepcion, MostrarSpinner, OcultarSpinner } from 'app/store/actions/utils.action';\nimport { Store } from \"@ngrx/store\";\nimport { AppState } from 'app/store/app.states';\nimport { CoalService } from 'app/services/coal.service';\n\n\n@Component({\n\tselector: 'app-PasoUno',\n\ttemplateUrl: './PasoUno.component.html',\n\tstyleUrls: ['./PasoUno.component.scss']\n})\nexport class PasoUnoComponent implements OnInit {\n\t// public panel = SlidePanel;\n\t@Input() onSlide: BehaviorSubject;\n\n\tautos = []\n\tmaxUnit: number = 4;\n\tboards = [] //{ idVehiculo: number; title: string; price: number; description: string; icon: string; img: string; }[];\n\n\n\tselectAno = [{ id: 1, name: '2021' }];\n\tselectMarca = [{ id: 1, name: 'Buick' }];\n\tselectModelo = [{ id: 1, name: 'Encore' }];\n\tselectVersion = [{ id: 1, name: 'GXX 2.0 Aut' }];\n\tuser: any;\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate baseService:BaseService,\n\t\tprivate coalService: CoalService,\n\t\tprivate readonly store: Store\n\t) { }\n\n\tngOnInit() {\n\t\tthis.autos = this.baseService.getOperacionAutos();\n\t\t\n\n\t\tlet position = 0 ;\n\t\tthis.boards = this.autos.map(f => {\n\t\t\tlet i = position;\n\t\t\tposition = position + 1;\n\t\t\treturn {\n\t\t\t\tposition: i ,\n\t\t\t\tidVehiculo: f.idVehiculo,\n\t\t\t\ttitle: `${f.marca} ${f.modelo} ${f.version} ${f.anio}`,\n\t\t\t\tprice: f.precio,\n\t\t\t\tdescription: '',\n\t\t\t\ticon: '',\n\t\t\t\timg: f.imagen[0].UrlLocal\n\t\t\t}\n\t\t})\n\n\t\t// this.boards = [\n\t\t// \t{\n\t\t// \t\tidVehiculo: 1,\n\t\t// \t\ttitle: 'Buick Encore GX',\n\t\t// \t\tprice: 1000000,\n\t\t// \t\tdescription: 'descripcion',\n\t\t// \t\ticon: 'local_shipping',\n\t\t// \t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t// \t}\n\t\t// ];\n\t}\n\n\n\tnext() {\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\t\tfor (let index = 0; index < flujo.length; index++) {\n\t\t\t// if(index > 1){\n\t\t\t\tflujo[index].checked = false;\n\t\t\t\tflujo[index].view = 0;\n\t\t\t\t// }\n\t\t}\n\t\t\t\n\t\tflujo[0].view = 1;\n\t\tflujo[0].checked = true;\n\t\tlet cotizacion = this.baseService.getOperacionData();\n\t\tthis.baseService.postOperacionData({...cotizacion, flujo: flujo});\n\n\t\tthis.onSlide.next(1)\n\t}\n\n\tnumSequence(n: number): Array {\n\t\treturn Array(n);\n\t}\n\n\taddUnidad() {\n\t\tvar id = Math.floor(Math.random() * (100 - 2)) + 2;\n\t\t// this.boards.push({\n\t\t// \tidVehiculo: id,\n\t\t// \ttitle: 'Buick Encore GX',\n\t\t// \tprice: 1000000,\n\t\t// \tdescription: 'descripcion',\n\t\t// \ticon: 'local_shipping',\n\t\t// \timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_AvenirP_BuickEnclave2022AvenirG1Wtrescuartosderecha.png',\n\t\t// })\n\t}\n\n\tremoveUnidad(id,position) {\n\t\tconsole.log(this.boards, id);\n\n\t\tlet boardsAuxiliar = [] ;\n\t\tthis.boards.forEach((item) => {\n\t\t\tif (item.position != position) {\n\t\t\t\tboardsAuxiliar.push(item)\n\t\t\t}\n\t\t});\n\n\t\tthis.autos.splice(position,1);\n\t\tlet operacion = this.baseService.getOperacionData();\n\t\toperacion = {...operacion, autos: this.autos};\n\t\tthis.boards = boardsAuxiliar;\n\n\t\t// console.log(\"operacion\", operacion);\n\t\tlet flujo = this.baseService.getOperacionFlujo();\n\t\tfor (let index = 0; index < flujo.length; index++) {\n\t\t\t// if(index > 1){\n\t\t\t\tflujo[index].checked = false;\n\t\t\t\tflujo[index].view = 0;\n\t\t\t\t// }\n\t\t}\n\t\t\t\n\t\tflujo[0].view = 1;\n\t\tflujo[0].checked = true;\n\n\t\tthis.baseService.postOperacionData({...operacion,flujo: flujo});\n\n\n\t}\n\n\tbuscarOtro(){\n\t\t// busqueda/:pagina/:precioMin/:precioMax/:marca/:modelo/:anio/:transmision/:segmento/:busqueda\n\t\t// /site/busqueda/1/180000/2560000/0/0/0/0/0/0\n\t\tthis.router.navigateByUrl(`/site/busqueda/1/180000/2560000/0/0/0/0/0/0`);\n\t}\n\n\tgetVehiculo(){\n // this.store.dispatch(MostrarSpinner());\n this.coalService.postService(`cotizador/g_signature`,{}).subscribe((res: any) => {\n \n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n\n\tgetLogin(){\n // this.store.dispatch(MostrarSpinner());\n this.coalService.postService(`cotizador/k_login`,{}).subscribe((res: any) => {\n \n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n\n\tgetAccessKikoya(){\n // this.store.dispatch(MostrarSpinner());\n\n\t\tthis.user = this.baseService.getUserData();\n\t\tconsole.log(\"this.user\",this.user);\n\t\tlet param = {\n\t\t\t\"idUsuarioFront\"\t: this.user.user.idUsuario,\n\t\t\t\"financing_period\" : \"12\",\n\t\t\t\"financing_amount\" : \"250000\",\n\t\t\t\"down_payment\" : \"100000\",\n\t\t\t\"montly_payment\" : \"12500\"\n\t\t}\n\n\t\tconsole.log(\"param\", param);\n\t\t\n\n this.coalService.postService(`cotizador/k_access`, param).subscribe((res: any) => {\n\t\t\twindow.open(res.recordsets.redirect);\n \n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n\n\ttestProyectos(){\n // this.store.dispatch(MostrarSpinner());\n\n\t\tthis.user = this.baseService.getUserData();\n\t\tlet param = {\n\t\t\t\"idUsuarioFront\"\t: this.user.user.idUsuario,\n\t\t\t\"financing_period\" : \"12\",\n\t\t\t\"financing_amount\" : \"250000\",\n\t\t\t\"down_payment\" : \"100000\",\n\t\t\t\"montly_payment\" : \"12500\"\n\t\t}\n\n this.coalService.postService(`cotizador/k_proyectos`, param).subscribe((res: any) => {\n\t\t\tconsole.log( res.recordsets.redirect );\n\t\t\t\n\t\t\twindow.open(res.recordsets.redirect);\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n}\n","
\n
\n
\n

1Compara hasta cuatro autos\n

\n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n 0\">\n \n
\n \n \n Agregar otro auto\n
\n
\n
\n
\n
\n \n\n \n \n\n \n \n
\n
\n \n
\n\n","import { Component, ElementRef, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { MostrarExcepcion, MostrarSpinner, OcultarSpinner } from 'app/store/actions/utils.action';\nimport { FuseCardComponent } from '@fuse/components/card';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { CoalService } from 'app/services/coal.service';\nimport { Gallery, GalleryItem, ImageItem } from '@ngx-gallery/core';\nimport { Store } from \"@ngrx/store\";\nimport { AppState } from 'app/store/app.states';\n\n@Component({\n selector: 'app-cotizacion',\n templateUrl: './cotizacion.component.html',\n styleUrls: ['./cotizacion.component.scss']\n})\nexport class CotizacionComponent implements OnInit {\n prop: { images: { path: string; }[]; };\n unidades: { idUnidad: number; img: string; descripcion: string; anio: string; modelo: string; version: string; transmision: string; potencia: string; rendimiento: string; precio: number; }[];\n @ViewChildren(FuseCardComponent, {read: ElementRef}) private _fuseCards: QueryList;\n idVehiculo: number;\n dataUnidad: { \n IdCatUnidad: string; \n idVehiculo: number; \n condicion: string; \n marca: string; \n modelo: string; \n version: string; \n anio: number; \n precio: string; \n transmision: string; \n tipo: string; \n kilometraje: number; \n Potencia: number; \n sucursal: number; \n idSucursal: number; \n rendimientoCarretera: any; \n rendimientoCiudad: any; \n rendimientoMixto: any; \n emision: any; esDemo: number; esCertificado: number; esClasificacion: boolean; idMarca: number; vigenciaPrecio: string; labelVigencia: string; esCotizable: number; imagen: any; ficha: any; };\n cotizacion : any;\n items: GalleryItem[];\n fichaTecnica: string = null;\n cotizacion2 :any = [];\n dataImages = [];\n uri: string = null;\n\n constructor(\n private router: Router,\n private _route: ActivatedRoute,\n private coalService: CoalService,\n public gallery: Gallery,\n private readonly store: Store\n ) { }\n\n ngOnInit(): void {\n console.log(\"se imprime el valor\");\n var data = JSON.parse(localStorage.getItem(\"auto\"));\n for(let key in data){\n this.cotizacion2[key] = data[key];\n }\n console.log(this.cotizacion2);\n //datos duros\n this.cotizacion = {\n tasainteres : \"15.00%\",\n precio : \"$1,242,900.00\",\n plazos : \"12 MESES\",\n pago : \"$50,900.00\",\n comisionapertura : \"$23,300.22\",\n enganche : \"$248,580.00\",\n seguro : \"$5,000.00\",\n pagoinicial : \"$50,000.00\",\n }\n \n this._route.params.subscribe((x: Params) => {\n this.idVehiculo = Number(this._route.snapshot.params['id']);\n this.getVehiculo( this.idVehiculo );\n\n if( localStorage.getItem('uri') === undefined || localStorage.getItem('uri') === null ){\n this.uri = null;\n }\n else{\n this.uri = localStorage.getItem('uri');\n }\n\n const aux = localStorage.getItem('r');\n //console.log(\"aux\", aux);\n \n let arrayRecientes = [];\n if( aux === undefined || aux === null ){\n console.log('Vacios');\n arrayRecientes.push( this.idVehiculo );\n }\n else{\n arrayRecientes = aux.split('|');\n //console.log(arrayRecientes);\n console.log(arrayRecientes.indexOf( String(this.idVehiculo) ));\n \n\n if( arrayRecientes.indexOf( String(this.idVehiculo) ) == -1 ){\n arrayRecientes.push( this.idVehiculo );\n }\n }\n\n localStorage.setItem('r', arrayRecientes.join('|'));\n })\n \n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_iSTYLE_civicblanco.png'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/2_iSTYLE_civicplata.png'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/3_iSTYLE_civicgrismeteoro.png'}\n \n }\n\n openSeguro(){\n\t\tthis.router.navigateByUrl(`/site/tmpSeguro`);\n\t}\n\n getVehiculo( id:number ){\n this.store.dispatch(MostrarSpinner());\n this.coalService.getService(`vehiculo/vehiculo?id=${id}`,).subscribe((res: any) => {\n this.dataUnidad = res.recordsets[0][0];\n this.dataUnidad.imagen = JSON.parse( res.recordsets[0][0].imagen );\n this.dataUnidad.ficha = JSON.parse( res.recordsets[0][0].ficha );\n //fin datos duros\n if( this.dataUnidad.ficha === null ){\n this.fichaTecnica = null\n }\n else{\n if( this.dataUnidad.ficha.length != 0 ){\n this.fichaTecnica = this.dataUnidad.ficha[0].UrlLocal;\n }\n else{\n this.fichaTecnica = null\n }\n }\n\n console.log(\"this.dataUnidad.ficha\", this.dataUnidad.ficha);\n \n\n this.dataImages = []\n this.dataUnidad.imagen.forEach(element => {\n // this.prop.images.push({path: element.UrlLocal})\n this.dataImages.push({\n srcUrl: element.UrlLocal,\n previewUrl: element.UrlLocal\n })\n });\n\n this.store.dispatch(OcultarSpinner());\n\n this.items = this.dataImages.map(item => new ImageItem({ src: item.srcUrl, thumb: item.previewUrl }));\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n}\n","
\n
\n
\n

Detalle del vehículo

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

{{ dataUnidad?.modelo }}

\n

{{ dataUnidad?.marca }}

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

Las imágenes mostradas sólo son para fines ilustrativos.

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n","import { Component, ComponentFactoryResolver, ElementRef, Inject, OnInit, QueryList, SimpleChanges, ViewChild, ViewChildren } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FuseCardComponent } from '@fuse/components/card';\nimport { Store } from '@ngrx/store';\nimport { Gallery, GalleryItem, ImageItem } from '@ngx-gallery/core';\nimport { DialogData } from 'app/modules/factura/lista-facturas/lista-facturas.component';\nimport { CoalService } from 'app/services/coal.service';\nimport { MostrarExcepcion, MostrarSpinner, OcultarSpinner } from 'app/store/actions/utils.action';\nimport { AppState } from 'app/store/app.states';\nimport {RouterModule} from '@angular/router';\nimport { MatCarousel, MatCarouselComponent } from '@ngmodule/material-carousel';\nimport { DragScrollComponent } from 'ngx-drag-scroll';\nimport { BaseService } from 'app/services/base.service';\nimport { delay } from 'rxjs/operators';\nimport { data } from 'jquery';\nimport { CurrencyPipe, formatDate } from '@angular/common';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { environment } from 'environments/environment';\nimport * as Bowser from \"bowser\"; // TypeScript\nimport { DescargarPDFComponent } from '../../../descargar-pdf/descargar-pdf.component';\nimport { DialogPreaprobacionComponent } from '../../../dialog-preaprobacion/dialog-preaprobacion.component';\n\nexport interface DialogDatas {\n idunidad: string;\n auto: string;\n}\n\n@Component({\n selector: 'app-descripcion-cotizacion',\n templateUrl: './descripcion-cotizacion.component.html',\n styleUrls: ['./descripcion-cotizacion.component.scss']\n})\nexport class DescripcionCotizacionComponent implements OnInit {\n\n @ViewChildren(\"nav\", { read: DragScrollComponent }) ds: DragScrollComponent;\n @ViewChildren(\"btnarrowl\", {read: ElementRef}) btnl : DragScrollComponent;\n @ViewChildren(\"btnarrowr\", {read: ElementRef}) btnr : DragScrollComponent;\n urlFiles: string;\n isSafari: boolean;\n plazosSeleccionados: any;\n\n constructor(private snackBar: MatSnackBar, private srvcoal: CoalService,private readonly store: Store,private router: Router,public dialog: MatDialog,private baseService: BaseService,private cp: CurrencyPipe) { }\n carlist : any;\n operacion;\n plazos : any = [];\n spinner: boolean = false;\n user: any;\n\n ngOnInit(): void {\n this.operacion = this.baseService.getOperacionData();\n this.carlist = this.operacion.autos;\n this.ProcesarCotizacion();\n \n const browser = Bowser.getParser(window.navigator.userAgent);\n const nav = browser.getBrowser();\n\n this.isSafari = nav.name == 'Safari' ? true : false;\n \n }\n async ProcesarCotizacion(){\n //console.log(\"Plazos\");\n this.plazos = await this.selPlazos(this.operacion.cotizacion.tipoFinanciamiento);\n var body;\n for(var i = 0 ;i<=this.carlist.length-1;i++){\n var cotizaciones = [];\n for(var j = 0 ;j<=this.plazos.length-1;j++){\n switch(this.operacion.cotizacion.tipoFinanciamiento){\n case 1:\n console.log(\"Cotizacion credito\");\n console.log( this.carlist[i]?.enganche);\n body = {\n planId : 6,\n precio : this.carlist[i].precio,\n Accesorios : 0,\n seguro : this.carlist[i].seguro.precio,\n GranatiaEx : 0,\n otros : 0,\n plazo : this.plazos[j].valor,\n tasa : this.plazos[j].tasa,\n enganche : this.carlist[i]?.enganche || 0,\n CApertura : this.plazos[j].capertura\n }\n var cot = await this.cotizarAutoCredito(body);\n cot['circulo'] = \"center circle\";\n cotizaciones.push(cot);\n break;\n case 2:\n if(this.plazos[j].vresidual){\n body = {\n planId : 11,\n tasa : this.plazos[j].tasa,\n plazo : this.plazos[j].valor,\n valorUnidad : this.carlist[i].precio,\n RentaExtraordinaria : this.carlist[i]?.enganche || 0,\n tipoSeguro\t: this.operacion.cotizacion.tipoPago,\n seguro : this.carlist[i].seguro.precio,\n seguroFina : (this.carlist[i].seguro.preciofPago * this.carlist[i].seguro.pagoRestantes) ,\n ValorResidual : this.plazos[j].vresidual,\n CApertura : this.plazos[j].capertura\n }\n var cot = await this.cotizarAutoArrendamiento(body);\n cot['circulo'] = \"center circle\";\n cotizaciones.push(cot);\n }\n break;\n default:\n console.log(\"Opcion invalida\");\n break;\n }\n };\n this.carlist[i].cotizacion = cotizaciones;\n };\n\n }\n\n openDialogPreAprobacion( car:any ){\n let selected = false;\n let unidad: any;\n\n car.cotizacion.forEach(element => {\n if( element.card === 'card-coti-h-w padgreen' ){\n selected = true;\n unidad = element;\n }\n });\n\n if( selected ){\n const dialogRef = this.dialog.open(DialogPreaprobacionComponent, {\n height: '90%',\n width: '860px',\n data: { hola: ''},\n });\n \n dialogRef.afterClosed().subscribe(result => {\n console.log('openDialogPreAprobacion', result);\n if( result ){\n //this.GetPDF(result);\n\n this.getAccessKikoya( car );\n\n // Bloque de codigo para obtener el plazo seleccionado en preaprobacion\n let selected = false;\n let unidad: any;\n\n car.cotizacion.forEach(element => {\n if( element.card === 'card-coti-h-w padgreen' ){\n selected = true;\n unidad = element;\n }\n });\n\n if( selected ){\n this.plazosSeleccionados = unidad;\n }\n \n this.guardarInfo( result );\n\n if( result.medioContacto == 'whats' ){\n setTimeout(() => {\n this.openWhastapp();\n }, 3000);\n }\n }\n \n });\n }\n else{\n this.snackBar.open('Selecciona un plazo para solicitar una Pre-Aprobación', 'Ok', { duration: 10000 });\n }\n \n }\n\n getAccessKikoya( car:any ){\n let selected = false;\n let unidad: any;\n\n car.cotizacion.forEach(element => {\n if( element.card === 'card-coti-h-w padgreen' ){\n selected = true;\n unidad = element;\n }\n });\n\n if( selected ){\n this.proyectoKikoya( unidad );\n }\n else{\n this.snackBar.open('Selecciona un plazo para solicitar una Pre-Aprobación', 'Ok', { duration: 10000 });\n }\n }\n\n proyectoKikoya( unidad:any ){\n this.store.dispatch(MostrarSpinner());\n \n this.user = this.baseService.getUserData();\n // console.log(this.user);\n \n if( this.user === null ){\n this.store.dispatch(OcultarSpinner());\n this.snackBar.open('Para solicitar tu Pre-Aprobación debes iniciar sesión', 'Ok', { duration: 10000 });\n this.router.navigateByUrl('/sign-in');\n }\n else{\n if(this.isSafari){\n var windowReference = window.open('assets/images/redireccionandokikoya.png');\n }\n\n let param = {\n \"idUsuarioFront\"\t: this.user.user.idUsuario,\n \"financing_period\" : Math.round(unidad.plazon),\n \"financing_amount\" : (unidad.mfinanciar === undefined) ? Math.round(unidad.montoFinanciar) : Math.round(unidad.mfinanciar),\n \"down_payment\" : (unidad.enganche === undefined) ? 0 : Math.round(unidad.enganche),\n \"montly_payment\" : Math.round(unidad.mensualidad)\n }\n \n this.srvcoal.postService(`cotizador/k_proyectos`, param).subscribe((res: any) => {\n this.store.dispatch(OcultarSpinner());\n //res.recordsets.redirect\n console.log('res.recordsets', res.recordsets);\n \n if(this.isSafari){\n windowReference.location.href = res.recordsets.redirect;\n }\n else{\n window.open( res.recordsets.redirect );\n }\n /*\n if( !res.recordsets.success ){\n this.snackBar.open('Por el momento no podemos atender tu solicitud, intenta más tarde.', 'Ok', { duration: 10000 });\n }\n else{\n \n } */ \n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n }\n\n\n guardarInfo( res ){\n let dataInfo = {\n plasosSeleccionados: this.plazosSeleccionados,\n operacion: this.baseService.getOperacionData()\n }\n \n let param = {\n tipoAuto\t: ( res.tipoAuto == 'Nuevo' ) ? 1 : 2,//\t'1.-. Nuevo y 2..- para seminuevo',\n estadoFinanciero : ( res.financiamiento == 'Crédito' ) ? 1 : ( res.financiamiento == 'Arrendamiento Puro' ) ? 2 : 3,//\t'1.- Credito, 2.- Arrendamiento, 3.- Arrendamiento todo incluido',\n comentarios :\tres.comentarios,\n tipoContacto\t: ( res.medioContacto == '' ) ? null : ( res.medioContacto == 'whats' ) ? 1 : ( res.medioContacto == 'email' ) ? 2 : 3,//\t'1.- whatsapp, 2.- Correo, 3.-',\n contacto\t\t:\tres.datoContacto,\n nombre : res.nombre,\n razonsocial : res.razonSocial,\n jsondata: JSON.stringify( dataInfo )\n }\n \n this.srvcoal.postService(`cotizador/InsCotizacion`, param).subscribe((res: any) => {\n \n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n\n cotizarAutoCredito(cotizar){\n return new Promise(async (resolve, reject) => {\n\t\t\tthis.srvcoal.postService('credito/selCredito',cotizar).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n resolve(res.recordsets[0][0]);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n\t\t});\n }\n cotizarAutoArrendamiento(cotizar){\n return new Promise(async (resolve, reject) => {\n\t\t\tthis.srvcoal.postService('arrendamiento/selArrendamiento',cotizar).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n resolve(res.recordsets[0][0]);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n\t\t});\n }\n selPlazos(tipoplan){\n return new Promise(async (resolve, reject) => {\n var idconfpla;\n if(tipoplan==1){\n idconfpla = 6;\n }else{\n idconfpla = 11;\n }\n var body = {\n idconfpla : idconfpla\n };\n\t\t\tthis.srvcoal.postService('cotizador/selPlazos',body).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n resolve(res.recordsets[0]);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n\t\t});\n }\n openDetalle( car , item): void {\n car.selected = item;\n const dialogRef = this.dialog.open(DialogDetalleAutoDialog, {\n height: '90%',\n width: '90%',\n data: {idunidad: car.idVehiculo, auto: car},\n });\n\n dialogRef.afterClosed().subscribe(result => {\n console.log('The dialog was closed');\n });\n }\n \n ngAfterViewInit(): void {\n\n\n\n var center = Math.ceil(this.btnl[\"_results\"].length/2)-1;\n this.btnl[\"_results\"].forEach(function callback(element, index) {\n if(index!=center){\n element.nativeElement.style.visibility='hidden';\n }\n });\n this.btnr[\"_results\"].forEach(function callback(element, index) {\n if(index!=center){\n element.nativeElement.style.visibility='hidden';\n }\n });\n }\n moveLeft() {\n this.ds[\"_results\"].forEach(element => {\n element.moveLeft();\n });\n // console.log(this.ds1);\n // this.ds.moveLeft();\n // this.ds1.moveLeft();\n // this.ds2.moveLeft();\n }\n moveRight() {\n this.ds[\"_results\"].forEach(element => {\n element.moveRight();\n });\n // this.ds.moveRight();\n // this.ds1.moveRight();\n // this.ds2.moveRight();\n }\n onChildSelect(Child,cot)\n {\n if(Child.circulo == \"center circle\"){\n //Se quita la seleccion de todos los demas\n cot.forEach(element => {\n element.circulo = \"center circle\";\n element.card = \"card-coti-h-w\"\n });\n Child.circulo = \"center circle-selected\"\n Child.card = \"card-coti-h-w padgreen\"\n }else{\n Child.circulo = \"center circle\";\n Child.card = \"card-coti-h-w\"\n }\n }\n\n openWhastapp(){\n window.open('https://wa.me/525510125098?text=Hola,%20quiero%20más%20información%20sobre%20la%20cotización.');\n // window.open('https://wa.me/525510125098?text=Hola,%20quiero%20saber%20más%20información%20acerca%20de%20los%20financiamientos.');\n}\n\n openDescargaPDF(){\n var auto_temp = 0;\n\n for (var i = 0; i <= this.carlist.length - 1; i++) {\n for (var j = 0; j <= this.carlist[i].cotizacion.length - 1; j++) {\n if (this.carlist[i].cotizacion[j].card == 'card-coti-h-w padgreen') {\n auto_temp++;\n }\n }\n }\n\n if (auto_temp == 0) {\n this.store.dispatch(OcultarSpinner())\n this.snackBar.open('Seleccione los plazos que desea bajar en PDF', 'Ok', {\n duration: 10000\n });\n\n return false;\n } else {\n const dialogRef = this.dialog.open(DescargarPDFComponent, {\n height: '90%',\n width: '860px',\n data: { hola: ''},\n });\n \n dialogRef.afterClosed().subscribe(result => {\n console.log('openDescargaPDF', result);\n if( result ){\n this.GetPDF(result);\n this.guardarInfo( result );\n\n if( result.medioContacto == 'whats' ){\n setTimeout(() => {\n this.openWhastapp();\n }, 3000);\n }\n }\n \n });\n }\n }\n\n async GetPDF( datosFormulario ) {\n this.store.dispatch(MostrarSpinner());\n\n var auto;\n var auto_temp = 0;\n var vehiculos = [];\n var user;\n var titulo;\n var doc_name;\n var cat;\n var value_cat;\n\n for (var i = 0; i <= this.carlist.length - 1; i++) {\n for (var j = 0; j <= this.carlist[i].cotizacion.length - 1; j++) {\n if (this.carlist[i].cotizacion[j].card == 'card-coti-h-w padgreen') {\n auto_temp++;\n }\n }\n }\n\n console.log(\"sel vehiculos\", vehiculos, auto_temp);\n\n if (auto_temp == 0) {\n this.store.dispatch(OcultarSpinner())\n this.snackBar.open('Seleccione los plazos que desea bajar en PDF', 'Ok', {\n duration: 10000\n });\n return false;\n } else {\n if (this.isSafari) {\n var windowReference = window.open('assets/images/generandopdf.png');\n }\n\n user = this.baseService.getUserData();\n let solicitante = (datosFormulario.nombre == '') ? 'A quien corresponda' : datosFormulario.nombre;\n let solicitanteFN = (datosFormulario.nombre == '') ? '' : datosFormulario.nombre.replaceAll(' ', '_');\n for (var i = 0; i <= this.carlist.length - 1; i++) {\n for (var j = 0; j <= this.carlist[i].cotizacion.length - 1; j++) {\n if (this.carlist[i].cotizacion[j].card == 'card-coti-h-w padgreen') {\n var tabla;\n\n const tipoPersonaCapitalized = datosFormulario.tipoPersona;\n // const tipoPersonaCapitalized = (user.user.tipoPersona).charAt(0).toUpperCase() + (user.user.tipoPersona).slice(1) // Linea Original\n\n if (this.operacion.cotizacion.tipoFinanciamiento == 1) {\n tabla = await this.armartabla(this.carlist[i].cotizacion[j]);\n let bodycat = {\n monto_financiamiento: this.carlist[i].cotizacion[j].mfinanciar,\n pago_mensual: this.carlist[i].cotizacion[j].mensualidad,\n plazo: this.carlist[i].cotizacion[j].plazon,\n comisionapertura: this.carlist[i].cotizacion[j].comisionapertura,\n }\n\n this.plazosSeleccionados = bodycat;\n cat = await this.selCat(bodycat);\n value_cat = cat[0][0].cat\n titulo = \"Crédito Integra : Cotización para \" + tipoPersonaCapitalized;\n // doc_name = \"Crédito Integra \" + user.user.name.charAt(0) + user.user.firstName + \" \" + formatDate(new Date(), 'ddMMyy', 'en');\n // doc_name = \"Credito_Integra_\" + user.user.name.charAt(0) + user.user.firstName + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.carlist[i].cotizacion[j].plazon;\n doc_name = \"Credito_Integra_\" + solicitanteFN + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.carlist[i].cotizacion[j].plazon;\n \n } else {\n titulo = \"APD Integra : Cotización para \" + tipoPersonaCapitalized;\n // doc_name = \"APD Integra \" + user.user.name.charAt(0) + user.user.firstName + \" \" + formatDate(new Date(), 'ddMMyy', 'en');\n //doc_name = \"APD_Integra_\" + user.user.name.charAt(0) + user.user.firstName + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.carlist[i].cotizacion[j].plazon;\n doc_name = \"APD_Integra_\" + solicitanteFN + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.carlist[i].cotizacion[j].plazon;\n value_cat = 0;\n }\n auto = this.generarjson(this.carlist[i], this.carlist[i].cotizacion[j], tabla, this.operacion.cotizacion.tipoFinanciamiento, value_cat);\n vehiculos.push(auto);\n }\n }\n }\n\n\n user = this.baseService.getUserData();\n\n console.log(\"cotizacion 2\", doc_name);\n\n var jsonData = {\n template: {\n name: 'CotizadorIntegra - Presupuesto'\n },\n data: {\n \"cotizacion\": [{\n \"generales\": {\n \"doc_name\": doc_name,\n \"tipoCotizacion\": \"credito\",\n // \"solicitante\": user.user.name + \" \" + user.user.firstName + \" \" + user.user.lastName,\n \"solicitante\": solicitante,\n \"puntoVenta\": \"Integra Cotizador\",\n \"fecha\": formatDate(new Date(), 'dd/MM/yyyy', 'en'),\n \"folio\": \"0000000001\",\n \"titulo\": titulo\n },\n \"vehiculos\": JSON.parse(JSON.stringify(vehiculos))\n }]\n }\n };\n\n console.log(environment.files + doc_name + '.pdf');\n this.urlFiles = environment.files + doc_name + '.pdf'\n this.urlFiles = 'https://cotizadorintegra.centraldeoperaciones.com/assets/cotizaciones/' + doc_name + '.pdf'\n\n var res = await this.createpdf(jsonData, this.urlFiles);\n\n // windowReference.location.href = this.urlFiles;\n if(this.isSafari){\n windowReference.location.href = this.urlFiles;\n }\n else{\n window.open( this.urlFiles );\n }\n }\n\n return false;\n\n this.user = this.baseService.getUserData();\n\n if (this.user === null) {\n this.store.dispatch(OcultarSpinner());\n this.snackBar.open('Para poder descargar tu PDF debes iniciar sesión', 'Ok', {\n duration: 10000\n });\n this.router.navigateByUrl('/sign-in');\n } else {\n \n }\n }\n\n createpdf(jsonData, namepdf){\n // const isIEOrEdge = /msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent);\n // var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) return p.toString() === \"[object SafariRemoteNotification]\"; )(!window['safari'] || safari.pushNotification);\n // console.log(\"isIEOrEdge\", isIEOrEdge, window.navigator.userAgent);\n\n /*\n cotizacion 2 Crédito Integra AGrijalva 070922\n descripcion-cotizacion.component.ts:383 assets/cotizaciones/Crédito Integra AGrijalva 070922.pdf\n descripcion-cotizacion.component.ts:408 isIEOrEdge false Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36\n */\n \n\n return new Promise(async (resolve, reject) => {\n\n this.store.dispatch(MostrarSpinner());\n this.spinner = true;\n\t\t\tthis.srvcoal.postService('cotizador/generaPDF',jsonData).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n this.store.dispatch(OcultarSpinner());\n this.spinner = false;\n resolve(res.pdf);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n\t\t});\n }\n generarjson(vehiculo,cotizacion,tabla,tipoCotizacion,cat){\n var vehiculos;\n let date = new Date();\n if(tipoCotizacion==1){\n vehiculos = {\n \"generales\": {\n \"imagen\": vehiculo.imagen[0].UrlLocal\n },\n \"caracteristicas\":[\n {\"caracteristica\": \"Marca\", \"info\": vehiculo.marca },\n {\"caracteristica\": \"Modelo\", \"info\": vehiculo.modelo },\n {\"caracteristica\": \"Versión\", \"info\": vehiculo.version },\n {\"caracteristica\": \"Año\", \"info\": vehiculo.anio }\n ],\n \"seguro\": [\n // {\"concepto\": \"Tipo de pago:\", \"importe\": cotizacion.txtseguro },\n // {\"concepto\": \"Importe anual del seguro\", \"importe\": this.transformcurrency(vehiculo.seguro.precio) },\n {\"type\": true, \"concepto\": \"Aseguradora\", \"importe\": vehiculo.seguro.logo_aseg},\n {\"type\": false, \"concepto\": \"Cobertura\", \"importe\": this.operacion.cotizacion.cobertura },\n {\"type\": false, \"concepto\": \"Tipo de Pago\", \"importe\": cotizacion.txtseguro },\n {\"type\": false, \"concepto\": \"Seguro Primer Año\", \"importe\": this.transformcurrency(cotizacion.totalseguro) },\n ],\n \"financiamiento\": [\n {\"concepto\": \"Precio de Venta (IVA Incluido) \", \"importe\": this.transformcurrency(cotizacion.precio)},\n {\"concepto\": \"Enganche\", \"importe\": this.transformcurrency(cotizacion.enganche)},\n {\"concepto\": \"GPS\", \"importe\": this.transformcurrency(cotizacion.Mgps) }\n\n // { \"concepto\": \"Comisión\", \"importe\":cotizacion.comisionapertura + \"%\" },\n\n ],\n \"conceptos\": [\n {\"estilo\": \"\",\"concepto\": \"Enganche\", \"importe1\": this.transformcurrency(cotizacion.enganchep), \"importe2\": this.transformcurrency(cotizacion.enganche) },\n { \"estilo\": \"\",\"concepto\": \"Comisión\", \"importe1\":\"1.95%\", \"importe2\": this.transformcurrency(cotizacion.comisionapertura) },\n { \"estilo\": \"\",\"concepto\": \"Seguro Primer Año\", \"importe1\":\"\", \"importe2\": this.transformcurrency(vehiculo.seguro.precio) },\n // { \"estilo\": \"negrita\",\"concepto\": \"Pago Inicial Total\", \"importe1\": \"\", \"importe2\": this.transformcurrency(cotizacion.pinicial) },\n\n\n // {\"concepto\": \"Tasa de Interes Mensual\", \"importe1\": this.transformcurrency(cotizacion.tinteres), \"importe2\": this.transformcurrency(cotizacion.tinteres)},\n ],\n \"totales\": {\n \"totalFinanciar\": { \"concepto\": \"Monto Total a Financiar\", \"valor\":this.transformcurrency(cotizacion.mfinanciar) },\n \"pagoInicial\": { \"concepto\": \"Pago Inicial Total\", \"valor\":this.transformcurrency(cotizacion.pinicial) },\n \"plazo\": { \"concepto\": \"Plazo\", \"valor\":cotizacion.plazo },\n \"tasa\": { \"concepto\": \"Tasa\", \"valor\": round2Fixed(parseFloat(cotizacion.tazan)) +'%' },\n \"mensual\": { \"concepto\": \"Pago Mensual \", \"valor\":this.transformcurrency(cotizacion.mensualidad) }\n },\n \"tablaDescripctiva\":{\n \"header\": [\n { \"label\": \"No. Pago\", \"align\": \"left\"},\n { \"label\": \"Saldo Insoluto\", \"align\": \"left\"},\n { \"label\": \"Pago Capital\", \"align\": \"left\"},\n { \"label\": \"Intereses\", \"align\": \"left\"},\n { \"label\": \"IVA de los Intereses \", \"align\": \"left\"},\n { \"label\": \"Mensualidad Total\", \"align\": \"left\"}\n ],\n \"rows\":tabla\n\n },\n \"cat\":{\n \"display\":cotizacion.showCAT,\n \"valor\": cat\n }\n }\n }else{\n vehiculos = {\n \"generales\": {\n \"imagen\": vehiculo.imagen[0].UrlLocal\n },\n \"caracteristicas\":[\n {\"caracteristica\": \"Marca\", \"info\": vehiculo.marca },\n {\"caracteristica\": \"Modelo\", \"info\": vehiculo.modelo },\n {\"caracteristica\": \"Versión\", \"info\": vehiculo.version },\n {\"caracteristica\": \"Año\", \"info\": vehiculo.anio }\n ],\n \"seguro\": [\n // {\"concepto\": \"Tipo de pago:\", \"importe\": cotizacion.txtseguro },\n // {\"concepto\": \"Importe anual del seguro\", \"importe\": this.transformcurrency(vehiculo.seguro.precio) },\n {\"type\": true, \"concepto\": \"Aseguradora\", \"importe\": vehiculo.seguro.logo_aseg},\n {\"type\": false, \"concepto\": \"Cobertura\", \"importe\": this.operacion.cotizacion.cobertura },\n {\"type\": false, \"concepto\": \"Tipo de Pago\", \"importe\": cotizacion.txtseguro },\n {\"type\": false, \"concepto\": \"Seguro Primer Año\", \"importe\": this.transformcurrency(cotizacion.totalseguro) },\n ],\n \"financiamiento\": [\n {\"concepto\": \"Precio de Venta (IVA Incluido)\", \"importe\": this.transformcurrency(cotizacion.VUIVA) },\n {\"concepto\": \"Renta Extraordinaria\", \"importe\": this.transformcurrency(cotizacion.rentaext) },\n {\"concepto\": \"GPS\", \"importe\": this.transformcurrency(cotizacion.Mgps) }\n // {\"concepto\": \"Comisión\", \"importe\":cotizacion.comisionapertura + \"%\" },\n\n ],\n \"conceptos\": [\n { \"estilo\": \"\", \"concepto\": \"Renta Extraordinaria\", \"importe1\":\"\", \"importe2\": this.transformcurrency(cotizacion.rentaext) },\n { \"estilo\": \"\", \"concepto\": \"Renta en Depósito\", \"importe1\":\"\", \"importe2\":this.transformcurrency(cotizacion.tentaant)},\n { \"estilo\": \"\", \"concepto\": \"Renta Anticipada\", \"importe1\":\"\", \"importe2\":this.transformcurrency(cotizacion.rentaendepo) },\n { \"estilo\": \"\", \"concepto\": \"Comisión\", \"importe1\":\"1.95%\", \"importe2\": this.transformcurrency(cotizacion.comisionapertura) },\n { \"estilo\": \"\", \"concepto\": \"Seguro Primer Año\", \"importe1\":\"\", \"importe2\": this.transformcurrency(cotizacion.seguro) },\n // { \"estilo\": \"negrita\", \"concepto\": \"Pago Inicial Total\", \"importe1\": \"\", \"importe2\": this.transformcurrency(cotizacion.pinicial) },\n //{\"concepto\": \"Tasa de Interes\", \"importe1\": cotizacion.tinteres},\n ],\n \"totales\": {\n \"totalFinanciar\": { \"concepto\": \"Monto Total a Arrendar\", \"valor\":this.transformcurrency(cotizacion.montoFinanciar) },\n \"plazo\": { \"concepto\": \"Plazo\", \"valor\":cotizacion.plazo },\n // \"tasa\": { \"concepto\": \"Tasa\", \"valor\": cotizacion.tazan+'%' },\n \"mensual\": { \"concepto\": \"Rental Mensual \", \"valor\":this.transformcurrency(cotizacion.mensualidad) },\n \"pagoInicial\": { \"concepto\": \"Pago Inicial Total\", \"valor\":this.transformcurrency(cotizacion.pinicial) },\n \"fecha\": { \"concepto\": \"Fecha\", \"valor\": fechaVerdadera(date) },\n },\n \"cat\":{\n \"display\":'none',\n \"valor\": 1\n }\n }\n }\n\n return vehiculos;\n }\n async armartabla(cotizacion){\n var tabla : any = [];\n var tabla_return = [];\n let data;\n //consulta de tabla de amortizacion\n let tamor = {\n plazo : cotizacion.plazon,\n mensualidad : cotizacion.mensualidad,\n tmensual : cotizacion.tasamensual,\n sinsoluto : cotizacion.mfinanciar\n }\n console.log(\"Entra bas\");\n tabla = await this.selTAmortizacion(tamor);\n for(var i=0;i<=tabla.length-1;i++){\n data = {\"fila\": [\n {\"cel\": i+1},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].pinsoluto)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].pcapital)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].interes)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].iva_int)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].mensualidad)}\n ]};\n tabla_return.push(data);\n }\n return tabla_return;\n }\n selTAmortizacion(body){\n this.store.dispatch(MostrarSpinner());\n return new Promise(async (resolve, reject) => {\n\t\t\tthis.srvcoal.postService('credito/selTAmortizacion',body).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n resolve(res.recordsets);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n\t\t});\n }\n selCat(body){\n this.store.dispatch(MostrarSpinner());\n return new Promise(async (resolve, reject) => {\n this.srvcoal.postService('credito/selCat',body).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n resolve(res.recordsets);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n });\n }\n transformcurrency(transform){\n return this.cp.transform(transform, 'USD', 'symbol', '1.0-0');\n }\n\n transformcurrencydecimales(transform){\n return this.cp.transform(transform, 'USD', 'symbol', '1.2-2');\n }\n}\n\n\n@Component({\n selector: 'Detalle-auto',\n templateUrl: './Detalle-auto.component.html',\n styleUrls: ['./Detalle-auto.component.scss']\n})\nexport class DialogDetalleAutoDialog {\n user: any;\n urlFiles: string;\n isSafari: boolean;\n plazosSeleccionados: any;\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public dataata: DialogData,\n private router: Router,\n private _route: ActivatedRoute,\n private coalService: CoalService,\n public gallery: Gallery,\n private readonly store: Store,\n private srvcoal: CoalService,\n private snackBar: MatSnackBar,\n private baseService: BaseService,\n private cp: CurrencyPipe,\n public dialog: MatDialog\n ) {}\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n prop: { images: { path: string; }[]; };\n unidades: { idUnidad: number; img: string; descripcion: string; anio: string; modelo: string; version: string; transmision: string; potencia: string; rendimiento: string; precio: number; }[];\n @ViewChildren(FuseCardComponent, {read: ElementRef}) private _fuseCards: QueryList;\n idVehiculo: number;\n dataUnidad: {\n IdCatUnidad: string;\n idVehiculo: number;\n condicion: string;\n marca: string;\n modelo: string;\n version: string;\n anio: number;\n precio: string;\n transmision: string;\n tipo: string;\n kilometraje: number;\n Potencia: number;\n sucursal: number;\n idSucursal: number;\n rendimientoCarretera: any;\n rendimientoCiudad: any;\n rendimientoMixto: any;\n emision: any; esDemo: number; esCertificado: number; esClasificacion: boolean; idMarca: number; vigenciaPrecio: string; labelVigencia: string; esCotizable: number; imagen: any; ficha: any; };\n cotizacion : any;\n items: GalleryItem[];\n fichaTecnica: string = null;\n cotizacion2 :any = [];\n dataImages = [];\n uri: string = null;\n operacion;\n carlist;\n spinner: boolean = false;\n ngOnInit(): void {\n this.operacion = this.baseService.getOperacionData();\n var data = this.dataata[\"auto\"]\n for(let key in data){\n this.cotizacion2[key] = data[key];\n }\n\n console.log(\"cotizacion2\", this.cotizacion2);\n\n\n this._route.params.subscribe((x: Params) => {\n this.idVehiculo = Number(this.dataata[\"idunidad\"]);\n this.getVehiculo( this.idVehiculo );\n\n if( localStorage.getItem('uri') === undefined || localStorage.getItem('uri') === null ){\n this.uri = null;\n }\n else{\n this.uri = localStorage.getItem('uri');\n }\n\n const aux = localStorage.getItem('r');\n //console.log(\"aux\", aux);\n\n let arrayRecientes = [];\n if( aux === undefined || aux === null ){\n console.log('Vacios');\n arrayRecientes.push( this.idVehiculo );\n }\n else{\n arrayRecientes = aux.split('|');\n //console.log(arrayRecientes);\n console.log(arrayRecientes.indexOf( String(this.idVehiculo) ));\n\n\n if( arrayRecientes.indexOf( String(this.idVehiculo) ) == -1 ){\n arrayRecientes.push( this.idVehiculo );\n }\n }\n\n localStorage.setItem('r', arrayRecientes.join('|'));\n })\n\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_iSTYLE_civicblanco.png'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/2_iSTYLE_civicplata.png'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/3_iSTYLE_civicgrismeteoro.png'}\n\n const browser = Bowser.getParser(window.navigator.userAgent);\n const nav = browser.getBrowser();\n\n this.isSafari = nav.name == 'Safari' ? true : false;\n }\n\n openSeguro(){\n\t\tthis.router.navigateByUrl(`/site/tmpSeguro`);\n\t }\n\n getVehiculo( id:number ){\n this.store.dispatch(MostrarSpinner());\n this.coalService.getService(`vehiculo/vehiculo?id=${id}`,).subscribe((res: any) => {\n this.dataUnidad = res.recordsets[0][0];\n this.dataUnidad.imagen = JSON.parse( res.recordsets[0][0].imagen );\n this.dataUnidad.ficha = JSON.parse( res.recordsets[0][0].ficha );\n //fin datos duros\n if( this.dataUnidad.ficha === null ){\n this.fichaTecnica = null\n }\n else{\n if( this.dataUnidad.ficha.length != 0 ){\n this.fichaTecnica = this.dataUnidad.ficha[0].UrlLocal;\n }\n else{\n this.fichaTecnica = null\n }\n }\n\n console.log(\"this.dataUnidad.ficha\", this.dataUnidad.ficha);\n\n\n this.dataImages = []\n this.dataUnidad.imagen.forEach(element => {\n // this.prop.images.push({path: element.UrlLocal})\n this.dataImages.push({\n srcUrl: element.UrlLocal,\n previewUrl: element.UrlLocal\n })\n });\n\n this.store.dispatch(OcultarSpinner());\n\n this.items = this.dataImages.map(item => new ImageItem({ src: item.srcUrl, thumb: item.previewUrl }));\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n\n openWhastapp(){ // 5510125098\n window.open('https://wa.me/525510125098?text=Hola,%20quiero%20más%20información%20sobre%20la%20cotización.');\n }\n\n openDialogPreAprobacion( ){\n const dialogRef = this.dialog.open(DialogPreaprobacionComponent, {\n height: '90%',\n width: '860px',\n data: { hola: ''},\n });\n\n dialogRef.afterClosed().subscribe(result => {\n console.log('openDialogPreAprobacion', result);\n if( result ){\n //this.GetPDF(result);\n\n this.getAccessKikoya();\n\n // Bloque de codigo para obtener el plazo seleccionado en preaprobacion\n \n this.plazosSeleccionados = this.cotizacion2.selected;\n\n this.guardarInfo( result );\n\n if( result.medioContacto == 'whats' ){\n setTimeout(() => {\n this.openWhastapp();\n }, 3000);\n }\n }\n \n });\n }\n\n openDescargaPDF(){\n const dialogRef = this.dialog.open(DescargarPDFComponent, {\n height: '90%',\n width: '860px',\n data: { hola: ''},\n });\n\n dialogRef.afterClosed().subscribe(result => {\n console.log('openDescargaPDF', result);\n if( result ){\n this.GetPDF(result);\n this.guardarInfo( result );\n }\n \n });\n }\n\n async GetPDF(datosFormulario) {\n this.store.dispatch(MostrarSpinner());\n\n this.user = this.baseService.getUserData();\n console.log(this.user);\n\n if (this.isSafari) {\n var windowReference = window.open('assets/images/generandopdf.png');\n }\n\n var auto;\n var vehiculos = [];\n var tabla;\n var user;\n var titulo;\n var doc_name;\n var cat;\n var value_cat;\n this.operacion = this.baseService.getOperacionData();\n this.carlist = this.operacion.autos;\n user = this.baseService.getUserData();\n let solicitante = (datosFormulario.nombre == '') ? 'A quien corresponda' : datosFormulario.nombre;\n let solicitanteFN = (datosFormulario.nombre == '') ? '' : datosFormulario.nombre.replaceAll(' ', '_');\n console.log(user);\n \n const tipoPersonaCapitalized = datosFormulario.tipoPersona;\n //let tipoPersonaCapitalized = (user.user.tipoPersona).charAt(0).toUpperCase() + (user.user.tipoPersona).slice(1)\n\n if (this.operacion.cotizacion.tipoFinanciamiento == 1) {\n tabla = await this.armartabla(this.cotizacion2?.selected);\n let bodycat = {\n monto_financiamiento: this.cotizacion2?.selected.mfinanciar,\n pago_mensual: this.cotizacion2?.selected.mensualidad,\n plazo: this.cotizacion2?.selected.plazon,\n comisionapertura: this.cotizacion2?.selected.comisionapertura,\n }\n this.plazosSeleccionados = bodycat;\n cat = await this.selCat(bodycat);\n value_cat = cat[0][0].cat;\n titulo = \"Crédito Integra : Cotización para \" + '' + tipoPersonaCapitalized;\n // titulo = \"Crédito Integra : Cotización para Persona \" + '' + tipoPersonaCapitalized;\n // doc_name = \"Crédito Integra \" + user.user.name.charAt(0) + user.user.firstName + \" \" + formatDate(new Date(), 'ddMMyy', 'en');\n // doc_name = \"Credito_Integra_\" + user.user.name.charAt(0) + user.user.firstName + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.cotizacion2?.selected.plazon;\n doc_name = \"Credito_Integra_\" + solicitanteFN + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.cotizacion2?.selected.plazon;\n } else {\n titulo = \"APD Integra : Cotización para Persona \" + '' + tipoPersonaCapitalized;\n // doc_name = \"APD Integra \" + user.user.name.charAt(0) + user.user.firstName + \" \" + formatDate(new Date(), 'ddMMyy', 'en');\n // doc_name = \"APD_Integra_\" + user.user.name.charAt(0) + user.user.firstName + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.cotizacion2?.selected.plazon;\n doc_name = \"APD_Integra_\" + solicitanteFN + \"_\" + formatDate(new Date(), 'ddMMyy', 'en') + \"_\" + this.cotizacion2?.selected.plazon;\n value_cat = 0;\n }\n auto = this.generarjson(this.cotizacion2, this.cotizacion2?.selected, tabla, this.operacion.cotizacion.tipoFinanciamiento, value_cat);\n vehiculos.push(auto);\n\n console.log(\"cotizacion 1\");\n\n var jsonData = {\n template: {\n name: 'CotizadorIntegra - Presupuesto'\n },\n data: {\n \"cotizacion\": [{\n \"generales\": {\n \"doc_name\": doc_name,\n \"tipoCotizacion\": \"credito\",\n // \"solicitante\": user.user.name + \" \" + user.user.firstName + \" \" + user.user.lastName,\n \"solicitante\": solicitante,\n \"puntoVenta\": \"Integra Cotizador\",\n \"fecha\": formatDate(new Date(), 'dd/MM/yyyy', 'en'),\n \"folio\": \"0000000001\",\n \"titulo\": titulo\n },\n \"vehiculos\": JSON.parse(JSON.stringify(vehiculos))\n }]\n }\n };\n\n this.urlFiles = environment.files + doc_name + '.pdf'\n this.urlFiles = 'https://cotizadorintegra.centraldeoperaciones.com/assets/cotizaciones/' + doc_name + '.pdf'\n\n var res = await this.createpdf(jsonData);\n\n if(this.isSafari){\n windowReference.location.href = this.urlFiles;\n }\n else{\n window.open( this.urlFiles );\n }\n\n return false;\n\n if (this.user === null) {\n this.store.dispatch(OcultarSpinner());\n this.dialogRef.close();\n this.snackBar.open('Para poder descargar tu PDF debes iniciar sesión', 'Ok', {\n duration: 10000\n });\n this.router.navigateByUrl('/sign-in');\n } else {\n //var coti = this.operacion.cotizacion;\n }\n }\n\n generarjson(vehiculo,cotizacion,tabla,tipoCotizacion,cat){\n var vehiculos;\n let date = new Date();\n if(tipoCotizacion==1){\n vehiculos = {\n \"generales\": {\n \"imagen\": vehiculo.imagen[0].UrlLocal\n },\n \"caracteristicas\":[\n {\"caracteristica\": \"Marca\", \"info\": vehiculo.marca },\n {\"caracteristica\": \"Modelo\", \"info\": vehiculo.modelo },\n {\"caracteristica\": \"Versión\", \"info\": vehiculo.version },\n {\"caracteristica\": \"Año\", \"info\": vehiculo.anio }\n ],\n \"seguro\": [\n // {\"concepto\": \"Tipo de pago:\", \"importe\": cotizacion.txtseguro },\n // {\"concepto\": \"Importe anual del seguro\", \"importe\": this.transformcurrency(vehiculo.seguro.precio) },\n {\"type\": true, \"concepto\": \"Aseguradora\", \"importe\": vehiculo.seguro.logo_aseg},\n {\"type\": false, \"concepto\": \"Cobertura\", \"importe\": this.operacion.cotizacion.cobertura },\n {\"type\": false, \"concepto\": \"Tipo de Pago\", \"importe\": cotizacion.txtseguro },\n {\"type\": false, \"concepto\": \"Seguro Primer Año\", \"importe\": this.transformcurrency(cotizacion.totalseguro) },\n ],\n \"financiamiento\": [\n {\"concepto\": \"Precio de Venta (IVA Incluido) \", \"importe\": this.transformcurrency(cotizacion.precio)},\n {\"concepto\": \"Enganche\", \"importe\": this.transformcurrency(cotizacion.enganche)},\n {\"concepto\": \"GPS\", \"importe\": this.transformcurrency(cotizacion.Mgps) }\n\n // { \"concepto\": \"Comisión\", \"importe\":cotizacion.comisionapertura + \"%\" },\n\n ],\n \"conceptos\": [\n {\"estilo\": \"\",\"concepto\": \"Enganche\", \"importe1\": this.transformcurrency(cotizacion.enganchep), \"importe2\": this.transformcurrency(cotizacion.enganche) },\n { \"estilo\": \"\",\"concepto\": \"Comisión\", \"importe1\":\"1.95%\", \"importe2\": this.transformcurrency(cotizacion.comisionapertura) },\n { \"estilo\": \"\",\"concepto\": \"Seguro Primer Año\", \"importe1\":\"\", \"importe2\": this.transformcurrency(vehiculo.seguro.precio) },\n // { \"estilo\": \"negrita\",\"concepto\": \"Pago Inicial Total\", \"importe1\": \"\", \"importe2\": this.transformcurrency(cotizacion.pinicial) },\n\n\n // {\"concepto\": \"Tasa de Interes Mensual\", \"importe1\": this.transformcurrency(cotizacion.tinteres), \"importe2\": this.transformcurrency(cotizacion.tinteres)},\n ],\n \"totales\": {\n \"totalFinanciar\": { \"concepto\": \"Monto Total a Financiar\", \"valor\":this.transformcurrency(cotizacion.mfinanciar) },\n \"pagoInicial\": { \"concepto\": \"Pago Inicial Total\", \"valor\":this.transformcurrency(cotizacion.pinicial) },\n \"plazo\": { \"concepto\": \"Plazo\", \"valor\":cotizacion.plazo },\n \"tasa\": { \"concepto\": \"Tasa\", \"valor\": round2Fixed(parseFloat(cotizacion.tazan)) +'%' },\n \"mensual\": { \"concepto\": \"Pago Mensual \", \"valor\":this.transformcurrency(cotizacion.mensualidad) }\n },\n \"tablaDescripctiva\":{\n \"header\": [\n { \"label\": \"No. Pago\", \"align\": \"left\"},\n { \"label\": \"Saldo Insoluto\", \"align\": \"left\"},\n { \"label\": \"Pago Capital\", \"align\": \"left\"},\n { \"label\": \"Intereses\", \"align\": \"left\"},\n { \"label\": \"IVA de los Intereses \", \"align\": \"left\"},\n { \"label\": \"Mensualidad Total\", \"align\": \"left\"}\n ],\n \"rows\":tabla\n\n },\n \"cat\":{\n \"display\":cotizacion.showCAT,\n \"valor\": cat\n }\n }\n }else{\n vehiculos = {\n \"generales\": {\n \"imagen\": vehiculo.imagen[0].UrlLocal\n },\n \"caracteristicas\":[\n {\"caracteristica\": \"Marca\", \"info\": vehiculo.marca },\n {\"caracteristica\": \"Modelo\", \"info\": vehiculo.modelo },\n {\"caracteristica\": \"Versión\", \"info\": vehiculo.version },\n {\"caracteristica\": \"Año\", \"info\": vehiculo.anio }\n ],\n \"seguro\": [\n // {\"concepto\": \"Tipo de pago:\", \"importe\": cotizacion.txtseguro },\n // {\"concepto\": \"Importe anual del seguro\", \"importe\": this.transformcurrency(vehiculo.seguro.precio) },\n {\"type\": true, \"concepto\": \"Aseguradora\", \"importe\": vehiculo.seguro.logo_aseg},\n {\"type\": false, \"concepto\": \"Cobertura\", \"importe\": this.operacion.cotizacion.cobertura },\n {\"type\": false, \"concepto\": \"Tipo de Pago\", \"importe\": cotizacion.txtseguro },\n {\"type\": false, \"concepto\": \"Seguro Primer Año\", \"importe\": this.transformcurrency(cotizacion.totalseguro) },\n ],\n \"financiamiento\": [\n {\"concepto\": \"Precio de Venta (IVA Incluido)\", \"importe\": this.transformcurrency(cotizacion.VUIVA) },\n {\"concepto\": \"Renta Extraordinaria\", \"importe\": this.transformcurrency(cotizacion.rentaext) },\n {\"concepto\": \"GPS\", \"importe\": this.transformcurrency(cotizacion.Mgps) }\n // {\"concepto\": \"Comisión\", \"importe\":cotizacion.comisionapertura + \"%\" },\n\n ],\n \"conceptos\": [\n { \"estilo\": \"\", \"concepto\": \"Renta Extraordinaria\", \"importe1\":\"\", \"importe2\": this.transformcurrency(cotizacion.rentaext) },\n { \"estilo\": \"\", \"concepto\": \"Renta en Depósito\", \"importe1\":\"\", \"importe2\":this.transformcurrency(cotizacion.tentaant)},\n { \"estilo\": \"\", \"concepto\": \"Renta Anticipada\", \"importe1\":\"\", \"importe2\":this.transformcurrency(cotizacion.rentaendepo) },\n { \"estilo\": \"\", \"concepto\": \"Comisión\", \"importe1\":\"1.95%\", \"importe2\": this.transformcurrency(cotizacion.comisionapertura) },\n { \"estilo\": \"\", \"concepto\": \"Seguro Primer Año\", \"importe1\":\"\", \"importe2\": this.transformcurrency(cotizacion.seguro) },\n // { \"estilo\": \"negrita\", \"concepto\": \"Pago Inicial Total\", \"importe1\": \"\", \"importe2\": this.transformcurrency(cotizacion.pinicial) },\n //{\"concepto\": \"Tasa de Interes\", \"importe1\": cotizacion.tinteres},\n ],\n \"totales\": {\n \"totalFinanciar\": { \"concepto\": \"Monto Total a Arrendar\", \"valor\":this.transformcurrency(cotizacion.montoFinanciar) },\n \"plazo\": { \"concepto\": \"Plazo\", \"valor\":cotizacion.plazo },\n // \"tasa\": { \"concepto\": \"Tasa\", \"valor\": cotizacion.tazan+'%' },\n \"mensual\": { \"concepto\": \"Rental Mensual \", \"valor\":this.transformcurrency(cotizacion.mensualidad) },\n \"pagoInicial\": { \"concepto\": \"Pago Inicial Total\", \"valor\":this.transformcurrency(cotizacion.pinicial) },\n \"fecha\": { \"concepto\": \"Fecha\", \"valor\": fechaVerdadera(date) },\n },\n \"cat\":{\n \"display\":'none',\n \"valor\": 1\n }\n }\n }\n\n return vehiculos;\n }\n async armartabla(cotizacion){\n var tabla : any = [];\n var tabla_return = [];\n let data;\n //consulta de tabla de amortizacion\n let tamor = {\n plazo : cotizacion.plazon,\n mensualidad : cotizacion.mensualidad,\n tmensual : cotizacion.tasamensual,\n sinsoluto : cotizacion.mfinanciar\n }\n tabla = await this.selTAmortizacion(tamor);\n for(var i=0;i<=tabla.length-1;i++){\n data = {\"fila\": [\n {\"cel\": i+1},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].pinsoluto)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].pcapital)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].interes)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].iva_int)},\n {\"cel\": this.transformcurrencydecimales(tabla[i][0].mensualidad)}\n ]};\n tabla_return.push(data);\n }\n return tabla_return;\n }\n createpdf(jsonData){\n this.store.dispatch(MostrarSpinner());\n this.spinner = true;\n return new Promise(async (resolve, reject) => {\n this.srvcoal.postService('cotizador/generaPDF',jsonData).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n this.store.dispatch(OcultarSpinner());\n this.spinner = false;\n resolve(res.pdf);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n });\n }\n selTAmortizacion(body){\n this.store.dispatch(MostrarSpinner());\n return new Promise(async (resolve, reject) => {\n this.srvcoal.postService('credito/selTAmortizacion',body).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n resolve(res.recordsets);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n });\n }\n\n selCat(body){\n this.store.dispatch(MostrarSpinner());\n return new Promise(async (resolve, reject) => {\n this.srvcoal.postService('credito/selCat',body).subscribe((res: any) => {\n if (res.err) {\n this.store.dispatch(MostrarExcepcion({pila:res.error, tipoExcepcion: 4}))\n } else if (res.excepcion) {\n this.store.dispatch(MostrarExcepcion({pila:res.excepcion, tipoExcepcion: 3}))\n } else {\n //console.log(\"Entra\");\n // console.log(res.recordsets[0][0]);\n resolve(res.recordsets);\n }\n this.store.dispatch(OcultarSpinner())\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner())\n this.store.dispatch(MostrarExcepcion({pila:error, tipoExcepcion: 2}))\n });\n });\n }\n getAccessKikoya(){\n this.store.dispatch(MostrarSpinner());\n\n this.user = this.baseService.getUserData();\n console.log(this.user);\n\n if( this.user === null ){\n this.store.dispatch(OcultarSpinner());\n this.dialogRef.close();\n this.snackBar.open('Para solicitar tu Pre-Aprobación debes iniciar sesión', 'Ok', { duration: 10000 });\n this.router.navigateByUrl('/sign-in');\n }\n else{\n // let param = {\n // idUsuarioFront: this.user.user.idUsuario\n // }\n if(this.isSafari){\n var windowReference = window.open('assets/images/redireccionandokikoya.png');\n }\n\n let param = {\n \"idUsuarioFront\"\t: this.user.user.idUsuario,\n \"financing_period\" : Math.round(this.cotizacion2.selected.plazon),\n \"financing_amount\" : (this.cotizacion2.selected.mfinanciar === undefined) ? Math.round(this.cotizacion2.selected.montoFinanciar) : Math.round(this.cotizacion2.selected.mfinanciar),\n \"down_payment\" : (this.cotizacion2.selected.enganche === undefined) ? 0 : Math.round(this.cotizacion2.selected.enganche),\n \"montly_payment\" : Math.round(this.cotizacion2.selected.mensualidad)\n }\n\n // console.log(\"param\", param);\n\n\n this.srvcoal.postService(`cotizador/k_proyectos`, param).subscribe((res: any) => {\n this.store.dispatch(OcultarSpinner());\n if(this.isSafari){\n windowReference.location.href = res.recordsets.redirect;\n }\n else{\n window.open( res.recordsets.redirect );\n }\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n\n }\n }\n\n transformcurrency(transform){\n return this.cp.transform(transform, 'USD', 'symbol', '1.0-0');\n }\n\n transformcurrencydecimales(transform){\n return this.cp.transform(transform, 'USD', 'symbol', '1.2-2');\n }\n\n guardarInfo( res ){\n let dataInfo = {\n plasosSeleccionados: this.plazosSeleccionados,\n operacion: this.baseService.getOperacionData()\n }\n\n let param = {\n tipoAuto\t: ( res.tipoAuto == 'Nuevo' ) ? 1 : 2,//\t'1.-. Nuevo y 2..- para seminuevo',\n estadoFinanciero : ( res.financiamiento == 'Crédito' ) ? 1 : ( res.financiamiento == 'Arrendamiento Puro' ) ? 2 : 3,//\t'1.- Credito, 2.- Arrendamiento, 3.- Arrendamiento todo incluido',\n comentarios :\tres.comentarios,\n tipoContacto\t: ( res.medioContacto == '' ) ? null : ( res.medioContacto == 'whats' ) ? 1 : ( res.medioContacto == 'email' ) ? 2 : 3,//\t'1.- whatsapp, 2.- Correo, 3.-',\n contacto\t\t:\tres.datoContacto,\n nombre : res.nombre,\n razonsocial : res.razonSocial,\n jsondata: JSON.stringify( dataInfo )\n }\n \n this.srvcoal.postService(`cotizador/InsCotizacion`, param).subscribe((res: any) => {\n \n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n}\n\n\nfunction fechaVerdadera(date) {\n const dias = [\"Dom\", \"Lun\", \"Mar\", \"Mie\", \"Jue\", \"Vie\", \"Sab\"];\n const meses = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];\n const dt = new Date(date);\n const dtGMT = dt.toUTCString();\n\n const hour = (dt.getUTCHours() < 10) ? '0' + dt.getUTCHours() : dt.getUTCHours();\n const min = (dt.getUTCMinutes() < 10) ? '0' + dt.getUTCMinutes() : dt.getUTCMinutes();\n let fecha = `${dt.getUTCDate()} ${meses[dt.getUTCMonth()]}, ${dt.getUTCFullYear()}`\n\n return fecha;\n}\n\nfunction round2Fixed(value) {\n value = +value;\n\n if (isNaN(value))\n return NaN;\n\n // Shift\n value = value.toString().split('e');\n value = Math.round(+(value[0] + 'e' + (value[1] ? (+value[1] + 2) : 2)));\n\n // Shift back\n value = value.toString().split('e');\n return (+(value[0] + 'e' + (value[1] ? (+value[1] - 2) : -2))).toFixed(2);\n}\n","
\n \n
\n

5Elige las opciones deseadas

\n

5Elige las opciones deseadas

\n
\n

\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n \n
\n
{{car.marca}} {{car.modelo}} {{car.version}} {{car.anio}}
\n
\n
\n
\n {{car.precio | currency : 'USD' : 'symbol' : '1.0-0'}}\n
\n \n
\n
\n
\n
\n \n \n \n
\n \n
\n \n \n
\n
\n
\n {{item.plazo}}\n
\n
\n
\n Pago Inicial : {{item.pinicial | currency : 'USD' : 'symbol' : '1.0-0'}}\n
\n
\n
\n Pago Mensual\n
\n
\n Renta Mensual\n
\n
\n (Incluye I.V.A)\n
\n
\n {{item.mensualidad | currency : 'USD' : 'symbol' : '1.0-0'}}\n
\n \n
\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n \n \n
\n \n
\n
\n
\n\n
\n
\n \n
\n
{{car.marca}} {{car.modelo}} {{car.version}} {{car.anio}}
\n
\n
\n
\n {{car.precio | currency : 'USD' : 'symbol' : '1.0-0'}}\n
\n \n
\n
\n
\n\n
\n \n \n
\n
\n
\n {{item.plazo}}\n
\n
\n
\n Pago Inicial : {{item.pinicial | currency : 'USD' : 'symbol' : '1.0-0'}}\n
\n
\n
\n Pago Mensual\n
\n
\n Renta Mensual\n
\n
\n (Incluye I.V.A)\n
\n
\n {{item.mensualidad | currency : 'USD' : 'symbol' : '1.0-0'}}\n
\n \n
\n
\n
\n
\n
\n
\n\n
\n \n \n
\n","\n\n \n \n
\n
\n
\n
\n
\n

{{ dataUnidad?.modelo }} {{ dataUnidad?.version }} {{ dataUnidad?.anio }}

\n

{{ dataUnidad?.marca }}

\n
\n
\n
\n
\n
{{ cotizacion2?.precio | currency : 'USD' : 'symbol' : '1.0-0'}}
\n
Precio
\n
\n

Precio vigente al {{ cotizacion2?.labelVigencia }}.\n Expresado en moneda nacional con IVA incluido.
\n Unidad sujeta a disponibilidad.

\n
\n
\n
\n \n
\n
\n
\n
Plazo
\n
{{ cotizacion2?.selected?.plazo }}
\n
\n
\n
\n
\n \n
Tasa
\n
{{ cotizacion2?.selected?.tazan }} %
\n
\n
\n
\n
\n
\n
Pago Mensual
\n
Renta Mensual
\n
{{ cotizacion2?.selected?.mensualidad | currency : 'USD' : 'symbol' : '1.0-0'}}
\n
\n
\n\n\n
\n \n
\n
\n
\n
\n
\n
\n
Plazo
\n
{{ cotizacion2?.selected?.plazo }}
\n
\n
\n
\n
\n \n
Tasa
\n
{{ cotizacion2?.selected?.tazan }} %
\n
\n
\n
\n
\n
\n
Pago Mensual
\n
Renta Mensual
\n
{{ cotizacion2?.selected?.mensualidad | currency : 'USD' : 'symbol' : '1.0-0'}}
\n
\n
\n
\n\n \n \n

Las imágenes mostradas sólo son para fines ilustrativos.

\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n \n
","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n@Component({\n selector: 'app-slide-panel',\n templateUrl: './slide-panel.component.html',\n styleUrls: ['./slide-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('slide', [\n state('panel1', style({ transform: 'translateX(0)' })),\n state('panel2', style({ transform: 'translateX(-20%)' })),\n state('panel3', style({ transform: 'translateX(-40%)' })),\n state('panel4', style({ transform: 'translateX(-60%)' })),\n state('panel5', style({ transform: 'translateX(-80%)' })),\n // state('panel6', style({ transform: 'translateX(-250%)' })),\n transition('* => *', animate(300))\n ])\n ]\n})\nexport class SlidePanelComponent implements OnInit {\n\n @Input() activePane = 'panel1';\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
\n
\n
\n
\n
\n
\n \n
","import { Component, OnInit, Inject } from '@angular/core';\nimport {MatDialog, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport { BaseService } from 'app/services/base.service';\nimport { DatePipe } from '@angular/common';\nimport { CoalService } from 'app/services/coal.service';\n\n@Component({\n selector: 'app-descargar-pdf',\n templateUrl: './descargar-pdf.component.html',\n styleUrls: ['./descargar-pdf.component.scss']\n})\nexport class DescargarPDFComponent implements OnInit {\n favoriteSeason: string;\n medioContacto: string = null;\n seasons: string[] = ['Arrendamiento Puro', 'Arrendamiento todo incluido', 'Crédito'];\n contactos: string[] = ['whats', 'llamada', 'email'];\n\n isCheckedPersona: boolean =false;\n isCheckedTipoAuto: boolean =false;\n\n nombre: string = '';\n razonSocial: string = '';\n comentarios: string = '';\n datoContacto: string = '';\n datos: { tipoPersona: string; tipoAuto: string; nombre: string; razonSocial: string; financiamiento: string; comentarios: string; medioContacto: string; datoContacto: string; };\n user: any;\n operacion: any;\n\n showAlert: boolean = false;\n alert: { type: string; message: string } = {\n\t\ttype: 'success',\n\t\tmessage: ''\n\t};\n\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data,\n private baseService: BaseService,\n private datePipe : DatePipe,\n private srvcoal: CoalService\n ) { }\n\n ngOnInit(): void {\n this.user = this.baseService.getUserData();\n if( this.user ){\n this.nombre = this.user.user.name + ' ' + this.user.user.firstName + ' ' + this.user.user.lastName;\n this.isCheckedPersona = ( this.user.user.idTipoPersona == 'moral' ? true : false )\n }\n\n this.operacion = this.baseService.getOperacionData();\n if( this.operacion ){\n switch ( this.operacion.cotizacion.tipoFinanciamiento ) {\n case 1:\n this.favoriteSeason = 'Crédito';\n break;\n\n case 2:\n this.favoriteSeason = 'Arrendamiento Puro';\n break;\n\n case 3:\n this.favoriteSeason = 'Arrendamiento todo incluido';\n break;\n default:\n break;\n }\n }\n console.log('this.operacion',this.operacion);\n\n }\n\n guardarFormulario(){\n this.datos = {\n tipoPersona : ( this.isCheckedPersona ) ? 'Persona Moral' : 'Persona Física',\n tipoAuto : ( this.isCheckedTipoAuto ) ? 'Seminuevo' : 'Nuevo',\n nombre: this.nombre,\n razonSocial: this.razonSocial,\n financiamiento: this.favoriteSeason,\n comentarios: this.comentarios,\n medioContacto: this.medioContacto,\n datoContacto: this.datoContacto\n }\n\n if( this.medioContacto == 'email' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/) ){\n // alert('El email que metiste no corresponde a un formato valido')\n this.alert = {\n type : 'danger',\n message: 'El email proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n }\n\n if( this.medioContacto == 'llamada' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^(\\d{2})-(\\d{4})-(\\d{4})$/) ){\n this.alert = {\n type : 'danger',\n message: 'El teléfono proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n } \n\n this.sendmail();\n this.dialogRef.close( this.datos );\n }\n\n cambiarFormato( value: string ){\n\n if( this.datoContacto.length == 0 ){\n this.showAlert = false;\n return false;\n }\n\n if( this.datoContacto.length < 10 ){\n this.alert = {\n type : 'danger',\n message: 'El teléfono proporcionado debe contener al menos 10 dígitos.'\n };\n this.showAlert = true;\n\n return false;\n }\n else{\n this.showAlert = false;\n }\n\n const telefonoFormateado = this.datoContacto.replace(/(\\d{2})(\\d{4})(\\d{4})/, \"$1-$2-$3\");\n \n this.datoContacto = telefonoFormateado;\n }\n\n numerosFormato(){\n const sinEspacions = this.datoContacto.replace(/-/g, \"\");\n this.datoContacto = sinEspacions \n }\n \n setMedioContacto( medio ){\n this.medioContacto = medio;\n this.datoContacto = '';\n }\n\n validateValue(value, regex) {\n return regex.test(value);\n }\n\n valideKey(evt){\n\t\t\t\n // code is the decimal ASCII representation of the pressed key.\n var code = (evt.which) ? evt.which : evt.keyCode;\n \n if(code==8) { // backspace.\n return true;\n } else if(code>=48 && code<=57) { // is a number.\n return true;\n } else{ // other keys.\n return false;\n }\n }\n\n openWhastapp(){\n window.open('https://wa.me/525510125098?text=Hola,%20quiero%20más%20información%20sobre%20la%20cotización.');\n }\n\n sendmail(){\n var finan;\n var tipo;\n var auto;\n if(this.isCheckedPersona){\n tipo = 'Persona Física';\n }else{\n tipo = 'Persona Física';\n }\n if(this.isCheckedTipoAuto){\n auto = 'Seminuevo'\n }else{\n auto = 'Nuevo'\n }\n switch ( this.operacion.cotizacion.tipoFinanciamiento ) {\n case 1:\n finan = 'Crédito';\n break;\n\n case 2:\n finan = 'Arrendamiento Puro';\n break;\n\n case 3:\n finan = 'Arrendamiento todo incluido';\n break;\n default:\n break;\n }\n let data = {\n from: 'Cotizador Integra',\n correos: 'dgvampir@gmail.com,alex9abril@gmail.com',\n tpersona : tipo,\n tauto : auto,\n solicitante : this.nombre,\n pinteres : finan,\n comentarios : this.comentarios,\n fcontacto : this.datoContacto,\n fecha : this.datePipe.transform(new Date(), 'dd/MM/yyyy')\n }\n this.srvcoal.postLocalService('Email/SenMailContactoIntegra', data).subscribe(\n (data: any) => {\n //console.log(data);\n console.log(\"Correo enviado\");\n }, (error: any) => {\n }\n );\n }\n}\n","
\n \n
\n

Ayúdanos a ofrecerte una cotización más personalizada

\n\n
\n
\n
\n
\n
\n Tipo de Persona\n
\n
\n
\n
\n Persona Física\n
\n
\n \n \n
\n
\n Persona Moral\n
\n
\n
\n \n
\n
\n
\n Estoy Interesado en un auto:\n
\n
\n
\n
\n Nuevo\n
\n
\n \n \n
\n
\n Seminuevo\n
\n
\n
\n
\n\n
\n
\n
\n Ingresa una Razón Social\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n ¿Cual es tu nombre?\n
\n
\n \n
\n
\n\n
\n
\n
\n ¿Cúal es el financiamiento de su interés?\n
\n
\n
\n \n \n
{{season}}
\n
\n \n \n
\n
\n\n
\n
\n
\n Comentarios\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n ¿Cómo te gustaria que te contactáramos?\n
\n
\n \n \n \"\"\n \n \n
\n\n
\n
\n
\n
\n
\n
\n \"\"\n
\n
\n \"\"\n
\n
\n \"\"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n Indique un correo electrónico\n Ingrese un número de teléfono\n
\n
\n
\n \n\n \n
\n 10 Caracteres\n
\n
\n
\n\n
\n
\n
\n \n
\n {{alert.message}}\n
\n
\n
\n
\n\n
\n \n
\n
","import { Component, OnInit, Inject, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AngularFireAuth } from '@angular/fire/compat/auth';\nimport {MatDialog, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { BaseService } from 'app/services/base.service';\nimport { CoalService } from 'app/services/coal.service';\nimport { AppState } from 'app/store/app.states';\nimport { Store } from '@ngrx/store';\nimport { FuseAlertType } from '@fuse/components/alert';\nimport { MostrarExcepcion, MostrarSpinner, OcultarSpinner } from 'app/store/actions/utils.action';\nimport { LogIn } from 'app/store/actions/auth.actions';\nimport { ReCaptcha2Component } from 'ngx-captcha';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from 'environments/environment';\nimport { DatePipe } from '@angular/common';\nimport { DialogPoliticasComponent } from 'app/utilerias/site/dialog-politicas/dialog-politicas.component';\n\n@Component({\n selector: 'app-dialog-preaprobacion',\n templateUrl: './dialog-preaprobacion.component.html',\n styleUrls: ['./dialog-preaprobacion.component.scss']\n})\nexport class DialogPreaprobacionComponent implements OnInit {\n\n favoriteSeason: string;\n medioContacto: string = null;\n seasons: string[] = ['Arrendamiento Puro', 'Arrendamiento todo incluido', 'Crédito'];\n contactos: string[] = ['whats', 'llamada', 'email'];\n\n isCheckedPersona: boolean =false;\n isCheckedTipoAuto: boolean =false;\n\n nombre: string = '';\n razonSocial: string = '';\n comentarios: string = '';\n datoContacto: string = '';\n datos: { tipoPersona: string; tipoAuto: string; nombre: string; razonSocial: string; financiamiento: string; comentarios: string; medioContacto: string; datoContacto: string; };\n user: any;\n operacion: any;\n\n usrType: boolean = true;\n usrNombre: string;\n usrApellidos: string;\n usrApellidoPaterno: string;\n usrApellidoMaterno: string;\n usrCorreo: string;\n usrPass: string;\n usrPassConfirm: string;\n\n isLogin: boolean = false;\n\n showAlert: boolean = false;\n alert: { type: string; message: string } = {\n\t\ttype: 'success',\n\t\tmessage: ''\n\t};\n //captcha\n\tsignInForm: FormGroup;\n public readonly siteKey = '6LfeDY4kAAAAAJlES_oO2X-REE6tsTjMAKHbn7S-';\n public captchaIsLoaded = false;\n public captchaSuccess = false;\n public captchaIsExpired = false;\n public captchaResponse?: string;\n\n public theme: 'light' | 'dark' = 'light';\n public size: 'compact' | 'normal' = 'compact';\n public lang = 'es';\n public type: 'image' | 'audio';\n public useGlobalDomain: boolean = false;\n @ViewChild('captchaElem', { static: false }) captchaElem: ReCaptcha2Component;\n signUpForm: FormGroup;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data,\n private baseService: BaseService,\n private srvcoal: CoalService,\n private store: Store,\n private snackBar: MatSnackBar,\n public auth: AngularFireAuth,\n private cdr: ChangeDetectorRef,\n\t\tprivate formBuilder: FormBuilder,\n private httpClient: HttpClient,\n private datePipe : DatePipe,\n public dialog: MatDialog,\n private _formBuilder: FormBuilder\n ) { }\n\n ngOnInit(): void {\n this.user = this.baseService.getUserData();\n this.signInForm = this.formBuilder.group({\n recaptcha: ['', Validators.required]\n\t\t});\n if( this.user ){\n this.nombre = this.user.user.name + ' ' + this.user.user.firstName + ' ' + this.user.user.lastName;\n this.isCheckedPersona = ( this.user.user.idTipoPersona == 'moral' ? true : false )\n this.isLogin = true;\n }\n\n this.operacion = this.baseService.getOperacionData();\n if( this.operacion ){\n switch ( this.operacion.cotizacion.tipoFinanciamiento ) {\n case 1:\n this.favoriteSeason = 'Crédito';\n break;\n\n case 2:\n this.favoriteSeason = 'Arrendamiento Puro';\n break;\n\n case 3:\n this.favoriteSeason = 'Arrendamiento todo incluido';\n break;\n default:\n break;\n }\n }\n console.log('this.operacion',this.operacion);\n\n this.signUpForm = this._formBuilder.group({\n agreements : [false, Validators.requiredTrue],\n condiciones : [false, Validators.requiredTrue]\n }\n );\n }\n sendmail(){\n var finan;\n var tipo;\n var auto;\n if(this.isCheckedPersona){\n tipo = 'Persona Física';\n }else{\n tipo = 'Persona Física';\n }\n switch ( this.operacion.cotizacion.tipoFinanciamiento ) {\n case 1:\n finan = 'Crédito';\n break;\n\n case 2:\n finan = 'Arrendamiento Puro';\n break;\n\n case 3:\n finan = 'Arrendamiento todo incluido';\n break;\n default:\n break;\n }\n if(this.isCheckedTipoAuto){\n auto = 'Seminuevo'\n }else{\n auto = 'Nuevo'\n }\n let data = {\n from: 'Cotizador Integra',\n tpersona : tipo,\n solicitante : this.usrNombre+' '+this.usrApellidoMaterno+' '+this.usrApellidoPaterno,\n tauto : auto,\n pinteres : finan,\n comentarios : this.comentarios,\n fcontacto : this.datoContacto,\n fecha : this.datePipe.transform(new Date(), 'dd/MM/yyyy')\n }\n if(this.datoContacto.trim().length!=0){\n this.srvcoal.postLocalService('Email/SenMailContactoIntegra', data).subscribe(\n (data: any) => {\n //console.log(data);\n console.log(\"Correo enviado\");\n }, (error: any) => {\n }\n );\n }\n }\n guardarFormulario(){\n if( this.isLogin ){ // Ya esta logeado\n this.formClose();\n }\n else{\n if( this.usrType ){ // Registro\n this.validaFormularioRegistro();\n }\n else{\n this.iniciarSesion(); // Iniciar sesion\n }\n }\n\n return false;\n }\n\n formClose(){\n this.user = this.baseService.getUserData();\n\n if( this.user ){\n this.nombre = this.user.user.name + ' ' + this.user.user.firstName + ' ' + this.user.user.lastName;\n this.isCheckedPersona = ( this.user.user.idTipoPersona == 'moral' ? true : false )\n this.isLogin = true;\n }\n\n this.datos = {\n tipoPersona : ( this.isCheckedPersona ) ? 'Persona Moral' : 'Persona Física',\n tipoAuto : ( this.isCheckedTipoAuto ) ? 'Seminuevo' : 'Nuevo',\n nombre: this.nombre,\n razonSocial: this.razonSocial,\n financiamiento: this.favoriteSeason,\n comentarios: this.comentarios,\n medioContacto: this.medioContacto,\n datoContacto: this.datoContacto\n }\n\n if( this.medioContacto == 'email' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/) ){\n this.alert = {\n type : 'danger',\n message: 'El email proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n }\n\n if( this.medioContacto == 'llamada' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^(\\d{2})-(\\d{4})-(\\d{4})$/) ){\n this.alert = {\n type : 'danger',\n message: 'El teléfono proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n } \n\n this.sendmail();\n this.dialogRef.close( this.datos );\n }\n\n openDialog( tipo:string) {\n const dialogRef = this.dialog.open(DialogPoliticasComponent, {\n // width: '1000px',\n data: {tipoagreements: tipo},\n });\n\n dialogRef.afterClosed().subscribe(result => {\n console.log(`Dialog result: ${result}`);\n });\n }\n\n cambiarFormato( value: string ){\n\n if( this.datoContacto.length == 0 ){\n this.showAlert = false;\n return false;\n }\n\n if( this.datoContacto.length < 10 ){\n this.alert = {\n type : 'danger',\n message: 'El teléfono proporcionado debe contener al menos 10 dígitos.'\n };\n this.showAlert = true;\n\n return false;\n }\n else{\n this.showAlert = false;\n }\n\n const telefonoFormateado = this.datoContacto.replace(/(\\d{2})(\\d{4})(\\d{4})/, \"$1-$2-$3\");\n \n this.datoContacto = telefonoFormateado;\n }\n\n numerosFormato(){\n const sinEspacions = this.datoContacto.replace(/-/g, \"\");\n this.datoContacto = sinEspacions \n }\n \n setMedioContacto( medio ){\n this.medioContacto = medio;\n this.datoContacto = '';\n }\n\n validateValue(value, regex) {\n return regex.test(value);\n }\n\n iniciarSesion() {\n if(!this.signInForm.valid){\n this.alert = {\n type: 'danger',\n message: 'Captcha incorrecto'\n };\n this.showAlert = true;\n return 0;\n }\n else if( this.medioContacto == 'email' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/) ){\n // alert('El email que metiste no corresponde a un formato valido')\n this.alert = {\n type : 'danger',\n message: 'El email proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n }\n else if( this.medioContacto == 'llamada' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^(\\d{2})-(\\d{4})-(\\d{4})$/) ){\n this.alert = {\n type : 'danger',\n message: 'El teléfono proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n }\n\n \n\t\tconst payload = {\n\t\t\temail: this.usrCorreo,\n\t\t\tpassword: this.usrPass,\n\t\t\ttoken: ''\n\t\t};\n\n\t\tthis.auth.signInWithEmailAndPassword(payload.email, payload.password)\n\t\t.then((userCredential) => {\n\t\t\t// Signed in\n\t\t\tlet user = userCredential.user;\n\t\t\tconsole.log(user);\n\t\t\t// if (user.emailVerified == false) {\n\t\t\t// \tthis.alert = {\n\t\t\t// \t\ttype : 'error',\n\t\t\t// \t\tmessage: 'No existe registro correspondiente a este correo electrónico.'\n\t\t\t// \t};\n\t\t\t// \tthis.showAlert = true;\n\t\t\t// }\n\t\t\tthis.signIn(payload);\n\t\t},(error) => {\n\t\t\tlet errorCode = error.code;\n\t\t\tlet errorMessage = (error.message).replace('Firebase: ','');\n\n\t\t\tif (errorCode == 'auth/user-not-found') {\n\t\t\t\tthis.alert = {\n\t\t\t\t\ttype : 'danger',\n\t\t\t\t\tmessage: 'No existe registro correspondiente a este correo electrónico.'\n\t\t\t\t};\n\t\t\t\tthis.showAlert = true;\n\t\t\t} else {\n\t\t\t\tthis.alert = {\n\t\t\t\t\ttype : 'danger',\n\t\t\t\t\tmessage: `Algo salió mal. Por favor, valide que su contraseña y correo electrónico sean correctos.`\n\t\t\t\t};\n\t\t\t\tthis.showAlert = true;\n\t\t\t\t// alert();\n\t\t\t}\n\t\t});\n\t\treturn;\n\t}\n\n signIn(payload){\n\t\tthis.store.dispatch(MostrarSpinner());\n\t\tthis.store.dispatch(LogIn(payload));\n setTimeout(() => {\n this.formClose();\n }, 2000);\n\t\t// return;\n\t}\n\n validaFormularioRegistro(){\n console.log( 'validaFormularioRegistro', this.signUpForm.valid );\n \n const correoRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n if (!this.usrNombre || this.usrNombre.trim().length === 0) {\n this.alert = {\n type: 'danger',\n message: 'El campo de nombre es requerido y no debe estar vacío.'\n };\n this.showAlert = true;\n } else if (!this.usrApellidoPaterno || this.usrApellidoPaterno.trim().length === 0) {\n this.alert = {\n type: 'danger',\n message: 'El campo de apellido paterno es requerido y no debe estar vacío.'\n };\n this.showAlert = true;\n } else if (!this.usrApellidoMaterno || this.usrApellidoMaterno.trim().length === 0) {\n this.alert = {\n type: 'danger',\n message: 'El campo de apellido materno es requerido y no debe estar vacío.'\n };\n this.showAlert = true;\n } else if (!this.usrPass || this.usrPass.trim().length < 6) {\n this.alert = {\n type: 'danger',\n message: 'La contraseña es demasiado corta, debe tener al menos 6 caracteres.'\n };\n this.showAlert = true;\n } else if (this.usrPassConfirm !== this.usrPass) {\n this.alert = {\n type: 'danger',\n message: 'Las contraseñas no coinciden.'\n };\n this.showAlert = true;\n }\n else if( !this.signUpForm.valid ){\n this.alert = {\n type: 'danger',\n message: 'Debes aceptar el Aviso de Privacidad y Términos y condiciones.'\n };\n this.showAlert = true;\n }\n else if ( !this.usrCorreo || this.usrCorreo.trim().length === 0) {\n this.alert = {\n type: 'danger',\n message: 'El campo de correo electrónico está vacío.'\n };\n this.showAlert = true;\n } else if (!correoRegex.test(this.usrCorreo)) {\n this.alert = {\n type: 'danger',\n message: 'El formato del correo electrónico es inválido.'\n };\n this.showAlert = true;\n }\n else {\n if(this.signInForm.valid){\n // código para el caso en que todos los campos tengan valores\n\n if( this.medioContacto == 'email' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/) ){\n // alert('El email que metiste no corresponde a un formato valido')\n this.alert = {\n type : 'danger',\n message: 'El email proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n }\n else if( this.medioContacto == 'llamada' ){\n if( this.datoContacto != '' ){\n if( !this.validateValue(this.datoContacto,/^(\\d{2})-(\\d{4})-(\\d{4})$/) ){\n this.alert = {\n type : 'danger',\n message: 'El teléfono proporcionado no corresponde a un formato válido.'\n };\n this.showAlert = true;\n return false;\n }\n }\n }\n else{\n this.signUpFireBase();\n }\n }else{\n this.alert = {\n type: 'danger',\n message: 'Captcha incorrecto'\n };\n this.showAlert = true;\n }\n }\n }\n\n signUpFireBase(): void {\n\n\t\t// Hide the alert\n\t\tthis.showAlert = false;\n\n\t\tthis.auth.createUserWithEmailAndPassword(this.usrCorreo, this.usrPass)\n\t\t.then((result) => {\n\t\t\tconsole.log('-------------------');\n\t\t\tconsole.log(result);\n\t\t\tthis.signUp();\n\n\t\t}, (error) => {\n\n\t\t\tlet errorCode = error.code;\n\t\t\tlet errorMessage = (error.message).replace('Firebase: ','');\n\n\t\t\tif (errorCode == 'auth/weak-password') {\n\t\t\t\tthis.alert = {\n\t\t\t\t\ttype : 'danger',\n\t\t\t\t\tmessage: 'La contraseña es demasiado vulnerable, debe tener al menos 6 caracteres.'\n\t\t\t\t};\n\t\t\t\tthis.showAlert = true;\n\t\t\t}else if (errorCode == 'auth/email-already-in-use') {\n\t\t\t\tthis.alert = {\n\t\t\t\t\ttype : 'danger',\n\t\t\t\t\tmessage: 'Otro usuario ya está utilizando el correo electrónico proporcionado.'\n\t\t\t\t};\n\t\t\t\tthis.showAlert = true;\n\t\t\t} else {\n\t\t\t\tthis.alert = {\n\t\t\t\t\ttype : 'danger',\n\t\t\t\t\tmessage: `Asegurate que los datos que proporcionas sean correctos`\n\t\t\t\t};\n\t\t\t\tthis.showAlert = true;\n\t\t\t\t// alert();\n\t\t\t}\n\t\t });\n\t}\n\n signUp(): void {\n let parametros = {\n nombre : this.usrNombre,\n primerApellido : this.usrApellidoPaterno,\n segundoApellido : this.usrApellidoMaterno,\n tipoPersona : (this.isCheckedPersona) ? 'moral' : 'fisica',\n email : this.usrCorreo,\n password : this.usrPass,\n token \t\t: '',\n agreements : true,\n condiciones : true\n }\n\t\t// Sign up\n\t\tthis.srvcoal.postService(`seguridad/createAccount`,parametros)\n\t\t.subscribe(\n\t\t\t(res: any) => {\n\t\t\t\tif (res.error) {\n\n\t\t\t\t\t// Set the alert\n\t\t\t\t\tthis.alert = {\n\t\t\t\t\t\ttype : 'danger',\n\t\t\t\t\t\tmessage: 'Asegurate que los datos que proporcionas sean correctos.'\n\t\t\t\t\t};\n\t\t\t\t\t// Show the alert\n\t\t\t\t\tthis.showAlert = true;\n\t\t\t\t} else if (res.excepcion) {\n\n\t\t\t\t\t// Set the alert\n\t\t\t\t\tthis.alert = {\n\t\t\t\t\t\ttype : 'danger',\n\t\t\t\t\t\tmessage: 'Asegurate que los datos que proporcionas sean correctos.'\n\t\t\t\t\t};\n\t\t\t\t\t// Show the alert\n\t\t\t\t\tthis.showAlert = true;\n\t\t\t\t} else {\n\t\t\t\t\tlet respuesta = res.recordsets[0][0];\n\t\t\t\t\t// this._router.navigateByUrl('/confirmation-required');\n\t\t\t\t\tconst payload = {\n\t\t\t\t\t\temail: this.usrCorreo,\n\t\t\t\t\t\tpassword: this.usrPass,\n\t\t\t\t\t\ttoken: ''\n\t\t\t\t\t};\n\t\t\t\t\tthis.store.dispatch(MostrarSpinner());\n\t\t\t\t\tthis.store.dispatch(LogIn(payload));\n\n setTimeout(() => {\n this.formClose();\n }, 2000);\n\n\t\t\t\t}\n\t\t\t}, (error: any) => {\n\n\t\t\t\tthis.alert = {\n\t\t\t\t\ttype : 'danger',\n\t\t\t\t\tmessage: 'Algo salió mal. Por favor, vuelva a intentarlo.'\n\t\t\t\t};\n\t\t\t\t// Show the alert\n\t\t\t\tthis.showAlert = true;\n\t\t\t}\n\t\t)\n\n this.sendmail();\n }\n\n handleReset(): void {\n this.captchaSuccess = false;\n this.captchaResponse = undefined;\n this.captchaIsExpired = false;\n this.cdr.detectChanges();\n }\n\n handleSuccess(captchaResponse: string): void {\n this.captchaSuccess = true;\n this.captchaResponse = captchaResponse;\n this.captchaIsExpired = false;\n this.cdr.detectChanges();\n }\n\n handleLoad(): void {\n this.captchaIsLoaded = true;\n this.captchaIsExpired = false;\n this.cdr.detectChanges();\n }\n\n handleExpire(): void {\n this.captchaSuccess = false;\n this.captchaIsExpired = true;\n this.cdr.detectChanges();\n }\n\n changeTheme(theme: 'light' | 'dark'): void {\n this.theme = theme;\n }\n\n changeSize(size: 'compact' | 'normal'): void {\n this.size = size;\n }\n\n changeType(type: 'image' | 'audio'): void {\n this.type = type;\n }\n\n setUseGlobalDomain(use: boolean): void {\n this.useGlobalDomain = use;\n }\n\n getCurrentResponse(): void {\n const currentResponse = this.captchaElem.getCurrentResponse();\n if (!currentResponse) {\n alert('Captcha incorrecto');\n } else {\n alert(currentResponse);\n }\n }\n\n getResponse(): void {\n const response = this.captchaElem.getResponse();\n if (!response) {\n alert('Captcha incorrecto');\n } else {\n alert(response);\n }\n }\n\n reload(): void {\n this.captchaElem.reloadCaptcha();\n }\n\n getCaptchaId(): void {\n alert(this.captchaElem.getCaptchaId());\n }\n\n reset(): void {\n this.captchaElem.resetCaptcha();\n }\n}\n","
\n \n
\n

¿Ya tienes una cuenta?\n Inicia sesión aquí\n
Inicio de sesión
\n

\n\n

Ayúdanos a ofrecerte una atención más personalizada

\n\n
\n
\n
\n
\n
\n
\n
\n Correo *\n \n
\n
\n
\n
\n
\n
\n Contraseña *\n \n
\n
\n
\n
\n
\n
\n\n

¿No la tienes aún?
\n Inicia aquí tu aprobación de crédito\n Registrate aquí\n

\n\n
\n
\n
\n
\n
\n Tipo de Persona\n
\n
\n
\n
\n Persona Física\n
\n
\n \n \n
\n
\n Persona Moral\n
\n
\n
\n \n
\n
\n
\n Estoy Interesado en un auto:\n
\n
\n
\n
\n Nuevo\n
\n
\n \n \n
\n
\n Seminuevo\n
\n
\n
\n
\n\n
\n
\n
\n Ingresa una Razón Social\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n Nombre *\n \n
\n
\n
\n
\n
\n
\n Apellido Paterno *\n \n
\n
\n
\n
\n
\n
\n Apellido Materno *\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n Correo *\n \n
\n
\n
\n
\n
\n
\n Contraseña *\n \n
\n
\n
\n
\n
\n
\n Confirmar Contraseña *\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n \n \n Estoy de acuerdo con el \n \n Aviso de Privacidad\n \n \n
\n\n
\n \n Acepto los \n \n Términos y condiciones\n \n \n
\n
\n
\n\n\n
\n
\n
\n Confirma tu nombre\n
\n
\n \n
\n
\n\n
\n
\n
\n ¿Cúal es el financiamiento de tu interés?\n
\n
\n
\n \n \n
{{season}}
\n
\n \n\n
\n
\n\n
\n
\n
\n Comentarios\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n ¿Cómo te gustaria que te contactáramos?\n
\n
\n \n \n \"\"\n \n \n
\n\n
\n
\n
\n
\n
\n
\n \"\"\n
\n
\n \"\"\n
\n
\n \"\"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n\n
\n
\n
\n Indique un correo electrónico\n Ingrese un número de teléfono\n
\n
\n
\n \n\n \n
\n 10 Caracteres\n
\n
\n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n {{alert.message}}\n
\n
\n
\n
\n\n
\n \n\n \n
\n
\n","import { Component, ElementRef, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { MostrarExcepcion, MostrarSpinner, OcultarSpinner, VistosRecientemente } from 'app/store/actions/utils.action';\nimport { FuseCardComponent } from '@fuse/components/card';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { CoalService } from 'app/services/coal.service';\nimport { Gallery, GalleryItem, ImageItem } from '@ngx-gallery/core';\nimport { Store } from \"@ngrx/store\";\nimport { AppState } from 'app/store/app.states';\nimport { BaseService } from 'app/services/base.service';\nimport { IOperacion } from 'app/interfaces/interfaces';\n\nimport {MatDialog} from '@angular/material/dialog';\nimport { DialogSeguroComponent } from 'app/utilerias/site/dialog-seguro/dialog-seguro.component';\n\n@Component({\n selector: 'app-detalle-unidad',\n templateUrl: './detalle-unidad.component.html',\n styleUrls: ['./detalle-unidad.component.scss']\n})\nexport class DetalleUnidadComponent implements OnInit {\n prop: { images: { path: string; }[]; };\n unidades: { idUnidad: number; img: string; descripcion: string; anio: string; modelo: string; version: string; transmision: string; potencia: string; rendimiento: string; precio: number; }[];\n @ViewChildren(FuseCardComponent, {read: ElementRef}) private _fuseCards: QueryList;\n idVehiculo: number;\n dataUnidad: { IdCatUnidad: string; idVehiculo: number; condicion: string; marca: string; modelo: string; version: string; anio: number; precio: string; transmision: string; tipo: string; kilometraje: number; Potencia: number; sucursal: number; idSucursal: number; rendimientoCarretera: any; rendimientoCiudad: any; rendimientoMixto: any; emision: any; esDemo: number; esCertificado: number; esClasificacion: boolean; idMarca: number; vigenciaPrecio: string; labelVigencia: string; esCotizable: number; imagen: any; ficha: any; };\n items: GalleryItem[];\n fichaTecnica: string = null;\n\n dataImages = [];\n uri: string = null;\n vistosRecientes: any;\n operacion: IOperacion;\n hayimagenes: boolean;\n\n constructor(\n private router: Router,\n private _route: ActivatedRoute,\n private baseService: BaseService,\n private coalService: CoalService,\n public gallery: Gallery,\n public dialog: MatDialog,\n private readonly store: Store\n ) { }\n\n ngOnInit(): void {\n\n this.operacion = this.baseService.getOperacionData();\n\n this._route.params.subscribe((x: Params) => {\n this.idVehiculo = Number(this._route.snapshot.params['id']);\n this.getVehiculo( this.idVehiculo );\n\n if( localStorage.getItem('uri') === undefined || localStorage.getItem('uri') === null ){\n this.uri = null;\n }\n else{\n this.uri = localStorage.getItem('uri');\n }\n\n //console.log(\"Validar\", this.store.dispatch( VistosRecientemente({vistos: 'Hola mundo'}) ));\n this.vistosRecientes = this.baseService.getVistosRecientemente();\n const aux = this.baseService.getVistosRecientemente();\n console.log(\"aux\", aux);\n \n let arrayRecientes = [];\n if( aux === undefined || aux === null ){\n console.log('Vacios');\n arrayRecientes.push( this.idVehiculo );\n }\n else{\n arrayRecientes = aux.split('|');\n console.log(arrayRecientes);\n console.log(arrayRecientes.indexOf( String(this.idVehiculo) ));\n \n\n if( arrayRecientes.indexOf( String(this.idVehiculo) ) == -1 ){\n arrayRecientes.push( this.idVehiculo );\n }\n }\n\n localStorage.setItem('r', arrayRecientes.join('|'));\n this.store.dispatch( VistosRecientemente({vistos: arrayRecientes.join('|')}) )\n this.baseService.getVistosRecientemente();\n })\n \n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_iSTYLE_civicblanco.png'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/2_iSTYLE_civicplata.png'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/3_iSTYLE_civicgrismeteoro.png'}\n \n }\n\n openSeguro(){\n\t\t// this.router.navigateByUrl(`/site/cotizacion`);\n\t}\n\n getVehiculo( id:number ){\n this.store.dispatch(MostrarSpinner());\n this.coalService.getService(`vehiculo/vehiculo?id=${id}`,).subscribe((res: any) => {\n this.dataUnidad = res.recordsets[0][0];\n this.dataUnidad.imagen = JSON.parse( res.recordsets[0][0].imagen );\n this.dataUnidad.ficha = JSON.parse( res.recordsets[0][0].ficha );\n\n if( this.dataUnidad.ficha === null ){\n this.fichaTecnica = null\n }\n else{\n if( this.dataUnidad.ficha.length != 0 ){\n this.fichaTecnica = this.dataUnidad.ficha[0].UrlLocal;\n }\n else{\n this.fichaTecnica = null\n }\n }\n\n console.log(\"this.dataUnidad.ficha\", this.dataUnidad.ficha);\n \n\n this.dataImages = []\n\n \n if( this.dataUnidad.imagen === null ){\n console.log(\"NO HAY IMAGENES\"); \n this.hayimagenes = false; \n }\n else{\n this.hayimagenes = true;\n this.dataUnidad.imagen.forEach(element => {\n this.dataImages.push({\n srcUrl: element.UrlLocal,\n previewUrl: element.UrlLocal\n })\n });\n }\n \n\n this.store.dispatch(OcultarSpinner());\n\n this.items = this.dataImages.map(item => new ImageItem({ src: item.srcUrl, thumb: item.previewUrl }));\n }, (error: any) => {\n this.store.dispatch(OcultarSpinner());\n });\n }\n\n\n setCotizar(){\n let auto = [{...this.dataUnidad}];\n\n let autos = this.operacion?.autos ?? [];\n\n this.operacion.autos = [ ...autos, ...auto];\n\n this.baseService.postOperacionData(this.operacion);\n\n\t\tthis.router.navigateByUrl(`/site/cotizacion`);\n\n\n }\n\n openDialog() {\n const dialogRef = this.dialog.open(DialogSeguroComponent, {\n width: '1000px',\n data: this.dataUnidad,\n });\n \n dialogRef.afterClosed().subscribe(result => {\n console.log(`Dialog result: ${result}`);\n \n });\n }\n\n // showGallery(index: number) {\n // let prop = {\n // images: [\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_V6PRO4X22_v6.jpg'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_FRONTIERSETM22_NissanFrontierVersion3.jpg'},\n // {path: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_LSAutomatica_02AVEOFrente34Azul_2022.png'}\n // ],\n // index\n // };\n // this.gallery.load(prop);\n // }\n\n}\n","
\n
\n

Detalle del vehículo

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

{{ dataUnidad?.modelo }}

\n

{{ dataUnidad?.marca }}

\n
\n
\n
\n
\n
{{ dataUnidad?.precio | currency: 'USD':true:'2.0' }}
\n

Precio vigente al {{ dataUnidad?.labelVigencia }}. Expresado en moneda nacional con IVA incluido.

\n

Unidad sujeta a disponibilidad.

\n
\n
\n
\n
\n\n
\n
\n \n \"\"\n

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

Las imágenes mostradas sólo son para fines ilustrativos.

\n
\n \n
\n \n
\n \n \n
\n \n \n
\n
\n
\n\n\n\n\n\n
\n
\n \n
\n
\n","import { MostrarExcepcion, MostrarSpinner, OcultarSpinner, VistosRecientemente } from 'app/store/actions/utils.action';\nimport { ChangeDetectionStrategy, Component, OnInit, EventEmitter, Output } from '@angular/core';\nimport { LabelType, Options } from '@angular-slider/ngx-slider'\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { ActivatedRoute, NavigationEnd, Params, Router } from '@angular/router';\nimport { CoalService } from 'app/services/coal.service';\nimport { Store } from \"@ngrx/store\";\nimport { AppState } from 'app/store/app.states';\nimport { BaseService } from 'app/services/base.service';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\n\n@Component({\n selector: 'app-filtros',\n templateUrl: './filtros.component.html',\n styleUrls: ['./filtros.component.scss']\n})\nexport class FiltrosComponent implements OnInit {\n value: number = 500000;\n highValue: number = 1500000;\n options: Options = {\n floor: 180000,\n ceil: 2560000,\n step: 10000,\n translate: (value: number, label: LabelType): string => {\n return '$' + value.toLocaleString('en');\n }\n };\n\n unidades: any = []\n panelOpenState:boolean = true;\n\n busquedasForm: FormGroup;\n bf_segmento = new FormControl( '' );\n bf_modelo = new FormControl( '' );\n bf_transmision = new FormControl( '' );\n bf_marca = new FormControl( '' );\n valueString = '';\n\n bk_segmentos:any = [];\n\n catalogos: any = {\n segmento: [],\n marca: [],\n modelo: [],\n transmision: [],\n anio: []\n }\n\n allComplete: boolean = false;\n bk_filtros: any;\n\n p: number = 1;\n valueStringModelo: string;\n valueStringTransmision: string;\n valueStringMarca: string;\n valueStringBusqueda: string;\n hideBtnSegmentos: boolean = true;\n\n paramFiltros:any = {}\n btnHideReset: boolean = true;\n param_precioMin: number;\n param_precioMax: number;\n param_marca: string;\n param_modelo: string;\n param_transmision: string;\n param_anio: string;\n param_segmento: string;\n param_busqueda: string;\n param_pagina: number;\n vistosRecientes: any = null;\n bk_vistos: any = null;\n myGroup: FormGroup;\n esVisible:boolean = true;\n esMobile: boolean = null;\n navVisible: boolean = true;\n contVisible: boolean = true;\n\n @Output() scrollToTop = new EventEmitter();\n\n constructor(\n private router: Router,\n private _route: ActivatedRoute,\n private coalService: CoalService,\n private baseService: BaseService,\n private fb: FormBuilder,\n private readonly store: Store,\n public breakpointObserver: BreakpointObserver\n ) {\n this.busquedasForm = fb.group({\n bf_segmento: this.bf_segmento,\n bf_modelo: this.bf_modelo,\n bf_transmision: this.bf_transmision,\n bf_marca: this.bf_marca\n });\n\n this.myGroup = new FormGroup({\n\t\t\tfirstValue: new FormControl(),\n\t\t\tsecondValue: new FormControl(),\n\t\t});\n\n\t\tthis.myGroup.controls[\"firstValue\"].setValue( this.value );\n\t\tthis.myGroup.controls[\"secondValue\"].setValue( this.highValue );\n\n //console.log(\"Validar\", this.store.dispatch( VistosRecientemente({vistos: 'Hola mundo'}) ));\n \n //console.log(\"getStateUser\", this.vistosRecientes);\n }\n\n ngOnInit(): void {\n this._route.params.subscribe((x: Params) => {\n console.log(this._route.snapshot.params);\n \n this.param_pagina = Number(this._route.snapshot.params['pagina']);\n this.param_precioMin = Number(this._route.snapshot.params['precioMin']);\n this.param_precioMax = Number(this._route.snapshot.params['precioMax']);\n this.param_marca = String(this._route.snapshot.params['marca']);\n this.param_modelo = String(this._route.snapshot.params['modelo']);\n this.param_anio = String(this._route.snapshot.params['anio']);\n this.param_transmision = String(this._route.snapshot.params['transmision']);\n this.param_segmento = String(this._route.snapshot.params['segmento']);\n this.param_busqueda = String(this._route.snapshot.params['busqueda']);\n \n if( this.param_precioMin != 0 ) this.paramFiltros['precioMin'] = this.param_precioMin;\n if( this.param_precioMax != 0 ) this.paramFiltros['precioMax'] = this.param_precioMax;\n if( this.param_marca != '0' ) this.paramFiltros['marca'] = this.param_marca;\n if( this.param_modelo != '0' ) this.paramFiltros['modelo'] = this.param_modelo;\n if( this.param_anio != '0' ) this.paramFiltros['anio'] = this.param_anio;\n if( this.param_transmision != '0' ) this.paramFiltros['transmision'] = this.param_transmision;\n if( this.param_segmento != '0' ) this.paramFiltros['segmento'] = this.param_segmento;\n if( this.param_busqueda != '0' ) this.paramFiltros['busqueda'] = this.param_busqueda;\n\n this.p = this.param_pagina;\n this.saveURL();\n this.GetFiltros();\n })\n\n this.vistosRecientes = this.baseService.getVistosRecientemente();\n if( this.vistosRecientes != null ){\n this.GetVistos();\n }\n\n this.onValueChange();\n\n this.breakpointObserver\n .observe(['(min-width: 750px)'])\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n // this.showContainer = true;\n console.log(\"Ejemplo 1 de 750\");\n this.esMobile = false;\n this.navVisible = true;\n this.contVisible = true;\n this.scrollToTop.emit();\n \n } else {\n // this.showContainer = false;\n console.log(\"Ejemplo 2 de 750\");\n this.esMobile = true;\n this.navVisible = false;\n this.contVisible = true;\n }\n });\n }\n \n updateAllComplete() {\n this.hideBtnSegmentos = (this.catalogos.segmento.filter(t => t.completed ).length) == 0;\n }\n\n setValRangoValue(event){\n\t\tthis.value = parseInt(this.myGroup.controls[\"firstValue\"].value)\n\t\tvar uy = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.value );\n\t\tsetTimeout(()=>{\n\t\t\tthis.myGroup.controls[\"firstValue\"].setValue( uy );\n\t\t}, 500);\n\t}\n\n\tgetVal(){\n\t\tvar val = this.value.toString().replace(\"$\", \"\");\n\t\tval = val.replace(\",\", \"\");\n\t\tthis.value = parseInt(val);\n\t\tthis.myGroup.controls[\"firstValue\"].setValue( parseInt(val) );\n\t}\n\n\tonValueChange(){\n\t\tvar uy1 = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.value );\n\t\tvar uy2 = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.highValue );\n\t\t\n\t\tsetTimeout(()=>{\n\t\t\tthis.myGroup.controls[\"firstValue\"].setValue( uy1 );\n\t\t\tthis.myGroup.controls[\"secondValue\"].setValue( uy2 );\n\t\t}, 100);\n\t}\n\n\tsetValRangoHighValue( event ){\n\t\tthis.highValue = parseInt(this.myGroup.controls[\"secondValue\"].value)\n\t\tvar uy = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.highValue );\n\t\tsetTimeout(()=>{\n\t\t\tthis.myGroup.controls[\"secondValue\"].setValue( uy );\n\t\t}, 500);\n\t}\n\n\tgetHighVal(){\n\t\tvar val = this.highValue.toString().replace(\"$\", \"\");\n\t\tval = val.replace(\",\", \"\");\n\t\tthis.highValue = parseInt(val);\n\t\tthis.myGroup.controls[\"secondValue\"].setValue( parseInt(val) );\n\t}\n\n GetFiltros(){\n this.store.dispatch(MostrarSpinner());\n this.coalService.postService(`vehiculo/filtro`, this.paramFiltros)\n\t\t.subscribe((res: any) => {\n this.bk_filtros = res.recordsets.filtros;\n\n // Set precios\n // Definición de limites\n this.options.floor = res.recordsets.filtros.rangoPrecio[0].minimo;\n this.options.ceil = res.recordsets.filtros.rangoPrecio[0].maximo;\n // Valores seleccionados\n this.value = res.recordsets.filtros.rangoPrecio[1].minimo;\n this.highValue = res.recordsets.filtros.rangoPrecio[1].maximo;\n\n this.myGroup.controls[\"firstValue\"].setValue( this.value );\n\t\t this.myGroup.controls[\"secondValue\"].setValue( this.highValue );\n\n this.onValueChange();\n\n // Seteamos los valores del filtro\n this.paramFiltros['precioMin'] = res.recordsets.filtros.rangoPrecio[1].minimo;\n this.paramFiltros['precioMax'] = res.recordsets.filtros.rangoPrecio[1].maximo;\n\n\n this.catalogos.segmento = res.recordsets.filtros.segmento;\n this.catalogos.anio = res.recordsets.filtros.anio;\n this.catalogos.marca = res.recordsets.filtros.marca;\n this.catalogos.modelo = res.recordsets.filtros.modelo;\n this.catalogos.transmision = res.recordsets.filtros.transmision;\n\n this.btnHideReset = this.btnResetFiltros();\n this.hideBtnSegmentos = true;\n console.log( \"this.btnResetFiltros();\", this.btnResetFiltros() );\n \n\n this.unidades = [];\n res.recordsets.vehiculos.forEach(element => {\n this.unidades.push(\n {\n idUnidad: element.idVehiculo,\n img: element.imagen,\n descripcion: element.marca + ' ' +element.modelo,\n anio: element.anio,\n modelo: element.modelo,\n version: element.version,\n transmision: 'N/d',\n potencia: '',\n rendimiento: '',\n precio: element.precio,\n labelVigencia: element.labelVigencia\n }\n )\n });\n\n console.log(\"vehiculos\", res.recordsets.vehiculos);\n console.log(\"this.unidades\", this.unidades);\n \n \n\n this.store.dispatch(OcultarSpinner());\n\t\t});\n }\n\n filtrarSegmento( e ){\n var busqueda = this.busquedasForm.controls['bf_segmento'].value\n\n var aux = this.bk_filtros.segmento.filter((item) => {\n return item.name.toLowerCase().includes(busqueda.toLowerCase());\n });\n this.catalogos.segmento = aux\n }\n\n filtrarModelo(){\n var busqueda = this.busquedasForm.controls['bf_modelo'].value\n\n var aux = this.bk_filtros.modelo.filter((item) => {\n return item.name.toLowerCase().includes(busqueda.toLowerCase());\n });\n this.catalogos.modelo = aux\n }\n\n filtrarTransmision(){\n var busqueda = this.busquedasForm.controls['bf_transmision'].value\n\n var aux = this.bk_filtros.transmision.filter((item) => {\n return item.name.toLowerCase().includes(busqueda.toLowerCase());\n });\n this.catalogos.transmision = aux\n }\n\n filtrarMarca(){\n var busqueda = this.busquedasForm.controls['bf_marca'].value\n\n var aux = this.bk_filtros.marca.filter((item) => {\n return item.name.toLowerCase().includes(busqueda.toLowerCase());\n });\n this.catalogos.marca = aux\n }\n\n cleanFiltrarModelo(){\n this.valueStringModelo = '';\n this.busquedasForm.controls['bf_modelo'].setValue('');\n this.filtrarModelo()\n }\n\n cleanFiltrarTransmision(){\n this.valueStringTransmision = '';\n this.busquedasForm.controls['bf_transmision'].setValue('');\n this.filtrarTransmision()\n }\n\n cleanFiltrarMarca(){\n this.valueStringMarca = '';\n this.busquedasForm.controls['bf_marca'].setValue('');\n this.filtrarMarca()\n }\n\n openHome(){\n this.router.navigateByUrl(`/site/home`);\n }\n\n filtrarVehiculosPrecios(){\n this.paramFiltros['precioMin'] = this.value;\n this.paramFiltros['precioMax'] = this.highValue;\n this.createURLParam();\n }\n\n filtrarSegmentos(){\n let aux = this.catalogos.segmento.filter(t => t.completed );\n console.log(\"filtrarSegmentos()\", aux, aux.length);\n \n let arrSegmento = [];\n aux.forEach(element => {\n arrSegmento.push( element.cve );\n });\n\n let strSegmento = null\n if( aux.length != 0 ){\n strSegmento = arrSegmento.join('|');\n }\n \n this.filtrarVehiculos('segmento', strSegmento)\n }\n\n filtrarVehiculos(item:string, value:string){\n this.paramFiltros['precioMin'] = this.value;\n this.paramFiltros['precioMax'] = this.highValue;\n this.paramFiltros[ item ] = value;\n this.createURLParam();\n }\n\n resetFiltros(){\n this.paramFiltros = {};\n this.valueStringBusqueda = '';\n this.paramFiltros['precioMin'] = this.options.floor;\n this.paramFiltros['precioMax'] = this.options.ceil;\n this.createURLParam();\n }\n\n busquedaPorTexto(){\n this.paramFiltros = {}; \n this.paramFiltros['precioMin'] = this.options.floor;\n this.paramFiltros['precioMax'] = this.options.ceil;\n this.paramFiltros['busqueda'] = this.valueStringBusqueda;\n // this.createURLParam();\n\n if( this.esMobile ){\n this.navVisible = false;\n this.contVisible = true;\n }\n this.router.navigateByUrl(`/site/busqueda/1/${this.options.floor}/${this.options.ceil}/0/0/0/0/0/${this.valueStringBusqueda}`);\n }\n\n btnResetFiltros(){\n return ( \n ( this.paramFiltros['precioMin'] == this.options.floor)\n && ( this.paramFiltros['precioMax'] == this.options.ceil )\n && ( this.paramFiltros['marca'] === undefined || this.paramFiltros['marca'] == null )\n && ( this.paramFiltros['modelo'] === undefined || this.paramFiltros['modelo'] == null )\n && ( this.paramFiltros['anio'] === undefined || this.paramFiltros['anio'] == null )\n && ( this.paramFiltros['transmision'] === undefined || this.paramFiltros['transmision'] == null )\n && ( this.paramFiltros['busqueda'] === undefined || this.paramFiltros['busqueda'] == null )\n //&& ( this.paramFiltros['marca'] === undefined || this.paramFiltros['marca'] == null )\n );\n }\n\n chipSegmentos(){\n let etiqueta = '';\n if(this.paramFiltros.segmento === undefined || this.paramFiltros.segmento === null){\n etiqueta = ''\n }\n else{\n var arrSegmento = [];\n this.catalogos.segmento.forEach(element => {\n arrSegmento.push(element.name)\n });\n \n etiqueta = arrSegmento.join(' | ')\n }\n\n return etiqueta;\n }\n\n createURLParam(){\n\n this.param_precioMin = this.paramFiltros['precioMin'];\n this.param_precioMax = this.paramFiltros['precioMax'];\n this.param_marca = (this.paramFiltros['marca'] === undefined || this.paramFiltros['marca'] === null ) ? '0' : this.paramFiltros['marca'];\n this.param_modelo = (this.paramFiltros['modelo'] === undefined || this.paramFiltros['modelo'] === null ) ? '0' : this.paramFiltros['modelo'];\n this.param_anio = (this.paramFiltros['anio'] === undefined || this.paramFiltros['anio'] === null ) ? '0' : this.paramFiltros['anio'];\n this.param_transmision = (this.paramFiltros['transmision'] === undefined || this.paramFiltros['transmision'] === null ) ? '0' : this.paramFiltros['transmision'];\n this.param_segmento = (this.paramFiltros['segmento'] === undefined || this.paramFiltros['segmento'] === null ) ? '0' : this.paramFiltros['segmento'];\n this.param_busqueda = (this.paramFiltros['busqueda'] === undefined || this.paramFiltros['busqueda'] === null ) ? '0' : this.paramFiltros['busqueda'];\n\n //path: 'busqueda/:pagina/:precioMin/:precioMax/:marca/:modelo/:anio/:transmision/:segmento/:busqueda',\n if( this.esMobile ){\n this.navVisible = false;\n this.contVisible = true;\n }\n \n const uri = `/site/busqueda/1/${ this.param_precioMin }/${ this.param_precioMax }/${ this.param_marca }/${ this.param_modelo }/${ this.param_anio }/${ this.param_transmision }/${ this.param_segmento }/${ this.param_busqueda }`;\n\n this.router.navigateByUrl(uri);\n }\n\n saveURL(){\n this.param_precioMin = this.paramFiltros['precioMin'];\n this.param_precioMax = this.paramFiltros['precioMax'];\n this.param_marca = (this.paramFiltros['marca'] === undefined || this.paramFiltros['marca'] === null ) ? '0' : this.paramFiltros['marca'];\n this.param_modelo = (this.paramFiltros['modelo'] === undefined || this.paramFiltros['modelo'] === null ) ? '0' : this.paramFiltros['modelo'];\n this.param_anio = (this.paramFiltros['anio'] === undefined || this.paramFiltros['anio'] === null ) ? '0' : this.paramFiltros['anio'];\n this.param_transmision = (this.paramFiltros['transmision'] === undefined || this.paramFiltros['transmision'] === null ) ? '0' : this.paramFiltros['transmision'];\n this.param_segmento = (this.paramFiltros['segmento'] === undefined || this.paramFiltros['segmento'] === null ) ? '0' : this.paramFiltros['segmento'];\n this.param_busqueda = (this.paramFiltros['busqueda'] === undefined || this.paramFiltros['busqueda'] === null ) ? '0' : this.paramFiltros['busqueda'];\n\n //path: 'busqueda/:pagina/:precioMin/:precioMax/:marca/:modelo/:anio/:transmision/:segmento/:busqueda',\n const uri = `/site/busqueda/${ this.p }/${ this.param_precioMin }/${ this.param_precioMax }/${ this.param_marca }/${ this.param_modelo }/${ this.param_anio }/${ this.param_transmision }/${ this.param_segmento }/${ this.param_busqueda }`;\n localStorage.setItem(\"uri\", uri);\n }\n\n GetVistos(){\n let param = {\n recientes: this.vistosRecientes\n }\n this.coalService.postService(`vehiculo/vistos`, param)\n\t\t.subscribe((res: any) => {\n this.bk_vistos = res.recordsets[0];\n console.log(this.bk_vistos); \n\t\t});\n }\n}\n","
\n
\n

Búsqueda de autos

\n \n
\n
\n\n\n
\n
\n Inicio\n \n Resultados\n
\n
\n\n\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n \n {{ paramFiltros?.precioMin | currency }} - {{ paramFiltros?.precioMax | currency }}\n \n \n \n \n {{ paramFiltros.marca }}\n \n \n\n \n \n {{ paramFiltros.modelo }}\n \n \n\n \n \n {{ paramFiltros.anio }}\n \n \n\n \n \n {{ paramFiltros.transmision }}\n \n \n\n \n \n {{ chipSegmentos() }}\n \n \n\n \n \n Limpiar filtros\n \n \n \n
\n 0\">\n \n \n \n \n\n \n
\n
Lo sentimos, no hay vehículos con los criterios de búsqueda proporcionados.
\n
\n
\n
\n
\n 0\" (pageChange)=\"p = $event\" previousLabel=\"Anterior\" nextLabel=\"Siguiente\">\n
\n
\n
\n
\n
\n \n \n
\n\n","import { OnInit, Component, ChangeDetectionStrategy, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { MostrarExcepcion, MostrarSpinner, OcultarSpinner, VistosRecientemente } from 'app/store/actions/utils.action';\nimport { Router } from '@angular/router';\nimport { Options, LabelType } from '@angular-slider/ngx-slider'\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { NguCarouselConfig } from '@ngu/carousel';\nimport { CoalService } from 'app/services/coal.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Store } from \"@ngrx/store\";\nimport { AppState } from 'app/store/app.states';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'app-landing',\n templateUrl: './landing.component.html',\n styleUrls: ['./landing.component.scss']\n})\nexport class LandingComponent implements OnInit {\n\tvalue: number = 500000;\n\thighValue: number = 1500000;\n\toptions: Options = {\n\t\tfloor: 180000,\n\t\tceil: 2560000,\n\t\tstep: 10000,\n\t\ttranslate: (value: number, label: LabelType): string => {\n\t\t\treturn '$' + value.toLocaleString('en');\n\t\t}\n\t};\n\n\tunidades: any = [];\n\tsave: boolean = false;\n\tobMarca: boolean = false;\n\tbk_filtros: any;\n\tsegmento = null;\n\n\n\n\t/* Formulario de busqueda */\n\tformBusqueda: FormGroup;\n\t// bus_marca = new FormControl(0);\n\t// bus_modelo = new FormControl(0);\n\t// bus_version = new FormControl(0);\n\t// bus_anio1 = new FormControl(2022);\n\t// bus_anio2 = new FormControl(2022);\n\t// bus_segmento = new FormControl(0);\n\n\tcatalogos: any = {\n\t\tmarca: [\n\t\t\t{value: 0, name:'Cualquier Marca', imagen: ''}\n\t\t],\n\t\tmodelo: [\n\t\t\t{value: 0, name:'Cualquier Modelo'}\n\t\t],\n\t\tversion: [\n\t\t\t{value: 0, name:'Cualquier Versión'}\n\t\t],\n\t\tanio: [\n\t\t\t{value: 0, name:'Cualquier Año'}\n\t\t],\n\t\tsegmento: [\n\t\t\t{value: 0, name:''}\n\t\t]\n\t}\n\n\tparamFiltros:any = {}\n\tmyGroup: FormGroup;\n\ttax: any;\n\timagenSelected: any = '';\n\tclassMarca: string;\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate coalService: CoalService,\n\t\tprivate fb: FormBuilder,\n\t\tprivate _cdr: ChangeDetectorRef,\n\t\tprivate snackBar: MatSnackBar,\n\t\tprivate readonly store: Store\n\t) {\n\t\t\n\t}\n\n\tngOnInit(): void {\n\t\tthis.formBusqueda = this.fb.group({\n\t\t\t// marca: this.bus_marca,\n\t\t\t// modelo: this.bus_modelo,\n\t\t\t// version: this.bus_version,\n\t\t\t// anio1: this.bus_anio1,\n\t\t\t// // anio2: this.bus_anio2,\n\t\t\t// segmento: this.bus_segmento,\n\t\t\tmarca : new FormControl(0),\n\t\t\tmodelo : new FormControl(0),\n\t\t\tversion : new FormControl(0),\n\t\t\tanio : new FormControl(0),\n\t\t\tsegmento : new FormControl(0),\n\t\t\tprecioMin: new FormControl(180000),\n\t\t\tprecioMax: new FormControl(2560000)\n\t\t});\n\t\tthis.GetFiltros();\n\t\tthis.unidades = [\n\t\t\t{\n\t\t\t\tidUnidad: 0,\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_iSTYLE_civicblanco.png',\n\t\t\t\tdescripcion: 'Civic',\n\t\t\t\tanio: 'Nuevo 2022',\n\t\t\t\tmodelo: '',\n\t\t\t\tversion: 'I-STYLE',\n\t\t\t\ttransmision: '',\n\t\t\t\tpotencia: '',\n\t\t\t\trendimiento: '',\n\t\t\t\tprecio: 520900.00\n\t\t\t},\n\t\t\t{\n\t\t\t\tidUnidad: 1,\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_Essence_BuickEnclave2022EssenceG1Wtrescuartosderecha.png',\n\t\t\t\tdescripcion: 'ENCLAVE',\n\t\t\t\tanio: 'Nuevo 2022',\n\t\t\t\tmodelo: 'Enclave',\n\t\t\t\tversion: 'Essence (L)',\n\t\t\t\ttransmision: 'N/d',\n\t\t\t\tpotencia: '',\n\t\t\t\trendimiento: '',\n\t\t\t\tprecio: 472900.00\n\t\t\t},\n\t\t\t{\n\t\t\t\tidUnidad: 0,\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_V6PRO4X22_FRONTIERV62022.jpg',\n\t\t\t\tdescripcion: 'Nissan Frontier v6 usa',\n\t\t\t\tanio: 'Nuevo 2022',\n\t\t\t\tmodelo: 'Frontier v6 usa',\n\t\t\t\tversion: 'V6 pro-4x¨22',\n\t\t\t\ttransmision: '9at',\n\t\t\t\tpotencia: '310 @ 6400',\n\t\t\t\trendimiento: '9.9',\n\t\t\t\tprecio: 988900.00\n\t\t\t},\n\t\t\t{\n\t\t\t\tidUnidad: 1,\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_Essence_BuickEnclave2022EssenceG1Wtrescuartosderecha.png',\n\t\t\t\tdescripcion: 'ENCLAVE',\n\t\t\t\tanio: 'Nuevo 2022',\n\t\t\t\tmodelo: 'Enclave',\n\t\t\t\tversion: 'Essence (L)',\n\t\t\t\ttransmision: 'N/d',\n\t\t\t\tpotencia: '',\n\t\t\t\trendimiento: '',\n\t\t\t\tprecio: 472900.00\n\t\t\t},\n\t\t\t{\n\t\t\t\tidUnidad: 0,\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_V6PRO4X22_FRONTIERV62022.jpg',\n\t\t\t\tdescripcion: 'Nissan Frontier v6 usa',\n\t\t\t\tanio: 'Nuevo 2022',\n\t\t\t\tmodelo: 'Frontier v6 usa',\n\t\t\t\tversion: 'V6 pro-4x¨22',\n\t\t\t\ttransmision: '9at',\n\t\t\t\tpotencia: '310 @ 6400',\n\t\t\t\trendimiento: '9.9',\n\t\t\t\tprecio: 988900.00\n\t\t\t},\n\t\t\t{\n\t\t\t\tidUnidad: 1,\n\t\t\t\timg: 'https://www.grupoandrade.com/Imagenes/UnidadesNuevas/Unidades/1_Essence_BuickEnclave2022EssenceG1Wtrescuartosderecha.png',\n\t\t\t\tdescripcion: 'ENCLAVE',\n\t\t\t\tanio: 'Nuevo 2022',\n\t\t\t\tmodelo: 'Enclave',\n\t\t\t\tversion: 'Essence (L)',\n\t\t\t\ttransmision: 'N/d',\n\t\t\t\tpotencia: '',\n\t\t\t\trendimiento: '',\n\t\t\t\tprecio: 472900.00\n\t\t\t},\n\t\t]\n\n\t\tthis.myGroup = new FormGroup({\n\t\t\tfirstValue: new FormControl(),\n\t\t\tsecondValue: new FormControl(),\n\t\t});\n\n\t\tthis.onValueChange();\n\t}\n\n\tsetValRangoValue(event){\n\t\tthis.value = parseInt(this.myGroup.controls[\"firstValue\"].value)\n\t\tvar uy = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.value );\n\t\tsetTimeout(()=>{\n\t\t\tthis.myGroup.controls[\"firstValue\"].setValue( uy );\n\t\t}, 500);\n\t}\n\n\tgetVal(){\n\t\tvar val = this.value.toString().replace(\"$\", \"\");\n\t\tval = val.replace(\",\", \"\");\n\t\tthis.value = parseInt(val);\n\t\tthis.myGroup.controls[\"firstValue\"].setValue( parseInt(val) );\n\t}\n\n\tonValueChange(){\n\t\tvar uy1 = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.value );\n\t\tvar uy2 = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.highValue );\n\t\t\n\t\tsetTimeout(()=>{\n\t\t\tthis.myGroup.controls[\"firstValue\"].setValue( uy1 );\n\t\t\tthis.myGroup.controls[\"secondValue\"].setValue( uy2 );\n\t\t}, 100);\n\t}\n\n\tsetValRangoHighValue( event ){\n\t\tthis.highValue = parseInt(this.myGroup.controls[\"secondValue\"].value)\n\t\tvar uy = new Intl.NumberFormat('en-US',{style: 'currency', currency:'USD', minimumFractionDigits: 0}).format( this.highValue );\n\t\tsetTimeout(()=>{\n\t\t\tthis.myGroup.controls[\"secondValue\"].setValue( uy );\n\t\t}, 500);\n\t}\n\n\tgetHighVal(){\n\t\tvar val = this.highValue.toString().replace(\"$\", \"\");\n\t\tval = val.replace(\",\", \"\");\n\t\tthis.highValue = parseInt(val);\n\t\tthis.myGroup.controls[\"secondValue\"].setValue( parseInt(val) );\n\t}\n\n\tGetFiltros(){\n\t\t// this.store.dispatch(MostrarSpinner());\n\t\tthis.paramFiltros['mostrarVehiculos'] = 0;\n\t\tif(this.save){\n\t\t\tthis.formBusqueda.controls['precioMin'].setValue(this.value);\n\t\t\tthis.formBusqueda.controls['precioMax'].setValue(this.highValue);\n\t\t}\n\t\tlet getFiltro = this.formBusqueda.getRawValue();\n\t\t\t\t\t\n\t\t// if( getFiltro.transmision != '0' ) this.paramFiltros['transmision'] = getFiltro.transmision;\n\t\tthis.paramFiltros['precioMin'] \t=(getFiltro?.precioMin != 0 )?\tgetFiltro.precioMin : null;\n\t\tthis.paramFiltros['precioMax'] \t=(getFiltro?.precioMax != 0 )?\tgetFiltro.precioMax : null;\n\t\tthis.paramFiltros['marca'] \t\t=(getFiltro.marca != '0')?\t\tgetFiltro.marca : null;\n\t\tthis.paramFiltros['modelo'] \t=(getFiltro.modelo != '0')?\t\tgetFiltro.modelo : null;\n\t\tthis.paramFiltros['anio'] \t\t=(getFiltro.anio != '0')?\t\tgetFiltro.anio : null;\n\t\tthis.paramFiltros['transmision'] \t=(getFiltro.version != '0')?\tgetFiltro.version : null;\n\t\tthis.paramFiltros['segmento'] \t=(getFiltro.segmento != '0')?\tgetFiltro.segmento : null;\n\n\t\tthis.coalService.postService(`vehiculo/filtro`, this.paramFiltros)\n\t\t.subscribe((res: any) => {\n\n\t\t\tif(!this.save){\n\t\t\t\tthis.bk_filtros = res.recordsets.filtros;\n\t\t\t}\n\t\t\t\n\t\t\t// if(res.recordsets.filtros['transmision'] == null || res.recordsets.filtros['transmision'].length <= 0){\n\t\t\t// \t// this.snackBar.open('No existen coincidencias con este filtro, vuelva a intentarlo..', 'Ok', { duration: 1500 });\n\t\t\t\t\n\t\t\t// \t// return; \n\t\t\t// }\n\n\n\n\t\t\t// Set precios\n\t\t\t// Definición de limites\n\t\t\tthis.options.floor = res.recordsets.filtros.rangoPrecio[0].minimo;\n\t\t\tthis.options.ceil = res.recordsets.filtros.rangoPrecio[0].maximo;\n\t\t\t// Valores seleccionados\n\t\t\tthis.value = res.recordsets.filtros.rangoPrecio[1].minimo;\n\t\t\tthis.highValue = res.recordsets.filtros.rangoPrecio[1].maximo;\n\t\n\t\t\tthis.myGroup.controls[\"firstValue\"].setValue( this.value );\n\t\t\tthis.myGroup.controls[\"secondValue\"].setValue( this.highValue );\n\n\t\t\tthis.onValueChange();\n\n\t\t\tthis.formBusqueda.controls['precioMin'].setValue(this.value);\n\t\t\tthis.formBusqueda.controls['precioMax'].setValue(this.highValue);\n\t\t\t// Seteamos los valores del filtro\n\t\t\tthis.paramFiltros['precioMin'] = res.recordsets.filtros.rangoPrecio[1].minimo;\n\t\t\tthis.paramFiltros['precioMax'] = res.recordsets.filtros.rangoPrecio[1].maximo;\n\n\n\t\t\t// this.catalogos.segmento = res.recordsets.filtros.segmento;\n\t\t\tthis.catalogos.anio =[ {value: 0, name:'Cualquier Año'},...[...res.recordsets.filtros.anio].map(\n\t\t\t\t(f)=>{return {value:f.number ,name:f.number }}\n\t\t\t)];\n\t\t\tthis.catalogos.modelo =[ {value: 0, name:'Cualquier Modelo'}, ...[...res.recordsets.filtros.modelo].map(\n\t\t\t\t(f)=>{return {value:f.name ,name:f.name }}\n\t\t\t)];\n\t\t\tthis.catalogos.version =[ {value: 0, name:'Cualquier Versión'}, ...[...res.recordsets.filtros.transmision].map(\n\t\t\t\t(f)=>{return {value:f.name ,name:f.name }}\n\t\t\t)];\n\n\t\t\tif(!this.obMarca){\n\t\t\t\tthis.catalogos.marca =[ {value: 0, name:'Cualquier Marca', imagen: 'Cualquier Marca'}, ...[...res.recordsets.filtros.marca].map(\n\t\t\t\t\t(f)=>{return {value:f.name ,name:f.name, imagen: f.imagen }}\n\t\t\t\t)];\n\n\t\t\t\tconsole.log(\"this.catalogos\", this.catalogos);\n\t\t\t\t\n\t\t\t}\n\n\t\t\tif(!this.save){\n\t\t\t\tlet dfault = {\n\t\t\t\t\tanio:this.catalogos.anio[0].value,\n\t\t\t\t\tmarca:this.catalogos.marca[0].value,\n\t\t\t\t\tmodelo:this.catalogos.modelo[0].value,\n\t\t\t\t\tversion:this.catalogos.version[0].value,\n\t\t\t\t\tsegmento: this.segmento,\n\t\t\t\t\tprecioMin: this.paramFiltros['precioMin'],\n\t\t\t\t\tprecioMax: this.paramFiltros['precioMax']\n\t\t\t\t}\n\n\t\t\t\tthis.formBusqueda.setValue(dfault);\n\t\t\t\t// console.log(this.formBusqueda.getRawValue());\n\t\t\t}\n\n\t\t\tthis.save= true;\n\t\t\tthis.obMarca= true;\n\n\t\t});\n\t} \n\n\n\tLipiarFiltros(){\n\t\tthis.store.dispatch(MostrarSpinner());\n\t\tthis.paramFiltros['mostrarVehiculos'] = 0;\n\t\tif(this.save){\n\t\t\tthis.formBusqueda.controls['precioMin'].setValue(this.value);\n\t\t\tthis.formBusqueda.controls['precioMax'].setValue(this.highValue);\n\t\t}\n\t\tlet getFiltro = this.formBusqueda.getRawValue();\n\t\t\t\t\t\n\t\t// if( getFiltro.transmision != '0' ) this.paramFiltros['transmision'] = getFiltro.transmision;\n\t\tthis.paramFiltros['precioMin'] \t = null;\n\t\tthis.paramFiltros['precioMax'] \t = null;\n\t\tthis.paramFiltros['marca'] \t\t = null;\n\t\tthis.paramFiltros['modelo'] \t = null;\n\t\tthis.paramFiltros['anio'] \t\t = null;\n\t\tthis.paramFiltros['transmision'] = null;\n\t\tthis.paramFiltros['segmento'] \t = null;\n\n\t\tthis.coalService.postService(`vehiculo/filtro`, this.paramFiltros)\n\t\t.subscribe((res: any) => {\n\n\t\t\tif(!this.save){\n\t\t\t\tthis.bk_filtros = res.recordsets.filtros;\n\t\t\t}\n\t\t\t\n\t\t\tif(res.recordsets.filtros['transmision'] == null || res.recordsets.filtros['transmision'].length <= 0){\n\t\t\t\tthis.snackBar.open('No existen coincidencias con este filtro, vuelva a intentarlo..', 'Ok', { duration: 25000 });\n\t\t\t\treturn; \n\t\t\t}\n\n\n\n\t\t\t// Set precios\n\t\t\t// Definición de limites\n\t\t\tthis.options.floor = res.recordsets.filtros.rangoPrecio[0].minimo;\n\t\t\tthis.options.ceil = res.recordsets.filtros.rangoPrecio[0].maximo;\n\t\t\t// Valores seleccionados\n\t\t\tthis.value = res.recordsets.filtros.rangoPrecio[1].minimo;\n\t\t\tthis.highValue = res.recordsets.filtros.rangoPrecio[1].maximo;\n\n\t\t\tthis.onValueChange();\n\n\t\t\tthis.formBusqueda.controls['precioMin'].setValue(this.value);\n\t\t\tthis.formBusqueda.controls['precioMax'].setValue(this.highValue);\n\t\t\t// Seteamos los valores del filtro\n\t\t\tthis.paramFiltros['precioMin'] = res.recordsets.filtros.rangoPrecio[1].minimo;\n\t\t\tthis.paramFiltros['precioMax'] = res.recordsets.filtros.rangoPrecio[1].maximo;\n\n\n\t\t\t// this.catalogos.segmento = res.recordsets.filtros.segmento;\n\t\t\tthis.catalogos.anio =[ {value: 0, name:'Cualquier Año'},...[...res.recordsets.filtros.anio].map(\n\t\t\t\t(f)=>{return {value:f.number ,name:f.number }}\n\t\t\t)];\n\t\t\tthis.catalogos.modelo =[ {value: 0, name:'Cualquier Modelo'}, ...[...res.recordsets.filtros.modelo].map(\n\t\t\t\t(f)=>{return {value:f.name ,name:f.name }}\n\t\t\t)];\n\t\t\tthis.catalogos.version =[ {value: 0, name:'Cualquier Versión'}, ...[...res.recordsets.filtros.transmision].map(\n\t\t\t\t(f)=>{return {value:f.name ,name:f.name }}\n\t\t\t)];\n\n\t\t\tif(!this.obMarca){\n\t\t\t\tthis.catalogos.marca =[ {value: 0, name:'Cualquier Marca', imagen: \"Cualquier Marca\"}, ...[...res.recordsets.filtros.marca].map(\n\t\t\t\t\t(f)=>{return {value:f.name ,name:f.name, imagen: f.imagen }}\n\t\t\t\t)];\n\t\t\t}\n\n\t\t\tif(!this.save){\n\t\t\t\tlet dfault = {\n\t\t\t\t\tanio:this.catalogos.anio[0].value,\n\t\t\t\t\tmarca:this.catalogos.marca[0].value,\n\t\t\t\t\tmodelo:this.catalogos.modelo[0].value,\n\t\t\t\t\tversion:this.catalogos.version[0].value,\n\t\t\t\t\tsegmento: this.segmento,\n\t\t\t\t\tprecioMin: this.paramFiltros['precioMin'],\n\t\t\t\t\tprecioMax: this.paramFiltros['precioMax']\n\t\t\t\t}\n\n\t\t\t\tthis.formBusqueda.setValue(dfault);\n\t\t\t\t// console.log(this.formBusqueda.getRawValue());\n\t\t\t}\n\n\t\t\tthis.save= true;\n\t\t\tthis.obMarca= true;\n\t\t\tthis.store.dispatch(OcultarSpinner());\n\t\t\tthis.formBusqueda.controls['segmento'].setValue('') ;\n\t\t\tthis.formBusqueda.controls['marca'] .setValue(0) ;\n\t\t\tthis.formBusqueda.controls['modelo'] .setValue(0) ;\n\t\t\tthis.formBusqueda.controls['version'].setValue(0) ;\n\t\t\tthis.formBusqueda.controls['anio'].setValue(0) ;\n\t\t\tthis.segmento = '';\n\t\t\tthis.classMarca = '';\n\n\t\t});\n\t} \n\n\topenFiltros(){\n\t\tthis.formBusqueda.controls['precioMin'].setValue(this.value);\n\t\tthis.formBusqueda.controls['precioMax'].setValue(this.highValue);\n\t\tlet fb = this.formBusqueda.getRawValue();\n\t\t// busqueda/:pagina/:precioMin/:precioMax/:marca/:modelo/:anio/:transmision/:segmento/:busqueda\n\t\tthis.router.navigateByUrl(`/site/busqueda/1/${fb.precioMin}/${fb.precioMax}/${fb.marca}/${fb.modelo}/${fb.anio}/${fb.version}/${(fb.segmento)? fb.segmento: 0}/0`);\n\t}\n\n\tonChangeMarca(event){\n\t\tlet fb = this.formBusqueda.getRawValue();\n\t\t\n\t\tthis.imagenSelected = null;\n\t\tconsole.log(\"[\" +fb.marca + \"]\");\n\t\t\n\t\tif(fb.marca == 0){\n\t\t\tthis.imagenSelected = 'url(assets/images/integra/marcaBlack.png)';\n\t\t\tthis.classMarca = '';\n\t\t}\n\t\telse{\n\t\t\tthis.catalogos.marca.forEach( (item)=>{\n\t\t\t\tif( item.value == fb.marca ){\n\t\t\t\t\tthis.imagenSelected = 'url(' + item.imagen + ')';\n\t\t\t\t\tthis.classMarca = 'imagenMarca';\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tconsole.log(\"this.imagenSelected\", this.imagenSelected);\n\t\t\n\n\t\tthis.formBusqueda.controls['modelo'].setValue(0) ;\n\t\tthis.formBusqueda.controls['version'].setValue(0) ;\n\t\tthis.formBusqueda.controls['anio'].setValue(0) ;\n\n\t\tthis.GetFiltros();\n\n\t}\n\tonChangeModelo(event){\n\t\tlet fb = this.formBusqueda.getRawValue();\n\t\t\t\n\t\t\tthis.formBusqueda.controls['version'].setValue(0) ;\n\t\t\tthis.formBusqueda.controls['anio'].setValue(0) ;\n\t\tthis.GetFiltros();\n\t}\n\tonChangeVersion(event){\n\t\tlet fb = this.formBusqueda.getRawValue();\n\t\tthis.formBusqueda.controls['anio'].setValue(0) ;\n\t\tthis.GetFiltros();\n\t}\n\tonChangeAnio(event){\n\t\tthis.GetFiltros();\n\t}\n\tslectSegmento(){\n\t\tsetTimeout(() => {\n\t\t\tthis.formBusqueda.controls['segmento'].setValue(this.segmento) ;\n\t\t\tthis.formBusqueda.controls['marca'] .setValue(0) ;\n\t\t\tthis.formBusqueda.controls['modelo'] .setValue(0) ;\n\t\t\tthis.formBusqueda.controls['version'].setValue(0) ;\n\t\t\tthis.formBusqueda.controls['anio'].setValue(0) ;\n\n\t\t\tthis.obMarca= false;\n\n\t\t\tthis.GetFiltros();\n\t\t\t// console.log(this.segmento);\n\t\t},100)\n\t}\n}\n","
\n
\n
\n
\n \"sliderImg\"\n
\n
\n

El mejor plan de financiamiento

\n \n

Cotiza tu vehículo

\n
\n
\n
\n\n
\n \"sliderImg\"\n
\n
\n

Tenemos un auto listo para ti

\n \n

Cotiza tu vehículo

\n
\n
\n
\n\n
\n \"sliderImg\"\n
\n
\n

Tu decides el plan de pagos

\n \n

Cotiza tu vehículo

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

Bienvenido al Cotizador de Integra Arrenda

\n
\n
\n
 
\n
\n

Selecciona el tipo de auto

\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n\n
 
\n
\n
\n
\n
\n
\n
Marca
\n \n \n \n \n \n \n \n \n \n
   {{ item.name }}
\n
\n
\n
\n
\n
\n
Modelo
\n \n \n \n {{ item.name }} \n \n \n
\n
\n
\n
\n
Transmisión
\n \n \n \n {{ item.name }} \n \n \n
\n
\n
Año
\n \n \n \n {{ item.name }} \n \n \n
\n
\n
\n
\n
\n
\n Rango de precio\n
\n
\n
\n \n
\n \n \n\n
\n \n
\n \n \n
\n \n
\n
\n \n \n
\n
\n\n \n \n \n
\n
\n
 
\n
\n
\n
\n
\n
\n
\n
\n \n \n Limpiar Filtros\n \n
\n
\n \n
\n\n
\n

\n \n \n Limpiar Filtros\n \n
\n\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n\n\n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { LandingComponent } from './landing/landing.component';\nimport { FiltrosComponent } from './filtros/filtros.component';\nimport { DetalleUnidadComponent } from './detalle-unidad/detalle-unidad.component';\nimport { WizardSeguroComponent } from './cotizador/wizard-seguro/wizard-seguro.component';\nimport { CotizadorComponent } from './cotizador/cotizador/cotizador.component';\nimport { PasoDosComponent } from './cotizador/cotizador/wizard/PasoDos/PasoDos.component';\nimport { CotizacionComponent } from './cotizador/cotizador/wizard/cotizacion/cotizacion.component';\nimport { DescripcionCotizacionComponent } from './cotizador/cotizador/wizard/descripcion-cotizacion/descripcion-cotizacion.component';\n\nconst routes: Routes = [\n {\n path: 'home',\n component: LandingComponent\n },\n {\n path: 'busqueda/:pagina/:precioMin/:precioMax/:marca/:modelo/:anio/:transmision/:segmento/:busqueda',\n component: FiltrosComponent\n },\n {\n path: 'unidad/:id', \n component: DetalleUnidadComponent\n },\n {\n path: 'cotizacion',\n component: CotizadorComponent\n },\n // {\n // path: 'tmpSeguro',\n // component: WizardSeguroComponent\n // },\n {\n path: 'detalle-cotizar/:id',\n component: CotizacionComponent\n },\n {\n path: 'cot',\n component: DescripcionCotizacionComponent\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class SiteRoutingModule { }\n","import {CUSTOM_ELEMENTS_SCHEMA,NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SiteRoutingModule } from './site-routing.module';\nimport { SharedModule } from 'app/shared/shared.module';\nimport { NgxSliderModule } from '@angular-slider/ngx-slider'\nimport { IvyCarouselModule } from 'angular-responsive-carousel';\nimport { NgxPaginationModule } from 'ngx-pagination';\n// import { LayoutModule } from '@angular/cdk/layout';\n\nimport { LandingComponent } from './landing/landing.component';\nimport { FiltrosComponent } from './filtros/filtros.component';\nimport { DetalleUnidadComponent } from './detalle-unidad/detalle-unidad.component';\nimport { DialogSeguroComponent } from 'app/utilerias/site/dialog-seguro/dialog-seguro.component';\n\n// Galeria\nimport { GalleryModule } from '@ngx-gallery/core';\nimport { LightboxModule } from '@ngx-gallery/lightbox';\nimport { GallerizeModule } from '@ngx-gallery/gallerize';\n\n/*Utilerias*/\nimport { ItemUnidadComponent } from 'app/utilerias/site/item-unidad/item-unidad.component';\n// import { WizardSeguroComponent } from './cotizador/wizard-seguro/wizard-seguro.component';\nimport { ItemUnidadFullComponent } from 'app/utilerias/site/item-unidad-full/item-unidad-full.component';\nimport { CotizadorComponent } from './cotizador/cotizador/cotizador.component';\nimport { RecomendadosComponent } from 'app/utilerias/site/recomendados/recomendados.component';\nimport { MarcasComponent } from 'app/utilerias/site/marcas/marcas.component';\n// --- Wizard Cotizador\nimport { PasoUnoComponent } from './cotizador/cotizador/wizard/PasoUno/PasoUno.component';\nimport { PasoDosComponent } from './cotizador/cotizador/wizard/PasoDos/PasoDos.component';\nimport { PasoTresComponent } from './cotizador/cotizador/wizard/PasoTres/PasoTres.component';\nimport { PasoCuatroComponent } from './cotizador/cotizador/wizard/PasoCuatro/PasoCuatro.component';\nimport { PasoCincoComponent } from './cotizador/cotizador/wizard/PasoCinco/PasoCinco.component';\nimport { PasoSeisComponent } from './cotizador/cotizador/wizard/PasoSeis/PasoSeis.component';\n// import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { SlidePanelComponent } from './cotizador/cotizador/wizard/slide-panel/slide-panel.component';\n\n// ---Utilerias wizard\nimport { UnidadSelectComponent } from 'app/utilerias/cotizador/unidad-select/unidad-select.component';\nimport { EngancheComponent } from 'app/utilerias/cotizador/enganche/enganche.component';\nimport { SeguroComponent } from 'app/utilerias/cotizador/seguro/seguro.component';\nimport { DescripcionCotizacionComponent, DialogDetalleAutoDialog } from './cotizador/cotizador/wizard/descripcion-cotizacion/descripcion-cotizacion.component';\nimport { CotizacionComponent } from './cotizador/cotizador/wizard/cotizacion/cotizacion.component';\nimport { MatCarouselModule } from '@ngmodule/material-carousel';\nimport { DragScrollModule } from 'ngx-drag-scroll';\nimport { DialogPoliticasComponent } from 'app/utilerias/site/dialog-politicas/dialog-politicas.component';\nimport { DescargarPDFComponent } from './cotizador/descargar-pdf/descargar-pdf.component';\nimport { DialogPreaprobacionComponent } from './cotizador/dialog-preaprobacion/dialog-preaprobacion.component';\nimport { NgxCaptchaModule } from 'ngx-captcha';\n\n\n@NgModule({\n declarations: [\n LandingComponent,\n FiltrosComponent,\n DetalleUnidadComponent,\n ItemUnidadComponent,\n // WizardSeguroComponent,\n ItemUnidadFullComponent,\n CotizadorComponent,\n RecomendadosComponent,\n MarcasComponent,\n // Wizard Cotizador\n PasoUnoComponent,\n PasoDosComponent,\n PasoTresComponent,\n PasoCuatroComponent,\n PasoCincoComponent,\n PasoSeisComponent,\n SlidePanelComponent,\n // Utilerias wizard\n UnidadSelectComponent,\n EngancheComponent,\n SeguroComponent,\n DialogSeguroComponent,\n DialogPoliticasComponent,\n DescripcionCotizacionComponent,\n CotizacionComponent,\n DialogDetalleAutoDialog,\n DescargarPDFComponent,\n DialogPreaprobacionComponent\n ],\n imports: [\n CommonModule,\n SiteRoutingModule,\n SharedModule,\n NgxSliderModule,\n IvyCarouselModule,\n NgxPaginationModule,\n GalleryModule,\n LightboxModule,\n GallerizeModule,\n MatCarouselModule.forRoot(),\n DragScrollModule,\n NgxCaptchaModule\n // LayoutModule\n // BrowserAnimationsModule\n ],\n entryComponents:[\n ItemUnidadComponent,\n ItemUnidadFullComponent,\n RecomendadosComponent,\n MarcasComponent,\n UnidadSelectComponent,\n EngancheComponent,\n DialogSeguroComponent,\n DialogPoliticasComponent,\n\n ],\n schemas: [ CUSTOM_ELEMENTS_SCHEMA ]\n})\nexport class SiteModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BaseService } from 'app/services/base.service';\nimport { CoalService } from 'app/services/coal.service';\nimport { indexOf } from 'lodash';\n\n@Component({\n selector: 'app-enganche',\n templateUrl: './enganche.component.html',\n styleUrls: ['./enganche.component.scss']\n})\nexport class EngancheComponent implements OnInit {\n @Input() board;\n @Input() tipoCoti;\n\n selectAno = \t[\n {id: 1, name:'10%'},\n {id: 2, name:'15%'},\n {id: 3, name:'20%'},\n {id: 4, name:'25%'}\n ];\n selectPorcent: any = [{id: 1, name:'-'}];\n eleccion:any;\n\n importesForm: FormGroup;\n importe = new FormControl( '' );\n importeCalculado: number;\n\n constructor(\n\t\tprivate baseService: BaseService,\n private coalService: CoalService,\n private fb: FormBuilder\n ) {\n this.importesForm = fb.group({\n importe: this.importe\n });\n }\n\n ngOnInit(): void {\n this.getPorcentajes();\n }\n\n getPorcentajes(){\n this.coalService.getService(`cotizador/porcentajes`)\n\t\t.subscribe(\n\t\t\t(res: any) => {\n\t\t\t\tif (res.error) {\n\t\t\t\t\n\t\t\t\t} else if (res.excepcion) {\n\t\t\t\t\n\t\t\t\t} else {\n console.log(\"this.tipoCoti\", this.tipoCoti);\n \n if( this.tipoCoti == 'Enganche' ){\n this.selectPorcent = res.recordsets[0];\n if(this.board.eleccion != ''){\n this.eleccion = this.board.eleccion;\n }else{\n this.eleccion = '10%'\n }\n }\n else{\n this.selectPorcent = res.recordsets[1];\n if(this.board.eleccion != ''){\n this.eleccion = this.board.eleccion;\n }else{\n this.eleccion = '0%'\n }\n }\n\n this.calculaImporte();\n\t\t\t\t}\n\t\t\t}, (error: any) => {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t)\n }\n\n calculaImporte(){\n let porcentaje = parseInt( this.eleccion.replace('%','') );\n this.importeCalculado = this.board.price / 100 * porcentaje\n \n this.importesForm.controls['importe'].setValue( this.board.price / 100 * porcentaje );\n\n\n let autos = this.baseService.getOperacionAutos();\n\t\tlet operacion = this.baseService.getOperacionData();\n\t\tlet auto = autos[this.board.position];\n\n\n\t\tauto = {...auto,enganche: (this.board.price / 100 * porcentaje),eleccion: this.eleccion}\n\n\t\tautos[this.board.position] = auto;\n\n\t\toperacion = {...operacion, autos: [...autos]}\n\n\t\tthis.baseService.postOperacionData(operacion)\n\n }\n}\n","
\n
\n
\n
\n \n
\n
\n

{{board.title}}

\n

{{board.price | currency: 'USD':true:'2.0'}}

\n
\n
\n \n \n
\n
\n
\n
\n
{{ tipoCoti }}
\n
\n \n \n \n {{choice.name}}\n \n \n \n
\n
\n
\n
{{ importeCalculado | currency: 'USD':true:'2.0' }}
\n \n
\n \n
\n
\n
\n
\n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { BaseService } from 'app/services/base.service';\nimport { CoalService } from 'app/services/coal.service';\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\n\n@Component({\n\tselector: 'app-seguro',\n\ttemplateUrl: './seguro.component.html',\n\tstyleUrls: ['./seguro.component.scss']\n})\nexport class SeguroComponent implements OnInit {\n\t@Input() board;\n\t@Input() seguro?: BehaviorSubject;\n\ttype: string = 'obtener';\n\tdataSeguro: any;\n\tspinnerSeguro = false;\n\n\n\tradioAseguradora = [];\n\tselectCobertura = [];\n\t// [\n\t// \t{\n\t// \t\tcotizacion: {\n\t// \t\t\tlogo_aseg: 'https://storage.googleapis.com/quattrocrm/aseguradoras/36_140x70.png',\n\t// \t\t\tcot_id: 1,\n\t// \t\t\tprecio: 22794.99,\n\t// \t\t\tresultado: 'Costo Total'\n\t// \t\t}\n\t// \t},\n\t// \t{\n\t// \t\tcotizacion: {\n\t// \t\t\tlogo_aseg: 'https://www.ordashowden.mx/wp-content/uploads/2019/05/seguros-de-autos-gn1.jpg',\n\t// \t\t\tcot_id: 2,\n\t// \t\t\tprecio: 32784.99,\n\t// \t\t\tresultado: 'Costo Total'\n\t// \t\t}\n\t// \t},\n\t// ]\n\n\t// selectAno = [\n\t// \t{ id: 1, name: '10%' },\n\t// \t{ id: 2, name: '15%' },\n\t// \t{ id: 3, name: '20%' },\n\t// \t{ id: 4, name: '25%' }\n\t// ];\n\tformSeguro: FormGroup;\n\n\tconstructor(\n\t\tprivate coalService: CoalService,\n\t\tprivate baseService: BaseService,\n\t\tprivate snackBar: MatSnackBar,\n\t) {\n\t\t// this.seguro = new BehaviorSubject({});\n\n\t}\n\n\tngOnInit(): void {\n\t\tthis.formSeguro = new FormGroup({\n\t\t\taseguradora: new FormControl(''),\n\t});\n\n\t\tthis.seguro.subscribe((res: any) => {\n\t\t\tthis.dataSeguro = res;\n\n\t\t\tif(this.dataSeguro?.codigo ?? false){\n\t\t\t\tif(this.dataSeguro.type == 'obtener'){\n\t\t\t\t\tthis.ObtenerAseguradoras();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif(this.dataSeguro.type == 'actualizar' && this.radioAseguradora.length > 0){\n\t\t\t\t\tthis.actualizarCotizacion();\n\t\t\t\t\treturn;\n\t\t\t\t}else{\n\t\t\t\t\tthis.ObtenerAseguradoras();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tslectAseguradora(dt,position){\n\t\tlet autos = this.baseService.getOperacionAutos();\n\t\tlet operacion = this.baseService.getOperacionData();\n\t\tlet auto = autos[this.board.position];\n\n\t\tlet seguro = auto.seguro;\n\n\t\tauto = {...auto,seguro: {...seguro,\n\t\t\tprecio: dt.cotizacion.precio, \n\t\t\tformaPago: dt.cotizacion.forpag, \n\t\t\tpreciofPago: dt?.cotizacion?.forma_pago?.rec_sub ?? 0, \n\t\t\tpagoRestantes: dt?.cotizacion?.forma_pago?.recibos ?? 0,\n\t\t\tlogo_aseg: dt.cotizacion?.logo_aseg ?? ''\n\t\t}}\n\n\t\tautos[this.board.position] = auto;\n\n\t\toperacion = {...operacion, autos: [...autos]}\n\n\t\tthis.formSeguro.get('aseguradora').setValue(dt.cotizacion.cot_id+'_'+position);\n\n\t\tthis.baseService.postOperacionData(operacion)\n\t\t// console.log(dt)\n\t}\n\n\tObtenerAseguradoras(){\n\n\t\tlet dtCotizador = this.dataSeguro;\n\t\tlet param = {\n\t\t\tsexo: 'M',\n\t\t\tvehicleCode: this.board.version,\n\t\t\tyear: this.board.year,\n\t\t\tpostalCode: dtCotizador.codigo,\n\t\t\ttipoPersona: dtCotizador.tipoPersona,\n\t\t}\n\t\tthis.spinnerSeguro = true;\n\n\t\tthis.coalService.postServiceApiGA(`api/Insurance/MultiCotizador`,param)\n\t\t.subscribe(\n\t\t\t(res: any) => {\n\t\t\t\t// this.spinnerSeguro = false;\n\t\t\t\tif (res.error) {\n\t\t\t\t\n\t\t\t\t} else if (res.excepcion) {\n\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tlet respuesta = res;\n\t\t\t\t\t// // console.log(respuesta);\n\t\t\t\t\t// this.formSeguro.get('cobertura').setValue('AMPLIA');\n\n\t\t\t\t\tlet paquetes = [];\n\n\t\t\t\t\tif(respuesta.length <= 0){\n\t\t\t\t\t\tif(respuesta.length <= 0){\n\t\t\t\t\t\t\t// this.snackBar.open('En este momento no contamos con seguros para este vehículo.', 'Ok', { duration: 10000 });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.radioAseguradora = respuesta.map((f )=> {\n\t\t\t\t\t\tpaquetes.push( ...f?.aseguradora?.packages)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...f,\n\t\t\t\t\t\t\tcotizacion: this.GetCotizacion(f)\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// console.log(\"this.radioAseguradora\", this.radioAseguradora);\n\t\t\t\t\t\n\n\t\t\t\t\t// ------Paquetes--------\n\t\t\t\t\tlet paqueteDistinct = new Map();\n\t\t\t\t\tpaquetes.forEach((f) => {\n\t\t\t\t\t\tpaqueteDistinct.set(f.description,f.description);\n\t\t\t\t\t});\n\t\t\t\t\tconst values = Array.from(paqueteDistinct.values());\n\t\t\t\t\tthis.selectCobertura = values.map( (f)=>{\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdescription: f\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.actualizarCotizacion();\n\n\t\t\t\t}\n\t\t\t}, (error: any) => {\n\t\t\t\tthis.spinnerSeguro = false;\n\t\t\t\tthis.snackBar.open('Ocurrió un problema, vuelva a intentarlo de nuevo.', 'Ok', { duration: 10000 });\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t);\n\n\t}\n\n\n\tasync actualizarCotizacion(){\n\t\tthis.spinnerSeguro = true;\n\t\tlet listaAseguradora = [...this.radioAseguradora];\n\t\tfor (let index = 0; index < listaAseguradora.length; index++) {\n\t\t\tlet element = listaAseguradora[index];\n\t\t\telement = {...element, msg: ''}\n\n\t\t\tconst indx = element.aseguradora?.packages.findIndex(f => f.description == this.dataSeguro.cobertura);\n\t\t\tif (indx > -1){\n\t\t\t\tconst pack = element.aseguradora?.packages[indx].id ;\n\n\t\t\t\telement.solicitud.paq = pack;\n\t\t\t\telement.solicitud.paquete = this.dataSeguro.cobertura;\n\t\t\t\telement.solicitud.forpag = (this.dataSeguro.tipoPago == 1)? 'A' : 'M';\n\n\t\t\t\telement.solicitud.valor = this.board.price;\n\t\t\t\telement.solicitud.tipo_suma = 1;\n\t\t\t\t\n\t\t\t\tlet rsCotizacion:any = await this.serviceCotizacion(element.solicitud);\n\t\t\t\t\n\t\t\t\tif(rsCotizacion.success){\n\t\t\t\t\telement.cotizacion = rsCotizacion;\n\t\t\t\t\tlistaAseguradora[index]={...element,cotizacion : this.GetCotizacion(element) }\n\t\t\t\t}else{\n\t\t\t\t\tlistaAseguradora[index]={...element,cotizacion : null ,msg: rsCotizacion.msg}\n\n\t\t\t\t\tlet autos = this.baseService.getOperacionAutos();\n\t\t\t\t\tlet operacion = this.baseService.getOperacionData();\n\t\t\t\t\tlet auto = autos[this.board.position];\n\n\t\t\t\t\tlet seguro = auto.seguro;\n\n\t\t\t\t\tauto = {...auto,seguro: {...seguro,\n\t\t\t\t\t\tprecio: 0, \n\t\t\t\t\t\tformaPago: 'No aplica', \n\t\t\t\t\t\tpreciofPago: 0, \n\t\t\t\t\t\tpagoRestantes: 0,\n\t\t\t\t\t\tlogo_aseg: ''\n\t\t\t\t\t}}\n\t\t\t\t\tautos[this.board.position] = auto;\n\t\t\t\t\toperacion = {...operacion, autos: [...autos]};\n\t\t\t\t\tthis.baseService.postOperacionData(operacion);\n\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\tlistaAseguradora[index]={...element,cotizacion : null }\n\t\t\t}\n\t\t}\n\t\tthis.spinnerSeguro = false;\n\t\tthis.radioAseguradora = [...listaAseguradora];\n\t\t// console.log(\"this.radioAseguradora 2\", this.radioAseguradora);\n\n\t}\n\n\tstrSelect(item){\n\t\t// console.log(\"JSON.stringify\", JSON.stringify(item));\t\t\n\t\treturn JSON.stringify(item)\n\t}\n\n\n\tserviceCotizacion(solicitud): Promise<{}> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tthis.coalService.postServiceApiGA(`api/Insurance/Cotizar`, solicitud)\n\t\t\t\t.subscribe(\n\t\t\t\t\t(res: any) => {\n\t\t\t\t\t\tif (res.error) {\n\t\t\t\t\t\t} else if (res.excepcion) {\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet respuesta = res;\n\t\t\t\t\t\t\treturn resolve({ succcess: true, ...respuesta , msg: false })\n\t\t\t\t\t\t}\n\t\t\t\t\t}, (error: any) => {\n\t\t\t\t\t\t// let msg = error?.error || '';\n\t\t\t\t\t\tlet msg = 'No aplica seguro';\n\t\t\t\t\t\treturn resolve({ succcess: false, msg: msg });\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t});\n\t}\n\n\tGetCotizacion(interMultiCotizacion) {\n\t\t// Cotizacion result;\n\t\tlet result: Cotizacion;\n\t\tif (interMultiCotizacion?.cotizacion) {\n\t\t\tlet c = interMultiCotizacion.cotizacion;\n\n\t\t\tresult = new Cotizacion();\n\t\t\tresult.logo_aseg = c.logo_gde_aseg;\n\t\t\tresult.color_aseg = c.color_aseg;\n\t\t\tresult.cot_id = c.cot_id;\n\t\t\tresult.pt = c.pt;\n\t\t\tresult.forpag = (this.dataSeguro.tipoPago == 1)? 'A' : 'M'; //this.SelectedMethod; //c.forpag;\n\t\t\tresult.leyenda_pago = (c.forpag == \"A\") ? \"No aplica para Pago referenciado/Ventanilla\" : \"\";\n\n\t\t\tlet fPago = new FormaPago();\n\t\t\tfPago.pt = c.pt;\n\t\t\tfPago.forpag = c.forpag;\n\t\t\tfPago.recibos = 0;\n\t\t\tfPago.rec_ini = c.pt;\n\t\t\tfPago.rec_sub = 0;\n\t\t\tfPago.fin = 0;\n\t\t\tfPago.der = c.der;\n\t\t\tfPago.iva = c.iva;\n\t\t\tfPago.orden = 0;\n\n\t\t\tlet fpag = (this.dataSeguro.tipoPago == 1)? 'A' : 'M' ;\n\t\t\tswitch (fpag) {\n\t\t\t\tcase \"A\": result.forma_pago = fPago; break;\n\t\t\t\tcase \"M\": result.forma_pago = c.formas_pago?.mensual ?? fPago; break;\n\t\t\t\tcase \"T\": result.forma_pago = c.formas_pago?.trimestral ?? fPago; break;\n\t\t\t\tcase \"S\": result.forma_pago = c.formas_pago?.semestral ?? fPago; break;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t} else {\n\t\t\tresult = new Cotizacion();\n\t\t\tresult.logo_aseg = \"\";\n\t\t\tresult.color_aseg = \"\";\n\t\t\tresult.cot_id = 0;\n\t\t\tresult.pt = 0;\n\t\t\tresult.forpag = \"A\";\n\t\t\tresult.leyenda_pago = \"\";\n\n\t\t\tlet fPago = new FormaPago();\n\t\t\tfPago.pt = 0;\n\t\t\tfPago.forpag = \"A\";\n\t\t\tfPago.recibos = 0;\n\t\t\tfPago.rec_ini = 0;\n\t\t\tfPago.rec_sub = 0;\n\t\t\tfPago.fin = 0;\n\t\t\tfPago.der = 0;\n\t\t\tfPago.iva = 0;\n\t\t\tfPago.orden = 0;\n\t\t};\n\n\t\t// console.log(result);\n\t\treturn result;\n\t}\n\n}\n\n\nexport class Cotizacion {\n\tpublic _logo_aseg: string;\n\tpublic _color_aseg: string;\n\tpublic _cot_id: number;\n\tpublic _leyenda_pago: string;\n\n\tpublic get logo_aseg() { return this._logo_aseg }\n\tpublic get color_aseg() { return this._color_aseg }\n\tpublic get cot_id() { return this._cot_id }\n\tpublic get leyenda_pago() { return this._leyenda_pago }\n\t// --------------------\n\tpublic set logo_aseg(rs) { this._logo_aseg = rs }\n\tpublic set color_aseg(rs) { this._color_aseg = rs }\n\tpublic set cot_id(rs) { this._cot_id = rs }\n\tpublic set leyenda_pago(rs) { this._leyenda_pago = rs }\n\n\tpublic _pt: number;\n\tpublic _forpag: string;\n\tpublic _forma_pago: FormaPago;\n\n\tpublic get pt() { return this._pt }\n\tpublic get forpag() { return this._forpag }\n\tpublic get forma_pago() { return this._forma_pago }\n\t// ---------------\n\tpublic set pt(rs) { this._pt = rs }\n\tpublic set forpag(rs) { this._forpag = rs }\n\tpublic set forma_pago(rs) { this._forma_pago = rs }\n\n\n\t// public decimal precio { get { return forpag == \"A\" ? pt : forma_pago.rec_ini; } }\n\tpublic get precio(): number {\n\t\t// return (this.forpag == \"A\") ? this.pt : this.pt; //this.forma_pago.rec_ini;\n\t\treturn (this.forpag == \"A\") ? this.pt : this.forma_pago.rec_ini;\n\t}\n\n\tpublic get resultado(): string {\n\t\treturn \"Costo Total\";\n\t\t// return (this.forpag == \"A\") ? \"Costo Total\" : ` ${this.forma_pago?.recibos ?? 0} Pagos de ${this.forma_pago?.rec_sub}`;\n\t}\n}\n\n\nexport class FormaPago {\n\tpublic _forpag: string;\n\tpublic _der?: number;\n\tpublic _pt: number;\n\tpublic _iva: number;\n\tpublic _recibos?: number;\n\tpublic _fin: number;\n\tpublic _rec_ini: number;\n\tpublic _rec_sub: number;\n\tpublic _orden?: number;\n\tpublic _disponible?: boolean;\n\n\tpublic get forpag() { return this._forpag };\n\tpublic get der() { return this._der };\n\tpublic get pt() { return this._pt };\n\tpublic get iva() { return this._iva };\n\tpublic get recibos() { return this._recibos };\n\tpublic get fin() { return this._fin };\n\tpublic get rec_ini() { return this._rec_ini };\n\tpublic get rec_sub() { return this._rec_sub };\n\tpublic get orden() { return this._orden };\n\tpublic get disponible() { return this._disponible };\n\t// -----------------\n\tpublic set forpag(rs) { this._forpag = rs };\n\tpublic set der(rs) { this._der = rs };\n\tpublic set pt(rs) { this._pt = rs };\n\tpublic set iva(rs) { this._iva = rs };\n\tpublic set recibos(rs) { this._recibos = rs };\n\tpublic set fin(rs) { this._fin = rs };\n\tpublic set rec_ini(rs) { this._rec_ini = rs };\n\tpublic set rec_sub(rs) { this._rec_sub = rs };\n\tpublic set orden(rs) { this._orden = rs };\n\tpublic set disponible(rs) { this._disponible = rs };\n\n\t/// \n\t/// 1 - Pago por pasarela, 2 - Pago junto a la emision, 3 - Pago despues de emitir\n\t/// \n\n\tpublic _PaymentType?: number;\n\tpublic _PaymentCheck: boolean;\n\n\tpublic get PaymentType() { return this.PaymentType };\n\tpublic get PaymentCheck() { return this.PaymentCheck };\n\t// ------------------------\n\tpublic set PaymentType(rs) { this.PaymentType = rs };\n\tpublic set PaymentCheck(rs) { this.PaymentCheck = rs };\n\n}","
\n
\n
\n
\n \n
\n
\n

{{board.title}}

\n

{{board.price | currency: 'USD':true:'2.0'}}

\n
\n
\n \n \n
\n \n \n \n\n \n \n
\n
\n
\n
\n
\n
\n \n \n Cargando...\n \n \n
\n
\n Buscando el mejor seguro para ti\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \"\"\n \n \n \n \n \n \n {{choice.msg}}\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \"\"\n \n \n \n \n \n \n \n {{choice.cotizacion._pt | currency}}\n \n \n \n \n \n {{choice.cotizacion.resultado}}\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n\n \n
\n
\n
\n
\n
\n
\n \n Por el momento no contamos con opciones de seguro para este auto\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n\n \n
\n
","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-unidad-select',\n templateUrl: './unidad-select.component.html',\n styleUrls: ['./unidad-select.component.scss']\n})\nexport class UnidadSelectComponent implements OnInit {\n @Input() board;\n\n selectAno = \t[{id: 1,name:'2021'}];\n\tselectMarca = \t[{id: 1,name:'Buick'}];\n\tselectModelo = \t[{id: 1,name:'Encore'}];\n\tselectVersion = \t[{id: 1,name:'GXX 2.0 Aut'}];\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n
\n
\n \n
\n

{{board.title}}

\n

{{board.price | currency: 'USD':true:'2.0'}}

\n
\n \n \n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\nimport { FuseCardComponent } from '@fuse/components/card';\nimport { IOperacion } from 'app/interfaces/interfaces';\nimport { BaseService } from 'app/services/base.service';\nimport { CoalService } from 'app/services/coal.service';\n\n@Component({\n\tselector: 'app-dialog-seguro',\n\ttemplateUrl: './dialog-seguro.component.html',\n\tstyleUrls: ['./dialog-seguro.component.scss']\n})\nexport class DialogSeguroComponent implements OnInit {\n\tnombre: string;\n\timagen: string;\n\tselectAno = []; //[{ year: 2021},{year: 2022 }];\n\tselectMarca = [];//[{ id: 1, name: 'Buick' }];\n\tselectModelo = [];//[{ id: 1, name: 'Encore' }];\n\tselectVersion = [];//[{ id: 1, name: 'GXX 2.0 Aut' }];\n\tformCotizador : FormGroup;\n\tdataCotizador : any;\n\toperacion: IOperacion;\n\tisSeguro = true;\n\tisMarcaSeguro = true;\n\n\n\tconstructor(\n private router: Router,\n\t\tprivate snackBar: MatSnackBar,\n private baseService: BaseService,\n\t\tprivate coalService: CoalService,\n\t\tpublic dialogRef: MatDialogRef,\n\t\t@Inject(MAT_DIALOG_DATA) public data: any,) { }\n\n\tngOnInit(): void {\n this.operacion = this.baseService.getOperacionData();\n\t\tconsole.log(this.data);\n\t\tthis.nombre = this.data.marca + ' ' + this.data.modelo + ' ' + this.data.anio;\n\t\tthis.imagen = this.data.imagen[0].UrlLocal;\n\n\t\tthis.formCotizador = new FormGroup({\n\n\t\t\tyear: new FormControl('', [Validators.required]),\n\t\t\tmarca: new FormControl('', [Validators.required]),\n\t\t\tmodelo: new FormControl('', [Validators.required]),\n\t\t\tversion: new FormControl('', [Validators.required]),\n\t\t\tdescripcion: new FormControl(''),\n\t\t});\n\n\t\tthis.formCotizador.valueChanges.subscribe((res) => { this.dataCotizador = res; })\n\n\t\tthis.formCotizador.get('year').disable();\n\t\tthis.formCotizador.get('year').setValue(this.data.anio);\n\t\tthis.onChangeYear(this.data.anio);\n\n\t}\n\n\tonNoSeguro(): void {\n\t\t// this.dialogRef.close();\n\t\tthis.dataCotizador = this.formCotizador.getRawValue();\n\n\t\tlet autos = this.operacion.autos ?? [];\n\t\tif(autos.length > 3){\n\t\t\tthis.snackBar.open('Ya existen 4 vehículos seleccionados, elimine uno..', 'Ok', { duration: 1000 });\n\t\t\tthis.dialogRef.close();\n\t\t\tthis.router.navigateByUrl(`/site/cotizacion`);\n\t\t\treturn;\n\t\t}\n this.operacion.autos = [ ...autos, {...this.data, seguro: {...this.dataCotizador, aplica: false, precio: 0} }];\n\t\t\n\t\tif(this.operacion.autos ?? false){\n\t\t\t// let flujo = this.operacion.flujo ?? [];\n\t\t\tthis.operacion.flujo = [ \n\t\t\t\t{paso: 1, checked: true, view: 0},\n\t\t\t\t{paso: 2, checked: false, view: 0},\n\t\t\t\t{paso: 3, checked: false, view: 0},\n\t\t\t\t{paso: 4, checked: false, view: 0},\n\t\t\t\t{paso: 5, checked: false, view: 0},\n\t\t\t];\n\t\t}else{\n\t\t\tthis.operacion.flujo = this.operacion.flujo.map(f =>{ return {...f,checked:(f.paso == 1)? true : false}});\n\t\t}\n\t\tthis.baseService.postOperacionData(this.operacion);\n\t\tthis.dialogRef.close();\n\t\tthis.router.navigateByUrl(`/site/cotizacion`);\n\t}\n\n\tonNoClick(): void {\n\n\t\tthis.formCotizador.markAllAsTouched();\n\t\tthis.formCotizador.updateValueAndValidity();\n\t\tif ( this.formCotizador.invalid )\n\t\t{\n\t\t\tthis.snackBar.open('Favor de completar los campos requeridos.', 'Ok', { duration: 1000 });\n\t\t\treturn;\n\t\t}\n\n\t\t// this.dialogRef.close();\n\t\tthis.dataCotizador = this.formCotizador.getRawValue();\n\n\t\tlet autos = this.operacion.autos ?? [];\n\t\tif(autos.length > 3){\n\t\t\tthis.snackBar.open('Ya existen 4 vehículos seleccionados, elimine uno..', 'Ok', { duration: 1000 });\n\t\t\tthis.dialogRef.close();\n\t\t\tthis.router.navigateByUrl(`/site/cotizacion`);\n\t\t\treturn;\n\t\t}\n this.operacion.autos = [ ...autos, {...this.data, seguro: {...this.dataCotizador, aplica: true, precio: 0} }];\n\t\t\n\t\tif(this.operacion.autos ?? false){\n\t\t\t// let flujo = this.operacion.flujo ?? [];\n\t\t\tthis.operacion.flujo = [ \n\t\t\t\t{paso: 1, checked: true, view: 0},\n\t\t\t\t{paso: 2, checked: false, view: 0},\n\t\t\t\t{paso: 3, checked: false, view: 0},\n\t\t\t\t{paso: 4, checked: false, view: 0},\n\t\t\t\t{paso: 5, checked: false, view: 0},\n\t\t\t];\n\t\t}else{\n\t\t\tthis.operacion.flujo = this.operacion.flujo.map(f =>{ return {...f,checked:(f.paso == 1)? true : false}});\n\t\t}\n\t\tthis.baseService.postOperacionData(this.operacion);\n\t\tthis.dialogRef.close();\n\t\tthis.router.navigateByUrl(`/site/cotizacion`);\n\t}\n\n\tonChangeYear(event) {\n\t\tthis.coalService.getServiceApiGA(`api/Insurance/GetMarcas/${event}`)\n\t\t\t.subscribe(\n\t\t\t\t(res: any) => {\n\t\t\t\t\tif (res.error) {\n\n\t\t\t\t\t} else if (res.excepcion) {\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet respuesta = res;\n\t\t\t\t\t\tthis.selectMarca = respuesta;\n\t\t\t\t\t\tthis.selectModelo = [];\n\t\t\t\t\t\tthis.selectVersion = [];\n\t\t\t\t\t\tthis.formCotizador.patchValue({ 'marca': null, 'modelo': null, 'version': null });\n\n\t\t\t\t\t\tlet filt = [...respuesta];\n\n\t\t\t\t\t\tlet marca:any = filt.filter(f => f.description == (this.data.marca.toUpperCase()))\n\n\t\t\t\t\t\tif(marca.length <= 0){\n\t\t\t\t\t\t\tthis.snackBar.open('No hay coincidencias con la marca del vehículo. No cuenta con seguro disponible.', 'Ok', { duration: 3000 });\n\t\t\t\t\t\t\tthis.isMarcaSeguro = false;\n\t\t\t\t\t\t\t// this.isSeguro = false;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tthis.formCotizador.get('marca').disable();\n\t\t\t\t\t\t\tthis.formCotizador.get('marca').setValue(marca[0].code);\n\t\t\t\t\t\t\tthis.onChangeMarca(marca[0].code)\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t// console.log(respuesta);\n\t\t\t\t\t\t// console.log('---------------');\n\t\t\t\t\t}\n\t\t\t\t}, (error: any) => {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t\tthis.isSeguro = false;\n\t\t\t\t\t// console.log('---------------');\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tonChangeMarca(event) {\n\t\tthis.dataCotizador = this.formCotizador.getRawValue();\n\t\tthis.coalService.getServiceApiGA(`api/Insurance/GetTipos/${this.dataCotizador.year}/${event}`)\n\t\t\t.subscribe(\n\t\t\t\t(res: any) => {\n\t\t\t\t\tif (res.error) {\n\n\t\t\t\t\t} else if (res.excepcion) {\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet respuesta = res;\n\t\t\t\t\t\tthis.selectModelo = respuesta;\n\t\t\t\t\t\tthis.selectVersion = [];\n\t\t\t\t\t\tthis.formCotizador.patchValue({ 'modelo': null, 'version': null });\n\n\t\t\t\t\t\tlet filt = [...respuesta];\n\n\t\t\t\t\t\tlet mod = this.data.modelo.toUpperCase();\n\t\t\t\t\t\tmod = mod.split(\" \").join(\"\"); ;\n\t\t\t\t\t\tlet modelo:any = filt.filter(f => f.type == mod);\n\n\t\t\t\t\t\tif(modelo.length <= 0){\n\t\t\t\t\t\t\tthis.snackBar.open('No hay coincidencias con el modelo del vehículo. Verifique si existe.', 'Ok', { duration: 100000 });\n\t\t\t\t\t\t\tthis.isSeguro = false;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tthis.formCotizador.get('modelo').disable();\n\t\t\t\t\t\t\tthis.formCotizador.get('modelo').setValue(modelo[0].type);\n\t\t\t\t\t\t\tthis.onChangeModelo(modelo[0].type)\n\t\t\t\t\t\t}\n\n\n\n\t\t\t\t\t\t// console.log(respuesta);\n\t\t\t\t\t\t// console.log('---------------');\n\t\t\t\t\t}\n\t\t\t\t}, (error: any) => {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t\tthis.isSeguro = false;\n\t\t\t\t\t// console.log('---------------');\n\t\t\t\t}\n\t\t\t);\n\n\t}\n\n\tonChangeVersion(event) {\n\t\tthis.selectVersion.map(f => {\n\t\t\tif(f.code == event){\n\t\t\t\tthis.formCotizador.get('descripcion').setValue(f.description);\n\t\t\t}\n\t\t})\n\t}\n\n\n\tonChangeModelo(event) {\n\t\tthis.dataCotizador = this.formCotizador.getRawValue();\n\t\tthis.coalService.getServiceApiGA(`api/Insurance/GetDescripciones/${this.dataCotizador.year}/${this.dataCotizador.marca}/${event}`)\n\t\t\t.subscribe(\n\t\t\t\t(res: any) => {\n\t\t\t\t\tif (res.error) {\n\n\t\t\t\t\t} else if (res.excepcion) {\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet respuesta = res;\n\t\t\t\t\t\tthis.selectVersion = respuesta;\n\t\t\t\t\t\tthis.formCotizador.patchValue({ 'version': null });\n\n\t\t\t\t\t\tif (respuesta.length <= 0) {\n\t\t\t\t\t\t\tthis.snackBar.open('En este momento no contamos versiones disponibles para este vehículo', 'Ok', { duration: 1000 });\n\t\t\t\t\t\t\tthis.isSeguro = false;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// console.log(respuesta);\n\t\t\t\t\t\t// console.log('---------------');\n\t\t\t\t\t}\n\t\t\t\t}, (error: any) => {\n\t\t\t\t\tlet msg = error?.error || '';\n\t\t\t\t\tif (msg) {\n\t\t\t\t\t\tthis.snackBar.open(msg, 'Ok', { duration: 10000 });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.snackBar.open('Ocurrió un problema, vuelva a intentarlo de nuevo.', 'Ok', { duration: 1000 });\n\t\t\t\t\tthis.isSeguro = false;\n\t\t\t\t\treturn;\n\t\t\t\t\t// console.error(error);\n\t\t\t\t\t// console.log('---------------');\n\t\t\t\t}\n\t\t\t);\n\n\t}\n\n}\n","
\n
\n \n

Para continuar, ayúdanos a completar la información

\n
\n
\n
\n \n
\n
\n
\n
{{ nombre }}
\n
\n \n
\n
\n
\n \n Marca\n \n \n {{choice.description}}\n \n \n \n
\n
\n \n Modelo\n \n \n {{choice.type}}\n \n \n \n
\n
\n
\n
\n \n Versión\n \n \n {{choice.description}}\n \n \n \n
\n
\n \n Año\n \n \n \n
\n
\n
\n
\n\n \n
\n \n Esta cotización es informativa, y se tendra que agregar el costo del seguro con ayuda de un asesor.\n \n
\n
\n \n
\n\n
\n \n No se encontró coincidencias con alguno de los campos, verifique que el modelo que desea adquirir está dentro los parámetros, sino se encuentra continúe sin seguro.\n \n
\n
\n \n\n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n\n\n ","import { Component, Input, OnInit, Type } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-item-unidad-full',\n templateUrl: './item-unidad-full.component.html',\n styleUrls: ['./item-unidad-full.component.scss']\n})\nexport class ItemUnidadFullComponent implements OnInit {\n\t@Input() data;\n static CotizacionComponent: any[] | Type;\n\n\tconstructor(private router: Router) { }\n\n \tngOnInit(): void {\n \t}\n\n\topenDetalle(){\n\t\tthis.router.navigateByUrl(`/site/unidad/${this.data.idUnidad}`);\n\t}\n}\n","
\n
\n \n \n \n \n \n \n
\n
\n
\n

{{ data.descripcion }}

\n
\n \n
\n
\n
\n Año:\n Modelo:\n Versión:\n Transmisión:\n
\n
\n {{ data.anio }}\n {{ data.modelo }}\n {{ data.version }}\n {{ data.transmision }}\n
\n
\n
\n \n
Desde:{{ data.precio | currency: 'USD':true:'2.0' }}
\n

Precio vigente al {{ data?.labelVigencia }}.\n Expresado en moneda nacional con IVA incluido.\n Unidad sujeta a disponibilidad.

\n
\n \n
\n \n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-item-unidad',\n templateUrl: './item-unidad.component.html',\n styleUrls: ['./item-unidad.component.scss']\n})\nexport class ItemUnidadComponent implements OnInit {\n @Input() data;\n\n constructor(private router: Router) { }\n\n ngOnInit(): void {\n }\n\n openDetalle( id ){\n this.router.navigateByUrl(`/site/unidad/${ id }`);\n }\n}\n","\n
\n \n
\n \n
\n
\n
\n
{{ data.descripcion }} {{ data.modelo }} {{ data.anio }}
\n
{{ data.precio | currency: 'USD':true:'2.0' }}
\n
\n
\n
\n \n
\n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { CoalService } from 'app/services/coal.service';\n\n@Component({\n selector: 'app-marcas',\n templateUrl: './marcas.component.html',\n styleUrls: ['./marcas.component.scss']\n})\nexport class MarcasComponent implements OnInit {\n marcas: any;\n\n constructor(private coalService: CoalService) { }\n\n ngOnInit(): void {\n this.getMarcas();\n }\n\n getMarcas(){\n this.coalService.getService(`vehiculo/marca`)\n\t\t.subscribe((res: any) => {\n this.marcas = res.recordsets[0];\n\t\t});\n }\n\n}\n","
Encuentras más

\n

MARCAS

\n
\n
\n \n
\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { CoalService } from 'app/services/coal.service';\n\n@Component({\n selector: 'app-recomendados',\n templateUrl: './recomendados.component.html',\n styleUrls: ['./recomendados.component.scss']\n})\nexport class RecomendadosComponent implements OnInit {\n \n @Input() curId;\n unidades: any = [];\n\n constructor(\n private coalService: CoalService\n ) { }\n\n ngOnInit(): void {\n let aux = localStorage.getItem('r');\n if( aux === undefined || aux === null ){\n aux = null;\n }\n this.getRecomendados( this.curId, aux );\n }\n\n getRecomendados( id, vistos ){\n const param = {\n curId: id,\n recientes: vistos\n }\n\n this.coalService.postService(`vehiculo/recomendados`, param)\n\t\t.subscribe((res: any) => {\n res.recordsets[0].forEach(element => {\n this.unidades.push({\n idUnidad: element.idVehiculo,\n img: element.imagen,\n descripcion: element.marca,\n anio: element.anio,\n modelo: element.modelo,\n version: element.version,\n transmision: element.transmision,\n precio: element.precio\n })\n });\n\t\t});\n }\n}\n","
\n
Encuentras más

\n

Ofertas Especiales

\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n
"],"names":[],"sourceRoot":"webpack:///"}