{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/banner/banner.component.ts","./src/app/components/banner/banner.component.html","./src/app/components/btn-dropdown/btn-dropdown.component.ts","./src/app/components/btn-dropdown/btn-dropdown.component.html","./src/app/components/bucket/bucket.component.ts","./src/app/components/bucket/bucket.component.html","./src/app/components/filter/filter.component.ts","./src/app/components/filter/filter.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/results-map/results-map.component.ts","./src/app/components/results-map/results-map.component.html","./src/app/components/searchbox/searchbox.component.ts","./src/app/components/searchbox/searchbox.component.html","./src/app/components/searchresults/searchresults.component.ts","./src/app/components/searchresults/searchresults.component.html","./src/app/components/sex-offender-card/address-block/address-block.component.ts","./src/app/components/sex-offender-card/address-block/address-block.component.html","./src/app/components/sex-offender-card/sex-offender-card.component.ts","./src/app/components/sex-offender-card/sex-offender-card.component.html","./src/app/pages/disclaimer/disclaimer.component.ts","./src/app/pages/disclaimer/disclaimer.component.html","./src/app/pages/home/home.component.ts","./src/app/pages/home/home.component.html","./src/app/pages/home/index.ts","./src/app/pages/results/index.ts","./src/app/pages/results/results.component.ts","./src/app/pages/results/results.component.html","./src/app/services/sexoffender-data.service.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACc;AACK;AACS;AACS;;;AAG9E,MAAM,MAAM,GAAW;IACrB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,wEAAa,EAAE;IACtC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,wEAAa,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,iFAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,0FAAmB,EAAE;IACtD,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,iFAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE;IAC/F,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,iFAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE;IACpF,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,iFAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE;CAClF,CAAC;AAMK,MAAM,gBAAgB;;+FAAhB,gBAAgB;0JAAhB,gBAAgB,kBAHlB,CAAC,4DAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAC7B,4DAAY;mIAEX,gBAAgB,uFAFjB,4DAAY;6FAEX,gBAAgB;cAJ5B,sDAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,4DAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC,4DAAY,CAAC;aACxB;;;;;;;;;;;;;;ACpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACc;AACd;;;;;AAQ1C,gDAAgD;AACzC,MAAM,YAAY;IAMvB;QALA,UAAK,GAAG,aAAa,CAAC;QAEtB,WAAM,GAAG,uDAAY,CAAC,MAAM,CAAC;QAC7B,WAAM,GAAG,uDAAY,CAAC,MAAM,CAAC;IAEd,CAAC;IAET,QAAQ;QACb,2BAA2B;QAC3B,IAAI,CAAC,+DAAS,EAAE,EAAE;YAChB,OAAO,CAAC,GAAG,GAAG,cAAa,CAAC,CAAC;SAC9B;IACH,CAAC;;wEAbU,YAAY;4FAAZ,YAAY;QCXzB,yEACE;QAAA,uEAAwD;QACxD,yEACI;QAAA,2EAA+B;QACnC,4DAAM;QACN,uEAA6D;QAC/D,4DAAM;;QALkB,0DAAwB;QAAxB,qFAAwB;QAInB,0DAAwB;QAAxB,qFAAwB;;6FDMxC,YAAY;cAPxB,uDAAS;eAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,sBAAsB;gBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC;;;;;;;;;;;;;;AERD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACjB;AACyB;AACV;AAEA;AAExD,yBAAyB;AACsD;AACrB;AACW;AACf;AACO;AACE;AACE;AACJ;AACF;AACJ;AACS;AAEhE,QAAQ;AACqC;AACM;AAC2B;AAE9E,aAAa;AACkC;AACiC;AACsB;AACjB;AACO;AACJ;AACqB;AACtC;AACA;AACA;AACA;AACA;;;;AA0ChE,MAAM,SAAS;;wFAAT,SAAS,cAFR,4DAAY;4IAEb,SAAS,mBAHT,EAAE,YAlBJ;YACP,uEAAa;YACb,4FAAuB;YACvB,uEAAe,CAAC,OAAO,EAAE;YACzB,mEAAa,CAAC,OAAO,EAAE;YACvB,oEAAgB;YAChB,0DAAW;YACX,kFAAiB;YACjB,0EAAgB;YAChB,2EAAgB;YAChB,6EAAiB;YACjB,+EAAkB;YAClB,yEAAe;YACf,qEAAa;YACb,8EAAiB;YACjB,kEAAmB;YACnB,qEAAgB;SACjB;mIAIU,SAAS,mBAtClB,4DAAY;QACZ,iBAAiB;QACjB,0DAAa;QACb,gEAAgB;QAChB,6FAAkB;QAClB,mHAAwB;QACxB,yGAAsB;QACtB,kGAAmB;QACnB,qGAAoB;QACpB,2FAAmB;QACnB,0HAAqB;QACrB,oFAAe;QACf,oFAAe;QACf,oFAAe;QACf,oFAAe;QACf,oFAAe,aAGf,uEAAa;QACb,4FAAuB,gJAGvB,oEAAgB;QAChB,0DAAW;QACX,kFAAiB;QACjB,0EAAgB;QAChB,2EAAgB;QAChB,6EAAiB;QACjB,+EAAkB;QAClB,yEAAe;QACf,qEAAa;QACb,8EAAiB;QACjB,kEAAmB;QACnB,qEAAgB;6FAKP,SAAS;cAxCrB,sDAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,4DAAY;oBACZ,iBAAiB;oBACjB,0DAAa;oBACb,gEAAgB;oBAChB,6FAAkB;oBAClB,mHAAwB;oBACxB,yGAAsB;oBACtB,kGAAmB;oBACnB,qGAAoB;oBACpB,2FAAmB;oBACnB,0HAAqB;oBACrB,oFAAe;oBACf,oFAAe;oBACf,oFAAe;oBACf,oFAAe;oBACf,oFAAe;iBAChB;gBACD,OAAO,EAAE;oBACP,uEAAa;oBACb,4FAAuB;oBACvB,uEAAe,CAAC,OAAO,EAAE;oBACzB,mEAAa,CAAC,OAAO,EAAE;oBACvB,oEAAgB;oBAChB,0DAAW;oBACX,kFAAiB;oBACjB,0EAAgB;oBAChB,2EAAgB;oBAChB,6EAAiB;oBACjB,+EAAkB;oBAClB,yEAAe;oBACf,qEAAa;oBACb,8EAAiB;oBACjB,kEAAmB;oBACnB,qEAAgB;iBACjB;gBACD,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,CAAC,4DAAY,CAAC;aAC1B;;;;;;;;;;;;;;AC9ED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgE;AACiB;AACnB;;;;;ICF9D,yEACI;IAAA,yEACI;IAAA,mFACJ;IAAA,4DAAM;IACN,yEACI;IAAA,uEAAoF;IAAA,4EAAiB;IAAA,4DAAI;IACzG,yEAAwD;IAAnB,6SAAkB;IAAC,kEAAO;IAAA,4DAAM;IACzE,4DAAM;IACV,4DAAM;;IARc,gFAAS;;ADoBtB,MAAM,eAAe;IAK1B;QAJO,YAAO,GAAG,IAAI,CAAC;QAEZ,WAAM,GAAG,IAAI,0DAAY,EAAE,CAAC;QAGpC,IAAI,CAAC,OAAO,GAAG,uDAAY,CAAC,aAAa,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC/B,CAAC;;8EAXU,eAAe;+FAAf,eAAe;QCpB5B,2GACI;;QAD0B,6EAAe;irNDO/B;YACV,mEAAO,CAAC,UAAU,EAAE;gBAClB,sEAAU,CAAC,QAAQ,EAAE;oBACnB,iEAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;oBACzC,mEAAO,CAAC,kBAAkB,CAAC;iBAC5B,CAAC;gBACF,sEAAU,CAAC,QAAQ,EAAE;oBACnB,mEAAO,CAAC,cAAc,EAAE,iEAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;iBACnE,CAAC;aACH,CAAC;SACH;6FAGU,eAAe;cAjB3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;gBACtC,UAAU,EAAE;oBACV,mEAAO,CAAC,UAAU,EAAE;wBAClB,sEAAU,CAAC,QAAQ,EAAE;4BACnB,iEAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;4BACzC,mEAAO,CAAC,kBAAkB,CAAC;yBAC5B,CAAC;wBACF,sEAAU,CAAC,QAAQ,EAAE;4BACnB,mEAAO,CAAC,cAAc,EAAE,iEAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;yBACnE,CAAC;qBACH,CAAC;iBACH;aACF;;kBAKE,oDAAM;;;;;;;;;;;;;;AEvBT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;AAC5B;;;;;ICGpD,yEAAiH;IAAhC,0WAA+B;IAAC,uDAAgB;IAAA,4DAAM;;;IAAtB,0DAAgB;IAAhB,gFAAgB;;;IAJvI,yEACI;IAAA,4EAC0F;IAAA,uDAAW;IAAA,4DAAS;IAC9G,yEACE;IAAA,sHAAiH;IACnH,4DAAM;IACV,4DAAM;;;IAJA,0DAAqB;IAArB,qFAAqB;IAAmE,0DAAW;IAAX,+EAAW;IAE9F,0DAA8B;IAA9B,mFAA8B;;ADIlC,MAAM,oBAAoB;IAa/B;QAVO,0BAAqB,GAAsB,IAAI,0DAAY,EAAO,CAAC;QAMnE,aAAQ,GAAQ,EAAE,CAAC;QAEV,eAAU,GAAG,EAAE,CAAC;QAG9B,IAAI,CAAC,SAAS,CAAC,4DAAG,CAAC,CAAC;IACtB,CAAC;IACM,eAAe;QACpB,4EAA4E;QAC5E,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9G,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;aACxC;SACF;IACH,CAAC;IAEM,aAAa,CAAC,MAAM;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAEM,SAAS,CAAC,MAAM;QACrB,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,mCAAmC;gBACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;IACH,CAAC;;wFA5CU,oBAAoB;oGAApB,oBAAoB;QCRjC,gHACI;;QADwC,gFAAkB;;6FDQjD,oBAAoB;cALhC,uDAAS;eAAC;gBACT,QAAQ,EAAE,cAAc;gBACxB,WAAW,EAAE,+BAA+B;gBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;;kBAGE,oDAAM;;kBASN,mDAAK;;;;;;;;;;;;;;AEnBR;AAAA;AAAA;AAAA;AAAA;AAA0D;;;;;ICMlD,iEAAoE;;;IAK5D,qEAEF;;;IAF0B,uFAAkB;IACpC,sJAAoB;;;IAJhC,uEACE;IAAA,0EACE;IAAA,0EACE;IAAA,gIAEF;IAAA,4DAAM;IACR,4DAAM;IACN,0EACE;IAAA,0EAAuC;IAAA,uDAAc;IAAA,4DAAM;IAC3D,0EAA6C;IAAA,uDAAa;IAAA,4DAAM;IAClE,4DAAM;IACR,4DAAI;;;IAXD,0FAA8B;IAGtB,0DAAkB;IAAlB,+EAAkB;IAKc,0DAAc;IAAd,8EAAc;IACR,0DAAa;IAAb,6EAAa;;;IAQxD,qEAEF;;;IAF0B,uFAAkB;IACpC,sJAAoB;;;IAJhC,wEACE;IAAA,0EACE;IAAA,0EACE;IAAA,gIAEF;IAAA,4DAAM;IACR,4DAAM;IACN,0EACE;IAAA,0EAAuC;IAAA,uDAAc;IAAA,4DAAM;IAC3D,0EAA6C;IAAA,uDAAa;IAAA,4DAAM;IAClE,4DAAM;IACR,4DAAI;;;IAXD,sJAAoB;IAAC,6FAAwB;IAGrC,0DAAkB;IAAlB,+EAAkB;IAKc,0DAAc;IAAd,8EAAc;IACR,0DAAa;IAAb,6EAAa;;;IA3BpE,yEACE;IAAA,yEACE;IAAA,iHAA8D;IAC9D,6MACE;IAaF,6MACE;IAaJ,4DAAM;IACR,4DAAM;;;;;IA9BG,0DAAwD;IAAxD,oFAAwD;;ADC9D,MAAM,eAAe;IAS1B;QACE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ;IACR,CAAC;;8EAdU,eAAe;+FAAf,eAAe;QCN5B,yEACE;QAAA,yEAA2B;QAAA,uDAAS;QAAA,4DAAM;QAC1C,yEACE;QAAA,2GACE;QAgCJ,4DAAM;QACR,4DAAM;;QApCuB,0DAAS;QAAT,0EAAS;QAE7B,0DAA0B;QAA1B,8EAA0B;;6FDGtB,eAAe;cAL3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;aACvC;;kBAIE,mDAAK;;kBAEL,mDAAK;;;;;;;;;;;;;;AEZR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsF;;;;;;;;;;ICIhF,0EACE;IAAA,uGACF;IAAA,4DAAM;IACN,0EACE;IAAA,kKACF;IAAA,4DAAM;IACN,0EACE;IAAA,+KACF;IAAA,4DAAM;;;;IAmBA,qEACE;IAAA,mFAA0I;IAArG,uVAA2B;IAA0E,uDAA0C;IAAA,4DAAe;IACrM,4DAAK;;;;;IAD8E,0DAAwD;IAAxD,4HAAwD;IAAC,0DAA0C;IAA1C,wHAA0C;;;;IAR1L,0FACE;IAAA,6FACE;IAAA,kFAAiB;IAAA,uDAAe;IAAA,4DAAkB;IAClD,4FAA+C;IAAA,uDAA8B;IAAA,4DAAwB;IACvG,4DAA6B;IAC7B,2EAAkE;IAAjC,mXAAgC;IAAC,gEAAK;IAAA,4DAAO;IAC9E,yEACE;IAAA,iIACE;IAEJ,4DAAK;IACP,4DAAsB;;;;IAXqC,uFAA2B;IAEjE,0DAAe;IAAf,+EAAe;IACe,0DAA8B;IAA9B,qGAA8B;IAIzE,0DAAuC;IAAvC,qFAAuC;;ADvBhD,MAAM,eAAe;IAiB1B,YAAoB,SAAsB;QAAtB,cAAS,GAAT,SAAS,CAAa;QAPnC,aAAQ,GAAQ,EAAE,CAAC;QACnB,mBAAc,GAAQ,EAAE,CAAC;QACzB,iBAAY,GAAQ,EAAE,CAAC;QAGvB,kBAAa,GAAsB,IAAI,0DAAY,EAAO,CAAC;IAErB,CAAC;IAf9C,IACI,OAAO,CAAC,GAAG;QACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAWD,aAAa,CAAC,GAAG;QACf,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,kDAAkD;YAClD,oDAAoD;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACvC,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,cAAc;QACZ,oEAAoE;QACpE,sDAAsD;QACtD,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5B,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,wBAAwB;QACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAC,EAAE;YAC1B,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACtB,uDAAuD;YACvD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC,EAAE;gBAClC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACpB,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC/B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,mDAAmD;QACnD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,EAAE;YAChD,QAAQ,EAAE,IAAI;YACd,kBAAkB,EAAE,QAAQ;YAC5B,gBAAgB,EAAE,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,YAAY;QACV,sCAAsC;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,SAAS;QAClB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACpC,uDAAuD;QACvD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC,EAAE;YACtD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK;QACH,kCAAkC;QAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAC,EAAE;gBACvD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,EAAE;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;;8EAvFU,eAAe;+FAAf,eAAe;QCR5B,yEACE;QAAA,yEAA4B;QAAA,0EAC1B;QAAA,uEAAqF;QAA7B,kIAAS,kBAAc,IAAC;QAAC,4DAAI;QACrF,oMACE;QAUF,yEAC2C;QAAA,kEAAgD;QAAA,4DAAM;QACnG,4DAAM;QACN,yEACE;QAAA,yEACE;QAAA,6EAA+H;QAAnB,wIAAS,YAAQ,IAAC;QAAC,uEAAW;QAAA,4DAAS;QACnJ,8EAA+E;QAAlB,wIAAS,WAAO,IAAC;QAAC,iEAAK;QAAA,4DAAS;QAC/F,4DAAM;QACN,2EACE;QAAA,qFACE;QAAA,+IACE;QAWJ,4DAAgB;QAClB,4DAAM;QACR,4DAAM;QACR,4DAAM;;;QAzBuE,0DAA0B;QAA1B,mFAA0B;QAU1E,2DAAqC;QAArC,wFAAqC;;6FDhBrD,eAAe;cAL3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;aACvC;;kBAGE,mDAAK;;kBAYL,oDAAM;;;;;;;;;;;;;;AEtBT;AAAA;AAAA;AAAA;AAAA;AAA4E;;;;;ICQxD,yEACI;IAAA,wEAAiC;IAAA,uDAA6B;IAAA,4DAAI;IACtE,4DAAM;;;IAD+B,0DAA6B;IAA7B,+GAA6B;;;IAElE,0EACI;IAAA,wEACI;IAAA,2EAAiC;IAAA,qEAAU;IAAA,4DAAO;IAAA,qEAA6E;IAAA,4DAAI;IAC3I,4DAAM;;;IAFC,0DAAoB;IAApB,0JAAoB;IACgE,0DAAoB;IAApB,0JAAoB;IAAC,+FAAsB;;;IAQlI,iEAAoE;;;IAC1C,wEAA6D;IAAA,uDAAc;IAAA,4DAAI;;;IAA5E,0FAA8B;IAA4B,0DAAc;IAAd,8EAAc;;;IAC7E,wEAA2E;IAAA,uDAAc;IAAA,4DAAI;;;IAA1F,6FAAwB;IAAC,sJAAoB;IAA2B,0DAAc;IAAd,8EAAc;;;IAHrH,qEACI;IAAA,wHAA8D;IAC9D,oNAA0B;IAC1B,oNAAwB;IACxB,oEACJ;IAAA,4DAAK;;;;;IAJI,0DAAwD;IAAxD,oFAAwD;;;IAJzE,0EACI;IAAA,2EAAmC;IAAA,uDAAiB;IAAA,4DAAO;IAC3D,yEACI;IAAA,iHACI;IAKR,4DAAK;IACT,4DAAM;;;IATiC,0DAAiB;IAAjB,iFAAiB;IAE5C,0DAAiC;IAAjC,oFAAiC;;ADZlD,MAAM,eAAe;IAWxB;QAVA,+BAA+B;QACxB,kBAAa,GAAG,EAAE,CAAC;QACnB,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAa,GAAG,IAAI,CAAC;QACrB,kBAAa,GAAG,IAAI,CAAC;QACrB,SAAI,GAAG,IAAI,CAAC;QAGZ,kBAAa,GAAQ,EAAE,CAAC;IAEf,CAAC;IAEjB,QAAQ;QACN,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;YAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACrC;IACH,CAAC;;8EApBQ,eAAe;+FAAf,eAAe;QCR5B,yEACI;QAAA,yEACI;QAAA,yEACI;QAAA,yEACI;QAAA,yEACI;QAAA,yEACI;QAAA,uDACJ;;QAAA,4DAAM;QACN,2GACI;QAEJ,2GACI;QAGR,4DAAM;QACV,4DAAM;QACN,6GACI;QAUR,4DAAM;QACV,4DAAM;QACV,4DAAM;;QA9Bc,sFAAyB;QAMrB,0DACJ;QADI,6JACJ;QACmC,0DAAqB;QAArB,mFAAqB;QAG9B,0DAAY;QAAZ,0EAAY;QAMzC,0DAAoC;QAApC,sFAAoC;;6FDTxC,eAAe;cAN3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;gBACtC,aAAa,EAAE,+DAAiB,CAAC,IAAI;aACtC;;kBASI,mDAAK;;;;;;;;;;;;;;AEhBV;AAAA;AAAA;AAAA;AAA4E;;;;;ICE1E,4EASI;IADI,4UAAoC;IACxC,qEAA+D;IACjE,4DAAS;;;IAHH,+FAAmC;;;IASrC,wEACI;IAAA,wEAAsE;IAAA,uDAAc;IAAA,4DAAI;IAC5F,4DAAK;;;IADE,0DAAoB;IAApB,sJAAoB;IAA+C,0DAAc;IAAd,8EAAc;;;ADVzF,MAAM,eAAe;IAS1B;QAPO,SAAI,GAAQ,EAAE,CAAC;QACf,UAAK,GAAQ,EAAE,CAAC;QAChB,gBAAW,GAAG,IAAI,CAAC;QAGnB,kBAAa,GAAQ,EAAE,CAAC;IAG/B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SAC5C;IACH,CAAC;;8EAjBU,eAAe;+FAAf,eAAe;QCT5B,yEACE;QAAA,uEAA6C;QAAA,oEAAsE;QAAA,4DAAI;QACvH,iHASI;QAGJ,yEAGE;QAAA,wEACI;QAAA,yGACI;QAER,4DAAK;QACP,4DAAM;QACR,4DAAM;;QAtBD,0DAAoB;QAApB,uJAAoB;QAAgD,0DAAoB;QAApB,uJAAoB;QAAC,4FAAsB;QAC1G,0DAAwB;QAAxB,sFAAwB;QAc3B,0DAAkC;QAAlC,4JAAkC;QAE7B,0DAA0B;QAA1B,8EAA0B;;6FDTzB,eAAe;cAP3B,uDAAS;eAAC;gBACT,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,yBAAyB;gBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;gBACtC,aAAa,EAAE,+DAAiB,CAAC,IAAI;aACtC;;kBAQE,mDAAK;;;;;;;;;;;;;;AEfR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmF;AAEtD;AACQ;AACN;AAGyB;;;;;;ICNpD,yEAAoF;IAA1B,wTAAyB;IAAC,0EAAe;IAAA,4DAAM;;ADYtG,MAAM,mBAAmB;IA0D9B,YAAmB,eAAuC;QAAvC,oBAAe,GAAf,eAAe,CAAwB;QAxDnD,kBAAa,GAAc,IAAI,+CAAS,EAAE,CAAC;QAC3C,iBAAY,GAAc,IAAI,+CAAS,EAAE,CAAC;QAC1C,kBAAa,GAAc,IAAI,+CAAS,EAAE,CAAC;QAG3C,qBAAgB,GAAG,KAAK,CAAC;QAKhC,yBAAyB;QAClB,kBAAa,GAAG;YACnB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,IAAI;SAChB,CAAC;QAEK,gBAAW,GAAG,oDAAc,CAAC,IAAI,CAAC;YACvC,WAAW,EAAE,MAAM;YACnB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEI,mBAAc,GAAG,oDAAc,CAAC,IAAI,CAAC;YAC1C,WAAW,EAAE,QAAQ;YACrB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEI,cAAS,GAAG,oDAAc,CAAC,IAAI,CAAC;YACrC,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEI,aAAQ,GAAG,4CAAM,CAAC;YACvB,OAAO,EAAE,4BAA4B;YACrC,SAAS,EAAE,+BAA+B;YAC1C,QAAQ,EAAE,CAAE,EAAE,EAAE,EAAE,CAAE;YACpB,UAAU,EAAE,CAAE,EAAE,EAAE,EAAE,CAAE;YACtB,WAAW,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAE;YACvB,YAAY,EAAE,CAAE,EAAE,EAAE,EAAE,CAAE;YACxB,UAAU,EAAE,CAAE,EAAE,EAAE,EAAE,CAAE;SACvB,CAAC,CAAC;QAEH,qFAAqF;QAC9E,mBAAc,GAAG,oDAAS,CAAC,OAAO,CAAC;QACnC,yBAAoB,GACzB,oDAAc,CAAC,8CAAQ,CAAC,oDAAS,CAAC,WAAW,CAAC,IAAI,EAAE,oDAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAC7E,8CAAQ,CAAC,oDAAS,CAAC,WAAW,CAAC,IAAI,EAAE,oDAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,gBAAgB;QACT,aAAQ,GAAuB,CAAC,oDAAS,CAAC,WAAW,CAAC,GAAG,EAAE,oDAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9F,cAAc;QACP,cAAS,GAAG,oDAAS,CAAC,SAAS,CAAC;IAEuB,CAAC;IAExD,QAAQ;QACb,4DAA4D;QAC5D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACjF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC/E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IAEL,CAAC;IAEM,eAAe;QACpB,qBAAqB;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEM,OAAO;QACZ,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,sCAAsC;QACtC,IAAI,CAAC,GAAG,GAAG,2CAAK,CAAC,KAAK,EAAE;YACtB,SAAS,EAAE,OAAO;YAClB,kBAAkB,EAAE,GAAG;YACvB,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,CAAC,aAAa,GAAG,+CAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhD,0DAAkB,CAAC;YACjB,MAAM,EAAE,IAAI,CAAC,oBAAoB;YACjC,GAAG,EAAE,IAAI,CAAC,cAAc;SACzB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEM,SAAS,CAAC,SAAS;QACxB,oCAAoC;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,uDAAuD;QACvD,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;YAC7B,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC9C;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAEM,gBAAgB,CAAC,WAAW;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,oDAAoD;QACpD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,YAAY,GAAG,+CAAS,CAAC,WAAW,EAAE;YACzC,8BAA8B;YAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAChC,OAAO,8CAAQ,CAAC,MAAM,EAAE;oBACtB,IAAI,EAAE,IAAI,CAAC,WAAW;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,aAAa,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;gBACpC,8EAA8E;gBAC9E,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE;oBACvC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;oBACpD,MAAM,SAAS,GAAG;wBAChB,eAAe,EAAE,IAAI;wBACrB,OAAO,EAAE,OAAO;qBACjB,CAAC;oBACF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAC9B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;SACF,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,aAAa,CAAC,SAAS;QAC5B,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,iEAAiE;QACjE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC3B,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,eAAe,EAAE;oBAC1D,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE;wBAC9B,gDAAgD;wBAChD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,EAAE;4BACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;4BACpC,+BAA+B;4BAC/B,8CAAQ,CAAC,UAAU,EAAE;gCACnB,IAAI,EAAE,IAAI,CAAC,cAAc;6BAC1B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;4BACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;yBAC9B;qBACF;yBAAM;wBACL,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;wBACpC,+BAA+B;wBAC/B,8CAAQ,CAAC,UAAU,EAAE;4BACnB,IAAI,EAAE,IAAI,CAAC,cAAc;yBAC1B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;wBACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;qBAC9B;iBACF;gBACD,IAAI,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,EAAE;oBAC9F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpC,+BAA+B;oBAC/B,8CAAQ,CAAC,UAAU,EAAE;wBACnB,IAAI,EAAE,IAAI,CAAC,cAAc;qBAC1B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,sEAAsE;QACtE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;SACjC;IACH,CAAC;IAEM,uBAAuB,CAAC,IAAI;QACjC,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,qCAAqC;YACrC,IAAI,CAAC,aAAa,GAAG,+CAAS,CAAC,IAAI,CAAC,eAAe,EAAE;gBACnD,KAAK,EAAE,IAAI,CAAC,aAAa;aAC1B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,yBAAyB;YACzB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;SACpD;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC/C;IACH,CAAC;IAEM,qBAAqB,CAAC,IAAI;QAC/B,MAAM,QAAQ,GAAG,8CAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,+CAAS,CAAC,IAAI,CAAC,eAAe,EAAE;YACnD,KAAK,EAAE,IAAI,CAAC,aAAa;SAC1B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,mEAAmE;QACnE,8CAAQ,CAAC,QAAQ,EAAE;YACjB,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;YACjC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;YAC/B,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;SACpC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7B,+BAA+B;QAC/B,8CAAQ,CAAC,QAAQ,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,SAAS;SACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7B,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,aAAa;QAClB,uBAAuB;QACvB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SAClC;QACD,kDAAkD;QAClD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,uCAAuC;QACvC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,SAAS;QACd,iFAAiF;QACjF,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;SACpD;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;YACjG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;SACnD;IACH,CAAC;IAEM,WAAW;QAChB,uBAAuB;QACvB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SAClC;QACD,sBAAsB;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACjC;IACH,CAAC;IAEM,WAAW;QAChB,kDAAkD;QAClD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAC5B,CAAC;IAEM,WAAW;QAChB,0BAA0B;QAC1B,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;;sFAhRU,mBAAmB;mGAAnB,mBAAmB;QCbhC,yEACI;QAAA,+GAAoF;QACpF,oEAAoB;QACxB,4DAAM;;QAFG,0DAAwB;QAAxB,sFAAwB;;6FDYpB,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,WAAW,EAAE,8BAA8B;gBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;aAC5C;;;;;;;;;;;;;;AEZD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACwF;AAEP;AACZ;AACgC;AAGjC;;;;;;;;AAQ7D,MAAM,kBAAkB;IAiC7B,YACS,EAA0B,EAC1B,GAAsB;QADtB,OAAE,GAAF,EAAE,CAAwB;QAC1B,QAAG,GAAH,GAAG,CAAmB;QAvBxB,sBAAiB,GAAsB,IAAI,0DAAY,EAAO,CAAC;QAQ/D,sBAAiB,GAAY,IAAI,CAAC;QAClC,oBAAe,GAAY,IAAI,CAAC;QAChC,8BAAyB,GAAW,CAAC,CAAC,CAAC,cAAc;QACrD,6BAAwB,GAAG,EAAE,CAAC;QAC9B,+BAA0B,GAAG,EAAE,CAAC;QAEhC,YAAO,GAAG,EAAE,CAAC;QACb,qBAAgB,GAAG,KAAK,CAAC;IAS5B,CAAC;IAEE,eAAe;QACpB,IAAI,CAAC,yBAAyB,GAAG,0DAAe,CAAC,yBAAyB,CAAC;QAC3E,IAAI,CAAC,sBAAsB,GAAG,IAAI,+CAAU,CAAC,CAAC,QAA0B,EAAE,EAAE;YAC1E,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC,CAAC;aACD,IAAI,CACH,mEAAY,CAAC,EAAE,CAAC,EAChB,2EAAoB,EAAE,EACtB,gEAAS,CAAC,CAAC,KAAa,EAAE,EAAE;YAC1B,IAAI,KAAK,EAAE;gBACT,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,CAAC;qBACrE,IAAI,CACH,0DAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACX,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;oBACpC,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,CAAC,CAAC,EACF,0DAAG,CAAC,GAAG,EAAE,CAAC,yCAAI,EAAE,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;oBAC5B,wBAAwB;oBACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,CACH,CAAC;aACH;YAED,OAAO,+CAAE,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC,CAAC,EACF,iEAAU,CAAE,IAAI,CAAC,WAAW,CAAC,CAC9B,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAEM,QAAQ,CAAC,KAAqB;QACnC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC;QACjC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;SACpD;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,qEAAqE;IAC9D,aAAa;QAClB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,iBAAiB;QACjB,IAAI,IAAI,CAAC,wBAAwB,EAAE,IAAI,SAAS,EAAE;YAChD,UAAU,GAAG,SAAS,CAAC;SACxB;aAAO,EAAE,uBAAuB;YAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE;gBACrE,UAAU,GAAG,UAAU,CAAC;aACzB;iBAAM,EAAE,0BAA0B;gBACjC,UAAU,GAAG,UAAU,CAAC;aACzB;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,qBAAqB,CAAC,KAAK;QAChC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAC;gBAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;aACpD;SACF;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAChE,CAAC;IAEM,YAAY,CAAC,UAAkB,EAAE,YAAoB,IAAI;QAC9D,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QACD,IAAI,YAAY,GAAG,QAAQ,CAAC;QAC5B,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,YAAY,GAAG,QAAQ,CAAC;YACxB,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9F,CAAC;IAGM,oBAAoB,CAAC,KAAK;QAC/B,MAAM,OAAO,GAAW,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;QACrD,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE;YAClB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;aACvG;YACH,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;aAChE;SACF;IACH,CAAC;IAEM,WAAW,CAAC,GAAG;QACpB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAEM,WAAW;QAChB,wCAAwC;QACxC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACvC;IACH,CAAC;IAEM,wBAAwB;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;IAClD,CAAC;IAEM,0BAA0B,CAAC,MAAM;QACtC,gCAAgC;QAChC,IAAI,CAAC,iBAAiB,GAAI,EAAE,CAAC;QAC7B,oBAAoB;QACpB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;YACnC,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC;YAC5C,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;SACpC;IACH,CAAC;;oFA9JU,kBAAkB;kGAAlB,kBAAkB;;;;;;;;gJAAlB,gCAA4B;8NAF5B,CAAC,yFAAsB,CAAC;QCdrC,yEACI;QAAA,yEACE;QAAA,qFAAsI;QAA7G,4MAAgC,8HAA0B,sCAAkC,IAA5D;QAA8D,4DAAe;QACtI,2EAWA;QAXO,+LAA6B,+GACP,oBAAgB,IADT;QAApC,4DAWA;QAAA,uEACE;QAAA,4EACE;QADuE,gJAAS,iCAA6B,IAAC;QAC9G,kEAA4B;QAC9B,4DAAS;QACX,4DAAO;QACT,4DAAM;QACV,4DAAM;;QAlByB,0DAAgC;QAAhC,2FAAgC;QAClD,0DAA6B;QAA7B,wFAA6B;;6FDa7B,kBAAkB;cAN9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;gBACzC,SAAS,EAAE,CAAC,yFAAsB,CAAC;aACpC;;kBAGE,uDAAS;mBAAC,KAAK;;kBACf,uDAAS;mBAAC,WAAW;;kBAErB,mDAAK;;kBAGL,mDAAK;;kBAGL,oDAAM;;kBA0GN,0DAAY;mBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;AErI5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuE;AACT;;;;;ICGxD,wEAAmF;IAAA,uDAAkC;IAAA,4DAAK;;;IAAvC,0DAAkC;IAAlC,+GAAkC;;;;IACrH,0EACE;IADwE,6UAAmC;IAC3G,kEAA+C;IAC/C,uEAAM;IAAA,kEAAO;IAAA,4DAAO;IACtB,4DAAO;;;IAET,sEACE;IAAA,mEAAqE;IACvE,4DAAM;;;IADkC,0DAAyB;IAAzB,uJAAyB;;;;IAK7D,0EACE;IAAA,4FACgE;IAA9D,8WAAqC;IAAC,4DAAwB;IAClE,4DAAM;;;IAFsD,0DAA4B;IAA5B,wFAA4B;;;;IAJ5F,sEACE;IAAA,mEAAqE;IACrE,0EACE;IAAA,yHACE;;IAGJ,4DAAM;IAEN,0EACE;IAAA,0EACE;IAAA,0EAAmC;IAAA,uDAAqD;IAAA,4DAAM;IAC9F,0EACE;IAAA,sEACiF;IACnF,4DAAM;IACN,2EACE;IAAA,2EAA4G;IAA1B,+TAAyB;IAAC,qEAAS;IAAA,4DAAM;IAC7H,4DAAM;IACR,4DAAM;IACR,4DAAM;IACR,4DAAM;;;IApBkC,0DAAyB;IAAzB,uJAAyB;IAEnC,0DAAsD;IAAtD,4KAAsD;IAMrC,0DAAuC;IAAvC,8GAAuC;IAE7C,0DAAqD;IAArD,2IAAqD;IAEzC,0DAAqC;IAArC,gGAAqC;IAAC,wFAA4B;IAIvE,0DAAyC;IAAzC,gHAAyC;;ADpBtF,MAAM,sBAAsB;IA0BjC;QAvBO,kBAAa,GAAU,EAAE,CAAC;QAG1B,gBAAW,GAAQ,EAAE,CAAC;QAGtB,kBAAa,GAAsB,IAAI,0DAAY,EAAO,CAAC;QAG3D,iBAAY,GAAsB,IAAI,0DAAY,EAAO,CAAC;QAIjE,oBAAoB;QACb,UAAK,GAAG,CAAC,CAAC;QACV,iBAAY,GAAG,uDAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QAClD,eAAU,GAAG,uDAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9C,uBAAkB,GAAG,CAAC,CAAC;QAEvB,qBAAgB,GAAG,EAAE,CAAC;IAIN,CAAC;IAEjB,SAAS;QACd,yCAAyC;QACzC,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,KAAK,GAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC3C,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,KAAK,GAAG,IAAI,CAAC;SACd;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE;YAC9D,SAAS,GAAG,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;SAChI;aAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;YACvD,SAAS,GAAG,KAAK,GAAG,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;SAC5E;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAClE,CAAC;IAEM,aAAa;QAClB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACxF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;aAC9B;SACF;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACxC;IACH,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEM,WAAW,CAAC,KAAK;QACtB,sBAAsB;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEM,iBAAiB,CAAC,KAAK;QAC5B,sBAAsB;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEM,WAAW;QAChB,IAAI;YACF,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC;QAAC,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC;SAClE;IACH,CAAC;;4FAhFU,sBAAsB;sGAAtB,sBAAsB;QCTnC,yEACE;QAAA,yEACE;QAAA,yEACE;QAAA,gHAAmF;QACnF,oHACE;QAGJ,4DAAM;QACN,kHACE;QAEF,oHACE;QAqBJ,4DAAM;QACR,4DAAM;;QAhCI,0DAAiD;QAAjD,mHAAiD;QACZ,0DAAgC;QAAhC,8FAAgC;QAKtE,0DAAkD;QAAlD,oHAAkD;QAGlD,0DAAiD;QAAjD,mHAAiD;;6FDH7C,sBAAsB;cALlC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;kBAGE,mDAAK;;kBAGL,mDAAK;;kBAGL,oDAAM;;kBAGN,oDAAM;;;;;;;;;;;;;;AErBT;AAAA;AAAA;AAAA;AAAiD;;;;ICGzC,oEAAoC;IAAA,uDAAqC;IAAA,4DAAI;;;IAAzC,0DAAqC;IAArC,yHAAqC;;;;IAF7E,yEACI;IAAA,kEAAuG;IACvG,mHAAoC;IACxC,4DAAM;;;IAF0B,0DAAsE;IAAtE,2KAAsE;IAC/F,0DAAgC;IAAhC,iGAAgC;;;IAI/B,uEACI;IAAA,gEAAK;IAAA,uDACT;IAAA,4DAAO;;;IADE,0DACT;IADS,wJACT;;ADFL,MAAM,qBAAqB;IAIhC;QAFO,YAAO,GAAQ,EAAE,CAAC;IAET,CAAC;IAEV,aAAa,CAAC,IAAY;QAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAEM,oBAAoB,CAAC,GAAW;QACrC,MAAM,MAAM,GAAa,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;YAC5D,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE;gBACjC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;aACpB;YACD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACrB;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC/B,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE;gBAC5B,KAAK,IAAI,CAAC;gBACV,KAAK,IAAI,CAAC;gBACV,KAAK,IAAI,CAAC;gBACV,KAAK,IAAI;oBACL,mCAAmC;oBACnC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACvC,MAAM;gBACV,KAAK,IAAI;oBACP,6BAA6B;oBAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACvC,MAAM;gBACR;oBACI,kBAAkB;oBAClB,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC5E;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;0FArCU,qBAAqB;qGAArB,qBAAqB;QCPlC,yEACI;QAAA,iHACI;QAGJ,yEACI;QAAA,uEAAM;QAAA,uDACF;QAAA,mHACI;QAER,4DAAO;QACX,4DAAM;QACV,4DAAM;;QAZe,iHAAmD;QACtC,0DAAiC;QAAjC,+FAAiC;QAI1D,0DAA6E;QAA7E,wIAA6E;QACxE,0DACF;QADE,0HACF;QAAM,0DAA4B;QAA5B,0FAA4B;;6FDAjC,qBAAqB;cALjC,uDAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,gCAAgC;gBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;aAC9C;;kBAEE,mDAAK;;;;;;;;;;;;;;AERR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiG;AAGjC;;;;;;;ICE5C,qEACA;;;IAD8E,0HAAwC;IAAC,4NAAoE;;;IAC3L,qEACA;;;IAMJ,0EAAiF;IAAA,qEAAU;IAAA,4DAAM;;;;IAK7F,0EACI;IAD8C,sWAA4B;IAC1E,mFAA2D;IAC/D,4DAAM;;;IADiB,0DAAmB;IAAnB,+EAAmB;;;;IAM1C,0EACI;IAD8C,kXAA4B;IAC1E,mFAA2D;IAC/D,4DAAM;;;IADiB,0DAAmB;IAAnB,gFAAmB;;;IAJ9C,0EAEI;IAAA,0EAAoD;IAAA,+DAAI;IAAA,4DAAM;IAC9D,4HACI;IAER,4DAAM;;;IAHG,0DAA4C;IAA5C,gGAA4C;;;;IAMjD,0EACI;IADgD,kXAA4B;IAC5E,mFAA2D;IAC/D,4DAAM;;;IADiB,0DAAmB;IAAnB,gFAAmB;;;IAH9C,0EACI;IAAA,0EAAoD;IAAA,iEAAM;IAAA,4DAAM;IAChE,4HACI;IAER,4DAAM;;;IAHG,0DAA8C;IAA9C,kGAA8C;;;ADrBhE,MAAM,wBAAwB;IAWnC,YAAmB,eAAuC,EAAU,SAAsB;QAAvE,oBAAe,GAAf,eAAe,CAAwB;QAAU,cAAS,GAAT,SAAS,CAAa;QARnF,oBAAe,GAAQ,EAAE,CAAC;QAG1B,kBAAa,GAAsB,IAAI,0DAAY,EAAO,CAAC;QAE3D,qBAAgB,GAAG,KAAK,CAAC;QACzB,cAAS,GAAG,qEAAW,CAAC,SAAS,CAAC;IAEqD,CAAC;IAExF,kBAAkB;QACvB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC3C,IAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;oBAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACtE,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;oBACpC,OAAO,GAAG,CAAC;iBACZ;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACtE,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;oBACpC,OAAO,GAAG,CAAC;iBACZ;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACxE,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE;oBACtC,OAAO,GAAG,CAAC;iBACZ;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,SAAS,CAAC,OAAO;QACtB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAClF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,EAAE;gBACrC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0DAA0D,EAAE,SAAS,EAAE;wBACzF,QAAQ,EAAE,IAAI;wBACd,kBAAkB,EAAE,QAAQ;wBAC5B,gBAAgB,EAAE,QAAQ;qBAC3B,CAAC,CAAC;iBACJ;qBAAM;oBACL,4EAA4E;oBAC5E,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC5F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChC;aACF;SACF;IACH,CAAC;;gGAzDU,wBAAwB;wGAAxB,wBAAwB;QCVrC,yEACI;QAAA,yEACI;QAAA,yEACI;QAAA,yEACI;QAAA,yEACI;QAAA,oHACA;QAAA,oHACA;QAAA,uEAC4G;QAAA,uEAAY;QAAA,4DAAI;QAChI,4DAAM;QACV,4DAAM;QACN,yEACI;QAAA,0EAAqH;QAA1B,8IAAS,cAAU,IAAI,CAAC,IAAC;QAAC,wDAA4B;QAAA,4DAAM;QACvJ,uHAAiF;QACjF,2EAA8C;QAAA,wDAAwC;QAAA,4DAAM;QAC5F,2EAAgD;QAAA,sEAAU;QAAA,4DAAM;QAChE,2EACI;QAAA,2EAAoD;QAAA,gEAAI;QAAA,4DAAM;QAC9D,uHACI;QAER,4DAAM;QACN,uHAEI;QAKJ,uHACI;QAKR,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;;QAjCmB,0DAAiC;QAAjC,+FAAiC;QACjC,0DAAkC;QAAlC,gGAAkC;QACE,0DAAuE;QAAvE,kJAAuE;QAC5G,yOAAuF;QAI/D,0DAA0D;QAA1D,yKAA0D;QAA2B,0DAA4B;QAA5B,6FAA4B;QAC5I,0DAAgC;QAAhC,8FAAgC;QACS,0DAAwC;QAAxC,sJAAwC;QAI7E,0DAA4C;QAA5C,6FAA4C;QAKjD,0DAAkF;QAAlF,oJAAkF;QAMxC,0DAAyC;QAAzC,uGAAyC;;6FDnB1F,wBAAwB;cALpC,uDAAS;eAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,oCAAoC;gBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;aAClD;;kBAGE,mDAAK;;kBAGL,oDAAM;;;;;;;;;;;;;;AEfT;AAAA;AAAA;AAAkD;;AAO3C,MAAM,mBAAmB;IAE9B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;sFALU,mBAAmB;mGAAnB,mBAAmB;QCPhC,yEACI;QAAA,yEACI;QAAA,yEAEI;QAAA,wEAA8B;QAAA,qEAAU;QAAA,4DAAK;QAE7C,oEAAG;QAAA,qWAA0S;QAAA,4DAAI;QAEjT,oEAAG;QAAA,2iBAAgf;QAAA,4DAAI;QAEvf,oEAAG;QAAA,ykBAA6gB;QAAA,4DAAI;QAEphB,qEAAG;QAAA,qhBAAyd;QAAA,4DAAI;QAEhe,qEAAG;QAAA,oiBAAwe;QAAA,4DAAI;QAE/e,qEAAG;QAAA,6OAAiL;QAAA,4DAAI;QAExL,qEAAG;QAAA,sTAA0P;QAAA,4DAAI;QAEjQ,qEAAG;QAAA,qaAAyW;QAAA,4DAAI;QAEhX,qEAAG;QAAA,snBAA0jB;QAAA,4DAAI;QAEjkB,qEAAG;QAAA,2cAA+Y;QAAA,wEAAuE;QAAA,uFAA2B;QAAA,4DAAI;QAAA,6DAAC;QAAA,4DAAI;QAEjgB,4DAAM;QAEV,4DAAM;QACV,4DAAM;;6FDtBO,mBAAmB;cAL/B,uDAAS;eAAC;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;aAC3C;;;;;;;;;;;;;;AEND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAElD,mCAAmC;AACuB;;;;;;;;IC4BhD,0EACI;IAAA,wEAA6D;IACjE,4DAAM;;;IADM,0DAAqB;IAArB,iFAAqB;;ADtBpC,MAAM,aAAa;IAQxB,YACS,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QARhB,cAAS,GAAQ,qDAAU,CAAC,QAAQ,CAAC;QAGrC,eAAU,GAAQ,EAAE,CAAC;QAErB,mBAAc,GAAG,oBAAoB,CAAC;IAI1C,CAAC;IAEJ,QAAQ;IACR,CAAC;IAEM,qBAAqB,CAAC,KAAK;QAChC,MAAM,UAAU,GAAW,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,MAAM,MAAM,GAAW,KAAK,CAAC,MAAM,CAAC;QACpC,IAAI,QAAkB,CAAC;QAEvB,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,QAAQ,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;SAC9C;aAAM;YACL,QAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SACjC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAEM,oBAAoB;QACzB,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAClC,CAAC;IAEM,UAAU,CAAC,IAAc;QAC9B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YAClC,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;;0EAvCU,aAAa;6FAAb,aAAa;QCV1B,wEAAyB;QACzB,yEACE;QACA,yEACE;QAAA,yEACE;QAAA,oEAEA;QAAA,wEACE;QAAA,kFACA;QAAA,qEACS;QACX,4DAAK;QACP,4DAAM;QACR,4DAAM;QACN,yEACE;QAAA,yEACE;QAAA,0EACE;QAAA,wFAGgB;QAFN,2KAAqB,iCAA6B,IAAE;QAE9D,4DAAgB;QAClB,4DAAM;QACN,2EACE;QAAA,2EACE;QAAA,yEAEE;QADA,iIAAS,0BAAsB,IAAC;QAChC,wDACF;QAAA,4DAAI;QACN,4DAAM;QACR,4DAAM;QACN,2EACI;QAAA,4GACI;QAER,4DAAM;QACR,4DAAM;QACR,4DAAM;QACR,4DAAM;;QApBgC,2DAA8B;QAA9B,2FAA8B;QASxD,0DACF;QADE,8FACF;QAIK,0DAA+B;QAA/B,kFAA+B;;6FDrBjC,aAAa;cALzB,uDAAS;eAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,uBAAuB;gBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;aACrC;;;;;;;;;;;;;;AETD;AAAA;AAAA;AAAA;AAAiC;;;;;;;;;;;;;ACAjC;AAAA;AAAA;AAAA;AAAoC;;;;;;;;;;;;;ACApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkH;;;;;;;;;;;;;;;;;;;AAqB3G,MAAM,gBAAgB;IAwC3B,YACS,cAA8B,EAC9B,QAAkB,EAClB,eAAuC,EACtC,GAAsB,EACtB,QAAqB;QAJtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,aAAQ,GAAR,QAAQ,CAAU;QAClB,oBAAe,GAAf,eAAe,CAAwB;QACtC,QAAG,GAAH,GAAG,CAAmB;QACtB,aAAQ,GAAR,QAAQ,CAAa;QA1CxB,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;QAChB,gBAAW,GAAI,EAAE,CAAC;QAElB,gBAAW,GAAW,EAAE,CAAC;QAGzB,mBAAc,GAAG,oBAAoB,CAAC;QAE7C,kCAAkC;QAC3B,oBAAe,GAAU,EAAE,CAAC;QACnC,+BAA+B;QACxB,oBAAe,GAAU,EAAE,CAAC;QACnC,2CAA2C;QACpC,mBAAc,GAAU,EAAE,CAAC;QAE3B,cAAS,GAAG,QAAQ,CAAC;QACrB,iBAAY,GAAG,WAAW,CAAC;QAC3B,aAAQ,GAAG,GAAG,CAAC;QAEf,iBAAY,GAAG,IAAI,CAAC;QACpB,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QACtB,YAAO,GAAG,EAAE,CAAC;QAEpB,cAAS,GAAQ,EAAE,CAAC;QACpB,cAAS,GAAG,MAAM,CAAC;QAkBjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAChE,MAAM,QAAQ,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACnE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAEM,qBAAqB,CAAC,KAAK;QAChC,MAAM,UAAU,GAAW,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAW,KAAK,CAAC,MAAM,CAAC;QAEpC,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC9B,iCAAiC;YACjC,QAAQ,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;SAC9C;aAAM;YACL,iCAAiC;YACjC,QAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG;YACjB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,KAAK,CAAC,KAAK;YACtB,CAAC,EAAE,UAAU;SACd,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,SAAS;QACd,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE;YACjD,6DAA6D;YAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;gBAC7C,MAAM,SAAS,GAAY,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;gBACtF,IAAI,SAAS,EAAE;oBACb,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;iBACJ;aACF;iBAAM;gBACL,MAAM,WAAW,GAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9D,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;oBACtC,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;oBAC5B,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACzE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;iBACJ;aACF;SACF;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,UAAU,CAAC,IAAI;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACnF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,oBAAoB;QACpB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,IAAI;QACvB,+CAA+C;QAC/C,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC/B,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC/B,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAC;wBACxB,WAAW,GAAG,IAAI,CAAC;qBACpB;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACpC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;iBACxE;YACH,CAAC,CAAC;SACH;aAAM;YACL,kCAAkC;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SAC7C;IACH,CAAC;IAGM,oBAAoB;QACzB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG;YACjB,MAAM,EAAE,QAAQ;YAChB,CAAC,EAAE,KAAK;SACT,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,SAAS,CAAC,IAAc;QAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;YAClC,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAEM,WAAW,CAAC,KAAK;QACtB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEM,WAAW,CAAC,GAAG;QACpB,aAAa;QACb,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,yCAAyC;QACzC,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,2CAA2C;YAC3C,yBAAyB;YACzB,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SAC5B;IACH,CAAC;IAEM,YAAY,CAAC,KAAK;QACvB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACrC,CAAC;IAEM,oBAAoB,CAAC,SAAS;QACnC,qBAAqB;QACrB,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;SAC7B;QAED,wBAAwB;QACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;;gFA3MU,gBAAgB;gGAAhB,gBAAgB;;;;;;;;;;;;;;;;;QCrB7B,2FACI;QADsD,mTAAiB,WAAe,IAAC;QACvF,oFAEI;QAF2C,4LAAuB;QAElE,mFAA6G;QAA5D,kKAAiB,gCAA4B,IAAC;QAAC,4DAAa;QACjH,4DAAc;QACd,yFACI;QAAA,yEACI;QAAA,yEACI;QAAA,yEAA8E;QAA9B,qIAAS,gBAAY,MAAM,CAAC,IAAC;QAAC,+DAAI;QAAA,4DAAM;QAC5F,4DAAM;QACN,0EACI;QAAA,0EAA4E;QAA7B,sIAAS,gBAAY,KAAK,CAAC,IAAC;QAAC,+DAAG;QAAA,4DAAM;QACzF,4DAAM;QACV,4DAAM;QACN,0EACI;QAAA,2EACI;QAAA,+EACI;QAAA,2EACI;QAAA,yFAGgB;QAFZ,8KAAqB,iCAA6B,IAAC;QAEvD,4DAAgB;QACpB,4DAAM;QACN,2EACI;QAAA,2EACI;QAAA,yEAAqE;QAAjC,oIAAS,0BAAsB,IAAC;QAAC,wDACrE;QAAA,4DAAI;QACR,4DAAM;QACV,4DAAM;QACN,6FAI8D;QAD1D,wKAAgB,wBAAoB,IAAC,kHACpB,uBAAmB,IADC;QACC,4DAAoB;QAClE,4DAAM;QACV,4DAAM;QACN,2EACI;QAAA,2EACI;QAAA,2EACI;QAAA,2FAAkF;QAAxD,wKAAiB,uBAAmB,IAAC;QAAC,4DAAkB;QACtF,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAsB;QAC1B,4DAAwB;;QA7Ce,6EAAkB;QACN,0DAAuB;QAAvB,kFAAuB;QAE1C,0DAAwB;QAAxB,qFAAwB;QAE/B,0DAA0C;QAA1C,oKAA0C;QAG9C,0DAA0C;QAA1C,qKAA0C;QAG1C,0DAAyC;QAAzC,oKAAyC;QAId,0DAA0C;QAA1C,qKAA0C;QAGpC,0DAA8B;QAA9B,2FAA8B;QAOa,0DACrE;QADqE,6FACrE;QAIJ,0DAAiC;QAAjC,8FAAiC;QAMI,0DAAyC;QAAzC,oKAAyC;;6FDfzF,gBAAgB;cAN5B,uDAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,0BAA0B;gBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;aACxC;;kBAmCE,uDAAS;mBAAC,WAAW,EAAE,EAAE;;kBACzB,uDAAS;mBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;kBAC3C,uDAAS;mBAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;kBACtC,uDAAS;mBAAC,SAAS;;kBACnB,uDAAS;mBAAC,aAAa;;kBACvB,uDAAS;mBAAC,YAAY;;;;;;;;;;;;;;AE3DzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACoB;AACP;AACU;AAGJ;AACF;AACN;AACM;;;AAKpD,MAAM,sBAAsB;IAyBjC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAvBnC,WAAM,GAAG,qEAAW,CAAC,OAAO,GAAG,oDAAS,CAAC,MAAM,CAAC;QAChD,WAAM,GAAG,qEAAW,CAAC,OAAO,CAAC;QAC7B,iBAAY,GAAG,uDAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QAClD,cAAS,GAAe,EAAE,CAAC;QAC3B,iBAAY,GAAQ,EAAE,CAAC;QACvB,kBAAa,GAAiB,IAAI,4CAAO,EAAO,CAAC;QACjD,oBAAe,GAAG,qEAAW,CAAC,OAAO,GAAG,oDAAS,CAAC,mBAAmB,CAAC;QAEtE,oBAAe,GAAwB,IAAI,4CAAO,EAAc,CAAC;QACjE,qBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QAEvD,qBAAgB,GAAiB,IAAI,4CAAO,EAAO,CAAC;QACpD,sBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAEzD,cAAS,GAAiB,IAAI,4CAAO,EAAO,CAAC;QAC7C,eAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAE3C,sBAAiB,GAAiB,IAAI,4CAAO,EAAO,CAAC;QACrD,uBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;QAE3D,iBAAY,GAAiB,IAAI,4CAAO,EAAO,CAAC;QAChD,kBAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAEV,CAAC;IAExC,eAAe,CAAC,IAAI,EAAE,IAAI;QAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;YACpC,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;SAC7C;QACD,MAAM,eAAe,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,IAAI,MAAM,GAAG,IAAI,+DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,EAAC,MAAM,EAAC,CAAC;aAClD,IAAI,CACH,0DAAG,CAAC,GAAG,CAAC,EAAE;YACR,MAAM,OAAO,GAAG,MAAM,CAAC;YACvB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC,EACF,4DAAK,CAAC,CAAC,CAAC,EACR,iEAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9B,CAAC;IACN,CAAC;IAEM,yBAAyB,CAAC,IAAI;QACnC,MAAM,oBAAoB,GAAW,IAAI,CAAC,MAAM,GAAG,oDAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACtF,MAAM,MAAM,GAAW,oDAAS,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5C,MAAM,OAAO,GAAW;YACtB,SAAS,EAAE,IAAI;SAChB;QACD,MAAM,YAAY,GAAG,GAAG,oBAAoB,WAAW,MAAM,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAW,YAAY,EAAE,OAAO,CAAC;aAC3D,IAAI,CACH,0DAAG,CAAC,GAAG,CAAC,EAAE;YACR,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAC5F,CAAC,CAAC,EACF,4DAAK,CAAC,CAAC,CAAC,EACR,iEAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9B,CAAC;IACJ,CAAC;IAGM,eAAe;QACpB,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,SAAS,CAAC;aAC7C,IAAI,CACH,0DAAG,CAAC,GAAG,CAAC,EAAE;YACR,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrD,oEAAoE;YACpE,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,EAAE;aACT,CAAC;YACF,qBAAqB;YACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACvC,OAAO;gBACL,SAAS,EAAE,YAAY;gBACvB,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK;iBACZ;aACF,CAAC;QACJ,CAAC,CAAC,EACF,4DAAK,CAAC,CAAC,CAAC,EACR,iEAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9B,CAAC;IACN,CAAC;IAEM,YAAY,CAAC,IAAY,EAAE,UAAkB;QAClD,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;YACpC,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;SAC9C;aAAM;YACL,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,SAAS,CAAC;iBAC7C,IAAI,CACH,0DAAG,CAAC,GAAG,CAAC,EAAE;gBACR,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrD,oEAAoE;gBACpE,MAAM,SAAS,GAAG;oBAChB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,EAAE;iBACT,CAAC;gBACF,qBAAqB;gBACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACnC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBACvC,OAAO;oBACL,SAAS,EAAE,YAAY;oBACvB,KAAK,EAAE;wBACL,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,UAAU;qBACjB;iBACF,CAAC;YACJ,CAAC,CAAC,EACF,4DAAK,CAAC,CAAC,CAAC,EACR,iEAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9B,CAAC;SACL;IACH,CAAC;IAEM,oBAAoB,CAAC,OAAe;QACzC,MAAM,MAAM,GAAW,oDAAS,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5C,MAAM,WAAW,GAAW,IAAI,CAAC,MAAM,GAAG,oDAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjE,MAAM,YAAY,GAAG,GAAG,WAAW,WAAW,MAAM,EAAE;QACtD,MAAM,OAAO,GAAW;YACtB,SAAS,EAAE,OAAO;SACnB;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;aAC/C,IAAI,CACH,8DAAO,CAAC,GAAG,CAAC,EAAE;YACZ,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;YAC/F,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACvF,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClG,MAAM,IAAI,GAAG,oDAAS,CAAC,eAAe,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAE,8BAA8B;YACrE,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,MAAM,WAAW,OAAO,WAAW,IAAI,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAY,UAAU,CAAC,CAAC,IAAI,CACpD,0DAAG,CAAC,GAAG,CAAC,EAAE;gBACR,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrD,oEAAoE;gBACpE,MAAM,SAAS,GAAG;oBAChB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,WAAW,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wBACzF,QAAQ,EAAE,YAAY,CAAC,oCAAoC;qBAC5D;iBACF,CAAC;gBACF,qBAAqB;gBACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACnC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBACvC,OAAO;oBACL,SAAS,EAAE,YAAY;oBACvB,KAAK,EAAE;wBACL,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,gBAAgB;wBAC7H,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC;YACJ,CAAC,CAAC,EACF,4DAAK,CAAC,CAAC,CAAC,EACR,iEAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9B,CAAC;QACJ,CAAC,CAAC,EACF,4DAAK,CAAC,CAAC,CAAC,EACR,iEAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAC9B,CAAC;IACN,CAAC;IAEM,gBAAgB,CAAC,aAAyB;QAC/C,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,UAAU,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;YACvE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACvB,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oBAC1C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBACnE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;oBACnB,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QAC/B,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,aAAa,CAAC,UAAU,EAAE,aAAc;QAC7C,MAAM,WAAW,GAAG;YAClB,eAAe,EAAE,UAAU;YAC3B,OAAO,EAAE,aAAa,IAAI,IAAI;SAC/B,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAEM,WAAW,CAAC,OAAO;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEM,mBAAmB,CAAC,aAAyB;QAClD,oDAAoD;QACpD,iCAAiC;QACjC,MAAM,UAAU,GAAQ,EAAE,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACtC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;oBACrD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;wBAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,EAAE;4BAC/C,OAAO,EAAE,CAAC;yBACX;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;4BACzC,eAAe,EAAE,QAAQ,CAAC,eAAe;4BACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;4BAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4BAC3B,YAAY,EAAE,OAAO,CAAC,IAAI;yBAC3B,CAAC,CAAC;qBACJ;yBAAM;wBACL,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE;gCACR,IAAI,EAAE,OAAO;gCACb,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;6BAC1D;4BACD,UAAU,EAAE;gCACV,OAAO,EAAE,OAAO,CAAC,SAAS;gCAC1B,SAAS,EAAE,CAAC;wCACV,eAAe,EAAE,QAAQ,CAAC,eAAe;wCACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;wCAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wCAC3B,YAAY,EAAE,OAAO,CAAC,IAAI;qCAC3B,CAAC;6BACH;yBACF,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB;IACX,SAAS,CAAC,IAAI;QACnB,uDAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClC,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,gDAAgD;YAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACb,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;oBACvC,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBACnD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACtB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;wBACtC,IAAI,MAAM,IAAI,IAAI,EAAE;4BAClB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACvB;wBACD,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBACzB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACvB,CAAC,CAAC,CAAC;qBACJ;yBAAM;wBACL,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACvB;oBACD,OAAO,MAAM,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;YACH,4CAA4C;YAC5C,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE;gBACvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,CAAC;YACX,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,uDAAY,CAAC,CAAC;QAC1B,OAAO,uDAAY,CAAC;IACtB,CAAC;IAEM,aAAa,CAAC,SAAS;QAC5B,IAAI,iBAAiB,GAAe,EAAE,CAAC;QACvC,4BAA4B;QAC5B,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,mDAAmD;QACnD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,IAAI,aAAyB,CAAC;YAC9B,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,yBAAyB;gBACzB,aAAa,GAAG,EAAE,CAAC;gBACnB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,kDAAkD;oBAClD,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBAChE;gBACD,2BAA2B;gBAC3B,WAAW,GAAG,KAAK,CAAC;gBACpB,IAAI,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACjD,iBAAiB;oBACjB,IAAI,UAAU,GAAG,KAAK,CAAC;oBACvB,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;wBAChC,IAAI,sBAAsB,GAAG,KAAK,CAAC;wBACnC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BAClC,uCAAuC;4BACvC,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC7D,IAAI,WAAW,IAAI,IAAI,EAAE;gCACvB,sBAAsB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gCAClE,iDAAiD;gCACjD,IAAI,sBAAsB,EAAE;oCAC1B,UAAU,GAAG,IAAI,CAAC;oCAClB,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;iCACtB;qCAAM;oCACL,iCAAiC;oCACjC,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;iCACvB;6BACF;wBACH,CAAC,CAAC,CAAC;qBACJ;yBAAM;wBACL,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;4BAC9B,wBAAwB;4BACxB,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;4BAC1C,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBAChD,CAAC,CAAC,CAAC;qBACJ;oBAED,6DAA6D;oBAC7D,IAAI,UAAU,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE;wBACrE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;wBAC3C,OAAO,QAAQ,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;gBACH,+BAA+B;gBAC/B,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/C,iBAAiB,GAAG,aAAa,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;QACH,mCAAmC;QACnC,IAAI,WAAW,EAAE;YACf,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC;SACpC;QAED,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,gBAAgB;IAEhB,YAAY,CAAC,KAAK;QAChB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,KAAK,CAAC,KAAK,YAAY,UAAU,EAAE;YACrC,wBAAwB;YACxB,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;SACpC;aAAM;YACL,wBAAwB;YACxB,YAAY,GAAG,eAAe,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC;SACzE;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,uDAAU,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;;4FA1WU,sBAAsB;yGAAtB,sBAAsB,WAAtB,sBAAsB,mBAFrB,MAAM;6FAEP,sBAAsB;cAHlC,wDAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbD;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,0CAA0C;IACnD,OAAO,EAAE,kCAAkC;IAC3C,SAAS,EAAE,uBAAuB;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;AClBnE;AAAA;AAAA;AAAA;AAAA;AAA+C;AAIU;;;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,2EAAwB,gBAAgB,CAAC,0DAAU;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './pages/home/home.component';\r\nimport { ResultsComponent } from './pages/results/results.component';\r\nimport { DisclaimerComponent } from './pages/disclaimer/disclaimer.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: '', component: HomeComponent },\r\n { path: 'home', component: HomeComponent },\r\n { path: 'results', component: ResultsComponent },\r\n { path: 'disclaimer', component: DisclaimerComponent },\r\n { path: ':action/:subaction/:q', component: ResultsComponent, runGuardsAndResolvers: 'always' },\r\n { path: ':action/:q', component: ResultsComponent, runGuardsAndResolvers: 'always' },\r\n { path: ':action', component: ResultsComponent, runGuardsAndResolvers: 'always' },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component } from '@angular/core';\r\nimport sharedConfig from '../configs/sharedConfig.json';\r\nimport { isDevMode } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\n\r\n// export class AppComponent implements OnInit {\r\nexport class AppComponent {\r\n title = 'SexOffender';\r\n\r\n header = sharedConfig.header;\r\n footer = sharedConfig.footer;\r\n\r\n constructor() {}\r\n\r\n public ngOnInit() {\r\n // remove log on prod build\r\n if (!isDevMode()) {\r\n console.log = function () {};\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n
","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\n// third party references\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\n\r\n// pages\r\nimport { HomeComponent } from './pages/home';\r\nimport { ResultsComponent } from './pages/results';\r\nimport { DisclaimerComponent } from './pages/disclaimer/disclaimer.component';\r\n\r\n// components\r\nimport { AppComponent } from './app.component';\r\nimport { SearchboxComponent } from './components/searchbox/searchbox.component';\r\nimport { SexOffenderCardComponent } from './components/sex-offender-card/sex-offender-card.component';\r\nimport { ResultsMapComponent } from './components/results-map/results-map.component';\r\nimport { SearchresultsComponent } from './components/searchresults/searchresults.component';\r\nimport { BtnDropdownComponent } from './components/btn-dropdown/btn-dropdown.component';\r\nimport { AddressBlockComponent } from './components/sex-offender-card/address-block/address-block.component';\r\nimport { BannerComponent } from './components/banner/banner.component';\r\nimport { FilterComponent } from './components/filter/filter.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { BucketComponent } from './components/bucket/bucket.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n // app components\r\n HomeComponent,\r\n ResultsComponent,\r\n SearchboxComponent,\r\n SexOffenderCardComponent,\r\n SearchresultsComponent,\r\n ResultsMapComponent,\r\n BtnDropdownComponent,\r\n DisclaimerComponent,\r\n AddressBlockComponent,\r\n BannerComponent,\r\n FilterComponent,\r\n BucketComponent,\r\n HeaderComponent,\r\n FooterComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n TypeaheadModule.forRoot(),\r\n TooltipModule.forRoot(),\r\n AppRoutingModule,\r\n FormsModule,\r\n FontAwesomeModule,\r\n MatSidenavModule,\r\n MatDividerModule,\r\n MatCheckboxModule,\r\n MatExpansionModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatSnackBarModule,\r\n ReactiveFormsModule,\r\n HttpClientModule\r\n ],\r\n providers: [],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\nimport { trigger, state, style, animate, transition,} from '@angular/animations';\r\nimport bannerConfig from '../../../configs/bannerConfig.json';\r\n@Component({\r\n selector: 'app-banner',\r\n templateUrl: './banner.component.html',\r\n styleUrls: ['./banner.component.scss'],\r\n animations: [\r\n trigger('flyInOut', [\r\n transition(':enter', [\r\n style({ transform: 'translateY(-200%)' }),\r\n animate('0.3s 1s ease-out')\r\n ]),\r\n transition(':leave', [\r\n animate('0.2s ease-in', style({ transform: 'translateY(-200%)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\n\r\nexport class BannerComponent {\r\n public isShown = true;\r\n\r\n @Output() remove = new EventEmitter();\r\n\r\n constructor() {\r\n this.isShown = bannerConfig.displayBanner;\r\n }\r\n\r\n toggle() {\r\n this.isShown = !this.isShown;\r\n }\r\n}\r\n","
\r\n
\r\n This is a beta release\r\n
\r\n
\r\n Visit Legacy Site\r\n
Dismiss
\r\n
\r\n
\r\n","import { Component, Input, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\nimport cfg from '../../../configs/btndropdownConfig.json';\r\n\r\n@Component({\r\n selector: 'app-dropdown',\r\n templateUrl: './btn-dropdown.component.html',\r\n styleUrls: ['./btn-dropdown.component.scss'],\r\n})\r\nexport class BtnDropdownComponent implements AfterViewInit {\r\n\r\n @Output()\r\n public selectedOptionEmmiter: EventEmitter = new EventEmitter();\r\n\r\n public options: any;\r\n public isRendered: boolean;\r\n public caption: string;\r\n public disabled: boolean;\r\n public selected: any = {};\r\n\r\n @Input() public searchType = '';\r\n\r\n constructor() {\r\n this.setConfig(cfg);\r\n }\r\n public ngAfterViewInit() {\r\n // if value passed in from URL route, check against options and set if found\r\n if (this.searchType !== '') {\r\n const selectedOptions = this.options.filter(option => option.searchType.split(':').includes(this.searchType));\r\n if (selectedOptions.length > 0) {\r\n this.selectHandler(selectedOptions[0]);\r\n }\r\n }\r\n }\r\n\r\n public selectHandler(option): void {\r\n this.caption = option.label;\r\n this.selected = option;\r\n this.selectedOptionEmmiter.emit(option);\r\n }\r\n\r\n public setConfig(config): void {\r\n if (config) {\r\n this.options = config.options || [];\r\n this.isRendered = (this.options.length > 0);\r\n this.disabled = this.options.length <= 1;\r\n if (this.options.length > 0) {\r\n // if one more more set as selected\r\n this.selectHandler(this.options[0]);\r\n }\r\n } else {\r\n this.isRendered = false;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
{{option.label}}
\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'bucket',\r\n templateUrl: './bucket.component.html',\r\n styleUrls: ['./bucket.component.scss']\r\n})\r\nexport class BucketComponent implements OnInit {\r\n\r\n // bucket inputs\r\n @Input()\r\n public title: any;\r\n @Input()\r\n public items: any;\r\n\r\n\r\n constructor() {\r\n console.log('bucket created');\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}","\r\n","import { Component, Output, EventEmitter, Input, AfterViewInit } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss']\r\n})\r\nexport class FilterComponent {\r\n\r\n @Input()\r\n set filters(val) {\r\n this.createFilters(val);\r\n }\r\n get filters() {\r\n return this._filters;\r\n }\r\n\r\n public _filters: any = {};\r\n public filtersApplied: any = {};\r\n public selectedData: any = {};\r\n\r\n @Output()\r\n public filterChanged: EventEmitter = new EventEmitter();\r\n\r\n constructor(private _snackBar: MatSnackBar) {}\r\n\r\n createFilters(val): void {\r\n if (val !== null) {\r\n this._filters = val;\r\n // create empty object for ngmodel to create into \r\n // create empty object of arrays for showing applied\r\n this._filters[\"fields\"].map(field => {\r\n this.selectedData[field.name] = {};\r\n this.filtersApplied[field.name] = [];\r\n });\r\n }\r\n\r\n }\r\n\r\n updateComplete(): void {\r\n // when field is updated - update the array list that populates the \r\n // filters applied into the mat panel description area\r\n let obj = this.selectedData;\r\n let filterArray = {};\r\n // get each field object\r\n Object.keys(obj).map((key)=>{\r\n let fieldObj = obj[key];\r\n filterArray[key] = [];\r\n // map through true/false choices from checkbox setting\r\n Object.keys(fieldObj).map((choice)=>{\r\n if (fieldObj[choice]) {\r\n filterArray[key].push(choice);\r\n }\r\n });\r\n });\r\n // set filters applied to this new object of arrays\r\n this.filtersApplied = filterArray;\r\n }\r\n\r\n filter(): void {\r\n this._snackBar.open('Filter Applied!', 'Dismiss', {\r\n duration: 1000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'bottom'\r\n });\r\n this.filterChanged.emit([this.filtersApplied, false]);\r\n }\r\n\r\n toggleFilter(): void {\r\n // use filter changed to toggle filter\r\n this.filterChanged.emit([null, false]);\r\n }\r\n\r\n clearField(fieldName): void {\r\n this.filtersApplied[fieldName] = [];\r\n // map through true/false choices from checkbox setting\r\n Object.keys(this.selectedData[fieldName]).map((choice)=>{\r\n this.selectedData[fieldName][choice] = false;\r\n });\r\n this.filterChanged.emit([this.filtersApplied, true]);\r\n }\r\n\r\n clear(): void {\r\n // clear out mapped filter objects\r\n this._filters[\"fields\"].map(field => {\r\n Object.keys(this.selectedData[field.name]).map((choice)=>{\r\n this.selectedData[field.name][choice] = false;\r\n });\r\n this.filtersApplied[field.name] = [];\r\n });\r\n this._snackBar.open('Filter Cleared!', 'Dismiss', {\r\n duration: 1000\r\n });\r\n this.filterChanged.emit([this.filtersApplied, true]);\r\n }\r\n\r\n}\r\n","
\r\n
Filter Results\r\n \r\n \r\n
\r\n Select fields you would like to filter by.\r\n
\r\n
\r\n If multiple options are selected within a list, results matching any of the selections will be shown.\r\n
\r\n
\r\n If options in multiple lists are selected, only results that match at least one option in each list will be shown.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{field.title}}\r\n {{filtersApplied[field.name]}}\r\n \r\n Clear\r\n
    \r\n
  • \r\n {{choiceObj.choice}} ({{choiceObj.count}})\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FooterComponent implements OnInit {\r\n // links to OCTO wide documents\r\n public footerColumns = [];\r\n public siteNameText = '';\r\n public copyrightText = null;\r\n public displayFooter = true;\r\n public logo = null;\r\n\r\n @Input()\r\n public configuration: any = {};\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.configuration) {\r\n this.siteNameText = this.configuration.siteName;\r\n this.copyrightText = this.configuration.copyright;\r\n this.footerColumns = this.configuration.columns;\r\n this.logo = this.configuration.logo;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{siteNameText | uppercase}}\r\n
\r\n
\r\n

Copyright © {{copyrightText}}

\r\n
\r\n
\r\n \r\n Powered by\"{{logo.altText}}\"\r\n
\r\n
\r\n
\r\n
\r\n {{column.header}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class HeaderComponent implements OnInit {\r\n\r\n public logo: any = {};\r\n public links: any = [];\r\n public isCollapsed = true;\r\n\r\n @Input()\r\n public configuration: any = {};\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.configuration) {\r\n this.logo = this.configuration.logo;\r\n this.links = this.configuration.otherLinks;\r\n }\r\n }\r\n\r\n}","
\r\n \"{{logo.altText}}\"\r\n \r\n\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, AfterViewInit, Input, OnDestroy } from '@angular/core';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport * as L from 'leaflet';\r\nimport * as esri from 'esri-leaflet';\r\nimport 'leaflet-extra-markers';\r\n\r\nimport { SexoffenderDataService } from '../../services/sexoffender-data.service';\r\nimport mapConfig from '../../../configs/mapConfig.json';\r\n@Component({\r\n selector: 'app-results-map',\r\n templateUrl: './results-map.component.html',\r\n styleUrls: ['./results-map.component.scss']\r\n})\r\nexport class ResultsMapComponent implements OnInit, AfterViewInit, OnDestroy {\r\n public map: L.Map;\r\n public boundaryLayer: L.GeoJSON = new L.GeoJSON();\r\n public featureLayer: L.GeoJSON = new L.GeoJSON();\r\n public selectedLayer: L.GeoJSON = new L.GeoJSON();\r\n\r\n public featureArray;\r\n public selectedFeatures = false;\r\n public shownFeaturesSub: Subscription;\r\n public selectedObjSub: Subscription;\r\n public resultSubscription: Subscription;\r\n\r\n // boundary polygon style\r\n public boundaryStyle = {\r\n color: '#ff7800',\r\n weight: 3,\r\n opacity: 0.65\r\n };\r\n\r\n public defaultIcon = L.ExtraMarkers.icon({\r\n markerColor: 'blue',\r\n shape: 'circle'\r\n });\r\n\r\n public selectedMarker = L.ExtraMarkers.icon({\r\n markerColor: 'orange',\r\n prefix: 'fa',\r\n icon: 'fa-user',\r\n shape: 'circle'\r\n });\r\n\r\n public centerPin = L.ExtraMarkers.icon({\r\n icon: 'fa-star',\r\n markerColor: 'red',\r\n shape: 'square',\r\n prefix: 'fa'\r\n });\r\n\r\n public greyIcon = L.icon({\r\n iconUrl: 'assets/map/grey_marker.png',\r\n shadowUrl: 'assets/map/markers_shadow.png',\r\n iconSize: [ 35, 45 ],\r\n iconAnchor: [ 17, 42 ],\r\n popupAnchor: [ 1, -32 ],\r\n shadowAnchor: [ 10, 12 ],\r\n shadowSize: [ 36, 16 ]\r\n });\r\n\r\n // default basemap and set bounds so that it doesn't look for tiles that aren't there\r\n public dcBasemapLayer = mapConfig.basemap;\r\n public dcBasemapLayerBounds: L.LatLngBounds =\r\n L.latLngBounds(L.latLng(mapConfig.layerBounds.xmin, mapConfig.layerBounds.ymin),\r\n L.latLng(mapConfig.layerBounds.xmax, mapConfig.layerBounds.ymax));\r\n // center of map\r\n public centerPt: L.LatLngExpression = [mapConfig.centerPoint.lat, mapConfig.centerPoint.long];\r\n // zoom of map\r\n public zoomLevel = mapConfig.zoomLevel;\r\n\r\n constructor(public offenderService: SexoffenderDataService) { }\r\n\r\n public ngOnInit(): void {\r\n // subscribe to changes in result subscription on map object\r\n this.resultSubscription = this.offenderService.mapParameters.subscribe((data) =>\r\n this.updateMap(data)\r\n );\r\n\r\n this.shownFeaturesSub = this.offenderService.showingFeatures$.subscribe(features => {\r\n this.populateFeatures(features);\r\n });\r\n\r\n this.selectedObjSub = this.offenderService.selectedOffender$.subscribe(feature => {\r\n this.selectFeature(feature);\r\n });\r\n\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n // initialize the map\r\n this.initMap();\r\n }\r\n\r\n public initMap(): void {\r\n // keep map within 10% of a buffer around DC\r\n const maxBnds = this.dcBasemapLayerBounds.pad(.1);\r\n // create a map and add the DC basemap\r\n this.map = L.map('map', {\r\n maxBounds: maxBnds,\r\n maxBoundsViscosity: 1.0,\r\n minZoom: 11\r\n });\r\n this.map.on('load', () => {\r\n this.invalidSize();\r\n });\r\n\r\n // create selected layer if needed\r\n this.selectedLayer = L.geoJSON(null, {}).addTo(this.map);\r\n\r\n this.map.setView(this.centerPt, this.zoomLevel);\r\n\r\n esri.tiledMapLayer({\r\n bounds: this.dcBasemapLayerBounds,\r\n url: this.dcBasemapLayer\r\n }).addTo(this.map);\r\n }\r\n\r\n public updateMap(mapParams): void {\r\n // clear layers if already populated\r\n this.clearLayers();\r\n\r\n // if zone populate zone area else create buffer circle\r\n if (mapParams.type === 'zone') {\r\n this.populateZoneAndFeatures(mapParams.data);\r\n } else if (mapParams.type === 'buffer') {\r\n this.drawBufferAndFeatures(mapParams.data);\r\n }\r\n }\r\n\r\n public populateFeatures(geoFeatures): void {\r\n this.clearSelected();\r\n // populate feature layer using geojson from service\r\n if (this.featureLayer) {\r\n this.featureLayer.clearLayers();\r\n this.featureArray = [];\r\n }\r\n\r\n this.featureLayer = L.geoJSON(geoFeatures, {\r\n // add custom marker to points\r\n pointToLayer: (feature, latlng) => {\r\n return L.marker(latlng, {\r\n icon: this.defaultIcon\r\n });\r\n },\r\n onEachFeature: (feature, layerInfo) => {\r\n // on click of marker - create select item and select - and pass up to service\r\n layerInfo.on('click', (e, self = this) => {\r\n const address = e.target.feature.properties.address;\r\n const searchObj = {\r\n sexoffendercode: null,\r\n address: address\r\n };\r\n self.selectFeature(searchObj);\r\n this.offenderService.selectOnMap(address);\r\n });\r\n this.featureArray.push(layerInfo);\r\n }\r\n }).addTo(this.map);\r\n this.resetView();\r\n }\r\n\r\n public selectFeature(searchObj): void {\r\n this.selectedLayer.clearLayers();\r\n const boundsArray = [];\r\n // itterate over features and set either default icon or selected\r\n this.featureArray.map(feat => {\r\n let mapSymbol = this.defaultIcon;\r\n feat.feature.properties.offenders.map(offender => {\r\n if (offender.sexoffendercode === searchObj.sexoffendercode) {\r\n if (searchObj.address !== null) {\r\n // if address provided - go only to that address\r\n if (feat.feature.properties.address === searchObj.address) {\r\n const ptLocation = feat.getLatLng();\r\n // add pin marker to the center\r\n L.marker(ptLocation, {\r\n icon: this.selectedMarker\r\n }).addTo(this.selectedLayer);\r\n boundsArray.push(feat.getLatLng());\r\n this.selectedFeatures = true;\r\n }\r\n } else {\r\n const ptLocation = feat.getLatLng();\r\n // add pin marker to the center\r\n L.marker(ptLocation, {\r\n icon: this.selectedMarker\r\n }).addTo(this.selectedLayer);\r\n boundsArray.push(feat.getLatLng());\r\n this.selectedFeatures = true;\r\n }\r\n }\r\n if (searchObj.sexoffendercode == null && feat.feature.properties.address === searchObj.address) {\r\n const ptLocation = feat.getLatLng();\r\n // add pin marker to the center\r\n L.marker(ptLocation, {\r\n icon: this.selectedMarker\r\n }).addTo(this.selectedLayer);\r\n boundsArray.push(feat.getLatLng());\r\n this.selectedFeatures = true;\r\n }\r\n });\r\n });\r\n // if bounds found, zoom map to it - else alert user no location found\r\n if (boundsArray.length > 0) {\r\n this.map.fitBounds(boundsArray);\r\n }\r\n }\r\n\r\n public populateZoneAndFeatures(data): void {\r\n if (data.boundaryFeature) {\r\n // if boundary feature, add it to map\r\n this.boundaryLayer = L.geoJSON(data.boundaryFeature, {\r\n style: this.boundaryStyle\r\n }).addTo(this.map);\r\n // fit boundary to extent\r\n this.map.fitBounds(this.boundaryLayer.getBounds());\r\n } else {\r\n this.map.fitBounds(this.dcBasemapLayerBounds);\r\n }\r\n }\r\n\r\n public drawBufferAndFeatures(data): void {\r\n const centerPt = L.latLng(data.centerpoint);\r\n this.boundaryLayer = L.geoJSON(data.boundaryFeature, {\r\n style: this.boundaryStyle\r\n }).addTo(this.map);\r\n // draw a circle boundary with radius given and same style as zones\r\n L.circle(centerPt, {\r\n radius: data.distance,\r\n weight: this.boundaryStyle.weight,\r\n color: this.boundaryStyle.color,\r\n opacity: this.boundaryStyle.opacity\r\n }).addTo(this.boundaryLayer);\r\n\r\n // add pin marker to the center\r\n L.marker(centerPt, {\r\n icon: this.centerPin\r\n }).addTo(this.boundaryLayer);\r\n\r\n // fit boundary to extent\r\n this.map.setView(centerPt, 15);\r\n }\r\n \r\n public clearSelected(): void {\r\n // clear selected layer\r\n if (this.selectedLayer) {\r\n this.selectedLayer.clearLayers();\r\n }\r\n // set to false and hide button and reset map zoom\r\n this.selectedFeatures = false;\r\n this.resetView();\r\n // pass that selection has been cleared\r\n this.offenderService.selectOnMap(null);\r\n }\r\n\r\n public resetView(): void {\r\n // if boundary layer has features, zoom to that otherwise zoom to points boundary\r\n if (this.boundaryLayer.getLayers().length > 0) {\r\n this.map.fitBounds(this.boundaryLayer.getBounds());\r\n } else if (this.featureLayer.getLayers().length > 0 && this.boundaryLayer.getLayers().length == 0) {\r\n this.map.fitBounds(this.featureLayer.getBounds());\r\n }\r\n }\r\n\r\n public clearLayers(): void {\r\n // clear boundary layer\r\n if (this.boundaryLayer) {\r\n this.boundaryLayer.clearLayers();\r\n }\r\n // clear feature layer\r\n if (this.featureLayer) {\r\n this.featureLayer.clearLayers();\r\n }\r\n }\r\n\r\n public invalidSize(): void {\r\n // function needed to reset map after display none\r\n this.map.invalidateSize();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n // remove the subscription\r\n this.resultSubscription.unsubscribe();\r\n this.shownFeaturesSub.unsubscribe();\r\n this.selectedObjSub.unsubscribe();\r\n }\r\n}\r\n","
\r\n
Clear Selection
\r\n
\r\n
","import { Component, Input, AfterViewInit, ViewChild, Output, EventEmitter,\r\n NgZone, ElementRef, ChangeDetectorRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { SexoffenderDataService } from '../../services/sexoffender-data.service';\r\nimport { noop, Subscription, Observable, Observer, of } from 'rxjs';\r\nimport { map, tap, switchMap, debounceTime, distinctUntilChanged, catchError } from 'rxjs/operators';\r\nimport { BtnDropdownComponent } from '../btn-dropdown/btn-dropdown.component';\r\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead/typeahead-match.class';\r\nimport searchBoxConfig from '../../../configs/searchboxConfig.json';\r\n\r\n@Component({\r\n selector: 'app-searchbox',\r\n templateUrl: './searchbox.component.html',\r\n styleUrls: ['./searchbox.component.scss'],\r\n providers: [SexoffenderDataService],\r\n})\r\nexport class SearchboxComponent implements AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('txt') public eltxt: ElementRef;\r\n @ViewChild('btnDDComp') btnDropdownComp: BtnDropdownComponent;\r\n\r\n @Input()\r\n public searchTextModel: string;\r\n\r\n @Input()\r\n public searchTypeModel: string;\r\n\r\n @Output()\r\n public searchTextEmitter: EventEmitter = new EventEmitter();\r\n\r\n public completionOptions: string[];\r\n \r\n public search: string;\r\n public completionSuggestions$: Observable;\r\n public errorMessage: string;\r\n public selectedOption: any;\r\n public selectFirstOption: boolean = true;\r\n public firstItemActive: boolean = true;\r\n public autocompletionDropdownMax: number = 5; // set default\r\n public typeheadOptionsGroupProp = \"\";\r\n public typeheadOptionsDisplayProp = \"\";\r\n\r\n public message = '';\r\n public showAutoComplete = false;\r\n\r\n public resultSubscription: Subscription;\r\n public elementRef: ElementRef;\r\n public completionSuggests: any[];\r\n\r\n constructor(\r\n public ds: SexoffenderDataService,\r\n public cdr: ChangeDetectorRef,\r\n ) { }\r\n\r\n public ngAfterViewInit() {\r\n this.autocompletionDropdownMax = searchBoxConfig.autocompletionDropdownMax;\r\n this.completionSuggestions$ = new Observable((observer: Observer) => {\r\n observer.next(this.searchTextModel);\r\n })\r\n .pipe(\r\n debounceTime(50),\r\n distinctUntilChanged(),\r\n switchMap((query: string) => {\r\n if (query) {\r\n return this.ds.getAutocomplete(this.getBtnDropdownSearchType(), query)\r\n .pipe(\r\n map((data) => {\r\n this.completionOptions = data || [];\r\n return data || [];\r\n }),\r\n tap(() => noop, err => {\r\n this.completionOptions = [];\r\n // in case of http error\r\n console.log(err);\r\n })\r\n );\r\n }\r\n \r\n return of([]);\r\n }),\r\n catchError (this.handleError)\r\n );\r\n this.cdr.detectChanges();\r\n }\r\n\r\n public onSelect(event: TypeaheadMatch): void {\r\n this.selectedOption = event.item;\r\n if (this.selectedOption.type){\r\n this.searchTextModel = this.selectedOption.suggest;\r\n }\r\n this.doTextSearch(this.searchTextModel, this.getQueryField());\r\n }\r\n\r\n // get sex offender search field, logic too complex to move to config\r\n public getQueryField(): string {\r\n let queryField = \"\";\r\n // address search\r\n if (this.getBtnDropdownSearchType() == \"address\") {\r\n queryField = \"address\";\r\n } else { // name/nickname search\r\n if ((this.selectedOption) && (this.selectedOption.type == \"Nickname\")) {\r\n queryField = \"nickname\";\r\n } else { //default name query field\r\n queryField = \"fullname\";\r\n }\r\n }\r\n return queryField;\r\n }\r\n\r\n public btnSearchClickHandler(event): void {\r\n if (this.completionOptions && this.completionOptions.length > 0) {\r\n this.selectedOption = this.completionOptions[0]; \r\n if (this.selectedOption.type){\r\n this.searchTextModel = this.selectedOption.suggest;\r\n }\r\n }\r\n this.doTextSearch(this.searchTextModel, this.getQueryField());\r\n }\r\n\r\n public doTextSearch(searchText: string, fieldName: string = null) {\r\n if (!searchText) {\r\n return;\r\n }\r\n let resultAction = 'search';\r\n if (fieldName === null) {\r\n resultAction = 'search';\r\n this.ds.getAllOffenders();\r\n } else {\r\n this.ds.getOffenders(fieldName, searchText);\r\n }\r\n this.searchTextEmitter.emit({ action: resultAction, search: searchText, field: fieldName });\r\n }\r\n\r\n @HostListener('document:keyup', ['$event'])\r\n public onDocumentEnterKeyUp(event) {\r\n const keyCode: number = event.which || event.keyCode;\r\n if ((keyCode === 13)) {\r\n if (this.completionOptions.length > 0) {\r\n this.selectedOption = this.completionOptions[0];\r\n this.searchTextModel = (this.selectedOption.type) ? this.selectedOption.suggest : this.selectedOption; \r\n }\r\n if (this.searchTextModel) {\r\n this.doTextSearch(this.searchTextModel , this.getQueryField());\r\n }\r\n }\r\n }\r\n\r\n public handleError(err): any {\r\n console.error('ERROR:' + err.message);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n // unsubscribe to ensure no memory leaks\r\n if (this.resultSubscription) {\r\n this.resultSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public getBtnDropdownSearchType(): string {\r\n return this.btnDropdownComp.selected.searchType;\r\n }\r\n\r\n public btnDropdownSelectedHandler(option) {\r\n // reset autocompletion dropdown\r\n this.completionOptions = [];\r\n // reset search text\r\n this.searchTextModel = '';\r\n if (option.searchType !== \"address\") {\r\n this.typeheadOptionsDisplayProp = \"suggest\";\r\n this.typeheadOptionsGroupProp = \"type\";\r\n } else {\r\n this.typeheadOptionsDisplayProp = \"\";\r\n this.typeheadOptionsGroupProp = \"\";\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\nimport sharedConfig from '../../../configs/sharedConfig.json';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-searchresults',\r\n templateUrl: './searchresults.component.html',\r\n styleUrls: ['./searchresults.component.scss']\r\n})\r\nexport class SearchresultsComponent {\r\n\r\n @Input()\r\n public searchResults: any[] = [];\r\n\r\n @Input()\r\n public searchQuery: any = {};\r\n\r\n @Output()\r\n public toggleEmitter: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public toggleFilter: EventEmitter = new EventEmitter();\r\n\r\n public baseUrl: string;\r\n\r\n // set default limit\r\n public limit = 6;\r\n public initialLimit = sharedConfig.features.initiallimit;\r\n public additional = sharedConfig.features.additional;\r\n public showMoreItteration = 1;\r\n\r\n public selectedOffender = '';\r\n\r\n public selectedObjSub: Subscription;\r\n\r\n public constructor() { }\r\n\r\n public queryText() {\r\n // if no results found, let user know why\r\n let queryText = '';\r\n let count: any = this.searchResults.length;\r\n if (count == 0) {\r\n count = 'No';\r\n }\r\n if (this.searchQuery && this.searchQuery['type'] == 'distance') {\r\n queryText = count + ' results within ' + this.searchQuery['distance'] + ' miles of ' + this.searchQuery['address'] + '';\r\n } else if (this.searchQuery && this.searchQuery['term']) {\r\n queryText = count + ' results for ' + this.searchQuery['term'] + '';\r\n }\r\n return queryText;\r\n }\r\n\r\n public getPercentage() {\r\n return Math.round(this.limit / this.searchResults.length * 100);\r\n }\r\n\r\n public increaseLimit() {\r\n if (this.limit + (this.additional * this.showMoreItteration) < this.searchResults.length) {\r\n this.limit = this.limit + (this.additional * this.showMoreItteration);\r\n if (this.showMoreItteration < 5) {\r\n this.showMoreItteration += 1;\r\n }\r\n } else {\r\n this.limit = this.searchResults.length;\r\n }\r\n }\r\n\r\n public resetShowMore() {\r\n this.scrollToTop();\r\n this.limit = this.initialLimit;\r\n this.showMoreItteration = 1;\r\n }\r\n\r\n public toggleEvent(event) {\r\n // bubble up to parent\r\n this.toggleEmitter.emit(event);\r\n }\r\n\r\n public toggleFilterEvent(event) {\r\n // bubble up to parent\r\n this.toggleFilter.emit(event);\r\n }\r\n\r\n public scrollToTop() {\r\n try {\r\n window.scrollTo({ left: 0, top: 0 });\r\n } catch (e) {\r\n document.body.scrollTop = document.documentElement.scrollTop = 0;\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n

\r\n
\r\n
0\">\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Showing {{limit}} of {{searchResults.length}} results
\r\n
\r\n
\r\n
\r\n
\r\n
Show More
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-address-block',\r\n templateUrl: './address-block.component.html',\r\n styleUrls: ['./address-block.component.scss']\r\n})\r\nexport class AddressBlockComponent {\r\n @Input()\r\n public address: any = {};\r\n\r\n constructor() { }\r\n\r\n public distanceFixed(dist: string) {\r\n return parseFloat(dist).toFixed(2);\r\n }\r\n\r\n public dcAddressToTitleCase(str: string) {\r\n const strArr: string[] = str.toLowerCase().split(/\\s+/);\r\n if (strArr[1] === '-' && strArr[3].toUpperCase() === 'BLOCK') {\r\n if (parseInt(strArr[0], 10) < 100) { \r\n strArr[0] = 'Unit';\r\n }\r\n strArr.splice(1, 2);\r\n }\r\n strArr.forEach((strPiece, index) => {\r\n switch (strPiece.toLowerCase()) {\r\n case 'se':\r\n case 'sw':\r\n case 'ne':\r\n case 'nw':\r\n // if suffix, convert to UPPER CASE\r\n strArr[index] = strPiece.toUpperCase();\r\n break;\r\n case 'of':\r\n // if of, make all lower case\r\n strArr[index] = strPiece.toLowerCase();\r\n break;\r\n default:\r\n // else camel case\r\n strArr[index] = strPiece.charAt(0).toUpperCase() + strPiece.slice(1);\r\n }\r\n });\r\n return strArr.join(' ');\r\n }\r\n}\r\n","
\r\n
\r\n \r\n

({{distanceFixed(address.distance)}})

\r\n
\r\n
\r\n {{dcAddressToTitleCase(address.blockname)}}\r\n \r\n
{{address.city}}, {{address.state}}, {{address.zipcode}}\r\n
\r\n
\r\n
\r\n
","import { Component, Inject, Input, Output, AfterContentInit, EventEmitter } from '@angular/core';\r\nimport { SexoffenderDataService } from '../../services/sexoffender-data.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-sex-offender-card',\r\n templateUrl: './sex-offender-card.component.html',\r\n styleUrls: ['./sex-offender-card.component.scss']\r\n})\r\nexport class SexOffenderCardComponent implements AfterContentInit {\r\n\r\n @Input()\r\n public sexOffenderInfo: any = {};\r\n\r\n @Output()\r\n public toggleEmitter: EventEmitter = new EventEmitter();\r\n\r\n public mapableAddresses = false;\r\n public csosaHost = environment.csosaHost;\r\n\r\n constructor(public offenderService: SexoffenderDataService, private _snackBar: MatSnackBar) { }\r\n\r\n public ngAfterContentInit(): void {\r\n if (this.sexOffenderInfo) {\r\n this.sexOffenderInfo.addresses.map(address => {\r\n if(address.location.lat !== 0 && address.within) {\r\n this.mapableAddresses = true;\r\n }\r\n });\r\n this.sexOffenderInfo.home = this.sexOffenderInfo.addresses.filter(add => {\r\n if (add.type.toLowerCase() == \"home\") {\r\n return add;\r\n }\r\n });\r\n this.sexOffenderInfo.work = this.sexOffenderInfo.addresses.filter(add => {\r\n if (add.type.toLowerCase() == \"work\") {\r\n return add;\r\n }\r\n });\r\n this.sexOffenderInfo.school = this.sexOffenderInfo.addresses.filter(add => {\r\n if (add.type.toLowerCase() == \"school\") {\r\n return add;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public clickCard(address): void {\r\n if (this.mapableAddresses) {\r\n if (address == null) {\r\n this.offenderService.selectFeature(this.sexOffenderInfo.sexoffendercode, address);\r\n this.toggleEmitter.emit('map');\r\n } else if (address.location.lat !== 0) {\r\n if (!address.within) {\r\n this._snackBar.open('Outside of selected filter; Clear filter to view on map!', 'Dismiss', {\r\n duration: 1000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'bottom'\r\n });\r\n } else {\r\n // send offender ID and address if appropriate to service to handle response\r\n this.offenderService.selectFeature(this.sexOffenderInfo.sexoffendercode, address.blockname);\r\n this.toggleEmitter.emit('map');\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \"{{sexOffenderInfo.fullname}}\r\n \"picture\r\n More Details\r\n
\r\n
\r\n
\r\n
{{sexOffenderInfo.fullname}}
\r\n
Nicknames:
\r\n
{{sexOffenderInfo.nickname?.join(', ')}}
\r\n
Addresses:
\r\n
\r\n
HOME
\r\n
\r\n \r\n
\r\n
\r\n
0 && sexOffenderInfo.work.blockname !== null\">\r\n
WORK
\r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n
SCHOOL
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-disclaimer',\r\n templateUrl: './disclaimer.component.html',\r\n styleUrls: ['./disclaimer.component.scss']\r\n})\r\nexport class DisclaimerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n\r\n

Disclaimer

\r\n\r\n

The Sex Offender Registration Act of 1999 authorizes the Court Services and Offender Supervision Agency (CSOSA) to establish and maintain the sex offender registry for the District of Columbia. The Law authorizes the Metropolitan Police Department to release sex offender information to the public.

\r\n\r\n

The Court Services and Offender Supervision Agency updates this information regularly in an effort to assure that the registry is complete and accurate. However, the Metropolitan Police Department and the District of Columbia cannot guarantee the accuracy of this information. Data contained in the registry may be primarily based upon information furnished by the offender (registrant). This information can change quickly. Offenders may have moved and failed to notify CSOSA as required by law.

\r\n\r\n

Persons who have been arrested or charged with a sex offense are not required to register unless the arrest or charge results in a conviction or a finding of not guilty by reason of insanity. Juveniles adjudicated (not charged or convicted as adults) of sexual abuse offenses are not required to register and will not appear on the registry. Please see the Sex Offender Registration for a list of those offenses requiring registration. For specific language pertaining to DC sexual abuse statutes, see Definition of Offenses.

\r\n\r\n

The information that is provided through this web site is an open record. It is your responsibility to make sure the records you access through this web site pertain to the person about whom you are seeking information. Extreme care should be exercised in using information obtained from this web site. Neither the Metropolitan Police Department nor the District of Columbia shall be responsible for any errors or omissions produced by secondary dissemination of this data.

\r\n\r\n

This information is not intended to create alarm or panic. Our intent is to inform our citizens and to enhance community safety and awareness. The Metropolitan Police Department has not considered or assessed the specific risk of reoffense for any individual registrant included in the registry. In addition, it has made no determination that any offender included in the registry is currently dangerous. Offenders are included in the registry solely by virtue of their conviction record.

\r\n\r\n

Unlawful use of this information to threaten, intimidate, harass, or injure a registered sex offender will not be tolerated and will be prosecuted to the full extent of the law.

\r\n\r\n

The online Sex Offender Registry database provides information on Class A and Class B sex offenders only. If you would like to see a complete list of all Class A, B, and C Offenders, you must go, in person, to one of the MPDC Registry Book locations.

\r\n\r\n

In accordance with enactment of the Sex Offender Registration Act of 1999, this information is being provided to the community. Funding for this program was provided through a grant from the Bureau of Justice Statistics, Office of Justice Programs, US Department of Justice. The title of this grant is the National Sex Offender Registry Project (98-NR-CX-K002).

\r\n\r\n

Address information is provided at the block level only; no specific addresses are provided. As a result, users should note that, at times, it may appear as if multiple offenders reside at a specific address. This is not always the case. You are cautioned that information provided on this website is information of record and may not reflect the current residence, place of employment, school, status, or other information concerning the registrant (offender). Please note that unless specifically indicated, these individuals are not wanted by the police at this time.

\r\n \r\n

If you have concerns about a sex offender in your neighborhood or sex offenders in general, have information on the whereabouts of a wanted sex offender, believe any information on this website is in error, or if you would like further information, please contact the Metropolitan Police Department, Sex Offender Registry Unit, at 300 Indiana Avenue, NW 20001, phone: (202) 727-4407, or email us at sexoffender.registry@dc.gov.

\r\n\r\n
\r\n\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n// config params for featured links\r\nimport homeConfig from '../../../configs/homeConfig.json';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n public homeLinks: any = homeConfig.featured;\r\n\r\n public searchTextModel: any;\r\n public searchText: any = '';\r\n\r\n public browserDataTxt = 'List All Offenders';\r\n\r\n public constructor(\r\n public router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public searchTextEmitHandler(event): void {\r\n const searchText: string = encodeURIComponent(event.search);\r\n const searchField = event.field;\r\n const action: string = event.action;\r\n let urlParts: string[];\r\n\r\n if (event.field) {\r\n urlParts = [action, searchField, searchText];\r\n } else {\r\n urlParts = [action, searchText];\r\n }\r\n console.log(event);\r\n this.redirectTo(urlParts);\r\n }\r\n\r\n public browseAllDataHandler() {\r\n this.redirectTo(['search/all']);\r\n }\r\n\r\n public redirectTo(segs: string[]) {\r\n if ((!segs) || (segs.length === 0)) {\r\n return;\r\n }\r\n this.router.navigate(['/' + segs.join('/')]);\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Sex Offender Registry\r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

\r\n {{browserDataTxt}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export * from './home.component';\r\n","export * from './results.component';\r\n","import { Component, ViewChild, ChangeDetectorRef, AfterViewChecked, OnDestroy, ElementRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { SexoffenderDataService } from '../../services/sexoffender-data.service';\r\nimport { ResultsMapComponent } from '../../components/results-map/results-map.component';\r\nimport { SearchboxComponent } from '../../components/searchbox/searchbox.component';\r\nimport { SearchresultsComponent } from '../../components/searchresults/searchresults.component';\r\n\r\nimport { APIReturn } from '../../models/apiReturn';\r\nimport { FilterComponent } from 'src/app/components/filter/filter.component';\r\n\r\n@Component({\r\n selector: 'app-results',\r\n templateUrl: './results.component.html',\r\n styleUrls: ['./results.component.scss']\r\n})\r\n\r\nexport class ResultsComponent implements AfterViewChecked, OnDestroy {\r\n\r\n public apiReturn$: Observable;\r\n public searchText = '';\r\n public searchType = '';\r\n public searchQuery = {};\r\n\r\n public routeParams: object = {};\r\n public routeSub: Subscription;\r\n\r\n public browserDataTxt = 'List All Offenders';\r\n\r\n // results getting passed to cards\r\n public offendersResult: any[] = [];\r\n // if filtered, hold those here\r\n public filteredResults: any[] = [];\r\n // holds initial results if need to go back\r\n public initialResults: any[] = [];\r\n\r\n public actionKey = 'action';\r\n public subActionKey = 'subaction';\r\n public queryKey = 'q';\r\n\r\n public filterConfig = null;\r\n public filterOpen = false;\r\n public filterApplied = false;\r\n public filters = {};\r\n\r\n offenders: any = [];\r\n activeTab = 'list';\r\n\r\n public mapSelected: Subscription;\r\n\r\n @ViewChild('searchRes', {}) public searchRes: SearchresultsComponent;\r\n @ViewChild('searchboxComp', { static: true }) public searchboxComp: SearchboxComponent;\r\n @ViewChild('mapComp', { static: false }) mapComp: ResultsMapComponent;\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n @ViewChild('resultCards') resultCards: ElementRef;\r\n @ViewChild('filterComp') filterComp: FilterComponent;\r\n\r\n constructor(\r\n public activatedRoute: ActivatedRoute,\r\n public location: Location,\r\n public offenderService: SexoffenderDataService,\r\n private cdr: ChangeDetectorRef,\r\n private snackBar: MatSnackBar\r\n ) {\r\n this.routeSub = this.activatedRoute.paramMap.subscribe(paramMap => {\r\n const paramKey = 'params';\r\n this.routeParams = paramMap[paramKey];\r\n this.runSearch();\r\n });\r\n this.mapSelected = this.offenderService.mapSelect.subscribe((data) => {\r\n this.selectFromMap(data);\r\n });\r\n }\r\n\r\n public ngAfterViewChecked(): void {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.routeSub.unsubscribe();\r\n }\r\n\r\n public searchTextEmitHandler(event): void {\r\n const searchText: string = encodeURIComponent(event.search);\r\n const action: string = event.action;\r\n\r\n let urlParts: string[];\r\n this.searchText = searchText;\r\n if (event.field) {\r\n const searchField = event.field;\r\n this.searchType = searchField;\r\n // this.searchQuery = searchText;\r\n urlParts = [action, searchField, searchText];\r\n } else {\r\n // this.searchQuery = searchText;\r\n urlParts = [action, searchText];\r\n }\r\n this.updateUrl(urlParts);\r\n this.routeParams = {\r\n action: 'search',\r\n subaction: event.field,\r\n q: searchText\r\n };\r\n if (this.searchRes) {\r\n this.searchRes.resetShowMore();\r\n }\r\n this.runSearch();\r\n }\r\n\r\n public runSearch(): void {\r\n if (this.routeParams[this.actionKey] === 'search') {\r\n // display loading search results snackbar while loading data\r\n this.snackBar.open('loading search results');\r\n if (this.routeParams[this.queryKey] === 'all') {\r\n const browseAll: boolean = typeof this.routeParams[this.subActionKey] === 'undefined';\r\n if (browseAll) {\r\n this.offenderService.getAllOffenders().subscribe(data => {\r\n this.setResults(data);\r\n });\r\n }\r\n } else {\r\n const searchParam: string = this.routeParams[this.queryKey];\r\n const subAction: string = this.routeParams[this.subActionKey];\r\n if (typeof searchParam !== 'undefined') {\r\n this.searchText = decodeURIComponent(searchParam);\r\n this.searchType = subAction;\r\n this.offenderService.getOffenders(subAction, searchParam).subscribe(data => {\r\n this.setResults(data);\r\n });\r\n }\r\n }\r\n } else {\r\n this.updateUrl(['search', 'all']);\r\n }\r\n }\r\n\r\n public setResults(data) {\r\n this.offendersResult = this.initialResults = this.filteredResults = data.offenders;\r\n this.searchQuery = data.query;\r\n this.filterConfig = this.offenderService.getFilter(this.offendersResult);\r\n this.filterApplied = false;\r\n // resets the filter\r\n this.filterComp.createFilters(this.filterConfig);\r\n // dismiss loading search results snackbar once resutls are dislayed\r\n this.snackBar.dismiss();\r\n }\r\n\r\n public selectFromMap(data) {\r\n // if applying selected, set result as selected\r\n if (data != null) {\r\n this.offendersResult = [];\r\n let tempOffenders = this.initialResults;\r\n tempOffenders.forEach(offender => {\r\n let addOffender = false;\r\n offender.addresses.forEach(add => {\r\n if (add.blockname == data){\r\n addOffender = true;\r\n }\r\n });\r\n if (addOffender) {\r\n this.offendersResult.push(offender); \r\n this.resultCards.nativeElement.scrollTo({ top: 0, behavior: 'smooth'});\r\n }\r\n })\r\n } else {\r\n // clear selected back to filtered\r\n this.offendersResult = this.filteredResults;\r\n }\r\n }\r\n\r\n\r\n public browseAllDataHandler() {\r\n this.searchText = '';\r\n this.updateUrl(['search', 'all']);\r\n this.routeParams = {\r\n action: 'search',\r\n q: 'all'\r\n };\r\n this.runSearch();\r\n }\r\n\r\n public updateUrl(segs: string[]) {\r\n if ((!segs) || (segs.length === 0)) {\r\n return;\r\n }\r\n this.location.go('/' + segs.join('/'));\r\n }\r\n\r\n public toggleEvent(event): void {\r\n this.toggleViews(event);\r\n }\r\n\r\n public toggleViews(tab): void {\r\n // change tab\r\n this.activeTab = tab;\r\n // hack for resizing map on display block\r\n if (tab === 'map') {\r\n // set display to block before invalid size\r\n // ngClass works too slow\r\n document.getElementById('mapCont').classList.add('active');\r\n this.mapComp.invalidSize();\r\n }\r\n }\r\n\r\n public toggleFilter(event): void {\r\n this.filterOpen = !this.filterOpen;\r\n }\r\n\r\n public filterChangedHandler(filterObj) {\r\n // if changing filter\r\n if (filterObj[0] !== null) {\r\n this.filteredResults = this.offenderService.filterResults(filterObj[0]);\r\n this.offendersResult = this.filteredResults;\r\n this.filterConfig = this.offenderService.getFilter(this.offendersResult);\r\n this.filterApplied = true;\r\n this.filters = filterObj[0];\r\n }\r\n\r\n // keep filter view open\r\n this.filterOpen = filterObj[1];\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
List
\r\n
\r\n
\r\n
Map
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

{{browserDataTxt}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Injectable} from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { catchError, retry, map, flatMap } from 'rxjs/operators';\r\nimport { APIReturn } from '../models/apiReturn';\r\nimport { Offender } from '../models/offender';\r\nimport { environment } from '../../environments/environment';\r\nimport sharedConfig from '../../configs/sharedConfig.json';\r\nimport apiConfig from '../../configs/apiConfig.json';\r\nimport filterConfig from '../../configs/filterConfig.json';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SexoffenderDataService {\r\n\r\n public apiURL = environment.apiHost + apiConfig.apiURL;\r\n public marURL = environment.marHost;\r\n public initialLimit = sharedConfig.features.initiallimit;\r\n public offenders: Offender[] = [];\r\n public uniqueValues: any = [];\r\n public mapParameters: Subject = new Subject();\r\n public autocompleteUrl = environment.apiHost + apiConfig.apiURL_Autocomplete;\r\n\r\n public showingFeatures: Subject = new Subject();\r\n public showingFeatures$ = this.showingFeatures.asObservable();\r\n\r\n public selectedOffender: Subject = new Subject();\r\n public selectedOffender$ = this.selectedOffender.asObservable();\r\n\r\n public mapSelect: Subject = new Subject();\r\n public mapSelect$ = this.mapSelect.asObservable();\r\n\r\n public filteredOffenders: Subject = new Subject();\r\n public filteredOffenders$ = this.filteredOffenders.asObservable();\r\n\r\n public filterValues: Subject = new Subject();\r\n public filterValues$ = this.filterValues.asObservable();\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n public getAutocomplete(type, term) {\r\n if (type.toLowerCase() === 'address') {\r\n return this.getMarAddressAutocomplete(term);\r\n }\r\n const autocompleteURL = `${this.autocompleteUrl}`;\r\n let params = new HttpParams();\r\n params = params.append('prefix', term);\r\n return this.httpClient.get(autocompleteURL, {params})\r\n .pipe(\r\n map(res => {\r\n const dataKey = 'data';\r\n return res[dataKey];\r\n }),\r\n retry(1),\r\n catchError(this.errorHandler)\r\n );\r\n }\r\n\r\n public getMarAddressAutocomplete(term) {\r\n const autocompleteEndpoint: string = this.marURL + apiConfig.mar.autocompleteEndpoint;\r\n const apiKey: string = apiConfig.mar.apiKey;\r\n const dataObj: object = {\r\n 'address': term\r\n }\r\n const marSearchUrl = `${autocompleteEndpoint}?apikey=${apiKey}`;\r\n return this.httpClient.post(marSearchUrl, dataObj)\r\n .pipe(\r\n map(res => {\r\n return res['Result'].filter(x => (x !== null)); // filter out null from mar autocompletion\r\n }),\r\n retry(1),\r\n catchError(this.errorHandler)\r\n );\r\n }\r\n\r\n\r\n public getAllOffenders(): Observable {\r\n const searchURL = `${this.apiURL}`;\r\n return this.httpClient.get(searchURL)\r\n .pipe(\r\n map(res => {\r\n const offenderList = this.processOffenders(res.data);\r\n // map params to export - offenders, zone type, and geojson for zone\r\n const mapParams = {\r\n type: 'points',\r\n data: {}\r\n };\r\n // set map parameters\r\n this.mapParameters.next(mapParams);\r\n this.setShowingOffenders(offenderList);\r\n return {\r\n offenders: offenderList,\r\n query: {\r\n type: 'all'\r\n }\r\n };\r\n }),\r\n retry(1),\r\n catchError(this.errorHandler)\r\n );\r\n }\r\n\r\n public getOffenders(type: string, searchTerm: string): Observable {\r\n if (type.toLowerCase() === 'address') {\r\n return this.getOffendersDistance(searchTerm);\r\n } else {\r\n const term = `${type}=${searchTerm}`;\r\n const searchURL = `${this.apiURL}?${term}`;\r\n return this.httpClient.get(searchURL)\r\n .pipe(\r\n map(res => {\r\n const offenderList = this.processOffenders(res.data);\r\n // map params to export - offenders, zone type, and geojson for zone\r\n const mapParams = {\r\n type: 'points',\r\n data: {}\r\n };\r\n // set map parameters\r\n this.mapParameters.next(mapParams);\r\n this.setShowingOffenders(offenderList);\r\n return {\r\n offenders: offenderList,\r\n query: {\r\n type: type,\r\n term: searchTerm\r\n }\r\n };\r\n }),\r\n retry(1),\r\n catchError(this.errorHandler)\r\n );\r\n }\r\n }\r\n\r\n public getOffendersDistance(address: string): Observable {\r\n const apiKey: string = apiConfig.mar.apiKey;\r\n const marEndpoint: string = this.marURL + apiConfig.mar.endpoint;\r\n const searchMARURL = `${marEndpoint}?apiKey=${apiKey}`\r\n const dataObj: object = {\r\n 'address': address\r\n }\r\n return this.httpClient.post(searchMARURL, dataObj)\r\n .pipe(\r\n flatMap(res => { \r\n const results = res['Result'].addresses || res['Result'].blocks || res['Result'].intersections;\r\n const firstaddress = results[0].address || results[0].block || results[0].intersection;\r\n const longLat = firstaddress.geometry.coordinates[0] + ',' + firstaddress.geometry.coordinates[1];\r\n const dist = apiConfig.defaultDistance;\r\n const distInMeters = dist * 1609.344; // conversion from mi to meter\r\n const distSearch = `${this.apiURL}?center=${longLat}&radius=${dist}`;\r\n return this.httpClient.get(distSearch).pipe(\r\n map(res => {\r\n const offenderList = this.processOffenders(res.data);\r\n // map params to export - offenders, zone type, and geojson for zone\r\n const mapParams = {\r\n type: 'buffer',\r\n data: {\r\n centerpoint: [firstaddress.geometry.coordinates[1], firstaddress.geometry.coordinates[0]],\r\n distance: distInMeters // set initally - distance in meters\r\n }\r\n };\r\n // set map parameters\r\n this.mapParameters.next(mapParams);\r\n this.setShowingOffenders(offenderList);\r\n return {\r\n offenders: offenderList,\r\n query: {\r\n type: 'distance',\r\n address: firstaddress.properties.FullAddress || firstaddress.properties.FullBlock || firstaddress.properties.FullIntersection,\r\n distance: dist\r\n } \r\n };\r\n }),\r\n retry(1),\r\n catchError(this.errorHandler)\r\n );\r\n }),\r\n retry(1),\r\n catchError(this.errorHandler)\r\n );\r\n }\r\n\r\n public processOffenders(offenderArray: Offender[]): Offender[] {\r\n offenderArray.map(obj => {\r\n obj.addresses = [];\r\n let fieldArray = [\"homeaddresses\", \"workaddresses\", \"schooladdresses\"];\r\n fieldArray.forEach(field => {\r\n obj[field].forEach(add => {\r\n let type = field.replace(\"addresses\", \"\");\r\n type = type.charAt(0).toUpperCase() + type.substr(1).toLowerCase();\r\n add[\"type\"] = type;\r\n add[\"within\"] = true;\r\n });\r\n obj.addresses = obj.addresses.concat(obj[field]);\r\n });\r\n });\r\n this.offenders = offenderArray;\r\n return offenderArray;\r\n }\r\n\r\n public selectFeature(offenderID, addressString?) {\r\n const offenderObj = {\r\n sexoffendercode: offenderID,\r\n address: addressString || null\r\n };\r\n this.selectedOffender.next(offenderObj);\r\n }\r\n\r\n public selectOnMap(address) {\r\n this.mapSelect.next(address);\r\n }\r\n\r\n public setShowingOffenders(offenderArray: Offender[]): void {\r\n // handle changing to geojson format on service side\r\n // allows map to be more portable\r\n const allAddress: any = [];\r\n offenderArray.map((offender) => {\r\n offender[\"addresses\"].forEach(address => {\r\n if (address.location.lon !== 0 && (address[\"within\"])) {\r\n const currentPoints = allAddress.filter(pt => {\r\n if (pt.properties.address === address.blockname) {\r\n return pt;\r\n }\r\n });\r\n if (currentPoints.length > 0) {\r\n currentPoints[0].properties.offenders.push({\r\n sexoffendercode: offender.sexoffendercode,\r\n firstname: offender.firstname,\r\n lastname: offender.lastname,\r\n address_type: address.type,\r\n });\r\n } else {\r\n allAddress.push({\r\n type: 'Feature',\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [address.location.lon, address.location.lat]\r\n },\r\n properties: {\r\n address: address.blockname,\r\n offenders: [{\r\n sexoffendercode: offender.sexoffendercode,\r\n firstname: offender.firstname,\r\n lastname: offender.lastname,\r\n address_type: address.type,\r\n }]\r\n }\r\n });\r\n }\r\n }\r\n });\r\n });\r\n this.showingFeatures.next(allAddress);\r\n }\r\n\r\n /* filter logic */\r\n public getFilter(data): any {\r\n filterConfig.fields.forEach(field => {\r\n let valArray = [];\r\n // map the fields to the data and get all values\r\n data.map(obj =>{\r\n if (field.name.indexOf(\"address.\") > -1) {\r\n let fieldName = field.name.replace(\"address.\", \"\");\r\n obj.addresses.map(add => {\r\n let values = eval(\"add.\" + fieldName);\r\n if (values != null) {\r\n valArray.push(values);\r\n }\r\n return values;\r\n });\r\n } else {\r\n let values = eval(\"obj.\" + field.name);\r\n if (Array.isArray(values)) {\r\n values.forEach(value => {\r\n valArray.push(value);\r\n });\r\n } else {\r\n valArray.push(values);\r\n }\r\n return values;\r\n }\r\n });\r\n // reduce array and set counts of occurances\r\n field[\"choices\"] = Object.values(valArray.reduce((r,s) => {\r\n (!r[s])? r[s] = {choice: s, count: 1} : r[s]['count']+=1;\r\n return r;\r\n }, {}));\r\n });\r\n console.log(filterConfig);\r\n return filterConfig;\r\n }\r\n\r\n public filterResults(filterObj): Offender[] {\r\n let filteredOffenders: Offender[] = [];\r\n // to check for empty search\r\n let emptySearch = true;\r\n\r\n // for each field and choice array in filter object\r\n Object.keys(filterObj).map(key => {\r\n let fieldFiltered: Offender[];\r\n let filteredIDs = [];\r\n if (filterObj[key].length > 0) {\r\n // filtered by this field\r\n fieldFiltered = [];\r\n if (filteredOffenders.length === 0) {\r\n // if first one - allow filter to capture from all\r\n filteredOffenders = JSON.parse(JSON.stringify(this.offenders));\r\n }\r\n // for each choice selected\r\n emptySearch = false;\r\n let filtered = filteredOffenders.filter(offender => {\r\n // check if value\r\n let valueFound = false;\r\n if (key.indexOf(\"address.\") > -1) {\r\n let offenderAddressPresent = false;\r\n offender[\"addresses\"].forEach(add => {\r\n // evaluate for each address if present\r\n let checkingVal = eval(\"add.\" + key.replace(\"address.\", \"\"));\r\n if (checkingVal != null) {\r\n offenderAddressPresent = filterObj[key].indexOf(checkingVal) > -1;\r\n // if present, note on address so can show in map\r\n if (offenderAddressPresent) {\r\n valueFound = true;\r\n add[\"within\"] = true;\r\n } else {\r\n // otherwise set as not in filter\r\n add[\"within\"] = false;\r\n }\r\n }\r\n });\r\n } else {\r\n filterObj[key].forEach(choice => {\r\n // evaluate field object\r\n let checkingVal = eval(\"offender.\" + key);\r\n valueFound = checkingVal.indexOf(choice) > -1;\r\n });\r\n }\r\n\r\n // if not already captured and index of choice is present add\r\n if (valueFound && filteredIDs.indexOf(offender.sexoffendercode) == -1) {\r\n filteredIDs.push(offender.sexoffendercode);\r\n return offender;\r\n }\r\n });\r\n // concat into array of results\r\n fieldFiltered = fieldFiltered.concat(filtered);\r\n filteredOffenders = fieldFiltered;\r\n }\r\n });\r\n // if no filter applied, return all\r\n if (emptySearch) {\r\n filteredOffenders = this.offenders;\r\n }\r\n\r\n this.setShowingOffenders(filteredOffenders);\r\n this.filterValues.next(filterObj);\r\n return filteredOffenders;\r\n }\r\n\r\n clearFilter() {\r\n this.filterValues.next({});\r\n }\r\n /* end filter */\r\n\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n console.log(errorMessage);\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n apiHost: 'https://datagate.dc.gov/sexoffender/open',\r\n marHost: 'https://datagate.dc.gov/mar/open',\r\n csosaHost: 'https://sor.csosa.net'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":"webpack:///"}