{"version":3,"sources":["components/constants/APIConstants.js","buy.gif","page_preload.gif","components/ViewHOC.js","components/GoToTop.js","FE_User.png","components/Form.js","go .gif","SBOM_NEW.png","Shopping_cart.png","Show_fun_eq.png","components/Loading.js","components/Util.js","Cart.png","Actions/index.js","CartUtils.js","components/CartModal.js","components/navbar.js","components/ContactUS.js","components/Faq.js","components/Image.js","components/FunctionalEquivalent.js","components/Details.js","components/ProductList.js","components/PartImages.js","components/PartList.js","components/DescProductList.js","components/DescProductListPrint.js","components/ProductResults.js","components/SpareBOM.js","components/ComponentBOM.js","components/SerialNumberBOM.js","components/PartSurfer.js","components/UserGuide.js","components/Hierarchy.js","components/NewRequest.js","components/GenerateMetrics.js","components/Sbom.js","components/UIDLoader.js","components/CallBack.js","App.js","serviceWorker.js","components/footer.js","components/Header.js","Reducers/cartReducer.js","Reducers/index.js","index.js","components/login.js","components/constants/constants.js"],"names":["BASE_URL","concat","process","GET_COUNTRIES","usertype","GENERIC_SEARCH","searchtext","country","GET_PARTLIST","partNumber","PARTLIST","PRODUCTLIST","productNumber","SERIALNUMBER","serialNumber","FUNCTIONAL","countryCode","FUNCTIONAL_LIST","SERIALWITHPRODUCT","ProductNumber","GET_HIERARCHY","GETHIERARCHYPRODUCT","OID","INSERTFEEDBACK","INSERTPHOTOMETRIC","PartNumber","Flag","CARTMETRIC","Qty","BUYMETRIC","GETSBOM","GETUIDRESPONSE","code","GENERATEREPORT","username","RESPONSEURLUID","tokencallurl","UIDClientID","tokenurlforOAuth","clientvaluesforOAuth","GETGLBURL","REDIRECTUIDURL","GET_DIAGRAMS","module","exports","ViewHOC","WrappedComponent","_Class","WrappedComponentDisplayName","displayName","name","_React$Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","state","resize","setState","isMobile","window","innerWidth","WIDTH_THRESHOULD","_inherits","_createClass","key","value","addEventListener","this","callback","React","createElement","Object","assign","mobileView","props","Component","GoToTop","listenToScroll","document","body","scrollTop","documentElement","getElementById","style","display","goToBtn","scroll","top","left","behavior","Fragment","type","class","id","position","bottom","right","zIndex","border","outline","backgroundcolor","color","cursor","padding","borderradius","fontsize","onClick","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","REACT_API_TOKEN_EXP","Form","FieldName","loading","searchBy","searchyByText","arraySearchBy","topmenuValue","User","getUID","input","urlprod","countryLoading","axios","get","headers","_objectSpread","getAuthHeaderUID","res","data","Body","console","log","error","setusertype","secureLocalStorage","getItem","localStorage","setItem","removeCookie","preventDefault","removeItem","alert","location","href","addNotification","text","notificationSystem","current","message","level","loadData","_this$state","url","dataLoading","onSubmit","SEARCH_MODES","PART","PRODUCT","SEARIAL_NUMBER","SERIAL_WP","FUNCTIONAL_EQUIVALENT","getAuthHeader","response","handleSubmit","_ref","_asyncToGenerator","_callee","event","_context","history","pathname","search","SEARCH_TEXT","SEARCH_BY","_x","getSearchMode","WILD_CHAR","setSearchModeLink","_this$state2","getSearchResult","getSearchResultText","_this2","getURLQueryString","generateToken","setCookie","Cookies","getQueryParam","createRef","dat","map","con","index","CountryCode","CountryName","nextProps","_this3","prevMode","nextMode","prevText","_this4","from","getElementsByClassName","element","innerText","classList","add","remove","_this5","_this$state3","Loading","Login","className","float","Select","options","label","defaultValue","find","onChange","data-toggle","data-width","width","role","Link","to","getLocationObject","placeholder","target","required","NotificationSystem","ref","withRouter","_ref$loading","children","boxSizing","height","textAlign","src","loader","alt","opacity","set","query","qs","parse","searchText","params","encodeURIComponent","join","getURLQueryStringBySearch","queryString","undefined","require","stringify","encodedval","Buffer","toString","config","maxBodyLength","Infinity","request","JSON","expTime","Date","getTime","token","expires","access_token","token1","setCarItems","payload","getStoredCart","getJSON","setStoredCart","cartDetails","sessionStorage","getItemIndex","cartList","_toConsumableArray","item","withStyles","theme","head","backgroundColor","palette","common","black","white","fontSize","TableCell","root","action","hover","TableRow","CartModal","handleModalShowHide","showHide","_this$props","cart","setCartItems","ind","newCart","splice","updateQuantity","qty","Number","_this$props2","truncate","source","size","getRedirectURL","cartQty","URL","entries","_ref2","_slicedToArray","open","columns","dataField","headerStyle","formatter","col","dangerouslySetInnerHTML","__html","prod","row","currentTarget","Container","alignItems","maxWidth","paddingBottom","minWidth","paddingLeft","aria-hidden","Modal","show","dialogClassName","Header","closeButton","onHide","cartItem","idx","Row","Col","marginLeft","borderTop","borderTopStyle","borderTopColor","EnhancedDescription","xs","Footer","BootstrapTable","keyField","striped","connect","cartItems","dispatch","pageRefresh","replace","data-target","aria-controls","aria-expanded","aria-label","aria-haspopup","aria-labelledby","Navbar","marginRight","Accordion","defaultActiveKey","Card","Toggle","as","eventKey","Collapse","rel","Alert","fontfamily","justifyContent","Image","origin","onError","FunctionalEquivalent","_Component","hidden","CsrFlag","TechCourier","RohsCompliant","pagination","paginationFactory","getDesc","mode","wwsnrsinput","serial_no","product_no","user_name","roHS_unit_status","rohs_status_code","ProductName","Details","expandIconRequired","triggered","triggerAll","noGutters","sm","md","lg","xl","FontAwesomeIcon","icon","ProductList","filterData","list","filter","part","indexOf","isDescDisabled","headerAttrs","PartImages","partnumber","handleLoader","useEffect","src2","innerHTML","x","option","_loop","imageexists","exists","PartList","_isMounted","buylink","loadWhereUsed","showModal","imagePath","CheckImageavailability","AddPhotoMetric","part_number","closeModal","path","PrintPhoto","elem","domClone","cloneNode","$printSection","appendChild","print","fetchDetails","prodNumber","partNumbers","post","originalData","newData","modifiedData","showModalFE","partFEData","closeModalFE","handleCartChange","updatedCart","getImage","imageLocation","collapsed","bind","formatExtraData","extra","presentInCart","PartPhotoFlag","CSR","ROHS","FE_MATERIAL","OverlayTrigger","placement","overlay","Tooltip","ExitToAppIcon","BuyLink","buy","OrderFlag","letEnabled","checked","cell","scrollable","Title","for","Button","in","DescProductList","imageName","isLoad","FELoading","Ishide","DescProductListPrint","BackToPreviousPage","parts","isBack","visible","myRef","ProductResults","getDaigramData","diagramItems","showDiaSection","diagramName","diagramPath","PrintFriendlyView","isPrint","generateMetdata","filters","products","category","keyword","techCourier","rohsFilter","rohs","photoFilters","photoFlag","feFilters","FE","temp","count","categoryFilters","_ref3","_ref4","categories","keywordFilters","_ref5","_ref6","catKey","_ref7","_ref8","catValue","keyWords","techCouriers","CSRFlag","product","PART_FE","NOT_APPLICABLE","PRESENT","NOT_PRESENT","PART_PHOTO","fePresent","photoPresent","metadata","itemsCount","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","CategoryName","KeywordName","keyw","filteredData","getPhotoFrame","getCategoryProducts","shouldExpand","status","main","_defineProperty","changeFilters","isMulti","isFlag","selection","isObject","getDiagram","val","GoToLast","scrollHeight","posToScroll","loadComplete","printDiagram","isSbom","SbomText","PipeBomFlag","_this$state$metadata","_this$state$metadata2","_this$state$metadata3","_this$state$metadata4","_this$state$metadata5","_this$state$metadata6","_this$state$metadata7","_this$state$metadata8","_this$state$metadata9","_this$state$metadata10","_this$state$metadata11","_this$state$metadata12","_this$state$metadata13","_this$state$metadata14","_this$state$metadata15","_this$state$metadata16","onLoad","Group","controlId","Label","column","menuPortalTarget","closeMenuOnSelect","onMenuClose","isSearchable","ele","_ref17","_ref18","activeKey","overflow","_ref19","_ref20","variant","isClearable","visibility","_ref21","_ref22","_ref23","_ref24","SpareBOM","isValid","spare_part_no","spare_part_description","spare_enhance_desc","sp_category","sp_techcourier","sp_csrflag","sp_rohs_status_code","ComponentBOM","parent_part_number","part_description","part_serialno","part_quantity","rec","SerialNumberBOM","techCourierFilters","rohsFilters","CSRFilters","spare_part","enableSearchResult","sett","COMPONENT_collapsed","SPARE_collapsed","_this$props$data","unit_configuration","PartSurfer","selectValue","includes","ProdListError","textval","loadDetails","partResults","dataLoaded","productResults","SNResults","FEResults","rest","ProductBOM","SNRProductListsResults","SNRProductLists","Part","wildCharResults","ProductNameList","handleDropdownChange","tabgen1","tabadv1","noData","product_Id","product_Desc","Tabs","TabList","Tab","TabPanel","defaultIndex","Nav","Item","Content","Pane","ListGroup","data-parent","go","Show_fun_eq","FE_User","SBOM_NEW","Shopping_cart","Hierarchy","dataprod","showModalPopup","prodparents","Level1","Level2","Level3","Level4","Level5","Level6","isShowPopup","isShowModal","handleClose","proddatasplit","dt","array","parentItems","split","hierarchyProds","arraycount","hasNodes","textContent","substring","contains","querySelector","click","product_number","product_name","TreeMenu","debounceTime","disableKeyboard","hasSearch","onClickItem","_objectWithoutProperties","_excluded","resetOpenNodesOnDataUpdate","onPopupClose","centered","fontWeight","NewRequest","modalnumber","problemdesc","troubleshootingsteps","installation","nameofcust","email","phonenumber","SelectValue","countryerror","handleChange","evt","RegExp","test","emailvalidation","content","rows","cols","GenerateMetrics","Sbom","ProdNum","productNum","match","PartName","CallBack","urltkn","Code","URLSearchParams","obj","access_token_data","finally","App","tokenexptime","setInterval","Helmet","title","Switch","Route","component","Faq","UserGuide","exact","ContactUS","Boolean","hostname","combineReducers","store","createStore","rootReducer","__REDUX_DEVTOOLS_EXTENSION__","ReactDOM","render","Provider","BrowserRouter","navigator","serviceWorker","ready","registration","unregister","login"],"mappings":";yJAAA,gzBAAO,IAAMA,EAAQ,GAAAC,OAAMC,wCACdC,EAAgB,SAACC,GAAQ,SAAAH,OAAQD,EAAQ,wBAAAC,OAAuBG,IAChEC,EAAiB,SAACC,EAAYC,EAASH,GAAQ,SAAAH,OAAQD,EAAQ,0BAAAC,OAAyBK,EAAU,aAAAL,OAAYM,GAAW,KAAI,cAAAN,OAAaG,IAC1II,EAAe,SAACC,EAAYL,GAAQ,SAAAH,OAAQD,EAAQ,kCAAAC,OAAiCQ,EAAU,cAAAR,OAAaG,IAC5GM,EAAW,SAACD,EAAWF,EAASH,GAAQ,SAAAH,OAAQD,EAAQ,kBAAAC,OAAiBQ,EAAU,aAAAR,OAAYM,GAAW,KAAI,cAAAN,OAAaG,IAC3HO,EAAc,SAACC,EAAeL,EAASH,GAAQ,SAAAH,OAAQD,EAAQ,wBAAAC,OAAuBW,EAAa,aAAAX,OAAYM,GAAW,KAAI,cAAAN,OAAaG,IAC3IS,EAAe,SAACC,EAAcP,EAASH,GAAQ,SAAAH,OAAQD,EAAQ,kCAAAC,OAAiCa,EAAY,aAAAb,OAAYM,GAAW,KAAI,cAAAN,OAAaG,IACpJW,EAAY,SAACN,EAAYO,EAAaZ,GAAQ,SAAAH,OAAQD,EAAQ,kCAAAC,OAAiCQ,EAAU,iBAAAR,OAAgBe,GAAe,KAAI,cAAAf,OAAaG,IACzJa,EAAiB,SAACL,EAAeR,GAAQ,SAAAH,OAAQD,EAAQ,gDAAAC,OAA+CW,EAAa,cAAAX,OAAaG,IAElIc,EAAoB,SAACJ,EAAaK,EAAeZ,EAASH,GAAQ,SAAAH,OAAQD,EAAQ,kCAAAC,OAAiCa,EAAY,mBAAAb,OAAkBkB,EAAa,aAAAlB,OAAYM,GAAW,KAAI,cAAAN,OAAaG,IACtMgB,EAAgB,SAAChB,GAAQ,SAAAH,OAAQD,EAAQ,yCAAAC,OAAwCG,IACjFiB,EAAsB,SAACC,EAAKlB,GAAQ,SAAAH,OAAQD,EAAQ,oCAAAC,OAAmCqB,EAAG,cAAArB,OAAaG,IAEvGmB,EAAiB,WAAH,SAAAtB,OAAYD,EAAQ,sBAClCwB,EAAoB,SAACC,EAAWC,GAAI,SAAAzB,OAAQD,EAAQ,8BAAAC,OAA6BwB,EAAU,UAAAxB,OAASyB,IACpGC,EAAa,SAACF,EAAYG,EAAKF,GAAI,SAAAzB,OAAQD,EAAQ,uBAAAC,OAAsBwB,EAAU,SAAAxB,OAAQ2B,EAAG,UAAA3B,OAASyB,IACvGG,EAAY,SAACJ,GAAU,SAAAxB,OAAQD,EAAQ,sBAAAC,OAAqBwB,IAC5DK,EAAU,SAAClB,EAAeI,EAAaZ,GAAQ,SAAAH,OAAQD,EAAQ,qBAAAC,OAAoBW,EAAa,aAAAX,OAAYe,GAAe,KAAI,cAAAf,OAAaG,IAC5I2B,EAAiB,SAACC,GAAI,SAAA/B,OAAQD,EAAQ,4BACtCiC,EAAiB,SAACC,GAAQ,SAAAjC,OAAQD,EAAQ,iCAAAC,OAAgCiC,IAoC1EC,EAAe,gDAKfC,EAAY,sDAAAnC,OAAyDkC,GACrEE,EAAY,iFACZC,EAAgB,gDAChBC,EAAoB,mGAIpBC,EAAYC,6HAA4FN,EACxGO,EAAa,SAAC9B,GAAa,SAAAX,OAAMD,EAAQ,2BAAAC,OAA0BW,K,wCCrEhF+B,EAAOC,QAAU,kc,kBCAjBD,EAAOC,QAAU,08D,uRCGV,IAAMC,EAAU,SAAAC,GAAqB,IAADC,EAEjCC,EAA8BF,EAAiBG,aAAeH,EAAiBI,MAAQ,YAC7F,OAAAH,EAAA,SAAAI,GAAA,SAAAJ,IAAA,IAAAK,EAAAC,YAAA,KAAAN,GAAA,QAAAO,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAqBK,OArBLP,EAAAQ,EAAA,KAAAb,EAAA,GAAA9C,OAAAwD,KAGII,MAAO,GAAET,EAgBTU,OAAS,WACLV,EAAKW,SAAS,CAAEC,SAAUC,OAAOC,WAAaC,OACjDf,EAAA,OAAAgB,YAAArB,EAAAI,GAAAkB,YAAAtB,EAAA,EAAAuB,IAAA,oBAAAC,MAhBD,WAEIN,OAAOO,iBAAiB,SAAUC,KAAKX,QACvCW,KAAKX,WACR,CAAAQ,IAAA,uBAAAC,MAED,WAEIE,KAAKV,SAAW,SAACF,EAAMa,OAG1B,CAAAJ,IAAA,SAAAC,MAOD,WACI,OACII,IAAAC,cAAC9B,EAAgB+B,OAAAC,OAAA,CACbC,WAAYN,KAAKZ,MAAMG,UACnBS,KAAKO,YA3BzB,CAAqBL,IAAMM,YAChBhC,YAAW,YAAAhD,OAAe+C,EAA2B,KAAAD,I,+OCN9B,IAEhCmC,EAAO,SAAA/B,GAAA,SAAA+B,IAAA,IAAA9B,EAAAC,YAAA,KAAA6B,GAAA,QAAA5B,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAkBJ,OAlBIP,EAAAQ,EAAA,KAAAsB,EAAA,GAAAjF,OAAAwD,KAMP0B,eAAe,WACVC,SAASC,KAAKC,UAAU,KAAQF,SAASG,gBAAgBD,UAAW,IACnEF,SAASI,eAAe,UAAUC,MAAMC,QAAQ,QAIhDN,SAASI,eAAe,UAAUC,MAAMC,QAAQ,QAEvDtC,EAEDuC,QAAQ,WACG1B,OAAO2B,OAAO,CAACC,IAAI,EAAGC,KAAK,EAAEC,SAAS,YAC5C3C,EAAA,OAAAgB,YAAAc,EAAA/B,GAAAkB,YAAAa,EAAA,EAAAZ,IAAA,oBAAAC,MAhBL,WACCN,OAAOO,iBAAiB,SAASC,KAAKU,kBACpC,CAAAb,IAAA,SAAAC,MAgBH,WAiBJ,OACGI,IAAAC,cAAAD,IAAAqB,SAAA,KACHrB,IAAAC,cAAA,SAAOqB,KAAK,SAASC,MAAM,4BAA4BC,GAAI,SAASV,MAlB7C,CACXC,QAAS,OACjBU,SAAU,QACVC,OAAQ,OACRC,MAAO,OACPC,OAAQ,KACRC,OAAQ,OACRC,QAAS,OACTC,gBAAiB,MACjBC,MAAO,QACPC,OAAQ,UACRC,QAAS,OACTC,aAAc,OACdC,SAAU,QAKuEC,QAASvC,KAAKkB,QAASpB,MAAM,mBAvCrG,CAASI,IAAMM,WA6CZC,O,kBChDhBvC,EAAOC,QAAU,8f,kVCCjBqE,EAAA,kBAAAC,GAAA,IAAAC,EAAAD,EAAA,GAAAE,EAAAvC,OAAAwC,UAAAC,EAAAF,EAAAG,eAAAC,EAAA3C,OAAA4C,gBAAA,SAAAN,EAAAD,EAAAE,GAAAD,EAAAD,GAAAE,EAAA7C,OAAAmD,EAAA,mBAAAC,cAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAf,EAAAD,EAAAE,GAAA,OAAAvC,OAAA4C,eAAAN,EAAAD,EAAA,CAAA3C,MAAA6C,EAAAe,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAlB,EAAAD,GAAA,IAAAgB,EAAA,aAAAf,GAAAe,EAAA,SAAAf,EAAAD,EAAAE,GAAA,OAAAD,EAAAD,GAAAE,GAAA,SAAAkB,EAAAnB,EAAAD,EAAAE,EAAAE,GAAA,IAAAI,EAAAR,KAAAG,qBAAAkB,EAAArB,EAAAqB,EAAAX,EAAA/C,OAAA2D,OAAAd,EAAAL,WAAAS,EAAA,IAAAW,EAAAnB,GAAA,WAAAE,EAAAI,EAAA,WAAArD,MAAAmE,EAAAvB,EAAAC,EAAAU,KAAAF,EAAA,SAAAe,EAAAxB,EAAAD,EAAAE,GAAA,WAAAnB,KAAA,SAAA2C,IAAAzB,EAAA0B,KAAA3B,EAAAE,IAAA,MAAAD,GAAA,OAAAlB,KAAA,QAAA2C,IAAAzB,IAAAD,EAAAoB,OAAA,IAAAQ,EAAA,iBAAAC,EAAA,YAAAC,EAAA,YAAAC,EAAA,YAAAV,KAAA,SAAAW,KAAA,SAAAC,KAAA,IAAAC,EAAA,GAAAlB,EAAAkB,EAAAxB,GAAA,8BAAAyB,EAAAxE,OAAAyE,eAAAC,EAAAF,OAAAG,EAAA,MAAAD,OAAAnC,GAAAE,EAAAuB,KAAAU,EAAA3B,KAAAwB,EAAAG,GAAA,IAAAE,EAAAN,EAAA9B,UAAAkB,EAAAlB,UAAAxC,OAAA2D,OAAAY,GAAA,SAAAM,EAAAvC,GAAA,0BAAAwC,SAAA,SAAAzC,GAAAgB,EAAAf,EAAAD,GAAA,SAAAC,GAAA,YAAAyC,QAAA1C,EAAAC,SAAA,SAAA0C,EAAA1C,EAAAD,GAAA,SAAA4C,EAAA1C,EAAAI,EAAAE,EAAAE,GAAA,IAAAE,EAAAa,EAAAxB,EAAAC,GAAAD,EAAAK,GAAA,aAAAM,EAAA7B,KAAA,KAAA+B,EAAAF,EAAAc,IAAAE,EAAAd,EAAAzD,MAAA,OAAAuE,GAAA,iBAAAA,GAAAxB,EAAAuB,KAAAC,EAAA,WAAA5B,EAAA6C,QAAAjB,EAAAkB,SAAAC,MAAA,SAAA9C,GAAA2C,EAAA,OAAA3C,EAAAO,EAAAE,MAAA,SAAAT,GAAA2C,EAAA,QAAA3C,EAAAO,EAAAE,MAAAV,EAAA6C,QAAAjB,GAAAmB,MAAA,SAAA9C,GAAAa,EAAAzD,MAAA4C,EAAAO,EAAAM,MAAA,SAAAb,GAAA,OAAA2C,EAAA,QAAA3C,EAAAO,EAAAE,QAAAE,EAAAc,KAAA,IAAAxB,EAAAI,EAAA,gBAAAjD,MAAA,SAAA4C,EAAAG,GAAA,SAAA4C,IAAA,WAAAhD,GAAA,SAAAA,EAAAE,GAAA0C,EAAA3C,EAAAG,EAAAJ,EAAAE,MAAA,OAAAA,MAAA6C,KAAAC,YAAA,SAAAxB,EAAAxB,EAAAE,EAAAE,GAAA,IAAAE,EAAAsB,EAAA,gBAAApB,EAAAE,GAAA,GAAAJ,IAAAuB,EAAA,MAAAoB,MAAA,mCAAA3C,IAAAwB,EAAA,cAAAtB,EAAA,MAAAE,EAAA,OAAArD,MAAA4C,EAAAiD,MAAA,OAAA9C,EAAA+C,OAAA3C,EAAAJ,EAAAsB,IAAAhB,IAAA,KAAAE,EAAAR,EAAAgD,SAAA,GAAAxC,EAAA,KAAAE,EAAAuC,EAAAzC,EAAAR,GAAA,GAAAU,EAAA,IAAAA,IAAAiB,EAAA,gBAAAjB,GAAA,YAAAV,EAAA+C,OAAA/C,EAAAkD,KAAAlD,EAAAmD,MAAAnD,EAAAsB,SAAA,aAAAtB,EAAA+C,OAAA,IAAA7C,IAAAsB,EAAA,MAAAtB,EAAAwB,EAAA1B,EAAAsB,IAAAtB,EAAAoD,kBAAApD,EAAAsB,SAAA,WAAAtB,EAAA+C,QAAA/C,EAAAqD,OAAA,SAAArD,EAAAsB,KAAApB,EAAAuB,EAAA,IAAAK,EAAAT,EAAAzB,EAAAE,EAAAE,GAAA,cAAA8B,EAAAnD,KAAA,IAAAuB,EAAAF,EAAA8C,KAAApB,EAAA,iBAAAI,EAAAR,MAAAK,EAAA,gBAAA1E,MAAA6E,EAAAR,IAAAwB,KAAA9C,EAAA8C,MAAA,UAAAhB,EAAAnD,OAAAuB,EAAAwB,EAAA1B,EAAA+C,OAAA,QAAA/C,EAAAsB,IAAAQ,EAAAR,OAAA,SAAA2B,EAAArD,EAAAE,GAAA,IAAAE,EAAAF,EAAAiD,OAAA7C,EAAAN,EAAAW,SAAAP,GAAA,GAAAE,IAAAL,EAAA,OAAAC,EAAAkD,SAAA,eAAAhD,GAAAJ,EAAAW,SAAA+C,SAAAxD,EAAAiD,OAAA,SAAAjD,EAAAwB,IAAAzB,EAAAoD,EAAArD,EAAAE,GAAA,UAAAA,EAAAiD,SAAA,WAAA/C,IAAAF,EAAAiD,OAAA,QAAAjD,EAAAwB,IAAA,IAAAiC,UAAA,oCAAAvD,EAAA,aAAA2B,EAAA,IAAAvB,EAAAiB,EAAAnB,EAAAN,EAAAW,SAAAT,EAAAwB,KAAA,aAAAlB,EAAAzB,KAAA,OAAAmB,EAAAiD,OAAA,QAAAjD,EAAAwB,IAAAlB,EAAAkB,IAAAxB,EAAAkD,SAAA,KAAArB,EAAA,IAAArB,EAAAF,EAAAkB,IAAA,OAAAhB,IAAAwC,MAAAhD,EAAAF,EAAA4D,YAAAlD,EAAArD,MAAA6C,EAAA2D,KAAA7D,EAAA8D,QAAA,WAAA5D,EAAAiD,SAAAjD,EAAAiD,OAAA,OAAAjD,EAAAwB,IAAAzB,GAAAC,EAAAkD,SAAA,KAAArB,GAAArB,GAAAR,EAAAiD,OAAA,QAAAjD,EAAAwB,IAAA,IAAAiC,UAAA,oCAAAzD,EAAAkD,SAAA,KAAArB,GAAA,SAAAgC,EAAA9D,GAAA,IAAAD,EAAA,CAAAgE,OAAA/D,EAAA,SAAAA,IAAAD,EAAAiE,SAAAhE,EAAA,SAAAA,IAAAD,EAAAkE,WAAAjE,EAAA,GAAAD,EAAAmE,SAAAlE,EAAA,SAAAmE,WAAAC,KAAArE,GAAA,SAAAsE,EAAArE,GAAA,IAAAD,EAAAC,EAAAsE,YAAA,GAAAvE,EAAAjB,KAAA,gBAAAiB,EAAA0B,IAAAzB,EAAAsE,WAAAvE,EAAA,SAAAuB,EAAAtB,GAAA,KAAAmE,WAAA,EAAAJ,OAAA,SAAA/D,EAAAwC,QAAAsB,EAAA,WAAAS,OAAA,YAAAlC,EAAAtC,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAE,EAAAF,EAAAU,GAAA,GAAAR,EAAA,OAAAA,EAAAyB,KAAA3B,GAAA,sBAAAA,EAAA6D,KAAA,OAAA7D,EAAA,IAAAyE,MAAAzE,EAAA1D,QAAA,KAAAgE,GAAA,EAAAE,EAAA,SAAAqD,IAAA,OAAAvD,EAAAN,EAAA1D,QAAA,GAAA8D,EAAAuB,KAAA3B,EAAAM,GAAA,OAAAuD,EAAAxG,MAAA2C,EAAAM,GAAAuD,EAAAX,MAAA,EAAAW,EAAA,OAAAA,EAAAxG,MAAA4C,EAAA4D,EAAAX,MAAA,EAAAW,GAAA,OAAArD,EAAAqD,KAAArD,GAAA,UAAAmD,iBAAA3D,EAAA,2BAAAgC,EAAA7B,UAAA8B,EAAA3B,EAAAiC,EAAA,eAAAlF,MAAA4E,EAAAf,cAAA,IAAAZ,EAAA2B,EAAA,eAAA5E,MAAA2E,EAAAd,cAAA,IAAAc,EAAAjG,YAAAiF,EAAAiB,EAAAnB,EAAA,qBAAAd,EAAA0E,oBAAA,SAAAzE,GAAA,IAAAD,EAAA,mBAAAC,KAAA0E,YAAA,QAAA3E,QAAAgC,GAAA,uBAAAhC,EAAAjE,aAAAiE,EAAAhE,QAAAgE,EAAA4E,KAAA,SAAA3E,GAAA,OAAAtC,OAAAkH,eAAAlH,OAAAkH,eAAA5E,EAAAgC,IAAAhC,EAAA6E,UAAA7C,EAAAjB,EAAAf,EAAAa,EAAA,sBAAAb,EAAAE,UAAAxC,OAAA2D,OAAAiB,GAAAtC,GAAAD,EAAA+E,MAAA,SAAA9E,GAAA,OAAA6C,QAAA7C,IAAAuC,EAAAG,EAAAxC,WAAAa,EAAA2B,EAAAxC,UAAAS,GAAA,0BAAAZ,EAAA2C,gBAAA3C,EAAAgF,MAAA,SAAA/E,EAAAC,EAAAE,EAAAE,EAAAE,QAAA,IAAAA,MAAAyE,SAAA,IAAAvE,EAAA,IAAAiC,EAAAvB,EAAAnB,EAAAC,EAAAE,EAAAE,GAAAE,GAAA,OAAAR,EAAA0E,oBAAAxE,GAAAQ,IAAAmD,OAAAd,MAAA,SAAA9C,GAAA,OAAAA,EAAAiD,KAAAjD,EAAA5C,MAAAqD,EAAAmD,WAAArB,EAAAD,GAAAvB,EAAAuB,EAAAzB,EAAA,aAAAE,EAAAuB,EAAA7B,GAAA,0BAAAM,EAAAuB,EAAA,qDAAAvC,EAAAkF,KAAA,SAAAjF,GAAA,IAAAD,EAAArC,OAAAsC,GAAAC,EAAA,WAAAE,KAAAJ,EAAAE,EAAAmE,KAAAjE,GAAA,OAAAF,EAAAiF,UAAA,SAAAtB,IAAA,KAAA3D,EAAA5D,QAAA,KAAA2D,EAAAC,EAAAkF,MAAA,GAAAnF,KAAAD,EAAA,OAAA6D,EAAAxG,MAAA4C,EAAA4D,EAAAX,MAAA,EAAAW,EAAA,OAAAA,EAAAX,MAAA,EAAAW,IAAA7D,EAAAsC,SAAAf,EAAApB,UAAA,CAAAwE,YAAApD,EAAAiD,MAAA,SAAAxE,GAAA,QAAAqF,KAAA,OAAAxB,KAAA,OAAAP,KAAA,KAAAC,MAAAtD,EAAA,KAAAiD,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAAzB,IAAAzB,EAAA,KAAAmE,WAAA3B,QAAA6B,IAAAtE,EAAA,QAAAE,KAAA,WAAAA,EAAAoF,OAAA,IAAAlF,EAAAuB,KAAA,KAAAzB,KAAAuE,OAAAvE,EAAAqF,MAAA,WAAArF,GAAAD,IAAAuF,KAAA,gBAAAtC,MAAA,MAAAjD,EAAA,KAAAmE,WAAA,GAAAG,WAAA,aAAAtE,EAAAlB,KAAA,MAAAkB,EAAAyB,IAAA,YAAA+D,MAAAjC,kBAAA,SAAAxD,GAAA,QAAAkD,KAAA,MAAAlD,EAAA,IAAAE,EAAA,cAAAwF,EAAAtF,EAAAE,GAAA,OAAAI,EAAA3B,KAAA,QAAA2B,EAAAgB,IAAA1B,EAAAE,EAAA2D,KAAAzD,EAAAE,IAAAJ,EAAAiD,OAAA,OAAAjD,EAAAwB,IAAAzB,KAAAK,EAAA,QAAAA,EAAA,KAAA8D,WAAA9H,OAAA,EAAAgE,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAA4D,WAAA9D,GAAAI,EAAAF,EAAA+D,WAAA,YAAA/D,EAAAwD,OAAA,OAAA0B,EAAA,UAAAlF,EAAAwD,QAAA,KAAAqB,KAAA,KAAAzE,EAAAR,EAAAuB,KAAAnB,EAAA,YAAAM,EAAAV,EAAAuB,KAAAnB,EAAA,iBAAAI,GAAAE,EAAA,SAAAuE,KAAA7E,EAAAyD,SAAA,OAAAyB,EAAAlF,EAAAyD,UAAA,WAAAoB,KAAA7E,EAAA0D,WAAA,OAAAwB,EAAAlF,EAAA0D,iBAAA,GAAAtD,GAAA,QAAAyE,KAAA7E,EAAAyD,SAAA,OAAAyB,EAAAlF,EAAAyD,UAAA,YAAAnD,EAAA,MAAAmC,MAAA,kDAAAoC,KAAA7E,EAAA0D,WAAA,OAAAwB,EAAAlF,EAAA0D,gBAAAT,OAAA,SAAAxD,EAAAD,GAAA,QAAAE,EAAA,KAAAkE,WAAA9H,OAAA,EAAA4D,GAAA,IAAAA,EAAA,KAAAI,EAAA,KAAA8D,WAAAlE,GAAA,GAAAI,EAAA0D,QAAA,KAAAqB,MAAAjF,EAAAuB,KAAArB,EAAA,oBAAA+E,KAAA/E,EAAA4D,WAAA,KAAA1D,EAAAF,EAAA,OAAAE,IAAA,UAAAP,GAAA,aAAAA,IAAAO,EAAAwD,QAAAhE,MAAAQ,EAAA0D,aAAA1D,EAAA,UAAAE,EAAAF,IAAA+D,WAAA,UAAA7D,EAAA3B,KAAAkB,EAAAS,EAAAgB,IAAA1B,EAAAQ,GAAA,KAAA2C,OAAA,YAAAU,KAAArD,EAAA0D,WAAAnC,GAAA,KAAA4D,SAAAjF,IAAAiF,SAAA,SAAA1F,EAAAD,GAAA,aAAAC,EAAAlB,KAAA,MAAAkB,EAAAyB,IAAA,gBAAAzB,EAAAlB,MAAA,aAAAkB,EAAAlB,KAAA,KAAA8E,KAAA5D,EAAAyB,IAAA,WAAAzB,EAAAlB,MAAA,KAAA0G,KAAA,KAAA/D,IAAAzB,EAAAyB,IAAA,KAAAyB,OAAA,cAAAU,KAAA,kBAAA5D,EAAAlB,MAAAiB,IAAA,KAAA6D,KAAA7D,GAAA+B,GAAA6D,OAAA,SAAA3F,GAAA,QAAAD,EAAA,KAAAoE,WAAA9H,OAAA,EAAA0D,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAkE,WAAApE,GAAA,GAAAE,EAAAgE,aAAAjE,EAAA,YAAA0F,SAAAzF,EAAAqE,WAAArE,EAAAiE,UAAAG,EAAApE,GAAA6B,IAAA8D,MAAA,SAAA5F,GAAA,QAAAD,EAAA,KAAAoE,WAAA9H,OAAA,EAAA0D,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAkE,WAAApE,GAAA,GAAAE,EAAA8D,SAAA/D,EAAA,KAAAG,EAAAF,EAAAqE,WAAA,aAAAnE,EAAArB,KAAA,KAAAuB,EAAAF,EAAAsB,IAAA4C,EAAApE,GAAA,OAAAI,GAAA,MAAA2C,MAAA,0BAAA6C,cAAA,SAAA9F,EAAAE,EAAAE,GAAA,YAAAgD,SAAA,CAAAzC,SAAA2B,EAAAtC,GAAA4D,WAAA1D,EAAA4D,QAAA1D,GAAA,cAAA+C,SAAA,KAAAzB,IAAAzB,GAAA8B,IAAA/B,EAAA,SAAAtD,EAAAuD,EAAAK,EAAAN,GAAA,OAAAM,EAAAyF,YAAAzF,GAAA0F,YAAA/F,EAAAgG,cAAAC,QAAAC,UAAA7F,EAAAN,GAAA,GAAA+F,YAAA9F,GAAA0E,aAAArE,EAAA8F,MAAAnG,EAAAD,IAsBsB,GAAAjH,OAAMC,4xBAAYqN,qBAAjC,IAIDC,EAAI,SAAArK,GAAA,SAAAqK,IAAA,IAAApK,EAAAC,YAAA,KAAAmK,GAAA,QAAAlK,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAkSP,OAlSOP,EAAAQ,EAAA,KAAA4J,EAAA,GAAAvN,OAAAwD,KAERI,MAAQ,CACN4J,UAAW,GACXlN,QAAS,GACTmN,SAAS,EACTC,SAAU,GACVC,cAAe,GACfC,cAAe,GACfC,aAAc,GACd9L,KAAO,GACP+L,KAAO,IACR3K,EA4ED4K,OAAS,SAACC,GAER,IAAIC,EADJ9K,EAAKW,SAAS,CAAEoK,gBAAgB,IAEhCD,EAAUnM,YAAekM,GACzBG,IAAMC,IAAIH,EAAS,CACjBI,QAAOC,YAAA,GACFC,iBAIJvE,MAAK,SAACwE,GACLrL,EAAKW,SAAS,CAAE2K,KAAMD,EAAIC,KAAKC,KAAMR,gBAAgB,IACrDS,QAAQC,IAAIJ,EAAIC,KAAKC,SACpB,SAACG,GACF1L,EAAKW,SAAS,CAAE2K,KAAM,KAAMP,gBAAgB,QAEjD/K,EAED2L,YAAc,WACZ,IAAI7M,EAAW8M,IAAmBC,QAAQ,cACvCjL,WAEc,MAAZ9B,EAEDgN,aAAaC,QAAQ,WAAW,OAIhCD,aAAaC,QAAQ,WAAW,OAKnB,MAAZjN,EAEDgN,aAAaC,QAAQ,WAAW,OAIhCD,aAAaC,QAAQ,WAAW,QAGrC/L,EAEDgM,aAAe,SAAClI,GACdA,EAAEmI,iBACFL,IAAmBM,WAAW,cAC9BlM,EAAKW,SAAS,CAAEgK,KAAM,OACtBwB,MAAM,mBACNtL,OAAOuL,SAASC,KAAO,KACxBrM,EAEDsM,gBAAkB,SAAAC,GACKvM,EAAKwM,mBAAmBC,QAEhCH,gBAAgB,CAC3BI,QAASH,EACTI,MAAO,QACP3J,SAAU,QAEbhD,EAED4M,SAAW,WACT,IAAAC,EAAyC7M,EAAKS,MAAtC4J,EAASwC,EAATxC,UAAWlN,EAAO0P,EAAP1P,QAASoN,EAAQsC,EAARtC,SAC5B,GAAIpN,EAAS,CAEX,IAAI2P,EACJ,OAFA9M,EAAKW,SAAS,CAAEoM,aAAa,IAAQ,kBAAM/M,EAAK4B,MAAMoL,SAAS,SAEvDzC,GACN,KAAK0C,IAAaC,KAAMJ,EAAMxP,YAAS+M,EAAWlN,EAAS2O,aAAaD,QAAQ,aAC9E,MACF,KAAKoB,IAAaE,QAASL,EAAMvP,YAAY8M,EAAWlN,EAAQ2O,aAAaD,QAAQ,aACnF,MACF,KAAKoB,IAAaG,eAElB,KAAKH,IAAaI,UAAWP,EAAMrP,YAAa4M,EAAWlN,EAAS2O,aAAaD,QAAQ,aACvF,MACF,KAAKoB,IAAaK,sBAAuBR,EAAMnP,YAAW0M,EAAWlN,EAAQ2O,aAAaD,QAAQ,aAChG,MACF,QACEiB,EAAM7P,YAAeoN,EAAWlN,EAAS2O,aAAaD,QAAQ,aAGlEb,IAAMC,IAAI6B,EAAK,CACb5B,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,GAELxN,EAAK4B,MAAMoL,SAASQ,EAASlC,KAAKC,KAAOiC,EAASlC,KAAKC,KAAQhB,EAAgB,KAAL,GAAWA,GACrFvK,EAAKW,SAAS,CAAEoM,aAAa,OAC5B,SAACrB,GAEF1L,EAAKW,SAAS,CAAEoM,aAAa,YAIjC/M,EAAKsM,gBAAgB,8BAExBtM,EAqCDyN,aAAY,eAAAC,EAAAC,YAAA9J,IAAA6E,MAAG,SAAAkF,EAAOC,GAAK,IAAAtD,EAAA,OAAA1G,IAAAqB,MAAA,SAAA4I,GAAA,cAAAA,EAAA3E,KAAA2E,EAAAnG,MAAA,OACjB4C,EAAavK,EAAKS,MAAlB8J,SACRsD,EAAM5B,iBACNjM,EAAK4M,WACL5M,EAAK4B,MAAMmM,QAAQ5F,KAAK,CACtB6F,SAAS,GAADnR,OAAKC,KACbmR,OAAO,IAADpR,OAAMqR,IAAW,KAAArR,OAAImD,EAAKS,MAAM4J,WAASxN,OAAG0N,EAAQ,IAAA1N,OAAOsR,IAAS,KAAAtR,OAAI0N,GAAa,MAE3F,wBAAAuD,EAAAxE,UAAAsE,OACH,gBAAAQ,GAAA,OAAAV,EAAAxD,MAAA,KAAA/J,YATW,GASXH,EAEDqO,cAAgB,WAEd,OADqBrO,EAAKS,MAAlB8J,UAEN,KAAK0C,IAAaC,KAAM,MAAO,oBAC/B,KAAKD,IAAaE,QAAS,MAAO,6BAClC,KAAKF,IAAaI,UAAW,MAAO,4BACpC,KAAKJ,IAAaK,sBAAuB,MAAO,0BAChD,KAAKL,IAAaqB,UAAW,MAAO,wBACpC,QAAS,MAAO,2CAEnBtO,EAEDuO,kBAAoB,WAGlB,IAAAC,EAAkDxO,EAAKS,MAA/C8J,EAAQiE,EAARjE,SAAUE,EAAa+D,EAAb/D,cAA2B+D,EAAZ9D,aAC9BH,GAAYE,IAEbzK,EAAKW,SAAS,CAAE6J,cAAexK,EAAKyO,gBAAgBlE,GAAWE,cAAeF,IAC9EvK,EAAKW,SAAS,CAAC+J,aAAe1K,EAAK0O,oBAAoBnE,OAc1DvK,EAEDyO,gBAAkB,SAAClE,GACjB,OAAQA,GACN,KAAK0C,IAAaC,KAAM,MAAO,0BAC/B,KAAKD,IAAaE,QAAS,MAAO,6BAClC,KAAKF,IAAaI,UAAW,MAAO,4BACpC,KAAKJ,IAAaK,sBAAuB,MAAO,0BAChD,KAAKL,IAAaqB,UAAW,MAAO,wBACpC,QAAS,MAAO,iDAEnBtO,EAED0O,oBAAsB,SAACnE,GACrB,OAAQA,GACN,KAAK0C,IAAaC,KAAM,MAAO,OAC/B,KAAKD,IAAaE,QAAS,MAAO,UAClC,KAAKF,IAAaI,UAAW,MAAO,gBACpC,KAAKJ,IAAaK,sBAAuB,MAAO,wBAChD,KAAKL,IAAaqB,UAAW,MAAO,iBACpC,QAAS,MAAO,mBAEnBtO,EAAA,OAAAgB,YAAAoJ,EAAArK,GAAAkB,YAAAmJ,EAAA,EAAAlJ,IAAA,oBAAAC,MApRD,WAAqB,IAADwN,EAAA,KAClBC,cACAC,cAGyC,IAAtC/C,aAAaD,QAAQ,iBAA6D,MAAtCC,aAAaD,QAAQ,gBAElEiD,YAAU,aAAahD,aAAaD,QAAQ,kBAK9CiD,YAAU,aAAc,MACxBhD,aAAaC,QAAQ,eAAe,OAuBrB,cADAH,IAAmBC,QAAQ,gBAGrCM,MAAM,oEACNP,IAAmBM,WAAW,eAGnC7K,KAAKV,SAAS,CACZoK,gBAAgB,EAChB5N,QAAS4R,IAAQ9D,IAAI,eAAiB,KACtCZ,UAAW2E,YAAc3N,KAAKO,MAAOsM,KACrC3D,SAAUyE,YAAc3N,KAAKO,MAAOuM,OAGpC,WACEQ,EAAKlO,MAAM4J,WAAasE,EAAK/B,cAEjCvL,KAAKmL,mBAAqBjL,IAAM0N,YAChC5N,KAAKsK,cAELX,IAAMC,IAAIlO,YAAc+O,aAAaD,QAAQ,aAAc,CACzDX,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GACL,IACI6D,EADS7D,EAAIC,KAAKC,KACP4D,KAAI,SAACC,EAAKC,GACvB,MAAO,CAAEnO,IAAKkO,EAAIE,YAAanO,MAAOiO,EAAIG,gBAE5CZ,EAAKhO,SAAS,CAAE2K,KAAM4D,EAAKnE,gBAAgB,OAC1C,SAACW,GAEFiD,EAAKhO,SAAS,CAAEoK,gBAAgB,OAGtC/I,SAASI,eAAe,MACzB,CAAAlB,IAAA,4BAAAC,MAuGC,SAA0BqO,GAAY,IAADC,EAAA,KAM7BC,EAAWrO,KAAKZ,MAAM8J,SACtBoF,EAAWX,YAAcQ,EAAWrB,KACpCyB,EAAWvO,KAAKZ,MAAM4J,UAGtBkC,EAAOlL,KAAKZ,MAAM4J,UAGnBuF,IAAarD,GAASmD,IAAaC,GACtCtO,KAAKV,SAAS,CAAE4J,SAAUoF,EAAUtF,UAAWkC,IAAQ,WACrDkD,EAAK7N,MAAMoL,SAAS,WAGzB,CAAA9L,IAAA,qBAAAC,MAED,WAAqB,IAAD0O,EAAA,KACAvP,MAAMwP,KACtB9N,SAAS+N,uBAAuB,kBAEtBxJ,SAAQ,SAAAyJ,GACfA,EAAQC,WAAWJ,EAAKpP,MAAMiK,aACjCsF,EAAQE,UAAUC,IAAI,UAGpBH,EAAQE,UAAUE,OAAO,eAG9B,CAAAlP,IAAA,SAAAC,MAsED,WAAU,IAADkP,EAAA,KAEPC,EAA2EjP,KAAKZ,MAAxEsK,EAAcuF,EAAdvF,eAAgBgC,EAAWuD,EAAXvD,YAAa5P,EAAOmT,EAAPnT,QAASmO,EAAIgF,EAAJhF,KAAMZ,EAAY4F,EAAZ5F,aAAkB4F,EAAJ3F,KAElE,OAEEpJ,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC+O,IAAO,CAACjG,QAASS,GAAkBgC,GAClCxL,IAAAC,cAAA,WACED,IAAAC,cAAA,WACAD,IAAAC,cAACgP,IAAK,MACNjP,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,OAAKiP,UAAU,aAEflP,IAAAC,cAAA,OAAKiP,UAAU,YACblP,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,SAAWD,UAAU,qBAqBxClP,IAAAC,cAAA,aAAOD,IAAAC,cAAA,SAAG,yBAERD,IAAAC,cAACmP,IAAM,CAAC5N,GAAG,iBAAiB0N,UAAW,mBACvCG,SAAUtF,GAAQ,IAAI6D,KAAI,SAAChS,EAASkS,GAAK,MAAM,CAC7ClO,MAAOhE,EAAQ+D,IACf2P,MAAO1T,EAAQgE,UAEjB2P,aAAc,CAAED,QAASvF,GAAQ,IAAIyF,MAAK,SAAArM,GAAC,OAAIA,EAAExD,MAAQ/D,MAAY,IAAIgE,OAAS,8BAClF6P,SAAU,SAAC7T,EAASkS,GACdgB,EAAK1P,SAAS,CAAExD,QAASA,EAAQgE,QACjC2N,YAAU,aAAc3R,EAAQgE,OAChC2K,aAAaC,QAAQ,eAAe5O,EAAQgE,aAO1DI,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,OAAKiP,UAAU,YACblP,IAAAC,cAAA,UACED,IAAAC,cAAA,QAAMuB,GAAG,mBAAkB,oBAIjCxB,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,OAAKiP,UAAU,YACblP,IAAAC,cAAA,QAAMuB,GAAG,kBAAiB,2GAE5BxB,IAAAC,cAAA,YAGFD,IAAAC,cAAA,QAAMwL,SAAU3L,KAAKoM,cACrBlM,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKiP,UAAU,eACflP,IAAAC,cAAA,OAAKiP,UAAU,uBAChB7P,WAAUW,IAAAC,cAAA,UAAQqB,KAAK,SAASC,MAAM,yCAAyCmO,cAAY,WAAWC,aAAW,IAC1F3P,IAAAC,cAAA,QAAMsB,MAAM,WAGlCvB,IAAAC,cAAA,UAAQqB,KAAK,SAASR,MAAO,CAAC8O,MAAM,SAAUrO,MAAM,yCAAyCmO,cAAY,WAAWC,aAAW,IACzG3P,IAAAC,cAAA,QAAMsB,MAAM,UACdvB,IAAAC,cAAA,YAAQkJ,IAEVnJ,IAAAC,cAAA,MAAIsB,MAAM,2BAA2BsO,KAAK,OAAOrO,GAAG,cACpDxB,IAAAC,cAAA,MAAIsB,MAAM,QAChBvB,IAAAC,cAAC6P,IAAI,CACHZ,UAAU,gBACVa,GAAIC,YAAkB,KAAMtE,IAAaC,MACzCtJ,QAASvC,KAAKkN,qBACf,SAIDhN,IAAAC,cAAA,MAAIsB,MAAM,QACVvB,IAAAC,cAAC6P,IAAI,CACHZ,UAAU,gBACVa,GAAIC,YAAkB,KAAMtE,IAAaE,SACzCvJ,QAASvC,KAAKkN,qBACf,YAIDhN,IAAAC,cAAA,MAAIsB,MAAM,QACVvB,IAAAC,cAAC6P,IAAI,CACHZ,UAAU,gBACVa,GAAIC,YAAkB,KAAMtE,IAAaI,WACzCzJ,QAASvC,KAAKkN,qBACf,kBAIDhN,IAAAC,cAAA,MAAIsB,MAAM,QACVvB,IAAAC,cAAC6P,IAAI,CACHZ,UAAU,gBACVa,GAAIC,YAAkB,KAAMtE,IAAaK,uBACzC1J,QAASvC,KAAKkN,qBACf,0BAIDhN,IAAAC,cAAA,MAAIsB,MAAM,QACVvB,IAAAC,cAAC6P,IAAI,CACHZ,UAAU,gBACVa,GAAIC,YAAkB,KAAMtE,IAAaqB,WACzC1K,QAASvC,KAAKkN,qBACf,mBAIDhN,IAAAC,cAAA,MAAIsB,MAAM,QACVvB,IAAAC,cAAC6P,IAAI,CAACZ,UAAU,gBAAgBa,GAAIC,cAAqB3N,QAASvC,KAAKkN,qBAAqB,qBAUxGhN,IAAAC,cAAA,SAAOqB,KAAK,OAAO4N,UAAU,8DAA8De,YAAanQ,KAAKgN,gBAAiBlN,MAAOE,KAAKZ,MAAM4J,UAAa2G,SAAU,SAAAnD,GAAK,OAAIwC,EAAK1P,SAAS,CAAE0J,UAAWwD,EAAM4D,OAAOtQ,SAAUuQ,UAAQ,IACxOnQ,IAAAC,cAAA,OAAKiP,UAAU,sBACblP,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,0BAC9BlP,IAAAC,cAAA,KAAGiP,UAAU,qBAgFnBlP,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,WAEFD,IAAAC,cAACmQ,IAAkB,CAACC,IAAKvQ,KAAKmL,6BAngBlC,CAASjL,IAAMM,WA8gBVgQ,gBAAWzH,K,4CCziB1B7K,EAAOC,QAAU,0kB,kBCAjBD,EAAOC,QAAU,00B,kBCAjBD,EAAOC,QAAU,s7B,kBCAjBD,EAAOC,QAAU,8/D,sECAjB,wEAGe,SAAS+Q,EAAO7C,GAAiC,IAADoE,EAAApE,EAA7BpD,eAAO,IAAAwH,GAAQA,EAAEC,EAAQrE,EAARqE,SAC/C,OAUIxQ,IAAAC,cAAA,OAAKa,MAAO,CAAEW,SAAU,WAAYgP,UAAW,eAC1C1H,GAAW/I,IAAAC,cAAA,WACRD,IAAAC,cAAA,OAAKa,MAAO,CACRW,SAAU,WACViP,OAAQ,OACR9O,OAAQ,IACRb,QAAS,QAAS6O,MAAO,OAAQe,UAAW,SAC1CzP,IAAK,QAEPlB,IAAAC,cAAA,OAAK2Q,IAAKC,IAAQC,IAAI,iBAG7B/H,EAAU/I,IAAAC,cAAA,OAAKa,MAAO,CAAEiQ,QAAS,QAC7BP,GACIA,K,gCC5BrB,4WASA,IAMajD,EAAY,SAAC5N,EAAKC,GAC3B4N,IAAQwD,IAAIrR,EAAKC,IAIR6N,EAAgB,SAACpN,EAAOV,GACjC,IAAM+M,EAAShD,cAAIrJ,EAAO,0BAA2B,IAC/C4Q,EAAQC,IAAGC,MAAMzE,GACvB,OAAI/M,EACOsR,EAAMtR,GAENsR,GAIF5D,EAAoB,SAAC+D,EAAYpI,GAC1C,IAAKoI,IAAepI,EAChB,OAAO,KAGX,IAAIqI,EAAS,GAIb,OALAD,EAAWE,mBAAmBF,KAEhBC,EAAOzK,KAAK,GAADtL,OAAIqR,IAAW,KAAArR,OAAIgW,mBAAmBF,KAC/DpI,GAAYqI,EAAOzK,KAAK,GAADtL,OAAIsR,IAAS,KAAAtR,OAAI0N,IAElC,IAAN1N,OAAW+V,EAAOE,KAAK,OAEdC,EAA4B,SAACJ,GACtC,IAAKA,EACD,OAAO,KAEX,IAAIC,EAAS,GAKb,OAJAD,EAAWE,mBAAmBF,KAChBC,EAAOzK,KAAK,GAADtL,OAAIqR,IAAW,KAAArR,OAAI8V,IAGtC,IAAN9V,OAAW+V,EAAOE,KAAK,OAEdvB,EAAoB,SAACoB,EAAYpI,GAC1C,IAAIyI,EAAc,GACbL,GAAepI,IAChByI,EAAc,IAEfL,IAECA,EAAWE,mBAAmBF,IAElC,IAAIC,EAAS,GAIb,OAHAD,GAAcC,EAAOzK,KAAK,GAADtL,OAAIqR,IAAW,KAAArR,OAAI8V,IAC5CpI,GAAYqI,EAAOzK,KAAK,GAADtL,OAAIsR,IAAS,KAAAtR,OAAI0N,IACxCyI,EAAW,IAAAnW,OAAO+V,EAAOE,KAAK,MACvB,CACH9E,SAAS,GAADnR,OAAKC,KACbmR,OAAQ+E,QAAeC,IAIlBpE,EAAe,WAExB,IAlEqBhE,EAkEfG,EAAQkI,EAAQ,IAElB5H,EAAOmH,IAAGU,UAAU,CACxB,WAAc,uBAERC,GAvEevI,EAuEO1L,IAvEUkU,EAAOvD,KAAKjF,EAAO,SAASyI,SAAS,WAyEvEC,EAAS,CACbtM,OAAQ,OACRuM,cAAeC,IACf3G,IAJe5N,IAKfgM,QAAS,CACL,eAAgB,oCAChB,cAAiB,SAAWkI,GAEhC9H,KAAOA,GAGPN,EAAM0I,QAAQH,GACb1M,MAAK,SAAC2G,GACH1B,aAAaC,QAAQ,kBAAkB4H,KAAKR,UAAU3F,EAASlC,OAC/D,IAAIsI,EAAU,IAAIC,MAAK,IAAIA,MAAOC,UAAY,OACxCC,EAAMJ,KAAKR,UAAU3F,EAASlC,MAC9BnK,EAAMwS,KAAKjB,MAAMqB,GACvBhF,IAAQwD,IAAI,YAAY,QAAS,CAC7ByB,QAASJ,IAEbhI,IAAmBG,QAAQ,aAAa5K,EAAM8S,iBAEjDtK,OAAM,SAAC+B,GACJF,QAAQC,IAAIC,OAIP6B,EAAgB,WAGzB,GAAGwB,IAAQ9D,IAAI,aAAa,CACxB,IAAM8I,EAAMnI,IAAmBC,QAAQ,cAEvC,MAAO,CACH,cAAgB,UAADhP,OAAYkX,IAI/BlF,IAEA,IAAMqF,EAAOtI,IAAmBC,QAAQ,cAExC,MAAO,CACH,cAAgB,UAADhP,OAAYqX,KAK1B9I,EAAmB,WAC3B,IAAM2I,EAAQV,EAAOvD,KAAK,GAADjT,OAAIC,qBAAkC,KAAAD,OAAIC,gBAAsCwW,SAAS,UAClH,MAAO,CACJ,cAAgB,SAADzW,OAAWkX,GAC1B,eAAgB,wC,8GCpIxBxU,EAAOC,QAAU,IAA0B,kC,oZCA9B2U,EAAc,SAACC,GAAO,MAAM,CACvCvR,KAAM,iBACNuR,Y,iBCEWC,EAAgB,WAC3B,OAAOtF,IAAQuF,QAHO,YAGc,IAGzBC,EAAgB,SAACC,GAC5BzF,IAAQwD,IAPc,UAOAoB,KAAKR,UAAUqB,IAErCC,eAAe1I,QATO,UASWyI,IAGtBE,EAAe,SAACrX,EAAYsX,GAGrC,IACItF,EAFN,GAAIhS,EAMF,OALSuX,YAAQD,GAAY,IAEvBpO,SAAQ,SAACsO,EAAMvQ,GACfuQ,EAAKxW,aAAehB,IAAYgS,EAAQ/K,MAEvC+K,G,uFCJayF,aAAW,SAACC,GAAK,MAAM,CAC7CC,KAAM,CACJC,gBAAiBF,EAAMG,QAAQC,OAAOC,MACtC7R,MAAOwR,EAAMG,QAAQC,OAAOE,OAE9BpT,KAAM,CACJqT,SAAU,OANUR,CAQpBS,KAEmBT,aAAW,SAACC,GAAK,MAAM,CAC5CS,KAAM,CACJ,qBAAsB,CACpBP,gBAAiBF,EAAMG,QAAQO,OAAOC,WAHrBZ,CAMnBa,KAhBJ,IAkBMC,EAAS,SAAA7V,GACb,SAAA6V,IAAe,IAAD5V,E,MAKV,OALUC,YAAA,KAAA2V,G,EACZ,K,EAAAA,E,kBAAA5V,E,iGAOF6V,oBAAsB,WACpB7V,EAAKW,SAAS,CAAEmV,UAAW9V,EAAKS,MAAMqV,YACvC9V,EAEDkM,WAAa,SAAC7O,GACZ,IAAA0Y,EAA+B/V,EAAK4B,MAA5BoU,EAAID,EAAJC,KAAMC,EAAYF,EAAZE,aACRC,EAAMxB,EAAarX,EAAY2Y,GACrC,GAAIE,GAAO,EAAG,CACZ,IAAIC,EAAUH,GAAQ,GACtBG,EAAQC,OAAOF,EAAK,GACpB1K,QAAQC,IAAI,SAAU0K,GACtBF,EAAaE,GAEf3K,QAAQC,IAAI,UAAWpO,IACxB2C,EAEDqW,eAAiB,SAAChZ,EAAYiZ,GAC5B9K,QAAQC,IACN,QACApO,SACOiZ,SACAC,OAAOD,GACdC,OAAO,QACPA,OAAOD,IAETA,EAAMC,OAAOD,GACb,IAWIxL,EAXJ0L,EAA+BxW,EAAK4B,MAA5BoU,EAAIQ,EAAJR,KAAMC,EAAYO,EAAZP,aACRC,EAAMxB,EAAarX,EAAY2Y,GACjCE,GAAO,IACLI,EAAM,GAAKA,EAAM,IACnBN,EAAKE,GAAKI,IAAMA,GAEhBnK,MAAM,iCACN6J,EAAKE,GAAKI,IAAM,GAElBL,EAAaD,IAGblL,EAAUvM,YAAWlB,EAAYiZ,EAAK,GACpCtL,IAAMC,IAAIH,EAAS,CACfI,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,OACJ,SAAC9B,QAEb1L,EAEDyW,SAAW,SAACC,EAAQC,GAClB,OAAOD,EAAOtW,OAASuW,EAAOD,EAAOrN,MAAM,EAAGsN,EAAO,GAAK,SAAMD,GACjE1W,EAED4W,eAAiB,WACf,IAAQC,EAAY7W,EAAK4B,MAAjBiV,QACRrL,QAAQC,IAAI,KAAMoL,GAClB,IAAIC,EAAI,GAADja,OAAIC,+DAMX,OALAga,EAAG,GAAAja,OAAMia,EAAG,QAAAja,OAAOkS,IAAQ9D,IAAI,eAAiB,MAChDxJ,OAAOsV,QAAQF,GAAStQ,SACtB,SAAAmH,EAAoB2B,GAAK,IAAA2H,EAAAC,YAAAvJ,EAAA,GAAvBrQ,EAAU2Z,EAAA,GAAEV,EAAGU,EAAA,UACdF,EAAG,GAAAja,OAAMia,EAAG,eAAAja,OAAcwS,EAAK,KAAAxS,OAAIQ,EAAU,SAAAR,OAAQwS,EAAK,KAAAxS,OAAIyZ,MAE5DzV,OAAOqW,KAAKJ,EAAK,WApExB9W,EAAKS,MAAQ,CACXqV,UAAU,EACVE,KAAM,IACNhW,EACH,OAAAgB,YAAA4U,EAAA7V,GAAAkB,YAAA2U,EAAA,EAAA1U,IAAA,SAAAC,MAmED,WAAU,IAADwN,EAAA,KACChN,EAAcN,KAAKO,MAAnBD,WACR6J,QAAQC,IAAI,cAAcpK,KAAKO,MAAMoU,MACrC,IAAMmB,EAAU,CACd,CACEC,UAAW,aACX7K,KAAM,cACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,sBACX7K,KAAM,mBACN+K,UAAW,SAACC,GAAG,OACbhW,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQF,MAE1CF,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,MACX7K,KAAM,WACN+K,UAAW,SAACC,EAAKG,EAAMC,EAAKtI,GAAK,OAC/BkI,EACEhW,IAAAC,cAAA,OAAKiP,UAAU,eACblP,IAAAC,cAAA,QAAMiP,UAAU,mBACdlP,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,6BACV7M,QAAS,WACP8T,EAAKpB,IAAM,EAAI,GACb3H,EAAK0H,eACHqB,EAAKrZ,WACLqZ,EAAKpB,IAAM,KAIjB/U,IAAAC,cAAA,KAAGiP,UAAU,mBAGhBlP,IAAAC,cAAA,OAAKwP,SAAU,SAAClN,GACb6K,EAAK0H,eACLqB,EAAKrZ,WACLyF,EAAE8T,cAAczW,SAGpBI,IAAAC,cAACqW,IAAS,CAACxV,MAAO,CAACyV,WAAW,SAAS1U,OAAO,QAAQ2U,SAAS,OAAOC,cAAc,MAAMC,SAAS,MAAMC,YAAY,QACpHR,EAAKpB,MAEN/U,IAAAC,cAAA,QAAMiP,UAAU,mBACdlP,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,6BACV7M,QAAS,WACP8T,EAAKpB,IAAM,EAAI,KACb3H,EAAK0H,eACHqB,EAAKrZ,WACLqZ,EAAKpB,IAAM,KAIjB/U,IAAAC,cAAA,KAAGiP,UAAU,mBAInB,MACJ4G,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,GACX7K,KAAM,SACN+K,UAAY,SAACC,EAAKG,EAAMC,EAAKtI,GAAK,OAE9B9N,IAAAC,cAAA,QACIoC,QAAS,WAAF,OACP+K,EAAKzC,WAAWwL,EAAKrZ,cAGvBkD,IAAAC,cAAA,KACCiP,UAAU,cACV0H,cAAY,WAInBd,YAAa,WACX,MAAO,CAAElG,MAAO,SAItB,OACE5P,IAAAC,cAAA,WACED,IAAAC,cAACD,IAAMqB,SAAQ,KACZjB,EACCJ,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,OACE6Q,IAAI,OACJF,IAAI,8DACJhB,MAAM,KACNc,OAAO,KACPrO,QAAS,WAAF,OAAQ+K,EAAKkH,uBAAuBxT,MAAO,CAACmB,OAAO,aAG5DjC,IAAAC,cAAA,QAAMiP,UAAU,sBAAsB1N,GAAG,iBACrC1B,KAAKO,MAAMoU,MAAQ,IAAI5V,QAG3BmB,IAAAC,cAAC4W,IAAK,CACJC,KAAMhX,KAAKZ,MAAMqV,SACjBa,KAAK,KACL2B,gBAAiB,YAEjB/W,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,EAACC,OAAQpX,KAAKwU,qBACrCtU,IAAAC,cAAA,SAAG,eAELD,IAAAC,cAAC4W,IAAM7M,KAAI,MACPlK,KAAKO,MAAMoU,MAAQ,IAAI5V,OAAS,EAChCmB,IAAAC,cAAAD,IAAAqB,SAAA,KACGvB,KAAKO,MAAMoU,KAAK7G,KAAI,SAACuJ,EAAUC,GAC9B,OACIpX,IAAAC,cAACoX,IAAG,CAAC1X,IAAKyX,GACJpX,IAAAC,cAACoX,IAAG,CAACvW,MAAO,CAAC8O,MAAO,SACpB5P,IAAAC,cAACqX,IAAG,KACJtX,IAAAC,cAAA,OAAKa,MAAO,CAAEyW,WAAY,OAAQ3H,MAAO,SACzC5P,IAAAC,cAAA,MAAIa,MAAO,CAAE0W,UAAW,MAAOC,eAAgB,QAASC,eAAe,UACrE1X,IAAAC,cAAA,OAAKa,MAAO,CAAEiT,SAAU,SAAS/T,IAAAC,cAAA,SAAG,gBAEnCkX,EAASra,eAOdkD,IAAAC,cAACoX,IAAG,CAACvW,MAAO,CAAC8O,MAAO,SAClB5P,IAAAC,cAACqX,IAAG,KACHtX,IAAAC,cAAA,OAAKa,MAAO,CAAEyW,WAAY,OAAQ3H,MAAO,SAExC5P,IAAAC,cAAA,OAAKa,MAAO,CAAEiT,SAAU,SAAS/T,IAAAC,cAAA,SAAG,qBAAqB,IAACD,IAAAC,cAAA,YAC1DD,IAAAC,cAAA,OAAKa,MAAO,CAAEiT,SAAU,SACtB/T,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQiB,EAASQ,yBAGrD3X,IAAAC,cAAA,aAIFD,IAAAC,cAACqX,IAAG,CAACM,GAAI,GACP5X,IAAAC,cAAA,OAAKiP,UAAU,eACblP,IAAAC,cAAA,QAAMiP,UAAU,mBACdlP,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,6BACV7M,QAAS,WACP8U,EAASpC,IAAM,EAAI,GACjB3H,EAAK0H,eACHqC,EAASra,WACTqa,EAASpC,IAAM,KAIrB/U,IAAAC,cAAA,KAAGiP,UAAU,mBAGjBlP,IAAAC,cAAA,OAAKwP,SAAU,SAAClN,GACZ6K,EAAK0H,eACHqC,EAASra,WACTyF,EAAE8T,cAAczW,SAGlBI,IAAAC,cAACqW,IAAS,CAACxV,MAAO,CAACyV,WAAW,SAAS1U,OAAO,QAAQ2U,SAAS,OAAOC,cAAc,MAAMC,SAAS,MAAMC,YAAY,QACpHQ,EAASpC,MAEd/U,IAAAC,cAAA,QAAMiP,UAAU,mBACdlP,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,6BACV7M,QAAS,WACP8U,EAASpC,IAAM,EAAI,KACjB3H,EAAK0H,eACHqC,EAASra,WACTqa,EAASpC,IAAM,KAIrB/U,IAAAC,cAAA,KAAGiP,UAAU,oBAKvBlP,IAAAC,cAACqX,IAAG,KACFtX,IAAAC,cAAA,QACEoC,QAAS,WAAF,OACL+K,EAAKzC,WAAWwM,EAASra,cAG3BkD,IAAAC,cAAA,KACEiP,UAAU,cACV0H,cAAY,eAS1B5W,IAAAC,cAAC4W,IAAMgB,OAAM,KACX7X,IAAAC,cAAA,SACEqB,KAAK,SACL4N,UAAU,kBACVtP,MAAM,YACNyC,QAAS,WAAF,OAAQ+K,EAAKiI,sBAK1BrV,IAAAC,cAAAD,IAAAqB,SAAA,KAAE,gDAMVrB,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,OACE6Q,IAAI,OACJF,IAAI,8DACJhB,MAAM,KACNc,OAAO,KACPrO,QAAS,WAAF,OACL+K,EAAKkH,uBACLxT,MAAO,CAACmB,OAAO,aAGnBjC,IAAAC,cAAA,QAAMiP,UAAU,sBAAsB1N,GAAG,iBACrC1B,KAAKO,MAAMoU,MAAQ,IAAI5V,QAG3BmB,IAAAC,cAAC4W,IAAK,CACJC,KAAMhX,KAAKZ,MAAMqV,SACjBa,KAAK,KACL2B,gBAAiB,YAEjB/W,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,EAACC,OAAQpX,KAAKwU,qBACvCtU,IAAAC,cAAA,SAAG,eAEDD,IAAAC,cAAC4W,IAAM7M,KAAI,MACPlK,KAAKO,MAAMoU,MAAQ,IAAI5V,OAAS,EAChCmB,IAAAC,cAAAD,IAAAqB,SAAA,KACErB,IAAAC,cAACqW,IAAS,KACRtW,IAAAC,cAAC4W,IAAM7M,KAAI,KACXhK,IAAAC,cAAC6X,IAAc,CACXC,SAAS,aAEThO,KAAMjK,KAAKO,MAAMoU,KACjBmB,QAASA,EACToC,SAAO,MAIbhY,IAAAC,cAAC4W,IAAMgB,OAAM,KACX7X,IAAAC,cAAA,SACEqB,KAAK,SACL4N,UAAU,kBACVtP,MAAM,YACNyC,QAAS,WAAF,OAAQ+K,EAAKiI,sBAK1BrV,IAAAC,cAAAD,IAAAqB,SAAA,KAAE,sDA3VT,CAASrB,IAAMM,WAsXf2X,eAdS,SAAC/Y,GACvB,IAAIoW,EAAU,GAEd,OADApW,EAAMuV,KAAKyD,UAAUlT,SAAQ,SAACsO,GAAI,OAAMgC,EAAQhC,EAAKxW,YAAcwW,EAAKyB,OACxEnL,wBAAA,GACK1K,GAAK,IACRuV,KAAMvV,EAAMuV,KAAKyD,UACjB5C,eAIqB,SAAC6C,GAAQ,MAAM,CACtCzD,aAAc,SAACD,GAAI,OAAK0D,EAASvF,EAAY6B,QAGhCwD,CAA2C/Z,YAAQmW,I,QC9YlE,SAAS+D,EAAY9L,GACnBA,EAAM5B,iBACNH,aAAaC,QAAQ,eAAegD,IAAQ9D,IAAI,eAEhDpK,OAAOuL,SAASwN,QAAQ,KAiJXna,mBA7If,SAAgBmC,GAGd,OACGL,IAAAC,cAAA,WAECD,IAAAC,cAAA,OACAiP,UAAU,uCACVpO,MACET,EAAMD,WACF,GACA,CACEuW,YAAa,SAKrB3W,IAAAC,cAAA,UACEiP,UAAU,iBACV5N,KAAK,SACLoO,cAAY,WACZ4I,cAAY,0BACZC,gBAAc,yBACdC,gBAAc,QACdC,aAAW,qBAEXzY,IAAAC,cAAA,QAAMiP,UAAU,yBAElBlP,IAAAC,cAAA,OAAKiP,UAAU,2BAA2B1N,GAAG,0BAC3CxB,IAAAC,cAAA,MAAIiP,UAAU,sBACZlP,IAAAC,cAAA,MAAIiP,UAAU,mBAMrBlP,IAAAC,cAAC6P,IAAI,CAACZ,UAAU,WAAW7M,QAAS+V,GACkE,SAqD/FpY,IAAAC,cAAA,MAAIiP,UAAU,mBAEZlP,IAAAC,cAAC6P,IAAI,CAACZ,UAAU,WAAWa,GAAG,yBAAwB,cAIxD/P,IAAAC,cAAA,MAAIiP,UAAU,qBACZlP,IAAAC,cAAA,KACEiP,UAAU,2BACVpE,KAAK,KACLtJ,GAAG,iBACHqO,KAAK,SACLH,cAAY,WACZgJ,gBAAc,OACdF,gBAAc,SACf,aAGDxY,IAAAC,cAAA,OAAKiP,UAAU,gBAAgByJ,kBAAgB,kBAC7C3Y,IAAAC,cAAC6P,IAAI,CAAEZ,UAAU,gBAAiBa,GAAG,yBAAwB,cAG3D/P,IAAAC,cAAC6P,IAAI,CAAEZ,UAAU,gBAAiBa,GAAG,mBAAkB,8BAGvD/P,IAAAC,cAAC6P,IAAI,CAACZ,UAAU,gBAAgBa,GAAG,yBAAwB,kBAUjE1P,EAAMD,YAAcJ,IAAAC,cAACoU,EAAS,OAGjChU,EAAMD,YAAcJ,IAAAC,cAACoU,EAAS,OAjI2B,O,QCoFjDnW,mBA5Ff,WACE,OACE8B,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,WACGD,IAAAC,cAAC2Y,EAAM,MACR5Y,IAAAC,cAAA,OAAKa,MAAO,CAAE+X,YAAa,SACzB7Y,IAAAC,cAAA,WACAD,IAAAC,cAACgP,IAAK,MACNjP,IAAAC,cAAA,aAGJD,IAAAC,cAACqW,IAAS,KACRtW,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KAC1B/Y,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,uCAGhDnZ,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KAC3BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACRhK,IAAAC,cAAA,SAAG,4BACHD,IAAAC,cAAA,WAAM,sFAGND,IAAAC,cAAA,KACEiQ,OAAO,SACPhB,UAAU,YACVpE,KAAK,kDACLuO,IAAI,sBACJvY,MAAO,CAAEkB,MAAO,UACjB,kBAGDhC,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAG6K,KAAK,0BAA0BoF,OAAO,UACvClQ,IAAAC,cAAA,KAAGa,MAAO,CAAEkB,MAAO,YACjBhC,IAAAC,cAAA,YAAM,MAAiB,4BAG3BD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAG6K,KAAK,+CAA+CoF,OAAO,UAC5DlQ,IAAAC,cAAA,KAAGa,MAAO,CAAEkB,MAAO,YACjBhC,IAAAC,cAAA,YAAM,MAAiB,2BAG3BD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iDAAiDD,IAAAC,cAAA,WACpDD,IAAAC,cAAA,WACAD,IAAAC,cAAA,KACE6K,KAAK,+DACLoF,OAAO,SACPmJ,IAAI,sBACJvY,MAAO,CAAEkB,MAAO,YAEhBhC,IAAAC,cAAA,YAAM,MACND,IAAAC,cAAA,SAAG,wCACDD,IAAAC,cAAA,WACJD,IAAAC,cAAA,WAUAD,IAAAC,cAAC6P,IAAI,CAAChP,MAAO,CAAEkB,MAAO,WAAaqX,IAAI,sBAAsBtJ,GAAG,0BAC9D/P,IAAAC,cAAA,YAAM,MACND,IAAAC,cAAA,SAAG,gDAMbD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACID,IAAAC,cAAC6P,IAAI,CAACZ,UAAU,wBAAwBa,GAAIC,eAAqB,gBAGjEhQ,IAAAC,cAAA,YAEJD,IAAAC,cAAA,iB,SCkGO/B,mBAvLf,WACE,OACE8B,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,WACGD,IAAAC,cAAC2Y,EAAM,MACR5Y,IAAAC,cAAA,OAAKa,MAAO,CAAE+X,YAAa,SACzB7Y,IAAAC,cAAA,WACAD,IAAAC,cAACgP,IAAK,MACNjP,IAAAC,cAAA,aAGJD,IAAAC,cAACqW,IAAS,KACRtW,IAAAC,cAACqZ,IAAK,CAACpK,UAAU,SACflP,IAAAC,cAAA,SAAG,yMAGmE,IACpED,IAAAC,cAAC6P,IAAI,CAACC,GAAG,yBAAwB,gBAAmB,wDAKxD/P,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KAC1B/Y,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,6BAGhDnZ,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KAC3BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACRhK,IAAAC,cAAA,SAAG,2BACHD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,0DAEE,IACLD,IAAAC,cAAA,WACAD,IAAAC,cAAA,KACEa,MAAO,CACLyY,WAAY,eACZnX,SAAU,SAGZpC,IAAAC,cAAA,SAAG,OAAO,iWAKmD,KAE/DD,IAAAC,cAAA,SAAG,8CACHD,IAAAC,cAAA,KACEa,MAAO,CACLyY,WAAY,eACZnX,SAAU,SAGZpC,IAAAC,cAAA,KAAGa,MAAO,CAAEsB,SAAU,SAAU,MAAM,qHAIxCpC,IAAAC,cAAA,SAAG,iDACHD,IAAAC,cAAA,KACEa,MAAO,CACLyY,WAAY,eACZnX,SAAU,SAGZpC,IAAAC,cAAA,KAAGa,MAAO,CAAEsB,SAAU,SAAU,MAAM,oOAIqB,IAC3DpC,IAAAC,cAAC6P,IAAI,CAACC,GAAG,yBAAwB,gBAAmB,uDAGtD/P,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iCACHD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,yCAA0C,IAC7CD,IAAAC,cAAA,KACEa,MAAO,CACLyY,WAAY,eACZnX,SAAU,SAGZpC,IAAAC,cAAA,KAAGa,MAAO,CAAEsB,SAAU,SAAU,MAAM,uHAIxCpC,IAAAC,cAAA,SAAG,mGAIHD,IAAAC,cAAA,KACEa,MAAO,CACLyY,WAAY,eACZnX,SAAU,SAGZpC,IAAAC,cAAA,KAAGa,MAAO,CAAEsB,SAAU,SAAU,MAAM,uVAOtCpC,IAAAC,cAAA,KACE6K,KAAK,kDACLoF,OAAO,WACPhB,UAAU,WACX,cAEI,IAAI,iFAIXlP,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,uCACHD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,+DAGHD,IAAAC,cAAA,KACEa,MAAO,CACLyY,WAAY,eACZnX,SAAU,SAGZpC,IAAAC,cAAA,KAAGa,MAAO,CAAEsB,SAAU,SAAU,MAAM,uMAGgB,IACtDpC,IAAAC,cAAA,SAAG,iBAAiB,4HAEGD,IAAAC,cAAA,SAAG,YAAY,+FAE/BD,IAAAC,cAAA,SAAG,iBAAiB,8HAI7BD,IAAAC,cAAA,SAAG,0FAGE,IACLD,IAAAC,cAAA,KACEa,MAAO,CACLyY,WAAY,eACZnX,SAAU,SAGZpC,IAAAC,cAAA,KAAGa,MAAO,CAAEsB,SAAU,SAAU,MAAM,2jBAUxB,IACdpC,IAAAC,cAAC6P,IAAI,CAACC,GAAG,yBAAwB,sBAM3C/P,IAAAC,cAAA,WACAD,IAAAC,cAAA,YAEFD,IAAAC,cAAA,OAAKa,MAAO,CAACC,QAAS,OAAQyY,eAAgB,WAC5CxZ,IAAAC,cAAA,WACID,IAAAC,cAAC6P,IAAI,CAACZ,UAAU,wBAAwBa,GAAIC,eAAqB,iBAIrEhQ,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,gBC1LO,SAASwZ,EAAKtN,GAAS,IAAPyE,EAAGzE,EAAHyE,IAC3B,OAEQ5Q,IAAAC,cAAA,OAAKiP,UAAU,aACL0B,IAAG,GAAAtV,OAAKgE,OAAOuL,SAAS6O,OAAM,SAAApe,OAAQsV,GACtCE,IAAI,MACJ6I,QAAS,SAACpX,GACRA,EAAE2N,OAAOU,IAAG,GAAAtV,OAAMgE,OAAOuL,SAAS6O,OAAM,oBAAApe,OAAmBsV,M,6KCN/C,IAG9BgJ,GAAoB,SAAAC,GAAA,SAAAD,IAAA,OAAAlb,YAAA,KAAAkb,GAAA3a,GAAA,KAAA2a,EAAAhb,WAAA,OAAAa,YAAAma,EAAAC,GAAAna,YAAAka,EAAA,EAAAja,IAAA,SAAAC,MAEtB,WAEI,IAAA4U,EAA6B1U,KAAKO,MAA1B0J,EAAIyK,EAAJzK,KAAM3J,EAAUoU,EAAVpU,WAERwV,EAAU,CACZ,CACIC,UAAW,aACX7K,KAAM,cACN8K,YAAa,WACT,MAAO,CAAElG,MAAO,SAUxB,CACIiG,UAAW,sBACX7K,KAAM,oBACN+K,UAAW,SAACC,GAAG,OAAKhW,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQF,MAC5DF,YAAa,WACT,MAAO,CAAElG,MAAO,UAGxB,CACIiG,UAAW,UACX7K,KAAM,OACN8K,YAAa,WACT,MAAO,CAAElG,MAAO,QAGc,MAAtCrF,aAAaD,QAAQ,cAAwB,CACzCuL,UAAW,cACX7K,KAAM,eACN8K,YAAa,WACT,MAAO,CAAElG,MAAO,QAEpBkK,QAAQ,GACT,CACCjE,UAAW,cACX7K,KAAM,eACN8K,YAAa,WACT,MAAO,CAAElG,MAAO,SAGxB,CACIiG,UAAW,gBACX7K,KAAM,QACN8K,YAAa,WACT,MAAO,CAAElG,MAAO,UAI5B,OACI5P,IAAAC,cAACD,IAAMqB,SAAQ,KACVjB,EACKJ,IAAAC,cAACD,IAAMqB,SAAQ,MAIR0I,GAAQ,IAAI6D,KAAI,SAAAuI,GAAI,OAAInW,IAAAC,cAACD,IAAMqB,SAAQ,KACpCrB,IAAAC,cAAA,SAAG,wBAA6BkW,EAAKrZ,WACrCkD,IAAAC,cAAA,WAGAD,IAAAC,cAAA,SAAG,6BAEHD,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQC,EAAKwB,uBAC7C3X,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,gBAAqBkW,EAAK4D,QAAQ5D,EAAK4D,QAAQ,QAClD/Z,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,yBAA8BkW,EAAK6D,YAAY7D,EAAK6D,YAAY,QACnEha,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iBAAsBkW,EAAK8D,cAAc9D,EAAK8D,cAAc,QAC/Dja,IAAAC,cAAA,gBAMVD,IAAAC,cAAC6X,IAAc,CAACC,SAAS,aAAahO,KAAMA,EAAM6L,QAASA,EAASoC,SAAO,EAACkC,WAAYnQ,EAAKlL,OAAS,GAAKsb,YAAsBzI,SArF7H,CAASpR,aA4FnBpC,eAAQ0b,I,mBC9FlBQ,GAAU,SAACC,EAAMxH,GACnB,OAAQwH,GAOJ,IAAK,SACD,OAAQra,IAAAC,cAAA,WACH4S,GACD7S,IAAAC,cAAA,WACID,IAAAC,cAAA,OAAKa,MAAO,CAAEkB,MAAO,UAAW,6BAAmE,UAAlC6Q,EAAQyH,YAAYC,UAAwB,YAAc1H,EAAQyH,YAAYC,UAAUva,IAAAC,cAAA,YACzJD,IAAAC,cAAA,OAAKa,MAAO,CAAEkB,MAAO,UAAW,8BAAqE,UAAnC6Q,EAAQyH,YAAYE,WAAyB,YAAc3H,EAAQyH,YAAYE,WAAWxa,IAAAC,cAAA,YAC5JD,IAAAC,cAAA,OAAKa,MAAO,CAAEkB,MAAO,UAAW,2BAAiE,UAAlC6Q,EAAQyH,YAAYG,UAAwB,YAAc5H,EAAQyH,YAAYG,UAAUza,IAAAC,cAAA,YACvJD,IAAAC,cAAA,OAAKa,MAAO,CAAEkB,MAAO,UAAW,2BAA6E,UAA9C6Q,EAAQ6H,iBAAiBC,iBAA+B,YAAc9H,EAAQ6H,iBAAiBC,iBAAiB3a,IAAAC,cAAA,cAI3L,IAAK,UACD,OAAQD,IAAAC,cAAA,YACD4S,GAAW,IAAIhU,OAAS,GACtBmB,IAAAC,cAAA,WACGD,IAAAC,cAAA,OAAKa,MAAO,CAAEkB,MAAO,UAAW,8BAAkC6Q,EAAQ,GAAGrW,cAAeqW,EAAQ,GAAGrW,cAAe,YAAY,IAACwD,IAAAC,cAAA,YACnID,IAAAC,cAAA,OAAKa,MAAO,CAAEkB,MAAO,UAAW,4BAAgC6Q,EAAQ,GAAG+H,YAAa/H,EAAQ,GAAG+H,YAAa,YAAY,IAAC5a,IAAAC,cAAA,gBAStI,SAAS4a,GAAO1O,GAAgE,IAA7DkO,EAAIlO,EAAJkO,KAAMxH,EAAO1G,EAAP0G,QAASiI,EAAkB3O,EAAlB2O,mBAAoBC,EAAS5O,EAAT4O,UAAWC,EAAU7O,EAAV6O,WAC5E,OACIhb,IAAAC,cAAA,OAAKa,MAAO,CAAE4S,gBAAiB,UAAWxR,QAAS,cAC9C4Y,GAAsBE,EACnBhb,IAAAC,cAACoX,IAAG,CAAC4D,WAAW,GACZjb,IAAAC,cAACqX,IAAG,CAACM,GAAI,KAAMsD,GAAI,KAAMC,GAAI,KAAMC,GAAI,KAAMC,GAAI,MAC5CjB,GAAQC,EAAMxH,IAEnB7S,IAAAC,cAACqX,IAAG,CAACM,GAAI,IAAKsD,GAAI,IAAKC,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAEzCrb,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,QAASnN,MAAO,SAAWK,QAAS,WAAQ2Y,GAAYD,KACxEA,EAAY/a,IAAAC,cAACqb,KAAe,CAACC,KAAK,iBAAoBvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,mBAGhFnB,GAAQC,EAAMxH,IC7Cc,IAE/C2I,GAAW,SAAAhd,GACf,SAAAgd,EAAYnb,GAAQ,IAAD5B,E,MAIf,OAJeC,YAAA,KAAA8c,G,EACjB,K,EAAAA,E,EAAA,CAAMnb,G,kBAAN5B,E,iGAUFgd,WAAa,SAACzQ,GACZvM,EAAKW,SAAS,CACZsc,KAAMjd,EAAK4B,MAAM0J,KAAK4R,QAAO,SAACC,GAAI,OAChC5Q,IACI4Q,EAAKpf,cAAcqf,QAAQ7Q,IAAS,GACpC4Q,EAAKhB,YAAYiB,QAAQ7Q,IAAS,SAd1CvM,EAAKS,MAAQ,CACXwc,KAAM,IACNjd,EACH,OAAAgB,YAAA+b,EAAAhd,GAAAkB,YAAA8b,EAAA,EAAA7b,IAAA,oBAAAC,MAED,WACEE,KAAK2b,eACN,CAAA9b,IAAA,SAAAC,MAaD,WAAU,IAADwN,EAAA,KACPoH,EAA6C1U,KAAKO,MAA1C0J,EAAIyK,EAAJzK,KAAM3J,EAAUoU,EAAVpU,WAERwV,GAFkCpB,EAAdsH,eAEV1b,EACZ,CACE,CACE4K,KAAM,IACN6K,UAAU,GACVkG,YAAa,CACXjC,QAAQ,GAEV/D,UAAW,SAACC,EAAKG,EAAMrI,GACrB,OACE9N,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAK3Z,eACxBwD,IAAAC,cAAA,SAAG,yBACHD,IAAAC,cAAA,KACE6K,KAAMuC,YACJ8I,EAAK3Z,cACLkP,IAAaE,SAEfsE,OAAO,SACPmJ,IAAI,uBAEHlD,EAAK3Z,eAERwD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,wBACFkW,EAAKyE,YACN5a,IAAAC,cAAA,WACAD,IAAAC,cAAA,eAMV,CACE,CACE4V,UAAW,gBACX7K,KAAM,eACN+K,UAAW,SAACC,EAAKI,EAAKtI,GAAK,OACzB9N,IAAAC,cAAA,KAAG6K,KAAM0G,YAA0BwE,GAAM9F,OAAO,UAAU8F,KAG9D,CACEH,UAAW,cACX7K,KAAM,iBAId,OACEhL,IAAAC,cAACD,IAAMqB,SAAQ,KAKZvB,KAAKZ,MAAMwc,KAAK7c,OAAS,EAC1BmB,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,OAAKiP,UAAU,YACblP,IAAAC,cAAA,OAAKiP,UAAU,yBACblP,IAAAC,cAAA,SACEqB,KAAK,OACLE,GAAG,SACHjD,KAAK,aACL2Q,UAAU,eACVe,YAAY,uBACZrQ,MAAOE,KAAKZ,MAAMkS,WAClB3B,SAAU,SAACnD,GAAK,OACdc,EAAKhO,SAAS,CAAEgS,WAAY9E,EAAM4D,OAAOtQ,SAE3CuQ,UAAQ,MAIdnQ,IAAAC,cAAA,OAAKiP,UAAU,iBACblP,IAAAC,cAAA,UACE1B,KAAK,cACL2Q,UAAU,wBACV7M,QAAS,WACP+K,EAAKqO,WAAWrO,EAAKlO,MAAMkS,cAE9B,SAEQ,WAETpR,IAAAC,cAAA,UACE1B,KAAK,aACL2Q,UAAU,wBACV7M,QAAS,WACP+K,EAAKqO,aACLrO,EAAKhO,SAAS,CAAEgS,WAAY,OAE/B,WAKLpR,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACED,IAAAC,cAAC6X,IAAc,CACbC,SAAS,gBACThO,KAAMjK,KAAKZ,MAAMwc,KACjB9F,QAASA,EACToC,SAAO,EACPkC,WAAYnQ,EAAKlL,OAAS,GAAKsb,YAAsBzI,MAIrD,wCApIK,CAAS1R,IAAMM,WA0IjBpC,eAAQsd,I,iDC7IR,SAASQ,GAAU7P,GAAqC,IAAlCyE,EAAGzE,EAAHyE,IAAKqL,EAAU9P,EAAV8P,WAAwB9P,EAAZ+P,aAmDpD,OAlCAC,qBAAU,WAER,IAAIC,EAEApR,EAAO,GAKXA,GADAA,EAAOA,EAAO,2CAA+CiR,EAAa,gBAC5D,8CAFPrL,EAAMqL,EAAa,QAE4C,eACtExb,SAASI,eAAe,SAASwb,UAAYrR,EAC7CvK,SAASI,eAAe,UAAUC,MAAMC,QAAU,OAClD,IAAIub,EAAI7b,SAASI,eAAe,YAC5B0b,EAAS9b,SAASR,cAAc,UACpCsc,EAAOvR,KAAOiR,EACdK,EAAE1N,IAAI2N,GACN,IADc,IAAAC,EAAA,SAAAzZ,GAEZqZ,EAAOxL,EAAMqL,EAAa,IAAMlZ,EAAI,OACpC0Z,KAAYL,GAAM,SAAUM,GAC1B,GAAIA,EAAQ,CACV,IAAIJ,EAAI7b,SAASI,eAAe,YAC5B0b,EAAS9b,SAASR,cAAc,UACpCsc,EAAOvR,KAAOiR,EAAa,IAAMlZ,EACjCuZ,EAAE1N,IAAI2N,GACN9b,SAASI,eAAe,UAAUC,MAAMC,QAAU,aAR/CgC,EAAI,EAAGA,EAAI,GAAIA,IAAGyZ,EAAAzZ,KAgB1B,IAID/C,IAAAC,cAAA,OAAKuB,GAAG,QAAQ0N,UAAU,cAAa,iC,uDCpCL,IAEhCyN,GAAQ,SAAAne,GAGZ,SAAAme,IAAe,IAADle,E,MAeyC,OAfzCC,YAAA,KAAAie,G,EACZ,K,EAAAA,E,kBAAAle,E,iGAHFme,YAAa,EAAKne,EAoClBoe,QAAU,SAACtR,EAAKzO,GAEd,IAAIyM,EADJU,QAAQC,IAAIqB,GAEZhC,EAAUrM,YAAUJ,GACpB2M,IAAMC,IAAIH,EAAS,CACjBI,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,OACJ,SAAC9B,OAEN7K,OAAOqW,KAAKpK,EAAK,WAClB9M,EAEDqe,cAAgB,SAAChhB,GACf2C,EAAKW,SAAS,CAAE2J,SAAS,IACzBU,IACGC,IAAI7N,YAAaC,EAAYyO,aAAaD,QAAQ,aAAc,CAC/DX,QAAOC,YAAA,GACFoC,iBAGN1G,MACC,SAACwE,GACC,IAAMC,EAAOD,EAAIC,KAAKC,KACtBvL,EAAKW,SAAS,CAAE2K,OAAMhB,SAAS,OAEjC,SAACoB,QAGP1L,EACAse,UAAY,SAACd,GACX,IAIMe,EAFa,GAAA1hB,OAAMC,8CAGzBkD,EAAKwe,uBAAuBD,GAC5Bve,EAAKye,eAAejB,GACpBxd,EAAKW,SAAS,CAAE+d,YAAalB,EAAYc,WAAW,EAAMC,eAC3Dve,EACD2e,WAAa,WACX3e,EAAKW,SAAS,CAAE2d,WAAW,KAC5Bte,EAEDwe,uBAAyB,SAACI,GACxBZ,KAAYY,GAAM,SAAUX,GACtBA,EACFnS,aAAaC,QAAQ,iBAAkB,OAGvCD,aAAaC,QAAQ,iBAAkB,UAI5C/L,EACDye,eAAiB,SAACjB,GAChB,IACI1S,EADAD,EAAQ2S,EAEZ1S,EAAU1M,YAAkByM,EAAOiB,aAAaD,QAAQ,mBACxDb,IAAMC,IAAIH,EAAS,CACjBI,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,GACLhC,QAAQC,IAAI+B,MACX,SAAC9B,GACFF,QAAQC,IAAIC,OAIlB1L,EACA6e,WAAa,WAEX,IAAIC,EAAO9c,SAASI,eAAe,YAE/B2c,EAAWD,EAAKE,WAAU,GAC1BC,EAAgBjd,SAASI,eAAe,gBACvC6c,KACHA,EAAgBjd,SAASR,cAAc,QACzBuB,GAAK,eACnBf,SAASC,KAAKid,YAAYD,IAE5BA,EAAcrB,UAAYmB,EAASnB,UACnCqB,EAAcrB,UAAYkB,EAAKlB,UAC/BqB,EAAcC,YAAYH,GAC1Ble,OAAOse,QACPnd,SAASI,eAAe,gBAAgBgO,UAE1CpQ,EACAof,aAAe,WAGb,IAAIC,EAAaxM,mBAAmB7S,EAAK4B,MAAM0J,KAAK,GAAGjN,YACnDihB,EAActf,EAAK4B,MAAM0J,KAAK6D,KAAI,SAAA0F,GAEpC,OAAOhC,mBAAmBgC,EAAKxW,eAE3ByO,EAAMjP,YAAgBwhB,EAAYvT,aAAaD,QAAQ,aAC7Db,IAAMuU,KAAKzS,EAAKwS,EAAa,CAC3BpU,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GACL,IAAImU,EAAenU,EAAIC,KAAKC,KAExBkU,EAAUzf,EAAK4B,MAAM0J,KAAK6D,KAAI,SAAC0F,EAAMvQ,GAAC,OAAK7C,OAAOC,OAAO,GAAImT,EAAM2K,EAAalb,OAEpFtE,EAAKW,SAAS,CAAE+e,aAAcD,OAC7B,SAAC/T,GACFF,QAAQC,IAAIC,OAGlB1L,EACA2f,YAAc,SAACnC,GACb,IAAM1Q,EAAMnP,YAAW6f,EAAY,KAAM1R,aAAaD,QAAQ,aAC9Db,IAAMC,IAAI6B,EAAK,CACb5B,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GACLrL,EAAKW,SAAS,CACZgf,aAAa,EACbC,WAAYvU,EAAIC,KAAKC,UAEtB,SAACG,QAEP1L,EACD6f,aAAe,WACb7f,EAAKW,SAAS,CAAEgf,aAAa,KAE/B3f,EACA8f,iBAAmB,SAACjS,EAAOgH,GAEzB,IAAQmB,EAAShW,EAAK4B,MAAdoU,KAER,GAAInI,EAAO,CACT1B,MAAM,4BAADtP,OACyBgY,EAAKxW,WAAU,gCAE7CwW,EAAKyB,IAAM,EACX,IAAMyJ,EAAW,GAAAljB,OAAA+X,YAAQoB,GAAQ,IAAI,CAACnB,IAEtC7U,EAAK4B,MAAMuS,YAAY4L,OAClB,CACL5T,MAAM,4BAADtP,OACyBgY,EAAKxW,WAAU,gCAE7C,IAAM6X,EAAMxB,EAAaG,EAAKxW,WAAY2X,GAC1C,GAAIE,GAAO,EAAG,CACZ,IAAIC,EAAUH,GAAQ,GACtBG,EAAQC,OAAOF,EAAK,GAEpBlW,EAAK4B,MAAMuS,YAAYgC,MAG5BnW,EAGDyd,aAAe,SAACtc,GACdqK,QAAQC,IAAI,aAActK,IAE3BnB,EACDggB,SAAW,SAACnS,GACV,IAAM1M,EAAQ0M,EAAM4D,OAAOtQ,MACrB8e,EAAa,GAAApjB,OAAMC,8CACrByP,EAAO,GAEXA,GADAA,EAAOA,EAAO,2CAA+CvM,EAAKS,MAAMie,YAAc,gBACxE,6CAAiDuB,EAAgB9e,EAAxEoL,mBACPvK,SAASI,eAAe,SAASwb,UAAYrR,GA7M7CvM,EAAKS,MAAQ,CACXuV,KAAM,GACNsI,WAAW,EACXqB,aAAa,EACbxC,KAAM,GACN7S,SAAS,EACT4V,WAAW,EACXR,aAAc,GACdhB,YAAa,IAEf1e,EAAK6e,WAAa7e,EAAK6e,WAAWsB,KAAIngB,GACtCA,EAAK6f,aAAe7f,EAAK6f,aAAaM,KAAIngB,GAC1CA,EAAKoe,QAAUpe,EAAKoe,QAAQ+B,KAAIngB,GAChCA,EAAKye,eAAiBze,EAAKye,eAAe0B,KAAIngB,GAAOA,EACtD,OAAAgB,YAAAkd,EAAAne,GAAAkB,YAAAid,EAAA,EAAAhd,IAAA,oBAAAC,MACD,WACEE,KAAK+d,eACL/d,KAAK8c,YAAa,EAClB,IAAQ7S,EAASjK,KAAKO,MAAd0J,KACRE,QAAQC,IAAI,YAAaH,GACrBA,GAEFjK,KAAKgd,cAAcxL,mBAAmBvH,EAAK,GAAGjN,eAKlD,CAAA6C,IAAA,4BAAAC,MACA,cAEC,CAAAD,IAAA,SAAAC,MAmLD,WAAU,IAADwN,EAAA,KACPoH,EAAsC1U,KAAKO,MAAnC0J,EAAIyK,EAAJzK,KAAM3J,EAAUoU,EAAVpU,WAAYkV,EAAOd,EAAPc,QAC1BhK,EAA4FxL,KAAKZ,MAAzFyf,EAASrT,EAATqT,UAAW5V,EAAOuC,EAAPvC,QAASgU,EAASzR,EAATyR,UAAWC,EAAS1R,EAAT0R,UAAWmB,EAAY7S,EAAZ6S,aAAcC,EAAW9S,EAAX8S,YAAaC,EAAU/S,EAAV+S,WACvEzI,EAAUxV,EACZ,CACA,CACE4K,KAAM,IACN6K,UAAW,GACXkG,YAAa,CACXjC,QAAQ,GAEV+E,gBAAiB,SAAC/iB,GAEhB,QAAOwZ,EAAQxZ,IAEjBia,UAAW,SAACC,EAAKG,EAAMrI,EAAOgR,GAC5B,IAAMC,EAAgBD,EAAM3I,EAAKrZ,YACjC,OACEkD,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAKrZ,YACxBkD,IAAAC,cAAA,SAAG,kBACFkW,EAAK6I,cACJhf,IAAAC,cAACqb,KAAe,CACdC,KAAK,SACLlZ,QAAS,WAAF,OAAQ+K,EAAK2P,UAAU5G,EAAKrZ,eAC/B,QACRkD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,wBACFkW,EAAKrZ,WACNkD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,wBAEHD,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQC,EAAKwB,uBAC7C3X,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,gBACFkW,EAAK8I,IAAM9I,EAAK8I,IAAM,QACvBjf,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iBACFkW,EAAK+I,KACNlf,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,eACFkW,EAAKgJ,YACJnf,IAAAC,cAACmf,KAAc,CACbC,UAAU,OACVC,QAAStf,IAAAC,cAACsf,KAAO,KAAC,0BAClBvf,IAAAC,cAACuf,KAAa,CAACnd,QAAS,WAAF,OAAQ+K,EAAKgR,YAAYjI,EAAKrZ,gBAEpD,QACJkD,IAAAC,cAAA,WAC+B,OAA9BuN,IAAQ9D,IAAI,cACX1J,IAAAC,cAAA,WACmB,MAAhBkW,EAAKsJ,QACJzf,IAAAC,cAAA,KACE6K,KAAK,IACLuO,IAAI,sBACJhX,QAAS,WAAF,OAAQ+K,EAAKyP,QAAQ1G,EAAKsJ,QAAStJ,EAAKrZ,cAE/CkD,IAAAC,cAAA,OAAK2Q,IAAK8O,KAAK5O,IAAI,aAEnB,IAEJ,KACgB,MAAnBqF,EAAKwJ,UACJ3f,IAAAC,cAAA,SAAOqB,KAAK,SACV1B,MAAQmf,EAAgC,mBAAhB,cACxB7P,UAAU,cACV7M,QAAS,WAAF,OACL+K,EAAKmR,kBAAkBQ,EAAe5I,MAKxC,SAMZ,CAEA,CACEN,UAAW,gBACX7K,KAAM,QACN+K,UAAW,SAACC,EAAKI,EAAKtI,GAAK,OACzBkI,EACEhW,IAAAC,cAACqb,KAAe,CACdC,KAAK,SACLlZ,QAAS,WAAF,OAAQ+K,EAAK2P,UAAU3G,EAAItZ,eAElC,MACNgZ,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,YACX7K,KAAM,cACN6T,gBAAiB,SAAC/iB,GAEhB,QAAOwZ,EAAQxZ,IAEjBia,UAAW,SAACC,EAAKI,EAAKtI,EAAOgR,GAE3B7U,QAAQC,IAAI,mBAAoB4U,GAChC,IAAMc,EAAad,EAAM1I,EAAItZ,YAE7B,OADAmN,QAAQC,IAAI,aAAc0V,GACX,MAAR5J,EACLhW,IAAAC,cAAA,SACEqB,KAAK,WACLue,QAASD,EACTnQ,SAAU,SAAClN,GAAC,OAAK6K,EAAKmR,iBAAiBhc,EAAE2N,OAAO2P,QAASzJ,MAG3D,SAGJN,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,aACX7K,KAAM,cACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,sBACX7K,KAAM,cACN+K,UAAW,SAACC,GAAG,OACbhW,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQF,MAE1CF,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,MACX7K,KAAM,MACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,OACX7K,KAAM,OACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,cACX7K,KAAM,KACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,OAElBmG,UAAW,SAAC+J,EAAM3J,EAAMC,EAAKtI,GAC3B,OAAOgS,EACL9f,IAAAC,cAACmf,KAAc,CACbC,UAAU,OACVC,QAAStf,IAAAC,cAACsf,KAAO,KAAC,0BAElBvf,IAAAC,cAACuf,KAAa,CAACnd,QAAS,WAAF,OAAQ+K,EAAKgR,YAAYjI,EAAKrZ,gBAEpD,WAqBZ,OAhBKsD,GAA4C,OAA9BoN,IAAQ9D,IAAI,eAC7BkM,EAAQhP,KAAK,CACXiP,UAAW,UACX7K,KAAM,WACN+K,UAAW,SAACC,EAAKI,GAAG,OAClBJ,EACEhW,IAAAC,cAAA,KAAG6K,KAAK,IAAIuO,IAAI,sBAAsBhX,QAAS,WAAF,OAAQ+K,EAAKyP,QAAQzG,EAAIqJ,QAASrJ,EAAItZ,cACjFkD,IAAAC,cAAA,OAAK2Q,IAAK8O,KAAK5O,IAAI,aAEnB,MACNgF,YAAa,WACX,MAAO,CAAElG,MAAO,SAMpB5P,IAAAC,cAAC+O,IAAO,CAACjG,QAASA,GAChB/I,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC6X,IAAc,CACbC,SAAS,aAEThO,KAAMoU,EACNvI,QAASA,EACToC,SAAO,EACPkC,WAAYnQ,EAAKlL,OAAS,GAAKsb,YAAsBzI,KAGzD1R,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC4W,IAAK,CACJzB,KAAK,KACL2K,YAAU,EACVjJ,KAAMiG,EACN7F,OAAQpX,KAAKsd,YAEbpd,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,GACvBjX,IAAAC,cAAC4W,IAAMmJ,MAAK,KAAC,UAEfhgB,IAAAC,cAAC4W,IAAM7M,KAAI,CAACxI,GAAG,WACbxB,IAAAC,cAAC+b,GAAU,CAACpL,IAAKoM,EAAWf,WAAYnc,KAAKZ,MAAMie,YAAajB,aAAcpc,KAAKoc,aAAa0C,KAAK9e,SAEvGE,IAAAC,cAAC4W,IAAMgB,OAAM,CAAC/W,MAAO,CAAEyV,WAAY,WAAYiD,eAAgB,aAC7DxZ,IAAAC,cAAA,OAAKuB,GAAG,UACNxB,IAAAC,cAAA,OAAKsB,MAAM,oBACTvB,IAAAC,cAAA,OAAKsB,MAAM,uBACTvB,IAAAC,cAAA,QAAMsB,MAAM,mBAAmB0e,IAAI,YAAW,qCAEhDjgB,IAAAC,cAAA,UAAQsB,MAAM,gBAAgBC,GAAG,WAAWiO,SAAU3P,KAAK2e,aAK/Dze,IAAAC,cAACigB,KAAM,CAAC1e,GAAG,QAAQa,QAASvC,KAAKwd,YAAY,YAMnDtd,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC4W,IAAK,CACJzB,KAAK,KAEL2K,YAAU,EACVjJ,KAAMsH,EACNlH,OAAQpX,KAAKwe,cAEbte,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,GACvBjX,IAAAC,cAAC4W,IAAMmJ,MAAK,KAAC,0BAEfhgB,IAAAC,cAAC4W,IAAM7M,KAAI,CAACxI,GAAG,WACbxB,IAAAC,cAAC2Z,GAAoB,CAAC7P,KAAMsU,KAE9Bre,IAAAC,cAAC4W,IAAMgB,OAAM,QAKjB7X,IAAAC,cAAA,WACED,IAAAC,cAACqZ,IAAK,CACJ3Z,IAAK,EACL0C,QAAS,WACP+K,EAAKhO,SAAS,CAAEuf,WAAYA,IAC1B,WACMvR,EAAKlO,MAAMyf,YAAcvR,EAAKlO,MAAM6K,MACtCqD,EAAKhO,SAAS,CAAE2J,SAAS,SAYjC/I,IAAAC,cAAA,OAAKiP,UAAU,OACZpP,KAAKZ,MAAMyf,UACV3e,IAAAC,cAACqb,KAAe,CAACC,KAAK,UAEtBvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,SACtB,oFAKLzb,KAAKZ,MAAM6K,KACV/J,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,OAAKiP,UAAU,QACblP,IAAAC,cAACmZ,KAAQ,CAAC+G,GAAIrgB,KAAKZ,MAAMyf,WACvB3e,IAAAC,cAAA,OAAKiP,UAAU,6BACblP,IAAAC,cAACub,GAAW,CACVM,gBAAgB,EAChB/R,KAAMjK,KAAKZ,MAAM6K,MAAQ,SAMjC,WAtfA,CAAS/J,IAAMM,WA6gBd2X,gBAjBS,SAAC/Y,GACvB,IAAIoW,EAAU,GAEd,OADApW,EAAMuV,KAAKyD,UAAUlT,SAAQ,SAACsO,GAAI,OAAMgC,EAAQhC,EAAKxW,YAAcwW,EAAKyB,OACxEnL,wBAAA,GACK1K,GAAK,IACRuV,KAAMvV,EAAMuV,KAAKyD,UACjB5C,eAGuB,SAAC6C,GAC1B,MAAO,CACLvF,YAAa,SAACgC,GACZuD,EAASvF,EAAYgC,QAKZqD,CAGb/Z,YAAQye,K,gDChhBkC,IAEtCyD,GAAe,SAAA5hB,GACnB,SAAA4hB,IAAe,IAAD3hB,E,MAoBZ,OApBYC,YAAA,KAAA0hB,G,EACZ,K,EAAAA,E,kBAAA3hB,E,iGAgCFof,aAAe,WACb,IAAIC,EAAarf,EAAK4B,MAAM0J,KAAK,GAAGvN,cAChCuhB,EAActf,EAAK4B,MAAM0J,KAAK6D,KAAI,SAAA0F,GACpC,OAAOA,EAAKxW,cAERyO,EAAMjP,YAAgBwhB,EAAYvT,aAAaD,QAAQ,aAC7Db,IAAMuU,KAAKzS,EAAKwS,EAAa,CAC3BpU,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GACL,IAAIoU,EACAD,EAAenU,EAAIC,KAAKC,KAE5BkU,EAAUzf,EAAK4B,MAAM0J,KAAK6D,KAAI,SAAC0F,EAAMvQ,GAAC,OAAK7C,OAAOC,OAAO,GAAImT,EAAM2K,EAAalb,OAEhFtE,EAAKW,SAAS,CAAE+e,aAAcD,OAC7B,SAAC/T,GACFF,QAAQC,IAAIC,OAEjB1L,EAEDse,UAAY,SAACd,GACX,IACMoE,EAAYpE,EADD,OAEXyC,EAAa,GAAApjB,OAAMC,8CACnByhB,EAAY0B,EAElBjgB,EAAKwe,uBAAuByB,EAAgB2B,GAC5C5hB,EAAKye,eAAejB,GACpBxd,EAAKW,SAAS,CAAE2d,WAAW,EAAMC,YAAWsD,QAAQ,EAAMnD,YAAalB,KACxExd,EAEDwe,uBAAyB,SAACI,GACxBZ,KAAYY,GAAM,SAAUX,GACtBA,EACFnS,aAAaC,QAAQ,iBAAkB,OAGvCD,aAAaC,QAAQ,iBAAkB,UAK5C/L,EAED2e,WAAa,WACX3e,EAAKW,SAAS,CAAE2d,WAAW,KAC5Bte,EAED2f,YAAc,SAACnC,GAEbxd,EAAKW,SAAS,CAAEmhB,WAAW,IAC3B,IAAMhV,EAAMnP,YAAW6f,EAAY,KAAM1R,aAAaD,QAAQ,aAC9Db,IAAMC,IAAI6B,EAAK,CACb5B,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GAELrL,EAAKW,SAAS,CAEZgf,aAAa,EACbC,WAAYvU,EAAIC,KAAKC,OAEvBvL,EAAKW,SAAS,CAAEmhB,WAAW,OAC1B,SAACpW,GACF1L,EAAKW,SAAS,CAAEmhB,WAAW,QAGhC9hB,EAEDoe,QAAU,SAACtR,EAAKzO,GAEd,IAAIyM,EAUJ,OAXAU,QAAQC,IAAIqB,GAEZhC,EAAUrM,YAAUJ,GACpB2M,IAAMC,IAAIH,EAAS,CACjBI,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,OACJ,SAAC9B,OAEC7K,OAAOqW,KAAKpK,EAAK,WACzB9M,EAED6f,aAAe,WACb7f,EAAKW,SAAS,CAAEgf,aAAa,KAC9B3f,EAEDye,eAAiB,SAACjB,GAChB,IACI1S,EADAD,EAAQ2S,EAEZ1S,EAAU1M,YAAkByM,EAAOiB,aAAaD,QAAQ,mBACxDb,IAAMC,IAAIH,EAAS,CACjBI,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,GACLhC,QAAQC,IAAI+B,MACX,SAAC9B,GACFF,QAAQC,IAAIC,OAEjB1L,EAED6e,WAAa,WACX,IACIE,EADO/c,SAASI,eAAe,YACf4c,WAAU,GAC1BC,EAAgBjd,SAASI,eAAe,gBACvC6c,KACHA,EAAgBjd,SAASR,cAAc,QACzBuB,GAAK,eACnBf,SAASC,KAAKid,YAAYD,IAG5BA,EAAcrB,UAAY,GAC1BqB,EAAcC,YAAYH,GAC1Ble,OAAOse,QACPnd,SAASI,eAAe,gBAAgBgO,UAIzCpQ,EAED8f,iBAAmB,SAACjS,EAAOgH,GACzBrJ,QAAQC,IAAI,sBAAuBzL,EAAK4B,OACxC,IAAQoU,EAAShW,EAAK4B,MAAdoU,KAER,GADAxK,QAAQC,IAAI,wBAAyBoC,EAAOgH,EAAID,YAAOoB,GAAQ,KAC3DnI,EAAO,CACT1B,MAAM,4BAADtP,OACyBgY,EAAKxW,WAAU,gCAE7CwW,EAAKyB,IAAM,EACX,IAGIxL,EAHEiV,EAAW,GAAAljB,OAAA+X,YAAQoB,GAAQ,IAAI,CAACnB,IACtCrJ,QAAQC,IAAI,MAAOsU,GACnB/f,EAAK4B,MAAMuS,YAAY4L,GAEvBjV,EAAUvM,YAAWsW,EAAKxW,WAAY,EAAG,GACzC2M,IAAMC,IAAIH,EAAS,CACjBI,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,OACJ,SAAC9B,WAGH,CACHS,MAAM,4BAADtP,OACyBgY,EAAKxW,WAAU,gCAE7C,IAAM6X,EAAMxB,EAAaG,EAAKxW,WAAY2X,GAC1C,GAAIE,GAAO,EAAG,CACZ,IAAIC,EAAUH,GAAQ,GACtBG,EAAQC,OAAOF,EAAK,GACpB1K,QAAQC,IAAI,SAAU0K,GACtBnW,EAAK4B,MAAMuS,YAAYgC,MAG5BnW,EAEDyd,aAAe,SAACtc,GACdqK,QAAQC,IAAI,aAActK,GAC1BnB,EAAKW,SAAS,CAAEkhB,OAAQ1gB,KAK1BnB,EAEAggB,SAAW,SAACnS,GACV,IAAM1M,EAAQ0M,EAAM4D,OAAOtQ,MACrB8e,EAAa,GAAApjB,OAAMC,8CACrByP,EAAO,GAEXA,GADAA,EAAOA,EAAO,2CAA+CvM,EAAKS,MAAMie,YAAc,gBACxE,6CAAiDuB,EAAgB9e,EAAxEoL,mBACPvK,SAASI,eAAe,SAASwb,UAAYrR,GAnN7CvM,EAAKS,MAAQ,CACXuV,KAAM,GACNsI,WAAW,EACXqB,aAAa,EACbjB,YAAa,GACbgB,aAAc,GACdE,WAAY,GACZmC,QAAQ,EACRF,QAAQ,EACRC,WAAW,GAIb9hB,EAAKS,MAAQ,CAAEqhB,WAAW,GAC1B9hB,EAAK2e,WAAa3e,EAAK2e,WAAWwB,KAAIngB,GACtCA,EAAK6e,WAAa7e,EAAK6e,WAAWsB,KAAIngB,GACtCA,EAAK6f,aAAe7f,EAAK6f,aAAaM,KAAIngB,GAC1CA,EAAKye,eAAiBze,EAAKye,eAAe0B,KAAIngB,GAC9CA,EACD,OAAAgB,YAAA2gB,EAAA5hB,GAAAkB,YAAA0gB,EAAA,EAAAzgB,IAAA,SAAAC,MAoMD,WAAU,IAADwN,EAAA,KAEPoH,EAAsC1U,KAAKO,MAAnC0J,EAAIyK,EAAJzK,KAAM3J,EAAUoU,EAAVpU,WAAYkV,EAAOd,EAAPc,QAC1BhK,EAAmGxL,KAAKZ,MAAhG8d,EAAS1R,EAAT0R,UAAyBD,GAAFzR,EAAZ6S,aAAuB7S,EAATyR,WAAWqB,EAAW9S,EAAX8S,YAAaC,EAAU/S,EAAV+S,WAA4BkC,GAAVjV,EAANkV,OAAclV,EAANgV,OAAiBhV,EAATiV,WAC/E3K,EAAUxV,EACZ,CACA,CACE4K,KAAM,IACN6K,UAAW,GACXkG,YAAa,CACXjC,QAAQ,GAEV+E,gBAAiB,SAAC/iB,GAEhB,QAAOwZ,EAAQxZ,IAEjBia,UAAW,SAACC,EAAKG,EAAMrI,EAAOgR,GAC5B,IAAMC,EAAgBD,EAAM3I,EAAKrZ,YACjC,OAEEkD,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAKrZ,YACxBkD,IAAAC,cAAA,SAAG,kBACFkW,EAAK6I,cACJhf,IAAAC,cAACqb,KAAe,CACdC,KAAK,SACLlZ,QAAS,WAAF,OAAQ+K,EAAK2P,UAAU5G,EAAKrZ,aAAagE,MAAO,CAAEmB,OAAQ,aAC7D,QACRjC,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,wBACFkW,EAAKrZ,WACNkD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,6BACHD,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQC,EAAKwB,uBAG7C3X,IAAAC,cAAA,SAAG,gBACFkW,EAAK4D,QAAU5D,EAAK4D,QAAU,QAC/B/Z,IAAAC,cAAA,WAC6C,MAA5CoK,KAAmBC,QAAQ,cAAwB,GAAKtK,IAAAC,cAAA,SAAG,yBACf,MAA5CoK,KAAmBC,QAAQ,cAAwB,GAAK6L,EAAK6D,YAAc7D,EAAK6D,YAAc,QAClD,MAA5C3P,KAAmBC,QAAQ,cAAwB,GAAKtK,IAAAC,cAAA,WACzDD,IAAAC,cAAA,SAAG,iBACFkW,EAAK8D,cAAgB9D,EAAK8D,cAAgB,QAC3Cja,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,eACFkW,EAAKgJ,YACJnf,IAAAC,cAACmf,KAAc,CACbC,UAAU,OACVC,QAAStf,IAAAC,cAACsf,KAAO,KAAC,0BAClBvf,IAAAC,cAACuf,KAAa,CAACnd,QAAS,WAAF,OAAQ+K,EAAKgR,YAAYjI,EAAKrZ,aAAagE,MAAO,CAAEmB,OAAQ,cAElF,QACJjC,IAAAC,cAAA,WAC+B,OAA9BuN,IAAQ9D,IAAI,cACX1J,IAAAC,cAAA,WAMmB,MAAhBkW,EAAKsJ,QACJzf,IAAAC,cAAA,KAAG6K,KAAK,IAAIuO,IAAI,sBAAsBhX,QAAS,WAAF,OAAQ+K,EAAKyP,QAAQ1G,EAAKsJ,QAAStJ,EAAKrZ,cACnFkD,IAAAC,cAAA,OAAK2Q,IAAK8O,KAAK5O,IAAI,aAEnB,IAEJ,KACgB,MAAnBqF,EAAKwJ,UACJ3f,IAAAC,cAAA,SAAOqB,KAAK,SACV1B,MAAQmf,EAAgC,mBAAhB,cACxB7P,UAAU,cACV7M,QAAS,WAAF,OACL+K,EAAKmR,kBAAkBQ,EAAe5I,MAKxC,SAQZ,CACA,CACEN,UAAW,gBACX7K,KAAM,QACN+K,UAAW,SAACC,EAAKI,EAAKtI,GAAK,OACzBkI,EACEhW,IAAAC,cAACqb,KAAe,CACdC,KAAK,SACLlZ,QAAS,WAAF,OAAQ+K,EAAK2P,UAAU3G,EAAItZ,aAAagE,MAAO,CAAEmB,OAAQ,aAEhE,MACN6T,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,YACX7K,KAAM,cACN6T,gBAAiB,SAAC/iB,GAEhB,QAAOwZ,EAAQxZ,IAEjBia,UAAW,SAACC,EAAKI,EAAKtI,EAAOgR,GAC3B,IAAMc,EAAad,EAAM1I,EAAItZ,YAC7B,MAAe,MAARkZ,EACLhW,IAAAC,cAAA,SACEqB,KAAK,WACLue,QAASD,EACTnQ,SAAU,SAAClN,GAAC,OAAK6K,EAAKmR,iBAAiBhc,EAAE2N,OAAO2P,QAASzJ,IAAMtV,MAAO,CAAEmB,OAAQ,aAGlF,SAGJ6T,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,aACX7K,KAAM,cACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,sBACX7K,KAAM,oBACN+K,UAAW,SAACC,GAAG,OACbhW,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQF,MAE1CF,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,UACX7K,KAAM,OACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGwB,MAA5CvF,KAAmBC,QAAQ,cAAwB,CACjDuL,UAAW,cACX7K,KAAM,eACN8O,QAAQ,EACRhE,YAAa,WACX,MAAO,CAAElG,MAAO,QAEhB,CACFiG,UAAW,cACX7K,KAAM,eACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,gBACX7K,KAAM,OACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,cACX7K,KAAM,MACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,OAGlBmG,UAAW,SAACC,EAAKG,EAAMC,EAAKtI,GAC1B,OAAOkI,EACLhW,IAAAC,cAACmf,KAAc,CACbC,UAAU,OACVC,QAAStf,IAAAC,cAACsf,KAAO,KAAC,0BAElBvf,IAAAC,cAACuf,KAAa,CAACnd,QAAS,WAAF,OAAQ+K,EAAKgR,YAAYjI,EAAKrZ,aAAagE,MAAO,CAAEmB,OAAQ,cAElF,WA2BZ,OArBK7B,GAA4C,OAA9BoN,IAAQ9D,IAAI,eAC7BkM,EAAQf,OAAO,EAAG,EAAG,CACnBgB,UAAW,UACX7K,KAAM,eACN+K,UAAW,SAACC,EAAKI,EAAKtI,GAAK,OACzBkI,EACEhW,IAAAC,cAAA,KACE6K,KAAK,IACLuO,IAAI,sBACJhX,QAAS,WAAF,OAAQ+K,EAAKyP,QAAQzG,EAAIqJ,QAASrJ,EAAItZ,cAE7CkD,IAAAC,cAAA,OAAK2Q,IAAK8O,KAAK5O,IAAI,aAGrB,SACJgF,YAAa,WACX,MAAO,CAAElG,MAAO,SAMpB5P,IAAAC,cAAA,WACED,IAAAC,cAACD,IAAMqB,SAAQ,KAYbrB,IAAAC,cAAC6X,IAAc,CACbC,SAAS,aACThO,KAAMA,EAEN6L,QAASA,EACToC,SAAO,IAKThY,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC4W,IAAK,CACJzB,KAAK,KAGL2K,YAAU,EACVjJ,KAAMiG,EACN7F,OAAQpX,KAAKsd,YAEbpd,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,GACvBjX,IAAAC,cAAC4W,IAAMmJ,MAAK,KAAC,UAEfhgB,IAAAC,cAAC4W,IAAM7M,KAAI,CAACxI,GAAG,WAMbxB,IAAAC,cAAC+b,GAAU,CAACpL,IAAKoM,EAAWf,WAAYnc,KAAKZ,MAAMie,YAAajB,aAAcpc,KAAKoc,aAAa0C,KAAK9e,SAEvGE,IAAAC,cAAC4W,IAAMgB,OAAM,CAAC/W,MAAO,CAAEyV,WAAY,WAAYiD,eAAgB,aAC7DxZ,IAAAC,cAAA,OAAKuB,GAAG,UACNxB,IAAAC,cAAA,OAAKsB,MAAM,oBACTvB,IAAAC,cAAA,OAAKsB,MAAM,uBACTvB,IAAAC,cAAA,QAAMsB,MAAM,mBAAmB0e,IAAI,YAAW,qCAEhDjgB,IAAAC,cAAA,UAAQsB,MAAM,gBAAgBC,GAAG,WAAWiO,SAAU3P,KAAK2e,aAK/Dze,IAAAC,cAACigB,KAAM,CAAC1e,GAAG,QAAQa,QAASvC,KAAKwd,YAAY,YAOnDtd,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC+O,IAAO,CAACjG,QAASwX,GAChBvgB,IAAAC,cAAC4W,IAAK,CACJzB,KAAK,KAEL2K,YAAU,EACVjJ,KAAMsH,EACNlH,OAAQpX,KAAKwe,cAEbte,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,GACvBjX,IAAAC,cAAC4W,IAAMmJ,MAAK,KAAC,0BAEfhgB,IAAAC,cAAC4W,IAAM7M,KAAI,CAACxI,GAAG,WACbxB,IAAAC,cAAC2Z,GAAoB,CAAC7P,KAAMsU,KAE9Bre,IAAAC,cAAC4W,IAAMgB,OAAM,eAzfR,CAAS7X,IAAMM,WAyhBrB2X,gBAjBS,SAAC/Y,GACvB,IAAIoW,EAAU,GAEd,OADApW,EAAMuV,KAAKyD,UAAUlT,SAAQ,SAACsO,GAAI,OAAMgC,EAAQhC,EAAKxW,YAAcwW,EAAKyB,OACxEnL,wBAAA,GACK1K,GAAK,IACRuV,KAAMvV,EAAMuV,KAAKyD,UACjB5C,eAIuB,SAAC6C,GAC1B,MAAO,CACLvF,YAAa,SAACgC,GACZuD,EAASvF,EAAYgC,QAIZqD,CAGb/Z,YAAQkiB,KC3iBsB,IAG1BK,GAAoB,SAAAjiB,GACtB,SAAAiiB,IAAe,IAADhiB,E,MAQuB,OARvBC,YAAA,KAAA+hB,G,EACV,K,EAAAA,E,kBAAAhiB,E,iGAsCAiiB,mBAAsB,WACrBjiB,EAAKW,SAAS,CAAC2J,SAAQ,IACvB,IAAI+U,EAAarf,EAAK4B,MAAM0J,KAAK,GAAGvN,cAC9B+O,EAAMvP,YAAY8hB,EAAWvT,aAAaD,QAAQ,aACxDb,IAAMC,IAAI6B,EAAK,CACd5B,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,GAENxN,EAAKW,SAAS,CAACuhB,MAAO1U,EAASlC,KAAKC,OACpCvL,EAAKW,SAAS,CAACwhB,QAAO,EACrB7X,SAAQ,OAEP,SAACoB,QApDN1L,EAAKS,MAAQ,CACX0hB,QAAQ,EACRD,MAAO,GACP5X,SAAS,EACT8X,SAAQ,GAENpiB,EAAKqiB,MAAM9gB,IAAM0N,YAAYjP,EAChC,OAAAgB,YAAAghB,EAAAjiB,GAAAkB,YAAA+gB,EAAA,EAAA9gB,IAAA,SAAAC,MAiDL,WACC,IAADwN,EAAA,KACIoH,EAA4B1U,KAAKO,MAAzB0J,EAAIyK,EAAJzK,KAAK3J,EAAUoU,EAAVpU,WACbkL,EAAmCxL,KAAKZ,MAAhC0hB,EAAMtV,EAANsV,OAAO7X,EAAOuC,EAAPvC,QAGT6M,GAHwBtK,EAAPuV,QAGNzgB,EACd,CACD,CACE4K,KAAM,IACN6K,UAAW,GACXkG,YAAa,CACXjC,QAAQ,GAEV/D,UAAW,SAACC,EAAKG,EAAMrI,GACrB,OACE9N,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAKrZ,YACxBkD,IAAAC,cAAA,SAAG,wBACAkW,EAAKrZ,WACRkD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,wBACHD,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQC,EAAKwB,uBAC7C3X,IAAAC,cAAA,SAAG,gBACFkW,EAAK4D,QACN/Z,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iBACFkW,EAAK8D,cACNja,IAAAC,cAAA,eAMP,CAAE,CACG4V,UAAW,aACX7K,KAAM,cACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,sBACX7K,KAAM,oBACN+K,UAAW,SAACC,GAAG,OACbhW,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQF,MAE1CF,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,UACX7K,KAAM,OACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGwB,MAA5CvF,KAAmBC,QAAQ,cAAwB,CACjDuL,UAAW,cACX7K,KAAM,eACN8O,QAAQ,EACRhE,YAAa,WACX,MAAO,CAAElG,MAAO,QAEhB,CACFiG,UAAW,cACX7K,KAAM,eACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,gBACX7K,KAAM,OACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,UAKpB,OACKgR,EACC5gB,IAAAC,cAAC8gB,GAAc,CAAChX,KAAMjK,KAAKZ,MAAMyhB,QAG7B3gB,IAAAC,cAAA,WAEAD,IAAAC,cAAC+O,IAAO,CAACjG,QAASA,IAE1B/I,IAAAC,cAACD,IAAMqB,SAAQ,KAChBrB,IAAAC,cAAA,OAAKiP,UAAU,sBACZlP,IAAAC,cAACigB,KAAM,CAAChR,UAAU,wBAAwB7M,QAAS,WAAF,OAAQ+K,EAAKsT,uBAAuB,gBAEvF1gB,IAAAC,cAAA,WACAD,IAAAC,cAAC6X,IAAc,CACfC,SAAS,aACThO,KAAMA,EACN6L,QAASA,EACToC,SAAO,UA7JG,CAAShY,IAAMM,WA8KzBpC,eAAQuiB,ICtKxB,IAUMM,GAAc,SAAAviB,GAChB,SAAAuiB,IAAe,IAADtiB,E,MAqBT,OArBSC,YAAA,KAAAqiB,G,EACV,K,EAAAA,E,kBAAAtiB,E,iGA4CJuiB,eAAiB,WACb,IAAIlD,EAAarf,EAAK4B,MAAM0J,KAAK,GAAGvN,cAChC+O,EAAMxN,YAAa+f,GAEvBrU,IAAMC,IAAI6B,EAAK,CACX5B,QAAOC,YAAA,GACAoC,iBAGN1G,MAAK,SAACwE,GACHrL,EAAKW,SAAS,CAAE6hB,aAAcnX,EAAIC,KAAKlL,SACnCiL,EAAIC,KAAKlL,OAAS,IAClBJ,EAAKW,SAAS,CAAE8hB,gBAAgB,IAChCpX,EAAIC,KAAK6D,KAAI,SAACC,EAAKC,GACf,IAAIwO,EAAI7b,SAASI,eAAe,SAC5B0b,EAAS9b,SAASR,cAAc,UACpCsc,EAAOvR,KAAO6C,EAAIsT,YAClB5E,EAAO3c,MAAQiO,EAAIuT,YACnB9E,EAAE1N,IAAI2N,UAKf,SAACpS,GACAF,QAAQC,IAAIC,OAKvB1L,EAQD4iB,kBAAoB,WAChB5iB,EAAKW,SAAS,CAAEkiB,SAAS,EAAMlhB,YAAY,KAE9C3B,EAGD8iB,gBAAkB,WACd,IAAAjW,EAA8B7M,EAAKS,MAA3BsiB,EAAOlW,EAAPkW,QAASC,EAAQnW,EAARmW,SACTC,EAAkGF,EAAlGE,SAAUC,EAAwFH,EAAxFG,QAASC,EAA+EJ,EAA/EI,YAAmBC,EAA4DL,EAAlEM,KAAkB7C,EAAgDuC,EAAhDvC,IAAgB8C,EAAgCP,EAA3CQ,UAA6BC,EAAcT,EAAlBU,GAGpFC,EAAO,GACPC,EAAQ,EAERC,EAAkBX,GAAY,GAClCxhB,OAAOsV,QAAQiM,GAAY,IAAI9F,QAAO,SAAAxP,GAAA,IAAAsJ,EAAAC,YAAAvJ,EAAA,GAAExM,EAAG8V,EAAA,GAAOA,EAAA,UAAiC,IAA3B4M,EAAgBxjB,SAAmD,IAAlCwjB,EAAgBxG,QAAQlc,MAAcqF,SAAQ,SAAAsd,EAAexU,GAAW,IAADyU,EAAA7M,YAAA4M,EAAA,GAAvB3iB,EAAG4iB,EAAA,GAAE3iB,EAAK2iB,EAAA,GAC3IC,EAAaL,EAAKT,UAAY,GAC9Be,EAAiBd,GAAW,GAEhCzhB,OAAOsV,QAAQ5V,GAAO+b,QAAO,SAAA+G,GAAA,IAAAC,EAAAjN,YAAAgN,EAAA,GAAEE,EAAMD,EAAA,GAAUA,EAAA,UAAgC,IAA1BF,EAAe5jB,SAAqD,IAApC4jB,EAAe5G,QAAQ+G,MAAiB5d,SAAQ,SAAA6d,EAAqB/U,GAAW,IAADgV,EAAApN,YAAAmN,EAAA,GAA7BD,EAAME,EAAA,GAAEC,EAAQD,EAAA,GAC/IE,EAAWb,EAAKR,SAAW,GAE3BG,EAAOK,EAAKL,MAAQ,GACpBmB,EAAed,EAAKP,aAAe,GACnCsB,EAAUf,EAAKlD,KAAO,GACtB+C,EAAYG,EAAKH,WAAa,GAC9BE,EAAKC,EAAKD,IAAM,GACpBa,EAASpH,QAAO,SAAAwH,GAEZ,OAA+B,IAAvBvB,EAAY/iB,SAA+D,IAA9C+iB,EAAY/F,QAAQsH,EAAQnJ,gBACnC,IAAtB6H,EAAWhjB,SAAgE,IAA/CgjB,EAAWhG,QAAQsH,EAAQlJ,kBACxC,IAAfgF,EAAIpgB,SAAmD,IAAlCogB,EAAIpD,QAAQsH,EAAQpJ,aAExCkI,GAAaA,IAAcmB,IAAQC,gBACjCpB,KAAekB,EAAQhE,YAAciE,IAAQE,QAAUF,IAAQG,iBAAmBxB,GAAgBA,IAAiByB,IAAWH,gBAC1HtB,KAAkBoB,EAAQnE,cAAgBwE,IAAWF,QAAUE,IAAWD,iBAC1Fve,SAAQ,SAAAme,GAaP,GAZAf,IACAI,GAA0C,IAA7BA,EAAW3G,QAAQlc,GAAc6iB,EAAU,GAAAlnB,OAAA+X,YAAOmP,GAAU,CAAE7iB,IAC3EqjB,GAAyC,IAA9BA,EAASnH,QAAQ+G,GAAiBI,EAAQ,GAAA1nB,OAAA+X,YAAO2P,GAAQ,CAAEJ,IAClEO,EAAQlJ,gBACR6H,GAAgD,IAAzCA,EAAKjG,QAAQsH,EAAQlJ,eAAwB6H,EAAI,GAAAxmB,OAAA+X,YAAOyO,GAAI,CAAEqB,EAAQlJ,iBAE7EkJ,EAAQnJ,cACRiJ,GAA8D,IAA/CA,EAAapH,QAAQsH,EAAQnJ,aAAsBiJ,EAAY,GAAA3nB,OAAA+X,YAAO4P,GAAY,CAAEE,EAAQnJ,eAE3GmJ,EAAQpJ,UACRmJ,GAAgD,IAAtCA,EAAQrH,QAAQsH,EAAQpJ,SAAkBmJ,EAAO,GAAA5nB,OAAA+X,YAAO6P,GAAO,CAAEC,EAAQpJ,WAEnFoJ,EAAQhE,cAAuC,IAAxBgE,EAAQhE,YAAuB,CACtD,IAAMsE,EAAYN,EAAQhE,YAAciE,IAAQE,QAAUF,IAAQG,YAClErB,GAAgC,IAA3BA,EAAGrG,QAAQ4H,GAAoBvB,EAAE,GAAA5mB,OAAA+X,YAAO6O,GAAE,CAAEuB,IACnD,GAAIN,EAAQnE,eAA2C,IAA1BmE,EAAQnE,cAAqB,CACxD,IAAM0E,EAAeP,EAAQnE,cAAgBwE,IAAWF,QAAUE,IAAWD,YAC7EvB,GAAiD,IAArCA,EAAUnG,QAAQ6H,GAAuB1B,EAAS,GAAA1mB,OAAA+X,YAAO2O,GAAS,CAAE0B,QAIxFvB,EAAKR,QAAUqB,EACfb,EAAKL,KAAOA,EACZK,EAAKP,YAAcqB,EACnBd,EAAKlD,IAAMiE,EAEXf,EAAKH,UAAYA,EACjBG,EAAKD,GAAKA,KAEdC,EAAKT,SAAWc,KAGpB/jB,EAAKW,SAAS,CAAEukB,SAAUxB,EAAMyB,WAAYxB,KAC/C3jB,EAEDgd,WAAa,WACT,IAAAxO,EAA8BxO,EAAKS,MAA3BsiB,EAAOvU,EAAPuU,QAASC,EAAQxU,EAARwU,SACTC,EAAyEF,EAAzEE,SAAUC,EAA+DH,EAA/DG,QAASC,EAAsDJ,EAAtDI,YAAmBC,EAAmCL,EAAzCM,KAAkBE,EAAuBR,EAAvBQ,UAAW/C,EAAYuC,EAAZvC,IAAKiD,EAAOV,EAAPU,GAEtEC,EAAO,GACPE,EAAkBX,GAAY,GAClCxhB,OAAOsV,QAAQiM,GAAY,IAAI9F,QAAO,SAAAkI,GAAA,IAAAC,EAAApO,YAAAmO,EAAA,GAAElkB,EAAGmkB,EAAA,GAAOA,EAAA,UAAiC,IAA3BzB,EAAgBxjB,SAAmD,IAAlCwjB,EAAgBxG,QAAQlc,MAAcqF,SAAQ,SAAA+e,EAAejW,GAAW,IAADkW,EAAAtO,YAAAqO,EAAA,GAAlBnkB,GAAFokB,EAAA,GAAOA,EAAA,IAC3IvB,EAAiBd,GAAW,GAChCzhB,OAAOsV,QAAQ5V,GAAO+b,QAAO,SAAAsI,GAAA,IAAAC,EAAAxO,YAAAuO,EAAA,GAAErB,EAAMsB,EAAA,GAAUA,EAAA,UAAgC,IAA1BzB,EAAe5jB,SAAqD,IAApC4jB,EAAe5G,QAAQ+G,MAAiB5d,SAAQ,SAAAmf,EAAqBrW,GAAW,IAADsW,EAAA1O,YAAAyO,EAAA,GAAvBC,EAAA,GAAUA,EAAA,GAC1IzI,QAAO,SAAAwH,GAEZ,OAA+B,IAAvBvB,EAAY/iB,SAA+D,IAA9C+iB,EAAY/F,QAAQsH,EAAQnJ,gBACnC,IAAtB6H,EAAWhjB,SAAgE,IAA/CgjB,EAAWhG,QAAQsH,EAAQlJ,kBACxC,IAAfgF,EAAIpgB,SAAmD,IAAlCogB,EAAIpD,QAAQsH,EAAQpJ,aAExCmI,GAAMA,IAAOkB,IAAQC,gBACnBnB,KAAQiB,EAAQhE,YAAciE,IAAQE,QAAUF,IAAQG,iBAAmBvB,GAAaA,IAAcwB,IAAWH,gBAC7GrB,KAAemB,EAAQnE,cAAgBwE,IAAWF,QAAUE,IAAWD,iBAEvFve,SAAQ,SAAAyJ,GACP,IAAMiT,EAAWjT,EAAQ4V,aACnB1C,EAAUlT,EAAQ6V,YAGpBC,GADMpC,EAAKT,IAAa,IACbC,IAAY,GAC3B4C,EAAK3d,KAAK6H,GAEV0T,EAAKT,GAAYS,EAAKT,IAAa,GACnCS,EAAKT,GAAUC,GAAW4C,QAGlCta,QAAQC,IAAI,cAAeiY,MAM/B1jB,EAAKW,SAAS,CAAEolB,aAAcrC,KAEjC1jB,EAEDgmB,cAAgB,SAAC3oB,GAAU,yEAAAR,OAAwEQ,EAAU,yCAAsC2C,EAGnJimB,oBAAsB,SAAC3kB,GACnB,IAAIoiB,EAAO,GACM1jB,EAAK4B,MAAd0J,KACH/E,SAAQ,SAAAyJ,GACT,IAAMiT,EAAWjT,EAAQ4V,aACnB1C,EAAUlT,EAAQ6V,YAGpBC,GADMpC,EAAKT,IAAa,IACbC,IAAY,GAC3B4C,EAAK3d,KAAK6H,GAEV0T,EAAKT,GAAYS,EAAKT,IAAa,GACnCS,EAAKT,GAAUC,GAAW4C,KAI9B9lB,EAAKW,SAAS,CAAEqiB,SAAUU,IAAQ,WAC9B1jB,EAAK8iB,kBACL9iB,EAAKgd,aACL1b,GAAYA,QAEnBtB,EAEDuc,WAAa,SAAC2J,EAAchlB,GACxB,IAAQ8hB,EAAahjB,EAAKS,MAAlBuiB,SAEJmD,EAAS,GACb,GAAIjlB,EAAK,CACL,IAAMklB,EAAOpD,EAAS9hB,IAAQ,GAC9BO,OAAOuH,KAAKod,GAAM7f,SAAQ,SAAA4d,GACtBgC,EAAO,GAADtpB,OAAIqE,EAAG,KAAArE,OAAIsnB,EAAM,eAAgB+B,KAE3CA,IAAiBlmB,EAAKS,MAAM,GAAD5D,OAAIqE,EAAG,eAC5BlB,EAAKW,SAAQwK,oCAAC,GAAKnL,EAAKS,OAAU0lB,GAAM,GAAAE,0BAAA,MAAAxpB,OAAMqE,EAAG,cAAeglB,GAAY,GAAArpB,OAAMqE,EAAG,cAAeglB,KACpGlmB,EAAKW,SAAQwK,oCAAC,GAAKnL,EAAKS,OAAU0lB,GAAM,GAAAE,aAAA,MAAAxpB,OAAMqE,EAAG,cAAeglB,UAGtEzkB,OAAOuH,KAAKga,GAAUzc,SAAQ,SAAArF,GAC1BilB,EAAO,GAADtpB,OAAIqE,EAAG,eAAgBglB,KAEjClmB,EAAKW,SAAQwK,oCAAC,GAAKnL,EAAKS,OAAU0lB,GAAM,IAAE7J,UAAW4J,MAE5DlmB,EAEDsmB,cAAgB,SAACplB,EAAKC,GAA4C,IAArColB,EAAOpmB,UAAAC,OAAA,QAAA6S,IAAA9S,UAAA,IAAAA,UAAA,GAAUqmB,EAAMrmB,UAAAC,OAAA,QAAA6S,IAAA9S,UAAA,IAAAA,UAAA,GAExC4iB,EAAY/iB,EAAKS,MAAjBsiB,QACJyD,EACAxmB,EAAKW,SAAS,CAAEoiB,QAAO5X,wBAAA,GAAO4X,GAAO,GAAAsD,aAAA,GAAGnlB,EAAMC,MAAW,kBAAMnB,EAAK8iB,qBAE/DyD,EACLvmB,EAAKW,SAAS,CAAEoiB,QAAO5X,wBAAA,GAAO4X,GAAO,GAAAsD,aAAA,GAAGnlB,GAAOC,GAAS,IAAIgO,KAAI,SAAAsX,GAAS,OAAIA,EAAUtlB,aAGvFnB,EAAKW,SAAS,CAAEoiB,QAAO5X,wBAAA,GAAO4X,GAAO,GAAAsD,aAAA,GAAGnlB,EAAMC,EAAQulB,mBAASvlB,GAASA,EAAMA,MAAQA,EAAQ,OAAQ,kBAAMnB,EAAK8iB,sBAExH9iB,EAED6V,oBAAsB,WAClB7V,EAAKW,SAAS,CAAEmV,UAAW9V,EAAKS,MAAMqV,YACzC9V,EAED2mB,WAAa,WACT,IAAIC,EAAM5kB,SAASI,eAAe,SAASjB,MACrCyd,EAAI,GAAA/hB,OAAMC,gDAChBkD,EAAKW,SAAS,CAAEmV,UAAU,EAAMyI,UAAWK,EAAOgI,EAAK/E,QAAQ,KAClE7hB,EAED2e,WAAa,WACT3e,EAAKW,SAAS,CAAEmV,UAAU,KAC7B9V,EAGD6mB,SAAW,WACP,IAAIC,EAAe9kB,SAASC,KAAK6kB,aAC7BC,EAAcD,EAA+B,GAAfA,EAAqB,IACvDjmB,OAAO2B,OAAO,CAAEC,IAAKskB,EAAapkB,SAAU,YAC/C3C,EAEDgnB,aAAe,WACXhnB,EAAKW,SAAS,CAAEkhB,QAAQ,KAC3B7hB,EAEDinB,aAAe,WACX,IACIlI,EADO/c,SAASI,eAAe,UACf4c,WAAU,GAC1BC,EAAgBjd,SAASI,eAAe,gBACvC6c,KACDA,EAAgBjd,SAASR,cAAc,QACzBuB,GAAK,eACnBf,SAASC,KAAKid,YAAYD,IAG9BA,EAAcrB,UAAY,GAC1BqB,EAAcC,YAAYH,GAC1Ble,OAAOse,QACPnd,SAASI,eAAe,gBAAgBgO,UApSxCpQ,EAAKS,MAAQ,CACToiB,SAAS,EACTqE,QAAQ,EACRC,SAAU,KACVnE,SAAU,KACVD,QAlBkB,CAC1BE,SAAU,GACVC,QAAS,GACTC,YAAa,GACbE,KAAM,GACN7C,IAAK,GACL+C,UAAW,GACXE,GAAI,IAYIyB,SAAU,CACNjC,SAAU,GACVC,QAAS,GACTC,YAAa,GACbE,KAAM,GACN7C,IAAK,GACL+C,UAAW,GACXE,GAAI,IAER1B,QAAQ,EACRS,aAAc,EACdX,QAAQ,EACRY,gBAAgB,GACnBziB,EACJ,OAAAgB,YAAAshB,EAAAviB,GAAAkB,YAAAqhB,EAAA,EAAAphB,IAAA,oBAAAC,MAED,WAAqB,IAADwN,EAAA,KAEhBnD,QAAQC,IAAI,UAAWpK,KAAKO,MAAM0J,KAAK,GAAG8b,aACJ,GAAlC/lB,KAAKO,MAAM0J,KAAK,GAAG8b,aACnB/lB,KAAKV,SAAS,CAAEumB,QAAQ,IACxB7lB,KAAKV,SAAS,CAAEwmB,SAAU,4BAEa,GAAlC9lB,KAAKO,MAAM0J,KAAK,GAAG8b,cACxB/lB,KAAKV,SAAS,CAAEumB,QAAQ,IACxB7lB,KAAKV,SAAS,CAAEwmB,SAAU,UAE1B9lB,KAAKO,MAAM0J,OAASjK,KAAKZ,MAAMuiB,UAC/B3hB,KAAK4kB,qBAAoB,WACrBtX,EAAK4N,YAAW,GAChB5N,EAAKmU,qBAGbzhB,KAAKkhB,mBACR,CAAArhB,IAAA,uBAAAC,MAkCD,WAEIE,KAAKV,SAAW,SAACF,EAAOa,OAG3B,CAAAJ,IAAA,SAAAC,MAwND,WAAU,IAADkmB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA3Y,EAAA,KACLsG,EAA6B1U,KAAKO,MAA1B0J,EAAIyK,EAAJzK,KAAM3J,EAAUoU,EAAVpU,WACd2O,EAA8HjP,KAAKZ,MAA3HsiB,EAAOzS,EAAPyS,QAASoC,EAAU7U,EAAV6U,WAAYtC,EAAOvS,EAAPuS,QAAyBsE,GAAV7W,EAANyR,OAAczR,EAAN4W,OAAgB5W,EAAR6W,UAAU3E,EAAYlS,EAAZkS,aAAc1M,EAAQxF,EAARwF,SAAUyI,EAASjO,EAATiO,UAAWsD,EAAMvR,EAANuR,OAAQY,EAAcnS,EAAdmS,eACxFzT,YAAc3N,KAAKO,MAAOsM,KAC7C,OAEI3M,IAAAC,cAACD,IAAMqB,SAAQ,KACXrB,IAAAC,cAAC4W,IAAK,CAACzB,KAAK,KAAK2K,YAAU,EAACjJ,KAAMvC,EAAU2C,OAAQpX,KAAKsd,YACrDpd,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,GACrBjX,IAAAC,cAAC4W,IAAMmJ,MAAK,KAAC,YAEjBhgB,IAAAC,cAAC4W,IAAM7M,KAAI,CAACxI,GAAG,WACV8e,GACGtgB,IAAAC,cAAA,WAAK,oCAETD,IAAAC,cAAA,OAAKuB,GAAG,SAAS0N,UAAU,aAAa0B,IAAKoM,EAAW8J,OAAQhnB,KAAK2lB,aAAc3U,IAAI,+BAE3F9Q,IAAAC,cAAC4W,IAAMgB,OAAM,KACT7X,IAAAC,cAACigB,KAAM,CAAC1e,GAAG,QAAQa,QAASvC,KAAK4lB,cAAc,WAOtDpE,EACGthB,IAAAC,cAACwgB,GAAoB,CAAC1W,KAAMjK,KAAKO,MAAM0J,OAErC3J,EAEEJ,IAAAC,cAACD,IAAMqB,SAAQ,KACXrB,IAAAC,cAAA,OAAKiP,UAAU,sBACkC,MAA5C7E,KAAmBC,QAAQ,cACxBtK,IAAAC,cAAC6P,IAAI,CAACuJ,IAAI,sBAAsBnK,UAAU,wBAAwBa,GAAE,oBAAAzU,OAAsByO,EAAK,GAAGvN,gBAC7FopB,GAEH,GAAG,WAET5lB,IAAAC,cAACigB,KAAM,CAAChR,UAAU,wBAAwB7M,QAAS,WAAF,OAAQ6L,EAAKmT,sBAAsB,eAExFrhB,IAAAC,cAAA,WACAD,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KACxB/Y,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,8CAE5CnZ,IAAAC,cAAA,WACK2jB,EAAa5jB,IAAAC,cAAA,WAAM2jB,EAAW,kBAAuB,OAK9D5jB,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KACzBnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACNhK,IAAAC,cAAC4I,KAAI,KACD7I,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,qBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,aAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAG3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZtC,SAAO,EACPplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASE,WAAY,IAAI9T,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MAClE9X,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,WAAYxI,GAAQ,IAC7DlN,UAA6B,QAAnByW,EAAAhmB,KAAKZ,MAAMykB,gBAAQ,IAAAmC,OAAA,EAAnBA,EAAqBpE,WAAY,IAAI9T,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,WAKhGK,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,sBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAChM,GAAI,IAAKE,GAAI,IAAKC,GAAI,IAAKF,GAAI,KAAK,SAGvDnb,IAAAC,cAACqX,IAAG,CAAC4D,GAAI,KAAME,GAAI,IAAKD,GAAI,IAAKvD,GAAI,KAAMyD,GAAI,KAC3Crb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZ7X,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,OAAQxI,GAAQ,IACzDyI,SAAS,EACTplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASM,OAAQ,IAAIlU,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MAC9DlY,UAA6B,QAAnB0W,EAAAjmB,KAAKZ,MAAMykB,gBAAQ,IAAAoC,OAAA,EAAnBA,EAAqBjE,OAAQ,IAAIlU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,WAQ5FK,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,qBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAChM,GAAI,IAAKE,GAAI,IAAKC,GAAI,KAAK,YAG9Crb,IAAAC,cAACqX,IAAG,CAAC4D,GAAI,KAAME,GAAI,IAAKD,GAAI,IAAKvD,GAAI,KAAMyD,GAAI,KAC3Crb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASG,UAAW,IAAI/T,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MACjEvC,SAAO,EACPvV,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,UAAWxI,GAAQ,IAC5DlN,UAA6B,QAAnB2W,EAAAlmB,KAAKZ,MAAMykB,gBAAQ,IAAAqC,OAAA,EAAnBA,EAAqBrE,UAAW,IAAI/T,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,YAKnGK,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KAC6C,MAA5CjN,KAAmBC,QAAQ,cACxBtK,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,sBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAChM,GAAI,IAAKE,GAAI,IAAKC,GAAI,IAAKF,GAAI,KAAM,iBAGxDnb,IAAAC,cAACqX,IAAG,CAAC4D,GAAI,KAAME,GAAI,IAAKD,GAAI,IAAKvD,GAAI,KAAMyD,GAAI,KAC3Crb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASI,cAAe,IAAIhU,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MACrEvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,cAAexI,GAAQ,IAChElN,UAA6B,QAAnB4W,EAAAnmB,KAAKZ,MAAMykB,gBAAQ,IAAAsC,OAAA,EAAnBA,EAAqBrE,cAAe,IAAIhU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,OAExG,KAGdK,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,qBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,QAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASvC,MAAO,IAAIrR,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MAC7DvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,MAAOxI,GAAQ,IACxDlN,UAA6B,QAAnB6W,EAAApmB,KAAKZ,MAAMykB,gBAAQ,IAAAuC,OAAA,EAAnBA,EAAqBjH,MAAO,IAAIrR,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,SAM1GK,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,oBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,OAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3Bd,OAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASU,KAAM,CAAEtiB,MAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASU,GAAI5S,MAAc,OAAPkS,QAAO,IAAPA,OAAO,EAAPA,EAASU,IAC5DzS,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,KAAMxI,IAC/ClN,UAA6B,QAAnB8W,EAAArmB,KAAKZ,MAAMykB,gBAAQ,IAAAwC,OAAA,EAAnBA,EAAqBjE,KAAM,IAAItU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,SAMzGK,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,uBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,UAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAK3Bd,OAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASQ,YAAa,CAAEpiB,MAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASQ,UAAW1S,MAAc,OAAPkS,QAAO,IAAPA,OAAO,EAAPA,EAASQ,WAC1EvS,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,YAAaxI,IACtDlN,UAA6B,QAAnB+W,EAAAtmB,KAAKZ,MAAMykB,gBAAQ,IAAAyC,OAAA,EAAnBA,EAAqBpE,YAAa,IAAIpU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,QAK5GK,IAAAC,cAACqX,IAAG,CAAC4D,GAAI,MACLlb,IAAAC,cAAA,OAAKiP,UAAU,YAAYpO,MAAO,CAAEqO,MAAO,UACvCnP,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,wBAAwB7M,QAAS,WAC7D6L,EAAKuN,eACL,SAEK,WAETzb,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,wBAAwB7M,QAAS,WAC7D6L,EAAK9O,SAAS,CAAEoiB,QAngBlD,CAC1BE,SAAU,GACVC,QAAS,GACTC,YAAa,GACbE,KAAM,GACN7C,IAAK,GACL+C,UAAW,GACXE,GAAI,MA4fqG,WAAQhU,EAAKuN,kBAC1D,SACJzb,IAAAC,cAAA,mBAW/BihB,GACGlhB,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KACxB/Y,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,8BAE5CnZ,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,UAChB8R,EAAejhB,IAAAC,cAAA,WAAMghB,EAAa,kBAAuB,eAGlEjhB,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KACzBnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACNhK,IAAAC,cAAA,OAAKuB,GAAG,UACJxB,IAAAC,cAAA,OAAKsB,MAAM,oBACPvB,IAAAC,cAAA,OAAKsB,MAAM,uBACPvB,IAAAC,cAAA,QAAMsB,MAAM,mBAAmB0e,IAAI,SAAQ,uBAE/CjgB,IAAAC,cAAA,UAAQsB,MAAM,gBAAgBC,GAAG,UAGjCxB,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,wBAAwB7M,QAASvC,KAAKslB,YAAY,cAS9GplB,IAAAC,cAAA,WAEIC,OAAOsV,QAAQ1V,KAAKZ,MAAMslB,cAAgB,IAAI5W,KAAI,SAAA4Z,EAAe1Z,GAAK,IAAA2Z,EAAA/R,YAAA8R,EAAA,GAAlB7nB,EAAG8nB,EAAA,GAAE7nB,EAAK6nB,EAAA,UAC1DznB,IAAAC,cAAA,OAAKN,IAAKA,GACNK,IAAAC,cAAC6Y,IAAS,CAAC4O,UAAWxZ,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAAgBA,OAAM+R,GACzD1R,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAACoX,IAAG,CAAC4D,WAAW,GACZjb,IAAAC,cAACqX,IAAG,CAACM,GAAI,KAAMsD,GAAI,KAAMC,GAAI,KAAMC,GAAI,KAAMC,GAAI,MAC7Crb,IAAAC,cAAC6Y,IAAUG,OAAM,CACbC,GAAIF,IAAKhC,OACTmC,SAAUxZ,EACV0C,QAAS,WACL6L,EAAK9O,SAAQ0lB,aAAC,GAAD,GAAAxpB,OAAOqE,EAAG,eAAgBuO,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,mBAE5DK,IAAAC,cAAA,YAAQiO,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAErBK,IAAAC,cAACqb,KAAe,CAACC,KAAK,iBADtBvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,gBACyB,WAAa5b,IAKxEK,IAAAC,cAACqX,IAAG,CAACpI,UAAU,cAAc0I,GAAI,IAAKsD,GAAI,IAAKC,GAAI,IAAKC,GAAI,IAAKC,GAAI,KACjErb,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,QAAS0J,YAAa,QAAUxW,QAAS,WAAF,OAAQ6L,EAAK8M,YAAW9M,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAA8BA,KAC7HuO,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAA0DK,IAAAC,cAACqb,KAAe,CAACC,KAAK,gBAAhEvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,oBAOrEvb,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAUxZ,GAC1BK,IAAAC,cAAC+Y,IAAKhP,KAAI,CAACrK,IAAKA,EAAKmB,MAAO,CAAE6mB,SAAU,SACpC3nB,IAAAC,cAAA,WACKC,OAAOsV,QAAQ5V,GAAS,IAAIgO,KAAI,SAAAga,EAAqB9Z,GAAK,IAAA+Z,EAAAnS,YAAAkS,EAAA,GAAxBhF,EAAMiF,EAAA,GAAE9E,EAAQ8E,EAAA,UAC/C7nB,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKijB,GACjB5iB,IAAAC,cAACqZ,IAAK,CAAC3Z,IAAG,GAAArE,OAAKqE,EAAG,KAAArE,OAAIsnB,GAElBkF,QAAQ,OAERzlB,QAAS,WACL6L,EAAK9O,SAAQ0lB,aAAC,GAAD,GAAAxpB,OAAOqE,EAAG,KAAArE,OAAIsnB,EAAM,eAAgB1U,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,KAAArE,OAAIsnB,EAAM,mBAG9E1U,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,KAAArE,OAAIsnB,EAAM,eAAmD5iB,IAAAC,cAACqb,KAAe,CAACC,KAAK,SAAzDvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,UAA6C,WAAaqH,GAEjI5iB,IAAAC,cAACmZ,KAAQ,CAAC+G,IAAKjS,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,KAAArE,OAAIsnB,EAAM,gBACtC5iB,IAAAC,cAAA,WACID,IAAAC,cAACmgB,GAAe,CAACrW,KAAMgZ,oBAgB3E/iB,IAAAC,cAACD,IAAMqB,SAAQ,KACXrB,IAAAC,cAAA,OAAKiP,UAAU,sBACkC,MAA5C7E,KAAmBC,QAAQ,cACxBtK,IAAAC,cAAC6P,IAAI,CAACuJ,IAAI,sBAAsBnK,UAAU,wBAAwBa,GAAE,oBAAAzU,OAAsByO,EAAK,GAAGvN,gBAC7FopB,GAEH,GAAG,WAET5lB,IAAAC,cAACigB,KAAM,CAAChR,UAAU,wBAAwB7M,QAAS,WAAF,OAAQ6L,EAAKmT,sBAAsB,eAExFrhB,IAAAC,cAAA,WAKAD,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KACxB/Y,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,8CAE5CnZ,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,UAChByU,EAAa5jB,IAAAC,cAAA,WAAM2jB,EAAW,kBAAuB,OAI9D5jB,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KACzBnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACNhK,IAAAC,cAAC4I,KAAI,KACD7I,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,qBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,aAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAE3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZtC,SAAO,EACPplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASE,WAAY,IAAI9T,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MAClE9X,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,WAAYxI,GAAQ,IAC7DlN,UAA6B,QAAnBgX,EAAAvmB,KAAKZ,MAAMykB,gBAAQ,IAAA0C,OAAA,EAAnBA,EAAqB3E,WAAY,IAAI9T,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,WAGhGK,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,sBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAK,SAG9Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZ7X,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,OAAQxI,GAAQ,IACzDyI,SAAS,EACTplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASM,OAAQ,IAAIlU,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MAC9DlY,UAA6B,QAAnBiX,EAAAxmB,KAAKZ,MAAMykB,gBAAQ,IAAA2C,OAAA,EAAnBA,EAAqBxE,OAAQ,IAAIlU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,WAK5FK,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,qBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,SAGvC,OAAPmG,QAAO,IAAPA,OAAO,EAAPA,EAASvC,MAAOjf,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACzCrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASvC,MAAO,IAAIrR,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MAC7DvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,MAAOxI,GAAQ,IACxDlN,UAA6B,QAAnBkX,EAAAzmB,KAAKZ,MAAMykB,gBAAQ,IAAA4C,OAAA,EAAnBA,EAAqBtH,MAAO,IAAIrR,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,SAM1GK,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,qBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAK,YAG9Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASG,UAAW,IAAI/T,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MACjEvC,SAAO,EACPvV,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,UAAWxI,GAAQ,IAC5DlN,UAA6B,QAAnBmX,EAAA1mB,KAAKZ,MAAMykB,gBAAQ,IAAA6C,OAAA,EAAnBA,EAAqB7E,UAAW,IAAI/T,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,WAI/FK,IAAAC,cAACqX,IAAG,KAC6C,MAA5CjN,KAAmBC,QAAQ,cACxBtK,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,sBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,iBAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASI,cAAe,IAAIhU,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MACrEvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,cAAexI,GAAQ,IAChElN,UAA6B,QAAnBoX,EAAA3mB,KAAKZ,MAAMykB,gBAAQ,IAAA8C,OAAA,EAAnBA,EAAqB7E,cAAe,IAAIhU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,OAExG,IAEVK,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,uBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,UAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAK3BqnB,aAAa,EACbnoB,OAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASQ,YAAa,CAAEpiB,MAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASQ,UAAW1S,MAAc,OAAPkS,QAAO,IAAPA,OAAO,EAAPA,EAASQ,WAC1EvS,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,YAAaxI,IACtDlN,UAA6B,QAAnBqX,EAAA5mB,KAAKZ,MAAMykB,gBAAQ,IAAA+C,OAAA,EAAnBA,EAAqB1E,YAAa,IAAIpU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,SAQhHK,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,oBAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,OAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3Bd,OAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASU,KAAM,CAAEtiB,MAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASU,GAAI5S,MAAc,OAAPkS,QAAO,IAAPA,OAAO,EAAPA,EAASU,IAC5DzS,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,KAAMxI,IAC/ClN,UAA6B,QAAnBsX,EAAA7mB,KAAKZ,MAAMykB,gBAAQ,IAAAgD,OAAA,EAAnBA,EAAqBzE,KAAM,IAAItU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,QAMrGK,IAAAC,cAACqX,IAAG,CAACxW,MAAO,CAAEknB,WAAY,WAEtBhoB,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,SAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,iBAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASI,cAAe,IAAIhU,KAAI,SAAA2Z,GAAG,MAAK,CAAE3nB,MAAO2nB,EAAKjY,MAAOiY,MACrEvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,cAAexI,GAAQ,IAChElN,UAA6B,QAAnBuX,EAAA9mB,KAAKZ,MAAMykB,gBAAQ,IAAAiD,OAAA,EAAnBA,EAAqBhF,cAAe,IAAIhU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,QAG9GK,IAAAC,cAACqX,IAAG,CAACxW,MAAO,CAAEknB,WAAY,WACtBhoB,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IAAK2P,UAAU,OAC3BhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAM,UAG/Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KACxBrb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAK3BqnB,aAAa,EACbnoB,OAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASQ,YAAa,CAAEpiB,MAAc,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASQ,UAAW1S,MAAc,OAAPkS,QAAO,IAAPA,OAAO,EAAPA,EAASQ,WAC1EvS,SAAU,SAAC8M,GAAM,OAAKrO,EAAK6W,cAAc,YAAaxI,IACtDlN,UAA6B,QAAnBwX,EAAA/mB,KAAKZ,MAAMykB,gBAAQ,IAAAkD,OAAA,EAAnBA,EAAqB7E,YAAa,IAAIpU,KAAI,SAAAjO,GAAG,MAAK,CAAEC,MAAOD,EAAK2P,MAAO3P,OAAW,SAOhHK,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACAtX,IAAAC,cAAA,OAAKiP,UAAU,YAAYpO,MAAO,CAAEqO,MAAO,UACvCnP,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,wBAAwB7M,QAAS,WAC7D6L,EAAKuN,eACL,SAEK,WAETzb,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,wBAAwB7M,QAAS,WAC7D6L,EAAK9O,SAAS,CAAEoiB,QAn0BlD,CAC1BE,SAAU,GACVC,QAAS,GACTC,YAAa,GACbE,KAAM,GACN7C,IAAK,GACL+C,UAAW,GACXE,GAAI,MA4zBqG,WACzChU,EAAKqT,kBACLrT,EAAKuN,kBAET,iBAUnCyF,GACGlhB,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KACxB/Y,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,8BAE5CnZ,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,UAChB8R,EAAejhB,IAAAC,cAAA,WAAMghB,EAAa,kBAAuB,eAGlEjhB,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KACzBnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACNhK,IAAAC,cAAA,OAAKuB,GAAG,UACJxB,IAAAC,cAAA,OAAKsB,MAAM,oBACPvB,IAAAC,cAAA,OAAKsB,MAAM,uBACPvB,IAAAC,cAAA,QAAMsB,MAAM,mBAAmB0e,IAAI,SAAQ,uBAE/CjgB,IAAAC,cAAA,UAAQsB,MAAM,gBAAgBC,GAAG,UAGjCxB,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,wBAAwB7M,QAASvC,KAAKslB,YAAY,cAa9GplB,IAAAC,cAAA,WAEIC,OAAOsV,QAAQ1V,KAAKZ,MAAMslB,cAAgB,IAAI5W,KAAI,SAAAqa,GAAmB,IAADC,EAAAxS,YAAAuS,EAAA,GAAhBtoB,EAAGuoB,EAAA,GAAEtoB,EAAKsoB,EAAA,GAE1D,OACIloB,IAAAC,cAAA,OAAKN,IAAKA,GACNK,IAAAC,cAAC6Y,IAAS,CAAC4O,UAAWxZ,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAAgBA,OAAM+R,GAEzD1R,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAACoX,IAAG,CAAC4D,WAAW,GACZjb,IAAAC,cAACqX,IAAG,CAACM,GAAI,KAAMsD,GAAI,KAAMC,GAAI,KAAMC,GAAI,KAAMC,GAAI,MAC7Crb,IAAAC,cAAC6Y,IAAUG,OAAM,CACbC,GAAIF,IAAKhC,OACTmC,SAAUxZ,EACV0C,QAAS,WACL6L,EAAK9O,SAAQ0lB,aAAC,GAAD,GAAAxpB,OAAOqE,EAAG,eAAgBuO,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,mBAE5DK,IAAAC,cAAA,YAAQiO,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAErBK,IAAAC,cAACqb,KAAe,CAACC,KAAK,iBADtBvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,gBACyB,WAAa5b,IAKxEK,IAAAC,cAACqX,IAAG,CAACpI,UAAU,cAAc0I,GAAI,IAAKsD,GAAI,IAAKC,GAAI,IAAKC,GAAI,IAAKC,GAAI,KACjErb,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,QAAS0J,YAAa,QAAUxW,QAAS,WAAF,OAAQ6L,EAAK8M,YAAW9M,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAA8BA,KAC7HuO,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,eAA0DK,IAAAC,cAACqb,KAAe,CAACC,KAAK,gBAAhEvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,oBAMrEvb,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAUxZ,GAC1BK,IAAAC,cAAC+Y,IAAKhP,KAAI,CAACrK,IAAKA,EAAKmB,MAAO,CAAE6mB,SAAU,SACpC3nB,IAAAC,cAAA,WACKC,OAAOsV,QAAQ5V,GAAS,IAAIgO,KAAI,SAAAua,EAAqBra,GAAK,IAAAsa,EAAA1S,YAAAyS,EAAA,GAAxBvF,EAAMwF,EAAA,GAAErF,EAAQqF,EAAA,UAC/CpoB,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKijB,GACjB5iB,IAAAC,cAACqZ,IAAK,CAAC3Z,IAAG,GAAArE,OAAKqE,EAAG,KAAArE,OAAIsnB,GAElBkF,QAAQ,OAERzlB,QAAS,WACL6L,EAAK9O,SAAQ0lB,aAAC,GAAD,GAAAxpB,OAAOqE,EAAG,KAAArE,OAAIsnB,EAAM,eAAgB1U,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,KAAArE,OAAIsnB,EAAM,mBAG9E1U,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,KAAArE,OAAIsnB,EAAM,eAAmD5iB,IAAAC,cAACqb,KAAe,CAACC,KAAK,SAAzDvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,UAA6C,WAAaqH,GAEjI5iB,IAAAC,cAACmZ,KAAQ,CAAC+G,IAAKjS,EAAKhP,MAAM,GAAD5D,OAAIqE,EAAG,KAAArE,OAAIsnB,EAAM,gBACtC5iB,IAAAC,cAAA,WACID,IAAAC,cAACmgB,GAAe,CAACrW,KAAMgZ,yBAx5BnF,CAAS/iB,IAAMM,WA67BpBpC,eAAQ6iB,ICz9B+B,IAEhDsH,GAAQ,SAAAxO,GACZ,SAAAwO,IAAe,IAAD5pB,E,MAIV,OAJUC,YAAA,KAAA2pB,G,EACZ,K,EAAAA,E,kBAAA5pB,E,iGAQF6pB,QAAU,WACR,IAAQve,EAAStL,EAAK4B,MAAd0J,KACR,OACkB,IAAhBA,EAAKlL,QACLkL,EAAK4R,QAAO,SAACvF,GAAG,MAAwB,UAAnBA,EAAItZ,cAAwB+B,OAAS,GAX5DJ,EAAKS,MAAQ,CACXshB,QAAQ,GACR/hB,EACH,OAAAgB,YAAA4oB,EAAAxO,GAAAna,YAAA2oB,EAAA,EAAA1oB,IAAA,SAAAC,MAYD,WAAU,IAADwN,EAAA,KACPoH,EAA6B1U,KAAKO,MAA1B0J,EAAIyK,EAAJzK,KAAM3J,EAAUoU,EAAVpU,WAERwV,GADW9V,KAAKZ,MAAfshB,OACSpgB,EACZ,CACE,CACE4K,KAAM,IACN+Q,YAAa,CACXjC,QAAQ,GAEV/D,UAAW,SAACC,EAAKG,EAAMrI,GACrB,OACE9N,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAKoS,eACvBnb,EAAKkb,UACJtoB,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,SAAG,+BACFkW,EAAKgH,YACNnd,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,wBACFkW,EAAKoS,cACNvoB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,oCACHD,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQC,EAAKqS,0BAE7CxoB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,uCACFkW,EAAKsS,mBACNzoB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,qBACFkW,EAAKuS,YACN1oB,IAAAC,cAAA,WAC6C,MAA5CoK,KAAmBC,QAAQ,cAAyB,GAAItK,IAAAC,cAAA,SAAG,yBACf,MAA5CoK,KAAmBC,QAAQ,cAAyB,GAAI6L,EAAKwS,eACjB,MAA5Cte,KAAmBC,QAAQ,cAAyB,GAAGtK,IAAAC,cAAA,WACxDD,IAAAC,cAAA,SAAG,gBACFkW,EAAKyS,WACN5oB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iBACFkW,EAAK0S,oBACN7oB,IAAAC,cAAA,YAGFD,IAAAC,cAAA,SAAG,uDAOf,CACE,CACE4V,UAAW,cACX7K,KAAM,qBACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,gBACX7K,KAAM,cACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,yBACX7K,KAAM,+BACN+K,UAAW,SAACC,GAAG,OACbhW,IAAAC,cAAA,OAAKgW,wBAAyB,CAAEC,OAAQF,MAE1CF,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,qBACX7K,KAAM,kCACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,cACX7K,KAAM,WACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,aACX7K,KAAM,MACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,sBACX7K,KAAM,OACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,SAGwB,MAA5CvF,KAAmBC,QAAQ,cAAwB,CACjDuL,UAAW,iBACX7K,KAAM,eACN8O,QAAQ,EACRhE,YAAa,WACX,MAAO,CAAElG,MAAO,QAEhB,CACFiG,UAAW,iBACX7K,KAAM,eACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,UAK1B,OACE5P,IAAAC,cAACD,IAAMqB,SAAQ,KACZvB,KAAKwoB,UACJtoB,IAAAC,cAAC6X,IAAc,CACbC,SAAS,gBACTC,SAAO,EACPjO,KAAMA,EACN6L,QAASA,IAIX5V,IAAAC,cAAA,WAAK,wDAnJD,CAASK,aA2JRpC,eAAQmqB,IC7Ja,IAE9BS,GAAY,SAAAtqB,GAChB,SAAAsqB,IAAe,IAADrqB,E,MAIV,OAJUC,YAAA,KAAAoqB,G,EACZ,K,EAAAA,E,kBAAArqB,E,iGAMF6pB,QAAU,WACR,IAAQve,EAAStL,EAAK4B,MAAd0J,KACR,OACkB,IAAhBA,EAAKlL,QACLkL,EAAK4R,QAAO,SAACvF,GAAG,MAAgC,UAA3BA,EAAI2S,sBAAgClqB,OAAS,GATpEJ,EAAKS,MAAQ,CACXshB,QAAQ,GACR/hB,EACH,OAAAgB,YAAAqpB,EAAAtqB,GAAAkB,YAAAopB,EAAA,EAAAnpB,IAAA,SAAAC,MAUD,WAAU,IAADwN,EAAA,KACPoH,EAA6B1U,KAAKO,MAA1B0J,EAAIyK,EAAJzK,KAAM3J,EAAUoU,EAAVpU,WAGRwV,GAFW9V,KAAKZ,MAAfshB,OAESpgB,EACZ,CACE,CACE4K,KAAM,IACN6K,UAAU,GACVkG,YAAa,CACXjC,QAAQ,GAEV/D,UAAW,SAACC,EAAKG,EAAMrI,GACrB,OACE9N,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAKgH,aACvB/P,EAAKkb,UACJtoB,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,SAAG,+BACFkW,EAAK4S,mBACN/oB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iCACFkW,EAAKgH,YACNnd,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,6BACFkW,EAAK6S,iBACNhpB,IAAAC,cAAA,WAC6C,MAA5CoK,KAAmBC,QAAQ,cAAyB,GAAItK,IAAAC,cAAA,SAAG,+BACf,MAA5CoK,KAAmBC,QAAQ,cAAyB,GAAI6L,EAAK8S,cACjB,MAA5C5e,KAAmBC,QAAQ,cAAyB,GAAGtK,IAAAC,cAAA,WACxDD,IAAAC,cAAA,SAAG,iBACFkW,EAAK+S,cACNlpB,IAAAC,cAAA,YAGFD,IAAAC,cAAA,WAAK,uDAOjB,CACE,CACE4V,UAAW,qBACX7K,KAAM,sBAER,CACE6K,UAAW,cACX7K,KAAM,wBAER,CACE6K,UAAW,mBACX7K,KAAM,oBAEoC,MAA5CX,KAAmBC,QAAQ,cAAuB,CAChDuL,UAAW,gBACX7K,KAAM,qBACN8O,QAAQ,GACP,CACDjE,UAAW,gBACX7K,KAAM,sBAER,CACE6K,UAAW,gBACX7K,KAAM,SAId,OACMhL,IAAAC,cAACD,IAAMqB,SAAQ,KACZvB,KAAKwoB,UACJtoB,IAAAC,cAAC6X,IAAc,CACbC,SAAS,cACTC,SAAO,EACPjO,MAAOA,GAAQ,IAAI6D,KAAI,SAACub,EAAKxU,GAAG,OAAA/K,wBAAA,GAAWuf,GAAG,IAAExpB,IAAKgV,OACrDiB,QAASA,IAIX5V,IAAAC,cAAA,WAAK,wDA/FD,CAASD,IAAMM,WAuGlBpC,eAAQ4qB,ICjGvB,IAOMM,GAAe,SAAAvP,GAEnB,SAAAuP,EAAY/oB,GAAQ,IAAD5B,E,MAef,OAfeC,YAAA,KAAA0qB,G,EACjB,K,EAAAA,E,EAAA,CAAM/oB,G,kBAAN5B,E,iGAyBF8iB,gBAAkB,WAChB,IAAQC,EAAY/iB,EAAKS,MAAjBsiB,QACAzX,EAAStL,EAAK4B,MAAd0J,KAEJ2X,EAAW,GACXE,EAAc,GACdE,EAAO,GACP7C,EAAM,GACNmD,EAAQ,EAERC,EAAkBb,EAAQE,UAAY,GACtC2H,EAAqB7H,EAAQI,aAAe,GAC5C0H,EAAc9H,EAAQM,MAAQ,GAC9ByH,EAAa/H,EAAQvC,KAAO,IAE/BlV,EAAKyf,YAAc,IACjB7N,QACC,SAACwH,GAAO,OACyB,IAA9BkG,EAAmBxqB,SACsC,IAAxDwqB,EAAmBxN,QAAQsH,EAAQwF,mBACT,IAA3BtG,EAAgBxjB,SACmC,IAAlDwjB,EAAgBxG,QAAQsH,EAAQuF,gBACV,IAAvBY,EAAYzqB,SAC2C,IAAtDyqB,EAAYzN,QAAQsH,EAAQ0F,wBACP,IAAtBU,EAAW1qB,SACkC,IAA5C0qB,EAAW1N,QAAQsH,EAAQyF,gBAEhC5jB,SAAQ,SAAC4W,GACR,IACE8M,EAIE9M,EAJF8M,YACAC,EAGE/M,EAHF+M,eACAE,EAEEjN,EAFFiN,oBACAD,EACEhN,EADFgN,WAEFxG,IACAV,GACqC,IAAnCA,EAAS7F,QAAQ6M,GACbhH,EAAQ,GAAApmB,OAAA+X,YACJqO,GAAQ,CAAEgH,IACpB9G,GAC2C,IAAzCA,EAAY/F,QAAQ8M,GAChB/G,EAAW,GAAAtmB,OAAA+X,YACPuO,GAAW,CAAE+G,IACvB7G,GACyC,IAAvCA,EAAKjG,QAAQgN,GACT/G,EAAI,GAAAxmB,OAAA+X,YACAyO,GAAI,CAAE+G,IAChB5J,GAAmC,IAA7BA,EAAIpD,QAAQ+M,GAAqB3J,EAAG,GAAA3jB,OAAA+X,YAAO4L,GAAG,CAAE2J,OAG1DnqB,EAAKW,SAAS,CACZukB,SAAU,CAAEjC,WAAUE,cAAaE,OAAM7C,OACzC2E,WAAYxB,KAEf3jB,EAEDgd,WAAa,WACX,IAAQ+F,EAAY/iB,EAAKS,MAAjBsiB,QACAzX,EAAStL,EAAK4B,MAAd0J,KACA2X,EAAqCF,EAArCE,SAAUE,EAA2BJ,EAA3BI,YAAaE,EAAcN,EAAdM,KAAM7C,EAAQuC,EAARvC,IACjCoD,EAAkBX,GAAY,GAC9B2H,EAAqBzH,GAAe,GACpC0H,EAAcxH,GAAQ,GACtByH,EAAatK,GAAO,GAClBnV,GAAOC,EAAKyf,YAAc,IAAI7N,QAClC,SAACwH,GAAO,OACyB,IAA9BkG,EAAmBxqB,SACsC,IAAxDwqB,EAAmBxN,QAAQsH,EAAQwF,mBACT,IAA3BtG,EAAgBxjB,SACmC,IAAlDwjB,EAAgBxG,QAAQsH,EAAQuF,gBACV,IAAvBY,EAAYzqB,SAC2C,IAAtDyqB,EAAYzN,QAAQsH,EAAQ0F,wBACP,IAAtBU,EAAW1qB,SACkC,IAA5C0qB,EAAW1N,QAAQsH,EAAQyF,gBAEjC3e,QAAQC,IAAI,MAAOJ,GACnBrL,EAAKW,SAAS,CAAEolB,aAAc1a,KAC/BrL,EAEDgrB,mBAAmB,WAEjB,OADiBhrB,EAAK4B,MAAd0J,KAEEyf,YAAc,IAAI7N,QAAO,SAACwH,GAAO,MAAyB,UAAtBA,EAAQhG,eAAuBte,OAAO,GACrFJ,EAEDsmB,cAAgB,SAACplB,EAAKC,GAA4C,IAArColB,EAAOpmB,UAAAC,OAAA,QAAA6S,IAAA9S,UAAA,IAAAA,UAAA,GAAUqmB,EAAMrmB,UAAAC,OAAA,QAAA6S,IAAA9S,UAAA,IAAAA,UAAA,GAC1C4iB,EAAY/iB,EAAKS,MAAjBsiB,QACJyD,EACFxmB,EAAKW,SAAS,CAAEoiB,QAAO5X,wBAAA,GAAO4X,GAAO,GAAAsD,aAAA,GAAGnlB,EAAMC,MAAW,kBACvDnB,EAAK8iB,qBAEEyD,EACTvmB,EAAKW,SAAS,CACZoiB,QAAO5X,wBAAA,GACF4X,GAAO,GAAAsD,aAAA,GACTnlB,GAAOC,GAAS,IAAIgO,KAAI,SAACsX,GAAS,OAAKA,EAAUtlB,aAItDnB,EAAKW,SACH,CACEoiB,QAAO5X,wBAAA,GACF4X,GAAO,GAAAsD,aAAA,GACTnlB,EAAMC,EAASulB,mBAASvlB,GAASA,EAAMA,MAAQA,EAAS,OAG7D,kBAAMnB,EAAK8iB,sBAGhB9iB,EASDirB,KAAO,WACLjrB,EAAKW,SAAS,CAAEuqB,qBAAsBlrB,EAAKS,MAAMyqB,uBA7IjDlrB,EAAKS,MAAQ,CACXyqB,qBAAqB,EACrBC,iBAAiB,EACjBpI,QAhBwB,CAC5BE,SAAU,GACVE,YAAa,GACbE,KAAM,GACN7C,IAAK,IAaDuF,aAAc,GACdb,SAAU,CACRjC,SAAU,GACVE,YAAa,GACbE,KAAM,GACN7C,IAAK,KAEPxgB,EACH,OAAAgB,YAAA2pB,EAAAvP,GAAAna,YAAA0pB,EAAA,EAAAzpB,IAAA,oBAAAC,MAED,WACEE,KAAK2b,aACL3b,KAAKyhB,oBACN,CAAA5hB,IAAA,uBAAAC,MAoHD,WAEEE,KAAKV,SAAW,SAACF,EAAOa,OAGzB,CAAAJ,IAAA,SAAAC,MAOD,WAAU,IAADkmB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAjZ,EAAA,KACPoH,EAA4B1U,KAAKO,MAApBD,GAADoU,EAAJzK,KAAeyK,EAAVpU,YACbkL,EAA8CxL,KAAKZ,MAA3CsiB,EAAOlW,EAAPkW,QAASoC,EAAUtY,EAAVsY,WAAYY,EAAYlZ,EAAZkZ,aAC7BqF,EAA2C/pB,KAAKO,MAAM0J,KAA9C+f,EAAkBD,EAAlBC,mBAAoBN,EAAUK,EAAVL,WAC5Bvc,EAAiDnN,KAAKZ,MAA9CyqB,EAAmB1c,EAAnB0c,oBAAqBC,EAAe3c,EAAf2c,gBAG7B,OAEE5pB,IAAAC,cAAA,WAEED,IAAAC,cAAA,WAEC6pB,GACC9pB,IAAAC,cAAC6Y,IAAS,CAACC,iBAAkB,aAC3B/Y,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CACfC,GAAIF,IAAKhC,OACTmC,SAAU,YACV9W,QAAS,WACP+K,EAAKhO,SAAS,CAAEuqB,qBAAsBA,MAGxC3pB,IAAAC,cAAA,YACG0pB,EACC3pB,IAAAC,cAACqb,KAAe,CAACC,KAAK,eAEtBvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,kBAEnB,uCAITvb,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAU,aAC5BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,CAAClJ,MAAO,CAAE6mB,SAAU,SAC5B3nB,IAAAC,cAAC6oB,GAAY,CAAC/e,KAAM+f,QAM9B9pB,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACCupB,GACCxpB,IAAAC,cAAC6Y,IAAS,CAACC,iBAAkB,SAC3B/Y,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CACfC,GAAIF,IAAKhC,OACTmC,SAAU,QACV9W,QAAS,WACP+K,EAAKhO,SAAS,CAAEwqB,iBAAkBA,MAGpC5pB,IAAAC,cAAA,YACG2pB,EACC5pB,IAAAC,cAACqb,KAAe,CAACC,KAAK,eAEtBvb,IAAAC,cAACqb,KAAe,CAACC,KAAK,kBAEnB,gDAITvb,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAU,SAC5BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,CAAClJ,MAAO,CAAE6mB,SAAU,SAC1BvnB,EACAJ,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KAC3BjZ,KAAK2pB,qBACF,KAEFzpB,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,8CAE9CnZ,IAAAC,cAAA,WACG2jB,EACC5jB,IAAAC,cAAA,WAAM2jB,EAAW,kBAEjB,OAIN5jB,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KAC3BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACRhK,IAAAC,cAAC4I,KAAI,KACD7I,IAAAC,cAACoX,IAAG,KACArX,IAAAC,cAACqX,IAAG,KACNtX,IAAAC,cAAC4I,KAAKke,MAAK,CAAC7N,GAAI7B,IACd2P,UAAU,qBAEVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAK,aAG9Crb,IAAAC,cAACqX,IAAG,CAAE6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KAC7Brb,IAAAC,cAACmP,KAAM,CACH+X,iBAAkB1mB,SAASC,KAE3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZtC,SAAO,EACPplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASE,WAAY,IAAI9T,KAC/B,SAAC2Z,GAAG,MAAM,CACR3nB,MAAO2nB,EACPjY,MAAOiY,MAGX9X,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,WACAxI,GACA,IAGJlN,UACqB,QAAnByW,EAAAhmB,KAAKZ,MAAMykB,gBAAQ,IAAAmC,OAAA,EAAnBA,EAAqBpE,WAAY,IACjC9T,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,YAOfK,IAAAC,cAAC4I,KAAKke,MAAK,CACT7N,GAAI7B,IACJ2P,UAAU,qBAEVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAK,QAG9Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KAC1Brb,IAAAC,cAACmP,KAAM,CACL+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASvC,MAAO,IAAIrR,KAC1B,SAAC2Z,GAAG,MAAM,CACR3nB,MAAO2nB,EACPjY,MAAOiY,MAGXvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,MACAxI,GACA,IAGJlN,UAEuB,QAAnB0W,EAAAjmB,KAAKZ,MAAMykB,gBAAQ,IAAAoC,OAAA,EAAnBA,EAAqB9G,MAAO,IAC5BrR,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,OACF,OAKfK,IAAAC,cAAC4I,KAAKke,MAAK,CACT7N,GAAI7B,IACJ2P,UAAU,sBAEVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAK,SAG9Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KAC1Brb,IAAAC,cAACmP,KAAM,CACL+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZ7X,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,OACAxI,GACA,IAGJyI,SAAS,EACTplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASM,OAAQ,IAAIlU,KAC3B,SAAC2Z,GAAG,MAAM,CACR3nB,MAAO2nB,EACPjY,MAAOiY,MAGXlY,UACqB,QAAnB2W,EAAAlmB,KAAKZ,MAAMykB,gBAAQ,IAAAqC,OAAA,EAAnBA,EAAqBlE,OAAQ,IAC7BlU,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,UAK8B,MAA5C0K,KAAmBC,QAAQ,cAC5BtK,IAAAC,cAAC4I,KAAKke,MAAK,CACT7N,GAAI7B,IACJ2P,UAAU,sBAGVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CAACC,QAAM,EAAC/L,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAAK,iBAG9Crb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,KAAMC,GAAI,IAAKC,GAAI,KAC1Brb,IAAAC,cAACmP,KAAM,CACL+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QACS,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASI,cAAe,IACxBhU,KAAI,SAAC2Z,GAAG,MAAM,CACd3nB,MAAO2nB,EACPjY,MAAOiY,MAETvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,cACAxI,GACA,IAGJlN,UAEuB,QAAnB4W,EAAAnmB,KAAKZ,MAAMykB,gBAAQ,IAAAsC,OAAA,EAAnBA,EACIrE,cAAe,IACnBhU,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,OACF,OAIA,GACfK,IAAAC,cAAA,OACEiP,UAAU,YACVpO,MAAO,CAAEqO,MAAO,UAEhBnP,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,wBACV7M,QAAS,WACP+K,EAAKqO,eAER,SAEQ,WAETzb,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,wBACV7M,QAAS,WACP+K,EAAKhO,SACH,CAAEoiB,QAlahB,CAC5BE,SAAU,GACVE,YAAa,GACbE,KAAM,GACN7C,IAAK,MA+ZqC,WACE7R,EAAKmU,kBACLnU,EAAKqO,kBAIZ,gBAWnBzb,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KACzBjZ,KAAK2pB,qBACJ,KAEFzpB,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,8CAE9CnZ,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,UAClByU,EACC5jB,IAAAC,cAAA,WAAM2jB,EAAW,kBAEjB,OAIN5jB,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KAC3BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACRhK,IAAAC,cAAC4I,KAAI,KACH7I,IAAAC,cAACoX,IAAG,KACFrX,IAAAC,cAACqX,IAAG,KACFtX,IAAAC,cAAC4I,KAAKke,MAAK,CACT7N,GAAI7B,IACJ2P,UAAU,qBAEVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CACTC,QAAM,EACN/L,GAAI,IACJC,GAAI,IACJC,GAAI,KACL,aAGDrb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,IAAKC,GAAI,IAAKC,GAAI,KACzBrb,IAAAC,cAACmP,KAAM,CACL+X,iBAAkB1mB,SAASC,KAE3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZtC,SAAO,EACPplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASE,WAAY,IAAI9T,KAC/B,SAAC2Z,GAAG,MAAM,CACR3nB,MAAO2nB,EACPjY,MAAOiY,MAGX9X,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,WACAxI,GACA,IAGJlN,UACqB,QAAnB6W,EAAApmB,KAAKZ,MAAMykB,gBAAQ,IAAAuC,OAAA,EAAnBA,EAAqBxE,WAAY,IACjC9T,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,WAMjBK,IAAAC,cAACqX,IAAG,KACFtX,IAAAC,cAAC4I,KAAKke,MAAK,CACT7N,GAAI7B,IACJ2P,UAAU,qBAEVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CACTC,QAAM,EACN/L,GAAI,IACJC,GAAI,IACJC,GAAI,KACL,QAGDrb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,IAAKC,GAAI,IAAKC,GAAI,KACzBrb,IAAAC,cAACmP,KAAM,CACL+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASvC,MAAO,IAAIrR,KAC1B,SAAC2Z,GAAG,MAAM,CACR3nB,MAAO2nB,EACPjY,MAAOiY,MAGXvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,MACAxI,GACA,IAGJlN,UAEuB,QAAnB8W,EAAArmB,KAAKZ,MAAMykB,gBAAQ,IAAAwC,OAAA,EAAnBA,EAAqBlH,MAAO,IAC5BrR,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,OACF,SAOnBK,IAAAC,cAACoX,IAAG,KACFrX,IAAAC,cAACqX,IAAG,KACFtX,IAAAC,cAAC4I,KAAKke,MAAK,CACT7N,GAAI7B,IACJ2P,UAAU,sBAEVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CACTC,QAAM,EACN/L,GAAI,IACJC,GAAI,IACJC,GAAI,KACL,SAGDrb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,IAAKC,GAAI,IAAKC,GAAI,KACzBrb,IAAAC,cAACmP,KAAM,CACL+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EACZ7X,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,OACAxI,GACA,IAGJyI,SAAS,EACTplB,QAAe,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASM,OAAQ,IAAIlU,KAC3B,SAAC2Z,GAAG,MAAM,CACR3nB,MAAO2nB,EACPjY,MAAOiY,MAGXlY,UACqB,QAAnB+W,EAAAtmB,KAAKZ,MAAMykB,gBAAQ,IAAAyC,OAAA,EAAnBA,EAAqBtE,OAAQ,IAC7BlU,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,WAMjBK,IAAAC,cAACqX,IAAG,KACyC,MAA5CjN,KAAmBC,QAAQ,cAC1BtK,IAAAC,cAAC4I,KAAKke,MAAK,CACT7N,GAAI7B,IACJ2P,UAAU,sBAEVhnB,IAAAC,cAAC4I,KAAKoe,MAAK,CACTC,QAAM,EACN/L,GAAI,IACJC,GAAI,IACJC,GAAI,KACL,iBAGDrb,IAAAC,cAACqX,IAAG,CAAC6D,GAAI,IAAKC,GAAI,IAAKC,GAAI,KACzBrb,IAAAC,cAACmP,KAAM,CACL+X,iBAAkB1mB,SAASC,KAC3B0mB,mBAAmB,EACnBC,YAAavnB,KAAKyhB,gBAClB+F,cAAY,EAEZ1nB,QACS,OAAP4hB,QAAO,IAAPA,OAAO,EAAPA,EAASI,cAAe,IACxBhU,KAAI,SAAC2Z,GAAG,MAAM,CACd3nB,MAAO2nB,EACPjY,MAAOiY,MAETvC,SAAS,EACTvV,SAAU,SAAC8M,GAAM,OACfnP,EAAK2X,cACH,cACAxI,GACA,IAGJlN,UAEuB,QAAnBgX,EAAAvmB,KAAKZ,MAAMykB,gBAAQ,IAAA0C,OAAA,EAAnBA,EACIzE,cAAe,IACnBhU,KAAI,SAACjO,GAAG,MAAM,CACdC,MAAOD,EACP2P,MAAO3P,OACF,OAIC,KAGpBK,IAAAC,cAACoX,IAAG,KACFrX,IAAAC,cAACqX,IAAG,KACFtX,IAAAC,cAAA,OACEiP,UAAU,YACVpO,MAAO,CAAEqO,MAAO,UAEhBnP,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,wBACV7M,QAAS,WACP+K,EAAKqO,eAER,SAEQ,WAETzb,IAAAC,cAAA,UACEqB,KAAK,SACL4N,UAAU,wBACV7M,QAAS,WACP+K,EAAKhO,SACH,CAAEoiB,QArpBhB,CAC5BE,SAAU,GACVE,YAAa,GACbE,KAAM,GACN7C,IAAK,MAkpBqC,WACE7R,EAAKmU,kBACLnU,EAAKqO,kBAIZ,kBAerBzb,IAAAC,cAAA,WACAD,IAAAC,cAACooB,GAAQ,CAACte,KAAMya,GAAgB,cArqB7B,CAASlkB,aA+qBfpC,eAAQkrB,I,0BCjqBvB,IAGMW,GAAU,SAAAvrB,GAOd,SAAAurB,EAAY1pB,GAAQ,IAAD5B,E,MAQgD,OARhDC,YAAA,KAAAqrB,G,EACjB,K,EAAAA,E,EAAA,CAAM1pB,G,kBAAN5B,E,iGANFS,MAAQ,CACNsM,aAAa,EACbzC,SAAS,GACVtK,EAgBDgN,SAAW,WACThN,EAAKW,SAAS,CAAEoM,aAAa,IAC7B,IAAM4F,EAAa3D,YAAchP,EAAK4B,MAAOsM,KACrCqd,EAAgBvrB,EAAKS,MAArB8qB,YACR,GAAIA,EAAYC,SAAS,UA2BvBxrB,EAAKW,SAAS,CAACoM,aAAa,EAAO0e,cAAe,0CA1BpD,CACE,IAAI3e,EAGE4e,EAFN,GAAGH,EAAYC,SAAS,KAGtBE,EAAUH,EAAYliB,MAAM,EAAGkiB,EAAYnO,QAAQ,MACnDtQ,EAAMhP,YAAkB6U,EAAW+Y,EAAQ,KAAK5f,aAAaD,QAAQ,kBAIrEiB,EAAMhP,YAAkB6U,EAAW4Y,EAAY,KAAKzf,aAAaD,QAAQ,aAE3Eb,IAAMC,IAAI6B,EAAK,CACb5B,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,GACLxN,EAAK2rB,YAAYne,EAASlC,KAAKC,KAAOiC,EAASlC,KAAKC,KAAO,KAAM,OACjEvL,EAAKW,SAAS,CAAEoM,aAAa,EAAOwe,YAAa,sCAChD,SAAC7f,GACF1L,EAAKW,SAAS,CAAEoM,aAAa,EAAOwe,YAAa,wCAOxDvrB,EAGD2rB,YAAc,SAACrgB,EAAMsQ,GACnB,GAAKtQ,GAASsQ,EAad,OAAQA,GACN,KAAK3O,IAAaC,KAChBlN,EAAKW,SAAS,CAAEirB,YAAatgB,EAAMugB,YAAY,IAC/C,MACF,KAAK5e,IAAaE,QAChBnN,EAAKW,SAAS,CAAEmrB,eAAgBxgB,EAAMugB,YAAY,IAClD,MACF,KAAK5e,IAAaG,eAChBpN,EAAKW,SAAS,CAAEorB,UAAWzgB,EAAMugB,YAAY,IAC7C,MACF,KAAK5e,IAAaK,sBAChBtN,EAAKW,SAAS,CAAEqrB,UAAW1gB,EAAMugB,YAAY,IAC7C,MACF,KAAK5e,IAAaI,UAChB,IAAI4e,EAAO3gB,GAAQ,GACnBtL,EAAKW,SAAS,CACZmrB,eAAgBG,EAAKC,WACrBH,UAAWE,EAAKtB,gBAChBwB,uBAAwBF,EAAKG,gBAC7BP,YAAY,IAEd,MACF,QACE,IAAIxgB,EAAMC,GAAQ,GAClBtL,EAAKW,SAAS,CACZirB,YAAavgB,EAAIghB,KACjBP,eAAgBzgB,EAAI6gB,WACpBH,UAAW1gB,EAAIsf,gBACf2B,gBAAiBjhB,EAAIkhB,gBACrBJ,uBAAwB9gB,EAAI+gB,gBAC5BP,YAAY,SA1ChB7rB,EAAKW,SAAS,CACZirB,iBAAa3Y,EACb6Y,oBAAgB7Y,EAChB8Y,eAAW9Y,EACXqZ,qBAAiBrZ,EACjB+Y,eAAW/Y,EACXkZ,4BAAwBlZ,EACxB4Y,YAAY,KAzDhB7rB,EAAKS,MAAQ,CACX8qB,YAAa,iCACbE,cAAe,GACf1e,aAAa,GAGf/M,EAAKwsB,qBAAuBxsB,EAAKwsB,qBAAqBrM,KAAIngB,GAAOA,EAClE,OAAAgB,YAAAsqB,EAAAvrB,GAAAkB,YAAAqqB,EAAA,EAAApqB,IAAA,uBAAAC,MACD,SAAqB2C,GACnBzC,KAAKV,SAAS,CAAE4qB,YAAaznB,EAAE2N,OAAOtQ,UACvC,CAAAD,IAAA,SAAAC,MAwFD,WACE,IAeIsrB,EAMAC,EArBJ7f,EAQIxL,KAAKZ,MAPPqrB,EAAcjf,EAAdif,eACAF,EAAW/e,EAAX+e,YACAG,EAASlf,EAATkf,UACAO,EAAezf,EAAfyf,gBACAH,EAAsBtf,EAAtBsf,uBACAH,EAASnf,EAATmf,UACAH,EAAUhf,EAAVgf,WAGIlZ,EAAa3D,YAAc3N,KAAKO,MAAOsM,KAQ3Cue,EAFC7rB,YALQ,UAEG,0BAWZ8rB,EAFC9rB,YAVQ,WAEG,+BAad,IAAI+rB,EACFd,GACkC,KAAjCC,GAAkB,IAAI1rB,SACtBwrB,GAC4B,KAA5BG,GAAa,IAAI3rB,QACiB,KAAlCksB,GAAmB,IAAIlsB,QACK,KAA5B4rB,GAAa,IAAI5rB,QACwB,KAAzC+rB,GAA0B,IAAI/rB,OACxB2M,EAAgB1L,KAAKZ,MAArBsM,YACT,OACExL,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC2Y,EAAM,MACP5Y,IAAAC,cAAA,OAAKa,MAAO,CAAE4S,gBAAiB,SAAWxE,UAAU,mBAClDlP,IAAAC,cAAA,OAAKiP,UAAU,aACblP,IAAAC,cAAC4I,KAAI,CAAC4C,SAAU3L,KAAKsqB,cACrBpqB,IAAAC,cAAA,YACEmR,GACApR,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,SAAG,0HAIHD,IAAAC,cAACoX,IAAG,KACFrX,IAAAC,cAACqX,IAAG,CAACM,GAAI,KAAMsD,GAAI,IAAKC,GAAI,IAAKC,GAAI,IAAKC,GAAI,KAC5Crb,IAAAC,cAACwZ,EAAK,CAAC7I,IAAI,iBAEb5Q,IAAAC,cAACqX,IAAG,CAACM,GAAI,KAAMsD,GAAI,KAAMC,GAAI,KAAMC,GAAI,IAAKC,GAAI,KAAK,QAC5Crb,IAAAC,cAAA,SAAG,WAAW,KAAED,IAAAC,cAAA,WAAM,oFAG7BD,IAAAC,cAAA,WAAM,iGAGND,IAAAC,cAAA,WAAM,iOAKND,IAAAC,cAAA,WAAM,+FAGND,IAAAC,cAAA,WAAM,8IAIND,IAAAC,cAAA,aAGJD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WAAK,yEAEW,IACdD,IAAAC,cAAA,KAAG6K,KAAK,gCAA+B,gBAQ3C9K,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC+O,IAAO,CAACjG,QAASyC,GAClBxL,IAAAC,cAAA,YAEQ2qB,GAA0B,IAAI/rB,OAAS,GACvCmB,IAAAC,cAAA,WACED,IAAAC,cAAA,WACED,IAAAC,cAAA,WACED,IAAAC,cAAA,SAAG,oBAAkBmR,EAAW,KAC9BpR,IAAAC,cAAA,YAEJD,IAAAC,cAAA,OAAKa,MAAO,CAACkB,MAAO,YAAY,wDAE5BhC,IAAAC,cAAA,WACAD,IAAAC,cAAA,aAGND,IAAAC,cAAA,UAAQ1B,KAAK,kBAAkB2Q,UAAU,6DAA6DO,SAAU3P,KAAKmrB,sBACrHjrB,IAAAC,cAAA,cAAQ,mCACNH,KAAKZ,MAAM0rB,wBAA0B,IAAIhd,KAAI,SAACrL,EAAG5C,GAC3C,OAAOK,IAAAC,cAAA,UAAQN,IAAKA,EAAKC,MAAO2C,EAAE8oB,YAAa9oB,EAAE8oB,WAAW,MAAI9oB,EAAE+oB,kBAG1EtrB,IAAAC,cAAA,WACED,IAAAC,cAAA,WACED,IAAAC,cAAA,UAAQqB,KAAK,SAASe,QAASvC,KAAK2L,SAAUyD,UAAU,yBAAwB,WAElFlP,IAAAC,cAAA,WACAH,KAAKZ,MAAMgrB,eAAiBlqB,IAAAC,cAAA,OAAKa,MAAO,CAACkB,MAAO,YAAalC,KAAKZ,MAAMgrB,kBAMpFlqB,IAAAC,cAAA,YACQ8qB,GAAmB,IAAIlsB,OAAS,GAChCmB,IAAAC,cAACub,GAAW,CAACzR,KAAMghB,MAGzBP,GAAaF,IAAec,IAAWR,IAA2BG,GACpE/qB,IAAAC,cAAA,YACKsqB,GAAkB,IAAI1rB,OAAS,GAChCmB,IAAAC,cAAA,WAAKD,IAAAC,cAAC4a,GAAO,CAACR,KAAK,UAAUxH,QAAS0X,IAAkB,IAACvqB,IAAAC,cAAA,YAa3DD,IAAAC,cAACsrB,KAAI,KACCvrB,IAAAC,cAACurB,KAAO,KACNxrB,IAAAC,cAACwrB,KAAG,KAAEP,IAGRlrB,IAAAC,cAACyrB,KAAQ,KACNrB,GAAerqB,IAAAC,cAAC0c,GAAQ,CAAC5S,KAAM,CAACsgB,MAC7BI,GAAa,IAAI5rB,OAAS,GAC1BmB,IAAAC,cAAC2Z,GAAoB,CAAC7P,KAAM0gB,KAE5BF,GAAkB,IAAI1rB,OAAS,GAC/BmB,IAAAC,cAAC8gB,GAAc,CAAChX,KAAMwgB,OASrCC,GACDxqB,IAAAC,cAAA,WACED,IAAAC,cAAC4a,GAAO,CAACR,KAAK,SAASxH,QAAS2X,IAChCxqB,IAAAC,cAAA,WACGD,IAAAC,cAACsrB,KAAI,CAACI,aAAc,GACjB3rB,IAAAC,cAACurB,KAAO,MACNjB,GAAkB,IAAI1rB,OAAS,GAC7BmB,IAAAC,cAACwrB,KAAG,KAAEP,GAERlrB,IAAAC,cAACwrB,KAAG,KAAEN,KAENZ,GAAkB,IAAI1rB,OAAS,GAC/BmB,IAAAC,cAACyrB,KAAQ,KACP1rB,IAAAC,cAAC8gB,GAAc,CAAChX,KAAMwgB,KAG1BvqB,IAAAC,cAACyrB,KAAQ,KACP1rB,IAAAC,cAACmpB,GAAe,CAACrf,KAAMygB,OAM9BY,GACCprB,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKiP,UAAU,uBAAuBW,KAAK,SAAQ,6FAEjB,KAElC7P,IAAAC,cAAA,OAAKiP,UAAU,sBAAsBW,KAAK,SACxC7P,IAAAC,cAAA,MAAIiP,UAAU,iBAAgB,gCAG9BlP,IAAAC,cAAA,SAAG,qaAUHD,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAGiP,UAAU,QAAO,2RAQpBlP,IAAAC,cAAA,SAAG,eACY,IACbD,IAAAC,cAAA,KACE6K,KAAK,wCACLoF,OAAO,eACR,cAEI,IAAI,sKAWvBlQ,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKiP,UAAU,4BACblP,IAAAC,cAAC6P,IAAI,CAAChP,MAAO,CAAEkB,MAAO,WAAc+N,GAAG,yBACrC/P,IAAAC,cAAA,SAAG,+BAGPD,IAAAC,cAAA,iBA7VM,CAASD,IAAMM,WAoWhBgQ,eAAWyZ,I,8ICqYX7rB,oBAtvBf,WACE,OAEE8B,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,WACAD,IAAAC,cAAC2Y,EAAM,MACL5Y,IAAAC,cAAA,OAAKa,MAAO,CAAE+X,YAAa,SACzB7Y,IAAAC,cAAA,WACAD,IAAAC,cAACgP,IAAK,MACNjP,IAAAC,cAAA,aAGJD,IAAAC,cAACqW,IAAS,KACRtW,IAAAC,cAACqZ,IAAK,CAACpK,UAAU,SACflP,IAAAC,cAAA,SACED,IAAAC,cAAA,SAAG,6CAA8C,iYASrDD,IAAAC,cAACwrB,KAAInV,UAAS,CAAC9U,GAAG,oBAAoBuX,iBAAiB,SACrD/Y,IAAAC,cAACoX,IAAG,KACFrX,IAAAC,cAACqX,IAAG,CAAC4D,GAAI,GACPlb,IAAAC,cAAC2rB,KAAG,CAAC9D,QAAQ,QAAQ5Y,UAAU,eAC7BlP,IAAAC,cAAC2rB,KAAIC,KAAI,KACP7rB,IAAAC,cAAC2rB,KAAI9b,KAAI,CAACqJ,SAAS,SAAQ,sBAE7BnZ,IAAAC,cAAC2rB,KAAIC,KAAI,KACP7rB,IAAAC,cAAC2rB,KAAI9b,KAAI,CAACqJ,SAAS,UAAS,gBAE9BnZ,IAAAC,cAAC2rB,KAAIC,KAAI,KACP7rB,IAAAC,cAAC2rB,KAAI9b,KAAI,CAACqJ,SAAS,SAAQ,wBAE7BnZ,IAAAC,cAAC2rB,KAAIC,KAAI,KACP7rB,IAAAC,cAAC2rB,KAAI9b,KAAI,CAACqJ,SAAS,UAAS,6CAMlCnZ,IAAAC,cAACqX,IAAG,CAAC4D,GAAI,GACPlb,IAAAC,cAACwrB,KAAIK,QAAO,KACV9rB,IAAAC,cAACwrB,KAAIM,KAAI,CAAC5S,SAAS,SACjBnZ,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC+rB,KAAS,CAAClE,QAAQ,QAAQhnB,MAAO,CAAEiT,SAAU,SAC5C/T,IAAAC,cAAC+rB,KAAUH,KAAI,KAAC,6MAMhB7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,qHAKP7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,2GAE+C,KAEtD7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KAAC,8PAOhB7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,IAEL7rB,IAAAC,cAAA,SACAD,IAAAC,cAAC6P,IAAI,CAACC,GAAG,yBAAwB,eAC5B,IAAI,mDAMnB/P,IAAAC,cAACwrB,KAAIM,KAAI,CAAC5S,SAAS,UACjBnZ,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC+rB,KAAS,CAAClE,QAAQ,QAAQhnB,MAAO,CAAEiT,SAAU,SAC5C/T,IAAAC,cAAC+rB,KAAUH,KAAI,KAAC,yIAKhB7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,mLAMP7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,2JAG2C,KAElD7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,wHAKP7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,kIAKP7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,gGAIP7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IACD7rB,IAAAC,cAAA,SAAG,gBAAgB,0QAKD,KAEpBD,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,4HAQf7rB,IAAAC,cAACwrB,KAAIM,KAAI,CAAC5S,SAAS,SACjBnZ,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC+rB,KAAS,CAAClE,QAAQ,QAAQhnB,MAAO,CAAEiT,SAAU,SAC5C/T,IAAAC,cAAC+rB,KAAUH,KAAI,KAAC,+FAIhB7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,2DAGP7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,6DACiD,KAExD7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,mGAOf7rB,IAAAC,cAACwrB,KAAIM,KAAI,CAAC5S,SAAS,UACjBnZ,IAAAC,cAAC+Y,IAAI,KACDhZ,IAAAC,cAAC+rB,KAAS,CAAClE,QAAQ,QAAQhnB,MAAO,CAAEiT,SAAU,SAC5C/T,IAAAC,cAAC+rB,KAAUH,KAAI,KAAC,iEAEN7rB,IAAAC,cAAA,SAAG,wBAAwB,OAErCD,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IACD7rB,IAAAC,cAAA,SAAG,oBAAoB,uBAAoBD,IAAAC,cAAA,SAAG,QAAS,IAAI,6BAG7DD,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,0FAE6B,KAEpC7rB,IAAAC,cAAC+rB,KAAUH,KAAI,KACZ,IAAI,mIAYvB7rB,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KAC1B/Y,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,6BAGhDnZ,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KAC3BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACRhK,IAAAC,cAAC6Y,IAAS,CAACC,iBAAiB,KAC1B/Y,IAAAC,cAAC+Y,IAAI,KACHhZ,IAAAC,cAAC6Y,IAAUG,OAAM,CAACC,GAAIF,IAAKhC,OAAQmC,SAAS,KAAI,gGAIhDnZ,IAAAC,cAAC6Y,IAAUM,SAAQ,CAACD,SAAS,KAC3BnZ,IAAAC,cAAC+Y,IAAKhP,KAAI,KACRhK,IAAAC,cAAA,OAAKuB,GAAG,YAAY0N,UAAU,eAC5BlP,IAAAC,cAAA,OAAKiP,UAAU,SACblP,IAAAC,cAAA,OAAKiP,UAAU,iBACblP,IAAAC,cAAA,MAAIiP,UAAU,eACZlP,IAAAC,cAAA,KACE6K,KAAK,gBACLoE,UAAU,mBACVQ,cAAY,WACZuc,cAAY,cAEdjsB,IAAAC,cAAA,SAAG,mDAIPD,IAAAC,cAAA,OACEuB,GAAG,eACH0N,UAAU,8BAEVlP,IAAAC,cAAA,OAAKiP,UAAU,cACblP,IAAAC,cAAA,SAAG,+RAOsB,IACvBD,IAAAC,cAAA,SAAG,4FAIC,wGAQZD,IAAAC,cAAA,OAAKiP,UAAU,SACblP,IAAAC,cAAA,OAAKiP,UAAU,iBACblP,IAAAC,cAAA,MAAIiP,UAAU,eACZlP,IAAAC,cAAA,KACE6K,KAAK,gBACLoE,UAAU,6BACVQ,cAAY,WACZuc,cAAY,cAEbjsB,IAAAC,cAAA,SAAG,8CAIRD,IAAAC,cAAA,OACEuB,GAAG,eACH0N,UAAU,2BAEVlP,IAAAC,cAAA,OAAKiP,UAAU,cACblP,IAAAC,cAAA,SAAG,gRAQHD,IAAAC,cAAA,SAAG,8FAGE,IAAI,6IAITD,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,OAELD,IAAAC,cAAA,SAAG,+FAGE,IAAI,8QAOTD,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,OAELD,IAAAC,cAAA,SAAG,4FAGE,IAAI,2IAITD,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,OAELD,IAAAC,cAAA,SAAG,kGAIE,IAAI,sPAOTD,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,OAELD,IAAAC,cAAA,SAAG,8FAGE,IAAI,0EAGTD,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,OAELD,IAAAC,cAAA,SAAG,sJAKE,IAAI,kEAGTD,IAAAC,cAAA,SACED,IAAAC,cAAA,SAAG,2GAIE,IAAI,iJAIKD,IAAAC,cAAA,SAAG,gBAAgB,uGAKnCD,IAAAC,cAAA,SAAG,gPAMY,IACbD,IAAAC,cAAA,SAAG,kCAAkC,sCAGvCD,IAAAC,cAAA,SAAG,uhBAaU,QAKnBD,IAAAC,cAAA,OAAKiP,UAAU,SACblP,IAAAC,cAAA,OAAKiP,UAAU,iBACblP,IAAAC,cAAA,MAAIiP,UAAU,eACZlP,IAAAC,cAAA,KACE6K,KAAK,kBACLoE,UAAU,6BACVQ,cAAY,WACZuc,cAAY,cAEdjsB,IAAAC,cAAA,SAAG,kDAIPD,IAAAC,cAAA,OACEuB,GAAG,iBACH0N,UAAU,2BAEVlP,IAAAC,cAAA,OAAKiP,UAAU,cACblP,IAAAC,cAAA,SAAG,wLAI6C,IAC9CD,IAAAC,cAAA,SAAG,4CAEC,+GAKND,IAAAC,cAAA,UACED,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,gBAAiB,IAAI,6EAG7ClP,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,QAGPD,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,sBAEnB,IAAI,sGAITlP,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,QAGPD,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,qBAEnB,IAAI,kJAKTlP,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,QAGPD,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,sBAEnB,IAAI,qSAQTlP,IAAAC,cAAA,cACED,IAAAC,cAAA,SAAG,QAGPD,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,oDAGnB,IAAI,mKAOblP,IAAAC,cAAA,SAAG,gDAC6C,IAC9CD,IAAAC,cAAA,SAAG,0BAA0B,+EAOrCD,IAAAC,cAAA,OAAKiP,UAAU,SACblP,IAAAC,cAAA,OAAKiP,UAAU,iBACblP,IAAAC,cAAA,MAAIiP,UAAU,eACZlP,IAAAC,cAAA,KACE6K,KAAK,iBACLoE,UAAU,6BACVQ,cAAY,WACZuc,cAAY,cAEdjsB,IAAAC,cAAA,SAAG,4DAIPD,IAAAC,cAAA,OACEuB,GAAG,gBACH0N,UAAU,2BAEVlP,IAAAC,cAAA,OAAKiP,UAAU,cACblP,IAAAC,cAAA,SAAG,2fAcHD,IAAAC,cAAA,SAAG,6BAC0B,IAC3BD,IAAAC,cAAA,SAAG,2BAA2B,qCACH,IAC3BD,IAAAC,cAAA,SAAG,4BAA4B,sCACZD,IAAAC,cAAA,SAAG,wBAAyB,IAAI,yDAEnCD,IAAAC,cAAA,SAAG,yBACnBD,IAAAC,cAAA,OACE2Q,IAAKsb,KACLtc,MAAM,KACNc,OAAO,KACPI,IAAI,gBACJ,8BAGJ9Q,IAAAC,cAAA,KAAGiP,UAAU,YAAW,kCAEnB,IAAI,2FAGTlP,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAGiP,UAAU,YAAW,iCAEnB,IAAI,uNAMTlP,IAAAC,cAAA,WAAM,2GAGSD,IAAAC,cAAA,WACfD,IAAAC,cAAA,KAAGiP,UAAU,YAAW,mCAEnB,IAAI,2DAGTlP,IAAAC,cAAA,SAAG,6HAG0C,IAC3CD,IAAAC,cAAA,SAAG,2CAA4C,IAAI,6EAIrDD,IAAAC,cAAA,KAAGiP,UAAU,YAAW,kEAIxBlP,IAAAC,cAAA,SAAG,sMAMC,4JAIkB,IACtBD,IAAAC,cAAA,SAAG,4BAA4B,kKAK/BD,IAAAC,cAAA,WAAM,2IAIND,IAAAC,cAAA,WAAM,2FAGND,IAAAC,cAAA,WAAM,mCAEND,IAAAC,cAAA,WAAM,yWASND,IAAAC,cAAA,WAAM,kFAGND,IAAAC,cAAA,OACE2Q,IAAKub,KACLvc,MAAM,MACNc,OAAO,KACPI,IAAI,gBACJ,gDAEF9Q,IAAAC,cAAA,OACE2Q,IAAKwb,KACLxc,MAAM,KACNc,OAAO,KACPI,IAAI,gBACJ,4DAGF9Q,IAAAC,cAAA,OACE2Q,IAAKwb,KACLxc,MAAM,KACNc,OAAO,KACPI,IAAI,gBACJ,gIAIF9Q,IAAAC,cAAA,WACAD,IAAAC,cAAA,WAAM,4EAGND,IAAAC,cAAA,OACE2Q,IAAKyb,KACLzc,MAAM,KACNc,OAAO,KACPI,IAAI,gBAEN9Q,IAAAC,cAAA,cAIND,IAAAC,cAAA,OAAKiP,UAAU,SACflP,IAAAC,cAAA,OAAKiP,UAAU,iBACXlP,IAAAC,cAAA,MAAIiP,UAAU,eACZlP,IAAAC,cAAA,KACE6K,KAAK,gBACLoE,UAAU,6BACVQ,cAAY,WACZuc,cAAY,cAEXjsB,IAAAC,cAAA,SAAG,gGAKVD,IAAAC,cAAA,OACEuB,GAAG,eACH0N,UAAU,8BAEVlP,IAAAC,cAAA,OAAKiP,UAAU,cACblP,IAAAC,cAAA,SAAG,qCACkC,IACnCD,IAAAC,cAAA,SAAG,0FAIC,4EAEyB,IAC7BD,IAAAC,cAAA,SAAG,+BAEDD,IAAAC,cAAA,OACE2Q,IAAK0b,KACL1c,MAAM,KACNc,OAAO,KACPI,IAAI,uBACJ,0BAEA,mHAKN9Q,IAAAC,cAAA,SAAG,kEAIHD,IAAAC,cAAA,SAAG,yCAAyC,oDAE5CD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,8DAEWD,IAAAC,cAAA,YAAM,MAAiB,WAChC,IAAI,2CAETD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,0BAAuBD,IAAAC,cAAA,YAAM,MAAiB,WAAW,6EAG5DD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,0BAAuBD,IAAAC,cAAA,YAAM,MAAiB,WAAW,gGAG5DD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,+BAA4BD,IAAAC,cAAA,YAAM,MAAiB,WAAW,wEAGjED,IAAAC,cAAA,cAIND,IAAAC,cAAA,OAAKiP,UAAU,SACblP,IAAAC,cAAA,OAAKiP,UAAU,iBACblP,IAAAC,cAAA,MAAIiP,UAAU,eACZlP,IAAAC,cAAA,KACE6K,KAAK,kBACLoE,UAAU,6BACVQ,cAAY,WACZuc,cAAY,cAEdjsB,IAAAC,cAAA,SAAG,iCAIPD,IAAAC,cAAA,OACEuB,GAAG,iBACH0N,UAAU,2BAEVlP,IAAAC,cAAA,OAAKiP,UAAU,cACblP,IAAAC,cAAA,SAAG,gDAGHD,IAAAC,cAAA,UACED,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,SAAU,IAAI,uCAGxClP,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,OAAQ,IAAI,0BAGtClP,IAAAC,cAAA,UACED,IAAAC,cAAA,KAAGiP,UAAU,YAAW,QAAS,IAAI,0C,kLCluB9B,IAErCqd,GAAS,SAAA/tB,GAAA,SAAA+tB,IAAA,IAAA9tB,EAAAC,YAAA,KAAA6tB,GAAA,QAAA5tB,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAgHZ,OAhHYP,EAAAQ,GAAA,KAAAstB,EAAA,GAAAjxB,OAAAwD,KACbI,MAAQ,CACNsK,gBAAgB,EAChBgjB,SAAU,KACVC,gBAAgB,EAChBC,YAAa,KACbC,OAAQ,KACRC,OAAQ,KACRC,OAAQ,KACRC,OAAQ,KACRC,OAAQ,KACRC,OAAQ,KACR5jB,KAAO,IACR3K,EAkBDgM,aAAe,SAAClI,GACdA,EAAEmI,iBACFL,KAAmBM,WAAW,cAC9BlM,EAAKW,SAAS,CAAEgK,KAAM,OACtBwB,MAAM,mBACNtL,OAAOuL,SAASC,KAAO,KACxBrM,EAEDwuB,YAAc,SAACrI,GACbnmB,EAAKW,SAAS,CAAEqtB,eAAgB7H,KACjCnmB,EACDyuB,YAAc,SAACtI,GACbnmB,EAAK0uB,cACL1uB,EAAKW,SAAS,CAAE2d,UAAW6H,KAC5BnmB,EAED0uB,YAAc,WACZ1uB,EAAKwuB,aAAY,IAElBxuB,EAED2uB,cAAgB,SAACC,GACf,IAAIvjB,EAAMujB,GAAM,GACZC,EAAQxjB,EAAIyjB,YAAYC,MAAM,MACtB,MAATF,IAEkB,GAAhBA,EAAMzuB,OAEPJ,EAAKW,SAAS,CAACutB,OAAQW,EAAM,GAAIV,OAAQU,EAAM,GAAIT,OAAQS,EAAM,GAAIR,OAAQQ,EAAM,GAAIP,OAAQO,EAAM,GAAIN,OAAQM,EAAM,KAIvH7uB,EAAKW,SAAS,CAACutB,OAAQW,EAAM,GAAIV,OAAQU,EAAM,GAAIT,OAAQS,EAAM,GAAIR,OAAQQ,EAAM,GAAIP,OAAQO,EAAM,GAAIN,OAAQ,QAGjHvuB,EAAKW,SAAS,CACZotB,SAAU1iB,EAAI2jB,eACdf,YAAa5iB,EAAIyjB,eAExB9uB,EAED4M,SAAW,SAAC1L,EAAI2P,EAAOjP,GACrB5B,EAAKW,SAAS,CAAEoK,gBAAgB,IAChC,IAEID,EACAmkB,EAHAJ,EAAQ3tB,EAAI6tB,MAAM,KACdG,EAAattB,EAAbstB,SAGRD,EAAaJ,EAAMzuB,OAAS,EAG5B,IAAOuM,EAAO/K,EAAP+K,MAEP7B,EAAU7M,YAAoB4wB,EAAMI,GAAanjB,aAAaD,QAAQ,aAC5D7L,EAAKS,MAAM6K,KACrB,GAAK4jB,EAcD,CACAlvB,EAAKW,SAAS,CAAEoK,gBAAgB,IAGjC,IADA,IAAIkS,EAAKjb,SAAS+N,uBAAuB,kBAChCzL,EAAI,EAAGA,EAAI2Y,EAAK7c,OAAQkE,IAC7B2Y,EAAK3Y,GAAG6qB,YAAYC,UAAU,IAAIve,GAChCoM,EAAK3Y,GAAG4L,UAAUmf,SAAS,uBAAuB1iB,IACrDsQ,EAAK3Y,GAAGgrB,cAAc,4BAA4BC,aApBtDvkB,IAAMC,IAAIH,EAAS,CACjBI,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,GACLxN,EAAK2uB,cAAcnhB,EAASlC,KAAKC,MACjCvL,EAAKW,SAAS,CAAEoK,gBAAgB,IAChC/K,EAAKwuB,aAAY,MAChB,SAAC9iB,GACF1L,EAAKW,SAAS,CAAEoK,gBAAgB,QAgBvC/K,EAAA,OAAAgB,YAAA8sB,EAAA/tB,GAAAkB,YAAA6sB,EAAA,EAAA5sB,IAAA,oBAAAC,MAjGD,WAAqB,IAADwN,EAAA,KAElB3D,IAAMC,IAAIjN,YAAc8N,aAAaD,QAAQ,aAAc,CACzDX,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GACMA,EAAIC,KAAKC,KACpBoD,EAAKhO,SAAS,CAAE2K,KAAMD,EAAIC,KAAKC,KAAMR,gBAAgB,OACpD,SAACW,GACFiD,EAAKhO,SAAS,CAAE2K,KAAM,KAAMP,gBAAgB,SAGjD,CAAA7J,IAAA,SAAAC,MAsFD,WAAU,IAADsO,EAAA,KACP5C,EAA2CxL,KAAKZ,MAAxCsK,EAAc8B,EAAd9B,eAAgBO,EAAIuB,EAAJvB,KAAMyiB,EAAQlhB,EAARkhB,SAEpB5W,EADY9V,KAAKO,MAApBD,WAED,CACA,CACE4K,KAAM,IACN6K,UAAW,GACXkG,YAAa,CACXjC,QAAQ,GAEV/D,UAAW,SAACC,EAAKG,EAAMrI,GACrB,OACE9N,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAK8X,gBACxBjuB,IAAAC,cAAA,SAAG,4BACGD,IAAAC,cAAC6P,IAAI,CAAChP,MAAO,CAACkB,MAAO,WAAY+N,GAAIC,YAAkBmG,EAAK8X,iBACzD9X,EAAK8X,gBAEdjuB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,yBACFkW,EAAK+X,aACNluB,IAAAC,cAAA,eAOV,CACE,CACE4V,UAAW,iBACX7K,KAAM,kBACN+K,UAAW,SAACC,GAAG,OACXhW,IAAAC,cAAA,WACID,IAAAC,cAAC6P,IAAI,CAAChP,MAAO,CAACkB,MAAO,WAAY+N,GAAIC,YAAkBgG,IAClDA,KAIbF,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,eACX7K,KAAM,eACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,UAItB3C,EAAyDnN,KAAKZ,MAAxDytB,EAAM1f,EAAN0f,OAAOC,EAAM3f,EAAN2f,OAAQC,EAAM5f,EAAN4f,OAAOC,EAAM7f,EAAN6f,OAAOC,EAAM9f,EAAN8f,OAAOC,EAAM/f,EAAN+f,OAAW/f,EAAJ7D,KAMrD,OACEpJ,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC2Y,EAAM,MACP5Y,IAAAC,cAAA,OAAKa,MAAO,CAAE+X,YAAa,SACzB7Y,IAAAC,cAAA,WACAD,IAAAC,cAACgP,IAAK,MACNjP,IAAAC,cAAA,YAEFD,IAAAC,cAAA,OAAKa,MAAO,CAAE4S,gBAAiB,SAAWxE,UAAU,mBAClDlP,IAAAC,cAAC+O,IAAO,CAACjG,QAASS,GAClBxJ,IAAAC,cAAA,OAAKiP,UAAU,OACXlP,IAAAC,cAAA,OAAKiP,UAAU,YAAW,mBACAlP,IAAAC,cAAA,QAAMuB,GAAG,kBAAiB,qBAGxDxB,IAAAC,cAAA,WAAKD,IAAAC,cAAA,YAELD,IAAAC,cAAA,OAAKiP,UAAU,aAEPlP,IAAAC,cAACkuB,KAAQ,CAACpkB,KAAMA,EAAMqkB,aAAc,IACpCC,iBAAiB,EACjBC,WAAW,EACXC,YAAa,SAAFpiB,GAAiC,IAA5BxM,EAAGwM,EAAHxM,IAAK2P,EAAKnD,EAALmD,MAAUjP,EAAKmuB,aAAAriB,EAAAsiB,IAChCvgB,EAAK7C,SAAS1L,EAAI2P,EAAMjP,IAE5BquB,4BAA4B,KAGlClC,GACExsB,IAAAC,cAAC4W,IAAK,CAACC,KAAMhX,KAAKZ,MAAMutB,eAAgBvV,OAAQpX,KAAKqtB,YAAawB,aAAc7uB,KAAKmtB,YAC/E7X,KAAK,KACLuD,kBAAgB,gCAChBiW,UAAQ,GACR5uB,IAAAC,cAAC4W,IAAMG,OAAM,CAACC,aAAW,GACrBjX,IAAAC,cAAC4W,IAAMmJ,MAAK,CAACxe,GAAG,iBAAgB,kCAIpCxB,IAAAC,cAAC4W,IAAM7M,KAAI,KACHhK,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,OAAKa,MAAO,CAAC+tB,WAAY,SAEtBlC,EAAO,IAAC3sB,IAAAC,cAAA,KAAGsB,MAAM,uBAAyB,IAAEqrB,EAAO,IAAC5sB,IAAAC,cAAA,KAAGsB,MAAM,uBAAyB,IAAEsrB,EAAO,IAAC7sB,IAAAC,cAAA,KAAGsB,MAAM,uBAAyB,IAAEurB,EAAO,IAAC9sB,IAAAC,cAAA,KAAGsB,MAAM,uBAAyB,IAAEwrB,EAAO,IAAC/sB,IAAAC,cAAA,KAAGsB,MAAM,uBAAyB,IAAEyrB,EAC7NhtB,IAAAC,cAAA,WACAD,IAAAC,cAAA,aAGJD,IAAAC,cAACD,IAAMqB,SAAQ,KACXrB,IAAAC,cAAC6X,IAAc,CACXC,SAAS,aACThO,KAAMyiB,EACN5W,QAASA,EACToC,SAAO,EACPkC,WAAYsS,EAAS3tB,OAAS,GAAKsb,YAAsBzI,KAGrE1R,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKiP,UAAU,UACXlP,IAAAC,cAAA,SAAG,+BAA4BD,IAAAC,cAAA,UAAQqB,KAAK,SAAS4N,UAAU,wBAAwB7M,QAAS,WAAF,OAAQ6L,EAAKgf,aAAY,KAAO,gBAQ9IltB,IAAAC,cAAA,WACED,IAAAC,cAAA,WACFD,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACJD,IAAAC,cAAA,OAAKiP,UAAU,4BACblP,IAAAC,cAAC6P,IAAI,CAAChP,MAAO,CAAEkB,MAAO,WAAc+N,GAAG,yBACrC/P,IAAAC,cAAA,SAAG,+BAGPD,IAAAC,cAAA,iBAvPO,CAASD,IAAMM,WAgQfpC,eAAQquB,IC7QG,IAEpBuC,GAAU,SAAAtwB,GACd,SAAAswB,EAAYzuB,GAAQ,IAAD5B,E,MAgBuC,OAhBvCC,YAAA,KAAAowB,G,EACjB,K,EAAAA,E,EAAA,CAAMzuB,G,kBAAN5B,E,iGAAsBS,MAAQ,CAC5B6vB,YAAa,GACbC,YAAa,GACbC,qBAAsB,GACtBC,aAAc,GACdC,WAAY,GACZC,MAAO,GACPC,YAAa,GACbzzB,QAAU,GACV0zB,YAAa,2BAEf7wB,EAAKS,MAAQ,CAACsK,gBAAgB,EAAM+lB,aAAc,IAClD9wB,EAAK+wB,aAAe/wB,EAAK+wB,aAAa5Q,KAAIngB,GAC1CA,EAAKyN,aAAezN,EAAKyN,aAAa0S,KAAIngB,GAC1CA,EAAKwsB,qBAAuBxsB,EAAKwsB,qBAAqBrM,KAAIngB,GAC1DA,EAAKW,SAAS,CAACkwB,YAAc,4BAA2B7wB,EACzD,OAAAgB,YAAAqvB,EAAAtwB,GAAAkB,YAAAovB,EAAA,EAAAnvB,IAAA,uBAAAC,MACD,SAAqB2C,GACnBzC,KAAKV,SAAS,CAAEkwB,YAAa/sB,EAAE2N,OAAOtQ,UACvC,CAAAD,IAAA,oBAAAC,MACD,WAAqB,IAADwN,EAAA,KAClBC,cACA5D,IAAMC,IAAIlO,YAAc+O,aAAaD,QAAQ,aAAc,CACzDX,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GACL,IACI6D,EADS7D,EAAIC,KAAKC,KACP4D,KAAI,SAACC,EAAKC,GACvB,MAAO,CAAEnO,IAAKkO,EAAIE,YAAanO,MAAOiO,EAAIG,gBAE5CZ,EAAKhO,SAAS,CAAE2K,KAAM4D,EAAKnE,gBAAgB,IAC3C4D,EAAKhO,SAAS,CAACkwB,YAAc,+BAC5B,SAACnlB,GAEFiD,EAAKhO,SAAS,CAAEoK,gBAAgB,IAChC4D,EAAKhO,SAAS,CAACkwB,YAAc,iCAGlC,CAAA3vB,IAAA,eAAAC,MAED,SAAa6vB,GACX3vB,KAAKV,SAAQ0lB,aAAC,GACX2K,EAAIvf,OAAO3R,KAAOkxB,EAAIvf,OAAOtQ,UAEjC,CAAAD,IAAA,kBAAAC,MAED,SAAgBA,GAEZ,QADY,IAAI8vB,OAAO,mSACVC,KAAK/vB,KAOrB,CAAAD,IAAA,kBAAAC,MAED,SAAgBA,GAEZ,QADY,IAAI8vB,OAAO,cACVC,KAAK/vB,KAOrB,CAAAD,IAAA,eAAAC,MAED,SAAa0M,GAAQ,IAAD4B,EAAA,KAClBpO,KAAKV,SAAS,CAAEoK,gBAAgB,IAChC,IAAA8B,EAAsHxL,KAAKZ,MAAnH6vB,EAAWzjB,EAAXyjB,YAAaC,EAAW1jB,EAAX0jB,YAAaC,EAAoB3jB,EAApB2jB,qBAAsBC,EAAY5jB,EAAZ4jB,aAAcC,EAAU7jB,EAAV6jB,WAAYC,EAAK9jB,EAAL8jB,MAAOC,EAAW/jB,EAAX+jB,YAAaC,EAAWhkB,EAAXgkB,YAEtG,GAAIA,EAAYrF,SAAS,UAqCvBnqB,KAAKV,SAAS,CAACoK,gBAAgB,EAAO8lB,YAAc,0BAA2BC,aAAc,gCAnC7F,GAAGzvB,KAAK8vB,gBAAgBR,GACxB,CACE,IAAI9lB,EAAQylB,EAAc,KAAOC,EAAc,KAAOC,EAAuB,KAAOC,EAAe,KAAOC,EAAa,KAAOC,EAAQ,KAAOC,EAAc,KAAOC,EAIlKrlB,QAAQC,IAAIZ,GACZ,IACIC,EADEsmB,EAAU,CAAE7kB,KAAM1B,GAExBC,EAAU3M,cACV6M,IAAMuU,KAAKzU,EAASsmB,EAAS,CACzBlmB,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAAC2G,GACe,GAAjBA,EAASlC,KAEVa,MAAM,6FAINA,MAAM,6CAERsD,EAAK9O,SAAS,CAAEoK,gBAAgB,EAAO8lB,YAAc,0BAA2BC,aAAc,QAC7F,SAACplB,GACF+D,EAAK9O,SAAS,CAAEoK,gBAAgB,EAAO8lB,YAAc,0BAA2BC,aAAc,aAIpGzvB,KAAKV,SAAS,CAACoK,gBAAgB,EAAQ+lB,aAAc,8CAOzDjjB,EAAM5B,mBACP,CAAA/K,IAAA,SAAAC,MAED,WACE,IAAQ4J,EAAmB1J,KAAKZ,MAAxBsK,eACR,OAEExJ,IAAAC,cAACD,IAAMqB,SAAQ,KAEbrB,IAAAC,cAAC+O,IAAO,CAACjG,QAASS,GAClBxJ,IAAAC,cAAA,OAAKa,MAAO,CAAE4S,gBAAiB,SAAWxE,UAAU,mBAClDlP,IAAAC,cAAC2Y,EAAM,MACP5Y,IAAAC,cAAA,WAAKD,IAAAC,cAAA,WACDD,IAAAC,cAAA,WACQD,IAAAC,cAAA,OAAKiP,UAAU,sBAAsBW,KAAK,SACtC7P,IAAAC,cAAA,MAAIiP,UAAU,iBAAgB,iBAG9BlP,IAAAC,cAAA,SAAG,4IAEDD,IAAAC,cAAA,WAAK,mEAWvBD,IAAAC,cAAA,WAAKD,IAAAC,cAAA,YAELD,IAAAC,cAAA,OAAKiP,UAAU,aACXlP,IAAAC,cAAA,QAAMwL,SAAU3L,KAAKoM,cACrBlM,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,OAAKiP,UAAU,aAAY,6CAI3BlP,IAAAC,cAAA,OAAKiP,UAAU,eACXlP,IAAAC,cAAA,SAAOqB,KAAK,OAAO4N,UAAU,6DAA6DtP,MAAOE,KAAKZ,MAAM6vB,YAAaxwB,KAAK,cAAckR,SAAU3P,KAAK0vB,aAAcrf,UAAQ,KAErLnQ,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKiP,UAAU,OACXlP,IAAAC,cAAA,OAAKiP,UAAU,aAAY,gEAI/BlP,IAAAC,cAAA,OAAKiP,UAAU,eACXlP,IAAAC,cAAA,YAAWiP,UAAU,6DAA6DtP,MAAOE,KAAKZ,MAAM8vB,YAAazwB,KAAK,cAAckR,SAAU3P,KAAK0vB,aAAcM,KAAM,EAAGC,KAAM,EAAG5f,UAAQ,KAoB/LnQ,IAAAC,cAAA,WACFD,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,OAAKiP,UAAU,aAAY,iCAI3BlP,IAAAC,cAAA,OAAKiP,UAAU,eACXlP,IAAAC,cAAA,SAAOqB,KAAK,OAAO4N,UAAU,6DAA6DtP,MAAOE,KAAKZ,MAAMiwB,WAAY5wB,KAAK,aAAakR,SAAU3P,KAAK0vB,aAAcrf,UAAQ,KAErLnQ,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKiP,UAAU,OACblP,IAAAC,cAAA,OAAKiP,UAAU,aAAY,mBAI3BlP,IAAAC,cAAA,OAAKiP,UAAU,eACXlP,IAAAC,cAAA,SAAOqB,KAAK,OAAO4N,UAAU,6DAA6DtP,MAAOE,KAAKZ,MAAMkwB,MAAO7wB,KAAK,QAAQkR,SAAU3P,KAAK0vB,aAAcrf,UAAQ,KAWzKnQ,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKiP,UAAU,OACflP,IAAAC,cAAA,OAAKiP,UAAU,aAAY,oBAI3BlP,IAAAC,cAAA,OAAKiP,UAAU,eACblP,IAAAC,cAAA,UAAQ1B,KAAK,kBAAkB2Q,UAAU,6DAA6DO,SAAU3P,KAAKmrB,sBAC7GjrB,IAAAC,cAAA,cAAQ,4BACNH,KAAKZ,MAAM6K,MAAQ,IAAI6D,KAAI,SAAChS,EAASkS,GAC/B,OAAO9N,IAAAC,cAAA,UAAQN,IAAKmO,EAAOlO,MAAOhE,EAAQ+D,KAAM/D,EAAQgE,YAI1EI,IAAAC,cAAA,WACED,IAAAC,cAAA,WACAD,IAAAC,cAAA,SACED,IAAAC,cAAA,SAAG,wUAKPD,IAAAC,cAAA,WACED,IAAAC,cAAA,WACCH,KAAKZ,MAAMqwB,cAAgBvvB,IAAAC,cAAA,OAAKa,MAAO,CAACkB,MAAO,YAAalC,KAAKZ,MAAMqwB,eAG1EvvB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAOqB,KAAK,SAAU1B,MAAM,SAASsP,UAAU,2BAE/ClP,IAAAC,cAAA,WACAD,IAAAC,cAAA,qBAnPA,CAASD,IAAMM,WA8PdpC,eAAQ4wB,IC9P6B,IAEhDkB,GAAe,SAAAxxB,GACnB,SAAAwxB,EAAY3vB,GAAQ,IAAD5B,E,MAIf,OAJeC,YAAA,KAAAsxB,G,EACjB,K,EAAAA,E,EAAA,CAAM3vB,G,kBAAN5B,E,iGAAsBS,MAAQ,CAC5B6vB,YAAa,GACbhlB,KAAM,IACNtL,EACH,OAAAgB,YAAAuwB,EAAAxxB,GAAAkB,YAAAswB,EAAA,EAAArwB,IAAA,oBAAAC,MACD,WAAqB,IAADwN,EAAA,KAClB3D,IAAMuU,KAAK1gB,YAAe+M,KAAmBC,QAAQ,eAAgB,CACnEX,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GACMA,EAAIC,KAAKC,KACpBoD,EAAKhO,SAAS,CAAE2K,KAAMD,EAAIC,KAAKC,UAC9B,SAACG,GACFiD,EAAKhO,SAAS,CAAE2K,KAAM,YAG3B,CAAApK,IAAA,SAAAC,MACD,WACE,OACEI,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAA,OAAKa,MAAO,CAAE4S,gBAAiB,SAAWxE,UAAU,mBAClDlP,IAAAC,cAAC2Y,EAAM,MACP5Y,IAAAC,cAAA,WAAKD,IAAAC,cAAA,WACDD,IAAAC,cAAA,WACQD,IAAAC,cAAA,OAAKiP,UAAU,sBAAsBW,KAAK,SACtC7P,IAAAC,cAAA,SAAG,sGAEDD,IAAAC,cAAA,WAAK,uFAOvBD,IAAAC,cAAA,WACJD,IAAAC,cAAA,OAAKa,MAAO,CAACC,QAAS,OAAQyY,eAAgB,SAC5CxZ,IAAAC,cAAA,WAAK,mBACDD,IAAAC,cAAC6P,IAAI,CAACZ,UAAU,wBAAwBa,GAAIC,eAAqB,iBAIrEhQ,IAAAC,cAAA,WACAD,IAAAC,cAAA,WACAD,IAAAC,cAAA,iBA/Ca,CAASD,IAAMM,WAsDnBpC,eAAQ8xB,ICnD6B,IAChDC,GAAI,SAAAzxB,GACN,SAAAyxB,EAAY5vB,GAAQ,IAAD5B,E,MAMiD,OANjDC,YAAA,KAAAuxB,G,EACjB,K,EAAAA,E,EAAA,CAAM5vB,G,kBAAN5B,E,iGACKS,MAAQ,CACX6vB,YAAa,GACbC,YAAa,IAEfvwB,EAAKS,MAAQ,CAACsK,gBAAgB,EAAM+lB,aAAc,GAAIW,QAAS,IAAGzxB,EACnE,OAAAgB,YAAAwwB,EAAAzxB,GAAAkB,YAAAuwB,EAAA,EAAAtwB,IAAA,oBAAAC,MAED,WAAqB,IAEb2J,EAFY6D,EAAA,KACZ+iB,EAAarwB,KAAKO,MAAM+vB,MAAM/e,OAAOzR,MAEzC2J,EAAUpM,YAAQgzB,EAAW,KAAK5lB,aAAaD,QAAQ,aACvDb,IAAMC,IAAIH,EAAS,CACfI,QAAOC,YAAA,GACJoC,iBAGN1G,MAAK,SAACwE,GACHsD,EAAKhO,SAAS,CAAE2K,KAAMD,EAAIC,KAAKC,KAAMR,gBAAgB,EAAO0mB,QAASC,OACtE,SAAChmB,GACAiD,EAAKhO,SAAS,CAAE2K,KAAM,KAAMP,gBAAgB,EAAO0mB,QAASC,SAGnE,CAAAxwB,IAAA,SAAAC,MAED,WACI,IAAA0L,EAA0CxL,KAAKZ,MAAvCsK,EAAc8B,EAAd9B,eAAgBO,EAAIuB,EAAJvB,KAAMmmB,EAAO5kB,EAAP4kB,QAEpBta,EADY9V,KAAKO,MAApBD,WAED,CACA,CACE4K,KAAM,IACN6K,UAAW,GACXkG,YAAa,CACXjC,QAAQ,GAEV/D,UAAW,SAACC,EAAKG,EAAMrI,GACrB,OACE9N,IAAAC,cAACD,IAAMqB,SAAQ,CAAC1B,IAAKwW,EAAKrZ,YACxBkD,IAAAC,cAAA,SAAG,wBACAkW,EAAKrZ,WACRkD,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,wBACFkW,EAAKka,SACNrwB,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,gBACFkW,EAAK4D,QACN/Z,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,yBACFkW,EAAK6D,YACNha,IAAAC,cAAA,WACAD,IAAAC,cAAA,SAAG,iBACFkW,EAAK8D,cACNja,IAAAC,cAAA,eAMV,CACE,CACE4V,UAAW,aACX7K,KAAM,cACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,WACX7K,KAAM,cACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,SAGpB,CACEiG,UAAW,UACX7K,KAAM,MACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGwB,MAA5CvF,KAAmBC,QAAQ,cAAuB,CAChDuL,UAAW,cACX7K,KAAM,eACN8O,QAAQ,EACRhE,YAAa,WACX,MAAO,CAAElG,MAAO,QAEjB,CACDiG,UAAW,cACX7K,KAAM,eACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,QAGpB,CACEiG,UAAW,gBACX7K,KAAM,OACN8K,YAAa,WACX,MAAO,CAAElG,MAAO,SAI5B,OAEE5P,IAAAC,cAACD,IAAMqB,SAAQ,KACfrB,IAAAC,cAAC+O,IAAO,CAACjG,QAASS,GAClBxJ,IAAAC,cAAA,OAAKa,MAAO,CAAE4S,gBAAiB,SAAWxE,UAAU,mBAChDlP,IAAAC,cAAC2Y,EAAM,MACP5Y,IAAAC,cAAA,OAAKa,MAAO,CAAE+X,YAAa,SACzB7Y,IAAAC,cAAA,WACAD,IAAAC,cAACgP,IAAK,MACNjP,IAAAC,cAAA,YAEFD,IAAAC,cAAA,OAAKiP,UAAU,aACVnF,GACD/J,IAAAC,cAACD,IAAMqB,SAAQ,KACXrB,IAAAC,cAAA,OAAKiP,UAAU,OACXlP,IAAAC,cAAA,OAAKiP,UAAU,aAAY,eACLlP,IAAAC,cAAA,QAAMuB,GAAG,kBAAiB,sBAAoB0uB,KAKxElwB,IAAAC,cAAA,OAAKiP,UAAU,wBACblP,IAAAC,cAAC6P,IAAI,CAACuJ,IAAI,sBAAsBnK,UAAU,wBAAwBa,GAAE,qBAAAzU,OAAuB40B,IAAW,SAKxGlwB,IAAAC,cAAA,WAAKD,IAAAC,cAAA,YACOD,IAAAC,cAAC6X,IAAc,CACXC,SAAS,aACThO,KAAMA,EACN6L,QAASA,EACToC,SAAO,MAIxBjO,GACC/J,IAAAC,cAAA,WAAK,kCAAgCiwB,WA9I/C,CAASlwB,IAAMM,WAwJNpC,eAAQ+xB,I,yCCtKZ,SAASjhB,GAAO7C,GAAiC,IAADoE,EAAApE,EAA7BpD,eAAO,IAAAwH,GAAQA,EAAEC,EAAQrE,EAARqE,SAC/C,OAUIxQ,IAAAC,cAAA,OAAKa,MAAO,CAAEW,SAAU,WAAYgP,UAAW,eAC1C1H,GAAW/I,IAAAC,cAAA,WACRD,IAAAC,cAAA,OAAKa,MAAO,CACRW,SAAU,QACViP,OAAQ,OAER9O,OAAQ,IACRb,QAAS,QAAS6O,MAAO,OAAQe,UAAW,SAC1CzP,IAAK,QAEPlB,IAAAC,cAAA,OAAK2Q,IAAKC,KAAQC,IAAI,eACtB9Q,IAAAC,cAAA,WAAK,+BAIZ8I,EAAU/I,IAAAC,cAAA,OAAKa,MAAO,CAAEiQ,QAAS,QAC7BP,GACIA,G,2ICpByE,IA+F/E8f,GA5FD,SAAA9xB,GAAA,SAAA8xB,IAAA,OAAA5xB,YAAA,KAAA4xB,GAAArxB,GAAA,KAAAqxB,EAAA1xB,WAAA,OAAAa,YAAA6wB,EAAA9xB,GAAAkB,YAAA4wB,EAAA,EAAA3wB,IAAA,oBAAAC,MAEV,WACC,IACO2wB,EADR9xB,EAAA,KAEI8xB,EAAS9yB,IACTqC,KAAKV,SAAS,CAAC2J,SAAS,IACxB,IAXiBO,EAYXknB,EADkB,IAAIC,gBAAgBnxB,OAAOuL,SAAS6B,QAC/BhD,IAAI,QAC3BmI,GAbWvI,EAaW5L,IAbMoU,UAAOvD,KAAKjF,EAAO,SAASyI,SAAS,WAcnEW,EAAa,GACbjJ,EAAQkI,EAAQ,IAYpBlI,EAXa,CACX/D,OAAQ,OAER6F,IAAK,WAAWglB,EAAO,SAASC,EAAK,iCACrC7mB,QAAS,CACP,cAAiB,SAAUkI,EAC3B,eAAgB,oCAChB,OAAU,mCAKbvM,MAAK,SAAU2G,GAEd,IAAIykB,EAAIte,KAAKR,UAAU3F,EAASlC,MAChCE,QAAQC,IAAIwmB,GACZ,IAAIC,EAAoBve,KAAKjB,MAAMuf,GACnCzmB,QAAQC,IAAIymB,GACZje,EAAaie,EAAkBje,gBAEhCtK,OAAM,SAAU+B,GAEfF,QAAQC,IAAIC,MACdymB,SAAQ,WAEJ,IACIrlB,EADEskB,EAAU,CAAE7kB,KAAM0H,GAExBnH,EAAMnO,cACNqM,EAAMuU,KAAKzS,EAAIskB,EAAS,CACtBlmB,QAAOC,YAAA,GACFoC,iBAGJ1G,MAAK,SAACwE,GAELrL,EAAKW,SAAS,CAAE2K,KAAMD,EAAIC,KAAKC,OAClB,cAAVF,EAAIC,MAEHM,KAAmBG,QAAQ,aAAaV,EAAIC,MAC5CzK,OAAOuL,SAASC,KAAO,MAIzBT,KAAmBG,QAAQ,aAAaV,EAAIC,MAC5CtL,EAAKW,SAAS,CAAEgK,KAAMU,EAAIC,OAC1BzK,OAAOuL,SAASC,KAAO,UAAUhB,EAAIC,MAGvCtL,EAAKW,SAAS,CAAE2J,SAAS,OAEzB,SAACoB,GAEDF,QAAQC,IAAIC,WAIvB,CAAAxK,IAAA,SAAAC,MAID,WAEJ,OACEI,IAAAC,cAACD,IAAMqB,SAAQ,KACfrB,IAAAC,cAAC+O,GAAO,CAACjG,QAASiG,KAClBhP,IAAAC,cAAA,WACUD,IAAAC,cAAA,WAEAD,IAAAC,cAAA,OAAMiP,UAAU,cACdlP,IAAAC,cAAA,OAAKiP,UAAU,aAEflP,IAAAC,cAAA,OAAKiP,UAAU,oBAnFf,CAASlP,IAAMM,W,kJCEqB,IA+CnCuwB,GA3CN,SAAAryB,GAAA,SAAAqyB,IAAA,OAAAnyB,YAAA,KAAAmyB,GAAA5xB,GAAA,KAAA4xB,EAAAjyB,WAAA,OAAAa,YAAAoxB,EAAAryB,GAAAkB,YAAAmxB,EAAA,EAAAlxB,IAAA,oBAAAC,MAEP,WACE,IAAIkxB,EAAY,GAAAx1B,OAAMC,OACtB+R,cACAyjB,YAAYzjB,IAA4B,IAAbwjB,KAC5B,CAAAnxB,IAAA,SAAAC,MAED,WAIE,OACEI,IAAAC,cAACD,IAAMqB,SAAQ,KACbrB,IAAAC,cAAC+wB,IAAM,CACLC,MAAM,iBAEgCjxB,IAAAC,cAAA,UAClC2Q,IAAKrV,wGACL+F,KAAK,qBAKXtB,IAAAC,cAACixB,IAAM,KACLlxB,IAAAC,cAACkxB,IAAK,CAAC9T,KAAK,kBAAkB+T,UAAWC,IACzCrxB,IAAAC,cAACkxB,IAAK,CAAC9T,KAAK,wBAAwB+T,UAAWE,KAC/CtxB,IAAAC,cAACkxB,IAAK,CAACI,OAAK,EAAClU,KAAK,IAAI+T,UAAWrH,KACjC/pB,IAAAC,cAACkxB,IAAK,CAAE9T,KAAK,wBAAwB+T,UAAWI,IAChDxxB,IAAAC,cAACkxB,IAAK,CAAE9T,KAAK,wBAAwB+T,UAAW7E,KAChDvsB,IAAAC,cAACkxB,IAAK,CAAE9T,KAAK,yBAAyB+T,UAAWtC,KACjD9uB,IAAAC,cAACkxB,IAAK,CAAE9T,KAAK,8BAA8B+T,UAAWpB,KACtDhwB,IAAAC,cAACkxB,IAAK,CAAE9T,KAAK,0BAA0B+T,UAAWnB,KAClDjwB,IAAAC,cAACkxB,IAAK,CAACI,OAAK,EAAClU,KAAK,wBAAwB+T,UAAWd,MAGvDtwB,IAAAC,cAACM,KAAO,WApCP,CAASP,IAAMM,WCRJmxB,QACW,cAA7BnyB,OAAOuL,SAAS6mB,UAEe,UAA7BpyB,OAAOuL,SAAS6mB,UAEhBpyB,OAAOuL,SAAS6mB,SAAStB,MACvB,2DChBS,SAASvY,KACpB,OACI7X,IAAAC,cAAA,WACsDD,IAAAC,cAAA,OAAKa,MAAO,CAAE8O,MAAO,SAAU5P,IAAAC,cAAA,OAAKuB,GAAG,SAAS0N,UAAU,aCHzG,SAAS8H,KACpB,OACIhX,IAAAC,cAAA,WAGkDD,IAAAC,cAAA,OAAKa,MAAO,CAAE8O,MAAO,SAC/D5P,IAAAC,cAAA,OAAKuB,GAAG,SAAS0N,UAAU,a,cCO5BuF,GAbF,WAAsD,IAArDvV,EAAKN,UAAAC,OAAA,QAAA6S,IAAA9S,UAAA,GAAAA,UAAA,GAAG,CAAEsZ,UAAWpF,KAAmBoB,EAAMtV,UAAAC,OAAA,EAAAD,UAAA,QAAA8S,EAC1D,OAAQwC,EAAO5S,MACb,IAAK,iBAGH,OAFE2I,QAAQC,IAAI,YAAYgK,EAAOrB,SAC/BG,EAAckB,EAAOrB,SACvBjJ,wBAAA,GACK1K,GAAK,IACRgZ,UAAWhE,EAAOrB,UAEtB,QACI,OAAO3T,ICTAyyB,gBAAgB,CAC7Bld,UCYF9C,EAAQ,KAAUK,SAClB,IAAM4f,GAAQC,aACZC,GACA,GACAxyB,OAAOyyB,8BAAgCzyB,OAAOyyB,gCAIhDC,IAASC,OAAOjyB,IAAAC,cAAC+W,GAAM,MAAKvW,SAASI,eAAe,qBAEpDmxB,IAASC,OACPjyB,IAAAC,cAACiyB,IAAQ,CAACN,MAAOA,IACf5xB,IAAAC,cAACkyB,IAAa,KAGZnyB,IAAAC,cAAC4wB,GAAG,QAKRpwB,SAASI,eAAe,SAG1BmxB,IAASC,OAAOjyB,IAAAC,cAAC4X,GAAM,MAAKpX,SAASI,eAAe,qBL4F9C,kBAAmBuxB,WACrBA,UAAUC,cAAcC,MACrBhtB,MAAK,SAAAitB,GACJA,EAAaC,gBAEdpqB,OAAM,SAAA+B,GACLF,QAAQE,MAAMA,EAAMgB,a,sRMrI0B,IAGhDsnB,EAAK,SAAAj0B,GAAA,SAAAi0B,IAAA,IAAAh0B,EAAAC,YAAA,KAAA+zB,GAAA,QAAA9zB,EAAAC,UAAAC,OAAAC,EAAA,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAwBN,OAxBMP,EAAAQ,EAAA,KAAAwzB,EAAA,GAAAn3B,OAAAwD,KACPI,MAAQ,CACNsK,gBAAgB,EAChBJ,KAAM,IACP3K,EAcDgM,aAAe,SAAClI,GACdA,EAAEmI,iBACFL,IAAmBM,WAAW,cAC9BlM,EAAKW,SAAS,CAAEgK,KAAM,OACtBwB,MAAM,mBACNtL,OAAOuL,SAASC,KAAO,KACxBrM,EAAA,OAAAgB,YAAAgzB,EAAAj0B,GAAAkB,YAAA+yB,EAAA,EAAA9yB,IAAA,oBAAAC,MAlBD,WACG,IAAIrC,EAAW8M,IAAmBC,QAAQ,cAC7B,MAAV/M,GAEa,cAAVA,IAEG8M,IAAmBG,QAAQ,aAAajN,GACxCuC,KAAKV,SAAS,CAAEgK,KAAMiB,IAAmBC,QAAQ,mBAG5D,CAAA3K,IAAA,SAAAC,MAWD,WACE,IAAQwJ,EAAStJ,KAAKZ,MAAdkK,KACR,OACEpJ,IAAAC,cAACD,IAAMqB,SAAQ,KACPrB,IAAAC,cAAA,OAAKa,MAAO,CAAEqO,MAAO,QAASnN,MAAO,UAAW4N,MAAM,SACjDxG,EAAK,IAAEA,EACRpJ,IAAAC,cAAA,KACA6K,KAAK,IACLuO,IAAI,sBACJvY,MAAO,CAAEkB,MAAO,WAChBK,QAASvC,KAAK2K,cACb,WACWzK,IAAAC,cAAA,SAAG,WAEbD,IAAAC,cAAA,KACE6K,KAAMjN,IACNiD,MAAO,CAAEkB,MAAO,WAChBivB,MAAM,mCAERjxB,IAAAC,cAAA,SAAG,WAITD,IAAAC,cAAA,WAAKD,IAAAC,cAAA,WAAKD,IAAAC,cAAA,iBAlDf,CAASD,IAAMM,WAwDTpC,gBAAQu0B,I,+BC/DzB,4MAAO,IAAMjzB,EAAmB,IAEnBmN,EAAc,aACdC,EAAY,WAGZlB,EAAe,CACxBC,KAAM,OACNC,QAAS,UACTG,sBAAuB,KACvBF,eAAgB,KAChBkB,UAAW,KACXjB,UAAW,OAGF0X,EAAa,CACtBF,QAAS,MACTC,YAAa,KACbF,eAAgB,OAGPD,EAAU,CACnBE,QAAS,MACTC,YAAa,KACbF,eAAgB,OAEG5iB,SAASC,KAAK6kB,e","file":"static/js/main.eb724a99.chunk.js","sourcesContent":["export const BASE_URL = `${process.env.REACT_APP_API}`\r\nexport const GET_COUNTRIES = (usertype) => `${BASE_URL}/Country/GetCountry/${usertype}`\r\nexport const GENERIC_SEARCH = (searchtext, country, usertype) => `${BASE_URL}/Search/GenericSearch/${searchtext}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const GET_PARTLIST = (partNumber, usertype) => `${BASE_URL}/Part/GetWhereUsedProductList/${partNumber}/usertype/${usertype}`\r\nexport const PARTLIST = (partNumber,country, usertype) => `${BASE_URL}/Part/GetPart/${partNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const PRODUCTLIST = (productNumber, country, usertype) => `${BASE_URL}/Product/GetProduct/${productNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const SERIALNUMBER = (serialNumber, country, usertype) => `${BASE_URL}/SerialNumber/GetSerialNumber/${serialNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const FUNCTIONAL =(partNumber, countryCode, usertype) => `${BASE_URL}/Part/GetFunctionalEquivalent/${partNumber}/countryCode/${countryCode || 'US'}/usertype/${usertype}`\r\nexport const FUNCTIONAL_LIST =(productNumber, usertype) => `${BASE_URL}/FunctionalEqivalent/GetFunctionalEqivalent/${productNumber}/usertype/${usertype}`\r\nexport const FUNCTIONAL_PART =(partNumber, usertype) => `${BASE_URL}/FunctionalEqivalent/GetFunctionalEqivalentPart/${partNumber}/usertype/${usertype}`\r\nexport const SERIALWITHPRODUCT = (serialNumber,ProductNumber, country, usertype) => `${BASE_URL}/SerialNumber/GetSerialNumber/${serialNumber}/ProductNumber/${ProductNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const GET_HIERARCHY = (usertype) => `${BASE_URL}/Hierarchy/GetHierarchyInfo/usertype/${usertype}`\r\nexport const GETHIERARCHYPRODUCT = (OID, usertype) => `${BASE_URL}/Hierarchy/GetHierarchyProducts/${OID}/usertype/${usertype}`\r\nexport const SERIALWITHPRODUCTGENERAL = (serialNumber,ProductNumber, country, usertype) => `${BASE_URL}/SerialNumber/GetSerialNumberGeneral/${serialNumber}/ProductNumber/${ProductNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const INSERTFEEDBACK = () => `${BASE_URL}/Search/SendEmail`\r\nexport const INSERTPHOTOMETRIC = (PartNumber,Flag) => `${BASE_URL}/Search/InsertPhotoMetric/${PartNumber}/Flag/${Flag}`\r\nexport const CARTMETRIC = (PartNumber, Qty, Flag) => `${BASE_URL}/Search/CartMetric/${PartNumber}/Qty/${Qty}/Flag/${Flag}`\r\nexport const BUYMETRIC = (PartNumber) => `${BASE_URL}/Search/BuyMetric/${PartNumber}`\r\nexport const GETSBOM = (productNumber, countryCode, usertype) => `${BASE_URL}/Product/GetSBOM/${productNumber}/country/${countryCode || 'US'}/usertype/${usertype}`\r\nexport const GETUIDRESPONSE = (code) => `${BASE_URL}/Country/GetUIDResponse`\r\nexport const GENERATEREPORT = (username) => `${BASE_URL}/Search/GenerateMetricReport/${username}`\r\n//Uncomment if format is not correct - Start\r\n// // export const GETUIDTOKEN = (code) => `https://login-itg.external.hp.com/as/token.oauth2?redirect_uri=http://localhost:3000/PartSurfer/CallBack&grant_type=authorization_code&code=${code}`\r\n// export const GETUIDTOKEN = (code) => `https://login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}&grant_type=authorization_code&code=${code}`\r\n// //export const GETGLBURL = `https://partsurfer.hp.com/Search.aspx?code=hppinguid`\r\n// //export const GETGLBURL = `https://itg-psurf-web.glbinc.hp.com/Search.aspx?code=hppinguid`\r\n\r\n// // export const REDIRECTUIDURL = `https://login-itg.external.hp.com/as/authorization.oauth2?`\r\n// export const REDIRECTUIDURL = `https://login.external.hp.com/as/authorization.oauth2?`\r\n// // export const CLIENTID =`partsurfer-itg-uid-client`\r\n// export const CLIENTID =`partsurferpro`\r\n// //export const RESPONSEURLUID=`http://localhost:3000/PartSurfer/CallBack` //RedirectUrlUID\r\n// // export const RESPONSEURLUID=`https://itg-psurf-web.glbinc.hp.com/PartSurfer/CallBack`\r\n// //export const RESPONSEURLUID=`https://partsurfer.hp.com/PartSurfer/CallBack`\r\n// export const RESPONSEURLUID=`https://pro-psurf-dr-web.inc.hp.com/PartSurfer/CallBack`\r\n// export const GETGLBURL=  REDIRECTUIDURL + \"client_id=\" + CLIENTID + \"&response_type=code&scope=email&redirect_uri=\" +RESPONSEURLUID\r\n// // export const TOKENURL=`https://login-itg.external.hp.com`\r\n// export const TOKENURL=`https://login.external.hp.com`\r\n// // export const tokencallurl = `login-itg.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\n// export const tokencallurl = `login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\n// // export const UIDClientID=`partsurfer-itg-uid-client:RNotGHVuEujpS5wnnr5UKjqluWT3l1RK9UGibiHVRhhHDhhrJ8Bl8IUZP3TxNZpQ`\r\n// export const UIDClientID=`partsurferpro:GFITxrswToMsAPvXrDV1TBVEMsLo5RhtibpidPHKvWuxnqeeKKsHC4980pNbH9qp`\r\n//Uncomment if format is not correct - End\r\n//Uncomment below lines for ITG - Execution - Start\r\n//export const RESPONSEURLUID=`http://localhost:3000/PartSurfer/CallBack` //RedirectUrlUID\r\n// export const RESPONSEURLUID=`https://itg-psurf-web.glbinc.hp.com/PartSurfer/CallBack`\r\n// export const GETUIDTOKEN = (code) => `https://login-itg.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}&grant_type=authorization_code&code=${code}`\r\n// export const REDIRECTUIDURL = `https://login-itg.external.hp.com/as/authorization.oauth2?`\r\n// export const CLIENTID =`partsurfer-itg-uid-client`\r\n// export const TOKENURL=`https://login-itg.external.hp.com`\r\n// export const tokencallurl = `login-itg.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\n// export const UIDClientID=`partsurfer-itg-uid-client:RNotGHVuEujpS5wnnr5UKjqluWT3l1RK9UGibiHVRhhHDhhrJ8Bl8IUZP3TxNZpQ`\r\n// export const tokenurlforOAuth = `https://login-itg.external.hp.com/as/token.oauth2`\r\n// export const clientvaluesforOAuth = `7c2Rz7BHZGdZNNGNJp6OKAvoIj7:vhTmC30uIbv8fPdXWdLUXKuwVohdhTtLGITkihIP75gyedWrfQVdBvYp5q4SfihY`\r\n//Uncomment below lines for ITG - Execution - End\r\n//Uncomment below lines for PROD - Execution - Start\r\nexport const RESPONSEURLUID=`https://partsurfer.hp.com/PartSurfer/CallBack`\r\nexport const GETUIDTOKEN = (code) => `https://login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}&grant_type=authorization_code&code=${code}`\r\nexport const REDIRECTUIDURL = `https://login.external.hp.com/as/authorization.oauth2?`\r\nexport const CLIENTID =`partsurferpro`\r\nexport const TOKENURL=`https://login.external.hp.com`\r\nexport const tokencallurl = `login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\nexport const UIDClientID=`partsurferpro:GFITxrswToMsAPvXrDV1TBVEMsLo5RhtibpidPHKvWuxnqeeKKsHC4980pNbH9qp`\r\nexport const tokenurlforOAuth = `https://login.external.hp.com/as/token.oauth2`\r\nexport const clientvaluesforOAuth = `DBXDR8NP6NILHCJRYQUB2L4FOME5SBM:fiXDWQCVyqfmTN1jI6GXjt8CB8raICrSYl8DjvZiQitUCCS0hSp1sa9PU4Jqwrze`\r\n//Uncomment below lines for PROD - Execution - End\r\n//export const GETGLBURL = `https://partsurfer.hp.com/Search.aspx?code=hppinguid`\r\n//export const GETGLBURL = `https://itg-psurf-web.glbinc.hp.com/Search.aspx?code=hppinguid`\r\nexport const GETGLBURL=  REDIRECTUIDURL + \"client_id=\" + CLIENTID + \"&response_type=code&scope=email&redirect_uri=\" +RESPONSEURLUID\r\nexport const GET_DIAGRAMS=(productNumber)=>`${BASE_URL}/Search/GetDiagramPath/${productNumber}`","module.exports = \"data:image/gif;base64,R0lGODlhKAAUAMQAAMwAAOmKfNgzLf8AAPvw8P+4wutMW8sIJPeomf8EIP302d1VSdIREf9YWP86L+OEk//eyc0dMPq+sv////8aLd9ga/9TSv9SZ+1COfzOy/+Edf+GlOUHI//+4+QBAf9lbiH5BAAHAP8ALAAAAAAoABQAAAW64CCOZGmeaKqubOu+ZtI0DmyPCTFNEHXDOcRlovm9ghSChtIYUC6fmqw2sDgSRaBuonA0Ot5JBjIYWkSbrlIrKfAu4MZkM7EUyKKc5ANOef6AHAQIHhUdAR0YBhMGBBITAYEFBYsYgJd/AJqbB4MCCB0VEwuGAg8dHQKbhguOm6+wr507EwizPAARExKvDwEREgyxw5wVFQuquQ8VwgujxNDR0QUKwtLX17oI2NzSEd3g4eLj5OXm59EhADs=\"","module.exports = \"data:image/gif;base64,R0lGODlhPAA8AMQfAPHx8dvb2zCq3u/v77y8vPz8/PT09ODg4NDs96DY8FC340Cw4MHBwfn5+erq6sDl9fv7+97e3uHh4fr6+sbGxvD5/ff39/Pz8xCd2bGxsdbW1gCW1u7u7tLS0qysrP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJHgAfACwAAAAAPAA8AAAF/yAnjmRpnl/6dWzrvnAnGep33jhZx3wfFamcEKXqGWEB4HA52h2frIiNuXRCnwZqtXh9SrRDa9cIForHvHLujIapcey2632Ly1l0Yuqezpfsd35/XHwvgjqEhS2HTYmKHYwigHKRHJNtlZdomY6KnHuPi5GaY58roXijnYWmqKmMpF2trrOoNbe4ubq7vL2+v8DBwsPExcbHwRvKy8zNzs81HtLT1NXW18/Z2szR197f09vi0Crg5tjj6crd5+0e6urs7ubw6fLz3/Xj9/jo+tr8+lX7ty2gwHAEsxk8+C4huRQMvTl8+CGiv4nLFh7E2EyjQI7cylkcCHKdyJEISzx67FfSJESUKUGuxNdyw8x5NW+6y3kSpoCWOtslANoT5YefMouO/IAAQ9KXMD2kQIB0YtBzNRJUJXjVXAgAIfkEBR4AHwAsAAAAADwAPAAABf/gJo5kaZ5f+nFs674wZ0Dqd944Wcd8f6m5IErVK8IAKaFytDM6Wb/lsvl0QqRKarVowAq12543CA7Hxrmy+YXGqdet9u0N58iHqTrvbqLD+SV+a4A6RHowhEyGhy6JIoJmjhuQYZKUW5aLjCyZeZtxjpdVnSufnKGam6Smp4miT6ussaY1tba3uLm6u7y9vr/AwcLDxMW/HsjJysvMzTUd0NHS09TVzdfYys/V3N3R2eDOKt7k1uHnyNvl6x3o6Ors5O7n8PHd8+H19ub42Pr70/pl+wfwm8BrBAu2OyguhUJuDBt+eMgvYrKEBS0uwwhQo7ZxFAN6TAcypMGRHPc6jSTp0ORJjyntrfQQM97MmuxulnRJYCXOdQd87jT5oSfMoSE/DMhwtKXLDikGGI34s1yNA1MFViUXAgAh+QQFHgAfACwAAAAAPAA8AAAF/6AnjmRpnl/6bWzrvvCmPOp33jhZx3y/VKmcEKXqGWEC4HA52h2frIWNuXRCnw9qtXh9KrRDa9cIForHvHLujIapcey2632Ly1l0Yuqezpfsd35/XHwvgjqEhS2HTYmKG4wigHKRHpNtlZdomY6KnHuPi5GaY58roXijnYWmqKmMpF2trrOoNbe4ubq7vL2+v8DBwsPExcbHwR3Ky8zNzs81HNLT1NXW18/Z2szR197f09vi0Crg5tjj6crd5+0c6urs7ubw6fLz3/Xj9/jo+tr8+lX7ty2gwHAEsxk8+C4huRQMvTl8+CGiv4nLFh7E2EyjQI7cylkcCHKdyJEISzx67FfSJESUKUGuxNeyw8x5NW+6y3kSZoCWOtsNANoT5YefMouO/GBBQ9KXMDmksIB0YtBzNQZUJXjVXAgAIfkEBR4AHwAsAAAAADwAPAAABf9gJ45kaZ5f+nls676wRznqd944Wcd8z0ypnBCl6hlhBOBwOdodnyyGjbl0Qp8OarV4fVK0Q2vXCBaKx7xy7oyGqXHstut9i8tZdGLqns6X7Hd+f1x8L4I6hIUth02Jih6MIoBykR2TbZWXaJmOipx7j4uRmmOfK6F4o52FpqipjKRdra6zqDW3uLm6u7y9vr/AwcLDxMXGx8EcysvMzc7PNRvS09TV1tfP2drM0dfe39Pb4tAq4ObY4+nK3eftG+rq7O7m8Ony89/14/f46Pra/PpV+7ctoMBwBLMZPPguIbkUDL05fPghor+JyxYexNhMo0CO3MpZHAhynciRCEs8euxX0iRElClBrsTXksPMeTVvust5EiaAljrbNQDaE+WHnzKLjvxQYEDSlzA3pCiAdGLQczUaVCV41VwIADs=\"","import React from 'react';\r\nimport { WIDTH_THRESHOULD } from './constants/constants';\r\n\r\nexport const ViewHOC = WrappedComponent => {\r\n    // ...and returns another component...\r\n    const WrappedComponentDisplayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n    return class extends React.Component {\r\n        static displayName = `WithView(${WrappedComponentDisplayName})`;\r\n\r\n        state= {}\r\n\r\n        componentDidMount() {\r\n           \r\n            window.addEventListener(\"resize\", this.resize);\r\n            this.resize()\r\n        }\r\n  \r\n        componentWillUnmount() {\r\n            // fix Warning: Can't perform a React state update on an unmounted component\r\n            this.setState = (state,callback)=>{\r\n                return;\r\n            };\r\n        }\r\n        \r\n\r\n        resize = () => {\r\n            this.setState({ isMobile: window.innerWidth < WIDTH_THRESHOULD })\r\n        }\r\n\r\n        render() {\r\n            return (\r\n                <WrappedComponent \r\n                    mobileView={this.state.isMobile}\r\n                    {...this.props} />\r\n            );\r\n        }\r\n    }\r\n}","import zIndex from \"@material-ui/core/styles/zIndex\";\r\nimport React,{useEffect} from \"react\";\r\n\r\nclass GoToTop extends React.Component{\r\n\r\n    componentDidMount() {\r\n     window.addEventListener(\"scroll\",this.listenToScroll)\r\n      }\r\n\r\n      listenToScroll=()=>{\r\n        if(document.body.scrollTop>1000 || document.documentElement.scrollTop >1000){\r\n            document.getElementById(\"my-btn\").style.display='block';\r\n        }\r\n        else\r\n        {\r\n            document.getElementById(\"my-btn\").style.display='none'; \r\n        }\r\n    }\r\n\r\n    goToBtn=()=>{\r\n               window.scroll({top:0 ,left:0,behavior:\"smooth\"})\r\n        }\r\n\r\n    render(){\r\n        const mystyle= {\r\n            display: \"none\", \r\n    position: \"fixed\", \r\n    bottom: \"20px\", \r\n    right: \"30px\", \r\n    zIndex: \"99\", \r\n    border: \"none\", \r\n    outline: \"none\", \r\n    backgroundcolor: \"red\", \r\n    color: \"white\", \r\n    cursor: \"pointer\", \r\n    padding: \"15px\", \r\n    borderradius: \"10px\", \r\n    fontsize: \"18px\" \r\n        }\r\n\r\nreturn(\r\n   <>\r\n<input type=\"button\" class=\"btn-primary rounded-pill \" id =\"my-btn\" style={mystyle}  onClick={this.goToBtn} value=\"Go to top\">\r\n    </input> \r\n    </>\r\n);\r\n    }\r\n}\r\n export default GoToTop;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD+SURBVEhL7ZY/DoIwFIe5gJ5GD6C30cVNb+LgbqJx1cTNgcEDIHALWRgYTJ79PVvlTxVi6DMxvOQjIa/w0fa1xaMfhOctI2qT/iqi4Tqk6SGk3TmgIKjSujQPPmBxvMhKDeNtKC8F81yPxaQYajPHYlIw2T96KyodqKoWl2KIa6QJxXoxlyOOVd5PKdH3xbjRyS+/60UzaZbSzJY30mtSzX2gk2oaSsvxrr3mu0IyL+3mtIY/KiQVvHnYnlGwtKe2JlvSFSzFJmxLuoKlOG5sSVewFAer5BCzFBf8StgauOApBaONjLggBeix66GuSAHmGMWFqnbxASzV61kwiO7QtaajDGxU2QAAAABJRU5ErkJggg==\"","// npm install react-cookie\r\nimport React from 'react';\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport './design.css';\r\nimport NotificationSystem from 'react-notification-system';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport Loading from './Loading';\r\nimport Cookies from 'js-cookie'\r\nimport { setCookie, getQueryParam, getURLQueryString, getAuthHeader, getAuthHeaderUID, bodyParametersUID } from './Util';\r\nimport { GETGLBURL, GET_COUNTRIES, GENERIC_SEARCH, PARTLIST, PRODUCTLIST, SERIALNUMBER, FUNCTIONAL, GETUIDRESPONSE, GETUIDTOKEN } from './constants/APIConstants';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { SEARCH_TEXT, SEARCH_BY, SEARCH_MODES, Code_Url } from './constants/constants';\r\nimport \"./nav.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getLocationObject, generateToken } from \"./Util\";\r\nimport Login from \"./login\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport GoToTop from './GoToTop';\r\nimport Select from \"react-select\";\r\nimport qs from 'query-string';\r\nimport {tokenurlforOAuth, clientvaluesforOAuth} from './constants/APIConstants';\r\nexport function toBase64(input) {  return Buffer.from(input, 'utf-8').toString('base64')}\r\nexport const TOKEN_EXP = `${process.env.REACT_API_TOKEN_EXP}`\r\n\r\n//import { useCookies, Cookies } from \"react-cookie\";\r\n\r\nclass Form extends React.Component\r\n{\r\n  state = {\r\n    FieldName: '',\r\n    country: '',\r\n    loading: false,\r\n    searchBy: '',\r\n    searchyByText: '',\r\n    arraySearchBy: '',\r\n    topmenuValue: '',\r\n    code : '',\r\n    User : '',\r\n  };\r\n\r\n  componentDidMount() {\r\n    getURLQueryString();\r\n    generateToken();\r\n    //setCookie('HP_Country', \"US\");Commented for adding Home page Changes\r\n    //setCookie(\"Search_Text\",\"Generic Search\");\r\n    if(localStorage.getItem(\"Temp_Country\")!='' && localStorage.getItem(\"Temp_Country\")!=null)// Added By Shreyas For Home Page Country Drop down--Start Here\r\n    {\r\n      setCookie('HP_Country',localStorage.getItem(\"Temp_Country\"));\r\n      //localStorage.setItem(\"Temp_Country\",'');\r\n    }\r\n    else\r\n    {\r\n    setCookie('HP_Country', \"US\");\r\n    localStorage.setItem(\"Temp_Country\",'US');\r\n    }// Added By Shreyas For Home Page Country Drop down--End Here\r\n\r\n\r\n    // let values = this.props.location.search;\r\n\r\n    // let username = localStorage.getItem(\"loggeduser\");\r\n\r\n    // if(username == null)\r\n    // {\r\n    //   if(values.includes(\"code\"))\r\n    //   {\r\n    //     var array = values.split(\"=\");\r\n    //     //localStorage.setItem(\"loggeduser\",array[1]);\r\n    //     //this.setState({ User: localStorage.getItem(\"loggeduser\") });\r\n    //     console.log(localStorage.getItem(\"loggeduser\"));\r\n    //   }\r\n    // }\r\n    // else{\r\n    //   localStorage.setItem(\"loggeduser\",username);\r\n    //   this.setState({ User: username });\r\n    // }\r\n    let username = secureLocalStorage.getItem(\"loggeduser\");    \r\n    if(username == \"UID_Failed\")\r\n    {\r\n         alert(\"We are facing problem on HP UID authentication. Please try again\");\r\n         secureLocalStorage.removeItem(\"loggeduser\")\r\n    }\r\n\r\n    this.setState({\r\n      countryLoading: true,\r\n      country: Cookies.get('HP_Country') || 'US',\r\n      FieldName: getQueryParam(this.props, SEARCH_TEXT),\r\n      searchBy: getQueryParam(this.props, SEARCH_BY),//Added\r\n      //topmenuValue :Cookies.get(\"Search_Text\")\r\n    },\r\n      () => {\r\n        this.state.FieldName && this.loadData()\r\n      });\r\n    this.notificationSystem = React.createRef();\r\n    this.setusertype();\r\n    //alert(getAuthHeader());\r\n    axios.get(GET_COUNTRIES(localStorage.getItem(\"usertype\")), {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n      })\r\n      .then((res) => {\r\n        const data = res.data.Body;\r\n        let dat = data.map((con, index) => {\r\n          return { key: con.CountryCode, value: con.CountryName }\r\n        })\r\n        this.setState({ data: dat, countryLoading: false })\r\n      }, (error) => {\r\n        // console.log(error);\r\n        this.setState({ countryLoading: false })\r\n      })\r\n      \r\n  document.getElementById(\"\")\r\n}\r\n\r\n  getUID = (input) => {\r\n    this.setState({ countryLoading: true })\r\n    let urlprod;\r\n    urlprod = GETUIDRESPONSE(input);\r\n    axios.get(urlprod, {\r\n      headers: {\r\n        ...getAuthHeaderUID()\r\n      },\r\n\r\n    })\r\n      .then((res) => {\r\n        this.setState({ data: res.data.Body, countryLoading: false })\r\n        console.log(res.data.Body);\r\n      }, (error) => {\r\n        this.setState({ data: null, countryLoading: false })\r\n      })\r\n  }\r\n\r\n  setusertype = () => {\r\n    let username = secureLocalStorage.getItem(\"loggeduser\");\r\n    if(isMobile)\r\n    {\r\n      if(username == null)\r\n      {\r\n        localStorage.setItem(\"usertype\",\"MEX\");\r\n      }\r\n      else\r\n      {\r\n        localStorage.setItem(\"usertype\",\"MIN\");\r\n      }\r\n    }\r\n    else\r\n    {\r\n      if(username == null)\r\n      {\r\n        localStorage.setItem(\"usertype\",\"EXT\");\r\n      }\r\n      else\r\n      {\r\n        localStorage.setItem(\"usertype\",\"INT\");\r\n      }\r\n    }\r\n  }\r\n\r\n  removeCookie = (e) => {\r\n    e.preventDefault();\r\n    secureLocalStorage.removeItem(\"loggeduser\");\r\n    this.setState({ User: null });\r\n    alert(\"LogOut Success!\");\r\n    window.location.href = \"/\";\r\n  }\r\n\r\n  addNotification = text => {\r\n    const notification = this.notificationSystem.current;\r\n    //  console.log('noti', notification)\r\n    notification.addNotification({\r\n      message: text,\r\n      level: 'error',\r\n      position: 'tc',\r\n    });\r\n  };\r\n\r\n  loadData = () => {\r\n    const { FieldName, country, searchBy } = this.state;\r\n    if (country) {\r\n      this.setState({ dataLoading: true }, () => this.props.onSubmit(null))\r\n      let url;\r\n      switch (searchBy) {\r\n        case SEARCH_MODES.PART: url = PARTLIST(FieldName, country, localStorage.getItem(\"usertype\"))\r\n          break;\r\n        case SEARCH_MODES.PRODUCT: url = PRODUCTLIST(FieldName, country,localStorage.getItem(\"usertype\"))\r\n          break;\r\n        case SEARCH_MODES.SEARIAL_NUMBER: url = SERIALNUMBER(FieldName, country,localStorage.getItem(\"usertype\"))\r\n          break;\r\n        case SEARCH_MODES.SERIAL_WP: url = SERIALNUMBER(FieldName, country, localStorage.getItem(\"usertype\"))\r\n          break;\r\n        case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: url = FUNCTIONAL(FieldName, country,localStorage.getItem(\"usertype\"))\r\n          break;\r\n        default:\r\n          url = GENERIC_SEARCH(FieldName, country, localStorage.getItem(\"usertype\"))\r\n      }\r\n      // console.log('url', url, searchBy)\r\n      axios.get(url, {\r\n        headers: {\r\n          ...getAuthHeader()\r\n        }\r\n      })\r\n        .then((response) => {\r\n          // console.log('call succes data:', response)\r\n          this.props.onSubmit(response.data.Body ? response.data.Body : !searchBy ? {} : null, searchBy)\r\n          this.setState({ dataLoading: false })\r\n        }, (error) => {\r\n          // console.log(error);\r\n          this.setState({ dataLoading: false })\r\n        })\r\n    }\r\n    else {\r\n      this.addNotification('Please select the country')\r\n    }\r\n  }\r\n\r\n  componentWillReceiveProps(nextProps) {\r\n //   console.log(\"getitem\", getStoredCart())\r\n    // component\r\n    // console.log('update')\r\n    // const prevText = getQueryParam(this.props, SEARCH_TEXT);\r\n    // const text = getQueryParam(nextProps, SEARCH_TEXT)\r\n    const prevMode = this.state.searchBy;\r\n    const nextMode = getQueryParam(nextProps, SEARCH_BY)\r\n    const prevText = this.state.FieldName;\r\n    //Modified by Shreyas - Keep the text value even after changing Search Type Dropdown - Start\r\n   //const text = getQueryParam(nextProps, SEARCH_TEXT)\r\n    const text = this.state.FieldName;\r\n   //Modified by Shreyas - Keep the text value even after changing Search Type Dropdown - End.\r\n   // console.log('prevtext', prevText, 'text=', text, 'prevMode=', prevMode, 'nextMode=', nextMode)\r\n    if ((prevText !== text) || prevMode !== nextMode) {\r\n      this.setState({ searchBy: nextMode, FieldName: text }, () => {\r\n        this.props.onSubmit(null)\r\n      });\r\n    }\r\n  }\r\n\r\n  componentDidUpdate(){\r\n    const withclasses=Array.from(\r\n      document.getElementsByClassName(\"dropdown-item\")\r\n    );\r\n    withclasses.forEach(element=>{\r\n      if(element.innerText==this.state.topmenuValue){\r\n      element.classList.add(\"active\");\r\n      }\r\n      else{\r\n        element.classList.remove(\"active\");\r\n      }\r\n    });\r\n  }\r\n\r\n  handleSubmit = async (event) => {\r\n    const { searchBy } = this.state;\r\n    event.preventDefault();\r\n    this.loadData()\r\n    this.props.history.push({\r\n      pathname: `${process.env.REACT_APP_HOME_DIRECTORY}`,\r\n      search: `?${SEARCH_TEXT}=${this.state.FieldName}${searchBy ? `&${SEARCH_BY}=${searchBy}` : ''}`\r\n\r\n    })\r\n  };\r\n\r\n  getSearchMode = () => {\r\n    const { searchBy } = this.state;\r\n    switch (searchBy) {\r\n      case SEARCH_MODES.PART: return 'Enter Part Number';\r\n      case SEARCH_MODES.PRODUCT: return 'Enter Product Number';\r\n      case SEARCH_MODES.SERIAL_WP: return 'Enter Serial Number';\r\n      case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: return 'Enter Part Number';\r\n      case SEARCH_MODES.WILD_CHAR: return 'Wild Character Search';\r\n      default: return 'Enter Part/Product/Serial Number';\r\n    }\r\n  }\r\n\r\n  setSearchModeLink = () => {\r\n\r\n\r\n    const { searchBy, arraySearchBy, topmenuValue } = this.state;\r\n    if(searchBy != arraySearchBy)\r\n    {\r\n      this.setState({ searchyByText: this.getSearchResult(searchBy), arraySearchBy: searchBy });\r\n      this.setState({topmenuValue : this.getSearchResultText(searchBy)});\r\n    }\r\n    // var list=document.getElementsByClassName(\"dropdown-item\");\r\n    // for (var i = 0; i < list.length; ++i) {\r\n    //   if(topmenuValue==list[i].innerText){\r\n    // list[i].classList.add('active');\r\n    //   }\r\n    //   else{\r\n    //     list[i].classList.remove('active');\r\n    //   }\r\n    // }\r\n     //Added by Shreyas to highlight the selected text--End\r\n\r\n\r\n  }\r\n\r\n  getSearchResult = (searchBy) => {\r\n    switch (searchBy) {\r\n      case SEARCH_MODES.PART: return 'Search By - Part Number';\r\n      case SEARCH_MODES.PRODUCT: return 'Search By - Product Number';\r\n      case SEARCH_MODES.SERIAL_WP: return 'Search By - Serial Number';\r\n      case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: return 'Search By - Part Number';\r\n      case SEARCH_MODES.WILD_CHAR: return 'Search By - Wild Char';\r\n      default: return 'Search By - Part/Product/Serial Number';\r\n    }\r\n  }\r\n\r\n  getSearchResultText = (searchBy) => {\r\n    switch (searchBy) {\r\n      case SEARCH_MODES.PART: return 'Part';\r\n      case SEARCH_MODES.PRODUCT: return 'Product';\r\n      case SEARCH_MODES.SERIAL_WP: return 'Serial Number';\r\n      case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: return 'Functional Equivalent';\r\n      case SEARCH_MODES.WILD_CHAR: return 'Wild Character';\r\n      default: return 'Generic Search';\r\n    }\r\n  }\r\n\r\n  render() {\r\n\r\n    const { countryLoading, dataLoading, country, data, topmenuValue, User } = this.state;\r\n\r\n    return (\r\n\r\n      <React.Fragment>\r\n        <Loading loading={countryLoading || dataLoading} >\r\n          <div>\r\n            <br />\r\n            <Login />\r\n            <div className=\"row\">\r\n              <div className=\"col-sm-6\">\r\n              </div>\r\n              <div className=\"col-sm-6\">\r\n                <div style={{ float: 'right' }} className=\"country-container\">\r\n                  {/* <Dropdown onSelect={(a, b) => {\r\n                    this.setState({ country: a })\r\n                    setCookie('HP_Country', a)\r\n                  }}>\r\n                    <label><b>Select Country: &nbsp;</b></label>\r\n                    <Dropdown.Toggle id=\"dropdown-basic\" className={\"country-selector\"} >\r\n                      {((data || []).find(c => c.key === country) || {}).value || 'Please select your country'}\r\n                    </Dropdown.Toggle>\r\n\r\n                    <Dropdown.Menu onSelect={(a, b) => {\r\n                      //  console.log(\"dropdownselect\", a, b.currentTarget)\r\n                    }}>\r\n                      {\r\n                        (data || []).map((country, index) =>\r\n                          <Dropdown.Item eventKey={country.key} key={index}>{country.value}</Dropdown.Item>\r\n                        )\r\n                      }\r\n                    </Dropdown.Menu>\r\n                  </Dropdown> */}\r\n\r\n                  <label><b>Select Country: &nbsp;</b></label>\r\n\r\n                    <Select id=\"dropdown-basic\" className={\"country-selector\"}\r\n                    options={(data || []).map((country, index) => ({\r\n                      value: country.key,\r\n                      label: country.value,\r\n                    }))}\r\n                    defaultValue={{ label: ((data || []).find(c => c.key === country) || {}).value || 'Please select your country'  }}\r\n                    onChange={(country, index) => {\r\n                          this.setState({ country: country.value})\r\n                          setCookie('HP_Country', country.value)\r\n                          localStorage.setItem(\"Temp_Country\",country.value)\r\n                          }}\r\n                    />\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div className=\"row\">\r\n              <div className=\"col-md-6\">\r\n                <h1>\r\n                  <span id=\"ctl00_PageTitle\">HP PartSurfer</span>\r\n                </h1>\r\n              </div>\r\n            </div>\r\n            <div className=\"row\">\r\n              <div className=\"col-md-9\">\r\n                <span id=\"ctl00_SubTitle\">HP PartSurfer provides fast, easy access to service parts information for a wide range of HP Products.</span>\r\n              </div>\r\n              <br/>\r\n            </div>\r\n\r\n            <form onSubmit={this.handleSubmit}>\r\n            <div >\r\n              <div className=\"input-group\">\r\n              <div className=\"input-group-prepend\">\r\n            {isMobile?(<button type=\"button\" class=\"search btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" data-width=\"\">\r\n                                    <span class=\"caret\"></span>\r\n\r\n                                </button>):\r\n              <button type=\"button\" style={{width:\"177px\"}} class=\"search btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" data-width=\"\">\r\n                                    <span class=\"caret\"></span>\r\n                                  <span >{topmenuValue}</span>\r\n                                </button>}\r\n                                <ul class=\"dropdown-menu pull-right\" role=\"menu\" id=\"searchList\">\r\n                                <li class=\"list\" >\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.PART)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Part\r\n                          </Link>\r\n                          </li>\r\n                          <li class=\"list\">\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.PRODUCT)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Product\r\n                          </Link>\r\n                          </li>\r\n                          <li class=\"list\">\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.SERIAL_WP)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Serial Number\r\n                          </Link>\r\n                          </li>\r\n                          <li class=\"list\">\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.FUNCTIONAL_EQUIVALENT)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Functional Equivalent\r\n                          </Link>\r\n                          </li>\r\n                          <li class=\"list\">\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.WILD_CHAR)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Wild Character\r\n                          </Link>\r\n                          </li>\r\n                          <li class=\"list\">\r\n                          <Link className=\"dropdown-item\" to={getLocationObject()} onClick={this.setSearchModeLink()}>\r\n                            Generic Search\r\n                          </Link>\r\n                      </li>\r\n\r\n                                </ul>\r\n                                </div>\r\n                {/* <input type=\"text\" className=\"form-control  col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" placeholder={this.getSearchMode()} value={this.state.FieldName || ''}\r\n                  onChange={event => this.setState({ FieldName: event.target.value })} required /> */}\r\n\r\n              <input type=\"text\" className=\"form-control  col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" placeholder={this.getSearchMode()} value={this.state.FieldName }  onChange={event => this.setState({ FieldName: event.target.value })} required />\r\n                <div className=\"input-group-append\">\r\n                  <button type=\"submit\" className=\"search btn btn-primary\" >\r\n                    <i className=\"fa fa-search\"></i>\r\n                  </button>\r\n\r\n\r\n                  {/* <button type=\"button\" class=\"search btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\">\r\n                                    <span class=\"caret\"></span>\r\n                                </button>\r\n                                <ul class=\"dropdown-menu pull-right\" role=\"menu\">\r\n                                <li >\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.PART)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Part\r\n                          </Link>\r\n                          </li>\r\n                          <li>\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.PRODUCT)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Product\r\n                          </Link>\r\n                          </li>\r\n                          <li>\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.SERIAL_WP)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Serial Number\r\n                          </Link>\r\n                          </li>\r\n                          <li>\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.FUNCTIONAL_EQUIVALENT)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Functional Equivalent\r\n                          </Link>\r\n                          </li>\r\n                          <li>\r\n                          <Link\r\n                            className=\"dropdown-item\"\r\n                            to={getLocationObject(null, SEARCH_MODES.WILD_CHAR)}\r\n                            onClick={this.setSearchModeLink()}\r\n                          >\r\n                            Wild Character\r\n                          </Link>\r\n                          </li>\r\n                          <li>\r\n                          <Link className=\"dropdown-item\" to={getLocationObject()} onClick={this.setSearchModeLink()}>\r\n                            Generic Search\r\n                          </Link>\r\n                      </li>\r\n\r\n                                </ul> */}\r\n\r\n                {/* &nbsp;&nbsp;&nbsp; */}\r\n                {/* id=\"navbarSupportedContent\"                */}\r\n                  {/* Santhosh - Searchby Menu */}\r\n\r\n              </div>\r\n            </div>\r\n            </div>\r\n\r\n\r\n                {/* <br/> */}\r\n\r\n                {/* <span style={{color: \"#007bff\"}}>Selected Search Type : {topmenuValue} </span> */}\r\n            {/* <div className=\"row\">\r\n\r\n              <div className=\"col-md-9\">\r\n              {this.state.searchyByText && <div style={{color: \"#007bff\"}}>{this.state.searchyByText}</div>\r\n              }\r\n              </div>\r\n            </div> */}\r\n              <div className=\"row\">\r\n                <p></p>\r\n              </div>\r\n              <NotificationSystem ref={this.notificationSystem} />\r\n            </form>\r\n          </div>\r\n        </Loading>\r\n\r\n\r\n        </React.Fragment>\r\n    );\r\n  }\r\n}\r\n\r\nexport default withRouter(Form)\r\n","module.exports = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAYAAADk3wSdAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVEhLtVQxDsIwDOwP4EfwA/gJT4AfwNQJqV9ggpGBDQbE0jIiQKoEol2Q6IBk4iRO2iSVoA2WTgiffXbsNAH8wYIgjOFXdOdH6C9OMNndYX9/SSltjUTLwAKzw0PKCWstShiuLlLSoyhiKjv2KoqjwBl7FUWMtzdbdHR98yMIKyBivigTvyouKSSvLUkE12O3oiIaZSIgv6bSl0PCPVpUFc1ylUc+zMMRaNHNE3JOGV2FKawL6auNoeJvWG/YfyJcHZhQMcUTRhUOCwuKn5IIOnozUSPfSlCiurowdmRa0Led6o2W50XB5LMXJ1AzU4S9fVPUPXsrjwgF8w465qdvgTa6pxyVYF9wOtuig1+Ai2gDfK6cRBvgkAfLs5tsCr46Ztixt1FITW74wOJ7iM9X8wIxfADP1Vx3Opx5EgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAbCAYAAAAQ2f3dAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH3SURBVFhHzZa9b8IwFMT7VzMhRlYaloSNFakFoYqFEUaGCsEIYyQWslRiYHH1e+Qi56MiVaXGJ50S+57ty/Nzkpder+f+m/1+30XjsXtfLNznfu/Sy6VE0Ikxn5j8WK3CMyYmk0mYxqAyF5wxtpWaC84YfJvPwzT2GkU/GxsOhy6O41o/HI1GbjAYNGr0M47xTXobsp01Yyx6vV5NEKbTqWm32y3veYA44jV2s9nkygOn06l4AOYQlsul9W2327zHleaBoGTsfD5bZ5Zldg9ns1kRDHa7nTsej3afpqlp/sJoeggWR1+v19YGzEkfY4UkSaxPBCVjQjWwqkEBDbOAK22yAmTcNwbIJJC5p8YUyBMzmV9LAosfDofiHk2ZZgztqnEZU5y2UVeNE0Gtxvxa4l77X4WvtTWmKyAJfj9xIigZg2SJQBmkZhQM2CbVFDFoz4ypJtH9rP3KmKhBTERbUD0IZO1ZjfnGOUy0mae1MZ6CYw6VMS0m0EYHyhiLqU39aaxOZTWjYmtjSrnAE+tlqcUENL3joApZwIwOj7+VioetjUEmI83+iWxLjf3Lmx+aMT4BTWKXNGN8NJvELmnG+M1oErukGePHLLTtNGP8yvJL2xTQFQtjMM5fnCGwZEyZC2Fba8YgNceB4LR2ZdKMZV93Fx7v7ht4iykx6Qf/1gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACJElEQVQ4T52UvWsTYRzHv8/1Lrnkei82RgxWsbaV1kIl2sGlikXQP8BBcbAVHLLo4OTQSUHBVcSxoDjUQbsIXQTbTnWoDrUgGrXUl1hpTUrS5JLL4+85bki5J6TxAz/unpf7Pr+355j+eJmXtz1AUQDGEVUZypkh/A/KtaMO0k4EY/t1OLqKyrqLxVwxWG4TTuSKrnjwWws/Oe6/49dff/fH7UKxAfvimi98qc8mXxkWvmz543ZhQjF499EevEfU0PDwbAqWxlCtBwtNYGSlqoczB4yw2InpLJbWSoBLRanvWGoBD4tNfdjExMwqsCci1lsjXKODzx0y4eeskfFBB9iuicoEMy0Q24o1ZI7ZYTEwOsqkgni7FBOeVTyMUs7CYsTVdAIoU852AwkdH7BhUY9Kxa70WbSJyihCLVPIJTIRusz+urjcYyLawcIFEHwtuOh5tAI7EcFEv4M4HdnMzw3K182RvRhKxuSemZqCwe448hRqTO9AZ1yFQSaejaZEFZzuNTGQ0P3vpJ4JJud+4O6bHMh/6jfRuSLTDYghdXSSvJ+92It0Um8utrJZwdOPeXF3pbeAUgROloqpuDHcRbdQTEhYy1f4+edZPv5qldeqXjAb5t7b33z02Sf+ZHnDH0tzNvO5gNmlP5ia+4UX5J2MArXE7ZffMJ/dwp3FderburwAF45Y6DrYicP9Nk52G8HsTizKZWYsRX8GBZOnkjBUBf8ABVY4WM/0nH4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAAAbCAYAAADoFcRvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAWASURBVHhe7Zq/blxFFMZ5AuAReASeAHgC4A2gokwoqQBRAgIKKNI4NEhIFOA0IIEITapICVCFhkAkS5EcAQpCQjQX/yb+rT4f5i6768VeovmkT753zpnzZ86ZmevEj/zy+1/Twd27g4M7R9AatD28dGlw8Ez52IW96em39qfXrlyfbvx82PqwYjTo4E6QZn33y+9aLyZGgw7uFJ/74IvWj2I06ODO8Z04SUeDDu4cue79Jh0NOriTfHX/+oO+HA06uIt86s39B325rEGfeOWj9s8AOcZ7HXvY+OQbn7SP9Z5sG8Q+a8j69uTb5OMX91oup/FlH5xFvJJrvvVlr0FZwNuH99u4eP64YCL1t81n3r5y7OUkerqnJb74d7hcfIEsdbfFb344aPZfP/Kb43N5n6Yx8AHw2ZOvQm3UeNdlb62XEXQb1AX86d799gxfvHx1MQmk/raZhdI/7Omelr3Ff/nja+2d0yd1t0VyqT7hXN4cGKm3DpmLHw+YTdhbo024rh3QbVDRO0HExaMi3rxzOH1648dFIVkM3n/9488mY7c4fvXWwXT52q0TtiDjMMeyUDkO3/vq+6aPzWpXGZsJ/zBz4B+CGeN2YJHQ86bgJ7GjZ0zudHLlnbz4iV/Gma8/5mIDH8iY65i2tbdKg+a4fGHv60VskjnGwcZCTxn+lOHL9TLPjJ/3Gq959hqL2jIXXdbfHtAX66AdZPhg/YDj2uEdMDfrBboN+u2de20MgxjIk6QHA9cR8387DobASFRoA920p32YhcI/9ASwuOjUgipL0JDIXGSA3mc3bzebFeiK6iPXpdpM0BjkjB/oWuAz48yCw17eNk/GahwAG8aBXXQF9lJGHQV6bGhgHMbLzQmskTbUIyaAnrpujh6QwYrsC31rR1uz36AuKqAg7iZBsibIwmfyPJuURREZFIUE+Er/WShB8Mj4CWrzpAzfy2T6mRsXtcDryLRFvpzAgrG5WDJmoe0Pj04pwJrX3NaJ0YZCZhx5/RMvvxCJtG+8zsOGsVTf2R91nu/OZSP0fvEG3QaFNlnd/YJnA8exzkCV8e6uZ4fkrgPqyLTlIrhBTNJxkTJ8z8kY10+d45hA1zyUp52ao0BGvF5piTmfMGPmWTt1TuohWxZHlVFHQFN641FrDgvfE2nfeI0lsaw/6jzf8Zu3AeuVmwXMNqjUSU2+yjwNQW+eJwAB8cy4wbHT0JG1AEmTJJGqpwzfc7K8Quocx0QW2BhFr/giZVyHy+LUJ6x6SRuLOVVvlTiUeT1nPRj3sKh5pn3jNX7m4ANS/1Xn+S6ppfkZJwTdBiVIPlihpwAJOQnwbAAa9WTko5lvP2BDuDCAZ+eC3DVwWaFMkt2eOz5l2K42LAhz8tvOceLlKmZMYMO4nScoSM1fME8ZvwxAgZ7FwKeFhRmz6w85RW0g6sH6CubpCxn6IuMwRk6thPXRPjHlXxWlfWTE4tXNu9/K+EJX5Dx+8p55s9bYcr5rZJza6jaohgS7bNkO0SiNlt+ujLMgyPKEJTB0BfIkclFlOY/m0h8y/AHiqjbwn9cJOTKOXsbMmO8uuk0sbG6Lav45D39uWHz5jF7moA+YMSfQyeuwxosvx9BxHZhXY4SZj3VN++hqAxl2tM/aoqtc2OiC59qgaQdk3IDnPKzA0m9QF6bK/o0s9Cbz1uGm9plHfHW8N5acm3cepC4ix896zWkwYsmxVVjXETu9tW352aCPXvhvkxvcHimm6MkfFrb8bFD+c76nNLib5OTa5PT6PxEsGpQ/b+opDQ6eF8GiQfkD0XHND+4SwaJBAX9q31McHDwPghMNCp59//Ou8uDgWRP8o0EBJ+m47gfPm6DboIBvUn5x4rf70ayD58Fpmqa/AX0jw76UPzV9AAAAAElFTkSuQmCC\"","import React from 'react'\r\nimport loader from '../page_preload.gif'\r\n\r\nexport default function Loading({ loading = false, children }) {\r\n    return (\r\n        // <div>\r\n        //     {loading && <div className=\"nested-loading\" style={{\r\n        //         position: 'fixed', left: '50%', top: '50%', zIndex: 999, opacity: 1\r\n        //     }}>\r\n        //         <img src={loader} alt=\"loading...\" /></div>}\r\n        //     <div className={loading ? 'loader' : undefined} style={{ pointerEvents: loading ? 'none' : 'all' }}>\r\n        //         {children}\r\n        //     </div >\r\n        // </div>\r\n        <div style={{ position: 'relative', boxSizing: 'border-box' }}>\r\n            {loading && <div>\r\n                <div style={{\r\n                    position: 'absolute',\r\n                    height: '100%',\r\n                    zIndex: 999,\r\n                    display: 'block', width: '100%', textAlign: 'center'\r\n                    , top: '50%'\r\n                }}>\r\n                    <img src={loader} alt=\"loading...\" />\r\n                </div>\r\n            </div>}\r\n            {loading ? <div style={{ opacity: '0.2' }}>\r\n                {children}\r\n            </div> : children}\r\n        </div>\r\n    )\r\n}\r\n","import Cookies from 'js-cookie';\r\nimport qs from 'query-string';\r\nimport { get } from 'lodash';\r\nimport { SEARCH_TEXT, SEARCH_BY } from './constants/constants';\r\nimport { Sync } from '@material-ui/icons';\r\nimport secureLocalStorage from 'react-secure-storage';\r\nimport {tokenurlforOAuth , clientvaluesforOAuth} from './constants/APIConstants';\r\nexport function toBase64(input) {  return Buffer.from(input, 'utf-8').toString('base64')}\r\n\r\nconst token ='';\r\n\r\nexport const getCookie = () => {\r\n    Cookies.get('HP_Country');\r\n}\r\n\r\nexport const setCookie = (key, value) => {\r\n    Cookies.set(key, value)\r\n}\r\n\r\n\r\nexport const getQueryParam = (props, key) => {\r\n    const search = get(props, 'history.location.search', '');\r\n    const query = qs.parse(search);\r\n    if (key) {\r\n        return query[key];\r\n    } else {\r\n        return query;\r\n    }\r\n};\r\n\r\nexport const getURLQueryString = (searchText, searchBy) => {\r\n    if (!searchText && !searchBy) {\r\n        return null;\r\n    }\r\n    searchText=encodeURIComponent(searchText);//Added By Shreyas to encode for Part/Product with Special characters.\r\n    let params = [];\r\n    searchText && params.push(`${SEARCH_TEXT}=${encodeURIComponent(searchText)}`)\r\n    searchBy && params.push(`${SEARCH_BY}=${searchBy}`)\r\n    // console.log('23', `?${params.join('&')}`)\r\n    return `?${params.join('&')}`\r\n}\r\nexport const getURLQueryStringBySearch = (searchText) => {\r\n    if (!searchText) {\r\n        return null;\r\n    }\r\n    let params = [];\r\n    searchText=encodeURIComponent(searchText);//Added By Shreyas to encode for Part/Product with Special characters.\r\n    searchText && params.push(`${SEARCH_TEXT}=${searchText}`)\r\n    //searchBy && params.push(`${SEARCH_BY}=${searchBy}`)\r\n    // console.log('23', `?${params.join('&')}`)\r\n    return `?${params.join('&')}`\r\n}\r\nexport const getLocationObject = (searchText, searchBy) => {\r\n    let queryString = '';\r\n    if (!searchText && !searchBy) {\r\n        queryString = '';\r\n    }\r\n    if(searchText)//Added this condition to perform encoding only if some value is passed  for search text\r\n        {\r\n        searchText=encodeURIComponent(searchText);//Added By Shreyas to encode for Part/Product with Special characters(Hierarchy Pop Up Data)\r\n    }\r\n    let params = [];\r\n    searchText && params.push(`${SEARCH_TEXT}=${searchText}`)\r\n    searchBy && params.push(`${SEARCH_BY}=${searchBy}`)\r\n    queryString = `?${params.join('&')}`\r\n    return {\r\n        pathname: `${process.env.REACT_APP_HOME_DIRECTORY}`,\r\n        search: queryString || undefined\r\n    }\r\n}\r\n\r\nexport const generateToken= () => {//Added to Generate Token after Specific Interval--Start\r\n    //alert(\"Generate Token Called.!\");\r\n    const axios = require('axios');\r\n    //const qs = require('qs');\r\n    let data = qs.stringify({\r\n    'grant_type': 'client_credentials' \r\n    });\r\n    const encodedval = toBase64(clientvaluesforOAuth);\r\n    let tokenurl = tokenurlforOAuth;\r\n    let config = {\r\n    method: 'post',\r\n    maxBodyLength: Infinity,\r\n    url: tokenurl,\r\n    headers: { \r\n        'Content-Type': 'application/x-www-form-urlencoded', \r\n        'Authorization': 'Basic ' + encodedval\r\n    },\r\n    data : data\r\n    };\r\n\r\n    axios.request(config)\r\n    .then((response) => {\r\n        localStorage.setItem(\"TestTokenobject\",JSON.stringify(response.data));\r\n        var expTime = new Date(new Date().getTime() + 1 * process.env.REACT_APP_TOKEN_EXP * 1000);\r\n        const token=JSON.stringify(response.data);\r\n        const value=JSON.parse(token);\r\n        Cookies.set(\"TokenFlag\",\"TOKEN\", {\r\n            expires: expTime // Will expire after(value is in number of sec.)\r\n        })\r\n        secureLocalStorage.setItem(\"TokenValue\",value.access_token);\r\n    })\r\n    .catch((error) => {\r\n        console.log(error);\r\n    });      \r\n}//Added to Generate Token after Specific Interval--End\r\n\r\nexport const getAuthHeader = () => {\r\n   // console.log('aa', process.env.REACT_APP_API_USERNAME, process.env.REACT_APP_API_PASSWORD)\r\n    //const token = Buffer.from(`${process.env.REACT_APP_API_USERNAME}:${process.env.REACT_APP_API_PASSWORD}`).toString('base64')\r\n    if(Cookies.get(\"TokenFlag\")){\r\n        const token=secureLocalStorage.getItem(\"TokenValue\");\r\n        //alert(\"valid cookie msg :from auth function\");\r\n        return {\r\n            'Authorization': `Bearer ${token}`,\r\n        }\r\n    }\r\n    else{\r\n        generateToken();\r\n        //alert(\"Cookie is Undefined\");\r\n        const token1=secureLocalStorage.getItem(\"TokenValue\");\r\n        //alert(\"valid cookie msg :from auth function\");\r\n        return {\r\n            'Authorization': `Bearer ${token1}`,\r\n        }\r\n    }\r\n}\r\n\r\nexport const getAuthHeaderUID = () => {\r\n     const token = Buffer.from(`${process.env.REACT_APP_API_USERNAME}:${process.env.REACT_APP_API_PASSWORD}`).toString('base64')\r\n     return {\r\n        'Authorization': `Basic ${token}`,\r\n        'content-type': 'application/x-www-form-urlencoded',\r\n     }\r\n }\r\n\r\n export const bodyParametersUID = (code) => {\r\n    return {\r\n        'grant_type': 'authorization_code',\r\n        'code': `${code}`,\r\n    }\r\n };","module.exports = __webpack_public_path__ + \"static/media/Cart.f5c3ec32.png\";","export const setCarItems = (payload) => ({\r\n  type: \"SET_CART_ITEMS\",\r\n  payload,\r\n});\r\n\r\n\r\n","import Cookies from \"js-cookie\";\r\n\r\nexport const CART_KEY = \"PS_CART\";\r\n\r\nexport const getStoredCart = () => {\r\n  return Cookies.getJSON(CART_KEY) || [];\r\n};\r\n\r\nexport const setStoredCart = (cartDetails) => {\r\n  Cookies.set(CART_KEY, JSON.stringify(cartDetails));\r\n  //Cookies.set(CART_KEY, cartDetails);\r\n  sessionStorage.setItem(CART_KEY, cartDetails);\r\n};\r\n\r\nexport const getItemIndex = (partNumber, cartList) => {\r\n  // console.log(\"inex\", partNumber, cartList);\r\n  if (partNumber) {\r\n    let items = [...(cartList || [])];\r\n    let index;\r\n    items.forEach((item, i) => {\r\n      if (item.PartNumber === partNumber) index = i;\r\n    });\r\n    return index;\r\n  }\r\n};\r\n","import Cookies from \"js-cookie\";\r\nimport React from \"react\";\r\nimport { Col, Container, Modal, Row } from \"react-bootstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { setCarItems } from \"../Actions\";\r\nimport Cart from \"../Cart.png\";\r\nimport { getItemIndex } from \"../CartUtils\";\r\nimport \"./cartModal.css\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { size } from \"lodash\";\r\nimport { CARTMETRIC } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport { getAuthHeader } from './Util';\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n  head: {\r\n    backgroundColor: theme.palette.common.black,\r\n    color: theme.palette.common.white,\r\n  },\r\n  body: {\r\n    fontSize: 14,\r\n  },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n  root: {\r\n    '&:nth-of-type(odd)': {\r\n      backgroundColor: theme.palette.action.hover,\r\n    },\r\n  },\r\n}))(TableRow);\r\n\r\nclass CartModal extends React.Component {\r\n  constructor() {\r\n    super();\r\n    this.state = {\r\n      showHide: false,\r\n      cart: [],\r\n    };\r\n  }\r\n\r\n  handleModalShowHide = () => {\r\n    this.setState({ showHide: !this.state.showHide });\r\n  };\r\n\r\n  removeItem = (partNumber) => {\r\n    const { cart, setCartItems } = this.props;\r\n    const ind = getItemIndex(partNumber, cart);\r\n    if (ind > -1) {\r\n      let newCart = cart || [];\r\n      newCart.splice(ind, 1);\r\n      console.log(\"remove\", newCart);\r\n      setCartItems(newCart);\r\n    }\r\n    console.log(\"partnum\", partNumber);\r\n  };\r\n\r\n  updateQuantity = (partNumber, qty) => {\r\n    console.log(\r\n      \"quant\",\r\n      partNumber,\r\n      typeof qty,\r\n      typeof Number(qty),\r\n      Number(\"0001\"),\r\n      Number(qty)\r\n    );\r\n    qty = Number(qty);\r\n    const { cart, setCartItems } = this.props;\r\n    const ind = getItemIndex(partNumber, cart);\r\n    if (ind > -1) {\r\n      if (qty > 0 && qty < 100) {\r\n        cart[ind].qty = qty;\r\n      } else {\r\n        alert(\"Quantity between 1 to 99 Only\");\r\n        cart[ind].qty = 1;\r\n      }\r\n      setCartItems(cart);\r\n    }\r\n    let urlprod;\r\n      urlprod = CARTMETRIC(partNumber, qty, 2);\r\n        axios.get(urlprod, {\r\n            headers: {\r\n              ...getAuthHeader()\r\n            }\r\n          })\r\n            .then((response) => {\r\n            }, (error) => {\r\n        })\r\n  };\r\n\r\n  truncate = (source, size) => {\r\n    return source.length > size ? source.slice(0, size - 1) + \"…\" : source;\r\n  };\r\n\r\n  getRedirectURL = () => {\r\n    const { cartQty } = this.props;\r\n    console.log(\"cq\", cartQty);\r\n    let URL=`${process.env.REACT_APP_HPPS_PATH}`\r\n    URL = `${URL}&cc=${Cookies.get(\"HP_Country\") || \"US\"}`;\r\n    Object.entries(cartQty).forEach(\r\n      ([partNumber, qty], index) =>\r\n        (URL = `${URL}&partnumber${index}=${partNumber}&.qty${index}=${qty}`)\r\n    );\r\n    return window.open(URL, \"_blank\");\r\n  };\r\n\r\n  render() {\r\n    const { mobileView} = this.props;\r\n    console.log(\"props value\",this.props.cart)\r\n    const columns = [\r\n      {\r\n        dataField: \"PartNumber\",\r\n        text: \"Part Number\",        \r\n        headerStyle: () => {\r\n          return { width: \"2%\" };\r\n        },\r\n      },\r\n      {\r\n        dataField: \"EnhancedDescription\",\r\n        text: \"Part Description\", \r\n        formatter: (col) => (\r\n          <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n        ),       \r\n        headerStyle: () => {\r\n          return { width: \"10%\" };\r\n        },\r\n      },\r\n      {\r\n        dataField: \"qty\",\r\n        text: \"Quantity\",\r\n        formatter: (col, prod, row, index) =>\r\n          col ? (\r\n            <div className=\"input-group\">\r\n              <span className=\"input-group-btn\">\r\n                <button\r\n                  type=\"button\"\r\n                  className=\"btn btn-default btn-number\"\r\n                  onClick={() => {\r\n                    prod.qty - 1 > 0 &&\r\n                      this.updateQuantity(\r\n                        prod.PartNumber,\r\n                        prod.qty - 1\r\n                      );\r\n                  }}\r\n                >\r\n                  <i className=\"fas fa-minus\" />\r\n                </button>\r\n              </span>\r\n               <div onChange={(e) => {\r\n                  this.updateQuantity(\r\n                  prod.PartNumber,\r\n                  e.currentTarget.value\r\n                );\r\n                }}>\r\n              <Container style={{alignItems:'center',border:'inset',maxWidth:'100%',paddingBottom:'10%',minWidth:'50%',paddingLeft:'10%'}}>\r\n              {prod.qty}</Container>\r\n              </div>\r\n              <span className=\"input-group-btn\">\r\n                <button\r\n                  type=\"button\"\r\n                  className=\"btn btn-default btn-number\"\r\n                  onClick={() => {\r\n                    prod.qty + 1 < 100 &&\r\n                      this.updateQuantity(\r\n                        prod.PartNumber,\r\n                        prod.qty + 1\r\n                      );\r\n                  }}\r\n                >\r\n                  <i className=\"fas fa-plus\" />\r\n                </button>\r\n              </span>\r\n          </div>\r\n        ) : null,\r\n        headerStyle: () => {\r\n          return { width: \"3%\" };\r\n        },\r\n      },\r\n      {\r\n        dataField: \"\",\r\n        text: \"Action\",\r\n        formatter : (col, prod, row, index) =>\r\n          (\r\n            <span\r\n                onClick={() =>\r\n                this.removeItem(prod.PartNumber)\r\n                 }\r\n            >\r\n              <i\r\n               className=\"fa fa-trash\"\r\n               aria-hidden=\"true\"\r\n              />\r\n            </span>\r\n          ),\r\n        headerStyle: () => {\r\n          return { width: \"2%\" };\r\n        },\r\n      },      \r\n    ];\r\n    return (\r\n      <div>\r\n        <React.Fragment>\r\n          {mobileView ? (\r\n            <React.Fragment>\r\n              <img\r\n                alt=\"cart\"\r\n                src=\"https://itg-psurf-web.glbinc.hp.com/PartSurfer/img/Cart.png\"\r\n                width=\"28\"\r\n                height=\"22\"\r\n                onClick={() => this.handleModalShowHide()} style={{cursor:'pointer'}}\r\n              />\r\n\r\n              <span className=\"badge badge-warning\" id=\"lblCartCount\">\r\n                {(this.props.cart || []).length}\r\n              </span>\r\n\r\n              <Modal\r\n                show={this.state.showHide}\r\n                size=\"lg\"\r\n                dialogClassName={\"my-modal\"}\r\n              >\r\n                <Modal.Header closeButton onHide={this.handleModalShowHide}>\r\n                  <b>Cart Items</b>\r\n                </Modal.Header>\r\n                <Modal.Body>\r\n                  {(this.props.cart || []).length > 0 ? (\r\n                    <>\r\n                      {this.props.cart.map((cartItem, idx) => {\r\n                        return (      \r\n                            <Row key={idx}>\r\n                                  <Row style={{width: \"100%\"}}>\r\n                                  <Col>\r\n                                  <div style={{ marginLeft: \"10px\", width: \"100%\"}}>\r\n                                  <hr style={{ borderTop: \"3px\", borderTopStyle: \"solid\", borderTopColor:\"#bbb\"}}/> \r\n                                    <div style={{ fontSize: \"14px\"}}><b>Part Number:</b>   \r\n                                    {/* <div style={{ fontSize: \"12px\"}}> */}\r\n                                    {cartItem.PartNumber}\r\n                                    {/* </div> */}\r\n                                    </div> \r\n                                  </div> \r\n                                 \r\n                                  </Col>\r\n                                  </Row>\r\n                                <Row style={{width: \"100%\"}}>\r\n                                  <Col>                \r\n                                   <div style={{ marginLeft: \"10px\", width: \"100%\"}}>\r\n                                     {/* <hr style={{ borderTop: \"3px\", borderTopStyle: \"solid\", borderTopColor:\"#bbb\"}}/>  */}\r\n                                    <div style={{ fontSize: \"14px\"}}><b>Part Description:</b> <br/></div>   \r\n                                    <div style={{ fontSize: \"12px\"}}>\r\n                                      <div dangerouslySetInnerHTML={{ __html: cartItem.EnhancedDescription }}></div>\r\n                                    </div>\r\n                                  </div> \r\n                                  <br/>\r\n                                  </Col>\r\n                                </Row>                                                              \r\n                                {/* </Col> */}\r\n                                <Col xs={6}>\r\n                                  <div className=\"input-group\">\r\n                                    <span className=\"input-group-btn\">\r\n                                      <button\r\n                                        type=\"button\"\r\n                                        className=\"btn btn-default btn-number\"\r\n                                        onClick={() => {\r\n                                          cartItem.qty - 1 > 0 &&\r\n                                            this.updateQuantity(\r\n                                              cartItem.PartNumber,\r\n                                              cartItem.qty - 1\r\n                                            );\r\n                                        }}\r\n                                      >\r\n                                        <i className=\"fas fa-minus\" />\r\n                                      </button>\r\n                                    </span>\r\n                                    <div onChange={(e) => {\r\n                                        this.updateQuantity(\r\n                                          cartItem.PartNumber,\r\n                                          e.currentTarget.value\r\n                                        );\r\n                                      }}>\r\n                                        <Container style={{alignItems:'center',border:'inset',maxWidth:'100%',paddingBottom:'10%',minWidth:'50%',paddingLeft:'10%'}}>\r\n                                        {cartItem.qty}</Container>\r\n                                    </div>\r\n                                    <span className=\"input-group-btn\">\r\n                                      <button\r\n                                        type=\"button\"\r\n                                        className=\"btn btn-default btn-number\"\r\n                                        onClick={() => {\r\n                                          cartItem.qty + 1 < 100 &&\r\n                                            this.updateQuantity(\r\n                                              cartItem.PartNumber,\r\n                                              cartItem.qty + 1\r\n                                            );\r\n                                        }}\r\n                                      >\r\n                                        <i className=\"fas fa-plus\" />\r\n                                      </button>\r\n                                    </span>\r\n                                  </div>\r\n                                </Col>\r\n                              <Col >\r\n                                <span\r\n                                  onClick={() =>\r\n                                    this.removeItem(cartItem.PartNumber)\r\n                                  }\r\n                                >\r\n                                  <i\r\n                                    className=\"fa fa-trash\"\r\n                                    aria-hidden=\"true\"\r\n                                  />\r\n                                </span>\r\n                                </Col>\r\n                            </Row>\r\n                        \r\n                          \r\n                        );\r\n                      })}\r\n                      <Modal.Footer>\r\n                        <input\r\n                          type=\"button\"\r\n                          className=\"btnStylePrimary\"\r\n                          value=\"Check Out\"\r\n                          onClick={() => this.getRedirectURL()}\r\n                        />\r\n                      </Modal.Footer>\r\n                    </>\r\n                  ) : (\r\n                    <> You have no items in your shopping cart.</>\r\n                  )}\r\n                </Modal.Body>\r\n              </Modal>\r\n            </React.Fragment>\r\n          ) : (\r\n            <React.Fragment>\r\n              <img\r\n                alt=\"cart\"\r\n                src=\"https://itg-psurf-web.glbinc.hp.com/PartSurfer/img/Cart.png\"\r\n                width=\"28\"\r\n                height=\"22\"\r\n                onClick={() => \r\n                  this.handleModalShowHide()\r\n                } style={{cursor:'pointer'}}\r\n              />\r\n\r\n              <span className=\"badge badge-warning\" id=\"lblCartCount\">\r\n                {(this.props.cart || []).length}\r\n              </span>\r\n\r\n              <Modal\r\n                show={this.state.showHide}\r\n                size=\"lg\"\r\n                dialogClassName={\"my-modal\"}\r\n              >\r\n                <Modal.Header closeButton onHide={this.handleModalShowHide} >\r\n                <b>Cart Items</b>\r\n                </Modal.Header>\r\n                  <Modal.Body >\r\n                    {(this.props.cart || []).length > 0 ? (\r\n                      <>\r\n                        <Container>\r\n                          <Modal.Body>\r\n                          <BootstrapTable\r\n                              keyField=\"PartNumber\"\r\n                              //data={data}\r\n                              data={this.props.cart}\r\n                              columns={columns}\r\n                              striped                              \r\n                            />   \r\n                          </Modal.Body>\r\n                        </Container>\r\n                        <Modal.Footer>\r\n                          <input\r\n                            type=\"button\"\r\n                            className=\"btnStylePrimary\"\r\n                            value=\"Check Out\"\r\n                            onClick={() => this.getRedirectURL()}\r\n                          />\r\n                        </Modal.Footer>\r\n                      </>\r\n                    ) : (\r\n                      <> You have no items in your shopping cart.</>\r\n                    )}\r\n                  </Modal.Body>\r\n                \r\n              </Modal>\r\n            </React.Fragment>\r\n          )}\r\n        </React.Fragment>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n  let cartQty = {};\r\n  state.cart.cartItems.forEach((item) => (cartQty[item.PartNumber] = item.qty));\r\n  return {\r\n    ...state,\r\n    cart: state.cart.cartItems,\r\n    cartQty,\r\n  };\r\n};\r\n\r\nconst mapDispatchProps = (dispatch) => ({\r\n  setCartItems: (cart) => dispatch(setCarItems(cart)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchProps)(ViewHOC(CartModal));\r\n","import React from \"react\";\r\nimport \"./nav.css\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getLocationObject } from \"./Util\";\r\nimport { MailIDS } from \"./constants/constants\";\r\nimport CartModal from \"./CartModal\";\r\nimport Loading from './Loading';\r\nimport Cookies from 'js-cookie'\r\n// import { USER_GUIDE } from \"./constants/RouteConstants\";\r\n\r\n// Added By Shreyas to Redirect Page to Home URL--Start Changed on 24 Feb 2023\r\nfunction pageRefresh(event){\r\n  event.preventDefault();\r\n  localStorage.setItem(\"Temp_Country\",Cookies.get('HP_Country'));// Added on:-09 March 2023\r\n //window.location.replace(`${process.env.REACT_APP_HOME_DIRECTORY}`);\r\n  window.location.replace(\"/\");\r\n  };\r\n// Added By Shreyas to Redirect Page to Home URL--End Changed on 24 Feb 2022\r\n  const bannerMessage = process.env.REACT_APP_BANNER_MESSAGE || \"\";\r\nfunction Navbar(props) {\r\n  // console.log('mobile', x.mobileView)\r\n//  console.log(\"navprop\", props);\r\n  return (\r\n     <div>\r\n      \r\n      <nav\r\n      className=\"navbar navbar-expand-sm navbar-light\"\r\n      style={\r\n        props.mobileView\r\n          ? {}\r\n          : {\r\n              paddingLeft: \"4rem\",\r\n            }\r\n            \r\n      }\r\n    >\r\n      <button\r\n        className=\"navbar-toggler\"\r\n        type=\"button\"\r\n        data-toggle=\"collapse\"\r\n        data-target=\"#navbarSupportedContent\"\r\n        aria-controls=\"navbarSupportedContent\"\r\n        aria-expanded=\"false\"\r\n        aria-label=\"Toggle navigation\"\r\n      >\r\n        <span className=\"navbar-toggler-icon\"></span>\r\n      </button>      \r\n      <div className=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\r\n        <ul className=\"navbar-nav mr-auto\">\r\n          <li className=\"nav-item active\">\r\n            {/* <a className=\"nav-link\" href=\"#\">Home <span className=\"sr-only\">(current)</span></a> */}\r\n            {/* Commented by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- Start Here  */}\r\n            {/* <Link className=\"nav-link\" to={getLocationObject()}> */}\r\n             {/* Commented by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- End Here  */}\r\n             {/* Added by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- Start Here  */}           \r\n\t\t\t<Link className=\"nav-link\" onClick={pageRefresh}>\r\n              {/* Added by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- End Here  */}\r\n              Home\r\n            </Link>\r\n          </li>         \r\n\r\n          {/* <li className=\"nav-item dropdown\">\r\n            <a\r\n              className=\"nav-link dropdown-toggle\"\r\n              href=\"/#\"\r\n              id=\"navbarDropdown\"\r\n              role=\"button\"\r\n              data-toggle=\"dropdown\"\r\n              aria-haspopup=\"true\"\r\n              aria-expanded=\"false\"\r\n            >\r\n              Search By\r\n            </a>\r\n            <div\r\n              className=\"dropdown-menu dropdown-menu-right\"\r\n              aria-labelledby=\"navbarDropdown\"\r\n            >\r\n              <Link\r\n                className=\"dropdown-item\"\r\n                to={getLocationObject(null, SEARCH_MODES.PART)}\r\n              >\r\n                Part\r\n              </Link>\r\n              <Link\r\n                className=\"dropdown-item\"\r\n                to={getLocationObject(null, SEARCH_MODES.PRODUCT)}\r\n              >\r\n                Product\r\n              </Link>\r\n              <Link\r\n                className=\"dropdown-item\"\r\n                to={getLocationObject(null, SEARCH_MODES.SERIAL_WP)}\r\n              >\r\n                Serial Number\r\n              </Link>\r\n              <Link\r\n                className=\"dropdown-item\"\r\n                to={getLocationObject(null, SEARCH_MODES.FUNCTIONAL_EQUIVALENT)}\r\n              >\r\n                Functional Equivalent\r\n              </Link>\r\n              <Link\r\n                className=\"dropdown-item\"\r\n                to={getLocationObject(null, SEARCH_MODES.WILD_CHAR)}\r\n              >\r\n                Wild Character\r\n              </Link>\r\n            </div>\r\n          </li> */}\r\n          <li className=\"nav-item active\">\r\n            {/* <a className=\"nav-link\" href=\"#\">Home <span className=\"sr-only\">(current)</span></a> */}\r\n            <Link className=\"nav-link\" to='/PartSurfer/Hierarchy'>\r\n              Hierarchy\r\n            </Link>\r\n          </li>\r\n          <li className=\"nav-item dropdown\">\r\n            <a\r\n              className=\"nav-link dropdown-toggle\"\r\n              href=\"/#\"\r\n              id=\"navbarDropdown\"\r\n              role=\"button\"\r\n              data-toggle=\"dropdown\"\r\n              aria-haspopup=\"true\"\r\n              aria-expanded=\"false\"\r\n            >\r\n              Self Help\r\n            </a>\r\n            <div className=\"dropdown-menu\" aria-labelledby=\"navbarDropdown\">\r\n              <Link  className=\"dropdown-item\"  to=\"/PartSurfer/UserGuide\">\r\n                User Guide\r\n              </Link>\r\n                <Link  className=\"dropdown-item\"  to=\"/PartSurfer/Faq\">\r\n                Frequently Asked Questions\r\n                </Link>\r\n                <Link className=\"dropdown-item\" to=\"/PartSurfer/ContactUS\">\r\n                  Contact Us\r\n                </Link>\r\n                {/* {!MailIDS.includes(localStorage.getItem(\"loggeduser\")) ?  \"\": \r\n                <Link className=\"dropdown-item\" to=\"/PartSurfer/GenerateMetrics\">\r\n                  Generate Metrics\r\n                </Link>  } */}\r\n            </div>\r\n          </li>\r\n        </ul>\r\n        {!props.mobileView && <CartModal />}\r\n      </div>\r\n      \r\n      {props.mobileView && <CartModal />}\r\n    </nav>\r\n      {/* Conditionally render the banner if the bannerMessage is not empty */}\r\n      {bannerMessage && (\r\n        <div id=\"banner\">  \r\n          <marquee direction=\"left\">{bannerMessage}</marquee>\r\n        </div>\r\n      )}\r\n\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default ViewHOC(Navbar);\r\n","import React from \"react\";\r\nimport { Accordion, Card, Container } from \"react-bootstrap\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getLocationObject } from \"./Util\";\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\n\r\nfunction ContactUS() {\r\n  return (\r\n    <React.Fragment>\r\n      <div>  \r\n         <Navbar />    \r\n        <div style={{ marginRight: \"10px\"}}>\r\n          <br/>\r\n          <Login />\r\n          <br/>\r\n        </div>\r\n      </div>\r\n      <Container>\r\n        <Accordion defaultActiveKey=\"0\">\r\n          <Card>\r\n            <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n              I have a question/comment about ...\r\n            </Accordion.Toggle>\r\n            <Accordion.Collapse eventKey=\"0\">\r\n              <Card.Body>\r\n                <b>More parts assistance ..</b>\r\n                <br />\r\n                For further assistance with ordering or identifying HP parts,\r\n                please visit the &nbsp;\r\n                <a\r\n                  target=\"_blank\"\r\n                  className=\"underline\"\r\n                  href=\"https://parts.hp.com/hpparts/CountryChoice.aspx\"\r\n                  rel=\"noopener noreferrer\"\r\n                  style={{ color: \"black\" }}\r\n                >\r\n                  HP Parts Store\r\n                </a>\r\n                <br />\r\n                <br />\r\n                <a href=\"https://support.hp.com/\" target=\"_blank\">\r\n                  <b style={{ color: \"#003366\" }}>\r\n                    <span>&#62;&#62;</span> Support for my product\r\n                  </b>\r\n                </a>\r\n                <br />\r\n                <br />\r\n                <a href=\"https://www.hp.com/us-en/hp-information.html\" target=\"_blank\">\r\n                  <b style={{ color: \"#003366\" }}>\r\n                    <span>&#62;&#62;</span>General HP information\r\n                  </b>\r\n                </a>\r\n                <br />\r\n                <br />\r\n                <b>I would like to send email to HP regarding ..</b><br/>\r\n                <br />\r\n                <a\r\n                  href=\"https://www.hp.com/us-en/shop/cv/customerservice#TechSupport\"\r\n                  target=\"_blank\"\r\n                  rel=\"noopener noreferrer\"\r\n                  style={{ color: \"#003366\" }}\r\n                >\r\n                  <span>&#62;&#62;</span>\r\n                  <b>Technical support for my HP product</b>\r\n                </a><br/>\r\n                <br />\r\n                {/* <a\r\n                  href=\"NewRequest\"\r\n                  rel=\"noopener noreferrer\"\r\n                  target=\"_blank\"\r\n                  style={{ color: \"#003366\" }}\r\n                >\r\n                  <span>&#62;&#62;</span>\r\n                  <b>Missing or incorrect data in PartSurfer</b>\r\n                </a> */}\r\n                <Link style={{ color: \"#003366\" }} rel=\"noopener noreferrer\" to=\"/PartSurfer/NewRequest\">\r\n                  <span>&#62;&#62;</span>\r\n                  <b>Missing or incorrect data in PartSurfer</b>\r\n                </Link>\r\n              </Card.Body>\r\n            </Accordion.Collapse>\r\n          </Card>\r\n        </Accordion>\r\n        <br />        \r\n        <div>\r\n        <div>\r\n            <Link className=\"apply btn btn-primary\" to={getLocationObject()}>\r\n              Back to home\r\n            </Link>\r\n            <br />\r\n        </div>\r\n        <br />\r\n        </div>\r\n      </Container>\r\n    </React.Fragment>\r\n  );\r\n}\r\n\r\nexport default ViewHOC(ContactUS);\r\n","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { Alert, Card, Container, Accordion } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Login from \"./login\";\r\nimport { getLocationObject } from \"./Util\";\r\nimport Navbar from \"./navbar\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\n\r\nfunction Faq() {\r\n  return (\r\n    <React.Fragment> \r\n      <div>  \r\n         <Navbar />    \r\n        <div style={{ marginRight: \"10px\"}}>\r\n          <br/>\r\n          <Login />\r\n          <br/>\r\n        </div>\r\n      </div>\r\n      <Container>\r\n        <Alert className=\"theme\">\r\n          <p>\r\n            This document answers some of the common questions regarding HP\r\n            PartSurfer and Service Parts Information (SPI) data. If you have a\r\n            question or concern that is not addressed here, please refer to our{\" \"}\r\n            <Link to=\"/PartSurfer/ContactUS\">contact page</Link> for more\r\n            detailed help or to contact us via email.\r\n          </p>\r\n        </Alert>\r\n\r\n        <Accordion defaultActiveKey=\"0\">\r\n          <Card>\r\n            <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n              Questions and Answers ...\r\n            </Accordion.Toggle>\r\n            <Accordion.Collapse eventKey=\"0\">\r\n              <Card.Body>\r\n                <b>Access to HP PartSurfer</b>\r\n                <br />\r\n                <b>\r\n                  Q.Do I have to register in order to use HP PartSurfer?\r\n                </b>{\" \"}\r\n                <br />\r\n                <p\r\n                  style={{\r\n                    fontfamily: \"HPSimplified\",\r\n                    fontsize: \"12px\",\r\n                  }}\r\n                >\r\n                  <b> A.</b>HP PartSurfer does NOT require registration. Before\r\n                  you can access data in PartSurfer, you will be asked to select\r\n                  from the list of over 40 countries and regions for which we\r\n                  provide part information. Your selection will be saved in a\r\n                  cookie on your computer, and you will automatically be\r\n                  provided with the correct part information on future visits.{\" \"}\r\n                </p>\r\n                <b>Q.Is there a cost for using HP PartSurfer?</b>\r\n                <p\r\n                  style={{\r\n                    fontfamily: \"HPSimplified\",\r\n                    fontsize: \"12px\",\r\n                  }}\r\n                >\r\n                  <b style={{ fontsize: \"14px\" }}>A.</b>We are happy to provide\r\n                  PartSurfer at no cost to assist customers in identifying and\r\n                  purchasing genuine HP parts.\r\n                </p>\r\n                <b>Q.Why won't HP PartSurfer run on my computer?</b>\r\n                <p\r\n                  style={{\r\n                    fontfamily: \"HPSimplified\",\r\n                    fontsize: \"12px\",\r\n                  }}\r\n                >\r\n                  <b style={{ fontsize: \"14px\" }}>A.</b>You must be running\r\n                  version 4 or greater of either Netscape Navigator or Internet\r\n                  Explorer to use PartSurfer. Cookies must be allowed, and\r\n                  JavaScript must be enabled.\r\n                  If this does not address your problem, please refer to our{\" \"}\r\n                  <Link to=\"/PartSurfer/ContactUS\">contact page</Link> for more\r\n                  detailed help or to contact us via email.\r\n                </p>\r\n                <br />\r\n                <b>General Application Questions</b>\r\n                <br />\r\n                <b>Q.How often is HP PartSurfer updated?</b>{\" \"}\r\n                <p\r\n                  style={{\r\n                    fontfamily: \"HPSimplified\",\r\n                    fontsize: \"12px\",\r\n                  }}\r\n                >\r\n                  <b style={{ fontsize: \"14px\" }}>A.</b>HP PartSurfer is updated\r\n                  from the main SPI database every Monday through Friday at\r\n                  approximately 6 PM Pacific time.\r\n                </p>\r\n                <b>\r\n                  Q.I thought HP PartSurfer displayed part pricing information.\r\n                  Why do I not see any part prices?\r\n                </b>\r\n                <p\r\n                  style={{\r\n                    fontfamily: \"HPSimplified\",\r\n                    fontsize: \"12px\",\r\n                  }}\r\n                >\r\n                  <b style={{ fontsize: \"14px\" }}>A.</b>Part prices are no\r\n                  longer displayed in PartSurfer for some countries. Web-based\r\n                  applications and other resources for ordering HP parts on-line\r\n                  are now available in most geographies. These interfaces\r\n                  provide access to 'real-time' part prices, as well as dealer\r\n                  and volume discounts, and information on parts unique to your\r\n                  country or region.\r\n                  <a\r\n                    href=\"https://parts.hp.com/Hpparts/CountryChoice.aspx\"\r\n                    target=\"buyparts\"\r\n                    className=\"udrline\"\r\n                  >\r\n                    Click here\r\n                  </a>{\" \"}\r\n                  for information on accessing HP part prices and buying HP\r\n                  parts in your area.\r\n                </p>\r\n                <br/>\r\n                <b>Part/Product and Ordering Questions</b>\r\n                <br />\r\n                <b>\r\n                  Q.I have found the part that I need. Now how do I order it?\r\n                </b>\r\n                <p\r\n                  style={{\r\n                    fontfamily: \"HPSimplified\",\r\n                    fontsize: \"12px\",\r\n                  }}\r\n                >\r\n                  <b style={{ fontsize: \"14px\" }}>A.</b>Based on the country\r\n                  selection chosen when you first use the site, we will detect\r\n                  whether a parts is orderable from the HP Parts Store or not.\r\n                  If a box appears next to the part then click on it to{\" \"}\r\n                  <b>[Add to Cart]</b>. If there is NO box then it may not be\r\n                  orderable. You can also at any time go directly to the HP\r\n                  Parts Store (under the <b>Services</b> menu above) and double\r\n                  check at any time. When your selections are completed, click\r\n                  on the <b>Shopping Cart</b> icon and follow the steps to check\r\n                  availability, part price, and other ordering options available\r\n                  to you in your country.\r\n                </p>\r\n                <b>\r\n                  Q.Why can't I find the part or product that I need on HP\r\n                  PartSurfer? What do I do now?\r\n                </b>{\" \"}\r\n                <p\r\n                  style={{\r\n                    fontfamily: \"HPSimplified\",\r\n                    fontsize: \"12px\",\r\n                  }}\r\n                >\r\n                  <b style={{ fontsize: \"14px\" }}>A.</b>HP PartSurfer is\r\n                  intended to identify products and associated parts with the\r\n                  highest volume of parts information requests and provide\r\n                  high-quality data for them, not to provide a 100% solution for\r\n                  all HP products and parts. Some HP products are set up on our\r\n                  centralized repair program, and have few user-replaceable\r\n                  parts. This could be the reason that the part you are looking\r\n                  for is not on HP PartSurfer. For further assistance with\r\n                  service parts information, or to determine the best repair\r\n                  strategy for your HP product, please refer to the resources\r\n                  listed on our{\" \"}\r\n                  <Link to=\"/PartSurfer/ContactUS\">contact page.</Link>\r\n                </p>\r\n              </Card.Body>\r\n            </Accordion.Collapse>\r\n          </Card>\r\n        </Accordion>\r\n        <br />\r\n        <br />\r\n      </Container>\r\n      <div style={{display: 'flex', justifyContent: 'center'}}>\r\n        <div>\r\n            <Link className=\"apply btn btn-primary\" to={getLocationObject()}>\r\n              Back to home\r\n            </Link>\r\n        </div>\r\n        <br/>\r\n        <br/>\r\n        <br/>\r\n      </div>\r\n    </React.Fragment>\r\n  );\r\n}\r\n\r\nexport default ViewHOC(Faq);\r\n","import React from 'react'\r\n\r\nexport default function Image({src}) {\r\n    return (\r\n        \r\n            <img className=\"responsive\"\r\n                      src={`${window.location.origin}/img/${src}`}\r\n                      alt=\"img\"\r\n                      onError={(e) => {\r\n                        e.target.src = `${window.location.origin}/PartSurfer/img/${src}`; //replacement image imported above\r\n                      }}\r\n                    />\r\n     \r\n    )\r\n}\r\n","import React, { Component } from 'react'\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\n\r\n\r\nclass FunctionalEquivalent extends Component {\r\n\r\n    render() {\r\n\r\n        const { data, mobileView } = this.props;\r\n       \r\n        const columns = [\r\n            {\r\n                dataField: 'PartNumber',\r\n                text: 'Part Number',\r\n                headerStyle: () => {\r\n                    return { width: \"15%\" };\r\n                }\r\n            },\r\n            /* {\r\n                dataField: 'Keyword',\r\n                text: 'Keyword ',\r\n                headerStyle: () => {\r\n                    return { width: \"auto\" };\r\n                }\r\n            }, */\r\n            {\r\n                dataField: 'EnhancedDescription',\r\n                text: 'Part Description ',\r\n                formatter: (col) => <div dangerouslySetInnerHTML={{ __html: col }}></div>,\r\n                headerStyle: () => {\r\n                    return { width: \"auto\" };\r\n                }\r\n            },\r\n            {\r\n                dataField: 'CSRFlag',\r\n                text: 'CSR ',\r\n                headerStyle: () => {\r\n                    return { width: \"5%\" };\r\n                }\r\n            },\r\n            localStorage.getItem(\"loggeduser\") == null ? {\r\n                dataField: 'TechCourier',\r\n                text: 'Tech Courier',\r\n                headerStyle: () => {\r\n                    return { width: \"10%\" };\r\n                },\r\n                hidden: true,\r\n            }: {\r\n                dataField: 'TechCourier',\r\n                text: 'Tech Courier',\r\n                headerStyle: () => {\r\n                    return { width: \"10%\" };\r\n                }\r\n            },\r\n            {\r\n                dataField: 'ROHSCompliant',\r\n                text: 'ROHS ',\r\n                headerStyle: () => {\r\n                    return { width: \"20%\" };\r\n                }\r\n            }];\r\n\r\n        return (\r\n            <React.Fragment>\r\n                {mobileView\r\n                    ? <React.Fragment>\r\n                       \r\n                        {/* <hr /> */}\r\n                        {\r\n                            (data || []).map(prod => <React.Fragment>\r\n                                <b>Part Number&nbsp;:&nbsp;</b>{prod.PartNumber}\r\n                                <br />\r\n                                {/* <b>Keyword&nbsp;:&nbsp;</b>{prod.Keyword}\r\n                                <br /> */}\r\n                                <b>Part Description&nbsp;:&nbsp;</b>\r\n                                {/* {prod.EnhancedDescription}  */}\r\n                                <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n                                <br />\r\n                                <b>CSR&nbsp;:&nbsp;</b>{prod.CsrFlag?prod.CsrFlag:\"-N/A-\"}\r\n                                <br />\r\n                                <b>Tech Courier&nbsp;:&nbsp;</b>{prod.TechCourier?prod.TechCourier:\"-N/A-\"}\r\n                                <br />\r\n                                <b>ROHS&nbsp;:&nbsp;</b>{prod.RohsCompliant?prod.RohsCompliant:\"-N/A-\"}\r\n                                <br />\r\n                                {/* <hr /> */}\r\n                                {/* <hr /> */}\r\n                            </React.Fragment>)\r\n                        }\r\n                    </React.Fragment>\r\n                    : <BootstrapTable keyField='PartNumber' data={data} columns={columns} striped pagination={data.length > 10 ? paginationFactory() : undefined} />\r\n                }\r\n            </React.Fragment>\r\n        )\r\n    }\r\n}\r\n\r\nexport default (ViewHOC(FunctionalEquivalent));\r\n\r\n\r\n\r\n","import React from 'react'\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nconst getDesc = (mode, payload) => {\r\n    switch (mode) {\r\n        //commented by shridhar for wild card search-blue section need to remove\r\n        // case 'GenericSearch':\r\n        //     return (<div>\r\n        //         <div style={{ color: \"white\" }}> Product Number&nbsp;:&nbsp;&nbsp;{payload[0].ProductNumber === '-N/A-' ? 'Not Found' : payload[0].ProductNumber} <br /></div>\r\n        //         <div style={{ color: \"white\" }}> Product Name&nbsp;:&nbsp;&nbsp;{payload[0].ProductNumber === '-N/A-' ? 'Not Found' : payload[0].ProductName} <br /></div>\r\n        //     </div>)\r\n        case 'SERIAL':\r\n            return (<div>\r\n                {payload &&\r\n                <div>                    \r\n                    <div style={{ color: \"white\" }}>Serial Number&nbsp;:&nbsp;&nbsp;{payload.wwsnrsinput.serial_no === '-N/A-' ? 'Not Found' : payload.wwsnrsinput.serial_no}<br /></div>\r\n                    <div style={{ color: \"white\" }}>Product Number&nbsp;:&nbsp;&nbsp;{payload.wwsnrsinput.product_no === '-N/A-' ? 'Not Found' : payload.wwsnrsinput.product_no}<br /></div>\r\n                    <div style={{ color: \"white\" }}>Description&nbsp;:&nbsp;&nbsp;{payload.wwsnrsinput.user_name === '-N/A-' ? 'Not Found' : payload.wwsnrsinput.user_name}<br /></div>\r\n                    <div style={{ color: \"white\" }}>ROHS Status&nbsp;:&nbsp;&nbsp;{payload.roHS_unit_status.rohs_status_code === '-N/A-' ? 'Not Found' : payload.roHS_unit_status.rohs_status_code}<br /></div>\r\n                </div>\r\n                }\r\n            </div>)\r\n        case 'PRODUCT':\r\n            return (<div>  \r\n                 {(payload || []).length > 0 && (\r\n                     <div>\r\n                        <div style={{ color: \"white\" }}>Product Number&nbsp;:&nbsp;&nbsp;{payload[0].ProductNumber? payload[0].ProductNumber: \"Not Found\"} <br /></div>\r\n                        <div style={{ color: \"white\" }}>Description&nbsp;: &nbsp;&nbsp;{payload[0].ProductName? payload[0].ProductName: \"Not Found\"} <br /></div>\r\n                    </div>\r\n                 )}             \r\n                \r\n            </div>)\r\n        default:\r\n    }\r\n}\r\n\r\nexport default function Details({ mode, payload, expandIconRequired, triggered, triggerAll }) {\r\n    return (\r\n        <div style={{ backgroundColor: \"#0096D6\", padding: \"20px 10px\" }}>\r\n            {expandIconRequired && triggerAll ?\r\n                <Row noGutters={true}>\r\n                    <Col xs={'11'} sm={'11'} md={'11'} lg={'11'} xl={'11'}>\r\n                        {getDesc(mode, payload)}\r\n                    </Col>\r\n                    <Col xs={'1'} sm={'1'} md={'1'} lg={'1'} xl={'1'}>\r\n                        \r\n                        <div style={{ float: 'right', color: 'white' }} onClick={() => { triggerAll(!triggered) }}>\r\n                            {triggered ? <FontAwesomeIcon icon=\"minus-square\" /> : <FontAwesomeIcon icon=\"plus-square\" />}\r\n                        </div>\r\n                    </Col>\r\n                </Row> : getDesc(mode, payload)}\r\n        </div>\r\n    )\r\n}\r\n","import React from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport Details from \"./Details\";\r\nimport { getURLQueryString, getURLQueryStringBySearch } from \"./Util\";\r\nimport { SEARCH_MODES } from \"./constants/constants\";\r\n\r\nclass ProductList extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      list: [],\r\n    };\r\n  }\r\n\r\n  componentDidMount() {\r\n    this.filterData();\r\n  }\r\n\r\n  filterData = (text) => {\r\n    this.setState({\r\n      list: this.props.data.filter((part) =>\r\n        text\r\n          ? part.ProductNumber.indexOf(text) > -1 ||\r\n            part.ProductName.indexOf(text) > -1\r\n          : true\r\n      ),\r\n    });\r\n  };\r\n\r\n  render() {\r\n    const { data, mobileView, isDescDisabled } = this.props;\r\n\r\n    const columns = mobileView\r\n      ? [\r\n          {\r\n            text: \"#\",\r\n            dataField:'',\r\n            headerAttrs: {\r\n              hidden: true,\r\n            },\r\n            formatter: (col, prod, index) => {\r\n              return (\r\n                <React.Fragment key={prod.ProductNumber}>\r\n                  <b>Product/Part&nbsp;:&nbsp;</b>\r\n                  <a\r\n                    href={getURLQueryString(\r\n                      prod.ProductNumber,\r\n                      SEARCH_MODES.PRODUCT\r\n                    )}\r\n                    target=\"_blank\"\r\n                    rel=\"noopener noreferrer\"\r\n                  >\r\n                    {prod.ProductNumber}\r\n                  </a>\r\n                  <br />\r\n                  <b>Description&nbsp;:&nbsp;</b>\r\n                  {prod.ProductName}\r\n                  <br />\r\n                  <br/>\r\n                </React.Fragment>\r\n              );\r\n            },\r\n          },\r\n        ]\r\n      : [\r\n          {\r\n            dataField: \"ProductNumber\",\r\n            text: \"Product/Part\",\r\n            formatter: (col, row, index) => (\r\n              <a href={getURLQueryStringBySearch(col)} target=\"_Blank\">{col}</a>\r\n            ),\r\n          },\r\n          {\r\n            dataField: \"ProductName\",\r\n            text: \"Description\",\r\n          },\r\n        ];\r\n\r\n    return (\r\n      <React.Fragment>\r\n        {/*\r\n        commented by shridhar to remove details blue section for wild card search\r\n        {!isDescDisabled && <Details mode=\"GenericSearch\" payload={data} />}\r\n        <br /> */}\r\n        {this.state.list.length > 0 ? \r\n        <div>\r\n        <div className=\"row\">\r\n          <div className=\"col-sm-6\">\r\n            <div className=\"input-group searchbox\">\r\n              <input\r\n                type=\"text\"\r\n                id=\"search\"\r\n                name=\"searchtext\"\r\n                className=\"form-control\"\r\n                placeholder=\"Enter Text To Filter\"\r\n                value={this.state.searchText}\r\n                onChange={(event) =>\r\n                  this.setState({ searchText: event.target.value })\r\n                }\r\n                required\r\n              />\r\n            </div>\r\n          </div>\r\n          <div className=\"col searchbox\">\r\n            <button\r\n              name=\"btn-addtext\"\r\n              className=\"apply btn btn-primary\"\r\n              onClick={() => {\r\n                this.filterData(this.state.searchText);\r\n              }}\r\n            >\r\n              Apply\r\n            </button>\r\n            &nbsp;&nbsp;\r\n            <button\r\n              name=\"btn-upload\"\r\n              className=\"reset btn btn-primary\"\r\n              onClick={() => {\r\n                this.filterData();\r\n                this.setState({ searchText: \"\" });\r\n              }}\r\n            >\r\n              Reset\r\n            </button>\r\n          </div>          \r\n        </div> \r\n        <br/>\r\n        <br/>\r\n        <div>\r\n          <BootstrapTable\r\n            keyField=\"ProductNumber\"\r\n            data={this.state.list}\r\n            columns={columns}\r\n            striped\r\n            pagination={data.length > 10 ? paginationFactory() : undefined}\r\n          />\r\n        </div>\r\n        </div>\r\n          : \"There is no Where Used Products!\" } \r\n      </React.Fragment>\r\n    );\r\n  }\r\n}\r\n\r\nexport default ViewHOC(ProductList);\r\n","import React from 'react'\r\nimport { useEffect } from \"react\";\r\nimport imageexists from 'image-exists';\r\nimport { text } from '@fortawesome/fontawesome-svg-core';\r\n\r\nexport default function PartImages({ src, partnumber, handleLoader }) {\r\n\r\n  const getImage = (event) => {\r\n    const value = event.target.value;\r\n    text = '';\r\n    text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + partnumber + '</span></h5>';\r\n    text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + src + value + \".jpg\" + ' alt=\\\"img\"\\/>';\r\n    document.getElementById('mydiv').innerHTML = text;\r\n  }\r\n\r\n  const loadComplete = () => {\r\n    //handleLoader(false);\r\n  }\r\n\r\n  let content = []; var text = '';\r\n\r\n\r\n  useEffect(() => {\r\n\r\n    var src2;\r\n    var src1 = src;\r\n    var text = '';\r\n\r\n\r\n    src1 = src + partnumber + \".jpg\";\r\n    text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + partnumber + '</span></h5>';\r\n    text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + src1 + ' alt=\\\"img\"\\/>';\r\n    document.getElementById('mydiv').innerHTML = text;\r\n    document.getElementById('imgDiv').style.display = 'none';\r\n    var x = document.getElementById(\"MyImages\");\r\n    var option = document.createElement(\"option\");\r\n    option.text = partnumber;\r\n    x.add(option);\r\n    for (let i = 1; i < 20; i++) {\r\n      src2 = src + partnumber + \"-\" + i + \".jpg\";\r\n      imageexists(src2, function (exists) {\r\n        if (exists) {\r\n          var x = document.getElementById(\"MyImages\");\r\n          var option = document.createElement(\"option\");\r\n          option.text = partnumber + \"-\" + i;\r\n          x.add(option);\r\n          document.getElementById('imgDiv').style.display = 'block';\r\n        }\r\n        else {\r\n        }\r\n      });\r\n    }\r\n\r\n\r\n  }, []);\r\n\r\n  return (\r\n\r\n    <div id=\"mydiv\" className='responsive'>\r\n    Loading Image Please Wait....\r\n    </div>\r\n\r\n  )\r\n}\r\n","import React from \"react\";\r\nimport axios from \"axios\";\r\nimport { connect } from \"react-redux\";\r\nimport { setCarItems } from \"../Actions\";\r\nimport { getItemIndex } from \"../CartUtils\";\r\nimport { Alert, Collapse } from \"react-bootstrap\";\r\nimport ProductList from \"./ProductList\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport \"./design.css\";\r\nimport Loading from \"./Loading\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { GET_PARTLIST, FUNCTIONAL, FUNCTIONAL_LIST, INSERTPHOTOMETRIC, BUYMETRIC } from \"./constants/APIConstants\";\r\nimport { getAuthHeader } from \"./Util\";\r\nimport buy from \"../buy.gif\";\r\nimport Cookies from \"js-cookie\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport PartImages from \"./PartImages\";\r\nimport { Button, Tooltip, OverlayTrigger } from \"react-bootstrap\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport FunctionalEquivalent from './FunctionalEquivalent';\r\nimport imageexists from \"image-exists\"\r\n\r\nclass PartList extends React.Component {\r\n  _isMounted = false;\r\n\r\n  constructor() {\r\n    super();\r\n    this.state = {\r\n      cart: [],\r\n      showModal: false,\r\n      showModalFE: false,\r\n      part: [],\r\n      loading: false,\r\n      collapsed: false,\r\n      modifiedData: [],\r\n      part_number: \"\",\r\n    };\r\n    this.PrintPhoto = this.PrintPhoto.bind(this);\r\n    this.closeModalFE = this.closeModalFE.bind(this);\r\n    this.buylink = this.buylink.bind(this);\r\n    this.AddPhotoMetric = this.AddPhotoMetric.bind(this);\r\n  }\r\n  componentDidMount() {\r\n    this.fetchDetails();\r\n    this._isMounted = true;\r\n    const { data } = this.props;\r\n    console.log(\"part body\", data);\r\n    if (data) {\r\n      //this.loadWhereUsed(data[0].PartNumber);\r\n      this.loadWhereUsed(encodeURIComponent(data[0].PartNumber));//Added for Encoding Special Characters\r\n    }\r\n  }\r\n  // componentWillUnmount() {\r\n  //   this._isMounted = false;\r\n  // }\r\n  componentWillReceiveProps() {\r\n\r\n  }\r\n\r\n  buylink = (url, PartNumber) => {\r\n    console.log(url);\r\n    let urlprod;\r\n    urlprod = BUYMETRIC(PartNumber);\r\n    axios.get(urlprod, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((response) => {\r\n      }, (error) => {\r\n      })\r\n    window.open(url, \"_blank\");\r\n  }\r\n\r\n  loadWhereUsed = (partNumber) => {\r\n    this.setState({ loading: false });\r\n    axios\r\n      .get(GET_PARTLIST(partNumber, localStorage.getItem(\"usertype\")), {\r\n        headers: {\r\n          ...getAuthHeader(),\r\n        },\r\n      })\r\n      .then(\r\n        (res) => {\r\n          const data = res.data.Body;\r\n          this.setState({ data, loading: false });\r\n        },\r\n        (error) => { }\r\n      );\r\n  };\r\n  //added by Mousumi\r\n  showModal = (partnumber) => {\r\n    var photo_type = \".jpg\";\r\n    const imageName = partnumber + photo_type;\r\n    const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n    //const imagePath=  imageLocation+imageName;\r\n    const imagePath = imageLocation;\r\n    this.CheckImageavailability(imagePath);\r\n    this.AddPhotoMetric(partnumber);\r\n    this.setState({ part_number: partnumber, showModal: true, imagePath });\r\n  };\r\n  closeModal = () => {\r\n    this.setState({ showModal: false });\r\n  };\r\n\r\n  CheckImageavailability = (path) => {\r\n    imageexists(path, function (exists) {\r\n      if (exists) {\r\n        localStorage.setItem(\"photoAvailable\", \"Yes\");\r\n      }\r\n      else {\r\n        localStorage.setItem(\"photoAvailable\", \"No\");\r\n      }\r\n    });\r\n\r\n  }\r\n  AddPhotoMetric = (partnumber) => {\r\n    let input = partnumber;\r\n    let urlprod;\r\n    urlprod = INSERTPHOTOMETRIC(input, localStorage.getItem(\"photoAvailable\"));\r\n    axios.get(urlprod, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((response) => {\r\n        console.log(response);\r\n      }, (error) => {\r\n        console.log(error);\r\n      })\r\n  }\r\n\r\n  //added my Mousumi\r\n  PrintPhoto = () => {\r\n    //let elem = document.getElementById(\"PopupId\");\r\n    let elem = document.getElementById(\"photoImg\");\r\n    //Changed to get the image id\r\n    var domClone = elem.cloneNode(true);\r\n    var $printSection = document.getElementById(\"printSection\");\r\n    if (!$printSection) {\r\n      $printSection = document.createElement(\"div\");\r\n      $printSection.id = \"printSection\";\r\n      document.body.appendChild($printSection);\r\n    }\r\n    $printSection.innerHTML = domClone.innerHTML;\r\n    $printSection.innerHTML = elem.innerHTML;\r\n    $printSection.appendChild(domClone);\r\n    window.print();\r\n    document.getElementById(\"printSection\").remove();\r\n  };\r\n  //Added by Mousumi\r\n  fetchDetails = () => {\r\n    ;\r\n    //let prodNumber = this.props.data[0].PartNumber;\r\n    let prodNumber = encodeURIComponent(this.props.data[0].PartNumber);  //Added for encoding special characters\r\n    let partNumbers = this.props.data.map(item => {\r\n      //return item.PartNumber\r\n      return encodeURIComponent(item.PartNumber)//Added for encoding special characters\r\n    })\r\n    const url = FUNCTIONAL_LIST(prodNumber, localStorage.getItem(\"usertype\"))\r\n    axios.post(url, partNumbers, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((res) => {\r\n        let originalData = res.data.Body;\r\n        //console.log(\"ori\",originalData)\r\n        let newData = this.props.data.map((item, i) => Object.assign({}, item, originalData[i]));\r\n        //console.log(\"newdata\",newData);\r\n        this.setState({ modifiedData: newData })\r\n      }, (error) => {\r\n        console.log(error);\r\n      })\r\n  }\r\n  //Added by Mousumi\r\n  showModalFE = (partnumber) => {\r\n    const url = FUNCTIONAL(partnumber, 'US', localStorage.getItem(\"usertype\"))\r\n    axios.get(url, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((res) => {\r\n        this.setState({\r\n          showModalFE: true,\r\n          partFEData: res.data.Body\r\n        });\r\n      }, (error) => {\r\n      })\r\n  };\r\n  closeModalFE = () => {\r\n    this.setState({ showModalFE: false });\r\n  };\r\n  //Added by Mousumi  \r\n  handleCartChange = (event, item) => {\r\n    //console.log(\"Cart ==> from props\", this.props);\r\n    const { cart } = this.props;\r\n    //console.log(\"hnadle change request\", event, item, [...(cart || [])]);\r\n    if (event) {\r\n      alert(\r\n        `One Item with PartNumber ${item.PartNumber} has been added to the Cart`\r\n      );\r\n      item.qty = 1;\r\n      const updatedCart = [...(cart || []), item];\r\n      //console.log(\"add\", updatedCart);\r\n      this.props.setCarItems(updatedCart);\r\n    } else {\r\n      alert(\r\n        `One Item with PartNumber ${item.PartNumber} has been removed from Cart`\r\n      );\r\n      const ind = getItemIndex(item.PartNumber, cart);\r\n      if (ind > -1) {\r\n        let newCart = cart || [];\r\n        newCart.splice(ind, 1);\r\n        // console.log(\"remove\", newCart);\r\n        this.props.setCarItems(newCart);\r\n      }\r\n    }\r\n  };\r\n\r\n\r\n  handleLoader = (value) => {\r\n    console.log(\"load value\", value)\r\n    // this.setState({isLoad : value})\r\n  }\r\n  getImage = (event) => {\r\n    const value = event.target.value;\r\n    const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n    var text = '';\r\n    text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + this.state.part_number + '</span></h5>';\r\n    text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + imageLocation + value + \".jpg\" + ' alt=\\\"img\"\\/>';\r\n    document.getElementById('mydiv').innerHTML = text;\r\n  }\r\n\r\n\r\n  render() {\r\n    const { data, mobileView, cartQty } = this.props;\r\n    const { collapsed, loading, showModal, imagePath, modifiedData, showModalFE, partFEData } = this.state;\r\n    const columns = mobileView\r\n      ? [\r\n        {\r\n          text: \"#\",\r\n          dataField: '',\r\n          headerAttrs: {\r\n            hidden: true,\r\n          },\r\n          formatExtraData: (partNumber) => {\r\n            // console.log(\"formatter data\", a, b, c);\r\n            return cartQty[partNumber] ? true : false;\r\n          },\r\n          formatter: (col, prod, index, extra) => {\r\n            const presentInCart = extra(prod.PartNumber);\r\n            return (\r\n              <React.Fragment key={prod.PartNumber}>\r\n                <b>Photo&nbsp;:&nbsp;</b>\r\n                {prod.PartPhotoFlag ? (\r\n                  <FontAwesomeIcon\r\n                    icon=\"camera\"\r\n                    onClick={() => this.showModal(prod.PartNumber)}\r\n                  />) : \"-N/A-\"}\r\n                <br />\r\n                <b>Part Number&nbsp;:&nbsp;</b>\r\n                {prod.PartNumber}\r\n                <br />\r\n                <b>Description&nbsp;:&nbsp;</b>\r\n                {/* {prod.EnhancedDescription} */}\r\n                <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n                <br />\r\n                <b>CSR&nbsp;:&nbsp;</b>\r\n                {prod.CSR ? prod.CSR : \"-N/A-\"}\r\n                <br />\r\n                <b>ROHS&nbsp;:&nbsp;</b>\r\n                {prod.ROHS}\r\n                <br />\r\n                <b>FE&nbsp;:&nbsp;</b>\r\n                {prod.FE_MATERIAL ? (\r\n                  <OverlayTrigger\r\n                    placement=\"left\"\r\n                    overlay={<Tooltip>Functional Equivalent</Tooltip>}>\r\n                    <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} />\r\n                  </OverlayTrigger>\r\n                ) : \"-N/A-\"}\r\n                <br />\r\n                {Cookies.get(\"HP_Country\") === \"US\" ? (\r\n                  <div>\r\n                    {prod.BuyLink != null ? (\r\n                      <a\r\n                        href=\"#\"\r\n                        rel=\"noopener noreferrer\"\r\n                        onClick={() => this.buylink(prod.BuyLink, prod.PartNumber)}\r\n                      >\r\n                        <img src={buy} alt=\"BuyLink\" />\r\n                      </a>\r\n                    ) : \"\"}\r\n                  </div>\r\n                ) : null}\r\n                {prod.OrderFlag === \"1\" ? (\r\n                  <input type=\"button\"\r\n                    value={!presentInCart ? \"Add to Cart\" : \"Remove from Cart\"}\r\n                    className=\"cart-button\"\r\n                    onClick={() =>\r\n                      this.handleCartChange(!presentInCart, prod)\r\n                    }\r\n                  >\r\n\r\n                  </input>\r\n                ) : null}\r\n              </React.Fragment>\r\n            );\r\n          },\r\n        },\r\n      ]\r\n      : [\r\n\r\n        {\r\n          dataField: \"PartPhotoFlag\",\r\n          text: \"Photo\",\r\n          formatter: (col, row, index) =>\r\n            col ? (\r\n              <FontAwesomeIcon\r\n                icon=\"camera\"\r\n                onClick={() => this.showModal(row.PartNumber)}\r\n              />\r\n            ) : null,\r\n          headerStyle: () => {\r\n            return { width: \"2%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"OrderFlag\",\r\n          text: \"Add to Cart\",\r\n          formatExtraData: (partNumber) => {\r\n            // console.log(\"formatter data\", a, b, c);\r\n            return cartQty[partNumber] ? true : false;\r\n          },\r\n          formatter: (col, row, index, extra) => {\r\n            // console.log(\"inside formatter\",  row);\r\n            console.log(\"inside formatter\", extra)\r\n            const letEnabled = extra(row.PartNumber);\r\n            console.log(\"letEnabled\", letEnabled);\r\n            return col === \"1\" ? (\r\n              <input\r\n                type=\"checkbox\"\r\n                checked={letEnabled}\r\n                onChange={(e) => this.handleCartChange(e.target.checked, row)}\r\n              ></input>\r\n            ) : (\r\n              \"-N/A-\"\r\n            );\r\n          },\r\n          headerStyle: () => {\r\n            return { width: \"2%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"PartNumber\",\r\n          text: \"Part Number\",\r\n          headerStyle: () => {\r\n            return { width: \"3%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"EnhancedDescription\",\r\n          text: \"Description\",\r\n          formatter: (col) => (\r\n            <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n          ),\r\n          headerStyle: () => {\r\n            return { width: \"15%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"CSR\",\r\n          text: \"CSR\",\r\n          headerStyle: () => {\r\n            return { width: \"3%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"ROHS\",\r\n          text: \"ROHS\",\r\n          headerStyle: () => {\r\n            return { width: \"3%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"FE_MATERIAL\",\r\n          text: \"FE\",\r\n          headerStyle: () => {\r\n            return { width: \"3%\" };\r\n          },\r\n          formatter: (cell, prod, row, index) => {\r\n            return cell ?\r\n              <OverlayTrigger\r\n                placement=\"left\"\r\n                overlay={<Tooltip>Functional Equivalent</Tooltip>}\r\n              >\r\n                <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} />\r\n              </OverlayTrigger>\r\n              : \"-N/A-\"\r\n          }\r\n        },\r\n      ];\r\n\r\n    if (!mobileView && Cookies.get(\"HP_Country\") === \"US\") {\r\n      columns.push({\r\n        dataField: \"BuyLink\",\r\n        text: \"Buy Link\",\r\n        formatter: (col, row) =>\r\n          col ? (\r\n            <a href=\"#\" rel=\"noopener noreferrer\" onClick={() => this.buylink(row.BuyLink, row.PartNumber)}>\r\n              <img src={buy} alt=\"BuyLink\" />\r\n            </a>\r\n          ) : \"NA\",\r\n        headerStyle: () => {\r\n          return { width: \"3%\" };\r\n        },\r\n      });\r\n    }\r\n\r\n    return (\r\n      <Loading loading={loading}>\r\n        <React.Fragment>\r\n          <BootstrapTable\r\n            keyField=\"PartNumber\"\r\n            //data={data}\r\n            data={modifiedData}\r\n            columns={columns}\r\n            striped\r\n            pagination={data.length > 10 ? paginationFactory() : undefined}\r\n          />\r\n        </React.Fragment>\r\n        <React.Fragment>\r\n          <Modal\r\n            size=\"lg\"\r\n            scrollable\r\n            show={showModal}\r\n            onHide={this.closeModal}\r\n          >\r\n            <Modal.Header closeButton>\r\n              <Modal.Title>Photo</Modal.Title>\r\n            </Modal.Header>\r\n            <Modal.Body id=\"PopupId\">\r\n              <PartImages src={imagePath} partnumber={this.state.part_number} handleLoader={this.handleLoader.bind(this)} />\r\n            </Modal.Body>\r\n            <Modal.Footer style={{ alignItems: \"baseline\", justifyContent: \"flex-end\" }}>\r\n              <div id=\"imgDiv\">\r\n                <div class=\"input-group mb-3\">\r\n                  <div class=\"input-group-prepend\">\r\n                    <span class=\"input-group-text\" for=\"MyImages\">Select To View Additional Images</span>\r\n                  </div>\r\n                  <select class=\"custom-select\" id=\"MyImages\" onChange={this.getImage} >\r\n\r\n                  </select>\r\n                </div>\r\n              </div>\r\n              <Button id=\"Print\" onClick={this.PrintPhoto}>\r\n                Print\r\n              </Button>\r\n            </Modal.Footer>\r\n          </Modal>\r\n        </React.Fragment>\r\n        <React.Fragment>\r\n          <Modal\r\n            size=\"lg\"\r\n            // top\r\n            scrollable\r\n            show={showModalFE}\r\n            onHide={this.closeModalFE}\r\n          >\r\n            <Modal.Header closeButton>\r\n              <Modal.Title>Functional Equivalent</Modal.Title>\r\n            </Modal.Header>\r\n            <Modal.Body id=\"PopupId\">\r\n              <FunctionalEquivalent data={partFEData} />\r\n            </Modal.Body>\r\n            <Modal.Footer>\r\n\r\n            </Modal.Footer>\r\n          </Modal>\r\n        </React.Fragment>\r\n        <div>\r\n          <Alert\r\n            key={0}\r\n            onClick={() => {\r\n              this.setState({ collapsed: !collapsed },\r\n                () => {\r\n                  if (this.state.collapsed && !this.state.data) {\r\n                    this.setState({ loading: true })\r\n                  }\r\n                }\r\n                // new change\r\n                //   () => {\r\n                //   if (this.state.collapsed && !this.state.data) {\r\n                //     this.loadWhereUsed(this.props.data[0].PartNumber);\r\n                //   }\r\n                // }\r\n              );\r\n            }}\r\n          >\r\n            <div className=\"sty\">\r\n              {this.state.collapsed ? (\r\n                <FontAwesomeIcon icon=\"minus\" />\r\n              ) : (\r\n                <FontAwesomeIcon icon=\"plus\" />\r\n              )}\r\n              &nbsp;&nbsp; Click Here To See The List Of HP Products That Part\r\n              Number Is Used In.\r\n            </div>\r\n          </Alert>\r\n          {this.state.data ? (\r\n            <React.Fragment>\r\n              <div className=\"tran\">\r\n                <Collapse in={this.state.collapsed}>\r\n                  <div className=\"strip table table-striped\">\r\n                    <ProductList\r\n                      isDescDisabled={true}\r\n                      data={this.state.data || []}\r\n                    />\r\n                  </div>\r\n                </Collapse>\r\n              </div>\r\n            </React.Fragment>\r\n          ) : null}\r\n        </div>\r\n      </Loading>\r\n    );\r\n  }\r\n}\r\nconst mapStateToProps = (state) => {\r\n  let cartQty = {};\r\n  state.cart.cartItems.forEach((item) => (cartQty[item.PartNumber] = item.qty));\r\n  return {\r\n    ...state,\r\n    cart: state.cart.cartItems,\r\n    cartQty,\r\n  };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n  return {\r\n    setCarItems: (newCart) => {\r\n      dispatch(setCarItems(newCart));\r\n    },\r\n  };\r\n};\r\n//export default ViewHOC(PartList);\r\nexport default connect(\r\n  mapStateToProps,\r\n  mapDispatchToProps\r\n)(ViewHOC(PartList));\r\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport Cookies from \"js-cookie\";\r\nimport React, { Fragment } from \"react\";\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\n// import ScrollUpButton from \"react-scroll-up-button\";\r\nimport FunctionalEquivalent from './FunctionalEquivalent';\r\nimport { setCookie, getQueryParam, getURLQueryString, getAuthHeader } from './Util';\r\nimport { FUNCTIONAL_LIST, FUNCTIONAL, INSERTPHOTOMETRIC, CARTMETRIC, BUYMETRIC } from './constants/APIConstants';\r\nimport { Button, Tooltip, OverlayTrigger } from \"react-bootstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { setCarItems } from \"../Actions\";\r\nimport buy from \"../buy.gif\";\r\n// import {FaArrowCircleUp} from 'react-icons/fa';\r\nimport { getItemIndex } from \"../CartUtils\";\r\nimport PartImages from \"./PartImages\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport Loading from \"./Loading\";\r\nimport imageexists from \"image-exists\";\r\nimport { Tabs, Tab } from 'react-bootstrap';\r\n\r\nclass DescProductList extends React.Component {\r\n  constructor() {\r\n    super();\r\n    this.state = {\r\n      cart: [],\r\n      showModal: false,\r\n      showModalFE: false,\r\n      part_number: \"\",\r\n      modifiedData: [],\r\n      partFEData: [],\r\n      Ishide: false,\r\n      isLoad: false,\r\n      FELoading: false,\r\n      // visible:false, \r\n      //loading: false,\r\n    };\r\n    this.state = { FELoading: false }\r\n    this.closeModal = this.closeModal.bind(this);\r\n    this.PrintPhoto = this.PrintPhoto.bind(this);\r\n    this.closeModalFE = this.closeModalFE.bind(this);\r\n    this.AddPhotoMetric = this.AddPhotoMetric.bind(this);\r\n    // this.myRef=React.createRef();\r\n  }\r\n\r\n  /* componentDidUpdate(prevProps, prevState){\r\n   // console.log(\"inside will\")\r\n    this.fetchDetails()\r\n      // check if dataSource state is still empty\r\n      if (!prevState.modifiedData) {\r\n           // Your networking code\r\n           this.fetchDetails();\r\n      }\r\n  } */\r\n\r\n  fetchDetails = () => {\r\n    let prodNumber = this.props.data[0].ProductNumber\r\n    let partNumbers = this.props.data.map(item => {\r\n      return item.PartNumber\r\n    })\r\n    const url = FUNCTIONAL_LIST(prodNumber, localStorage.getItem(\"usertype\"))\r\n    axios.post(url, partNumbers, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((res) => {\r\n        let newData = [];\r\n        let originalData = res.data.Body;\r\n        // console.log(\"oridata\",originalData); \r\n        newData = this.props.data.map((item, i) => Object.assign({}, item, originalData[i]));\r\n        //console.log(\"newData\",newData);\r\n        this.setState({ modifiedData: newData })\r\n      }, (error) => {\r\n        console.log(error);\r\n      })\r\n  }\r\n\r\n  showModal = (partnumber) => {\r\n    var photo_type = \".jpg\";\r\n    const imageName = partnumber + photo_type;\r\n    const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n    const imagePath = imageLocation;\r\n    //const imagePath=  imageLocation+imageName;\r\n    this.CheckImageavailability(imageLocation + imageName);\r\n    this.AddPhotoMetric(partnumber);\r\n    this.setState({ showModal: true, imagePath, isLoad: true, part_number: partnumber, });\r\n  };\r\n\r\n  CheckImageavailability = (path) => {\r\n    imageexists(path, function (exists) {\r\n      if (exists) {\r\n        localStorage.setItem(\"photoAvailable\", \"Yes\");\r\n      }\r\n      else {\r\n        localStorage.setItem(\"photoAvailable\", \"No\");\r\n      }\r\n\r\n    });\r\n\r\n  }\r\n\r\n  closeModal = () => {\r\n    this.setState({ showModal: false });\r\n  };\r\n\r\n  showModalFE = (partnumber) => {\r\n    //this.setState({loading:true})\r\n    this.setState({ FELoading: true });\r\n    const url = FUNCTIONAL(partnumber, 'US', localStorage.getItem(\"usertype\"))\r\n    axios.get(url, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((res) => {\r\n        // let partFEData = res.data.Body;\r\n        this.setState({\r\n          // loading:false,\r\n          showModalFE: true,\r\n          partFEData: res.data.Body\r\n        });\r\n        this.setState({ FELoading: false })\r\n      }, (error) => {\r\n        this.setState({ FELoading: false })\r\n      })\r\n    //<FunctionalEquivalent data = {partFEData}/>        \r\n  };\r\n\r\n  buylink = (url, PartNumber) => {\r\n    console.log(url);\r\n    let urlprod;\r\n    urlprod = BUYMETRIC(PartNumber);\r\n    axios.get(urlprod, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((response) => {\r\n      }, (error) => {\r\n      })\r\n    return window.open(url, \"_blank\");\r\n  }\r\n\r\n  closeModalFE = () => {\r\n    this.setState({ showModalFE: false });\r\n  };\r\n\r\n  AddPhotoMetric = (partnumber) => {\r\n    let input = partnumber;\r\n    let urlprod;\r\n    urlprod = INSERTPHOTOMETRIC(input, localStorage.getItem(\"photoAvailable\"));\r\n    axios.get(urlprod, {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((response) => {\r\n        console.log(response);\r\n      }, (error) => {\r\n        console.log(error);\r\n      })\r\n  }\r\n\r\n  PrintPhoto = () => {\r\n    let elem = document.getElementById(\"photoImg\");\r\n    var domClone = elem.cloneNode(true);\r\n    var $printSection = document.getElementById(\"printSection\");\r\n    if (!$printSection) {\r\n      $printSection = document.createElement(\"div\");\r\n      $printSection.id = \"printSection\";\r\n      document.body.appendChild($printSection);\r\n    }\r\n\r\n    $printSection.innerHTML = \"\";\r\n    $printSection.appendChild(domClone);\r\n    window.print();\r\n    document.getElementById(\"printSection\").remove();\r\n    // Added by shreyas to remove the image after print\r\n    // so that it takes new image selected from dropdown.\r\n\r\n  };\r\n\r\n  handleCartChange = (event, item) => {\r\n    console.log(\"Cart ==> from props\", this.props);\r\n    const { cart } = this.props;\r\n    console.log(\"hnadle change request\", event, item, [...(cart || [])]);\r\n    if (event) {\r\n      alert(\r\n        `One Item with PartNumber ${item.PartNumber} has been added to the Cart`\r\n      );\r\n      item.qty = 1;\r\n      const updatedCart = [...(cart || []), item];\r\n      console.log(\"add\", updatedCart);\r\n      this.props.setCarItems(updatedCart);\r\n      let urlprod;\r\n      urlprod = CARTMETRIC(item.PartNumber, 1, 1);\r\n      axios.get(urlprod, {\r\n        headers: {\r\n          ...getAuthHeader()\r\n        }\r\n      })\r\n        .then((response) => {\r\n        }, (error) => {\r\n        })\r\n    }\r\n    else {\r\n      alert(\r\n        `One Item with PartNumber ${item.PartNumber} has been removed from Cart`\r\n      );\r\n      const ind = getItemIndex(item.PartNumber, cart);\r\n      if (ind > -1) {\r\n        let newCart = cart || [];\r\n        newCart.splice(ind, 1);\r\n        console.log(\"remove\", newCart);\r\n        this.props.setCarItems(newCart);\r\n      }\r\n    }\r\n  };\r\n\r\n  handleLoader = (value) => {\r\n    console.log(\"load value\", value)\r\n    this.setState({ isLoad: value })\r\n  }\r\n  //   handleLoader (value){\r\n  //    console.log(\"load value\", value)\r\n  //    this.setState({isLoad : value})\r\n  //  }\r\n\r\n  getImage = (event) => {\r\n    const value = event.target.value;\r\n    const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n    var text = '';\r\n    text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + this.state.part_number + '</span></h5>';\r\n    text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + imageLocation + value + \".jpg\" + ' alt=\\\"img\"\\/>';\r\n    document.getElementById('mydiv').innerHTML = text;\r\n  }\r\n\r\n\r\n  render() {\r\n\r\n    const { data, mobileView, cartQty } = this.props;\r\n    const { imagePath, modifiedData, showModal, showModalFE, partFEData, Ishide, isLoad, FELoading } = this.state;\r\n    const columns = mobileView\r\n      ? [\r\n        {\r\n          text: \"#\",\r\n          dataField: '',\r\n          headerAttrs: {\r\n            hidden: true\r\n          },\r\n          formatExtraData: (partNumber) => {\r\n            // console.log(\"formatter data\", a, b, c);\r\n            return cartQty[partNumber] ? true : false;\r\n          },\r\n          formatter: (col, prod, index, extra) => {\r\n            const presentInCart = extra(prod.PartNumber);\r\n            return (\r\n\r\n              <React.Fragment key={prod.PartNumber}>\r\n                <b>Photo&nbsp;:&nbsp;</b>\r\n                {prod.PartPhotoFlag ? (\r\n                  <FontAwesomeIcon\r\n                    icon=\"camera\"\r\n                    onClick={() => this.showModal(prod.PartNumber)} style={{ cursor: 'pointer' }}\r\n                  />) : \"-N/A-\"}\r\n                <br />\r\n                <b>Part Number&nbsp;:&nbsp;</b>\r\n                {prod.PartNumber}\r\n                <br />\r\n                <b>Part Description&nbsp;:&nbsp;</b>\r\n                <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n                {/* {prod.EnhancedDescription} */}\r\n                {/* <br /> */}\r\n                <b>CSR&nbsp;:&nbsp;</b>\r\n                {prod.CsrFlag ? prod.CsrFlag : \"-N/A-\"}\r\n                <br />\r\n                {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\" : <b>Tech Courier&nbsp;:&nbsp;</b>}\r\n                {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\" : prod.TechCourier ? prod.TechCourier : \"-N/A-\"}\r\n                {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\" : <br />}\r\n                <b>ROHS&nbsp;:&nbsp;</b>\r\n                {prod.RohsCompliant ? prod.RohsCompliant : \"-N/A-\"}\r\n                <br />\r\n                <b>FE&nbsp;:&nbsp;</b>\r\n                {prod.FE_MATERIAL ? (\r\n                  <OverlayTrigger\r\n                    placement=\"left\"\r\n                    overlay={<Tooltip>Functional Equivalent</Tooltip>}>\r\n                    <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} style={{ cursor: 'pointer' }} />\r\n                  </OverlayTrigger>\r\n                ) : \"-N/A-\"}\r\n                <br />\r\n                {Cookies.get(\"HP_Country\") === \"US\" ? (\r\n                  <div>\r\n                    {/* <b>Click to Buy&nbsp;:&nbsp;</b> */}\r\n                    {/* \r\n                        //   href={`${prod.BuyLink}`}\r\n                        //   target=\"_blank\"\r\n                        //   rel=\"noopener noreferrer\"*/}\r\n                    {prod.BuyLink != null ? (\r\n                      <a href=\"#\" rel=\"noopener noreferrer\" onClick={() => this.buylink(prod.BuyLink, prod.PartNumber)}>\r\n                        <img src={buy} alt=\"BuyLink\" />\r\n                      </a>\r\n                    ) : \"\"}\r\n                  </div>\r\n                ) : null}\r\n                {prod.OrderFlag === \"1\" ? (\r\n                  <input type=\"button\"\r\n                    value={!presentInCart ? \"Add to Cart\" : \"Remove from Cart\"}\r\n                    className=\"cart-button\"\r\n                    onClick={() =>\r\n                      this.handleCartChange(!presentInCart, prod)\r\n                    }\r\n                  >\r\n\r\n                  </input>\r\n                ) : null}\r\n\r\n              </React.Fragment>\r\n            );\r\n          },\r\n        },\r\n\r\n      ]\r\n      : [\r\n        {\r\n          dataField: \"PartPhotoFlag\",\r\n          text: \"Photo\",\r\n          formatter: (col, row, index) =>\r\n            col ? (\r\n              <FontAwesomeIcon\r\n                icon=\"camera\"\r\n                onClick={() => this.showModal(row.PartNumber)} style={{ cursor: 'pointer' }}\r\n              />\r\n            ) : null,\r\n          headerStyle: () => {\r\n            return { width: \"2%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"OrderFlag\",\r\n          text: \"Add to Cart\",\r\n          formatExtraData: (partNumber) => {\r\n            // console.log(\"formatter data\", a, b, c);\r\n            return cartQty[partNumber] ? true : false;\r\n          },\r\n          formatter: (col, row, index, extra) => {\r\n            const letEnabled = extra(row.PartNumber);\r\n            return col === \"1\" ? (\r\n              <input\r\n                type=\"checkbox\"\r\n                checked={letEnabled}\r\n                onChange={(e) => this.handleCartChange(e.target.checked, row)} style={{ cursor: 'pointer' }}\r\n              ></input>\r\n            ) : (\r\n              \"-N/A-\"\r\n            );\r\n          },\r\n          headerStyle: () => {\r\n            return { width: \"4%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"PartNumber\",\r\n          text: \"Part Number\",\r\n          headerStyle: () => {\r\n            return { width: \"6%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"EnhancedDescription\",\r\n          text: \"Part Description \",\r\n          formatter: (col) => (\r\n            <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n          ),\r\n          headerStyle: () => {\r\n            return { width: \"35%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"CsrFlag\",\r\n          text: \"CSR \",\r\n          headerStyle: () => {\r\n            return { width: \"1%\" };\r\n          },\r\n        },\r\n        secureLocalStorage.getItem(\"loggeduser\") == null ? {\r\n          dataField: \"TechCourier\",\r\n          text: \"Tech Courier\",\r\n          hidden: true,\r\n          headerStyle: () => {\r\n            return { width: \"3%\" };\r\n          },\r\n        } : {\r\n          dataField: \"TechCourier\",\r\n          text: \"Tech Courier\",\r\n          headerStyle: () => {\r\n            return { width: \"3%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"RohsCompliant\",\r\n          text: \"ROHS\",\r\n          headerStyle: () => {\r\n            return { width: \"2%\" };\r\n          },\r\n        },\r\n        {\r\n          dataField: \"FE_MATERIAL\",\r\n          text: \"FE \",\r\n          headerStyle: () => {\r\n            return { width: \"2%\" };\r\n          },\r\n          //formatter: (cell, prod, row, index) => {\r\n          formatter: (col, prod, row, index) => {\r\n            return col ?\r\n              <OverlayTrigger\r\n                placement=\"left\"\r\n                overlay={<Tooltip>Functional Equivalent</Tooltip>}\r\n              >\r\n                <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} style={{ cursor: 'pointer' }} />\r\n              </OverlayTrigger>\r\n              : \"-N/A-\"\r\n          }\r\n        },\r\n      ];\r\n    // {`${row.BuyLink}`}\r\n    // onClick={this.buylink(prod.BuyLink)}\r\n    if (!mobileView && Cookies.get(\"HP_Country\") === \"US\") {\r\n      columns.splice(2, 0, {\r\n        dataField: \"BuyLink\",\r\n        text: \"Click to Buy\",\r\n        formatter: (col, row, index) =>\r\n          col ? (\r\n            <a\r\n              href=\"#\"\r\n              rel=\"noopener noreferrer\"\r\n              onClick={() => this.buylink(row.BuyLink, row.PartNumber)}\r\n            >\r\n              <img src={buy} alt=\"BuyLink\" />\r\n            </a>\r\n          ) :\r\n            \"-N/A-\",\r\n        headerStyle: () => {\r\n          return { width: \"4%\" };\r\n        },\r\n      });\r\n    }\r\n\r\n    return (\r\n      <div >\r\n        <React.Fragment>\r\n          {/* <div > \r\n              <OverlayTrigger\r\n                      placement = \"left\"\r\n                      overlay = {<Tooltip>Go To Top</Tooltip>}> \r\n              <FaArrowCircleUp className='go-to-top-button' onClick={this.scrollToTop.bind(this)} \r\n              style={{display: visible ? 'inline' : 'none'}}     \r\n              />\r\n              </OverlayTrigger>\r\n             </div> */}\r\n          {/* <ScrollUpButton></ScrollUpButton> */}\r\n\r\n          <BootstrapTable\r\n            keyField=\"PartNumber\"\r\n            data={data}\r\n            //data={modifiedData}\r\n            columns={columns}\r\n            striped\r\n          // pagination={data.length > 10 ? paginationFactory() : undefined}\r\n          //pagination={modifiedData.length > 10 ? paginationFactory() : undefined}\r\n          />\r\n\r\n          <React.Fragment>\r\n            <Modal\r\n              size=\"lg\"\r\n              /* dialogClassName={\"my-modal\"}\r\n              top */\r\n              scrollable\r\n              show={showModal}\r\n              onHide={this.closeModal}\r\n            >\r\n              <Modal.Header closeButton>\r\n                <Modal.Title>Photo</Modal.Title>\r\n              </Modal.Header>\r\n              <Modal.Body id=\"PopupId\">\r\n                {/* <img className=\"img-fluid\" src={imagePath} alt=\"img\" /> */}\r\n                {/* {isLoad && (\r\n                <div>Loading...... </div>\r\n                 )}  */}\r\n\r\n                <PartImages src={imagePath} partnumber={this.state.part_number} handleLoader={this.handleLoader.bind(this)} />\r\n              </Modal.Body>\r\n              <Modal.Footer style={{ alignItems: \"baseline\", justifyContent: \"flex-end\" }}>\r\n                <div id=\"imgDiv\">\r\n                  <div class=\"input-group mb-3\">\r\n                    <div class=\"input-group-prepend\">\r\n                      <span class=\"input-group-text\" for=\"MyImages\">Select To View Additional Images</span>\r\n                    </div>\r\n                    <select class=\"custom-select\" id=\"MyImages\" onChange={this.getImage} >\r\n\r\n                    </select>\r\n                  </div>\r\n                </div>\r\n                <Button id=\"Print\" onClick={this.PrintPhoto}>\r\n                  Print\r\n                </Button>\r\n              </Modal.Footer>\r\n            </Modal>\r\n          </React.Fragment>\r\n\r\n          <React.Fragment>\r\n            <Loading loading={FELoading} >\r\n              <Modal\r\n                size=\"lg\"\r\n                // top\r\n                scrollable\r\n                show={showModalFE}\r\n                onHide={this.closeModalFE}\r\n              >\r\n                <Modal.Header closeButton>\r\n                  <Modal.Title>Functional Equivalent</Modal.Title>\r\n                </Modal.Header>\r\n                <Modal.Body id=\"PopupId\">\r\n                  <FunctionalEquivalent data={partFEData} />\r\n                </Modal.Body>\r\n                <Modal.Footer>\r\n\r\n                </Modal.Footer>\r\n              </Modal>\r\n            </Loading>\r\n          </React.Fragment>\r\n          {/* </Loading> */}\r\n\r\n        </React.Fragment>\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n  let cartQty = {};\r\n  state.cart.cartItems.forEach((item) => (cartQty[item.PartNumber] = item.qty));\r\n  return {\r\n    ...state,\r\n    cart: state.cart.cartItems,\r\n    cartQty,\r\n  };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n  return {\r\n    setCarItems: (newCart) => {\r\n      dispatch(setCarItems(newCart));\r\n    },\r\n  };\r\n};\r\nexport default connect(\r\n  mapStateToProps,\r\n  mapDispatchToProps\r\n)(ViewHOC(DescProductList));\r\n","import React from 'react';\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport { Button,Tooltip, OverlayTrigger} from 'react-bootstrap';\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\n// import {FaArrowCircleUp} from 'react-icons/fa';\r\nimport \"./design.css\";\r\nimport { getAuthHeader } from './Util';\r\nimport { PRODUCTLIST } from './constants/APIConstants';\r\nimport ProductResults from \"./ProductResults\";\r\nimport { ViewHOC } from './ViewHOC';\r\nimport Loading from \"./Loading\";\r\n\r\n\r\nclass DescProductListPrint extends React.Component {\r\n    constructor() {\r\n        super()\r\n        this.state = {\r\n          isBack: false,\r\n          parts: [],\r\n          loading: false,\r\n          visible:false,          \r\n            }\r\n            this.myRef=React.createRef();\r\n        }\r\n        // componentWillUnmount()\r\n        // {\r\n        //   window.addEventListener('scroll', this.toggleVisible.bind(this),true);\r\n        // }\r\n        // componentDidMount()\r\n        // {\r\n        //   window.addEventListener('scroll', this.toggleVisible.bind(this),true);\r\n        // }\r\n        //  toggleVisible() {\r\n        //   //  console.log(\"inside toggle\");\r\n        //   const scrolled = document.documentElement.scrollTop;\r\n        //   if (scrolled > 300){\r\n        //     // console.log(\"page scrolled\");\r\n        //     this.setState({visible:true}) \r\n        //   } \r\n        //   else if (scrolled <= 300){\r\n        //     this.setState({visible:false}) \r\n        //   }\r\n        // };\r\n        //  scrollToTop = () =>{\r\n        //   //  console.log(\"inside scrollToTop\");\r\n        //   window.scrollTo({\r\n        //     top: 0, \r\n        //     behavior: 'smooth'\r\n        //   });\r\n        //   // this.myRef.current.scrollIntoView({\r\n        //   //   behavior:\"smooth\"\r\n        //   // })\r\n        // }; \r\n        BackToPreviousPage =  ()=>{ \r\n         this.setState({loading:true}) \r\n         let prodNumber = this.props.data[0].ProductNumber   \r\n         const url = PRODUCTLIST(prodNumber,localStorage.getItem(\"usertype\"))\r\n         axios.get(url, {\r\n          headers: {\r\n            ...getAuthHeader()\r\n          }\r\n        })\r\n          .then((response) => {\r\n             //console.log('call success data:', response.data.Body );    \r\n           this.setState({parts: response.data.Body })  \r\n           this.setState({isBack:true,\r\n            loading:false,\r\n          });              \r\n          }, (error) => {\r\n          })\r\n      }\r\n\r\n    render()\r\n    {\r\n        const { data,mobileView } = this.props; \r\n        const { isBack,loading,visible } = this.state;  \r\n       // console.log(\"state value\", data)  \r\n        // console.log(\"state value\", this.state.parts)     \r\n        const columns =  mobileView        \r\n         ? [\r\n          {\r\n            text: \"#\",\r\n            dataField: '',\r\n            headerAttrs: {\r\n              hidden: true,\r\n            },\r\n            formatter: (col, prod, index) => {\r\n              return (\r\n                <React.Fragment key={prod.PartNumber}>\r\n                  <b>Part Number&nbsp;:&nbsp;</b>\r\n                    {prod.PartNumber}\r\n                  <br />\r\n                  <b>Description&nbsp;:&nbsp;</b>\r\n                  <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n                  <b>CSR&nbsp;:&nbsp;</b>\r\n                  {prod.CsrFlag}\r\n                  <br />\r\n                  <b>ROHS&nbsp;:&nbsp;</b>\r\n                  {prod.RohsCompliant}\r\n                  <br />\r\n                </React.Fragment>\r\n              );\r\n            },\r\n          },\r\n        ]\r\n         : [ {\r\n                dataField: \"PartNumber\",\r\n                text: \"Part Number\",\r\n                headerStyle: () => {\r\n                  return { width: \"6%\" };\r\n                },\r\n              },\r\n              {\r\n                dataField: \"EnhancedDescription\",\r\n                text: \"Part Description \",\r\n                formatter: (col) => (\r\n                  <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n                ),\r\n                headerStyle: () => {\r\n                  return { width: \"35%\" };\r\n                },\r\n              },\r\n              {\r\n                dataField: \"CsrFlag\",\r\n                text: \"CSR \",\r\n                headerStyle: () => {\r\n                  return { width: \"1%\" };\r\n                },\r\n              },\r\n              secureLocalStorage.getItem(\"loggeduser\") == null ? {\r\n                dataField: \"TechCourier\",\r\n                text: \"Tech Courier\",\r\n                hidden: true,\r\n                headerStyle: () => {\r\n                  return { width: \"3%\" };\r\n                },\r\n              } : {\r\n                dataField: \"TechCourier\",\r\n                text: \"Tech Courier\",\r\n                headerStyle: () => {\r\n                  return { width: \"3%\" };\r\n                },\r\n              },\r\n              {\r\n                dataField: \"RohsCompliant\",\r\n                text: \"ROHS\",\r\n                headerStyle: () => {\r\n                  return { width: \"2%\" };\r\n                },\r\n              },\r\n            ]\r\n            // window.addEventListener('scroll', this.toggleVisible.bind(this),true);\r\n              return (    \r\n                   isBack?(\r\n                    <ProductResults data={this.state.parts}/>\r\n                        )\r\n                        :\r\n                        <div  >\r\n                          {/* ref={this.myRef} */}\r\n                        <Loading loading={loading}>\r\n                           </Loading>\r\n                <React.Fragment >\r\n               <div className=\"btn-print-friendly\">\r\n                  <Button className=\"apply btn btn-primary\" onClick={() => this.BackToPreviousPage()} >Normal View</Button> \r\n                </div>\r\n                <br/>\r\n                <BootstrapTable\r\n                keyField=\"PartNumber\"\r\n                data={data}\r\n                columns={columns}\r\n                striped\r\n              />\r\n              \r\n              {/* <div > \r\n              <OverlayTrigger\r\n                      placement = \"left\"\r\n                      overlay = {<Tooltip>Go To Top</Tooltip>}>  \r\n              <FaArrowCircleUp className='go-to-top-button' onClick={this.scrollToTop.bind(this)} \r\n              style={{display: visible ? 'inline' : 'none'}}     \r\n              />\r\n              </OverlayTrigger>\r\n             </div> */}\r\n               </React.Fragment>\r\n               </div>\r\n            )        \r\n    }\r\n}\r\nexport default (ViewHOC(DescProductListPrint));","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Button } from 'react-bootstrap';\r\n//import Button from '@mui/material/Button';\r\nimport { isObject } from 'lodash';\r\nimport React from 'react';\r\nimport { Accordion, Alert, Card, Col, Collapse, Form, Row } from 'react-bootstrap';\r\nimport Select from 'react-select';\r\nimport { PART_PHOTO } from './constants/constants';\r\nimport { PART_FE } from './constants/constants';\r\nimport DescProductList from './DescProductList';\r\nimport DescProductListPrint from './DescProductListPrint';\r\nimport \"./design.css\";\r\nimport { ViewHOC } from './ViewHOC';\r\nimport { Link } from \"react-router-dom\";\r\nimport { SEARCH_MODES, SEARCH_TEXT } from \"./constants/constants\";\r\nimport { getQueryParam } from \"./Util\";\r\nimport secureLocalStorage from 'react-secure-storage';\r\nimport { GET_DIAGRAMS } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport { getAuthHeader } from './Util';\r\nimport { Modal } from \"react-bootstrap\";\r\n\r\nconst initialFilters = () => ({\r\n    category: [],\r\n    keyword: [],\r\n    techCourier: [],\r\n    rohs: [],\r\n    CSR: [],\r\n    photoFlag: '',\r\n    FE: ''\r\n})\r\n\r\nclass ProductResults extends React.Component {\r\n    constructor() {\r\n        super()\r\n        this.state = {\r\n            isPrint: false,\r\n            isSbom: false,\r\n            SbomText: null,\r\n            products: null,\r\n            filters: initialFilters(),\r\n            metadata: {\r\n                category: [],\r\n                keyword: [],\r\n                techCourier: [],\r\n                rohs: [],\r\n                CSR: [],\r\n                photoFlag: [],\r\n                FE: []\r\n            },\r\n            Ishide: false,\r\n            diagramItems: 0,\r\n            isLoad: false,\r\n            showDiaSection: false,\r\n        }\r\n    }\r\n\r\n    componentDidMount() {\r\n        //  this.props.data[0].ProductNumber  \r\n        console.log(\"pipebom\", this.props.data[0].PipeBomFlag);\r\n        if (this.props.data[0].PipeBomFlag == 1) {\r\n            this.setState({ isSbom: true });\r\n            this.setState({ SbomText: \"Updated SBOM available\" });\r\n        }\r\n        else if (this.props.data[0].PipeBomFlag == 0) {\r\n            this.setState({ isSbom: true });\r\n            this.setState({ SbomText: \"SBOM\" });\r\n        }\r\n        if (this.props.data && !this.state.products) {\r\n            this.getCategoryProducts(() => {\r\n                this.triggerAll(true)\r\n                this.generateMetdata()\r\n            });\r\n        }\r\n        this.getDaigramData();\r\n    }\r\n\r\n\r\n    getDaigramData = () => {\r\n        let prodNumber = this.props.data[0].ProductNumber;\r\n        let url = GET_DIAGRAMS(prodNumber);\r\n        let count = 0;\r\n        axios.get(url, {\r\n            headers: {\r\n                ...getAuthHeader()\r\n            }\r\n        })\r\n            .then((res) => {\r\n                this.setState({ diagramItems: res.data.length });\r\n                if (res.data.length > 0) {\r\n                    this.setState({ showDiaSection: true });\r\n                    res.data.map((con, index) => {\r\n                        var x = document.getElementById(\"myDia\");\r\n                        var option = document.createElement(\"option\");\r\n                        option.text = con.diagramName;\r\n                        option.value = con.diagramPath;\r\n                        x.add(option);\r\n                        count++;\r\n                    })\r\n\r\n                }\r\n            }, (error) => {\r\n                console.log(error);\r\n\r\n            })\r\n\r\n\r\n    }\r\n\r\n    componentWillUnmount() {\r\n        // fix Warning: Can't perform a React state update on an unmounted component\r\n        this.setState = (state, callback) => {\r\n            return;\r\n        };\r\n    }\r\n    PrintFriendlyView = () => {\r\n        this.setState({ isPrint: true, mobileView: false });\r\n        //  console.log(\"inside printfriendly\")\r\n    }\r\n\r\n\r\n    generateMetdata = () => {\r\n        const { filters, products } = this.state\r\n        const { category, keyword, techCourier, rohs: rohsFilter, CSR, photoFlag: photoFilters, FE: feFilters } = filters;\r\n        // console.log('check', category, metadata,filters, products)\r\n\r\n        let temp = {}\r\n        let count = 0\r\n\r\n        let categoryFilters = category || [];\r\n        Object.entries(products || {}).filter(([key, value]) => categoryFilters.length === 0 || (categoryFilters.indexOf(key) !== -1)).forEach(([key, value], index) => {\r\n            let categories = temp.category || []\r\n            let keywordFilters = keyword || [];\r\n\r\n            Object.entries(value).filter(([catKey, catValue]) => keywordFilters.length === 0 || (keywordFilters.indexOf(catKey) !== -1)).forEach(([catKey, catValue], index) => {\r\n                let keyWords = temp.keyword || [];\r\n                //    console.log('aa')\r\n                let rohs = temp.rohs || [];\r\n                let techCouriers = temp.techCourier || [];\r\n                let CSRFlag = temp.CSR || [];\r\n                let photoFlag = temp.photoFlag || [];\r\n                let FE = temp.FE || [];\r\n                catValue.filter(product => {\r\n                    //    console.log('check check',product.PartPhotoFlag, product.PartPhotoFlag ? 'ON' : 'OFF', photoFilters,photoFilters === '-1' || photoFilters === (product.PartPhotoFlag ? 'ON' : 'OFF'))\r\n                    return (techCourier.length === 0 || (techCourier.indexOf(product.TechCourier) !== -1))\r\n                        && (rohsFilter.length === 0 || (rohsFilter.indexOf(product.RohsCompliant) !== -1))\r\n                        && (CSR.length === 0 || (CSR.indexOf(product.CsrFlag) !== -1))\r\n                        //&& (photoFlag === undefined || (product.PartPhotoFlag ? true : false) === photoFlag)\r\n                        && (!feFilters || feFilters === PART_FE.NOT_APPLICABLE\r\n                            || feFilters === (product.FE_MATERIAL ? PART_FE.PRESENT : PART_FE.NOT_PRESENT)) && (!photoFilters || photoFilters === PART_PHOTO.NOT_APPLICABLE\r\n                                || photoFilters === (product.PartPhotoFlag ? PART_PHOTO.PRESENT : PART_PHOTO.NOT_PRESENT))\r\n                }).forEach(product => {\r\n                    count++;\r\n                    categories = categories.indexOf(key) !== -1 ? categories : [...categories, key]\r\n                    keyWords = keyWords.indexOf(catKey) !== -1 ? keyWords : [...keyWords, catKey]\r\n                    if (product.RohsCompliant) {\r\n                        rohs = rohs.indexOf(product.RohsCompliant) !== -1 ? rohs : [...rohs, product.RohsCompliant]\r\n                    }\r\n                    if (product.TechCourier) {\r\n                        techCouriers = techCouriers.indexOf(product.TechCourier) !== -1 ? techCouriers : [...techCouriers, product.TechCourier]\r\n                    }\r\n                    if (product.CsrFlag) {\r\n                        CSRFlag = CSRFlag.indexOf(product.CsrFlag) !== -1 ? CSRFlag : [...CSRFlag, product.CsrFlag]\r\n                    }\r\n                    if (product.FE_MATERIAL || product.FE_MATERIAL === false) {\r\n                        const fePresent = product.FE_MATERIAL ? PART_FE.PRESENT : PART_FE.NOT_PRESENT;\r\n                        FE = FE.indexOf(fePresent) !== -1 ? FE : [...FE, fePresent]\r\n                    } if (product.PartPhotoFlag || product.PartPhotoFlag === 0) {\r\n                        const photoPresent = product.PartPhotoFlag ? PART_PHOTO.PRESENT : PART_PHOTO.NOT_PRESENT;\r\n                        photoFlag = photoFlag.indexOf(photoPresent) !== -1 ? photoFlag : [...photoFlag, photoPresent]\r\n                    }\r\n                    // console.log('here', product.PartPhotoFlag, photoFlag)\r\n                })\r\n                temp.keyword = keyWords\r\n                temp.rohs = rohs;\r\n                temp.techCourier = techCouriers\r\n                temp.CSR = CSRFlag\r\n                //     console.log('cons', photoFlag)\r\n                temp.photoFlag = photoFlag\r\n                temp.FE = FE\r\n            })\r\n            temp.category = categories\r\n            //  console.log('here',temp)\r\n        })\r\n        this.setState({ metadata: temp, itemsCount: count })\r\n    }\r\n\r\n    filterData = () => {\r\n        const { filters, products } = this.state\r\n        const { category, keyword, techCourier, rohs: rohsFilter, photoFlag, CSR, FE } = filters;\r\n        // console.log('check', category, filters, metadata, products)\r\n        let temp = {}\r\n        let categoryFilters = category || [];\r\n        Object.entries(products || {}).filter(([key, value]) => categoryFilters.length === 0 || (categoryFilters.indexOf(key) !== -1)).forEach(([key, value], index) => {\r\n            let keywordFilters = keyword || [];\r\n            Object.entries(value).filter(([catKey, catValue]) => keywordFilters.length === 0 || (keywordFilters.indexOf(catKey) !== -1)).forEach(([catKey, catValue], index) => {\r\n                catValue.filter(product => {\r\n                    // console.log('check beck',product.PartPhotoFlag, product.PartPhotoFlag ? 'ON' : 'OFF', photoFlag)\r\n                    return (techCourier.length === 0 || (techCourier.indexOf(product.TechCourier) !== -1))\r\n                        && (rohsFilter.length === 0 || (rohsFilter.indexOf(product.RohsCompliant) !== -1))\r\n                        && (CSR.length === 0 || (CSR.indexOf(product.CsrFlag) !== -1))\r\n                        // && (FE.length === 0 || (FE.indexOf(product.FE_MATERIAL) !== -1))\r\n                        && (!FE || FE === PART_FE.NOT_APPLICABLE\r\n                            || FE === (product.FE_MATERIAL ? PART_FE.PRESENT : PART_FE.NOT_PRESENT)) && (!photoFlag || photoFlag === PART_PHOTO.NOT_APPLICABLE\r\n                                || photoFlag === (product.PartPhotoFlag ? PART_PHOTO.PRESENT : PART_PHOTO.NOT_PRESENT))\r\n                    ///&& (CSR === undefined || (product.CsrFlag ? true : false) === photoFlag)\r\n                }).forEach(element => {\r\n                    const category = element.CategoryName\r\n                    const keyword = element.KeywordName\r\n\r\n                    let cat = temp[category] || {}\r\n                    let keyw = cat[keyword] || []\r\n                    keyw.push(element)\r\n\r\n                    temp[category] = temp[category] || {}\r\n                    temp[category][keyword] = keyw\r\n                })\r\n            })\r\n            console.log('here filter', temp)\r\n        })\r\n        // if(applyField)\r\n        // {\r\n        //     temp = {...temp, [applyField]: metadata[applyField]}\r\n        // }\r\n        this.setState({ filteredData: temp })\r\n\r\n    }\r\n\r\n    getPhotoFrame = (partNumber) => `<iframe src=\"http://partsurfer.hp.com/ShowPhoto.aspx?partnumber=${partNumber}\" width=\"540\" height=\"450\"></iframe>`;\r\n\r\n\r\n    getCategoryProducts = (callback) => {\r\n        let temp = {}\r\n        const { data } = this.props;\r\n        data.forEach(element => {\r\n            const category = element.CategoryName\r\n            const keyword = element.KeywordName\r\n\r\n            let cat = temp[category] || {}\r\n            let keyw = cat[keyword] || []\r\n            keyw.push(element)\r\n\r\n            temp[category] = temp[category] || {}\r\n            temp[category][keyword] = keyw\r\n\r\n        })\r\n\r\n        this.setState({ products: temp }, () => {\r\n            this.generateMetdata()\r\n            this.filterData()\r\n            callback && callback()\r\n        })\r\n    }\r\n\r\n    triggerAll = (shouldExpand, key) => {\r\n        const { products } = this.state;\r\n        // console.log('key', key, shouldExpand)\r\n        let status = {};\r\n        if (key) {\r\n            const main = products[key] || {}\r\n            Object.keys(main).forEach(catKey => {\r\n                status[`${key}-${catKey}-collapsed`] = shouldExpand\r\n            })\r\n            shouldExpand && !this.state[`${key}-collapsed`]\r\n                ? this.setState({ ...this.state, ...status, [`${key}-triggered`]: shouldExpand, [`${key}-collapsed`]: shouldExpand })\r\n                : this.setState({ ...this.state, ...status, [`${key}-triggered`]: shouldExpand })\r\n        }\r\n        else {\r\n            Object.keys(products).forEach(key => {\r\n                status[`${key}-collapsed`] = shouldExpand\r\n            })\r\n            this.setState({ ...this.state, ...status, triggered: shouldExpand })\r\n        }\r\n    }\r\n\r\n    changeFilters = (key, value, isMulti = false, isFlag = false) => {\r\n        // console.log('changefilter', key, value, isMulti)\r\n        const { filters } = this.state;\r\n        if (isFlag) {\r\n            this.setState({ filters: { ...filters, [key]: value } }, () => this.generateMetdata())\r\n        }\r\n        else if (isMulti) {\r\n            this.setState({ filters: { ...filters, [key]: (value || []).map(selection => selection.value) } })//, () => this.generateMetdata())\r\n        }\r\n        else {\r\n            this.setState({ filters: { ...filters, [key]: value ? isObject(value) ? value.value : value : '' } }, () => this.generateMetdata())\r\n        }\r\n    }\r\n\r\n    handleModalShowHide = () => {\r\n        this.setState({ showHide: !this.state.showHide });\r\n    };\r\n\r\n    getDiagram = () => {\r\n        let val = document.getElementById('myDia').value;\r\n        const path = `${process.env.REACT_APP_DIAGRAM_PATH}`;\r\n        this.setState({ showHide: true, imagePath: path + val, isLoad: true });\r\n    }\r\n\r\n    closeModal = () => {\r\n        this.setState({ showHide: false });\r\n    };\r\n\r\n\r\n    GoToLast = () => {\r\n        var scrollHeight = document.body.scrollHeight;\r\n        var posToScroll = scrollHeight - (scrollHeight * 13) / 100;\r\n        window.scroll({ top: posToScroll, behavior: \"smooth\" })\r\n    };\r\n\r\n    loadComplete = () => {\r\n        this.setState({ isLoad: false });\r\n    }\r\n\r\n    printDiagram = () => {\r\n        let elem = document.getElementById(\"diaImg\");\r\n        var domClone = elem.cloneNode(true);\r\n        var $printSection = document.getElementById(\"printSection\");\r\n        if (!$printSection) {\r\n            $printSection = document.createElement(\"div\");\r\n            $printSection.id = \"printSection\";\r\n            document.body.appendChild($printSection);\r\n        }\r\n\r\n        $printSection.innerHTML = \"\";\r\n        $printSection.appendChild(domClone);\r\n        window.print();\r\n        document.getElementById(\"printSection\").remove();\r\n    }\r\n\r\n    render() {\r\n        const { data, mobileView } = this.props;\r\n        const { filters, itemsCount, isPrint, Ishide, isSbom, SbomText, diagramItems, showHide, imagePath, isLoad, showDiaSection } = this.state;\r\n        const searchText = getQueryParam(this.props, SEARCH_TEXT);\r\n        return (\r\n\r\n            <React.Fragment>\r\n                <Modal size=\"lg\" scrollable show={showHide} onHide={this.closeModal}>\r\n                    <Modal.Header closeButton>\r\n                        <Modal.Title>Diagram</Modal.Title>\r\n                    </Modal.Header>\r\n                    <Modal.Body id=\"PopupId\">\r\n                        {isLoad && (\r\n                            <div>Please wait Loading Image...... </div>\r\n                        )}\r\n                        <img id=\"diaImg\" className=\"responsive\" src={imagePath} onLoad={this.loadComplete} alt=\"Image Cannot Be Displayed\" />\r\n                    </Modal.Body>\r\n                    <Modal.Footer>\r\n                        <Button id=\"Print\" onClick={this.printDiagram}>\r\n                            Print\r\n                        </Button>\r\n                    </Modal.Footer>\r\n                </Modal>\r\n\r\n                {/* <Details mode='PRODUCT' payload={data} expandIconRequired={true} triggered={this.state.triggered} triggerAll={this.triggerAll} /> */}\r\n                {isPrint ? (\r\n                    <DescProductListPrint data={this.props.data} />\r\n                )\r\n                    : mobileView\r\n                        ?\r\n                        <React.Fragment>\r\n                            <div className=\"btn-print-friendly\" >\r\n                                {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n                                    <Link rel=\"noopener noreferrer\" className=\"apply btn btn-primary\" to={`/PartSurfer/Sbom/${data[0].ProductNumber}`}>\r\n                                        {SbomText}\r\n                                    </Link>\r\n                                    : ''}\r\n                                &nbsp;&nbsp;\r\n                                <Button className=\"apply btn btn-primary\" onClick={() => this.PrintFriendlyView()} >Print View</Button>\r\n                            </div>\r\n                            <br />\r\n                            <Accordion defaultActiveKey=\"1\" >\r\n                                <Card>\r\n                                    <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n                                        Click here to customize your search results\r\n                                        <div >\r\n                                            {itemsCount ? <div>{itemsCount} Records found</div> : 'no'}\r\n                                        </div>\r\n\r\n\r\n                                    </Accordion.Toggle>\r\n                                    <Accordion.Collapse eventKey=\"0\" >\r\n                                        <Card.Body >\r\n                                            <Form >\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalCat\">\r\n                                                            <Form.Label column md={'5'} lg={'4'} xl={'3'} >\r\n                                                                Category:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n\r\n                                                                    // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    isMulti\r\n                                                                    value={(filters?.category || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    onChange={(option) => this.changeFilters('category', option, true)}\r\n                                                                    options={(this.state.metadata?.category || []).map(key => ({ value: key, label: key }))} /></Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                    {/* </Row>\r\n                                            <Row> */}\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalRohs\">\r\n                                                            <Form.Label column sm={'3'} lg={'4'} xl={'4'} md={'4'}>\r\n                                                                ROHS:\r\n                                                            </Form.Label>\r\n                                                            <Col sm={'12'} lg={'8'} md={'8'} xs={'12'} xl={'8'} >\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    onChange={(option) => this.changeFilters('rohs', option, true)}\r\n                                                                    isMulti={true}\r\n                                                                    value={(filters?.rohs || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    options={(this.state.metadata?.rohs || []).map(key => ({ value: key, label: key }))}\r\n                                                                />\r\n\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                    {/* </Row>\r\n                                            <Row> */}\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalKey\">\r\n                                                            <Form.Label column sm={'3'} lg={'4'} xl={'3'}>\r\n                                                                Keyword:\r\n                                                            </Form.Label>\r\n                                                            <Col sm={'12'} lg={'8'} md={'6'} xs={'12'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    value={(filters?.keyword || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    isMulti\r\n                                                                    onChange={(option) => this.changeFilters('keyword', option, true)}\r\n                                                                    options={(this.state.metadata?.keyword || []).map(key => ({ value: key, label: key }))} />\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                </Row>\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n                                                            <Form.Group as={Row} controlId=\"formHorizontalTech\">\r\n                                                                <Form.Label column sm={'3'} lg={'4'} xl={'4'} md={'4'} >\r\n                                                                    Tech Courier:\r\n                                                                </Form.Label>\r\n                                                                <Col sm={'12'} lg={'8'} md={'8'} xs={'12'} xl={'8'}>\r\n                                                                    <Select\r\n                                                                        menuPortalTarget={document.body}\r\n                                                                        closeMenuOnSelect={false}\r\n                                                                        onMenuClose={this.generateMetdata}\r\n                                                                        isSearchable\r\n                                                                        // Value={['-N/A-']}\r\n                                                                        value={(filters?.techCourier || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                        isMulti={true}\r\n                                                                        onChange={(option) => this.changeFilters('techCourier', option, true)}\r\n                                                                        options={(this.state.metadata?.techCourier || []).map(key => ({ value: key, label: key })) || []} />\r\n                                                                </Col></Form.Group>\r\n                                                            : \"\"}\r\n                                                    </Col>\r\n                                                </Row>\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalCSR\">\r\n                                                            <Form.Label column md={'5'} lg={'3'} xl={'2'} >\r\n                                                                CSR:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    // Value={['-N/A-']}\r\n                                                                    value={(filters?.CSR || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    isMulti={true}\r\n                                                                    onChange={(option) => this.changeFilters('CSR', option, true)}\r\n                                                                    options={(this.state.metadata?.CSR || []).map(key => ({ value: key, label: key })) || []} />\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n\r\n                                                </Row>\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalFE\">\r\n                                                            <Form.Label column md={'5'} lg={'3'} xl={'2'} >\r\n                                                                FE:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    value={filters?.FE && { value: filters?.FE, label: filters?.FE }}\r\n                                                                    onChange={(option) => this.changeFilters('FE', option)}\r\n                                                                    options={(this.state.metadata?.FE || []).map(key => ({ value: key, label: key })) || []} />\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n\r\n                                                </Row>\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalPhoto\">\r\n                                                            <Form.Label column md={'5'} lg={'3'} xl={'2'} >\r\n                                                                Photo:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    //closeMenuOnSelect={false}\r\n                                                                    //onMenuClose={this.generateMetdata}\r\n                                                                    //isSearchable\r\n                                                                    // Value={['-N/A-']}\r\n                                                                    value={filters?.photoFlag && { value: filters?.photoFlag, label: filters?.photoFlag }}\r\n                                                                    onChange={(option) => this.changeFilters('photoFlag', option)}\r\n                                                                    options={(this.state.metadata?.photoFlag || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                    <Col sm={'10'}>\r\n                                                        <div className=\"searchbox\" style={{ float: 'right' }}>\r\n                                                            <button type=\"button\" className=\"apply btn btn-primary\" onClick={() => {\r\n                                                                this.filterData()\r\n                                                            }} >\r\n                                                                Apply\r\n                                                            </button>\r\n                                                            &nbsp;&nbsp;\r\n                                                            <button type=\"button\" className=\"reset btn btn-primary\" onClick={() => {\r\n                                                                this.setState({ filters: initialFilters() }, () => { this.filterData() });\r\n                                                            }} >Reset</button>\r\n                                                            <br />\r\n                                                        </div>\r\n                                                    </Col>\r\n                                                </Row>\r\n                                            </Form>\r\n                                        </Card.Body>\r\n                                    </Accordion.Collapse>\r\n                                </Card>\r\n                            </Accordion>\r\n\r\n\r\n                            {showDiaSection && (\r\n                                <Accordion defaultActiveKey=\"1\" >\r\n                                    <Card>\r\n                                        <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n                                            Click here to view Diagrams\r\n                                            <div style={{ float: 'right' }} >\r\n                                                {diagramItems ? <div>{diagramItems} Records found</div> : 'No Records'}\r\n                                            </div>\r\n                                        </Accordion.Toggle>\r\n                                        <Accordion.Collapse eventKey=\"0\" >\r\n                                            <Card.Body >\r\n                                                <div id=\"diaDiv\">\r\n                                                    <div class=\"input-group mb-3\">\r\n                                                        <div class=\"input-group-prepend\">\r\n                                                            <span class=\"input-group-text\" for=\"myDia\">Available Diagrams</span>\r\n                                                        </div>\r\n                                                        <select class=\"custom-select\" id=\"myDia\" >\r\n\r\n                                                        </select>\r\n                                                        <button type=\"button\" className=\"apply btn btn-primary\" onClick={this.getDiagram}>View</button>\r\n                                                    </div>\r\n                                                </div>\r\n                                            </Card.Body>\r\n                                        </Accordion.Collapse>\r\n                                    </Card>\r\n                                </Accordion>\r\n                            )}\r\n\r\n                            <br />\r\n                            {\r\n                                Object.entries(this.state.filteredData || {}).map(([key, value], index) => (\r\n                                    <div key={key}>\r\n                                        <Accordion activeKey={this.state[`${key}-collapsed`] ? key : undefined}>\r\n                                            <Card >\r\n                                                <Row noGutters={true}>\r\n                                                    <Col xs={'11'} sm={'11'} md={'11'} lg={'11'} xl={'11'}>\r\n                                                        <Accordion.Toggle\r\n                                                            as={Card.Header}\r\n                                                            eventKey={key}\r\n                                                            onClick={() => {\r\n                                                                this.setState({ [`${key}-collapsed`]: !this.state[`${key}-collapsed`] });\r\n                                                            }}>\r\n                                                            <span>{!this.state[`${key}-collapsed`] ?\r\n                                                                <FontAwesomeIcon icon=\"chevron-up\" /> :\r\n                                                                <FontAwesomeIcon icon=\"chevron-down\" />}</span>&nbsp;&nbsp;{key}\r\n\r\n                                                        </Accordion.Toggle>\r\n                                                    </Col>\r\n\r\n                                                    <Col className=\"card-header\" xs={'1'} sm={'1'} md={'1'} lg={'1'} xl={'1'}>\r\n                                                        <div style={{ float: 'right', marginRight: '10px' }} onClick={() => this.triggerAll(this.state[`${key}-triggered`] ? false : true, key)}>\r\n                                                            {!this.state[`${key}-triggered`] ? <FontAwesomeIcon icon=\"minus-square\" /> : <FontAwesomeIcon icon=\"plus-square\" />}\r\n                                                            {/* <span onClick={() => this.triggerAll(false, key)}><i class=\"fas fa-minus-square\"></i></span> */}\r\n                                                        </div>\r\n\r\n                                                    </Col>\r\n                                                </Row>\r\n\r\n                                                <Accordion.Collapse eventKey={key}>\r\n                                                    <Card.Body key={key} style={{ overflow: \"auto\" }}>\r\n                                                        <div>\r\n                                                            {Object.entries(value || {}).map(([catKey, catValue], index) => (\r\n                                                                <React.Fragment key={catKey}>\r\n                                                                    <Alert key={`${key}-${catKey}`}\r\n\r\n                                                                        variant=\"dark\"\r\n\r\n                                                                        onClick={() => {\r\n                                                                            this.setState({ [`${key}-${catKey}-collapsed`]: !this.state[`${key}-${catKey}-collapsed`] });\r\n                                                                        }}\r\n                                                                    >\r\n                                                                        {!this.state[`${key}-${catKey}-collapsed`] ? <FontAwesomeIcon icon=\"minus\" /> : <FontAwesomeIcon icon=\"plus\" />}&nbsp;&nbsp;{catKey}\r\n                                                                    </Alert>\r\n                                                                    <Collapse in={!this.state[`${key}-${catKey}-collapsed`]}>\r\n                                                                        <div>\r\n                                                                            <DescProductList data={catValue} />\r\n                                                                        </div>\r\n                                                                    </Collapse>\r\n                                                                </React.Fragment>))}\r\n                                                        </div>\r\n                                                    </Card.Body>\r\n                                                </Accordion.Collapse>\r\n\r\n                                            </Card>\r\n                                        </Accordion>\r\n\r\n                                    </div>))\r\n                            }\r\n                        </React.Fragment>\r\n\r\n                        :\r\n                        <React.Fragment>\r\n                            <div className=\"btn-print-friendly\" >\r\n                                {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n                                    <Link rel=\"noopener noreferrer\" className=\"apply btn btn-primary\" to={`/PartSurfer/Sbom/${data[0].ProductNumber}`}>\r\n                                        {SbomText}\r\n                                    </Link>\r\n                                    : ''}\r\n                                &nbsp;&nbsp;\r\n                                <Button className=\"apply btn btn-primary\" onClick={() => this.PrintFriendlyView()} >Print View</Button>\r\n                            </div>\r\n                            <br />\r\n\r\n\r\n\r\n\r\n                            <Accordion defaultActiveKey=\"1\" >\r\n                                <Card >\r\n                                    <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n                                        Click here to customize your search results\r\n                                        <div style={{ float: 'right' }}>\r\n                                            {itemsCount ? <div>{itemsCount} Records found</div> : 'no'}\r\n\r\n                                        </div>\r\n                                    </Accordion.Toggle>\r\n                                    <Accordion.Collapse eventKey=\"0\" >\r\n                                        <Card.Body >\r\n                                            <Form >\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalCat\">\r\n                                                            <Form.Label column md={'5'} lg={'4'} xl={'3'} >\r\n                                                                Category:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    isMulti\r\n                                                                    value={(filters?.category || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    onChange={(option) => this.changeFilters('category', option, true)}\r\n                                                                    options={(this.state.metadata?.category || []).map(key => ({ value: key, label: key }))} /></Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalRohs\">\r\n                                                            <Form.Label column md={'7'} lg={'4'} xl={'4'}>\r\n                                                                ROHS:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'} >\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    onChange={(option) => this.changeFilters('rohs', option, true)}\r\n                                                                    isMulti={true}\r\n                                                                    value={(filters?.rohs || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    options={(this.state.metadata?.rohs || []).map(key => ({ value: key, label: key }))}\r\n                                                                />\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalCSR\">\r\n                                                            <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n                                                                CSR:\r\n                                                            </Form.Label>\r\n                                                            {filters?.CSR && <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    // Value={['-N/A-']}\r\n                                                                    value={(filters?.CSR || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    isMulti={true}\r\n                                                                    onChange={(option) => this.changeFilters('CSR', option, true)}\r\n                                                                    options={(this.state.metadata?.CSR || []).map(key => ({ value: key, label: key })) || []} />\r\n                                                            </Col>}\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                </Row>\r\n\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalKey\">\r\n                                                            <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n                                                                Keyword:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    value={(filters?.keyword || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    isMulti\r\n                                                                    onChange={(option) => this.changeFilters('keyword', option, true)}\r\n                                                                    options={(this.state.metadata?.keyword || []).map(key => ({ value: key, label: key }))} />\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                    <Col>\r\n                                                        {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n                                                            <Form.Group as={Row} controlId=\"formHorizontalTech\">\r\n                                                                <Form.Label column md={'7'} lg={'5'} xl={'4'} >\r\n                                                                    Tech Courier:\r\n                                                                </Form.Label>\r\n                                                                <Col md={'12'} lg={'7'} xl={'8'}>\r\n                                                                    <Select\r\n                                                                        menuPortalTarget={document.body}\r\n                                                                        closeMenuOnSelect={false}\r\n                                                                        onMenuClose={this.generateMetdata}\r\n                                                                        isSearchable\r\n                                                                        // Value={['-N/A-']}\r\n                                                                        value={(filters?.techCourier || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                        isMulti={true}\r\n                                                                        onChange={(option) => this.changeFilters('techCourier', option, true)}\r\n                                                                        options={(this.state.metadata?.techCourier || []).map(key => ({ value: key, label: key })) || []} />\r\n                                                                </Col></Form.Group>\r\n                                                            : \"\"}\r\n                                                    </Col>\r\n                                                    <Col>\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalPhoto\">\r\n                                                            <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n                                                                Photo:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    //closeMenuOnSelect={false}\r\n                                                                    //onMenuClose={this.generateMetdata}\r\n                                                                    //isSearchable\r\n                                                                    // Value={['-N/A-']}\r\n                                                                    isClearable={true}\r\n                                                                    value={filters?.photoFlag && { value: filters?.photoFlag, label: filters?.photoFlag }}\r\n                                                                    onChange={(option) => this.changeFilters('photoFlag', option)}\r\n                                                                    options={(this.state.metadata?.photoFlag || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                </Row>\r\n\r\n                                                {/* New Row added for Functional Equivalent filter Start Here*/}\r\n                                                <Row>\r\n                                                    <Col >\r\n                                                        <Form.Group as={Row} controlId=\"formHorizontalFe\">\r\n                                                            <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n                                                                FE:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    value={filters?.FE && { value: filters?.FE, label: filters?.FE }}\r\n                                                                    onChange={(option) => this.changeFilters('FE', option)}\r\n                                                                    options={(this.state.metadata?.FE || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n\r\n                                                    <Col style={{ visibility: \"hidden\" }}>\r\n\r\n                                                        <Form.Group as={Row} controlId=\"drgdf\">\r\n                                                            <Form.Label column md={'7'} lg={'5'} xl={'4'} >\r\n                                                                Tech Courier:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'7'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    closeMenuOnSelect={false}\r\n                                                                    onMenuClose={this.generateMetdata}\r\n                                                                    isSearchable\r\n                                                                    // Value={['-N/A-']}\r\n                                                                    value={(filters?.techCourier || []).map(ele => ({ value: ele, label: ele }))}\r\n                                                                    isMulti={true}\r\n                                                                    onChange={(option) => this.changeFilters('techCourier', option, true)}\r\n                                                                    options={(this.state.metadata?.techCourier || []).map(key => ({ value: key, label: key })) || []} />\r\n                                                            </Col></Form.Group>\r\n                                                    </Col>\r\n                                                    <Col style={{ visibility: \"hidden\" }}>\r\n                                                        <Form.Group as={Row} controlId=\"abv\">\r\n                                                            <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n                                                                Photo:\r\n                                                            </Form.Label>\r\n                                                            <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                                                <Select\r\n                                                                    menuPortalTarget={document.body}\r\n                                                                    //closeMenuOnSelect={false}\r\n                                                                    //onMenuClose={this.generateMetdata}\r\n                                                                    //isSearchable\r\n                                                                    // Value={['-N/A-']}\r\n                                                                    isClearable={true}\r\n                                                                    value={filters?.photoFlag && { value: filters?.photoFlag, label: filters?.photoFlag }}\r\n                                                                    onChange={(option) => this.changeFilters('photoFlag', option)}\r\n                                                                    options={(this.state.metadata?.photoFlag || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n                                                            </Col>\r\n                                                        </Form.Group>\r\n                                                    </Col>\r\n                                                </Row>\r\n                                                {/* New Row added for Functional Equivalent filter End Here*/}\r\n                                                <Row>\r\n                                                    <Col>\r\n                                                        <div className=\"searchbox\" style={{ float: 'right' }}>\r\n                                                            <button type=\"button\" className=\"apply btn btn-primary\" onClick={() => {\r\n                                                                this.filterData()\r\n                                                            }} >\r\n                                                                Apply\r\n                                                            </button>\r\n                                                            &nbsp;&nbsp;\r\n                                                            <button type=\"button\" className=\"reset btn btn-primary\" onClick={() => {\r\n                                                                this.setState({ filters: initialFilters() }, () => {\r\n                                                                    this.generateMetdata();\r\n                                                                    this.filterData()\r\n                                                                });\r\n                                                            }} >Reset</button>\r\n                                                        </div>\r\n                                                    </Col>\r\n                                                </Row>\r\n\r\n                                            </Form>\r\n                                        </Card.Body>\r\n                                    </Accordion.Collapse>\r\n                                </Card>\r\n                            </Accordion>\r\n                            {showDiaSection && (\r\n                                <Accordion defaultActiveKey=\"1\" >\r\n                                    <Card>\r\n                                        <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n                                            Click here to view Diagrams\r\n                                            <div style={{ float: 'right' }} >\r\n                                                {diagramItems ? <div>{diagramItems} Records found</div> : 'No Records'}\r\n                                            </div>\r\n                                        </Accordion.Toggle>\r\n                                        <Accordion.Collapse eventKey=\"0\" >\r\n                                            <Card.Body >\r\n                                                <div id=\"diaDiv\">\r\n                                                    <div class=\"input-group mb-3\">\r\n                                                        <div class=\"input-group-prepend\">\r\n                                                            <span class=\"input-group-text\" for=\"myDia\">Available Diagrams</span>\r\n                                                        </div>\r\n                                                        <select class=\"custom-select\" id=\"myDia\" >\r\n\r\n                                                        </select>\r\n                                                        <button type=\"button\" className=\"apply btn btn-primary\" onClick={this.getDiagram}>View</button>\r\n                                                    </div>\r\n                                                </div>\r\n                                            </Card.Body>\r\n                                        </Accordion.Collapse>\r\n                                    </Card>\r\n                                </Accordion>\r\n                            )}\r\n\r\n\r\n\r\n\r\n\r\n                            <br />\r\n                            {\r\n                                Object.entries(this.state.filteredData || {}).map(([key, value]) => {\r\n                                    // console.log('aaa', `${key}-collapsed`, this.state[`${key}-collapsed`],value)\r\n                                    return (\r\n                                        <div key={key}>\r\n                                            <Accordion activeKey={this.state[`${key}-collapsed`] ? key : undefined} >\r\n                                                {/* /this.state[`${key}-collapsed`] ? index : undefined}> */}\r\n                                                <Card >\r\n                                                    <Row noGutters={true}>\r\n                                                        <Col xs={'11'} sm={'11'} md={'11'} lg={'11'} xl={'11'}>\r\n                                                            <Accordion.Toggle\r\n                                                                as={Card.Header}\r\n                                                                eventKey={key}\r\n                                                                onClick={() => {\r\n                                                                    this.setState({ [`${key}-collapsed`]: !this.state[`${key}-collapsed`] });\r\n                                                                }}>\r\n                                                                <span>{!this.state[`${key}-collapsed`] ?\r\n                                                                    <FontAwesomeIcon icon=\"chevron-up\" /> :\r\n                                                                    <FontAwesomeIcon icon=\"chevron-down\" />}</span>&nbsp;&nbsp;{key}\r\n\r\n                                                            </Accordion.Toggle>\r\n                                                        </Col>\r\n\r\n                                                        <Col className=\"card-header\" xs={'1'} sm={'1'} md={'1'} lg={'1'} xl={'1'}>\r\n                                                            <div style={{ float: 'right', marginRight: '10px' }} onClick={() => this.triggerAll(this.state[`${key}-triggered`] ? false : true, key)}>\r\n                                                                {!this.state[`${key}-triggered`] ? <FontAwesomeIcon icon=\"minus-square\" /> : <FontAwesomeIcon icon=\"plus-square\" />}\r\n                                                                {/* <span onClick={() => this.triggerAll(false, key)}><i class=\"fas fa-minus-square\"></i></span> */}\r\n                                                            </div>\r\n\r\n                                                        </Col>\r\n                                                    </Row>\r\n                                                    <Accordion.Collapse eventKey={key} >\r\n                                                        <Card.Body key={key} style={{ overflow: \"auto\" }}>\r\n                                                            <div >\r\n                                                                {Object.entries(value || {}).map(([catKey, catValue], index) => (\r\n                                                                    <React.Fragment key={catKey} >\r\n                                                                        <Alert key={`${key}-${catKey}`}\r\n\r\n                                                                            variant=\"dark\"\r\n\r\n                                                                            onClick={() => {\r\n                                                                                this.setState({ [`${key}-${catKey}-collapsed`]: !this.state[`${key}-${catKey}-collapsed`] });\r\n                                                                            }}\r\n                                                                        >\r\n                                                                            {!this.state[`${key}-${catKey}-collapsed`] ? <FontAwesomeIcon icon=\"minus\" /> : <FontAwesomeIcon icon=\"plus\" />}&nbsp;&nbsp;{catKey}\r\n                                                                        </Alert>\r\n                                                                        <Collapse in={!this.state[`${key}-${catKey}-collapsed`]}>\r\n                                                                            <div>\r\n                                                                                <DescProductList data={catValue} />\r\n                                                                            </div>\r\n                                                                        </Collapse>\r\n                                                                    </React.Fragment>))}\r\n                                                            </div>\r\n                                                        </Card.Body>\r\n                                                    </Accordion.Collapse>\r\n\r\n                                                </Card>\r\n                                            </Accordion>\r\n                                        </div>\r\n                                    )\r\n                                })\r\n                            }\r\n\r\n                        </React.Fragment>\r\n\r\n                }\r\n            </React.Fragment>\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\r\n}\r\n\r\nexport default ViewHOC(ProductResults)\r\n","import React, { Component } from \"react\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\n\r\nclass SpareBOM extends Component {\r\n  constructor() {\r\n    super();\r\n    this.state = {\r\n      Ishide: false,\r\n    };\r\n  }\r\n\r\n\r\n\r\n  isValid = () => {\r\n    const { data } = this.props;\r\n    return (\r\n      data.length !== 1 &&\r\n      data.filter((row) => row.PartNumber !== \"-N/A-\").length > 0\r\n    );\r\n  };\r\n\r\n  render() {\r\n    const { data, mobileView } = this.props;\r\n    const {Ishide} = this.state;\r\n    const columns = mobileView\r\n      ? [\r\n          {\r\n            text: \"#\",\r\n            headerAttrs: {\r\n              hidden: true,\r\n            },\r\n            formatter: (col, prod, index) => {\r\n              return (\r\n                <React.Fragment key={prod.spare_part_no}>\r\n                  {this.isValid() ? (\r\n                    <React.Fragment>\r\n                      <b>Parent Part Number&nbsp;:&nbsp;</b>\r\n                      {prod.part_number}\r\n                      <br />\r\n                      <b>Part Number&nbsp;:&nbsp;</b>\r\n                      {prod.spare_part_no}\r\n                      <br />\r\n                      <b>Spare Part Description &nbsp;:&nbsp;</b>\r\n                      <div dangerouslySetInnerHTML={{ __html: prod.spare_part_description }}></div>\r\n                      {/* {prod.spare_part_description} */}\r\n                      <br />\r\n                      <b>Enhanced Part Description &nbsp;:&nbsp;</b>\r\n                      {prod.spare_enhance_desc}\r\n                      <br />\r\n                      <b>Category&nbsp;:&nbsp;</b>\r\n                      {prod.sp_category}\r\n                      <br />\r\n                      {secureLocalStorage.getItem(\"loggeduser\") == null ?  \"\": <b>Tech Courier&nbsp;:&nbsp;</b>}\r\n                      {secureLocalStorage.getItem(\"loggeduser\") == null ?  \"\": prod.sp_techcourier}\r\n                      {secureLocalStorage.getItem(\"loggeduser\") == null ?  \"\":<br />}\r\n                      <b>CSR&nbsp;:&nbsp;</b>\r\n                      {prod.sp_csrflag}\r\n                      <br />\r\n                      <b>ROHS&nbsp;:&nbsp;</b>\r\n                      {prod.sp_rohs_status_code}\r\n                      <br />\r\n                    </React.Fragment>\r\n                  ) : (\r\n                    <p> No additional information found in PartSurfer.</p>\r\n                  )}\r\n                </React.Fragment>\r\n              );\r\n            },\r\n          },\r\n        ]\r\n      : [\r\n          {\r\n            dataField: \"part_number\",\r\n            text: \"Parent Part Number\",\r\n            headerStyle: () => {\r\n              return { width: \"10%\" };\r\n            },\r\n          },\r\n          {\r\n            dataField: \"spare_part_no\",\r\n            text: \"Part Number\",\r\n            headerStyle: () => {\r\n              return { width: \"15%\" };\r\n            },\r\n          },\r\n          {\r\n            dataField: \"spare_part_description\",\r\n            text: \"Basic Spare Part Description\",\r\n            formatter: (col) => (\r\n              <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n            ),\r\n            headerStyle: () => {\r\n              return { width: \"20%\" };\r\n            },\r\n          },\r\n          {\r\n            dataField: \"spare_enhance_desc\",\r\n            text: \"Enhanced Spare Part Description\",\r\n            headerStyle: () => {\r\n              return { width: \"20%\" };\r\n            },\r\n          },\r\n          {\r\n            dataField: \"sp_category\",\r\n            text: \"Category\",\r\n            headerStyle: () => {\r\n              return { width: \"10%\" };\r\n            },\r\n          },\r\n          {\r\n            dataField: \"sp_csrflag\",\r\n            text: \"CSR\",\r\n            headerStyle: () => {\r\n              return { width: \"5%\" };\r\n            },\r\n          },\r\n          {\r\n            dataField: \"sp_rohs_status_code\",\r\n            text: \"ROHS\",\r\n            headerStyle: () => {\r\n              return { width: \"10%\" };\r\n            },\r\n          },\r\n          secureLocalStorage.getItem(\"loggeduser\") == null ? {\r\n            dataField: \"sp_techcourier\",\r\n            text: \"Tech Courier\",\r\n            hidden: true,\r\n            headerStyle: () => {\r\n              return { width: \"5%\" };\r\n            },\r\n          } : {\r\n            dataField: \"sp_techcourier\",\r\n            text: \"Tech Courier\",\r\n            headerStyle: () => {\r\n              return { width: \"5%\" };\r\n            },\r\n          },\r\n        ];\r\n\r\n    return (\r\n      <React.Fragment>\r\n        {this.isValid() ? (\r\n          <BootstrapTable\r\n            keyField=\"spare_part_no\"\r\n            striped\r\n            data={data}\r\n            columns={columns}\r\n            \r\n          />\r\n        ) : (\r\n          <div> No additional information found in PartSurfer.</div>\r\n        )}\r\n        {/* pagination={data.length > 10 ? paginationFactory() : undefined} */}\r\n      </React.Fragment>\r\n    );\r\n  }\r\n}\r\n\r\nexport default ViewHOC(SpareBOM);\r\n","import React from \"react\";\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\n\r\nclass ComponentBOM extends React.Component {\r\n  constructor() {\r\n    super();\r\n    this.state = {\r\n      Ishide: false,\r\n    };\r\n  }\r\n\r\n  isValid = () => {\r\n    const { data } = this.props;\r\n    return (\r\n      data.length !== 1 &&\r\n      data.filter((row) => row.parent_part_number !== \"-N/A-\").length > 0\r\n    );\r\n  };\r\n\r\n  render() {\r\n    const { data, mobileView } = this.props;\r\n    const {Ishide} = this.state;\r\n\r\n    const columns = mobileView\r\n      ? [\r\n          {\r\n            text: \"#\",\r\n            dataField:'',\r\n            headerAttrs: {\r\n              hidden: true,\r\n            },\r\n            formatter: (col, prod, index) => {\r\n              return (\r\n                <React.Fragment key={prod.part_number}>\r\n                  {this.isValid() ? (\r\n                    <React.Fragment>\r\n                      <b>Parent Part Number&nbsp;:&nbsp;</b>\r\n                      {prod.parent_part_number}\r\n                      <br />\r\n                      <b>Assembly Part Number&nbsp;:&nbsp;</b>\r\n                      {prod.part_number}\r\n                      <br />\r\n                      <b>Part Description&nbsp;:&nbsp;</b>\r\n                      {prod.part_description}\r\n                      <br />\r\n                      {secureLocalStorage.getItem(\"loggeduser\") == null ?  \"\": <b>Part Serial Number&nbsp;:&nbsp;</b>  }\r\n                      {secureLocalStorage.getItem(\"loggeduser\") == null ?  \"\": prod.part_serialno}\r\n                      {secureLocalStorage.getItem(\"loggeduser\") == null ?  \"\":<br />}\r\n                      <b>QTY &nbsp;:&nbsp;</b>\r\n                      {prod.part_quantity}\r\n                      <br />\r\n                    </React.Fragment>\r\n                  ) : (\r\n                    <div> No additional information found in PartSurfer.</div>\r\n                  )}\r\n                </React.Fragment>\r\n              );\r\n            },\r\n          },\r\n        ]\r\n      : [\r\n          {\r\n            dataField: \"parent_part_number\",\r\n            text: \"Parent Part Number\",\r\n          },\r\n          {\r\n            dataField: \"part_number\",\r\n            text: \"Assembly Part Number\",\r\n          },\r\n          {\r\n            dataField: \"part_description\",\r\n            text: \"Part Description\",\r\n          },\r\n          secureLocalStorage.getItem(\"loggeduser\") == null ?{\r\n            dataField: \"part_serialno\",\r\n            text: \"Part Serial Number\",\r\n            hidden: true,\r\n          }: {\r\n            dataField: \"part_serialno\",\r\n            text: \"Part Serial Number\",\r\n          },\r\n          {\r\n            dataField: \"part_quantity\",\r\n            text: \"QTY\",\r\n          },\r\n        ];\r\n\r\n    return (\r\n          <React.Fragment>\r\n            {this.isValid() ? (\r\n              <BootstrapTable\r\n                keyField=\"part_number\"\r\n                striped\r\n                data={(data || []).map((rec, ind) => ({ ...rec, key: ind }))}\r\n                columns={columns}\r\n                \r\n              />\r\n            ) : (\r\n              <div> No additional information found in PartSurfer.</div>\r\n            )}\r\n            {/* pagination={data.length > 10 ? paginationFactory() : undefined} */}\r\n         </React.Fragment>\r\n    );\r\n  }\r\n}\r\n\r\nexport default ViewHOC(ComponentBOM);\r\n","import React, { Component } from \"react\";\r\nimport SpareBOM from \"./SpareBOM\";\r\nimport { Accordion, Card } from \"react-bootstrap\";\r\nimport ComponentBOM from \"./ComponentBOM\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Row, Col, Form } from \"react-bootstrap\";\r\nimport Select from \"react-select\";\r\nimport Details from \"./Details\";\r\nimport { isObject } from \"lodash\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\n\r\nconst initialFilters = () => ({\r\n  category: [],\r\n  techCourier: [],\r\n  rohs: [],\r\n  CSR: [],\r\n});\r\n\r\nclass SerialNumberBOM extends Component {\r\n  \r\n  constructor(props) {\r\n    super(props);\r\n    \r\n    // console.log('consruct', props)\r\n    this.state = {\r\n      COMPONENT_collapsed: false,\r\n      SPARE_collapsed: false,\r\n      filters: initialFilters(),\r\n      filteredData: [],\r\n      metadata: {\r\n        category: [],\r\n        techCourier: [],\r\n        rohs: [],\r\n        CSR: [],\r\n      },\r\n    };\r\n  }\r\n\r\n  componentDidMount() {\r\n    this.filterData(); //TODO: no option will be there\r\n    this.generateMetdata();\r\n  }\r\n  // componentDidMount() {\r\n  //   console.log(\"as\", this.props);\r\n  // }\r\n\r\n  generateMetdata = () => {\r\n    const { filters } = this.state;\r\n    const { data } = this.props;\r\n\r\n    let category = [];\r\n    let techCourier = [];\r\n    let rohs = [];\r\n    let CSR = [];\r\n    let count = 0;\r\n\r\n    let categoryFilters = filters.category || [];\r\n    let techCourierFilters = filters.techCourier || [];\r\n    let rohsFilters = filters.rohs || [];\r\n    let CSRFilters = filters.CSR || [];\r\n\r\n    (data.spare_part || [])\r\n      .filter(\r\n        (product) =>\r\n          (techCourierFilters.length === 0 ||\r\n            techCourierFilters.indexOf(product.sp_techcourier) !== -1) &&\r\n          (categoryFilters.length === 0 ||\r\n            categoryFilters.indexOf(product.sp_category) !== -1) &&\r\n          (rohsFilters.length === 0 ||\r\n            rohsFilters.indexOf(product.sp_rohs_status_code) !== -1) &&\r\n          (CSRFilters.length === 0 ||\r\n            CSRFilters.indexOf(product.sp_csrflag) !== -1)\r\n      )\r\n      .forEach((part) => {\r\n        const {\r\n          sp_category,\r\n          sp_techcourier,\r\n          sp_rohs_status_code,\r\n          sp_csrflag,\r\n        } = part;\r\n        count++;\r\n        category =\r\n          category.indexOf(sp_category) !== -1\r\n            ? category\r\n            : [...category, sp_category];\r\n        techCourier =\r\n          techCourier.indexOf(sp_techcourier) !== -1\r\n            ? techCourier\r\n            : [...techCourier, sp_techcourier];\r\n        rohs =\r\n          rohs.indexOf(sp_rohs_status_code) !== -1\r\n            ? rohs\r\n            : [...rohs, sp_rohs_status_code];\r\n        CSR = CSR.indexOf(sp_csrflag) !== -1 ? CSR : [...CSR, sp_csrflag];\r\n     //   console.log(\"spare\", category, techCourier, rohs, CSR);\r\n      });\r\n    this.setState({\r\n      metadata: { category, techCourier, rohs, CSR },\r\n      itemsCount: count,\r\n    });\r\n  };\r\n\r\n  filterData = () => {\r\n    const { filters } = this.state;\r\n    const { data } = this.props;\r\n    const { category, techCourier, rohs, CSR } = filters;\r\n    let categoryFilters = category || [];\r\n    let techCourierFilters = techCourier || [];\r\n    let rohsFilters = rohs || [];\r\n    let CSRFilters = CSR || [];\r\n    const res = (data.spare_part || []).filter(\r\n      (product) =>\r\n        (techCourierFilters.length === 0 ||\r\n          techCourierFilters.indexOf(product.sp_techcourier) !== -1) &&\r\n        (categoryFilters.length === 0 ||\r\n          categoryFilters.indexOf(product.sp_category) !== -1) &&\r\n        (rohsFilters.length === 0 ||\r\n          rohsFilters.indexOf(product.sp_rohs_status_code) !== -1) &&\r\n        (CSRFilters.length === 0 ||\r\n          CSRFilters.indexOf(product.sp_csrflag) !== -1)\r\n    );\r\n    console.log(\"res\", res);\r\n    this.setState({ filteredData: res });\r\n  };\r\n\r\n  enableSearchResult=()=>{\r\n    const { data } = this.props;\r\n    return(\r\n        (data.spare_part || []).filter((product)=>product.part_number==='-N/A-').length>0)\r\n  }\r\n\r\n  changeFilters = (key, value, isMulti = false, isFlag = false) => {\r\n    const { filters } = this.state;\r\n    if (isFlag) {\r\n      this.setState({ filters: { ...filters, [key]: value } }, () =>\r\n        this.generateMetdata()\r\n      );\r\n    } else if (isMulti) {\r\n      this.setState({\r\n        filters: {\r\n          ...filters,\r\n          [key]: (value || []).map((selection) => selection.value),\r\n        },\r\n      }); //, () => this.generateMetdata())\r\n    } else {\r\n      this.setState(\r\n        {\r\n          filters: {\r\n            ...filters,\r\n            [key]: value ? (isObject(value) ? value.value : value) : \"\",\r\n          },\r\n        },\r\n        () => this.generateMetdata()\r\n      );\r\n    }\r\n  };\r\n\r\n  componentWillUnmount() {\r\n    // fix Warning: Can't perform a React state update on an unmounted component\r\n    this.setState = (state, callback) => {\r\n      return;\r\n    };\r\n  }\r\n\r\n  sett = () => {\r\n    this.setState({ COMPONENT_collapsed: !this.state.COMPONENT_collapsed });\r\n  };\r\n\r\n \r\n  render() {\r\n    const { data,mobileView } = this.props;\r\n    const { filters, itemsCount, filteredData } = this.state;\r\n    const { unit_configuration, spare_part } = this.props.data;\r\n    const { COMPONENT_collapsed, SPARE_collapsed } = this.state;\r\n\r\n\r\n    return (\r\n    \r\n      <div>\r\n        {/* <Details mode=\"SERIAL\" payload={data} /> */}\r\n        <br />\r\n\r\n        {unit_configuration && (\r\n          <Accordion defaultActiveKey={\"COMPONENT\"}>\r\n            <Card>\r\n              <Accordion.Toggle\r\n                as={Card.Header}\r\n                eventKey={\"COMPONENT\"}\r\n                onClick={() => {\r\n                  this.setState({ COMPONENT_collapsed: !COMPONENT_collapsed });\r\n                }}\r\n              >\r\n                <span>\r\n                  {COMPONENT_collapsed ? (\r\n                    <FontAwesomeIcon icon=\"chevron-up\" />\r\n                  ) : (\r\n                    <FontAwesomeIcon icon=\"chevron-down\" />\r\n                  )}\r\n                </span>\r\n                &nbsp;&nbsp;Component BOM (OEM S/N BOM)\r\n              </Accordion.Toggle>\r\n\r\n              <Accordion.Collapse eventKey={\"COMPONENT\"}>\r\n                <Card.Body style={{ overflow: \"auto\" }}>\r\n                  <ComponentBOM data={unit_configuration} />\r\n                </Card.Body>\r\n              </Accordion.Collapse>\r\n            </Card>\r\n          </Accordion>\r\n        )}\r\n        <br />\r\n        <br />\r\n        {spare_part && (\r\n          <Accordion defaultActiveKey={\"SPARE\"}>\r\n            <Card>\r\n              <Accordion.Toggle\r\n                as={Card.Header}\r\n                eventKey={\"SPARE\"}\r\n                onClick={() => {\r\n                  this.setState({ SPARE_collapsed: !SPARE_collapsed });\r\n                }}\r\n              >\r\n                <span>\r\n                  {SPARE_collapsed ? (\r\n                    <FontAwesomeIcon icon=\"chevron-up\" />\r\n                  ) : (\r\n                    <FontAwesomeIcon icon=\"chevron-down\" />\r\n                  )}\r\n                </span>\r\n                &nbsp;&nbsp;Spare BOM (HP Orderable Product BOM)\r\n              </Accordion.Toggle>\r\n\r\n              <Accordion.Collapse eventKey={\"SPARE\"}>\r\n                <Card.Body style={{ overflow: \"auto\" }}>\r\n                  { mobileView ? (\r\n                    <React.Fragment>\r\n                      <Accordion defaultActiveKey=\"1\">\r\n                      {this.enableSearchResult()? (\r\n                          null\r\n                          ) : (\r\n                        <Card>\r\n                          <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n                            Click here to customize your search results\r\n                            <div>\r\n                              {itemsCount ? (\r\n                                <div>{itemsCount} Records found</div>\r\n                              ) : (\r\n                                \"no\"\r\n                              )}\r\n                            </div>\r\n                          </Accordion.Toggle>\r\n                          <Accordion.Collapse eventKey=\"0\">\r\n                            <Card.Body>\r\n                              <Form>\r\n                                  <Row>\r\n                                      <Col>\r\n                                    <Form.Group as={Row}\r\n                                      controlId=\"formHorizontalCat\"\r\n                                    > \r\n                                      <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n                                        Category:\r\n                                      </Form.Label>\r\n                                      <Col  md={'12'} lg={'8'} xl={'8'}>\r\n                                      <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          isMulti\r\n                                          value={(filters?.category || []).map(\r\n                                            (ele) => ({\r\n                                              value: ele,\r\n                                              label: ele,\r\n                                            })\r\n                                          )}\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"category\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          options={(\r\n                                            this.state.metadata?.category || []\r\n                                          ).map((key) => ({\r\n                                            value: key,\r\n                                            label: key,\r\n                                          }))}\r\n                                        />\r\n                                      </Col>\r\n                                    </Form.Group>\r\n                                    </Col>\r\n                                    </Row>\r\n                                    <Form.Group\r\n                                      as={Row}\r\n                                      controlId=\"formHorizontalCSR\"\r\n                                    >\r\n                                      <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n                                        CSR:\r\n                                      </Form.Label>\r\n                                      <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                        <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          value={(filters?.CSR || []).map(\r\n                                            (ele) => ({\r\n                                              value: ele,\r\n                                              label: ele,\r\n                                            })\r\n                                          )}\r\n                                          isMulti={true}\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"CSR\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          options={\r\n                                            (\r\n                                              this.state.metadata?.CSR || []\r\n                                            ).map((key) => ({\r\n                                              value: key,\r\n                                              label: key,\r\n                                            })) || []\r\n                                          }\r\n                                        />\r\n                                      </Col>\r\n                                    </Form.Group>\r\n                                    <Form.Group\r\n                                      as={Row}\r\n                                      controlId=\"formHorizontalRohs\"\r\n                                    >\r\n                                      <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n                                        ROHS:\r\n                                      </Form.Label>\r\n                                      <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                        <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"rohs\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          isMulti={true}\r\n                                          value={(filters?.rohs || []).map(\r\n                                            (ele) => ({\r\n                                              value: ele,\r\n                                              label: ele,\r\n                                            })\r\n                                          )}\r\n                                          options={(\r\n                                            this.state.metadata?.rohs || []\r\n                                          ).map((key) => ({\r\n                                            value: key,\r\n                                            label: key,\r\n                                          }))}\r\n                                        />\r\n                                      </Col>\r\n                                    </Form.Group>\r\n                                    {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n                                    <Form.Group\r\n                                      as={Row}\r\n                                      controlId=\"formHorizontalTech\"\r\n                                    >\r\n                                      \r\n                                      <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n                                        Tech Courier:\r\n                                      </Form.Label>\r\n                                      <Col md={'12'} lg={'8'} xl={'8'}>\r\n                                        <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          // Value={['-N/A-']}\r\n                                          value={(\r\n                                            filters?.techCourier || []\r\n                                          ).map((ele) => ({\r\n                                            value: ele,\r\n                                            label: ele,\r\n                                          }))}\r\n                                          isMulti={true}\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"techCourier\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          options={\r\n                                            (\r\n                                              this.state.metadata\r\n                                                ?.techCourier || []\r\n                                            ).map((key) => ({\r\n                                              value: key,\r\n                                              label: key,\r\n                                            })) || []\r\n                                          }\r\n                                        />\r\n                                      </Col>                                      \r\n                                    </Form.Group>: \"\" }\r\n                                    <div\r\n                                      className=\"searchbox\"\r\n                                      style={{ float: \"right\" }}\r\n                                    >\r\n                                      <button\r\n                                        type=\"button\"\r\n                                        className=\"apply btn btn-primary\"\r\n                                        onClick={() => {\r\n                                          this.filterData();\r\n                                        }}\r\n                                      >\r\n                                        Apply\r\n                                      </button>\r\n                                      &nbsp;&nbsp;\r\n                                      <button\r\n                                        type=\"button\"\r\n                                        className=\"reset btn btn-primary\"\r\n                                        onClick={() => {\r\n                                          this.setState(\r\n                                            { filters: initialFilters() },\r\n                                            () => {\r\n                                              this.generateMetdata();\r\n                                              this.filterData();\r\n                                            }\r\n                                          );\r\n                                        }}\r\n                                      >\r\n                                        Reset\r\n                                      </button>\r\n                                    </div>\r\n                                </Form>\r\n                                </Card.Body>\r\n                                </Accordion.Collapse>\r\n                                </Card>)}\r\n                                </Accordion> \r\n                    </React.Fragment>\r\n                  ) : (\r\n                    <React.Fragment>\r\n                      <Accordion defaultActiveKey=\"1\">\r\n                        {this.enableSearchResult()? (\r\n                          null\r\n                          ) : (\r\n                        <Card>\r\n                          <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n                            Click here to customize your search results\r\n                            <div style={{ float: \"right\" }}>\r\n                              {itemsCount ? (\r\n                                <div>{itemsCount} Records found</div>\r\n                              ) : (\r\n                                \"no\"\r\n                              )}\r\n                            </div>\r\n                          </Accordion.Toggle>\r\n                          <Accordion.Collapse eventKey=\"0\">\r\n                            <Card.Body>\r\n                              <Form>\r\n                                <Row>\r\n                                  <Col>\r\n                                    <Form.Group\r\n                                      as={Row}\r\n                                      controlId=\"formHorizontalCat\"\r\n                                    >\r\n                                      <Form.Label\r\n                                        column\r\n                                        md={\"2\"}\r\n                                        lg={\"3\"}\r\n                                        xl={\"3\"}\r\n                                      >\r\n                                        Category:\r\n                                      </Form.Label>\r\n                                      <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n                                        <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          isMulti\r\n                                          value={(filters?.category || []).map(\r\n                                            (ele) => ({\r\n                                              value: ele,\r\n                                              label: ele,\r\n                                            })\r\n                                          )}\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"category\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          options={(\r\n                                            this.state.metadata?.category || []\r\n                                          ).map((key) => ({\r\n                                            value: key,\r\n                                            label: key,\r\n                                          }))}\r\n                                        />\r\n                                      </Col>\r\n                                    </Form.Group>\r\n                                  </Col>\r\n                                  <Col>\r\n                                    <Form.Group\r\n                                      as={Row}\r\n                                      controlId=\"formHorizontalCSR\"\r\n                                    >\r\n                                      <Form.Label\r\n                                        column\r\n                                        md={\"2\"}\r\n                                        lg={\"3\"}\r\n                                        xl={\"3\"}\r\n                                      >\r\n                                        CSR:\r\n                                      </Form.Label>\r\n                                      <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n                                        <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          // Value={['-N/A-']}\r\n                                          value={(filters?.CSR || []).map(\r\n                                            (ele) => ({\r\n                                              value: ele,\r\n                                              label: ele,\r\n                                            })\r\n                                          )}\r\n                                          isMulti={true}\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"CSR\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          options={\r\n                                            (\r\n                                              this.state.metadata?.CSR || []\r\n                                            ).map((key) => ({\r\n                                              value: key,\r\n                                              label: key,\r\n                                            })) || []\r\n                                          }\r\n                                        />\r\n                                      </Col>\r\n                                    </Form.Group>\r\n                                  </Col>\r\n                                </Row>\r\n                                <Row>\r\n                                  <Col>\r\n                                    <Form.Group\r\n                                      as={Row}\r\n                                      controlId=\"formHorizontalRohs\"\r\n                                    >\r\n                                      <Form.Label\r\n                                        column\r\n                                        md={\"2\"}\r\n                                        lg={\"3\"}\r\n                                        xl={\"3\"}\r\n                                      >\r\n                                        ROHS:\r\n                                      </Form.Label>\r\n                                      <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n                                        <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"rohs\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          isMulti={true}\r\n                                          value={(filters?.rohs || []).map(\r\n                                            (ele) => ({\r\n                                              value: ele,\r\n                                              label: ele,\r\n                                            })\r\n                                          )}\r\n                                          options={(\r\n                                            this.state.metadata?.rohs || []\r\n                                          ).map((key) => ({\r\n                                            value: key,\r\n                                            label: key,\r\n                                          }))}\r\n                                        />\r\n                                      </Col>\r\n                                    </Form.Group>\r\n                                  </Col>\r\n                                  <Col>\r\n                                  {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n                                    <Form.Group\r\n                                      as={Row}\r\n                                      controlId=\"formHorizontalTech\"\r\n                                    >\r\n                                      <Form.Label\r\n                                        column\r\n                                        md={\"2\"}\r\n                                        lg={\"3\"}\r\n                                        xl={\"3\"}\r\n                                      >\r\n                                        Tech Courier:\r\n                                      </Form.Label>\r\n                                      <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n                                        <Select\r\n                                          menuPortalTarget={document.body}\r\n                                          closeMenuOnSelect={false}\r\n                                          onMenuClose={this.generateMetdata}\r\n                                          isSearchable\r\n                                          // Value={['-N/A-']}\r\n                                          value={(\r\n                                            filters?.techCourier || []\r\n                                          ).map((ele) => ({\r\n                                            value: ele,\r\n                                            label: ele,\r\n                                          }))}\r\n                                          isMulti={true}\r\n                                          onChange={(option) =>\r\n                                            this.changeFilters(\r\n                                              \"techCourier\",\r\n                                              option,\r\n                                              true\r\n                                            )\r\n                                          }\r\n                                          options={\r\n                                            (\r\n                                              this.state.metadata\r\n                                                ?.techCourier || []\r\n                                            ).map((key) => ({\r\n                                              value: key,\r\n                                              label: key,\r\n                                            })) || []\r\n                                          }\r\n                                        />\r\n                                      </Col>\r\n                                    </Form.Group> : \"\" }\r\n                                  </Col>\r\n                                </Row>\r\n                                <Row>\r\n                                  <Col>\r\n                                    <div\r\n                                      className=\"searchbox\"\r\n                                      style={{ float: \"right\" }}\r\n                                    >\r\n                                      <button\r\n                                        type=\"button\"\r\n                                        className=\"apply btn btn-primary\"\r\n                                        onClick={() => {\r\n                                          this.filterData();\r\n                                        }}\r\n                                      >\r\n                                        Apply\r\n                                      </button>\r\n                                      &nbsp;&nbsp;\r\n                                      <button\r\n                                        type=\"button\"\r\n                                        className=\"reset btn btn-primary\"\r\n                                        onClick={() => {\r\n                                          this.setState(\r\n                                            { filters: initialFilters() },\r\n                                            () => {\r\n                                              this.generateMetdata();\r\n                                              this.filterData();\r\n                                            }\r\n                                          );\r\n                                        }}\r\n                                      >\r\n                                        Reset\r\n                                      </button>\r\n                                    </div>\r\n                                  </Col>\r\n                                </Row>\r\n                              </Form>\r\n                            </Card.Body>\r\n                          </Accordion.Collapse>\r\n                        </Card>\r\n                     \r\n                         )}\r\n                                      </Accordion>\r\n                    </React.Fragment>\r\n                  )}\r\n                  <br />\r\n                  <SpareBOM data={filteredData || []} />\r\n                </Card.Body>\r\n              </Accordion.Collapse>\r\n            </Card>\r\n          </Accordion>\r\n        )}\r\n      </div>\r\n    );\r\n  }\r\n}\r\nexport default ViewHOC(SerialNumberBOM);","// reference for Mobile Device Detection - npm install react-device-detect --save\r\n//https://github.com/duskload/react-device-detect#readme \r\n// reference for tabs - https://www.npmjs.com/package/react-tabs\r\n// import \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport React from \"react\";\r\nimport Image from \"./Image\";\r\n// import {barcode} from '../imagesbase'\r\n// import barcodeimg from './barcode.jpg'\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport { SEARCH_MODES, SEARCH_TEXT } from \"./constants/constants\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport Form from \"./Form\";\r\nimport  FunctionalEquivalent  from \"./FunctionalEquivalent\";\r\nimport Navbar from \"./navbar\";\r\nimport PartList from \"./PartList\";\r\nimport ProductList from \"./ProductList\";\r\nimport ProductResults from \"./ProductResults\";\r\nimport SerialNumberBOM from \"./SerialNumberBOM\";\r\nimport { getQueryParam } from \"./Util\";\r\nimport { isMobile } from 'react-device-detect';\r\n// Tab Components - Start\r\n// import { Tabs, Tab } from \"react-bootstrap\";\r\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport 'react-tabs/style/react-tabs.css';\r\n// Tab Components - End\r\nimport { SERIALWITHPRODUCT } from './constants/APIConstants';\r\nimport { getAuthHeader } from './Util';\r\nimport axios from 'axios';\r\nimport Loading from './Loading';\r\nimport Details from './Details';\r\n//import { green } from \"@material-ui/core/colors\";\r\n// Root PartSurfer Component.\r\n\r\n  \r\nclass PartSurfer extends React.Component {\r\n  \r\n  state = {\r\n    dataLoading: false,\r\n    loading: false,\r\n  };\r\n\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      selectValue: \"Please Select a Product Number\",\r\n      ProdListError: \"\",\r\n      dataLoading: false\r\n    };\r\n\r\n    this.handleDropdownChange = this.handleDropdownChange.bind(this);\r\n  }\r\n  handleDropdownChange(e) {\r\n    this.setState({ selectValue: e.target.value });\r\n  }\r\n  \r\n  onSubmit = () => {\r\n    this.setState({ dataLoading: true })\r\n    const searchText = getQueryParam(this.props, SEARCH_TEXT);\r\n    const { selectValue } = this.state;\r\n    if(!selectValue.includes(\"Select\"))\r\n    {\r\n      let url;\r\n      if(selectValue.includes(\"#\"))\r\n      {\r\n        let textval;\r\n        textval = selectValue.slice(0, selectValue.indexOf(\"#\"));\r\n        url = SERIALWITHPRODUCT(searchText,textval,'US',localStorage.getItem(\"usertype\"))\r\n      }\r\n      else\r\n      {\r\n        url = SERIALWITHPRODUCT(searchText,selectValue,'US',localStorage.getItem(\"usertype\"))\r\n      }\r\n      axios.get(url, {\r\n        headers: {\r\n          ...getAuthHeader()\r\n        }\r\n      })\r\n        .then((response) => {\r\n          this.loadDetails(response.data.Body ? response.data.Body : null, \"swp\")\r\n          this.setState({ dataLoading: false, selectValue: \"Please Select a Product Number\" })\r\n        }, (error) => {\r\n          this.setState({ dataLoading: false, selectValue: \"Please Select a Product Number\" })\r\n        })\r\n    }\r\n    else\r\n    {\r\n      this.setState({dataLoading: false, ProdListError: \"Please select any product number!\" })\r\n    }\r\n  }\r\n  \r\n\r\n  loadDetails = (data, mode) => {\r\n    if (!data && !mode) {\r\n      this.setState({\r\n        partResults: undefined,\r\n        productResults: undefined,\r\n        SNResults: undefined,\r\n        wildCharResults: undefined,\r\n        FEResults: undefined,\r\n        SNRProductListsResults: undefined,\r\n        dataLoaded: false,\r\n      });\r\n      return;\r\n    }\r\n    // console.log('loading data', data);\r\n    switch (mode) {\r\n      case SEARCH_MODES.PART:\r\n        this.setState({ partResults: data, dataLoaded: true });\r\n        break;\r\n      case SEARCH_MODES.PRODUCT:\r\n        this.setState({ productResults: data, dataLoaded: true });\r\n        break;\r\n      case SEARCH_MODES.SEARIAL_NUMBER:\r\n        this.setState({ SNResults: data, dataLoaded: true });\r\n        break;\r\n      case SEARCH_MODES.FUNCTIONAL_EQUIVALENT:\r\n        this.setState({ FEResults: data, dataLoaded: true });\r\n        break;\r\n      case SEARCH_MODES.SERIAL_WP:\r\n        let rest = data || {};\r\n        this.setState({\r\n          productResults: rest.ProductBOM,\r\n          SNResults: rest.SerialNumberBOM,\r\n          SNRProductListsResults: rest.SNRProductLists,\r\n          dataLoaded: true,\r\n        });\r\n        break;\r\n      default:\r\n        let res = data || {};\r\n        this.setState({\r\n          partResults: res.Part,\r\n          productResults: res.ProductBOM,\r\n          SNResults: res.SerialNumberBOM,\r\n          wildCharResults: res.ProductNameList,\r\n          SNRProductListsResults: res.SNRProductLists,\r\n          dataLoaded: true,\r\n        });\r\n    }\r\n    // this.setState({ data })\r\n  };\r\n\r\n  render() {\r\n    const {\r\n      productResults,\r\n      partResults,\r\n      SNResults,\r\n      wildCharResults,\r\n      SNRProductListsResults,\r\n      FEResults,\r\n      dataLoaded,\r\n    } = this.state;\r\n\r\n    const searchText = getQueryParam(this.props, SEARCH_TEXT);\r\n    let tab1 = \"General\";\r\n    let tab2 = \"Advanced\";\r\n    let tab1gen = \"General(Product Family)\";\r\n    let tab2adv = \"Advanced(Unique Product S/N)\";\r\n    let tabgen1;\r\n    if(isMobile)\r\n    {\r\n      tabgen1 = tab1;\r\n    } \r\n    else{ tabgen1 = tab1gen;}\r\n    let tabadv1;\r\n    if(isMobile)\r\n    {\r\n      tabadv1 = tab2;\r\n    } \r\n    else{ tabadv1 = tab2adv;}\r\n    let noData =\r\n      dataLoaded &&\r\n      (productResults || []).length === 0 &&\r\n      !partResults &&\r\n      (SNResults || []).length === 0 &&\r\n      (wildCharResults || []).length === 0 &&\r\n      (FEResults || []).length === 0 &&\r\n      (SNRProductListsResults || []).length === 0;\r\n    const {  dataLoading } = this.state;\r\n    return (\r\n      <React.Fragment>\r\n        <Navbar />\r\n        <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n          <div className=\"container\">\r\n            <Form onSubmit={this.loadDetails} />\r\n            <br />\r\n            {!searchText && (\r\n              <React.Fragment>\r\n                <p>\r\n                  Do not know your part number? You can find it by entering one\r\n                  of the following values from your product's service tag.\r\n                </p>\r\n                <Row>\r\n                  <Col xs={\"12\"} sm={\"8\"} md={\"5\"} lg={\"5\"} xl={\"4\"}>\r\n                    <Image src='barcode.jpg'/>\r\n                  </Col>\r\n                  <Col xs={\"12\"} sm={\"12\"} md={\"12\"} lg={\"7\"} xl={\"8\"}>\r\n                    &nbsp; <b>Details</b>: <br />\r\n                    &nbsp;1. Product name: This is the product name affixed to\r\n                    the front of the device.\r\n                    <br />\r\n                    &nbsp;2. Serial number (s/n): This is an alphanumeric\r\n                    identifier that is unique to each product.\r\n                    <br />\r\n                    &nbsp;3. Part number/Product number (p/n): This number\r\n                    provides specific information about the product’s hardware\r\n                    components. The part number helps a service technician to\r\n                    determine what components and parts are needed.\r\n                    <br />\r\n                    &nbsp;4. Warranty period: The number describes the duration\r\n                    of warranty period for the device.\r\n                    <br />\r\n                    &nbsp;5. Model description (selected models only): This\r\n                    Alphanumeric identifier used to locate documents, drivers\r\n                    and support for the device.\r\n                    <br />\r\n                  </Col>\r\n                </Row>\r\n                <br />\r\n                <br />\r\n                <div>\r\n                  More information on how to find your HP Part / Product /\r\n                  Serial Number{\" \"}\r\n                  <a href=\"https://support.hp.com/us-en\">\r\n                    click here\r\n                  </a>\r\n                </div>\r\n              </React.Fragment>\r\n            )}\r\n\r\n            {\r\n              <React.Fragment>\r\n                <Loading loading={dataLoading} >\r\n                <div>\r\n                \r\n                      {(SNRProductListsResults || []).length > 0 && (\r\n                        <div>\r\n                          <div>\r\n                            <div>\r\n                              <b> Serial Number : {searchText} </b>\r\n                                <br />                              \r\n                            </div>\r\n                            <div style={{color: \"#3FE827\"}}>\r\n                              Multiple Products associated for above Serial Number.\r\n                                <br />\r\n                                <br />\r\n                            </div>\r\n                          </div>\r\n                          <select name=\"productsnrlists\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" onChange={this.handleDropdownChange} >  \r\n                          <option>Please Select a Product Number</option>  \r\n                          {(this.state.SNRProductListsResults || []).map((e, key) => {  \r\n                                  return <option key={key} value={e.product_Id}>{e.product_Id} - {e.product_Desc}</option>;  \r\n                          })}  \r\n                          </select>\r\n                          <br />\r\n                            <div>\r\n                              <button type=\"button\" onClick={this.onSubmit} className=\"apply btn btn-primary\">Submit</button>\r\n                            </div>\r\n                            <br />\r\n                           {this.state.ProdListError && <div style={{color: \"#E9573F\"}}>{this.state.ProdListError}</div>\r\n                           }\r\n                        </div>\r\n                      )}\r\n                </div>\r\n                </Loading>\r\n                <div>\r\n                      {(wildCharResults || []).length > 0 && (\r\n                        <ProductList data={wildCharResults} />\r\n                      )}\r\n                </div>\r\n                {!SNResults && dataLoaded && !noData && !SNRProductListsResults && !wildCharResults &&\r\n                <div>\r\n                   {(productResults || []).length > 0 && (\r\n                    <div><Details mode='PRODUCT' payload={productResults} /> <br/></div>\r\n                  )}                 \r\n                    {/* <Tabs defaultActiveKey=\"General\" id=\"uncontrolled-tab-example\" className=\"mb-3\">\r\n                    <Tab eventKey=\"General\" title=\"General(Product Family)\">\r\n                          {partResults && <PartList data={[partResults]} />}\r\n                          {(FEResults || []).length > 0 && (\r\n                            <FunctionalEquivalent data={FEResults} />\r\n                          )}\r\n                          {(productResults || []).length > 0 && (\r\n                            <ProductResults data={productResults} />\r\n                          )}\r\n                    </Tab>\r\n                  </Tabs> */}\r\n                  <Tabs>\r\n                        <TabList>\r\n                          <Tab>{tabgen1}</Tab>\r\n                          {/* <Tab>Advanced(Unique Product S/N)</Tab> */}\r\n                        </TabList>\r\n                        <TabPanel>\r\n                          {partResults && <PartList data={[partResults]} />}\r\n                            {(FEResults || []).length > 0 && (\r\n                              <FunctionalEquivalent data={FEResults} />\r\n                            )}\r\n                            {(productResults || []).length > 0 && (\r\n                              <ProductResults data={productResults} />\r\n                            )}\r\n                        </TabPanel>\r\n                        {/* <TabPanel>\r\n                          <h2>Any content 2</h2>\r\n                        </TabPanel> */}\r\n                  </Tabs>\r\n                </div>\r\n              } \r\n              {SNResults &&\r\n              <div>\r\n                <Details mode='SERIAL' payload={SNResults} />\r\n                <br /> \r\n                   <Tabs defaultIndex={1}>\r\n                      <TabList>\r\n                      {(productResults || []).length > 0 && (\r\n                          <Tab>{tabgen1}</Tab>\r\n                          )}   \r\n                        <Tab>{tabadv1}</Tab>\r\n                      </TabList>\r\n                      {(productResults || []).length > 0 && (\r\n                        <TabPanel>\r\n                          <ProductResults data={productResults} />\r\n                        </TabPanel>\r\n                      )} \r\n                      <TabPanel>\r\n                        <SerialNumberBOM data={SNResults} />\r\n                      </TabPanel>\r\n                    </Tabs>\r\n               </div> \r\n              }   \r\n                                \r\n                {noData && (\r\n                  <div>\r\n                    <div className=\"alert alert-primary \" role=\"alert\">\r\n                      No additional information found in PartSurfer. Please read\r\n                      the hints below, and try again.{\" \"}\r\n                    </div>\r\n                    <div className=\"alert alert-success\" role=\"alert\">\r\n                      <h4 className=\"alert-heading\">\r\n                        Hints For Using PartSurfer:-\r\n                      </h4>\r\n                      <p>\r\n                        The most reliable and fastest way to identify your\r\n                        product is to enter the serial number or product number\r\n                        from the service tag (such as CNU123456789 or RU477EA )\r\n                        in the search box above, but a more general description\r\n                        of the product (such as LaserJet 8100 or Pavilion 6532)\r\n                        is also acceptable. Also, if you know the HP part number\r\n                        you are looking for (such as 8120-6260 or CB394-40014M),\r\n                        you may enter that directly.\r\n                      </p>\r\n                      <hr />\r\n                      <p className=\"mb-0\">\r\n                        Searching for an HP part by entering a general\r\n                        description (such as Power Cord, Fusing Assembly,\r\n                        Motherboard, or Cartridge) will not be successful. After\r\n                        first identifying your HP product (as described above),\r\n                        you will be given several options for finding the part\r\n                        that you need.\r\n                      </p>\r\n                      <p>\r\n                        You may also{\" \"}\r\n                        <a\r\n                          href=\"https://partsurfer.hp.com/Search.aspx\"\r\n                          target=\"_PartSurfer\"\r\n                        >\r\n                          click here\r\n                        </a>{\" \"}\r\n                        to return to the main PartSurfer screen and select from\r\n                        the list of HP product families. Additional information\r\n                        can be found in the HP PartSurfer User Guide .\r\n                      </p>\r\n                    </div>\r\n                  </div>\r\n                )}\r\n              </React.Fragment>\r\n            }\r\n          </div>\r\n          <br />\r\n          <br />\r\n          <br />\r\n          <div className=\"col-md-12 text-md-center\">\r\n            <Link style={{ color: \"#003366\" }}  to=\"/PartSurfer/ContactUS\">\r\n              <u>Feedback to HP PartSurfer</u>\r\n            </Link>\r\n          </div>\r\n          <br />\r\n        </div>\r\n      </React.Fragment>\r\n    );\r\n  }\r\n}\r\n\r\nexport default withRouter(PartSurfer);","import React from \"react\";\r\nimport {\r\n  Accordion, Alert,\r\n  Card,\r\n  Col,\r\n  Container,\r\n  ListGroup,\r\n  Nav,\r\n  Row,\r\n  Tab\r\n} from \"react-bootstrap\";\r\nimport FE_User from \"../FE_User.png\";\r\nimport go from \"../go .gif\";\r\nimport SBOM_NEW from \"../SBOM_NEW.png\";\r\nimport Shopping_cart from \"../Shopping_cart.png\";\r\nimport Show_fun_eq from \"../Show_fun_eq.png\";\r\nimport \"./design.css\";\r\nimport \"./UserGuide.css\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nfunction UserGuide() {\r\n  return (\r\n    \r\n    <React.Fragment>\r\n      <div>\r\n      <Navbar />\r\n        <div style={{ marginRight: \"10px\"}}>\r\n          <br/>\r\n          <Login />\r\n          <br/>\r\n        </div>\r\n    </div>\r\n      <Container>\r\n        <Alert className=\"theme\">\r\n          <p>\r\n            <b>Before you continue reading this document</b>, we hope that you\r\n            will try using HP PartSurfer first. PartSurfer is designed to be\r\n            very user friendly, and most users find it easy to locate the parts\r\n            information they need without detailed instructions. Simply move\r\n            your mouse over any field heading in italics for help on getting\r\n            started. This user guide is provided for those who prefer more\r\n            detailed step-by-step instructions.\r\n          </p>\r\n        </Alert>\r\n        <Tab.Container id=\"left-tabs-example\" defaultActiveKey=\"first\">\r\n          <Row>\r\n            <Col sm={3}>\r\n              <Nav variant=\"pills\" className=\"flex-column\">\r\n                <Nav.Item>\r\n                  <Nav.Link eventKey=\"first\">Purpose and Scope</Nav.Link>\r\n                </Nav.Item>\r\n                <Nav.Item>\r\n                  <Nav.Link eventKey=\"second\">Basic Tasks</Nav.Link>\r\n                </Nav.Item>\r\n                <Nav.Item>\r\n                  <Nav.Link eventKey=\"third\">System Requirements</Nav.Link>\r\n                </Nav.Item>\r\n                <Nav.Item>\r\n                  <Nav.Link eventKey=\"fourth\">\r\n                    Font Conventions Used in This Document\r\n                  </Nav.Link>\r\n                </Nav.Item>\r\n              </Nav>\r\n            </Col>\r\n            <Col sm={9}>\r\n              <Tab.Content>\r\n                <Tab.Pane eventKey=\"first\">\r\n                  <Card>\r\n                      <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n                        <ListGroup.Item>\r\n                          HP PartSurfer is designed to help HP product owners\r\n                          and HP product repair technicians identify part\r\n                          numbers and other part information, primarily for the\r\n                          purpose of servicing and repairing HP products.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          We also provide a direct link to the HP Parts Store\r\n                          (for U.S. customers only) to allow you to order parts\r\n                          online.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          PartSurfer does NOT include instructions for repair,\r\n                          maintenance, or installation of products and parts.{\" \"}\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          If you are not trained in repairing your product, or\r\n                          are not certain that you know what the exact problem\r\n                          is with your product, we strongly encourage you to\r\n                          first contact HP technical support to determine the\r\n                          best repair strategy for your HP product.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          (\r\n                          <b>\r\n                          <Link to=\"/PartSurfer/ContactUS\">Contact Us</Link>\r\n                          </b>{\" \"}\r\n                          for information on product support options.)\r\n                        </ListGroup.Item>\r\n                      </ListGroup>\r\n                  </Card>\r\n                </Tab.Pane>\r\n                <Tab.Pane eventKey=\"second\">\r\n                  <Card>\r\n                      <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n                        <ListGroup.Item>\r\n                          PartSurfer assists with two basic types of part lookup\r\n                          tasks, with a variety of options for getting to the\r\n                          information that you need:\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          You may need to find or verify a part number and other\r\n                          part information for an HP part, based primarily on\r\n                          the part's physical description or its function within\r\n                          your product.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          You may have the part in front of you, may have a\r\n                          description of the part from someone else, or may know\r\n                          from your repair experience what part you need.{\" \"}\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          For whatever reason, you need to find the HP part\r\n                          number and its associated information, and possibly\r\n                          order the part\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          You may know the part number for the HP part that you\r\n                          need, and simply need to look up part information\r\n                          and/or order the part.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          This feature of PartSurfer also provides a list of all\r\n                          HP products that use a specific part.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          <b>Please note:</b> the part number of the part\r\n                          currently recommended by HP for replacement may not be\r\n                          the same as the number that you see on the old part,\r\n                          or even in your product documentation, as part numbers\r\n                          are sometimes changed as different versions of a part\r\n                          become available.{\" \"}\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          You should only use this direct part lookup feature if\r\n                          you are very sure that you know the part number that\r\n                          you need.\r\n                        </ListGroup.Item>\r\n                      </ListGroup>\r\n                  </Card>\r\n                </Tab.Pane>\r\n                <Tab.Pane eventKey=\"third\">\r\n                  <Card>\r\n                      <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n                        <ListGroup.Item>\r\n                          Microsoft Edge 90.x or greater, Chrome 20.x\r\n                          or greater, and Firefox version 6.x or greater.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          Cookies must be allowed (see browser’s help file).\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          JavaScript must be enabled (see browser’s help file).{\" \"}\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          Browser pop-up blocker must be off for some functions\r\n                          to work (see browser’s help file)\r\n                        </ListGroup.Item>\r\n                      </ListGroup>\r\n                  </Card>\r\n                </Tab.Pane>\r\n                <Tab.Pane eventKey=\"fourth\">\r\n                  <Card>\r\n                      <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n                        <ListGroup.Item>\r\n                          Specific actions that you can take within PartSurfer,\r\n                          such as <b>Enter a Model Number</b> or\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          <b>Select a Keyword</b> are displayed in a <b>bold</b>{\" \"}\r\n                          font for quick reference.\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          Screen field headings, such as Part Number or product\r\n                          search: are displayed in italics.{\" \"}\r\n                        </ListGroup.Item>\r\n                        <ListGroup.Item>\r\n                          {\" \"}\r\n                          Examples of information to be entered by the user,\r\n                          such as 33440-69001 or laserjet 5 are displayed in a\r\n                          typewriter font.\r\n                        </ListGroup.Item>\r\n                      </ListGroup>\r\n                  </Card>\r\n                </Tab.Pane>\r\n              </Tab.Content>\r\n            </Col>\r\n          </Row>\r\n        </Tab.Container>\r\n        <Accordion defaultActiveKey=\"0\">\r\n          <Card>\r\n            <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n              Finding an HP Part Number\r\n            </Accordion.Toggle>\r\n            <Accordion.Collapse eventKey=\"0\">\r\n              <Card.Body>\r\n                <Accordion defaultActiveKey=\"0\">\r\n                  <Card>\r\n                    <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n                        Follow these step-by-step instructions to find an HP\r\n                        part number and associated information:\r\n                    </Accordion.Toggle>\r\n                    <Accordion.Collapse eventKey=\"0\">\r\n                      <Card.Body>\r\n                        <div id=\"accordion\" className=\"panel-group\">\r\n                          <div className=\"panel\">\r\n                            <div className=\"panel-heading\">\r\n                              <h6 className=\"panel-title\">\r\n                                <a\r\n                                  href=\"#panelBodyOne\"\r\n                                  className=\"accordion-toggle\"\r\n                                  data-toggle=\"collapse\"\r\n                                  data-parent=\"#accordion\"\r\n                                >\r\n                                <p> &nbsp;&nbsp;Select your country or region . . .</p>\r\n                                </a>\r\n                              </h6>\r\n                            </div>\r\n                            <div\r\n                              id=\"panelBodyOne\"\r\n                              className=\"panel-collapse collapse in\"\r\n                            >\r\n                              <div className=\"panel-body\">\r\n                                <p>\r\n                                  Before using HP PartSurfer, you first need to\r\n                                  let us know what country or region you are in.\r\n                                  You will only need to do this once, and it\r\n                                  will be remembered in a cookie on your\r\n                                  computer for all your future accesses. Some of\r\n                                  our information is tailored to specific\r\n                                  geographic areas. Just{\" \"}\r\n                                  <b>\r\n                                    select a country or region from the\r\n                                    drop-down menu at the upper right of the\r\n                                    main screen\r\n                                  </b>\r\n                                  . If your country isn't listed, select a\r\n                                  nearby country, as information will probably\r\n                                  be similar.\r\n                                </p>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                          <div className=\"panel\">\r\n                            <div className=\"panel-heading\">\r\n                              <h4 className=\"panel-title\">\r\n                                <a\r\n                                  href=\"#panelBodyTwo\"\r\n                                  className=\"accordion-toggle collapsed\"\r\n                                  data-toggle=\"collapse\"\r\n                                  data-parent=\"#accordion\"\r\n                                >\r\n                                 <p>&nbsp;&nbsp; Identify your HP product . . .</p>\r\n                                </a>\r\n                              </h4>\r\n                            </div>\r\n                            <div\r\n                              id=\"panelBodyTwo\"\r\n                              className=\"panel-collapse collapse\"\r\n                            >\r\n                              <div className=\"panel-body\">\r\n                                <p>\r\n                                  We next need to know what HP product you have\r\n                                  in order to help you find the part(s) that you\r\n                                  need. After FIRST locating your HP product, as\r\n                                  described below, you will be given several\r\n                                  options for finding your part(s). There are\r\n                                  five different ways to find your product:\r\n                                </p>\r\n                                <b>\r\n                                  Enter the serial number from your product in\r\n                                  the text box located in the Quick Search tab.\r\n                                </b>{\" \"}\r\n                                The serial number is found on the back or bottom\r\n                                of your HP product, and will be in a format such\r\n                                as USE646N6FJ, 2UA73310K5 or CNU6080B8C.\r\n                                <center>\r\n                                  <b>OR</b>\r\n                                </center>\r\n                                <b>\r\n                                  Enter the product number from your product in\r\n                                  the text box located in the Quick Search tab.\r\n                                </b>{\" \"}\r\n                                The product number is found on the back or\r\n                                bottom of your HP product, and will be in a\r\n                                format such as C2010A, 33440A or D7399A. If you\r\n                                can take a moment to find the product number on\r\n                                your product, this will be the most accurate way\r\n                                to locate the information you need.\r\n                                <center>\r\n                                  <b>OR</b>\r\n                                </center>\r\n                                <b>\r\n                                  Enter the part number from your product in the\r\n                                  text box located in the Quick Search tab.\r\n                                </b>{\" \"}\r\n                                The part number is found on the back or bottom\r\n                                of your HP product, and will be in a format such\r\n                                as C2801-40001, 384705-051 or 5063-1256.\r\n                                <center>\r\n                                  <b>OR</b>\r\n                                </center>\r\n                                <b>\r\n                                  Enter the name or description of your product\r\n                                  in the text box located in the Quick Search\r\n                                  tab.\r\n                                </b>{\" \"}\r\n                                For example, laserjet 5, pavilion 6532 or\r\n                                omnibook. Searching for an HP part by entering a\r\n                                general description (such as Power Cord, Fusing\r\n                                Assembly, Motherboard, or Cartridge) in the\r\n                                search field on this screen will probably NOT be\r\n                                successful.\r\n                                <center>\r\n                                  <b>OR</b>\r\n                                </center>\r\n                                <b>\r\n                                  Select the general family that your product\r\n                                  belongs to from the list on the Hierarchy tab.\r\n                                </b>{\" \"}\r\n                                Locate your product by 'drilling down' through\r\n                                the HP product families.\r\n                                <center>\r\n                                  <b>OR</b>\r\n                                </center>\r\n                                <b>\r\n                                  Enter the part/product number in the text box\r\n                                  located in the Quick Search tab with wildcard\r\n                                  [asterisk(*)] search for single character\r\n                                  replacement.\r\n                                </b>{\" \"}\r\n                                For example, search for av*33u* which returns\r\n                                matching results.\r\n                                <p>\r\n                                  <b>\r\n                                    Select the Lookup similar items check box if\r\n                                    you want to match similar part numbers or\r\n                                    product numbers.\r\n                                  </b>{\" \"}\r\n                                  For example, if you enter the search string\r\n                                  33440A and check the box, the following\r\n                                  results will be returned: 33440A, 33440A-T,\r\n                                  33440AB, etc. <b>Please note:</b> the Lookup\r\n                                  similar items check box only works when\r\n                                  searching for product numbers and part\r\n                                  numbers.\r\n                                </p>\r\n                                <p>\r\n                                  If your product search finds a single matching\r\n                                  HP product, a screen will be displayed that\r\n                                  will allow you to look up parts information.\r\n                                  If your search finds multiple matches (or if\r\n                                  you searched through product families), you\r\n                                  will need to{\" \"}\r\n                                  <b>select from a list of products</b> for that\r\n                                  family or search result.\r\n                                </p>\r\n                                <p>\r\n                                  The General Tab is the default view for most\r\n                                  search results. This provides the user with a\r\n                                  generic list of parts that are used within a\r\n                                  family of similar products (multiple hard\r\n                                  drives, memory modules, etc.) If a serial\r\n                                  number search is performed, or a product SKU\r\n                                  (Stock Keeping Number) search and you then\r\n                                  click on the Advanced Tab, a more specific\r\n                                  spares list called a BOM (Bill Of Materials)\r\n                                  will be displayed when available. Also a\r\n                                  Component BOM, which is a list of parts as\r\n                                  used in the manufacturing process, may be\r\n                                  available.{\" \"}\r\n                                </p>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                          <div className=\"panel\">\r\n                            <div className=\"panel-heading\">\r\n                              <h4 className=\"panel-title\">\r\n                                <a\r\n                                  href=\"#panelBodyThree\"\r\n                                  className=\"accordion-toggle collapsed\"\r\n                                  data-toggle=\"collapse\"\r\n                                  data-parent=\"#accordion\"\r\n                                >\r\n                                <p>&nbsp;&nbsp;Customize your search results . . .</p>  \r\n                                </a>\r\n                              </h4>\r\n                            </div>\r\n                            <div\r\n                              id=\"panelBodyThree\"\r\n                              className=\"panel-collapse collapse\"\r\n                            >\r\n                              <div className=\"panel-body\">\r\n                                <p>\r\n                                  Once you have specified your product, you will\r\n                                  see a list of all replacement parts for the\r\n                                  product, grouped by keyword and part number.\r\n                                  If you want to filter the parts list, you can{\" \"}\r\n                                  <b>\r\n                                    click on the Customize your results link\r\n                                  </b>\r\n                                  . This will display a form that will allow you\r\n                                  to filter the parts listing based on the\r\n                                  following criteria:\r\n                                </p>\r\n                                <ul>\r\n                                  <li>\r\n                                    <b className=\"headings\">Select RoHS.</b>{\" \"}\r\n                                    This will display a list of all replacement\r\n                                    parts that are RoHS compliant.\r\n                                    <center>\r\n                                      <b>OR</b>\r\n                                    </center>\r\n                                  </li>\r\n                                  <li>\r\n                                    <b className=\"headings\">\r\n                                      Select Part photo.\r\n                                    </b>{\" \"}\r\n                                    This will display a list of all replacement\r\n                                    parts for the product that have a part photo\r\n                                    available.\r\n                                    <center>\r\n                                      <b>OR</b>\r\n                                    </center>\r\n                                  </li>\r\n                                  <li>\r\n                                    <b className=\"headings\">\r\n                                      Select a Keyword.\r\n                                    </b>{\" \"}\r\n                                    This will display a list of parts for the\r\n                                    keyword. Keywords are very specific\r\n                                    groupings of parts, such as Button, PC\r\n                                    Board, Roller, Power Cord.\r\n                                    <center>\r\n                                      <b>OR</b>\r\n                                    </center>\r\n                                  </li>\r\n                                  <li>\r\n                                    <b className=\"headings\">\r\n                                      Select a Category.\r\n                                    </b>{\" \"}\r\n                                    This will display a list of parts for the\r\n                                    category, grouped by keyword and part\r\n                                    number. Categories are more general\r\n                                    groupings of parts, based on location within\r\n                                    the product or functionality, such as Fusing\r\n                                    Assembly Parts, External Case Parts, Drives\r\n                                    and Controllers, Electronic Accessories.\r\n                                    <center>\r\n                                      <b>OR</b>\r\n                                    </center>\r\n                                  </li>\r\n                                  <li>\r\n                                    <b className=\"headings\">\r\n                                      Enter a search value in the String Search\r\n                                      field.\r\n                                    </b>{\" \"}\r\n                                    This will search through all part numbers\r\n                                    and part descriptions for the product, and\r\n                                    display a list of all matching parts,\r\n                                    grouped by keyword and part number.\r\n                                  </li>\r\n                                </ul>\r\n                                <p>\r\n                                  After you have selected your filter criteria,{\" \"}\r\n                                  <b>click the Apply button</b>. This will\r\n                                  display an updated parts list based on your\r\n                                  filter criteria.\r\n                                </p>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                          <div className=\"panel\">\r\n                            <div className=\"panel-heading\">\r\n                              <h4 className=\"panel-title\">\r\n                                <a\r\n                                  href=\"#panelBodyFive\"\r\n                                  className=\"accordion-toggle collapsed\"\r\n                                  data-toggle=\"collapse\"\r\n                                  data-parent=\"#accordion\"\r\n                                >\r\n                                <p>&nbsp;&nbsp;Find your part(s) using a parts diagram . . .</p>\r\n                                </a>\r\n                              </h4>\r\n                            </div>\r\n                            <div\r\n                              id=\"panelBodyFive\"\r\n                              className=\"panel-collapse collapse\"\r\n                            >\r\n                              <div className=\"panel-body\">\r\n                                <p>\r\n                                  If an interactive parts diagram is available\r\n                                  for your product, a selection field labeled\r\n                                  View a parts diagram will be shown on the\r\n                                  General tab. Parts diagrams allow you to\r\n                                  visually confirm that you have found the\r\n                                  correct part. You may move your mouse over\r\n                                  objects on the interactive diagram for quick\r\n                                  part information, or click on the object for\r\n                                  more detail. Please note that parts that are\r\n                                  shown in pale gray on some diagrams are not\r\n                                  orderable parts, but are included on the\r\n                                  diagram for reference only.\r\n                                </p>\r\n                                <p>\r\n                                  To view the parts diagram,{\" \"}\r\n                                  <b>select Interactive mode</b> for an\r\n                                  interactive parts diagram,{\" \"}\r\n                                  <b>or select Printable mode</b> if you want to\r\n                                  print the diagram. <b>Select the component</b>{\" \"}\r\n                                  of the part you want to view from the\r\n                                  drop-down menu. <b>Click the search icon</b>\r\n                                  <img\r\n                                    src={go}\r\n                                    width=\"20\"\r\n                                    height=\"15\"\r\n                                    alt=\"Search icon\"\r\n                                  />\r\n                                  to view the parts diagram.\r\n                                </p>\r\n                                <b className=\"headings\">\r\n                                  Move your mouse over an object\r\n                                </b>{\" \"}\r\n                                to see a pop-up box displaying the keyword and\r\n                                part number(s) corresponding to the part.\r\n                                <br />\r\n                                <b className=\"headings\">\r\n                                  Click on an object or keyword\r\n                                </b>{\" \"}\r\n                                for more detailed part information. Information\r\n                                for the part(s) (in the same format as in a\r\n                                parts listing) will be displayed, followed by a\r\n                                redisplay of the diagram with a red arrow\r\n                                pointing to the selected part.\r\n                                <br />\r\n                                The pop-up box displayed for some diagram\r\n                                objects contains a link labeled &#8216;View More\r\n                                Detail&#8217;. <br />\r\n                                <b className=\"headings\">\r\n                                  Click the View More Detail link\r\n                                </b>{\" \"}\r\n                                to display a more detailed view of the part or\r\n                                assembly.\r\n                                <p>\r\n                                  If a parts diagram for your part is not\r\n                                  available within PartSurfer, one may be\r\n                                  available at the HP Service Media Library.{\" \"}\r\n                                  <b>Click the HP Service Media Library link</b>{\" \"}\r\n                                  in the left menu to be taken to the HP Service\r\n                                  Media Library search page.\r\n                                </p>\r\n                                <b className=\"headings\">\r\n                                  Find your part(s) or part information on a\r\n                                  parts listing . . .\r\n                                </b>\r\n                                <p>\r\n                                  Parts listings contain the following fields\r\n                                  and features to allow you to verify part\r\n                                  numbers, access part prices (in some\r\n                                  countries), and order parts on-line (currently\r\n                                  only for U.S. customers):\r\n                                </p>\r\n                                Parts diagram/photo indicator: A camera icon in\r\n                                the left column of a parts listing entry\r\n                                indicates that there is a diagram or photo\r\n                                displaying that part.{\" \"}\r\n                                <b>Click on the camera icon</b> to display\r\n                                either a photograph of the part or a diagram\r\n                                with a red arrow pointing to the part. (See the\r\n                                previous section for details on using parts\r\n                                diagrams.)\r\n                                <br />\r\n                                Add to Cart: (U.S. only) used to select parts\r\n                                you want to order from the HP Parts Store web\r\n                                site. (See details on ordering parts below.)\r\n                                <br />\r\n                                Click to Buy: A Buy button that takes you\r\n                                directly to the HP Home and Home Office Store.\r\n                                <br />\r\n                                Part number: The HP part number.\r\n                                <br />\r\n                                Description: A detailed description for the\r\n                                part, including information, where relevant, on\r\n                                where and/or how the part is used within the\r\n                                specific product. Although PartSurfer does not\r\n                                show real-time part availability information,\r\n                                there are notes in some descriptions to indicate\r\n                                parts that are no longer available, or that have\r\n                                special ordering requirements.\r\n                                <br />\r\n                                Show Functional Equivalent: Once a products\r\n                                spares list is displayed, click the\r\n                                <img\r\n                                  src={Show_fun_eq}\r\n                                  width=\"120\"\r\n                                  height=\"20\"\r\n                                  alt=\"Search icon\"\r\n                                />\r\n                                button. If an equivalent part is available, a\r\n                                <img\r\n                                  src={FE_User}\r\n                                  width=\"20\"\r\n                                  height=\"20\"\r\n                                  alt=\"Search icon\"\r\n                                />\r\n                                button will be displayed next to a part number.\r\n                                Click the\r\n                                <img\r\n                                  src={FE_User}\r\n                                  width=\"20\"\r\n                                  height=\"20\"\r\n                                  alt=\"Search icon\"\r\n                                />\r\n                                button to display a popup window with that\r\n                                information. Otherwise there will be a NO\r\n                                Functional Equivalent message displayed.\r\n                                <br />\r\n                                <br />\r\n                                SBOM button (May also appear as Updated SBOM\r\n                                Available ): Clicking on the\r\n                                <img\r\n                                  src={SBOM_NEW}\r\n                                  width=\"40\"\r\n                                  height=\"17\"\r\n                                  alt=\"Search icon\"\r\n                                />\r\n                                <br />\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                          <div className=\"panel\">\r\n                          <div className=\"panel-heading\">\r\n                              <h4 className=\"panel-title\">\r\n                                <a\r\n                                  href=\"#panelBodySix\"\r\n                                  className=\"accordion-toggle collapsed\"\r\n                                  data-toggle=\"collapse\"\r\n                                  data-parent=\"#accordion\"\r\n                                >\r\n                                   <p>&nbsp;&nbsp;Order parts through the HP Parts Store\r\n                                  (available in select countries only) . . .</p>\r\n                                </a>\r\n                              </h4>\r\n                            </div>\r\n                            <div\r\n                              id=\"panelBodySix\"\r\n                              className=\"panel-collapse collapse in\"\r\n                            >\r\n                              <div className=\"panel-body\">\r\n                                <p>\r\n                                  From any PartSurfer parts listing,{\" \"}\r\n                                  <b>\r\n                                    select the check box in the Add to Cart\r\n                                    column, and click the Add Parts to Cart\r\n                                    button\r\n                                  </b>\r\n                                  . When you have filled your cart with all of\r\n                                  the parts you want to order,{\" \"}\r\n                                  <b>\r\n                                    click the Shopping Cart icon\r\n                                    <img\r\n                                      src={Shopping_cart}\r\n                                      width=\"19\"\r\n                                      height=\"19\"\r\n                                      alt=\"Shopping cart icon\"\r\n                                    />\r\n                                    at the top of the page\r\n                                  </b>\r\n                                  . We hope to have linkages soon to online HP\r\n                                  parts ordering tools that are being developed\r\n                                  for other countries.\r\n                                </p>\r\n                                <p>\r\n                                  The following actions are available on the\r\n                                  Shopping Cart page:\r\n                                </p>\r\n                                <b>Update the number in the Qty text box</b> to\r\n                                change the number of parts you want to order.\r\n                                <br />\r\n                                <b>\r\n                                  Select the Remove check box and then click the\r\n                                  Update cart <span>&#62;&#62;</span> button\r\n                                </b>{\" \"}\r\n                                to remove parts from your shopping cart.\r\n                                <br />\r\n                                <b>Click the Update cart  <span>&#62;&#62;</span> button</b> to\r\n                                complete any changes you have made to the parts\r\n                                in your shopping cart.\r\n                                <br />\r\n                                <b>Click the Place order  <span>&#62;&#62;</span> button</b> to be\r\n                                taken to the HP Home and Home Office Store where\r\n                                you can order the parts in your cart.\r\n                                <br />\r\n                                <b>Click the Order more parts  <span>&#62;&#62;</span> button</b> to\r\n                                return to the PartSurfer homepage to search for\r\n                                additional parts.\r\n                                <br />\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                          <div className=\"panel\">\r\n                            <div className=\"panel-heading\">\r\n                              <h4 className=\"panel-title\">\r\n                                <a\r\n                                  href=\"#panelBodySeven\"\r\n                                  className=\"accordion-toggle collapsed\"\r\n                                  data-toggle=\"collapse\"\r\n                                  data-parent=\"#accordion\"\r\n                                >\r\n                                <p>&nbsp;&nbsp;abbreviation . . .</p>  \r\n                                </a>\r\n                              </h4>\r\n                            </div>\r\n                            <div\r\n                              id=\"panelBodySeven\"\r\n                              className=\"panel-collapse collapse\"\r\n                            >\r\n                              <div className=\"panel-body\">\r\n                                <p>\r\n                                  Below are some of abbreviation in PartSurfer\r\n                                </p>\r\n                                <ul>\r\n                                  <li>\r\n                                    <b className=\"headings\">RoHS.</b>{\" \"}\r\n                                    Restriction of Hazardous Substances\r\n                                  </li>\r\n                                  <li>\r\n                                    <b className=\"headings\">FE.</b>{\" \"}\r\n                                    Funcational Equivalent\r\n                                  </li>\r\n                                  <li>\r\n                                    <b className=\"headings\">CSR.</b>{\" \"}\r\n                                    Customer Self Repair\r\n                                  </li>\r\n                                </ul>\r\n                               \r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                        \r\n                      </Card.Body>\r\n                    </Accordion.Collapse>\r\n                  </Card>\r\n                </Accordion>\r\n              </Card.Body>\r\n            </Accordion.Collapse>\r\n          </Card>\r\n        </Accordion>\r\n      </Container>\r\n    </React.Fragment>\r\n  );\r\n}\r\n\r\nexport default ViewHOC(UserGuide);\r\n","//https://github.com/iannbing/react-simple-tree-menu - Reference for TreeView\r\nimport React from 'react';\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport Loading from './Loading';\r\nimport { GET_HIERARCHY,GETHIERARCHYPRODUCT, GETGLBURL } from './constants/APIConstants';\r\nimport { getAuthHeader } from './Util';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport TreeMenu from 'react-simple-tree-menu'\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\n//import ModalPopup from './ModalPopup';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Modal } from 'react-bootstrap'; \r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\"; \r\n//import { SEARCH_MODES } from \"./constants/constants\";\r\nimport { getLocationObject } from \"./Util\";\r\n\r\nclass Hierarchy extends React.Component {\r\n  state = {\r\n    countryLoading: true,\r\n    dataprod: null,\r\n    showModalPopup: false,\r\n    prodparents: null,\r\n    Level1: null,\r\n    Level2: null,\r\n    Level3: null,\r\n    Level4: null,\r\n    Level5: null,\r\n    Level6: null,\r\n    User : '',\r\n  };\r\n  \r\n  componentDidMount() {\r\n    const {countryLoading} = true;\r\n    axios.get(GET_HIERARCHY(localStorage.getItem(\"usertype\")), {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((res) => {\r\n        const dt = res.data.Body;\r\n        this.setState({ data: res.data.Body, countryLoading: false })\r\n      }, (error) => {\r\n        this.setState({ data: null, countryLoading: false })\r\n      })\r\n\r\n  }\r\n  \r\n  removeCookie = (e) => {\r\n    e.preventDefault();\r\n    secureLocalStorage.removeItem(\"loggeduser\");\r\n    this.setState({ User: null });\r\n    alert(\"LogOut Success!\");\r\n    window.location.href = \"/\";\r\n  }\r\n\r\n  isShowPopup = (status) => {  \r\n    this.setState({ showModalPopup: status });  \r\n  }; \r\n  isShowModal = (status) => {  \r\n    this.handleClose();  \r\n    this.setState({ showModal: status });  \r\n  }  \r\n\r\n  handleClose = () => {  \r\n    this.isShowPopup(false);  \r\n        //window.location.href = '/PartSurfer/Hierarchy';\r\n  }\r\n  \r\n  proddatasplit = (dt) => {  \r\n    let res = dt || {};\r\n    var array = res.parentItems.split(\"->\");\r\n    if(array != null)\r\n    {\r\n      if(array.length == 6)\r\n      {\r\n        this.setState({Level1: array[0], Level2: array[1], Level3: array[2], Level4: array[3], Level5: array[4], Level6: array[5]});\r\n      }\r\n      else\r\n      {\r\n        this.setState({Level1: array[0], Level2: array[1], Level3: array[2], Level4: array[3], Level5: array[4], Level6: null});\r\n      }      \r\n    }\r\n        this.setState({\r\n          dataprod: res.hierarchyProds,\r\n          prodparents: res.parentItems,\r\n        });  \r\n  } \r\n\r\n  loadData = (key,label, props) => {\r\n    this.setState({ countryLoading: true })\r\n    var array = key.split(\"/\");\r\n    const { hasNodes } = props;\r\n    let urlprod;\r\n    let arraycount;\r\n    arraycount = array.length - 1;\r\n    //Added for Text Click by Shreyas Nene to get value of level.\r\n    //---Start Here\r\n    const {level}=props;\r\n    //Added for Text Click by Shreyas Nene to get value of level---End Here\r\n    urlprod = GETHIERARCHYPRODUCT(array[arraycount], localStorage.getItem(\"usertype\"));\r\n    var dt1 = this.state.data;\r\n    if (!hasNodes) {\r\n      axios.get(urlprod, {\r\n        headers: {\r\n          ...getAuthHeader()\r\n        }\r\n      })\r\n        .then((response) => {\r\n          this.proddatasplit(response.data.Body);\r\n          this.setState({ countryLoading: false })\r\n          this.isShowPopup(true);\r\n        }, (error) => {\r\n          this.setState({ countryLoading: false })\r\n        })\r\n    }\r\n    else{\r\n        this.setState({ countryLoading: false })\r\n        // Added by Shreyas Nene to enable click event on TreeMenu Text Click-------Start here        \r\n       var list=document.getElementsByClassName(\"rstm-tree-item\");\r\n       for (let i = 0; i < list.length; i++){\r\n        if(list[i].textContent.substring(1)==label){\r\n          if(list[i].classList.contains('rstm-tree-item-level'+level))\r\n          list[i].querySelector(\".rstm-toggle-icon-symbol\").click();\r\n        }\r\n       };        \r\n      //Added by Shreyas Nene to enable click event on TreeMenu Text Click-------End here\r\n\r\n    }\r\n  }\r\n\r\n\r\n  render() {\r\n    const { countryLoading, data, dataprod } = this.state;\r\n    const {mobileView } = this.props;\r\n        const columns = mobileView\r\n        ? [\r\n          {\r\n            text: \"#\",\r\n            dataField: '',\r\n            headerAttrs: {\r\n              hidden: true,\r\n            },\r\n            formatter: (col, prod, index) => {\r\n              return (\r\n                <React.Fragment key={prod.product_number}>\r\n                  <b>HP Model Number&nbsp;:&nbsp;</b>\r\n                        <Link style={{color: \"#007bff\"}} to={getLocationObject(prod.product_number)} >\r\n                          {prod.product_number}\r\n                        </Link>\r\n                  <br />\r\n                  <b>Product Name&nbsp;:&nbsp;</b>\r\n                  {prod.product_name}\r\n                  <br />\r\n                  \r\n                </React.Fragment>\r\n              );\r\n            },\r\n          },\r\n        ]\r\n      : [\r\n          {\r\n            dataField: \"product_number\",\r\n            text: \"HP Model Number\",\r\n            formatter: (col) => (\r\n                <div>\r\n                    <Link style={{color: \"#007bff\"}} to={getLocationObject(col)} >\r\n                        {col}\r\n                    </Link>\r\n              </div>\r\n            ),\r\n            headerStyle: () => {\r\n              return { width: \"3%\" };\r\n            },\r\n          },\r\n          {\r\n            dataField: \"product_name\",\r\n            text: \"Product Name\",\r\n            headerStyle: () => {\r\n              return { width: \"15%\" };\r\n            },\r\n          },\r\n        ];\r\n        const{Level1,Level2, Level3,Level4,Level5,Level6,User} = this.state;\r\n        const styleObject = {\r\n          \"float\" : \"right\",\r\n          \"color\" : \"#003366\",\r\n          \"width\" : \"100%\"\r\n          }\r\n    return (      \r\n      <React.Fragment>\r\n        <Navbar />\r\n        <div style={{ marginRight: \"10px\"}}>\r\n          <br/>\r\n          <Login />\r\n          <br/>\r\n        </div>\r\n        <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n          <Loading loading={countryLoading } >          \r\n          <div className=\"row\">\r\n              <div className=\"col-md-9\">\r\n                &nbsp;&nbsp;&nbsp;&nbsp;<span id=\"ctl00_SubTitle\">Hierarchy Menu:</span>\r\n              </div>\r\n          </div>\r\n          <div><br/></div>\r\n          \r\n          <div className=\"container\">\r\n              \r\n                  <TreeMenu data={data} debounceTime={500}\r\n                  disableKeyboard={false}\r\n                  hasSearch={false}\r\n                  onClickItem={({ key, label, ...props }) => {\r\n                      this.loadData(key,label,props);\r\n                    }}\r\n                  resetOpenNodesOnDataUpdate={true}/>\r\n              \r\n          </div>\r\n          { dataprod &&\r\n              <Modal show={this.state.showModalPopup} onHide={this.handleClose} onPopupClose={this.isShowPopup} \r\n                    size=\"lg\"  \r\n                    aria-labelledby=\"contained-modal-title-vcenter\"  \r\n                    centered  >  \r\n                    <Modal.Header closeButton>  \r\n                        <Modal.Title id=\"sign-in-title\">  \r\n                            PartSurfer Hierarchy Products  \r\n                         </Modal.Title>  \r\n                    </Modal.Header>  \r\n                    <Modal.Body>  \r\n                            <React.Fragment>\r\n                              <div style={{fontWeight: \"bold\"}}>\r\n                                {/* {this.state.prodparents} */}\r\n                                {Level1} <i class=\"fas fa-arrow-right\"></i> {Level2} <i class=\"fas fa-arrow-right\"></i> {Level3} <i class=\"fas fa-arrow-right\"></i> {Level4} <i class=\"fas fa-arrow-right\"></i> {Level5} <i class=\"fas fa-arrow-right\"></i> {Level6}\r\n                                <br/>\r\n                                <br/>\r\n                              </div>\r\n                            </React.Fragment>\r\n                            <React.Fragment>\r\n                                <BootstrapTable\r\n                                    keyField=\"PartNumber\"\r\n                                    data={dataprod}\r\n                                    columns={columns}\r\n                                    striped\r\n                                    pagination={dataprod.length > 10 ? paginationFactory() : undefined}\r\n                                />\r\n                            </React.Fragment>\r\n                        <hr />  \r\n                        <div className=\"signUp\">  \r\n                            <p>Go back to Hierarchy Menu?  <button type=\"button\" className=\"apply btn btn-primary\" onClick={() => this.isShowModal(true)}> Close</button></p>  \r\n                        </div>  \r\n                    </Modal.Body> \r\n                </Modal >  \r\n          }\r\n          </Loading>\r\n          </div>\r\n          \r\n            <div>\r\n              <br />\r\n            <br />\r\n            <br />\r\n        <div className=\"col-md-12 text-md-center\">\r\n          <Link style={{ color: \"#003366\" }}  to=\"/PartSurfer/ContactUS\">\r\n            <u>Feedback to HP PartSurfer</u>\r\n          </Link>\r\n        </div>\r\n        <br />\r\n        </div>\r\n        \r\n      </React.Fragment>\r\n       \r\n    );\r\n  }\r\n}\r\n\r\nexport default ViewHOC(Hierarchy)\r\n","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport Loading from './Loading';\r\nimport { getURLQueryString, getAuthHeader } from './Util';\r\nimport { GET_COUNTRIES,INSERTFEEDBACK } from './constants/APIConstants';\r\nimport axios from 'axios';\r\n\r\nclass NewRequest extends React.Component {\r\n  constructor(props) {\r\n    super(props);    this.state = {\r\n      modalnumber: '', \r\n      problemdesc: '', \r\n      troubleshootingsteps: '', \r\n      installation: '', \r\n      nameofcust: '', \r\n      email: '', \r\n      phonenumber: '', \r\n      country : '',\r\n      SelectValue: \"Please Select a Country\"\r\n    };\r\n    this.state = {countryLoading: true, countryerror: ''}\r\n    this.handleChange = this.handleChange.bind(this);\r\n    this.handleSubmit = this.handleSubmit.bind(this);\r\n    this.handleDropdownChange = this.handleDropdownChange.bind(this);\r\n    this.setState({SelectValue : \"Please Select a Country\"})\r\n  }\r\n  handleDropdownChange(e) {\r\n    this.setState({ SelectValue: e.target.value });\r\n  }\r\n  componentDidMount() {\r\n    getURLQueryString()\r\n    axios.get(GET_COUNTRIES(localStorage.getItem(\"usertype\")), {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((res) => {\r\n        const data = res.data.Body;\r\n        let dat = data.map((con, index) => {\r\n          return { key: con.CountryCode, value: con.CountryName }\r\n        })\r\n        this.setState({ data: dat, countryLoading: false })\r\n        this.setState({SelectValue : \"Please Select a Country\"})\r\n      }, (error) => {\r\n        // console.log(error);\r\n        this.setState({ countryLoading: false })\r\n        this.setState({SelectValue : \"Please Select a Country\"})\r\n      })\r\n\r\n  }\r\n\r\n  handleChange(evt) {\r\n    this.setState({\r\n      [evt.target.name]: evt.target.value\r\n    });\r\n  }\r\n\r\n  emailvalidation(value) {\r\n    var pattern = new RegExp(/^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i);\r\n      if (!pattern.test(value)) {\r\n        return false;        \r\n      }\r\n      else\r\n      {\r\n        return true;\r\n      }\r\n  }\r\n\r\n  phonevalidation(value) {\r\n    var pattern = new RegExp(/^[0-9\\b]+$/);\r\n      if (!pattern.test(value)) {\r\n        return false;        \r\n      }\r\n      else\r\n      {\r\n        return true;\r\n      }\r\n  }\r\n\r\n  handleSubmit(event) {\r\n    this.setState({ countryLoading: true })\r\n    const { modalnumber, problemdesc, troubleshootingsteps, installation, nameofcust, email, phonenumber, SelectValue } = this.state;\r\n\r\n    if(!SelectValue.includes(\"Select\") )\r\n    {\r\n      if(this.emailvalidation(email))\r\n      {\r\n        let input = modalnumber + \"$$\" + problemdesc + \"$$\" + troubleshootingsteps + \"$$\" + installation + \"$$\" + nameofcust + \"$$\" + email + \"$$\" + phonenumber + \"$$\" + SelectValue;\r\n        // let request = input.replaceAll(\"/\", \"@@\");\r\n        // request = request.replaceAll(\"#\",\"&&&\");\r\n        // request = request.replaceAll(\"?\",\"%%\");\r\n        console.log(input);\r\n        const content = { text: input };\r\n        let urlprod;\r\n        urlprod = INSERTFEEDBACK();\r\n        axios.post(urlprod, content, {\r\n            headers: {\r\n              ...getAuthHeader()\r\n            }\r\n          })\r\n            .then((response) => {\r\n              if(response.data == true)\r\n              {\r\n                alert(\"Confirmation of your submission has also been mailed to the email address provided by you\");\r\n              }\r\n              else\r\n              {\r\n                alert(\"Some Error Occured on submitting Request!\");\r\n              }\r\n              this.setState({ countryLoading: false, SelectValue : \"Please Select a Country\", countryerror: \"\" })\r\n            }, (error) => {\r\n              this.setState({ countryLoading: false, SelectValue : \"Please Select a Country\", countryerror: \"\" })\r\n        })\r\n      }\r\n      else{\r\n        this.setState({countryLoading: false,  countryerror: \"Please enter valid email or phone number!\" })\r\n      }\r\n    }\r\n    else\r\n    {\r\n      this.setState({countryLoading: false, SelectValue : \"Please Select a Country\", countryerror: \"Please select country!\" })\r\n    }\r\n    event.preventDefault();\r\n  }\r\n\r\n  render() {\r\n    const { countryLoading } = this.state;\r\n    return (\r\n      \r\n      <React.Fragment>\r\n        \r\n        <Loading loading={countryLoading } >\r\n        <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n          <Navbar />\r\n          <div><br/>\r\n              <div>\r\n                      <div className=\"alert alert-success\" role=\"alert\">\r\n                          <h4 className=\"alert-heading\">\r\n                            E-mail form:-\r\n                          </h4>\r\n                          <p>\r\n                            The information we are requesting will be used solely to fulfill your e-mail support request and does not register you as an HP customer.\r\n                            <br/>\r\n                            Most e-mail responses can be expected within 1 business day.\r\n                          </p>\r\n                        </div>\r\n            </div>\r\n          </div>\r\n          {/* <div className=\"row\">\r\n              <div className=\"col-md-9\">\r\n                &nbsp;&nbsp;&nbsp;&nbsp;<span id=\"ctl00_SubTitle\">Submit Request:</span>\r\n              </div>\r\n          </div> */}\r\n          <div><br/></div>\r\n          \r\n          <div className=\"container\">\r\n              <form onSubmit={this.handleSubmit}>\r\n              <div className=\"row\">\r\n                <div className=\"col-md-10\">\r\n                  Name or model number of your HP product:\r\n                </div>\r\n              </div>\r\n                <div className=\"input-group\">\r\n                    <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.modalnumber} name=\"modalnumber\" onChange={this.handleChange} required />\r\n                </div>\r\n                <br/>\r\n                <div className=\"row\">\r\n                    <div className=\"col-md-10\">\r\n                    Please provide a detailed description of the exact problem:\r\n                    </div>\r\n                </div>\r\n                <div className=\"input-group\">\r\n                    <textarea  className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.problemdesc} name=\"problemdesc\" onChange={this.handleChange} rows={5} cols={5} required />\r\n                </div>\r\n                {/* <br/>\r\n                <div className=\"row\">\r\n                    <div className=\"col-md-10\">\r\n                    Please list previous troubleshooting steps, or information that can help HP assist you:\r\n                    </div>\r\n                </div>\r\n                <div className=\"input-group\">\r\n                    <textarea  className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.troubleshootingsteps} name=\"troubleshootingsteps\" onChange={this.handleChange} />\r\n                </div> */}\r\n                {/* <br/>\r\n                <div className=\"row\">\r\n                    <div className=\"col-md-10\">\r\n                    Has anything changed since the unit functioned properly (installation of SW, settings, cabling, etc.).\r\n                    </div>\r\n                </div>\r\n                <div className=\"input-group\">\r\n                    <textarea  className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.installation} name=\"installation\" onChange={this.handleChange} />\r\n                </div> */}\r\n                <br/>\r\n              <div className=\"row\">\r\n                <div className=\"col-md-10\">\r\n                  Name (Firstname & Lastname):\r\n                </div>\r\n              </div>\r\n                <div className=\"input-group\">\r\n                    <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.nameofcust} name=\"nameofcust\" onChange={this.handleChange} required />\r\n                </div>\r\n              <br/>\r\n              <div className=\"row\">\r\n                <div className=\"col-md-10\">\r\n                  Email Address:\r\n                </div>\r\n              </div>\r\n                <div className=\"input-group\">\r\n                    <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.email} name=\"email\" onChange={this.handleChange} required />\r\n                </div>\r\n              {/* <br/>\r\n              <div className=\"row\">\r\n                <div className=\"col-md-10\">\r\n                  Phone Number:\r\n                </div>\r\n              </div>\r\n                <div className=\"input-group\">\r\n                    <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.phonenumber} name=\"phonenumber\" onChange={this.handleChange} required />\r\n                </div> */}\r\n                <br/>\r\n                <div className=\"row\">\r\n                <div className=\"col-md-10\">\r\n                  Country/Region:\r\n                </div>\r\n              </div>\r\n                <div className=\"input-group\">\r\n                  <select name=\"productsnrlists\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" onChange={this.handleDropdownChange} >  \r\n                          <option>Please Select a Country</option>  \r\n                          {(this.state.data || []).map((country, index) => {  \r\n                                  return <option key={index} value={country.key}>{country.value}</option>;  \r\n                          })}  \r\n                  </select>                  \r\n                </div>\r\n                <div>\r\n                  <br/>\r\n                  <p>\r\n                    <b>\r\n                    Important Note: You should receive an automated acknowledgment from HP within 1 hour. If you do not receive one, it is possible that the security settings (SPAM filtering) are preventing HP messages from being delivered to your inbox. Please check for these messages in another folder such as junk, bulk, unknown, or trash\r\n                    </b>\r\n                  </p>\r\n                </div>\r\n                <div>\r\n                  <div>\r\n                  {this.state.countryerror && <div style={{color: \"#E9573F\"}}>{this.state.countryerror}</div>\r\n                  }\r\n                </div>\r\n                <div>\r\n                <input type=\"submit\"  value=\"Submit\" className=\"apply btn btn-primary\" />\r\n                </div>\r\n                <br/>\r\n                <br/>\r\n                </div>\r\n              </form>\r\n          </div>\r\n          </div>\r\n        </Loading>\r\n      </React.Fragment>\r\n    );\r\n  }\r\n}\r\n  \r\n  export default ViewHOC(NewRequest);","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getURLQueryString, getAuthHeader } from './Util';\r\nimport { GENERATEREPORT } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport { getLocationObject } from \"./Util\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\n\r\nclass GenerateMetrics extends React.Component {\r\n  constructor(props) {\r\n    super(props);    this.state = {\r\n      modalnumber: '', \r\n      data: '',\r\n    };\r\n  }\r\n  componentDidMount() {\r\n    axios.post(GENERATEREPORT(secureLocalStorage.getItem(\"loggeduser\")), {\r\n      headers: {\r\n        ...getAuthHeader()\r\n      }\r\n    })\r\n      .then((res) => {\r\n        const dt = res.data.Body;\r\n        this.setState({ data: res.data.Body })\r\n      }, (error) => {\r\n        this.setState({ data: null })\r\n      })\r\n\r\n  }\r\n  render() {\r\n    return (\r\n      <React.Fragment>\r\n        <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n          <Navbar />\r\n          <div><br/>\r\n              <div>\r\n                      <div className=\"alert alert-success\" role=\"alert\">\r\n                          <p>\r\n                            Monthly Metrics Process initiated in Backend. You will receive monthly metrics report on your Mail.\r\n                            <br/>\r\n                            Please write the Email to PartSurfer@hp.com if you not received within 2 Hours.\r\n                          </p>\r\n              </div>\r\n            </div>\r\n          </div>          \r\n          </div>\r\n          <br />\r\n      <div style={{display: 'flex', justifyContent: 'left'}}>\r\n        <div>&nbsp;&nbsp;&nbsp;&nbsp;\r\n            <Link className=\"apply btn btn-primary\" to={getLocationObject()}>\r\n              Back to home\r\n            </Link>\r\n        </div>\r\n        <br/>\r\n        <br/>\r\n        <br/>\r\n      </div>\r\n      </React.Fragment>\r\n    );\r\n  }\r\n}\r\n  \r\n  export default ViewHOC(GenerateMetrics);","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\nimport Loading from './Loading';\r\nimport { getURLQueryString, getAuthHeader } from './Util';\r\nimport { GETSBOM } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\"; \r\nimport { useLocation } from 'react-router-dom'\r\nimport { Link } from \"react-router-dom\";\r\nimport \"./design.css\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\nclass Sbom extends React.Component {\r\n    constructor(props) {\r\n      super(props);    \r\n      this.state = {\r\n        modalnumber: '', \r\n        problemdesc: '', \r\n      };\r\n      this.state = {countryLoading: true, countryerror: '', ProdNum: ''}\r\n    }\r\n    \r\n    componentDidMount() {\r\n        let productNum = this.props.match.params.value;\r\n        let urlprod;\r\n        urlprod = GETSBOM(productNum,'US',localStorage.getItem(\"usertype\"));\r\n        axios.get(urlprod, {\r\n            headers: {\r\n            ...getAuthHeader()\r\n            }\r\n      })\r\n        .then((res) => {\r\n            this.setState({ data: res.data.Body, countryLoading: false, ProdNum: productNum })\r\n        }, (error) => {\r\n            this.setState({ data: null, countryLoading: false, ProdNum: productNum })\r\n        })\r\n  \r\n    }\r\n  \r\n    render() {\r\n        const { countryLoading, data, ProdNum } = this.state;\r\n        const {mobileView } = this.props;\r\n            const columns = mobileView\r\n            ? [\r\n              {\r\n                text: \"#\",\r\n                dataField: '',\r\n                headerAttrs: {\r\n                  hidden: true,\r\n                },\r\n                formatter: (col, prod, index) => {\r\n                  return (\r\n                    <React.Fragment key={prod.PartNumber}>\r\n                      <b>Part Number&nbsp;:&nbsp;</b>\r\n                        {prod.PartNumber}\r\n                      <br />\r\n                      <b>Description&nbsp;:&nbsp;</b>\r\n                      {prod.PartName}\r\n                      <br />\r\n                      <b>CSR&nbsp;:&nbsp;</b>\r\n                      {prod.CsrFlag}\r\n                      <br />\r\n                      <b>Tech Courier&nbsp;:&nbsp;</b>\r\n                      {prod.TechCourier}\r\n                      <br />\r\n                      <b>ROHS&nbsp;:&nbsp;</b>\r\n                      {prod.RohsCompliant}\r\n                      <br />\r\n                    </React.Fragment>\r\n                  );\r\n                },\r\n              },\r\n            ]\r\n          : [\r\n              {\r\n                dataField: \"PartNumber\",\r\n                text: \"Part Number\",                \r\n                headerStyle: () => {\r\n                  return { width: \"3%\" };\r\n                },\r\n              },\r\n              {\r\n                dataField: \"PartName\",\r\n                text: \"Description\",\r\n                headerStyle: () => {\r\n                  return { width: \"15%\" };\r\n                },\r\n              },\r\n              {\r\n                dataField: \"CsrFlag\",\r\n                text: \"CSR\",\r\n                headerStyle: () => {\r\n                  return { width: \"5%\" };\r\n                },\r\n              },\r\n              secureLocalStorage.getItem(\"loggeduser\") == null ?{\r\n                dataField: \"TechCourier\",\r\n                text: \"Tech Courier\",\r\n                hidden: true,\r\n                headerStyle: () => {\r\n                  return { width: \"5%\" };\r\n                },\r\n              }: {\r\n                dataField: \"TechCourier\",\r\n                text: \"Tech Courier\",\r\n                headerStyle: () => {\r\n                  return { width: \"5%\" };\r\n                },\r\n              },\r\n              {\r\n                dataField: \"RohsCompliant\",\r\n                text: \"ROHS\",\r\n                headerStyle: () => {\r\n                  return { width: \"8%\" };\r\n                },\r\n              },\r\n            ];\r\n      return (\r\n        \r\n        <React.Fragment>          \r\n        <Loading loading={countryLoading } >\r\n        <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n            <Navbar />            \r\n            <div style={{ marginRight: \"10px\"}}>\r\n              <br/>\r\n              <Login />\r\n              <br/>\r\n            </div>           \r\n            <div className=\"container\">\r\n                {data &&\r\n                <React.Fragment>\r\n                    <div className=\"row\">\r\n                        <div className=\"col-md-12\">\r\n                            &nbsp;&nbsp;&nbsp;<span id=\"ctl00_SubTitle\">SBOM for Products: {ProdNum}</span>\r\n                         \r\n                           \r\n                        </div>\r\n                    </div>\r\n                    <div className=\"btn-back-to-previous\" >\r\n                      <Link rel=\"noopener noreferrer\" className=\"apply btn btn-primary\" to={`../../?searchtext=${ProdNum}`}>\r\n                               Back\r\n                            </Link>\r\n                           \r\n                       </div>\r\n                    <div><br/></div>\r\n                                <BootstrapTable\r\n                                    keyField=\"PartNumber\"\r\n                                    data={data}\r\n                                    columns={columns}\r\n                                    striped\r\n                                />\r\n                </React.Fragment>\r\n                }\r\n                { !data && \r\n                    <div> There is no SBOM for Product: {ProdNum}</div>\r\n                }\r\n            </div>\r\n        </div>\r\n        </Loading>\r\n        </React.Fragment>\r\n      );\r\n    }\r\n  }\r\n    \r\n    export default ViewHOC(Sbom);","import React from 'react'\r\nimport loader from '../page_preload.gif'\r\n\r\nexport default function Loading({ loading = false, children }) {\r\n    return (\r\n        // <div>\r\n        //     {loading && <div className=\"nested-loading\" style={{\r\n        //         position: 'fixed', left: '50%', top: '50%', zIndex: 999, opacity: 1\r\n        //     }}>\r\n        //         <img src={loader} alt=\"loading...\" /></div>}\r\n        //     <div className={loading ? 'loader' : undefined} style={{ pointerEvents: loading ? 'none' : 'all' }}>\r\n        //         {children}\r\n        //     </div >\r\n        // </div>\r\n        <div style={{ position: 'relative', boxSizing: 'border-box' }}>\r\n            {loading && <div>\r\n                <div style={{\r\n                    position: 'fixed',\r\n                    height: '100%',\r\n                    \r\n                    zIndex: 999,\r\n                    display: 'block', width: '100%', textAlign: 'center'\r\n                    , top: '40%'\r\n                }}>\r\n                    <img src={loader} alt=\"loading...\" />\r\n                    <br/>\r\n                    Please wait for the moment\r\n                </div>\r\n            </div>}\r\n            {loading ? <div style={{ opacity: '0.2' }}>\r\n                {children}\r\n            </div> : children}\r\n        </div>\r\n    )\r\n}\r\n","import zIndex from \"@material-ui/core/styles/zIndex\";\r\nimport React,{useEffect} from \"react\";\r\nimport secureLocalStorage from \"react-secure-storage\";//Added By Shreyas for Local Storage Security.\r\nimport {RESPONSEURLUID,tokencallurl,UIDClientID} from './constants/APIConstants';\r\nimport { setCookie, getQueryParam, getURLQueryString, getAuthHeader, getAuthHeaderUID, bodyParametersUID } from './Util';\r\nimport axios from 'axios';\r\nimport { Buffer } from 'buffer'\r\nimport { Code } from \"@material-ui/icons\";\r\nimport { GETUIDRESPONSE,GET_COUNTRIES } from './constants/APIConstants';\r\nimport Loading from './UIDLoader';\r\nexport function toBase64(input) {  return Buffer.from(input, 'utf-8').toString('base64')}\r\nexport function fromBase64(encoded) {  return Buffer.from(encoded, 'base64').toString('utf8')}\r\n\r\n\r\nclass CallBack extends React.Component{\r\n\r\n    componentDidMount()\r\n    {\r\n        let urltkn;\r\n        urltkn = tokencallurl;\r\n        this.setState({loading: true})\r\n        const queryParameters = new URLSearchParams(window.location.search)\r\n        const Code = queryParameters.get(\"code\")\r\n        const encodedval = toBase64(UIDClientID);\r\n        var access_token=\"\";\r\n        var axios = require('axios');\r\n        var config = {\r\n          method: 'post',\r\n          //url: 'https://login-itg.external.hp.com/as/token.oauth2?redirect_uri=http://localhost:3000/PartSurfer/CallBack&code='+Code+'&grant_type=authorization_code',\r\n          url: 'https://'+urltkn+'&code='+Code+'&grant_type=authorization_code',\r\n          headers: { \r\n            'Authorization': 'Basic '+ encodedval, \r\n            'Content-Type': 'application/x-www-form-urlencoded', \r\n            'Cookie': 'HPIUID=jyzwhPBEf53HrNc0Zi8mGS'\r\n          }\r\n        };\r\n\r\n        axios(config)\r\n        .then(function (response) {  \r\n          //debugger;        \r\n          var obj=JSON.stringify(response.data);\r\n          console.log(obj);\r\n          let access_token_data = JSON.parse(obj);\r\n          console.log(access_token_data);\r\n          access_token=access_token_data.access_token;   \r\n        })\r\n        .catch(function (error) {   \r\n         //debugger;       \r\n          console.log(error);\r\n     }).finally(() => {      \r\n          debugger;    \r\n            const content = { text: access_token };\r\n            let url;\r\n            url = GETUIDRESPONSE();\r\n            axios.post(url,content, {\r\n              headers: {\r\n                ...getAuthHeader()\r\n              }\r\n            })\r\n              .then((res) => {\r\n                var email = res;\r\n                this.setState({ data: res.data.Body })\r\n                if(res.data==\"UID_Failed\")\r\n                {                     \r\n                    secureLocalStorage.setItem(\"loggeduser\",res.data); \r\n                    window.location.href = \"/\";\r\n                }\r\n                else\r\n                {\r\n                  secureLocalStorage.setItem(\"loggeduser\",res.data);\r\n                  this.setState({ User: res.data });             \r\n                  window.location.href = \"/?Code=\"+res.data;\r\n\r\n                }\r\n                this.setState({ loading: false });\r\n              }\r\n              , (error) =>\r\n              {\r\n                console.log(error);                    \r\n              }) \r\n      });\r\n\r\n    }\r\n\r\n\r\n\r\n    render(){\r\n\r\nreturn(\r\n  <React.Fragment>\r\n  <Loading loading={Loading} ></Loading>\r\n  <div>\r\n            <br />\r\n            \r\n            <div  className=\"row vh-100\">\r\n              <div className=\"col-sm-6\">\r\n              </div>\r\n              <div className=\"col-sm-6\">\r\n               \r\n                </div></div></div>\r\n  \r\n  \r\n  </React.Fragment>\r\n);\r\n    }\r\n}\r\nexport default CallBack;","import 'bootstrap/dist/css/bootstrap.min.css';\r\nimport React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport './App.css';\r\nimport ContactUS from './components/ContactUS';\r\nimport Faq from './components/Faq';\r\nimport PartSurfer from './components/PartSurfer';\r\nimport UserGuide from './components/UserGuide';\r\nimport Hierarchy from './components/Hierarchy';\r\nimport NewRequest from './components/NewRequest';\r\nimport GenerateMetrics from './components/GenerateMetrics';\r\nimport Sbom from './components/Sbom';\r\nimport GoToTop from './components/GoToTop';\r\nimport CallBack from './components/CallBack';\r\nimport cors from \"cors\";\r\nimport { generateToken } from './components/Util';\r\n\r\n\r\n\r\nclass App extends React.Component {\r\n  \r\n  componentDidMount() {\r\n    let tokenexptime = `${process.env.REACT_APP_TOKEN_REG}`\r\n    generateToken();\r\n    setInterval(generateToken, tokenexptime*1000);\r\n  }\r\n\r\n  render() {\r\n    // setInterval(() => {//This function is called as per set interval to regenerate Token \r\n    //   generateToken(); //just before it expires\r\n    // }, process.env.REACT_APP_TOKEN_REG*1000);//Time in MS\r\n    return (\r\n      <React.Fragment>\r\n        <Helmet\r\n          title=\"HP PartSurfer\">\r\n            {\r\n            process.env.REACT_APP_HEADER_LINK ? <script\r\n              src={process.env.REACT_APP_HEADER_LINK}\r\n              type=\"text/javascript\"\r\n            /> : undefined\r\n          }\r\n\r\n        </Helmet>\r\n        <Switch>\r\n          <Route path=\"/PartSurfer/Faq\" component={Faq}/>\r\n          <Route path=\"/PartSurfer/UserGuide\" component={UserGuide}/>\r\n          <Route exact path=\"/\" component={PartSurfer} />\r\n          <Route  path=\"/PartSurfer/ContactUS\" component={ContactUS}/>\r\n          <Route  path=\"/PartSurfer/Hierarchy\" component={Hierarchy}/>\r\n          <Route  path=\"/PartSurfer/NewRequest\" component={NewRequest}/>\r\n          <Route  path=\"/PartSurfer/GenerateMetrics\" component={GenerateMetrics}/>\r\n          <Route  path=\"/PartSurfer/Sbom/:value\" component={Sbom}/>\r\n          <Route exact path=\"/PartSurfer/CallBack/\" component={CallBack} />\r\n        </Switch>\r\n\r\n        <GoToTop/>{/* Added by Shreyas N for GO To Top functionality. */}\r\n\r\n      </React.Fragment>\r\n    );\r\n  }\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n    // [::1] is the IPv6 localhost address.\r\n    window.location.hostname === '[::1]' ||\r\n    // 127.0.0.0/8 are considered localhost for IPv4.\r\n    window.location.hostname.match(\r\n      /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n    )\r\n);\r\n\r\nexport function register(config) {\r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n      return;\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Let's check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl, config);\r\n\r\n        // Add some additional logging to localhost, pointing developers to the\r\n        // service worker/PWA documentation.\r\n        navigator.serviceWorker.ready.then(() => {\r\n          console.log(\r\n            'This web app is being served cache-first by a service ' +\r\n              'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n          );\r\n        });\r\n      } else {\r\n        // Is not localhost. Just register service worker\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then(registration => {\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing;\r\n        if (installingWorker == null) {\r\n          return;\r\n        }\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the updated precached content has been fetched,\r\n              // but the previous service worker will still serve the older\r\n              // content until all client tabs are closed.\r\n              console.log(\r\n                'New content is available and will be used when all ' +\r\n                  'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n              );\r\n\r\n              // Execute callback\r\n              if (config && config.onUpdate) {\r\n                config.onUpdate(registration);\r\n              }\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n              console.log('Content is cached for offline use.');\r\n\r\n              // Execute callback\r\n              if (config && config.onSuccess) {\r\n                config.onSuccess(registration);\r\n              }\r\n            }\r\n          }\r\n        };\r\n      };\r\n    })\r\n    .catch(error => {\r\n      console.error('Error during service worker registration:', error);\r\n    });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl, {\r\n    headers: { 'Service-Worker': 'script' },\r\n  })\r\n    .then(response => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      const contentType = response.headers.get('content-type');\r\n      if (\r\n        response.status === 404 ||\r\n        (contentType != null && contentType.indexOf('javascript') === -1)\r\n      ) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then(registration => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload();\r\n          });\r\n        });\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log(\r\n        'No internet connection found. App is running in offline mode.'\r\n      );\r\n    });\r\n}\r\n\r\nexport function unregister() {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready\r\n      .then(registration => {\r\n        registration.unregister();\r\n      })\r\n      .catch(error => {\r\n        console.error(error.message);\r\n      });\r\n  }\r\n}\r\n","import React from 'react'\r\n\r\nexport default function Footer() {\r\n    return (\r\n        <div>\r\n            {process.env.REACT_APP_FOOTER_ENABLED===\"true\" && <div style={{ width: '100%' }}><div id=\"footer\" className=\"footer\" ></div></div>}\r\n        </div>\r\n    )\r\n}\r\n","import React from 'react'\r\n\r\nexport default function Header() {\r\n    return (\r\n        <div>\r\n            { \r\n        //  console.log(\"header\", new String( process.env.REACT_APP_HEADER_ENABLED)===\"0\"),\r\n         process.env.REACT_APP_HEADER_ENABLED===\"true\" && <div style={{ width: '100%' }}>\r\n                <div id=\"header\" className=\"header\"></div>\r\n            </div>}\r\n        </div>\r\n    )\r\n}\r\n","import { getStoredCart, setStoredCart } from '../CartUtils';\r\n\r\nconst cart = (state = { cartItems: getStoredCart() }, action ) => {\r\n  switch (action.type) {\r\n    case \"SET_CART_ITEMS\":\r\n        console.log(\"cart-item\",action.payload)\r\n        setStoredCart(action.payload)\r\n      return {\r\n        ...state,\r\n        cartItems: action.payload,\r\n      };\r\n    default:\r\n        return state;\r\n}\r\n}\r\nexport default cart;\r\n","import { combineReducers } from 'redux'\r\nimport cart from './cartReducer'\r\n\r\nexport default combineReducers({\r\n  cart,\r\n})","import 'react-app-polyfill/ie11';\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport Footer from \"./components/footer\";\r\nimport Header from \"./components/Header\";\r\nimport { createStore } from \"redux\";\r\nimport { Provider } from \"react-redux\";\r\nimport rootReducer from \"./Reducers\";\r\n\r\n\r\nrequire(\"dotenv\").config();\r\nconst store = createStore(\r\n  rootReducer,\r\n  {},\r\n  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\r\n);\r\n\r\n\r\nReactDOM.render(<Header />, document.getElementById(\"header-container\"));\r\n\r\nReactDOM.render(\r\n  <Provider store={store}>\r\n    <BrowserRouter>\r\n      {/* <React.StrictMode> */}\r\n\r\n      <App />\r\n\r\n      {/* </React.StrictMode> */}\r\n    </BrowserRouter>\r\n  </Provider>,\r\n  document.getElementById(\"root\")\r\n);\r\n\r\nReactDOM.render(<Footer />, document.getElementById(\"footer-container\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import React from 'react';\r\nimport { GETGLBURL } from './constants/APIConstants';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport {getURLQueryString } from './Util';\r\nimport secureLocalStorage from 'react-secure-storage';\r\n\r\n\r\nclass login extends React.Component {\r\n    state = {\r\n      countryLoading: true,\r\n      User :'',\r\n    };\r\n    \r\n    componentDidMount() {\r\n       let username = secureLocalStorage.getItem(\"loggeduser\");\r\n       if(username!=null)\r\n       {\r\n          if(username!=\"UID_Failed\")\r\n          {\r\n                secureLocalStorage.setItem(\"loggeduser\",username);\r\n                this.setState({ User: secureLocalStorage.getItem(\"loggeduser\") });\r\n          }\r\n      }\r\n    }\r\n    \r\n    removeCookie = (e) => {\r\n      e.preventDefault();\r\n      secureLocalStorage.removeItem(\"loggeduser\");\r\n      this.setState({ User: null });\r\n      alert(\"LogOut Success!\");\r\n      window.location.href = \"/\";\r\n    }\r\n  \r\n    \r\n    render() {\r\n      const { User } = this.state;      \r\n      return (      \r\n        <React.Fragment>\r\n                <div style={{ float: 'right', color: \"#003366\", width:\"auto\" }} >\r\n                    {User} {User ?\r\n                    <a\r\n                    href=\"/\"\r\n                    rel=\"noopener noreferrer\"\r\n                    style={{ color: \"#003366\" }}\r\n                    onClick={this.removeCookie}\r\n                    >\r\n                    &nbsp;&nbsp;<b>LogOut</b>\r\n                    </a> : \r\n                      <a\r\n                        href={GETGLBURL}\r\n                        style={{ color: \"#003366\" }}\r\n                        title=\"HP Internal Users purpose Only.\"\r\n                      >\r\n                      <b>Login</b>\r\n                      </a> \r\n                    }                    \r\n                </div>\r\n                <div><br/><br/></div>\r\n        </React.Fragment>         \r\n      );\r\n    }\r\n  }\r\n  \r\n  export default ViewHOC(login)\r\n  ","export const WIDTH_THRESHOULD = 590;\r\n\r\nexport const SEARCH_TEXT = 'searchtext';\r\nexport const SEARCH_BY = 'searchby';\r\nexport const Code_Url = 'code';\r\n\r\nexport const SEARCH_MODES = {\r\n    PART: 'part',\r\n    PRODUCT: 'product',\r\n    FUNCTIONAL_EQUIVALENT: 'fe',\r\n    SEARIAL_NUMBER: 'sn',\r\n    WILD_CHAR: 'wc',\r\n    SERIAL_WP: 'swp'\r\n}\r\n\r\nexport const PART_PHOTO = {\r\n    PRESENT: 'Yes',\r\n    NOT_PRESENT: 'No',\r\n    NOT_APPLICABLE: 'ALL'\r\n}\r\n\r\nexport const PART_FE = {\r\n    PRESENT: 'Yes',\r\n    NOT_PRESENT: 'No',\r\n    NOT_APPLICABLE: 'ALL'\r\n}\r\nexport const DocHeight=document.body.scrollHeight;\r\n\r\nexport const URLHeader = 'PartSurfer';\r\n\r\nexport const MailIDS = 'shreyas.shrikant.nene@hp.com;santhosh.shanmugam@hp.com;rajeev.sharma@hp.com;purnima.kandukuri@hp.com;andrew.cutlip@hp.com;athar.mumtaz1@hp.com';"],"sourceRoot":""}