{"version":3,"sources":["webpack:///./app sync /^.//views[///]([^///]+//)*[^///]+/.html","webpack:///./app/images/business-card-24.png","webpack:///./app/images/business-card-48.png","webpack:///./app/images/order-promotional-products.png","webpack:///./app/images/spot.png","webpack:///./app/scripts/app.js","webpack:///./app/scripts/controllers/account.js","webpack:///./app/scripts/controllers/address.js","webpack:///./app/scripts/controllers/badgeSelection.js","webpack:///./app/scripts/controllers/businessCard.js","webpack:///./app/scripts/controllers/cart.js","webpack:///./app/scripts/controllers/checkout.js","webpack:///./app/scripts/controllers/checkoutonly.js","webpack:///./app/scripts/controllers/collateral.js","webpack:///./app/scripts/controllers/collateralAdd.js","webpack:///./app/scripts/controllers/confirmation.js","webpack:///./app/scripts/controllers/dataSales.js","webpack:///./app/scripts/controllers/dataSalesMailHouse.js","webpack:///./app/scripts/controllers/dataSalesTemplate.js","webpack:///./app/scripts/controllers/documents.js","webpack:///./app/scripts/controllers/emailCampaigns.js","webpack:///./app/scripts/controllers/emailSurvey.js","webpack:///./app/scripts/controllers/eventBit.js","webpack:///./app/scripts/controllers/landing.js","webpack:///./app/scripts/controllers/leadDetail.js","webpack:///./app/scripts/controllers/leadDetailEditSurvey.js","webpack:///./app/scripts/controllers/leadDetailEditSurveyQuestion.js","webpack:///./app/scripts/controllers/leadFollowUp.js","webpack:///./app/scripts/controllers/leadUpload.js","webpack:///./app/scripts/controllers/leads.js","webpack:///./app/scripts/controllers/login/accountSearch.js","webpack:///./app/scripts/controllers/login/changePassword.js","webpack:///./app/scripts/controllers/login/companyLogin.js","webpack:///./app/scripts/controllers/login/login.js","webpack:///./app/scripts/controllers/main.js","webpack:///./app/scripts/controllers/modal.js","webpack:///./app/scripts/controllers/moreInfo.js","webpack:///./app/scripts/controllers/myshows.js","webpack:///./app/scripts/controllers/nav.js","webpack:///./app/scripts/controllers/products.js","webpack:///./app/scripts/controllers/shop.js","webpack:///./app/scripts/controllers/survey.js","webpack:///./app/scripts/controllers/surveyCopy.js","webpack:///./app/scripts/controllers/surveyQuestion.js","webpack:///./app/scripts/controllers/surveys.js","webpack:///./app/scripts/controllers/switchShow.js","webpack:///./app/scripts/controllers/videos.js","webpack:///./app/scripts/directives/addressForm.js","webpack:///./app/scripts/directives/autoFocus.js","webpack:///./app/scripts/directives/characterCounter.js","webpack:///./app/scripts/directives/characterCounterLabel.js","webpack:///./app/scripts/directives/characterCounterTarget.js","webpack:///./app/scripts/directives/date.js","webpack:///./app/scripts/directives/eventBit.js","webpack:///./app/scripts/directives/exlTemplate.js","webpack:///./app/scripts/directives/filter.js","webpack:///./app/scripts/directives/filterClear.js","webpack:///./app/scripts/directives/filterGroup.js","webpack:///./app/scripts/directives/filterGroupStatus.js","webpack:///./app/scripts/directives/filterOption.js","webpack:///./app/scripts/directives/funnelChart.js","webpack:///./app/scripts/directives/inputField.js","webpack:///./app/scripts/directives/interact.js","webpack:///./app/scripts/directives/login/loginErrors.js","webpack:///./app/scripts/directives/login/loginForm.js","webpack:///./app/scripts/directives/login/lookupShowCompany.js","webpack:///./app/scripts/directives/navLink.js","webpack:///./app/scripts/directives/ngCopyClick.js","webpack:///./app/scripts/directives/pager.js","webpack:///./app/scripts/directives/pagerStatus.js","webpack:///./app/scripts/directives/productDetail.js","webpack:///./app/scripts/directives/promiseButton.js","webpack:///./app/scripts/directives/scrollBottom.js","webpack:///./app/scripts/directives/sort.js","webpack:///./app/scripts/directives/sortOption.js","webpack:///./app/scripts/directives/sticky.js","webpack:///./app/scripts/directives/time.js","webpack:///./app/scripts/directives/unique.js","webpack:///./app/scripts/factories/modalFactory.js","webpack:///./app/scripts/filters/collateralFile.js","webpack:///./app/scripts/filters/dataSalesFile.js","webpack:///./app/scripts/filters/excludeShow.js","webpack:///./app/scripts/filters/price.js","webpack:///./app/scripts/filters/search.js","webpack:///./app/scripts/filters/showOrder.js","webpack:///./app/scripts/filters/startFrom.js","webpack:///./app/scripts/lib/rawdeflate.js","webpack:///./app/scripts/loginApp.js","webpack:///./app/scripts/modules/ngCart/ngCart.directives.js","webpack:///./app/scripts/modules/ngCart/ngCart.js","webpack:///./app/scripts/modules/ngModal/ng-modal.js","webpack:///./app/scripts/modules/shared/Templates.js","webpack:///./app/scripts/modules/shared/sharedModule.js","webpack:///./app/scripts/services/address.js","webpack:///./app/scripts/services/api.js","webpack:///./app/scripts/services/businesscard.js","webpack:///./app/scripts/services/checkout.js","webpack:///./app/scripts/services/collateral.js","webpack:///./app/scripts/services/colors.js","webpack:///./app/scripts/services/dataSales.js","webpack:///./app/scripts/services/dataSalesExecuteContext.js","webpack:///./app/scripts/services/dataSalesExpression.js","webpack:///./app/scripts/services/demographic.js","webpack:///./app/scripts/services/discount.js","webpack:///./app/scripts/services/eventBit.js","webpack:///./app/scripts/services/lead.js","webpack:///./app/scripts/services/leadActivity.js","webpack:///./app/scripts/services/leadExport.js","webpack:///./app/scripts/services/leadFollowUp.js","webpack:///./app/scripts/services/login.js","webpack:///./app/scripts/services/order.js","webpack:///./app/scripts/services/products.js","webpack:///./app/scripts/services/resource.js","webpack:///./app/scripts/services/search.js","webpack:///./app/scripts/services/show.js","webpack:///./app/scripts/services/survey.js","webpack:///./app/scripts/services/user.js","webpack:///./app/views/Login/accountSearch.html","webpack:///./app/views/Login/changePassword.html","webpack:///./app/views/Login/companyLogin.html","webpack:///./app/views/Login/landing.html","webpack:///./app/views/Login/loginErrors.html","webpack:///./app/views/Login/loginForm.html","webpack:///./app/views/Login/lookupShowCompany.html","webpack:///./app/views/account.html","webpack:///./app/views/address.html","webpack:///./app/views/addressForm.html","webpack:///./app/views/badgeSelection.html","webpack:///./app/views/businessCardDetail.html","webpack:///./app/views/cart.html","webpack:///./app/views/checkout.html","webpack:///./app/views/checkoutOnly.html","webpack:///./app/views/collateral.html","webpack:///./app/views/collateralAdd.html","webpack:///./app/views/confirmation.html","webpack:///./app/views/dashboard.html","webpack:///./app/views/dataSales.html","webpack:///./app/views/dataSalesMailHouse.html","webpack:///./app/views/dataSalesPreview.html","webpack:///./app/views/dataSalesSummary.html","webpack:///./app/views/dataSalesTemplate.html","webpack:///./app/views/dataSalesTerms.html","webpack:///./app/views/documents.html","webpack:///./app/views/emailCampaigns.html","webpack:///./app/views/emailSurvey.html","webpack:///./app/views/event.html","webpack:///./app/views/eventBit.html","webpack:///./app/views/landing.html","webpack:///./app/views/leadDetail.html","webpack:///./app/views/leadDetailEditSurvey.html","webpack:///./app/views/leadDetailEditSurveyQuestion.html","webpack:///./app/views/leadFollowUp.html","webpack:///./app/views/leadUpload.html","webpack:///./app/views/leads.html","webpack:///./app/views/main.html","webpack:///./app/views/modalTemplate.html","webpack:///./app/views/moreInfo.html","webpack:///./app/views/myShows.html","webpack:///./app/views/navLink.html","webpack:///./app/views/productDetail.html","webpack:///./app/views/products.html","webpack:///./app/views/recommendation.html","webpack:///./app/views/shared/addtocart.html","webpack:///./app/views/shared/cart.html","webpack:///./app/views/shared/inputField.html","webpack:///./app/views/shared/pager.html","webpack:///./app/views/shared/summary.html","webpack:///./app/views/shop.html","webpack:///./app/views/shopDetail.html","webpack:///./app/views/survey.html","webpack:///./app/views/surveyCopy.html","webpack:///./app/views/surveyQuestion.html","webpack:///./app/views/surveys.html","webpack:///./app/views/upsell.html","webpack:///./app/views/videos.html","webpack:///./node_modules/@vimeo/player/dist/player.es.js","webpack:///./node_modules/html-loader/dist/runtime/getUrl.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/lodash/dist/lodash.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/rangy/lib/rangy-core.js","webpack:///./node_modules/rangy/lib/rangy-selectionsaverestore.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/textangularjs/dist/textAngular.umd.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","window","getEventCode","results","RegExp","exec","location","hash","length","taTools","angular","require","config","$stateProvider","$urlRouterProvider","$locationProvider","when","otherwise","hashPrefix","state","abstract","template","controller","ShowService","Search","SearchBase","Checkout","CheckoutBase","data","currentShow","leads","copy","surveys","survey","resources","surveyQuestion","url","templateUrl","controllerAs","MyEvents","getShows","then","now","Date","shows","addDays","date","days","result","setDate","getDate","beginDate","i","moveInDateMS","MoveInDate","BeginDate","current","past","future","pageTitle","feedbackName","AdditionalInfo","CurrentEvent","HasActiveSalesTier","getShowAdditionalInfo","showCode","ShowCode","showAdditionalInfo","$stateParams","getShow","showcode","HasActivations","hasActivations","activations","CollateralConfig","CollateralService","getCollateralConfig","collateralConfig","Collaterals","collaterals","ScrollToBottom","value","Collateral","$q","collateralId","getCollateral","filter","c","CollateralID","SWAPExhibitor","UserService","getSWAPExhibitor","HTMLTemplate","LeadFollowUpService","getTemplate","templateHtml","FollowUpConfig","getFollowUpConfig","followUpConfigs","Orders","OrderService","getOrders","orders","EmailCampaignOrders","a","Transactions","DataSalesListId","TransTypeCode","TransStatus","EventBitOrders","ProductCode","IsVoided","isSPOT","EventBitService","$state","$scope","ActiveUserProfile","self","this","showEmailCampaignsTab","showEventBitTab","showLeadPrizeTab","SWAPOnly","hide","currentState","$current","stateName","name","$watch","newValue","oldValue","redirectTo","Surveys","SurveyService","getSurveys","IsActive","questions","x","SurveyQuestions","push","sort","i1","i2","DisplayOrder","CurrentSurvey","CurrentSurveyQuestion","DemographicQuestions","DemographicService","getDemographics","demographics","TableName","CurrentDemographic","LeadSummaryData","LeadActivityService","getLeadSummary","leadSummary","LeadSourcesChartData","getLeadSources","parseChartData","leadSources","LeadDemographicChartData","getLeadsByDemographicQuestion","fieldDetailId","Id","leadDemographics","labels","series","LeadSurveyChartData","getLeadsBySurveyQuestion","surveyQuestionId","leadSurveys","LeadDaysChartData","getLeadsByDay","leadDays","Source","Count","LeadCollateral","getLeadCollateral","leadCollateral","reduce","acc","curr","LeadID","HasPurchasedEventBit","SSO","getSSO","sso","EmailCampaigns","DataSalesService","getEmailCampaigns","emailCampaigns","AttendeeListDownloads","getAttendeeListDownloads","attendeeListDownloads","FilterGroup","Name","FilterDetails","FilterDetail","description","String","Description","FilterPicks","FilterPick","Demographics","all","promises","Strategy","TargetShowCode","allDemographics","z","DataSalesAllowUserFilters","filterGroup","filterDetail","FieldName","FieldPicks","pickDesc","IsPickCodeDesc","PickCode","Locations","LeadService","getCountries","getAllStates","allLocations","CountryCode","countries","Value","Key","StateCode","states","allStates","DownloadDemographics","DownloadLocations","Templates","showCodes","indexOf","getTemplates","templates","y","bodyFields","BodyFields","KeyName","PrimaryID","Email","key","email","MessageConfigs","ItemValue","TemplateId","TemplateID","FeedbackSummary","Cart","DataSalesProduct","DataSalesCartItem","FieldTypeCode","LeadsCapturedBy","getLeadsCapturedBy","leadsCapturedBy","Countries","States","countryCode","filters","ContactInfo","getStates","SurveyAnswers","HasPurchasedDevKit","transaction","LeadsEmailInformation","getLeadsEmailInformation","leadsEmailInformation","BusinessCard","BusinessCardLeadService","getBusinessCardLead","businessCardLeads","ImageKey","ExportHeaders","LeadExportService","getHeaders","headers","Lead","getLeads","CollateralName","shift","DisplayName","SentBy","l","ContactID","SentDate","SendDate","Survey","getSurvey","surveyId","SurveyQuestion","getSurveyQuestion","questionId","HistoricalSurveys","getHistoricalSurveys","historicalSurveys","undefined","ngCart","Products","ProductsService","getProducts","products","PurchasedProductIds","productIds","ProductId","join","DataSalesProducts","getDataSalesProducts","dataSalesProducts","AllAvailableProducts","concat","p","getUpsell","upSellProducts","upsell","UpsellProducts","AllProducts","getItems","product","ProductPriceID","_id","toRet","j","$anchorScroll","$rootScope","EXSConfig","isRecommendationEvent","RecommendationEvents","toString","split","includes","hasActiveSalesTier","showActionWidget","dataLayer","PurchasedProducts","PriorShowCode","getPurchasedProducts","exhibitorId","ExhibitorId","purchasedProducts","RecommendedProducts","boothId","boothSize","regCnt","BoothList","showExhibitorBoothId","Math","ceil","getShowExhibitorBoothRecommendation","showExhibitorBoothID","boothWorkers","surveyBoothsize","showExhibitorBoothRecommendation","optimizeTag","Product","params","productsHash","Addresses","AddressService","getBillingAddresses","billingAddresses","CartTotal","totalCost","UserEmail","BadgeId","getEmail","connectKey","Errors","dataSalesValidation","errors","cartItems","getData","dataSalesTierTypeCode","timestamp","validate","dataSales","pciResult","auth","completeOrder","IsAuthorized","go","salesOrderId","SalesOrderId","pendingOrder","getOrder","resp","ConfirmationHtml","getConfirmationHtml","confirmations","productPriceId","TourHistory","$window","tourRaw","localStorage","getItem","tour","fromJson","save","setItem","toJson","ExcludedFieldPicks","getPreFilterFields","DataSalesTargetShowCode","preFilterFields","Op","IncludedFieldPicks","excludedPicks","toLowerCase","includedPicks","PickIDs","Location","PickCodes","Country","State","Filters","DataSalesConfig","getConfig","setSubmitted","MailHouse","mailHouse","Template","selectedTemplate","BodyHtml","iframe","document","getElementById","replace","Tag","contentWindow","body","innerHTML","write","next","$timeout","dataSalesConfig","dataSalesCartData","dataSalesProduct","enableTermsCheckbox","isEmail","isDownload","isMailHouse","isSet","DataSalesTierTypeCode","previous","termsForm","$setSubmitted","saveCart","$save","$valid","ExhibitorResources","ResourceService","getExhibitorResources","AllResources","getResources","subFolder","$provide","EnvironmentConfig","cfpLoadingBarProvider","includeSpinner","run","$location","$interval","ipCookie","topBar","session","returnURL","expire","utm","authCheckInProgress","reAuth","hideFeedbackWidget","event","element","path","ReturnURLPath","remove","setInterval","confirm","ignoreLoadingBar","finally","clearInterval","SiteRoot","$on","toState","toParams","fromState","fromParams","error","hasClass","removeClass","preventDefault","previousState","pageUrl","eventCode","attributes","route","pathname","slice","source","ExperientFeedback","statePath","charAt","toUpperCase","exfb","Application","Event","UserId","UserType","QuestionText","console","log","factory","set","val","sessionStorage","get","removeItem","HTMLEncode","str","aRet","iC","charCodeAt","AccountCtrl","userProfile","verifyEmail","oldPassword","newPassword","confirmNewPassword","waiting","hideOrders","orderHistory","chapterSize","pageSize","currentChapter","currentPage","selectedShow","changePassword","reject","validatePassword","password","user","extend","getOrderHistoryForShow","retrievingOrders","getConfirmationHtmlForOrder","confirmationHtml","open","html","AddressCtrl","addresses","checkout","editMode","editAddress","cartTotal","environmentConfig","boothList","currentEvent","addressControl","USA","CountryId","address","preferred","IsPreferred","addressForm","AddressTypeCode","alert","force","CountryName","oldPreferred","modified","BadgeSelectionCtrl","ID","d","badgeForm","activateDevKit","contactId","defer","promise","BusinessCardDetailCtrl","$filter","$sce","businesscard","exportHeaders","hasPurchasedEventBit","exportUrl","trustAsResourceUrl","filename","toJSON","filedata","filetype","localRating","Rating","search","collateral","sortDirection","ratingLeave","setRating","rating","saveBusinessCardLeads","businessCards","edit","postLeadsForExport","getExportCSV","btoa","RawDeflate","deflate","encodeURIComponent","setTimeout","submit","share","subject","TradeShowName","FirstName","LastName","Title","Company","Address","Phone","Notes","LeadDate","TimeZoneOffset","href","delete","deleteBusinessCardLead","CartCtrl","ECR","showCoupon","QuickShop","processQuickOrder","shop","processOrder","swapActivationUpsellProduct","productCode","showUpsell","extraConfirmationRecipient","productQuantity","discount","trim","empty","ProductDiscountID","limit","MaxAvailableQty","max","MaxDiscountsPerShow","min","MinQualifyingQty","price","DiscountedUnitPrice","addItem","ProductName","PackageTotalPrice","thumbnail","ProductImage","note","MoreInfoTypeCode","promoCode","validateCart","addressId","couponCode","getCouponCode","cart","getId","quantity","getQuantity","dataSalesListId","dataSalesTargetShowCode","targetShowCode","hasErrors","persistExtraConfirmationRecipient","CheckoutCtrl","modalFactory","getCart","doesOrderHaveEventBit","items","forEach","item","productIDList","find","PackageItemIDList","parseInt","_","some","CheckoutOnlyCtrl","OrderStatus","isPayOnly","OrderPurchases","ProductID","agreeToTerms","ebitAcknowledgement","processingOrder","processPendingOrder","isNumber","CollateralCtrl","replaceBreaks","collateralEmailBody","EmailBody","scrollTo","scrollHeight","saveCollateralConfig","form","editCollateral","CollateralAddCtrl","$upload","CollateralConfigID","exsConfig","activeUserProfile","isExternalBrowser","showUnableToUploadMessage","showToolTip","cType","URL","saveCollateral","FilePath","deleteCollateral","onFileSelect","$files","errorMessages","upload","file","success","ExceptionMessage","linkUrl","handleUploadRadioSelect","closeModal","ConfirmationCtrl","InAppPurchase","response","order","productsForGTM","gtmItem","gtmCategoryCode","OrderSummary","gtmSummary","CategoryCode","TotalAmount","Taxes","Quantity","CouponName","TotalPayments","TotalSalesTax","sendExtraConfirmation","returnToSWAP","injectedObject","done","WP","what","Re","shareActivation","print","execCommand","goToDashboard","DataSalesCtrl","$document","$tour","DataSalesExecuteContext","expressions","filterOptions","simple","nodes","operands","operator","startTour","include","values","applied","execCtx","end","start","filterGroupKey","tourNext","tourEnd","filterDetailKey","filterGroupName","cachedCount","count","showCount","hasSelections","getValues","obj","arr","finalize","dataSalesExecuteContext","FinalCount","DataSalesListID","finalExpressions","execDate","$broadcast","listSelect","operand","filterOption","detail","isActive","changeInclude","onFilterChange","changeOperator","applyFilter","editing","enabled","toggleFilterPick","target","checked","splice","getRandomNum","floor","random","none","removeOperand","nodeIndex","operandIndex","removeExpression","index","more","collapse","getFilterLimit","or","and","addFilter","import","parent","click","fileReader","FileReader","onload","$apply","JSON","parse","readAsText","export","downloadLink","blob","Blob","type","navigator","msSaveOrOpenBlob","msSaveBlob","attr","createObjectURL","append","debounce","clearTimeout","execute","cancel","getCachedCount","prop","prototype","call","Summary","CachedCount","DataSalesMailHouseCtrl","files","DataSalesAttachments","mailHouseForm","removeFile","DataSalesTemplateCtrl","UtilityFactory","dateOptions","datePicker","timePicker","emailForm","$parent","dashboard","ScheduledExecutionDate","getFullYear","getMonth","getHours","getMinutes","onDateChange","init","equals","today","clear","getTime","onTemplateChange","getPreview","showPreview","showEmailSpecification","allowedFileTypes","readAsDataURL","img","width","height","DataSalesExhibitorImage","tempUrl","webkitURL","Image","canvas","createElement","ctx","getContext","dataurl","mozImageSmoothingEnabled","webkitImageSmoothingEnabled","msImageSmoothingEnabled","imageSmoothingEnabled","drawImage","toDataURL","src","saveStrategy","strategy","activityFocus","strategyType","subjectLine","SubjectLine","primaryID","templateId","messageConfigs","keyName","itemValue","scheduledExecutionDate","ScheduledExecutionTime","toUTCString","reload","sendingTest","sendTestEmail","testEmails","emails","status","showTestModal","DocumentsCtrl","ordered","baseResources","paginated","resourceClicked","linkText","downloadUrl","EmailCampaignsCtrl","DataSalesExpression","isComplex","campaigns","exportType","ExecutionDate","StrategyType","ApprovalStatus","Transaction","ListInfo","ContextRaw","complex","campaign","refreshStrategy","getStrategy","getFeedbackSummary","strategyId","strategies","download","EmailSurveyCtrl","toAddress","fromAddress","additionalText","send","sendEmail","EventBitCtrl","LandingCtrl","leadSearch","showSalesforceModal","showSalesforceUnderConstructionModal","additionalInfo","isDemographicLoaded","currentDemographic","isSurveyLoaded","currentSurvey","currentSurveyQuestion","SPOTSummaryOptions","chart","bottomPinch","bottomWidth","label","format","block","dynamicHeight","minHeight","fill","scale","endDate","EndDate","SPOTSummaryChartData","preShowActions","visible","surveyCreated","Array","isArray","collateralUploaded","leadEmailScheduled","FollowUpType","onsiteShowActions","postShowActions","updateLeadData","chartData","day","demographic","summary","SPOTSummary","chartLabels","process","showSPOTChart","hasData","getSwapActivations","swapActivations","getBusinessCardLeads","CollateralFormatted","Spotted","LeadOwnerSpotted","NonLeadOwnerSpotted","MoreCaptureTimes","setUTCMilliseconds","mc","toISOString","getLeadDates","leadDates","showSPOT","downloadQR","showQrDownload","SWAPCodes","Set","hasQrProductCode","hasSWAPCode","has","selectDemographic","demo","asyncDemo","selectSurvey","defaultQuestion","selectSurveyQuestion","question","asyncSurveyQuestion","refresh","getSPOTSummary","eBitCompanySummary","onLeadSearch","which","onPickPrizeWinner","randomLead","LeadDetailCtrl","lead","lc","moreCaptureTimes","saveLeads","getDemoAnswer","answers","Contact","DemographicAnswers","ParentId","Response","b","getSurveyAnswer","answerCount","tiletype","Company2","Address2","Address3","City","ZipCode","PhoneExtension","Fax","RegistrantId","validateNote","deleteLeads","LeadDetailEditSurveyCtrl","buildAnswers","exists","SurveyQuestionTypeCode","firstQuestion","getFirstQuestion","answered","firstQuestionId","k","Number","seenQuestions","leadSeenQuestions","any","q","answer","questionsToShow","getQuestionAnswerComposite","allAnswers","LeadDetailEditSurveyQuestionCtrl","questionsAnswered","nextAction","BranchAction","NextQuestionId","prevQuestion","errorModalInfo","errorModalText","showSaveError","showErrorModalButtons","errorModalConfirmButtonText","onContinue","goToNextQuestion","branchedQuestionAlert","requiredQuestionAlert","requiredQuestionAlertDownstreamQuestions","changeBranchedQuestionAlert","importantQuestionText","importantQuestionAlert","isRequired","Priority","isImportant","uniqueBranchAnswers","sa","hasBranching","setAnswerValues","getCurrentAnswerIds","aid","setNextButtonText","answerId","hasAnswer","currentAnswers","NextButtonText","returnPromise","deleteAnswers","excluded","onlyId","setModel","theModel","getPreviousQuestion","setAnswer","SurveyAnswerTypeCode","Text","branchChanging","noLongerValidQuestions","startingAnswerIds","ai","changeOpenAnswer","newval","oldval","goBack","removeOldBranchQuestions","skipBranchingChange","currentAnswerIds","getNoLongerValidQuestions","validSurveyAnswerIds","accumulator","currentValue","otherSurveyAnswers","validAnswer","nv","LeadFollowUpCtrl","baseConfig","baseTemplate","saveFollowUpConfig","MessageText","FromCompany","FromAddress","FromCSZ","FromTitle","FromPhone","FromEmail","FromWebsite","LeadUploadCtrl","toggleTechRequirements","barcodes","siteRoot","uploadBarcodes","uploadMessages","LeadsCtrl","$http","hasPurchasedDevKit","filterOnly","leadsMsg","getBusinessCardLeadDates","ld","sld","pendingPredicate","contactType","collateralPredicate","leadDatePredicate","leadDate","filterDate","dateString","changeCheckbox","changeCountry","handleSalesforceIntegrationClick","toggleFilterOnly","parents","toggleButtonBar","showButtonBar","is","LeadType","clickSort","option","opt","LoginService","forgotPassword","show","exhibitor","header","sendForgotPasswordEmail","searchAccount","sendChangePasswordEmail","exhibitorID","Success","Data","NeedMoreInfo","EmailSent","found","getContactByEmailShowCodeExhibitorID","back","ChangePwdCtrl","focusPassword","inputType","pwdUser","getPwdUser","loc","substring","clearPwdUser","changeType","CompanyLoginCtrl","loginData","getCompanyLogin","helpObj","FullName","StreetAddress","CityStateZip","CompanyId","CompanyID","selectContact","selected","contact","selectedContact","Contacts","getHelp","RedirectUrl","UserName","EncodedPassword","sendGetHelp","getHelpThankYou","goHome","LoginCtrl","root","panels","ShowComp","SignIn","clearChoices","swapManualLogin","SWAPManualLogin","clickPanel","panel","hiddenPanels","messages","accountSearch","ModalController","$modalInstance","inputs","vm","isInitialized","dismiss","close","httpPromise","callback","apply","arguments","noop","$event","win","doc","images","title","head","closest","getElementsByTagName","countPrintAttempts","retryDelayMilliseconds","attemptPrint","areAllImagesLoaded","complete","focus","$inject","MoreInfoCtrl","cartItem","assist","MyShowsCtrl","events","accessCode","profile","modalWidth","filterSelections","MarketingSplash","showModal","selectShow","load","changeFilter","showFilter","addShow","NavCtrl","inEvent","hasCampaign","hasCollateral","codes","logout","ProductsCtrl","ngCartItem","upsellProducts","featuredProducts","IsFeatured","pastProducts","currentRecProductIds","boothSizeLimit","totalRecPrice","querySelectorAll","input","addEventListener","displayErrors","isRecommendationValid","isProductHistoryEmpty","isRecommendationEbitRep","isBoothListEmpty","isBoothList","quantities","added","prices","getThumbnail","image","packages","ProductTypeCode","sortedPackageItemIDList","lowestPricePkg","pkg","groups","groupBy","bundles","prev","startingPrice","imageUrl","ProductDescription","HTMLDescription","bundleOnChange","selectedItemId","selectedItem","onBoothIdChange","selectedBoothId","booth","isBundleEmpty","isEmpty","onClickShowProductDetail","onAdd","setQuantity","bodyTpl","bodyTemplate","profileCopy","AddrCSZ","swapProduct","CompanyAddress","PostalCode","ScheduleExecutionTime","ShowName","SignatureFullName","SignatureTitle","SignatureCompany","SignatureAddress","SignatureAddress2","SignatureAddrCSZ","SignatureEmail","SignaturePhone","SignatureFax","SignatureWebSite","DataSalesExhibitorBody","minAmount","DataSalesMinOrderAmount","setData","startsWith","MediaTypeCode","setTotalRecPrice","total","r","getPrice","existing","getTotal","existingTotal","relative","prod","info","updatePrice","newRecommendation","tempExhibitorId","tempBoothId","resetRec","totalItems","trustAsHtml","defaultQty","ProductMinQuantity","ProductRecQuantity","onAddAll","ShopCtrl","deadline","discountDeadline","postShowDataSalesBegin","invalidItems","showTermsOfUseModal","PreRegEndDate","DiscountDeadline","FullSetPostBeginDate","postShowDataSalesEnd","FullSetPostEndDate","postShowDataSalesDates","previousValue","currentIndex","setItems","cartItemData","areTermsAgreed","strategyStatus","campaignStrategyId","isNaN","SurveyCtrl","baseSurvey","isUsed","sq","IsUsed","existingSurveyNames","s","pageChangeOk","markQuestionInactive","deleteModalLinkedQuestions","showSurveyFixerUpper","redirect","saveSurvey","upClick","dest","destDisplayOrder","downClick","questionClick","triggerHandler","activePredicate","active","preview","getPreviewURL","previewURL","SurveyCopyCtrl","select","copySurvey","surveyData","SurveyID","copySurveys","sourceShowCode","destinationShowCode","SurveyQuestionCtrl","baseSurveyQuestion","answersToAdd","hasOther","otherAnswerText","availableQuestions","availableBranchedQuestions","EndSurvey","RemoveBranching","changeBranchAction","setNextQuestionIdByNaturalOrder","changeNextQuestion","nextQuestion","changeNextQuestionOther","otherNextQuestionId","otherBranchAction","changeBranchActionOther","other","changePriority","priority","prevPriority","answerFilter","addAnswer","SurveyQuestionId","hasActiveAnswers","questionName","$setValidity","newOther","unsavedQuestion","SurveysCtrl","editDefault","baseSurveys","surveyClick","ContactId","filterQuestions","surveyQuestions","clickDefault","isDefault","IsDefault","SwitchShowCtrl","isArchived","IsArchived","myEvents","company","showDetailsModal","switchEvent","VideosController","getVideoProgressAsWholeNumber","percentAsDecimal","pushEventToGoogleTagManagerDataLayer","player","eventName","eventData","getPlayerInformation","getVideoUrl","getVideoTitle","videoIdPromise","getVideoId","Promise","playerInfoResult","video_provider","VIDEO_PROVIDER","video_url","video_title","video_id","seconds","duration","percent","videoConfig","thumbnailImage","playVideo","Player","autopause","autoplay","play_button_position","on","loaded","progressPercentThresholds","timestampsPushed","progressThreshold","progressHasBeenReached","updateEventHasNotBeenFired","progress","progressAsDecimal","restrict","scope","addressControls","link","attrs","adrForm","modePrefix","$setPristine","$setUntouched","create","deleteMe","hostname","bindToController","directive","epAutoFocus","$parse","model","elem","ctrl","characterCounterCtrl","epCharacterCounterTarget","options","picker","pickadate","epEventBit","resizeHeight","style","postMessage","hostScrollPosition","scrollX","scrollY","exlTemplate","$compile","content","contents","activeFilters","filtering","getCount","recurse","defaultValue","responseValue","FilterCtrl","onclick","f","stopPropagation","currentFilter","optionKey","optionValue","responseKey","predicate","getResponse","filterCtrl","epFilterGroup","anchor","children","defaultText","heading","text","epFilterOption","change","changeEventObject","filterGroupCtrl","reset","ignoreGTM","clearing","Group","Label","onchange","internal","D3Funnel","draw","inputField","bindModel","bindDisabled","fieldName","typeahead","typeaheadMinLength","typeaheadItems","isDisabled","fieldType","masked","ngModel","ngDisabled","focused","tabIndex","onblur","leaving","onfocus","bind","focusNextTabbable","tabs","useNext","disabled","loginErrors","SHOW","logErrors","errorMessage","loginForm","userName","allowChangePassword","changePasswordFunc","defaultToSwap","hideActivationLogin","hideUsername","formLogin","nextDisabled","showUsernameLogin","showUsernameActivationLogin","isFunction","showForgotPassword","userNameActivationValidation","usernameOrActivationCode","isActivationCode","test","switchForms","activationCode","userNameLogin","username","activationLogin","accessKey","badgeKey","keepErrors","showActivationLogin","focusUsername","focusActivationCode","lookupShowCompany","scLookup","validShow","focusShow","getShowsByName","showName","dupeShows","showList","s1","newShow","openDate","ShowOpenDate","month","valid","uniq","loadingCompanies","getExhibitorsByShowCode","exhibitors","exhibitorList","newExhibitor","BoothNumbers","ExhibitorName","focusExhibitor","exhibitorName","validExhibitor","moreThanOne","navLink","isDropdown","$onInit","isDefined","buildLinkClassObject","removeAttr","transclude","service","textarea","css","position","opacity","toCopy","successful","err","prompt","ngCopy","ngClickCopy","scrollTop","setCurrentPage","page","numberOfPages","setCurrentChapter","chapter","numberOfChapters","numberOfChapterPages","n","getNumberAsArray","num","getResultString","productDetail","pd","modalOnAdd","el","modalSetQuantity","htmlDesc","HTMLDescriptionDetail","getProductImages","productID","productImages","epPromiseButton","base","dirty","waitText","wait","button","waitChild","oldText","toggleClass","timeout","cssClass","epScrollBottom","isBottom","innerHeight","inverse","clickEvent","ParentSortController","sortInverse","epSticky","elementPosition","getBoundingClientRect","top","placeHolder","after","pageYOffset","prepend","addClass","before","off","pickatime","caseInsensitive","$validators","unique","modelValue","viewValue","$isEmpty","$templateRequest","$modal","defaultControllerAs","modalStack","defaultPrevented","dismissAllModals","displayConfirm","msg","modalCssClass","footerTemplate","modalcss","opts","modalResult","urls","modal","bodyTemplateUrl","footer","footerTemplateUrl","getTrustedResourceUrl","responses","reControllerAs","modalTpl","modalInstance","windowClass","keyboard","backdrop","closed","popModalStack","dismissed","temp","pop","AWS3CollateralRootURL","AWS3RootURL","searchFilter","match","props","searchText","array","s2","s1Date","s2Date","zip_DeflateConfiguration","good_length","max_lazy","nice_length","max_chain","zip_DeflateBuffer","len","ptr","zip_OUTBUFSIZ","zip_INSERT_STRING","zip_ins_h","zip_H_SHIFT","zip_window","zip_strstart","zip_MIN_MATCH","zip_HASH_MASK","zip_hash_head","zip_head1","zip_prev","zip_WMASK","zip_head2","zip_SEND_CODE","tree","zip_send_bits","fc","dl","zip_SMALLER","m","zip_depth","zip_longest_match","cur_match","matchp","chain_length","zip_max_chain_length","scanp","best_len","zip_prev_length","zip_MAX_DIST","zip_NIL","strendp","zip_MAX_MATCH","scan_end1","scan_end","zip_good_match","zip_match_start","zip_fill_window","zip_window_size","zip_lookahead","zip_WSIZE","zip_block_start","zip_HASH_SIZE","zip_eofile","zip_read_buff","zip_ct_init","bits","dist","zip_static_dtree","zip_l_desc","dyn_tree","zip_dyn_ltree","static_tree","zip_static_ltree","extra_bits","zip_extra_lbits","extra_base","zip_LITERALS","elems","zip_L_CODES","max_length","zip_MAX_BITS","max_code","zip_d_desc","zip_dyn_dtree","zip_extra_dbits","zip_D_CODES","zip_bl_desc","zip_bl_tree","zip_extra_blbits","zip_BL_CODES","zip_MAX_BL_BITS","zip_LENGTH_CODES","zip_base_length","zip_length_code","zip_base_dist","zip_dist_code","zip_bl_count","zip_gen_codes","zip_bi_reverse","zip_init_block","zip_pqdownheap","v","zip_heap","zip_heap_len","zip_scan_tree","curlen","prevlen","nextlen","max_count","min_count","zip_send_tree","zip_qoutbuf","zip_outcnt","zip_new_queue","zip_qhead","zip_qtail","zip_outoff","zip_outbuf","zip_free_queue","zip_initflag","zip_complete","zip_d_buf","zip_l_buf","zip_bi_buf","zip_bi_valid","zip_prev_match","zip_match_available","zip_match_length","zip_max_lazy_match","zip_compr_level","zip_heap_max","zip_flag_buf","zip_last_lit","zip_last_dist","zip_last_flags","zip_flags","zip_flag_bit","zip_opt_len","zip_static_len","zip_deflate_data","zip_deflate_pos","zip_STORED_BLOCK","zip_STATIC_TREES","zip_DYN_TREES","zip_DEFAULT_LEVEL","zip_INBUFSIZ","zip_INBUF_EXTRA","zip_BITS","zip_LIT_BUFSIZE","zip_DIST_BUFSIZE","zip_MIN_LOOKAHEAD","zip_HEAP_SIZE","zip_DeflateCT","zip_DeflateTreeDesc","zip_bl_order","zip_configuration_table","zip_put_byte","zip_put_short","zip_D_CODE","zip_deflate_fast","zip_deflate_better","zip_init_deflate","zip_qcopy","zip_build_tree","zip_build_bl_tree","zip_send_all_trees","zip_flush_block","zip_ct_tally","zip_compress_block","zip_Buf_size","zip_bi_windup","w","buff","offset","flush","buff_size","next_code","desc","stree","node","xnew","zip_gen_bitlen","h","xbits","extra","overflow","max_blindex","lcodes","dcodes","blcodes","rank","eof","opt_lenb","static_lenb","stored_len","out_length","in_length","dcode","ltree","dtree","lx","dx","fx","flag","res","level","aout","cbuf","fromCharCode","feebackName","inCart","itemInCart","maxTransactionQuantity","upsellSwapProduct","calc","validateCoupon","calculating","getSubTotal","getCartSummary","accum","hasAddress","CouponCode","couponName","TotalBalance","totalPrice","TotalPrice","totalDiscountOther","TotalDiscountOther","totalDiscountCoupon","TotalDiscountCoupon","totalFees","TotalFees","totalTax","TotalTax","readonly","addSwapActivations","UnitPrice","applyCoupon","oldCouponCode","setCouponCode","store","isObject","$restore","$cart","newItem","itemId","getDiscountTotal","getDiscountedPrice","setCart","pred","cartSummary","_quantity","storedCart","_self","_name","_price","_discount","_data","stringify","$injector","setId","setName","setPrice","setDiscount","qty","getName","parseFloat","getDiscount","adjustedAmount","discountDelegate","app","provider","closeButtonHtml","$get","keyOrHash","_results","ngModalDefaults","dialogTitle","onClose","setupCloseButton","setupStyle","dialogStyle","hideModal","newVal","oldVal","$templateCache","requireContext","templatePath","put","ApiService","endpoint","deduped","isDupe","a1","a2","post","$log","memoization","memoized","memo","request","method","message","endpointConfig","del","extendBusinessCardLeads","cards","ContactTypeCode","CaptureDate","businessCard","People","UpdatedPeople","bcl","toReturn","shortDate","shortLeadDate","constant","postBackUrl","redirectUrl","PromoCode","SourceCode","cIndex","getAttendeeListExport","dataSalesCartItem","fields","IsRequired","filterExpression","mediaTypeCode","PlanRoot","PlanCombine","Min","Max","Sources","Field","Values","PlanExclude","Exclude","PlanFilterField","context","expression","planCombine","nodePlanCombine","operatorExclude","operandPlanFilterField","DiscountService","existingTransactions","existingDiscount","t","ProductDiscountId","amtItemAdjustment","totalQualifyQty","qtyRatio","extendLead","getDevKitActivationCode","activationCodes","hasDevKit","getEventBitCompanySummary","otherLabel","injector","invoke","columns","dwellTimeColumns","DwellTimes","LocationID","names","dupes","getExport","row","TotalMinutes","exportData","csv","replaceAll","Messages","PwdUser","CompanyLogin","clearCompanyLogin","displayMode","from","checkBranchingRecursive","questionsList","visited","branchValid","distinctNextQuestionIds","cleanUpNextQuestionId","sortQuestionsList","questionList","q1","q2","getNextQuestionByAnswerId","nextQuestionId","buildBranchByAnswerRecursive","questionsInBranch","currentQuestion","qi","getSurveyQuestions","saveSurveyQuestion","surveysQuestion","getSurveyAnswers","surveyAnswers","addSurveyAnswers","saveSurveyAnswer","validateSurveyBranching","returnQuestions","hasDownlineRequiredQuestions","hasRequired","required","checkRequiredRecursive","sortedQuestions","alongTheWay","last","getLastSeen","questionAnswer","qAnswers","qa","addQuestionToAnswered","atw","answerIds","currentQuestionId","lastSeenQuestions","prevAnswerId","currentAnswerId","questionsInPrevBranch","questionsInNewBranch","newNextQuestion","nq","___HTML_LOADER_REPLACER_0___","___HTML_LOADER_GET_SOURCE_FROM_IMPORT___","___HTML_LOADER_IMPORT_0___","___HTML_LOADER_IMPORT_1___","___HTML_LOADER_REPLACER_1___","ownKeys","object","enumerableOnly","symbols","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_regeneratorRuntime","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","methodName","return","TypeError","ContinueSentinel","record","tryCatch","resultName","nextLoc","sent","_sent","dispatchException","abrupt","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","iter","reverse","skipTempReset","stop","rootRecord","rval","exception","handle","caught","hasCatch","hasFinally","finallyEntry","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Map","Wrapper","_assertThisInitialized","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","hint","prim","toPrimitive","isNode","global","getMethodName","substr","isVimeoUrl","isVimeoEmbed","getVimeoUrl","oEmbedParameters","idOrUrl","isFinite","subscribe","onName","offName","eventNames","evName","arrayIndexOfSupport","postMessageSupport","hasDefine","commonjsGlobal","globalThis","WeakMap","prefix","rand","checkInstance","definition","builtInProp","cycle","first","ToString","timer","setImmediate","Item","schedule","scheduling_queue","add","drain","isThenable","_then","o_type","notify","chain","ret","cb","notifyIsolated","failure","triggered","def","def_wrapper","MakeDefWrapper","iteratePromises","resolver","rejecter","idx","MakeDef","executor","__NPO__","PromisePrototype","msgs","npo_src","callbackMap","storeCallback","playerCallbacks","getCallbacks","removeCallback","parseMessageData","warn","ieVersion","userAgent","origin","processData","param","callbacks","getOEmbedParameters","getAttribute","createEmbed","_ref","div","appendChild","firstChild","setAttribute","querySelector","getOEmbedData","videoUrl","domain","_i","_customDomains","endsWith","xhr","XDomainRequest","XMLHttpRequest","json","responseText","domain_status_code","onerror","initializeEmbeds","handleError","elements","checkUrlTimeParam","VimeoCheckedUrlTimeParam","iframes","_loop","isValidMessageSource","videoId","matches","sec","decodeURI","setCurrentTime","eventNameMap","screenfull","defaultOptions","role","autoPlayMuted","allowedDrift","maxAllowedDrift","minCheckInterval","maxRateAdjustment","maxTimeToCatchUp","TimingSrcConnector","_EventTarget","_inherits","subClass","superClass","_updatePlayer","_updateTimingObject","_init","_super","_player","timingObject","_this","logger","_callee","newAdjustment","newPlaybackRate","_context","speedAdjustment","getPlaybackRate","t0","t1","t2","t3","setPlaybackRate","_x","_x2","dispatchEvent","_callee2","playerUpdater","positionSync","timingObjectUpdater","_this2","_context2","waitForTOReadyState","updatePlayer","maintainPlaybackPosition","updateTimingObject","_x3","_x4","_x5","_callee3","_context3","getCurrentTime","getPaused","t4","velocity","update","_x6","_x7","_callee5","_context5","_timingObject$query","query","pause","play","_ref2","_callee4","_context4","setMuted","err2","_x11","_x8","_x9","_x10","_this3","syncInterval","check","_ref3","_callee6","diff","diffAbs","adjustment","_context6","abs","adjustSpeed","sign","interval","_this$logger","readyState","once","EventTarget","playerMap","readyMap","jQuery","nodeType","ownerDocument","defaultView","nodeName","_window","exitFullscreen","readyPromise","_onMessage","isReadyEvent","isPingResponse","oldElement","_originalElement","newElement","isEnabled","exit","fullscreenchangeHandler","isFullscreen","ready","_setTimingSrc","_this4","callMethod","time","language","kind","_this5","removeAttribute","parentNode","removeChild","removeEventListener","camera","color","colors","nullPromise","colorPromises","currentTime","loop","muted","playbackRate","quality","volume","connector","_this6","fnMap","fullscreenchange","fullscreenerror","onFullScreenEntered","documentElement","requestFullscreen","onFullScreenExit","fullscreenElement","fullscreenEnabled","VimeoPlayerResizeEmbeds_","parentElement","paddingBottom","bottom","VimeoSeoMetadataAppended","__esModule","default","maybeNeedQuotes","noGlobal","isWindow","flat","class2type","fnToString","ObjectFunctionString","support","preservedScriptAttributes","nonce","noModule","DOMEval","script","toType","selector","isArrayLike","jquery","toArray","pushStack","merge","prevObject","each","eq","even","grep","_elem","odd","copyIsArray","clone","deep","isPlainObject","expando","isReady","proto","Ctor","isEmptyObject","globalEval","makeArray","inArray","second","invert","callbackExpect","guid","dir","until","matched","truncate","siblings","nextSibling","Sizzle","funescape","escape","nonHex","high","fcssescape","ch","asCodePoint","unloadHandler","setDocument","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","rcssescape","inDisabledFieldset","addCombinator","childNodes","els","seed","nid","newSelector","newContext","getElementsByClassName","qsa","testContext","toSelector","cssSupportsSelector","CSS","supports","qsaError","cache","cacheLength","markFunction","assert","addHandle","handler","attrHandle","siblingCheck","cur","sourceIndex","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","subWindow","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","hasCompare","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","preFilter","excess","unquoted","nodeNameSelector","pattern","_argument","forward","ofType","xml","uniqueCache","outerCache","useCache","lastChild","uniqueID","pseudo","setFilters","matcher","unmatched","lang","elemLang","activeElement","hasFocus","selectedIndex","_matchIndexes","radio","checkbox","tokens","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","matcherIn","matcherOut","matcherFromGroupMatchers","elementMatchers","setMatchers","superMatcher","outermost","matchedCount","setMatched","contextBackup","byElement","dirrunsUnique","bySet","parseOnly","soFar","preFilters","cached","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","token","compiled","rneedsContext","isXMLDoc","escapeSelector","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","rparentsprev","parseHTML","guaranteedUnique","sibling","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","fail","Callbacks","fire","locked","fired","firing","queue","firingIndex","memory","stopOnFalse","disable","lock","fireWith","Deferred","func","tuples","always","deferred","pipe","fns","newDefer","tuple","returned","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","that","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","singleValue","updateFunc","resolveContexts","resolveValues","remaining","primary","rerrorNames","readyList","stack","readyException","completed","readyWait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","uid","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","isHiddenWithinTree","display","isAttached","pnum","rcssNum","cssExpand","composed","getRootNode","adjustCSS","valueParts","tween","adjusted","maxIterations","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","createDocumentFragment","checkClone","cloneNode","noCloneChecked","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","attached","fragment","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","types","one","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopImmediatePropagation","trigger","handleObjIn","eventHandle","handlers","namespaces","origType","elemData","dispatch","bindType","handleObj","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","noBubble","beforeunload","returnValue","isDefaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","insertBefore","replaceWith","replaceChild","appendTo","prependTo","insertAfter","original","insert","getStyles","opener","getComputedStyle","swap","old","pixelPositionVal","boxSizingReliableVal","scrollboxSizeVal","pixelBoxStylesVal","reliableTrDimensionsVal","reliableMarginLeftVal","container","rnumnonpx","rcustomProp","rboxStyle","rtrimCSS","computeStyleTests","divStyle","cssText","roundPixelMeasures","marginLeft","right","offsetWidth","measure","round","curCSS","computed","isCustomProp","getPropertyValue","pixelBoxStyles","minWidth","maxWidth","addGetHookIf","conditionFn","hookFn","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trStyle","trChild","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","delta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","origName","setProperty","scrollboxSizeBuggy","left","margin","padding","border","suffix","expand","expanded","parts","propHooks","eased","pos","step","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","hidden","requestAnimationFrame","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","doAnimation","optall","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","checkOn","optSelected","radioValue","boolHook","rfocusable","nType","attrHooks","bool","attrNames","getter","lowercaseName","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","classNames","curValue","finalValue","stateVal","isValidValue","stopPropagationCallback","rreturn","rfocusMorph","valHooks","optionSet","focusin","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","rbracket","parseXML","parserErrorElem","DOMParser","parseFromString","rCRLF","rsubmitterTypes","rsubmittable","traditional","valueOrFunction","buildParams","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","protocol","contentType","accepts","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","abort","statusText","finalText","crossDomain","urlAnchor","host","hasContent","uncached","ifModified","beforeSend","nativeStatusText","isSuccess","ct","finalDataType","firstDataType","conv2","conv","dataFilter","throws","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhrSuccessStatus","0","1223","xhrSupported","oldCallbacks","cors","errorCallback","xhrFields","onabort","ontimeout","onreadystatechange","responseType","binary","scriptAttrs","charset","scriptCharset","evt","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curCSSTop","curTop","curOffset","curCSSLeft","curElem","curLeft","curPosition","using","rect","pageXOffset","offsetParent","parentOffset","Height","Width","defaultExtra","funcName","unbind","undelegate","hover","fnOver","fnOut","_jQuery","proxy","holdReady","hold","parseJSON","isNumeric","_$","$","noConflict","arrayPool","objectPool","idCounter","keyPrefix","largeArraySize","maxPoolSize","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEsTemplate","reFlags","reFuncName","reInterpolate","reLeadingSpacesAndZeros","reNoMatch","reThis","reUnescapedString","contextProps","templateCounter","argsClass","arrayClass","boolClass","dateClass","funcClass","numberClass","objectClass","regexpClass","stringClass","cloneableClasses","debounceOptions","objectTypes","stringEscapes","freeModule","freeGlobal","baseIndexOf","fromIndex","cacheIndexOf","cachePush","typeCache","charAtCallback","compareAscending","ac","criteria","bc","mid","getObject","escapeStringChar","getArray","releaseArray","releaseObject","number","runInContext","defaults","pick","arrayRef","objectProto","oldDash","reNative","isNative","nativeCreate","nativeIsArray","nativeIsFinite","nativeIsNaN","nativeKeys","nativeMax","nativeMin","nativeParseInt","nativeRandom","ctorByClass","lodash","lodashWrapper","chainAll","__chain__","__wrapped__","baseBind","bindData","partialArgs","thisArg","bound","thisBinding","baseCreate","setBindData","baseClone","isDeep","stackA","stackB","isObj","lastIndex","isArr","initedStack","assign","forOwn","objValue","baseCreateCallback","argCount","identity","__bindData__","funcNames","funcDecomp","baseCreateWrapper","bitmask","partialRightArgs","arity","isBind","isBindKey","isCurry","isCurryBound","baseDifference","getIndexOf","isLarge","baseFlatten","isShallow","isStrict","isArguments","valIndex","valLength","resIndex","baseIsEqual","isWhere","otherClass","aWrapped","bWrapped","ctorA","ctorB","size","forIn","baseRandom","baseUniq","isSorted","seen","createAggregator","createCallback","createWrapper","isPartial","isPartialRight","escapeHtmlChar","htmlEscapes","WinRTError","templateSettings","shimIsPlainObject","unescapeHtmlChar","htmlUnescapes","reEscapedHtml","reUnescapedHtml","guard","argsIndex","argsLength","ownIndex","ownProps","forOwnRight","functions","objProto","isString","countBy","every","forEachRight","indexBy","pluck","noaccum","reduceRight","shuffle","where","sortedIndex","rest","low","zip","zipObject","maxTimeoutId","stamp","timeoutId","trailingCall","leading","lastCalled","maxWait","trailing","leadingCall","isCalled","maxDelayed","delayed","mixin","methodNames","isFunc","radix","property","wrapperValueOf","at","bindAll","funcs","bindKey","compact","compose","curry","difference","flatten","forInRight","pairs","intersection","caches","trustIndexOf","outer","mapValues","memoize","sources","baseMerge","stackLength","Infinity","omit","ran","partial","partialRight","pull","range","sortBy","tap","interceptor","throttle","times","transform","union","without","wrapper","xor","collect","drop","eachRight","methods","tail","unzip","cloneDeep","findIndex","findKey","findLast","findLastIndex","findLastKey","isBoolean","isDate","isElement","isEqual","isNull","isRegExp","isUndefined","lastIndexOf","floating","noMin","noMax","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","evaluate","variable","escapeValue","interpolateValue","esTemplateValue","evaluateValue","sourceURL","hasVariable","unescape","uniqueId","detect","findWhere","foldl","foldr","inject","sample","take","callbackable","VERSION","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","marker","nextTick","browser","env","argv","version","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","OBJECT","FUNCTION","UNDEFINED","domRangeProperties","domRangeMethods","textRangeProperties","textRangeMethods","isHostMethod","isHostObject","isHostProperty","createMultiplePropertyTest","testFunc","areHostMethods","areHostObjects","areHostProperties","isTextRange","getBody","modules","isBrowser","util","api","initialized","supported","features","alertOnFail","alertOnWarn","preferTextRange","autoInitialize","rangyAutoInitialize","consoleLog","alertOrLog","shouldAlert","reason","createOptions","optionsParam","arrayLike","eventType","listener","initListeners","getErrorDesc","testRange","implementsDomRange","implementsTextRange","createRange","createTextRange","moduleName","Module","deprecationNotice","deprecated","replacement","createAliasForDeprecatedMethod","addInitListener","shimListeners","shim","addShimListener","createMissingNativeApi","dependencies","initializer","createModule","initFunc","newModule","RangePrototype","SelectionPrototype","requiredModuleNames","requiredModule","createError","createCoreModule","rangePrototype","selectionPrototype","UNDEF","textNode","arrayContains","isHtmlNamespace","ns","getNodeIndex","previousSibling","getNodeLength","getCommonAncestor","node1","node2","ancestors","isAncestorOf","ancestor","descendant","selfIsAncestor","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","precedingNode","nextNode","splitDataNode","positionsToPreserve","newNode","deleteData","getDocument","getWindow","getIframeDocument","iframeEl","getIframeWindow","getContentDocument","tagName","getRootContainer","comparePoints","nodeA","offsetA","nodeB","offsetB","nodeC","childA","childB","crashyTextNodes","isBrokenNode","inspectNode","idAttr","fragmentFromNodeChildren","child","getComputedStyleProperty","propName","currentStyle","createTestElement","contentEditable","bodyFirstChild","removeNode","NodeIterator","_current","hasNext","createIterator","DomPosition","DOMException","codeName","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","dom","isNonTextPartiallySelected","startContainer","endContainer","getRangeDocument","getRangeRoot","getBoundaryBeforeNode","getBoundaryAfterNode","insertNodeAtPosition","firstNodeInserted","rangesIntersect","rangeA","rangeB","touchingIsIntersecting","assertRangeValid","startComparison","startOffset","endOffset","endComparison","cloneSubtree","partiallySelected","frag","subIterator","isPartiallySelectedSubtree","getSubtreeIterator","iterateSubtree","rangeIterator","iteratorState","it","subRangeIterator","deleteSubtree","extractSubtree","getNodesInRange","nodeTypes","filterNodeTypes","regex","filterExists","RangeIterator","sc","ec","clonePartiallySelectedTextNodes","collapsed","so","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","subRange","cloneRange","Range","updateBoundaries","beforeAfterNodeTypes","rootContainerNodeTypes","readonlyNodeTypes","insertableNodeTypes","surroundNodeTypes","createAncestorFinder","getDocumentOrFragmentContainer","getReadonlyAncestor","getDocTypeNotationEntityAncestor","getElementAncestor","assertNoDocTypeNotationEntityAncestor","allowSelf","assertValidNodeType","invalidTypes","assertValidOffset","assertSameDocumentOrFragment","assertNodeNotReadOnly","assertNode","isValidOffset","isRangeValid","styleEl","htmlParsingConforms","createContextualFragment","fragmentStr","splitRangeBoundaries","startEndSame","setStartAndEnd","rangeToHtml","cloneContents","rangeProperties","s2s","s2e","e2e","e2s","n_b","n_a","n_b_a","n_i","compareBoundaryPoints","how","prefixA","prefixB","insertNode","setStartBefore","canSurroundContents","boundariesInvalid","surroundContents","extractContents","hasChildNodes","selectNode","textParts","compareNode","comparePoint","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersectionRange","setStart","setEnd","unionRange","containsNode","allowPartial","containsNodeContents","containsRange","containsNodeText","nodeRange","textNodes","getNodes","lastTextNode","collapseBefore","setEndBefore","collapseAfter","setStartAfter","getBookmark","containerNode","preSelectionRange","selectNodeContents","moveToBookmark","bookmark","charIndex","nodeStack","foundStart","nextCharIndex","rangesEqual","isValid","copyComparisonConstantsToObject","START_TO_START","START_TO_END","END_TO_END","END_TO_START","NODE_BEFORE","NODE_AFTER","NODE_BEFORE_AND_AFTER","NODE_INSIDE","copyComparisonConstants","createRangeContentRemover","remover","boundaryUpdater","boundary","createPrototypeRange","createBeforeAfterNodeSetter","isBefore","isStart","setRangeStart","setRangeEnd","F","setBoundary","setEndAfter","deleteContents","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","mergeForward","appendData","mergeBackward","nodeLength","insertData","normalizeStart","endNode","startNode","collapseToPoint","updateCollapsedAndCommonAncestor","r1","r2","DomRange","WrappedRange","WrappedTextRange","rangeProto","updateRangeProperties","nativeRange","updateNativeRange","startMoved","endMoved","nativeRangeDifferent","testTextNode","oppositeName","range2","createNativeRange","getTextRangeContainerElement","textRange","parentEl","duplicate","startEl","endEl","startEndContainer","textRangeIsCollapsed","compareEndPoints","getTextRangeBoundaryPosition","wholeRangeContainerElement","isCollapsed","startInfo","workingRange","containerElement","canHaveHTML","boundaryPosition","nodeInfo","workingNode","comparison","workingComparisonType","previousNode","boundaryNode","childNodeCount","moveToElementText","setEndPoint","tempRange","rangeLength","moveStart","createBoundaryTextRange","boundaryParent","boundaryOffset","nodeIsDataNode","startBoundary","rangeContainerElement","rangeToTextRange","startRange","endRange","toTextRange","globalObj","createRangyRange","checkSelectionRanges","BOOLEAN","NUMBER","getNativeSelection","selectionIsCollapsed","CONTROL","isDirectionBackward","WrappedSelection","getWinSelection","winParam","getSelection","getDocSelection","winSelectionIsBackward","backward","anchorNode","anchorOffset","focusNode","focusOffset","implementsWinGetSelection","implementsDocSelection","useDocumentSelection","isSelectionValid","nativeSel","testSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasSetBaseAndExtent","selectionHasRangeCount","rangeCount","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","addRangeBackwardToNative","nativeSelection","addRange","getNativeRange","originalSelectionRangeCount","selectionHasMultipleRanges","originalSelectionRanges","originalSelectionBackward","getRangeAt","testEl","removeAllRanges","chromeMatch","appVersion","implementsControlRange","testControlRange","createControlRange","updateAnchorAndFocusFromRange","anchorPrefix","focusPrefix","updateAnchorAndFocusFromNativeSelection","updateEmptySelection","_ranges","updateType","rangeContainsSingleElement","rangeNodes","getSingleElementFromRange","updateFromTextRange","wrappedRange","updateControlSelection","docSelection","controlRange","addRangeToControlSelection","rangeElement","newControlRange","getSelectionRangeAt","deleteProperties","detached","cachedRangySelections","actOnCachedSelection","action","docSel","selProto","createControlSelection","ranges","addRangeBackward","direction","previousRangeCount","clonedNativeRange","selectionIsBackward","setRanges","refreshSelection","checkForChanges","oldRanges","oldAnchorNode","oldAnchorOffset","removeRangeManually","getAllRanges","removeRange","removed","isBackward","isBackwards","rangeTexts","assertNodeInSameDocument","setSingleRange","collapseToStart","collapseToEnd","selectAllChildren","setBaseAndExtent","deleteFromDocument","eachRange","callMethodOnEachRange","createStartOrEndSetter","changeEachRange","rangeBookmarks","selRanges","rangeBookmark","saveRanges","restoreRanges","rangeHtmls","getNativeTextRange","rangeInspects","detachAll","Selection","docReady","loadHandler","rangy","markerTextChar","gEBI","insertRangeBoundaryMarker","atStart","markerId","markerEl","boundaryRange","lineHeight","setRangeBoundary","compareRanges","saveRange","startMarkerId","endMarkerId","restoreRange","rangeInfo","normalize","rangeInfos","saveSelection","restored","restoreSelection","savedSelection","preserveDirection","removeMarkerElement","removeMarkers","nextHandle","tasksByHandle","currentlyRunningATask","registerImmediate","channel","attachTo","clearImmediate","runIfPresent","task","installPostMessageImplementation","onGlobalMessage","messagePrefix","canUsePostMessage","postMessageIsAsynchronous","oldOnMessage","importScripts","onmessage","MessageChannel","port1","port2","a0","b1","validElementString","registerTextAngularTool","toolDefinition","buttontext","iconclass","forceTextAngularSanitize","keyMappings","toolbar","classes","focussed","toolbarGroup","toolbarButton","toolbarButtonActive","textEditor","htmlEditor","defaultTagAttributes","textEditorSetup","$element","htmlEditorSetup","defaultFileDropHandler","insertAction","reader","customAttribute","renderLogic","tooltip","pre","ul","ol","quote","undo","redo","bold","italic","underline","strikeThrough","justifyLeft","justifyRight","justifyFull","justifyCenter","indent","outdent","insertImage","dialogPrompt","hotkey","insertVideo","insertLink","editLink","reLinkButton","unLinkButton","targetToggle","wordcount","charcount","taTranslations","imgOnSelectAction","editorScope","finishEdit","updateTaBindtaTextElement","hidePopover","displayElements","popover","popoverContainer","buttonGroup","fullButton","halfButton","quartButton","resetButton","floatLeft","floatRight","floatNone","showPopover","showResizeOverlay","aOnSelectAction","urlLink","extractYoutubeVideoId","re","taRegisterTool","taSelection","taToolFunctions","$sanitize","taOptions","gv","$$minErr","tooltiptext","$editor","switchView","activeState","showHtml","_retActiveStateFunction","queryFormatBlockState","headerAction","wrapSelection","queryCommandState","commandKeyCode","commonElement","selectedElements","elementsSeen","possibleNodes","getSelectionElement","getAllSelectedElements","removeListElements","pe","prevElement","liElem","newElem","recursiveRemoveClass","blockJavascript","imageLink","setSelectionAfterElement","embed","onElementSelect","urlPrompt","onlyWithAttrs","textElement","workingHTML","noOfWords","sourceText","innerText","noOfChars","textAngularVersion","_browserDetect","ie","undef","webkit","isFirefox","performance","stripHtmlToText","getDomFromHtml","mozNow","msNow","oNow","webkitNow","BLOCKELEMENTS","LISTELEMENTS","VALIDELEMENTS","sheet","addCSSRule","removeCSSRule","_addCSSRule","_removeCSSRule","_getRuleIndex","_sheets","styleSheets","media","mediaText","rules","_sheet","insertIndex","insertedRule","cssRules","insertRule","addRule","rule","ruleIndex","removeRule","deleteRule","taCustomRenderers","taDOM","renderer","getByAttribute","_element","taFixChrome","keepStyles","betterSpanMatch","spanMatch","appleConvertedSpaceMatch","styleVal","appleSpaceVal","newTag","finalHtml","fe","taSanitizeFactory","convert_infos","styleMatch","_partialStyle","styleRegexString","wrapNested","wrapTag","tagRegex","outerHTML","transformLegacyStyles","styleElementMatch","subMatch","lastNewTag","newHtml","styleRegex","styleRegexExec","transformLegacyAttributes","attrElementMatch","rsb1","rsb2","rsb3","taSanitize","unsafe","oldsafe","ignore","safe","_preTags","processedSafe","origTag","editor","_editor","startAction","endAction","exc","taBrowserTag","listToDefault","listElement","defaultWrap","$target","setSelectionToElementEnd","listElementToSelfTag","selfTag","bDefault","priorElement","nextElement","foundIndex","html1","listTag","html2","listElementsToSelfTag","listElements","afterElement","foundIndexes","isEqualNode","selectLi","liElement","setSelectionBeforeElement","listToList","newListTag","childElementsToList","turnBlockIntoBlocks","_n","taDefaultWrap","topNode","command","showUI","_nodes","optionsTagName","selectedElement","ourSelection","defaultWrapper","__h","_innerNode","__","$selected","getOnlySelectedElements","childBlockElements","$nodes","$n","$node","hasBlock","blockElement","getStateShiftKey","newBlock","tagBegin","tagEnd","_selection","insertHtml","_document","bShiftState","brException","updateLeftArrowKey","getFlattenedDom","_node","indexStartContainer","_indexp","nextNodeToRight","nn","nextNodeToLeft","updateRightArrowKey","addNodes","_set","_t","selectedNodes","innerHtml","setSelection","elStart","elEnd","setSelectionToElementStart","setStateShiftKey","bS","secondParent","_childI","lastNode","_tempFrag","isInline","_cnode","splitNodes","_lastSecondParent","transferChildNodes","transferNodeAttributes","attribute","resultingElements","target1","target2","splitNode","subSplitIndex","splitIndex","startNodes","endNodes","$eval","taMaxText","$observe","$dirty","$validate","taMinText","_blankVal","_text_","taSelectableElements","taApplyCustomRenderers","_taBlankTest","textAngularManager","ngModelOptions","_isContentEditable","_isInputFriendly","_isReadonly","_focussed","_skipRender","_disableSanitizer","taUnsafeSanitizer","disableSanitizer","_keepStyles","taKeepStyles","_lastKey","BLOCKED_KEYS","UNDO_TRIGGER_KEYS","_pasteHandler","_defaultVal","_defaultTest","_CTRL_KEY","_META_KEY","_ALT_KEY","_SHIFT_KEY","_ENTER_KEYCODE","_SHIFT_KEYCODE","_TAB_KEYCODE","_LEFT_ARROW_KEYCODE","_RIGHT_ARROW_KEYCODE","_keyMappings","specialKey","forbiddenModifiers","mustHaveModifiers","_mapKeys","netModifiers","modifier","$options","_ensureContentWrapped","domTest","_children","_foundBlockElement","_subVal","taPaste","_undoKeyupTimeout","$undoManager","_stack","_index","_max","setToIndex","_compileHtml","selectorClickHandler","$emit","_reApplyOnSelectorHandlers","_setViewValue","_val","triggerUndo","skipRender","$viewValue","$setViewValue","$render","_setInnerHTML","_redoUndoTimeout","_undo","_redo","_sanitize","$oldViewValue","$parsers","$formatters","keydown","selectionStart","selectionEnd","_linebreak","_tab","_repeat","recursiveListFormat","listNode","tablevel","_html","_subnodes","htmlValue","_processingPaste","processpaste","_isOneNote","textFragment","targetDom","_list","lastIndent","lastLi","isUl","peek","_resetList","lastLevelMatch","_listMatch","_indentMatch","_levelMatch","_unwrapElement","_el","_b","binds","_target","_c","$html","paste","pastedContent","clipboardData","_types","_savedSelection","_tempDiv","cut","userSpecialKey","mapping","testForKey","enablePropagation","sendKeyCommand","$selection","_new","moveOutsideElements","_parent","_keyupTimeout","keyup","ps","_inputTimeout","placeholder","mouseup","mousedown","fileDropHandler","dropFired","dataTransfer","_renderTimeout","_renderInProgress","taReadonly","textAngular","taExecCommand","$animate","_keydown","_keyup","_keypress","_mouseup","_focusin","_focusout","_originalContents","_editorFunctions","_serial","serial","_taExecCommand","_resizeMouseDown","_updateSelectedStylesTimeout","_resizeTimeout","oneEvent","isSelectableElementTool","taShowHtml","taFocussedClass","taTextEditorClass","taHtmlEditorClass","taDefaultTagAttributes","taTextEditorSetup","taHtmlEditorSetup","taFileDrop","forminput","scrollWindow","popoverArrow","resize","overlay","background","anchors","handlePopoverEvents","reflowPopover","resizeElement","reflowResizeOverlay","isScrollable","cs","_notScrollable","vertical","horizontal","clientHeight","scrollWidth","clientWidth","getScrollTop","bAddListener","_scrollListener","spaceAboveImage","offsetTop","_maxLeft","_targetLeft","offsetLeft","_rleft","_marginLeft","_body","startPosition","ratio","mousemove","bForceAspectRatio","taResizeForceAspectRatio","bFlipKeyBinding","taResizeMaintainAspectRatio","bKeepRatio","newRatio","roundedMaxVal","hideResizeOverlay","taDisabled","updateTaBindtaHtmlElement","testAndSet","choice","beforeState","_actionRunning","_beforeStateBold","_beforeStateItalic","_beforeStateUnderline","_beforeStateStrikethough","updateSelectedStyles","_bUpdateSelectedStyles","unfocus","queryCommandValue","_firstRun","_initialValue","taTargetToolbars","registerEditor","_toolbar","taToolbar","taToolbarClass","taToolbarGroupClass","taToolbarButtonClass","taToolbarActiveButtonClass","unregisterEditor","triggerElementSelect","dropEvent","taToolExecuteAction","toolbars","editors","timeRecentModification","updateStyles","editorFunctions","triggerInterval","triggerIntervalTimer","setupTriggerUpdateStyles","touchModification","editorName","targetToolbars","toolbarScopes","_registerToolbarScope","toolbarScope","enable","tools","toolScope","tool","elementHasAttrs","workerTools","unfilteredTools","onlyWithAttrsFilter","retrieveEditor","registerToolbar","retrieveToolbar","retrieveToolbarsViaEditor","unregisterToolbar","updateToolsDisplay","newTaTools","_newTool","updateToolDisplay","resetToolsDisplay","resetToolDisplay","toolKey","toolbarKey","updateToolbarToolDisplay","resetToolbarToolDisplay","removeTool","toolbarIndex","group","_$element","addTool","addToolToToolbar","refreshEditor","$$phase","$digest","getVersion","getToolbarScopes","setupToolElement","toolElement","_display","icon","_lastToolDefinition","defaultChildScope","displayActiveToolClass","executeAction","groupElement","$new","forceNew","toolInstance","groupIndex","Timeout","clearFn","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","g","webpackPolyfill","deprecate","paths"],"mappings":"yJAAA,IAAIA,EAAM,CACT,mCAAoC,uCACpC,oCAAqC,wCACrC,kCAAmC,sCACnC,6BAA8B,iCAC9B,iCAAkC,qCAClC,+BAAgC,mCAChC,uCAAwC,2CACxC,uBAAwB,2BACxB,uBAAwB,2BACxB,2BAA4B,+BAC5B,8BAA+B,kCAC/B,kCAAmC,sCACnC,oBAAqB,wBACrB,wBAAyB,4BACzB,4BAA6B,gCAC7B,0BAA2B,8BAC3B,6BAA8B,iCAC9B,4BAA6B,gCAC7B,yBAA0B,6BAC1B,yBAA0B,6BAC1B,kCAAmC,sCACnC,gCAAiC,oCACjC,gCAAiC,oCACjC,iCAAkC,qCAClC,8BAA+B,kCAC/B,yBAA0B,6BAC1B,8BAA+B,kCAC/B,2BAA4B,+BAC5B,qBAAsB,yBACtB,wBAAyB,4BACzB,uBAAwB,2BACxB,0BAA2B,8BAC3B,oCAAqC,wCACrC,4CAA6C,gDAC7C,4BAA6B,gCAC7B,0BAA2B,8BAC3B,qBAAsB,yBACtB,oBAAqB,wBACrB,6BAA8B,iCAC9B,wBAAyB,4BACzB,uBAAwB,2BACxB,uBAAwB,2BACxB,6BAA8B,iCAC9B,wBAAyB,4BACzB,8BAA+B,kCAC/B,gCAAiC,oCACjC,2BAA4B,+BAC5B,iCAAkC,qCAClC,4BAA6B,gCAC7B,8BAA+B,kCAC/B,oBAAqB,wBACrB,0BAA2B,8BAC3B,sBAAuB,0BACvB,0BAA2B,8BAC3B,8BAA+B,kCAC/B,uBAAwB,2BACxB,sBAAuB,0BACvB,sBAAuB,yBACxB,EAGA,SAASC,EAAeC,GACnBC,EAAKC,EAAsBF,CAAG,EAClC,OAAOG,EAAoBF,CAAE,CAC9B,CACA,SAASC,EAAsBF,GAC9B,GAAIG,EAAoBC,EAAEN,EAAKE,CAAG,EAKlC,OAAOF,EAAIE,GAFV,MAFIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,GAAG,GAClDO,KAAO,mBACHF,CAGR,CACAN,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,CAAG,CACvB,EACAC,EAAeW,QAAUR,GACzBS,EAAOC,QAAUb,GACFE,GAAK,0E,mEC/EpB,OAAe,cAA0B,sC,mECAzC,OAAe,cAA0B,sC,6ECAzC,OAAe,cAA0B,sC,uDCAzC,OAAe,cAA0B,sC,sDCEzCY,OAAOC,aAAe,WACpB,IAAIC,EAAU,IAAIC,OAAO,6BAA6B,EAAEC,KAAKJ,OAAOK,SAASC,IAAI,EACjF,OAAQJ,GAAWA,EAAQK,OAAUL,EAAQ,GAAK,EACpD,EAEAF,OAAOQ,QAAU,GAEjBC,QACGX,OAAO,qBAAsB,CAC5B,gBACA,aACA,YACA,mBACA,QACA,sBACA,oBACA,SACA,aACA,SACA,UACA,WACA,gBACA,UACAY,EAAQ,sDAAe,EACvB,eACA,cACD,EACAC,OAAO,CAAD,0DAAC,SAAUC,EAAgBC,EAAoBC,GAEpDD,EACGE,KAAK,GAAI,GAAG,EACZC,UAAU,OAAO,EAMpBF,EAAkBG,WAAW,EAAE,EAE/BL,EACGM,MAAM,OAAQ,CACbC,SAAU,GACVC,SAAU,sBACVC,WAAY,CAAF,8DAAE,SAAUC,EAAaC,EAAQC,EAAYC,EAAUC,GAG/DJ,EAAYK,KAAKC,YAAc,KAG/BL,EAAOM,MAAQpB,QAAQqB,KAAKN,EAAWK,KAAK,EAC5CN,EAAOQ,QAAUtB,QAAQqB,KAAKN,EAAWO,OAAO,EAChDR,EAAOS,OAASvB,QAAQqB,KAAKN,EAAWQ,MAAM,EAC9CT,EAAOU,UAAYxB,QAAQqB,KAAKN,EAAWS,SAAS,EACpDV,EAAOW,eAAiBzB,QAAQqB,KAAKN,EAAWU,cAAc,EACnDzB,QAAQqB,KAAKJ,CAAY,CACtC,EACF,CAAC,EACAR,MAAM,eAAgB,CACrBiB,IAAK,IACLC,YAAa,qBACbf,WAAY,cACZgB,aAAc,UACdxC,QAAS,CACPyC,SAAU,CAAF,cAAE,SAAUhB,GAElB,OAAOA,EACJiB,SAAS,EACTC,KAAK,WACJ,IAAIC,EAAM,IAAIC,KACVC,EAAQlC,QAAQqB,KAAKR,EAAYK,KAAKgB,KAAK,EAE/C,SAASC,EAAQC,EAAMC,GACjBC,EAAS,IAAIL,KAAKG,CAAI,EAE1B,OADAE,EAAOC,QAAQD,EAAOE,QAAQ,EAAIH,CAAI,EAC/BC,CACT,CAEA,IAAK,IAIGG,EAJCC,EAAI,EAAGA,EAAIR,EAAMpC,OAAQ4C,CAAC,GACjCR,EAAMQ,GAAGC,aAAe,IAAIV,KAAKC,EAAMQ,GAAGE,UAAU,EAEhDV,EAAMQ,GAAGG,YACPJ,EAAY,IAAIR,KAAKC,EAAMQ,GAAGG,SAAS,EAC3CX,EAAMQ,GAAGI,QAAUL,GAAaN,EAAQH,EAAK,CAAC,EAAE,GAAKS,GAAaN,EAAQH,EAAK,EAAE,EACjFE,EAAMQ,GAAGK,KAAON,EAAYN,EAAQH,EAAK,CAAC,EAAE,EAC5CE,EAAMQ,GAAGM,OAASP,EAAYN,EAAQH,EAAK,EAAE,GAIjD,OAAOE,CACT,CAAC,CACL,EACF,EACAhB,KAAM,CACJ+B,UAAW,SACXC,aAAc,UAChB,CACF,CAAC,EACAzC,MAAM,eAAgB,CACrBiB,IAAK,WACLC,YAAa,qBACbf,WAAY,cACZgB,aAAc,UACdV,KAAM,CACJ+B,UAAW,SACb,CACF,CAAC,EACAxC,MAAM,QAAS,CACdC,SAAU,GACVgB,IAAK,mBACLC,YAAa,mBACbf,WAAY,iBACZgB,aAAc,aACdxC,QAAS,CACP+D,eAAgB,CAAF,6BAAE,SAAUC,EAAcvC,GAEtC,GAAIuC,EAAaC,mBACf,OAAOxC,EACJyC,sBAAsB,CAAEC,SAAUH,EAAaI,QAAS,CAAC,EACzDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAKuC,mBAAmBL,EAAaI,SAC1D,CAAC,CACP,GACAJ,aAAc,CAAF,6BAAE,SAAUM,EAAc7C,GAEpC,OAAOA,EACJ8C,QAAQD,EAAaE,QAAQ,EAC7B7B,KAAK,WACJ,OAAOlB,EAAYK,KAAKC,WAC1B,CAAC,CACL,GACAU,SAAU,CAAF,cAAE,SAAUhB,GAElB,OAAOA,EACJiB,SAAS,EACTC,KAAK,WACJ,OAAOlB,EAAYK,KAAKgB,KAC1B,CAAC,CACL,GACA2B,eAAgB,CAAF,6BAAE,SAAUT,EAAcvC,GAEtC,OAAOA,EACJiD,eAAe,CAAEP,SAAUH,EAAaI,QAAS,CAAC,EAClDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAK6C,YAAYX,EAAaI,SACnD,CAAC,CACL,EACF,CACF,CAAC,EAEA/C,MAAM,mBAAoB,CACzBC,SAAU,GACVC,SAAU,sBACVvB,QAAS,CACP4E,iBAAkB,CAAF,mCAAE,SAAUC,EAAmBb,GAE7C,OAAOa,EAAkBC,oBAAoB,CAAEX,SAAUH,EAAaI,QAAS,CAAC,EAC7EzB,KAAK,WACJ,OAAOkC,EAAkB/C,KAAKiD,iBAAiBf,EAAaI,SAC9D,CAAC,CACL,GACAY,YAAa,CAAF,sDAAE,SAAUJ,EAAkBC,EAAmBb,GAE1D,OAAOa,EAAkB/C,KAAKmD,YAAYjB,EAAaI,SACzD,GACAc,eAAgB,WAEd,MAAO,CAAEC,MAAO,EAAM,CACxB,CACF,CACF,CAAC,EACA9D,MAAM,+BAAgC,CACrCiB,IAAK,cACLC,YAAa,wBACbf,WAAY,iBACZgB,aAAc,aACdV,KAAM,CACJgC,aAAc,YAChB,CACF,CAAC,EACAzC,MAAM,8BAA+B,CACpCiB,IAAK,uBACLC,YAAa,2BACbf,WAAY,oBACZgB,aAAc,gBACdxC,QAAS,CACPoF,WAAY,CAAF,uDAAE,SAAUC,EAAIf,EAAcO,EAAmBb,GAEzD,IAGIsB,EAHJ,OAAKhB,EAAa/E,IAGd+F,EAAehB,EAAa/E,GAEzBsF,EAAkBU,cAAc,CAAEpB,SAAUH,EAAaI,SAAUkB,aAAcA,CAAa,CAAC,EACnG3C,KAAK,WAEJ,OADkBkC,EAAkB/C,KAAKmD,YAAYjB,EAAaI,UAC/CoB,OAAO,SAAUC,GAClC,OAAOA,EAAEC,cAAgBJ,CAC3B,CAAC,CACH,CAAC,GAVMD,EAAGnE,KAAK,CAWnB,GACAyE,cAAe,CAAF,6BAAE,SAAUC,EAAa5B,GAEpC,OAAO4B,EAAYC,iBAAiB,CAAE1B,SAAUH,EAAaI,QAAS,CAAC,EACpEzB,KAAK,WAAc,OAAOiD,EAAY9D,KAAKkC,EAAaI,UAAUuB,aAAe,CAAC,CACvF,EACF,EACA7D,KAAM,CACJgC,aAAc,eAChB,CACF,CAAC,EACAzC,MAAM,iBAAkB,CACvBiB,IAAK,YACLC,YAAa,0BACbf,WAAY,mBACZgB,aAAc,eACdxC,QAAS,CACP8F,aAAc,CAAF,qCAAE,SAAUC,EAAqB/B,GAE3C,OAAO+B,EAAoBC,YAAY,CAAE7B,SAAUH,EAAaI,QAAS,CAAC,EACvEzB,KAAK,WACJ,OAAOoD,EAAoBjE,KAAKmE,aAAajC,EAAaI,SAC5D,CAAC,CACL,GACA8B,eAAgB,CAAF,qCAAE,SAAUH,EAAqB/B,GAE7C,OAAO+B,EAAoBI,kBAAkB,CAAEhC,SAAUH,EAAaI,QAAS,CAAC,EAC7EzB,KAAK,WACJ,OAAOoD,EAAoBjE,KAAKsE,gBAAgBpC,EAAaI,SAC/D,CAAC,CACL,EACF,EACAtC,KAAM,CACJgC,aAAc,eAChB,CACF,CAAC,EACAzC,MAAM,gBAAiB,CACtBiB,IAAK,WACLC,YAAa,qBACbf,WAAY,cACZgB,aAAc,UACdV,KAAM,CACJ+B,UAAW,UACXC,aAAc,cAChB,CACF,CAAC,EACAzC,MAAM,kBAAmB,CACxBC,SAAU,GACViB,YAAa,uBACbC,aAAc,YACdxC,QAAS,CACPqG,OAAQ,CAAF,8BAAE,SAAUrC,EAAcsC,GAE9B,OAAOA,EACJC,UAAU,CAAEpC,SAAUH,EAAaI,QAAS,CAAC,EAC7CzB,KAAK,WACJ,OAAO2D,EAAaxE,KAAK0E,OAAOxC,EAAaI,WAAa,EAC5D,CAAC,CACL,GACAqC,oBAAqB,CAAF,SAAE,SAAUJ,GAE7B,IAAK,IAAI/C,EAAI,EAAGA,EAAI+C,EAAO3F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIL,EAAO/C,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAAIL,EAAO/C,GAAGqD,aAAaD,GAAGE,iBAA+D,QAA5CP,EAAO/C,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CR,EAAO/C,GAAGqD,aAAaD,GAAGI,YAC9H,MAAO,GAGb,MAAO,EACT,GACAC,eAAgB,CAAF,SAAE,SAAUV,GAExB,IAAK,IAAI/C,EAAI,EAAGA,EAAI+C,EAAO3F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIL,EAAO/C,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAA8C,SAA1CL,EAAO/C,GAAGqD,aAAaD,GAAGM,aACgB,QAA5CX,EAAO/C,GAAGqD,aAAaD,GAAGG,eACgB,WAA1CR,EAAO/C,GAAGqD,aAAaD,GAAGI,aAC1B,CAACT,EAAO/C,GAAGqD,aAAaD,GAAGO,SAC3B,MAAO,GAGb,MAAO,EACT,GACAC,OAAQ,CAAF,iCAAE,SAAUlD,EAAcmD,GAE9B,OAAOA,EACJD,OAAO,CAAE/C,SAAUH,EAAaI,QAAS,CAAC,EAC1CzB,KAAK,WACJ,MAAO,CAAC,CAACwE,EAAgBrF,KAAKoF,OAAOlD,EAAaI,SACpD,CAAC,CACL,EACF,EACA5C,WAAY,CAAF,6EAAE,SAAU4F,EAAQC,EAAQZ,EAAqBM,EAAgBO,GAEzE,IAAIC,EAAOC,KAEXD,EAAKE,sBAAwBhB,EAC7Bc,EAAKG,gBAAkBX,EACvBQ,EAAKI,iBAAmB,GAEpB,CAACJ,EAAKG,iBAAmB,CAACH,EAAKE,uBAA0BH,EAAkBM,UAAY,CAACL,EAAKG,gBAC/FH,EAAKM,KAAO,IAEZN,EAAKO,aAAeV,EAAOW,SAC3BR,EAAKS,UAAYT,EAAKO,aAAaG,KAEnCZ,EAAOa,OAAO,eAAgB,SAAUC,EAAUC,GAC5CD,IAAaC,IACfb,EAAKS,UAAYG,EACrB,CAAC,EAEL,EACF,CAAC,EACA9G,MAAM,gBAAiB,CACtBiB,IAAK,IACLC,YAAa,qBACb8F,WAAY,yBAOd,CAAC,EACAhH,MAAM,0BAA2B,CAChCiB,IAAK,kBACLC,YAAa,qBACbf,WAAY,cACZgB,aAAc,UACdxC,QAAS,CACP+D,eAAgB,CAAF,6BAAE,SAAUC,EAAcvC,GAEtC,GAAIuC,EAAaC,mBACf,OAAOxC,EACJyC,sBAAsB,CAAEC,SAAUH,EAAaI,QAAS,CAAC,EACzDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAKuC,mBAAmBL,EAAaI,SAC1D,CAAC,CACP,GACAkE,QAAS,CAAF,+BAAE,SAAUtE,EAAcuE,GAE/B,OAAOA,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WAKJ,IAHA,IAAIT,EAAU,GAGLoB,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGmF,SAAU,CAEjE,IADA,IAAIC,EAAY,GACPC,EAAI,EAAGA,EAAIJ,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlI,OAAQiI,CAAC,GAC5FJ,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBD,GAAGF,UAC1EC,EAAUG,KAAKN,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBD,EAAE,EAG1FJ,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAkBF,EAAUI,KAAK,SAAUC,EAAIC,GAClG,OAAOD,EAAGE,aAAeD,EAAGC,YAC9B,CAAC,EACD/G,EAAQ2G,KAAKN,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,EAAE,CACnE,CAQF,OAJApB,EAAUA,EAAQ4G,KAAK,SAAUC,EAAIC,GACnC,OAAOD,EAAGE,aAAeD,EAAGC,YAC9B,CAAC,CAGH,CAAC,CACL,GACAC,cAAe,CAAF,UAAE,SAAUZ,GAEvB,GAAIA,EAAS,CACX,GAAqB,EAAjBA,EAAQ5H,OACV,OAAO4H,EAAQ,GACV,GAAqB,EAAjBA,EAAQ5H,OACjB,OAAO4H,EAAQ,EAEnB,CACA,OAAO,IACT,GACAa,sBAAuB,CAAF,gBAAE,SAAUD,GAE/B,GAAIA,EACF,IAAK,IAAIP,EAAI,EAAGA,EAAIO,EAAcN,gBAAgBlI,OAAQiI,CAAC,GACzD,GAAIO,EAAcN,gBAAgBD,GAAGF,SACnC,OAAOS,EAAcN,gBAAgBD,GAI3C,OAAO,IACT,GACAS,qBAAsB,CAAF,oCAAE,SAAUpF,EAAcqF,GAE5C,OAAOA,EAAmBC,gBAAgB,CAAEnF,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WAGJ,IAFA,IAAI+F,EAAY,GAEPpF,EAAI,EAAGA,EAAI+F,EAAmBvH,KAAKyH,aAAavF,EAAaI,UAAU1D,OAAQ4C,CAAC,GACP,WAA5E+F,EAAmBvH,KAAKyH,aAAavF,EAAaI,UAAUd,GAAGkG,WACjEd,EAAUG,KAAKQ,EAAmBvH,KAAKyH,aAAavF,EAAaI,UAAUd,EAAE,EAEjF,OAAOoF,CACT,CAAC,CACL,GACAe,mBAAoB,CAAF,uBAAE,SAAUL,GAE5B,OAAOA,EAAqB,EAC9B,GACAM,gBAAiB,CAAF,qCAAE,SAAU1F,EAAc2F,GAEvC,OAAOA,EAAoBC,eAAe,CAAEzF,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WACJ,OAAOgH,EAAoB7H,KAAK+H,YAAY7F,EAAaI,SAC3D,CAAC,CACL,GACA0F,qBAAsB,CAAF,qCAAE,SAAU9F,EAAc2F,GAE5C,OAAOA,EAAoBI,eAAe,CAAE5F,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WACJ,OAAOgH,EAAoBK,eAAeL,EAAoB7H,KAAKmI,YAAYjG,EAAaI,SAAS,CACvG,CAAC,CACL,GACA8F,yBAA0B,CAAF,0DAAE,SAAUlG,EAAcyF,EAAoBE,GAEpE,OAAKF,EAMEE,EAAoBQ,8BAA8B,CACvDhG,SAAUH,EAAaI,SACvBgG,cAAeX,EAAmBY,EACpC,CAAC,EACE1H,KAAK,WACJ,OAAOgH,EAAoBK,eAAeL,EAAoB7H,KAAKwI,iBAAiBtG,EAAaI,UAAUqF,EAAmBY,IAAK,oBAAoB,CACzJ,CAAC,EAXM,CACLE,OAAQ,GACRC,OAAQ,EACV,CASJ,GACAC,oBAAqB,CAAF,6DAAE,SAAUzG,EAAcmF,EAAuBQ,GAElE,OAAKR,EAMEQ,EAAoBe,yBAAyB,CAClDvG,SAAUH,EAAaI,SACvBuG,iBAAkBxB,EAAsBkB,EAC1C,CAAC,EACE1H,KAAK,WACJ,OAAOgH,EAAoBK,eAAeL,EAAoB7H,KAAK8I,YAAY5G,EAAaI,UAAU+E,EAAsBkB,IAAK,wBAAwB,CAC3J,CAAC,EAXM,CACLE,OAAQ,GACRC,OAAQ,EACV,CASJ,GACAK,kBAAmB,CAAF,qCAAE,SAAU7G,EAAc2F,GAEzC,OAAOA,EAAoBmB,cAAc,CAAE3G,SAAUH,EAAaI,QAAS,CAAC,EACzEzB,KAAK,WAKJ,IAJA,IAAIb,EAAO6H,EAAoB7H,KAAKiJ,SAAS/G,EAAaI,UACxDmG,EAAS,GACTC,EAAS,GAEFlH,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAChCiH,EAAO1B,KAAK/G,EAAKwB,GAAG0H,MAAM,EAC1BR,EAAO3B,KAAK/G,EAAKwB,GAAG2H,KAAK,EAG3B,MAAO,CACLV,OAAQA,EACRC,OAAQA,CACV,CACF,CAAC,CACL,GACA/F,eAAgB,CAAF,6BAAE,SAAUT,EAAcvC,GAEtC,OAAOA,EACJiD,eAAe,CAAEP,SAAUH,EAAaI,QAAS,CAAC,EAClDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAK6C,YAAYX,EAAaI,SACnD,CAAC,CACL,GACA8G,eAAgB,CAAF,yDAAE,SAAUrG,EAAmBb,EAAcS,EAAgBY,GAEzE,OAAIZ,EACKI,EAAkBsG,kBAAkB,CAAEhH,SAAUH,EAAaI,QAAS,CAAC,EAC3EzB,KAAK,WACJ,OAAOkC,EAAkB/C,KAAKsJ,eAAepH,EAAaI,UAAUiH,OAClE,SAAUC,EAAKC,GAGb,OAFAD,EAAIC,EAAKC,QAAUF,EAAIC,EAAKC,SAAW,GACvCF,EAAIC,EAAKC,QAAQ3C,KAAK0C,CAAI,EACnBD,CACT,EAAG,EAAE,CACT,CAAC,EAEIjG,EAAGnE,KAAK,EAAE,CAErB,GACAuK,qBAAsB,CAAF,SAAE,SAAUpF,GAI9B,IAFA,IAES/C,EAAI,EAAGA,EAAI+C,EAAO3F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIL,EAAO/C,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAJyB,SAIrBL,EAAO/C,GAAGqD,aAAaD,GAAGM,aAAsF,QAA5CX,EAAO/C,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CR,EAAO/C,GAAGqD,aAAaD,GAAGI,YACrJ,MAAO,GAIb,MAAO,EACT,GACAlC,iBAAkB,CAAF,mCAAE,SAAUC,EAAmBb,GAE7C,OAAOa,EAAkBC,oBAAoB,CAAEX,SAAUH,EAAaI,QAAS,CAAC,EAC7EzB,KAAK,WACJ,OAAOkC,EAAkB/C,KAAKiD,iBAAiBf,EAAaI,SAC9D,CAAC,CACL,GACAgB,WAAY,CAAF,sDAAE,SAAUR,EAAkBC,EAAmBb,GAEzD,OAAOa,EAAkB/C,KAAKmD,YAAYjB,EAAaI,SACzD,GACA8B,eAAgB,CAAF,qCAAE,SAAUH,EAAqB/B,GAE7C,OAAO+B,EAAoBI,kBAAkB,CAAEhC,SAAUH,EAAaI,QAAS,CAAC,EAC7EzB,KAAK,WACJ,OAAOoD,EAAoBjE,KAAKsE,gBAAgBpC,EAAaI,SAC/D,CAAC,CACL,EACF,EACAtC,KAAM,CACJ+B,UAAW,gBACb,CACF,CAAC,EACAxC,MAAM,2BAA4B,CACjCiB,IAAK,sBACLC,YAAa,sBACbf,WAAY,eACZgB,aAAc,WACdxC,QAAS,CACP0L,IAAK,CAAF,iCAAE,SAAU1H,EAAcmD,GAE3B,OAAOA,EAAgBwE,OAAO,CAAExH,SAAUH,EAAaI,QAAS,CAAC,EAC9DzB,KAAK,WACJ,OAAOwE,EAAgBrF,KAAK8J,IAAI5H,EAAaI,SAC/C,CAAC,CACL,EACF,EACAtC,KAAM,CACJ+B,UAAW,oBACb,CACF,CAAC,EACAxC,MAAM,iCAAkC,CACvCiB,IAAK,0BACLC,YAAa,4BACbf,WAAY,qBACZgB,aAAc,iBACdxC,QAAS,CACP6L,eAAgB,CAAF,kCAAE,SAAU7H,EAAc8H,GAEtC,OAAOA,EAAiBC,kBAAkB,CAAE5H,SAAUH,EAAaI,QAAS,CAAC,EAAEzB,KAAK,WAClF,OAAOmJ,EAAiBhK,KAAKkK,eAAehI,EAAaI,SAC3D,CAAC,CACH,GACA6H,sBAAuB,CAAF,kCAAE,SAAUjI,EAAc8H,GAE7C,OAAOA,EAAiBI,yBAAyB,CAC/C/H,SAAUH,EAAaI,QACzB,CAAC,EAAEzB,KAAK,SAAUb,GAChB,OAAOgK,EAAiBhK,KAAKqK,sBAAsBnI,EAAaI,SAClE,CAAC,CACH,GACAgI,YAAa,WAEX,OAAO,SAAUnE,GACfT,KAAK6E,KAAOpE,EACZT,KAAK8E,cAAgB,EACvB,CACF,EACAC,aAAc,WAEZ,OAAO,SAAUhN,EAAIiN,GACnBhF,KAAK6C,GAAKoC,OAAOlN,CAAE,EACnBiI,KAAKkF,YAAcF,EACnBhF,KAAKmF,YAAc,EACrB,CACF,EACAC,WAAY,WAEV,OAAO,SAAUrN,EAAIiN,GACnBhF,KAAK6C,GAAKoC,OAAOlN,CAAE,EACnBiI,KAAKkF,YAAcF,CACrB,CACF,EACAK,aAAc,CAAF,oGAAE,SAAUxH,EAAIwG,EAAgB7H,EAAcqF,EAAoB+C,EAAaG,EAAcK,GAEvG,OAAOvH,EAAGyH,IAAK,WAGb,IAFA,IAAIC,EAAW,GAENzJ,EAAI,EAAGA,EAAIuI,EAAenL,OAAQ4C,CAAC,GAC1CyJ,EAASlE,KAAKQ,EAAmBC,gBAAgB,CAAEnF,SAAU0H,EAAevI,GAAG0J,SAASC,cAAe,CAAC,CAAC,EAE3G,OAAOF,CACT,EAAC,CAAG,EAAEpK,KAAK,SAAUb,GAGnB,IAFA,IAAIoL,EAAkB,GAEbC,EAAI,EAAGA,EAAIrL,EAAKpB,OAAQyM,CAAC,GAChC,GAAI,CAACD,EAAgBrB,EAAesB,GAAGH,SAASC,gBAAiB,CAO/D,IANA,IAAI1D,EAAeF,EAAmBvH,KAAKyH,aAAasC,EAAesB,GAAGH,SAASC,gBAAgBzH,OAAO,SAAU7F,GAClH,OAAOA,EAAEyN,yBACX,CAAC,EAEGC,EAAc,IAAIjB,EAAY,cAAc,EAEvC9I,EAAI,EAAGA,EAAIiG,EAAa7I,OAAQ4C,CAAC,GAAI,CAG5C,IAFA,IAAIgK,EAAe,IAAIf,EAAahD,EAAajG,GAAGiK,UAAWhE,EAAajG,GAAGoJ,WAAW,EAEjFhG,EAAI,EAAGA,EAAI6C,EAAajG,GAAGkK,WAAW9M,OAAQgG,CAAC,GAAI,CAC1D,IAAI+G,EAAW,GAEbA,EADElE,EAAajG,GAAGoK,eACPnE,EAAajG,GAAGkK,WAAW9G,GAAGiH,SAAW,MAAQpE,EAAajG,GAAGkK,WAAW9G,GAAGgG,YAE/EnD,EAAajG,GAAGkK,WAAW9G,GAAGgG,YAE3CY,EAAaX,YAAYpD,EAAajG,GAAGkK,WAAW9G,GAAGiH,UAAY,IAAIf,EAAWrD,EAAajG,GAAGkK,WAAW9G,GAAGiH,SAAUF,CAAQ,CACpI,CAEAJ,EAAYf,cAAc/C,EAAajG,GAAGiK,WAAaD,CACzD,CAEAJ,EAAgBrB,EAAesB,GAAGH,SAASC,gBAAkBI,CAC/D,CAGF,OAAOH,CACT,CAAC,CACH,GACAU,UAAW,CAAF,8EAAE,SAAUvI,EAAI+G,EAAaP,EAAgBgC,EAAatB,EAAcK,GAE/E,OAAOvH,EAAGyH,IAAK,WAGb,IAFA,IAAIC,EAAW,GAENzJ,EAAI,EAAGA,EAAIuI,EAAenL,OAAQ4C,CAAC,GAC1CyJ,EAASlE,KAAKgF,EAAYC,aAAa,CAAE3J,SAAU0H,EAAevI,GAAG0J,SAASC,cAAe,CAAC,CAAC,EAEjG,IAAK3J,EAAI,EAAGA,EAAIuI,EAAenL,OAAQ4C,CAAC,GACtCyJ,EAASlE,KAAKgF,EAAYE,aAAa,CAAE5J,SAAU0H,EAAevI,GAAG0J,SAASC,cAAe,CAAC,CAAC,EAEjG,OAAOF,CACT,EAAC,CAAG,EAAEpK,KAAK,WAGT,IAFA,IAKSwB,EALL6J,EAAe,GAEV1K,EAAI,EAAGA,EAAIuI,EAAenL,OAAQ4C,CAAC,GAC1C0K,EAAanC,EAAevI,GAAG0J,SAASC,gBAAkBe,EAAanC,EAAevI,GAAG0J,SAASC,iBAAmB,GAEvH,IAAS9I,KAAY6J,EACnBA,EAAa7J,GAAY,CACvBmI,cAAe,CACb2B,YAAc,WAIZ,IAHA,IAAIC,EAAYL,EAAY/L,KAAKoM,UAAU/J,GACvCmJ,EAAe,IAAIf,EAAa,cAAe,SAAS,EAEnDjJ,EAAI,EAAGA,EAAI4K,EAAUxN,OAAQ4C,CAAC,GAErCgK,EAAaX,YAAmC,kBAAvBuB,EAAU5K,GAAG6K,MAA4B,GAAKD,EAAU5K,GAAG6K,OAAS,IAAIvB,EAAkC,kBAAvBsB,EAAU5K,GAAG6K,MAA4B,GAAKD,EAAU5K,GAAG6K,MAAOD,EAAU5K,GAAG8K,GAAG,EAGhM,OAAOd,CACT,EAAW,EACXe,UAAY,WAIV,IAHA,IAAIC,EAAST,EAAY/L,KAAKyM,UAAUpK,GACpCmJ,EAAe,IAAIf,EAAa,YAAa,OAAO,EAE/CjJ,EAAI,EAAGA,EAAIgL,EAAO5N,OAAQ4C,CAAC,GAClCgK,EAAaX,YAAY2B,EAAOhL,GAAG6K,OAAS,IAAIvB,EAAW0B,EAAOhL,GAAG6K,MAAOG,EAAOhL,GAAG8K,GAAG,EAG3F,OAAOd,CACT,EAAW,CACb,CACF,EAEF,OAAOU,CACT,CAAC,CACH,GACAQ,qBAAsB,CAAF,2GAAE,SAAUnJ,EAAIrB,EAAcqF,EAAoB+C,EAAaG,EAAcK,EAAYX,GAE3G,OAAO5G,EAAGyH,IAAK,WAGb,IAFA,IAAIC,EAAW,GAENzJ,EAAI,EAAGA,EAAI2I,EAAsBvL,OAAQ4C,CAAC,GACjDyJ,EAASlE,KAAKQ,EAAmBC,gBAAgB,CAAEnF,SAAU8H,EAAsB3I,GAAG2J,cAAe,CAAC,CAAC,EAEzG,OAAOF,CACT,EAAC,CAAG,EAAEpK,KAAK,SAAUb,GAGnB,IAFA,IAAIoL,EAAkB,GAEbC,EAAI,EAAGA,EAAIrL,EAAKpB,OAAQyM,CAAC,GAChC,GAAI,CAACD,EAAgBjB,EAAsBkB,GAAGF,gBAAiB,CAO7D,IANA,IAAI1D,EAAeF,EAAmBvH,KAAKyH,aAAa0C,EAAsBkB,GAAGF,gBAAgBzH,OAAO,SAAU7F,GAChH,OAAOA,EAAEyN,yBACX,CAAC,EAEGC,EAAc,IAAIjB,EAAY,cAAc,EAEvC9I,EAAI,EAAGA,EAAIiG,EAAa7I,OAAQ4C,CAAC,GAAI,CAG5C,IAFA,IAAIgK,EAAe,IAAIf,EAAahD,EAAajG,GAAGiK,UAAWhE,EAAajG,GAAGoJ,WAAW,EAEjFhG,EAAI,EAAGA,EAAI6C,EAAajG,GAAGkK,WAAW9M,OAAQgG,CAAC,GAAI,CAC1D,IAAI+G,EAAW,GAEbA,EADElE,EAAajG,GAAGoK,eACPnE,EAAajG,GAAGkK,WAAW9G,GAAGiH,SAAW,MAAQpE,EAAajG,GAAGkK,WAAW9G,GAAGgG,YAE/EnD,EAAajG,GAAGkK,WAAW9G,GAAGgG,YAE3CY,EAAaX,YAAYpD,EAAajG,GAAGkK,WAAW9G,GAAGiH,UAAY,IAAIf,EAAWrD,EAAajG,GAAGkK,WAAW9G,GAAGiH,SAAUF,CAAQ,CACpI,CAEAJ,EAAYf,cAAc/C,EAAajG,GAAGiK,WAAaD,CACzD,CAEAJ,EAAgBjB,EAAsBkB,GAAGF,gBAAkBI,CAC7D,CAGF,OAAOH,CACT,CAAC,CACH,GACAuB,kBAAmB,CAAF,qFAAE,SAAUpJ,EAAI+G,EAAaH,EAAuB4B,EAAatB,EAAcK,GAE9F,OAAOvH,EAAGyH,IAAK,WAGb,IAFA,IAAIC,EAAW,GAENzJ,EAAI,EAAGA,EAAI2I,EAAsBvL,OAAQ4C,CAAC,GACjDyJ,EAASlE,KAAKgF,EAAYC,aAAa,CAAE3J,SAAU8H,EAAsB3I,GAAG2J,cAAe,CAAC,CAAC,EAE/F,IAAK3J,EAAI,EAAGA,EAAI2I,EAAsBvL,OAAQ4C,CAAC,GAC7CyJ,EAASlE,KAAKgF,EAAYE,aAAa,CAAE5J,SAAU8H,EAAsB3I,GAAG2J,cAAe,CAAC,CAAC,EAE/F,OAAOF,CACT,EAAC,CAAG,EAAEpK,KAAK,WAGT,IAFA,IAKSwB,EALL6J,EAAe,GAEV1K,EAAI,EAAGA,EAAI2I,EAAsBvL,OAAQ4C,CAAC,GACjD0K,EAAa/B,EAAsB3I,GAAG2J,gBAAkBe,EAAa/B,EAAsB3I,GAAG2J,iBAAmB,GAEnH,IAAS9I,KAAY6J,EACnBA,EAAa7J,GAAY,CACvBmI,cAAe,CACb2B,YAAc,WAIZ,IAHA,IAAIC,EAAYL,EAAY/L,KAAKoM,UAAU/J,GACvCmJ,EAAe,IAAIf,EAAa,cAAe,SAAS,EAEnDjJ,EAAI,EAAGA,EAAI4K,EAAUxN,OAAQ4C,CAAC,GAErCgK,EAAaX,YAAmC,kBAAvBuB,EAAU5K,GAAG6K,MAA4B,GAAKD,EAAU5K,GAAG6K,OAAS,IAAIvB,EAAkC,kBAAvBsB,EAAU5K,GAAG6K,MAA4B,GAAKD,EAAU5K,GAAG6K,MAAOD,EAAU5K,GAAG8K,GAAG,EAOhM,OAAOd,CACT,EAAW,EACXe,UAAY,WAIV,IAHA,IAAIC,EAAST,EAAY/L,KAAKyM,UAAUpK,GACpCmJ,EAAe,IAAIf,EAAa,YAAa,OAAO,EAE/CjJ,EAAI,EAAGA,EAAIgL,EAAO5N,OAAQ4C,CAAC,GAClCgK,EAAaX,YAAY2B,EAAOhL,GAAG6K,OAAS,IAAIvB,EAAW0B,EAAOhL,GAAG6K,MAAOG,EAAOhL,GAAG8K,GAAG,EAG3F,OAAOd,CACT,EAAW,CACb,CACF,EAEF,OAAOU,CACT,CAAC,CACH,GACAU,UAAW,CAAF,yCAAE,SAAUrJ,EAAIwG,EAAgBC,GAIvC,IAFA,IAAI6C,EAAY,GAEPrL,EAAI,EAAGA,EAAIuI,EAAenL,OAAQ4C,CAAC,GAC0B,CAAC,GAAjEqL,EAAUC,QAAQ/C,EAAevI,GAAG0J,SAASC,cAAc,GAC7D0B,EAAU9F,KAAKgD,EAAevI,GAAG0J,SAASC,cAAc,EAE5D,OAAO5H,EAAGyH,IAAI6B,EAAUvP,IAAI,SAAUuJ,GACpC,OAAOmD,EAAiB+C,aAAa,CACnC1K,SAAUwE,CACZ,CAAC,CACH,CAAC,CAAC,EAAEhG,KAAK,WAGP,IAFA,IAAImM,EAAY,GAEPC,EAAI,EAAGA,EAAIJ,EAAUjO,OAAQqO,CAAC,GACrC,IAAK,IAAIzL,EAAI,EAAGA,EAAIwI,EAAiBhK,KAAKgN,UAAUH,EAAUI,IAAIrO,OAAQ4C,CAAC,GAAI,CAI7E,IAHA,IAAI/B,EAAWX,QAAQqB,KAAK6J,EAAiBhK,KAAKgN,UAAUH,EAAUI,IAAIzL,EAAE,EACxE0L,EAAa,GAERtI,EAAI,EAAGA,EAAInF,EAAS0N,WAAWvO,OAAQgG,CAAC,GAC/CsI,EAAWzN,EAAS0N,WAAWvI,GAAGwI,SAAW3N,EAAS0N,WAAWvI,GAEnEnF,EAAS0N,WAAaD,EACtBF,EAAUjG,KAAKtH,CAAQ,CACzB,CAEF,OAAOuN,CACT,CAAC,CACH,EACF,EACAhN,KAAM,CACJ+B,UAAW,iBACb,CACF,CAAC,EACAxC,MAAM,sCAAuC,CAC5CiB,IAAK,YACLC,YAAa,+BACbf,WAAY,wBACZgB,aAAc,oBACdxC,QAAS,CACPgN,SAAU,CAAF,gCAAE,SAAU1I,EAAcuH,GAEhC,OAAOA,EAAerG,OAAO,SAAUmD,GACrC,OAAOA,EAAEqE,SAASmC,WAAa7K,EAAa/E,EAC9C,CAAC,EAAE,GAAGyN,QACR,GACAoC,MAAO,CAAF,WAAE,SAAUpC,GAEf,IAESqC,EAFLC,EAAQ,GAEZ,IAASD,KAAOrC,EACdsC,EAAMD,GAAOrC,EAASqC,GAExB,IAAK,IAAI/L,EAAI,EAAGA,EAAI0J,EAASuC,eAAe7O,OAAQ4C,CAAC,GACnDgM,EAAMtC,EAASuC,eAAejM,GAAG4L,SAAWlC,EAASuC,eAAejM,GAAGkM,UAOzE,OALAF,EAAMG,WAAaH,EAAMI,WAEzB,OAAOJ,EAAMC,eACb,OAAOD,EAAMK,gBAENL,CACT,GACAM,KAAM,aAINC,iBAAkB,aAIlBC,kBAAmB,YAIrB,CACF,CAAC,EACAzO,MAAM,cAAe,CACpBiB,IAAK,SACLC,YAAa,mBACbf,WAAY,YACZgB,aAAc,QACdxC,QAAS,CACP6M,aAAc,CAAF,oCAAE,SAAU7I,EAAcqF,GAEpC,OAAOA,EAAmBC,gBAAgB,CAAEnF,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WACJ,OAAO0G,EAAmBvH,KAAKyH,aAAavF,EAAaI,UAAUoB,OAAO,SAAUmD,GAClF,MAA2B,QAApBA,EAAEoH,aACX,CAAC,CACH,CAAC,CACL,GACAnL,iBAAkB,CAAF,mCAAE,SAAUC,EAAmBb,GAE7C,OAAOa,EAAkBC,oBAAoB,CAAEX,SAAUH,EAAaI,QAAS,CAAC,EAC7EzB,KAAK,WACJ,OAAOkC,EAAkB/C,KAAKiD,iBAAiBf,EAAaI,SAC9D,CAAC,CACL,GACAgB,WAAY,CAAF,sDAAE,SAAUR,EAAkBC,EAAmBb,GAEzD,OAAOa,EAAkB/C,KAAKmD,YAAYjB,EAAaI,SACzD,GACAK,eAAgB,CAAF,6BAAE,SAAUT,EAAcvC,GAEtC,OAAOA,EACJiD,eAAe,CAAEP,SAAUH,EAAaI,QAAS,CAAC,EAClDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAK6C,YAAYX,EAAaI,SACnD,CAAC,CACL,GACA8G,eAAgB,CAAF,yDAAE,SAAUrG,EAAmBb,EAAcS,EAAgBY,GAEzE,OAAIZ,EACKI,EAAkBsG,kBAAkB,CAAEhH,SAAUH,EAAaI,QAAS,CAAC,EAC3EzB,KAAK,WACJ,OAAOkC,EAAkB/C,KAAKsJ,eAAepH,EAAaI,UAAUiH,OAClE,SAAUC,EAAKC,GAGb,OAFAD,EAAIC,EAAKC,QAAUF,EAAIC,EAAKC,SAAW,GACvCF,EAAIC,EAAKC,QAAQ3C,KAAK0C,CAAI,EACnBD,CACT,EAAG,EAAE,CACT,CAAC,EAEIjG,EAAGnE,KAAK,EAAE,CAErB,GACA8O,gBAAiB,CAAF,6BAAE,SAAUhM,EAAc6J,GAEvC,OAAOA,EAAYoC,mBAAmB,CAAE9L,SAAUH,EAAaI,QAAS,CAAC,EACtEzB,KAAK,WACJ,OAAOkL,EAAY/L,KAAKoO,gBAAgBlM,EAAaI,SACvD,CAAC,CACL,GACA+L,UAAW,CAAF,6BAAE,SAAUnM,EAAc6J,GAEjC,OAAOA,EAAYC,aAAa,CAAE3J,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WACJ,OAAOkL,EAAY/L,KAAKoM,UAAUlK,EAAaI,SACjD,CAAC,CACL,GACAgM,OAAQ,CAAF,sCAAE,SAAUpM,EAAc6J,EAAanM,GAE3C,IAAI2O,EACD3O,EAAOM,MAAMsO,QAAQC,aAAe7O,EAAOM,MAAMsO,QAAQC,YAAY,+BACpE7O,EAAOM,MAAMsO,QAAQC,YAAY,+BACjC,GAEJ,OAAO1C,EAAY2C,UAAU,CAAErM,SAAUH,EAAaI,SAAUiM,YAAaA,CAAY,CAAC,EACvF1N,KAAK,WACJ,OAAOkL,EAAY/L,KAAKwM,OAAOtK,EAAaI,UAAUiM,EACxD,CAAC,CACL,GACA/H,QAAS,CAAF,oCAAE,SAAUjD,EAAIrB,EAAcuE,GAEnC,OAAOA,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WAKJ,IAJA,IAAIT,EAAUtB,QAAQqB,KAAKsG,EAAczG,KAAKI,QAAQ8B,EAAaI,SAAS,EAAEoB,OAAO,SAAUmD,GAC7F,OAAOA,EAAEF,QACX,CAAC,EAEQnF,EAAI,EAAGA,EAAIpB,EAAQxB,OAAQ4C,CAAC,GAAI,CACvCpB,EAAQoB,GAAGsF,gBAAkB1G,EAAQoB,GAAGsF,gBAAgBpD,OAAO,SAAUmD,GACvE,OAAOA,EAAEF,QACX,CAAC,EAED,IAAK,IAAI/B,EAAI,EAAGA,EAAIxE,EAAQoB,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GACtDxE,EAAQoB,GAAGsF,gBAAgBlC,GAAG+J,cAAgBvO,EAAQoB,GAAGsF,gBAAgBlC,GAAG+J,cAAcjL,OAAO,SAAUmD,GACzG,OAAOA,EAAEF,QACX,CAAC,CACL,CAEA,OAAOvG,CACT,CAAC,CACL,GACAmE,OAAQ,CAAF,8BAAE,SAAUrC,EAAcsC,GAE9B,OAAOA,EACJC,UAAU,CAAEpC,SAAUH,EAAaI,QAAS,CAAC,EAC7CzB,KAAK,WACJ,OAAO2D,EAAaxE,KAAK0E,OAAOxC,EAAaI,SAC/C,CAAC,CACL,GACAsM,mBAAoB,CAAF,uCAAE,SAAU1M,EAAcqC,EAAQC,GAIlD,IAFA,IAEShD,EAAI,EAAGA,EAAI+C,EAAO3F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIL,EAAO/C,GAAGqD,aAAajG,OAAQgG,CAAC,GAAI,CACtD,IAAIiK,EAActK,EAAO/C,GAAGqD,aAAaD,GAEzC,GANuB,QAMnBiK,EAAY3J,aAAwC,CAAC2J,EAAY1J,UAA0C,QAA9B0J,EAAY9J,cAC3F,MAAO,EACX,CAEF,MAAO,EACT,GACA4E,qBAAsB,CAAF,SAAE,SAAUpF,GAI9B,IAFA,IAES/C,EAAI,EAAGA,EAAI+C,EAAO3F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIL,EAAO/C,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAJyB,SAIrBL,EAAO/C,GAAGqD,aAAaD,GAAGM,aAAsF,QAA5CX,EAAO/C,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CR,EAAO/C,GAAGqD,aAAaD,GAAGI,YACrJ,MAAO,GAIb,MAAO,EACT,GACAI,OAAQ,CAAF,iCAAE,SAAUlD,EAAcmD,GAE9B,OAAOA,EACJD,OAAO,CAAE/C,SAAUH,EAAaI,QAAS,CAAC,EAC1CzB,KAAK,WACJ,MAAO,CAAC,CAACwE,EAAgBrF,KAAKoF,OAAOlD,EAAaI,SACpD,CAAC,CACL,GACAwM,sBAAuB,CAAF,6BAAE,SAAU5M,EAAc6J,GAE7C,OAAOA,EAAYgD,yBAAyB,CAAE1M,SAAUH,EAAaI,QAAS,CAAC,EAC5EzB,KAAK,WACJ,OAAOkL,EAAY/L,KAAKgP,sBAAsB9M,EAAaI,SAC7D,CAAC,CACL,EACF,EACAtC,KAAM,CACJ+B,UAAW,OACb,CACF,CAAC,EACAxC,MAAM,2BAA4B,CACjCiB,IAAK,4BACLC,YAAa,gCACbf,WAAY,yBACZgB,aAAc,qBACdxC,QAAS,CACP+Q,aAAc,CAAF,wDAAE,SAAUzM,EAAcN,EAAcgN,GAElD,OAAOA,EAAwBC,oBAAoB,CAAE9M,SAAUH,EAAaI,SAAUiL,IAAK/K,EAAa+K,GAAI,CAAC,EAC1G1M,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAI0N,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UAAU1D,OAAQ4C,CAAC,GACjG,GAAI0N,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UAAUd,GAAG6N,UAAY7M,EAAa+K,IACpG,OAAOzO,QAAQqB,KAAK+O,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UAAUd,EAAE,CAIlG,CAAC,CACL,GACA+C,OAAQ,CAAF,8BAAE,SAAUrC,EAAcsC,GAE9B,OAAOA,EACJC,UAAU,CAAEpC,SAAUH,EAAaI,QAAS,CAAC,EAC7CzB,KAAK,WACJ,OAAO2D,EAAaxE,KAAK0E,OAAOxC,EAAaI,SAC/C,CAAC,CACL,GACAqH,qBAAsB,CAAF,SAAE,SAAUpF,GAI9B,IAFA,IAES/C,EAAI,EAAGA,EAAI+C,EAAO3F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIL,EAAO/C,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAJyB,SAIrBL,EAAO/C,GAAGqD,aAAaD,GAAGM,aAAsF,QAA5CX,EAAO/C,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CR,EAAO/C,GAAGqD,aAAaD,GAAGI,YACrJ,MAAO,GAIb,MAAO,EACT,GACAsK,cAAe,CAAF,yEAAE,SAAUpN,EAAcqN,EAAmBN,EAActF,GAEtE,OAAO4F,EAAkBC,WAAWtN,EAAaI,SAAU,CAAC2M,GAAetF,CAAoB,EAC5F9I,KAAK,WACJ,OAAO0O,EAAkBvP,KAAKkC,EAAaI,UAAUmN,OACvD,CAAC,CACL,EACF,EACAzP,KAAM,CACJ+B,UAAW,sBACb,CACF,CAAC,EACAxC,MAAM,mBAAoB,CACzBiB,IAAK,oBACLC,YAAa,wBACbf,WAAY,iBACZgB,aAAc,aACdxC,QAAS,CACPwR,KAAM,CAAF,4CAAE,SAAUlN,EAAcN,EAAc6J,GAE1C,OAAOA,EAAY4D,SAAS,CAAEtN,SAAUH,EAAaI,QAAS,CAAC,EAC5DzB,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAIuK,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAU1D,OAAQ4C,CAAC,GACzE,GAAIuK,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAUd,GAAG+G,IAAM/F,EAAa/E,GACtE,OAAOqB,QAAQqB,KAAK4L,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAUd,EAAE,CAI1E,CAAC,CACL,GACA0M,gBAAiB,CAAF,6BAAE,SAAUhM,EAAc6J,GAEvC,OAAOA,EAAYoC,mBAAmB,CAAE9L,SAAUH,EAAaI,QAAS,CAAC,EACtEzB,KAAK,WACJ,OAAOkL,EAAY/L,KAAKoO,gBAAgBlM,EAAaI,SACvD,CAAC,CACL,GACAyI,aAAc,CAAF,oCAAE,SAAU7I,EAAcqF,GAEpC,OAAOA,EAAmBC,gBAAgB,CAAEnF,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WACJ,OAAO0G,EAAmBvH,KAAKyH,aAAavF,EAAaI,SAC3D,CAAC,CACL,GACAkE,QAAS,CAAF,oCAAE,SAAUjD,EAAIrB,EAAcuE,GAEnC,OAAOA,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WAKJ,IAJA,IAAIT,EAAUtB,QAAQqB,KAAKsG,EAAczG,KAAKI,QAAQ8B,EAAaI,SAAS,EAAEoB,OAAO,SAAUmD,GAC7F,OAAOA,EAAEF,QACX,CAAC,EAEQnF,EAAI,EAAGA,EAAIpB,EAAQxB,OAAQ4C,CAAC,GAAI,CACvCpB,EAAQoB,GAAGsF,gBAAkB1G,EAAQoB,GAAGsF,gBAAgBpD,OAAO,SAAUmD,GACvE,OAAOA,EAAEF,QACX,CAAC,EAED,IAAK,IAAI/B,EAAI,EAAGA,EAAIxE,EAAQoB,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GACtDxE,EAAQoB,GAAGsF,gBAAgBlC,GAAG+J,cAAgBvO,EAAQoB,GAAGsF,gBAAgBlC,GAAG+J,cAAcjL,OAAO,SAAUmD,GACzG,OAAOA,EAAEF,QACX,CAAC,CACL,CAEA,OAAOvG,CACT,CAAC,CACL,GACAmE,OAAQ,CAAF,8BAAE,SAAUrC,EAAcsC,GAE9B,OAAOA,EACJC,UAAU,CAAEpC,SAAUH,EAAaI,QAAS,CAAC,EAC7CzB,KAAK,WACJ,OAAO2D,EAAaxE,KAAK0E,OAAOxC,EAAaI,SAC/C,CAAC,CACL,GACAqH,qBAAsB,CAAF,SAAE,SAAUpF,GAI9B,IAFA,IAES/C,EAAI,EAAGA,EAAI+C,EAAO3F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIL,EAAO/C,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAJyB,SAIrBL,EAAO/C,GAAGqD,aAAaD,GAAGM,aAAsF,QAA5CX,EAAO/C,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CR,EAAO/C,GAAGqD,aAAaD,GAAGI,YACrJ,MAAO,GAIb,MAAO,EACT,GACAsK,cAAe,CAAF,iEAAE,SAAUpN,EAAcqN,EAAmBG,EAAM/F,GAE9D,OAAO4F,EAAkBC,WAAWtN,EAAaI,SAAU,CAACoN,GAAO/F,CAAoB,EACpF9I,KAAK,WACJ,OAAO0O,EAAkBvP,KAAKkC,EAAaI,UAAUmN,OACvD,CAAC,CACL,GACA3M,iBAAkB,CAAF,mCAAE,SAAUC,EAAmBb,GAE7C,OAAOa,EAAkBC,oBAAoB,CAAEX,SAAUH,EAAaI,QAAS,CAAC,EAC7EzB,KAAK,WACJ,OAAOkC,EAAkB/C,KAAKiD,iBAAiBf,EAAaI,SAC9D,CAAC,CACL,GACAgB,WAAY,CAAF,sDAAE,SAAUR,EAAkBC,EAAmBb,GAEzD,OAAOa,EAAkB/C,KAAKmD,YAAYjB,EAAaI,SACzD,GACA8G,eAAgB,CAAF,iFAAE,SAAUrG,EAAmBb,EAAcM,EAAc0L,EAAiB5K,GAExF,OAAOP,EAAkBsG,kBAAkB,CAAEhH,SAAUH,EAAaI,QAAS,CAAC,EAC3EzB,KAAK,WACJ,OAAOkC,EAAkB/C,KAAKsJ,eAAepH,EAAaI,UAAUoB,OAClE,SAAUmD,GACR,OAAOA,EAAE6C,QAAUlH,EAAa/E,EAClC,CAAC,EAAEH,IAAI,SAAUuJ,GACf,MAAO,CACL+I,gBAAiBtM,EAAWI,OAAO,SAAUC,GAAK,OAAOA,EAAEC,cAAgBiD,EAAEjD,YAAc,CAAC,EAAEiM,MAAM,GAAK,IAAIC,YAC7GC,QAAS7B,EAAgBxK,OAAO,SAAUsM,GAAK,OAAOA,EAAE3D,OAASxF,EAAEoJ,SAAW,CAAC,EAAEJ,MAAM,GAAK,IAAIvD,IAChG4D,SAAUrJ,EAAEsJ,QACd,CACF,CAAC,CACL,CAAC,CACL,EACF,EACAnQ,KAAM,CACJ+B,UAAW,aACb,CACF,CAAC,EACAxC,MAAM,8BAA+B,CACpCiB,IAAK,wBACLC,YAAa,kCACbf,WAAY,2BACZgB,aAAc,aACdxC,QAAS,CACPkS,OAAQ,CAAF,8CAAE,SAAU5N,EAAcN,EAAcuE,GAE5C,OAAOA,EAAc4J,UAAU,CAAEhO,SAAUH,EAAaI,SAAUgO,SAAU9N,EAAa8N,QAAS,CAAC,EAChGzP,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM/F,EAAa8N,SAAU,CACpF,IAAIjQ,EAASvB,QAAQqB,KAAKsG,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,EAAE,EAE9EnB,EAAOyG,gBAAkBzG,EAAOyG,gBAAgBpD,OAAO,SAAUmD,GAC/D,OAAOA,EAAEF,QACX,CAAC,EAED,IAAK,IAAI/B,EAAI,EAAGA,EAAIvE,EAAOyG,gBAAgBlI,OAAQgG,CAAC,GAClDvE,EAAOyG,gBAAgBlC,GAAG+J,cAAgBtO,EAAOyG,gBAAgBlC,GAAG+J,cAAcjL,OAAO,SAAUmD,GACjG,OAAOA,EAAEF,QACX,CAAC,EAEH,OAAOtG,CACT,CAGJ,CAAC,CACL,EACF,EACAL,KAAM,CACJ+B,UAAW,kBACb,CACF,CAAC,EACAxC,MAAM,iDAAkD,CACvDiB,IAAK,wBACLC,YAAa,0CACbf,WAAY,mCACZgB,aAAc,qBACdxC,QAAS,CACPqS,eAAgB,CAAF,uDAAE,SAAU/N,EAAcN,EAAcuE,EAAe2J,GAEnE,OAAO3J,EACJ+J,kBAAkB,CACjBnO,SAAUH,EAAaI,SACvBgO,SAAUF,EAAO7H,GACjBM,iBAAkBrG,EAAaiO,UACjC,CAAC,EACA5P,KAAK,SAAUb,GACd,GAAKA,GAAKA,KAAKuI,GACb,OAAOvI,EAAKA,KAEZ,IAAK,IAAIwB,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM6H,EAAO7H,GACpE,IAAK,IAEGhI,EAFCqE,EAAI,EAAGA,EAAI6B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GAChG,GAAI6B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,GAAG2D,IAAM/F,EAAaiO,WAK7F,OAJIlQ,EAAiBzB,QAAQqB,KAAKsG,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,EAAE,GAC1F+J,cAAgBpO,EAAeoO,cAAcjL,OAAO,SAAUmD,GAC3E,OAAOA,EAAEF,QACX,CAAC,EACMpG,CAKnB,CAAC,CACL,EACF,EACAP,KAAM,CACJ+B,UAAW,kBACb,CACF,CAAC,EACAxC,MAAM,uBAAwB,CAC7BiB,IAAK,+BACLC,YAAa,4BACbf,WAAY,qBACZgB,aAAc,iBACdV,KAAM,CACJ+B,UAAW,iBACb,CACF,CAAC,EACAxC,MAAM,mBAAoB,CACzBiB,IAAK,2BACLC,YAAa,wBACbf,WAAY,iBACZgB,aAAc,aACdV,KAAM,CACJ+B,UAAW,aACb,CACF,CAAC,EACAxC,MAAM,gBAAiB,CACtBC,SAAU,GACVC,SAAU,qBACZ,CAAC,EACAF,MAAM,wBAAyB,CAC9BiB,IAAK,WACLC,YAAa,qBACbf,WAAY,cACZgB,aAAc,UACdxC,QAAS,CACPsI,QAAS,CAAF,+BAAE,SAAUtE,EAAcuE,GAE/B,OAAOA,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WACJ,OAAO4F,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUoB,OAAO,SAAUmD,GACxE,OAAOA,EAAE0B,EACX,CAAC,CACH,CAAC,CACL,EACF,EACAvI,KAAM,CACJ+B,UAAW,UACXC,aAAc,YAChB,CACF,CAAC,EACAzC,MAAM,qBAAsB,CAC3BiB,IAAK,gBACLC,YAAa,wBACbf,WAAY,iBACZgB,aAAc,aACdxC,QAAS,CACPwS,kBAAmB,CAAF,+BAAE,SAAUxO,EAAcuE,GAEzC,OAAOA,EAAckK,qBAAqB,EACvC9P,KAAK,WACJ,OAAO4F,EAAczG,KAAK4Q,iBAC5B,CAAC,CACL,EACF,EACA5Q,KAAM,CACJ+B,UAAW,cACXC,aAAc,YAChB,CACF,CAAC,EACAzC,MAAM,uBAAwB,CAC7BiB,IAAK,cACLC,YAAa,oBACbf,WAAY,aACZgB,aAAc,SACdxC,QAAS,CACPsI,QAAS,CAAF,+BAAE,SAAUtE,EAAcuE,GAE/B,OAAOA,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WACJ,OAAO4F,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUoB,OAAO,SAAUmD,GACxE,OAAOA,EAAE0B,EACX,CAAC,CACH,CAAC,CACL,GACA6H,OAAQ,CAAF,wDAAE,SAAU5N,EAAcN,EAAcsE,EAASC,GAErD,OAAOA,EACJ4J,UAAU,CAAEhO,SAAUH,EAAaI,SAAUgO,SAAU9N,EAAa/E,EAAG,CAAC,EACxEoD,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM/F,EAAa/E,GAC1E,OAAOgJ,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,EAC/D,CAAC,CACL,EACF,EACAxB,KAAM,CACJ+B,UAAW,SACXC,aAAc,eAChB,CACF,CAAC,EACAzC,MAAM,4BAA6B,CAClCiB,IAAK,oBACLC,YAAa,yBACbf,WAAY,kBACZgB,aAAc,cACdxC,QAAS,CACPsI,QAAS,CAAF,+BAAE,SAAUtE,EAAcuE,GAE/B,OAAOA,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WACJ,OAAO4F,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUoB,OAAO,SAAUmD,GACxE,OAAOA,EAAE0B,EACX,CAAC,CACH,CAAC,CACL,GACA6H,OAAQ,CAAF,wDAAE,SAAU5N,EAAcN,EAAcsE,EAASC,GAErD,OAAOA,EACJ4J,UAAU,CAAEhO,SAAUH,EAAaI,SAAUgO,SAAU9N,EAAa/E,EAAG,CAAC,EACxEoD,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM/F,EAAa/E,GAC1E,OAAOgJ,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,EAC/D,CAAC,CACL,EACF,EACAxB,KAAM,CACJ+B,UAAW,cACb,CACF,CAAC,EACAxC,MAAM,+BAAgC,CACrCiB,IAAK,+CACLC,YAAa,4BACbf,WAAY,qBACZgB,aAAc,iBACdxC,QAAS,CACPsI,QAAS,CAAF,+BAAE,SAAUtE,EAAcuE,GAE/B,OAAOA,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,CAAC,EAChEzB,KAAK,WACJ,OAAO4F,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUoB,OAAO,SAAUmD,GACxE,OAAOA,EAAE0B,EACX,CAAC,CACH,CAAC,CACL,GACA6H,OAAQ,CAAF,wDAAE,SAAU5N,EAAcN,EAAcsE,EAASC,GAErD,OAAOA,EACJ4J,UAAU,CAAEhO,SAAUH,EAAaI,SAAUgO,SAAU9N,EAAa/E,EAAG,CAAC,EACxEoD,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM/F,EAAa/E,GAC1E,OAAOgJ,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,EAC/D,CAAC,CACL,GACAsF,gBAAiB,CAAF,8CAAE,SAAUtE,EAAcN,EAAcuE,GAErD,OAAOA,EAAc4J,UAAU,CAAEhO,SAAUH,EAAaI,SAAUgO,SAAU9N,EAAa/E,EAAG,CAAC,EAC1FoD,KAAK,WAEJ,IADA,IAAIR,EAASwQ,OACJrP,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM/F,EAAa/E,GAAI,CAC9E4C,EAASoG,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAC3D,KACF,CAGF,OAAInB,EACKA,EAAOyG,gBAEP,EAEX,CAAC,CACL,GACAyJ,eAAgB,CAAF,wDAAE,SAAU/N,EAAcN,EAAcsE,EAASC,GAE7D,OAAOA,EACJ+J,kBAAkB,CACjBnO,SAAUH,EAAaI,SACvBgO,SAAU9N,EAAa/E,GACvBoL,iBAAkBrG,EAAaqG,gBACjC,CAAC,EACAhI,KAAK,SAAUb,GACd,GAAKA,GAAKA,KAAKuI,GACb,OAAOvI,EAAKA,KAEZ,IAAK,IAAIwB,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM/F,EAAa/E,GAC1E,IAAK,IAAImH,EAAI,EAAGA,EAAI6B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GAChG,GAAI6B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,GAAG2D,IAAM/F,EAAaqG,iBAC7F,OAAOpC,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,EACxF,CAAC,CACL,EACF,EACA5E,KAAM,CACJ+B,UAAW,iBACb,CACF,CAAC,EACAxC,MAAM,aAAc,CACnBC,SAAU,GACVgB,IAAK,QACLC,YAAa,kBACbf,WAAY,WACZgB,aAAc,OACdxC,QAAS,CACP+D,eAAgB,CAAF,6BAAE,SAAUC,EAAcvC,GAEtC,GAAIuC,EAAaC,mBACf,OAAOxC,EACJyC,sBAAsB,CAAEC,SAAUH,EAAaI,QAAS,CAAC,EACzDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAKuC,mBAAmBL,EAAaI,SAC1D,CAAC,CACP,GACAwL,KAAM,CAAF,SAAE,SAAUgD,GAEd,OAAOA,CACT,GACAC,SAAU,CAAF,iCAAE,SAAU7O,EAAc8O,GAEhC,OAAOA,EACJC,YAAY,CAAE5O,SAAUH,EAAaI,QAAS,CAAC,EAC/CzB,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKkR,SAAShP,EAAaI,SACpD,CAAC,CACL,GACA6O,oBAAqB,CAAF,8BAAE,SAAUjP,EAAcsC,GAE3C,OAAOA,EACJC,UAAU,CAAEpC,SAAUH,EAAaI,QAAS,CAAC,EAC7CzB,KAAK,WAIJ,IAHA,IAAI6D,EAASF,EAAaxE,KAAK0E,OAAOxC,EAAaI,WAAa,GAC5D8O,EAAa,GAER5P,EAAI,EAAGA,EAAIkD,EAAO9F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIF,EAAOlD,GAAGqD,aAAajG,OAAQgG,CAAC,GAC7CwM,EAAW1N,OAAO,SAAUmD,GAAK,OAAOA,GAAKnC,EAAOlD,GAAGqD,aAAaD,GAAGyM,SAAW,CAAC,EAAEzS,QACxFwS,EAAWrK,KAAKrC,EAAOlD,GAAGqD,aAAaD,GAAGyM,SAAS,EAEzD,OAAOD,EAAWE,KAAK,GAAG,CAC5B,CAAC,CACL,GACAC,kBAAmB,CAAF,iCAAE,SAAUrP,EAAc8O,GAEzC,OAAOA,EAAgBQ,qBAAqB,CAAEnP,SAAUH,EAAaI,QAAS,CAAC,EAC5EzB,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKyR,kBAAkBvP,EAAaI,SAC7D,CAAC,CACL,GACAoP,qBAAsB,CAAF,sFAAE,SAAUxP,EAAc6O,EAAUC,EAAiBO,EAAmBJ,GAG1F,IAAIC,EAAaL,EAASY,OAAOJ,CAAiB,EAAEjU,IAAI,SAAAsU,GACtD,OAAOA,EAAErJ,EACX,CAAC,EAAEoJ,OAAOR,CAAmB,EAAEG,KAAK,GAAG,EAEvC,OAAON,EAAgBa,UAAU,CAAExP,SAAUH,EAAaI,SAAU8O,WAAYA,CAAW,CAAC,EACzFvQ,KAAK,WACJ,IAAIiR,EAAiBd,EAAgBhR,KAAK+R,OAAO7P,EAAaI,UAAU8O,IAAe,GAEvF,OAAOL,EAASY,OAAOJ,CAAiB,EAAEI,OAAOG,CAAc,CACjE,CAAC,CACL,GASAE,eAAgB,CAAF,oHAAE,SAAU9P,EAAciP,EAAqBH,EAAiBD,EAAUQ,EAAmBzD,EAAM4D,GAE/G,IAAIO,EAAclB,EAASY,OAAOJ,CAAiB,EAa/CH,EAAa,CAXItD,EAAKoE,SAAS,EAAE5U,IAAI,SAAUO,GACjD,IAAIsU,EAAUF,EAAYvO,OAAO,SAAUkO,GACzC,OAAOA,EAAEQ,gBAAkBvU,EAAEwU,GAC/B,CAAC,EAED,OAAIF,EAAQvT,OACHuT,EAAQ,GAAG5J,GAEX,CACX,CAAC,EAAE+I,KAAK,GAAG,EAEuBH,GAAqBzN,OAAO,SAAUmD,GAAK,MAAO,CAAC,CAACA,CAAG,CAAC,EAAEyK,KAAK,GAAG,EAEpG,OAAON,EAAgBa,UAAU,CAAExP,SAAUH,EAAaI,SAAU8O,WAAYA,CAAW,CAAC,EACzFvQ,KAAK,WACJ,IAAIiR,EAAiBd,EAAgBhR,KAAK+R,OAAO7P,EAAaI,UAAU8O,IAAe,GACnFkB,EAAQ,GACZ,GAAKR,EAML,IAAK,IAAItQ,EAAI,EAAGA,EAAIsQ,EAAelT,OAAQ4C,CAAC,GAC1C,IAAK,IAAI+Q,EAAI,EAAGA,EAAIb,EAAqB9S,OAAQ2T,CAAC,GAC5CT,EAAetQ,GAAG+G,IAAMmJ,EAAqBa,GAAGhK,IAClD+J,EAAMvL,KAAK2K,EAAqBa,EAAE,EAKxC,OAAOD,CACT,CAAC,CACL,GACA1F,UAAW,CAAF,kCAAE,SAAU1K,EAAc8H,GAEjC,OAAOA,EAAiB+C,aAAa,CACnC1K,SAAUH,EAAaI,QACzB,CAAC,CACH,EACF,CACF,CAAC,EACA/C,MAAM,oBAAqB,CAC1BiB,IAAK,UACLC,YAAa,wBACbC,aAAc,SACdhB,WAAY,CAAF,wDAAE,SAAU8S,EAAeC,EAAYvQ,EAAcwQ,GAElDhN,KAENiN,sBAAwBtU,OAAOuU,qBAAqBC,SAAS,EAAEC,MAAM,GAAG,EAAEC,SAAS7Q,EAAaI,QAAQ,EAFlGoD,KAGNsN,mBAAqB9Q,EAAaC,mBAH5BuD,KAINgN,UAAYA,EAEjBD,EAAWQ,iBAAmB,GAE9BT,EAAc,EAEdnU,OAAO6U,UAAY7U,OAAO6U,WAAa,GACvCA,UAAUnM,KAAK,CAAE,MAAS,mBAAoB,CAAC,CACjD,GACA/G,KAAM,CACJ+B,UAAW,cACb,CACF,CAAC,EACAxC,MAAM,4BAA6B,CAClCiB,IAAK,kBACLC,YAAa,4BACbf,WAAY,eACZgB,aAAc,iBACdxC,QAAS,CACP+D,eAAgB,CAAF,6BAAE,SAAUC,EAAcvC,GAEtC,GAAIuC,EAAaC,mBACf,OAAOxC,EACJyC,sBAAsB,CAAEC,SAAUH,EAAaI,QAAS,CAAC,EACzDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAKuC,mBAAmBL,EAAaI,SAC1D,CAAC,CACP,GACA6Q,kBAAmB,CAAF,qDAAE,SAAUjR,EAAc8O,EAAiBxL,GAE1D,MAAkC,IAA9BtD,EAAakR,cACRpC,EAAgBqC,qBAAqB,CAAEhR,SAAUH,EAAakR,cAAeE,YAAa9N,EAAkB+N,WAAY,CAAC,EAC7H1S,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKwT,kBAAkBtR,EAAakR,eAAe5N,EAAkB+N,YAC9F,CAAC,EAGI,EAEX,GACAE,oBAAqB,CAAF,6FAAE,SAAU/B,EAAsBxP,EAAc8O,EAAiBxL,EAAmBvD,GAGrG,IAAIqR,EAAc9N,EAAkB+N,YAChCG,EAAU,EACVC,EAAY,EACZC,EAAS,EAYb,OAVsC,EAAlC3R,EAAe4R,UAAUjV,SAC3B8U,EAAUzR,EAAe4R,UAAU,GAAGC,qBACtCH,EAAY1R,EAAe4R,UAAU,GAAGF,UACxCC,EAASG,KAAKC,KAAKL,EAAY,GAAG,GAEP,UAAzBzR,EAAaI,WACfgR,EAAc,QACdI,EAAU,SAG0B,EAAlCzR,EAAe4R,UAAUjV,QAA0B,EAAZ+U,EAClC3C,EAAgBiD,oCAAoC,CAAEX,YAAaA,EAAaY,qBAAsBR,EAASS,aAAcP,EAAQQ,gBAAiBT,EAAWtR,SAAUH,EAAaI,QAAS,CAAC,EACtMzB,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKqU,iCAAiCf,GAAaI,GAASE,GAAQD,GAAWzR,EAAaI,SACrH,CAAC,EAEI,EAEX,EACF,EACAtC,KAAM,CACJ+B,UAAW,gBACb,CACF,CAAC,EACAxC,MAAM,sBAAuB,CAC5BiB,IAAK,YACLC,YAAa,sBACbf,WAAY,eACZgB,aAAc,WACdxC,QAAS,CACP+D,eAAgB,CAAF,6BAAE,SAAUC,EAAcvC,GAEtC,GAAIuC,EAAaC,mBACf,OAAOxC,EACJyC,sBAAsB,CAAEC,SAAUH,EAAaI,QAAS,CAAC,EACzDzB,KAAK,WACJ,OAAOlB,EAAYK,KAAKuC,mBAAmBL,EAAaI,SAC1D,CAAC,CACP,GACA6Q,kBAAmB,CAAF,qDAAE,SAAUjR,EAAc8O,EAAiBxL,GAE1D,MAAkC,IAA9BtD,EAAakR,cACRpC,EAAgBqC,qBAAqB,CAAEhR,SAAUH,EAAakR,cAAeE,YAAa9N,EAAkB+N,WAAY,CAAC,EAC7H1S,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKwT,kBAAkBtR,EAAakR,eAAe5N,EAAkB+N,YAC9F,CAAC,EAGI,EAEX,GACAE,oBAAqB,WAEnB,MAAO,EACT,CACF,EACAzT,KAAM,CACJ+B,UAAW,WACXuS,YAAa,sBACf,CACF,CAAC,EACA/U,MAAM,sBAAuB,CAC5BiB,IAAK,yBACLC,YAAa,sBACbf,WAAY,eACZgB,aAAc,WACdxC,QAAS,CACPqW,QAAS,CAAF,gDAAE,SAAU/R,EAAcN,EAAc8O,GAE7C,OAAOA,EACJC,YAAY,CAAE5O,SAAUH,EAAaI,QAAS,CAAC,EAC/CzB,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKkR,SAAShP,EAAaI,UAAUoB,OAAO,SAAUmD,GAC3E,OAAOA,EAAE0B,IAAM/F,EAAa/E,EAC9B,CAAC,EAAE,EACL,CAAC,CACL,EACF,EACAuC,KAAM,CACJ+B,UAAW,WACb,CACF,CAAC,EACAxC,MAAM,oBAAqB,CAC1BiB,IAAK,eACLC,YAAa,oBACbf,WAAY,eACZgB,aAAc,SACdxC,QAAS,CACP+T,YAAa,CAAF,sCAAE,SAAU1O,EAAIrB,EAAc8O,GAEvC,OAAOzN,EAAGyH,IAAI,CACZgG,EAAgBC,YAAY,CAAE5O,SAAUH,EAAaI,QAAS,CAAC,EAC/D0O,EAAgBQ,qBAAqB,CAAEnP,SAAUH,EAAaI,QAAS,CAAC,EACzE,EAAEzB,KAAK,WACN,OAAOmQ,EAAgBhR,KAAKkR,SAAShP,EAAaI,UAC/CqP,OAAOX,EAAgBhR,KAAKyR,kBAAkBvP,EAAaI,SAAS,CACzE,CAAC,CACH,GACAyO,SAAU,CAAF,sDAAE,SAAU7O,EAAc4L,EAAMkD,EAAiBiB,GAEvD,IAAIb,EAAatD,EAAKoE,SAAS,EAAE5U,IAAI,SAAUO,GAC7C,IAAIsU,EAAUF,EAAYvO,OAAO,SAAUkO,GACzC,OAAOA,EAAEQ,gBAAkBvU,EAAEwU,GAC/B,CAAC,EAED,OAAIF,EAAQvT,OACHuT,EAAQ,GAAG5J,GAEX,CACX,CAAC,EAAE+I,KAAK,GAAG,EAEX,OAAON,EACJa,UAAU,CAAExP,SAAUH,EAAaI,SAAU8O,WAAYA,CAAW,CAAC,EACrEvQ,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAK+R,OAAO7P,EAAaI,UAAU8O,EAC5D,CAAC,CACL,GACA+B,kBAAmB,CAAF,qDAAE,SAAUjR,EAAc8O,EAAiBxL,GAE1D,MAAkC,IAA9BtD,EAAakR,cACRpC,EAAgBqC,qBAAqB,CAAEhR,SAAUH,EAAakR,cAAeE,YAAa9N,EAAkB+N,WAAY,CAAC,EAC7H1S,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKwT,kBAAkBtR,EAAakR,eAAe5N,EAAkB+N,YAC9F,CAAC,EAGI,EAEX,GACAE,oBAAqB,WAEnB,MAAO,EACT,EACAzB,eAAgB,WAEd,MAAO,EACT,EAIAN,qBAAsB,CAAF,4BAAE,SAAUX,EAAUiB,GAExC,OAAOjB,CACT,GACAQ,kBAAmB,WAEjB,MAAO,EACT,CACF,EACAvR,KAAM,CACJ+B,UAAW,sBACb,CACF,CAAC,EACAxC,MAAM,kBAAmB,CACxBiB,IAAK,sBACLC,YAAa,kBACb+T,OAAQ,CACNC,aAAc,EAChB,EACA/U,WAAY,WACZgB,aAAc,OACdxC,QAAS,CACPwW,UAAW,CAAF,iBAAE,SAAUC,GAEnB,OAAOA,EAAeC,oBAAoB,EACvC/T,KAAK,WACJ,OAAO8T,EAAe3U,KAAK6U,gBAC7B,CAAC,CACL,GACAxG,UAAW,CAAF,iBAAE,SAAUsG,GAEnB,OAAOA,EAAe3I,aAAa,EAChCnL,KAAK,WACJ,OAAO8T,EAAe3U,KAAKoM,SAC7B,CAAC,CACL,GACAkC,OAAQ,CAAF,iBAAE,SAAUqG,GAEhB,OAAOA,EAAejG,UAAU,EAC7B7N,KAAK,WACJ,OAAO8T,EAAe3U,KAAKwM,MAC7B,CAAC,CACL,GACAsI,UAAW,CAAF,OAAE,SAAUhH,GAEnB,OAAOA,EAAKiH,UAAU,CACxB,GACAC,UAAW,CAAF,iDAAE,SAAUxP,EAAmB1B,EAAa5B,GAEnD,OAAQsD,EAAkByP,QAAenR,EACtCoR,SAAS,CAAE7S,SAAUH,EAAaI,SAAU6S,WAAY3P,EAAkByP,OAAQ,CAAC,EACnFpU,KAAK,WACJ,OAAOiD,EAAY9D,KAAKwN,KAC1B,CAAC,EAJiC,EAKtC,GACA4H,OAAQ,CAAF,gEAAE,SAAU7R,EAAIyN,EAAiBhH,EAAkB9H,EAAc4L,GAErE,IAAIuH,EAAsB,GACtBC,EAAS,GAEb,OAAO/R,EAAGyH,IAAK,WAKb,IAJA,IAAIC,EAAW,GAGXsK,EAAYzH,EAAKoE,SAAS,EACrB1Q,EAAI,EAAGA,EAAI+T,EAAU3W,OAAQ4C,CAAC,GAC/B+T,EAAU/T,GAAGgU,QAAQ,EAAEC,wBAC3BJ,EAAoBtO,KAAKwO,EAAU/T,GAAGgU,QAAQ,EAAEE,SAAS,EACzDzK,EAASlE,KAAKiD,EAAiB2L,SAASzT,EAAaI,SAAUiT,EAAU/T,GAAGgU,QAAQ,CAAC,CAAC,GAI1F,OAAOvK,CACT,EAAC,CAAG,EACDpK,KAAK,SAAUtC,GAEd,IAAK,IAAIiD,EAAI,EAAGA,EAAIjD,EAAQK,OAAQ4C,CAAC,GAC/BjD,EAAQiD,GAAG5C,SACb0W,EAAOM,UAAYN,EAAOM,WAAa,GACvCN,EAAOM,UAAUP,EAAoB7T,IAAMjD,EAAQiD,IAIvD,OAAO8T,CACT,CAAC,CACL,EACF,EACAtV,KAAM,CACJ+B,UAAW,OACXuS,YAAa,kBACf,CACF,CAAC,EACA/U,MAAM,qBAAsB,CAC3BiB,IAAK,WACLC,YAAa,qBACbf,WAAY,cACZgB,aAAc,UACdxC,QAAS,CACPwW,UAAW,CAAF,iBAAE,SAAUC,GAEnB,OAAOA,EAAeC,oBAAoB,EACvC/T,KAAK,WACJ,OAAO8T,EAAe3U,KAAK6U,gBAC7B,CAAC,CACL,GACAxG,UAAW,CAAF,iBAAE,SAAUsG,GAEnB,OAAOA,EAAe3I,aAAa,EAChCnL,KAAK,WACJ,OAAO8T,EAAe3U,KAAKoM,SAC7B,CAAC,CACL,GACAkC,OAAQ,CAAF,iBAAE,SAAUqG,GAEhB,OAAOA,EAAejG,UAAU,EAC7B7N,KAAK,WACJ,OAAO8T,EAAe3U,KAAKwM,MAC7B,CAAC,CACL,GACAsI,UAAW,CAAF,OAAE,SAAUhH,GAEnB,OAAOA,EAAKiH,UAAU,CACxB,EACF,EACA/U,KAAM,CACJ+B,UAAW,SACb,CACF,CAAC,EACAxC,MAAM,qBAAsB,CAC3BiB,IAAK,iBACLf,SAAU,sBACVvB,QAAS,CACP2X,UAAW,CAAF,6CAAE,SAAUrT,EAAcN,EAAcsC,GAE/C,OAAIhC,EAAasT,KACRtR,EAAauR,cAAc,CAChC/V,KAAM,CACJ8V,KAAMtT,EAAasT,KACnBzT,SAAUH,EAAaI,QACzB,CACF,CAAC,EACEzB,KAAK,SAAUb,GACd,OAAOA,CACT,EAAG,WACD,OAAO,IACT,CAAC,EAGI,IACX,EACF,EACAN,WAAY,CAAF,qCAAE,SAAU8S,EAAeqD,EAAWvQ,GAE9CkN,EAAc,EACVqD,GAAaA,EAAUG,aACzB1Q,EAAO2Q,GAAG,0BAA2B,CAAEC,aAAcL,EAAUM,YAAa,CAAC,EAE7E7Q,EAAO2Q,GAAG,iBAAiB,CAC/B,GACAjW,KAAM,CACJ+B,UAAW,UACb,CACF,CAAC,EACAxC,MAAM,0BAA2B,CAChCiB,IAAK,gBACLC,YAAa,0BACbf,WAAY,mBACZgB,aAAc,eACdxC,QAAS,CACPkY,aAAc,CAAF,eAAE,SAAU5R,GAEtB,OAAInG,OAAO8X,aACF3R,EAAa6R,SAAS,CAAEH,aAAc7X,OAAO8X,YAAa,EAAG,EAAI,EACrEtV,KAAK,SAAUyV,GACd,OAAOA,EAAKtW,IACd,EAAG,WACD,OAAO,IACT,CAAC,EAEO,IACd,EACF,EACAA,KAAM,CACJ+B,UAAW,cACb,CACF,CAAC,EACAxC,MAAM,sBAAuB,CAC5BiB,IAAK,YACLC,YAAa,sBACbf,WAAY,eACZgB,aAAc,WACdxC,QAAS,CACP4W,UAAW,CAAF,OAAE,SAAUhH,GAEnB,OAAOA,EAAKiH,UAAU,CACxB,EACF,EACA/U,KAAM,CACJ+B,UAAW,UACb,CACF,CAAC,EACAxC,MAAM,0BAA2B,CAChCiB,IAAK,8BACLC,YAAa,0BACbvC,QAAS,CACPqY,iBAAkB,CAAF,6CAAE,SAAU/T,EAAcN,EAAcsC,GAEtD,OAAOA,EAAagS,oBAAoB,CACtCnU,SAAUH,EAAaI,SACvB4T,aAAc1T,EAAa0T,YAC7B,EAAG,EAAI,EACJrV,KAAK,WACJ,OAAO2D,EAAaxE,KAAKyW,cAAcvU,EAAaI,UAAUE,EAAa0T,aAC7E,CAAC,CACL,EACF,EACAxW,WAAY,mBACZgB,aAAc,eACdV,KAAM,CACJ+B,UAAW,cACb,CACF,CAAC,EACAxC,MAAM,uBAAwB,CAC7BiB,IAAK,wBACLhB,SAAU,GACVC,SAAU,wCACVvB,QAAS,CACP8P,kBAAmB,CAAF,sBAAE,SAAUxL,EAAcsL,GAKzC,IAHA,IAAIyH,EAAYzH,EAAKoE,SAAS,EAGrB1Q,EAAI,EAAGA,EAAI+T,EAAU3W,OAAQ4C,CAAC,GAGrC,GAFO+T,EAAU/T,GAAGgU,QAAQ,EAEnBE,WAAalT,EAAakT,UACjC,OAAOH,EAAU/T,GAGrB,OAAO,IACT,GACAuM,iBAAkB,CAAF,qDAAE,SAAUC,EAAmB9L,EAAc8O,GAE3D,OAAOA,EAAgBQ,qBAAqB,CAAEnP,SAAUH,EAAaI,QAAS,CAAC,EAC5EzB,KAAK,WACJ,OAAOmQ,EAAgBhR,KAAKyR,kBAAkBvP,EAAaI,UAAUoB,OAAO,SAAUmD,GACpF,OAAOA,EAAEuL,gBAAkBpE,EAAkBwH,QAAQ,EAAEkB,cACzD,CAAC,EAAE,EACL,CAAC,CACL,GACAC,YAAa,CAAF,yBAAE,SAAUC,EAAS1U,GAE9B,IAAI2U,EAAUD,EAAQE,aAAaC,QAAQ,QAAQ,EAK/CC,GAAOH,EAHPA,GACQ/X,QAAQmY,SAASJ,CAAO,IAEd,GAQtB,OAPAG,EAAK9U,EAAaI,UAAY0U,EAAK9U,EAAaI,WAAa,GAC7D0U,EAAK9U,EAAaI,UAAUsT,UAAYoB,EAAK9U,EAAaI,UAAUsT,WAAa,GAEjFoB,EAAK9U,EAAaI,UAAU4U,KAAO,WACjCN,EAAQE,aAAaK,QAAQ,SAAUrY,QAAQsY,OAAOJ,CAAI,CAAC,CAC7D,EAEOA,EAAK9U,EAAaI,SAC3B,EACF,CACF,CAAC,EACA/C,MAAM,qCAAsC,CAC3CiB,IAAK,eACLd,WAAY,gBACZgB,aAAc,YACdD,YAAa,uBACbvC,QAAS,CACPoM,YAAa,WAEX,OAAO,SAAUnE,GACfT,KAAK6E,KAAOpE,EACZT,KAAK8E,cAAgB,EACvB,CACF,EACAC,aAAc,WAEZ,OAAO,SAAUhN,EAAIiN,GACnBhF,KAAK6C,GAAKoC,OAAOlN,CAAE,EACnBiI,KAAKkF,YAAcF,EACnBhF,KAAKmF,YAAc,EACrB,CACF,EACAC,WAAY,WAEV,OAAO,SAAUrN,EAAIiN,GACnBhF,KAAK6C,GAAKoC,OAAOlN,CAAE,EACnBiI,KAAKkF,YAAcF,CACrB,CACF,EACA2M,mBAAoB,CAAF,sCAAE,SAAUtJ,EAAkB/D,GAE9C,OAAOA,EAAiBsN,mBAAmB,CACzCjV,SAAU0L,EAAiBwJ,uBAC7B,CAAC,EAAE1W,KAAK,WACN,OAAOmJ,EAAiBhK,KAAKwX,gBAAgBzJ,EAAiBwJ,yBAAyB7T,OAAO,SAAUmD,GACtG,OAAgB,IAATA,EAAE4Q,EACX,CAAC,CACH,CAAC,CACH,GACAC,mBAAoB,CAAF,sCAAE,SAAU3J,EAAkB/D,GAE9C,OAAOA,EAAiBsN,mBAAmB,CACzCjV,SAAU0L,EAAiBwJ,uBAC7B,CAAC,EAAE1W,KAAK,WACN,OAAOmJ,EAAiBhK,KAAKwX,gBAAgBzJ,EAAiBwJ,yBAAyB7T,OAAO,SAAUmD,GACtG,MAAO,CAACA,EAAE4Q,EACZ,CAAC,CACH,CAAC,CACH,GACA1M,aAAc,CAAF,4HAAE,SAAUgD,EAAkBxG,EAAoB+C,EAAaG,EAAcK,EAAYuM,EAAoBK,GAEvH,OAAOnQ,EAAmBC,gBAAgB,CAAEnF,SAAU0L,EAAiBwJ,uBAAwB,CAAC,EAC7F1W,KAAK,WAOJ,IANA,IAAI4G,EAAeF,EAAmBvH,KAAKyH,aAAasG,EAAiBwJ,yBAAyB7T,OAAO,SAAU7F,GACjH,OAAOA,EAAEyN,yBACX,CAAC,EAEGC,EAAc,IAAIjB,EAAY,cAAc,EAEvC9I,EAAI,EAAGA,EAAIiG,EAAa7I,OAAQ4C,CAAC,GAAI,CAK5C,IAJA,IASMmK,EATFH,EAAe,IAAIf,EAAahD,EAAajG,GAAGiK,UAAWhE,EAAajG,GAAGoJ,WAAW,EACtF+M,EAAgBN,EAAmB3T,OAAO,SAAUmD,GAAK,OAAOA,EAAE4E,UAAUmM,YAAY,IAAMnQ,EAAajG,GAAGiK,UAAUmM,YAAY,CAAG,CAAC,EACxIC,EAAgBH,EAAmBhU,OAAO,SAAUmD,GAAK,OAAOA,EAAE4E,UAAUmM,YAAY,IAAMnQ,EAAajG,GAAGiK,UAAUmM,YAAY,CAAG,CAAC,EAEnIhT,EAAI,EAAGA,EAAI6C,EAAajG,GAAGkK,WAAW9M,OAAQgG,CAAC,GAChD+S,EAAc/Y,QAAW+Y,EAAcjU,OAAO,SAAUmD,GAAK,MAAO,CAAC,CAACA,EAAEiR,QAAQpU,OAAO,SAAUuJ,GAAK,OAAOA,GAAKxF,EAAajG,GAAGkK,WAAW9G,GAAG2D,EAAI,CAAC,EAAE3J,MAAQ,CAAC,EAAEA,QACjKiZ,EAAcjZ,QAAWiZ,GAAcnU,OAAO,SAAUmD,GAAK,MAAO,CAAC,CAACA,EAAEiR,QAAQpU,OAAO,SAAUuJ,GAAK,OAAOA,GAAKxF,EAAajG,GAAGkK,WAAW9G,GAAG2D,EAAI,CAAC,EAAE3J,MAAQ,CAAC,EAAEA,SACnK+M,EAAW,GAEbA,EADElE,EAAajG,GAAGoK,eACPnE,EAAajG,GAAGkK,WAAW9G,GAAGiH,SAAW,MAAQpE,EAAajG,GAAGkK,WAAW9G,GAAGgG,YAE/EnD,EAAajG,GAAGkK,WAAW9G,GAAGgG,YAE3CY,EAAaX,YAAYpD,EAAajG,GAAGkK,WAAW9G,GAAGiH,UAAY,IAAIf,EAAWrD,EAAajG,GAAGkK,WAAW9G,GAAGiH,SAAUF,CAAQ,GAItIJ,EAAYf,cAAc/C,EAAajG,GAAGiK,WAAaD,CACzD,CAEA,OAAOD,CACT,CAAC,CACL,GACAwM,SAAU,CAAF,cAAE,SAAUzN,GAElB,OAAO,IAAIA,EAAY,UAAU,CACnC,GACA+D,UAAW,CAAF,kHAAE,SAAUN,EAAkBhC,EAAagM,EAAUtN,EAAcK,EAAYuM,EAAoBK,GAE1G,OAAO3L,EAAYC,aAAa,CAAE3J,SAAU0L,EAAiBwJ,uBAAwB,CAAC,EACnF1W,KAAK,WAMJ,IALA,IAAIuL,EAAYL,EAAY/L,KAAKoM,UAAU2B,EAAiBwJ,yBACxD/L,EAAe,IAAIf,EAAa,cAAe,SAAS,EACxDkN,EAAgBN,EAAmB3T,OAAO,SAAUmD,GAAK,OAAOA,EAAE4E,UAAUmM,YAAY,IAAMpM,EAAajD,GAAGqP,YAAY,CAAG,CAAC,EAC9HC,EAAgBH,EAAmBhU,OAAO,SAAUmD,GAAK,OAAOA,EAAE4E,UAAUmM,YAAY,IAAMpM,EAAajD,GAAGqP,YAAY,CAAG,CAAC,EAEzHpW,EAAI,EAAGA,EAAI4K,EAAUxN,OAAQ4C,CAAC,GAC/BmW,EAAc/Y,QAAW+Y,EAAcjU,OAAO,SAAUmD,GAAK,MAAO,CAAC,CAACA,EAAEmR,UAAUtU,OAAO,SAAUuJ,GAAK,OAAOA,GAAKb,EAAU5K,GAAG8K,GAAK,CAAC,EAAE1N,MAAQ,CAAC,EAAEA,QACnJiZ,EAAcjZ,QAAWiZ,GAAcnU,OAAO,SAAUmD,GAAK,MAAO,CAAC,CAACA,EAAEmR,UAAUtU,OAAO,SAAUuJ,GAAK,OAAOA,GAAKb,EAAU5K,GAAG8K,GAAK,CAAC,EAAE1N,MAAQ,CAAC,EAAEA,SAEzJ4M,EAAaX,YAAmC,kBAAvBuB,EAAU5K,GAAG6K,MAA4B,GAAKD,EAAU5K,GAAG6K,OAAS,IAAIvB,EAAkC,kBAAvBsB,EAAU5K,GAAG6K,MAA4B,GAAKD,EAAU5K,GAAG6K,MAAOD,EAAU5K,GAAG8K,GAAG,GAGlMyL,EAASvN,cAAcyN,QAAUzM,CACnC,CAAC,CACL,GACA8C,OAAQ,CAAF,wEAAE,SAAUP,EAAkBhC,EAAagM,EAAUtN,EAAcK,GAEvE,OAAOiB,EAAYE,aAAa,CAAE5J,SAAU0L,EAAiBwJ,uBAAwB,CAAC,EACnF1W,KAAK,WAIJ,IAHA,IAAI2L,EAAST,EAAY/L,KAAKyM,UAAUsB,EAAiBwJ,yBACrD/L,EAAe,IAAIf,EAAa,YAAa,OAAO,EAE/CjJ,EAAI,EAAGA,EAAIgL,EAAO5N,OAAQ4C,CAAC,GAClCgK,EAAaX,YAAY2B,EAAOhL,GAAG6K,OAAS,IAAIvB,EAAW0B,EAAOhL,GAAG6K,MAAOG,EAAOhL,GAAG8K,GAAG,EAG3FyL,EAASvN,cAAc0N,MAAQ1M,CACjC,CAAC,CACL,GACA2M,QAAS,CAAF,0BAAE,SAAUpN,EAAcgN,GAE/B,IAAIvJ,EAAU,GAKd,OAHAA,EAAQuJ,EAASxN,MAAQwN,EACzBvJ,EAAQzD,EAAaR,MAAQQ,EAEtByD,CACT,GACA4J,gBAAiB,CAAF,sCAAE,SAAUpO,EAAkB+D,GAE3C,OAAO/D,EAAiBqO,UAAU,CAChChW,SAAU0L,EAAiBwJ,uBAC7B,CAAC,EAAE1W,KAAK,WACN,OAAOmJ,EAAiBhK,KAAKhB,OAAO+O,EAAiBwJ,wBACvD,CAAC,CACH,EACF,EACAvX,KAAM,CACJ+B,UAAW,gBACb,CACF,CAAC,EACAxC,MAAM,oCAAqC,CAC1CiB,IAAK,gBACLd,WAAY,wBACZgB,aAAc,oBACdD,YAAa,+BACbvC,QAAS,CACPgN,SAAU,aAIV0B,UAAW,CAAF,sCAAE,SAAUmB,EAAkB/D,GAErC,OAAOA,EAAiB+C,aAAa,CACnC1K,SAAU0L,EAAiBwJ,uBAC7B,CAAC,EAAE1W,KAAK,WAGN,IAFA,IAAImM,EAAY,GAEPxL,EAAI,EAAGA,EAAIwI,EAAiBhK,KAAKgN,UAAUe,EAAiBwJ,yBAAyB3Y,OAAQ4C,CAAC,GAAI,CAIzG,IAHA,IAAI/B,EAAWX,QAAQqB,KAAK6J,EAAiBhK,KAAKgN,UAAUe,EAAiBwJ,yBAAyB/V,EAAE,EACpG0L,EAAa,GAERtI,EAAI,EAAGA,EAAInF,EAAS0N,WAAWvO,OAAQgG,CAAC,GAC/CsI,EAAWzN,EAAS0N,WAAWvI,GAAGwI,SAAW3N,EAAS0N,WAAWvI,GAEnEnF,EAAS0N,WAAaD,EACtBF,EAAUjG,KAAKtH,CAAQ,CACzB,CAEA,OAAOuN,CACT,CAAC,CACH,GACAM,MAAO,CAAF,oBAAE,SAAUU,GAEf,OAAOA,EAAkBwH,QAAQ,EAAEhI,KACrC,EACF,EACAgH,OAAQ,CACN8D,aAAc,EAChB,EACAtY,KAAM,CACJ+B,UAAW,eACb,CACF,CAAC,EACAxC,MAAM,iCAAkC,CACvCiB,IAAK,aACLC,YAAa,gCACbf,WAAY,yBACZgB,aAAc,qBACdxC,QAAS,CACPqa,UAAW,CAAF,oBAAE,SAAUvK,GAEnB,OAAOA,EAAkBwH,QAAQ,EAAEgD,SACrC,GACAJ,gBAAiB,CAAF,sCAAE,SAAUpO,EAAkB+D,GAE3C,OAAO/D,EAAiBqO,UAAU,CAChChW,SAAU0L,EAAiBwJ,uBAC7B,CAAC,EAAE1W,KAAK,WACN,OAAOmJ,EAAiBhK,KAAKhB,OAAO+O,EAAiBwJ,wBACvD,CAAC,CACH,EACF,EACAvX,KAAM,CACJ+B,UAAW,wBACb,CACF,CAAC,EACAxC,MAAM,+BAAgC,CACrCiB,IAAK,WACLC,YAAa,8BACbC,aAAc,mBACdxC,QAAS,CACPoP,MAAO,CAAF,oBAAE,SAAUU,GAEf,OAAOA,EAAkBwH,QAAQ,EAAEhI,KACrC,GACAiL,SAAU,CAAF,8CAAE,SAAU1K,EAAkB/D,EAAkBsD,GAEtD,OAAOtD,EAAiB+C,aAAa,CACnC1K,SAAU0L,EAAiBwJ,uBAC7B,CAAC,EAAE1W,KAAK,WAGN,IAFA,IAAImM,EAAY,GAEPxL,EAAI,EAAGA,EAAIwI,EAAiBhK,KAAKgN,UAAUe,EAAiBwJ,yBAAyB3Y,OAAQ4C,CAAC,GAAI,CAIzG,IAHA,IAAI/B,EAAWX,QAAQqB,KAAK6J,EAAiBhK,KAAKgN,UAAUe,EAAiBwJ,yBAAyB/V,EAAE,EACpG0L,EAAa,GAERtI,EAAI,EAAGA,EAAInF,EAAS0N,WAAWvO,OAAQgG,CAAC,GAC/CsI,EAAWzN,EAAS0N,WAAWvI,GAAGwI,SAAW3N,EAAS0N,WAAWvI,GAEnEnF,EAAS0N,WAAaD,EACtBF,EAAUjG,KAAKtH,CAAQ,CACzB,CAMA,OAJAuN,EAAYA,EAAUtJ,OAAO,SAAUmD,GACrC,OAAOA,EAAE+G,YAAcN,EAAMK,UAC/B,CAAC,GAEgB/O,OAASoO,EAAU,GAAK,IAC3C,CAAC,CACH,EACF,EACAtN,WAAY,CAAF,4CAAE,SAAU4F,EAAQkN,EAAeiG,EAAUnL,GAErD,IAUSC,EAVL9H,EAAOC,KAKPvB,GAHJsB,EAAK+H,MAAQF,EACb7H,EAAKiT,iBAAmBD,EAEL3Z,QAAQqB,KAAKsY,EAASE,QAAQ,GAC7CC,EAASC,SAASC,eAAe,iBAAiB,EAItD,IAASvL,KAFTiF,EAAc,EAEE/M,EAAKiT,iBAAiBvL,WACpChJ,EAAeA,EAAa4U,QAAQ,IAAIva,OAAOiH,EAAKiT,iBAAiBvL,WAAWI,GAAKyL,IAAK,GAAG,EAAGvT,EAAK+H,MAAMD,EAAI,EAE7GqL,IACFA,EAAOK,cAAcJ,SAASK,KAAKC,UAAY,GAC/CP,EAAOK,cAAcJ,SAASO,MAAMjV,CAAY,GAGlDsB,EAAK4T,KAAO,WACV/T,EAAO2Q,GAAG,4BAA4B,CACxC,CACF,GACAjW,KAAM,CACJ+B,UAAW,cACb,CACF,CAAC,EACAxC,MAAM,6BAA8B,CACnCiB,IAAK,SACLC,YAAa,4BACbC,aAAc,iBACdhB,WAAY,CAAF,mHAAE,SAAU4F,EAAQ9C,EAAc8W,EAAU9G,EAAe4F,EAAiBrK,EAAkBC,EAAmBF,GAEzH,IAAIrI,EAAOC,KAEXD,EAAK8T,gBAAkBnB,EACvB3S,EAAK+T,kBAAoBxL,EAAkBwH,QAAQ,EACnD/P,EAAKgU,iBAAmB1L,EACxBtI,EAAKiU,oBAAsB,GAC3BjU,EAAKkU,QAA0C,OAAhC5L,EAAiB7I,YAChCO,EAAKmU,WAA6C,OAAhC7L,EAAiB7I,YACnCO,EAAKoU,YAA8C,OAAhC9L,EAAiB7I,YACpCO,EAAKqU,MAAuD,OAA/CrU,EAAKgU,iBAAiBM,sBACnCvH,EAAc,EAEV/M,EAAKoU,YACPpU,EAAKuU,SAAW,iCACTvU,EAAKkU,QACZlU,EAAKuU,SAAW,oCACT,CAACvU,EAAKqU,OAASrU,EAAKmU,WAC3BnU,EAAKuU,SAAW,qCAEhBvU,EAAKuU,SAAW,sBAEdxX,EAAa8V,cACfgB,EAAS,WAAc7T,EAAKwU,UAAUC,cAAc,CAAG,CAAC,EAE1DzU,EAAK0U,SAAW,WACdrM,EAAKsM,MAAM,CACb,EAEA3U,EAAK4T,KAAO,WACL5T,EAAKwU,UAAUI,OAGlB/U,EAAO2Q,GAAG,iBAAiB,EAF3BxQ,EAAKwU,UAAUC,cAAc,CAGjC,CACF,GACAhc,QAAS,CACPka,gBAAiB,CAAF,sCAAE,SAAUpO,EAAkB+D,GAE3C,OAAO/D,EAAiBqO,UAAU,CAChChW,SAAU0L,EAAiBwJ,uBAC7B,CAAC,EAAE1W,KAAK,WACN,OAAOmJ,EAAiBhK,KAAKhB,OAAO+O,EAAiBwJ,wBACvD,CAAC,CACH,EACF,EACA/C,OAAQ,CACN8D,aAAc,EAChB,EACAtY,KAAM,CACJ+B,UAAW,oBACb,CACF,CAAC,EAEAxC,MAAM,kBAAmB,CACxBC,SAAU,GACVC,SAAU,qBACZ,CAAC,EACAF,MAAM,4BAA6B,CAClCiB,IAAK,aACLC,YAAa,uBACbf,WAAY,gBACZgB,aAAc,YACdxC,QAAS,CACPoc,mBAAoB,CAAF,iCAAE,SAAUpY,EAAcqY,GAE1C,OAAOA,EAAgBC,sBAAsB,CAAEnY,SAAUH,EAAaI,QAAS,CAAC,EAC7EzB,KAAK,WAGJ,OAFgB/B,QAAQqB,KAAKoa,EAAgBva,KAAKM,UAAU4B,EAAaI,SAAS,CAGpF,CAAC,CACL,GACAmY,aAAc,CAAF,kBAAE,SAAUF,GAGtB,OAAOA,EAAgBG,aAAa,CAAEC,UADlB,KAC2C,CAAC,EAC7D9Z,KAAK,WAEJ,OADgB/B,QAAQqB,KAAKoa,EAAgBva,KAAKM,UAAuB,GAAC,CAE5E,CAAC,CACL,EACF,EACAN,KAAM,CACJ+B,UAAW,+BACXC,aAAc,4BAChB,CACF,CAAC,EACAzC,MAAM,yBAA0B,CAC/BiB,IAAK,UACLC,YAAa,oBACbf,WAAY,aACZgB,aAAc,SACdV,KAAM,CACJ+B,UAAW,wBACXC,aAAc,qBAChB,CACF,CAAC,EACAzC,MAAM,MAAO,CACZiB,IAAK,QACLC,YAAa,WACbT,KAAM,CACJ+B,UAAW,OACb,CACF,CAAC,CACL,EAAC,EACA/C,OAAO,CAAD,uCAAC,SAAU4b,EAAU/a,EAAYE,GAEtC6a,EAASvX,MAAM,oBAAqBvE,QAAQqB,KAAK9B,OAAOmH,iBAAiB,CAAC,EAC1EoV,EAASvX,MAAM,YAAavE,QAAQqB,KAAK9B,OAAOqU,SAAS,CAAC,EAC1DkI,EAASvX,MAAM,oBAAqBvE,QAAQqB,KAAK9B,OAAOwc,iBAAiB,CAAC,EAC1ED,EAASvX,MAAM,SAAUvE,QAAQqB,KAAKN,CAAU,CAAC,EACjD+a,EAASvX,MAAM,WAAYvE,QAAQqB,KAAKJ,CAAY,CAAC,CACvD,EAAC,EACAf,OAAO,CAAD,wBAAC,SAAU8b,GAGhBA,EAAsBC,eAAiB,EAMzC,EAAC,EACAC,IAAI,CAAD,oIAAC,SAAUvI,EAAYwI,EAAWC,EAAW5B,EAAU6B,EAAUrX,EAAa0B,EAAmBqV,EAAmBvV,EAAQsR,GAE9H,IAKEwE,EALEC,EAAUF,EAAS,WAAW,EAChCG,EAAYH,EAAS,aAAa,EAClCI,EAASJ,EAAS,UAAU,EAC5BK,EAAML,EAAS,OAAO,EACtBM,EAAsB,GA8CpBC,GA3CJjJ,EAAWkJ,mBAAqB,GAE5Btd,OAAO6U,WAAasI,GACtBtI,UAAUnM,KAAK,CAAE6U,MAAO,YAAaJ,IAAKA,CAAI,CAAC,EAGjDlC,EAAS,WACP8B,EAAStc,QAAQ+c,QAAQ,UAAU,CACrC,CAAC,EAEGR,GAAWA,EAAQ/Y,UACjB+Y,EAAQtD,WACc,QAApBsD,EAAQtD,SACVkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,gBAAgB,EAClC,QAApB+Y,EAAQtD,SACfkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,QAAQ,EAC1B,YAApB+Y,EAAQtD,SACfkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,qBAAqB,EACvC,gBAApB+Y,EAAQtD,SACfkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,yBAAyB,EAC3C,QAApB+Y,EAAQtD,UAA0C,WAApBsD,EAAQtD,SAC7CkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,iBAAiB,EACnC,WAApB+Y,EAAQtD,SACfkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,GAAG,EACrB,YAApB+Y,EAAQtD,SACfkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,gBAAgB,EAClC,aAApB+Y,EAAQtD,UACfkD,EAAUa,KAAK,SAAWT,EAAQ/Y,SAAW,YAAY,EAE3D+Y,EAAQtD,SAAW,KACnBoD,EAAS,YAAaE,EAAS,CAAES,KAAMjB,EAAkBkB,aAAc,CAAC,GAIxET,IACFH,EAASa,OAAO,cAAe,CAAEF,KAAMjB,EAAkBkB,aAAc,CAAC,EACxEd,EAAUa,KAAKR,CAAS,GAG1B7I,EAAWrM,OAAO,WAAc,OAAO+U,EAAS,UAAU,CAAG,EAAG,SAAU9U,GACxEkV,EAASlV,CACX,CAAC,EAEYhI,OAAO4d,YAAY,WAC1B,CAACR,GAAwBF,EAAS,IAAIxa,MAAW,MACnD0a,EAAsB,GAElBpd,OAAO6d,QAAQ,2EAA2E,EAClE,EAAtBX,EAAS,IAAIxa,KACf+C,EACG4X,OAAO,CAAES,iBAAkB,EAAK,CAAC,EACjCC,QAAQ,WACPX,EAAsB,EACxB,CAAC,GAGHpd,OAAOge,cAAcX,CAAM,EAC3Brd,OAAOK,SAAWmc,EAAkByB,SAAW,eAAiB9W,EAAkBM,SAAW,cAAgB,KAI/GzH,OAAOK,SAAWmc,EAAkByB,SAAW,eAAiB9W,EAAkBM,SAAW,cAAgB,IAEnH,EAAG,GAAK,GAER2M,EAAWiJ,OAAS,WACd,CAACD,GAAyBF,EAAS,IAAIxa,MAAW,MACpD0a,EAAsB,GACtB3X,EACG4X,OAAO,CAAES,iBAAkB,EAAK,CAAC,EACjCC,QAAQ,WACPX,EAAsB,EACxB,CAAC,EAEP,EAEAhJ,EAAW8J,IAAI,oBAAqB,SAAUX,EAAOY,EAASC,EAAUC,EAAWC,EAAYC,GAC7FnK,EAAWzM,aAAewW,EAAQrW,KAE9BiV,GAAUA,EAAOyB,SAAS,UAAU,GACtCzB,EAAO0B,YAAY,UAAU,EAE3BN,EAAQjW,aACVqV,EAAMmB,eAAe,EACrBzX,EAAO2Q,GAAGuG,EAAQjW,WAAYkW,EAAU,CAAE/d,SAAU,SAAU,CAAC,EAEnE,CAAC,EAED+T,EAAW8J,IAAI,sBAAuB,SAAUX,EAAOY,EAASC,EAAUC,EAAWC,EAAYC,GAC/FnK,EAAWuK,cAAgBN,EAAUvW,KACrCsM,EAAWzM,aAAewW,EAAQrW,KAGlCsM,EAAWQ,iBAAmB,GAE9BqG,EAAS,WACP,IAWQ2D,EAXJC,EAAY5e,aAAa,EA2C7B,GA1CAmU,EAAW1Q,UAAaya,EAAQxc,MAAQwc,EAAQxc,KAAK+B,UAAeya,EAAQxc,KAAK+B,WAAamb,EAAa,MAAQA,EAAa,IAAO,sBACpIA,EAAaA,EAAY,sBAAyB,mBAErDzK,EAAW6B,YAAekI,EAAQxc,MAAQwc,EAAQxc,KAAKsU,YAAekI,EAAQxc,KAAKsU,YAAc,KAG7FjW,OAAO6U,WAyBT7U,OAAO6U,UAAUnM,KAAK,CACpB6U,MAAO,gBACPuB,WAAY,CACVC,OArBwB,OAHtBH,EAAUrG,EAAQlY,SAAS2e,UAGnBC,MAAM,CAAC,CAAC,IAClBL,EAAUA,EAAQK,MAAM,EAAG,CAAC,CAAC,GAE3BhY,GAAUA,EAAOW,UAAYX,EAAOW,SAASzF,KAAO8E,EAAOW,SAASzF,IAAI+c,SAM1EN,GAHAA,GAAW3X,EAAOW,SAASzF,IAAI+c,QAGbxE,QAAQ,YAAamE,CAAS,GAIhDD,EADE,CAAC,GAAI,KAAKlK,SAASkK,CAAO,EAClB,eAELA,GAOLlb,UAAW0Q,EAAW1Q,SACxB,CACF,CAAC,EAIH0Q,EAAWkJ,mBAAqB,CAAC6B,mBAAmE,CAAC,EAA/C/K,EAAWzM,aAAa8G,QAAQ,UAAU,EAC5F0Q,kBAAmB,CAGrB,IAAI9e,EAAW8d,EAAQrW,KACnBnG,EAAOwc,EAAQxc,KACnB,GAAIA,GAAQA,EAAKgC,aACftD,EAAWsB,EAAKgC,iBACX,CAEL,IAAIyb,GADJ/e,EAAWA,EAASqa,QAAQ,QAAS,EAAE,EAAEA,QAAQ,SAAU,EAAE,EAAEA,QAAQ,WAAY,EAAE,EAAEA,QAAQ,cAAe,EAAE,GACvFjG,MAAM,GAAG,EAClC,GAAI2K,GAAgC,EAAnBA,EAAU7e,OAEzB,IAAK,IADLF,EAAW,GACF8C,EAAI,EAAGA,EAAIic,EAAU7e,OAAQ4C,CAAC,GACrC9C,GAAuB+e,EAAUjc,GAAGkc,OAAO,CAAC,EAAEC,YAAY,EAAIF,EAAUjc,GAAG8b,MAAM,CAAC,OAGpF5e,EAAWA,EAASgf,OAAO,CAAC,EAAEC,YAAY,EAAIjf,EAAS4e,MAAM,CAAC,CAElE,CAEAjf,OAAOuf,KAAO,IAAIJ,kBAAkB,CAClCK,YAAa,kBACb9F,SAAUrZ,EACVof,MAAOzf,OAAOC,aAAa,EAC3Byf,OAAQ1f,OAAOmH,kBAAkB+C,GACjCyV,SAAU,wBACVC,aAAc,2BAChB,EAAG,cAAc,CACnB,CACF,CAAC,CAEH,CAAC,EAGDxL,EAAW8J,IAAI,oBAAqB,SAAUX,EAAOY,EAASC,EAAUC,EAAWC,EAAYC,GAC7FnK,EAAWzM,aAAe0W,EAAUvW,KAEpC+X,QAAQC,IAAI,CACVvC,MAAOA,EACPY,QAASA,EACTC,SAAUA,EACVC,UAAWA,EACXC,WAAYA,EACZC,MAAOA,CACT,CAAC,CACH,CAAC,CACH,EAAC,EACAwB,QAAQ,MAAO,CAAF,uBAAE,SAAUxH,EAASnE,GAEjC,MAAO,CACL4L,IAAK,SAAUC,GAEb,OADA1H,EAAQ2H,gBAAkB3H,EAAQ2H,eAAepH,QAAQ,6BAA8BmH,CAAG,EACnF5Y,IACT,EACA8Y,IAAK,WACH,OAAO5H,EAAQ2H,gBAAkB3H,EAAQ2H,eAAexH,QAAQ,4BAA4B,CAC9F,EACAiF,OAAQ,WACNpF,EAAQ2H,gBAAkB3H,EAAQ2H,eAAeE,WAAW,4BAA4B,CAC1F,CACF,CACF,EAAC,EACAL,QAAQ,iBAAkB,WAEzB,MAAO,CACLM,WAAY,SAAUC,GAIpB,IAHA,IAAInd,EAAImd,EAAI/f,OACVggB,EAAO,GAEFpd,CAAC,IAAI,CACV,IAAIqd,EAAKF,EAAInd,GAAGsd,WAAW,EAEzBF,EAAKpd,GADE,IAALqd,EACQ,KAAOA,EAAK,IAEZF,EAAInd,EAElB,CACA,OAAOod,EAAKtN,KAAK,EAAE,CACrB,CACF,CACF,CAAC,C,sECjlFiB,SAAdyN,EAAwBxb,EAAI+B,EAAQE,EAAmB1B,EAAanE,EAAa6E,GAEnF,IAAIiB,EAAOC,KAEXD,EAAKS,UAAYZ,EAAOW,SAASE,KACjCV,EAAKuZ,YAAclgB,EAAQqB,KAAKqF,CAAiB,EACjDC,EAAKwZ,YAAcxZ,EAAKuZ,YAAY1R,MACpC7H,EAAKyZ,YAAc,GACnBzZ,EAAK0Z,YAAc,GACnB1Z,EAAK2Z,mBAAqB,GAC1B3Z,EAAK4Z,QAAU,GACf5Z,EAAK6Z,WAAa9Z,EAAkBM,SACpCL,EAAKf,OAAS,KACde,EAAK8Z,aAAe,CAClBvf,KAAM,GACNwf,YAAa,EACbC,SAAU,EACVC,eAAgB,EAChBC,YAAa,CACf,EACAhgB,EAAYiB,SAAS,EAClBC,KAAK,WACJ4E,EAAKzE,MAAQrB,EAAYK,KAAKgB,KAChC,CAAC,EAEHyE,EAAKma,aAAe,KAEpBna,EAAKoa,eAAiB,WAGpB,OAFApa,EAAK4Z,QAAU,GAERvb,EAAY+b,eAAe,CAChC7f,KAAM,CACJkf,YAAazZ,EAAKyZ,YAClBC,YAAa1Z,EAAK0Z,YAClBC,mBAAoB3Z,EAAK2Z,kBAC3B,CACF,CAAC,EACEve,KAAK,WACJ4E,EAAKyZ,YAAc,GACnBzZ,EAAK0Z,YAAc,GACnB1Z,EAAK2Z,mBAAqB,GAC1B3Z,EAAK4Z,QAAU,EACjB,EAAG,SAAUzC,GAEX,OADAnX,EAAK4Z,QAAU,GACR9b,EAAGuc,OAAOlD,CAAK,CACxB,CAAC,CACL,EAEAnX,EAAKsa,iBAAmB,SAAUC,GAChC,MAAIA,GAASjN,SAAS,GAAG,GAAKiN,GAASjN,SAAS,IAAI,CAItD,EAEAtN,EAAKyR,KAAO,WACV,OAAOpT,EAAYoT,KAAK,CACtBlX,KAAM,CACJigB,KAAMxa,EAAKuZ,WACb,CACF,CAAC,EACEne,KAAK,WACJ/B,EAAQohB,OAAO1a,EAAmBC,EAAKuZ,WAAW,CACpD,CAAC,CACL,EAEAvZ,EAAK0a,uBAAyB,WACvB1a,EAAK6Z,aACJ7Z,EAAKma,cAAgBna,EAAKma,aAAatd,UACzCmD,EAAKf,OAAS,GACde,EAAK2a,iBAAmB,GAExB5b,EAAaC,UAAU,CAAEpC,SAAUoD,EAAKma,aAAatd,QAAS,CAAC,EAAEzB,KAAK,WACpE4E,EAAKf,OAASF,EAAaxE,KAAK0E,OAAOe,EAAKma,aAAatd,UACzDmD,EAAK2a,iBAAmB,EAC1B,CAAC,EAED3a,EAAK4a,4BAA8B,SAAUnK,GAC3C1R,EAAagS,oBAAoB,CAC/BnU,SAAUoD,EAAKma,aAAatd,SAC5B4T,aAAcA,CAChB,EAAG,EAAI,EACJrV,KAAK,WACJ,IAAIyf,EAAmB9b,EAAaxE,KAAKyW,cAAchR,EAAKma,aAAatd,UAAU4T,GAE/EoK,GACFxhB,EAAQ+c,QAAQxd,EAAOkiB,KAAK,EAAE1H,SAASK,IAAI,EAAEsH,KAAKF,CAAgB,CACtE,CAAC,CACL,GAEA7a,EAAKf,OAAS,GAGpB,CAOF,CArGF,IAAW5F,EAAST,EAATS,EAyGRA,QAzGiBT,EAyGRA,OAJR,yFAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,cAAeqf,CAAW,C,sECvGtB,SAAd0B,EAAwBnH,EAAUhU,EAAQkN,EAAesC,EAAW5S,EAAcwS,EAAWrG,EAAWC,EAAQrM,EAAgBnC,EAAU6U,EAAgBkG,GAExJ,IAAIpV,EAAOC,KAEXD,EAAKkN,sBAAwBtU,EAAOuU,qBAAqBC,SAAS,EAAEC,MAAM,GAAG,EAAEC,SAAS7Q,EAAaI,QAAQ,EAC7GmD,EAAKib,UAAYhM,EACjBjP,EAAK2G,UAAYiC,EACjB5I,EAAK+G,OAAS8B,EACd7I,EAAKkb,SAAW7gB,EAChB2F,EAAKmb,SAAW,CAAClM,EAAU9V,OAC3B6G,EAAKob,YAAc,GACnBpb,EAAKqb,UAAYhM,EACjBrP,EAAKsb,kBAAoBlG,EACzBpV,EAAKub,UAAY/e,EAAe4R,WAAa,GAC7CpO,EAAKwb,aAAe/e,EACpBuD,EAAKyb,eAAiB,GAEtB1O,EAAc,EAEd/M,EAAK0b,IAAM9S,EAAU3K,OAAO,SAASmD,GACjC,MAAyB,OAAlBA,EAAEsF,WACb,CAAC,EAAE,GAEC1G,EAAKib,UAAU9hB,SACf6G,EAAKob,YAAc,CACfO,UAAW3b,EAAK0b,IAAI5Y,EACxB,GAEC9C,EAAKkb,SAASU,UACXC,EAAY7b,EAAKib,UAAU9hB,OAAS6G,EAAKib,UAAUhd,OAAO,SAAUmD,GACpE,OAAOA,EAAE0a,WACb,CAAC,EAAI,KAEL9b,EAAKkb,SAASU,QAAWC,GAAaA,EAAU1iB,OAAU0iB,EAAU,GAC9D7b,EAAKib,WAAajb,EAAKib,UAAU9hB,OAAU6G,EAAKib,UAAU,GAAK,MAGrE,CAACjb,EAAKkb,SAASjN,SAAWjO,EAAKub,WAAavb,EAAKub,UAAUpiB,SAC7D6G,EAAKkb,SAASjN,QAAUjO,EAAKub,UAAU,GAAGlN,sBAG5CrO,EAAK4T,KAAO,WACN5T,EAAKyb,eAAeN,UAAY,CAACnb,EAAKib,UAAU9hB,OAC7C6G,EAAKyb,eAAeM,YAAYnH,OAInC5U,EAAKyb,eAAehK,KAAK,EAAErW,KAAK,WAC9ByE,EAAO2Q,GAAG,qBAAqB,CACjC,CAAC,EALDxQ,EAAKyb,eAAeM,YAAYtH,cAAc,EAQzCzU,EAAKyb,eAAeN,SAC3Bnb,EAAKyb,eAAehK,KAAK,EAAErW,KAAK,WAC9ByE,EAAO2Q,GAAG,qBAAqB,CACjC,CAAC,EAEOxQ,EAAKyb,eAAeN,UAAanb,EAAKkb,SAASU,QAGP,YAA1C5b,EAAKkb,SAASU,QAAQI,iBAC5Bhc,EAAKob,YAAcpb,EAAKkb,SAASU,QAEjC5b,EAAKyb,eAAehK,KAAK,EAAI,EAAErW,KAAK,WAChCyE,EAAO2Q,GAAG,qBAAqB,CACnC,CAAC,GAGC3Q,EAAO2Q,GAAG,qBAAqB,EAVjC5X,EAAOqjB,MAAM,4CAA4C,CAW7D,EAEAjc,EAAKyR,KAAO,SAASyK,GACjB,GAAGA,GAASlc,EAAK+b,YAAYnH,OAY5B,MAX2C,YAArC5U,EAAKob,YAAYY,kBAChBhc,EAAKob,YAAYtY,GAAK,GAE7BzJ,EAAQohB,OAAOza,EAAKob,YACjB,CACFY,gBAAiB,UACjBG,YAAanc,EAAKob,YAAYO,UAAY3b,EAAK2G,UAAU1I,OAAO,SAASmD,GACxE,OAAOA,EAAE0B,KAAO9C,EAAKob,YAAYO,SAClC,CAAC,EAAE,GAAGQ,YAlFpB,MAmFa,CAAC,EAEMjN,EAAeuC,KAAK,CAC1BlX,KAAM,CACLqC,SAAUH,EAAaI,SACvBoe,UACIjb,EAAKob,YAAYU,cACfM,EAAepc,EAAKib,UAAUhd,OAAO,SAASmD,GACjD,OAAOA,EAAE0B,KAAO9C,EAAKob,YAAYtY,IAAM1B,EAAE0a,WAC1C,CAAC,GAEe3iB,SACXkjB,EAAWD,EAAavkB,IAAI,SAASuJ,GAExC,OADAA,EAAE0a,YAAc,GACT1a,CACR,CAAC,GAEQE,KAAKtB,EAAKob,WAAW,EAEvBiB,GAMD,CAACrc,EAAKob,YAEhB,CACD,CAAC,EACAhgB,KAAK,WACL8T,EAAeC,oBAAoB,GAAI,EAAI,EACzC/T,KAAK,WAEO,GAAI4E,EAAKob,YAAYtY,GAWjB9C,EAAKkb,SAASU,QAAU1M,EAAe3U,KAAK6U,iBAAiBnR,OAAO,SAASmD,GAAK,OAAOA,EAAE0B,KAAO9C,EAAKob,YAAYtY,EAAI,CAAC,EAAE,QAR1H,IAAI,IAAI/G,EAAI,EAAGA,EAAImT,EAAe3U,KAAK6U,iBAAiBjW,OAAQ4C,CAAC,GAC7D,GAAG,CAACiE,EAAKib,UAAUhd,OAAO,SAASmD,GAAK,OAAOA,EAAE0B,KAAOoM,EAAe3U,KAAK6U,iBAAiBrT,GAAG+G,EAAI,CAAC,EAAE3J,OAAO,CAC1G6G,EAAKkb,SAASU,QAAU1M,EAAe3U,KAAK6U,iBAAiBrT,GAC7D,KACJ,CAORiE,EAAKib,UAAY/L,EAAe3U,KAAK6U,iBACjDpP,EAAKmb,SAAW,EACjB,CAAC,CACH,CAAC,CAEN,CAEP,CAzID,IAAW9hB,EAAST,EAATS,EA6IRA,QA7IiBT,EA6IRA,OAJT,6KAEFS,EAAQX,OAAO,oBAAoB,EACjCuB,WAAW,cAAe+gB,CAAW,C,6EC5Ib,SAArBsB,EAA+Bxe,EAAI+V,EAAUhU,EAAQyG,EAAa7J,GAEhE,IAAIuD,EAAOC,KAEXD,EAAKuc,GAAK,GAEVvc,EAAK4T,KAAO,WACX,IAYK4I,EAZL,OAAGxc,EAAKyc,UAAU7H,OACVtO,EAAYoW,eAAe,CACjC3N,OAAQ,CACPW,WAAY1P,EAAKuc,GACjB3f,SAAUH,EAAaI,QACxB,CACD,CAAC,EAAEzB,KAAK,SAASb,GACbA,GACFsF,EAAO2Q,GAAG,mBAAoB,CAAEmM,UAAWpiB,CAAK,CAAC,CACnD,CAAC,GAGGiiB,EAAI1e,EAAG8e,MAAM,EAEjB/I,EAAS,WACR7T,EAAKyc,UAAUhI,cAAc,EAC7B+H,EAAEnC,OAAO,CACV,CAAC,EAEMmC,EAAEK,QAEX,CACP,CA9BD,IAAWxjB,IAkCRA,QAAST,OAJT,kEAECS,EAAQX,OAAO,oBAAoB,EACpCuB,WAAW,qBAAsBqiB,CAAkB,C,2EC/BvB,SAAzBQ,EAAmCjd,EAAQkN,EAAeyI,EAAWuH,EAASC,EAAMvT,EAAyBK,EAAmBsL,EAAmB3Y,EAAc+M,EAAcK,EAAe9J,EAAmBmE,GAEnN,IAAIlE,EAAOC,KAEXD,EAAKid,aAAezT,EACpBxJ,EAAKmb,SAAW,GAChBnb,EAAKkd,cAAgBrT,EACrB7J,EAAKmd,qBAAuBjZ,EAE5BlE,EAAKod,UAAYJ,EAAKK,mBAAmBjI,EAAkByB,SAAW,SAAS,EAC/E7W,EAAKsd,SAAW,QAAU7gB,EAAaI,SAAW,KAAM,IAAIvB,MAAOiiB,OAAO,EAAE1F,MAAM,EAAG,EAAE,EACvF7X,EAAKwd,SAAW,GAChBxd,EAAKyd,SAAW,GAEhBzd,EAAK0d,YAAc1d,EAAKid,aAAaU,QAAoC,EAEzE3d,EAAK4d,OAAS,CACZC,WAAY,CACVtc,KAAM,WACNuc,cAAe,EACjB,CACF,EAEA/Q,EAAc,EAEd/M,EAAK+d,YAAc,WACjB/d,EAAK0d,YAAc1d,EAAKid,aAAaU,QAAoC,CAC3E,EAEA3d,EAAKge,UAAY,SAAUC,GACzBje,EAAKid,aAAaU,OAASM,EAC3Bje,EAAK0d,YAAc1d,EAAKid,aAAaU,QAAoC,CAC3E,EAEA3d,EAAKyR,KAAO,WACV,OAAOhI,EACJyU,sBAAsB,CACrBnP,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBshB,cAAe,CAACne,EAAKid,aACvB,CACF,CAAC,EACA7hB,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAI0N,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UAAU1D,OAAQ4C,CAAC,GACjG,GAAI0N,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UAAUd,GAAG6N,UAAY5J,EAAKid,aAAarT,SAAU,CACnH5J,EAAKid,aAAe5jB,EAAQqB,KAAK+O,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UAAUd,EAAE,EACzG,KACF,CACJ,CAAC,CACL,EAEAiE,EAAKoe,KAAO,WACVpe,EAAKmb,SAAW,CAACnb,EAAKmb,SAElBnb,EAAKmb,SACP3F,EAAUtc,KAAK,MAAM,EAGrBsc,EAAUtc,KAAK,EAAE,CAErB,EAEA8G,EAAKqe,mBAAqB,SAAUZ,GACT,aAArB,OAAOhQ,YACsB,QAA3BgQ,EAAStL,YAAY,EACvB1E,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,cAAe,YAAe,eAAgB,WAAc7E,EAAaI,QAAS,CAAC,EAE9I4Q,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,cAAe,YAAe,iBAAkB,WAAc7E,EAAaI,QAAS,CAAC,GAIpJ,IAAItC,EAAOuP,EAAkBwU,aAAa7hB,EAAaI,SAAUmD,EAAKkd,cAAe,CAACld,EAAKid,cAAeQ,CAAQ,EAClHzd,EAAKwd,SAAWe,KAAKC,WAAWC,QAAQC,mBAAmBnkB,CAAI,CAAC,CAAC,EAAE+Y,QAAQ,MAAO,GAAG,EAAEA,QAAQ,MAAO,GAAG,EAAEA,QAAQ,KAAM,GAAG,EAC5HtT,EAAKyd,SAAWA,EAEhBkB,WAAW,WAActlB,EAAQ+c,QAAQ,aAAa,EAAEwI,OAAO,CAAG,EAAG,CAAC,CACxE,EAGA5e,EAAK6e,MAAQ,WAEX,IAAIC,EAAU,kBAAoBriB,EAAasiB,cAC3CtL,EAAO,GAiBXA,GAHAA,GAHAA,GADAA,GAFAA,GAFAA,GADAA,GADAA,GADAA,GAAQ,eAAiBzT,EAAKid,aAAa+B,UAAY,SAC/C,cAAgBhf,EAAKid,aAAagC,SAAW,UAC7C,UAAYjf,EAAKid,aAAaiC,MAAQ,UACtC,YAAclf,EAAKid,aAAakC,QAAU,UAE1C,YAAcnf,EAAKid,aAAamC,QAAU,UAE1C,UAAYpf,EAAKid,aAAaoC,MAAQ,UACtC,UAAYrf,EAAKid,aAAapV,MAAQ,UAGtC,kBAAoB7H,EAAKid,aAAaqC,MAAQ,eAG9C,iBAAmBvC,EAAQ,MAAM,EAAE/c,EAAKid,aAAasC,SAAU,QAASvf,EAAKid,aAAauC,cAAc,GAEvF,aAArB,OAAO/R,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,uBAAwB,YAAe,QAAS,WAAc7E,EAAaI,QAAS,CAAC,EAGlJjE,EAAOK,SAASwmB,KAAO,mBAAqBf,mBAAmBI,CAAO,EAAI,SAAWJ,mBAAmBjL,CAAI,CAC9G,EAEAzT,EAAK0f,OAAS,WACZ,GAAI9mB,EAAO6d,QAAQ,4CAA4C,EAM7D,MAJyB,aAArB,OAAOhJ,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,uBAAwB,YAAe,yBAA0B,WAAc7E,EAAaI,QAAS,CAAC,EAG5J4M,EACJkW,uBAAuB,CACtB5Q,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBiL,IAAK9H,EAAKid,aAAarT,QACzB,CACF,CAAC,EACAxO,KAAK,WACJyE,EAAO2Q,GAAG,aAAa,CACzB,CAAC,CAEP,CACF,CAlIF,IAAWnX,EAAST,EAATS,EAuIRA,QAvIiBT,EAuIRA,OALR,6NAGFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,yBAA0B6iB,CAAsB,C,mECrI/C,SAAX8C,EAAqB5S,EAAYlN,EAAQ/C,EAAcgQ,EAAelN,EAAQ/B,EAAIuK,EAAM4D,EAAsBV,EAAiBhH,EAAkB9H,EAAcD,EAAgB6O,EAAQhR,EAAU0E,EAAcsQ,EAAW+F,EAAmB7F,EAAWsQ,EAAKlQ,EAAQV,EAAWrG,EAAWC,EAAQqG,GAEjS,IAAIlP,EAAOC,KACPwL,EAAW,GAGfzL,EAAKkN,sBAAwBtU,EAAOuU,qBAAqBC,SAAS,EAAEC,MAAM,GAAG,EAAEC,SAAS7Q,EAAaI,QAAQ,EAC7GmD,EAAKsb,kBAAoBlG,EACzBpV,EAAKqb,UAAYhM,EACjBrP,EAAK6P,OAASF,EACd3P,EAAK8f,WAAa,GAClB9f,EAAKib,UAAYhM,EACjBjP,EAAK2G,UAAYiC,EACjB5I,EAAK+G,OAAS8B,EACd7I,EAAKwb,aAAe/e,EACpBuD,EAAKyb,eAAiB,GAEtB1e,EAAaiS,aAAejS,EAAaiS,aAAa3B,MAAM,GAAG,EAE/DN,EAAc,EAEV/M,EAAKsb,kBAAkByE,YACzB/f,EAAKkb,SAAW7gB,EAEhB2F,EAAKggB,kBAAoB,WACvB,OAAIhgB,EAAKyb,eAAeN,UAAY,CAACnb,EAAKib,UAAU9hB,OAC7C6G,EAAKyb,eAAeM,YAAYnH,OAG5B5U,EAAKyb,eAAehK,KAAK,EAAErW,KAAK,WACrC0E,EAAOmgB,KAAKC,aAAa,CAC3B,CAAC,EAJMpiB,EAAGnE,KAAKqG,EAAKyb,eAAeM,YAAYtH,cAAc,CAAC,EAMzDzU,EAAKyb,eAAeN,SACpBnb,EAAKyb,eAAehK,KAAK,EAAErW,KAAK,WACrC0E,EAAOmgB,KAAKC,aAAa,CAC3B,CAAC,EACOlgB,EAAKyb,eAAeN,UAAanb,EAAKkb,SAASU,QAIP,WAAzC5b,EAAKkb,SAASU,QAAQI,iBAC7Bhc,EAAKob,YAAcpb,EAAKkb,SAASU,QAE1B5b,EAAKyb,eAAehK,KAAK,EAAI,EAAErW,KAAK,WACzC0E,EAAOmgB,KAAKC,aAAa,CAC3B,CAAC,GAGMpgB,EAAOmgB,KAAKC,aAAa,GAXhCtnB,EAAOqjB,MAAM,qDAAqD,EAC3Dne,EAAGnE,KAAKyR,CAAS,EAW5B,IAKE+U,EAF8BlU,EAAqBhO,OAAO,SAAUmD,GAAK,MAAwB,OAAjBA,EAAE3B,WAAsB,CAAC,GAE7EtG,SAC/BgnB,EAA8BA,EAA4B,GAErD9X,EAAKoE,SAAS,EAAExO,OAAO,SAAUmD,GAAK,MAAkC,OAA3BA,EAAE2O,QAAQ,EAAEqQ,WAAsB,CAAC,EAAEjnB,SACtF6G,EAAKqgB,WAAa,GAClBrgB,EAAKmgB,4BAA8BA,IAKrCngB,EAAKsgB,2BAA6BT,EAAI9G,IAAI,IAAM3N,GAA0B,MAAbyU,EAAI9G,IAAI,EAAYxJ,EAAYsQ,EAAI9G,IAAI,EACrGjZ,EAAOa,OAAO,kCAAmC,SAAUkY,GACvDgH,EAAIjH,IAAIC,CAAG,CACf,EAAG,EAAI,EAEP,IAAK,IAKGuH,EACAG,EAaIpU,EAEIqU,EArBPzkB,EAAI,EAAGA,EAAIgB,EAAaiS,aAAa7V,OAAQ4C,CAAC,IAC/CoQ,EAAIpP,EAAaiS,aAAajT,GAAG0kB,KAAK,IACtChV,EAASnK,KAAK6K,CAAC,EAEvB,GAAIV,EAAStS,OAMT,IAFAkP,EAAKqY,MAAM,EAEN3kB,EAAI,EAAGA,EAAI0P,EAAStS,OAAQ4C,CAAC,GAC9BoQ,EAAIV,EAAS1P,GAAGsR,MAAM,GAAG,EAEzB+S,EAAcjU,EAAE,GAChBoU,EAAkBpU,EAAE,GAIH,KAFjBA,EAAIF,EAAqBhO,OAAO,SAAUmD,GAAK,OAAOA,EAAE3B,aAAe2gB,CAAa,CAAC,GAE/EjnB,SAGEqnB,EAAW,CACXxoB,IAAImU,EAHJA,EAAE,IAGIwU,kBACNC,MAAOzU,EAAE0U,gBACTC,IAAK3U,EAAE4U,oBACPC,IAAK7U,EAAE8U,iBACPC,MAAO/U,EAAEgV,mBACb,EAEA9Y,EAAK+Y,QACDjV,EAAEQ,eACFR,EAAEkV,YACFlV,EAAEmV,kBACFf,EACAC,EACA,CACIe,UAAWpV,EAAEqV,aACbC,KAA4B,eAAtBtV,EAAEuV,iBAAoC,GAAKtW,EACjDgV,YAAajU,EAAE1M,YACfkiB,UAA4B,QAAjBxV,EAAE1M,YAAwB,UAAY,EACrD,CAAC,GAKjBO,EAAK4T,KAAO,WACR,IAAIhE,EAAsB,GAE1B,OAAO9R,EAAGyH,IAAK,WAwBX,IAvBA,IAAIC,EAAW,GAsBXsK,GApBJtK,EAASlE,KAAKiK,EAAgBqW,aAAa,CACvCrnB,KAAM,CACJqC,SAAUH,EAAaI,SACvBglB,UAAWxnB,EAASuhB,QAAUvhB,EAASuhB,QAAQ9Y,GAAK,KACpDgf,WAAYzZ,EAAK0Z,cAAc,EAC/BC,KACS3Z,EAAKoE,SAAS,EAAE5U,IAAI,SAASuJ,GAChC,MAAO,CACH6P,eAAgB7P,EAAE6gB,MAAM,EACxBC,SAAU9gB,EAAE+gB,YAAY,EACxBV,KAAMrgB,EAAE2O,QAAQ,EAAE0R,KAClBW,gBAAiBhhB,EAAE2O,QAAQ,EAAEqS,gBAC7BC,wBAAyBjhB,EAAE2O,QAAQ,EAAEuS,eACrCX,UAAWvgB,EAAE2O,QAAQ,EAAE4R,SAC3B,CACJ,CAAC,CAEL,CACJ,CAAC,CAAC,EAEctZ,EAAKoE,SAAS,GACrB1Q,EAAI,EAAGA,EAAI+T,EAAU3W,OAAQ4C,CAAC,GAC/B+T,EAAU/T,GAAGgU,QAAQ,EAAEC,wBAC3BJ,EAAoBtO,KAAKwO,EAAU/T,GAAGgU,QAAQ,EAAEE,SAAS,EACzDzK,EAASlE,KAAKiD,EAAiB2L,SAASzT,EAAaI,SAAUiT,EAAU/T,GAAGgU,QAAQ,CAAC,CAAC,GAI1F,OAAOvK,CACX,EAAC,CAAG,EACHpK,KAAK,SAAStC,GAKX,IAJA,IAAIypB,EAAY,GAIPxmB,EAAI,EAAGA,EAAIjD,EAAQK,OAAQ4C,CAAC,GAChCjD,EAAQiD,GAAG5C,SACd6G,EAAK6P,OAAOM,UAAUP,EAAoB7T,EAAI,IAAMjD,EAAQiD,GAC5DwmB,EAAYA,GAAazpB,EAAQiD,GAAG5C,QAInCopB,EACCxV,EAAc,EAEdlN,EAAO2Q,GAAG,oBAAoB,CACtC,CAAC,CACL,EAEAxQ,EAAKwiB,kCAAoC,SAAU3J,GAC/CgH,EAAIjH,IAAIC,CAAG,CACf,EAEA7L,EAAW8J,IAAI,gBAAiB,WAC5B,IAAIlH,EAAsB,GACtBC,EAAS,GAEb,OAAO/R,EAAGyH,IAAK,WAKb,IAJA,IAAIC,EAAW,GAGXsK,EAAYzH,EAAKoE,SAAS,EACrB1Q,EAAI,EAAGA,EAAI+T,EAAU3W,OAAQ4C,CAAC,GAC7B+T,EAAU/T,GAAGgU,QAAQ,EAAEC,wBAC7BJ,EAAoBtO,KAAKwO,EAAU/T,GAAGgU,QAAQ,EAAEE,SAAS,EACzDzK,EAASlE,KAAKiD,EAAiB2L,SAASzT,EAAaI,SAAUiT,EAAU/T,GAAGgU,QAAQ,CAAC,CAAC,GAI1F,OAAOvK,CACT,EAAC,CAAG,EACDpK,KAAK,SAAUtC,GAEd,IAAK,IAAIiD,EAAI,EAAGA,EAAIjD,EAAQK,OAAQ4C,CAAC,GAC/BjD,EAAQiD,GAAG5C,SACb0W,EAAOM,UAAYN,EAAOM,WAAa,GACvCN,EAAOM,UAAUP,EAAoB7T,IAAMjD,EAAQiD,IAIvDiE,EAAK6P,OAASA,CAClB,CAAC,CACL,CAAC,CACL,CA7MJ,IAAUxW,EAAST,EAAQwS,EAAjB/R,EAiNPA,QAjNgBT,EAiNPA,OAJN,kUAELS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,WAAY2lB,CAAQ,C,uEC1NnC,aAWqB,SAAf6C,EAAyB1V,EAAeC,EAAYqC,EAAW5S,EAAc2Y,EAAmB/M,EAAMhO,EAAU4R,EAAsByW,GAExI,IAAI1iB,EAAOC,KAQL+hB,GANNhiB,EAAKkN,sBAAwBtU,EAAOuU,qBAAqBC,SAAS,EAAEC,MAAM,GAAG,EAAEC,SAAS7Q,EAAaI,QAAQ,EAE7GmQ,EAAWQ,iBAAmB,GAE9BT,EAAc,EAED1E,EAAKsa,QAAQ,GAC1B3iB,EAAK4iB,sBAAwB,GAC7BZ,EAAKa,MAAMC,QAAQ,SAAAC,GACjB,IAIQC,EAJFtW,EAAUT,EAAqBgX,KAAK,SAAA9W,GAAC,OAAIA,EAAEQ,gBAAkBoW,EAAKnW,GAAG,GAChD,MAAvBF,EAAQjN,YACVO,EAAK4iB,sBAAwB,GACpBlW,EAAQwW,oBACXF,EAAgBtW,EAAQwW,kBAAkB7V,MAAM,GAAG,EAAExV,IAAI,SAAAuJ,GAAC,OAAI+hB,SAAS/hB,CAAC,CAAC,GACzEqK,EAAWQ,EAAqBhO,OAAO,SAAAkO,GAAC,OAAIiX,EAAEC,KAAKL,EAAe,SAAAhrB,GAAE,OAAIA,GAAMmU,EAAErJ,EAAE,EAAC,GACzF9C,EAAK4iB,sBAAwB5iB,EAAK4iB,uBAAyBQ,EAAEC,KAAK5X,EAAU,SAAAU,GAAC,OAAqB,MAAjBA,EAAE1M,WAAmB,GAE1G,CAAC,EACDpF,EAASuoB,sBAAwB5iB,EAAK4iB,sBAExC5iB,EAAKqb,UAAYhM,EACfrP,EAAKsb,kBAAoBlG,CAE5B,CA5BD,IAAU/b,EAAST,EAATS,EAgCPA,QAhCgBT,EAgCPA,OAJT,gJAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,eAAgBwoB,CAAY,C,iICzC3C,aAWyB,SAAnBa,EAA6BxlB,EAAI+B,EAAQkN,EAAeC,EAAYjO,EAAc4R,EAActW,EAAU4R,GAE5G,IAAIjM,EAAOC,KAEN0Q,EAGiD,eAA7BA,EAAa4S,YACpC1jB,EAAO2Q,GAAG,0BAA2B,CAAEC,aAAcE,EAAa/I,UAAW4b,UAAW,CAAE,CAAC,EAG3FxW,EAAWQ,iBAAmB,GAN9B3N,EAAO2Q,GAAG,iBAAiB,EAS7BxQ,EAAK4iB,sBAAwB,GAG7B,IAAK,IAAI7mB,EAAI,EAAGA,EAAI4U,EAAa8S,eAAetqB,OAAQ4C,CAAC,GAAI,CAC3D,IAAI2Q,EAAU0W,EAAEH,KAAKhX,EAAsB,SAAUE,GAAK,OAAOA,EAAErJ,KAAO6N,EAAa8S,eAAe1nB,GAAG2nB,SAAW,CAAC,EACjHhX,IACFiE,EAAa8S,eAAe1nB,GAAiB,aAAI2Q,EAAQ8U,aAC9B,MAAvB9U,EAAQjN,YACVO,EAAK4iB,sBAAwB,GACpBlW,EAAQwW,mBAAmB,WACpC,IAAMF,EAAgBtW,EAAQwW,kBAAkB7V,MAAM,GAAG,EAAExV,IAAI,SAAAuJ,GAAC,OAAI+hB,SAAS/hB,CAAC,CAAC,GACzEqK,EAAWQ,EAAqBhO,OAAO,SAAAkO,GAAC,OAAIiX,EAAEC,KAAKL,EAAe,SAAAhrB,GAAE,OAAIA,GAAMmU,EAAErJ,EAAE,EAAC,GACzF9C,EAAK4iB,sBAAwB5iB,EAAK4iB,uBAAyBQ,EAAEC,KAAK5X,EAAU,SAAAU,GAAC,OAAqB,MAAjBA,EAAE1M,WAAmB,EAAE,IAG9G,CACApF,EAASuoB,sBAAwB5iB,EAAK4iB,sBAEtC7V,EAAc,EAEd/M,EAAK2Q,aAAeA,EAEpB3Q,EAAKkgB,aAAe,WAClB,IAAI1D,EAAI1e,EAAG8e,MAAM,EAEjB,OAAK5c,EAAK2jB,aAKNtpB,EAASuoB,uBAAyB,CAAC5iB,EAAK4jB,qBAC1ChrB,EAAOqjB,MAAM,6CAA6C,EACnDne,EAAGnE,KA/ClB,MA+CgC,IAEE,GAAxBqG,EAAK6jB,kBACP7jB,EAAK6jB,gBAAkB,GACvB9kB,EAAa+kB,oBAAoB,CAC/BvpB,KAAMoW,EAAa/I,SACrB,CAAC,EACExM,KAAK,SAAUb,GAC2B,CAAC,EAAtCA,EAAK4X,YAAY,EAAE9K,QAAQ,MAAM,EACnCzO,EAAOK,SAAWsB,EAEXlB,EAAQ0qB,SAASxpB,CAAI,EAC5BsF,EAAO2Q,GAAG,0BAA2B,CAAEC,aAAclW,CAAK,CAAC,GAG3DyF,EAAK6jB,gBAAkB,GACvBjrB,EAAOqjB,MAAM,2CAA2C,EAE5D,CAAC,EACAtF,QAAQ,WACP6F,EAAE/jB,QAAQ,CACZ,CAAC,GAEE+jB,EAAEK,UA7BPjkB,EAAOqjB,MAAM,+DAA+D,EACrEne,EAAGnE,KA1ClB,MA0CgC,EA6B5B,CAEH,CAzED,IAAUN,EAAST,EAATS,EA6EPA,QA7EgBT,EA6EPA,OAJT,uHAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,mBAAoBqpB,CAAgB,C,+HC3E5B,SAAjBU,EAA2BnkB,EAAQ/B,EAAIiC,EAAmBtD,EAAca,EAAmBG,EAAaJ,EAAkBM,GAE5H,IAAIqC,EAAOC,KA0CX,SAASgkB,EAAcxQ,GACrB,OAAOA,GAAOA,EAAKH,QAAQ,IAAIva,OAAO,QAAS,GAAG,EAAG,IAAI,CAC3D,CA1CAiH,EAAKxC,iBAAmB,GAExBwC,EAAKtC,YAAcD,EACnBuC,EAAKxC,iBAAmBH,EACxB2C,EAAKkkB,oBAAsBD,EAAcjkB,EAAKxC,iBAAiB2mB,SAAS,EAEpExmB,EAAeC,QACjB+gB,WAAW,WAAc/lB,EAAOwrB,SAAS,EAAGhR,SAASK,KAAK4Q,YAAY,CAAE,EAAG,CAAC,EAC5E1mB,EAAeC,MAAQ,IAGzBoC,EAAKskB,qBAAuB,SAAUC,GACpC,GAAI,CAACA,EAAK3P,OAER,OADA2P,EAAK9P,cAAc,EACZ,GAGTzU,EAAKxC,iBAAiBgN,UAAYzK,EAAkB+C,GACpD9C,EAAKxC,iBAAiB2mB,WAkBC1Q,EAlB2BzT,EAAKkkB,sBAmBzCzQ,EAAKH,QAAQ,kBAAmB,OAAO,EAjBrDhW,EAAkBgnB,qBAAqB,CACrCvV,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBW,iBAAkBwC,EAAKxC,gBACzB,CACF,CAAC,EAAEpC,KAAK,SAAUb,GAChByF,EAAKxC,iBAAmBjD,EACxByF,EAAKkkB,oBAAsBD,EAAcjkB,EAAKxC,iBAAiB2mB,SAAS,CAC1E,CAAC,CACH,EAEAnkB,EAAKwkB,eAAiB,SAAU3G,GAC9Bhe,EAAO2Q,GAAG,8BAA+B,CAAExY,GAAI6lB,EAAW1f,YAAa,CAAC,CAC1E,CASF,CAhDF,IAAW9E,EAAST,EAATS,EAoDRA,QApDiBT,EAoDRA,OAJR,mIAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,iBAAkB+pB,CAAc,C,4EClDtB,SAApBS,EAA8B5kB,EAAQ/B,EAAIiC,EAAmBtD,EAAca,EAAmBO,EAAYR,EAAkBe,EAAeyV,EAAU5G,EAAWyX,EAAS/mB,GAE3K,IAAIqC,EAAOC,KAEXD,EAAK6d,WAAa,CAChB8G,mBAAoBtnB,EAAiByF,EACvC,EACA9C,EAAK4kB,UAAY3X,EACjBjN,EAAKwb,aAAe/e,EACpBuD,EAAK6kB,kBAAoB9kB,EACzBC,EAAK5B,cAAgBA,EACrB4B,EAAK8kB,kBAA+D,SAA3ClsB,EAAOksB,kBAAkB3S,YAAY,EAC9DxU,EAAeC,MAAQ,GACvBoC,EAAK+kB,0BAA4B,GACjC/kB,EAAKglB,YAAc,GAQfnnB,GAAcA,EAAW1E,SAC3B6G,EAAK6d,WAAahgB,EAAW,IAG/BmC,EAAK6d,WAAWoH,MAAQjlB,EAAK6d,WAAWqH,IAAM,IAAM,IAMrB,KAA3BllB,EAAK8kB,oBACP9kB,EAAK6d,WAAWoH,MAAQ,KAG1BjlB,EAAKmlB,eAAiB,SAAUZ,GAC9B,GAAIA,GAAQ,CAACA,EAAK3P,OAEhB,OADA2P,EAAK9P,cAAc,EACZ,GAGTnX,EAAkB6nB,eAAe,CAC/BpW,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBghB,WAAYxkB,EAAQohB,OAAOza,EAAK6d,WAAqC,KAAzB7d,EAAK6d,WAAWoH,MAAe,CAAEG,SA/CvF,MA+C2G,EAAI,CAAEF,IA/CjH,MA+CgI,CAAC,CACzH,CACF,CAAC,EAAE9pB,KAAK,SAAU8C,GAChB2B,EAAO2Q,GAAG,8BAA8B,CAC1C,CAAC,CACH,EAEAxQ,EAAKqlB,iBAAmB,WACtB/nB,EAAkB+nB,iBAAiB,CAAEzoB,SAAUH,EAAaI,SAAUkB,aAAciC,EAAK6d,WAAW1f,YAAa,CAAC,EAC/G/C,KAAK,WACJyE,EAAO2Q,GAAG,8BAA8B,CAC1C,CAAC,CACL,EAEAxQ,EAAKslB,aAAe,SAAUC,GAC5BvlB,EAAKwlB,cAAgB,GAErBxlB,EAAKylB,OAASf,EAAQe,OAAO,CAC3B1qB,IAAKqa,kBAAkByB,SAAW,4BAIlCtc,KAAM,CAAEqC,SAAUH,EAAaI,QAAS,EACxC6oB,KAAMH,CAMR,CAAC,EAIEI,QAAQ,SAAUprB,GACbA,GAAsB,EAAdA,EAAKpB,SACf6G,EAAK6d,WAAWuH,SAAW7qB,EAAK,GACpC,CAAC,EACA4c,MAAM,SAAU5c,GACXA,GAAQA,EAAKqrB,iBACf5lB,EAAKwlB,cAAgB,CAACjrB,EAAKqrB,kBAE3B5lB,EAAKwlB,cAAgB,CAAC,2CAC1B,CAAC,CACL,EAEAxlB,EAAK6lB,QAAU,SAAU9qB,GAEvB,OAAIA,IAC+C,IAA7CA,EAAI0lB,KAAK,EAAEtO,YAAY,EAAE9K,QAAQ,MAAM,EAClCtM,EAEA,UAAYA,EAGzB,EAEAiF,EAAK8lB,wBAA0B,WACxB9lB,EAAK8kB,kBAGR9kB,EAAK6d,WAAWoH,MAAQ,IAFxBjlB,EAAK+kB,0BAA4B,EAIrC,EAEA/kB,EAAK+lB,WAAa,WACZ/lB,EAAK+kB,4BACP/kB,EAAK+kB,0BAA4B,GAErC,CAEF,CArHF,IAAW1rB,EAAST,EAATS,EAyHRA,QAzHiBT,EAyHRA,OAJR,mLAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,oBAAqBwqB,CAAiB,C,2ECvH7B,SAAnBuB,EAA6B7U,EAASpU,EAAc8C,EAAQ/B,EAAI+V,EAAUxL,EAAMnO,EAAa4W,EAAkB7D,EAAWmI,EAAmBrV,EAAmBtD,EAAcsC,EAAc8gB,EAAKnK,GAE/L,IAAI1V,EAAOC,KAEXD,EAAKiN,UAAYA,EACjBjN,EAAKsb,kBAAoBlG,EACzBpV,EAAKwjB,UAAYrS,EAAQT,aAErB,CAAC1Q,EAAKsb,kBAAkB2K,eAAiBnV,GACzC6N,WAAW,WACP,IAAIxL,EAASC,SAASC,eAAe,cAAc,EAEhDF,GACCA,EAAOK,cAAcJ,SAASO,MAAM7C,CAAgB,CAC5D,EAAG,CAAC,EAERzI,EAAKqY,MAAM,EAEb3hB,EAAa6R,SAAS,CAAEH,aAAc1T,EAAa0T,YAAa,EAAG,EAAI,EAAErV,KAAK,SAAiB8qB,GAI3F,IAHA,IAAIC,EAAQD,EAAS3rB,KACjB6rB,EAAiB,GAEZrqB,EAAI,EAAGA,EAAIoqB,EAAM1C,eAAetqB,OAAQ4C,CAAC,GAAI,CAGpD,IAFA,IAAIsqB,EAAUF,EAAM1C,eAAe1nB,GAC/BuqB,EAAkB,GACbllB,EAAI,EAAGA,EAAI+kB,EAAMI,aAAaptB,OAAQiI,CAAC,GAAI,CAClD,IAAIolB,EAAaL,EAAMI,aAAanlB,GAEpC,GAAIolB,EAAW9C,YAAc2C,EAAQ3C,UAAW,CAC9C4C,EAAkBE,EAAWC,aAC7B,KACF,CACF,CACEL,EAAe9kB,KAAK,CAClB,GAAM+kB,EAAQ3C,UACd,KAAQ2C,EAAQhF,YAChB,OAAUgF,EAAQK,YAAcL,EAAQM,OAAQN,EAAQO,SACxD,SAAYN,EACZ,SAAYD,EAAQO,SACpB,OAAUP,EAAQQ,WAClB,WAAcR,EAAQ5mB,WACxB,CAAC,CACL,CACA7G,EAAO6U,UAAY7U,EAAO6U,WAAa,GAEzCA,UAAUnM,KAAK,CACT,MAAS,WACT,UAAa,CACX,SAAY,CACV,YAAe,CACb,GAAM6kB,EAAMve,UACZ,YAAeue,EAAMtpB,SACrB,QAAmC,IAAxBspB,EAAMW,cAAsBX,EAAMW,cAAgBX,EAAMW,eAAiB,CAAC,EACrF,IAAOX,EAAMY,cACb,OAAUZ,EAAMU,UAClB,EACA,SAAYT,CACd,CACF,CACJ,CAAC,CACL,CAAC,EAICrnB,EAAaC,UAAU,CAAEpC,SAAUH,EAAaI,QAAS,EAAG,EAAI,EAjExE,SAoEYgjB,EAAI9G,IAAI,GAAgC,MAAb8G,EAAI9G,IAAI,IAChC8G,EAAI9G,IAAI,GACPha,EAAaioB,sBAAsB,CAC/BzsB,KAAM,CACFkW,aAAc1T,EAAa0T,aAC3B1I,MAAO8X,EAAI9G,IAAI,CACnB,CACJ,CAAC,EAEL8G,EAAItJ,OAAO,GAGfvW,EAAKinB,aAAe,WAChB,IAAIrR,EAAUF,EAAS,WAAW,EAEJ,aAA1B,OAAOwR,eAEPA,eAAeC,KAAK,EACC,aAAd,OAAOC,IAEd,IAAIA,IAAKC,KAAK,MAAM,EACE,cAAfzR,EAAQ0R,IAAoC,IAAd1R,EAAQ0R,GAE7C1uB,EAAOK,SAAW2c,EAAQ0R,GAG1B1uB,EAAOK,SAAW,cAE1B,EAEA+G,EAAKunB,gBAAkB,WACnB,IAAI3R,EAAUF,EAAS,WAAW,EAEJ,aAA1B,OAAOwR,eAEPA,eAAerI,MAAM,EACA,aAAd,OAAOuI,IAEd,IAAIA,IAAKC,KAAK,OAAO,EACC,cAAfzR,EAAQ0R,IAAoC,IAAd1R,EAAQ0R,GAE7C1uB,EAAOK,SAAW2c,EAAQ0R,GAG1B1uB,EAAOK,SAAW,eAE1B,EAEA+G,EAAKwnB,MAAQ,WACTpU,SAASC,eAAe,cAAc,EAAEG,cAAcJ,SAASqU,YAAY,QAAS,GAAO,IAAI,GAAKrU,SAASC,eAAe,cAAc,EAAEG,cAAcgU,MAAM,CACpK,EAEAxnB,EAAK0nB,cAAgB,WACjB,IAAIlL,EAAI1e,EAAG8e,MAAM,EAEd1iB,EAAYK,KAAKC,aAAeN,EAAYK,KAAK6C,aAAelD,EAAYK,KAAK6C,YAAYX,EAAaI,UACzGgX,EAAS,WACLhU,EAAO2Q,GAAG,yBAAyB,EACnCgM,EAAE/jB,QAAQ,CACd,CAAC,EAGDsG,EAAaC,UAAU,CAAEpC,SAAUH,EAAaI,QAAS,CAAC,EACrDzB,KAAK,WAGF,IAFA,IAAI6D,EAASF,EAAaxE,KAAK0E,OAAOxC,EAAaI,UAE3Cd,EAAI,EAAGA,EAAIkD,EAAO9F,OAAQ4C,CAAC,GAC/B,IAAI,IAAIoD,EAAI,EAAGA,EAAIF,EAAOlD,GAAGqD,aAAajG,OAAQgG,CAAC,GAC/C,GAAGF,EAAOlD,GAAGqD,aAAaD,GAAGE,iBAA+D,QAA5CJ,EAAOlD,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CL,EAAOlD,GAAGqD,aAAaD,GAAGI,YAG3H,OAFAM,EAAO2Q,GAAG,gCAAgC,EAA1C3Q,KACA2c,EAAE/jB,QAAQ,EAMtBoH,EAAO2Q,GAAG,yBAAyB,EACnCgM,EAAE/jB,QAAQ,CACd,CAAC,CACb,CACJ,CApJJ,IAAUY,EAAST,EAATS,EAwJPA,QAxJgBT,EAwJPA,OAJN,yMAELS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,mBAAoB+rB,CAAgB,C,wECtJ7B,SAAhB2B,EAA0BxW,EAASyW,EAAW9nB,EAAQD,EAAQgU,EAAU9G,EAAeC,EAAYlP,EAAI+pB,EAAOtjB,EAAkBujB,EAAyBxf,EAAkBnO,EAAQuY,EAASC,EAAiBpK,EAAmBF,EAAM6I,EAAazU,EAAcsD,GAErQ,IAAIC,EAAOC,KAGX,GAA6C,OAA1CqI,EAAiBgM,sBACnBzU,EAAO2Q,GAAG,mCAAmC,MAD9C,CAKAxQ,EAAK+nB,YAAcxf,EAAkBwH,QAAQ,EAAEgY,YAC/C/nB,EAAKgU,iBAAmB1L,EACxBtI,EAAK+I,QAAU2J,EACf1S,EAAKgoB,cAAgB,GACrBhoB,EAAK4d,OAASzjB,EAAOgW,UACrBnQ,EAAKzG,OAASoZ,EACd3S,EAAKuR,KAAOsW,EACZ7nB,EAAKmU,WAA6C,OAAhC7L,EAAiB7I,YACnCO,EAAKoU,YAA8C,OAAhC9L,EAAiB7I,YACpCsN,EAAc,EAER/M,EAAKioB,OAAS,CAAE,SAAUF,GACtB,IAAI,IAAIhsB,EAAI,EAAGA,EAAIgsB,EAAY5uB,OAAQ4C,CAAC,GACpC,IAAI,IAAIoD,EAAI,EAAGA,EAAI4oB,EAAYhsB,GAAGmsB,MAAM/uB,OAAQgG,CAAC,GAAE,CAC/C,GAA6C,EAA1C4oB,EAAYhsB,GAAGmsB,MAAM/oB,GAAGgpB,SAAShvB,OAChC,OAAO,EACN,GAAmD,SAAhD4uB,EAAYhsB,GAAGmsB,MAAM/oB,GAAGgpB,SAAS,GAAGC,SACxC,OAAO,CAAK,CAC5B,EAAGpoB,EAAK+nB,WAAW,EAEzB/nB,EAAKqoB,UAAY,WACblX,EAAQsF,QAAQ,+EAA+E,IACjGzW,EAAK+nB,YAAc,GACnB/nB,EAAK+nB,YAAYzmB,KAAK,CACTgnB,QAAS,OACTJ,MAAO,CACH,CACIC,SAAU,CACN,CACCC,SAAU,QACPG,OAAQ,EACZ,EAER,EAER,CAAC,EACDvoB,EAAKwoB,QAAU,GACfC,EAAQ,EACRZ,EAAMa,IAAI,EACVb,EAAMc,MAAM,EACZ5b,EAAc,EAETnU,EAAO6U,YACT7U,EAAO6U,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,aAAc,YAAe,eAAgB,WAAc7E,EAAaI,QAAS,CAAC,CAQlK,EAEMjE,EAAO6U,WACT3N,EAAOgX,IAAI,oBAAqB,SAAUG,EAAWF,GAC9CxO,EAAkBwH,QAAQ,EAAEqS,iBAAmC,qCAAhBrL,EAAQrW,MAC1D9H,EAAO6U,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,aAAc,YAAe,oBAAqB,WAAc7E,EAAaI,QAAS,CAAC,CAC7J,CAAC,EAGL,IA8BQ+rB,EA9BJC,EAAWhB,EAAMjU,KACjBkV,EAAUjB,EAAMa,IA6BpB,IAAQE,KA3BRf,EAAMa,IAAM,WACJ9vB,EAAO6U,YACLoa,EAAM1rB,QAAQ,EAAI,GACnBvD,EAAO6U,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,aAAc,YAAe,aAAc,WAAc7E,EAAaI,QAAS,CAAC,EAElJjE,EAAO6U,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,aAAc,YAAe,gBAAiB,WAAc7E,EAAaI,QAAS,CAAC,GAG7JisB,EAAQ,CACT,EAEAjB,EAAMjU,KAAO,WACT5T,EAAKioB,QAA8B,IAApBJ,EAAM1rB,QAAQ,GAC/B0rB,EAAM1rB,QAAQ,CAAC,EAGhB0sB,EAAS,CACV,EAEI3X,EAAYf,UAMf0X,EAAMa,IAAI,GALVb,EAAMc,MAAM,EACZzX,EAAYf,UAAY,GACxBe,EAAYO,KAAK,GAKQiB,EACzB,IAAI,IAAIqW,KAAmBrW,EAAQkW,GAAgB7jB,cAClD/E,EAAKgoB,cAAc1mB,KAAK,CACvB0nB,gBAAiBtW,EAAQkW,GAAgB9jB,KACzCiB,aAAc2M,EAAQkW,GAAgB7jB,cAAcgkB,EACrD,CAAC,EAEAxgB,EAAkBwH,QAAQ,EAAEkZ,cAAgB7d,IAC9CpL,EAAKkpB,MAAQ3gB,EAAkBwH,QAAQ,EAAEkZ,YACzCjpB,EAAKmpB,UAAY,IAGlBnpB,EAAKwoB,QAAU,CAAC,CAACxoB,EAAK+nB,YAAY,GAAGG,MAAM,GAAGC,SAAS,GAAGI,OAAOpvB,OAEjE6G,EAAKopB,cAAgB,WACpB,MAAO,CAAC,CAACppB,EAAK+nB,YAAY,GAAGG,MAAM,GAAGC,SAAS,GAAGI,OAAOpvB,MAC1D,EAEA6G,EAAKqpB,UAAY,SAAUC,GACvB,IAESxhB,EAFLyhB,EAAM,GAEV,IAASzhB,KAAOwhB,EACZC,EAAIjoB,KAAKgoB,EAAIxhB,EAAI,EAErB,OAAOyhB,CACX,EAqCAvpB,EAAK4T,KAAO,WACX,IAAI4I,EAAI1e,EAAG8e,MAAM,EAEjB,OAAI5c,EAAKwoB,QAQc,IAAfxoB,EAAKkpB,OACZvK,WAAW,WACVnC,EAAEnC,OAAO,EACTzhB,EAAOqjB,MAAM,kCAAkC,CAChD,EAAG,CAAC,EAEGO,EAAEK,SAGFtY,EAAiBilB,SAAS,CAChCjvB,KAAM,CACLqC,SAAU0L,EAAiBwJ,wBAC3B2X,wBAAyB,IAAI3B,EAAwB9nB,EAAK+nB,YAAa,OAAO,CAC/E,EACArR,iBAAkB,EACnB,CAAC,EAAEtb,KAAK,SAASb,GAEbgO,EAAkBwH,QAAQ,EAAEkZ,aAAe1uB,EAAKmvB,YAClD9wB,EAAOqjB,MAAM,wIAAwI,EAEtJ1T,EAAkBwH,QAAQ,EAAEkZ,YAAcjpB,EAAKkpB,MAAQ3uB,EAAKmvB,WAC5DnhB,EAAkBwH,QAAQ,EAAEqS,gBAAkB7nB,EAAKovB,gBACnDphB,EAAkBwH,QAAQ,EAAE6Z,iBAAmBvwB,EAAQqB,KAAKsF,EAAK+nB,WAAW,EAC5Exf,EAAkBwH,QAAQ,EAAE8Z,SAAWvuB,KAAKD,IAAI,EAChDgN,EAAKsM,MAAM,EACX3H,EAAW8c,WAAW,gBAAiB,EAAE,EAEpC9pB,EAAKmU,YAAenU,EAAKoU,YAEtBpU,EAAKoU,YACZvU,EAAO2Q,GAAG,gCAAgC,EAEvC3Q,EAAO2Q,GAAG,4BAA4B,EAJzC3Q,EAAO2Q,GAAG,mCAAmC,CAK/C,CAAC,GAxCDmO,WAAW,WACVnC,EAAEnC,OAAO,EACTzhB,EAAOqjB,MAAM,wDAA0D,CACxE,EAAG,CAAC,EAEGO,EAAEK,QAqCX,EAEA7c,EAAK+pB,WAAa,SAASC,EAASjkB,EAAc9H,GACjD,IAAIgsB,EAAejqB,EAAKgoB,cAAc/pB,OAAO,SAAS7F,GACrD,OAAOA,EAAE4wB,kBAAoB/qB,EAAO6G,MAAQ1M,EAAE2N,aAAajD,IAAMiD,EAAajD,EAC/E,CAAC,EAEEmnB,EAAa9wB,SACf6wB,EAAQE,OAASD,EAAa,IAE5BpC,EAAMsC,SAAS,GACjBtC,EAAMjU,KAAK,CACb,EAEA5T,EAAKoqB,cAAgB,WACpB3B,EAAQ,CACT,EAEAzoB,EAAKqqB,eAAiB,SAASL,GAC3BA,EAAQzB,OAAOpvB,QACjBsvB,EAAQ,EAETuB,EAAQzB,OAAS,GACjByB,EAAQ5B,SAAW,OACpB,EAEApoB,EAAKsqB,eAAiB,SAASN,GAC3BA,EAAQE,QACVzB,EAAQ,CACV,EAEAzoB,EAAKuqB,YAAc,SAASC,GAC3BA,EAAQC,QAAU,GAClBzqB,EAAKwoB,QAAU,GAEZX,EAAMsC,SAAS,GACjBtC,EAAMjU,KAAK,CACb,EAEA5T,EAAK0qB,iBAAmB,SAAStyB,EAAG4xB,EAAShyB,GACzCI,EAAEuyB,OAAOC,QACXZ,EAAQzB,OAAOjnB,KAAKtJ,CAAE,EAEtBgyB,EAAQzB,OAAOsC,OAAOb,EAAQzB,OAAOlhB,QAAQrP,CAAE,EAAG,CAAC,EAIX,eAAlCgyB,EAAQE,OAAOnkB,aAAajD,IAA6B,IAAN9K,IAEjDI,EAAEuyB,OAAOC,QACXZ,EAAQzB,OAAOjnB,KAAK,eAAe,EAC5B0oB,EAAQzB,OAAOjb,SAAS,eAAe,GAC9C0c,EAAQzB,OAAOsC,OAAOb,EAAQzB,OAAOlhB,QAAQ,eAAe,EAAG,CAAC,GAGvEohB,EAAQ,EAELZ,EAAMsC,SAAS,GAAyB,IAApBtC,EAAM1rB,QAAQ,GACpC0rB,EAAMjU,KAAK,CACb,EAEA5T,EAAK8qB,aAAe,SAAU9J,EAAKF,GAClC,OAAOxS,KAAKyc,MAAMzc,KAAK0c,OAAO,GAAKlK,EAAME,EAAI,EAAIA,CAClD,EAEAhhB,EAAKuF,IAAM,SAASykB,GAGnB,IAAI,IAAIhyB,KAFRgyB,EAAQzB,OAAS,GAEHyB,EAAQE,OAAOnkB,aAAaX,YACzC4kB,EAAQzB,OAAOjnB,KAAKtJ,CAAE,EACkB,eAAlCgyB,EAAQE,OAAOnkB,aAAajD,IAAuBknB,EAAQzB,OAAOjb,SAAS,EAAE,GAC/E0c,EAAQzB,OAAOjnB,KAAK,eAAe,EAExCmnB,EAAQ,CACT,EAEAzoB,EAAKirB,KAAO,SAASjB,GACpBA,EAAQzB,OAAS,GAEjBE,EAAQ,CACT,EAEAzoB,EAAKkrB,cAAgB,SAAShD,EAAOiD,EAAWC,GAC3ClD,EAAMiD,GAAWhD,SAASiD,GAAclB,QAAUtxB,GAAO6d,QAAQ,8CAA8C,IAClHyR,EAAMiD,GAAWhD,SAAS0C,OAAOO,EAAc,CAAC,EAE7C,CAAClD,EAAMiD,GAAWhD,SAAShvB,QAAyB,EAAf+uB,EAAM/uB,OAC7C+uB,EAAM2C,OAAOM,EAAW,CAAC,EACjBjD,EAAMiD,GAAWhD,SAAShvB,QAClC+uB,EAAMiD,GAAWhD,SAAS7mB,KAAK,CAC9B8mB,SAAU,QACVG,OAAQ,EACT,CAAC,EAEFE,EAAQ,EAEV,EAEAzoB,EAAKqrB,iBAAmB,SAAStD,EAAauD,GAC1C1yB,EAAO6d,QAAQ,oDAAoD,IACrEsR,EAAY8C,OAAOS,EAAO,CAAC,EAC3B7C,EAAQ,EAEV,EAEAzoB,EAAKurB,KAAO,SAASvR,GACpBA,EAAS7d,QAAU,EACpB,EAEA6D,EAAKwrB,SAAW,SAASxR,EAAUpc,GAClCoc,EAAS7d,QAAUyB,CACpB,EAEAoC,EAAKyrB,eAAiB,SAASzR,GAC9B,OAAOA,EAAS7d,OACjB,EAEA6D,EAAK0rB,GAAK,SAASvD,EAAUmD,GAC5BnD,EAAS0C,OAAOS,EAAQ,EAAG,EAAG,CAC7BlD,SAAU,QACVG,OAAQ,EACT,CAAC,CACF,EAEAvoB,EAAK2rB,IAAM,SAASzD,EAAOoD,GAC1BpD,EAAM2C,OAAOS,EAAQ,EAAG,EAAG,CAAEnD,SAAU,CAAE,CACxCC,SAAU,QACVG,OAAQ,EACT,EAAI,CAAC,CACN,EAEAvoB,EAAK4rB,UAAY,SAAS7D,GACzBA,EAAYzmB,KAAK,CACJgnB,QAAS,OACTJ,MAAO,CACH,CACIC,SAAU,CACN,CACCC,SAAU,QACPG,OAAQ,EACZ,EAER,EAER,CAAC,CACX,EAEAvoB,EAAK6rB,OAAS,SAAUzzB,GACvBumB,WAAW,WACVtlB,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAEmB,OAAO,EAAE7I,KAAK,OAAO,EAAE8I,MAAM,CACxD,EAAG,CAAC,CACL,EAEA/rB,EAAKslB,aAAe,SAAUI,GAC7B,IAAIsG,EAAa,IAAIC,WACrBvG,EAAOA,EAAK,GAEZsG,EAAWE,OAAS,SAAS9zB,GAE5B0H,EAAOqsB,OAAO,WACbnsB,EAAK+nB,YAAcqE,KAAKC,MAAMj0B,EAAEuyB,OAAOhvB,MAAM,EAC7C8sB,EAAQ,EACRzoB,EAAKwoB,QAAU,EAChB,CAAC,CACF,EAEAwD,EAAWM,WAAW5G,CAAI,CAC3B,EAEA1lB,EAAKusB,OAAS,WACb,IASKC,EARDlP,EAAW,eAAiBhiB,KAAKD,IAAI,EAAI,QACzCoxB,EAAO,IAAIC,KAAK,CAACrzB,EAAQsY,OAAO3R,EAAK+nB,WAAW,GAAI,CACvD4E,KAAM,iCACP,CAAC,EAEG/zB,EAAOg0B,UAAUC,iBACXD,UAAUE,WAAWL,EAAMnP,CAAQ,IAExCkP,EAAenzB,EAAQ+c,QAAQ,SAAS,GAC/B2W,KAAK,OAAQn0B,EAAOssB,IAAI8H,gBAAgBP,CAAI,CAAC,EAC1DD,EAAaO,KAAK,WAAYzP,CAAQ,EACtCkP,EAAaO,KAAK,SAAU,QAAQ,EAEpCnF,EAAU3E,KAAK,MAAM,EAAEgK,OAAOT,CAAY,EAC1C3Y,EAAS,WACT2Y,EAAa,GAAGT,MAAM,EACtBS,EAAajW,OAAO,CACpB,EAAG,IAAI,EAET,CAtYA,CAuHA,SAASkS,IACLA,EAAQyE,UACVC,aAAa1E,EAAQyE,QAAQ,EAE3B3oB,EAAiB6oB,QAAQxQ,OAC3BrY,EAAiB6oB,QAAQxQ,MAAMyQ,OAAO,EAEvCrtB,EAAKmpB,UAAY,GAEjBV,EAAQyE,SAAWvO,WAAW,WAC7Bpa,EAAiB6oB,QAAQ,CACxB7yB,KAAM,CACLqC,SAAU0L,EAAiBwJ,wBAC3B2X,wBAAyB,IAAI3B,EAAwB9nB,EAAK+nB,YAAa,OAAO,CAC/E,EACArR,iBAAkB,EACnB,CAAC,EAAEtb,KAAK,SAASb,GAChBgO,EAAkBwH,QAAQ,EAAEkZ,YAAcjpB,EAAKkpB,MAQlD,SAASoE,EAAehE,GACvB,IAAI,IAAIiE,KAAQjE,EAAK,CACpB,GAAiD,oBAA9C9wB,OAAOg1B,UAAUpgB,SAASqgB,KAAKnE,EAAIiE,EAAK,GAA2BjE,EAAIiE,GAAMG,UAAYtiB,EAC3F,OAAOke,EAAIiE,GAAMG,QAAQC,YACrB,GAAiD,oBAA9Cn1B,OAAOg1B,UAAUpgB,SAASqgB,KAAKnE,EAAIiE,EAAK,EAC/C,OAAOD,EAAehE,EAAIiE,EAAK,CACjC,CACD,EAfyEhzB,CAAI,EAC1E8N,EAAKsM,MAAM,EACX3H,EAAW8c,WAAW,gBAAiB,EAAE,EACzC9pB,EAAKmpB,UAAY,EAClB,CAAC,CACF,EAAG,GAAG,CACP,CAyPD,CAhZD,IAAW9vB,EAAST,EAAQwS,EAAjB/R,EAoZRA,QApZiBT,EAoZRA,OAJT,0RAECS,EAAQX,OAAO,oBAAoB,EACpCuB,WAAW,gBAAiB0tB,CAAa,C,iFC1Yb,SAAzBiG,EAAmC9vB,EAAI4mB,EAAS3X,EAAeoE,EAAS0C,EAAUhU,EAAQ9C,EAAc+C,EAAQmN,EAAWxQ,EAAc6L,EAAkB/D,EAAkBuO,EAAWH,EAAiB5S,EAAmBqV,GAEhO,IAAIpV,EAAOC,KACX8M,EAAc,EAEd/M,EAAKgU,iBAAmB1L,EACxBtI,EAAK+S,UAAYD,EACjB9S,EAAK6tB,MAAQ/a,EAAUgb,qBACvB9tB,EAAKzG,OAASoZ,EACd3S,EAAK4kB,UAAY3X,EACjBjN,EAAKwb,aAAe/e,EACpBuD,EAAK6kB,kBAAoB9kB,EAEzBC,EAAK4T,KAAO,WACX,IAAI4I,EAAI1e,EAAG8e,MAAM,EAaX,OAXN/I,EAAS,WACJ7T,EAAK+tB,cAAcnZ,QAAW5U,EAAK6tB,MAAM10B,QAKnC0G,EAAO2Q,GAAG,4BAA4B,EACtCgM,EAAE/jB,QAAQ,IALPuH,EAAK+tB,cAActZ,cAAc,EACjC+H,EAAEnC,OAAO,EAMjB,CAAC,EAEMmC,EAAEK,OAChB,EAEC7c,EAAKslB,aAAe,SAASC,GAC7BvlB,EAAKylB,OAASf,EAAQe,OAAO,CAC3B1qB,IAAKqa,EAAkByB,SAAW,2BAIlCtc,KAAM,CAAEqC,SAAUH,EAAaI,QAAS,EACxC6oB,KAAMH,CAMP,CAAC,EAIAI,QAAQ,SAASprB,GACjBA,EAAKuoB,QAAQ,SAAS/nB,GACrBiF,EAAK6tB,MAAMvsB,KAAKvG,CAAG,CACpB,CAAC,CACF,CAAC,EACAoc,MAAM,SAAS5c,GACZA,GAAQA,EAAKqrB,iBACf5lB,EAAKwlB,cAAgB,CAACjrB,EAAKqrB,kBAE3B5lB,EAAKwlB,cAAgB,CAAC,2CACxB,CAAC,CACH,EAEAxlB,EAAKguB,WAAa,SAAS5sB,GAC1BpB,EAAK6tB,MAAMhD,OAAO7qB,EAAK6tB,MAAMxmB,QAAQjG,CAAC,EAAG,CAAC,CAC3C,CACD,CAhED,IAAW/H,IAoERA,QAAST,OAJT,wOAECS,EAAQX,OAAO,oBAAoB,EACpCuB,WAAW,yBAA0B2zB,CAAsB,C,gFC1EhC,SAAxBK,EAAkCnwB,EAAIiP,EAAeoE,EAAS0C,EAAUhU,EAAQ9C,EAAc+C,EAAQ2F,EAAU0B,EAAWU,EAAOpL,EAAc6L,EAAkBD,EAAM9D,EAAkBgE,EAAmB2lB,GAE/M,IAmCM1R,EAnCFxc,EAAOC,KAEP5E,EAAM,IAAIC,KAEd0E,EAAKmb,SAAW,CAAC9S,EACjBrI,EAAK+H,MAAQ/H,EAAKmb,SAAW9hB,EAAQqB,KAAKmN,CAAK,EAAIA,EACnD7H,EAAKgU,iBAAmB1L,EACxBtI,EAAKuH,UAAYJ,EACjBnH,EAAKktB,SAAW,IAChBngB,EAAc,EAEV/M,EAAK+H,MAAMG,WACblI,EAAKiT,iBAAmBjT,EAAKuH,UAAUtJ,OAAO,SAAU7F,GAAK,OAAOA,EAAE+P,YAAcnI,EAAK+H,MAAMG,UAAY,CAAC,EAAE,IAE9GlI,EAAKiT,iBAAmBjT,EAAKuH,UAAU,GACvCvH,EAAK+H,MAAMG,WAAalI,EAAKuH,UAAU,GAAGY,YAG5CnI,EAAKmuB,YAAc,CACjBnN,IAAK3lB,CACP,EAEA2E,EAAKouB,WAAa,GAClBpuB,EAAKquB,WAAa,GAEdtxB,EAAa8V,cACfgB,EAAS,WAAc7T,EAAKsuB,UAAU7Z,cAAc,CAAG,CAAC,EAErDzU,EAAKmb,UAMRrb,EAAOyuB,QAAQA,QAAQC,UAAUluB,KAAO,GACpCkc,EAAI,IAAIlhB,KAAK0E,EAAK+H,MAAM0mB,sBAAsB,EAElD5a,EAAS,WACP7T,EAAKouB,WAAWxV,IAAI,SAAU,CAAC4D,EAAEkS,YAAY,EAAGlS,EAAEmS,SAAS,EAAGnS,EAAE3gB,QAAQ,EAAE,EAC1EmE,EAAKquB,WAAWzV,IAAI,SAAU,CAAC4D,EAAEoS,SAAS,EAAGpS,EAAEqS,WAAW,EAAE,EAC5D7uB,EAAK8uB,aAAaC,KAAO,EAC3B,CAAC,GAZDjvB,EAAOa,OAAO,0BAA2B,SAAUC,EAAUC,GACtDxH,EAAQ21B,OAAOpuB,EAAUC,CAAQ,GACpCwH,EAAKsM,MAAM,CACf,EAAG,EAAI,EAaT3U,EAAK8uB,aAAe,WAClB,IAIMG,EAJDjvB,EAAK8uB,aAAaC,KAarB/uB,EAAK8uB,aAAaC,KAAO,IAZzB/uB,EAAKquB,WAAWa,MAAM,EAEtB7zB,EAAM,IAAIC,KACN2zB,EAAQ,IAAI3zB,KAAKD,EAAIqzB,YAAY,EAAGrzB,EAAIszB,SAAS,EAAGtzB,EAAIQ,QAAQ,CAAC,EACxC,IAAIP,KAAK0E,EAAK+H,MAAM0mB,sBAAsB,EAE5CU,QAAQ,IAAMF,EAAME,QAAQ,EACrDnvB,EAAKquB,WAAWzV,IAAI,MAAO,CAACvd,EAAIuzB,SAAS,EAAsB,GAAnBvzB,EAAIwzB,WAAW,EAAS,GAAK,GAAG,EAE5E7uB,EAAKquB,WAAWzV,IAAI,MAAO,CAAC,EAAG,EAAE,EAIvC,EAEA5Y,EAAKovB,iBAAmB,SAAUp1B,GAChCgG,EAAK+H,MAAMG,WAAalO,EAASmO,UACnC,EAEAnI,EAAKqvB,WAAa,SAAUr1B,GAC1B,IAGS8N,EAHLpJ,EAAerF,EAAQqB,KAAKV,EAASkZ,QAAQ,EAC7CC,EAASC,SAASC,eAAe,iBAAiB,EAEtD,IAASvL,KAAO9H,EAAKiT,iBAAiBvL,WACpChJ,EAAeA,EAAa4U,QAAQ,IAAIva,OAAOiH,EAAKiT,iBAAiBvL,WAAWI,GAAKyL,IAAK,GAAG,EAAGvT,EAAK+H,MAAMD,EAAI,EAE7GqL,IACFA,EAAOK,cAAcJ,SAASK,KAAKC,UAAY,GAC/CP,EAAOK,cAAcJ,SAASO,MAAMjV,CAAY,EAChDsB,EAAKsvB,YAAc,GAEvB,EAEAtvB,EAAKuvB,uBAAyB,WAC5Bpe,EAAQ2J,KAAK,iFAAkF,QAAQ,CACzG,EAEA9a,EAAKslB,aAAe,SAAUuI,GAG5B,IAFA,IAAI2B,EAAmB,CAAC,YAAa,aAAc,aAE1CzzB,EAAI,EAAGA,EAAI8xB,EAAM10B,OAAQ4C,CAAC,GAAI,CACrC,IAQMiwB,EARFtG,EAAOmI,EAAM9xB,GAEjB,GAA4C,CAAC,IAAzCyzB,EAAiBnoB,QAAQqe,EAAKiH,IAAI,EAEpC,OADA/zB,OAAOqjB,MAAM,oBAAoB,EAIT,aAAtB,OAAOgQ,YAA2D,CAAC,EAA9BvG,EAAKiH,KAAKtlB,QAAQ,OAAO,KAC5D2kB,EAAa,IAAIC,YACVwD,cAAc5B,EAAM9xB,EAAE,EAEjCiwB,EAAWE,OAAS,SAAU9zB,GAC5Byb,EAAS,WACP,IAQM6b,EACApG,EACAqG,EAAWC,EAVY,IAAzBx3B,EAAEuyB,OAAOhvB,OAAOxC,QAClB00B,EAAMhD,OAAO9uB,EAAG,CAAC,EACjBnD,EAAOqjB,MAAM,4BAA4B,EACzCjc,EAAK+H,MAAM8nB,wBAA0B,KACrC/vB,EAAOqsB,OAAO,IAGV2D,EAAUl3B,EAAOssB,KAAOtsB,EAAOm3B,UAC/BL,EAAM,IAAIM,MACV1G,EAAMwG,EAAQ9C,gBAAgBtH,CAAI,EACvBkK,EAAXD,EAAQ,EACZD,EAAIxD,OAAS,WACXyD,EAAQ1vB,KAAK0vB,MACbC,EAAS3vB,KAAK2vB,OACF,IAARD,IACFC,EAAUA,EAASD,EAAS,IAC5BA,EAAQ,KAEV,IAAIM,EAAS7c,SAAS8c,cAAc,QAAQ,EAGxCC,GAFJF,EAAON,MAAQA,EACfM,EAAOL,OAASA,EACNK,EAAOG,WAAW,IAAI,GAM5BC,GALJF,EAAIG,yBAA2B,GAC/BH,EAAII,4BAA8B,GAClCJ,EAAIK,wBAA0B,GAC9BL,EAAIM,sBAAwB,GAC5BN,EAAIO,UAAUzwB,KAAM,EAAG,EAAG0vB,EAAOC,CAAM,EACzBK,EAAOU,UAAUjL,EAAKiH,IAAI,GACxC3sB,EAAK+H,MAAM8nB,wBAA0BQ,EACrCvwB,EAAOqsB,OAAO,CAChB,EACAuD,EAAIkB,IAAMtH,EAEd,CAAC,CACH,EAEJ,CACF,EAEAtpB,EAAK4T,KAAO,WACV,IAAI4I,EAAI1e,EAAG8e,MAAM,EAajB,OAXA/I,EAAS,WACF7T,EAAKsuB,UAAU1Z,QAKlB/U,EAAO2Q,GAAG,8BAA8B,EACxCgM,EAAE/jB,QAAQ,IALVuH,EAAKsuB,UAAU7Z,cAAc,EAC7B+H,EAAEnC,OAAO,EAMb,CAAC,EAEMmC,EAAEK,OACX,EAEA7c,EAAKyR,KAAO,WACV,IAAI+K,EAAI1e,EAAG8e,MAAM,EAkDjB,OAhDK5c,EAAKsuB,UAAU1Z,OAKlBrQ,EAAiBssB,aAAa,CAC5Bt2B,KAAM,CACJqC,SAAUH,EAAaI,SACvBi0B,SAAU,CACRC,cAAe,MACfC,aAAc,QACdC,YAAajxB,EAAK+H,MAAMmpB,YACxBC,UAAWp0B,EAAa/E,GACxBo5B,WAAYpxB,EAAK+H,MAAMG,WACvBmpB,eAAiB,SAAU9pB,EAAW6pB,GACpC,IAAIC,EAAiB,GACjBr3B,EAAWuN,EAAUtJ,OAAO,SAAU7F,GAAK,OAAOA,EAAE+P,YAAcipB,CAAY,CAAC,EAEnF,GAAIp3B,EAASb,SAAWa,EAAWA,EAAS,IAC1C,IAAK,IAAImF,EAAI,EAAGA,EAAInF,EAAS0N,WAAWvO,OAAQgG,CAAC,GACR,2BAAnCnF,EAAS0N,WAAWvI,GAAGwI,QACzB0pB,EAAe/vB,KAAK,CAClBgwB,QAASt3B,EAAS0N,WAAWvI,GAAGwI,QAChC4pB,UAAWrD,EAAejV,WAAWjZ,EAAK+H,MAAM/N,EAAS0N,WAAWvI,GAAGwI,QAAQ,CACjF,CAAC,EAED0pB,EAAe/vB,KAAK,CAClBgwB,QAASt3B,EAAS0N,WAAWvI,GAAGwI,QAChC4pB,UAAWvxB,EAAK+H,MAAM/N,EAAS0N,WAAWvI,GAAGwI,QAC/C,CAAC,EAKP,OAAO0pB,CACT,EAAG9sB,EAAiBhK,KAAKgN,UAAU9K,EAAaI,UAAWmD,EAAK+H,MAAMG,UAAU,EAChFspB,uBAAwB,IAAIl2B,KAAK0E,EAAK+H,MAAM0mB,uBAAyB,IAAMzuB,EAAK+H,MAAM0pB,sBAAsB,EAAEC,YAAY,CAC5H,CACF,CACF,CAAC,EAAEt2B,KAAK,WACNmJ,EAAiBC,kBAAkB,CAAE5H,SAAUH,EAAaI,QAAS,EAAG,EAAI,EACzEzB,KAAK,WACJyE,EAAO2Q,GAAG,iCAAkC,GAAI,CAAEmhB,OAAQ,EAAK,CAAC,EAChEnV,EAAE/jB,QAAQ,CACZ,CAAC,CACL,CAAC,GA5CDuH,EAAKsuB,UAAU7Z,cAAc,EAC7B+H,EAAEnC,OAAO,GA8CJmC,EAAEK,OACX,EAEA7c,EAAK4xB,YAAc,GACnB5xB,EAAK6xB,cAAgB,WAEd7xB,EAAK8xB,WAKL9xB,EAAK+H,MAAMmpB,aAKhBlxB,EAAK4xB,YAAc,GAEnBrtB,EAAiBstB,cAAc,CAC7Bt3B,KAAM,CACJqC,SAAUH,EAAaI,SACvBi0B,SAAU,CACRE,aAAc,QACdC,YAAajxB,EAAK+H,MAAMmpB,YACxBC,UAAWp0B,EAAa/E,GACxBo5B,WAAYpxB,EAAK+H,MAAMG,WACvBka,gBAAiB7Z,EAAoBA,EAAkBwH,QAAQ,EAAEqS,gBAAkB3c,EAASkkB,gBAC5F0H,eAAiB,SAAU9pB,EAAW6pB,GACpC,IAAIC,EAAiB,GACjBr3B,EAAWuN,EAAUtJ,OAAO,SAAU7F,GAAK,OAAOA,EAAE+P,YAAcipB,CAAY,CAAC,EAEnF,GAAIp3B,EAASb,SAAWa,EAAWA,EAAS,IAC1C,IAAK,IAAImF,EAAI,EAAGA,EAAInF,EAAS0N,WAAWvO,OAAQgG,CAAC,GACR,2BAAnCnF,EAAS0N,WAAWvI,GAAGwI,QACzB0pB,EAAe/vB,KAAK,CAClBgwB,QAASt3B,EAAS0N,WAAWvI,GAAGwI,QAChC4pB,UAAWrD,EAAejV,WAAWjZ,EAAK+H,MAAM/N,EAAS0N,WAAWvI,GAAGwI,QAAQ,CACjF,CAAC,EAED0pB,EAAe/vB,KAAK,CAClBgwB,QAASt3B,EAAS0N,WAAWvI,GAAGwI,QAChC4pB,UAAWvxB,EAAK+H,MAAM/N,EAAS0N,WAAWvI,GAAGwI,QAC/C,CAAC,EAKP,OAAO0pB,CACT,EAAG9sB,EAAiBhK,KAAKgN,UAAU9K,EAAaI,UAAWmD,EAAK+H,MAAMG,UAAU,EAChFspB,uBAAwB,IAAIl2B,KAAK0E,EAAK+H,MAAM0mB,uBAAyB,IAAMzuB,EAAK+H,MAAM0pB,sBAAsB,EAAEC,YAAY,CAC5H,EACAK,OAAQ/xB,EAAK8xB,UACf,CACF,CAAC,EAAE12B,KAAK,SAAU42B,GAEhBhyB,EAAKiyB,cAAgB,GACrBjyB,EAAK4xB,YAAc,GAEfI,EACFp5B,EAAOqjB,MAAM,+BAA+B,EAE5CrjB,EAAOqjB,MAAM,yBAAyB,CAC1C,CAAC,GAlDCA,MAAM,6BAA6B,EALnCA,MAAM,mCAAmC,CAyD7C,CACF,CApRF,IAAW5iB,EAAST,EAATS,EAwRRA,QAxRiBT,EAwRRA,OAJR,uNAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,wBAAyBg0B,CAAqB,C,wECtRtC,SAAhBiE,EAA0BnV,EAASlI,EAAoBG,EAAc7a,GAQzE,IANA,IAAI6F,EAAOC,KAIPkyB,GAFJnyB,EAAK4d,OAASzjB,EAAOU,UAEPkiB,EAAQ,SAAS,EAAElI,EAAmB3I,OAAO8I,CAAY,EAAG,OAAO,GAExEjZ,EAAI,EAAGA,EAAIo2B,EAAQh5B,OAAQ4C,CAAC,GACnCo2B,EAAQp2B,GAAG2F,aAAe3F,EAE5BiE,EAAKoyB,cAAgB/4B,EAAQqB,KAAKy3B,CAAO,EACzCnyB,EAAKqyB,UAAYryB,EAAKnF,UAAYxB,EAAQqB,KAAKy3B,CAAO,EAEtDnyB,EAAKsyB,gBAAkB,SAAUnc,EAAOoc,EAAUC,GAChDrc,EAAMmB,eAAe,EACrB1e,EAAO6U,UAAY7U,EAAO6U,WAAa,GACvC7U,EAAO6U,UAAUnM,KAAK,CACpB,MAAS,mBACT,YAAeixB,CACjB,CAAC,EAED35B,EAAOkiB,KAAK0X,EAAa,QAAQ,CACnC,CACF,CAzBF,IAAWn5B,EAAST,EAATS,EA6BRA,QA7BiBT,EA6BRA,OAJR,mEAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,gBAAiBi4B,CAAa,C,6EC3BnB,SAArBO,EAA+B5yB,EAAQC,EAAQhC,EAAIkf,EAAMzY,EAAkB9H,EAAc6H,EAAgB6C,EAAWhN,EAAQu4B,EAAqBptB,EAAce,EAAW3B,EAAuBuC,EAAsBC,EAAmBkO,EAAmBnI,EAAWlN,GAE1Q,IAAIC,EAAOC,KAiBX,SAAS0yB,EAAU5K,GACjB,IAAK,IAAIhsB,EAAI,EAAGA,EAAIgsB,EAAY5uB,OAAQ4C,CAAC,GACvC,IAAK,IAAIoD,EAAI,EAAGA,EAAI4oB,EAAYhsB,GAAGmsB,MAAM/uB,OAAQgG,CAAC,GAAE,CAClD,GAA8C,EAA1C4oB,EAAYhsB,GAAGmsB,MAAM/oB,GAAGgpB,SAAShvB,OACnC,MAAO,GACJ,GAAoD,SAAhD4uB,EAAYhsB,GAAGmsB,MAAM/oB,GAAGgpB,SAAS,GAAGC,SAC3C,MAAO,EAAK,CACpB,CAtBApoB,EAAK4yB,UAAYv5B,EAAQqB,KAAK4J,CAAc,EAC5CtE,EAAKsvB,YAAc,GACnBtvB,EAAK4d,OAASzjB,EAAOgW,UACrBnQ,EAAK4E,sBAAwBF,EAC7B1E,EAAKpD,SAAWH,EAAaI,SAC7BmD,EAAKoiB,gBAVT,OAWIpiB,EAAKsd,SAAW,GAChBtd,EAAK6yB,WAAa,GAClB7yB,EAAKod,UAAYJ,EAAKK,mBAAmBjI,EAAkByB,SAAW,kBAAkB,EACxF7W,EAAK4kB,UAAY3X,EACjBjN,EAAKwb,aAAe/e,EACpBuD,EAAK6kB,kBAAoB9kB,EAEzBD,EAAOyuB,QAAQC,UAAUluB,KAAO,GAWhC,IAAK,IAAIvE,EAAI,EAAGA,EAAIiE,EAAK4yB,UAAUz5B,OAAQ4C,CAAC,GAAI,CAC1CiE,EAAK4yB,UAAU72B,GAAG0J,SAASqtB,cAC7B9yB,EAAK4yB,UAAU72B,GAAGT,KAAO0E,EAAK4yB,UAAU72B,GAAG0J,SAASqtB,cAEpD9yB,EAAK4yB,UAAU72B,GAAGT,KAAO,GAE3B0E,EAAK4yB,UAAU72B,GAAGslB,YAAcrhB,EAAK4yB,UAAU72B,GAAG0J,SAAS4E,YAC3DrK,EAAK4yB,UAAU72B,GAAG2J,eAAiB1F,EAAK4yB,UAAU72B,GAAG0J,SAAS5I,SAC9DmD,EAAK4yB,UAAU72B,GAAGg3B,aAAe/yB,EAAK4yB,UAAU72B,GAAG0J,SAASstB,aAC5D/yB,EAAK4yB,UAAU72B,GAAGi3B,eAAiBhzB,EAAK4yB,UAAU72B,GAAG0J,SAASutB,eAE9DhzB,EAAK4yB,UAAU72B,GAAGiM,eAAiBhI,EAAK4yB,UAAU72B,GAAG0J,SAASuC,eAAelE,OAC3E,SAAUC,EAAKC,GAAQ,OAAQA,EAAKiE,YAAclE,EAAIC,EAAK2D,SAAW3D,EAAKiE,YAAclE,GAAQA,CAAK,EAAG,EAAE,EAE7G,IAAK,IAAI3C,EAAI,EAAGA,EAAIpB,EAAK4E,sBAAsBzL,OAAQiI,CAAC,GAClDpB,EAAK4yB,UAAU72B,GAAG0J,SAASkkB,iBAAmB3pB,EAAK4E,sBAAsBxD,GAAG6xB,YAAY5zB,kBAC1FW,EAAK4yB,UAAU72B,GAAGT,KAAO0E,EAAK4E,sBAAsBxD,GAAG9F,KACvD0E,EAAK4yB,UAAU72B,GAAGslB,YAAcrhB,EAAK4E,sBAAsBxD,GAAGigB,aAI9DrhB,EAAK4yB,UAAU72B,GAAGm3B,UAAYlzB,EAAK4yB,UAAU72B,GAAGm3B,SAASC,aAC3DnzB,EAAK4yB,UAAU72B,GAAGm3B,SAASnL,YAAc,IAAI2K,EAAoBr5B,EAAQmY,SAASxR,EAAK4yB,UAAU72B,GAAGm3B,SAASC,UAAU,EAAG95B,EAAQohB,OAAO,GAAIpU,EAAUrG,EAAK4yB,UAAU72B,GAAG0J,SAASC,gBAAgBX,cAAeO,EAAatF,EAAK4yB,UAAU72B,GAAG0J,SAASC,gBAAgBX,aAAa,CAAC,EACvR/E,EAAK4yB,UAAU72B,GAAGm3B,SAASE,QAAUT,EAAU3yB,EAAK4yB,UAAU72B,GAAGm3B,SAASnL,WAAW,EAEzF,CAEA,IAAShsB,EAAI,EAAGA,EAAIiE,EAAK4E,sBAAsBzL,OAAQ4C,CAAC,GAAI,CAC1DiE,EAAK4E,sBAAsB7I,GAAGg3B,aAAe,GAC7C/yB,EAAK4E,sBAAsB7I,GAAGi3B,eAAiB,WAE/C,IAAS5xB,EAAI,EAAGA,EAAIpB,EAAK4yB,UAAUz5B,OAAQiI,CAAC,GACtCpB,EAAK4E,sBAAsB7I,GAAGk3B,YAAY5zB,iBAAmBW,EAAK4yB,UAAUxxB,GAAGqE,SAASkkB,kBAC1F3pB,EAAK4E,sBAAsB7I,GAAGg3B,aAAe/yB,EAAK4yB,UAAUxxB,GAAGqE,SAASstB,aACxE/yB,EAAK4E,sBAAsB7I,GAAGi3B,eAAiBhzB,EAAK4yB,UAAUxxB,GAAGqE,SAASutB,gBAI1EhzB,EAAK4E,sBAAsB7I,GAAGm3B,UAAYlzB,EAAK4E,sBAAsB7I,GAAGm3B,SAASC,aACnFnzB,EAAK4E,sBAAsB7I,GAAGm3B,SAASnL,YAAc,IAAI2K,EAAoBr5B,EAAQmY,SAASxR,EAAK4E,sBAAsB7I,GAAGm3B,SAASC,UAAU,EAAG95B,EAAQohB,OAAO,GAAIvT,EAAkBlH,EAAK4E,sBAAsB7I,GAAG2J,gBAAgBX,cAAekC,EAAqBjH,EAAK4E,sBAAsB7I,GAAG2J,gBAAgBX,aAAa,CAAC,EACrU/E,EAAK4E,sBAAsB7I,GAAGm3B,SAASE,QAAUT,EAAU3yB,EAAK4E,sBAAsB7I,GAAGm3B,SAASnL,WAAW,EAEjH,CAEA/nB,EAAKurB,KAAO,SAAUvR,GACpBA,EAAS7d,QAAU,EACrB,EAEA6D,EAAKqvB,WAAa,SAAUgE,GAK1B,IAJA,IAAIr5B,EAAWmN,EAAUlJ,OAAO,SAAUmD,GAAK,OAAOA,EAAE+G,YAAckrB,EAAS5tB,SAAS0C,UAAY,CAAC,EAAE,GACnGzJ,EAAerF,EAAQqB,KAAKV,EAASkZ,QAAQ,EAC7CC,EAASC,SAASC,eAAe,iBAAiB,EAE7CtX,EAAI,EAAGA,EAAIs3B,EAAS5tB,SAASuC,eAAe7O,OAAQ4C,CAAC,GACxD/B,EAAS0N,WAAW2rB,EAAS5tB,SAASuC,eAAejM,GAAG4L,WAC1DjJ,EAAeA,EAAa4U,QAAQ,IAAIva,OAAOiB,EAAS0N,WAAW2rB,EAAS5tB,SAASuC,eAAejM,GAAG4L,SAAS4L,IAAK,GAAG,EAAG8f,EAAS5tB,SAASuC,eAAejM,GAAGkM,SAAS,GAGxKkL,IACFA,EAAOK,cAAcJ,SAASK,KAAKC,UAAY,GAC/CP,EAAOK,cAAcJ,SAASO,MAAMjV,CAAY,EAChDsB,EAAKsvB,YAAc,GAEvB,EAEAtvB,EAAKwrB,SAAW,SAAUxR,EAAUpc,GAClCoc,EAAS7d,QAAUyB,CACrB,EAEAoC,EAAKyrB,eAAiB,SAAUzR,GAC9B,OAAOA,EAAS7d,OAClB,EAEA6D,EAAKoe,KAAO,SAAU0S,GAEpBjxB,EAAO2Q,GAAG,sCAAuC,CAAExY,GAAI84B,EAASlpB,SAAU,CAAC,CAC7E,EAEA5H,EAAKszB,gBAAkB,SAAUxC,GAC/B,OAAO,WACL,OAAOhzB,EAAGyH,IAAI,CACZhB,EAAiBgvB,YAAY,CAC3B32B,SAAUH,EAAaI,SACvB7E,GAAI84B,EAASlpB,SACf,EAAG,EAAI,EACPrD,EAAiBivB,mBAAmB,CAClCC,WAAY3C,EAASlpB,SACvB,EAAG,EAAI,EACR,EAAExM,KAAK,SAAUb,GAChB,IAAK,IAAIwB,EAAI,EAAGA,EAAIuI,EAAenL,OAAQ4C,CAAC,GAC1C,GAAIuI,EAAevI,GAAG0J,SAASmC,WAAakpB,EAASlpB,UAInD,OAHAtD,EAAevI,GAAG0J,SAAWlB,EAAiBhK,KAAKm5B,WAAWj3B,EAAaI,UAAUi0B,EAASlpB,WAC9FtD,EAAevI,GAAG0J,SAAS2C,gBAAkB7N,EAAK,GAAGA,KADrD+J,KAEAtE,EAAK4yB,UAAU72B,GAAG0J,SAAWpM,EAAQqB,KAAK4J,EAAevI,GAAG0J,QAAQ,EAI1E,CAAC,CACH,CACF,EAEAzF,EAAK2zB,SAAW,SAAUvR,EAAiBuK,GACzC3sB,EAAKsd,SAAW,iBAAmB8E,EACnCpiB,EAAK6yB,WAAalG,EAClB3sB,EAAKoiB,gBAAkBA,EACvBzD,WAAW,WAActlB,EAAQ+c,QAAQ,aAAa,EAAEwI,OAAO,CAAG,EAAG,CAAC,CACxE,CACF,CAxIF,IAAWvlB,IA4IRA,QAAST,OAJR,0RAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,qBAAsBw4B,CAAkB,C,0EC1IhC,SAAlBmB,EAA4B/zB,EAAQ8K,EAAQlO,EAAcuE,GAE9D,IAAIhB,EAAOC,KAEXD,EAAKpF,OAAS+P,EACd3K,EAAK+H,MAAQ,CACZ8rB,UAAW,GACXC,YAAa,GACbhV,QAAS,GACTiV,eAAgB,EACjB,EAEA/zB,EAAKg0B,KAAO,WACX,OAAOhzB,EAAcizB,UAAU,CAC7B15B,KAAMlB,EAAQohB,OAAO,CAAE5P,SAAUF,EAAO7H,GAAIlG,SAAUH,EAAaI,QAAS,EAAGmD,EAAK+H,KAAK,CAC1F,CAAC,EACA3M,KAAK,WACLxC,EAAOqjB,MAAM,UAAU,EACvBpc,EAAO2Q,GAAG,uBAAwB,CAAExY,GAAIgI,EAAKpF,OAAOkI,EAAG,CAAC,CACzD,CAAC,CACH,CACD,CAtBD,IAAWzJ,EAAST,EAATS,EA0BRA,QA1BiBT,EA0BRA,OAJT,6DAECS,EAAQX,OAAO,oBAAoB,EACpCuB,WAAW,kBAAmB25B,CAAe,C,uECxB3B,SAAfM,EAAyBlX,EAAMnd,EAAQmN,EAAYlN,EAAQqE,EAAK3E,GAI7DA,GACHK,EAAO2Q,GAAG,yBAAyB,EAH1BvQ,KAMNkE,IAAM6Y,EAAKK,mBAAmBlZ,CAAG,EANtC,IASI8R,EAASrd,EAAO4d,YAAYxJ,EAAWiJ,OAAQ,GAAK,EAExDnW,EAAOgX,IAAI,oBAAqB,WAC9BF,cAAcX,CAAM,CACtB,CAAC,CACH,CAjBF,IAAW5c,EAAST,EAATS,EAqBRA,QArBiBT,EAqBRA,OAJR,yEAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,eAAgBi6B,CAAY,C,sECpB5C,SAASC,EAAYr2B,EAAI+B,EAAQkd,EAASC,EAAMvgB,EAAc2F,EAAqBrD,EAAc5E,EAAQ4F,EACvGwC,EAAsBe,EAAmBJ,EAAqBP,EAA0BR,EACxFxC,EAAQkC,EAAsBK,EAAoBnB,EAASY,EAAeC,EAAuBpC,EACjG8G,EAAawD,EAAmBnG,EAAgB9F,EAAYqG,EAAsBuF,EAAyBpM,EAAkBsB,EAAgBnC,EAAgBtC,GAG7J,IAAI8F,EAAOC,KA4CP5E,GA3CJ2E,EAAKwb,aAAe/e,EACpBuD,EAAKo0B,WAAaj6B,EAAOM,MACzBuF,EAAK6kB,kBAAoB9kB,EACzBC,EAAKq0B,oBAAsB,GAC3Br0B,EAAKs0B,qCAAuC,GAC5Ct0B,EAAKu0B,eAAiB/3B,EAEtBwD,EAAKw0B,oBAAsB,GAC3Bx0B,EAAKgC,aAAeH,EACpB7B,EAAKy0B,mBAAqBvyB,EAE1BlC,EAAK00B,eAAiB,GACtB10B,EAAKrF,QAAUoG,EACff,EAAK20B,cAAgBhzB,EACrB3B,EAAK40B,sBAAwBhzB,EAE7B5B,EAAKod,UAAYJ,EAAKK,mBAAmBjI,kBAAkByB,SAAW,SAAS,EAC/E7W,EAAKsd,SAAW,SAAW7gB,EAAaI,SAAW,KAAM,IAAIvB,MAAOiiB,OAAO,EAAE1F,MAAM,EAAG,EAAE,EACxF7X,EAAKwd,SAAW,GAChBxd,EAAKyd,SAAW,GAEhBzd,EAAK60B,mBAAqB,CACxBC,MAAO,CACLC,YAAa,EACbC,YAAa,GACbpF,OAAQ,GACV,EACAqF,MAAO,CACLC,OAAQ,KACV,EACAC,MAAO,CACLC,cAAe,GACfC,UAAW,GACXC,KAAM,CACJC,MAAO,CACL,UACA,UACA,UAEJ,CACF,CACF,EAEU,IAAIj6B,MACVQ,EAAY,IAAIR,KAAK0E,EAAKwb,aAAatf,SAAS,EAChDs5B,EAAU,IAAIl6B,KAAK0E,EAAKwb,aAAaia,OAAO,EAiB5CC,GAfJ11B,EAAK21B,eAAiB,CACpBC,QAASv6B,GAAOS,EAChB+5B,cAAeC,MAAMC,QAAQ/1B,EAAKrF,OAAO,GAA2B,EAAtBqF,EAAKrF,QAAQxB,OAC3D68B,mBAAoB34B,GAAoBA,EAAiBI,aAAeq4B,MAAMC,QAAQ14B,EAAiBI,WAAW,GAA2C,EAAtCJ,EAAiBI,YAAYtE,OACpJ88B,mBAAoBt3B,GAAkD,SAAhCA,EAAeu3B,YACvD,EAEAl2B,EAAKm2B,kBAAoB,CACvBP,QAAgB95B,GAAPT,GAAoBA,GAAOm6B,CACtC,EAEAx1B,EAAKo2B,gBAAkB,CACrBR,QAAeJ,EAANn6B,CACX,EAE2B,IA0O3B,SAASg7B,IACPr2B,EAAKs2B,UAAY,CACfxe,OAAQ,CACN7U,OAAQV,EAAqBU,MAC/B,EACAszB,IAAK,CACHvzB,OAAQM,EAAkBN,OAC1BC,OAAQ,CAACK,EAAkBL,OAC7B,EACArI,OAAQ,CACNqI,OAAQC,EAAoBD,QAAU,EACxC,EACAuzB,YAAa,CACXvzB,OAAQN,EAAyBM,MACnC,EACAwzB,QAASt0B,EACTu0B,YAAahB,CACf,EAEA11B,EAAK22B,YAAc,CACjB7e,OAAQvV,EAAqBS,OAC7BpI,OAAQsI,EAAoBF,OAC5BwzB,YAAa7zB,EAAyBK,OACtC0zB,YAAahB,EAAqB79B,IAAI,SAAUuJ,GAAK,OAAOA,EAAE6zB,KAAO,CAAC,CACxE,CACF,CAlQIz1B,GACF20B,EAAYyC,QAAQlB,qBAAqBj5B,EAAc2F,CAAmB,EAAEhH,KAAK,SAAUb,GACzFm7B,EAAuBn7B,EACvB87B,EAAe,EAEfr2B,EAAK62B,eAA2BC,EAE7B,CAAC,CAACpB,EAAqBz3B,OAAO,SAAUmD,GAAK,MAAO,CAAC,CAACA,EAAExD,KAAO,CAAC,EAAEzE,SADhD,CAAC29B,GACuDn3B,CAC/E,CAAC,EAGH2G,EAAYywB,mBAAmB,CAAEn6B,SAAUH,EAAaI,QAAS,CAAC,EAC/DzB,KAAK,WACJ4E,EAAKg3B,gBAAkB1wB,EAAY/L,KAAKy8B,gBAAgBv6B,EAAaI,SACvE,CAAC,EAEHiB,EAAGyH,IAAI,CACLe,EAAY4D,SAAS,CAAEtN,SAAUH,EAAaI,QAAS,CAAC,EACxD4M,EAAwBwtB,qBAAqB,CAAEr6B,SAAUH,EAAaI,QAAS,CAAC,EACjF,EAAEzB,KAAK,WAkBN,GAjBA4E,EAAK2J,kBAAoBF,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UACrFmD,EAAKvF,MAAQ6L,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAUhF,IAAI,SAAU0S,GACvE,OAAOlR,QAAQohB,OAAO,GAAIlQ,EAAG,CAC3B1M,WAAY8F,EAAe4G,EAAEzH,KAAO,GACpCo0B,qBAAsBvzB,EAAe4G,EAAEzH,KAAO,IAAIjL,IAAI,SAAUuJ,GAC9D,OAAQvD,EAAWI,OAAO,SAAUC,GAAK,OAAOA,EAAEC,cAAgBiD,EAAEjD,YAAc,CAAC,EAAEiM,MAAM,GAAK,IAAIC,WACtG,CAAC,EAAEwB,KAAK,KAAK,EACbsrB,QAAY5sB,EAAE6sB,kBAAoB7sB,EAAE8sB,oBAAuB,EAAI,EAC/DC,iBAAkB/sB,EAAE+sB,iBAAmBlL,KAAKC,MAAM9hB,EAAE+sB,gBAAgB,EAAEz/B,IAAI,SAAUuJ,GAClF,IAAIob,EAAI,IAAIlhB,KAAK,CAAC,EAElB,OADAkhB,EAAE+a,mBAAmBn2B,EAAEo2B,EAAE,EAClBhb,EAAEib,YAAY,CACvB,CAAC,EAAI,GACL9Z,OAAQpT,EAAEoT,QAAoB,CAChC,CAAC,CACH,CAAC,EAEG3d,EAAK2J,kBACP,IAAK,IAAI5N,EAAI,EAAGA,EAAIiE,EAAK2J,kBAAkBxQ,OAAQ4C,CAAC,GAClDiE,EAAKvF,MAAM6G,KAAKtB,EAAK2J,kBAAkB5N,EAAE,EAgB5B,IAAU+6B,EAZ3B92B,EAAKo0B,WAAW75B,KAAOwiB,EAAQ,SAAS,EAAE/c,EAAKvF,MAAOuF,EAAKo0B,WAAW7yB,KAAMvB,EAAKo0B,WAAWtW,aAAa,EAEzGxX,EAAYoxB,aAAaj7B,EAAaI,QAAQ,EAC3CzB,KAAK,WACJ4E,EAAK23B,UAAYrxB,EAAY/L,KAAKo9B,UAAUl7B,EAAaI,SAC3D,CAAC,EAEHiN,EAAkBC,WAAWtN,EAAaI,SAAUmD,EAAKvF,MAAOyJ,CAAoB,EACjF9I,KAAK,WACJ4E,EAAKkd,cAAgBpT,EAAkBvP,KAAKkC,EAAaI,UAAUmN,OACrE,CAAC,EAEHhK,EAAK43B,UAAsBd,EAExB,CAAC,CAAC92B,EAAKvF,MAAMwD,OAAO,SAAUmD,GAAK,OAAOA,EAAEg2B,kBAAoBh2B,EAAEi2B,mBAAqB,CAAC,EAAEl+B,SADxE,CAAC29B,GAC+En3B,CACvG,CAAC,EAEDK,EAAKqe,mBAAqB,SAAUZ,GACT,aAArB,OAAOhQ,YACsB,QAA3BgQ,EAAStL,YAAY,EACvB1E,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,QAAS,YAAe,eAAgB,WAAc7E,EAAaI,QAAS,CAAC,EAExI4Q,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,QAAS,YAAe,iBAAkB,WAAc7E,EAAaI,QAAS,CAAC,GAI9I,IAAItC,EAAOuP,EAAkBwU,aAAa7hB,EAAaI,SAAUmD,EAAKkd,cAAeld,EAAKo0B,WAAW75B,KAAMkjB,CAAQ,EACnHzd,EAAKwd,SAAWe,KAAKC,WAAWC,QAAQC,mBAAmBnkB,CAAI,CAAC,CAAC,EAAE+Y,QAAQ,MAAO,GAAG,EAAEA,QAAQ,MAAO,GAAG,EAAEA,QAAQ,KAAM,GAAG,EAC5HtT,EAAKyd,SAAWA,EAEhBkB,WAAW,WAActlB,QAAQ+c,QAAQ,aAAa,EAAEwI,OAAO,CAAG,EAAG,CAAC,CACxE,EAEA5e,EAAK63B,WAAa,SAAUpa,GACD,aAArB,OAAOhQ,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,cAAe,YAAe,YAAcmc,EAASvF,YAAY,EAAG,WAAczb,EAAaI,QAAS,CAAC,EAGtK,IAAIgR,EAAcrR,EAAesG,GAC7B/H,EAAM,oGACE0B,EAAaI,SAASqb,YAAY,EAC1C,UAASrK,EAET,gBAAY4P,EAAStL,YAAY,EACrCvZ,OAAOkiB,KAAK/f,EAAK,QAAQ,CAC3B,EAEAiF,EAAK83B,eAAiB,WACpB,GAAI59B,EAAYK,KAAKC,aACnBN,EAAYK,KAAKC,YAAYqC,UAC7BkC,EAAaxE,KAAK0E,QAClBF,EAAaxE,KAAK0E,OAAO/E,EAAYK,KAAKC,YAAYqC,UAQtD,IANA,IAAIoC,EAASF,EAAaxE,KAAK0E,OAAO/E,EAAYK,KAAKC,YAAYqC,UAE/Dk7B,EAAY,IAAIC,IAAI,CAAC,MAAO,MAAO,MAAO,MAAO,MAAM,EACvDC,EAAmB,GACnBC,EAAc,GAETn8B,EAAI,EAAGA,EAAIkD,EAAO9F,OAAQ4C,CAAC,GAClC,IAAK,IAAIoD,EAAI,EAAGA,EAAIF,EAAOlD,GAAGqD,aAAajG,OAAQgG,CAAC,GAAI,CACtD,IAAIiK,EAAcnK,EAAOlD,GAAGqD,aAAaD,GAEzC,GAAkC,QAA9BiK,EAAY9J,eAAuD,WAA5B8J,EAAY7J,cATvC,QAUV6J,EAAY3J,cACdw4B,EAAmB,IAEjBF,EAAUI,IAAI/uB,EAAY3J,WAAW,IACvCy4B,EAAc,IAEZD,IAAoBC,EACtB,MAAO,EAGb,CAGJ,MAAO,EACT,EACAl4B,EAAKo4B,kBAAoB,SAAUC,GACjCr4B,EAAKy0B,mBAAqB4D,EAC1Br4B,EAAKs4B,UAAY,GACjBt4B,EAAKw0B,oBAAsB,GAE3BL,EAAYyC,QAAQj0B,yBAAyBlG,EAAcuD,EAAKy0B,mBAAoBryB,CAAmB,EACpGhH,KAAK,SAAUb,GACdoI,EAA2BpI,EAC3ByF,EAAKs2B,UAAUE,YAAc,CAC3BvzB,OAAQ1I,EAAK0I,MACf,EACAjD,EAAK22B,YAAYH,YAAcj8B,EAAKyI,OACpChD,EAAKs4B,UAAY,EACnB,CAAC,EAAE3hB,QAAQ,WACT3W,EAAKw0B,oBAAsB,EAC7B,CAAC,CACL,EAEAx0B,EAAKu4B,aAAe,SAAU39B,GAC5BoF,EAAK20B,cAAgB/5B,EACrB,IAAI49B,EAAkB,KACtB,GAAIx4B,EAAK20B,cACP,IAAK,IAAIvzB,EAAI,EAAGA,EAAIpB,EAAK20B,cAActzB,gBAAgBlI,OAAQiI,CAAC,GAC9D,GAAIpB,EAAK20B,cAActzB,gBAAgBD,GAAGF,SAAU,CAClDs3B,EAAkBx4B,EAAK20B,cAActzB,gBAAgBD,GACrD,KACF,CAGJpB,EAAKy4B,qBAAqBD,CAAe,CAC3C,EAEAx4B,EAAKy4B,qBAAuB,SAAUC,GACpC14B,EAAK40B,sBAAwB8D,EAC7B14B,EAAK24B,oBAAsB,GAC3B34B,EAAK00B,eAAiB,GAEtBP,EAAYyC,QAAQ1zB,oBAAoBzG,EAAcuD,EAAK40B,sBAAuBxyB,CAAmB,EAClGhH,KAAK,SAAUb,GACd2I,EAAsB3I,EACtByF,EAAKs2B,UAAU17B,OAAS,CACtBqI,OAAQ1I,EAAK0I,MACf,EACAjD,EAAK22B,YAAY/7B,OAASL,EAAKyI,OAC/BhD,EAAK24B,oBAAsB,EAC7B,CAAC,EAAEhiB,QAAQ,WACT3W,EAAK00B,eAAiB,EACxB,CAAC,CACL,EAEA10B,EAAK44B,QAAU,WACb,OAAO96B,EAAGyH,IAAI,CACZnD,EAAoBI,eAAe,CAAE5F,SAAUH,EAAaI,QAAS,EAAG,EAAI,EAC5EuF,EAAoBmB,cAAc,CAAE3G,SAAUH,EAAaI,QAAS,EAAG,EAAI,EAC3EuF,EAAoBQ,8BAA8B,CAChDhG,SAAUH,EAAaI,SACvBgG,cAAe7C,EAAKy0B,mBAAmB3xB,EACzC,EAAG,EAAI,EACPV,EAAoBe,yBAAyB,CAC3CvG,SAAUH,EAAaI,SACvBuG,iBAAkBpD,EAAK40B,sBAAwB50B,EAAK40B,sBAAsB9xB,GAAK,CACjF,EAAG,EAAI,EACPV,EAAoBC,eAAe,CAAEzF,SAAUH,EAAaI,QAAS,EAAG,EAAI,EAC5E2C,EAAiB4C,EAAoBy2B,eAAe,CAAEj8B,SAAUH,EAAaI,QAAS,EAAG,EAAI,EAAIiB,EAAGnE,KAAK,EAAE,EAC5G,EACEyB,KAAK,WACJ0C,EAAGyH,IAAI,CACL4uB,EAAYyC,QAAQr0B,qBAAqB9F,EAAc2F,CAAmB,EAC1E+xB,EAAYyC,QAAQtzB,kBAAkB7G,EAAc2F,CAAmB,EACvE+xB,EAAYyC,QAAQ1zB,oBAAoBzG,EAAcuD,EAAK40B,sBAAuBxyB,CAAmB,EACrG+xB,EAAYyC,QAAQj0B,yBAAyBlG,EAAcuD,EAAKy0B,mBAAoBryB,CAAmB,EACvG+xB,EAAYyC,QAAQz0B,gBAAgB1F,EAAc2F,CAAmB,EACrE5C,EAAiB20B,EAAYyC,QAAQlB,qBAAqBj5B,EAAc2F,CAAmB,EAAItE,EAAGnE,KAAK,EAAE,EAC1G,EACEyB,KAAK,SAAUb,GACdgI,EAAuBhI,EAAK,GAC5B+I,EAAoB/I,EAAK,GACzB2I,EAAsB3I,EAAK,GAC3BoI,EAA2BpI,EAAK,GAChC4H,EAAkB5H,EAAK,GACvBm7B,EAAuBn7B,EAAK,GAC5ByF,EAAK84B,mBAAqBv+B,EAAK,GAE/B87B,EAAe,CACjB,CAAC,CACL,CAAC,CACL,EAEAr2B,EAAK+4B,aAAe,SAAU3gC,GACvBA,GAAuB,KAAZA,EAAE4gC,OAChBn5B,EAAO2Q,GAAG,aAAa,CAC3B,EAEAxQ,EAAKi5B,kBAAoB,WACvB,OAAO72B,EAAoB8H,SAAS,CAAEtN,SAAUH,EAAaI,QAAS,CAAC,EACpEzB,KAAK,WAEJ,IADA,IAAIX,EAAQ,GACHsB,EAAI,EAAGA,EAAIqG,EAAoB7H,KAAKE,MAAMgC,EAAaI,UAAU1D,OAAQ4C,CAAC,GACjFtB,EAAM6G,KAAKjI,QAAQqB,KAAK0H,EAAoB7H,KAAKE,MAAMgC,EAAaI,UAAUd,EAAE,CAAC,EAGnF,IAAIm9B,EAAaz+B,EAAM6T,KAAKyc,MAAMzc,KAAK0c,OAAO,EAAIvwB,EAAMtB,MAAM,GAC1D+/B,IACuB,aAArB,OAAOzrB,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,QAAS,YAAe,sBAAuB,WAAc7E,EAAaI,QAAS,CAAC,EAEjJgD,EAAO2Q,GAAG,mBAAoB,CAAExY,GAAIkhC,EAAWp2B,EAAG,CAAC,EAEvD,CAAC,CACL,EA6BAuzB,EAAe,CACjB,CAnVA,shBAsVElC,EAAYyC,QAAU,CACpB/0B,qBAAsB,SAAUpF,EAAcqF,GAC5C,OAAOA,EAAmBC,gBAAgB,CAAEnF,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WAGJ,IAFA,IAAI+F,EAAY,GAEPpF,EAAI,EAAGA,EAAI+F,EAAmBvH,KAAKyH,aAAavF,EAAaI,UAAU1D,OAAQ4C,CAAC,GACP,WAA5E+F,EAAmBvH,KAAKyH,aAAavF,EAAaI,UAAUd,GAAGkG,WACjEd,EAAUG,KAAKQ,EAAmBvH,KAAKyH,aAAavF,EAAaI,UAAUd,EAAE,EAEjF,OAAOoF,CACT,CAAC,CACL,EACAgB,gBAAiB,SAAU1F,EAAc2F,GACvC,OAAOA,EAAoBC,eAAe,CAAEzF,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WACJ,OAAOgH,EAAoB7H,KAAK+H,YAAY7F,EAAaI,SAC3D,CAAC,CACL,EACA0F,qBAAsB,SAAU9F,EAAc2F,GAC5C,OAAOA,EAAoBI,eAAe,CAAE5F,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WACJ,OAAOgH,EAAoBK,eAAeL,EAAoB7H,KAAKmI,YAAYjG,EAAaI,SAAS,CACvG,CAAC,CACL,EACA8F,yBAA0B,SAAUlG,EAAcyF,EAAoBE,GACpE,OAAKF,EAMEE,EAAoBQ,8BAA8B,CACvDhG,SAAUH,EAAaI,SACvBgG,cAAeX,EAAmBY,EACpC,CAAC,EACE1H,KAAK,WACJ,OAAOgH,EAAoBK,eAAeL,EAAoB7H,KAAKwI,iBAAiBtG,EAAaI,UAAUqF,EAAmBY,IAAK,oBAAoB,CACzJ,CAAC,EAXM,CACLE,OAAQ,GACRC,OAAQ,EACV,CASJ,EACAC,oBAAqB,SAAUzG,EAAcmF,EAAuBQ,GAClE,OAAKR,EAMEQ,EAAoBe,yBAAyB,CAClDvG,SAAUH,EAAaI,SACvBuG,iBAAkBxB,EAAsBkB,EAC1C,CAAC,EACE1H,KAAK,WACJ,OAAOgH,EAAoBK,eAAeL,EAAoB7H,KAAK8I,YAAY5G,EAAaI,UAAU+E,EAAsBkB,IAAK,wBAAwB,CAC3J,CAAC,EAXM,CACLE,OAAQ,GACRC,OAAQ,EACV,CASJ,EACAK,kBAAmB,SAAU7G,EAAc2F,GACzC,OAAOA,EAAoBmB,cAAc,CAAE3G,SAAUH,EAAaI,QAAS,CAAC,EACzEzB,KAAK,WAKJ,IAJA,IAAIb,EAAO6H,EAAoB7H,KAAKiJ,SAAS/G,EAAaI,UACxDmG,EAAS,GACTC,EAAS,GAEFlH,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAChCiH,EAAO1B,KAAK/G,EAAKwB,GAAG0H,MAAM,EAC1BR,EAAO3B,KAAK/G,EAAKwB,GAAG2H,KAAK,EAG3B,MAAO,CACLV,OAAQA,EACRC,OAAQA,CACV,CACF,CAAC,CACL,EACAyyB,qBAAsB,SAAUj5B,EAAc2F,GAC5C,OAAOA,EAAoBy2B,eAAe,CAAEj8B,SAAUH,EAAaI,QAAS,CAAC,EAC1EzB,KAAK,WACJ,OAAOgH,EAAoB7H,KAAKm8B,YAAYj6B,EAAaI,UAAUhF,IAAI,SAAUuJ,GAC/E,MAAO,CACL6zB,MAAO7zB,EAAEqC,OACT7F,MAAOwD,EAAEsC,OAAS,CACpB,CACF,CAAC,CACH,CAAC,CACL,CACF,EAgCFrK,QAAQX,OAAO,oBAAoB,EAChCuB,WAAW,cAAek6B,CAAW,C,yEClcjB,SAAjBgF,EAA2Bt5B,EAAQkN,EAAeyI,EAAWuH,EAASC,EAAM1W,EAAawD,EAAmBsL,EAAmB3Y,EAAcwN,EAAM3E,EAAcvE,EAAS8I,EAAe9J,EAAmBmE,EAAsBP,GAEpO,IAAI3D,EAAOC,KAEXD,EAAKo5B,KAAO//B,EAAQohB,OAAO,GAAIxQ,EAAM,CACnCitB,oBAAqBvzB,EAAe9L,IAAI,SAAUwhC,GAAM,OAAOA,EAAGlvB,cAAgB,CAAC,EAAE0B,KAAK,KAAK,CACjG,CAAC,EACD7L,EAAKgC,aAAesD,EACpBtF,EAAKrF,QAAUoG,EACff,EAAKmb,SAAW,GAChBnb,EAAKkd,cAAgBrT,EACrB7J,EAAKmd,qBAAuBjZ,EAE5BlE,EAAKod,UAAYJ,EAAKK,mBAAmBjI,EAAkByB,SAAW,SAAS,EAC/E7W,EAAKsd,SAAW,QAAU7gB,EAAaI,SAAW,KAAM,IAAIvB,MAAOiiB,OAAO,EAAE1F,MAAM,EAAG,EAAE,EACvF7X,EAAKwd,SAAW,GAChBxd,EAAKyd,SAAW,GAEhBzd,EAAK6d,WAAala,EAClB3D,EAAKs5B,iBAAmBrvB,EAAKqtB,iBAAmBlL,KAAKC,MAAMpiB,EAAKqtB,gBAAgB,EAAEz/B,IAAI,SAAUuJ,GAC9F,IAAIob,EAAI,IAAIlhB,KAAK,CAAC,EAGlB,OAFAkhB,EAAE+a,mBAAmBn2B,EAAEo2B,EAAE,EAElBhb,EAAEib,YAAY,CACvB,CAAC,EAAI,GAELz3B,EAAK0d,YAAc1d,EAAKo5B,KAAKzb,QAA4B,EAEzD3d,EAAK4d,OAAS,CACZC,WAAY,CACVtc,KAAM,WACNuc,cAAe,EACjB,CACF,EAEA/Q,EAAc,EAEd/M,EAAK+d,YAAc,WACjB/d,EAAK0d,YAAc1d,EAAKo5B,KAAKzb,QAA4B,CAC3D,EAEA3d,EAAKge,UAAY,SAAUC,GACzBje,EAAKo5B,KAAKzb,OAASM,EACnBje,EAAK0d,YAAc1d,EAAKo5B,KAAKzb,QAA4B,CAC3D,EAEA3d,EAAKyR,KAAO,WACV,OAAOnL,EACJizB,UAAU,CACTxqB,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBpC,MAAO,CAACuF,EAAKo5B,KACf,CACF,CAAC,EACAh+B,KAAK,WACJ,IAAK,IAAIW,EAAI,EAAGA,EAAIuK,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAU1D,OAAQ4C,CAAC,GACzE,GAAIuK,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAUd,GAAG+G,IAAM9C,EAAKo5B,KAAKt2B,GAAI,CACvE9C,EAAKo5B,KAAO//B,EAAQqB,KAAK4L,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAUd,EAAE,EACzE,KACF,CACJ,CAAC,CACL,EAEAiE,EAAKw5B,cAAgB,SAAUnB,GAI7B,IAHA,IAAIoB,EAAU,GACVvT,EAAW,GAENnqB,EAAI,EAAGA,EAAIiE,EAAKo5B,KAAKM,QAAQC,mBAAmBxgC,OAAQ4C,CAAC,GAC5DiE,EAAKo5B,KAAKM,QAAQC,mBAAmB59B,GAAG69B,UAAYvB,EAAKv1B,IAC3D22B,EAAQn4B,KAAKtB,EAAKo5B,KAAKM,QAAQC,mBAAmB59B,GAAG89B,QAAQ,EAEjE,IAAK,IAAIC,EAAI,EAAGA,EAAIL,EAAQtgC,OAAQ2gC,CAAC,GACnC,GAAIL,EAAQK,KAAO1uB,EACjB,GAA2B,QAAvBitB,EAAK7vB,cACP0d,EAAS5kB,KAAKm4B,EAAQK,EAAE,OAExB,IAAK/9B,EAAI,EAAGA,EAAIuJ,EAAanM,OAAQ4C,CAAC,GACpC,GAAIuJ,EAAavJ,GAAG+G,IAAMu1B,EAAKv1B,GAC7B,IAAK,IAAI3D,EAAI,EAAGA,EAAImG,EAAavJ,GAAGkK,WAAW9M,OAAQgG,CAAC,GAClDmG,EAAavJ,GAAGkK,WAAW9G,GAAGiH,UAAYqzB,EAAQK,IACpD5T,EAAS5kB,KAAKgE,EAAavJ,GAAGkK,WAAW9G,GAAGgG,WAAW,EAGrE,OAAO+gB,EAAS/sB,OAAS+sB,EAASra,KAAK,IAAI,EAAIT,CACjD,EAEApL,EAAK+5B,gBAAkB,SAAUj/B,GAE/B,IADA,IAAI2+B,EAAU,GACL19B,EAAI,EAAGA,EAAIkO,EAAKf,cAAc/P,OAAQ4C,CAAC,GAC1CkO,EAAKf,cAAcnN,GAAG69B,UAAY9+B,EAAegI,IACnD22B,EAAQn4B,KAAK2I,EAAKf,cAAcnN,GAAG89B,QAAQ,EAE/C,OAAOJ,EAAQtgC,OAASsgC,EAAQ5tB,KAAK,IAAI,EAAIT,CAC/C,EAEApL,EAAKg6B,YAAc,SAAUp/B,GAG3B,IAFA,IAAIsuB,EAAQ,EAEHntB,EAAI,EAAGA,EAAIgF,EAAQ5H,OAAQ4C,CAAC,GACnC,GAAIgF,EAAQhF,GAAG+G,IAAMlI,EAAOkI,GAC1B,IAAK,IAAI3D,EAAI,EAAGA,EAAI4B,EAAQhF,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GACtD,IAAK,IAAI26B,EAAI,EAAGA,EAAI7vB,EAAKf,cAAc/P,OAAQ2gC,CAAC,GAC1C/4B,EAAQhF,GAAGsF,gBAAgBlC,GAAG2D,IAAMmH,EAAKf,cAAc4wB,GAAGF,UAC5D1Q,CAAK,GAEf,OAAOA,CACT,EAEAlpB,EAAKoe,KAAO,WACVpe,EAAKmb,SAAW,CAACnb,EAAKmb,SAElBnb,EAAKmb,SACP3F,EAAUtc,KAAK,MAAM,EAGrBsc,EAAUtc,KAAK,EAAE,CAErB,EAEA8G,EAAKqe,mBAAqB,SAAUZ,GACT,aAArB,OAAOhQ,YACsB,QAA3BgQ,EAAStL,YAAY,EACvB1E,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,cAAe,YAAe,eAAgB,WAAc7E,EAAaI,QAAS,CAAC,EAE9I4Q,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,cAAe,YAAe,iBAAkB,WAAc7E,EAAaI,QAAS,CAAC,GAIpJ,IAAItC,EAAOuP,EAAkBwU,aAAa7hB,EAAaI,SAAUmD,EAAKkd,cAAe,CAACld,EAAKo5B,MAAO3b,CAAQ,EAC1Gzd,EAAKwd,SAAWe,KAAKC,WAAWC,QAAQC,mBAAmBnkB,CAAI,CAAC,CAAC,EAAE+Y,QAAQ,MAAO,GAAG,EAAEA,QAAQ,MAAO,GAAG,EAAEA,QAAQ,KAAM,GAAG,EAC5HtT,EAAKi6B,SAAWxc,EAEhBkB,WAAW,WAActlB,EAAQ+c,QAAQ,aAAa,EAAEwI,OAAO,CAAG,EAAG,CAAC,CACxE,EAEA5e,EAAK6e,MAAQ,WAEX,IAAIC,EAAU,kBAAoBriB,EAAasiB,cAC3CtL,EAAO,GAuBXA,GADAA,GAHAA,GAHAA,GADAA,GADAA,GAFAA,GADAA,GADAA,GADAA,GADAA,GAFAA,GADAA,GADAA,GADAA,GAAQ,eAAiBzT,EAAKo5B,KAAKM,QAAQ1a,UAAY,SAC/C,cAAgBhf,EAAKo5B,KAAKM,QAAQza,SAAW,UAC7C,UAAYjf,EAAKo5B,KAAKM,QAAQxa,MAAQ,UACtC,YAAclf,EAAKo5B,KAAKM,QAAQva,QAAU,IAAMnf,EAAKo5B,KAAKM,QAAQQ,SAAW,UAE7E,YAAcl6B,EAAKo5B,KAAKM,QAAQta,QAAQA,QAAU,IAAMpf,EAAKo5B,KAAKM,QAAQta,QAAQ+a,SAAW,IAAMn6B,EAAKo5B,KAAKM,QAAQta,QAAQgb,SAAW,UACxI,SAAWp6B,EAAKo5B,KAAKM,QAAQta,QAAQib,KAAO,UAC5C,UAAYr6B,EAAKo5B,KAAKM,QAAQta,QAAQtY,UAAY,UAClD,gBAAkB9G,EAAKo5B,KAAKM,QAAQta,QAAQkb,QAAU,UACtD,YAAct6B,EAAKo5B,KAAKM,QAAQta,QAAQ1Y,YAAc,UAEtD,UAAY1G,EAAKo5B,KAAKM,QAAQra,OAASrf,EAAKo5B,KAAKM,QAAQa,eAAkB,KAAOv6B,EAAKo5B,KAAKM,QAAQa,eAAkB,IAAM,UAC5H,QAAUv6B,EAAKo5B,KAAKM,QAAQc,IAAM,UAClC,UAAYx6B,EAAKo5B,KAAKM,QAAQ7xB,MAAQ,UAGtC,kBAAoB7H,EAAKo5B,KAAK9Z,MAAQ,eAGtC,aAAetf,EAAKo5B,KAAKM,QAAQe,aAAe,UAChD,iBAAmB1d,EAAQ,MAAM,EAAE/c,EAAKo5B,KAAK7Z,SAAU,QAASvf,EAAKo5B,KAAK5Z,cAAc,GAEvE,aAArB,OAAO/R,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,cAAe,YAAe,QAAS,WAAc7E,EAAaI,QAAS,CAAC,EAGzIjE,EAAOK,SAASwmB,KAAO,mBAAqBf,mBAAmBI,CAAO,EAAI,SAAWJ,mBAAmBjL,CAAI,CAC9G,EAEAzT,EAAK06B,aAAe,SAAUjZ,GAC5B,MAAIA,GAAKnU,SAAS,GAAG,CAIvB,EAEAtN,EAAK0f,OAAS,WACZ,GAAI9mB,EAAO6d,QAAQ,4CAA4C,EAM7D,MAJyB,aAArB,OAAOhJ,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,cAAe,YAAe,aAAc,WAAc7E,EAAaI,QAAS,CAAC,EAGvIyJ,EACJq0B,YAAY,CACX5rB,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBpC,MAAO,CAACuF,EAAKo5B,KACf,CACF,CAAC,EACAh+B,KAAK,WACJyE,EAAO2Q,GAAG,aAAa,CACzB,CAAC,CAEP,CACF,CAvMF,IAAWnX,EAAST,EAAQwS,EAAjB/R,EA4MRA,QA5MiBT,EA4MRA,OALR,mPAGFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,iBAAkBk/B,CAAc,C,mFCrNhD,aAWiC,SAA3ByB,EAAqC98B,EAAI+V,EAAU7G,EAAYvQ,EAAcwN,EAAMU,EAAQrE,EAAatF,GAE5G,IAAIhB,EAAOC,KAeP,SAAS46B,IACP,IAAK,IAAI9+B,EAAI,EAAGA,EAAI4O,EAAOtJ,gBAAgBlI,OAAQ4C,CAAC,GAAI,CACtD,IAAI++B,EAAS,GACb96B,EAAKy5B,QAAQ9uB,EAAOtJ,gBAAgBtF,GAAG+G,IAAM,GAE7C,IAAK,IAAI3D,EAAI,EAAGA,EAAIa,EAAKo5B,KAAKlwB,cAAc/P,OAAQgG,CAAC,GAC/Ca,EAAKo5B,KAAKlwB,cAAc/J,GAAGy6B,UAAYjvB,EAAOtJ,gBAAgBtF,GAAG+G,KACnE9C,EAAKy5B,QAAQ9uB,EAAOtJ,gBAAgBtF,GAAG+G,IAAI9C,EAAKo5B,KAAKlwB,cAAc/J,GAAG2D,IAAM9C,EAAKo5B,KAAKlwB,cAAc/J,GAAG06B,SACvGiB,EAAS,IAIRA,GAA8D,OAApDnwB,EAAOtJ,gBAAgBtF,GAAGg/B,yBACvC/6B,EAAKy5B,QAAQ9uB,EAAOtJ,gBAAgBtF,GAAG+G,IAAI6H,EAAOtJ,gBAAgBtF,GAAGmN,cAAc,GAAGpG,IAAM,GAChG,CAIA,IAAIk4B,EAAgBh6B,EAAci6B,iBAAiBj7B,EAAKpF,OAAOyG,eAAe,EAG1E65B,GAFJl7B,EAAKm7B,gBAAkBH,EAAgBA,EAAcl4B,GAAK,KAE3CtK,OAAOD,KAAKyH,EAAKy5B,OAAO,EAAEx7B,OAAO,SAAUkB,GAAK,OAA6C,EAAtC3G,OAAOD,KAAKyH,EAAKy5B,QAAQt6B,EAAE,EAAEhG,MAAY,CAAC,EAAEtB,IAAI,SAAUujC,GAC9H,OAAOC,OAAOD,CAAC,CACjB,CAAC,GAGGE,EAAgBt6B,EAAcu6B,kBAAkBv7B,EAAKy5B,QAASz5B,EAAKpF,OAAOyG,eAAe,EAEzF+hB,EAAEoY,IAAIF,EAAe,SAAUG,GACjC,OAAOrY,EAAEoY,IAAIN,EAAU,SAAUQ,GAC/B,OAAOD,EAAE34B,KAAO44B,CAClB,CAAC,CACH,CAAC,EACC17B,EAAK27B,gBAAkBL,EAEvBt7B,EAAK27B,gBAAkB,EAE3B,CAlDJ37B,EAAKo5B,KAAOnvB,EACRjK,EAAKpF,OAAS+P,EAElB3K,EAAKy5B,QAAU,GAEXzsB,EAAW8J,IAAI,oBAAqB,SAAU1e,EAAGmS,GAC3CA,GAAKvK,EAAKo5B,KAAKt2B,IAAMyH,EAAEzH,KACzB9C,EAAKo5B,KAAO7uB,EAEZswB,EAAa,EAEjB,CAAC,EAyCDA,EAAa,EAGb76B,EAAK47B,2BAA6B,SAAUlD,GAC1C,IAOImD,EAPJ,OAAKnD,IAGDe,EAAUz5B,EAAKy5B,QAAQf,EAAS51B,OAIhC+4B,EAAarjC,OAAOD,KAAKkhC,CAAO,EAAE5hC,IAAI,SAAUsH,GAAK,OAAOa,EAAKy5B,QAAQf,EAAS51B,IAAI3D,EAAI,CAAC,IACvD,GAArB08B,EAAW1iC,OAGvB0iC,EAAWhwB,KAAK,GAAG,EAVjB,aAWX,CACL,CA1ED,IAAUxS,IA8EPA,QAAST,OAJT,sGAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,2BAA4B2gC,CAAwB,C,iJCvFnE,aAWyC,SAAnCkB,EAA6Ch+B,EAAI+V,EAAUpX,EAAcwN,EAAMU,EAAQrE,EAAawE,EAAgBjL,EAAQmB,EAAegM,GAE7I,IAAIhN,EAAOC,KAEXD,EAAKo5B,KAAOnvB,EACZjK,EAAKpF,OAAS+P,EACd3K,EAAKlF,eAAiBgQ,EACtB9K,EAAK+7B,kBAAoB,GACzB/7B,EAAKg8B,WAAa,CAChBC,aAAc,UACdC,eAAgB,IAClB,EACAl8B,EAAKm8B,aAAe,KACpBn8B,EAAKo8B,eAAiB,CACpBC,eAAgB,GAChBC,cAAe,GACfC,sBAAuB,GACvBC,4BAA6B,GAC7BC,WAAYC,CACd,EAEA18B,EAAK28B,sBAAwB,uDAC7B38B,EAAK48B,sBAAwB,6DAC7B58B,EAAK68B,yCAA2C,2FAChD78B,EAAK88B,4BAA8B,gJACnC98B,EAAK+8B,sBAAwB,wEAC7B/8B,EAAKg9B,uBAAyB,mEAE9Bh9B,EAAKy5B,QAAU,GAEfz5B,EAAKi9B,WAA6C,YAAhCj9B,EAAKlF,eAAeoiC,SACtCl9B,EAAKm9B,YAA8C,aAAhCn9B,EAAKlF,eAAeoiC,SAEvCl9B,EAAKo9B,oBAAoE,OAA9Cp9B,EAAKlF,eAAeigC,wBAAmC/6B,EAAKlF,eAAeoO,cAClGlJ,EAAKlF,eAAeoO,cAAcrR,IAAI,SAAUwlC,GAAM,OAAOA,EAAGnB,cAAgB,CAAC,EAAEj+B,OAAO,SAAUL,EAAO0tB,EAAOtrB,GAAQ,OAAOA,EAAKqH,QAAQzJ,CAAK,IAAM0tB,CAAO,CAAC,EACjK,GAGJtrB,EAAKs9B,aAAet9B,EAAKo9B,qBAAyD,EAAlCp9B,EAAKo9B,oBAAoBjkC,OAGtB,OAA9C6G,EAAKlF,eAAeigC,wBAAoC/6B,EAAKs9B,cAAiBt9B,GAAKlF,eAAeoO,cAAc/P,SACnH6G,EAAKg8B,WAAWE,eAAiBl8B,EAAKlF,eAAeoO,cAAc,GAAGgzB,gBAGxE,IAAK,IAAIngC,EAAI,EAAGA,EAAI4O,EAAOtJ,gBAAgBlI,OAAQ4C,CAAC,GAAI,CACtD,IAAI++B,EAAS,GACb96B,EAAKy5B,QAAQ9uB,EAAOtJ,gBAAgBtF,GAAG+G,IAAM,GAC7C9C,EAAK+7B,kBAAkBpxB,EAAOtJ,gBAAgBtF,GAAG+G,IAAM,GAEvD,IAAK,IAAI3D,EAAI,EAAGA,EAAI8K,EAAKf,cAAc/P,OAAQgG,CAAC,GAC1C8K,EAAKf,cAAc/J,GAAGy6B,UAAYjvB,EAAOtJ,gBAAgBtF,GAAG+G,KAC9Dy6B,EAAgB5yB,EAAOtJ,gBAAgBtF,GAAI4O,EAAOtJ,gBAAgBtF,GAAGmN,cAAcjL,OAAO,SAAUo/B,GAAM,OAAOA,EAAGv6B,IAAMu4B,OAAOpxB,EAAKf,cAAc/J,GAAG2D,EAAE,CAAG,CAAC,EAAE,GAAImH,EAAKf,cAAc/J,GAAG06B,SAAU,CAAC,CAAC5vB,EAAKf,cAAc/J,GAAG06B,QAAQ,EACnOiB,EAAS,IAIRA,GAA8D,OAApDnwB,EAAOtJ,gBAAgBtF,GAAGg/B,wBACvCwC,EAAgB5yB,EAAOtJ,gBAAgBtF,GAAI4O,EAAOtJ,gBAAgBtF,GAAGmN,cAAc,GAAI,GAAI,EAAK,CAEpG,CA8BA,SAASs0B,IACP,IAAI/D,EAAUz5B,EAAKy5B,QAAQz5B,EAAKlF,eAAegI,IAE/C,OAAI22B,EACKjhC,OAAOD,KAAKkhC,CAAO,EAAE5hC,IAAI,SAAU4lC,GAAO,OAAOpC,OAAOoC,CAAG,CAAG,CAAC,EAGjE,EACT,CAeA,SAASC,EAAkBC,GACyB,OAA9C39B,EAAKlF,eAAeigC,wBAAmC/6B,EAAK49B,UAAU,GAAK,CAACD,IAC1EE,EAAiBrlC,OAAOD,KAAKyH,EAAKy5B,QAAQz5B,EAAKlF,eAAegI,GAAG,EAAEjL,IAAI,SAAUsH,GAAK,OAAOk8B,OAAOl8B,CAAC,CAAG,CAAC,IACvF0+B,EAAe1kC,SACnCwkC,EAAWE,EAAe,IAH9B,IAOIpE,EAAUz5B,EAAKlF,eAAeoO,cAAcjL,OAAO,SAAUo/B,GAAM,MAAO,CAACM,GAAYN,EAAGv6B,IAAM66B,CAAU,CAAC,EAC3GlE,GAAWA,EAAQtgC,QAAUiqB,EAAEoY,IAAI/B,EAAS,SAAUt6B,GAAK,OAAOA,EAAE+8B,cAAgB,CAAC,EACvFl8B,EAAK89B,eAAiB,OAEtB99B,EAAK89B,eAAiB,MAC1B,CAkFA,SAASC,IACP,IAAIvhB,EAAI1e,EAAG8e,MAAM,EAQjB,OANA/I,EAAS,WACP7T,EAAKukB,KAAK9P,cAAc,EAExB+H,EAAEnC,OAAO,CACX,CAAC,EAEMmC,EAAEK,OACX,CAwCA,SAAS6f,IAC6B,aAAhC18B,EAAKg8B,WAAWC,cAAgE,WAAhCj8B,EAAKg8B,WAAWC,cAA6B,CAACj8B,EAAKg8B,WAAWE,eAChHr8B,EAAO2Q,GAAG,8BAA+B,CAAE3F,SAAU7K,EAAKpF,OAAOkI,EAAG,EAAG,CAAE6uB,OAAQ,6BAA8B,CAAC,EAEhH9xB,EAAO2Q,GAAG,iDAAkD,CAAExF,WAAYhL,EAAKg8B,WAAWE,cAAe,EAAG,CAAEvK,OAAQ,gDAAiD,CAAC,CAE5K,CAUA,SAAS4L,EAAgB7E,EAAUgD,EAAQ99B,EAAOs9B,GAChDl7B,EAAKy5B,QAAQf,EAAS51B,IAAI44B,EAAO54B,IAAMlF,EACvCoC,EAAK+7B,kBAAkBrD,EAAS51B,IAAI44B,EAAO54B,IArRjD,SAqRuDo4B,EAAyBA,EAAW,CAAC,CAACt9B,EAEnF89B,GAAUhD,EAAS51B,IAAM9C,EAAKlF,eAAegI,KAC/C9C,EAAKg8B,WAAWC,aAAsC,WAAvBP,EAAOO,cAA8BP,EAAOQ,eAA+BR,EAAOO,aAArB,YAC5Fj8B,EAAKg8B,WAAWE,eAAiBR,EAAOQ,gBAGN,aAAhCl8B,EAAKg8B,WAAWC,eAClBj8B,EAAKg8B,WAAWE,eAAiB,KAErC,CAEA,SAAS8B,EAAcC,EAAUC,GAC/B,IAAK,IAAIniC,EAAI,EAAGA,EAAIiE,EAAKlF,eAAeoO,cAAc/P,OAAQ4C,CAAC,GACvDkiC,GAAa7a,EAAEoY,IAAIyC,EAAU,SAAU9+B,GAAK,OAAOa,EAAKlF,eAAeoO,cAAcnN,GAAG+G,IAAM3D,CAAG,CAAC,GACjG++B,GAAUA,GAAUl+B,EAAKlF,eAAeoO,cAAcnN,GAAG+G,KAC9D,OAAO9C,EAAKy5B,QAAQz5B,EAAKlF,eAAegI,IAAI9C,EAAKlF,eAAeoO,cAAcnN,GAAG+G,IACjF,OAAO9C,EAAK+7B,kBAAkB/7B,EAAKlF,eAAegI,IAAI9C,EAAKlF,eAAeoO,cAAcnN,GAAG+G,IAGjG,CAEA,SAASq7B,IACPn+B,EAAKo+B,SAAWp+B,EAAK49B,UAAU,EAAI,WAAa,EAClD,CA9OA59B,EAAKm8B,aAAen7B,EAAcq9B,oBAAoBr+B,EAAKy5B,QAASz5B,EAAKpF,OAAOyG,gBAAiBrB,EAAKlF,eAAegI,EAAE,EAGvH9C,EAAKs+B,UAAY,SAAU5C,GACrB17B,EAAK49B,UAAUlC,EAAO54B,EAAE,GAC1Bk7B,EAAc,KAAMtC,EAAO54B,EAAE,EAEzB9C,EAAKs9B,eACPt9B,EAAKg8B,WAAWE,eAAiB,MAGnCwB,EAAkB,IAEgC,OAA9C19B,EAAKlF,eAAeigC,wBACtBiD,EAAch+B,EAAKlF,eAAeoO,cAAcjL,OAAO,SAAUo/B,GAAM,OAAOA,EAAGv6B,IAAM44B,EAAO54B,EAAI,CAAC,CAAC,EAGtGy6B,EAAgBv9B,EAAKlF,eAAgB4gC,EAAuC,OAA/BA,EAAO6C,qBAAgC,GAAK7C,EAAO8C,KAAM,EAAI,EAC1Gd,EAAkBhC,EAAO54B,EAAE,GAG7Bq7B,EAAS,EACTn+B,EAAKo8B,eAAeE,cAAgB,GACpCt8B,EAAKy+B,eAAiB,GACtBz+B,EAAK0+B,uBAAyB,IAChC,EAcA1+B,EAAK2+B,kBAAoBnB,EAAoB,EAG7Cx9B,EAAK49B,UAAY,SAAUD,GACzB,IAAIlE,EAAUz5B,EAAKy5B,QAAQz5B,EAAKlF,eAAegI,IAE/C,MAAI22B,KACKrW,EAAEoY,IAAIhjC,OAAOD,KAAKkhC,CAAO,EAAEx7B,OAAO,SAAUkB,GAAK,MAAO,CAACw+B,GAAYtC,OAAOl8B,CAAC,IAAMw+B,CAAU,CAAC,EAAG,SAAUiB,GAAM,OAAOnF,EAAQmF,IAAOnF,EAAQmF,GAAIzlC,MAAQ,CAAC,CAGvK,EAiBAukC,EAAkB,EAGlB19B,EAAK6+B,iBAAmB,SAAUlB,EAAUmB,EAAQC,GACnC,KAAXA,GAA4B,KAAXD,GAAiC,EAAhBA,EAAO3lC,SACO,OAA9C6G,EAAKlF,eAAeigC,wBACtBiD,EAAc,CAACL,EAAS,EAE1BJ,EAAgBv9B,EAAKlF,eAAgBkF,EAAKlF,eAAeoO,cAAcjL,OAAO,SAAUo/B,GAAM,OAAOA,EAAGv6B,IAAM66B,CAAU,CAAC,EAAE,GAAImB,EAAQ,EAAI,EAC3IX,EAAS,EACTn+B,EAAKy+B,eAAiB,GAE1B,EAEAz+B,EAAKg/B,OAAS,WACRh/B,EAAKm8B,aACPt8B,EAAO2Q,GAAG,iDAAkD,CAAExF,WAAYhL,EAAKm8B,aAAar5B,EAAG,CAAC,EAEhGjD,EAAO2Q,GAAG,8BAA+B,CAAE3F,SAAU7K,EAAKpF,OAAOkI,EAAG,CAAC,CAEzE,EAEA9C,EAAKyR,KAAO,SAAUwtB,GAGpB,GAFAd,EAAS,EAEL,CAmEN,SAAgCe,GAC9B,GAAKl/B,EAAK49B,UAAU,EAgBb,CACL,IAAIuB,EAAmB3B,EAAoB,EAC3C,GAAI,CAAC0B,GAAqE,OAA9Cl/B,EAAKlF,eAAeigC,wBAAmCoE,EAAiBhmC,QAAU6G,EAAK2+B,kBAAkBxlC,SACnI6G,EAAK0+B,uBAAyB19B,EAAco+B,0BAA0Bp/B,EAAK2+B,kBAAkB,GAAI3+B,EAAKpF,OAAOyG,gBAAiBrB,EAAKlF,eAAgBqkC,EAAiB,EAAE,EAClKn/B,EAAK0+B,yBAA0B1+B,EAAK0+B,uBAAuBvlC,OAS7D,OARA6G,EAAKy+B,eAAiB,GACtBz+B,EAAKo8B,eAAeG,sBAAwB,GAC5Cv8B,EAAKo8B,eAAeC,eAAiBr8B,EAAK88B,4BAC1C98B,EAAKo8B,eAAeI,4BAA8B,gBAClDx8B,EAAKo8B,eAAeK,WAAa,WAC/Bz8B,EAAKyR,KAAK,EAAI,CAChB,EANAzR,KAOAA,EAAKo8B,eAAeE,cAAgB,GAI1C,KAhCuB,CACrB,GAAIt8B,EAAKi9B,YAAcj9B,EAAKs9B,aAI1B,OAHAt9B,EAAKo8B,eAAeG,sBAAwB,GAC5Cv8B,EAAKo8B,eAAeC,eAAiBr8B,EAAKi9B,WAAaj9B,EAAK48B,sBAAwB58B,EAAK28B,sBADzF38B,KAEAA,EAAKo8B,eAAeE,cAAgB,IAE/B,GAAIt8B,EAAKm9B,YAQd,OAPAn9B,EAAKo8B,eAAeG,sBAAwB,GAC5Cv8B,EAAKo8B,eAAeC,eAAiBr8B,EAAKg9B,uBAC1Ch9B,EAAKo8B,eAAeI,4BAA8B,OAClDx8B,EAAKo8B,eAAeK,WAAa,WAC/BC,EAAiB,CACnB,EALA18B,KAMAA,EAAKo8B,eAAeE,cAAgB,GAGxC,CAkBA,OAAO,CACT,EAvG8B2C,CAAwB,EAClD,OAAOlB,EAAc,EAGvB,GAAI,CAAC/9B,EAAKukB,KAAK3P,OACb,OAAOmpB,EAAc,EAIvB,IAcS/yB,EAdLq0B,EAAuBr/B,EAAKpF,OAAOyG,gBAAgByC,OAAO,SAAUw7B,EAAaC,GAInF,OAHAA,EAAar2B,cAAcrR,IAAI,SAAU6jC,GAAU,OAAOA,EAAO54B,EAAI,CAAC,EAAEggB,QAAQ,SAAU6a,GACxF2B,EAAYh+B,KAAKq8B,CAAQ,CAC3B,CAAC,EACM2B,CACT,EAAG,EAAE,EAGDE,EAAqBx/B,EAAKo5B,KAAKlwB,cAAcjL,OAAO,SAAUy9B,GAChE,OAA4G,IAArG2D,EAAqBphC,OAAO,SAAUwhC,GAAe,OAAO/D,EAAO54B,KAAO28B,CAAa,CAAC,EAAEtmC,MACnG,CAAC,EAID,IAAS6R,KAFThL,EAAKo5B,KAAKlwB,cAAgBs2B,EAEHx/B,EAAKy5B,QAC1B,IAAK,IAAIkE,KAAY39B,EAAKy5B,QAAQzuB,GAChChL,EAAKo5B,KAAKlwB,cAAc5H,KAAK,CAC3BwB,GAAIu4B,OAAOsC,CAAQ,EACnB/D,SAAUyB,OAAOrwB,CAAU,EAC3B6uB,SAAU75B,EAAKy5B,QAAQzuB,GAAY2yB,GACnCY,qBAoFR,SAAuBvzB,EAAY2yB,GACjC,IAAK,IAAI5hC,EAAI,EAAGA,EAAIiE,EAAKpF,OAAOyG,gBAAgBlI,OAAQ4C,CAAC,GACvD,GAAIiE,EAAKpF,OAAOyG,gBAAgBtF,GAAG+G,IAAMkI,EACvC,IAAK,IAAI7L,EAAI,EAAGA,EAAIa,EAAKpF,OAAOyG,gBAAgBtF,GAAGmN,cAAc/P,OAAQgG,CAAC,GACxE,GAAIa,EAAKpF,OAAOyG,gBAAgBtF,GAAGmN,cAAc/J,GAAG2D,IAAM66B,EACxD,OAAO39B,EAAKpF,OAAOyG,gBAAgBtF,GAAGmN,cAAc/J,GAAGo/B,oBACjE,EA1F4CvzB,EAAY2yB,CAAQ,CAC1D,CAAC,EAML,OAJIsB,GAA4Bj/B,EAAK0+B,wBAA0B1+B,EAAK0+B,uBAAuBvlC,SACzF6G,EAAKo5B,KAAKlwB,cAAgBlJ,EAAKo5B,KAAKlwB,cAAcjL,OAAO,SAAUo/B,GAAM,MAAO,CAACja,EAAEoY,IAAIx7B,EAAK0+B,uBAAwB,SAAUgB,GAAM,OAAOrC,EAAGzD,UAAY8F,CAAI,CAAC,CAAG,CAAC,GAG9Jp5B,EACJizB,UAAU,CACTxqB,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBpC,MAAO,CAACuF,EAAKo5B,KACf,CACF,CAAC,EACAh+B,KAAK,WACJ,IAAIg+B,EAAO9yB,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAUoB,OAAO,SAAUsM,GAAK,OAAOA,EAAEzH,IAAM9C,EAAKo5B,KAAKt2B,EAAI,CAAC,EAEzGs2B,GAAQA,EAAKjgC,QACf6T,EAAW8c,WAAW,oBAAqBsP,EAAK,EAAE,EAGpDsD,EAAiB,CACnB,CAAC,CACL,EAgGAyB,EAAS,CACX,CAhTF,IAAW9kC,IAoTRA,QAAST,OAJR,gIAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,mCAAoC6hC,CAAgC,C,iIClT3D,SAAnB6D,EAA6B7hC,EAAIS,EAAcI,EAAgBlC,EAAc+B,GAE/E,IAAIwB,EAAOC,KAEXD,EAAK4/B,WAAavmC,EAAQqB,KAAKiE,CAAc,EAC7CqB,EAAKzG,OAASF,EAAQqB,KAAKiE,CAAc,EACzCqB,EAAK6/B,aAAexmC,EAAQqB,KAAK6D,CAAY,EAG7CyB,EAAK8/B,mBAAqB,WACxB,IAAItjB,EAAI1e,EAAG8e,MAAM,EAiBjB,OAdK5c,EAAKukB,KAAK3P,SACb5U,EAAKukB,KAAK9P,cAAc,EACxB+H,EAAEnC,OAAO,GAGX7b,EACGshC,mBAAmB,CAClB/wB,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAMyF,EAAKzG,MACb,CAAC,EAAE6B,KAAK,SAAUb,GAChByF,EAAK4/B,WAAavmC,EAAQqB,KAAKH,CAAI,EACnCiiB,EAAE/jB,QAAQ,CACZ,CAAC,EAEI+jB,EAAEK,OACX,EAEA7c,EAAKqvB,WAAa,WAChB,GAAI,CAACrvB,EAAKukB,KAAK3P,OAEb,OADA5U,EAAKukB,KAAK9P,cAAc,EACjB,GAGT,IAAI/V,EAAerF,EAAQqB,KAAKsF,EAAK6/B,aAAa3sB,QAAQ,EACtDC,EAASC,SAASC,eAAe,iBAAiB,EAEtDoF,QAAQC,IAAIha,CAAY,EASxBA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAAeA,EAAa4U,QAAQ,IAAIva,OAAO,6BAA8B,GAAG,EAAGiH,EAAKzG,OAAOwmC,WAAW,GAC9EzsB,QAAQ,IAAIva,OAAO,uBAAwB,GAAG,EAAGiH,EAAKzG,OAAOymC,WAAW,GACxE1sB,QAAQ,IAAIva,OAAO,uBAAwB,GAAG,EAAGiH,EAAKzG,OAAO0mC,WAAW,GACxE3sB,QAAQ,IAAIva,OAAO,uBAAwB,GAAG,EAAGiH,EAAKzG,OAAO2mC,OAAO,GACpE5sB,QAAQ,IAAIva,OAAO,qBAAsB,GAAG,EAAGiH,EAAKzG,OAAO4mC,SAAS,GACpE7sB,QAAQ,IAAIva,OAAO,qBAAsB,GAAG,EAAGiH,EAAKzG,OAAO6mC,SAAS,GACpE9sB,QAAQ,IAAIva,OAAO,qBAAsB,GAAG,EAAGiH,EAAKzG,OAAO8mC,SAAS,GACpE/sB,QAAQ,IAAIva,OAAO,uBAAwB,GAAG,EAAGiH,EAAKzG,OAAO+mC,WAAW,EAEhGntB,IACFA,EAAOK,cAAcJ,SAASK,KAAKC,UAAY,GAC/CP,EAAOK,cAAcJ,SAASO,MAAMjV,CAAY,EAChDsB,EAAKsvB,YAAc,GAEvB,CACF,CAzDF,IAAWj2B,IA6DRA,QAAST,OAJR,sFAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,mBAAoB0lC,CAAgB,C,yEC5D7B,SAAjBY,EAA2B7b,EAAS3nB,EAAcuJ,EAAa7J,EAAc2Y,GAE3E,IAAIpV,EAAOC,KAEXD,EAAKwgC,uBAAyB,GAC9BxgC,EAAKygC,SAAW,GAChBzgC,EAAK0gC,SAAWtrB,EAAkByB,SAElC7W,EAAK2gC,eAAiB,WAC3B,OAAOr6B,EAAYq6B,eAAe,CAChCpmC,KAAM,CACLqC,SAAUH,EAAaI,SACvB4jC,SAAUzgC,EAAKygC,SACf9jB,UAAW5f,EAAa4f,SACzB,CACD,CAAC,EACAvhB,KAAK,WACL4E,EAAKygC,SAAW,GAChBn6B,EAAY4D,SAAS,CACpBtN,SAAUH,EAAaI,QACxB,EAAG,EAAI,CACR,CAAC,CACH,EAEMmD,EAAKslB,aAAe,SAASC,GAElC,IAAK,IAAIxpB,EAAI,EAAGA,EAAIwpB,EAAOpsB,OAAQ4C,CAAC,GAAI,CACvC,IAAI2pB,EAAOH,EAAOxpB,GAClBiE,EAAKylB,OAASf,EAAQe,OAAO,CAC5B1qB,IAAK,sBAILR,KAAM,CAAEqC,SAAUH,EAAaI,SAAU8f,UAAW5f,EAAa4f,SAAU,EAC3E+I,KAAMA,CAMP,CAAC,EAIAC,QAAQ,SAASprB,GAEjB+L,EAAY4D,SAAS,CAAEtN,SAAUH,EAAaI,QAAS,EAAG,EAAI,EAE9DmD,EAAK4gC,eAAiBrmC,CACvB,CAAC,EACA4c,MAAM,SAAS5c,GACZA,GAAQA,EAAKqrB,iBACf5lB,EAAKwlB,cAAgB,CAACjrB,EAAKqrB,kBAE3B5lB,EAAKwlB,cAAgB,CAAC,2CACxB,CAAC,CAKF,CAKD,CACD,CAnED,IAAWnsB,IAuERA,QAAST,OAJT,sFAECS,EAAQX,OAAO,oBAAoB,EACpCuB,WAAW,iBAAkBsmC,CAAc,C,oEC/E9C,aAUkB,SAAZM,EAAsBhhC,EAAQmd,EAAM8jB,EAAOhjC,EAAIrB,EAAc6I,EAAcvE,EAAS5G,EAAQyO,EAAWC,EACzGJ,EAAiBU,EAAoBjF,EAAsBoC,EAAawD,EAAmBsL,EAC3FzR,EAAgB9F,EAAY8B,EAAQ0J,EAAuBI,GAG3D,IAAIzJ,EAAOC,KA2KX,SAASgJ,EAAUH,GACjBxC,EAAY2C,UAAU,CAAErM,SAAUH,EAAaI,SAAUiM,YAAaA,CAAY,CAAC,EAChF1N,KAAK,WACJ4E,EAAK+G,OAAST,EAAY/L,KAAKwM,OAAOtK,EAAaI,UAAUiM,GAEzD3O,EAAOM,MAAMsO,QAAQC,YAAY,8BACnC,OAAO7O,EAAOM,MAAMsO,QAAQC,YAAY,4BAC5C,CAAC,CACL,CAjLAhJ,EAAKgC,aAAesD,EACpBtF,EAAKo0B,WAAaj6B,EAAOM,MACzBuF,EAAK2I,gBAAkBF,EACvBzI,EAAK2G,UAAYiC,EACjB5I,EAAK+G,OAAS8B,EACd7I,EAAKrF,QAAUoG,EACff,EAAK+gC,mBAAqB53B,EAC1BnJ,EAAKmd,qBAAuBjZ,EAC5BlE,EAAKghC,WAAa,GAElBhhC,EAAKod,UAAYJ,EAAKK,mBAAmBjI,EAAkByB,SAAW,SAAS,EAC/E7W,EAAKsd,SAAW,SAAW7gB,EAAaI,SAAW,KAAM,IAAIvB,MAAOiiB,OAAO,EAAE1F,MAAM,EAAG,EAAE,EACxF7X,EAAKwd,SAAW,GAChBxd,EAAKyd,SAAW,GAEhBzd,EAAK6D,eAAiBF,EACtB3D,EAAK6d,WAAahgB,GAAc,GAChCmC,EAAKihC,SAAW,mBAChBjhC,EAAKuJ,sBAAwBF,EAC7BrJ,EAAKq0B,oBAAsB,GAC3Br0B,EAAKs0B,qCAAuC,GAE5C3V,WAAW,WACJ3e,EAAKvF,QACRuF,EAAKihC,UAAY,gDACrB,EAAG,GAAK,EAER36B,EAAYywB,mBAAmB,CAAEn6B,SAAUH,EAAaI,QAAS,CAAC,EAC/DzB,KAAK,WACJ4E,EAAKg3B,gBAAkB1wB,EAAY/L,KAAKy8B,gBAAgBv6B,EAAaI,SACvE,CAAC,EAEHiB,EAAGyH,IAAI,CACLe,EAAYoxB,aAAaj7B,EAAaI,QAAQ,EAC9C4M,EAAwBy3B,yBAAyBzkC,EAAaI,QAAQ,EACvE,EAAEzB,KAAK,WACN4E,EAAK23B,UAAYrxB,EAAY/L,KAAKo9B,UAAUl7B,EAAaI,UAEzD4M,EAAwBlP,KAAKo9B,UAAUl7B,EAAaI,UAAUimB,QAAQ,SAAUqe,GAC1EA,GAAM,CAAC/d,EAAEoY,IAAIx7B,EAAK23B,UAAW,SAAUyJ,GAAO,OAAOA,GAAOD,CAAI,CAAC,GACnEnhC,EAAK23B,UAAUr2B,KAAK6/B,CAAE,CAC1B,CAAC,EAEDnhC,EAAK23B,UAAY33B,EAAK23B,UAAUp2B,KAAK,EAErCvB,EAAK2J,kBAAoBF,EAAwBlP,KAAKoP,kBAAkBlN,EAAaI,UACrFmD,EAAKvF,MAAQ6L,EAAY/L,KAAKE,MAAMgC,EAAaI,UAAUhF,IAAI,SAAU0S,GACvE,OAAOlR,EAAQohB,OAAO,GAAIlQ,EAAG,CAC3B1M,WAAY8F,EAAe4G,EAAEzH,KAAO,GACpCo0B,qBAAsBvzB,EAAe4G,EAAEzH,KAAO,IAAIjL,IAAI,SAAUuJ,GAC9D,OAAQvD,EAAWI,OAAO,SAAUC,GAAK,OAAOA,EAAEC,cAAgBiD,EAAEjD,YAAc,CAAC,EAAEiM,MAAM,GAAK,IAAIC,WACtG,CAAC,EAAEwB,KAAK,KAAK,EACbsrB,QAAY5sB,EAAE6sB,kBAAoB7sB,EAAE8sB,oBAAuB,EAAI,EAC/DC,iBAAkB/sB,EAAE+sB,iBAAmBlL,KAAKC,MAAM9hB,EAAE+sB,gBAAgB,EAAEz/B,IAAI,SAAUuJ,GAClF,IAAIob,EAAI,IAAIlhB,KAAK,CAAC,EAGlB,OAFAkhB,EAAE+a,mBAAmBn2B,EAAEo2B,EAAE,EAElBhb,EAAEib,YAAY,CACvB,CAAC,EAAI,GACL9Z,OAAQpT,EAAEoT,QAAoB,CAChC,CAAC,CACH,CAAC,EAED,IAAK,IASsBmZ,EATlB/6B,EAAI,EAAGA,EAAIiE,EAAK2J,kBAAkBxQ,OAAQ4C,CAAC,GAClDiE,EAAKvF,MAAM6G,KAAKtB,EAAK2J,kBAAkB5N,EAAE,EAG3C+N,EAAkBC,WAAWtN,EAAaI,SAAUmD,EAAKvF,MAAOyJ,CAAoB,EACjF9I,KAAK,WACJ4E,EAAKkd,cAAgBpT,EAAkBvP,KAAKkC,EAAaI,UAAUmN,OACrE,CAAC,EAEHhK,EAAK43B,UAAsBd,EAExB,CAAC,CAAC92B,EAAKvF,MAAMwD,OAAO,SAAUmD,GAAK,OAAOA,EAAEg2B,kBAAoBh2B,EAAEi2B,mBAAqB,CAAC,EAAEl+B,SADxE,CAAC29B,GAC+En3B,CACvG,CAAC,EAEDK,EAAKqhC,iBAAmB,SAAUC,EAAa1W,GAC7C,MAAIA,KAGoB,OAAf0W,CACX,EAEAthC,EAAKuhC,oBAAsB,SAAU1jB,EAAY+M,GAC/C,GAAIA,EACF,MAAO,EACX,EAEA5qB,EAAKwhC,kBAAoB,SAAUC,EAAUC,GAC3C,OAAOD,IAAaC,CACtB,EAEA1hC,EAAKnE,QAAU,SAAU8lC,GACvB,OAAO,IAAIrmC,KAAKqmC,CAAU,CAC5B,EAEA3hC,EAAK4hC,eAAiB,SAAUxpC,GAC9BA,EAAEuyB,OAAO/sB,MAAQxF,EAAEuyB,OAAOC,QAAU,OAAS,EAC/C,EAEA5qB,EAAK6hC,cAAgB,SAAUzpC,EAAGyI,EAAUD,GACzB,kBAAbA,GAA6C,OAAbA,GAClCxI,EAAEuyB,OAAO/sB,MAAQ,GAEbiD,GACFoI,EAAU,EAAE,GAGdA,EAAUrI,CAAQ,CACtB,EAEAZ,EAAKqe,mBAAqB,SAAUZ,GACT,aAArB,OAAOhQ,YACsB,QAA3BgQ,EAAStL,YAAY,EACvB1E,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,QAAS,YAAe,eAAgB,WAAc7E,EAAaI,QAAS,CAAC,EAExI4Q,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,QAAS,YAAe,iBAAkB,WAAc7E,EAAaI,QAAS,CAAC,GAI9I,IAAItC,EAAOuP,EAAkBwU,aAAa7hB,EAAaI,SAAUmD,EAAKkd,cAAeld,EAAKo0B,WAAW75B,KAAMkjB,CAAQ,EACnHzd,EAAKwd,SAAWe,KAAKC,WAAWC,QAAQC,mBAAmBnkB,CAAI,CAAC,CAAC,EAAE+Y,QAAQ,MAAO,GAAG,EAAEA,QAAQ,MAAO,GAAG,EAAEA,QAAQ,KAAM,GAAG,EAC5HtT,EAAKyd,SAAWA,EAEhBkB,WAAW,WAActlB,EAAQ+c,QAAQ,aAAa,EAAEwI,OAAO,CAAG,EAAG,CAAC,CACxE,EAGA5e,EAAK8hC,iCAAmC,WAEtCr0B,UAAUnM,KAAK,CACb,MAAS,+BACT,cAAiB,kBACjB,YAAe,iCACf,WAAc,+BAChB,CAAC,CACH,EAEAtB,EAAK+hC,iBAAmB,SAAU3pC,GAC3BA,GAAYiB,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAEqX,QAAQ,mBAAmB,EAAE7oC,OAE/Df,GAAKiB,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAEqX,QAAQ,mBAAmB,EAAE7oC,QACnEwlB,WAAW,WAActlB,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAEqX,QAAQ,mBAAmB,EAAEjW,MAAM,CAAG,EAAG,CAAC,EAF7F/rB,EAAKghC,WAAa,CAAChhC,EAAKghC,UAG5B,EAEAhhC,EAAKiiC,gBAAkB,WACrBjiC,EAAKkiC,cAAgB,CAACliC,EAAKkiC,aAC7B,EAEAliC,EAAKkqB,OAAS,SAAU9xB,EAAGghC,GACpB//B,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAEwX,GAAG,GAAG,IACd,iBAAjB/I,EAAKgJ,SACPviC,EAAO2Q,GAAG,2BAA4B,CAAE1I,IAAKsxB,EAAKxvB,QAAS,CAAC,EAE5D/J,EAAO2Q,GAAG,mBAAoB,CAAExY,GAAIohC,EAAKt2B,EAAG,CAAC,EAEnD,EAEA9C,EAAKqiC,UAAY,SAAUC,GACzB,IAAIC,EAAMlpC,EAAQqB,KAAK4nC,CAAM,EACzBC,GAA0B,CAAC,EAApBA,EAAIl7B,QAAQ,GAAG,GAAkC,EAAxBk7B,EAAIl1B,MAAM,GAAG,EAAElU,SACjDopC,EAAMD,EAAOj1B,MAAM,GAAG,EAAE,IAEF,aAApB,OAAOI,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,QAAS,YAAe,UAAW,WAAc,MAAQihC,CAAI,CAAC,CAE7H,CAWF,CA1LF,IAAWlpC,IA8LRA,QAAST,OAJR,4TAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,YAAa4mC,CAAS,C,wIC3LlB,SAAdvnB,EAAwBzZ,EAAQmN,EAAYmE,EAASiE,EAAmBotB,EAAczlC,GAExF,IAAIiD,EAAOC,KAEXD,EAAKyiC,eAAiB1lC,EAAa0lC,eAE9BziC,EAAKyiC,gBAAoBD,EAAajoC,KAAKmoC,KAAK9lC,UAAa4lC,EAAajoC,KAAKooC,UAAU90B,aAC5FhO,EAAO2Q,GAAG,eAAe,EAE3BxQ,EAAK4iC,OAAS5iC,EAAKyiC,eAAiB,6BAA+B,4CAEnEziC,EAAK4d,OAAS,WACP5d,EAAK+H,OAAqC,CAAC,IAA7B/H,EAAK+H,MAAMV,QAAQ,GAAG,GAAwC,CAAC,IAA7BrH,EAAK+H,MAAMV,QAAQ,GAAG,EAGzErH,EAAK6P,OAAS,KAFd7P,EAAK6P,OAAS,CAAC,gEAKb7P,EAAKyiC,eACPziC,EAAK6iC,wBAAwB,EAE7B7iC,EAAK8iC,cAAc,CACvB,EAEA9iC,EAAK6iC,wBAA0B,WAC7BL,EAAaO,wBAAwB,CACnCh0B,OAAQ,CACNhH,MAAO/H,EAAK+H,MACZnL,SAAU4lC,EAAajoC,KAAKmoC,MAAOF,EAAajoC,KAAKmoC,KAAK9lC,UAAiB,GAC3EomC,YAAaR,EAAajoC,KAAKooC,WAAYH,EAAajoC,KAAKooC,UAAU90B,aAAmB,CAC5F,CACF,CAAC,EAAEzS,KAAK,SAAUb,GACZA,IACEA,EAAK0oC,QACW,aAAd1oC,EAAK2oC,MACPljC,EAAKmjC,aAAe,GACpBnjC,EAAKojC,UAAY,GACjBpjC,EAAKqjC,MAAQ,GACbrjC,EAAK6P,OAAS,MACS,SAAdtV,EAAK2oC,MACdljC,EAAKmjC,aAAe,GACpBnjC,EAAKojC,UAAY,GACjBpjC,EAAKqjC,MAAQ,GACbrjC,EAAK6P,OAAS,MAEd7P,EAAK6P,OAAStV,EAAKoV,OAGrB3P,EAAK6P,OAAStV,EAAKoV,OAGzB,CAAC,CACH,EAEA3P,EAAK8iC,cAAgB,WACnBN,EAAac,qCAAqC,CAChDv7B,MAAO/H,EAAK+H,MACZnL,SAAU4lC,EAAajoC,KAAKmoC,KAAK9lC,SACjCiR,YAAa20B,EAAajoC,KAAKooC,UAAU90B,WAC3C,CAAC,EAAEzS,KAAK,SAAUb,GACZA,KACEoB,EAASpB,EAAKA,MAEP0oC,SACTT,EAAajoC,KAAKigB,KAAO7e,EAAOunC,KAChCljC,EAAKqjC,MAAQ,GACbrjC,EAAKwa,KAAO7e,EAAOunC,MAEnBljC,EAAK6P,OAASlU,EAAOgU,OAG3B,CAAC,CACH,EAEA3P,EAAKujC,KAAO,WACV1jC,EAAO2Q,GAAG,eAAe,CAC3B,CACF,CA9EF,IAAWnX,IAkFRA,QAAST,OAJR,8FAEFS,EAAQX,OAAO,yBAAyB,EACrCuB,WAAW,cAAeqf,CAAW,C,mFChFpB,SAAhBkqB,EAA0B3jC,EAAQmN,EAAYmE,EAASiE,EAAmBotB,EAAczlC,GAE1F,IAAIiD,EAAOC,KAEXD,EAAKyjC,cAAgB,GACrBzjC,EAAK0jC,UAAY,WAEjB1jC,EAAK2jC,QAAUnB,EAAaoB,WAAW,EAClC5jC,EAAK2jC,SAAY3jC,EAAK2jC,QAAQn5B,WACjC3K,EAAO2Q,GAAG,eAAe,EAE3BxQ,EAAKoa,eAAiB,WACfpa,EAAKua,SAKVioB,EAAapoB,eAAe,CAC1BrL,OAAQ,CACNvE,UAAWxK,EAAK2jC,QAAQn5B,UACxB+P,SAAUva,EAAKua,QACjB,CACF,CAAC,EAAEnf,KAAK,SAAUb,GAChB,IAEQspC,EAFJtpC,IACEA,EAAK0oC,SAAW1oC,EAAK2oC,MACnBW,EAA6E,MAAtEzuB,EAAkByB,SAASzB,EAAkByB,SAAS1d,OAAS,IAA+B,MAAjBoB,EAAK2oC,KAAK,GAC9F9tB,EAAkByB,SAAWtc,EAAK2oC,KAAKY,UAAU,EAAGvpC,EAAK2oC,KAAK/pC,MAAM,EACpEic,EAAkByB,SAAWtc,EAAK2oC,KAEtCtqC,EAAOK,SAAW4qC,GACTtpC,EAAKoV,QAA+B,EAArBpV,EAAKoV,OAAOxW,SACpC6G,EAAK6P,OAAStV,EAAKoV,QAGzB,CAAC,EAAEgH,QAAQ,WACP6rB,EAAauB,aAAa,CAC9B,CAAC,EAvBC/jC,EAAK6P,OAAS,CAAC,6CAwBnB,EAEA7P,EAAKgkC,WAAa,WACO,aAAnBhkC,EAAK0jC,UACP1jC,EAAK0jC,UAAY,OAEjB1jC,EAAK0jC,UAAY,WAEnB1jC,EAAKyjC,cAAgB,EACvB,CACF,CAhDF,IAAWpqC,EAAST,EAATS,EAoDRA,QApDiBT,EAoDRA,OAJR,8FAEFS,EAAQX,OAAO,yBAAyB,EACrCuB,WAAW,gBAAiBupC,CAAa,C,iFC7D9C,aAWyB,SAAnBS,EAA6B7uB,EAAmBotB,EAAc3iC,GAEhE,IAAIG,EAAOC,KAEXD,EAAKkkC,UAAY1B,EAAa2B,gBAAgB,EAE9CnkC,EAAKokC,QAAU,CACbC,SAAU,GACVllB,QAAS,GACTmlB,cAAe,GACfC,aAAc,GACd/xB,QAAS,GACT6M,MAAO,GACPxX,MAAO,GACPrL,eAAgB,GAChBK,SAAUmD,EAAKkkC,UAAYlkC,EAAKkkC,UAAUrnC,SAAW,GACrD2nC,UAAWxkC,EAAKkkC,UAAYlkC,EAAKkkC,UAAUO,UAAY,EACzD,EAEAzkC,EAAK0kC,cAAgB,WACnB,IACMC,EACAC,EASFf,EAXA7jC,EAAK6kC,iBACHF,EAAWxhB,SAASnjB,EAAK6kC,eAAe,EACxCD,EAAUxhB,EAAEH,KAAKjjB,EAAKkkC,UAAUY,SAAU,SAAU5mC,GAAK,OAAOA,EAAE4E,KAAO6hC,CAAU,CAAC,EAC3D,UAAzB3kC,EAAK6kC,iBACP7kC,EAAK+kC,QAAU,GACf/kC,EAAK6P,OAAS,OAMdg0B,GAAMA,EAJ2E,MAAtEzuB,EAAkByB,SAASzB,EAAkByB,SAAS1d,OAAS,IAAgD,MAAlC6G,EAAKkkC,UAAUc,YAAY,GAC/G5vB,EAAkByB,SAAW7W,EAAKkkC,UAAUc,YAAYlB,UAAU,EAAG9jC,EAAKkkC,UAAUc,YAAY7rC,OAAS,CAAC,EAC1Gic,EAAkByB,SAAW7W,EAAKkkC,UAAUc,aAEtC1xB,QAAQ,aAAcsxB,EAAQK,QAAQ,EAAE3xB,QAAQ,QAASsxB,EAAQM,eAAe,EAE1FtsC,EAAOK,SAAW4qC,IAGpB7jC,EAAK6P,OAAS,CAAC,sCAEnB,EAEA7P,EAAKmlC,YAAc,WACjB3C,EAAa2C,YAAY,CACvB5qC,KAAMyF,EAAKokC,OACb,CAAC,EAAEhpC,KAAK,SAAUb,GACZA,GAAQA,EAAK0oC,QACfjjC,EAAKolC,gBAAkB,GAEvBplC,EAAK6P,OAAStV,EAAKoV,MACvB,CAAC,CACH,EAEA3P,EAAKqlC,OAAS,WACZxlC,EAAO2Q,GAAG,eAAe,CAC3B,CACF,CAvDF,IAAWnX,EAAST,EAATS,EA2DRA,QA3DiBT,EA2DRA,OAJR,wDAEFS,EAAQX,OAAO,yBAAyB,EACrCuB,WAAW,mBAAoBgqC,CAAgB,C,gICpEpD,aAWkB,SAAZqB,EAAsBzlC,EAAQmN,EAAYmE,EAASiE,EAAmBotB,GAExE,IAAIxiC,EAAOC,KAEXD,EAAKulC,KAAOv4B,EAEZhN,EAAKwlC,OAAS,CAAC,WAAY,UAC3BxlC,EAAKylC,SAAW,GAChBzlC,EAAK0lC,OAAS,GAEdlD,EAAamD,aAAa,EAE1B3lC,EAAK4lC,gBAAkBxwB,EAAkBywB,gBACrC7lC,EAAK4lC,kBACP5lC,EAAe,SAAI,GACnBA,EAAa,OAAI,IAGnBA,EAAK8lC,WAAa,SAAUC,GAC1B,GAAI,CAAC/lC,EAAK+lC,GAAQ,CAChB/lC,EAAK+lC,GAAS,GAGd,IADA,IAAIC,EAAe5iB,EAAEnlB,OAAO+B,EAAKwlC,OAAQ,SAAUr5B,GAAK,OAAOA,IAAM45B,CAAO,CAAC,EACpEhqC,EAAI,EAAGA,EAAIiqC,EAAa7sC,OAAQ4C,CAAC,GACxCiE,EAAKgmC,EAAajqC,IAAM,GAE1BymC,EAAajoC,KAAK0rC,SAAW,IAC/B,CACF,EAEAjmC,EAAKkmC,cAAgB,WACnBrmC,EAAO2Q,GAAG,qBAAqB,CACjC,EAEAxQ,EAAKyiC,eAAiB,WACpB5iC,EAAO2Q,GAAG,sBAAuB,CAAEiyB,eAAgB,EAAK,CAAC,CAC3D,CACF,CAtCF,IAAWppC,IA0CRA,QAAST,OAJR,+EAEFS,EAAQX,OAAO,yBAAyB,EACrCuB,WAAW,YAAaqrC,CAAS,C,yHCzCtC,IAAWjsC,IAQRA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EACnCuB,WAAW,WANE,YAMkB,C,oECTjC,SAASksC,EAAgBrmC,EAAQqR,EAASi1B,EAAgB7+B,EAAW8+B,EAAQxyB,GAE3E,IAAIyyB,EAAKrmC,KAETqmC,EAAG/+B,UAAYA,EAGflO,QAAQohB,OAAO6rB,EAAID,CAAM,EAEzBxyB,EAAS,WACPyyB,EAAGC,cAAgB,EACrB,EAAG,GAAG,EAEND,EAAGE,QAAUJ,EAAeI,QAC5BF,EAAGG,MAAQ,SAAU9Z,EAAM+Z,GACzB,IAAI/qC,EAAS,CACXq2B,OAAQrF,CACV,EACI+Z,EAGFA,EAAY7pB,QAAQ,EAAEzhB,KAAK,WAErBsrC,EAAYC,SAASC,MADhB3mC,KAC0B4mC,SAAS,GAC1CT,EAAeK,MAAM9qC,CAAM,CAE/B,EAAGtC,QAAQytC,IAAI,EAGfV,EAAeK,MAAM9qC,CAAM,CAE/B,EAEA2qC,EAAG9e,MAAQ,SAAUuf,GAOnBlzB,EAAS,WACP,IAAImzB,EAAM71B,EAAQ2J,KAAK,GAAI,SAAU,kGAAmG,EAAI,EAExImsB,EAAMD,EAAI5zB,SAaV8zB,GAZJD,EAAIE,MAAQ/zB,SAAS+zB,MACrB9tC,QAAQ+c,QAAQ6wB,EAAIG,IAAI,EACrBna,OAAO,qHAAqH,EAM/Hga,EAAItzB,MAAMta,QAAQ+c,QAAQ2wB,EAAOpc,MAAM,EAAE0c,QAAQ,eAAe,EAAEpkB,KAAK,gBAAgB,EAAElI,KAAK,CAAC,EAE/FksB,EAAIR,MAAM,EAEGQ,EAAIK,qBAAqB,KAAK,GACzCC,EAAqB,EACrBC,EAAyB,KACV,SAAfC,IAEE,GAA2D,GAAvD,EAAEF,EAAqBC,EAAyB,IAClDR,EAAIP,MAAM,MADZ,CAMA,IADA,IAAIiB,EAAqB,GAChB3rC,EAAI,EAAGA,EAAImrC,EAAO/tC,OAAQ4C,CAAC,GAClC,GAAI,CAACmrC,EAAOnrC,GAAG4rC,SAAU,CACvBD,EAAqB,GACrB,KACF,CAGEA,GACFV,EAAIY,MAAM,EACVZ,EAAIxf,MAAM,EACVwf,EAAIP,MAAM,GAGV5yB,EAAS4zB,EAAcD,CAAsB,CAhB/C,CAkBF,GACW,CACf,EAAG,CAAC,CACN,CACF,CA5FAnuC,QACGX,OAAO,oBAAoB,EAC3BuB,WAAW,kBAAmBksC,CAAe,EAEhDA,EAAgB0B,QAAU,CAAC,SAAU,UAAW,iBAAkB,YAAa,SAAU,W,uECKtE,SAAfC,EAAyBjoC,EAAQ9C,EAAciQ,EAAYD,EAAe+B,EAASzG,GAEvF,IAAIrI,EAAOC,KAEXD,EAAK+nC,SAAW1/B,EAAKoE,SAAS,EAAExO,OAAO,SAASmD,GAAK,OAAOA,EAAE6gB,MAAM,GAAKllB,EAAa/E,EAAI,CAAC,EAAE,GAC7FgI,EAAK0M,QAAUoC,EAEf/B,EAAc,EAEX/M,EAAK+nC,SAASh4B,QAAQ,EAAE0R,KAC1BzhB,EAAKyhB,KAAOpoB,EAAQqB,KAAKsF,EAAK+nC,SAASh4B,QAAQ,EAAE0R,IAAI,EAErDzhB,EAAKyhB,KAAO,GAEbzhB,EAAKyR,KAAO,WACXzR,EAAK+nC,SAASh4B,QAAQ,EAAE0R,KAAOzhB,EAAKyhB,KACpCpZ,EAAKsM,MAAM,EACX3U,EAAKujC,KAAK,CACX,EAEAvjC,EAAKgoC,OAAS,WACCpvC,EAAO6d,QAAQ,wIAAwI,IAGpKzW,EAAKyhB,KAAO,iBACZzhB,EAAKyR,KAAK,EAEZ,EAEAzR,EAAKujC,KAAO,WACRv2B,EAAWuK,cACb1X,EAAO2Q,GAAGxD,EAAWuK,aAAa,EAElC1X,EAAO2Q,GAAG,qBAAqB,CACjC,CACD,CApCD,IAAUnX,EAAST,EAATS,EAwCPA,QAxCgBT,EAwCPA,OAJT,kFAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,eAAgB6tC,CAAY,C,sECtCvB,SAAdG,EAAwBpoC,EAAQC,EAAQqR,EAAS0C,EAAU9T,EAAmB7E,EAAUf,EAAQD,EAAakI,EAAqBrD,EAAcqW,EAAmB/J,EAAQ4B,GAE/K,IAAIjN,EAAOC,KAEXD,EAAKzE,MAAQL,EACb8E,EAAK4d,OAASzjB,EAAO+tC,OACrBloC,EAAKmoC,WAAa,GAClBnoC,EAAKooC,QAAUroC,EACfC,EAAKqoC,WAAgD,IAAnChvC,EAAQ+c,QAAQjF,CAAO,EAAEwe,MAAM,EAAU,MAAQ,MACnE3vB,EAAKiN,UAAYA,EACjBjN,EAAKsoC,iBAAmB,CACvBnsC,QAAS,GACTC,KAAM,GACNC,OAAQ,EACT,EAEG+Y,EAAkBmzB,iBAAmB,CAACp3B,EAAQE,aAAaC,QAAQ,SAAS,IAC9EtR,EAAKwoC,UAAY,GACjBr3B,EAAQE,aAAaK,QAAQ,UAAW,EAAI,GAG7C1R,EAAKyoC,WAAa,SAAU/F,GAC3BxoC,EAAYiD,eAAe,CAC1BP,SAAU8lC,EAAK7lC,QAChB,CAAC,EACAzB,KAAK,WACLyY,EAAS,WAAaxI,EAAOq9B,KAAKhG,EAAK7lC,QAAQ,CAAG,CAAC,EAEhD3C,EAAYK,KAAK6C,YAAYslC,EAAK7lC,UACpCuF,EAAoBC,eAAe,CAAEzF,SAAU8lC,EAAK7lC,QAAS,CAAC,EAC7DzB,KAAK,WACFgH,EAAoB7H,KAAK+H,YAAYogC,EAAK7lC,UAAU,GAAG6G,MACzD7D,EAAO2Q,GAAG,0BAA2B,CAAEvT,SAAUylC,EAAK7lC,QAAS,CAAC,EAEhEgD,EAAO2Q,GAAG,sBAAuB,CAAEvT,SAAUylC,EAAK7lC,QAAS,CAAC,CAC9D,CAAC,EAEDkC,EAAaC,UAAU,CAAEpC,SAAU8lC,EAAK7lC,QAAS,CAAC,EAChDzB,KAAK,WAGF,IAFH,IAAI6D,EAASF,EAAaxE,KAAK0E,OAAOyjC,EAAK7lC,WAAa,GAE7Cd,EAAI,EAAGA,EAAIkD,EAAO9F,OAAQ4C,CAAC,GACrC,IAAI,IAAIoD,EAAI,EAAGA,EAAIF,EAAOlD,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAAGF,EAAOlD,GAAGqD,aAAaD,GAAGE,iBAA+D,QAA5CJ,EAAOlD,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CL,EAAOlD,GAAGqD,aAAaD,GAAGI,YAE9H,OADAM,OAAO2Q,GAAG,iCAAkC,CAAEvT,SAAUylC,EAAK7lC,QAAS,CAAC,EAMnEgD,EAAO2Q,GAAG,sBAAuB,CAAEvT,SAAUylC,EAAK7lC,QAAS,CAAC,CACpE,CAAC,CACJ,CAAC,CACF,EAEAmD,EAAK2oC,aAAe,SAASvwC,GACnBA,EAAEuyB,OAAO/sB,MAAQxF,EAAEuyB,OAAOC,QAAU,OAAS,EACjD,EAEN5qB,EAAK4oC,WAAa,SAASlG,GAC1B,SAAG1iC,GAAKsoC,iBAAiBnsC,SAAWumC,GAAKvmC,WAEjC6D,GAAKsoC,iBAAiBlsC,MAAQsmC,GAAKtmC,QAEnC4D,GAAKsoC,iBAAiBjsC,QAAUqmC,GAAKrmC,UAElC2D,EAAKsoC,iBAAiBnsC,SAAW6D,EAAKsoC,iBAAiBlsC,MAAQ4D,EAAKsoC,iBAAiBjsC,QAIjG,EAEA2D,EAAK6oC,QAAU,WACd,OAAO3uC,EACL2uC,QAAQ,CAACV,WAAYnoC,EAAKmoC,UAAU,EAAG,EAAI,EAC3C/sC,KAAK,WACLlB,EAAYiB,SAAS,GAAI,EAAI,EAC3BC,KAAK,WACL4E,EAAKmoC,WAAa,GAClBnoC,EAAKzE,MAAQrB,EAAYK,KAAKgB,KAC/B,CAAC,CACH,CAAC,CACH,CACD,CApFD,IAAWlC,IAwFRA,QAAST,OAJT,uLAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,cAAeguC,CAAW,C,kECtFzB,SAAVa,EAAoBjpC,EAAQmN,EAAYmE,EAASjX,EAAamR,EAAQtL,EAAmBqV,EAAmBrW,GAEhH,IAAIiB,EAAOC,KAEXD,EAAKulC,KAAOv4B,EAEZhN,EAAK+oC,QAAU,WACd,MAAO,CAAC,CAAC7uC,EAAYK,KAAKC,WACzB,EAEFwF,EAAK7C,eAAiB,WACrB,OAAOjD,EAAYK,KAAKC,aAAeN,EAAYK,KAAK6C,aAAelD,EAAYK,KAAK6C,YAAYlD,EAAYK,KAAKC,YAAYqC,SAClI,EAEAmD,EAAKgpC,YAAc,WAClB,GAAG9uC,EAAYK,KAAKC,aAAeN,EAAYK,KAAKC,YAAYqC,UAAYkC,EAAaxE,KAAK0E,QAAUF,EAAaxE,KAAK0E,OAAO/E,EAAYK,KAAKC,YAAYqC,UAG1J,IAFH,IAAIoC,EAASF,EAAaxE,KAAK0E,OAAO/E,EAAYK,KAAKC,YAAYqC,UAExDd,EAAI,EAAGA,EAAIkD,EAAO9F,OAAQ4C,CAAC,GACrC,IAAI,IAAIoD,EAAI,EAAGA,EAAIF,EAAOlD,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAAGF,EAAOlD,GAAGqD,aAAaD,GAAGE,iBAA+D,QAA5CJ,EAAOlD,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CL,EAAOlD,GAAGqD,aAAaD,GAAGI,YAC9H,MAAO,EAIZ,EAEAS,EAAKipC,cAAgB,WACpB,GAAG/uC,EAAYK,KAAKC,aAAeN,EAAYK,KAAKC,YAAYqC,UAAYkC,EAAaxE,KAAK0E,QAAUF,EAAaxE,KAAK0E,OAAO/E,EAAYK,KAAKC,YAAYqC,UAI1J,IAHH,IAAIoC,EAASF,EAAaxE,KAAK0E,OAAO/E,EAAYK,KAAKC,YAAYqC,UAC/DqsC,EAAQ,CAAC,MAAO,MAAO,MAAO,OAEvBntC,EAAI,EAAGA,EAAIkD,EAAO9F,OAAQ4C,CAAC,GACrC,IAAI,IAAIoD,EAAI,EAAGA,EAAIF,EAAOlD,GAAGqD,aAAajG,OAAQgG,CAAC,GAClD,GAA0D,CAAC,EAAxD+pC,EAAM7hC,QAAQpI,EAAOlD,GAAGqD,aAAaD,GAAGM,WAAW,GAAsD,QAA5CR,EAAOlD,GAAGqD,aAAaD,GAAGG,eAAqE,WAA1CL,EAAOlD,GAAGqD,aAAaD,GAAGI,YAC9I,MAAO,EAIZ,EAEAS,EAAKigB,KAAO,WACNpgB,EAAO2Q,GAAG,qBAAqB,CACrC,EAEAxQ,EAAKmpC,OAAS,WACbvwC,EAAOK,SAAWmc,EAAkByB,SAAW,eAAiB9W,EAAkBM,SAAW,cAAgB,GAC9G,CACD,CAjDD,IAAUhH,EAAST,EAATS,EAqDPA,QArDgBT,EAqDPA,OAJT,0HAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,UAAW6uC,CAAO,C,uEC9DjC,aAWqB,SAAfM,EAAyBvpC,EAAQgU,EAAU/V,EAAIkf,EAAMjQ,EAAetQ,EAAc6O,EAAUoC,EAAmBM,EAAqBzB,EAAgBT,EAAmBG,EAAsB5D,EAAMkD,EAAiBhH,EAAkB8kC,EAAYlvC,EAAQ4F,EAAmBvD,EAAgBkmB,GAE/R,IAAI1iB,EAAOC,KAEXD,EAAKkN,sBAAwBtU,EAAOuU,qBAAqBC,SAAS,EAAEC,MAAM,GAAG,EAAEC,SAAS7Q,EAAaI,QAAQ,EAC7GmD,EAAKyL,SAAWH,EAChBtL,EAAKspC,eAAiB/8B,EACtBvM,EAAKgM,kBAAoBF,EACzB9L,EAAKu0B,eAAiB/3B,EACtBwD,EAAKupC,iBAAmBj+B,EAASrN,OAAO,SAAAkO,GAAC,OAAIA,EAAEq9B,UAAU,GAEzDxpC,EAAKupC,iBAAiBzmB,QAAQ,SAAA3W,GAAC,OAAIA,EAAEzK,cAAgB,GAAI,GACzD1B,EAAKwb,aAAe/e,EACpBuD,EAAKypC,aAAe/7B,EACpB1N,EAAK0pC,qBAAuB17B,EAC5BhO,EAAK2pC,eAAiB,IACtB3pC,EAAKub,UAAY/e,EAAe4R,WAAa,GAC7CpO,EAAK4pC,cAAgB,EAEHx2B,SAASy2B,iBAAiB,oBAAoB,EAEtD/mB,QAAQ,SAAUgnB,GAC1BA,EAAMC,iBAAiB,SAAU,SAAU3xC,GACnB,IAAlBA,EAAEuyB,OAAO/sB,QACXxF,EAAEuyB,OAAO/sB,MAAQ,EAErB,CAAC,CACH,CAAC,EAEDoC,EAAKgqC,cAAgB,GACrBhqC,EAAKiqC,sBAAwB,GAC7BjqC,EAAKkqC,sBAAwB,GAC7BlqC,EAAKmqC,wBAA0B,GAC/BnqC,EAAKoqC,iBAAmB,GACxBpqC,EAAKqqC,YAAc,GAEmB,EAAlC7tC,EAAe4R,UAAUjV,SAC3B6G,EAAKqqC,YAAc,IAEU,EAA3BrqC,EAAKypC,aAAatwC,SACpB6G,EAAKkqC,sBAAwB,IAG/BlqC,EAAK6N,YAAc9N,EAAkB+N,YACC,EAAlCtR,EAAe4R,UAAUjV,QAC3B6G,EAAKiO,QAAUzR,EAAe4R,UAAU,GAAGC,qBAC3CrO,EAAKkO,UAAY1R,EAAe4R,UAAU,GAAGF,UAC7ClO,EAAK0O,aAAeJ,KAAKC,KAAKvO,EAAKkO,UAAY,GAAG,EAClDlO,EAAKoqC,iBAAmB,KAGxBpqC,EAAKiO,QAAU,EACfjO,EAAKkO,UAAY,EACjBlO,EAAK0O,aAAe,GAGiB,EAAnC1O,EAAK0pC,qBAAqBvwC,QAAc6G,EAAKkO,UAAYlO,EAAK2pC,iBAChE3pC,EAAKiqC,sBAAwB,IAG/BjqC,EAAKsqC,WAAa,GAClBtqC,EAAKuqC,MAAQ,GACbvqC,EAAK6iB,MAAQ,GACb7iB,EAAKwqC,OAAS,GAEdz9B,EAAc,EAEd/M,EAAKyqC,aAAe,SAAUC,GAC5B,MAAO,CAAEnpB,UAAWmpB,CAAM,CAC5B,GAGQC,EAAWr/B,EAASrN,OAAO,SAAAkO,GAAC,MAAyB,OAArBA,EAAEy+B,eAAwB,IACvD9nB,QAAQ,SAAA3W,GAEfA,EAAE0+B,wBAA0B1+B,EAAE+W,kBAAkB7V,MAAM,GAAG,EAAExV,IAAI,SAAAuJ,GAAC,OAAIA,EAAEqf,KAAK,CAAC,GAAElf,KAAK,EAAEsK,KAAK,GAAG,CAC/F,CAAC,EA1EH,IAmFW0hB,EAEDud,EAIAC,EAVJC,EAHW5nB,EAAE6nB,QAAQN,EAAU,yBAAyB,EAO9D,IAAWpd,KAHXvtB,EAAKkrC,QAAU,GAGIF,EACS,EAAtBA,EAAOzd,GAAMp0B,SACT2xC,EAAiBE,EAAOzd,GAAMzpB,OAAO,SAACqnC,EAAMnnC,GAChD,OAAOmnC,EAAK7pB,kBAAoBtd,EAAKsd,kBAAoB6pB,EAAOnnC,CAClE,CAAC,EAEK+mC,EAAMC,EAAOzd,GAAM,GACzBvtB,EAAKkrC,QAAQ3d,GAAQ,CACnB6d,cAAeN,EAAexpB,kBAC9B+pB,SAAUN,EAAIvpB,aACd2lB,MAAO4D,EAAIO,mBACXrmC,YAAa8lC,EAAIQ,gBACjB1oB,MAAOmoB,EAAOzd,EAChB,GAGJ9U,QAAQC,IAAI1Y,EAAKkrC,OAAO,EAExBlrC,EAAKwrC,eAAiB,SAACpzC,GACjBA,EAAEqzC,eACJrzC,EAAEszC,aAAetzC,EAAEyqB,MAAMI,KAAK,SAAA9W,GAAC,OAAIA,EAAErJ,IAAM1K,EAAEqzC,cAAc,GAE3DrzC,EAAEszC,aAAetgC,EAEnBqN,QAAQC,IAAItgB,CAAC,CACf,EAEA4H,EAAK2rC,gBAAkB,SAACC,GACtB,IACMC,EADFD,GACEC,EAAQ7rC,EAAKub,UAAU0H,KAAK,SAAA9W,GAAC,OAAIA,EAAEkC,sBAAwBu9B,CAAe,GAC9E5rC,EAAKkO,UAAY29B,EAAM39B,UACvBlO,EAAK0O,aAAeJ,KAAKC,KAAKvO,EAAKkO,UAAY,GAAG,IAElDlO,EAAKkO,UAAY,EACjBlO,EAAK0O,aAAe,EAExB,EAEA1O,EAAK8rC,cAAgB,WACnB,OAAO1oB,EAAE2oB,QAAQ/rC,EAAKkrC,OAAO,CAC/B,EAEAlrC,EAAKgsC,yBAA2B,SAAUt/B,GAA2B,IAI/D25B,EAAS,CACX35B,QAASA,EACT49B,WAAYtqC,EAAKsqC,WACjBC,MAAOvqC,EAAKuqC,MACZC,OAAQxqC,EAAKwqC,OACbyB,MAAOjsC,EAAKisC,MACZC,YAAalsC,EAAKksC,YAClB/E,MAAOz6B,EAAQ2U,WACjB,EAEI8qB,EAAU,kNAKdzpB,EAAa8lB,UAAU,CACrB4D,aAJAD,EAhB2D,EAAH,EAAG,UAAH,wCAoB1CA,EAJJ,wLAMVlyC,WAAY,kBAEZosC,OAAQA,CACV,CAAC,EACEjrC,KAAK,SAAUO,GACO,MAAjBA,EAAOq2B,QACT34B,EAAQohB,OAAO6rB,GAAG8B,QAASiE,WAAW,CAC1C,CAAC,CACL,EAEArsC,EAAKisC,MAAQ,SAAUlE,EAAU3xB,GAC/B,IAUMk2B,EAuEA/xC,EAjFFmS,EAAUT,EAAqBhO,OAAO,SAAUkO,GAAK,OAAOA,EAAEQ,gBAAkBo7B,EAAS9lB,MAAM,CAAG,CAAC,EAAE,GACrGsqB,EAActgC,EAAqBhO,OAAO,SAAUkO,GAAK,MAAyB,SAAlBA,EAAE1M,WAAwB,CAAC,EAE9D,eAA5BiN,EAAQgV,kBAAqC,CAACqmB,EAAS5uC,QAC7B,eAA5BuT,EAAQgV,kBAAqC,CAACqmB,EAAS,GAAGh4B,QAAQ,EAAE0R,KACrE5hB,EAAO2Q,GAAG,sBAAuB,CAAExY,GAAIA,EAAG,CAAC,EACb,OAAvB0U,EAAQjN,aAIX6sC,EAAU,GACVvsC,EAAkBysC,eAAenS,OAASjvB,IAC5CkhC,EAAUvsC,EAAkBysC,eAAenS,MAEzCt6B,EAAkBysC,eAAe/5B,QAAUrH,IAC9B,IAAXkhC,IACFA,GAAoB,MAEtBA,GAAoBvsC,EAAkBysC,eAAe/5B,OAEnD1S,EAAkBysC,eAAeC,aAAerhC,IACnC,IAAXkhC,IACFA,GAAoB,KAEtBA,GAAoBvsC,EAAkBysC,eAAeC,YAGnDlyC,EAAO,CACT0V,WAAW,IAAI3U,MAAO6zB,QAAQ,EAC9B5N,UAAW7U,EAAQ8U,aACnBpB,YAAa1T,EAAQjN,YAErBuQ,sBAAuBtD,EAAQ4H,sBAC/BrD,eAAgBvE,EAAQC,eACxBob,YAAa1uB,EAAQqB,KAAKP,EAAOgW,UAAU4X,WAAW,EACtDhgB,MAAO,CACLmpB,YAAa,GACbzC,uBAAwB,GACxBie,sBAAuB,GACvB7vC,SAAUJ,EAAaI,SACvB8vC,SAAUlwC,EAAasiB,cACvB6tB,kBAAmB7sC,EAAkBif,UAAY,IAAMjf,EAAkBkf,SACzE4tB,eAAgB9sC,EAAkBmf,MAClC4tB,iBAAkB/sC,EAAkBof,QACpC4tB,iBAAkBhtC,EAAkBysC,eAAeptB,QACnD4tB,kBAAmBjtC,EAAkBysC,eAAerS,SACpD8S,iBAAkBX,EAClBY,eAAgBntC,EAAkB8H,MAClCslC,eAAgBptC,EAAkBsf,MAClC+tB,aAAcrtC,EAAkBy6B,IAChC6S,iBAAkB,GAClBxd,wBAAyB,GACzByd,uBAAwB,EAC1B,EACA3pB,aAAc,GACd4pB,UAAW7gC,EAAQ8gC,yBAA2B,EAC9ClrB,eAAgB5V,EAAQoF,uBAC1B,EAEAi2B,EAAS0F,QAAQlzC,CAAI,EAEjBmS,EAAQ4H,sBAAsBo5B,WAAW,KAAK,EAChDnpC,EAAiBilB,SAAS,CACxBjvB,KAAM,CACJqC,SAAU8P,EAAQoF,wBAClB2X,wBAAyB,CAAEkkB,cAAe,OAAQ,CACpD,CACF,CAAC,EAAEvyC,KAAK,SAAUtC,GACqB,cAAjC4T,EAAQ4H,wBACV/Z,EAAK0uB,YAAcnwB,EAAQ4wB,YAE7BnvB,EAAK6nB,gBAAkBtpB,EAAQ6wB,gBAC/BthB,EAAKsM,MAAM,EACX9U,EAAO2Q,GAAG,oCAAqC,CAAEP,UAAW1V,EAAK0V,SAAU,CAAC,CAC9E,CAAC,GAED5H,EAAKsM,MAAM,EACX9U,EAAO2Q,GAAG,qCAAsC,CAAEP,UAAW1V,EAAK0V,SAAU,CAAC,IAG1B,CAAC,EAA/C,CAAC,MAAO,OAAO5I,QAAQqF,EAAQjN,WAAW,GAC7ClF,EAAO,CACT0V,WAAW,IAAI3U,MAAO6zB,QAAQ,EAC9B5N,UAAW7U,EAAQ8U,aACnBpB,YAAa1T,EAAQjN,YACrBuQ,sBAAuBtD,EAAQ4H,sBAC/BrD,eAAgBvE,EAAQC,eACxBob,YAAa1uB,EAAQqB,KAAKP,EAAOgW,UAAU4X,WAAW,EACtDpE,aAAc,GACd4pB,UAAW7gC,EAAQ8gC,yBAA2B,EAC9ClrB,eAAgB5V,EAAQoF,uBAC1B,EAE2B,OAAvBpF,EAAQjN,cACVlF,EAAKwY,UAAY,CACf+5B,iBAAkB,GAClBC,iBAAkB,GAClBC,kBAAmB,GACnBC,iBAAkB,GAClBC,eAAgB,GAChBC,eAAgB,GAChBrf,qBAAsB,EACxB,GAGFia,EAAS0F,QAAQlzC,CAAI,EAEjBmS,EAAQ4H,sBAAsBo5B,WAAW,KAAK,EAChDnpC,EAAiBilB,SAAS,CACxBjvB,KAAM,CACJqC,SAAU8P,EAAQoF,wBAClB2X,wBAAyB,CAAEkkB,cAAe,OAAQ,CACpD,CACF,CAAC,EAAEvyC,KAAK,SAAUtC,GACqB,cAAjC4T,EAAQ4H,wBACV/Z,EAAK0uB,YAAcnwB,EAAQ4wB,YAE7BnvB,EAAK6nB,gBAAkBtpB,EAAQ6wB,gBAC/BthB,EAAKsM,MAAM,EAEgB,OAAvBjI,EAAQjN,YACVI,EAAO2Q,GAAG,iCAAkC,CAAEP,UAAW1V,EAAK0V,SAAU,CAAC,EAEzEpQ,EAAO2Q,GAAG,6BAA8B,CAAEP,UAAW1V,EAAK0V,SAAU,CAAC,CACzE,CAAC,GAED5H,EAAKsM,MAAM,EACX9U,EAAO2Q,GAAG,qCAAsC,CAAEP,UAAW1V,EAAK0V,SAAU,CAAC,IAGjD,OAAvBvD,EAAQjN,aAGR,CAAC7G,EAAOyY,aAAaC,QAAQ7U,EAAaI,SAAW,cAAc,GAAK0vC,EAAYpzC,QAA+D,CAAC,EAAtD,CAAC,MAAO,MAAO,OAAOkO,QAAQqF,EAAQjN,WAAW,IAClJ7G,EAAO6d,QAAQ,4LAA6L,IAC9MpO,EAAK2Q,WAAW3Q,EAAKsa,QAAQ,EAAEE,MAAMxb,QAAQ0gC,CAAQ,EAAG,EAAI,EAC5DwE,EAAcA,EAAY,GAC1BxE,EAAW1/B,EAAK+Y,QAAQmrB,EAAY5/B,eAAeS,SAAS,EAAGm/B,EAAYlrB,YAAakrB,EAAYjrB,kBAAmB,EAAGirB,EAAY/rB,SAAU,CAC9Ie,UAAWgrB,EAAY/qB,aACvBpB,YAAamsB,EAAY9sC,YACzBkiB,UAAW,SACb,CAAC,GAGH/oB,EAAOyY,aAAaK,QAAQjV,EAAaI,SAAW,eAAgB,EAAI,GAG1EmD,EAAKuqC,MAAMxC,EAAS9lB,MAAM,GAAK,GAC/B5oB,EAAQ+c,QAAQA,CAAO,EAAEmX,KAAK,WAAY,EAAI,EAE9C1Z,EAAS,WACP7T,EAAKksC,YAAYnE,EAAS9lB,MAAM,EAAG,CAAC,EACpCjiB,EAAKuqC,MAAMxC,EAAS9lB,MAAM,GAAK,GAC/BjiB,EAAK4tC,iBACLv0C,EAAQ+c,QAAQA,CAAO,EAAEmX,KAAK,WAAY,EAAK,CACjD,EAAG,GAAI,CACT,EAEAvtB,EAAK4tC,iBAAmB,WACtB,IAAIC,EAAQ,EACZ7tC,EAAK0pC,qBAAqB5mB,QAAQ,SAAAgrB,GAChC,IAAIphC,EAAUT,EAAqBgX,KAAK,SAAA9W,GAAC,OAAIA,EAAEQ,gBAAkBmhC,EAAEnhC,cAAc,GACjFkhC,GAAiBnhC,EAAQwV,SAAWxV,EAAQ4U,iBAC9C,CAAC,EACDthB,EAAK4pC,cAAgBiE,CACvB,EAEA7tC,EAAK+tC,SAAW,SAAU5hC,EAAG+V,GAC3B,IACM8rB,EADoB,EAAtB7hC,EAAEwU,oBACAqtB,EAAW3lC,EAAKoE,SAAS,EAAExO,OAAO,SAAUmD,GAAK,OAAOA,EAAE6gB,MAAM,GAAK9V,EAAEQ,cAAgB,CAAC,GAE/ExT,OACX6G,EAAK6iB,MAAM1W,EAAEQ,gBAAgBu/B,YAAYhqB,EAAW8rB,EAAS,GAAG7rB,YAAY,CAAC,EAE7EniB,EAAK6iB,MAAM1W,EAAEQ,gBAAgBu/B,YAAYhqB,CAAQ,EAEnDliB,EAAK6iB,MAAM1W,EAAEQ,gBAAgBshC,SAAS,EAAE7yC,KAAK,SAAUO,GACjDqyC,EAAS70C,OACX60C,EAAS,GAAGC,SAAS,EAAE7yC,KAAK,SAAU8yC,GACpCluC,EAAKwqC,OAAOr+B,EAAEQ,gBAAkBhR,EAASuyC,CAC3C,CAAC,EAEDluC,EAAKwqC,OAAOr+B,EAAEQ,gBAAkBhR,CACpC,CAAC,GAGDqE,EAAKwqC,OAAOr+B,EAAEQ,gBAAkBR,EAAEmV,kBAAoBY,CAE1D,EAEAliB,EAAKksC,YAAc,SAAUl0C,EAAIkqB,EAAUisB,IACzCjsB,EAAWiB,SAASjB,CAAQ,GAEb,GAAM,GACF,KAAbisB,EACFnuC,EAAKsqC,WAAWtyC,IAAOkqB,EAEvBliB,EAAKsqC,WAAWtyC,GAAMkqB,EAEpBliB,EAAKsqC,WAAWtyC,GAAM,IAAGgI,EAAKsqC,WAAWtyC,GAAM,GAEnCiU,EAAqBgX,KAAK,SAAA9W,GAAC,OAAIA,EAAEQ,gBAAkB3U,CAAE,GAC7DkqB,SAAWliB,EAAKsqC,WAAWtyC,IAC7Bo2C,EAAOpuC,EAAK0pC,qBAAqBzmB,KAAK,SAAA9W,GAAC,OAAIA,EAAEQ,gBAAkB3U,CAAE,MAErEo2C,EAAKlsB,SAAWliB,EAAKsqC,WAAWtyC,MAGlCgI,EAAKsqC,WAAWtyC,GAAM,EACtBygB,QAAQ41B,KAAK,oDAAoD,GAInEruC,EAAKsuC,YAAYt2C,CAAE,EACnBgI,EAAK4tC,iBAAiB,CACxB,EAEA5tC,EAAKsuC,YAAc,SAAUt2C,GAC3BgI,EAAK+tC,SAAS9hC,EAAqBhO,OAAO,SAAUkO,GAClD,OAAOA,EAAEQ,gBAAkB3U,CAC7B,CAAC,EAAE,GAAIgI,EAAKsqC,WAAWtyC,EAAG,CAC5B,EAEAgI,EAAKuuC,kBAAoB,WACvB,IAAI/xB,EAAI1e,EAAG8e,MAAM,EAGb4xB,GAFJxuC,EAAKgqC,cAAgB,GACrBhqC,EAAKmqC,wBAA0B,GACTnqC,EAAK6N,aACvB4gC,EAAczuC,EAAKiO,QACM,UAAzBxR,EAAaI,WACf2xC,EAAkB,QAClBC,EAAc,SAGZzuC,EAAKkO,WAAalO,EAAK2pC,gBACzB3pC,EAAKmqC,wBAA0B,GAC/BnqC,EAAKgqC,cAAgB,IAEI,GAAlBhqC,EAAKkO,WAAkBlO,EAAKkO,WAAa9C,GAAkC,GAArBpL,EAAK0O,cAAqB1O,EAAK0O,cAAgBtD,GAC5GpL,EAAKiqC,sBAAwB,GAC7BjqC,EAAKgqC,cAAgB,IAGrBz+B,EACGiD,oCAAoC,CAAEX,YAAa2gC,EAAiB//B,qBAAsBggC,EAAa//B,aAAc1O,EAAK0O,aAAcC,gBAAiB3O,EAAKkO,UAAWtR,SAAUH,EAAaI,QAAS,CAAC,EAC1MzB,KAAK,WACAmQ,EAAgBhR,KAAKqU,iCAAiC4/B,GAAiBC,GAAazuC,EAAK0O,cAAc1O,EAAKkO,WAAWzR,EAAaI,UAAU1D,QAChJ6G,EAAK0pC,qBAAuBn+B,EAAgBhR,KAAKqU,iCAAiC4/B,GAAiBC,GAAazuC,EAAK0O,cAAc1O,EAAKkO,WAAWzR,EAAaI,UAChKmD,EAAK0uC,SAAS,EACd1uC,EAAKiqC,sBAAwB,KAG7BjqC,EAAK0pC,qBAAuB,GAC5B1pC,EAAKiqC,sBAAwB,GAC7BjqC,EAAKgqC,cAAgB,IAEvBxtB,EAAE/jB,QAAQ,CACZ,CAAC,CAEP,EAGAuH,EAAK4T,KAAO,WACV,IAGMjI,EAHF6Q,EAAI1e,EAAG8e,MAAM,EAgCjB,OA9BIvU,EAAKsmC,WAAW,GACdhjC,EAAatD,EAAKoE,SAAS,EAAE5U,IAAI,SAAUO,GAC7C,IAAIsU,EAAUT,EAAqBhO,OAAO,SAAUkO,GAClD,OAAOA,EAAEQ,gBAAkBvU,EAAEwU,GAC/B,CAAC,EAED,OAAIF,EAAQvT,OACHuT,EAAQ,GAAG5J,GAEX,CACX,CAAC,EAAE+I,KAAK,GAAG,EAEXN,EACGa,UAAU,CAAExP,SAAUH,EAAaI,SAAU8O,WAAYA,CAAW,CAAC,EACrEvQ,KAAK,WACAmQ,EAAgBhR,KAAK+R,OAAO7P,EAAaI,UAAU8O,GAAYxS,OACjE0G,EAAO2Q,GAAG,mBAAmB,EAE7B3Q,EAAO2Q,GAAG,iBAAiB,EAE7BgM,EAAE/jB,QAAQ,CACZ,CAAC,GAGHob,EAAS,WACPjb,EAAOqjB,MAAM,0EAA0E,EACvFO,EAAE/jB,QAAQ,CACZ,CAAC,EAGI+jB,EAAEK,OACX,EAEA7c,EAAK4uC,YAAc,SAAU7zB,GAC3B,OAAOiC,EAAK4xB,YAAY7zB,CAAI,CAC9B,EAEA/a,EAAK0uC,SAAW,WACdziC,EAAqB6W,QAAQ,SAAU3W,GACrC,IAAI0iC,EAAa1iC,EAAE2iC,oBAA4C,EAC/D9uC,EAAKsqC,WAAWn+B,EAAEQ,gBAAkBkiC,EACpC1iC,EAAE+V,SAAW2sB,EAEb1iC,EAAEqU,SAAW,CACXxoB,GAAImU,EAAEwU,kBACNC,MAAOzU,EAAE0U,gBACTC,IAAK3U,EAAE4U,oBACPC,IAAK7U,EAAE8U,iBACPC,MAAO/U,EAAEgV,mBACX,EAEAnhB,EAAK6iB,MAAM1W,EAAEQ,gBAAkB,IAAI08B,EAAWl9B,EAAEQ,eAAgBR,EAAEkV,YAAalV,EAAEmV,kBAAmButB,EAAY1iC,EAAEqU,SAAU,CAAEe,UAAWpV,EAAEqV,YAAa,CAAC,EACzJxhB,EAAK+tC,SAAS5hC,EAAG0iC,CAAU,CAC7B,CAAC,EAEuC,GAApC7uC,EAAK0pC,qBAAqBvwC,QAC5B6G,EAAK0pC,qBAAqB5mB,QAAQ,SAAAgrB,GAChC,IAAIphC,EAAUT,EAAqBgX,KAAK,SAAA9W,GAAC,OAAIA,EAAEQ,gBAAkBmhC,EAAEnhC,cAAc,GAC7EkiC,EAAaf,EAAEiB,oBAA4C,EAC/D/uC,EAAKsqC,WAAW59B,EAAQC,gBAAkBkiC,EAC1CniC,EAAQwV,SAAW2sB,EACnBf,EAAE5rB,SAAW2sB,EAEb7uC,EAAK6iB,MAAMnW,EAAQC,gBAAkB,IAAI08B,EAAW38B,EAAQC,eAAgBD,EAAQ2U,YAAa3U,EAAQ4U,kBAAmButB,EAAYniC,EAAQ8T,SAAU,CAAEe,UAAW7U,EAAQ8U,YAAa,CAAC,EAC7LxhB,EAAK+tC,SAASrhC,EAASmiC,CAAU,CACnC,CAAC,EAEH7uC,EAAK4tC,iBAAiB,CACxB,EAEA5tC,EAAKgvC,SAAW,SAAU54B,GACxBpW,EAAK0pC,qBAAqB5mB,QAAQ,SAAAgrB,GAChC,IAAIphC,EAAUT,EAAqBgX,KAAK,SAAA9W,GAAC,OAAIA,EAAEQ,gBAAkBmhC,EAAEnhC,cAAc,GAC7Eo7B,EAAW1/B,EAAK+Y,QAAQ1U,EAAQC,eAAgBD,EAAQ2U,YAAa3U,EAAQ4U,kBAAmB5U,EAAQwV,SAAUxV,EAAQ8T,SAAU,CACtIe,UAAW7U,EAAQ8U,aACnBpB,YAAa1T,EAAQjN,WACvB,CAAC,EACDO,EAAKisC,MAAMlE,EAAU3xB,CAAO,CAC9B,CAAC,EACDvW,EAAO2Q,GAAG,qBAAqB,CACjC,EAEAxQ,EAAK0uC,SAAS,EACd1uC,EAAK4tC,iBAAiB,CACxB,CA9fF,IAAWv0C,EAAST,EAAQwS,EAAjB/R,EAkgBRA,QAlgBiBT,EAkgBRA,OAJR,kTAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,eAAgBmvC,CAAY,C,yHChgB3B,SAAX6F,EAAqBpvC,EAAQ/B,EAAIiC,EAAmBtD,EAAcD,EAAgB6O,EAAQhR,EAAU4R,EAAsBlN,EAAcwF,EAAkB2pB,GAE9J,IASKghB,EACHC,EACAC,EAXEpvC,EAAOC,KAqBPovC,GAnBJrvC,EAAKgiB,KAAO3W,EACZrL,EAAKwb,aAAe/e,EACpBuD,EAAKu0B,eAAiB/3B,EACpBwD,EAAKkb,SAAW7gB,EAChB2F,EAAKsvC,oBAAsB,GAE1BtvC,EAAKwb,aAAa9e,qBAChBwyC,EAAW1yC,EAAe+yC,cAC7BJ,EAAmB3yC,EAAegzC,iBAClCJ,EAAyB5yC,EAAeizC,qBACxCC,EAAuBlzC,EAAemzC,mBAEvC3vC,EAAKkvC,SAAWA,GAAY,MAC5BlvC,EAAKmvC,iBAAmBA,GAAoB,MAC5CnvC,EAAK4vC,uBAA0BR,GAA0BM,EACvDN,EAAyB,MAAQM,EAAwB,OAIzCrkC,EAAOsX,QAAQ,EAAEE,MAAM/e,OAAO,SAAS+rC,EAAetQ,EAAcuQ,GACtF,MAAkH,CAAC,EAAhH7jC,EAAqBpU,IAAI,SAASuJ,GAAK,OAAOi6B,OAAOj6B,EAAEuL,cAAc,CAAG,CAAC,EAAEtF,QAAQg0B,OAAOkE,EAAa3yB,GAAG,CAAC,GAG7GijC,EAAcvuC,KAAKwuC,CAAY,EACxBD,CAET,EAAG,EAAE,GAEFR,EAAal2C,QACfkS,EAAO0kC,SAAS,SAAS3uC,EAAErF,GAC1B,MAAmC,CAAC,IAA7BszC,EAAahoC,QAAQtL,CAAC,CAC9B,CAAC,EAEFiE,EAAKkgB,aAAe,WAChB,IAAI1D,EAAI1e,EAAG8e,MAAM,EAEjB,OAAK5c,EAAK2jB,aAINtpB,EAASuoB,uBAAyB,CAAC5iB,EAAK4jB,qBAC1ChrB,EAAOqjB,MAAM,6CAA6C,EACnDne,EAAGnE,KAAKyR,CAAS,IAEE,GAAxBpL,EAAK6jB,kBACP7jB,EAAK6jB,gBAAkB,GACvB/lB,EAAGyH,IAAK,WACN,IAAIC,EAAW,GACXsK,EAAYzE,EAAOoB,SAAS,EAEhC,GAAGqD,EAAU7R,OAAO,SAASmD,GAAI,OAAOA,EAAE2O,QAAQ,EAAEhI,OAAS3G,EAAE2O,QAAQ,EAAEgD,SAAW,CAAC,EAAE5Z,OACrF,IAAI,IAAI4C,EAAI,EAAGA,EAAI+T,EAAU3W,OAAQ4C,CAAC,GAAG,CACvC,IAAIi0C,EAAelgC,EAAU/T,GAAGgU,QAAQ,EAEpCigC,EAAajoC,MACfvC,EAASlE,KACPiD,EAAiBssB,aAAa,CAC5Bt2B,KAAM,CACJqC,SAAUH,EAAaI,SACvBi0B,SAAU,CACRC,cAAe,MACfC,aAAc,QACdif,eAAgBD,EAAarsB,aAE7BvB,gBAAiB4tB,EAAa5tB,gBAC9B6O,YAAa+e,EAAajoC,MAAMmpB,YAChCE,WAAY4e,EAAajoC,MAAMG,WAC/BmpB,eAAiB,SAAU9pB,EAAW6pB,GACpC,IAAIC,EAAiB,GACjBr3B,EAAWuN,EAAUtJ,OAAO,SAAU7F,GAAK,OAAOA,EAAE+P,YAAcipB,CAAY,CAAC,EAEnF,GAAIp3B,EAASb,SAAWa,EAAWA,EAAS,IAC1C,IAAK,IAAImF,EAAI,EAAGA,EAAInF,EAAS0N,WAAWvO,OAAQgG,CAAC,GACR,2BAAnCnF,EAAS0N,WAAWvI,GAAGwI,QACzB0pB,EAAe/vB,KAAK,CAClBgwB,QAASt3B,EAAS0N,WAAWvI,GAAGwI,QAChC4pB,UAAWrD,EAAejV,WAAW+2B,EAAajoC,MAAM/N,EAAS0N,WAAWvI,GAAGwI,QAAQ,CACzF,CAAC,EAED0pB,EAAe/vB,KAAK,CAClBgwB,QAASt3B,EAAS0N,WAAWvI,GAAGwI,QAChC4pB,UAAWye,EAAajoC,MAAM/N,EAAS0N,WAAWvI,GAAGwI,QACvD,CAAC,EAIP,OAAO0pB,CACT,EAAG9sB,EAAiBhK,KAAKgN,UAAU9K,EAAaI,UAAWmzC,EAAajoC,MAAMG,UAAU,EACxFspB,uBAAwB,IAAIl2B,KAAK00C,EAAajoC,MAAM0mB,uBAAyB,IAAMuhB,EAAajoC,MAAM0pB,sBAAsB,EAC5H5jB,YAAa9N,EAAkB+N,YAC/BlR,SAAUH,EAAaI,SACvBqzC,eAAgB,OAClB,CACF,CACF,CAAC,CAAC,EAGGF,EAAaj9B,UACpBvN,EAASlE,KACPiD,EAAiBssB,aAAa,CAC5Bt2B,KAAM,CACJqC,SAAUH,EAAaI,SACvBi0B,SAAU,CACRC,cAAe,MACfC,aAAc,YACdif,eAAgBD,EAAarsB,aAC7BvB,gBAAiB4tB,EAAa5tB,gBAC9BiP,eAAiB,SAAkBA,EAAgB92B,GACjD,IAAK,IAAIuN,KAAOvN,EACW,UAArB,OAAOA,EAAKuN,GACdupB,EAAe/vB,KAAK,CAClBgwB,QAASxpB,EACTypB,UAAWh3B,EAAKuN,EAClB,CAAC,EACMguB,MAAMC,QAAQx7B,EAAKuN,EAAI,GAC9BupB,EAAe/vB,KAAK,CAClBgwB,QAASxpB,EACTypB,UAAWh3B,EAAKuN,GAAK+D,KAAK,GAAG,CAC/B,CAAC,EAGL,OAAOwlB,CACT,EAAG,GAAI2e,EAAaj9B,SAAS,EAC7BlF,YAAa9N,EAAkB+N,YAC/BlR,SAAUH,EAAaI,SACvBqzC,eAAgB,OAClB,CACF,CACF,CAAC,CAAC,EAIJ1qC,EAASlE,KAAKxD,EAAGnE,KAAKyR,CAAS,CAAC,CAEpC,CAGF,OAAO5F,CACT,EAAC,CAAG,EAAEpK,KAAK,SAASs4B,GAClB30B,EAAamhB,aAAa,CACxB3lB,KAAM,CACJqC,SAAUH,EAAaI,SACvBoR,QAAS5T,EAAS4T,QAClB4T,UAAWxnB,EAASuhB,QAAUvhB,EAASuhB,QAAQ9Y,GAAK,KACpDgf,WAAYzW,EAAO0W,cAAc,EACjCC,KACS3W,EAAOoB,SAAS,EAAE5U,IAAI,SAASuJ,EAAErF,GAClC+0B,EAAW4C,EAAW33B,GAC1B,MAAO,CACLkV,eAAgB7P,EAAE6gB,MAAM,EACxBC,SAAU9gB,EAAE+gB,YAAY,EACxBV,KAAMrgB,EAAE2O,QAAQ,EAAE0R,KAClBW,gBAAiBhhB,EAAE2O,QAAQ,EAAEqS,gBAC7BC,wBAAyBjhB,EAAE2O,QAAQ,EAAEuS,eACrC6tB,mBAAoBrf,EAAWA,EAASlpB,UAAY,KACpD+Z,UAAWvgB,EAAE2O,QAAQ,EAAE4R,SACzB,CACF,CAAC,CAEL,CACF,CAAC,EAAEvmB,KAAK,SAASb,GACf8Q,EAAOiE,UAAU,EAAElU,KAAK,SAASigB,GAC3BA,GAAc+0B,MAAM71C,CAAI,EAGpBA,EACN3B,EAAOK,SAAWsB,GAGpByF,EAAK6jB,gBAAkB,GACvBjrB,EAAOqjB,MAAM,2CAA2C,GAPtDpc,EAAO2Q,GAAG,0BAA2B,CAAEC,aAAclW,CAAK,CAAC,CAS/D,CAAC,CACH,CAAC,EAAEoc,QAAQ,WACT6F,EAAE/jB,QAAQ,CACZ,CAAC,CACH,EAAG,WACD+jB,EAAE/jB,QAAQ,CACZ,CAAC,GAEI+jB,EAAEK,UA/IPjkB,EAAOqjB,MAAM,+DAA+D,EACrEne,EAAGnE,KAAKyR,CAAS,EA+I9B,CACD,CA3LD,IAAU/R,EAAST,EAAQwS,EAAjB/R,EA+LPA,QA/LgBT,EA+LPA,OAJT,4KAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,WAAYg1C,CAAQ,C,qECxMnC,aAWmB,SAAboB,EAAuBvwC,EAAQid,EAASld,EAAQ/B,EAAI+V,EAAUpX,EAAcsE,EAAS4J,EAAQxQ,EAAQ6G,GAEvG,IAAIhB,EAAOC,KAEX0K,EAAOtJ,gBAAkB0b,EAAQ,SAAS,EAAEpS,EAAOtJ,gBAAiB,cAAc,EAElF,IAAK,IAAItF,EAAI,EAAGA,EAAI4O,EAAOtJ,gBAAgBlI,OAAQ4C,CAAC,GAClD4O,EAAOtJ,gBAAgBtF,GAAG2F,aAAe3F,EAE3CiE,EAAKswC,WAAa3lC,EAClB3K,EAAKpF,OAASvB,EAAQqB,KAAKiQ,CAAM,EACjC3K,EAAK4d,OAASzjB,EAAOS,OACrBoF,EAAK4d,OAAOQ,KAAO,GAEnBpe,EAAKuwC,OAASntB,EAAEoY,IAAIx7B,EAAKpF,OAAOyG,gBAAiB,SAAUmvC,GAAM,OAAOA,EAAGC,MAAQ,CAAC,EAEpFzwC,EAAK0wC,oBAAsB3vC,EAAQ9C,OAAO,SAAU0yC,GAAK,OAAOA,EAAE7tC,KAAO6H,EAAO7H,EAAI,CAAC,EAClFjL,IAAI,SAAU84C,GAAK,OAAOA,EAAE7rC,IAAM,CAAC,EAEtChF,EAAOgX,IAAI,oBAAqB,SAAUX,GACxC,IAAIy6B,EAAe,GASnB,GARKv3C,EAAQ21B,OAAOhvB,EAAKpF,OAAQoF,EAAKswC,UAAU,GACzC13C,EAAO6d,QAAQ,+EAA+E,IACjGm6B,EAAe,GACfz6B,EAAMmB,eAAe,GAKL,GAAhBs5B,GAA0C,GAAlB5wC,EAAKpF,OAAOkI,GACtC,IAAK,IAAI/G,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAM9C,EAAKpF,OAAOkI,GAAI,CAC7E9B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUguB,OAAO9uB,EAAG,CAAC,EAC7D,KACF,CAGN,CAAC,EAEDiE,EAAK6wC,qBAAuB,SAAUnY,GAChCA,IACF14B,EAAK8wC,2BAA6B9wC,EAAKpF,OAAOyG,gBAAgBpD,OAAO,SAAUuyC,GAC7E,OAAOptB,EAAEoY,IAAIgV,EAAGtnC,cAAe,SAAUm0B,GACvC,MAA0B,YAAnBA,EAAGpB,cAA8BoB,EAAGnB,gBAAkBxD,EAAS51B,EACxE,CAAC,CACH,CAAC,EAEG9C,EAAK8wC,4BAA8B9wC,EAAK8wC,2BAA2B33C,OACrE6G,EAAK+wC,qBAAuB,GAE5BrY,EAASx3B,SAAW,GAG1B,EAEAlB,EAAKyR,KAAO,SAAUu/B,GAEpB,IAuBMx0B,EAvBN,OAAKnjB,EAAQ21B,OAAOhvB,EAAKpF,OAAQoF,EAAKswC,UAAU,GAuB1C9zB,EAAI1e,EAAG8e,MAAM,EAEjB/I,EAAS,WACP2I,EAAE/jB,QAAQ,EAEO,KAAbu4C,GAAsBhxC,EAAKpF,OAAOyG,gBAAgBlI,QACpD0G,EAAO2Q,GAAG,uBAAuB,CACrC,CAAC,EAEMgM,EAAEK,SA/BF7b,EACJiwC,WAAW,CACVliC,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBjC,OAAQoF,EAAKpF,MACf,CACF,CAAC,EACAQ,KAAK,SAAUR,GACd,IAAK,IAAImB,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC7E,GAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAMlI,EAAOkI,GAAI,CACxE9C,EAAKswC,WAAatvC,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GACpEiE,EAAKpF,OAASvB,EAAQqB,KAAKsF,EAAKswC,UAAU,EAC1C,KACF,CAEe,KAAbU,GAAsBhxC,EAAKpF,OAAOyG,gBAAgBlI,QACpD0G,EAAO2Q,GAAG,uBAAuB,CACrC,CAAC,CAeP,EAEAxQ,EAAKkxC,QAAU,SAAU5lB,GACvB,IAKE6lB,EACAC,EANY,IAAV9lB,EACFtrB,EAAKqyB,UAAU/G,GAAO5pB,aAAe1B,EAAKqyB,UAAUryB,EAAKqyB,UAAUl5B,OAAS,GAAGuI,aAAe,GAK9F0vC,GADAD,EAAOnxC,EAAKqyB,UAAU/G,EAAQ,IACN5pB,aAExByvC,EAAKzvC,aAAe1B,EAAKqyB,UAAU/G,GAAO5pB,aAC1C1B,EAAKqyB,UAAU/G,GAAO5pB,aAAe0vC,EAEzC,EAEApxC,EAAKqxC,UAAY,SAAU/lB,GACzB,GAAIA,IAAUtrB,EAAKqyB,UAAUl5B,OAAS,EAGpC,IAAK,IAAI4C,EAFTiE,EAAKqyB,UAAU/G,GAAO5pB,aAAe,EAErB3F,EAAIiE,EAAKqyB,UAAUl5B,OAAQ4C,CAAC,GACtCiE,EAAKqyB,UAAUt2B,IAAMiE,EAAKqyB,UAAU/G,IACtCtrB,EAAKqyB,UAAUt2B,GAAG2F,YAAY,OAE/B,CACH,IAEAyvC,EAAOnxC,EAAKqyB,UAAU/G,EAAQ,GAC9B8lB,EAAmBD,EAAKzvC,aAExByvC,EAAKzvC,aAAe1B,EAAKqyB,UAAU/G,GAAO5pB,aAC1C1B,EAAKqyB,UAAU/G,GAAO5pB,aAAe0vC,CACvC,CACF,EAEApxC,EAAKsxC,cAAgB,SAAUzmC,EAAUG,GAIvC,OAHKhL,EAAK4d,OAAOQ,MACfve,EAAO2Q,GAAG,+BAAgC,CAAExY,GAAI6S,EAAUzH,iBAAkB4H,CAAW,CAAC,EAEnF,EACT,EAEAhL,EAAKoe,KAAO,SAAUhmB,GACpB4H,EAAK4d,OAAOQ,KAAO,CAACpe,EAAK4d,OAAOQ,KAChChmB,EAAEuyB,OAAO/sB,MAAQoC,EAAK4d,OAAOQ,KAC7B/kB,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAE4mB,eAAe,SAAU,EAAI,CACzD,EAEAvxC,EAAKwxC,gBAAkB,SAAUC,EAAQrzB,GACvC,MAAa,SAATA,GAGKqzB,CACX,EAEAzxC,EAAK0xC,QAAU,WACb,OAAO1xC,EAAKyR,KAAK,EAAK,EAAErW,KAAK,WAC3B4F,EAAc2wC,cAAc,CAC1B/0C,SAAUH,EAAaI,SACvBgO,SAAU7K,EAAKpF,OAAOkI,GACtBkI,WAAY,CACd,CAAC,EACE5P,KAAK,WACJxC,EAAOkiB,KAAK9Z,EAAczG,KAAKq3C,WAAWn1C,EAAaI,UAAUmD,EAAKpF,OAAOkI,IAAI,EAAE,CACrF,CAAC,CACL,CAAC,CACH,EAEA9C,EAAK+H,MAAQ,WACX,OAAO/H,EAAKyR,KAAK,EAAK,EAAErW,KAAK,WAC3ByE,EAAO2Q,GAAG,4BAA6B,CAAExY,GAAIgI,EAAKpF,OAAOkI,EAAG,CAAC,CAC/D,CAAC,CACH,CAEF,CAtKF,IAAWzJ,EAAST,EAATS,EA0KRA,QA1KiBT,EA0KRA,OAJR,mHAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,aAAco2C,CAAU,C,+HCxKjB,SAAjBwB,EAA2BhyC,EAAQpD,EAAcwO,EAAmB9Q,EAAQ6G,GAE9E,IAAIhB,EAAOC,KAEXD,EAAKwb,aAAe/e,EACpBuD,EAAKrF,QAAUsQ,EAEfjL,EAAK8xC,OAAS,SAAUl3C,GAClBA,EAAO+pC,SACT/pC,EAAO+pC,SAAW,GAElB/pC,EAAO+pC,SAAW,EACtB,EAEA3kC,EAAK+xC,WAAa,SAAU90C,GAE1B,IAEI+0C,EAFkBhyC,EAAKrF,QAAQsD,OAAO,SAAUrD,GAAU,OAAOA,EAAO+pC,QAAU,CAAC,EAEtD7gC,OAAO,SAAUC,EAAKulB,GACrD,IAAI1sB,EAAW0sB,EAAIzsB,SAEnB,OADCkH,EAAInH,GAAYmH,EAAInH,IAAa,IAAI0E,KAAKgoB,EAAI2oB,QAAQ,EAChDluC,CACT,EAAG,EAAE,EAEL/C,EAAc+wC,WAAW,CACvBx3C,KAAM,CACJ23C,YAAaF,EACbG,eAAgBl1C,EAChBm1C,oBAAqB31C,EAAaI,QACpC,CACF,CAAC,EAAEzB,KAAK,SAAUb,GAChBsF,EAAO2Q,GAAG,uBAAuB,CACnC,CAAC,CACH,CACF,CAnCF,IAAWnX,IAuCRA,QAAST,OAJR,iFAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,iBAAkB43C,CAAc,C,6EChDhD,aAW2B,SAArBQ,EAA+BvyC,EAAQD,EAAQ/B,EAAI+V,EAAUkJ,EAAStgB,EAAckO,EAAQG,EAAgB3Q,EAAQ6G,EAAeK,GAEvI,IAAIrB,EAAOC,KAEL6K,EAAe5B,cAAgB6T,EAAQ,SAAS,EAAEjS,EAAe5B,cAAe,cAAc,EAE9F,IAAI,IAAInN,EAAI,EAAGA,EAAI+O,EAAe5B,cAAc/P,OAAQ4C,CAAC,GACrD+O,EAAe5B,cAAcnN,GAAG2F,aAAe3F,EAEnDiE,EAAKpF,OAAS+P,EACd3K,EAAKsyC,mBAAqBxnC,EAC5B9K,EAAKlF,eAAiBzB,EAAQqB,KAAKoQ,CAAc,EACjD9K,EAAK4d,OAASzjB,EAAOW,eACnBkF,EAAK4d,OAAOQ,KAAO,GACnBpe,EAAKuyC,aAAe,GACpBvyC,EAAKwyC,SAAW,GAClBxyC,EAAKyyC,gBAAkB,GAEzBzyC,EAAKmB,UAAYE,EACjBrB,EAAK0yC,mBAAqB1xC,EAAc2xC,2BAA2B3yC,EAAKlF,eAAgBkF,EAAKmB,SAAS,EAEjGiiB,EAAEoY,IAAIx7B,EAAK0yC,mBAAoB,SAAUjX,GAAK,MAAkB,eAAXA,EAAE+C,MAAyB,CAAC/C,EAAE34B,EAAI,CAAC,GACzF9C,EAAK0yC,mBAAmBpxC,KAAK,CAC3BwB,GAAI,EACJ07B,KAAM,aACNoU,UAAW,EACb,CAAC,EAGAxvB,EAAEoY,IAAIx7B,EAAK0yC,mBAAoB,SAAUjX,GAAK,MAAkB,4BAAXA,EAAE+C,MAAsC,CAAC/C,EAAE34B,EAAI,CAAC,GACtG9C,EAAK0yC,mBAAmBpxC,KAAK,CAC3BwB,GAAI,CAAC,EACL07B,KAAM,0BACNoU,UAAW,GACXC,gBAAiB,EACnB,CAAC,EAGL7yC,EAAK8yC,mBAAqB,SAAUpX,GAC5BA,IAC0B,YAAxBA,EAAOO,aACTP,EAAOO,aAAe,YAEtBP,EAAOO,aAAe,UACtBj7B,EAAc+xC,gCAAgCrX,EAAQ17B,EAAKlF,eAAgBkF,EAAKmB,SAAS,GAG/F,EAEFnB,EAAKgzC,mBAAqB,SAAUtX,GAChC,IAGIuX,EAHCvX,KAGDuX,EAAejzC,EAAK0yC,mBAAmBz0C,OAAO,SAAUw9B,GAAK,OAAOA,EAAE34B,IAAM44B,EAAOQ,cAAgB,CAAC,EAAE,KACtF+W,EAAaL,UAC/BlX,EAAOO,aAAe,YACbgX,GAAgBA,EAAaJ,iBACtCnX,EAAOO,aAAe,UACtBj7B,EAAc+xC,gCAAgCrX,EAAQ17B,EAAKlF,eAAgBkF,EAAKmB,SAAS,GAEzFu6B,EAAOO,aAAe,WAE1B,EAEFj8B,EAAKkzC,wBAA0B,WAC3B,IAAID,EAAejzC,EAAK0yC,mBAAmBz0C,OAAO,SAAUw9B,GAAK,OAAOA,EAAE34B,IAAM9C,EAAKmzC,mBAAqB,CAAC,EAAE,GACzGF,GAAgBA,EAAaL,UAC/B5yC,EAAKozC,kBAAoB,YAChBH,GAAgBA,EAAaJ,iBAElCnX,EAAS,CAAEO,aADfj8B,EAAKozC,kBAAoB,UACelX,eAAgB,IAAK,EAC7Dl7B,EAAc+xC,gCAAgCrX,EAAQ17B,EAAKlF,eAAgBkF,EAAKmB,SAAS,EACzFnB,EAAKmzC,oBAAsBzX,EAAOQ,gBAElCl8B,EAAKozC,kBAAoB,UAE7B,EAEApzC,EAAKqzC,wBAA0B,WACE,YAA3BrzC,EAAKozC,kBACPpzC,EAAKozC,kBAAoB,YAEzBpzC,EAAKozC,kBAAoB,UACzBpzC,EAAKmzC,oBAAsB,KAE/B,EAEAnzC,EAAKmzC,oBAAsB,KAC3BnzC,EAAKozC,kBAAoB,UAEzB,IAAIE,EAAQtzC,EAAKlF,eAAeoO,cAAcjL,OAAO,SAASmD,GAAK,MAAkC,QAA3BA,EAAEm9B,sBAAkCn9B,EAAEF,QAAU,CAAC,EAEtHoyC,EAAMn6C,SACL6G,EAAKwyC,SAAW,GAClBxyC,EAAKyyC,gBAAkBa,EAAM,GAAG9U,KAChCx+B,EAAKmzC,oBAAsBG,EAAM,GAAGpX,eACpCl8B,EAAKozC,kBAAoBE,EAAM,GAAGrX,cAGpCn8B,EAAOgX,IAAI,oBAAqB,SAAS1e,GACjCiB,EAAQ21B,OAAOhvB,EAAKlF,eAAgBkF,EAAKsyC,kBAAkB,GACvD15C,EAAO6d,QAAQ,+EAA+E,GAC9Fre,EAAEkf,eAAe,CAE7B,CAAC,EAEHtX,EAAKuzC,eAAiB,SAAUC,GAC9BxzC,EAAKyzC,aAAezzC,EAAKlF,eAAeoiC,SACxCl9B,EAAKlF,eAAeoiC,SAAWsW,CACjC,EAEExzC,EAAK0zC,aAAe,SAAShY,GACzB,MAAuC,QAAhCA,EAAO6C,oBAClB,EAEAv+B,EAAK2zC,UAAY,WAIb,IAFA,IAAIla,EAAUz5B,EAAKuyC,aAAallC,MAAM,IAAI,EAAEpP,OAAO,SAASmD,GAAK,OAAOA,EAAEqf,KAAK,CAAG,CAAC,EAE3E1kB,EAAI,EAAGA,EAAI09B,EAAQtgC,OAAQ4C,CAAC,GAChCiE,EAAKlF,eAAeoO,cAAc5H,KAAK,CACnCwB,GAAI,EACJ8wC,iBAAkB5zC,EAAKlF,eAAegI,GACtCy7B,qBAAsB,MACtBC,KAAM/E,EAAQ19B,GACdmF,SAAU,GACVQ,aAAc1B,EAAKlF,eAAeoO,cAAc/P,OAAS,CAC7D,CAAC,EAGL6G,EAAKuyC,aAAe,EACxB,EAEAvyC,EAAK6zC,iBAAmB,WACtB,MAAK7zC,IAAKlF,eAAeoO,eAGlBlJ,IAAKlF,eAAeoO,cAAc+Z,KAAK,SAAAyY,GAAM,MAAoC,QAAhCA,EAAO6C,sBAAkC7C,EAAOx6B,QAAQ,EAClH,EAEApB,EAAOa,OAAO,WACZ,OAAOX,EAAKlF,eAAe0jC,IAC7B,EAAG,SAAUM,EAAQC,GACfD,IAAWC,IACT,CAAC/+B,EAAKlF,eAAegI,IAAMsgB,EAAEoY,IAAIx7B,EAAKpF,OAAOyG,gBAAiB,SAAUmvC,GAAM,OAAOA,EAAGhS,OAASM,CAAQ,CAAC,EAC5G9+B,EAAKukB,KAAKuvB,aAAaC,aAAa,YAAa,EAAK,EAEtD/zC,EAAKukB,KAAKuvB,aAAaC,aAAa,YAAa,EAAI,EAE3D,CAAC,EAEL/zC,EAAKyR,KAAO,SAAUu/B,GACd,IAyBQgD,EA4EAx3B,EArGR,GAAG,CAACxc,EAAKukB,KAAK3P,OASV,OARI4H,EAAI1e,EAAG8e,MAAM,EAEjB/I,EAAS,WACL7T,EAAKukB,KAAK9P,cAAc,EAExB+H,EAAEnC,OAAO,CACb,CAAC,EAEMmC,EAAEK,QA8Bb,GA3BG7c,EAAKuyC,aAAa9xB,KAAK,GACtBzgB,EAAK2zC,UAAU,EAEhBL,EAAMn6C,OACH6G,EAAKwyC,UACPc,EAAM,GAAG9U,KAAOx+B,EAAKyyC,iBAAmBa,EAAM,GAAG9U,KACjD8U,EAAM,GAAGpX,eAAiBl8B,EAAKmzC,oBAC/BG,EAAM,GAAGrX,aAAej8B,EAAKozC,mBAGzBE,EAAM,GAAGpyC,SAAW,GAEpB,CAACoyC,EAAMn6C,QAAU6G,EAAKwyC,WACtBwB,EAAW,CACXlxC,GAAI,EACJ8wC,iBAAkB5zC,EAAKlF,eAAegI,GACtCy7B,qBAAsB,MACtBC,KAAMx+B,EAAKyyC,gBACXvxC,SAAU,GACVQ,aAAc1B,EAAKlF,eAAeoO,cAAc/P,OAAS,EACzD+iC,eAAgBl8B,EAAKmzC,oBACrBlX,aAAcj8B,EAAKozC,iBACvB,EACAE,EAAMhyC,KAAK0yC,CAAQ,EACnBh0C,EAAKlF,eAAeoO,cAAc5H,KAAK0yC,CAAQ,GAG9C36C,EAAQ21B,OAAOhvB,EAAKlF,eAAgBkF,EAAKsyC,kBAAkB,EAuE5D,OATI91B,EAAI1e,EAAG8e,MAAM,EAEjB/I,EAAS,WACL2I,EAAE/jB,QAAQ,EAEM,KAAbu4C,GACCnxC,EAAO2Q,GAAG,uBAAwB,CAAExY,GAAIgI,EAAKpF,OAAOkI,EAAG,CAAC,CAChE,CAAC,EAEM0Z,EAAEK,QArET,GAAK7c,EAAKlF,eAAegI,IAAOsgB,EAAEoY,IAAIx7B,EAAKpF,OAAOyG,gBAAiB,SAAUmvC,GAAM,OAAOA,EAAGhS,OAASx+B,EAAKlF,eAAe0jC,IAAM,CAAC,GAG7H,IAAI,IAAIziC,EAAI,EAAGA,EAAIiE,EAAKpF,OAAOyG,gBAAgBlI,OAAQ4C,CAAC,GACpD,GAAGiE,EAAKpF,OAAOyG,gBAAgBtF,GAAG+G,IAAM9C,EAAKlF,eAAegI,GAAG,CAC7D9C,EAAKpF,OAAOyG,gBAAgBtF,GAAKiE,EAAKlF,eACpC,KACJ,CAAC,MANLkF,EAAKpF,OAAOyG,gBAAgBC,KAAKtB,EAAKlF,cAAc,EAQxD,OAAOkG,EACFiwC,WAAW,CACRliC,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACFqC,SAAUH,EAAaI,SACvBjC,OAAQoF,EAAKpF,MACjB,CACJ,CAAC,EACFQ,KAAK,SAASR,GACT,IAAI,IAAImB,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAU1D,OAAQ4C,CAAC,GAC1E,GAAGiF,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAG+G,IAAMlI,EAAOkI,GAAG,CAEpE,GAAG9C,EAAKlF,eAAegI,IACnB,IAAI,IAAI3D,EAAI,EAAGA,EAAI6B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GAC7F,GAAG6B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,GAAG2D,IAAM9C,EAAKlF,eAAegI,GAAG,CACpG9C,EAAKsyC,mBAAqBtxC,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,GAC/Fa,EAAKlF,eAAiBzB,EAAQqB,KAAKsF,EAAKsyC,kBAAkB,EAC1D,KACJ,CAAC,MAKL,IAAQnzC,EAAI,EAAGA,EAAI6B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GAK7F,GAAG,CAJoBa,EAAKpF,OAAOyG,gBAAgBpD,OAAO,SAASmD,GAC/D,OAAOA,EAAE0B,IAAM9B,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,GAAG2D,EAC3F,CAAC,EAEoB3J,OAAO,CAExB,IAAI86C,EAAkBj0C,EAAKpF,OAAOyG,gBAAgBpD,OAAO,SAASmD,GAAK,MAAO,CAACA,EAAE0B,EAAI,CAAC,EAEtF,GAAGmxC,EAAgB96C,OAAO,CACtB86C,EAAgB,GAAKjzC,EAAczG,KAAKI,QAAQ8B,EAAaI,UAAUd,GAAGsF,gBAAgBlC,GAC1Fa,EAAKsyC,mBAAqB2B,EAAgB,GAC1Cj0C,EAAKlF,eAAiBzB,EAAQqB,KAAKsF,EAAKsyC,kBAAkB,EAC1D,KACJ,CACJ,CAIR,KACJ,CAGY,KAAbtB,GACCnxC,EAAO2Q,GAAG,uBAAwB,CAAExY,GAAIgI,EAAKpF,OAAOkI,EAAG,CAAC,CAChE,CAAC,CAcb,EAEA9C,EAAKgkC,WAAa,SAASrX,GACvB3sB,EAAKlF,eAAeigC,uBAAyBpO,CACjD,EAEA3sB,EAAKkxC,QAAU,SAAS5lB,GACpB,IAKI6lB,EACAC,EANS,IAAV9lB,EACCtrB,EAAKqyB,UAAU/G,GAAO5pB,aAAe1B,EAAKqyB,UAAUryB,EAAKqyB,UAAUl5B,OAAS,GAAGuI,aAAe,GAK9F0vC,GADAD,EAAOnxC,EAAKqyB,UAAU/G,EAAQ,IACN5pB,aAExByvC,EAAKzvC,aAAe1B,EAAKqyB,UAAU/G,GAAO5pB,aAC1C1B,EAAKqyB,UAAU/G,GAAO5pB,aAAe0vC,EAE7C,EAEApxC,EAAKqxC,UAAY,SAAS/lB,GACtB,GAAGA,IAAUtrB,EAAKqyB,UAAUl5B,OAAS,EAGjC,IAAI,IAAI4C,EAFRiE,EAAKqyB,UAAU/G,GAAO5pB,aAAe,EAEtB3F,EAAIiE,EAAKqyB,UAAUl5B,OAAQ4C,CAAC,GACpCiE,EAAKqyB,UAAUt2B,IAAMiE,EAAKqyB,UAAU/G,IACnCtrB,EAAKqyB,UAAUt2B,GAAG2F,YAAY,OAErC,CACD,IAEAyvC,EAAOnxC,EAAKqyB,UAAU/G,EAAQ,GAC9B8lB,EAAmBD,EAAKzvC,aAExByvC,EAAKzvC,aAAe1B,EAAKqyB,UAAU/G,GAAO5pB,aAC1C1B,EAAKqyB,UAAU/G,GAAO5pB,aAAe0vC,CACzC,CACJ,EAEApxC,EAAKoe,KAAO,SAAShmB,GACjB4H,EAAK4d,OAAOQ,KAAO,CAACpe,EAAK4d,OAAOQ,KAChChmB,EAAEuyB,OAAO/sB,MAAQoC,EAAK4d,OAAOQ,KAC7B/kB,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAE4mB,eAAe,SAAU,EAAI,CAC3D,EAEAvxC,EAAKwxC,gBAAkB,SAASC,EAAQrzB,GACpC,MAAY,SAATA,GAGQqzB,CACf,EAEAzxC,EAAK0xC,QAAU,WACX,OAAO1xC,EAAKyR,KAAK,EAAK,EAAErW,KAAK,WACzB4F,EAAc2wC,cAAc,CACxB/0C,SAAUH,EAAaI,SACvBgO,SAAU7K,EAAKpF,OAAOkI,GACtBkI,WAAYhL,EAAKlF,eAAegI,EACpC,CAAC,EACA1H,KAAK,WACFxC,EAAOkiB,KAAK9Z,EAAczG,KAAKq3C,WAAWn1C,EAAaI,UAAUmD,EAAKpF,OAAOkI,IAAI9C,EAAKlF,eAAegI,GAAG,CAC5G,CAAC,CACL,CAAC,CACL,CACP,CAzUD,IAAUzJ,EAAST,EAATS,EA6UPA,QA7UgBT,EA6UPA,OAJT,4IAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,qBAAsBo4C,CAAkB,C,4HC3UnC,SAAd6B,EAAwBp0C,EAAQhC,EAAI+B,EAAQkd,EAAStgB,EAAcsE,EAAS5G,EAAQ6G,GAWtF,IATA,IAAIhB,EAAOC,KAOPkyB,GALJnyB,EAAK4d,OAASzjB,EAAOQ,QACrBqF,EAAK4d,OAAOQ,KAAO,GACnBpe,EAAK4d,OAAOu2B,YAAc,GAC1Bn0C,EAAKwb,aAAe/e,EAENsgB,EAAQ,SAAS,EAAEhc,EAAS,cAAc,GAE/ChF,EAAI,EAAGA,EAAIo2B,EAAQh5B,OAAQ4C,CAAC,GACnCo2B,EAAQp2B,GAAG2F,aAAe3F,EAE5BiE,EAAKo0C,YAAc/6C,EAAQqB,KAAKy3B,CAAO,EACvCnyB,EAAKqyB,UAAYryB,EAAKrF,QAAUtB,EAAQqB,KAAKy3B,CAAO,EAEpDryB,EAAOgX,IAAI,oBAAqB,SAAUX,GACnC9c,EAAQ21B,OAAOhvB,EAAKrF,QAASqF,EAAKo0C,WAAW,GAC3Cx7C,EAAO6d,QAAQ,+EAA+E,GACjGN,EAAMmB,eAAe,CAC3B,CAAC,EAEDtX,EAAKyR,KAAO,WACV,OAAO3T,EAAGyH,IAAK,SAAUC,GAEvB,IAAK,IAAIzJ,EAAI,EAAGA,EAAIiE,EAAKrF,QAAQxB,OAAQ4C,CAAC,GACxC,IAAK,IAAIoD,EAAI,EAAGA,EAAIa,EAAKo0C,YAAYj7C,OAAQgG,CAAC,GACxCa,EAAKrF,QAAQoB,GAAG+G,KAAO9C,EAAKo0C,YAAYj1C,GAAG2D,IAAOzJ,EAAQ21B,OAAOhvB,EAAKrF,QAAQoB,GAAIiE,EAAKo0C,YAAYj1C,EAAE,GACvGqG,EAASlE,KAAKN,EACXiwC,WAAW,CACVliC,OAAQ,CAAEnS,SAAUH,EAAaI,QAAS,EAC1CtC,KAAM,CACJqC,SAAUH,EAAaI,SACvBjC,OAAQoF,EAAKrF,QAAQoB,EACvB,CACF,CAAC,CAAC,EAEV,OAAOyJ,CACT,EAAG,EAAE,CAAC,EACHpK,KAAK,WACJ4E,EAAKo0C,YAAc/6C,EAAQqB,KAAKsG,EAAczG,KAAKI,QAAQ8B,EAAaI,SAAS,EACjFmD,EAAKqyB,UAAYryB,EAAKrF,QAAUtB,EAAQqB,KAAKsF,EAAKo0C,WAAW,CAC/D,CAAC,CACL,EAEAp0C,EAAKkxC,QAAU,SAAU5lB,GACvB,IAKE6lB,EACAC,EANY,IAAV9lB,EACFtrB,EAAKqyB,UAAU/G,GAAO5pB,aAAe1B,EAAKqyB,UAAUryB,EAAKqyB,UAAUl5B,OAAS,GAAGuI,aAAe,GAK9F0vC,GADAD,EAAOnxC,EAAKqyB,UAAU/G,EAAQ,IACN5pB,aAExByvC,EAAKzvC,aAAe1B,EAAKqyB,UAAU/G,GAAO5pB,aAC1C1B,EAAKqyB,UAAU/G,GAAO5pB,aAAe0vC,EAEzC,EAEApxC,EAAKqxC,UAAY,SAAU/lB,GACzB,GAAIA,IAAUtrB,EAAKqyB,UAAUl5B,OAAS,EAGpC,IAAK,IAAI4C,EAFTiE,EAAKqyB,UAAU/G,GAAO5pB,aAAe,EAErB3F,EAAIiE,EAAKqyB,UAAUl5B,OAAQ4C,CAAC,GACtCiE,EAAKqyB,UAAUt2B,KAAOiE,EAAKqyB,UAAU/G,IACvCtrB,EAAKqyB,UAAUt2B,GAAG2F,YAAY,OAE/B,CACH,IAEAyvC,EAAOnxC,EAAKqyB,UAAU/G,EAAQ,GAC9B8lB,EAAmBD,EAAKzvC,aAExByvC,EAAKzvC,aAAe1B,EAAKqyB,UAAU/G,GAAO5pB,aAC1C1B,EAAKqyB,UAAU/G,GAAO5pB,aAAe0vC,CACvC,CACF,EAEApxC,EAAKq0C,YAAc,SAAUz5C,GACtBoF,EAAK4d,OAAOQ,MAASpe,EAAK4d,OAAOu2B,cAG/Bv5C,EAAO05C,UAUVz0C,EAAO2Q,GAAG,uBAAwB,CAAExY,GAAI4C,EAAOkI,EAAG,CAAC,EATnD9B,EACG4J,UAAU,CAAEhO,SAAUH,EAAaI,SAAUgO,SAAUjQ,EAAOkI,EAAG,CAAC,EAClE1H,KAAK,SAAUb,GACdyG,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,EAAG,EAAI,EAC/DzB,KAAK,WACJyE,EAAO2Q,GAAG,uBAAwB,CAAExY,GAAIuC,EAAKA,KAAKuI,EAAG,CAAC,CACxD,CAAC,CACL,CAAC,EAIT,EAEA9C,EAAKoe,KAAO,SAAUhmB,GACpB4H,EAAK4d,OAAOQ,KAAO,CAACpe,EAAK4d,OAAOQ,KAChCpe,EAAK4d,OAAOu2B,YAAc,GAC1B/7C,EAAEuyB,OAAO/sB,MAAQoC,EAAK4d,OAAOQ,KAC7B/kB,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAE4mB,eAAe,SAAU,EAAI,CACzD,EAEAvxC,EAAKwxC,gBAAkB,SAAUC,EAAQrzB,GACvC,MAAa,SAATA,GAGKqzB,CACX,EAEAzxC,EAAKu0C,gBAAkB,SAAUC,EAAiB7nB,GAChD,OAAO6nB,EAAgBv2C,OAAO,SAAU0yC,GAAK,OAAOA,EAAE5V,yBAA2BpO,CAAM,CAAC,CAC1F,EAEA3sB,EAAKm0C,YAAc,SAAU/7C,GAC3B4H,EAAK4d,OAAOQ,KAAO,GACnBpe,EAAK4d,OAAOu2B,YAAc,CAACn0C,EAAK4d,OAAOu2B,YACvC/7C,EAAEuyB,OAAO/sB,MAAQoC,EAAK4d,OAAOu2B,YAC7B96C,EAAQ+c,QAAQhe,EAAEuyB,MAAM,EAAE4mB,eAAe,SAAU,EAAI,CACzD,EAEAvxC,EAAKy0C,aAAe,SAAU75C,EAAQ85C,GAEpC,GADA95C,EAAO+5C,UAAYD,EACf95C,EAAO+5C,UACT,IAAK,IAAI54C,EAAI,EAAGA,EAAIiE,EAAKrF,QAAQxB,OAAQ4C,CAAC,GACpCiE,EAAKrF,QAAQoB,GAAG+G,KAAOlI,EAAOkI,KAChC9C,EAAKrF,QAAQoB,GAAG44C,UAAY,GAGpC,EAEA30C,EAAKkyC,YAAc,WACjBryC,EAAO2Q,GAAG,oBAAoB,CAChC,CACF,CAxIF,IAAWnX,EAAST,EAATS,EA4IRA,QA5IiBT,EA4IRA,OAJR,+FAEFS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,cAAei6C,CAAW,C,yEC1InB,SAAjBU,EAA2B/0C,EAAQC,EAAQkN,EAAY6G,EAAU1C,EAAS1U,EAAc4O,EAAQnQ,EAAUoL,EAAaxE,EAAoB5H,EAAa8G,EAAeoB,EAAqBrC,EAAmBvD,GAEjN,IAAIwD,EAAOC,KAEXD,EAAKqoC,WAAgD,IAAnChvC,EAAQ+c,QAAQjF,CAAO,EAAEwe,MAAM,EAAU,MAAQ,MACnE3vB,EAAK60C,WAAap4C,EAAaq4C,WACjC90C,EAAKxF,YAAciC,EACnBuD,EAAK+0C,SAAW75C,EAChB8E,EAAKK,SAAWN,EAAkBM,SAChCL,EAAKg1C,QAAUj1C,EAAkBof,QACjCnf,EAAKwjB,UAAYrS,EAAQT,aACzB1Q,EAAKi1C,iBAAmB,GACxBj1C,EAAKu0B,eAAiB/3B,EAErBtC,EAAYK,KAAK6C,YAAYX,EAAaI,WAC5CgX,EAAS,WAERvN,EAAYC,aAAa,CAAE3J,SAAUH,EAAaI,QAAS,EAAI,GAAO,CAAE6Z,iBAAkB,EAAK,CAAC,EAChGpQ,EAAY2C,UAAU,CAAErM,SAAUH,EAAaI,SAAUiM,YAAa,EAAG,EAAG,GAAO,CAAE4N,iBAAkB,EAAK,CAAC,EAC7G1V,EAAcC,WAAW,CAAErE,SAAUH,EAAaI,QAAS,EAAG,GAAO,CAAE6Z,iBAAkB,EAAK,CAAC,EAC/F5U,EAAmBC,gBAAgB,CAAEnF,SAAUH,EAAaI,QAAS,EAAI,GAAO,CAAE6Z,iBAAkB,EAAK,CAAC,CACxG,EAAG,GAAG,EAEV1W,EAAKk1C,YAAc,SAASj4C,GAC3B/C,EAAYiD,eAAe,CAC1BP,SAAUK,CACX,CAAC,EACA7B,KAAK,WACFlB,EAAYK,KAAK6C,YAAYH,GAC/BmF,EAAoBC,eAAe,CAAEzF,SAAUK,CAAS,CAAC,EACxD7B,KAAK,WACLiQ,EAAOq9B,KAAKzrC,CAAQ,EAEjBmF,EAAoB7H,KAAK+H,YAAYrF,GAAU,GAAGyG,MACpD7D,EAAO2Q,GAAG,0BAA2B,CAAEvT,SAAUA,CAAS,CAAC,EAE3D4C,EAAO2Q,GAAG,sBAAuB,CAAEvT,SAAUA,CAAS,CAAC,CACzD,CAAC,GAEDoO,EAAOq9B,KAAKzrC,CAAQ,EACpB4C,EAAO2Q,GAAG,sBAAuB,CAAEvT,SAAUA,CAAS,CAAC,EAEzD,CAAC,CACF,CACD,CA7CD,IAAU5D,IAiDPA,QAAST,OAJT,+NAEFS,EAAQX,OAAO,oBAAoB,EACjCuB,WAAW,iBAAkB26C,CAAc,C,6oCC3C5C,SAASO,EAAiBr1C,GA4FxB,SAASs1C,EAA8BC,GAErC,OAAO/mC,KAAKyc,MAD8B,IAAnBsqB,CACS,CAClC,CAEA,SAASC,EAAqCC,EAAQC,EAAWC,GACtC,aAArB,OAAOhoC,WAIXioC,CAMF,SAA8BH,EAAQE,GACpC,IAAMjwC,EAAW,CAAC+vC,EAAOI,YAAY,EAAGJ,EAAOK,cAAc,GAEzDC,EAAc,OAIhBA,EAHgDzqC,SAAjBqqC,EAAUz9C,GAGxBu9C,EAAOO,WAAW,EAElBC,QAAQt9C,QAAQg9C,EAAUz9C,EAAE,EAI/C,OADAwN,EAASlE,KAAKu0C,CAAc,EACrBE,QAAQxwC,IAAIC,CAAQ,CAC7B,EApBuB+vC,EAAQE,CAAS,EAAEr6C,KAAK,SAACO,GACtCpB,EAsBV,SAAgCy7C,EAAkBR,EAAWC,GAAW,QAC7CO,EAAgB,GAAlCj7C,EAAG,KAAEosC,EAAK,KAAEnvC,EAAE,KAEfuC,EAAO,CACX4b,MAAOq/B,EACPS,eAAgBC,EAChBC,UAAWp7C,EACXq7C,YAAajP,EACbkP,SAAUr+C,CACZ,EAE0BoT,SAAtBqqC,EAAUa,UACZ/7C,EAAyB,mBAAIk7C,EAAUa,SAEdlrC,SAAvBqqC,EAAUc,WACZh8C,EAAqB,eAAIk7C,EAAUc,UAEXnrC,SAAtBqqC,EAAUe,UACZj8C,EAAoB,cAAI66C,EAA8BK,EAAUe,OAAO,GAGzE,OAAOj8C,CACT,EA5CwCoB,EAAQ65C,EAAWC,CAAS,EAChEhoC,UAAUnM,KAAK/G,CAAI,CACrB,CAAC,CACH,CAvGW0F,KAENw2C,YAGI,CACL,CAAEtP,MAAO,8CAA+CnvC,GAAI,aAAc0+C,eAAgB,gBAAiB,EAC3G,CAAEvP,MAAO,yBAA0BnvC,GAAI,aAAc0+C,eAAgB,qBAAsB,EAC3F,CAAEvP,MAAO,mCAAoCnvC,GAAI,aAAc0+C,eAAgB,+BAAgC,EAC/G,CAAEvP,MAAO,6BAA8BnvC,GAAI,aAAc0+C,eAAgB,yBAA0B,EACnG,CAAEvP,MAAO,8BAA+BnvC,GAAI,aAAc0+C,eAAgB,0BAA2B,GAV9Fz2C,KAcN02C,UAAY,SAACF,GAAgB,IACxBz+C,EAAOy+C,EAAPz+C,GAKFu9C,EAAS,IAAIqB,IAHM,eAAe5+C,EAQjC,CACLA,GARyCA,EASzC6+C,UAAW,GACXC,SAAU,GACVC,qBAAsB,QACxB,CAVwD,EAoBlCxB,EAPcA,EAZPA,EAmBCkB,EAnBOA,EA4BjBlB,GARpBA,EAAOyB,GAAG,SAAU,SAACvB,GACnB31C,EAAOqsB,OAAO,WACZsqB,EAAYQ,OAAS,EACvB,CAAC,EACD3B,EAAqCC,EAAQ,aAAcE,CAAS,CACtE,CAAC,EAXYF,GAoBQA,GALrBA,EAAOyB,GAAG,OAAQ,SAACvB,GACjBH,EAAqCC,EAAQ,aAAcE,CAAS,CACtE,CAAC,EAhBaF,GAyBYA,GAL1BA,EAAOyB,GAAG,QAAS,SAACvB,GAClBH,EAAqCC,EAAQ,cAAeE,CAAS,CACvE,CAAC,EArBkBF,GAyBb2B,EAA4B,CAAC,GAAI,GAAI,GAAI,KAEzCC,EAAmB,GAEzB5B,EAAOyB,GAAG,aAAc,SAACvB,GACvByB,EAA0Bp0B,QAAQ,SAACs0B,GAMvC,IAA6C7B,EAAQE,EAAW0B,EAGxDE,EACAC,EAJqC/B,EALHA,EAKsB4B,EALHA,EAKqBI,EALHH,EAQvEC,EAFkBjC,GAD2BK,EALHA,GAMgBe,OAAO,GAErBe,EAC5CD,EAAoE,CAAC,IAAxCH,EAAiB9vC,QAAQkwC,CAAQ,EAEhEF,GAA0BC,IAC5BH,EAAiB71C,KAAKi2C,CAAQ,EAExBC,EAAoBD,EAAW,IACrC9B,EAAUe,QAAUgB,EAEpBlC,EAAqCC,EAAQ,mBAAoBE,CAAS,EAhB1E,CAAC,CACH,CAAC,CAhDH,EAmGA,IAAMS,EAAiB,OAwBzB,CAxJS78C,EAyJRA,QAAST,OAzJgB,qBAC1BS,EAAQX,OAAO,oBAAoB,EAChCuB,WAAW,aAAck7C,CAAgB,C,yECH5C,SAASp5B,EAAY7M,EAAgBiC,GAEnC,MAAO,CACLsmC,SAAU,IACVC,MAAO,CACLz8B,UAAW,IACXC,SAAU,IACVvU,UAAW,IACXI,OAAQ,IACR4wC,gBAAiB,IACjBn8B,aAAc,GAChB,EACAo8B,KAAM,SAAUF,EAAOthC,EAASyhC,GAC9B,IAAI73C,EAAO03C,EAAMI,QA2DjB,SAASrmC,EAAKyK,GACZ,GAAIA,GAASlc,EAAK+b,YAAYnH,OAY5B,MAXyC,YAArC5U,EAAKob,YAAYY,kBACnBhc,EAAKob,YAAYtY,GAAK,GAExBzJ,EAAQohB,OAAOza,EAAKob,YAClB,CACEY,gBAAiB,UACjBG,YAAanc,EAAKob,YAAYO,UAAY3b,EAAK2G,UAAU1I,OAAO,SAAUmD,GACxE,OAAOA,EAAE0B,KAAO9C,EAAKob,YAAYO,SACnC,CAAC,EAAE,GAAGQ,YAnFtB,MAoFc,CAAC,EAEIjN,EAAeuC,KAAK,CACzBlX,KAAM,CACJqC,SAAUoD,EAAKwb,aAAa3e,SAC5Boe,UACMjb,EAAKob,YAAYU,cACfM,EAAepc,EAAKib,UAAUhd,OAAO,SAAUmD,GACjD,OAAOA,EAAE0B,KAAO9C,EAAKob,YAAYtY,IAAM1B,EAAE0a,WAC3C,CAAC,GAEgB3iB,SACXkjB,EAAWD,EAAavkB,IAAI,SAAUuJ,GAExC,OADAA,EAAE0a,YAAc,GACT1a,CACT,CAAC,GAEQE,KAAKtB,EAAKob,WAAW,EAEvBiB,GAMF,CAACrc,EAAKob,YAEnB,CACF,CAAC,EACEhgB,KAAK,WACJ8T,EAAeC,oBAAoB,GAAI,EAAI,EACxC/T,KAAK,WAEJ,GAAK4E,EAAKob,YAAYtY,GAWpB9C,EAAKkb,SAASU,QAAU1M,EAAe3U,KAAK6U,iBAAiBnR,OAAO,SAAUmD,GAAK,OAAOA,EAAE0B,KAAO9C,EAAKob,YAAYtY,EAAI,CAAC,EAAE,QAR3H,IAAK,IAAI/G,EAAI,EAAGA,EAAImT,EAAe3U,KAAK6U,iBAAiBjW,OAAQ4C,CAAC,GAChE,GAAI,CAACiE,EAAKib,UAAUhd,OAAO,SAAUmD,GAAK,OAAOA,EAAE0B,KAAOoM,EAAe3U,KAAK6U,iBAAiBrT,GAAG+G,EAAI,CAAC,EAAE3J,OAAQ,CAC/G6G,EAAKkb,SAASU,QAAU1M,EAAe3U,KAAK6U,iBAAiBrT,GAC7D,KACF,CAOJiE,EAAKib,UAAY/L,EAAe3U,KAAK6U,iBACrCpP,EAAKmb,SAAW,GACZnb,EAAK23C,kBACP33C,EAAK23C,gBAAgBx8B,SAAW,GACpC,CAAC,CACL,CAAC,CAEP,CA1HAnb,EAAKmb,SAAW,CAACnb,EAAKib,UAAU9hB,OAChC6G,EAAKob,YAAc,GAEnBpb,EAAK0b,IAAM1b,EAAK2G,UAAU1I,OAAO,SAAUmD,GACzC,MAAyB,OAAlBA,EAAEsF,WACX,CAAC,EAAE,GAEE1G,EAAKib,UAAU9hB,SAClB6G,EAAKob,YAAc,CACjBO,UAAW3b,EAAK0b,IAAI5Y,EACtB,GAEG9C,EAAKkb,SAASU,UACbC,EAAY7b,EAAKib,UAAU9hB,OAAS6G,EAAKib,UAAUhd,OAAO,SAAUmD,GACtE,OAAOA,EAAE0a,WACX,CAAC,EAAI,KAEL9b,EAAKkb,SAASU,QAAWC,GAAaA,EAAU1iB,OAAU0iB,EAAU,GAChE7b,EAAKib,WAAajb,EAAKib,UAAU9hB,OAAU6G,EAAKib,UAAU,GAAK,MAGrEjb,EAAKoe,KAAO,SAAUxC,GACpB5b,EAAKmb,SAAW,GACZnb,EAAK23C,kBACP33C,EAAK23C,gBAAgBx8B,SAAW,IAClCnb,EAAK+3C,WAAa,QAClB/3C,EAAKob,YAAc/hB,EAAQqB,KAAKkhB,CAAO,EACvC5b,EAAK+b,YAAYi8B,aAAa,EAC9Bh4C,EAAK+b,YAAYk8B,cAAc,CACjC,EAEAj4C,EAAKk4C,OAAS,WACZl4C,EAAKmb,SAAW,GACZnb,EAAK23C,kBACP33C,EAAK23C,gBAAgBx8B,SAAW,IAClCnb,EAAK+3C,WAAa,OAClB/3C,EAAKob,YAAc,CACjBO,UAAW3b,EAAK0b,IAAI5Y,EACtB,EACA9C,EAAK+b,YAAYi8B,aAAa,EAC9Bh4C,EAAK+b,YAAYk8B,cAAc,CACjC,EAEAj4C,EAAKm4C,SAAW,SAAUv8B,GACpBhjB,EAAO6d,QAAQ,+CAA+C,IAChEzW,EAAKob,YAAc/hB,EAAQqB,KAAKkhB,CAAO,EACvC5b,EAAKob,YAAYla,SAAW,GAC5BlB,EAAKyR,KAAK,EAAI,EAElB,EAEAzR,EAAKyR,KAAOA,EACRzR,EAAK23C,kBACP33C,EAAK23C,gBAAgBlmC,KAAOA,EAC5BzR,EAAK23C,gBAAgB57B,YAAc/b,EAAK+b,YAqE5C,EACA/gB,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,yBACzEn9C,aAAc,UACdhB,WAAY,aAGZo+C,iBAAkB,EACpB,CACF,CAnJF,IAAWh/C,EAAST,EAATS,EAuJRA,QAvJiBT,EAuJRA,OAvJ2B,uCAqJrCS,EAAQX,OAAO,oBAAoB,EAChC4/C,UAAU,cAAev8B,CAAW,C,uECrJvC,SAASw8B,EAAY1kC,EAAU2kC,GAE7B,MAAO,CACLf,SAAU,IACVG,KAAM,SAAUF,EAAOthC,EAASyhC,GAC1BY,EAAQD,EAAOX,EAAMU,WAAW,EACpCb,EAAM/2C,OAAO83C,EAAO,SAAU76C,GACd,KAAVA,GACFiW,EAAS,WACPuC,EAAQ,GAAGwxB,MAAM,CACnB,CAAC,CAEL,CAAC,CACH,CACF,CACF,CAhBF,IAAWvuC,IAoBRA,QAAST,OApB2B,gCAkBrCS,EAAQX,OAAO,cAAc,EAC1B4/C,UAAU,cAAeC,CAAW,C,8ECnBzC,IAAWl/C,IAuBRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,qBArBX,WAEA,MAAO,CACNb,SAAU,IACVC,MAAO,CACN92B,MAAO,qBACR,EACG3mB,WAAY,WAEHgG,KAEN21B,QAAU,GAFJ31B,KAGNipB,MAAQ,CACd,EACA0uB,KAAM,SAASF,EAAOgB,EAAMb,EAAOc,GAClCA,EAAK/3B,MAAQ82B,EAAM92B,KACpB,CACD,CACD,CAGoD,C,mFCtBrD,IAAWvnB,IA0BRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,0BAxBX,WAEA,MAAO,CACNb,SAAU,KACVC,MAAO,GACPp+C,QAAS,sBACTU,SAAU,wHACV49C,KAAM,SAAUF,EAAOgB,EAAMb,EAAOe,GACnClB,EAAMxuB,MAAQ,WACb,OAAO0vB,EAAqB1vB,KAC7B,EAEAwuB,EAAM92B,MAAQ,WACb,OAAOg4B,EAAqBh4B,KAC7B,EAEA82B,EAAM9hB,QAAU,WACf,OAAOgjB,EAAqBhjB,OAC7B,CACD,CACD,CACD,CAG8D,C,oFCzB/D,IAAWv8B,IAkCRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,2BAhCX,WAEA,MAAO,CACNb,SAAU,KAIVn+C,QAAS,sBACTs+C,KAAM,SAAUF,EAAOgB,EAAMb,EAAOe,GACnC,GAA6C,UAA1C,OAAOf,EAAMgB,yBACf,MAAM,IAAIxgD,MAAM,6CAA6C,EAE9Dq/C,EAAM/2C,OAAOk3C,EAAMgB,yBAA0B,SAASj4C,GAErDg4C,EAAqB1vB,OADrBtoB,EAAWA,GAAY,IACezH,MACvC,CAAC,EAEDu/C,EAAK1B,GAAG,QAAS,WAChBU,EAAMvrB,OAAO,WACZysB,EAAqBhjB,QAAU,EAChC,CAAC,CACF,CAAC,EACD8iB,EAAK1B,GAAG,OAAQ,WACfU,EAAMvrB,OAAO,WACZysB,EAAqBhjB,QAAU,EAChC,CAAC,CACF,CAAC,CACF,CACD,CACD,CAGgE,C,kECjCjE,IAAWv8B,IAkBRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,SAhBX,WAEA,MAAO,CACNb,SAAU,IACVC,MAAO,CACNoB,QAAS,WACTC,OAAQ,SACT,EACAnB,KAAM,SAAUF,EAAOthC,GACnBA,EAAQ4iC,UAAUtB,EAAMoB,OAAO,EAC/BpB,EAAMqB,OAAS3iC,EAAQ4iC,UAAU,QAAQ,CAC7C,CACD,CACD,CAG4B,C,sEChB3B,SAASC,EAAWj8B,GAEpB,MAAO,CACNy6B,SAAU,IACVC,MAAO,CACM38C,IAAK,MAET,EACTf,SAAU,mJACV49C,KAAM,SAAUF,EAAOgB,EAAMb,GAChB,IAAI1kC,EAASulC,EAAKz1B,KAAK,QAAQ,EAAE,GAEjCrqB,EAAOmxC,iBAAiB,UAKxB,SAAwB5zB,GAIjBA,EAAM5b,KAAK2+C,eACV/lC,EAAOgmC,MAAMvpB,OAASzZ,EAAM5b,KAAK2+C,aAAe,MAGhD/iC,EAAM5b,KAAK6pB,UACXzF,WAAW,WACP/lB,EAAOwrB,SAASjO,EAAM5b,KAAK6pB,SAAShjB,EAAG+U,EAAM5b,KAAK6pB,SAAS5c,CAAC,CAChE,EAAG,GAAG,CAEd,EAlBmD,EAAK,EACxD5O,EAAOmxC,iBAAiB,SAmBxB,WACI52B,EAAOK,cAAc4lC,YAAY,CAAEC,mBAAoB,CAAEj4C,EAAGxI,EAAO0gD,QAAS9xC,EAAG5O,EAAO2gD,OAAQ,CAAE,EAAG,GAAG,CAC1G,EArB4C,EAAK,CAsB9D,CACD,CACD,CAtCD,IAAWlgD,EAAST,EAATS,EA0CRA,QA1CiBT,EA0CRA,OA1C2B,mBAwCtCS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,aAAcW,CAAU,C,yEC1CnC,SAASO,EAAYC,GAYnB,MAPgB,CACd7B,KAQF,SAAcF,EAAOthC,EAASyhC,GAC5B4B,EAASrjC,EAAQ2E,KAAK28B,EAAMgC,OAAO,EAAEC,SAAS,CAAC,EAAEjC,EAAMnpB,OAAO,CAChE,EATEkpB,SAAU,IACVC,MAAO,CACLgC,QAAS,GACX,CACF,CAMF,CAvBArgD,QACGX,OAAO,oBAAoB,EAC3B4/C,UAAU,cAAekB,CAAW,EAEvCA,EAAY3R,QAAU,CAAC,W,oECGzB,IAAWxuC,EAAiB+R,EAAjB/R,EAmDRA,QAnDyB+R,EAA5B,KAmDYxS,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,WAjDZ,WAEC,MAAO,CACNb,SAAU,IACVC,MAAO,CACNkC,cAAe,YACfC,UAAW,kBACZ,EACG5/C,WAAY,CAAF,SAAE,SAAU6F,GAExB,IAAIE,EAAOC,KACXD,EAAK45C,cAAgB95C,EAAO85C,cAEpB95C,EAAO+5C,YAAczuC,GACvBtL,EAAOa,OAAO,gBAAiB,WAC7Bb,EAAO+5C,UAAY75C,EAAK85C,SAASh6C,EAAO85C,aAAa,CACvD,EAAG,EAAI,EAGb55C,EAAK85C,SAAW,SAAUF,GACzB,IAAI1wB,EAAQ,EAsBZ,OApBA,SAAU6wB,EAAQ97C,GACjB,IAAI,IAAI6J,KAAO7J,EACd,GAAoD,oBAAjDzF,OAAOg1B,UAAUpgB,SAASw5B,MAAM3oC,EAAO6J,EAAI,EAC7CiyC,EAAQ97C,EAAO6J,EAAI,OAEnB,GAAoD,mBAAjDtP,OAAOg1B,UAAUpgB,SAASw5B,MAAM3oC,EAAO6J,EAAI,EAC7C,IAAI,IAAI/L,EAAI,EAAGA,EAAIkC,EAAO6J,GAAK3O,OAAQ4C,CAAC,IACpCkC,EAAO6J,GAAK/L,GAAGi+C,eAAiB5uC,GAC/BnN,EAAO6J,GAAK/L,GAAGk+C,eAAiBh8C,EAAO6J,GAAK/L,GAAGi+C,eAIlD9wB,CAAK,QAIPA,CAAK,EAER,EAAE0wB,CAAa,EAET1wB,CACR,CACD,EACD,CACD,CAGgC,C,yEClDjC,IAAW7vB,IAwBRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,gBAtBX,WAEA,MAAO,CACNb,SAAU,KACVn+C,QAAS,YACNs+C,KAAM,SAAUF,EAAOthC,EAASyhC,EAAOqC,GACzC9jC,EAAQ,GAAG+jC,QAAU,SAAU/hD,GAC9Bs/C,EAAMvrB,OAAO,WACZ,IAAI,IAAIiuB,KAAKF,EAAWN,cACvB,IAAI,IAAIzhD,KAAK+hD,EAAWN,cAAcQ,GACrC,OAAOF,EAAWN,cAAcQ,GAAGjiD,GAErCu/C,EAAM5tB,WAAW,OAAO,CACzB,CAAC,EAED1xB,EAAEiiD,gBAAgB,CACnB,CACD,CACD,CACD,CAG0C,C,yECvB3C,IAAWhhD,IAmGRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,gBAjGZ,WAEC,MAAO,CACNb,SAAU,IACVn+C,QAAS,YACNW,WAAY,CAAF,SAAE,SAAU6F,GAExB,IAGU85C,EAHN55C,EAAOC,KACXH,EAAOw6C,cAAgB,GAEbV,EAwEP95C,EAAOw6C,cAvEJt6C,EAAK2oC,aAAe,SAAUrG,EAAQiY,EAAWC,EAAaC,EAAaR,EAAeS,EAAWV,GAEzG,GAAIO,EAsBC,CAIJ,IAAIlX,EAHAuW,EAActX,KACjBsX,EAActX,GAAU,IAIzB,IAAI,IAAIvmC,EAAI,EAAGA,EAAI69C,EAActX,GAAQnpC,OAAQ4C,CAAC,GACjD,GAAG69C,EAActX,GAAQvmC,GAAGy+C,cAAgBA,EAAY,CACnDP,GAAmC,IAAlBA,EAOpBL,EAActX,GAAQvmC,GAAGk+C,cAAgBA,GANzCL,EAActX,GAAQzX,OAAO9uB,EAAG,CAAC,EAE7B69C,EAActX,GAAQnpC,QACzB,OAAOygD,EAActX,IAKvBe,EAAQ,GACR,KACD,CAGE,CAACA,GAAS4W,GACZL,EAActX,GAAQhhC,KAAK,CAC1Bi5C,UAAWA,EACXC,YAAaA,EACbC,YAAaA,EACbR,cAAeA,EACfD,aAAcA,CACf,CAAC,CACG,MAnDFU,GAfV,SAeuBV,EACfJ,EAActX,GAAU,CAAC,CACxB2X,cAAeA,EACfS,UAAWA,EACXV,aAAcA,CACf,GAGaC,GAAmC,IAAlBA,EAGpBL,EAActX,GADLoY,EACe,CAAC,CACvBT,cAAeA,EACfS,UAAWA,EACXV,aAAcA,CAChB,GAEwBC,EARxB,OAAOL,EAActX,EA2ClC,EAEAtiC,EAAK26C,YAAc,SAASrY,EAAQkY,GAC7B,GAAIZ,GAActX,GAUhB,OAAOsX,EAActX,GATrB,GAA+D,mBAA3D9pC,OAAOg1B,UAAUpgB,SAASw5B,MAAMgT,EAActX,EAAO,EACvD,IAAK,IAAIvmC,EAAI,EAAGA,EAAI69C,EAActX,GAAQnpC,OAAQ4C,CAAC,GACjD,GAAI69C,EAActX,GAAQvmC,GAAGy+C,cAAgBA,EAC3C,OAAOZ,EAActX,GAAQvmC,GAAGk+C,aAQ/C,CAEF,GACArC,KAAM,SAASF,EAAOthC,EAASyhC,EAAO+C,GAClCA,EAAWhB,cAAc/B,EAAMgD,gBACjCxhD,EAAQohB,OAAOi9B,EAAM4C,cAAeM,EAAWhB,cAAc/B,EAAMgD,cAAc,EAElFD,EAAWhB,cAAc/B,EAAMgD,eAAiBnD,EAAM4C,cAEtD5C,EAAMkC,cAAgBlC,EAAMkC,eAAiB,GAC7ClC,EAAMkC,cAAc/B,EAAMgD,eAAiBnD,EAAM4C,aAClD,CACD,CACD,CAG0C,C,+EClG3C,IAAWjhD,IAoBRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,sBAlBX,WAEA,MAAO,CACNb,SAAU,IACVn+C,QAAS,YACNs+C,KAAM,SAAUF,EAAOthC,EAASyhC,EAAOqC,GACzC,IAAIY,EAAS1kC,EAAQ2kC,SAAS,GAAG,EAC7BC,EAAcnD,EAAMoD,QAExBvD,EAAM/2C,OAAO,kBAAoBk3C,EAAMgD,cAAgB,KAAM,WAC5D,IAAI3xB,EAAQgxB,EAAWJ,SAASpC,EAAMkC,cAAc/B,EAAMgD,cAAc,EACxEC,EAAOI,KAAKF,GAAe9xB,EAAS,KAAOA,EAAQ,IAAO,GAAG,CAC9D,EAAG,EAAI,CACR,CACD,CACD,CAGsD,C,0EClBrD,SAASiyB,EAAetnC,GAExB,MAAO,CACN4jC,SAAU,IACVC,MAAO,CACNpV,OAAQ,kBACRiY,UAAW,sBACXC,YAAa,wBACbC,YAAa,8BACbC,UAAW,4BACXU,OAAQ,yBACJpB,aAAc,+BACdqB,kBAAmB,mCACxB,EACA/hD,QAAS,iBACNs+C,KAAM,SAAUF,EAAOthC,EAASyhC,EAAOyD,GAGzC,SAASvsB,EAAKwsB,GACb,IAAIr1B,EAAWo1B,EAAgBX,YAAYjD,EAAMpV,OAAQoV,EAAM8C,WAAW,EAEtEe,GAtBT,SAsBkB7D,EAAMsC,cAA+B9zB,GACjD9P,EAAQ,GAAGxY,MAAQ29C,EAAQ,GAAKr1B,EAG7B,YAAa9P,EAAQ,KACvBA,EAAQ,GAAGwU,QAAU,CAAC,CAAC1E,GAErBq1B,GACFnlC,EAAQm7B,eAAe,SAAU,EAAI,GA9B5C,SAgCamG,EAAMsC,eACb5jC,EAAQ,GAAGxY,MAAQ85C,EAAMsC,aAEtB,YAAa5jC,EAAQ,KAChBA,EAAQ,GAAGwU,QAAU8sB,EAAMsC,cAE7BtC,EAAM8D,UAAY,GAClBplC,EAAQm7B,eAAe,SAAU,EAAI,EACrCmG,EAAM8D,UAAY,GAE1B,CAEI,SAASJ,EAAOhjD,GAEVs/C,EAAM0D,QACR1D,EAAM0D,OAAOhjD,EAAGgjD,EAAOv6C,SAAUzI,EAAEuyB,OAAO/sB,MAAO85C,EAAM+D,QAAQ,EAGtEH,EAAgB3S,aACf+O,EAAMpV,OACNoV,EAAM6C,UACN7C,EAAM8C,YACN9C,EAAM+C,YACNriD,EAAEuyB,OAAO/sB,MACT85C,EAAMgD,UACNhD,EAAMsC,YAAY,EAGV,CAACtC,EAAM8D,WAAa9D,EAAM2D,mBAAqBD,EAAOv6C,WAAazI,EAAEuyB,OAAO/sB,OACrD,aAArB,OAAO6P,WACTA,UAAUnM,KAAK,CAAE,MAAS,eAAgB,cAAiB,QAAS,YAAe,eAAiBo2C,EAAM2D,kBAAkBK,MAAO,WAAchE,EAAM2D,kBAAkBM,KAAM,CAAC,EAGpLP,EAAOv6C,SAAWzI,EAAEuyB,OAAO/sB,KACjC,CAjDI85C,EAAM8D,UAAY,GAqDtB3nC,EAASkb,CAAI,EAET2oB,EAAM5gC,IAAI,QAAS,WAEjBiY,EADA2oB,EAAM8D,UAAY,EACT,EACT9D,EAAM8D,UAAY,EACxB,CAAC,EAEDplC,EAAQ,GAAGwlC,SAAW,SAAUxjD,EAAGyjD,GAC9BA,EAKHT,EAAOhjD,CAAC,EAJRs/C,EAAMvrB,OAAO,WACZivB,EAAOhjD,CAAC,CACT,CAAC,CAGH,CACD,CACD,CACD,CAxFD,IAAWiB,IA4FRA,QAAST,OA5F2B,uBA0FtCS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,iBAAkB6C,CAAc,C,yEC3F7C,IAAW9hD,IA4BRA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EACpC4/C,UAAU,gBA1BX,WAEM,MAAO,CACHb,SAAU,IACVC,MAAO,CACHn9C,KAAM,iBACNu+C,QAAS,uBACb,EACAlB,KAAM,SAAUF,EAAOthC,GACnB,IAAI0iC,EAAUpB,EAAMoB,QAEpBpB,EAAM/2C,OAAO,OAAQ,SAASC,GAZ9C,UAgBgCrG,EAHpBqG,IAIiCrG,EAAKpB,QACd,IAAI2iD,SAAS1lC,EAAQ,EAAE,EAC7B2lC,KAAKxhD,EAAMu+C,CAAO,CAL5C,CAAC,CAQO,CACJ,CACJ,CAGuC,C,wEC1BzC,SAASkD,EAAWnoC,EAAU2kC,GAE5B,MAAO,CACLf,SAAU,IACVn+C,QAAS,UACTo+C,MAAO,CACLuE,UAAW,WACXC,aAAc,eACdC,UAAW,IACXC,UAAW,IACXC,mBAAoB,KACpBC,eAAgB,KAChBC,WAAY,KACZt3C,YAAa,IACbu3C,UAAW,IACXC,OAAQ,IACV,EACAxiD,WAAY,aAEZgB,aAAc,aACdo9C,iBAAkB,GAClBr9C,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,+BACzER,KAAM,SAAUF,EAAOthC,EAASyhC,EAAO6E,EAASC,GAC9C,IAAI38C,EAAO03C,EAAMsE,WAEM,aAAnBh8C,EAAKw8C,WACFx8C,EAAKy8C,SACRz8C,EAAKy8C,OAAS,IAGlBz8C,EAAK48C,QAAU,GAEf/oC,EAAS,WACPuC,EAAQymC,SAAW,CAAC,EACpB,IAAI/S,EAAQ1zB,EAAQ6M,KAAK,OAAO,EAC5B6mB,GAASA,EAAM,KACjBA,EAAM,GAAGgT,OAAS,WACZ98C,EAAK48C,UACP58C,EAAK48C,QAAU,GACf58C,EAAK+8C,QAAU,GAEnB,EAEAjT,EAAM,GAAGkT,QAAU,WACZh9C,EAAK+8C,UACR/8C,EAAK48C,QAAU,GACf58C,EAAK+8C,QAAU,GAEnB,EAEJ,EAAG,CAAC,EAEJ3mC,EAAQ6mC,KAAK,QAAS,WACpBppC,EAAS,WACP,IAAIi2B,EAAQ1zB,EAAQ6M,KAAK,OAAO,EAChC,GAAI6mB,GAASA,EAAM,GACjB,GAAK9pC,EAAK48C,SAAY58C,EAAK+8C,QAY/B,IATMG,IAMmBpT,EANDA,EAAM,GAO1BqT,EAAO/pC,SAASy2B,iBAAiB,yCAAyC,EAC1EuT,EAAU,GACLrhD,EAAI,EAAGA,EAAIohD,EAAKhkD,OAAQ4C,CAAC,GAAI,CACpC,GAAIqhD,GAAW,CAACD,EAAKphD,GAAGshD,SAGtB,OAbEH,KAWFC,EAAKphD,GAAG6rC,MAAM,EACd5nC,EAAK+8C,QAAU,IAENI,EAAKphD,GAAG2E,OAASopC,EAAMppC,OAChC08C,EAAU,GAEd,MAnBMtT,EAAM,GAAGlC,MAAM,CAKrB,EAAG,CAAC,CACN,CAAC,CAeH,CACF,CACF,CAjFF,IAAWvuC,EAAST,EAATS,EAqFRA,QArFiBT,EAqFRA,OArF2B,gCAmFrCS,EAAQX,OAAO,cAAc,EAC1B4/C,UAAU,aAAc0D,CAAU,C,sECpFvC,IAAW3iD,IAkBRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,aAhBX,WAEA,MAAO,CACNb,SAAU,IACVC,MAAO,CACM/Q,SAAU,aACvB,EACGiR,KAAM,CAAF,kBAAE,SAAUF,EAAOthC,GAEtBA,EAAQ4gC,GAAG,YAAaU,EAAM/Q,QAAQ,EACtCvwB,EAAQ4gC,GAAG,QAASU,EAAM/Q,QAAQ,CACtC,EACD,CACD,CAGoC,C,+EChBnC,SAAS2W,EAAYnsC,EAASnE,EAAYwI,EAAWgtB,EAAc+a,GAEjE,MAAO,CACL9F,SAAU,IACVC,MAAO,CACL7nC,OAAQ,GACV,EACA+nC,KAAM,SAAUF,EAAOthC,EAASyhC,GACnBH,EAAM8F,UAEjB9F,EAAM/2C,OAAO,mBAAoB,SAAUm+B,EAAQC,GAC7CD,GAA0B,EAAhBA,EAAO3lC,QAAcP,EAAO6U,WACtC7U,EAAO6U,UAAUnM,KAAK,CACpB6U,MAAO,aACPuB,WAAY,CACVC,MAAOnC,EAAUza,IAAI,EACrBuB,UAAW0Q,EAAW1Q,UACtBmhD,aAAc3e,EAAO,EACvB,CACF,CAAC,CAEP,CAAC,CACH,EACA9jC,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,+BACzEn9C,aAAc,YACdhB,WAAY,aAGZo+C,iBAAkB,EACpB,CACF,CA/BF,IAAWh/C,EAAST,EAATS,EAmCRA,QAnCiBT,EAmCRA,OAnC2B,qEAiCrCS,EAAQX,OAAO,yBAAyB,EACrC4/C,UAAU,cAAegF,CAAW,C,6ECjCvC,SAASI,EAAUvsC,EAASqxB,EAAcptB,EAAmBvB,EAAU7G,GAErE,MAAO,CACLyqC,SAAU,IACVC,MAAO,CACLiG,SAAU,KACVlb,eAAgB,KAChBmb,oBAAqB,KACrBC,mBAAoB,KACpBC,cAAe,KACfC,oBAAqB,KACrBC,aAAc,IAChB,EACApG,KAAM,SAAUF,EAAOthC,EAASyhC,GAC9B,IAAI73C,EAAO03C,EAAMuG,UAEjBj+C,EAAKk+C,aAAe,GAEhBl+C,EAAKg+C,aACPh+C,EAAKm+C,kBAAoB,GAGzBn+C,EAAKo+C,4BAA8B,GAGrCp+C,EAAK6P,OAAS2yB,EAAajoC,KAAK0rC,SAE5B5sC,EAAQglD,WAAWr+C,EAAKyiC,cAAc,GAAK,CAACziC,EAAK49C,sBACnD59C,EAAKs+C,mBAAqB,IAG5Bt+C,EAAKu+C,6BAA+B,WAClCv+C,EAAK6P,OAAS,KACd2yB,EAAajoC,KAAK0rC,SAAW,KAExBjmC,EAAKw+C,0BAKVx+C,EAAKy+C,iBAAmB,mCAAmCC,KAAK1+C,EAAKw+C,wBAAwB,EACzFx+C,EAAKy+C,kBACPz+C,EAAK2+C,YAAY,YAAY,EAC7B3+C,EAAK4+C,eAAiB5+C,EAAKw+C,2BAG3Bx+C,EAAK2+C,YAAY,UAAU,EAC3B3+C,EAAK29C,SAAW39C,EAAKw+C,2BAXrBx+C,EAAK6P,OAAS,CAAC,kEAanB,EAEA7P,EAAK6+C,cAAgB,WACnB7+C,EAAK6P,OAAS,KACd2yB,EAAajoC,KAAK0rC,SAAW,KAExBjmC,EAAK29C,UAAa39C,EAAKua,SAK5BioB,EAAaqc,cAAc,CACzB9vC,OAAQ,CACN+vC,SAAU9+C,EAAK29C,SACfpjC,SAAUva,EAAKua,SACf3d,SAAU4lC,EAAajoC,KAAKmoC,MAAOF,EAAajoC,KAAKmoC,KAAK9lC,UAAiB,GAC3EomC,YAAaR,EAAajoC,KAAKooC,WAAYH,EAAajoC,KAAKooC,UAAU90B,aAAmB,CAC5F,CACF,CAAC,EAAEzS,KAAK,SAAUb,GAChB,IAEQspC,EAFJtpC,IACEA,EAAK0oC,SAAW1oC,EAAKyqC,aACnBnB,EAA6E,MAAtEzuB,EAAkByB,SAASzB,EAAkByB,SAAS1d,OAAS,IAAsC,MAAxBoB,EAAKyqC,YAAY,GACrG5vB,EAAkByB,SAAWtc,EAAKyqC,YAAYlB,UAAU,CAAC,EACzD1uB,EAAkByB,SAAWtc,EAAKyqC,YAEtCpsC,EAAOK,SAAW4qC,GACTtpC,EAAKoV,QAA+B,EAArBpV,EAAKoV,OAAOxW,SACpC6G,EAAK6P,OAAStV,EAAKoV,QAGzB,CAAC,EAvBC3P,EAAK6P,OAAS,CAAC,4DAwBnB,EAEA7P,EAAK++C,gBAAkB,WACrBvc,EAAajoC,KAAK0rC,SAAW,KACxBjmC,EAAK4+C,gBAAmB5+C,EAAKg/C,UAKlCxc,EAAauc,gBAAgB,CAC3BhwC,OAAQ,CACN6vC,eAAgB5+C,EAAK4+C,eACrBK,SAAUj/C,EAAKg/C,SACjB,CACF,CAAC,EAAE5jD,KAAK,SAAUb,GAChB,IAEQspC,EAFJtpC,IACEA,EAAK0oC,SAAW1oC,EAAKyqC,aACnBnB,EAA6E,MAAtEzuB,EAAkByB,SAASzB,EAAkByB,SAAS1d,OAAS,IAAsC,MAAxBoB,EAAKyqC,YAAY,GACrG5vB,EAAkByB,SAAWtc,EAAKyqC,YAAYlB,UAAU,CAAC,EACzD1uB,EAAkByB,SAAWtc,EAAKyqC,YAEtCpsC,EAAOK,SAAW4qC,GACTtpC,EAAKoV,QAA+B,EAArBpV,EAAKoV,OAAOxW,SACpC6G,EAAK6P,OAAStV,EAAKoV,QAGzB,CAAC,EArBC3P,EAAK6P,OAAS,CAAC,8EAsBnB,EAEA7P,EAAK2+C,YAAc,SAAUp6B,EAAM26B,GACjC,OAAQ36B,GACN,IAAK,qBACHvkB,EAAKo+C,4BAA8B,GACnCp+C,EAAKm+C,kBAAoB,GACzBn+C,EAAKm/C,oBAAsB,GAEtBD,IACHl/C,EAAK6P,OAAS,MAEhB,MACF,IAAK,aACH7P,EAAKm/C,oBAAsB,GAC3Bn/C,EAAKm+C,kBAAoB,GACzBn+C,EAAKo+C,4BAA8B,GAEnCp+C,EAAK29C,SAAW,KAChB39C,EAAKua,SAAW,KACX2kC,IACHl/C,EAAK6P,OAAS,MAEhB7P,EAAKo/C,cAAgB,GACrBp/C,EAAKyjC,cAAgB,GACrBzjC,EAAKq/C,oBAAsB,GAC3B,MACF,IAAK,WACHr/C,EAAKm/C,oBAAsB,GAC3Bn/C,EAAKm+C,kBAAoB,GACzBn+C,EAAKo+C,4BAA8B,GAEnCp+C,EAAK4+C,eAAiB,KACtB5+C,EAAKg/C,UAAY,KACZE,IACHl/C,EAAK6P,OAAS,MAEhB7P,EAAKq/C,oBAAsB,GAE3Br/C,EAAKyjC,cAAgB,EAAEzjC,EAAKo/C,cAAgB,CAACp/C,EAAKg+C,aAG5C,CAEZ,EAEAh+C,EAAK89C,cAAgB,oBACvB,EACA9iD,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,6BACzEn9C,aAAc,YACdhB,WAAY,aAGZo+C,iBAAkB,EACpB,CACF,CAnKF,IAAWh/C,EAAST,EAATS,EAuKRA,QAvKiBT,EAuKRA,OAvK2B,iFAqKrCS,EAAQX,OAAO,yBAAyB,EACrC4/C,UAAU,YAAaoF,CAAS,C,qFC/KrC,aAUE,SAAS4B,EAAkBnuC,EAASnE,EAAYw1B,EAAc+a,GAqJ5D,MAlJkB,CAChB9F,SAAU,IACVC,MAAO,CACL/Q,SAAU,GACZ,EACAiR,KAAM,SAAUF,EAAOthC,EAASyhC,GAC9B,IAAI73C,EAAO03C,EAAM6H,SAEjBv/C,EAAKyoC,WAAa,GAClBzoC,EAAKw/C,UAAY,GAEjBx/C,EAAKy/C,UAAY,GAEjBz/C,EAAK6P,OAAS2yB,EAAajoC,KAAK0rC,SAEhCzD,EAAakd,eAAe,CAC1BC,SAAU3/C,EAAK2/C,UAAY,EAC7B,CAAC,EAAEvkD,KAAK,WACN,IAGMwkD,EAHFpd,EAAajoC,KAAKgB,OACpByE,EAAK6/C,SAAWrd,EAAajoC,KAAKgB,MAE9BqkD,EAAYx8B,EAAEnlB,OAAO+B,EAAK6/C,SAAU,SAAUlP,GAChD,OAAOvtB,EAAEoY,IAAIx7B,EAAK6/C,SAAU,SAAUC,GAAM,OAAOA,EAAGjjD,WAAa8zC,EAAE9zC,UAAYijD,EAAG/gC,cAAc0B,KAAK,IAAMkwB,EAAE5xB,cAAc0B,KAAK,CAAG,CAAC,CACxI,CAAC,EAEDzgB,EAAK6/C,SAAWz8B,EAAEvrB,IAAImI,EAAK6/C,SAAU,SAAUlP,GAC7C,IAAIoP,EAAU1mD,EAAQqB,KAAKi2C,CAAC,EAE5B,GAAIvtB,EAAEnlB,OAAO2hD,EAAW,SAAUpjC,GAAK,OAAOA,EAAE3f,WAAakjD,EAAQljD,QAAU,CAAC,EAC9E,IACE,IAAImjD,EAAW,IAAI1kD,KAAKykD,EAAQE,YAAY,EACxCC,EAAQF,EAASrxB,SAAS,EAAI,EACH,IAA3BqxB,EAAStxB,YAAY,EACvBqxB,EAAQhhC,cAAgB4xB,EAAE5xB,cAE1BghC,EAAQhhC,cAAgB4xB,EAAE5xB,cAAgB,KAAOmhC,EAAQ,IAAMF,EAAStxB,YAAY,EAAI,GAG5F,CAFE,MAAOt2B,GACP2nD,EAAQhhC,cAAgB4xB,EAAE5xB,aAC5B,CAGF,OAAOghC,CACT,CAAC,EAEGxC,GAAQA,EAAK1gD,UAAYumB,EAAEoY,IAAIx7B,EAAK6/C,SAAU,SAAUlP,GAAK,OAAOA,EAAE9zC,WAAa0gD,EAAK1gD,QAAU,CAAC,IACrGmD,EAAK2/C,SAAWpC,EAAKx+B,eAAiB,KACtC/e,EAAKpD,SAAW2gD,EAAK1gD,WAIvBmD,EAAK6/C,SAAW,EACpB,CAAC,EAEDnI,EAAM/2C,OAAO,oBAAqB,SAAUm+B,EAAQC,GAClD,IAAIohB,EAAQ/8B,EAAEg9B,KAAKh9B,EAAEnlB,OAAO+B,EAAK6/C,SAAU,SAAUlP,GACnD,OAAOA,EAAE5xB,gBAAkB+f,CAC7B,CAAC,EAAG,SAAU4D,GACZ,OAAOA,EAAK7lC,QACd,CAAC,EACDmD,EAAKw/C,UAAYW,GAA0B,IAAjBA,EAAMhnD,OAE5B6G,EAAKw/C,WACPx/C,EAAKpD,SAAWujD,EAAM,GAAGtjD,SAEzBmD,EAAKqgD,iBAAmB,GACxB7d,EAAa8d,wBAAwB,CACnC1jD,SAAUoD,EAAKpD,QACjB,CAAC,EAAExB,KAAK,WACFonC,EAAajoC,KAAKgmD,aACpBvgD,EAAKwgD,cAAgBhe,EAAajoC,KAAKgmD,WAEvCvgD,EAAKwgD,cAAgBp9B,EAAEvrB,IAAImI,EAAKwgD,cAAe,SAAU7P,GACnD8P,EAAepnD,EAAQqB,KAAKi2C,CAAC,EAMjC,OAJI8P,EAAaC,cAAqD,KAArCD,EAAaC,aAAajgC,KAAK,IAC9DggC,EAAaE,cAAgBF,EAAaE,cAAgB,sBAAwBF,EAAaC,aAAe,KAGzGD,CACT,CAAC,EAEDzgD,EAAK4gD,eAAiB,GAE1B,CAAC,EAAEjqC,QAAQ,WACT3W,EAAKqgD,iBAAmB,GAEnBrgD,EAAKwgD,eAAkBp9B,EAAEoY,IAAIx7B,EAAKwgD,cAAe,SAAUpoD,GAAK,OAAOA,EAAEuoD,gBAAkB3gD,EAAK6gD,aAAe,CAAC,IACnH7gD,EAAK6gD,cAAgB,MAEnB7gD,GAAKw/C,WAAex/C,EAAKwgD,eAA+C,IAA9BxgD,EAAKwgD,cAAcrnD,OAG/D6G,EAAK6P,OAAS,GAFd7P,EAAK6P,OAAS,CAAC,kMAGnB,CAAC,IAED7P,EAAKpD,SAAW,KAChBoD,EAAK6gD,cAAgB,KACrB7gD,EAAKwgD,cAAgB,KACrBxgD,EAAK6P,OAAS,GAElB,CAAC,EAED6nC,EAAM/2C,OAAO,yBAA0B,SAAUm+B,EAAQC,GACvD,IAAIohB,EAAQ/8B,EAAEnlB,OAAO+B,EAAKwgD,cAAe,SAAUpoD,GAAK,OAAOA,EAAEuoD,gBAAkB7hB,CAAQ,CAAC,EAC5F9+B,EAAK8gD,eAAiBX,GAA0B,IAAjBA,EAAMhnD,OAErC6G,EAAK+gD,YAAcZ,GAAwB,EAAfA,EAAMhnD,OAElC6G,EAAK6N,YAAc7N,EAAK8gD,eAAiBX,EAAM,GAAGr9C,GAAK,IACzD,CAAC,EAED9C,EAAK4T,KAAO,WACV5T,EAAK6P,OAAS,KACd2yB,EAAajoC,KAAK0rC,SAAW,KAEzBjmC,EAAK+gD,YACP/gD,EAAK6P,OAAS,CAAC,gMAGP7P,EAAKpD,UAAaoD,EAAK6N,aAKjC20B,EAAajoC,KAAKmoC,KAAO,CACvBid,SAAU3/C,EAAK2/C,SACf/iD,SAAUoD,EAAKpD,QACjB,EAEA4lC,EAAajoC,KAAKooC,UAAY,CAC5Bke,cAAe7gD,EAAK6gD,cACpBhzC,YAAa7N,EAAK6N,WACpB,EAEIxU,EAAQglD,WAAWr+C,EAAK2mC,QAAQ,GAClC3mC,EAAK2mC,SAAS,GAfd3mC,EAAK6P,OAAS,CAAC,+KAiBnB,CACF,EACA7U,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,qCACzEn9C,aAAc,WACdhB,WAAY,aAGZo+C,iBAAkB,EACpB,CAEF,CAvJF,IAAWh/C,EAAST,EAATS,EA2JRA,QA3JiBT,EA2JRA,OA3J2B,yDAyJrCS,EAAQX,OAAO,yBAAyB,EACrC4/C,UAAU,oBAAqBgH,CAAiB,C,2HCzJnD,SAAS0B,EAAQh0C,GAKf,IAAMsrC,EAAY,CAChBb,SAAU,IACVC,MAAO,CACL59C,MAAO,IACPmnD,WAAY,GACd,EACAjmD,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,qBACzEn+C,WASF,WAGE,IAAM+F,EAAOC,KAEbD,EAAKkhD,QAAU,WACblhD,EAAKihD,WAAa5nD,EAAQ8nD,UAAUnhD,EAAKihD,UAAU,GAAKjhD,EAAKihD,UAC/D,EAEAjhD,EAAKohD,qBAAuB,WAC1B,MAAO,CACL3P,QAKE91C,EAAS,GAEL4E,EAAiByM,EAAjBzM,aAEN5E,EADE4E,EAC2C,GAApCA,EAAa8G,QAAQrH,EAAKlG,KAAK,EAGnC6B,EAXP,EAGF,IACMA,EAEI4E,CALV,CAYF,EAjCEtF,aAAc,UACd28C,KAkCF,SAAcF,EAAOthC,IACNkiC,EAAUr9C,aAAey8C,EAAMY,EAAUr9C,cAAgBy8C,GAE7DuJ,aAKP7qC,EAAQirC,WAAW,SAAS,EAC5BjrC,EAAQirC,WAAW,MAAM,EAE7B,EA5CEhJ,iBAAkB,GAClBiJ,WAAY,GACZhuC,QAAS,EACX,EACA,OAAOglC,CAyCT,CA7DF,IAAWj/C,EAAST,EAATS,EAiERA,QAjEiBT,EAiERA,OAjEgB,yBA+D1BS,EAAQX,OAAO,oBAAoB,EAChC4/C,UAAU,UAAW0I,CAAO,C,yECtEjC3nD,QAAQX,OAAO,cAAe,EAAE,EAC7B6oD,QAAQ,SAAU,CAAC,UAAW,SAAUpwC,GACvC,IAAIsC,EAAOpa,QAAQ+c,QAAQjF,EAAQiC,SAASK,IAAI,EAC5C+tC,EAAWnoD,QAAQ+c,QAAQ,uBAAuB,EAMtD,OALAorC,EAASC,IAAI,CACXC,SAAU,QACVC,QAAS,GACX,CAAC,EAEM,SAAUC,GACfJ,EAAS3oC,IAAI+oC,CAAM,EACnBnuC,EAAKwZ,OAAOu0B,CAAQ,EACpBA,EAAS,GAAG1P,OAAO,EAEnB,IACE,IAAI+P,EAAazuC,SAASqU,YAAY,MAAM,EAC5C,GAAI,CAACo6B,EAAY,MAAMA,CAGzB,CAFE,MAAOC,GACPlpD,OAAOmpD,OAAO,mCAAoCH,CAAM,CAC1D,CAEAJ,EAASjrC,OAAO,CAClB,CACF,EAAE,EACD+hC,UAAU,cAAe,CAAC,SAAU,SAAU0J,GAC7C,MAAO,CACLvK,SAAU,IACVG,KAAM,SAAUF,EAAOthC,EAASyhC,GAC9BzhC,EAAQ6mC,KAAK,QAAS,SAAU7kD,GAC9B4pD,EAAOnK,EAAMoK,WAAW,CAC1B,CAAC,CACH,CACF,CACF,EAAE,C,mEC3BJ,IAAW5oD,EAAST,EAATS,EA8ERA,QA9EiBT,EA8ERA,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,UA5EX,WAEA,MAAO,CACNb,SAAU,IACVC,MAAO,CACNn+C,OAAQ,WACR2oD,UAAW,oBACZ,EACAlnD,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,0BACzER,KAAM,SAAUF,GACfA,EAAM/2C,OAAO,qBAAsB,SAASC,EAAUC,GACvB,EAA3B62C,EAAMn+C,OAAO2gB,aAAmBtZ,GAAYC,IAC9C62C,EAAMn+C,OAAO2gB,YAAcw9B,EAAMn+C,OAAO0gB,eAAiB,EAC3D,CAAC,EAEDy9B,EAAM/2C,OAAO,oBAAqB,SAASC,EAAUC,GACtB,EAA3B62C,EAAMn+C,OAAO2gB,aAAmBtZ,GAAYC,IAC9C62C,EAAMn+C,OAAO2gB,YAAc,EAC3Bw9B,EAAMn+C,OAAO0gB,eAAiB,EAEhC,CAAC,EAEDy9B,EAAMyK,eAAiB,SAASC,GACpB,GAARA,GAAaA,EAAO1K,EAAM2K,cAAc,IACvCD,EAAO1K,EAAMn+C,OAAO2gB,aAAekoC,IAAW1K,EAAMn+C,OAAO0gB,eAAiBy9B,EAAMn+C,OAAOwgB,YAAe29B,EAAMn+C,OAAOwgB,YACvH29B,EAAMn+C,OAAO0gB,cAAc,GACpBmoC,EAAO1K,EAAMn+C,OAAO2gB,aAAekoC,IAAW1K,EAAMn+C,OAAO0gB,eAAiBy9B,EAAMn+C,OAAOwgB,YAAe,GAC/G29B,EAAMn+C,OAAO0gB,cAAc,GAE5By9B,EAAMn+C,OAAO2gB,YAAckoC,GAGzB1K,EAAMwK,WACR7oD,EAAQ+c,QAAQhD,QAAQ,EAAE8uC,UAAU,CAAC,CACvC,EAEAxK,EAAM4K,kBAAoB,SAASC,GACpB,GAAXA,GAAgBA,EAAU7K,EAAM8K,iBAAiB,IAChD9K,EAAMn+C,OAAO0gB,eAAiBsoC,EAC5B7K,EAAMn+C,OAAO2gB,YAAcw9B,EAAMn+C,OAAOwgB,YAAe29B,EAAM2K,cAAc,EAC9E3K,EAAMn+C,OAAO2gB,YAAcw9B,EAAM2K,cAAc,EAAI,EAEnD3K,EAAMn+C,OAAO2gB,YAAcw9B,EAAMn+C,OAAO2gB,YAAcw9B,EAAMn+C,OAAOwgB,YAEpE29B,EAAMn+C,OAAO2gB,YAAcw9B,EAAMn+C,OAAO2gB,YAAcw9B,EAAMn+C,OAAOwgB,YAEpE29B,EAAMn+C,OAAO0gB,eAAiBsoC,EAE3B7K,EAAMwK,YACR7oD,EAAQ+c,QAAQhD,QAAQ,EAAE8uC,UAAU,CAAC,CAExC,EAEAxK,EAAM2K,cAAgB,WAErB,OADQ/zC,KAAKC,KAAKmpC,EAAMn+C,OAAOgB,KAAKpB,OAASu+C,EAAMn+C,OAAOygB,QAAQ,CAEnE,EAEA09B,EAAM8K,iBAAmB,WAExB,OADQl0C,KAAKC,KAAKmpC,EAAMn+C,OAAOgB,KAAKpB,OAASu+C,EAAMn+C,OAAOygB,SAAW09B,EAAMn+C,OAAOwgB,WAAW,CAE9F,EAEA29B,EAAM+K,qBAAuB,SAAUF,GAClCG,EAAIhL,EAAM2K,cAAc,GAAME,GAAW7K,EAAMn+C,OAAO0gB,gBAAkBy9B,EAAMn+C,OAAOwgB,YACzF,OAAO2oC,GAAKhL,EAAMn+C,OAAOwgB,YAAc29B,EAAMn+C,OAAOwgB,YAAc2oC,CACnE,EAEAhL,EAAMiL,iBAAmB,SAASC,GACjC,OAAO,IAAI9sB,MAAM8sB,CAAG,CACrB,CACD,CACD,CACD,CAG8B,C,yEC7E/B,IAAWvpD,IA4BRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,gBA1BX,WAEA,MAAO,CACNb,SAAU,IACVC,MAAO,CACHn+C,OAAQ,gBACZ,EACAS,SAAU,0BACV49C,KAAM,SAAUF,GACfA,EAAMmL,gBAAkB,WACX,OAAQnL,EAAMn+C,OAAOgB,KAAKpB,QAErBu+C,EAAMn+C,OAAOgB,KAAKpB,QACbu+C,EAAMn+C,OAAOgB,KAAKpB,OAASu+C,EAAMn+C,OAAOygB,SACpC09B,EAAMn+C,OAAO2gB,YAAcw9B,EAAMn+C,OAAOygB,SAAW,EAAK,QAAW,EAAI09B,EAAMn+C,OAAO2gB,aAAew9B,EAAMn+C,OAAOygB,UAC3G,EAAI09B,EAAMn+C,OAAO2gB,aAAew9B,EAAMn+C,OAAOygB,SAAY09B,EAAMn+C,OAAOgB,KAAKpB,OAAUu+C,EAAMn+C,OAAOygB,UAClG,EAAI09B,EAAMn+C,OAAO2gB,aAAew9B,EAAMn+C,OAAOygB,UAAc,EAAI09B,EAAMn+C,OAAO2gB,aAAew9B,EAAMn+C,OAAOygB,SAAY09B,EAAMn+C,OAAOgB,KAAKpB,QACvI,EAAIu+C,EAAMn+C,OAAO2gB,aAAew9B,EAAMn+C,OAAOygB,UAAa,OAAU,IAC9F09B,EAAMn+C,OAAOgB,KAAKpB,OAAS,WAA0C,IAA7Bu+C,EAAMn+C,OAAOgB,KAAKpB,OAAe,GAAK,KAAO,IAPzE,mBASR,CACV,CACD,CACD,CAG0C,C,2EC1BzC,SAAS2pD,EAAc3xC,EAAS5F,EAAiB6J,EAAmBvB,EAAU7G,EAAYgQ,GAExF,MAAO,CACLy6B,SAAU,IACVC,MAAO,CACLhrC,QAAS,IACT49B,WAAY,IACZC,MAAO,IACPC,OAAQ,IACRyB,MAAO,IACPC,YAAa,GACf,EACA0L,KAAM,SAAUF,EAAOthC,EAASyhC,GAC9B,IAAI73C,EAAO03C,EAAMqL,GAEjB/iD,EAAKgjD,WAAa,SAACjb,EAAUkb,GACvB5pD,EAAQ8nD,UAAUnhD,EAAKisC,KAAK,GAC9BjsC,EAAKisC,MAAM,EAAElE,EAAUkb,CAAE,CAE7B,EAEAjjD,EAAKkjD,iBAAmB,SAAClrD,EAAIkqB,EAAUisB,GACjC90C,EAAQ8nD,UAAUnhD,EAAKksC,WAAW,GACpClsC,EAAKksC,YAAY,EAAEl0C,EAAIkqB,EAAUisB,CAAQ,CAE7C,EAEAnuC,EAAKmjD,SAAWnjD,EAAK0M,SAAW1M,EAAK0M,QAAQ02C,sBAAwBpmC,EAAK4xB,YAAY5uC,EAAK0M,QAAQ02C,qBAAqB,EAAI,GAE5H73C,EACG83C,iBAAiB,CAAEC,UAAWtjD,EAAK0M,QAAQ5J,EAAG,CAAC,EAC/C1H,KAAK,WACJ4E,EAAKujD,cAAgBh4C,EAAgBhR,KAAKgpD,cAAcvjD,EAAK0M,QAAQ5J,GACvE,CAAC,CAEL,EACA9H,aAA2C,cAA7BpC,EAAOK,SAASm/C,SAA2B,QAAU,IAAM,2BACzEn9C,aAAc,KACdhB,WAAY,aAGZo+C,iBAAkB,EACpB,CACF,CA5CF,IAAWh/C,EAAST,EAATS,EAgDRA,QAhDiBT,EAgDRA,OAhD2B,2FA8CrCS,EAAQX,OAAO,oBAAoB,EAChC4/C,UAAU,gBAAiBwK,CAAa,C,2EC9C3C,SAASU,EAAgB3vC,GAEzB,MAAO,CACN4jC,SAAU,IACVC,MAAO,CACN76B,QAAS,mBACT4mC,KAAM,6BACNC,MAAO,8BACP/9B,QAAS,2BACTxO,MAAO,yBACPwsC,SAAU,4BACVC,KAAM,2BACP,EACAhM,KAAM,SAAUF,EAAOmM,GACtBA,EAAO7M,GAAG,QAAS,WAClB,IAMM8M,EAIDC,EAVDF,EAAOt2B,KAAK,UAAU,GAAMs2B,EAAO92B,KAAK,UAAU,IACrD82B,EAAOt2B,KAAK,WAAY,EAAI,EAEzBmqB,EAAMkM,OAASx4C,EACjBy4C,EAAOG,YAAYtM,EAAMkM,IAAI,EACtBC,EAAO5gC,KAAK,gCAAgC,EAAE9pB,SACjD2qD,EAAYD,EAAO5gC,KAAK,gCAAgC,GAClD+gC,YAAYF,EAAU/2B,KAAK,8BAA8B,CAAC,EAGjEg3B,EAAUF,EAAO3I,KAAK,EAEtBxD,EAAMiM,UACNE,EAAO3I,KAAKxD,EAAMiM,QAAQ,EAG9BjM,EAAM76B,QAAQ,EAAE,EAAEzhB,KAAK,WAetB,IACK6oD,EACA/I,EACAgJ,EAHFxM,EAAM/xB,UAAYva,GAAassC,GAAM/xB,UACnCs+B,EAAWvM,EAAM/xB,SAAW+xB,EAAM/xB,QAAQs+B,UAAY74C,GAAassC,EAAM/xB,QAAQs+B,SAAY,IAC7F/I,EAAQxD,EAAM/xB,SAAW+xB,EAAM/xB,QAAQu1B,OAAS9vC,GAAassC,EAAM/xB,QAAQu1B,MAAS,YACpFgJ,EAAYxM,EAAM/xB,SAAW+xB,EAAM/xB,QAAQu+B,WAAa94C,GAAassC,EAAM/xB,QAAQu+B,UAAc,UAErGL,EAAO3I,KAAKA,CAAI,EAChB2I,EAAOG,YAAYE,CAAQ,EAE3BrwC,EAAS,WACRgwC,EAAO3I,KAAK6I,CAAO,EACnBF,EAAOG,YAAYE,CAAQ,CAC5B,EAAGD,CAAO,EAEZ,EAAG,WACF,IACKA,EACA/I,EACAgJ,EAHFxM,EAAMvgC,QAAU/L,GAAassC,GAAMvgC,QACjC8sC,EAAWvM,EAAMvgC,OAASugC,EAAMvgC,MAAM8sC,UAAY74C,GAAassC,EAAMvgC,MAAM8sC,SAAY,IACvF/I,EAAQxD,EAAMvgC,OAASugC,EAAMvgC,MAAM+jC,OAAS9vC,GAAassC,EAAMvgC,MAAM+jC,MAAS,UAC9EgJ,EAAYxM,EAAMvgC,OAASugC,EAAMvgC,MAAM+sC,UAAY94C,GAAassC,EAAMvgC,MAAM+sC,UAAc,QAE9FL,EAAO3I,KAAKA,CAAI,EAChB2I,EAAOG,YAAYE,CAAQ,EAE3BrwC,EAAS,WACRgwC,EAAO3I,KAAK6I,CAAO,EACnBF,EAAOG,YAAYE,CAAQ,CAC5B,EAAGD,CAAO,EAEZ,CAAC,EACAttC,QAAQ,WACRktC,EAAOt2B,KAAK,WAAY,EAAK,EAE1BmqB,EAAMkM,KACRC,EAAOG,YAAYtM,EAAMkM,IAAI,EACtBE,GACPA,EAAUE,YAAYF,EAAU/2B,KAAK,8BAA8B,CAAC,CAEtE,CAAC,EAEH,CAAC,EAEE2qB,EAAM+L,OAASr4C,GAAassC,EAAMgM,QAAUt4C,IAC9CssC,EAAM/2C,OAAO,OAAQ,WACpBkjD,EAAOt2B,KAAK,WAAY,EAAI,CAC7B,CAAC,EAEDmqB,EAAM/2C,OAAO,QAAS,SAAUC,GAC3BvH,EAAQ21B,OAAO0oB,EAAM+L,KAAM7iD,CAAQ,EAGtCijD,EAAOt2B,KAAK,WAAY,EAAI,EAF5Bs2B,EAAOt2B,KAAK,WAAY,EAAK,CAG/B,EAAG,EAAI,EAET,CACD,CACD,CArGD,IAAWl0B,EAAiB+R,EAAjB/R,EAyGRA,QAzGyB+R,EAA5B,KAyGYxS,OAzG2B,uBAuGtCS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,kBAAmBkL,CAAe,C,0ECvG7C,SAASW,EAAetwC,GAElB,MAAO,CACH4jC,SAAU,IACVC,MAAO,CACH0M,SAAU,iBACd,EACAxM,KAAM,SAAUF,EAAOthC,GACnBvC,EAAS,WACL6jC,EAAM0M,SAAWhuC,EAAQ8rC,UAAU,EAAI9rC,EAAQiuC,YAAY,GAAKjuC,EAAQ,GAAGiO,YAC/E,CAAC,EAEDjO,EAAQ4gC,GAAG,SAAU,WACb5gC,EAAQ8rC,UAAU,EAAI9rC,EAAQiuC,YAAY,GAAKjuC,EAAQ,GAAGiO,aACrDqzB,EAAM0M,UACP1M,EAAMvrB,OAAO,WACTurB,EAAM0M,SAAW,EACrB,CAAC,EAEA1M,EAAM0M,UACX1M,EAAMvrB,OAAO,WACTurB,EAAM0M,SAAW,EACrB,CAAC,CACT,CAAC,CACL,CACJ,CACJ,CA3BJ,IAAW/qD,IA+BRA,QAAST,OA/B2B,uBA6BnCS,EAAQX,OAAO,oBAAoB,EACpC4/C,UAAU,iBAAkB6L,CAAc,C,kEC9B7C,IAAW9qD,IAiBRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,SAfX,WAEA,MAAO,CACNb,SAAU,IACVC,MAAO,CACNn+C,OAAQ,SACT,EACGU,WAAY,CAAF,SAAE,SAAU6F,GAExBG,KAAK1G,OAASuG,EAAOvG,MACtB,EACD,CACD,CAG4B,C,wEChB7B,IAAWF,IAmCRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,eAjCX,WAEA,MAAO,CACNb,SAAU,KACVn+C,QAAS,UACTo+C,MAAO,CACNn2C,KAAM,gBACF+iD,QAAS,wBACTC,WAAY,0BACjB,EACG3M,KAAM,SAAUF,EAAOthC,EAASyhC,EAAO2M,GACxCpuC,EAAQ4gC,GAAG,QAAS,WACfU,EAAMvrB,OAAO,WACbq4B,EAAqBjrD,OAAOgI,OAASm2C,EAAMn2C,KAC7CijD,EAAqBjrD,OAAOukB,cAAgB,CAAC0mC,EAAqBjrD,OAAOukB,eAEtE0mC,EAAqBjrD,OAAOkrD,aAAe/M,EAAM4M,UACnDE,EAAqBjrD,OAAOukB,cAAgB,CAAC0mC,EAAqBjrD,OAAOukB,eAE1E0mC,EAAqBjrD,OAAOkrD,YAAc/M,EAAM4M,QAChDE,EAAqBjrD,OAAOgI,KAAOm2C,EAAMn2C,MAGjClI,EAAQglD,WAAW3G,EAAM6M,UAAU,GACrC7M,EAAM6M,WAAW7M,EAAMn2C,IAAI,CAEnC,CAAC,CACF,CAAC,CACH,CACD,CACD,CAGwC,C,oECjCvC,SAASmjD,EAASvzC,GAElB,MAAO,CACNsmC,SAAU,KACVz9C,SAAU,mEACVsnD,WAAY,GACZ1J,KAAM,SAAUF,EAAOthC,GACtB,IAAIuuC,EAAkBvuC,EAAQ,GAAGwuC,sBAAsB,EAAEC,IACrDC,EAAczrD,EAAQ+c,QAAQ,+BAA+B,EAAE9V,KAAK,EACpEmT,EAAOpa,EAAQ+c,QAAQ,MAAM,EACjCshC,EAAM9+C,OAASA,EAEfwd,EAAQ2uC,MAAMD,CAAW,EAGzBnmC,WAAW,WACVmmC,EAAYl1B,OAAOxZ,EAAQwZ,OAAO,CAAC,CACpC,EAAG,CAAC,EAEJv2B,EAAQ+c,QAAQjF,CAAO,EAAE6lC,GAAG,SAAU,WAClC/2C,KAAK+kD,aAAeL,GACtBG,EAAYpiB,KAAK,EACjBjvB,EAAKwxC,QAAQ7uC,CAAO,EACpBA,EAAQ8uC,SAAS,QAAQ,GAEjB9uC,EAAQ+rB,GAAG,SAAS,GAAKliC,KAAK+kD,YAAcL,IACpDG,EAAYxkD,KAAK,EACjBwkD,EAAYK,OAAO/uC,CAAO,EAC1BA,EAAQiB,YAAY,QAAQ,EAE9B,CAAC,EAEDqgC,EAAM5gC,IAAI,WAAY,WACrBguC,EAAYxkD,KAAK,EACjBwkD,EAAYK,OAAO/uC,CAAO,EAC1BA,EAAQiB,YAAY,QAAQ,EAC5Bhe,EAAQ+c,QAAQjF,CAAO,EAAEi0C,IAAI,QAAQ,CACtC,CAAC,CACF,CACD,CACD,CAzCD,IAAW/rD,EAAST,EAATS,EA6CRA,QA7CiBT,EA6CRA,OA7C2B,sBA2CtCS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,WAAYoM,CAAQ,C,kEC5CjC,IAAWrrD,IAkBRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,SAhBX,WAEA,MAAO,CACNb,SAAU,IACVC,MAAO,CACNoB,QAAS,YACTC,OAAQ,SACT,EACAnB,KAAM,SAAUF,EAAOthC,GACnBA,EAAQivC,UAAU3N,EAAMoB,OAAO,EAC/BpB,EAAMqB,OAAS3iC,EAAQivC,UAAU,QAAQ,CAC7C,CACD,CACD,CAG4B,C,oECjB7B,IAAWhsD,IA2BRA,QAAST,OAFXS,EAAQX,OAAO,oBAAoB,EACjC4/C,UAAU,WAzBX,WAEA,MAAO,CACNZ,MAAO,CACN1J,SAAU,YACVsX,gBAAiB,IAClB,EACAhsD,QAAS,UACTs+C,KAAM,SAAUF,EAAOthC,EAASyhC,EAAOc,GACnCA,EAAK4M,YAAYC,OAAS,SAAUC,EAAYC,GAC5C,MAAI/M,IAAKgN,SAASF,CAAU,IAGzB/N,EAAM4N,iBACRG,EAAaA,EAAWtzC,YAAY,EAC7B,CAACulC,EAAM1J,SAAS/vC,OAAO,SAASmD,GAAK,OAAOA,EAAE+Q,YAAY,IAAMszC,CAAY,CAAC,EAAEtsD,QAG/E,CAACu+C,EAAM1J,SAAS/vC,OAAO,SAASmD,GAAK,OAAOA,IAAMqkD,CAAY,CAAC,EAAEtsD,OAC7E,CACJ,CACD,CACD,CAGgC,C,0DCRjC,SAASupB,EAAa1V,EAAYgQ,EAAM4oC,EAAkB9nD,EAAI+nD,GAG5D,IAAI7qD,GAA4C,cAA7BpC,OAAOK,SAASm/C,SAA2B,QAAU,IAAM,2BAE5E0N,EAAsB,YACtBC,EAAa,GAcf,OAXA/4C,EAAW8J,IAAI,oBAAqB,SAAUX,EAAOY,EAASC,EAAUC,EAAWC,GAC5Ef,EAAM6vC,kBACTC,EAAiB,CAErB,CAAC,EAEe,CACdzd,UAAWA,EACXyd,iBAAkBA,EAClBC,eA6GF,SAAwBC,EAAKhf,EAAOif,GAClC,OAAO5d,EAAU,CACf4D,aAAc+Z,GAAO,gBACrBE,eACE,2KACFC,SAAUF,EACV/f,OAAQ,CACNc,MAAOA,GAAS,SAClB,CACF,CAAC,EAAE/rC,KAAK,SAACO,GACP,OAAOA,EAAOq2B,OAASl0B,EAAGnE,KAAK,EAAImE,EAAGuc,OAAO,CAC/C,CAAC,CACH,CAxHA,EAGA,SAASmuB,EAAU+d,GAEjB,IAAIC,EAAc1oD,EAAG8e,MAAM,EACzBpX,EAAW,GACXihD,EAAO,CACLC,MAAO1rD,EACPyY,KAAM8yC,EAAKI,gBACXC,OAAQL,EAAKM,iBACf,EAoEF,OAnEAxtD,QAAQypB,QAAQ2jC,EAAM,SAAU7oD,EAAOkK,GACjClK,IACFqC,KAAK6H,GAAO89C,EAAiB5oC,EAAK8pC,sBAAsBlpD,CAAK,CAAC,EAElE,EAAG4H,CAAQ,EAIX1H,EAAGyH,IAAIC,CAAQ,EAAEpK,KAAK,SAAU2rD,GAC9B,IAAMC,EAAiB,IAAIjuD,OAAO,MAAQ+sD,EAAsB,MAAO,GAAG,EAEtEv+C,EAAY,GASZ0/C,GARJ5tD,QAAQypB,QAAQ,CAAC,OAAQ,UAAW,SAAUllB,GAC5C,IAAI5D,EAAW+sD,EAAUnpD,IAAU2oD,EAAK3oD,EAAQ,YAC5CvE,QAAQ8nD,UAAUnnD,CAAQ,IAC5BiG,KAAKrC,GAAS2oD,EAAKtrD,cAAgBsrD,EAAKtrD,eAAiB6qD,EACrD9rD,EAASsZ,QAAQ0zC,EAAgBT,EAAKtrD,YAAY,EAAIjB,EAE9D,EAAGuN,CAAS,EAEGw/C,EAAUL,OACvBQ,EAAgBrB,EAAO/qC,KAAK,CAC1B9gB,SAAUusD,EAAKtrD,cAAgBsrD,EAAKtrD,eAAiB6qD,EACjDmB,EAAS3zC,QAAQ0zC,EAAgBT,EAAKtrD,YAAY,EAAIgsD,EAC1DhtD,WAAYssD,EAAKtsD,YAnDH,kBAoDdgB,aAAcsrD,EAAKtrD,cAAgB6qD,EACnCrtD,QAAS,CAEP8O,UAAW,WAAc,OAAOA,CAAW,EAC3C8+B,OAAQ,WAAc,OAAOkgB,EAAKlgB,MAAQ,CAC5C,EACA8gB,YAAaZ,EAAKD,SAClBc,SAAU/tD,SAAQ8nD,UAAUoF,EAAKa,QAAQ,GAAIb,EAAKa,SAClDC,SAAU,SACV3P,MAAO6O,EAAK7O,KACd,CAAC,EACHqO,EAAWzkD,KAAK4lD,CAAa,EAc7BA,EAAcvrD,OAAOP,KACnB,SAAUksD,GACRC,EAAcL,CAAa,EAC3BV,EAAY/tD,QAAQ6uD,CAAM,CAC5B,EACA,SAAUE,GACRD,EAAcL,CAAa,EAC3BV,EAAYnsC,OAAOmtC,CAAS,CAC9B,CAAC,CAOL,CAAC,EAEMhB,EAAY3pC,OAErB,CAEA,SAASopC,IACP,GAAIF,EAAW5sD,OAGb,IADA,IAAMsuD,EAAO1B,EAAWluC,MAAM,CAAC,EACtB9b,EAAI0rD,EAAKtuD,OAAS,EAAQ,GAAL4C,EAAQA,CAAC,GACrC0rD,EAAK1rD,GAAGyqC,QAAQ,CAGtB,CAEA,SAAS+gB,EAAcb,GAEfp7B,EAAQy6B,EAAW1+C,QAAQq/C,CAAK,EACzB,GAATp7B,GACFy6B,EAAWl7B,OAAOS,EAAO,CAAC,CAE9B,CAsBF,C,iEAzJAjyB,QACGX,OAAO,oBAAoB,EAC3BigB,QAAQ,eAAgB+J,CAAY,C,yECPvC,IAAWrpB,IAmBRA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EACpCuF,OAAO,iBAjBR,WAEM,OAAO,SAAU6rC,EAAO78B,EAAWxQ,EAAc2B,GAC7C,OAAwB,IAArByoC,UAAU1tC,OACe,UAAjB,OAAO2wC,EAAqB,cAAc9wC,KAAK8wC,EAAMz8B,MAAM,GAAG,EAAEq6C,IAAI,CAAC,EACvE5jD,OAAO,SAASC,EAAKC,GAAQ,OAAOD,KAAcA,EAAIuP,QAAQtP,EAAK,EAAE,IAAaA,CAAO,EAAG,EAAE,EACjG,KAEYiJ,EAAU06C,sBAAsBr0C,QAAQ,MAAO7W,EAAaI,SAASsV,YAAY,CAAC,EAC9EmB,QAAQ,MAAOlV,EAAc0E,EAAE,EAEhC,IAAMgnC,CAE/B,CACJ,CAGsC,C,wEClB1C,IAAWzwC,IAmBRA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EACpCuF,OAAO,gBAjBR,WAEM,OAAO,SAAU6rC,EAAO78B,EAAWxQ,EAAcsD,GAC7C,OAAwB,IAArB8mC,UAAU1tC,OACe,UAAjB,OAAO2wC,EAAqB,cAAc9wC,KAAK8wC,EAAMz8B,MAAM,GAAG,EAAEq6C,IAAI,CAAC,EACvE5jD,OAAO,SAASC,EAAKC,GAAQ,OAAOD,KAAcA,EAAIuP,QAAQtP,EAAK,EAAE,IAAaA,CAAO,EAAG,EAAE,EACjG,KAEYiJ,EAAU26C,YAAYt0C,QAAQ,MAAO7W,EAAaI,SAASsV,YAAY,CAAC,EACpEmB,QAAQ,MAAOvT,EAAkB+N,WAAW,EAE7C,IAAMg8B,CAE/B,CACJ,CAGoC,C,sEClBxC,IAAWzwC,IAkBRA,QAAST,OAFVS,EAAQX,OAAO,oBAAoB,EAChCuF,OAAO,cAhBV,WAEE,OAAO,SAAU6rC,EAAO7sC,GACtB,IAAInE,EAAU,GACd,GAAIgxC,EAEF,IAAK,IAAI/tC,EAAI,EAAGA,EAAI+tC,EAAM3wC,OAAQ4C,CAAC,GAC7B+tC,EAAM/tC,GAAGc,WAAaI,GACxBnE,EAAQwI,KAAKwoC,EAAM/tC,EAAE,EAG3B,OAAOjD,CACT,CACF,CAGoC,C,gECjBtC,IAAWO,IAURA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EACpCuF,OAAO,QARR,WAEM,OAAO,SAAU6rC,GACb,MAAwB,UAAjB,OAAOA,EAAqBA,EAAMx2B,QAAQ,UAAW,MAAM,EAAIw2B,CAC1E,CACJ,CAGoB,C,iECRtB,SAAS+d,EAAa9qC,GAEtB,OAAO,SAAU+sB,EAAOlsB,GACvB,IAAI9kB,EAAU,GACX,GAAIgxC,EAEF,IAAK,IAAI/tC,EAAI,EAAGA,EAAI+tC,EAAM3wC,OAAQ4C,CAAC,GAAI,CACrC,IAAI+rD,EAAQ,GACZ,UAAU/N,EAAQ97C,GAChB,IAAK,IAAI6J,KAAO7J,EACd,GAAqD,oBAAjDzF,OAAOg1B,UAAUpgB,SAASw5B,MAAM3oC,EAAO6J,EAAI,EAC7CggD,EAAQA,GAAS/N,EAAQ97C,EAAO6J,EAAI,OAiDpC,GAAI,EA/CJggD,EAGU,SAAS/N,EAAQgO,EAAOje,GAC9B,IACMvc,EADN,GAAIw6B,EAAM5uD,OAER,OADIo0B,EAAOw6B,EAAM,MACLje,GACHiQ,EAAQgO,EAAMl9B,OAAO,CAAC,EAAGif,EAAMvc,EAAK,EAK7C,GAAqD,mBAAjD/0B,OAAOg1B,UAAUpgB,SAASw5B,MAAM3oC,EAAO6J,EAAI,EA2B1C,MAA2B,UAAvB,OAAO7J,EAAO6J,IAAsC,UAAjB,OAAOgiC,EAC1C7rC,EAAO6J,GAAKoQ,YAAY,IAAM4xB,EAAM5xB,YAAY,EAEhDja,EAAO6J,IAAQgiC,EA7BtB,IAAK,IAAIsQ,EAAI,EAAGA,EAAIn8C,EAAO6J,GAAK3O,OAAQihD,CAAC,GAoBvC,GAAI,EAnBJ0N,EAAS,WACP,GAA+C,mBAA3CtvD,OAAOg1B,UAAUpgB,SAASw5B,MAAMkD,CAAK,EAYpC,IAAI7rC,EAAO6J,GAAKsyC,GAAGM,UACtB,OAAOz8C,EAAO6J,GAAKsyC,GAAGM,UAAU5Q,EAAO7rC,EAAO6J,GAAKsyC,GAAGH,aAAa,EAEnE,KAAM,4BAA4B,CAdlC,IAAK,IAAI9hD,EAAI,EAAGA,EAAI2xC,EAAM3wC,OAAQhB,CAAC,GACjC,GAAI2xC,EAAM3xC,GAAG8F,EAAO6J,GAAKsyC,GAAGG,aAAet8C,EAAO6J,GAAKsyC,GAAGI,aAAev8C,EAAO6J,GAAKsyC,GAAGI,cAAgBpvC,EAAW,CACjH,IAAIzP,EAASsC,EAAO6J,GAAKsyC,GAAGM,UAC1Bz8C,EAAO6J,GAAKsyC,GAAGM,UAAU5Q,EAAM3xC,GAAG8F,EAAO6J,GAAKsyC,GAAGK,aAAcx8C,EAAO6J,GAAKsyC,GAAGH,aAAa,EAC3FnQ,EAAM3xC,GAAG8F,EAAO6J,GAAKsyC,GAAGK,cAAgBx8C,EAAO6J,GAAKsyC,GAAGH,cAEzD,GAAMt+C,EACJ,OAAOA,CACX,CAON,EAAC,GAGC,MAAO,GAGX,MAAO,EAOb,EA3CYmM,EAAIuF,MAAM,GAAG,EA2Cfy8B,EAAM/tC,EAAE,GAIlB,MAAO,GAGb,MAAO,EACR,EAAE6hB,EAAO7U,OAAO,EAEb++C,GAAS/qC,EAAQ,QAAQ,EAAE,CAAC+sB,EAAM/tC,IAAK6hB,EAAOoqC,UAAU,EAAE7uD,QAC5DL,EAAQwI,KAAKwoC,EAAM/tC,EAAE,CACzB,CAGL,OAAOjD,CACR,CACD,CA3ED,IAAWO,EAAiB+R,EAAjB/R,EA+ERA,QA/EyB+R,EAA5B,KA+EYxS,OA/E2B,sBA6EtCS,EAAQX,OAAO,oBAAoB,EACjCuF,OAAO,eAAgB4pD,CAAY,C,oEC9EtC,IAAWxuD,IAqCRA,QAAST,OAFVS,EAAQX,OAAO,yBAAyB,EACrCuF,OAAO,YAnCV,WAEE,OAAO,SAAU1C,GACf,IAAI0sD,EAAQ,GA2BZ,OA1BAzvD,OAAOD,KAAKgD,CAAK,EAAEunB,QAAQ,SAAUhb,GACnCvM,EAAMuM,GAAKpH,KAAOoH,EAClBmgD,EAAM3mD,KAAK/F,EAAMuM,EAAI,CACvB,CAAC,EAEDmgD,EAAM1mD,KAAK,SAAUu+C,EAAIoI,GACvB,IAAIC,EAAS,IAAI7sD,KAAKwkD,EAAGG,YAAY,EACjCmI,EAAS,IAAI9sD,KAAK4sD,EAAGjI,YAAY,EAErC,OAAIkI,EAAOz5B,YAAY,EAAI05B,EAAO15B,YAAY,EACrC,CAAC,EACDy5B,EAAOz5B,YAAY,EAAI05B,EAAO15B,YAAY,GAG/Cy5B,EAAOx5B,SAAS,EAAIy5B,EAAOz5B,SAAS,EAC/B,EACAw5B,EAAOx5B,SAAS,EAAIy5B,EAAOz5B,SAAS,EACpC,CAAC,EAENmxB,EAAG/gC,cAAgBmpC,EAAGnpC,cACjB,EACA+gC,EAAG/gC,cAAgBmpC,EAAGnpC,cACtB,CAAC,EACH,CACT,CAAC,EAEMkpC,CACT,CACF,CAGgC,C,oECpClC,IAAW5uD,IAURA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EACpCuF,OAAO,YARR,WAEM,OAAO,SAAU6rC,EAAOnhB,GACpB,OAAwB,SAATmhB,GAAyBA,EAAcA,EAAMjyB,MAAM8Q,CAAK,EAAtB,EACrD,CACJ,CAG4B,C,kDC0IG,SAA3B0/B,EAAqClpD,EAAG26B,EAAG57B,EAAGse,GAC9Cvc,KAAKqoD,YAAcnpD,EACnBc,KAAKsoD,SAAWzuB,EAChB75B,KAAKuoD,YAActqD,EACnB+B,KAAKwoD,UAAYjsC,CACrB,CAEwB,SAApBksC,IACAzoD,KAAK2T,KAAO,KACZ3T,KAAK0oD,IAAM,EACX1oD,KAAK2oD,IAAM,IAAI9yB,MAAM+yB,EAAa,EAClC5oD,KAAKmlD,IAAM,CACf,CAgKwB,SAApB0D,IACAC,GAAcA,GAAaC,GAC4B,IAA/CC,EAAWC,EAAeC,EAAgB,IAChDC,GACFC,EAAgBC,GAAUP,CAAS,EACnCQ,EAASL,EAAeM,IAAaH,EACrCI,GAAUV,EAAWG,CAAY,CACrC,CAGoB,SAAhBQ,EAA0BxrD,EAAGyrD,GAC7BC,EAAcD,EAAKzrD,GAAG2rD,GAAIF,EAAKzrD,GAAG4rD,EAAE,CACxC,CAekB,SAAdC,EAAwBJ,EAAMjH,EAAGsH,GACjC,OAAOL,EAAKjH,GAAGmH,GAAKF,EAAKK,GAAGH,IACzBF,EAAKjH,GAAGmH,IAAMF,EAAKK,GAAGH,IAAMI,EAAUvH,IAAMuH,EAAUD,EAC7D,CAmEwB,SAApBE,EAA8BC,GAC9B,IAEIC,EACAzB,EAHA0B,EAAeC,GACfC,EAAQrB,EAGRsB,EAAWC,EAKX7pC,EAAwB8pC,GAAfxB,EAA8BA,EAAewB,GAAeC,GAErEC,EAAU1B,EAAe2B,EACzBC,EAAY7B,EAAWsB,EAAQC,EAAW,GAC1CO,EAAW9B,EAAWsB,EAAQC,GAGXQ,IAAnBP,IACAJ,IAAiB,GAIrB,GAOI,GAAIpB,GALJmB,EAASD,GAKeK,IAAaO,GAClC9B,EAAWmB,EAASI,EAAW,IAAMM,GACrC7B,EAAWmB,IAAWnB,EAAWsB,IACjCtB,EAAW,EAAEmB,IAAWnB,EAAWsB,EAAQ,GAH9C,CAmBA,IANAA,GAAS,EACTH,CAAM,GAMGnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACzCnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACpCnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACpCnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACpCnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACpCnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACpCnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACpCnB,EAAW,EAAEsB,IAAUtB,EAAW,EAAEmB,IACpCG,EAAQK,IAKZ,GAHAjC,EAAMkC,GAAiBD,EAAUL,GACjCA,EAAQK,EAAUC,EAERL,EAAN7B,EAAgB,CAIZ,GAHJsC,GAAkBd,EAGHU,IAFfL,EAAW7B,GAEmB,MAK9BmC,EAAY7B,EAAWsB,EAAQC,EAAW,GAC1CO,EAAW9B,EAAWsB,EAAQC,EAClC,CAvCA,SAwCML,EAAYZ,EAASY,EAAYX,KAAc5oC,GAChC,GAAlB,EAAEypC,GAET,OAAOG,CACX,CAUsB,SAAlBU,IACA,IAAIxI,EAAGsH,EAGHz+B,EAAO4/B,GAAkBC,EAAgBlC,EAK7C,GAAY,CAAC,GAAT39B,EAIAA,CAAI,QACD,GAAoB8/B,EAAYX,IAA5BxB,EAA0C,CAOjD,IAAKxG,EAAI,EAAGA,EAAI2I,EAAW3I,CAAC,GACxBuG,EAAWvG,GAAKuG,EAAWvG,EAAI2I,GAMnC,IAJAJ,IAAmBI,EACnBnC,GAAgBmC,EAChBC,GAAmBD,EAEd3I,EAAI,EAAGA,EAAI6I,GAAe7I,CAAC,GAC5BsH,EAAIV,GAAU5G,CAAC,EACf+G,GAAU/G,EAAQ2I,GAALrB,EAAiBA,EAAIqB,EAAYV,EAAO,EAEzD,IAAKjI,EAAI,EAAGA,EAAI2I,EAAW3I,CAAC,GAIxBsH,EAAIT,EAAS7G,GACb6G,EAAS7G,GAAW2I,GAALrB,EAAiBA,EAAIqB,EAAYV,GAEpDp/B,GAAQ8/B,CACZ,CAEKG,KACD9I,EAAI+I,GAAcxC,EAAYC,EAAekC,EAAe7/B,CAAI,IACvD,EACLigC,EAAa,GAEbJ,GAAiB1I,EAE7B,CAmSkB,SAAdgJ,IACA,IAAIhJ,EACAiJ,EACAxyD,EACAb,EACAszD,EAEJ,GAA8B,GAA1BC,GAAiB,GAAG/B,GAAxB,CA4BA,IA1BAgC,EAAWC,SAAWC,EACtBF,EAAWG,YAAcC,EACzBJ,EAAWK,WAAaC,GACxBN,EAAWO,WAAaC,GAAe,EACvCR,EAAWS,MAAQC,EACnBV,EAAWW,WAAaC,EACxBZ,EAAWa,SAAW,EAEtBC,EAAWb,SAAWc,EACtBD,EAAWX,YAAcJ,GACzBe,EAAWT,WAAaW,GACxBF,EAAWP,WAAa,EACxBO,EAAWL,MAAQQ,EACnBH,EAAWH,WAAaC,EACxBE,EAAWD,SAAW,EAEtBK,EAAYjB,SAAWkB,EACvBD,EAAYf,YAAc,KAC1Be,EAAYb,WAAae,GACzBF,EAAYX,WAAa,EACzBW,EAAYT,MAAQY,GACpBH,EAAYP,WAAaW,GAKpB90D,EADLa,EAHA6zD,EAAYL,SAAW,EAIRr0D,EAAO+0D,GAAmB,EAAG/0D,CAAI,GAE5C,IADAg1D,GAAgBh1D,GAAQa,EACnBupD,EAAI,EAAGA,EAAK,GAAK0J,GAAgB9zD,GAASoqD,CAAC,GAC5C6K,GAAgBp0D,CAAM,IAAMb,EAYpC,IAJAi1D,GAAgBp0D,EAAS,GAAKb,EAIzBA,EADLszD,EAAO,EACStzD,EAAO,GAAIA,CAAI,GAE3B,IADAk1D,GAAcl1D,GAAQszD,EACjBlJ,EAAI,EAAGA,EAAK,GAAKoK,GAAgBx0D,GAASoqD,CAAC,GAC5C+K,GAAc7B,CAAI,IAAMtzD,EAKhC,IADAszD,IAAS,EACFtzD,EAAOy0D,EAAaz0D,CAAI,GAE3B,IADAk1D,GAAcl1D,GAAQszD,GAAQ,EACzBlJ,EAAI,EAAGA,EAAK,GAAMoK,GAAgBx0D,GAAQ,EAAMoqD,CAAC,GAClD+K,GAAc,IAAM7B,CAAI,IAAMtzD,EAKtC,IAAKqzD,EAAO,EAAGA,GAAQe,EAAcf,CAAI,GACrC+B,EAAa/B,GAAQ,EAEzB,IADAjJ,EAAI,EACGA,GAAK,KAAOwJ,EAAiBxJ,CAAC,IAAIoH,GAAK,EAAG4D,EAAa,EAAE,GAChE,KAAOhL,GAAK,KAAOwJ,EAAiBxJ,CAAC,IAAIoH,GAAK,EAAG4D,EAAa,EAAE,GAChE,KAAOhL,GAAK,KAAOwJ,EAAiBxJ,CAAC,IAAIoH,GAAK,EAAG4D,EAAa,EAAE,GAChE,KAAOhL,GAAK,KAAOwJ,EAAiBxJ,CAAC,IAAIoH,GAAK,EAAG4D,EAAa,EAAE,GAQhE,IAHAC,GAAczB,EAAkBM,EAAc,CAAC,EAG1C9J,EAAI,EAAGA,EAAIqK,EAAarK,CAAC,GAC1BmJ,GAAiBnJ,GAAGoH,GAAK,EACzB+B,GAAiBnJ,GAAGmH,GAAK+D,GAAelL,EAAG,CAAC,EAIhDmL,GAAe,CA/EwB,CAgF3C,CA0BqB,SAAjBC,EACAnE,EACAvuB,GAIA,IAHA,IAAI2yB,EAAIC,EAAS5yB,GACbtuB,EAAIsuB,GAAK,EAENtuB,GAAKmhD,IAEJnhD,EAAImhD,GACLlE,EAAYJ,EAAMqE,EAASlhD,EAAI,GAAIkhD,EAASlhD,EAAE,GAC7CA,CAAC,GAGDi9C,GAAYJ,EAAMoE,EAAGC,EAASlhD,EAAE,IAIpCkhD,EAAS5yB,GAAK4yB,EAASlhD,GACvBsuB,EAAItuB,EAGJA,IAAM,EAEVkhD,EAAS5yB,GAAK2yB,CAClB,CA4OoB,SAAhBG,EAA0BvE,EACfgD,GACX,IAAIjK,EAEAyL,EADAC,EAAU,CAAC,EAEXC,EAAU1E,EAAK,GAAGG,GAClB5gC,EAAQ,EACRolC,EAAY,EACZC,EAAY,EAQhB,IANe,GAAXF,IACAC,EAAY,IACZC,EAAY,GAEhB5E,EAAKgD,EAAW,GAAG7C,GAAK,MAEnBpH,EAAI,EAAGA,GAAKiK,EAAUjK,CAAC,GACxByL,EAASE,EACTA,EAAU1E,EAAKjH,EAAI,GAAGoH,GAClB,EAAE5gC,EAAQolC,GAAaH,GAAUE,IAE5BnlC,EAAQqlC,EACbtB,EAAYkB,GAAQtE,IAAM3gC,EACX,GAAVilC,GACDA,GAAUC,GACVnB,EAAYkB,GAAQtE,EAAE,GAC1BoD,EA9pCM,IA8pCmBpD,EAAE,IACpB3gC,GAAS,GAChB+jC,EA/pCQ,IA+pCmBpD,EAAE,GAE7BoD,EAhqCU,IAgqCmBpD,EAAE,GACxBuE,EAAUD,EAGjBI,GAHJrlC,EAAQ,IACJmlC,GACAC,EAAY,IACA,GACLH,GAAUE,GACjBC,EAAY,EACA,IAEZA,EAAY,EACA,GAGxB,CAMoB,SAAhBE,EAA0B7E,EACnBgD,GACP,IAAIjK,EAEAyL,EADAC,EAAU,CAAC,EAEXC,EAAU1E,EAAK,GAAGG,GAClB5gC,EAAQ,EACRolC,EAAY,EACZC,EAAY,EAQhB,IALe,GAAXF,IACAC,EAAY,IACZC,EAAY,GAGX7L,EAAI,EAAGA,GAAKiK,EAAUjK,CAAC,GAGxB,GAFAyL,EAASE,EACTA,EAAU1E,EAAKjH,EAAI,GAAGoH,GAClB,IAAE5gC,EAAQolC,GAAaH,GAAUE,GAArC,CAEO,GAAInlC,EAAQqlC,EACf,KAAK7E,EAAcyE,EAAQlB,CAAW,EAAuB,GAAX,EAAE/jC,SACnC,GAAVilC,GACHA,GAAUC,IACV1E,EAAcyE,EAAQlB,CAAW,EACjC/jC,CAAK,IAGTwgC,EAltCM,GAktCqBuD,CAAW,EACtCrD,EAAc1gC,EAAQ,EAAG,CAAC,GACnBA,GAAS,IAChBwgC,EAptCQ,GAotCqBuD,CAAW,EACxCrD,EAAc1gC,EAAQ,EAAG,CAAC,IAE1BwgC,EAttCU,GAstCqBuD,CAAW,EAC1CrD,EAAc1gC,EAAQ,GAAI,CAAC,GAG/BklC,EAAUD,EAGNI,GAJJrlC,EAAQ,IAEJmlC,GACAC,EAAY,IACA,GACLH,GAAUE,GACjBC,EAAY,EACA,IAEZA,EAAY,EACA,EAXhB,CAcR,CA8SkB,SAAdG,IACA,GAAkB,GAAdC,EAAiB,CACjB,IAAO3yD,EACP0/B,EAAIkzB,GAAc,EAOlB,IANiB,MAAbC,EACAA,EAAYC,EAAYpzB,EAExBozB,EAAYA,EAAUj7C,KAAO6nB,EACjCA,EAAEktB,IAAM+F,EAAaI,EAEhB/yD,EAAI,EAAGA,EAAI0/B,EAAEktB,IAAK5sD,CAAC,GACpB0/B,EAAEmtB,IAAI7sD,GAAKgzD,EAAWD,EAAa/yD,GACvC2yD,EAAaI,EAAa,CAC9B,CACJ,CAjmDJ,IAAW3+B,EAqEH6+B,EACAJ,EAAWC,EACXI,EAEAP,EAAYI,EACZI,EACAjG,EACAkG,EACAC,GACA7F,EACA8F,GACAC,EACAhE,EACAvC,EACAM,EACAkG,GACAC,GACAC,EACAhF,EACAvB,EACA+B,GACAO,EACAJ,EACAd,GACAoF,GACAC,GACA3E,GAEAgB,EACAa,EACAX,EACAL,GACAoB,EACAnB,EACAc,EACAI,EACAU,EACAM,EACAC,EACA2B,GACA3F,EACAsD,GACAE,GACAH,GACAE,GACAqC,GACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA/GAjF,EACAkF,GACAC,GACAC,GAGAC,GAEAC,GACAC,GACA/H,GACAsC,GACAhC,EACA0B,EACAgG,GAEAC,GAgBAC,GACAxF,GACAnC,GACAI,GACAmB,GAEAqG,GACAtG,GAEAgC,EACAU,GACAC,GACAf,GAEAE,EACAO,EACAI,GAIA8D,GACAjI,GAOA+F,EAuDAmC,GAKAC,GA8BA/E,GAEAU,GAEAI,GAEAkE,GAEAC,GA+FA1C,GAeArF,GAIAG,GASA6H,GAOAC,GAqCAC,GAiBA/F,GA+MAgG,GA8EAC,GAiGAC,GA8DAC,GA0IA/D,GAoJAF,GA0CAkE,GAqMAC,GAiCAC,GA0BAC,GAiFAC,GAyDAC,GAkDAC,GACAvI,EAuBAgE,GAeAwE,GAzkDGjiC,EA4nDRv3B,OA/mDK23D,GAAmB,EACnBC,GAAmB,EAInBE,GAAoB,EAGpBE,GAAkB,GAElBzF,IARAsF,GAAgB,IAHhBpF,EAAY,OAYZlC,EAAgB,EAChB0B,EAAgB,IAChBgG,GAAW,IANXF,GAAe,QAQfG,GANAjI,GAAgB,OAehB5sC,MAAM,kCAAkC,EACpB,GAAK40C,GAAxBxF,GAAa,GACdpvC,MAAM,+BAA+B,EACrB40C,GAAW,EAXX,IAYhB50C,MAAM,mCAAmC,EACH,KAAjB4uC,GACrB5uC,MAAM,wBAAwB,EAC9B80C,GAAmBD,GAEnB1H,IADAmC,GAAgB,MACgB,EAChC/B,GAAY6B,EAAY,EACxBV,GAAU,EAGVD,GAAeW,GADf2F,GAAoBnG,EAAgB1B,EAAgB,GAGpDuD,EAAe,GACfU,GAAkB,EAKlBL,EAAc,GACdI,GAAe,GAIf8D,GAAgB,GANhBzE,GAFAF,GAAe,KAEc,GAH7Be,GAAmB,KASe,EAClCrE,GAAc7lC,UApCE,GAoCwBgmC,EAAgB,GAC7CA,CAAa,EAMxB4F,EAAa,KAuDbmC,GAAgB,WAChBjxD,KAAK4pD,GAAK,EACV5pD,KAAK6pD,GAAK,CACd,EAEIqH,GAAsB,WACtBlxD,KAAK8rD,SAAW,KAChB9rD,KAAKgsD,YAAc,KACnBhsD,KAAKksD,WAAa,KAClBlsD,KAAKosD,WAAa,EAClBpsD,KAAKssD,MAAQ,EACbtsD,KAAKwsD,WAAa,EAClBxsD,KAAK0sD,SAAW,CACpB,EAsBIP,GAAkB,IAAIt2B,MACtB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACrFg3B,GAAkB,IAAIh3B,MACtB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAChGo3B,GAAmB,IAAIp3B,MACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACvDs7B,GAAe,IAAIt7B,MACnB,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAE,EAChEu7B,GAA0B,IAAIv7B,MAC9B,IAAIuyB,EAAyB,EAAG,EAAG,EAAG,CAAC,EACvC,IAAIA,EAAyB,EAAG,EAAG,EAAG,CAAC,EACvC,IAAIA,EAAyB,EAAG,EAAG,GAAI,CAAC,EACxC,IAAIA,EAAyB,EAAG,EAAG,GAAI,EAAE,EACzC,IAAIA,EAAyB,EAAG,EAAG,GAAI,EAAE,EACzC,IAAIA,EAAyB,EAAG,GAAI,GAAI,EAAE,EAC1C,IAAIA,EAAyB,EAAG,GAAI,IAAK,GAAG,EAC5C,IAAIA,EAAyB,EAAG,GAAI,IAAK,GAAG,EAC5C,IAAIA,EAAyB,GAAI,IAAK,IAAK,IAAI,EAC/C,IAAIA,EAAyB,GAAI,IAAK,IAAK,IAAI,CAAC,EAqFhDsG,GAAgB,WAChB,IAAIxiD,EAWJ,OATsB,MAAlB6iD,EAEAA,GADA7iD,EAAI6iD,GAC4Bp7C,KAGhCzH,EAAI,IAAIu8C,EACZv8C,EAAEyH,KAAO,KACTzH,EAAEw8C,IAAMx8C,EAAEi5C,IAAM,EAETj5C,CACX,EAEIm9C,GAAY,SAAUvtD,GACtB,OAAOwtD,EAAS8B,EAAYtvD,EAChC,EAEI0tD,GAAY,SAAU1tD,EAAG8c,GACzB,OAAO0wC,EAAS8B,EAAYtvD,GAAK8c,CACrC,EAOIy4C,GAAe,SAAUpzD,GACzB6wD,EAAWD,EAAaJ,CAAU,IAAMxwD,EACpC4wD,EAAaJ,GAAc7F,IAC3B4F,EAAY,CACpB,EAGI8C,GAAgB,SAAUc,GAC1BA,GAAK,MACDvD,EAAaJ,EAAa7F,GAAgB,GAC1CkG,EAAWD,EAAaJ,CAAU,IAAW,IAAJ2D,EACzCtD,EAAWD,EAAaJ,CAAU,IAAO2D,IAAM,IAE/Cf,GAAiB,IAAJe,CAAQ,EACrBf,GAAae,IAAM,CAAC,EAE5B,EA4BIb,GAAa,SAAU5F,GACvB,OAC0C,KADlCA,EAAO,IAAM6B,GAAc7B,GAC7B6B,GAAc,KAAO7B,GAAQ,IACvC,EAcIH,GAAgB,SAAU6G,EAAMC,EAAQ7P,GAExC,IADA,IACK3mD,EAAI,EAAGA,EAAI2mD,GAAK4N,GAAkBD,GAAiBl3D,OAAQ4C,CAAC,GAC7Du2D,EAAKC,EAASx2D,GACuC,IAAjDs0D,GAAiBh3C,WAAWi3C,EAAe,EAAE,EACrD,OAAOv0D,CACX,EAyMI01D,GAAmB,WACnB,KAAwB,GAAjBrG,GAAmC,MAAbwD,GAAmB,CAC5C,IAAI4D,EAqBJ,GAhBA1J,EAAkB,EAKdO,GAAiBsB,IAClBzB,EAAeG,GAAiBqB,KAK/B+E,EAAmBvF,EAAkBb,CAAa,EAE3B+B,EAAnBqE,KACAA,EAAmBrE,GAEHjC,GAApBsG,EAUA,GAPA+C,EAAQP,GAAa/I,EAAe+B,GAC3BwE,EAAmBtG,CAAa,EACzCiC,GAAiBqE,EAKbA,GAAoBC,GAAoB,CAExC,IADAD,CAAgB,GAEZvG,CAAY,GACZJ,EAAkB,EAMS,GAAtB,EAAE2G,IACXvG,CAAY,EAChB,MACIA,GAAgBuG,EAChBA,EAAmB,EAGnB1G,IAFAA,EAAuC,IAA3BE,EAAWC,KAEIF,GAA+C,IAA/BC,EAAWC,EAAe,IAAcE,QASvFoJ,EAAQP,GAAa,EAA8B,IAA3BhJ,EAAWC,EAAoB,EACvDkC,CAAa,GACblC,CAAY,GAYhB,IAVIsJ,IACAR,GAAgB,CAAC,EACjB1G,EAAkBpC,GAQfkC,EAAgB4F,IAAqB,CAACxF,GACzCN,EAAgB,CACxB,CACJ,EAEIwG,GAAqB,WAErB,KAAwB,GAAjBtG,GAAmC,MAAbwD,GAAmB,CAoC5C,GAhCA9F,EAAkB,EAIlB2B,EAAkBgF,EAClBF,GAAiBtE,GACjBwE,EAAmBtG,EAAgB,EAE/BE,GAAiBsB,IAClBF,EAAkBiF,IAClBxG,EAAeG,GAAiBqB,KAK/B+E,EAAmBvF,EAAkBb,CAAa,GAG9CoG,EADmBrE,EAAnBqE,EACmBrE,EAGnBqE,IAAoBtG,IAzmBlB,KA0mBHD,EAAe+B,IAIdwE,CAAgB,GAMDtG,GAAnBsB,GACDgF,GAAoBhF,EAAiB,CACpC,IAGA+H,EAAQP,GAAa/I,EAAe,EAAIqG,GAC/B9E,EAAkBtB,CAAa,EAOxC,IAFAiC,GAAiBX,EAAkB,EACnCA,GAAmB,EAEfvB,CAAY,GACZJ,EAAkB,EAMQ,GAArB,EAAE2B,IACX+E,GAAsB,EACtBC,EAAmBtG,EAAgB,EACnCD,CAAY,GACRsJ,IACAR,GAAgB,CAAC,EACjB1G,EAAkBpC,EAE1B,MAAkC,GAAvBsG,GAKHyC,GAAa,EAAkC,IAA/BhJ,EAAWC,EAAe,EAAS,IACnD8I,GAAgB,CAAC,EACjB1G,EAAkBpC,GAQtBsG,GAAsB,EACtBtG,CAAY,GACZkC,CAAa,GAQjB,KAAOA,EAAgB4F,IAAqB,CAACxF,GACzCN,EAAgB,CACxB,CACJ,EAEIyG,GAAmB,WACnB,GAAInG,GAAJ,CAGA8D,EADAD,GAAa,EAEb3D,EAAY,EApXZ,IAHA,IAGK5+C,EAAI,EAAGA,EAAIy+C,GAAez+C,CAAC,GAE5By8C,EAAS8B,EAAYv+C,GAAK,EAe9B,GAVA4iD,GAAqB2B,GAAwB1B,IAAiBpH,SAC9DyC,GAAiBqG,GAAwB1B,IAAiBrH,YAG1DgC,GAAuB+G,GAAwB1B,IAAiBlH,WAKhE2C,EAAgBK,GAAcxC,EAF9BqC,EADApC,EAAe,EAG8B,EAAImC,CAAS,IACrC,EACjBG,EAAa,GACbJ,EAAgB,MAFpB,CASA,IAJAI,EAAa,GAINJ,EAAgB4F,IAAqB,CAACxF,GACzCN,EAAgB,EAMpB,IAAKp+C,EADLi8C,EAAY,EACAj8C,EAAIq8C,EAAgB,EAAGr8C,CAAC,GAEhCi8C,GAAcA,GAAaC,GAAgC,IAAhBC,EAAWn8C,IAAcs8C,EAdxE,CAkWAwF,EAAY,KAGZY,GADAV,EADAJ,EAAa,EAITiB,IAAmB,GACnBlF,EAAkBtB,EAAgB,EAClCsG,EAAmB,IAGnBA,EAAmBtG,EAAgB,EAEnCqG,GADAA,GAAsB,GAI1BN,EAAe,EArBL,CAsBd,EAsCI0C,GAAY,SAAUU,EAAMlN,EAAKqN,GAIjC,IAHA,IAAO12D,EAAG+Q,EA3hBkBX,EA6hB5Bu2C,EAAI,EACgB,MAAbkM,GAAqBlM,EAAI+P,GAAW,CAKvC,KAJA12D,EAAI02D,EAAY/P,GACRkM,EAAUjG,MACd5sD,EAAI6yD,EAAUjG,KAEb77C,EAAI,EAAGA,EAAI/Q,EAAG+Q,CAAC,GAChBwlD,EAAKlN,EAAM1C,EAAI51C,GAAK8hD,EAAUhG,IAAIgG,EAAUxJ,IAAMt4C,GAEtD8hD,EAAUxJ,KAAOrpD,EACjB6yD,EAAUjG,KAAO5sD,EACjB2mD,GAAK3mD,EACgB,GAAjB6yD,EAAUjG,MAGViG,GADAziD,EAAIyiD,GACkBh7C,MA5iBFzH,EA6iBJA,GA5iBtByH,KAAOo7C,EACTA,EAAiB7iD,EA6iBjB,CAEA,GAAIu2C,GAAK+P,GAGL3D,EAAaJ,EAAY,CAKzB,IAHQA,EAAaI,GADrB/yD,EAAI02D,EAAY/P,KAEZ3mD,EAAI2yD,EAAaI,GAEhBhiD,EAAI,EAAGA,EAAI/Q,EAAG+Q,CAAC,GAChBwlD,EAAKlN,EAAM1C,EAAI51C,GAAKiiD,EAAWD,EAAahiD,GAEhD41C,GAAK3mD,EACD2yD,IAFJI,GAAc/yD,KAGV2yD,EAAaI,EAAa,EAClC,CACA,OAAOpM,CACX,EAmGImL,GAAiB,WAIjB,IAHA,IAGKnL,EAAI,EAAGA,EAAI8J,EAAa9J,CAAC,GAAIsJ,EAActJ,GAAGmH,GAAK,EACxD,IAAKnH,EAAI,EAAGA,EAAIqK,EAAarK,CAAC,GAAImK,EAAcnK,GAAGmH,GAAK,EACxD,IAAKnH,EAAI,EAAGA,EAAIyK,GAAczK,CAAC,GAAIuK,EAAYvK,GAAGmH,GAAK,EAEvDmC,EAv3BgB,KAu3BanC,GAAK,EAClCsG,GAAcC,GAAiB,EAC/BN,EAAeC,GAAgBC,GAAiB,EAChDC,GAAY,EACZC,GAAe,CACnB,EAuIIvC,GAAgB,SAAUhE,EACnBgD,GASP,IARA,IAGIjK,EAHAgQ,EAAY,IAAI58B,MAAM42B,EAAe,CAAC,EACtCp0D,EAAO,EAONqzD,EAAO,EAAGA,GAAQe,EAAcf,CAAI,GACrCrzD,EAASA,EAAOo1D,EAAa/B,EAAO,IAAO,EAC3C+G,EAAU/G,GAAQrzD,EAUtB,IAAKoqD,EAAI,EAAGA,GAAKiK,EAAUjK,CAAC,GAAI,CAC5B,IAAIiG,EAAMgB,EAAKjH,GAAGoH,GACP,GAAPnB,IAGJgB,EAAKjH,GAAGmH,GAAK+D,GAAe8E,EAAU/J,EAAI,GAAIA,CAAG,EAIrD,CACJ,EAUIkJ,GAAiB,SAAUc,GAC3B,IAGIjQ,EAAGsH,EAHHL,EAAOgJ,EAAK5G,SACZ6G,EAAQD,EAAK1G,YACbM,EAAQoG,EAAKpG,MAEbI,EAAW,CAAC,EACZkG,EAAOtG,EASX,IAFAqD,GAAeqB,GAEVvO,EAHLuL,EAAe,EAGHvL,EAAI6J,EAAO7J,CAAC,GACF,GAAdiH,EAAKjH,GAAGmH,IACRmE,EAAS,EAAEC,GAAgBtB,EAAWjK,EACtCuH,EAAUvH,GAAK,GAEfiH,EAAKjH,GAAGoH,GAAK,EAQrB,KAAOmE,EAAe,GAAG,CACrB,IAAI6E,EAAO9E,EAAS,EAAEC,GAAiBtB,EAAW,EAAI,EAAEA,EAAW,EACnEhD,EAAKmJ,GAAMjJ,GAAK,EAChBI,EAAU6I,GAAQ,EAClB3C,EAAW,GACE,MAATyC,IACAxC,IAAkBwC,EAAME,GAAMhJ,GAEtC,CAMA,IALA6I,EAAKhG,SAAWA,EAKXjK,EAAIuL,GAAgB,EAAQ,GAALvL,EAAQA,CAAC,GACjCoL,EAAenE,EAAMjH,CAAC,EAK1B,KACIA,EAAIsL,EAnmCO,GAomCXA,EApmCW,GAomCcA,EAASC,CAAY,IAC9CH,EAAenE,EArmCJ,CAqmCsB,EAEjCK,EAAIgE,EAvmCO,GA0mCXA,EAAS,EAAE4B,IAAgBlN,EAC3BsL,EAAS,EAAE4B,IAAgB5F,EAG3BL,EAAKkJ,GAAMhJ,GAAKF,EAAKjH,GAAGmH,GAAKF,EAAKK,GAAGH,GAEjCI,EAAUvH,GAAKuH,EAAUD,GAAK,EAC9BC,EAAU4I,GAAQ5I,EAAUvH,GAE5BuH,EAAU4I,GAAQ5I,EAAUD,GAAK,EACrCL,EAAKjH,GAAGoH,GAAKH,EAAKK,GAAGF,GAAK+I,EAG1B7E,EAvnCW,GAunCc6E,CAAI,GAC7B/E,EAAenE,EAxnCJ,CAwnCsB,EAEZ,GAAhBsE,IAETD,EAAS,EAAE4B,IAAgB5B,EA5nCZ,GA27Bf,IAsMA+E,IA7MIC,EACAtQ,EAAGsH,EAEHiJ,EACA7Y,EAVAuP,EAAOgJ,EAAK5G,SACZmH,EAAQP,EAAKxG,WACb1I,EAAOkP,EAAKtG,WACZM,EAAWgG,EAAKhG,SAChBF,EAAakG,EAAKlG,WAClBmG,EAAQD,EAAK1G,YAMbkH,EAAW,EAEVxH,EAAO,EAAGA,GAAQe,EAAcf,CAAI,GACrC+B,EAAa/B,GAAQ,EAOzB,IAFAhC,EAAKqE,EAAS4B,KAAe9F,GAAK,EAE7BkJ,EAAIpD,GAAe,EAAGoD,EAAI/B,GAAe+B,CAAC,GAGhCvG,GADXd,EAAOhC,EAAKA,EADZjH,EAAIsL,EAASgF,IACOlJ,IAAIA,GAAK,KAEzB6B,EAAOc,EACP0G,CAAQ,IAEZxJ,EAAKjH,GAAGoH,GAAK6B,EAGLgB,EAAJjK,IAGJgL,EAAa/B,EAAK,GAClBsH,EAAQ,EACCxP,GAALf,IACAuQ,EAAQC,EAAMxQ,EAAIe,IACtBrJ,EAAIuP,EAAKjH,GAAGmH,GACZsG,IAAe/V,GAAKuR,EAAOsH,GACd,MAATL,IACAxC,IAAkBhW,GAAKwY,EAAMlQ,GAAGoH,GAAKmJ,KAE7C,GAAgB,GAAZE,EAAJ,CAMA,GAEI,IADAxH,EAAOc,EAAa,EACS,GAAtBiB,EAAa/B,IAChBA,CAAI,EAAG,OACX+B,EAAa/B,EAAK,GAClB+B,EAAa/B,EAAO,IAAM,EAC1B+B,EAAajB,EAAW,GAKR,GADhB0G,GAAY,IAQhB,IAAKxH,EAAOc,EAAoB,GAARd,EAAWA,CAAI,GAEnC,IADAjJ,EAAIgL,EAAa/B,GACL,GAALjJ,GAEKiK,GADR3C,EAAIgE,EAAS,EAAEgF,MAGXrJ,EAAKK,GAAGF,IAAM6B,IACdwE,KAAgBxE,EAAOhC,EAAKK,GAAGF,IAAMH,EAAKK,GAAGH,GAC7CF,EAAKK,GAAGH,GAAK8B,GAEjBjJ,CAAC,GAjCC,CA0KViL,GAAchE,EAAMgD,CAAQ,CAChC,EAkHImF,GAAoB,WACpB,IAAIsB,EAgBJ,IAbAlF,EAAclC,EAAeF,EAAWa,QAAQ,EAChDuB,EAAcrB,EAAeD,EAAWD,QAAQ,EAGhDkF,GAAe7E,CAAW,EASrBoG,EAAcjG,GAAe,EAAkB,GAAfiG,GACgB,GAA7CnG,EAAYmE,GAAagC,IAActJ,GADQsJ,CAAW,IAQlE,OAJAjD,IAAe,GAAKiD,EAAc,GAAK,EAAI,EAAI,EAIxCA,CACX,EAOIrB,GAAqB,SAAUsB,EAAQC,EAAQC,GAC/C,IAAIC,EASJ,IAHA5J,EAAcyJ,EAAS,IAAK,CAAC,EAC7BzJ,EAAc0J,EAAS,EAAG,CAAC,EAC3B1J,EAAc2J,EAAU,EAAG,CAAC,EACvBC,EAAO,EAAGA,EAAOD,EAASC,CAAI,GAE/B5J,EAAcqD,EAAYmE,GAAaoC,IAAO1J,GAAI,CAAC,EAIvD0E,EAAcxC,EAAeqH,EAAS,CAAC,EAGvC7E,EAAc3B,EAAeyG,EAAS,CAAC,CAC3C,EAMItB,GAAkB,SAAUyB,GAC5B,IAAIC,EAAUC,EACVP,EAoCIr3D,EAjCR63D,EAAa1K,EAAeoC,EA+B5B,GA9BAuE,GAAaG,IAAkBC,GAG/B4B,GAAe/F,CAAU,EAIzB+F,GAAejF,CAAU,EAUzBwG,EAActB,GAAkB,EAaf,EAAb8B,IADAF,GARJC,EAAevD,GAAiB,EAAI,GAAM,KAD1CsD,EAAYvD,GAAc,EAAI,GAAM,GASrBwD,EACOD,IACG,GAAnBpI,EAoBF,IAXA1B,GAAe2G,IAAoB,GAAKkD,EAAK,CAAC,EAC9CrB,GAAc,EACdb,GAAcqC,CAAU,EACxBrC,GAAc,CAACqC,CAAU,EAQpB73D,EAAI,EAAGA,EAAI63D,EAAY73D,CAAC,GACzBu1D,GAAarI,EAAWqC,EAAkBvvD,EAAE,OAEzC43D,GAAeD,GACtB9J,GAAe4G,IAAoB,GAAKiD,EAAK,CAAC,EAC9CvB,GAAmBhG,EAAkBL,EAAgB,IAErDjC,GAAe6G,IAAiB,GAAKgD,EAAK,CAAC,EAC3C1B,GAAmBjG,EAAWa,SAAW,EAC9BC,EAAWD,SAAW,EACtByG,EAAc,CAAC,EAC1BlB,GAAmBlG,EAAea,CAAa,GAGnDgB,GAAe,EAEJ,GAAP4F,GACArB,GAAc,CACtB,EAMIH,GAAe,SACfrG,EACAvyB,GA2BA,GA1BA+1B,GAAUU,CAAY,IAAMz2B,EAChB,GAARuyB,EAEAI,EAAc3yB,GAAIwwB,EAAE,IAGpB+B,CAAI,GAKJI,EAAcuB,GAAgBl0B,GAAMizB,GAAe,GAAGzC,EAAE,GACxDgD,EAAc2E,GAAW5F,CAAI,GAAG/B,EAAE,GAElCsF,EAAUY,EAAa,IAAMnE,EAC7BqE,IAAaC,IAEjBA,KAAiB,EAGS,IAAN,EAAfJ,KACDD,GAAaG,EAAc,IAAMC,GACjCA,GAAY,EACZC,GAAe,GAGG,EAAlBP,IAAiD,IAAV,KAAfG,GAA4B,CAMpD,IAJA,IAAI+D,EAA4B,EAAf/D,EACbgE,EAAY5K,EAAeoC,EAG1ByI,EAAQ,EAAGA,EAAQhH,EAAagH,CAAK,GACtCF,GAAchH,EAAckH,GAAOlK,IAAM,EAAIiD,GAAgBiH,IAMjE,GAJAF,IAAe,EAIX9D,GAAgB5sC,SAAS2sC,EAAe,CAAC,GAC1C+D,EAAa1wC,SAAS2wC,EAAY,CAAC,EAClC,MAAO,EACf,CACA,OAAQhE,GAAgBgB,GAAkB,GACtCf,IAAiBgB,EAKzB,EAKImB,GAAqB,SACrB8B,EACAC,GACA,IACI56B,EAKA/gC,EACA46D,EALAgB,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAO,EAIX,GAAoB,GAAhBvE,EAAmB,KACH,IAAN,EAALoE,KACDG,EAAOxE,GAAauE,CAAE,KAC1B/6B,EAAuB,IAAlB+1B,GAAU8E,CAAE,IACC,IAAN,EAAPG,GACD3K,EAAcrwB,EAAI26B,CAAK,GAIvB17D,EAAOi1D,GAAgBl0B,GACvBqwB,EAAcpxD,EAAOg0D,GAAe,EAAG0H,CAAK,EAE/B,IADbd,EAAQ9G,GAAgB9zD,MAEpB+gC,GAAMi0B,GAAgBh1D,GACtBsxD,EAAcvwB,EAAI65B,CAAK,GAE3BtH,EAAOuD,EAAUgF,CAAE,IAEnB77D,EAAOk5D,GAAW5F,CAAI,EAGtBlC,EAAcpxD,EAAM27D,CAAK,EAEZ,IADbf,EAAQpG,GAAgBx0D,MAEpBszD,GAAQ4B,GAAcl1D,GACtBsxD,EAAcgC,EAAMsH,CAAK,IAGjCmB,IAAS,EACJH,EAAKpE,IAEdpG,EAl+CgB,IAk+CasK,CAAK,CACtC,EAMI7B,GAAe,GACfvI,EAAgB,SAChBhsD,EACAzE,GAKmBg5D,GAAeh5D,EAA9Bm2D,GAEAiC,GADAlC,IAAezxD,GAAS0xD,CACA,EACxBD,GAAczxD,GAAUu0D,GAAe7C,EACvCA,GAAgBn2D,EAASg5D,KAEzB9C,IAAczxD,GAAS0xD,EACvBA,GAAgBn2D,EAExB,EAOIy0D,GAAiB,SACjBt1D,EACAqwD,GAEA,IADA,IAAI2L,EAAM,EAENA,GAAc,EAAPh8D,EACPA,IAAS,EACTg8D,IAAQ,EACK,EAAR,EAAE3L,IACX,OAAO2L,GAAO,CAClB,EAKIlC,GAAgB,WACG,EAAf9C,EACAiC,GAAclC,EAAU,EACF,EAAfC,GACPgC,GAAajC,EAAU,EAG3BC,EADAD,GAAa,CAEjB,EAwCKl/B,EAAI3R,aAAY2R,EAAI3R,WAAa,IACtC2R,EAAI3R,WAAWC,QAvBG,SAAUvF,EAAKq7C,GAG7BlE,GAAmBn3C,EAFnB,IAAInd,EA16CAA,EAD0Bw4D,EAg7C1BA,EADgB,KADpBjE,GAAkB,KACPiE,EACC7D,GACM6D,EAp6ClB,GAVKA,EAEIA,EAAQ,EACbA,EAAQ,EACK,EAARA,IACLA,EAAQ,GAJRA,EAAQ7D,GAMZf,GAAkB4E,EAElB/I,EADAyD,EAAe,GAEG,MAAdF,EAAJ,CAUA,IAPAC,EAAiBJ,EAAYC,EAAY,KACzCE,EAAa,IAAIj5B,MAAM+yB,EAAa,EACpCI,EAAa,IAAInzB,MAAMq1B,EAAe,EACtCgE,EAAY,IAAIr5B,MAAMi7B,EAAgB,EACtC3B,GAAY,IAAIt5B,MAAM66B,GAAeC,EAAe,EACpDrH,EAAW,IAAIzzB,MAAM,GAAK+6B,EAAQ,EAClC7E,EAAgB,IAAIl2B,MAAMm7B,EAAa,EAClCl1D,EAAI,EAAGA,EAAIk1D,GAAel1D,CAAC,GAC5BiwD,EAAcjwD,GAAK,IAAIm1D,GAE3B,IADArE,EAAgB,IAAI/2B,MAAM,EAAIi3B,EAAc,CAAC,EACxChxD,EAAI,EAAGA,EAAI,EAAIgxD,EAAc,EAAGhxD,CAAC,GAClC8wD,EAAc9wD,GAAK,IAAIm1D,GAE3B,IADAhF,EAAmB,IAAIp2B,MAAM02B,EAAc,CAAC,EACvCzwD,EAAI,EAAGA,EAAIywD,EAAc,EAAGzwD,CAAC,GAC9BmwD,EAAiBnwD,GAAK,IAAIm1D,GAE9B,IADArF,GAAmB,IAAI/1B,MAAMi3B,CAAW,EACnChxD,EAAI,EAAGA,EAAIgxD,EAAahxD,CAAC,GAC1B8vD,GAAiB9vD,GAAK,IAAIm1D,GAE9B,IADAjE,EAAc,IAAIn3B,MAAM,EAAIq3B,GAAe,CAAC,EACvCpxD,EAAI,EAAGA,EAAI,EAAIoxD,GAAe,EAAGpxD,CAAC,GACnCkxD,EAAYlxD,GAAK,IAAIm1D,GACzBpF,EAAa,IAAIqF,GACjBvE,EAAa,IAAIuE,GACjBnE,EAAc,IAAImE,GAClBzD,EAAe,IAAI53B,MAAM42B,EAAe,CAAC,EACzCsB,EAAW,IAAIl4B,MAAM,EAAI02B,EAAc,CAAC,EACxCvC,EAAY,IAAIn0B,MAAM,EAAI02B,EAAc,CAAC,EACzCe,GAAkB,IAAIz3B,MAAM+0B,EAAgB1B,EAAgB,CAAC,EAC7DsE,GAAgB,IAAI33B,MAAM,GAAG,EAC7Bw3B,GAAkB,IAAIx3B,MAAMu3B,EAAgB,EAC5CG,GAAgB,IAAI13B,MAAMi3B,CAAW,EACrC8C,GAAe,IAAI/5B,MAAM3S,SAAS2tC,GAAkB,CAAC,CAAC,CAjC5C,CAu6CV,IAFA,IA72BiCwB,EAAMlN,EAAKqN,EACxC/P,EA42BA4P,EAAO,IAAIx8B,MAAM,IAAI,EACrB0+B,EAAO,GA92B4BpP,EA+2BA,EA/2BKqN,GAAXH,EA+2BAA,GAAcn5D,OA92B3CupD,SA82BsD,GAAlD3mD,EA52BHkzD,IACD0C,GAAiB,EACjB1C,EAAe,GACM,GAAjB7D,IAMH1I,EAAIkP,GAAUU,EAAMlN,EAAKqN,CAAS,IAAMA,EAClCA,EAEPvD,EACOxM,IAEPiN,IAAmB,EACnB8B,GAEAC,IAFiB,EAGA,GAAjBtG,IAC2B,GAAvBoE,IACAyC,GAAa,EAAkC,IAA/BhJ,EAAWC,EAAe,EAAS,EACvD8I,GAAgB,CAAC,EACjB9C,EAAe,IAEZxM,EAAIkP,GAAUU,EAAM5P,EAAI0C,EAAKqN,EAAY/P,CAAC,IArBzCwM,EAAe,GACR,KAu2B8C,CAEzD,IADA,IAAIuF,EAAO,IAAI3+B,MAAM/5B,CAAC,EACjB+Q,EAAI,EAAGA,EAAI/Q,EAAG+Q,CAAC,GAChB2nD,EAAK3nD,GAAK5H,OAAOwvD,aAAapC,EAAKxlD,EAAE,EAEzC0nD,EAAKA,EAAKr7D,QAAUs7D,EAAK5oD,KAAK,EAAE,CACpC,CAEA,OADAwkD,GAAmB,KACZmE,EAAK3oD,KAAK,EAAE,CACvB,C,2DC9nDJjT,OAAOQ,QAAU,GAEjBC,QACGX,OAAO,0BAA2B,CACjC,gBACA,aACA,YACA,mBACA,QACA,sBACA,oBACA,aACA,SACA,UACA,WACA,gBACA,UACAY,EAAQ,sDAAe,EACvB,eACD,EACAC,OAAO,CAAD,0DAAC,SAAUC,EAAgBC,EAAoBC,GAEpDD,EACGE,KAAK,GAAI,GAAG,EACZC,UAAU,OAAO,EAGpBF,EAAkBG,WAAW,EAAE,EAE/BL,EACGM,MAAM,QAAS,CACdC,SAAU,GACVC,SAAU,sBACVC,WAAY,YAId,CAAC,EACAH,MAAM,gBAAiB,CACtBiB,IAAK,IACLC,YAAa,2BACbf,WAAY,YACZgB,aAAc,QACdV,KAAM,CACJ+B,UAAW,gBACXC,aAAc,cAChB,CACF,CAAC,EACAzC,MAAM,sBAAuB,CAC5BiB,IAAK,iBACLC,YAAa,iCACbf,WAAY,cACZgB,aAAc,UACd8T,OAAQ,CACN0zB,eAAgB,EAClB,EACAloC,KAAM,CACJ+B,UAAW,iBACXC,aAAc,oBAChB,CACF,CAAC,EACAzC,MAAM,uBAAwB,CAC7BiB,IAAK,kBACLC,YAAa,kCACbf,WAAY,gBACZgB,aAAc,MACdV,KAAM,CACJ+B,UAAW,kBACXq4D,YAAa,gBACf,CACF,CAAC,EACA76D,MAAM,qBAAsB,CAC3BiB,IAAK,gBACLC,YAAa,gCACbf,WAAY,mBACZgB,aAAc,YACdV,KAAM,CACJ+B,UAAW,gBACXC,aAAc,cAChB,CACF,CAAC,CACL,EAAC,EACAhD,OAAO,CAAD,WAAC,SAAU4b,GAEhBA,EAASvX,MAAM,YAAavE,QAAQqB,KAAK9B,OAAOqU,SAAS,CAAC,EAC1DkI,EAASvX,MAAM,oBAAqBvE,QAAQqB,KAAK9B,OAAOwc,iBAAiB,CAAC,EAC1ED,EAASvX,MAAM,OAAQvE,QAAQqB,KAAK9B,OAAO2kD,IAAI,CAAC,CAClD,EAAC,EACAhkD,OAAO,CAAD,wBAAC,SAAU8b,GAGhBA,EAAsBC,eAAiB,EAMzC,EAAC,EACAC,IAAI,CAAD,kGAAC,SAAUvI,EAAYwI,EAAWC,EAAW5B,EAAU6B,EAAUN,EAAmBvV,EAAQsR,GAE1F4E,EAAML,EAAS,OAAO,EAEtB9c,OAAO6U,WAAasI,GACtBtI,UAAUnM,KAAK,CAAE6U,MAAO,YAAaJ,IAAKA,CAAI,CAAC,EAGjD/I,EAAW8J,IAAI,sBAAuB,SAAUX,EAAOY,EAASC,EAAUC,EAAWC,EAAYC,GAC/FnK,EAAWuK,cAAgBN,EAAUvW,KACrCsM,EAAWzM,aAAewW,EAAQrW,KAElCmT,EAAS,WAoCP,GAnCA7G,EAAW1Q,UAAaya,EAAQxc,MAAQwc,EAAQxc,KAAK+B,UAAaya,EAAQxc,KAAK+B,UAAY,sBAAwB,GAG/G1D,OAAO6U,WAAaT,EAAW1Q,WAsBjC1D,OAAO6U,UAAUnM,KAAK,CACpB6U,MAAO,gBACPuB,WAAY,CACVC,OAlBwB,OAHtBH,EAAUrG,EAAQlY,SAAS2e,UAGnBC,MAAM,CAAC,CAAC,IAClBL,EAAUA,EAAQK,MAAM,EAAG,CAAC,CAAC,GAE3BhY,GAAUA,EAAOW,UAAYX,EAAOW,SAASzF,KAAO8E,EAAOW,SAASzF,IAAI+c,SAG1EN,GAAW3X,EAAOW,SAASzF,IAAI+c,QAI/BN,EADE,CAAC,GAAI,KAAKlK,SAASkK,CAAO,EAClB,cAELA,GAOLlb,UAAW0Q,EAAW1Q,SACxB,CACF,CAAC,EAICyb,kBAAmB,CAGrB,IAAI9e,EAAW8d,EAAQrW,KACnBnG,EAAOwc,EAAQxc,KACnB,GAAIA,GAAQA,EAAKgC,aACftD,EAAWsB,EAAKgC,iBACX,CAEL,IAAIyb,GADJ/e,EAAWA,EAASqa,QAAQ,SAAU,EAAE,GACfjG,MAAM,GAAG,EAClC,GAAI2K,GAAgC,EAAnBA,EAAU7e,OAEzB,IAAK,IADLF,EAAW,GACF8C,EAAI,EAAGA,EAAIic,EAAU7e,OAAQ4C,CAAC,GACrC9C,GAAuB+e,EAAUjc,GAAGkc,OAAO,CAAC,EAAEC,YAAY,EAAIF,EAAUjc,GAAG8b,MAAM,CAAC,OAGpF5e,EAAWA,EAASgf,OAAO,CAAC,EAAEC,YAAY,EAAIjf,EAAS4e,MAAM,CAAC,CAElE,CAEAjf,OAAOuf,KAAO,IAAIJ,kBAAkB,CAClCK,YAAa,kBACb9F,SAAUrZ,EACVof,MAAO,GACPC,OAAQ,GACRC,SAAU,wBACVC,aAAc,2BAChB,EAAG,cAAc,CACnB,CACF,CAAC,CACH,CAAC,CACH,EAAC,C,mFChLHnf,QAAQX,OAAO,oBAAqB,EAAE,EAGjCuB,WAAW,iBAAkB,CAAC,SAAU,SAAU,SAAU6F,EAAQuL,GACjEvL,EAAOuL,OAASA,CACpB,EAAE,EAEDitC,UAAU,YAAa,CAAC,SAAU,SAAUjtC,GACzC,MAAO,CACHosC,SAAU,IACVx9C,WAAY,iBACZy9C,MAAO,CACH1/C,GAAI,IACJ0I,KAAM,IACNwhB,SAAU,IACVhB,MAAO,IACPV,SAAS,IACTjmB,KAAM,KACNumB,IAAK,IACL6E,QAAS,IACb,EACA27B,WAAY,GACZtmD,aAA2C,cAA7BpC,OAAOK,SAASm/C,SAA2B,QAAU,IAAM,8BACzER,KAAM,SAAUF,EAAOthC,EAASyhC,GAC5BH,EAAMG,MAAQA,EACdH,EAAMkd,OAAS,WACX,OAAOvpD,EAAOwpD,WAAWhd,EAAM7/C,EAAE,CACrC,EACA0/C,EAAMt2B,QAAU,SAASppB,EAAI0I,EAAMwgB,EAAOgB,EAAU1B,EAAUjmB,EAAMu6D,GAC5D/xC,EAAO1X,EAAO+V,QAAQppB,EAAI0I,EAAMwgB,EAAOgB,EAAU1B,EAAUjmB,EAAMu6D,CAAsB,EAExFpd,EAAM/xB,SACL+xB,EAAM/xB,QAAQ5C,EAAM3M,CAAO,CAEnC,CACJ,CACJ,CACJ,EAAE,EAEDkiC,UAAU,OAAQ,CAAC,KAAM,SAAU,aAAc,SAAU,oBAAqB,SAAUx6C,EAAI+B,EAAQmN,EAAY3B,EAAQ+J,GACvH,MAAO,CACHqiC,SAAU,IACVx9C,WAAY,iBACZy9C,MAAO,CACL7nC,OAAQ,KACRiQ,WAAY,KACZO,WAAY,KACZ00C,kBAAmB,IACrB,EACA/5D,aAA2C,cAA7BpC,OAAOK,SAASm/C,SAA2B,QAAU,IAAM,yBACzER,KAAM,SAAUF,EAAOthC,EAASyhC,GAY5B,SAASmd,EAAKC,GACVvd,EAAMwd,YAAc,GAEpBp3D,EAAGyH,IAAI,CACH8F,EAAO8pD,YAAY,EACnB9pD,EAAO+pD,eAAeH,CAAc,EACvC,EACE75D,KAAK,SAAUtC,GACdA,EAAQgL,OAAO,SAAUuxD,EAAO5+B,GAC9BihB,EAAM4d,WAAiC,EAApB7+B,EAAQ5U,UAC3B61B,EAAM51B,WAAa2U,EAAQ8+B,WAC3B7d,EAAM8d,WAAa/+B,EAAQ5P,WAC3B6wB,EAAMpoC,UAAYmnB,EAAQg/B,aAC1B/d,EAAMge,WAAaj/B,EAAQk/B,WAC3Bje,EAAMke,mBAAqBn/B,EAAQo/B,mBACnCne,EAAMoe,oBAAsBr/B,EAAQs/B,oBACpCre,EAAMse,UAAYv/B,EAAQw/B,UAC1Bve,EAAMwe,SAAWz/B,EAAQ0/B,QAC3B,CAAC,EAEDze,EAAMwd,YAAc,EACxB,CAAC,CAKL,CArCAxd,EAAM0e,SAAW,aAAcve,EAC/BH,EAAMwd,YAAc,GACpBxd,EAAMp8B,kBAAoBlG,EAE1BsiC,EAAM53B,WAAa,GACnB43B,EAAM51B,WAAazW,EAAO0W,cAAc,EAExC21B,EAAMlnC,GAAK,SAAUmH,EAAOpd,GACxBsF,EAAO2Q,GAAGmH,EAAOte,QAAQohB,OAAO,CAAE5H,aAAc,EAAK,EAAGtY,CAAI,CAAC,CACjE,EA8BAyS,EAAW8J,IAAI,gBAAiB,WAC5Bk+C,EAAK,EAAK,CACd,CAAC,EAEDA,EAAK,EAAK,EAEVtd,EAAM2e,mBAAqB,WACzB,IAAIlqD,EAAIurC,EAAMqd,kBAEVv0C,EAAW,CACbxoB,GAAImU,EAAEwU,kBACNC,MAAOzU,EAAE0U,gBACTC,IAAK3U,EAAE4U,oBACPC,IAAK7U,EAAE8U,iBACPC,MAAO/U,EAAEgV,mBACX,EAIA,OAFA9V,EAAO+V,QAAQjV,EAAEQ,eAAgBR,EAAEkV,YAAalV,EAAEmqD,UAAW,EAAG91C,EAAU,CAAEe,UAAWpV,EAAEqV,aAAcC,KAAMtV,EAAEuV,iBAAkBtB,YAAajU,EAAE1M,WAAY,EAAG,CAAC,EAChKi4C,EAAMr3B,WAAa,EAErB,EAEAq3B,EAAM6e,YAAc,SAAUz0C,GAC5B,IAAI00C,EAAgBnrD,EAAO0W,cAAc,EAOzC,OANA1W,EAAOorD,cAAc30C,CAAU,EAC/B41B,EAAM51B,WAAaA,EACnBkzC,EAAK,EAAI,EACLwB,GAAiB10C,GACjB9U,EAAW8c,WAAW,gBAAiB,EAAE,EAEtC,EACT,CACJ,CACJ,CACJ,EAAE,EAEDwuB,UAAU,UAAW,CAAC,aAAc,SAAU,SAAUtrC,EAAY3B,GACjE,MAAO,CACHosC,SAAU,IACVx9C,WAAY,iBACZy9C,MAAO,GACP4J,WAAY,GACZtmD,aAA2C,cAA7BpC,OAAOK,SAASm/C,SAA2B,QAAU,IAAM,4BACzER,KAAM,SAAUF,GACZ1qC,EAAW8J,IAAI,gBAAiB,YAO/B,CAQL,CACJ,CACJ,EAAE,C,wEC1JN,aAGAzd,QAAQX,OAAO,SAAU,CAAC,oBAAoB,EAEzC6c,IAAI,CAAC,aAAc,YAAa,WAAY,SAAU,aAAc,QAAS,SAAUvI,EAAYwI,EAAW3B,EAAUxI,EAAQg+B,EAAYqtB,GAEzI1pD,EAAW8J,IAAI,gBAAiB,WAC5BzL,EAAOsJ,MAAM/b,OAAOC,aAAa,CAAC,CACtC,CAAC,EAGGQ,QAAQs9D,SAASvqC,KAAKC,MAAMqqC,EAAM39C,IAAIngB,OAAOC,aAAa,CAAC,CAAC,CAAC,EAC7DwS,EAAOurD,SAASxqC,KAAKC,MAAMqqC,EAAM39C,IAAIngB,OAAOC,aAAa,CAAC,CAAC,CAAC,EAE5DwS,EAAO0jB,KAAK,CAEpB,EAAE,EAEDwyB,QAAQ,SAAU,CAAC,aAAc,WAAY,KAAM,aAAc,QAAS,kBAAmB,WAAY,SAAUv0C,EAAY6G,EAAU/V,EAAIurC,EAAYqtB,EAAOnrD,EAAiBlR,GAE9K4F,KAAK8uB,KAAO,WACV9uB,KAAK42D,MAAQ,CACX/0C,WAAY,GACZe,MAAO,EACT,CACF,EAEF5iB,KAAKmhB,QAAU,SAAUppB,EAAI0I,EAAMwgB,EAAOgB,EAAU1B,EAAUjmB,EAAMu6D,GAE9Dl8D,OAAO6U,UAAY7U,OAAO6U,WAAa,GACvCA,UAAUnM,KAAK,CAAE,MAAS,WAAY,CAAC,EAEvC,IAAIszD,EAAS30D,KAAK40D,WAAW78D,CAAE,EAI/B,OAFA88D,EAAyBA,GAA0B,EAEpC,KAAXF,IAAqB,CAACE,GAAsDF,EAAOzyC,YAAY,EAAIkZ,OAAOnZ,CAAQ,EAAK4yC,IACvHF,EAAO1oB,YAAYhqB,EAAU,EAAI,EAC1B0yC,IAEHkC,EAAU,IAAIztB,EAAWrxC,EAAI0I,EAAMwgB,EAAOgB,EAAU1B,EAAUjmB,CAAI,EACtE0F,KAAK42D,MAAMh0C,MAAMvhB,KAAKw1D,CAAO,EAC7B9pD,EAAW8c,WAAW,gBAAiB,EAAE,EACzC9c,EAAW8c,WAAW,mBAAoBgtC,CAAO,EAC1CA,EAEf,EAEA72D,KAAKyR,QAAU,SAAU1Z,EAAI0I,EAAMwgB,EAAOgB,EAAU1B,EAAUjmB,GAE1D,IAKQu8D,EALJlC,EAAS30D,KAAK40D,WAAW78D,CAAE,EAEhB,KAAX48D,EACAA,EAAO1oB,YAAYhqB,EAAU,EAAK,GAE9B40C,EAAU,IAAIztB,EAAWrxC,EAAI0I,EAAMwgB,EAAOgB,EAAU1B,EAAUjmB,CAAI,EACtE0F,KAAK42D,MAAMh0C,MAAMvhB,KAAKw1D,CAAO,EAC7B9pD,EAAW8c,WAAW,gBAAiB,EAAE,GAE7C9c,EAAW8c,WAAW,mBAAoBgtC,CAAO,CACrD,EAEA72D,KAAK40D,WAAa,SAAUkC,GAEpB53D,EAAIikB,EAAEH,KAAKhjB,KAAK0iB,QAAQ,EAAEE,MAAO,CAAEjW,IAAKmqD,CAAO,CAAC,EACpD,OAAU3rD,SAANjM,GACQA,CAChB,EAEAc,KAAKw2D,cAAgB,SAAUn+D,GAC7B2H,KAAK42D,MAAM/0C,WAAaxpB,CAC1B,EACA2H,KAAK8hB,cAAgB,WACnB,OAAK9hB,KAAK0iB,QAAQ,EAAEE,MAAM1pB,QAEnB8G,KAAK0iB,QAAQ,EAAEb,YADb,EAEX,EAIA7hB,KAAK+2D,iBAAmB,WACtB,IAAIx6C,EAAI1e,EAAG8e,MAAM,EAajB,OAXA9e,EAAGyH,IACDtF,KAAK0iB,QAAQ,EAAEE,MAAMhrB,IAAI,SAAUkrB,GACjC,OAAOA,EAAKk0C,mBAAmB,CACjC,CAAC,CAAC,EAED77D,KAAK,SAAUtC,GACd0jB,EAAE/jB,QAAQK,EAAQgL,OAAO,SAAUuxD,EAAOx8C,GACxC,OAAOw8C,EAAQx8C,CACjB,EAAG,CAAC,CAAC,CACP,CAAC,EAEI2D,EAAEK,OACX,EAEA5c,KAAKi3D,QAAU,SAAUl1C,GACrB/hB,KAAK42D,MAAQ70C,CACjB,EACA/hB,KAAK0iB,QAAU,WACX,OAAO1iB,KAAK42D,KAChB,EAEA52D,KAAK8vC,SAAW,SAAUonB,GACxBl3D,KAAK42D,MAAMh0C,MAAQ5iB,KAAK42D,MAAMh0C,MAAM5kB,OAAO,SAAUmD,EAAGrF,GAAK,OAAOo7D,EAAK/1D,EAAGrF,CAAC,CAAG,CAAC,EACjFiR,EAAW8c,WAAW,qBAAsB,EAAE,EAC9C9c,EAAW8c,WAAW,gBAAiB,EAAE,CAC3C,EACA7pB,KAAKwM,SAAW,WACZ,OAAOxM,KAAK0iB,QAAQ,EAAEE,KAC1B,EAEA5iB,KAAKk1D,YAAc,WACf,IAAI34C,EAAI1e,EAAG8e,MAAM,EAcjB,OAZA9e,EAAGyH,IAAItF,KAAK0iB,QAAQ,EAAEE,MAAMhrB,IAAI,SAASkrB,GACrC,OAAOA,EAAKkrB,SAAS,CACzB,CAAC,CAAC,EACD7yC,KAAK,SAAStC,GACRA,EAAQK,OACPqjB,EAAE/jB,QAAQK,EAAQgL,OAAO,SAASuxD,EAAOz3D,GACrC,OAAOy3D,EAAQz3D,CACnB,CAAC,CAAC,EAEF4e,EAAE/jB,QAAQ,CAAC,CACnB,CAAC,EAEM+jB,EAAEK,OACb,EAEA5c,KAAKm1D,eAAiB,SAAUH,GAC9B,IAAIz4C,EAAI1e,EAAG8e,MAAM,EACb5c,EAAOC,KAsCX,OApCKD,EAAK62D,MAAM/0C,YAAemzC,IAC7BA,EAAiB,IAGK,EAApBj1D,EAAK2uC,WAAW,EAClBpjC,EAAgB6rD,YAAY,CAC1B78D,KAAM,CACJqC,SAAUhE,OAAOC,aAAa,EAC9BgpB,UAAWxnB,EAASuhB,QAAUvhB,EAASuhB,QAAQ9Y,GAAK,KACpDmL,QAAS5T,EAAS4T,QAClB6T,WAAY9hB,EAAK62D,MAAM/0C,WACvBmzC,eAAgBA,EAChBjzC,KACShiB,EAAKyM,SAAS,EAAE5U,IAAI,SAAUuJ,GACnC,MAAO,CACL6P,eAAgB7P,EAAE6gB,MAAM,EACxBC,SAAU9gB,EAAE+gB,YAAY,EACxBV,KAAMrgB,EAAE2O,QAAQ,EAAE0R,KAClBW,gBAAiBhhB,EAAE2O,QAAQ,EAAEqS,gBAC7BC,wBAAyBjhB,EAAE2O,QAAQ,EAAEuS,eACrCX,UAAWvgB,EAAE2O,QAAQ,EAAE4R,SACzB,CACF,CAAC,CAEL,EACAjL,iBAAkB,EACpB,EAAG,EAAI,EACJtb,KAAK,SAAUb,GACdiiB,EAAE/jB,QAAQ8B,CAAI,CAChB,CAAC,EAGHsZ,EAAS,WACP2I,EAAE/jB,QAAQ,CAAC,CACb,CAAC,EAEI+jB,EAAEK,OACX,EAEA5c,KAAKqP,UAAY,WACb,IACIkN,EAAI1e,EAAG8e,MAAM,EAYjB,OAVA9e,EAAGyH,IAAI,CAHItF,KAIJk1D,YAAY,EAJRl1D,KAKJm1D,eAAe,EACrB,EACEh6D,KAAK,SAAUtC,GACZ0jB,EAAE/jB,QAAQK,EAAQgL,OAAO,SAAUuxD,EAAO5+B,GACxC,OAAOA,EAAQg/B,YACjB,CAAC,CAAC,CACN,CAAC,EAEIj5C,EAAEK,OACb,EAEA5c,KAAK0uC,WAAa,WAChB,OAAO1uC,KAAK0iB,QAAQ,EAAEE,MACnBhrB,IAAI,SAAUuJ,GAAK,OAAOA,EAAEi2D,SAAW,CAAC,EACxCvzD,OAAO,SAAUuxD,EAAOz3D,GACvB,OAAOy3D,EAAQz3D,CACjB,EAAG,CAAC,CACR,EAEAqC,KAAK+Y,WAAa,SAAUsS,EAAOpP,IAC5BA,GAAStjB,OAAO6d,QAAQ,4CAA4C,KACnExW,KAAK42D,MAAMh0C,MAAMgI,OAAOS,EAAO,CAAC,EAChCte,EAAW8c,WAAW,qBAAsB,EAAE,EAC9C9c,EAAW8c,WAAW,gBAAiB,EAAE,EAEjD,EAEA7pB,KAAKygB,MAAQ,WACTzgB,KAAK42D,MAAM/0C,WAAa,GACxB7hB,KAAK42D,MAAMh0C,MAAQ,GACnBxR,aAAa2H,WAAWpgB,OAAOC,aAAa,CAAC,EAC7CmU,EAAW8c,WAAW,gBAAiB,EAAE,CAC7C,EAEA7pB,KAAK22D,SAAW,SAAUU,GACtB,IAAIC,EAAQt3D,KACZs3D,EAAMxoC,KAAK,EACXwoC,EAAMV,MAAM/0C,WAAaw1C,EAAWx1C,WAEpCzoB,QAAQypB,QAAQw0C,EAAWz0C,MAAO,SAAUE,GACxCw0C,EAAMV,MAAMh0C,MAAMvhB,KAAK,IAAI+nC,EAAWtmB,EAAKnW,IAAKmW,EAAKy0C,MAAOz0C,EAAK00C,OAAQ10C,EAAKs0C,UAAWt0C,EAAK20C,UAAW30C,EAAK40C,KAAK,CAAC,CACxH,CAAC,EACD13D,KAAK0U,MAAM/b,OAAOC,aAAa,CAAC,CACpC,EAEAoH,KAAK0U,MAAQ,WACX,OAAO+hD,EAAM99C,IAAIhgB,OAAOC,aAAa,EAAGuzB,KAAKwrC,UAAU33D,KAAK0iB,QAAQ,CAAC,CAAC,CACxE,EAEA1iB,KAAKyoC,KAAO,SAASjxB,GACjB,IAAI6/C,EAAalrC,KAAKC,MAAMqqC,EAAM39C,IAAItB,CAAS,CAAC,EAC5C8/C,EAAQt3D,KACZs3D,EAAMxoC,KAAK,EACXwoC,EAAMV,MAAM/0C,WAAaw1C,EAAWx1C,WAEpCzoB,QAAQypB,QAAQw0C,EAAWz0C,MAAO,SAAUE,GACxCw0C,EAAMV,MAAMh0C,MAAMvhB,KAAK,IAAI+nC,EAAWtmB,EAAKnW,IAAKmW,EAAKy0C,MAAOz0C,EAAK00C,OAAQ10C,EAAKs0C,UAAWt0C,EAAK20C,UAAW30C,EAAK40C,KAAK,CAAC,CACxH,CAAC,CACL,CACJ,EAAE,EAEDh/C,QAAQ,aAAc,CAAC,aAAc,YAAa,KAAM,WAAY,SAAU3L,EAAY6qD,EAAW/5D,EAAI+V,GAE3F,SAAPkP,EAAiB/qB,EAAI0I,EAAMwgB,EAAOgB,EAAU1B,EAAUjmB,GACtD0F,KAAK63D,MAAM9/D,CAAE,EACbiI,KAAK83D,QAAQr3D,CAAI,EACjBT,KAAK+3D,SAAS92C,CAAK,EACnBjhB,KAAKisC,YAAYhqB,CAAQ,EACzBjiB,KAAKg4D,YAAYz3C,CAAQ,EAC3BvgB,KAAKwtC,QAAQlzC,CAAI,EAClB0F,KAAKi4D,IAAMj4D,KAAKo3D,SACjB,CAkIA,OAhIAt0C,EAAKyK,UAAUsqC,MAAQ,SAAU9/D,GACzBA,EAAIiI,KAAK2M,IAAM5U,EAEfygB,QAAQtB,MAAM,wBAAwB,CAE9C,EAEA4L,EAAKyK,UAAUvL,MAAQ,WACnB,OAAOhiB,KAAK2M,GAChB,EAEAmW,EAAKyK,UAAUuqC,QAAU,SAAUr3D,GAC3BA,EAAMT,KAAKu3D,MAAQ92D,EAEnB+X,QAAQtB,MAAM,yBAAyB,CAE/C,EACA4L,EAAKyK,UAAU2qC,QAAU,WACrB,OAAOl4D,KAAKu3D,KAChB,EAEAz0C,EAAKyK,UAAUwqC,SAAW,SAAU92C,IAE5BA,EADQk3C,WAAWl3C,CAAK,IAEpBA,GAAS,GACTzI,QAAQtB,MAAM,wBAAwB,EAE1ClX,KAAKw3D,OAAUv2C,GAEfzI,QAAQtB,MAAM,0BAA0B,CAEhD,EAEA4L,EAAKyK,UAAUugB,SAAW,WACtB,OAAO9tC,KAAKw3D,MAChB,EAEA10C,EAAKyK,UAAU0e,YAAc,SAAUhqB,EAAUisB,GAGxB/iC,MAFVnL,KAEHo3D,YAFGp3D,KAGCisC,YAAYhf,UAChBt0B,OAAOu0B,aAJJltB,KAIsBisC,YAAYhf,QAAQ,EAJ1CjtB,KAMFisC,YAAYhf,SAAWt0B,OAAO+lB,WAAW,WAC1C3R,EAAW8c,WAAW,gBAAiB,EAAE,CAC7C,EAAG,GAAG,IAIN5H,EADWiB,SAASjB,CAAQ,GACjB,GAAM,GACA,KAAbisB,EACAluC,KAAKo3D,WAAan1C,EAElBjiB,KAAKo3D,UAAYn1C,EAEnBjiB,KAAKo3D,UAAY,IAAGp3D,KAAKo3D,UAAY,GACzCp3D,KAAKi4D,IAAMj4D,KAAKo3D,YAGdp3D,KAAKo3D,UAAY,EACjB5+C,QAAQ41B,KAAK,oDAAoD,EAEzE,EAEAtrB,EAAKyK,UAAUrL,YAAc,WACzB,OAAOliB,KAAKo3D,SAChB,EAEAt0C,EAAKyK,UAAUigB,QAAU,SAAUlzC,GAC3BA,IAAM0F,KAAK03D,MAAQp9D,EAC3B,EAEAwoB,EAAKyK,UAAUzd,QAAU,WACrB,OAAI9P,KAAK03D,QAELl/C,QAAQ41B,KAAK,uBAAuB,EAC7B,GAEf,EAEAtrB,EAAKyK,UAAUygB,SAAW,WACtB,IAEIJ,EAFArxB,EAAI1e,EAAG8e,MAAM,EACb5c,EAAOC,KAyBX,OArBGA,KAAKo4D,YAAY,GAA6B,EAAxBp4D,KAAKo4D,YAAY,EAAErgE,GACxCiI,KAAKg3D,mBAAmB,EAAE77D,KAAK,SAASk9D,GAEhCzqB,EADD7tC,EAAK+P,QAAQ,EAAEkZ,YACNjpB,EAAK+P,QAAQ,EAAEkZ,YAAcjpB,EAAK+tC,SAAS,EAAIuqB,EAE/Ct4D,EAAKmiB,YAAY,EAAIniB,EAAK+tC,SAAS,EAAIuqB,EAEnD97C,EAAE/jB,QAAQo1C,GAAS7tC,EAAK+P,QAAQ,EAAEw9B,WAAa,GAAKM,EAAQ7tC,EAAK+P,QAAQ,EAAEw9B,SAAS,CACxF,CAAC,EAGD15B,EAAS,WAEDg6B,EADD7tC,EAAK+P,QAAQ,EAAEkZ,YACNjpB,EAAK+P,QAAQ,EAAEkZ,YAAcjpB,EAAK+tC,SAAS,EAE3C/tC,EAAKmiB,YAAY,EAAIniB,EAAK+tC,SAAS,EAE/CvxB,EAAE/jB,QAAQo1C,GAAS7tC,EAAK+P,QAAQ,EAAEw9B,WAAa,GAAKM,EAAQ7tC,EAAK+P,QAAQ,EAAEw9B,SAAS,CACxF,CAAC,EAGE/wB,EAAEK,OACb,EAEAkG,EAAKyK,UAAUyqC,YAAc,SAASz3C,GAC/BA,IACCvgB,KAAKy3D,UAAYl3C,EACzB,EAEAuC,EAAKyK,UAAU6qC,YAAc,WACzB,GAAGp4D,KAAKy3D,UACJ,OAAOz3D,KAAKy3D,SACpB,EAEA30C,EAAKyK,UAAU+qC,iBAAmBV,EAAU9+C,IAAI,iBAAiB,EAEjEgK,EAAKyK,UAAUypC,mBAAqB,WAChC,GAAGh3D,KAAKs4D,iBACJ,OAAOt4D,KAAKs4D,iBAAiBt4D,IAAI,CACzC,EAEO8iB,CAEX,EAAE,EAEDw+B,QAAQ,QAAS,CAAC,UAAW,SAAUpwC,GAEpC,MAAO,CAEN4H,IAAK,SAAUjR,GACd,IACC,OAAIqJ,EAAQE,aAAavJ,GACjBzO,QAAQmY,SAASL,EAAQE,aAAavJ,EAAI,EAE3C,EAKR,CAHA,MAAM1P,GAEL,MAAO,EACR,CACE,EAEAwgB,IAAK,SAAU9Q,EAAK+Q,GAOhB,OALYzN,SAARyN,EACA1H,EAAQE,aAAa2H,WAAWlR,CAAG,EAEnCqJ,EAAQE,aAAavJ,GAAOzO,QAAQsY,OAAOkH,CAAG,EAE3C1H,EAAQE,aAAavJ,EAChC,CACJ,CACJ,EAAE,EAED7N,WAAW,iBAAkB,CAAC,SAAU,SAAU,SAAU6F,EAAQuL,GACjEvL,EAAOuL,OAASA,CACpB,EAAE,EAEDzN,MAAM,UAAW,YAAY,C,yXCnalC,YACE,IAEA46D,EAAMn/D,QAAQX,OAAO,UAAW,EAAE,EAElC8/D,EAAIC,SAAS,kBAAmB,WAC9B,MAAO,CACL3f,QAAS,CACP4f,gBAAiB,yCACnB,EACAC,KAAM,WACJ,OAAO14D,KAAK64C,OACd,EACAlgC,IAAK,SAASggD,EAAWh7D,GACvB,IAAIw9B,EAAG2yB,EAAG8K,EACV,GAAyB,qBAAdD,EAAS,cAATA,CAAS,GAQlB,OAAO34D,KAAK64C,QAAQ8f,GAAah7D,EANjC,IAAKw9B,KADLy9B,EAAW,GACDD,EACR7K,EAAI6K,EAAUx9B,GACdy9B,EAASv3D,KAAKrB,KAAK64C,QAAQ1d,GAAK2yB,CAAC,EAEnC,OAAO8K,CAIX,CACF,CACF,CAAC,EAEDL,EAAIlgB,UAAU,cAAe,CAC3B,kBAAmB,OAAQ,SAASwgB,EAAiB97C,GACnD,MAAO,CACLy6B,SAAU,IACVC,MAAO,CACLhV,KAAM,IACNq2B,YAAa,IACbC,QAAS,IACX,EACA1lD,QAAS,GACTguC,WAAY,GACZ1J,KAAM,SAASF,EAAOthC,EAASyhC,GAC7B,IACAohB,EAAmB,WACjB,OAAOvhB,EAAMghB,gBAAkB17C,EAAK4xB,YAAYkqB,EAAgBJ,eAAe,CACjF,EACAQ,EAAa,WAKX,GAJAxhB,EAAMyhB,YAAc,GAChBthB,EAAMloB,QACR+nB,EAAMyhB,YAAmB,MAAIthB,EAAMloB,OAEjCkoB,EAAMjoB,OACR,OAAO8nB,EAAMyhB,YAAoB,OAAIthB,EAAMjoB,MAE/C,EAWA,OAVA8nB,EAAM0hB,UAAY,WAChB,OAAO1hB,EAAMhV,KAAO,EACtB,EACAgV,EAAM/2C,OAAO,OAAQ,SAAS04D,EAAQC,GAEpC,GADAlmD,SAASk0B,qBAAqB,MAAM,EAAE,GAAG6R,MAAMga,SAAWkG,GAAU,CAACC,EAAS,SAAW,GACpF,CAACD,GAAUC,GAA6B,MAAjB5hB,EAAMshB,QAChC,OAAOthB,EAAMshB,QAAQ,CAEzB,CAAC,EACDC,EAAiB,EACVC,EAAW,CACpB,EACAl/D,SAAU,kdACZ,CACF,EACD,CAEF,EAAEyzB,KAAKxtB,IAAI,C,2ECrEZ5G,QACGX,OAAO,gBAAiB,EAAE,EAC1B6c,IAAI,CAAD,iBAAC,SAAUgkD,GAIX,IAAIC,EAAiBlgE,8EACrBkgE,EAAejhE,KAAK,EAAEuqB,QAAQ,SAAU22C,GACtCF,EAAeG,IAAID,EAAanmD,QAAQ,WAAY,EAAE,EAAGkmD,EAAeC,CAAY,CAAC,CACvF,CAAC,CAEL,EAAC,C,8ECXHpgE,QAAQX,OAAO,eAAgB,EAAE,C,mECSV,SAAjBwW,EAA2ByqD,GAEzB,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKmP,oBAAsBwqD,EAAWC,SAAS7gD,IAAI,CAC/Che,IAAK,kCACL4qB,QAAS,SAAUprB,GACf,IAAIs/D,EAAU,GAEd,GAAGt/D,EACC,IAAI,IAAIwB,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAC7B,GAA8B,WAA3BxB,EAAKwB,GAAGigB,gBACP69C,EAAQv4D,KAAK/G,EAAKwB,EAAE,MAEnB,CACD,IAAI+9D,EAAS,GACTC,EAAK1gE,EAAQqB,KAAKH,EAAKwB,EAAE,EAG7B,OAAOg+D,EAAGj3D,GACV,OAAOi3D,EAAG/9C,gBAEV,IAAI,IAAI7c,EAAI,EAAGA,EAAI5E,EAAKpB,OAAQgG,CAAC,GAG7B,GAAG5E,EAAKwB,GAAG+G,IAAMvI,EAAK4E,GAAG2D,IAAiC,WAA3BvI,EAAK4E,GAAG6c,gBAA6B,CAChE,IAAIg+C,EAAK3gE,EAAQqB,KAAKH,EAAK4E,EAAE,EAI7B,GAHA,OAAO66D,EAAGl3D,GACV,OAAOk3D,EAAGh+C,gBAEP3iB,EAAQ21B,OAAO+qC,EAAIC,CAAE,EAAE,CACtBF,EAAS,GACT,KACJ,CACJ,CAGAA,GACAD,EAAQv4D,KAAK/G,EAAKwB,EAAE,CAC5B,CAGRiE,EAAKzF,KAAK6U,iBAAmByqD,CACjC,CACJ,CAAC,EAED75D,EAAKuG,aAAeozD,EAAWC,SAAS7gD,IAAI,CACxChe,IAAK,2BACL4qB,QAAS,SAAUprB,GACfyF,EAAKzF,KAAKoM,UAAYpM,CAC1B,CACJ,CAAC,EAEDyF,EAAKiJ,UAAY0wD,EAAWC,SAAS7gD,IAAI,CACrChe,IAAK,wBACL4qB,QAAS,SAAUprB,GACfyF,EAAKzF,KAAKwM,OAASxM,CACvB,CACJ,CAAC,EAEDyF,EAAKyR,KAAOkoD,EAAWC,SAASK,KAAK,CACjCl/D,IAAK,kBACT,CAAC,CACL,CAlEJ,IAAW1B,IAsERA,QAAST,OAJN,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,iBAAkBryC,CAAc,C,+DC5D5B,SAAbyqD,EAAuB74B,EAAOhjC,EAAI+V,EAAU1C,EAAS+oD,EAAM9kD,GAE7DnV,KAAK25D,SAAW,CAGd7gD,IAAK,SAAUxf,GAMb,OAJAA,EAASF,EAAQohB,OAAO,CACtB0/C,YAAa,EACf,EAAG5gE,CAAM,EAEF,SAASwf,EAAIhK,EAAQmN,EAAO48B,GACjC,IAAIt8B,EAAI1e,EAAG8e,MAAM,EACb1e,EAAIJ,EAAG8e,MAAM,EAOjB,SAASw9C,EAASrrD,GAChB,IAAK,IAAIhT,EAAI,EAAGA,EAAIgd,EAAIshD,KAAKlhE,OAAQ4C,CAAC,GACpC,GAAI1C,EAAQ21B,OAAOjW,EAAIshD,KAAKt+D,GAAIgT,CAAM,EACpC,OAAO,CAGb,CAmFA,OA9FAA,EAASA,GAAU,GACnB+pC,EAAUA,GAAW,GACrB//B,EAAI6D,MAAQ7D,EAAI6D,OAAS,GACzB7D,EAAIshD,KAAOthD,EAAIshD,MAAQ,GAUnB,CAACn+C,GAAS3iB,EAAO4gE,aAAeC,EAASrrD,CAAM,EACjD8E,EAAS,WACP2I,EAAE/jB,QAAQ,CACZ,CAAC,EAEM,CAACsgB,EAAI6D,OAASV,GAAUnD,EAAI6D,OAAS,CAACvjB,EAAQ21B,OAAOjW,EAAI6D,MAAM7N,OAAQA,CAAM,GAIhFmN,GAASnD,EAAI6D,OAASvjB,EAAQ21B,OAAOjW,EAAI6D,MAAM7N,OAAQA,CAAM,GAC/DgK,EAAI6D,MAAMyQ,OAAO,EAEnBtU,EAAI6D,MAAQ,CACV7N,OAAQA,EACRmN,MAAOA,EACPmR,OAAQ,WACNnvB,EAAEzF,QAAQ,+DAA+D,CAC3E,EACA6hE,QAASx5B,EAAMznC,EAAQohB,OAAO,CAC5B8/C,OAAQ,MACRx/D,IAAKqa,EAAkByB,SAAWtd,EAAOwB,IACzCgU,OAAQA,EACRk1C,QAAS/lD,EAAE2e,OACb,EAAGi8B,CAAO,CAAC,EACR19C,KACC,SAAC8qB,GAIC,GAHI3sB,EAAO4gE,aAAe,CAACC,EAASrrD,CAAM,GACxCgK,EAAIshD,KAAK/4D,KAAKyN,CAAM,EAElBxV,EAAOosB,QACT,IACEpsB,EAAOosB,QAAQO,EAAS3rB,KAAMwU,CAAM,CAMtC,CAJA,MAAO3W,GAGL,MAFAyb,EAAS,WAAc1C,EAAQ8K,MAAM7jB,EAAEoiE,OAAO,CAAG,CAAC,EAClDh+C,EAAEnC,OAAOjiB,CAAC,EACJA,CACR,CAGFokB,EAAE/jB,QAAQ,CACR8B,KAAM2rB,EAAS3rB,KACfy3B,OAAQ9L,EAAS8L,OACjBhoB,QAASkc,EAASlc,QAClBzQ,OAAQ2sB,EAAS3sB,MACnB,CAAC,CACH,EAIA,SAAC2sB,GAGK3sB,EAAO4d,MACT5d,EAAO4d,MAAMqF,EAAG0J,EAAS3rB,KAAM2rB,EAAS8L,OAAQ9L,EAASlc,QAASkc,EAAS3sB,MAAM,EAGtD,MAApB2sB,EAAS8L,QAAkB9L,EAAS3rB,KAAKqrB,mBAChDs0C,EAAKxhD,IAAIwN,EAAS3rB,KAAM2rB,EAAS8L,OAAQ9L,EAASlc,QAASkc,EAAS3sB,MAAM,EAC1Esa,EAAS,WAAc1C,EAAQ8K,MAAMiK,EAAS3rB,KAAKqrB,gBAAgB,CAAG,CAAC,GAGpErsB,EAAO4d,OACVqF,EAAEnC,OAAO,CACP9f,KAAM2rB,EAAS3rB,KACfy3B,OAAQ9L,EAAS8L,OACjBhoB,QAASkc,EAASlc,QAClBzQ,OAAQ2sB,EAAS3sB,MACnB,CAAC,CACL,CAAC,EACDod,QAAQ,WACRoC,EAAI6D,MAAQ,IACd,CAAC,CACL,GAGO7D,EAAI6D,OACX7D,EAAI6D,MAAM09C,QAAQl/D,KAAK,WACrBohB,EAAE/jB,QAAQ,CACZ,CAAC,EAEI+jB,EAAEK,OACX,CACF,EACAo9C,KAAM,SAAUQ,GACd,OAAO,SAASR,EAAK1gE,GACnB,IAAIijB,EAAI1e,EAAG8e,MAAM,EACb1e,EAAIJ,EAAG8e,MAAM,EA0DjB,OAxDArjB,EAASF,EAAQohB,OAAO,CACtB8/C,OAAQ,OACRtW,QAAS/lD,EAAE2e,OACb,EAAG49C,EAAgBlhE,CAAM,GAElBwB,IAAMqa,EAAkByB,SAAWtd,EAAOwB,IAEjDk/D,EAAKr9C,MAAQ,CACXyQ,OAAQ,SAAU84B,GAChBjoD,EAAEzF,QAAQ0tD,CAAG,EACb8T,EAAKr9C,MAAQ,IACf,EACA09C,QAASx5B,EAAMvnC,CAAM,EAClB6B,KACC,SAAC8qB,GACC,GAAI3sB,EAAOosB,QACT,IACEpsB,EAAOosB,QAAQO,EAAS3rB,KAAMhB,EAAOgB,IAAI,CAM3C,CAJA,MAAOnC,GAGL,MAFAyb,EAAS,WAAc1C,EAAQ8K,MAAM7jB,EAAEoiE,OAAO,CAAG,CAAC,EAClDh+C,EAAEnC,OAAOjiB,CAAC,EACJA,CACR,CAGFokB,EAAE/jB,QAAQytB,EAAS3rB,IAAI,CACzB,EAIA,SAAC2rB,GAGK3sB,EAAO4d,MACT5d,EAAO4d,MAAMqF,EAAG0J,EAAS3rB,KAAM2rB,EAAS8L,OAAQ9L,EAASlc,QAASkc,EAAS3sB,MAAM,EAGtD,MAApB2sB,EAAS8L,QAAkB9L,EAAS3rB,KAAKqrB,mBAChDs0C,EAAKxhD,IAAIwN,EAAS3rB,KAAM2rB,EAAS8L,OAAQ9L,EAASlc,QAASkc,EAAS3sB,MAAM,EAC1Esa,EAAS,WAAc1C,EAAQ8K,MAAMiK,EAAS3rB,KAAKqrB,gBAAgB,CAAG,CAAC,GAGpErsB,EAAO4d,OACVqF,EAAEnC,OAAO,CACP9f,KAAM2rB,EAAS3rB,KACfy3B,OAAQ9L,EAAS8L,OACjBhoB,QAASkc,EAASlc,QAClBzQ,OAAQ2sB,EAAS3sB,MACnB,CAAC,CACL,CAAC,EACDod,QAAQ,WACRsjD,EAAKr9C,MAAQ,IACf,CAAC,CACL,EAEOJ,EAAEK,OACX,CACF,EACA69C,IAAK,SAAUnhE,GACb,OAAO,SAASmhE,EAAI3rD,EAAQ+pC,GAC1B,IAAIt8B,EAAI1e,EAAG8e,MAAM,EACb1e,EAAIJ,EAAG8e,MAAM,EA2DjB,OAzDA7N,EAASA,GAAU,GAGnB2rD,EAAI99C,MAAQ,CACV7N,OAAQA,EACRse,OAAQ,WACNnvB,EAAEzF,QAAQ,+DAA+D,CAC3E,EACA6hE,QAASx5B,EAAMphB,OAAOtK,EAAkByB,SAAWtd,EAAOwB,IAAK1B,EAAQohB,OAAO,GAAI1L,EAPpF+pC,EAAUA,GAAW,EAO8E,CAAC,EAC/F19C,KACC,SAAC8qB,GACC,GAAI3sB,EAAOosB,QACT,IACEpsB,EAAOosB,QAAQO,EAAS3rB,KAAMwU,CAAM,CAMtC,CAJA,MAAO3W,GAGL,MAFAyb,EAAS,WAAc1C,EAAQ8K,MAAM7jB,EAAEoiE,OAAO,CAAG,CAAC,EAClDh+C,EAAEnC,OAAOjiB,CAAC,EACJA,CACR,CAGFokB,EAAE/jB,QAAQ,CACR8B,KAAM2rB,EAAS3rB,KACfy3B,OAAQ9L,EAAS8L,OACjBhoB,QAASkc,EAASlc,QAClBzQ,OAAQ2sB,EAAS3sB,MACnB,CAAC,CACH,EAIA,SAAC2sB,GAGK3sB,EAAO4d,MACT5d,EAAO4d,MAAMqF,EAAG0J,EAAS3rB,KAAM2rB,EAAS8L,OAAQ9L,EAASlc,QAASkc,EAAS3sB,MAAM,EAGtD,MAApB2sB,EAAS8L,QAAkB9L,EAAS3rB,KAAKqrB,mBAChDs0C,EAAKxhD,IAAIwN,EAAS3rB,KAAM2rB,EAAS8L,OAAQ9L,EAASlc,QAASkc,EAAS3sB,MAAM,EAC1Esa,EAAS,WAAc1C,EAAQ8K,MAAMiK,EAAS3rB,KAAKqrB,gBAAgB,CAAG,CAAC,GAGpErsB,EAAO4d,OACVqF,EAAEnC,OAAO,CACP9f,KAAM2rB,EAAS3rB,KACfy3B,OAAQ9L,EAAS8L,OACjBhoB,QAASkc,EAASlc,QAClBzQ,OAAQ2sB,EAAS3sB,MACnB,CAAC,CACL,CAAC,EACDod,QAAQ,WACR+jD,EAAI99C,MAAQ,IACd,CAAC,CACL,EAEOJ,EAAEK,OACX,CACF,CACF,CACF,CA3PF,IAAWxjB,IA+PRA,QAAST,OAJR,yEAEFS,EAAQX,OAAO,cAAc,EAC1B6oD,QAAQ,aAAcoY,CAAU,C,wEC7PL,SAA1BlwD,EAAoC3L,EAAI+V,EAAUkJ,EAAS48C,GAE7D,IAAI35D,EAAOC,KAqGX,SAAS06D,EAAwBC,GAC/B,OAAKA,GAGEA,EAAM/iE,IAAI,SAAUqG,GACzB,OAAO7E,EAAQohB,OAAO,GAAIvc,EAAG,CAC3B4E,GAAI,KACJ42B,QAaG,CACL52B,GAAI,KACJqc,QAfmCjhB,EAetBihB,QACbH,UAhBmC9gB,EAgBpB8gB,UACfC,SAjBmC/gB,EAiBrB+gB,SACdG,QAWK,CACLA,QA9BmClhB,EA8BtBkhB,QACb+a,SAAU,GACVC,SAAU,GACVC,KAAM,GACN3zB,YAAa,GACb5D,GAAI,EACJgE,UAAW,GACXwzB,QAAS,EACX,EAnBEzyB,MAnBmC3J,EAmBxB2J,MACXwX,MApBmCnhB,EAoBxBmhB,MACXH,MArBmChhB,EAqBxBghB,MACXub,aAAc,KACdogC,gBAAiB,MACjBlhC,mBAAoB,EACtB,EAxBIzwB,cAAe,GACfqW,UAuCetP,EAvCO/R,EAAE48D,eA0CxBt+C,EAAI,IAAIlhB,KAAK,CAAC,GAChBi8B,mBAAmBtnB,CAAS,EACvBuM,EAAEib,YAAY,GAHZ,GAxCL55B,WAAY,GACZq5B,oBAAqB,GACrBC,QAAS,EACTG,iBAAkB,GAClB8K,SAAU,eACZ,CAAC,EAiCL,IAGM5lB,CAnCJ,CAAC,CACH,CApHAxc,EAAKzF,KAAO,GAEZyF,EAAK0J,oBAAsBiwD,EAAWC,SAAS7gD,IAAI,CACjDhe,IAAK,wBACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKoP,kBAAoB3J,EAAKzF,KAAKoP,mBAAqB,GAC7D3J,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAYoD,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,WAAa,GAE/F,IAAIm+D,EAAeJ,EAAwB,CAACpgE,EAAK,EAAE,GACnD,GAA2D,GAAvDyF,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUzD,OAE/C,OADA6G,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAU0E,KAAKy5D,CAAY,EACvDA,EAGT,IAAK,IAAIh/D,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUzD,OAAQ4C,CAAC,GACxE,GAAIiE,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUb,GAAG6N,UAAYmxD,EAAanxD,SAE3E,OADA5J,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUb,GAAKg/D,CAIxD,CACF,CAAC,EAED/6D,EAAKi3B,qBAAuB0iC,EAAWC,SAAS7gD,IAAI,CAClDhe,IAAK,+BACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKoP,kBAAoB3J,EAAKzF,KAAKoP,mBAAqB,GAC7D3J,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAY+9D,EAAwBpgE,EAAKygE,MAAM,CACpF,CACF,CAAC,EAEDh7D,EAAKke,sBAAwBy7C,EAAWC,SAASK,KAAK,CACpDl/D,IAAK,wBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKoP,kBAAoB3J,EAAKzF,KAAKoP,mBAAqB,GAC7D3J,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAY+9D,EAAwB36D,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,SAAS,GAAK,GAExH,IAAK,IAAIb,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUzD,OAAQ4C,CAAC,GACxE,IAAK,IAAIoD,EAAI,EAAGA,EAAI5E,EAAK0gE,cAAc9hE,OAAQgG,CAAC,GAC1Ca,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUb,GAAG6N,UAAYrP,EAAK0gE,cAAc97D,GAAGyK,WACpF5J,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUb,GAAK4+D,EAAwB,CAACpgE,EAAK0gE,cAAc97D,GAAG,EAAE,GAI3G,CACF,CAAC,EAEDa,EAAK2f,uBAAyBg6C,EAAWC,SAASK,KAAK,CACrDl/D,IAAK,8CACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKoP,kBAAoB3J,EAAKzF,KAAKoP,mBAAqB,GAC7D3J,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAY+9D,EAAwB36D,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,SAAS,GAAK,GAEpHrC,IACFyF,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAYoD,EAAKzF,KAAKoP,kBAAkBoF,EAAOnS,UAAUqB,OAAO,SAAUi9D,GAC3G,OAAOA,EAAItxD,UAAYrP,CACzB,CAAC,EAEL,CACF,CAAC,EAEDyF,EAAKkhC,yBAA2B,SAAUjkC,GACxC,IASM06B,EACFwjC,EAVA3+C,EAAI1e,EAAG8e,MAAM,EAgCjB,OA9BA5c,EAAKzF,KAAKo9B,UAAY33B,EAAKzF,KAAKo9B,WAAa,GAEzC33B,EAAKzF,KAAKo9B,UAAU16B,GACtB4W,EAAS,WACP2I,EAAE/jB,QAAQ,CACZ,CAAC,GAEGk/B,EAAY,GACdwjC,EAAW,GAEbn7D,EAAKi3B,qBAAqB,CAAEr6B,SAAUK,CAAS,CAAC,EAAE7B,KAAK,WACrD,IAAK,IAAIW,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKoP,kBAAkB1M,GAAU9D,OAAQ4C,CAAC,GAAI,CACrE,IAAIq/D,EAAYr+C,EAAQ,MAAM,EAAE/c,EAAKzF,KAAKoP,kBAAkB1M,GAAUlB,GAAGwjB,SAAU,YAAavf,EAAKzF,KAAKoP,kBAAkB1M,GAAUlB,GAAGyjB,cAAc,EAGvJxf,EAAKzF,KAAKoP,kBAAkB1M,GAAUlB,GAAGs/D,cAAgBD,EAEpDzjC,EAAUyjC,KACbzjC,EAAUyjC,GAAa,EAEvBD,EAAS75D,KAAK85D,CAAS,EAE3B,CAGAp7D,EAAKzF,KAAKo9B,UAAU16B,GAAYk+D,EAChC3+C,EAAE/jB,QAAQ,CACZ,CAAC,GAGI+jB,EAAEK,OACX,CAyDF,CA/JF,IAAWxjB,IAmKRA,QAAST,OAJR,mDAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,0BAA2B93C,CAAuB,C,oEClK/D,IAAWpQ,IAeRA,QAAST,OAdRS,EAAQX,OAAO,oBAAoB,EAChC4iE,SAAS,eAAgB,CACxB1+D,SAAU,GACV+O,WAAY,GACZsC,QAAS,KACT4T,UAAW,KACX05C,YAAa,GACbC,YAAa,GACb/nC,WAAY,KACZgoC,UAAW,GACXC,WAAY,GACZ9/C,QAAS,KACTgH,sBAAuB,EAC3B,CAAC,C,sECbqB,SAApBtlB,EAA8Bq8D,GAE5B,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKzC,oBAAsBo8D,EAAWC,SAAS7gD,IAAI,CAC/Che,IAAK,qCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKiD,iBAAmBwC,EAAKzF,KAAKiD,kBAAoB,GAC3DwC,EAAKzF,KAAKiD,iBAAiBuR,EAAOnS,UAAYrC,EAE9CyF,EAAKzF,KAAKmD,YAAcsC,EAAKzF,KAAKmD,aAAe,GACjDsC,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAYrC,EAAKkD,aAAe,EACjE,CACJ,CAAC,EAEDuC,EAAKskB,qBAAuBq1C,EAAWC,SAASK,KAAK,CACjDl/D,IAAK,sCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKiD,iBAAmBwC,EAAKzF,KAAKiD,kBAAoB,GAC3DnE,EAAQohB,OAAOza,EAAKzF,KAAKiD,iBAAiBuR,EAAOnS,UAAWrC,CAAI,EAEhEyF,EAAKzF,KAAKmD,YAAcsC,EAAKzF,KAAKmD,aAAe,GACjDrE,EAAQohB,OAAOza,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAWrC,EAAKkD,WAAW,CAC3E,CACJ,CAAC,EAEDuC,EAAK4D,kBAAoB+1D,EAAWC,SAAS7gD,IAAI,CAC7Che,IAAK,mCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKsJ,eAAiB7D,EAAKzF,KAAKsJ,gBAAkB,GACvD7D,EAAKzF,KAAKsJ,eAAekL,EAAOnS,UAAYrC,CAChD,CACJ,CAAC,EAEDyF,EAAKhC,cAAgB27D,EAAWC,SAAS7gD,IAAI,CACzChe,IAAK,+BACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKmD,YAAcsC,EAAKzF,KAAKmD,aAAe,GACjDsC,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAYoD,EAAKzF,KAAKmD,YAAYqR,EAAOnS,WAAa,GAGnF,IAAI++D,EAAS37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAU/E,IAAI,SAASuJ,GAAK,OAAOA,EAAEjD,YAAc,CAAC,EAAEkJ,QAAQ9M,EAAK4D,YAAY,EAE5G,CAAC,EAAVw9D,GACA37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAUiuB,OAAO8wC,EAAQ,CAAC,EAE3D37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAU0E,KAAK/G,CAAI,CACpD,CACJ,CAAC,EAEDyF,EAAKmlB,eAAiBw0C,EAAWC,SAASK,KAAK,CAC3Cl/D,IAAK,gCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKmD,YAAcsC,EAAKzF,KAAKmD,aAAe,GACjDsC,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAYoD,EAAKzF,KAAKmD,YAAYqR,EAAOnS,WAAa,GAGnF,IAAI++D,EAAS37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAU/E,IAAI,SAASuJ,GAAK,OAAOA,EAAEjD,YAAc,CAAC,EAAEkJ,QAAQ9M,EAAK4D,YAAY,EAE5G,CAAC,EAAVw9D,GACA37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAUiuB,OAAO8wC,EAAQ,CAAC,EAE3D37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAU0E,KAAK/G,CAAI,CACpD,CACJ,CAAC,EAEDyF,EAAKqlB,iBAAmBs0C,EAAWC,SAAS7gD,IAAI,CAC5Che,IAAK,kCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKmD,YAAcsC,EAAKzF,KAAKmD,aAAe,GACjDsC,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAYoD,EAAKzF,KAAKmD,YAAYqR,EAAOnS,WAAa,GAEnF,IAAI++D,EAAS37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAU/E,IAAI,SAASuJ,GAAK,OAAOA,EAAEjD,YAAc,CAAC,EAAEkJ,QAAQ0H,EAAOhR,YAAY,EAE9G,CAAC,EAAV49D,GACA37D,EAAKzF,KAAKmD,YAAYqR,EAAOnS,UAAUiuB,OAAO8wC,EAAQ,CAAC,CAC/D,CACJ,CAAC,CAIL,CApFJ,IAAWtiE,IAwFRA,QAAST,OAJN,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,oBAAqBjkD,CAAiB,C,kECvFrD,IAAWjE,IA+GRA,QAAST,OA9GRS,EAAQX,OAAO,oBAAoB,EAChC4iE,SAAS,SAAU,CAClB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACD,C,qEC7GkB,SAAnB/2D,EAA6BzG,EAAI67D,GAE/B,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKotB,QAAUusC,EAAWC,SAASK,KAAK,CACpCl/D,IAAK,6BACT,CAAC,EAEDiF,EAAKwpB,SAAWmwC,EAAWC,SAASK,KAAK,CACrCl/D,IAAK,8BACT,CAAC,EAEDiF,EAAK4S,UAAY+mD,EAAWC,SAAS7gD,IAAI,CACrChe,IAAK,0BACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKhB,OAASyG,EAAKzF,KAAKhB,QAAU,GACvCyG,EAAKzF,KAAKhB,OAAOwV,EAAOnS,UAAYrC,CACxC,CACJ,CAAC,EAEDyF,EAAKsH,aAAeqyD,EAAWC,SAAS7gD,IAAI,CACxChe,IAAK,6BACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKgN,UAAYvH,EAAKzF,KAAKgN,WAAa,GAC7CvH,EAAKzF,KAAKgN,UAAUwH,EAAOnS,UAAYrC,CAC3C,CACJ,CAAC,EAEDyF,EAAKvB,YAAck7D,EAAWC,SAAS7gD,IAAI,CACvChe,IAAK,4BACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKmE,aAAesB,EAAKzF,KAAKmE,cAAgB,GACnDsB,EAAKzF,KAAKmE,aAAaqQ,EAAOnS,UAAYoD,EAAKzF,KAAKmE,aAAaqQ,EAAOnS,WAAa,GACrFoD,EAAKzF,KAAKmE,aAAaqQ,EAAOnS,UAAUmS,EAAOqiB,YAAc72B,CACjE,CACJ,CAAC,EAEDyF,EAAKwE,kBAAoBm1D,EAAWC,SAAS7gD,IAAI,CAC7Che,IAAK,kCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKkK,eAAiBzE,EAAKzF,KAAKkK,gBAAkB,GACvDzE,EAAKzF,KAAKkK,eAAesK,EAAOnS,UAAYrC,CAChD,CACJ,CAAC,EAEDyF,EAAK6R,mBAAqB8nD,EAAWC,SAAS7gD,IAAI,CAC9Che,IAAK,mCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKwX,gBAAkB/R,EAAKzF,KAAKwX,iBAAmB,GACzD/R,EAAKzF,KAAKwX,gBAAgBhD,EAAOnS,UAAYrC,CACjD,CACJ,CAAC,EAEDyF,EAAK2E,yBAA2Bg1D,EAAWC,SAAS7gD,IAAI,CACpDhe,IAAK,yCACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKqK,sBAAwB5E,EAAKzF,KAAKqK,uBAAyB,GACrE5E,EAAKzF,KAAKqK,sBAAsBmK,EAAOnS,UAAYrC,CACvD,CACJ,CAAC,EAEDyF,EAAK47D,sBAAwBjC,EAAWC,SAASK,KAAK,CAClDl/D,IAAK,qCACT,CAAC,EAEDiF,EAAKuzB,YAAcomC,EAAWC,SAAS7gD,IAAI,CACvChe,IAAK,4BACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKm5B,WAAa1zB,EAAKzF,KAAKm5B,YAAc,GAC/C1zB,EAAKzF,KAAKm5B,WAAW3kB,EAAOnS,UAAYoD,EAAKzF,KAAKm5B,WAAW3kB,EAAOnS,WAAa,GACjFoD,EAAKzF,KAAKm5B,WAAW3kB,EAAOnS,UAAUmS,EAAO/W,IAAMuC,CACvD,CACJ,CAAC,EAEDyF,EAAKwzB,mBAAqBmmC,EAAWC,SAAS7gD,IAAI,CAC9Che,IAAK,kCACT,CAAC,EAEDiF,EAAK6wB,aAAe8oC,EAAWC,SAASK,KAAK,CACzCl/D,IAAK,4BACT,CAAC,EAEDiF,EAAKkQ,SAAW,SAAStT,EAAUi/D,GAC/B,IAOQC,EAPJt/C,EAAI1e,EAAG8e,MAAM,EACb/M,EAAS,GAkEb,OAhEIgsD,EAAkB7rD,sBAAsB09B,WAAW,KAAK,GAAMmuB,EAAkBz5C,iBAChFvS,EAAOvO,KAAK,oCAAoC,EAEhB,OAAjCu6D,EAAkBp8D,aACbq8D,EAAS,CACT,CACIC,WAAY,GACZp0D,QAAS,aACb,EACA,CACIo0D,WAAY,GACZp0D,QAAS,wBACb,EACA,CACIo0D,WAAY,GACZp0D,QAAS,wBACb,GAGJ3H,EAAKsH,aAAa,CACd1K,SAAUA,CACd,CAAC,EAAExB,KAAK,WACJ,IAAIpB,EAAWgG,EAAKzF,KAAKgN,UAAU3K,GAAUqB,OAAO,SAAS7F,GACzD,OAAOA,EAAE+P,YAAc0zD,EAAkB9zD,MAAMG,UACnD,CAAC,EAED,GAAGlO,EAASb,OAAO,CACfa,EAAWA,EAAS,GACpB8hE,EAASA,EAAO5vD,OAAOlS,EAAS0N,UAAU,EAE1C,IAAI,IAAI3L,EAAI,EAAGA,EAAI+/D,EAAO3iE,OAAQ4C,CAAC,GAC/B,GAAG+/D,EAAO//D,GAAGggE,YAAc,CAACF,EAAkB9zD,MAAM+zD,EAAO//D,GAAG4L,SAAS,CACnEkI,EAAOvO,KAAK,mCAAmC,EAC/C,KACJ,CAER,MAEIuO,EAAOvO,KAAK,mCAAmC,EAE/Cu6D,EAAkBl4C,cAClB9T,EAAOvO,KAAK,4BAA4B,EAE5Ckb,EAAE/jB,QAAQoX,CAAM,CACpB,CAAC,IAEqC,OAAjCgsD,EAAkBz7C,aACpB5nB,OAAOD,KAAKsjE,EAAkB9oD,SAAS,EAAE9U,OAAO,SAAS6J,GACxDguB,MAAMC,QAAQ8lC,EAAkB9oD,UAAUjL,EAAI,EACzC+zD,EAAkB9oD,UAAUjL,GAAK3O,OACjC0iE,EAAkB9oD,UAAUjL,EAAK,CAAC,EAAE3O,OACjC0W,EAAOvO,KAAK,gCAAgC,EAOpDu6D,EAAkBl4C,cAClB9T,EAAOvO,KAAK,4BAA4B,EAE5Cqd,WAAW,WAAanC,EAAE/jB,QAAQoX,CAAM,CAAG,EAAG,CAAC,GAG5C2M,EAAEK,OACb,EAEA7c,EAAK6xB,cAAgB8nC,EAAWC,SAASK,KAAK,CAC1Cl/D,IAAK,6BACT,CAAC,CAEL,CAhKJ,IAAW1B,IAoKRA,QAAST,OAJN,8BAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,mBAAoBh9C,CAAgB,C,mFCpKnD,IAAWlL,IA0FRA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EAChCigB,QAAQ,0BAxFiB,WAKxB,OAAO,SAAwBqjD,EAAkBC,GAC7Ch8D,KAAK0tC,cAAgBsuB,EACrBh8D,KAAKi8D,SAAW,GAEhBj8D,KAAKi8D,SAASC,YAAc,GAC5Bl8D,KAAKi8D,SAASC,YAAYC,IAAM,EAChCn8D,KAAKi8D,SAASC,YAAYE,IAAML,EAAiB7iE,OACjD8G,KAAKi8D,SAASC,YAAYG,QAAU,GAEpC,IAAI,IAAIvgE,EAAI,EAAGA,EAAIigE,EAAiB7iE,OAAQ4C,CAAC,GAAI,CAC7C,IAAIqF,EAAI,GAERA,EAAEg7D,IAAMh7D,EAAEi7D,IAAML,EAAiBjgE,GAAGmsB,MAAM/uB,OAC1CiI,EAAEk7D,QAAU,GAEZ,IAAI,IAAIn9D,EAAI,EAAGA,EAAI68D,EAAiBjgE,GAAGmsB,MAAM/uB,OAAQgG,CAAC,GAAG,CACrD,IAAIqI,EAAI,CAERA,IAAQ,CAFC,EAGTA,EAAE60D,IAAML,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAShvB,OAC9CqO,EAAE80D,QAAU,GAEZ,IAAI,IAAIxiC,EAAI,EAAGA,EAAIkiC,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAShvB,OAAQ2gC,CAAC,GAAI,CAClE,IAAIl0B,EAAI,GAER,GAAGo2D,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAG5P,QAAU8xC,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAGvR,OAAOpvB,OAAQ,CAI1G,OAHAyM,EAAE22D,MAAQP,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAG5P,OAAOnkB,aAAajD,GACvE8C,EAAE42D,OAASnjE,EAAQqB,KAAKshE,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAGvR,MAAM,EAEhEyzC,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAG1R,UAC5C,IAAK,QACL,IAAK,WACDxiB,EAAEw2D,IAAM,EACRx2D,EAAEy2D,IAAML,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAGvR,OAAOpvB,OAC5D,MACA,IAAK,QACL,IAAK,WACDyM,EAAEw2D,IAAMx2D,EAAEy2D,IAAML,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAGvR,OAAOpvB,MAC9D,CAG+E,CAAC,EAAvF,CAAC,WAAY,YAAYkO,QAAQ20D,EAAiBjgE,GAAGmsB,MAAM/oB,GAAGgpB,SAAS2R,GAAG1R,QAAQ,EACjF5gB,EAAE80D,QAAQh7D,KAAK,CACXm7D,YAAa,CACTC,QAAS,CACLC,gBAAiB/2D,CACrB,CACJ,CACJ,CAAC,EAED4B,EAAE80D,QAAQh7D,KAAK,CACXq7D,gBAAiB/2D,CACrB,CAAC,CACT,CACJ,CAEG4B,EAAE80D,QAAQnjE,QACTiI,EAAEk7D,QAAQh7D,KAAK,CACX66D,YAAa30D,CACjB,CAAC,CACT,CAEGpG,EAAEk7D,QAAQnjE,SAC0B,SAAhC6iE,EAAiBjgE,GAAGusB,QACnBroB,KAAKi8D,SAASC,YAAYG,QAAQh7D,KAAK,CACnC66D,YAAa/6D,CACjB,CAAC,EAGDnB,KAAKi8D,SAASC,YAAYG,QAAQh7D,KAAK,CACnCm7D,YAAa,CACTC,QAAS,CACLP,YAAa/6D,CACjB,CACJ,CACJ,CAAC,EAGb,CACJ,CACJ,CAG6D,C,+ECzFjE,IAAW/H,IA2DRA,QAAST,OAFRS,EAAQX,OAAO,oBAAoB,EAChCigB,QAAQ,sBAzDa,WAKpB,OAAO,SAA6BikD,EAAS7zD,GAC5C,IAAIgf,EAAc,GAElB,GAAI60C,EAAQV,SACX,IAAK,IAAIngE,EAAI,EAAGA,EAAI6gE,EAAQV,SAASC,YAAYG,QAAQnjE,OAAQ4C,CAAC,GAAI,CAUrE,IATA,IAAIusB,EAAU,CAAC,CAACs0C,EAAQV,SAASC,YAAYG,QAAQvgE,GAAGogE,YAEpDU,EAAa,CAChBv0C,QAASA,EAAQlb,SAAS,EAC1B8a,MAAO,EACR,EAEI40C,GAAcx0C,EAAUs0C,EAAQV,SAASC,YAAYG,QAAQvgE,GAAiB6gE,EAAQV,SAASC,YAAYG,QAAQvgE,GAAG0gE,YAAYC,SAAlEP,YAE3Dh9D,EAAI,EAAGA,EAAI29D,EAAYR,QAAQnjE,OAAQgG,CAAC,GAAI,CAMpD,IALA,IAAI49D,EAAkBD,EAAYR,QAAQn9D,GAAGg9D,YACzCtJ,EAAO,CACV1qC,SAAU,EACX,EAES2R,EAAI,EAAGA,EAAIijC,EAAgBT,QAAQnjE,OAAQ2gC,CAAC,GAAI,CACxD,IAAIkjC,EAAkB,CAAC,CAACD,EAAgBT,QAAQxiC,GAAG2iC,YAC/CQ,GAAyBD,EAAkBD,EAAgBT,QAAQxiC,GAAG2iC,YAAYC,QAA0BK,EAAgBT,QAAQxiC,IAA1C6iC,gBAE1F3yC,EAAU,CACbzB,OAAQ00C,EAAuBT,OAC/BtyC,OAAQ,CACPnkB,aAAcgD,EAAQk0D,EAAuBV,MAC9C,EACAn0C,SACM60C,EAAuBb,IAAMa,EAAuBZ,KAAQY,EAAuBb,MAAQa,EAAuBZ,MAAQ,EACvHW,EAAkB,WAAa,QAE/BA,EAAkB,WAAa,OAEzC,EAEAnK,EAAK1qC,SAAS7mB,KAAK0oB,CAAO,CAC3B,CAEA6yC,EAAW30C,MAAM5mB,KAAKuxD,CAAI,CAC3B,CAEA9qC,EAAYzmB,KAAKu7D,CAAU,CAC5B,CAGD,OAAO90C,CACR,CACJ,CAGqD,C,uECxD9B,SAArBjmB,EAA+B63D,GAE7B,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAK+B,gBAAkB43D,EAAWC,SAAS7gD,IAAI,CAC7Che,IAAK,kBACLo/D,YAAa,GACbx0C,QAAS,SAASprB,EAAMwU,GACpB/O,EAAKzF,KAAKyH,aAAehC,EAAKzF,KAAKyH,cAAgB,GACnDhC,EAAKzF,KAAKyH,aAAa+M,EAAOnS,UAAYrC,CAC9C,CACF,CAAC,CACL,CAfJ,IAAWlB,IAmBRA,QAAST,OAJN,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,qBAAsBz/C,CAAkB,C,oECjB/B,SAAlBo7D,EAA4Bp/D,EAAIkP,EAAYjO,GAE1C,OAAO,SAAUgkB,GAChB,IAAIvG,EAAI1e,EAAG8e,MAAM,EAmEvB,OAjEA7d,EAAaC,UAAU,CAAEpC,SAAUhE,EAAOC,aAAa,CAAE,CAAC,EACxDuC,KAAK,YACF,CAAC2nB,EAAKs1C,YAAY,GAAKt1C,EAAKs1C,YAAY,EAAErgE,IAAM,IAClDwkB,EAAE/jB,QAAQ,CAAC,EAEH,IAAIwG,EAASF,EAAaxE,KAAK0E,OAAOrG,EAAOC,aAAa,IAAM,GAC5DskE,EAAuB,GAQvBC,GANJn+D,EAAO6jB,QAAQ,SAAS3qB,GACvBglE,EAAuBA,EAAqBjxD,OAAO/T,EAAEiH,aAAanB,OAAO,SAAUo/D,GAClF,OAAOA,EAAEzxD,WAAamX,EAAKd,MAAM,CAClC,CAAC,CAAC,CACH,CAAC,EAEsBk7C,EAAqBr5D,OAAO,SAASuxD,EAAOgI,GAClE,OAAGA,EAAEC,oBAAsBv6C,EAAKs1C,YAAY,EAAErgE,GACvB,OAAnBqlE,EAAE/9D,cACG+1D,EAAQgI,EAAEz2C,SACS,OAAnBy2C,EAAE/9D,cACF+1D,EAAQgI,EAAEz2C,SAEVyuC,EAGDA,CACT,EAAG,CAAC,GAMA70C,EAAWuC,EAAKs1C,YAAY,EAC5Bn2C,EAAWa,EAAKZ,YAAY,EAC5Bo7C,EAAoB/8C,EAASU,MAAQ6B,EAAKgrB,SAAS,EAErC,EAAfvtB,EAASM,KAA8B,EAAnBs8C,EACtB5gD,EAAE/jB,QAAQ,CAAC,EAEO,EAAf+nB,EAASM,IAKRoB,EAAW1B,EAASQ,MAClBkB,EAAW1B,EAASQ,IAAOR,EAASI,MACvCpE,EAAE/jB,QAAQ8kE,EAAoB/8C,EAASI,KAAK,EAE5CpE,EAAE/jB,QAAQ8kE,GAAqBr7C,EAAW1B,EAASQ,IAAI,IAKrDw8C,EAAkBh9C,EAASQ,IAAMR,EAASI,MAC1C68C,EAAWnvD,KAAKyc,MAAM7I,EAAWs7C,CAAe,EAE/B,GAAlBh9C,EAASI,MACXpE,EAAE/jB,SAASypB,EAAW1B,EAASQ,KAAOu8C,CAAiB,EAChC,GAAhB/8C,EAASQ,IAChBxE,EAAE/jB,QAAQ+nB,EAASI,MAAQ28C,CAAiB,EAE5C/gD,EAAE/jB,QAAQglE,EAAWj9C,EAASI,MAAQ28C,CAAiB,EAG/D,CAAC,EAEA/gD,EAAEK,OACJ,CACJ,CAzEJ,IAAWxjB,EAAST,EAATS,EA6ERA,QA7EiBT,EA6ERA,OAJN,6CAEFS,EAAQX,OAAO,oBAAoB,EAChCigB,QAAQ,kBAAmBukD,CAAe,C,oEC3EzB,SAAlBt9D,EAA4B+5D,GAE1B,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKoE,OAASu1D,EAAWC,SAAS7gD,IAAI,CAClChe,IAAK,mBACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAK8J,IAAMrE,EAAKzF,KAAK8J,KAAO,GACjCrE,EAAKzF,KAAK8J,IAAI0K,EAAOnS,UAAYrC,CACrC,CACJ,CAAC,EAEDyF,EAAKL,OAASg6D,EAAWC,SAAS7gD,IAAI,CAClChe,IAAK,sBACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKoF,OAASK,EAAKzF,KAAKoF,QAAU,GACvCK,EAAKzF,KAAKoF,OAAOoP,EAAOnS,UAAYrC,CACxC,CACJ,CAAC,CACL,CAtBJ,IAAWlB,IA0BRA,QAAST,OAJN,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,kBAAmB3hD,CAAe,C,gECxB7B,SAAd0G,EAAwBxI,EAAI+V,EAAUkJ,EAAS48C,GAEjD,IAAI35D,EAAOC,KAsJX,SAASy9D,EAAWjjE,GAClB,OAAOA,EAAM5C,IAAI,SAAU0S,GACzB,OAAOlR,EAAQohB,OAAO,GAAIlQ,EAAG,CAC3B63B,SAAU,MACZ,CAAC,CACH,CAAC,CACH,CA1JApiC,EAAKzF,KAAO,GAEZyF,EAAKkK,SAAWyvD,EAAWC,SAAS7gD,IAAI,CACtChe,IAAK,oBACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKE,MAAQuF,EAAKzF,KAAKE,OAAS,GACrCuF,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAY8gE,EAAWnjE,CAAI,CACpD,CACF,CAAC,EAEDyF,EAAKu5B,UAAYogC,EAAWC,SAASK,KAAK,CACxCl/D,IAAK,qBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKE,MAAQuF,EAAKzF,KAAKE,OAAS,GACrCuF,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAY8gE,EAAW19D,EAAKzF,KAAKE,MAAMsU,EAAOnS,SAAS,GAAK,GAEnF,IAAK,IAAIb,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAUzD,OAAQ4C,CAAC,GAC5D,IAAK,IAAIoD,EAAI,EAAGA,EAAI5E,EAAKpB,OAAQgG,CAAC,GAC5Ba,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAUb,GAAG+G,IAAMvI,EAAK4E,GAAG2D,KACpD9C,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAUb,GAAKxB,EAAK4E,GACnD,CACF,CAAC,EAEDa,EAAK26B,YAAcg/B,EAAWC,SAASK,KAAK,CAC1Cl/D,IAAK,uBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKE,MAAQuF,EAAKzF,KAAKE,OAAS,GACrCuF,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAYoD,EAAKzF,KAAKE,MAAMsU,EAAOnS,WAAa,GAEvErC,EAAKuoB,QAAQ,SAAU9qB,GACrBgI,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAYoD,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAUqB,OAAO,SAAUqrB,GACnF,OAAOA,EAAIxmB,KAAO9K,CACpB,CAAC,CACH,CAAC,CACH,CACF,CAAC,EAEDgI,EAAK0I,mBAAqBixD,EAAWC,SAAS7gD,IAAI,CAChDhe,IAAK,iCACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKoO,gBAAkB3I,EAAKzF,KAAKoO,iBAAmB,GACzD3I,EAAKzF,KAAKoO,gBAAgBoG,EAAOnS,UAAYrC,CAC/C,CACF,CAAC,EAEDyF,EAAKsJ,yBAA2BqwD,EAAWC,SAAS7gD,IAAI,CACtDhe,IAAK,oCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKgP,sBAAwBvJ,EAAKzF,KAAKoO,iBAAmB,GAC/D3I,EAAKzF,KAAKgP,sBAAsBwF,EAAOnS,UAAYrC,CACrD,CACF,CAAC,EAEDyF,EAAKuG,aAAeozD,EAAWC,SAAS7gD,IAAI,CAC1Che,IAAK,wBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKoM,UAAY3G,EAAKzF,KAAKoM,WAAa,GAC7C3G,EAAKzF,KAAKoM,UAAUoI,EAAOnS,UAAYrC,CACzC,CACF,CAAC,EAEDyF,EAAKiJ,UAAY0wD,EAAWC,SAAS7gD,IAAI,CACvChe,IAAK,qBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKwM,OAAS/G,EAAKzF,KAAKwM,QAAU,GACvC/G,EAAKzF,KAAKwM,OAAOgI,EAAOnS,UAAYoD,EAAKzF,KAAKwM,OAAOgI,EAAOnS,WAAa,GACzEoD,EAAKzF,KAAKwM,OAAOgI,EAAOnS,UAAUmS,EAAOjG,aAAevO,CAC1D,CACF,CAAC,EAEDyF,EAAKwG,aAAemzD,EAAWC,SAAS7gD,IAAI,CAC1Che,IAAK,wBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKyM,UAAYhH,EAAKzF,KAAKyM,WAAa,GAC7ChH,EAAKzF,KAAKyM,UAAU+H,EAAOnS,UAAYrC,CACzC,CACF,CAAC,EAEDyF,EAAK+2B,mBAAqB4iC,EAAWC,SAAS7gD,IAAI,CAChDhe,IAAK,+BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKy8B,gBAAkBh3B,EAAKzF,KAAKy8B,iBAAmB,GACzDh3B,EAAKzF,KAAKy8B,gBAAgBjoB,EAAOnS,UAAYrC,CAC/C,CACF,CAAC,EAEDyF,EAAK29D,wBAA0BhE,EAAWC,SAAS7gD,IAAI,CACrDhe,IAAK,mCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKqjE,gBAAkB59D,EAAKzF,KAAKqjE,iBAAmB,GACzD59D,EAAKzF,KAAKqjE,gBAAgB7uD,EAAOnS,UAAYrC,CAC/C,CACF,CAAC,EAEDyF,EAAK69D,UAAYlE,EAAWC,SAAS7gD,IAAI,CACvChe,IAAK,qBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKsjE,UAAY79D,EAAKzF,KAAKsjE,WAAa,GAC7C79D,EAAKzF,KAAKsjE,UAAU9uD,EAAOnS,UAAYrC,CACzC,CACF,CAAC,EAEDyF,EAAK0c,eAAiBi9C,EAAWC,SAASK,KAAK,CAC7Cl/D,IAAK,yBACP,CAAC,EAEDiF,EAAK2gC,eAAiBg5B,EAAWC,SAASK,KAAK,CAC7Cl/D,IAAK,yBACP,CAAC,EAEDiF,EAAK03B,aAAe,SAAUz6B,GAC5B,IASM06B,EACFwjC,EAVA3+C,EAAI1e,EAAG8e,MAAM,EAgCjB,OA9BA5c,EAAKzF,KAAKo9B,UAAY33B,EAAKzF,KAAKo9B,WAAa,GAEzC33B,EAAKzF,KAAKo9B,UAAU16B,GACtB4W,EAAS,WACP2I,EAAE/jB,QAAQ,CACZ,CAAC,GAEGk/B,EAAY,GACdwjC,EAAW,GAEbn7D,EAAKkK,SAAS,CAAEtN,SAAUK,CAAS,CAAC,EAAE7B,KAAK,WACzC,IAAK,IAAIW,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKE,MAAMwC,GAAU9D,OAAQ4C,CAAC,GAAI,CACzD,IAAIq/D,EAAYr+C,EAAQ,MAAM,EAAE/c,EAAKzF,KAAKE,MAAMwC,GAAUlB,GAAGwjB,SAAU,YAAavf,EAAKzF,KAAKE,MAAMwC,GAAUlB,GAAGyjB,cAAc,EAG/Hxf,EAAKzF,KAAKE,MAAMwC,GAAUlB,GAAGs/D,cAAgBD,EAExCzjC,EAAUyjC,KACbzjC,EAAUyjC,GAAa,EAEvBD,EAAS75D,KAAK85D,CAAS,EAE3B,CAGAp7D,EAAKzF,KAAKo9B,UAAU16B,GAAYk+D,EAChC3+C,EAAE/jB,QAAQ,CACZ,CAAC,GAGI+jB,EAAEK,OACX,CASF,CAhKF,IAAWxjB,IAoKRA,QAAST,OAJR,mDAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,cAAej7C,CAAW,C,wEClKX,SAAtBlE,EAAgCu3D,EAAY58C,GAE9C,IAAI/c,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKwC,eAAiBm3D,EAAWC,SAAS7gD,IAAI,CAC5Che,IAAK,oCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKmI,YAAc1C,EAAKzF,KAAKmI,aAAe,GACjD1C,EAAKzF,KAAKmI,YAAYqM,EAAOnS,UAAYrC,CAC3C,CACF,CAAC,EAEDyF,EAAK4C,8BAAgC+2D,EAAWC,SAAS7gD,IAAI,CAC3Dhe,IAAK,iDACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKwI,iBAAmB/C,EAAKzF,KAAKwI,kBAAoB,GAC3D/C,EAAKzF,KAAKwI,iBAAiBgM,EAAOnS,UAAYoD,EAAKzF,KAAKwI,iBAAiBgM,EAAOnS,WAAa,GAC7FoD,EAAKzF,KAAKwI,iBAAiBgM,EAAOnS,UAAUmS,EAAOlM,eAAiBtI,CACtE,CACF,CAAC,EAEDyF,EAAKmD,yBAA2Bw2D,EAAWC,SAAS7gD,IAAI,CACtDhe,IAAK,4CACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAK8I,YAAcrD,EAAKzF,KAAK8I,aAAe,GACjDrD,EAAKzF,KAAK8I,YAAY0L,EAAOnS,UAAYoD,EAAKzF,KAAK8I,YAAY0L,EAAOnS,WAAa,GACnFoD,EAAKzF,KAAK8I,YAAY0L,EAAOnS,UAAUmS,EAAO3L,kBAAoB7I,CACpE,CACF,CAAC,EAEDyF,EAAKuD,cAAgBo2D,EAAWC,SAAS7gD,IAAI,CAC3Che,IAAK,iCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKiJ,SAAWxD,EAAKzF,KAAKiJ,UAAY,GAC3CxD,EAAKzF,KAAKiJ,SAASuL,EAAOnS,UAAYrC,CACxC,CACF,CAAC,EAEDyF,EAAKqC,eAAiBs3D,EAAWC,SAAS7gD,IAAI,CAC5Che,IAAK,8BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAK+H,YAActC,EAAKzF,KAAK+H,aAAe,GACjDtC,EAAKzF,KAAK+H,YAAYyM,EAAOnS,UAAYrC,CAC3C,CACF,CAAC,EAEDyF,EAAK64B,eAAiB8gC,EAAWC,SAAS7gD,IAAI,CAC5Che,IAAK,kCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKm8B,YAAc12B,EAAKzF,KAAKm8B,aAAe,GACjD12B,EAAKzF,KAAKm8B,YAAY3nB,EAAOnS,UAAYrC,CAC3C,CACF,CAAC,EAEDyF,EAAK89D,0BAA4BnE,EAAWC,SAAS7gD,IAAI,CACvDhe,IAAK,6CACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKu+B,mBAAqB94B,EAAKzF,KAAKu+B,oBAAsB,GAC/D94B,EAAKzF,KAAKu+B,mBAAmB/pB,EAAOnS,UAAYrC,CAClD,CACF,CAAC,EAEDyF,EAAKkK,SAAWyvD,EAAWC,SAAS7gD,IAAI,CACtChe,IAAK,oBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKE,MAAQuF,EAAKzF,KAAKE,OAAS,GACrCuF,EAAKzF,KAAKE,MAAMsU,EAAOnS,UAAYrC,CACrC,CACF,CAAC,EAEDyF,EAAKyC,eAAiB,SAAUlI,EAAMwjE,GAEpC,OADAxjE,EAAOA,GAAQ,GACRlB,EAAQ2kE,SAAS,CAAC,KAAK,EAAEC,OAAO,CAAC,UAAW,SAAUlhD,GAC3D,IAAI/Z,EAAS,GACXC,EAAS,GACTqwC,EAAQ,EAEV/4C,EAAOwiB,EAAQ,SAAS,EAAExiB,EAAM,QAAS,EAAI,EAE7C,IAAK,IAAIwB,EAAI,EAAGA,EAAI,GAAKA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GACzCiH,EAAO1B,KAAK/G,EAAKwB,GAAG0H,MAAM,EAC1BR,EAAO3B,KAAK/G,EAAKwB,GAAG2H,KAAK,EAG3B,IAAK3H,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAC5Bu3C,GAAS/4C,EAAKwB,GAAG2H,MAOnB,OALkB,EAAdnJ,EAAKpB,SACP6J,EAAO1B,KAAKy8D,GAAc,OAAO,EACjC96D,EAAO3B,KAAKgyC,CAAK,GAGZ,CACLtwC,OAAQA,EACRC,OAAQA,CACV,CACF,EAAE,CACJ,CACF,CArGF,IAAW5J,IAyGRA,QAAST,OAJR,mCAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,sBAAuBn/C,CAAmB,C,sECvG7B,SAApB0H,EAA8BhM,EAAI+V,EAAUkJ,EAAS/b,EAAec,GAEtE,IAAI9B,EAAOC,KAIPi+D,GAFJl+D,EAAKzF,KAAO,GAEE,CACZ,CACEmG,KAAM,YACNoH,IAAK,UACP,EACA,CACEpH,KAAM,UACNoH,IAAK,IACP,EACA,CACEpH,KAAM,gBACNoH,IAAK,UACP,EACA,CACEpH,KAAM,qBACNoH,IAAK,kBACP,EACA,CACEpH,KAAM,cACNoH,IAAK,aACP,EACA,CACEpH,KAAM,WACNoH,IAAK,oBACP,EACA,CACEpH,KAAM,YACNoH,IAAK,mBACP,EACA,CACEpH,KAAM,WACNoH,IAAK,kBACP,EACA,CACEpH,KAAM,QACNoH,IAAK,eACP,EACA,CACEpH,KAAM,UACNoH,IAAK,iBACP,EACA,CACEpH,KAAM,WACNoH,IAAK,kBACP,EACA,CACEpH,KAAM,UACNoH,IAAK,yBACP,EACA,CACEpH,KAAM,WACNoH,IAAK,0BACP,EACA,CACEpH,KAAM,WACNoH,IAAK,0BACP,EACA,CACEpH,KAAM,OACNoH,IAAK,sBACP,EACA,CACEpH,KAAM,YACNoH,IAAK,2BACP,EACA,CACEpH,KAAM,UACNoH,IAAK,yBACP,EACA,CACEpH,KAAM,cACNoH,IAAK,6BACP,EACA,CACEpH,KAAM,QACNoH,IAAK,eACP,EACA,CACEpH,KAAM,QACNoH,IAAK,eACP,EACA,CACEpH,KAAM,iBACNoH,IAAK,wBACP,EACA,CACEpH,KAAM,MACNoH,IAAK,aACP,EACA,CACEpH,KAAM,QACNoH,IAAK,OACP,EACA,CACEpH,KAAM,0BACNoH,IAAK,mBACP,EACA,CACEpH,KAAM,0BACNoH,IAAK,kBACP,EACA,CACEpH,KAAM,aACNoH,IAAK,qBACP,EACA,CACEpH,KAAM,SACNoH,IAAK,QACP,IAGF9H,EAAK+J,WAAa,SAAUnN,EAAUnC,EAAO0iB,GAC3C,IAwFwBvgB,EAnBKA,EArEzB4f,EAAI1e,EAAG8e,MAAM,EACbuhD,EA8GN,SAA6B1jE,GAG3B,IAFA,IAAIyjE,EAAU,GAELniE,EAAI,EAAGA,EAAItB,EAAMtB,OAAQ4C,CAAC,GACjC,GAAItB,EAAMsB,GAAGqiE,WACX,IAAK,IAAIj/D,EAAI,EAAGA,EAAI1E,EAAMsB,GAAGqiE,WAAWjlE,OAAQgG,CAAC,GAC1C++D,EAAQjgE,OAAO,SAAUmD,GAAK,OAAOA,EAAE64C,gBAAkBx/C,EAAMsB,GAAGqiE,WAAWj/D,GAAGk/D,UAAW,CAAC,EAAEllE,QACjG+kE,EAAQ58D,KAAK,CACXZ,KAAMjG,EAAMsB,GAAGqiE,WAAWj/D,GAAG2F,KAAO,uBACpCgD,IAAK,aACL2yC,YAAa,aACbR,cAAex/C,EAAMsB,GAAGqiE,WAAWj/D,GAAGk/D,UACxC,CAAC,EAET,OAAOH,CACT,EA7H6CzjE,CAAK,EAiEhD,OA/DKuF,EAAKzF,KAAKqC,IAAcoD,EAAKzF,KAAKqC,GAAUoN,QA2D/C6J,EAAS,WACP2I,EAAE/jB,QAAQ,CACZ,CAAC,EA5DDqF,EAAGyH,IAAI,EAiEoB3I,EAhEHA,EAiEnBkF,EACJC,gBAAgB,CAAEnF,SAAUA,CAAS,CAAC,EACtCxB,KAAK,WAGJ,IAFA,IAAI8iE,EAAU,GAELniE,EAAI,EAAGA,EAAI+F,EAAmBvH,KAAKyH,aAAapF,GAAUzD,OAAQ4C,CAAC,GAC1EmiE,EAAQ58D,KAAK,CACXZ,KAAMoB,EAAmBvH,KAAKyH,aAAapF,GAAUb,GAAGoJ,YACxD2C,IAAK,6BACL2yC,YAAa,WACbR,cAAen4C,EAAmBvH,KAAKyH,aAAapF,GAAUb,GAAG+G,EACnE,CAAC,EAGH,OAAOo7D,CACT,CAAC,IAGqBthE,EAlFHA,EAmFdoE,EACJC,WAAW,CAAErE,SAAUA,CAAS,CAAC,EACjCxB,KAAK,WAGJ,IAFA,IAS2BgG,EATvB88D,EAAU,GAEL/+D,EAAI,EAAGA,EAAI6B,EAAczG,KAAKI,QAAQiC,GAAUzD,OAAQgG,CAAC,GAChE,GAAI6B,EAAczG,KAAKI,QAAQiC,GAAUuC,GAAG+B,SAC1C,IAAK,IAAInF,EAAI,EAAGA,EAAIiF,EAAczG,KAAKI,QAAQiC,GAAUuC,GAAGkC,gBAAgBlI,OAAQ4C,CAAC,GAC/EiF,EAAczG,KAAKI,QAAQiC,GAAUuC,GAAGkC,gBAAgBtF,GAAGmF,UAC7Dg9D,EAAQ58D,KAAK,CAGXZ,MAAiBU,EAAuCJ,EAAczG,KAAKI,QAAQiC,GAAUuC,GAAGkC,gBAAgBtF,GAAGyiC,KAAtF4R,MAAMhvC,CAAC,EAAIA,EAAIA,EAAI,KAChD0G,IAAK,gBACL2yC,YAAa,WACbR,cAAej5C,EAAczG,KAAKI,QAAQiC,GAAUuC,GAAGkC,gBAAgBtF,GAAG+G,EAC5E,CAAC,EAET,OAAOo7D,CACT,CAAC,GArGA,EACE9iE,KAAK,SAAUb,GACdyF,EAAKzF,KAAKqC,GAAYoD,EAAKzF,KAAKqC,IAAa,GAC7CoD,EAAKzF,KAAKqC,GAAUshE,QAAU7kE,EAAQqB,KAAKwjE,CAAO,EAE9C/gD,GAEGghD,EAAiBhlE,QAAsC,IAA5BglE,EAAiBhlE,SAC/C6G,EAAKzF,KAAKqC,GAAUshE,QAAUl+D,EAAKzF,KAAKqC,GAAUshE,QAAQjgE,OAAO,SAAUmD,GAAK,MAAiB,sBAAVA,EAAE0G,GAA6B,CAAC,GAEpHrN,EAAMwD,OAAO,SAAUsM,GAAK,OAAOA,EAAE6sB,kBAAoB7sB,EAAE8sB,mBAAqB,CAAC,EAAEl+B,SACtF6G,EAAKzF,KAAKqC,GAAUshE,QAAUl+D,EAAKzF,KAAKqC,GAAUshE,QAAQjgE,OAAO,SAAUmD,GACzE,MAGqB,CAAC,IAHf,CACL,mBACA,uBACAiG,QAAQjG,EAAE0G,GAAG,CACjB,CAAC,GAEH9H,EAAKzF,KAAKqC,GAAUshE,QAAUl+D,EAAKzF,KAAKqC,GAAUshE,QAAQhyD,OAAOiyD,CAAgB,GAGjFn+D,EAAKzF,KAAKqC,GAAUshE,QAAUl+D,EAAKzF,KAAKqC,GAAUshE,QAAQjgE,OAAO,SAAUmD,GACzE,MAIqB,CAAC,IAJf,CACL,oBACA,mBACA,uBACAiG,QAAQjG,EAAE0G,GAAG,CACjB,CAAC,EAGH9H,EAAKzF,KAAKqC,GAAUshE,QAAUl+D,EAAKzF,KAAKqC,GAAUshE,QAAQhyD,OAAO3R,EAAK,EAAE,EACxEyF,EAAKzF,KAAKqC,GAAUshE,QAAUl+D,EAAKzF,KAAKqC,GAAUshE,QAAQhyD,OAAO3R,EAAK,EAAE,EAKxE,IAHA,IAAI+jE,EAAQ,GACRC,EAAQ,GAEHxiE,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKqC,GAAUshE,QAAQ/kE,OAAQ4C,CAAC,GAAI,CAC3D,IAAI2E,EAAOV,EAAKzF,KAAKqC,GAAUshE,QAAQniE,GAAG2E,KAE1C69D,EAAM79D,GAAQ69D,EAAM79D,IAAS,EAEX,EAAd69D,EAAM79D,IACRV,EAAKzF,KAAKqC,GAAUshE,QAAQniE,GAAG2E,KAAOA,EAAO69D,EAAM79D,GACnD49D,EAAMh9D,KAAKtB,EAAKzF,KAAKqC,GAAUshE,QAAQniE,GAAG2E,IAAI,GAG9C49D,EAAMh9D,KAAKZ,CAAI,EAEjB69D,EAAM79D,EAAK,EACb,CAEAV,EAAKzF,KAAKqC,GAAUoN,QAAUs0D,EAC9B9hD,EAAE/jB,QAAQ,CACZ,CAAC,EAME+jB,EAAEK,OACX,EA8HA7c,EAAKw+D,UAAY,SAAU5hE,EAAUrC,EAAMoyB,GAGzC,IAFA,IAAImhB,EAAI,GAEC/xC,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAChC+xC,EAAExsC,KArEN,SAAsB1E,EAAUshE,EAASp0B,EAAOnd,GAG9C,IAFA,IAAI8xC,EAAM,GAED1iE,EAAI,EAAGA,EAAImiE,EAAQ/kE,OAAQ4C,CAAC,GAGnC,UAAUg+C,EAAQgO,EAAOje,GACvB,GAAIie,EAAM5uD,OAAQ,CAChB,IAAIo0B,EAAOw6B,EAAM,GAEjB,GAAIje,EAAMvc,IAAwB,EAAfw6B,EAAM5uD,OACvB,OAAO4gD,EAAQgO,EAAMl9B,OAAO,CAAC,EAAGif,EAAMvc,EAAK,EAE3C,GAAI2wC,EAAQniE,GAAG0+C,aAAe3kB,MAAMC,QAAQ+T,EAAMvc,EAAK,EAAG,CACxD,IAAIkM,EAAU,GAES,eAAnBykC,EAAQniE,GAAG+L,KAA0BgiC,EAAMvc,GAAMp0B,QAAW2wC,EAAMvc,GAAMtvB,OAAO,SAAUmD,GAAK,OAAOA,EAAEi9D,aAAeH,EAAQniE,GAAGk+C,aAAe,CAAC,EAAE9gD,QACrJsgC,EAAQn4B,KAAK,CAAC,EAEhB,IAAK,IAAInC,EAAI,EAAGA,EAAI2qC,EAAMvc,GAAMp0B,OAAQgG,CAAC,GACvC,GAAI2qC,EAAMvc,GAAMpuB,GAAG++D,EAAQniE,GAAG0+C,cAAgByjB,EAAQniE,GAAGk+C,cACvD,GAAuB,+BAAnBikB,EAAQniE,GAAG+L,KACb,IAAK,IAAIgyB,EAAI,EAAGA,EAAIh4B,EAAmBvH,KAAKyH,aAAapF,GAAUzD,OAAQ2gC,CAAC,GAC1E,GAAIh4B,EAAmBvH,KAAKyH,aAAapF,GAAUk9B,GAAGh3B,IAAMo7D,EAAQniE,GAAGk+C,cACrE,GAAwE,QAApEn4C,EAAmBvH,KAAKyH,aAAapF,GAAUk9B,GAAGtxB,cACpDixB,EAAQn4B,KAAKwoC,EAAMvc,GAAMpuB,GAAG06B,QAAQ,OAEpC,IAAK,IAAI37B,EAAI,EAAGA,EAAI4D,EAAmBvH,KAAKyH,aAAapF,GAAUk9B,GAAG7zB,WAAW9M,OAAQ+E,CAAC,GACxF,GAAI4D,EAAmBvH,KAAKyH,aAAapF,GAAUk9B,GAAG7zB,WAAW/H,GAAGkI,UAAY0jC,EAAMvc,GAAMpuB,GAAG06B,SAAU,CACvGJ,EAAQn4B,KAAKQ,EAAmBvH,KAAKyH,aAAapF,GAAUk9B,GAAG7zB,WAAW/H,GAAGiH,WAAW,EACxF,KACF,CAER,KAE0B,eAAnB+4D,EAAQniE,GAAG+L,IAClB2xB,EAAQn4B,KAAKwoC,EAAMvc,GAAMpuB,GAAGu/D,YAAY,EAExCjlC,EAAQn4B,KAAKwoC,EAAMvc,GAAMpuB,GAAG06B,QAAQ,EAG1C4kC,EAAIP,EAAQniE,GAAG2E,MAAQ+4B,EAAQ5tB,KAAK,KAAK,CAC3C,KAC4B,aAAnBqyD,EAAQniE,GAAG+L,IAClB22D,EAAIP,EAAQniE,GAAG2E,MAAQqc,EAAQ,MAAM,EAAE+sB,EAAMvc,GAAO,QAASuc,EAAMtqB,cAAc,EACvD,qBAAnB0+C,EAAQniE,GAAG+L,IAClB22D,EAAIP,EAAQniE,GAAG2E,OAASopC,EAAMvc,IAAS,IAAI11B,IAAI,SAAUuJ,GACvD,OAAO2b,EAAQ,MAAM,EAAE3b,EAAG,QAAS0oC,EAAMtqB,cAAc,CACzD,CAAC,EAAE3T,KAAK,KAAK,EACa,4BAAnBqyD,EAAQniE,GAAG+L,KAAqC6kB,GAA+B,QAAvBA,EAAKzU,YAAY,EAChFumD,EAAIP,EAAQniE,GAAG2E,MAAQopC,EAAMvc,GAAS,IAAOuc,EAAMvc,GAAQ,IAAQ,GACU,CAAC,EAAvE,CAAC,mBAAoB,uBAAuBlmB,QAAQ62D,EAAQniE,GAAG+L,GAAG,EACzE22D,EAAIP,EAAQniE,GAAG2E,MAAWopC,EAAwB,kBAAOA,EAA2B,oBAAK,OAAS,QACxE,WAAnBo0B,EAAQniE,GAAG+L,IAClB22D,EAAIP,EAAQniE,GAAG2E,MAAQrH,EAAQ8nD,UAAUrX,EAAc,MAAC,EAAIA,EAAc,OAAI,GAE9E20B,EAAIP,EAAQniE,GAAG2E,MAAQopC,EAAMvc,EAEnC,CACD,EAvDW2wC,EAAQniE,GAAG+L,IAAIuF,MAAM,GAAG,EAuD1By8B,CAAK,EAGjB,OAAO20B,CACT,EAMwB7hE,EAAUoD,EAAKzF,KAAKqC,GAAUshE,QAAS3jE,EAAKwB,GAAI4wB,CAAI,CAAC,EAG3E,OAAOmhB,CACT,EAEA9tC,EAAKse,aAAe,SAAU1hB,EAAUoN,EAASzP,EAAMoyB,GAMrD,IALA,IAAIgyC,EAAa3+D,EAAKw+D,UAAU5hE,EAAUrC,EAAMoyB,CAAI,EAChDiyC,EAAM,GACNH,EAAM,GAGD1iE,EAAI,EAAGA,EAAIiO,EAAQ7Q,OAAQ4C,CAAC,GACnC0iE,GAAOryC,KAAKwrC,UAAU5tD,EAAQjO,EAAE,EAAI,IAGtC6iE,IADAH,EAAMA,EAAI5mD,MAAM,EAAG,CAAC,CAAC,GACR,OAGb,IAAS9b,EAAI,EAAGA,EAAI4iE,EAAWxlE,OAAQ4C,CAAC,GAAI,CAG1C,IAAK,IAGG0rD,EALRgX,EAAM,GAEGr9D,EAAI,EAAGA,EAAI4I,EAAQ7Q,OAAQiI,CAAC,GAE/Bu9D,EAAW5iE,GAAGiO,EAAQ5I,KACpBqmD,EAAOr7B,KAAKwrC,UAAU+G,EAAW5iE,GAAGiO,EAAQ5I,GAAG,EAAEyW,MAAM,EAAG,CAAC,CAAC,GACvDvK,SAAS,GAAG,EACnBmxD,GAAO,IAAMhX,EAAKoX,WAAW,MAAO,EAAE,EAAU,KAGhDJ,GAAOryC,KAAKwrC,UAAU+G,EAAW5iE,GAAGiO,EAAQ5I,GAAG,EAAI,IAGrDq9D,GAAO,IAIXG,IADAH,EAAMA,EAAI5mD,MAAM,EAAG,CAAC,CAAC,GACR,MACf,CAEA,OAAO+mD,CACT,CACF,CAtWF,IAAWvlE,IA0WRA,QAAST,OAJR,2EAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,oBAAqBz3C,CAAiB,C,wECxWvB,SAAtBtL,EAAgCm7D,GAElC,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKpB,kBAAoB+6D,EAAWC,SAAS7gD,IAAI,CAC/Che,IAAK,iCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKsE,gBAAkBmB,EAAKzF,KAAKsE,iBAAmB,GACzDmB,EAAKzF,KAAKsE,gBAAgBkQ,EAAOnS,UAAYrC,CAC/C,CACF,CAAC,EAEDyF,EAAK8/B,mBAAqB65B,EAAWC,SAASK,KAAK,CACjDl/D,IAAK,kCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKsE,gBAAkBmB,EAAKzF,KAAKsE,iBAAmB,GACzDmB,EAAKzF,KAAKsE,gBAAgBoB,KAAK8O,OAAOnS,UAAYrC,CACpD,CACF,CAAC,EAEDyF,EAAKvB,YAAck7D,EAAWC,SAAS7gD,IAAI,CACzChe,IAAK,2BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKmE,aAAesB,EAAKzF,KAAKmE,cAAgB,GACnDsB,EAAKzF,KAAKmE,aAAaqQ,EAAOnS,UAAYrC,CAC5C,CACF,CAAC,CACH,CA9BF,IAAWlB,IAkCRA,QAAST,OAJR,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,sBAAuB/iD,CAAmB,C,iEChClC,SAAfgkC,EAAyBm3B,EAAYxoD,GAEvC,IAAInR,EAAOC,KAEXD,EAAKzF,KAAO,CACVmoC,KAAM,GACNC,UAAW,EACb,EAEA3iC,EAAKzF,KAAK0rC,SAAWrtC,EAAOkmE,SAExBlmE,EAAOmmE,SAAWnmE,EAAOmmE,QAAQv0D,YACnC2G,EAAQ2H,eAAe,gBAAkBzf,EAAQsY,OAAO/Y,EAAOmmE,OAAO,GAGpEnmE,EAAOomE,eACT7tD,EAAQ2H,eAAe,qBAAuBzf,EAAQsY,OAAO/Y,EAAOomE,YAAY,GAGlFh/D,EAAK4jC,WAAa,WAChB,OAAOvqC,EAAQmY,SAASL,EAAQ2H,eAAe,eAAe,CAChE,EAEA9Y,EAAK+jC,aAAe,WAClB5yB,EAAQ2H,eAAeE,WAAW,cAAc,CAClD,EAEAhZ,EAAKmkC,gBAAkB,WACrB,OAAO9qC,EAAQmY,SAASL,EAAQ2H,eAAe,oBAAoB,CACrE,EAEA9Y,EAAKi/D,kBAAoB,WACvB9tD,EAAQ2H,eAAeE,WAAW,mBAAmB,CACvD,EAEAhZ,EAAK2lC,aAAe,WAClB3lC,EAAKzF,KAAKmoC,KAAO,GACjB1iC,EAAKzF,KAAKooC,UAAY,EACxB,EAEA3iC,EAAK0/C,eAAiBia,EAAWC,SAAS7gD,IAAI,CAC5Che,IAAK,8BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKgB,MAAQhB,GAAQ,EAC5B,CACF,CAAC,EAEDyF,EAAKsgD,wBAA0BqZ,EAAWC,SAAS7gD,IAAI,CACrDhe,IAAK,uCACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKgmD,WAAahmD,GAAQ,EACjC,CACF,CAAC,EAEDyF,EAAKsjC,qCAAuCq2B,EAAWC,SAAS7gD,IAAI,CAClEhe,IAAK,oDACLo/D,YAAa,EACf,CAAC,EAEDn6D,EAAK6+C,cAAgB8a,EAAWC,SAASK,KAAK,CAC5Cl/D,IAAK,oBACP,CAAC,EAEDiF,EAAK++C,gBAAkB4a,EAAWC,SAASK,KAAK,CAC9Cl/D,IAAK,8BACP,CAAC,EAEDiF,EAAK+iC,wBAA0B42B,EAAWC,SAASK,KAAK,CACtDl/D,IAAK,sCACP,CAAC,EAEDiF,EAAKoa,eAAiBu/C,EAAWC,SAASK,KAAK,CAC7Cl/D,IAAK,6BACP,CAAC,EAEDiF,EAAKmlC,YAAcw0B,EAAWC,SAASK,KAAK,CAC1Cl/D,IAAK,0BACP,CAAC,CACH,CAhFF,IAAW1B,EAAST,EAATS,EAoFRA,QApFiBT,EAoFRA,OAJR,mCAEFS,EAAQX,OAAO,yBAAyB,EACrC6oD,QAAQ,eAAgB/e,CAAY,C,iEClFpB,SAAfzjC,EAAyBm7D,EAAMP,GAEjC,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKhB,UAAY26D,EAAWC,SAAS7gD,IAAI,CACvChe,IAAK,sBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAK0E,OAASe,EAAKzF,KAAK0E,QAAU,GACvCe,EAAKzF,KAAK0E,OAAO8P,EAAOnS,UAAYrC,CACtC,CACF,CAAC,EAEDyF,EAAK+Q,oBAAsB4oD,EAAWC,SAAS7gD,IAAI,CACjDhe,IAAK,gCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKyW,cAAgBhR,EAAKzF,KAAKyW,eAAiB,GACrDhR,EAAKzF,KAAKyW,cAAcjC,EAAOnS,UAAYoD,EAAKzF,KAAKyW,cAAcjC,EAAOnS,WAAa,GACvFoD,EAAKzF,KAAKyW,cAAcjC,EAAOnS,UAAUmS,EAAO0B,cAAgBlW,CAClE,CACF,CAAC,EAEDyF,EAAK+2B,mBAAqB4iC,EAAWC,SAAS7gD,IAAI,CAChDhe,IAAK,+BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKy8B,gBAAkBh3B,EAAKzF,KAAKy8B,iBAAmB,GACzDh3B,EAAKzF,KAAKy8B,gBAAgBjoB,EAAOnS,UAAYrC,CAC/C,CACF,CAAC,EAEDyF,EAAKkgB,aAAey5C,EAAWC,SAASK,KAAK,CAC3Cl/D,IAAK,wBACP,CAAC,EAEDiF,EAAK8jB,oBAAsB61C,EAAWC,SAASK,KAAK,CAClDl/D,IAAK,+BACP,CAAC,EAEDiF,EAAKsQ,cAAgBqpD,EAAWC,SAASK,KAAK,CAC5Cl/D,IAAK,0BACL4qB,QAAS,SAAUprB,EAAMwU,GACvBmrD,EAAKxhD,IAAIne,CAAI,CACf,CACF,CAAC,EAEDyF,EAAKgnB,sBAAwB2yC,EAAWC,SAASK,KAAK,CACpDl/D,IAAK,iCACP,CAAC,EAEDiF,EAAK4Q,SAAW+oD,EAAWC,SAAS7gD,IAAI,CACtChe,IAAK,qBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAK4rB,MAAQnmB,EAAKzF,KAAK0E,QAAU,GACtCe,EAAKzF,KAAK4rB,MAAMpX,EAAO0B,cAAgBlW,CACzC,CACF,CAAC,CAEH,CA3DF,IAAWlB,IA+DRA,QAAST,OAJR,gCAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,eAAgBxiD,CAAY,C,oEC7DjB,SAAlBwM,EAA4BouD,GAE1B,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKwL,YAAcmuD,EAAWC,SAAS7gD,IAAI,CACvChe,IAAK,2BACL4qB,QAAS,SAASprB,EAAMwU,GACpB/O,EAAKzF,KAAKkR,SAAWzL,EAAKzF,KAAKkR,UAAY,GAC3CzL,EAAKzF,KAAKkR,SAASsD,EAAOnS,UAAYrC,CAC1C,CACJ,CAAC,EAEDyF,EAAK4N,qBAAuB+rD,EAAWC,SAAS7gD,IAAI,CAClDhe,IAAK,oCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKwT,kBAAoB/N,EAAKzF,KAAKwT,mBAAqB,GAC7D/N,EAAKzF,KAAKwT,kBAAkBgB,EAAOnS,UAAYoD,EAAKzF,KAAKwT,kBAAkBgB,EAAOnS,WAAa,GAC/FoD,EAAKzF,KAAKwT,kBAAkBgB,EAAOnS,UAAUmS,EAAOlB,aAAetT,CACrE,CACF,CAAC,EAEDyF,EAAKwO,oCAAsCmrD,EAAWC,SAAS7gD,IAAI,CACjEhe,IAAK,mDACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKqU,iCAAmC5O,EAAKzF,KAAKqU,kCAAoC,GAC3F5O,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAe7N,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,cAAgB,GACnI7N,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAakB,EAAON,sBAAwBzO,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAakB,EAAON,uBAAyB,GAC7LzO,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAakB,EAAON,sBAAsBM,EAAOL,cAAgB1O,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAakB,EAAON,sBAAsBM,EAAOL,eAAiB,GACvO1O,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAakB,EAAON,sBAAsBM,EAAOL,cAAcK,EAAOJ,iBAAmB3O,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAakB,EAAON,sBAAsBM,EAAOL,cAAcK,EAAOJ,kBAAoB,GACvR3O,EAAKzF,KAAKqU,iCAAiCG,EAAOlB,aAAakB,EAAON,sBAAsBM,EAAOL,cAAcK,EAAOJ,iBAAiBI,EAAOnS,UAAYrC,CAC9J,CACF,CAAC,EAEDyF,EAAKqjD,iBAAmBsW,EAAWC,SAAS7gD,IAAI,CAC9Che,IAAK,gCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKgpD,cAAgBvjD,EAAKzF,KAAKgpD,eAAiB,GACrDvjD,EAAKzF,KAAKgpD,cAAcx0C,EAAOu0C,WAAa/oD,CAC9C,CACF,CAAC,EAEDyF,EAAK+L,qBAAuB4tD,EAAWC,SAAS7gD,IAAI,CAChDhe,IAAK,oCACL4qB,QAAS,SAASprB,EAAMwU,GACpB/O,EAAKzF,KAAKyR,kBAAoBhM,EAAKzF,KAAKyR,mBAAqB,GAC7DhM,EAAKzF,KAAKyR,kBAAkB+C,EAAOnS,UAAYrC,CACnD,CACJ,CAAC,EAEDyF,EAAKoM,UAAYutD,EAAWC,SAAS7gD,IAAI,CACrChe,IAAK,yBACL4qB,QAAS,SAASprB,EAAMwU,GACpB/O,EAAKzF,KAAK+R,OAAStM,EAAKzF,KAAK+R,QAAU,GACvCtM,EAAKzF,KAAK+R,OAAOyC,EAAOnS,UAAYoD,EAAKzF,KAAK+R,OAAOyC,EAAOnS,WAAa,GACzEoD,EAAKzF,KAAK+R,OAAOyC,EAAOnS,UAAUmS,EAAOpD,YAAcpR,CAC3D,CACJ,CAAC,EAEDyF,EAAKo3D,YAAcuC,EAAWC,SAASK,KAAK,CAC1Cl/D,IAAK,0BACP,CAAC,EAEDiF,EAAK4hB,aAAe+3C,EAAWC,SAASK,KAAK,CACzCl/D,IAAK,2BACT,CAAC,CACL,CApEJ,IAAW1B,IAwERA,QAAST,OAJN,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,kBAAmBh2C,CAAe,C,oECtEzB,SAAlBuJ,EAA4B6kD,GAE1B,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKiV,aAAe0kD,EAAWC,SAAS7gD,IAAI,CACxChe,IAAK,4BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKM,UAAYmF,EAAKzF,KAAKM,WAAa,GAC7CmF,EAAKzF,KAAKM,UAAUkU,EAAOmG,WAAa3a,CAC1C,CACJ,CAAC,EAEDyF,EAAK+U,sBAAwB4kD,EAAWC,SAAS7gD,IAAI,CACnDhe,IAAK,qCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKM,UAAYmF,EAAKzF,KAAKM,WAAa,GAC7CmF,EAAKzF,KAAKM,UAAUkU,EAAOnS,UAAYrC,CACzC,CACF,CAAC,CACL,CAtBJ,IAAWlB,IA0BRA,QAAST,OAJN,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,kBAAmBzsC,CAAe,C,kECzBjD,IAAWzb,IAmGRA,QAAST,OAlGVS,EAAQX,OAAO,oBAAoB,EAChC4iE,SAAS,aAAc,CACtBpzB,OAAQ,CACN3tC,KAAM,GACNwO,QAAS,GACT8wC,UAAW,EACX9/B,YAAa,EACbC,SAAU,GACVC,eAAgB,EAChBC,YAAa,CACf,EACAzf,MAAO,CACLF,KAAM,GACNwO,QAAS,GACT8wC,UAAW,EACX9/B,YAAa,EACbC,SAAU,GACVC,eAAgB,EAChBC,YAAa,EACb3Y,KAAM,WACNuc,cAAe,GACf2mC,YAAa,GACbya,YAAa,OACf,EACAvkE,QAAS,CACPJ,KAAM,GACNwO,QAAS,GACT8wC,UAAW,GACXmO,WAAY,GACZjuC,YAAa,EACbC,SAAU,GACVC,eAAgB,EAChBC,YAAa,EACb3Y,KAAM,eACN6c,KAAM,GACN+1B,YAAa,EACf,EACAv5C,OAAQ,CACNL,KAAM,GACNwO,QAAS,GACT8wC,UAAW,GACXmO,WAAY,GACZjuC,YAAa,EACbC,SAAU,GACVC,eAAgB,EAChBC,YAAa,EACb3Y,KAAM,eACN6c,KAAM,EACR,EACAtjB,eAAgB,CACdP,KAAM,GACNwO,QAAS,GACT8wC,UAAW,GACXmO,WAAY,GACZjuC,YAAa,EACbC,SAAU,GACVC,eAAgB,EAChBC,YAAa,EACb3Y,KAAM,eACN6c,KAAM,EACR,EACAvjB,UAAW,CACTN,KAAM,GACNwO,QAAS,GACT8wC,UAAW,GACXmO,WAAY,GACZjuC,YAAa,EACbC,SAAU,GACVC,eAAgB,EAChBC,YAAa,EACb3Y,KAAM,cACR,EACA4O,UAAW,CACTpH,QAAS,GAGTgf,YAAa,CACX,CACEO,QAAS,OACTJ,MAAO,CACL,CACEC,SAAU,CACR,CACEC,SAAU,QACVG,OAAQ,EACV,EAEJ,EAEJ,GAEFxgB,MAAO,CACL+W,QAAS,GACTqgD,KAAM,EACR,EACAnlD,SAAU,EACZ,CACF,CAAC,C,gECjGe,SAAd9f,EAAwB4D,EAAI+V,EAAU8lD,GAEpC,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAK6oC,QAAU8wB,EAAWC,SAAS7gD,IAAI,CACnChe,IAAK,kBACT,CAAC,EAEDiF,EAAK7E,SAAWw+D,EAAWC,SAAS7gD,IAAI,CACpChe,IAAK,WACL4qB,QAAS,SAAUprB,GACfyF,EAAKzF,KAAKgB,MAAQhB,CACtB,CACJ,CAAC,EAEDyF,EAAKrD,sBAAwBg9D,EAAWC,SAAS7gD,IAAI,CACjDhe,IAAK,iCACL4qB,QAAS,SAASprB,EAAMwU,GACpB/O,EAAKzF,KAAKuC,mBAAqBkD,EAAKzF,KAAKuC,oBAAsB,GAC/DkD,EAAKzF,KAAKuC,mBAAmBiS,EAAOnS,UAAYrC,CACpD,CACJ,CAAC,EAEDyF,EAAK7C,eAAiBw8D,EAAWC,SAAS7gD,IAAI,CAC1Che,IAAK,0BACL4qB,QAAS,SAASprB,EAAMwU,GACpB/O,EAAKzF,KAAK6C,YAAc4C,EAAKzF,KAAK6C,aAAe,GACjD4C,EAAKzF,KAAK6C,YAAY2R,EAAOnS,UAAYrC,CAC7C,EACA4c,MAAO,SAAS0F,EAAStiB,EAAMy3B,EAAQhoB,EAASzQ,GAC5CyG,EAAKzF,KAAK6C,YAAc4C,EAAKzF,KAAK6C,aAAe,GACjDyf,EAAQpkB,QAAQuH,EAAKzF,KAAK6C,YAAY7D,EAAOwV,OAAOnS,UAAY,CAAC,CACrE,CACJ,CAAC,EAEDoD,EAAKhD,QAAU,SAAUJ,GACrB,IAQY8lC,EARRlmB,EAAI1e,EAAG8e,MAAM,EAEjB,GAAI5c,EAAKzF,KAAKC,aAAewF,EAAKzF,KAAKC,YAAYqC,SAASqb,YAAY,IAAMtb,EAASsb,YAAY,EAC/FrE,EAAS,WACL2I,EAAE/jB,QAAQ,CACd,CAAC,OACA,GAAImE,EACL,GAAIoD,EAAKzF,KAAKgB,OAASyE,EAAKzF,KAAKgB,MAAMpC,OAAQ,CAE3CyD,EAAWA,EAASsb,YAAY,EAEhC,IAAI,IAAInc,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKgB,MAAMpC,OAAQ4C,CAAC,GACxC,GAAIiE,EAAKzF,KAAKgB,MAAMQ,GAAGc,SAASqb,YAAY,IAAMtb,EAAU,CACxD8lC,EAAO1iC,EAAKzF,KAAKgB,MAAMQ,GACvB,KACJ,CAEJ,GAAI2mC,GAOA,KAAM,uBANN1iC,EAAKzF,KAAKC,YAAckoC,EACxB7uB,EAAS,WACL2I,EAAE/jB,QAAQ,CACd,CAAC,CAIT,MAEIuH,EACC7E,SAAS,EACTC,KAAK,WACF4E,EACKhD,QAAQJ,CAAQ,EAChBxB,KAAK,WACFohB,EAAE/jB,QAAQ,CACd,CAAC,CACT,CAAC,EAGT,OAAO+jB,EAAEK,OACb,CACJ,CA/EJ,IAAWxjB,IAmFRA,QAAST,OAJN,yCAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,cAAernD,CAAW,C,kEC5FzC,aAWsB,SAAhB8G,EAA0B24D,GAE5B,IAAI35D,EAAOC,KAkPX,SAASm/D,EAAwB1mC,EAAU2mC,EAAeC,EAASt0D,EAAYu0D,GAK7E,IAJKD,KACO,IAEJh+D,KAAKo3B,EAAS51B,EAAE,EACpBsgB,EAAEoY,IAAI8jC,EAAS,SAAUvR,GAAK,OAAOA,GAAK/iD,CAAY,CAAC,EACzDu0D,EAAYpf,MAAQ,QAQtB,IALA,IAEIqf,EAFgB9mC,EAASxvB,cAAcjL,OAAO,SAAUmD,GAAK,OAAOA,EAAEF,QAAU,CAAC,EAGlFrJ,IAAI,SAAUwlC,GAAM,OAAOA,EAAGnB,cAAgB,CAAC,EAC/Cj+B,OAAO,SAAUmD,EAAGkqB,EAAOtrB,GAAQ,OAAY,MAALoB,GAAapB,EAAKqH,QAAQjG,CAAC,IAAMkqB,CAAO,CAAC,EAC7EvvB,EAAI,EAAGA,EAAIyjE,EAAwBrmE,OAAQ4C,CAAC,GAAI,CACvD,IAAIk3C,EAAeosB,EAAcphE,OAAO,SAAUmD,GAAK,OAAOA,EAAE0B,KAAO08D,EAAwBzjE,EAAI,CAAC,EAChGk3C,GAAgBA,EAAa95C,QAC/BimE,EAAwBnsB,EAAa,GAAIosB,EAAeC,EAASt0D,EAAYu0D,CAAW,CAC5F,CACF,CA4BA,SAASE,EAAsBhmC,GAC7B,GAAKA,EAGL,IAAK,IAAI19B,EAAI,EAAGA,EAAI09B,EAAQtgC,OAAQ4C,CAAC,GACH,cAA5B09B,EAAQ19B,GAAGkgC,eACbxC,EAAQ19B,GAAGmgC,eAAiB,GAIhC,OAAOzC,CACT,CAEA,SAASimC,EAAkBC,GACzB,OAAOA,EAAap+D,KAAK,SAAUq+D,EAAIC,GACrC,OAAOD,EAAGl+D,aAAem+D,EAAGn+D,YAC9B,CAAC,CACH,CAmHA,SAASo+D,EAA0BniC,EAAUjF,EAAUinC,GACrD,IAAIlmC,EAAUf,EAASxvB,cAAcjL,OAAO,SAAUo/B,GAAM,OAAOA,EAAGv6B,IAAM66B,CAAU,CAAC,EACnFoiC,EAAiBtmC,GAAWA,EAAQtgC,OAASsgC,EAAQ,GAAGyC,eAAiB,KAE7E,OAAI6jC,IACE9sB,EAAe0sB,EAAa1hE,OAAO,SAAUw9B,GAAK,OAAOA,EAAE34B,IAAMi9D,CAAgB,CAAC,IAC/D9sB,EAAa95C,OAAS85C,EAAa,GAEnD,IAEX,CAEA,SAAS+sB,EAA6BC,EAAmBN,EAAcO,GACrE,GAAKA,EAAL,CAGK98C,EAAEoY,IAAIykC,EAAkB9+D,UAAW,SAAUg/D,GAAM,OAAOA,GAAMD,EAAgBp9D,EAAI,CAAC,GACxFm9D,EAAkB9+D,UAAUG,KAAK4+D,EAAgBp9D,EAAE,EAErD,IAAK,IAAI/G,EAAI,EAAGA,EAAImkE,EAAgBh3D,cAAc/P,OAAQ4C,CAAC,GAAI,CAC7D,IAAIk3C,EAAe6sB,EAA0BI,EAAgBh3D,cAAcnN,GAAG+G,GAAIo9D,EAAiBP,CAAY,EAC3G1sB,GACF+sB,EAA6BC,EAAmBN,EAAc1sB,CAAY,CAC9E,CATQ,CAUV,CA3bAjzC,EAAKzF,KAAO,GAEZyF,EAAKiB,WAAa04D,EAAWC,SAAS7gD,IAAI,CACxChe,IAAK,wBACL4qB,QAAS,SAAUprB,EAAMwU,GAEvB,GADA/O,EAAKzF,KAAKI,QAAUqF,EAAKzF,KAAKI,SAAW,GACrCJ,EACF,IAAK,IAAIwB,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAChC,IAAK,IAAI+Q,EAAI,EAAGA,EAAIvS,EAAKwB,GAAGsF,gBAAgBlI,OAAQ2T,CAAC,GACnDvS,EAAKwB,GAAGsF,gBAAgByL,GAAG5D,cAAgBu2D,EAAsBllE,EAAKwB,GAAGsF,gBAAgByL,GAAG5D,aAAa,EAI/GlJ,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAYrC,CACvC,CACF,CAAC,EAEDyF,EAAK4K,UAAY+uD,EAAWC,SAAS7gD,IAAI,CACvChe,IAAK,uBACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GACvB,IAAI+rB,EAAS,GAIb,GAHA96B,EAAKzF,KAAKI,QAAUqF,EAAKzF,KAAKI,SAAW,GACzCqF,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAYoD,EAAKzF,KAAKI,QAAQoU,EAAOnS,WAAa,GAEvErC,EACF,IAAK,IAAIuS,EAAI,EAAGA,EAAIvS,EAAK8G,gBAAgBlI,OAAQ2T,CAAC,GAChDvS,EAAK8G,gBAAgByL,GAAG5D,cAAgBu2D,EAAsBllE,EAAK8G,gBAAgByL,GAAG5D,aAAa,EAIvG,GAAgB,IAAZ3O,EAAKuI,GAEF9C,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUqB,OAAO,SAAUmD,GAAK,MAAO,CAACA,EAAE0B,EAAI,CAAC,EAAE3J,QAC7E6G,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAU0E,KAAK/G,CAAI,MAE3C,CACH,IAAK,IAAIwB,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUzD,OAAQ4C,CAAC,GAC9D,GAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAG+G,IAAMvI,EAAKuI,GAAI,CACvD9C,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAKxB,EACxCugC,EAAS,GACT,KACF,CAEGA,GACH96B,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAU0E,KAAK/G,CAAI,CAChD,CACF,CACF,CAAC,EAEDyF,EAAKkL,qBAAuByuD,EAAWC,SAAS7gD,IAAI,CAClDhe,IAAK,kCACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,GACjByF,EAAKzF,KAAK4Q,kBAAoBnL,EAAKzF,KAAK4Q,mBAAqB,GAC7DnL,EAAKzF,KAAK4Q,kBAAoB5Q,CAChC,CACF,CAAC,EAEDyF,EAAKixC,WAAa0oB,EAAWC,SAASK,KAAK,CACzCl/D,IAAK,wBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB,IAAI+rB,EAAS,GACb96B,EAAKzF,KAAKI,QAAUqF,EAAKzF,KAAKI,SAAW,GACzCqF,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAYoD,EAAKzF,KAAKI,QAAQoU,EAAOnS,WAAa,GAE3E,IAAK,IAAIb,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUzD,OAAQ4C,CAAC,GAC9D,GAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAG+G,IAAMvI,EAAKuI,GAAI,CACvD9C,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAKxB,EACxCugC,EAAS,GACT,KACF,CAEF,GAAI,CAACA,EACH,IAAK/+B,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUzD,OAAQ4C,CAAC,GAC1D,GAAiD,IAA7CiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAG+G,GAAU,CAClD9C,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAKxB,EACxC,KACF,CACN,CACF,CAAC,EAEDyF,EAAKogE,mBAAqBzG,EAAWC,SAAS7gD,IAAI,CAChDhe,IAAK,gCACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GAEvB,GADA/O,EAAKzF,KAAKi6C,gBAAkBx0C,EAAKzF,KAAKi6C,iBAAmB,GACrDj6C,EACF,IAAK,IAAIwB,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAChCxB,EAAKwB,GAAGmN,cAAgBu2D,EAAsBllE,EAAKwB,GAAGmN,aAAa,EAGvElJ,EAAKzF,KAAKi6C,gBAAgBzlC,EAAOnS,UAAYrC,CAC/C,CACF,CAAC,EAEDyF,EAAK+K,kBAAoB4uD,EAAWC,SAAS7gD,IAAI,CAC/Che,IAAK,+BACLo/D,YAAa,GACbx0C,QAAS,SAAUprB,EAAMwU,GACvB,IAAK,IAAIhT,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUzD,OAAQ4C,CAAC,GAC9D,GAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAG+G,IAAMiM,EAAOlE,SAAU,CAC/D,IAAK,IAAI1L,EAAI,EAAGA,EAAIa,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GACjF,GAAIa,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlC,GAAG2D,IAAMvI,EAAKuI,GAAI,CACtEvI,IACFA,EAAK2O,cAAgBu2D,EAAsBllE,EAAK2O,aAAa,GAE/DlJ,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlC,GAAK5E,EAC3D,KACF,CAEF,KACF,CACJ,CACF,CAAC,EAEDyF,EAAKqgE,mBAAqB1G,EAAWC,SAASK,KAAK,CACjDl/D,IAAK,gCACL4qB,QAAS,SAAUprB,EAAMwU,GACvB,IAAIhT,EAAGoD,EAAG27B,EAAS,GAInB,IAHA96B,EAAKzF,KAAK+lE,gBAAkBtgE,EAAKzF,KAAK+lE,iBAAmB,GACzDtgE,EAAKzF,KAAK+lE,gBAAgBvxD,EAAOnS,UAAYoD,EAAKzF,KAAK+lE,gBAAgBvxD,EAAOnS,WAAa,GAEtFb,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUzD,OAAQ4C,CAAC,GAC1D,GAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAG+G,IAAMiM,EAAOlE,SACrD,IAAK1L,EAAI,EAAGA,EAAIa,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GAC7E,GAAIa,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlC,GAAG2D,IAAMvI,EAAKuI,GAAI,CAC1E9C,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlC,GAAK5E,EAC3DugC,EAAS,GACT,KACF,CAEN,GAAI,CAACA,EACH,IAAK/+B,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUzD,OAAQ4C,CAAC,GAC1D,GAAIiE,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAG+G,IAAMiM,EAAOlE,SACrD,IAAK1L,EAAI,EAAGA,EAAIa,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlI,OAAQgG,CAAC,GAC7E,GAAoE,IAAhEa,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlC,GAAG2D,GAAU,CACrE9C,EAAKzF,KAAKI,QAAQoU,EAAOnS,UAAUb,GAAGsF,gBAAgBlC,GAAK5E,EAC3D,KACF,CACV,CACF,CAAC,EAEDyF,EAAKugE,iBAAmB5G,EAAWC,SAAS7gD,IAAI,CAC9Che,IAAK,8BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKimE,cAAgBxgE,EAAKzF,KAAKimE,eAAiB,GACrDjmE,EAAOklE,EAAsBllE,CAAI,EACjCyF,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAYrC,CAC7C,CACF,CAAC,EAEDyF,EAAKygE,iBAAmB9G,EAAWC,SAASK,KAAK,CAC/Cl/D,IAAK,8BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKimE,cAAgBxgE,EAAKzF,KAAKimE,eAAiB,GACrDxgE,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAYoD,EAAKzF,KAAKimE,cAAczxD,EAAOnS,WAAa,GACvFoD,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAYoD,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAUsP,OAAO3R,CAAI,CACjG,CACF,CAAC,EAEDyF,EAAK0gE,iBAAmB/G,EAAWC,SAASK,KAAK,CAC/Cl/D,IAAK,8BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKimE,cAAgBxgE,EAAKzF,KAAKimE,eAAiB,GACrDxgE,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAYoD,EAAKzF,KAAKimE,cAAczxD,EAAOnS,WAAa,GAEvF,IAAK,IAAIb,EAAI,EAAGA,EAAIiE,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAUzD,OAAQ4C,CAAC,GACpE,GAAIiE,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAUb,GAAG+G,IAAMvI,EAAKuI,GAAI,CAC7D9C,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAUb,GAAKxB,EAC9C,KACF,CAEEwB,GAAKiE,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAUzD,QAChD6G,EAAKzF,KAAKimE,cAAczxD,EAAOnS,UAAU0E,KAAK/G,CAAI,CACtD,CACF,CAAC,EAEDyF,EAAK2xC,cAAgBgoB,EAAWC,SAAS7gD,IAAI,CAC3Che,IAAK,2BACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKq3C,WAAa5xC,EAAKzF,KAAKq3C,YAAc,GAC/C5xC,EAAKzF,KAAKq3C,WAAW7iC,EAAOnS,UAAYoD,EAAKzF,KAAKq3C,WAAW7iC,EAAOnS,WAAa,GACjFoD,EAAKzF,KAAKq3C,WAAW7iC,EAAOnS,UAAUmS,EAAOlE,UAAY7K,EAAKzF,KAAKq3C,WAAW7iC,EAAOnS,UAAUmS,EAAOlE,WAAa,GAEnH,IACE7K,EAAKzF,KAAKq3C,WAAW7iC,EAAOnS,UAAUmS,EAAOlE,UAAUkE,EAAO/D,YAAcohB,KAAKC,MAAM9xB,CAAI,CAI7F,CAFA,MAAOnC,GACL4H,EAAKzF,KAAKq3C,WAAW7iC,EAAOnS,UAAUmS,EAAOlE,UAAUkE,EAAO/D,YAAczQ,CAC9E,CACF,CACF,CAAC,EAEDyF,EAAKi0B,UAAY0lC,EAAWC,SAASK,KAAK,CACxCl/D,IAAK,sBACP,CAAC,EAEDiF,EAAK+xC,WAAa4nB,EAAWC,SAASK,KAAK,CACzCl/D,IAAK,wBACL4qB,QAAS,SAAUprB,EAAMwU,GACvB/O,EAAKzF,KAAKI,QAAUqF,EAAKzF,KAAKI,SAAW,GACzCqF,EAAKzF,KAAKI,QAAQoU,EAAOqjC,qBAAuBpyC,EAAKzF,KAAKI,QAAQoU,EAAOqjC,sBAAwB,GAEjG,IAAK,IAAIr2C,EAAI,EAAGA,EAAIxB,EAAKpB,OAAQ4C,CAAC,GAChCiE,EAAKzF,KAAKI,QAAQoU,EAAOqjC,qBAAqB9wC,KAAK/G,EAAKwB,EAAE,CAE9D,CACF,CAAC,EAEDiE,EAAK2gE,wBAA0B,SAAU/lE,GACvC,GAAI,CAACA,EACH,MAAO,CAAEulD,MAAO,GAAOla,SAAU,CAAC,wBAAyB,EAE7D,GAAIrrC,EAAOyG,gBACT,IAAK,IAAItF,EAAI,EAAGA,EAAInB,EAAOyG,gBAAgBlI,OAAQ4C,CAAC,GAAI,CACtD,IAAIwjE,EAAc,CAAEpf,MAAO,EAAK,EAEhC,GADAif,EAAwBxkE,EAAOyG,gBAAgBtF,GAAInB,EAAOyG,gBAAiB,KAAMzG,EAAOyG,gBAAgBtF,GAAG+G,GAAIy8D,CAAW,EACtH,CAACA,EAAYpf,MACf,MAAO,CAAEA,MAAO,GAAOqa,QAAS,aAAe5/D,EAAOyG,gBAAgBtF,GAAGyiC,KAAO,mDAAoD,CACxI,CAGF,MAAO,CAAE2hB,MAAO,GAAMla,SAAU,EAAG,CACrC,EAEAjmC,EAAK2yC,2BAA6B,SAAU3X,EAAeqkC,GAEzD,IADA,IAKME,EALFqB,EAAkB,GACb7kE,EAAI,EAAGA,EAAIsjE,EAAclmE,OAAQ4C,CAAC,GACrCi/B,EAAcl4B,KAAOu8D,EAActjE,GAAG+G,IAAOu8D,EAActjE,GAAGmF,WAIlEk+D,EAAwBC,EAActjE,GAAIsjE,EAAe,KAAMrkC,EAAcl4B,GADzEy8D,EAAc,CAAEpf,MAAO,EAAK,CAC4D,EACxFof,EAAYpf,QACdygB,EAAgBt/D,KAAK+9D,EAActjE,EAAE,EAEzC,OAAO6kE,CACT,EAuBA5gE,EAAK6gE,6BAA+B,SAAU7lC,EAAeqkC,GAC3D,IAAIyB,EAAc,CAAEC,SAAU,EAAM,EAEpC,OAGF,SAASC,EAAuBtoC,EAAU2mC,EAAeyB,GACvD,GAAIA,EAAYC,SACd,OAEEP,EAAgB9nC,EAASxvB,cAAcjL,OAAO,SAAUmD,GAAK,OAAOA,EAAEF,QAAU,CAAC,EAErF,IAAIs+D,EAA0BgB,EAC3B3oE,IAAI,SAAUwlC,GAAM,OAAOA,EAAGnB,cAAgB,CAAC,EAC/Cj+B,OAAO,SAAUmD,EAAGkqB,EAAOtrB,GAAQ,OAAY,MAALoB,GAAapB,EAAKqH,QAAQjG,CAAC,IAAMkqB,CAAO,CAAC,EACtF,IAAK,IAAIvvB,EAAI,EAAGA,EAAIyjE,EAAwBrmE,OAAQ4C,CAAC,GAAI,CACvD,IAAIk3C,EAAeosB,EAAcphE,OAAO,SAAUmD,GAAK,OAAOA,EAAE0B,IAAM08D,EAAwBzjE,EAAI,CAAC,EAC/Fk3C,GAAgBA,EAAa95C,SACC,YAA5B85C,EAAa,GAAG/V,WAClB4jC,EAAYC,SAAW,IAEzBC,EAAuB/tB,EAAa,GAAIosB,EAAeyB,CAAW,EAEtE,CACF,EAtByB9lC,EAAeqkC,EAAeyB,CAAW,EACzDA,EAAYC,QACrB,EAyCA/gE,EAAK+yC,gCAAkC,SAAUrX,EAAQhD,EAAUinC,GACjE,GAA2B,WAAvBjkC,EAAOO,aAAX,CAOA,IAHA,IAAIglC,EAAkBvB,EAAkBC,CAAY,EAEhDr0C,EAAQ,EACHvvB,EAAI,EAAGA,EAAIklE,EAAgB9nE,OAAQ4C,CAAC,GAC3C,GAAIklE,EAAgBllE,GAAG+G,IAAM41B,EAAS51B,GAAI,CACxCwoB,EAAQvvB,EAAI,EACZ,KACF,CAGEuvB,GAAS21C,EAAgB9nE,OAC3BuiC,EAAOQ,eAAiB,KAExBR,EAAOQ,eAAiB+kC,EAAgB31C,GAAOxoB,EAfjD,CAiBF,EAEA9C,EAAKu7B,kBAAoB,SAAU9B,EAASkmC,GAC1C,IAGIsB,EAEA/lC,EALJ,OAAKzB,GAA6B,GAAlBA,EAAQtgC,QAAgBwmE,GAAuC,GAAvBA,EAAaxmE,QAKjE+hC,EAAW,CACbgmC,YAAa,EAHXD,EAAkBvB,EAAkBC,CAAY,GAGpB,IAC9BwB,KAAMF,EAAgB,EACxB,EAMF,SAASG,EAAY3nC,EAASf,EAAUinC,EAAczkC,GACpD,IAAI3iC,EAAOC,OAAOD,KAAKkhC,CAAO,EAE1B4nC,EAAiB9oE,EAAK0F,OAAO,SAAUm9B,GAAK,OAAOC,OAAOD,CAAC,IAAM1C,EAAS51B,EAAI,CAAC,EAEnF,IAAI86B,EAAY,GACZyjC,GAA0C,EAAxBA,EAAeloE,SAC/BmoE,EAAW7nC,EAAQ4nC,EAAe,IACtCzjC,EAAYxa,EAAEoY,IAAI8lC,EAAU,SAAUC,GACpC,OAAOA,CACT,CAAC,GAGCjkC,EAAela,EAAEoY,IAAI9C,EAASxvB,cAAe,SAAUm0B,GAAM,MAA0B,WAAnBA,EAAGpB,YAA2B,CAAC,EAEvG,SAASulC,EAAsB/lC,GACxBrY,EAAEoY,IAAIN,EAASgmC,YAAa,SAAUO,GAAO,OAAOA,EAAI3+D,KAAO24B,EAAE34B,EAAI,CAAC,GACzEo4B,EAASgmC,YAAY5/D,KAAKm6B,CAAC,EAC7BP,EAASimC,KAAO1lC,CAClB,CAEA,IAAIimC,EAAY,KAChB,KAGMhmC,EAHFkC,GACF4jC,EAAsB9oC,CAAQ,EAE1BgD,EAASjC,EAAQf,EAAS51B,GAAGsK,SAAS,GAC1Cs0D,EAAYlpE,OAAOD,KAAKmjC,CAAM,EAAEz9B,OAAO,SAAUkB,GAAK,OAAOs6B,EAAQf,EAAS51B,IAAI3D,EAAI,CAAC,EAAEtH,IAAI,SAAUsH,GAAK,OAAOk8B,OAAOl8B,CAAC,CAAG,CAAC,GACrHm+B,GACVkkC,EAAsB9oC,CAAQ,CAChC,CAEA,IAA2B,aAAtBA,EAASwE,UAA2BI,IACpC,CAACM,EAEJ,OADA4jC,OAAsB9oC,CAAQ,EAIhC,IAAI8mC,EAA0B9mC,EAASxvB,cACpCjL,OAAO,SAAUo/B,GAChB,OAAqB,OAAdqkC,GAAsBt+C,EAAEoY,IAAIkmC,EAAW,SAAU9iC,GAAM,OAAOvB,EAAGv6B,KAAO87B,CAAI,CAAC,CACtF,CAAC,EACA/mC,IAAI,SAAUwlC,GAAM,OAAOA,EAAGnB,cAAgB,CAAC,EAC/Cj+B,OAAO,SAAUmD,EAAGkqB,EAAOtrB,GAAQ,OAAY,MAALoB,GAAapB,EAAKqH,QAAQjG,CAAC,IAAMkqB,CAAO,CAAC,EACtF,IAAK,IAAIvvB,EAAI,EAAGA,EAAIyjE,EAAwBrmE,OAAQ4C,CAAC,GAAI,CACvD,IAAIk3C,EAAe0sB,EAAa1hE,OAAO,SAAUmD,GAAK,OAAOA,EAAE0B,IAAM08D,EAAwBzjE,EAAI,CAAC,EAC9Fk3C,GAAgBA,EAAa95C,QAC/BioE,EAAY3nC,EAASwZ,EAAa,GAAI0sB,EAAczkC,CAAQ,CAEhE,CACF,EAtDczB,EAASwnC,EAAgB,GAAItB,EAAczkC,CAAQ,EAExDA,EAASgmC,aAVP,EAWX,EAqDAlhE,EAAKi7B,iBAAmB,SAAU0kC,GAC5BsB,EAAkBvB,EAAkBC,CAAY,EACpD,OAAOsB,GAAmBA,EAAgB9nE,OAAS8nE,EAAgB,GAAK,IAC1E,EAEAjhE,EAAKq+B,oBAAsB,SAAU5E,EAASkmC,EAAcgC,GAC1D,IAAIC,EAAoB5hE,EAAKu7B,kBAAkB9B,EAASkmC,CAAY,EAEpE,GAAIiC,GAAqBA,EAAkBzoE,OAAQ,CAGjD,IAFA,IAAIu/B,EAAW,KAEN38B,EAAI,EAAGA,EAAI6lE,EAAkBzoE,OAAQ4C,CAAC,GAAI,CACjD,GAAI4lE,GAAqBC,EAAkB7lE,GAAG+G,GAC5C,OAAO41B,EAEPA,EAAWkpC,EAAkB7lE,EAEjC,CAEA,OAAO28B,CACT,CACE,OAAO,IAEX,EA4BA14B,EAAKo/B,0BAA4B,SAAUyiC,EAAclC,EAAcO,EAAiB4B,GACtF,IAAIC,EAAwB,CAC1B5gE,UAAW,CAAC++D,EAAgBp9D,GAC9B,EAIIk/D,GAFJhC,EAA6B+B,EAAuBpC,EAD7BG,EAA0B+B,EAAc3B,EAAiBP,CAAY,CACV,EAEvD,CACzBx+D,UAAW,CAAC++D,EAAgBp9D,GAC9B,GACIm/D,EAAkBnC,EAA0BgC,EAAiB5B,EAAiBP,CAAY,EAG9F,OAFAK,EAA6BgC,EAAsBrC,EAAcsC,CAAe,EAEzEF,EAAsB5gE,UAAUlD,OAAO,SAAUw9B,GACtD,MAAO,CAACrY,EAAEoY,IAAIwmC,EAAqB7gE,UAAW,SAAU+gE,GAAM,OAAOzmC,GAAKymC,CAAI,CAAC,CACjF,CAAC,CACH,CACF,CAndF,IAAW7oE,IAudRA,QAAST,OAJR,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,gBAAiBvgD,CAAa,C,sHCrdvB,SAAd3C,EAAwBs7D,GAEtB,IAAI35D,EAAOC,KAEXD,EAAKzF,KAAO,GAEZyF,EAAKoa,eAAiBu/C,EAAWC,SAASK,KAAK,CAC3Cl/D,IAAK,yBACT,CAAC,EAEDiF,EAAKyR,KAAOkoD,EAAWC,SAASK,KAAK,CACjCl/D,IAAK,eACT,CAAC,EAEDiF,EAAKiW,OAAS0jD,EAAWC,SAASK,KAAK,CACnCl/D,IAAK,iBACT,CAAC,EAEDiF,EAAKyP,SAAWkqD,EAAWC,SAAS7gD,IAAI,CACpChe,IAAK,oBACL4qB,QAAS,SAAUprB,GACfyF,EAAKzF,KAAKwN,MAAQxN,CACtB,CACJ,CAAC,EAEDyF,EAAK1B,iBAAmBq7D,EAAWC,SAAS7gD,IAAI,CAC5Che,IAAK,+BACL4qB,QAAS,SAAUprB,EAAMwU,GACrB/O,EAAKzF,KAAKwU,EAAOnS,UAAYoD,EAAKzF,KAAKwU,EAAOnS,WAAa,GAC3DoD,EAAKzF,KAAKwU,EAAOnS,UAAUwB,cAAgB7D,CAC/C,CACJ,CAAC,CACL,CAjCJ,IAAWlB,IAqCRA,QAAST,OAJN,yBAEFS,EAAQX,OAAO,oBAAoB,EAChC6oD,QAAQ,cAAeljD,CAAW,C,uDC3CzC3F,EAAOC,QAFI,ujD,wDCEXD,EAAOC,QAFI,2vB,sDCEXD,EAAOC,QAFI,uoG,iDCEXD,EAAOC,QAFI,2mC,qDCEXD,EAAOC,QAFI,+K,mDCEXD,EAAOC,QAFI,s/E,2DCEXD,EAAOC,QAFI,g9C,2CCEXD,EAAOC,QAFI,yuJ,2CCEXD,EAAOC,QAFI,k+D,+CCEXD,EAAOC,QAFI,kxJ,kDCEXD,EAAOC,QAFI,88B,wDCGPwpE,EAH2C,EAAQ,mDAAuD,EAC7E,EAAQ,mCAAgC,CAE6B,EAGtGzpE,EAAOC,QAFI,kRAA0RwpE,EAA+B,q6O,wCCFpUzpE,EAAOC,QAFI,oqF,4CCEXD,EAAOC,QAFI,g7G,gDCEXD,EAAOC,QAFI,o6H,8CCEXD,EAAOC,QAFI,sqH,iDCEXD,EAAOC,QAFI,gkJ,kDCGPwpE,EAH2C,EAAQ,mDAAuD,EAC7E,EAAQ,6CAA0C,CAEmB,EAGtGzpE,EAAOC,QAFI,u/CAA6gDwpE,EAA+B,uC,6CCFvjDzpE,EAAOC,QAFI,m7B,6CCEXD,EAAOC,QAFI,ozY,sDCEXD,EAAOC,QAFI,4pM,oDCEXD,EAAOC,QAFI,+rC,oDCEXD,EAAOC,QAFI,qtB,qDCEXD,EAAOC,QAFI,m0iB,kDCEXD,EAAOC,QAFI,w2E,6CCEXD,EAAOC,QAFI,ohD,kDCEXD,EAAOC,QAFI,gmgB,+CCEXD,EAAOC,QAFI,k9C,yCCEXD,EAAOC,QAFI,ykN,4CCEXD,EAAOC,QAFI,gD,2CCEXD,EAAOC,QAFI,69T,gDCGPwpE,EAH2C,EAAQ,mDAAuD,EAC7E,EAAQ,uBAAoB,CAEyC,EAGtGzpE,EAAOC,QAFI,weAAofwpE,EAA+B,8/FAA0jGA,EAA+B,83U,wDCFvnHzpE,EAAOC,QAFI,mgE,gECEXD,EAAOC,QAFI,i3K,gDCEXD,EAAOC,QAFI,mxN,8CCEXD,EAAOC,QAFI,mpK,2CCAX,IAAIypE,EAA2C,EAAQ,mDAAuD,EAC1GC,EAA6B,EAAQ,mCAAgC,EACrEC,EAA6B,EAAQ,uBAAoB,EAEzDH,EAA+BC,EAAyCC,CAA0B,EAClGE,EAA+BH,EAAyCE,CAA0B,EAGtG5pE,EAAOC,QAFI,yjtBAA0ytBwpE,EAA+B,+yBAAu0BI,EAA+B,o6RAA8gSJ,EAA+B,8QAAwRI,EAA+B,siF,wCCJ9hiC7pE,EAAOC,QAFI,o7I,iDCEXD,EAAOC,QAFI,4sB,4CCEXD,EAAOC,QAFI,upG,2CCEXD,EAAOC,QAFI,s0E,2CCEXD,EAAOC,QAFI,4H,iDCEXD,EAAOC,QAFI,uxE,4CCEXD,EAAOC,QAFI,+9Y,kDCEXD,EAAOC,QAFI,y1M,oDCEXD,EAAOC,QAFI,8Q,+CCEXD,EAAOC,QAFI,u6R,qDCEXD,EAAOC,QAFI,giD,gDCEXD,EAAOC,QAFI,87B,kDCEXD,EAAOC,QAFI,qQ,wCCEXD,EAAOC,QAFI,sB,8CCEXD,EAAOC,QAFI,+pM,0CCEXD,EAAOC,QAFI,qnK,8CCEXD,EAAOC,QAFI,ihD,kDCEXD,EAAOC,QAFI,oma,2CCEXD,EAAOC,QAFI,w2J,0CCEXD,EAAOC,QAFI,irG,0CCEXD,EAAOC,QAFI,kgB,iFCDX,mHACA;SAAS6pE,EAAQC,EAAQC,GACvB,IAEMC,EAFFpqE,EAAOC,OAAOD,KAAKkqE,CAAM,EAO7B,OANIjqE,OAAOoqE,wBACLD,EAAUnqE,OAAOoqE,sBAAsBH,CAAM,EACjDC,IAAmBC,EAAUA,EAAQ1kE,OAAO,SAAU4kE,GACpD,OAAOrqE,OAAOsqE,yBAAyBL,EAAQI,CAAG,EAAEE,UACtD,CAAC,GAAIxqE,EAAK+I,KAAKslC,MAAMruC,EAAMoqE,CAAO,GAE7BpqE,CACT,CACA,SAASyqE,EAAer4C,GACtB,IAAK,IAAI5uB,EAAI,EAAGA,EAAI8qC,UAAU1tC,OAAQ4C,CAAC,GAAI,CACzC,IAAI+b,EAAS,MAAQ+uB,UAAU9qC,GAAK8qC,UAAU9qC,GAAK,GACnDA,EAAI,EAAIymE,EAAQhqE,OAAOsf,CAAM,EAAG,EAAE,EAAEgL,QAAQ,SAAUhb,GACpDm7D,EAAgBt4C,EAAQ7iB,EAAKgQ,EAAOhQ,EAAI,CAC1C,CAAC,EAAItP,OAAO0qE,0BAA4B1qE,OAAO2qE,iBAAiBx4C,EAAQnyB,OAAO0qE,0BAA0BprD,CAAM,CAAC,EAAI0qD,EAAQhqE,OAAOsf,CAAM,CAAC,EAAEgL,QAAQ,SAAUhb,GAC5JtP,OAAO4qE,eAAez4C,EAAQ7iB,EAAKtP,OAAOsqE,yBAAyBhrD,EAAQhQ,CAAG,CAAC,CACjF,CAAC,CACH,CACA,OAAO6iB,CACT,CACA,SAAS04C,IACPA,EAAsB,WACpB,OAAO1qE,CACT,EACA,IAAIA,EAAU,GACZqZ,EAAKxZ,OAAOg1B,UACZ81C,EAAStxD,EAAGuxD,eACZH,EAAiB5qE,OAAO4qE,gBAAkB,SAAU95C,EAAKxhB,EAAK6qD,GAC5DrpC,EAAIxhB,GAAO6qD,EAAK/0D,KAClB,EACA4lE,EAAU,YAAc,OAAOC,OAASA,OAAS,GACjDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAC7C,SAASC,EAAO16C,EAAKxhB,EAAKlK,GACxB,OAAOpF,OAAO4qE,eAAe95C,EAAKxhB,EAAK,CACrClK,MAAOA,EACPmlE,WAAY,GACZkB,aAAc,GACdC,SAAU,EACZ,CAAC,EAAG56C,EAAIxhB,EACV,CACA,IACEk8D,EAAO,GAAI,EAAE,CAKf,CAJE,MAAOliB,GACPkiB,EAAS,SAAU16C,EAAKxhB,EAAKlK,GAC3B,OAAO0rB,EAAIxhB,GAAOlK,CACpB,CACF,CACA,SAASumE,EAAKC,EAASC,EAASrkE,EAAMskE,GACpC,IAsEwBF,EAASpkE,EAAM48D,EACnC9iE,EAvEAyqE,EAAiBF,GAAWA,EAAQ72C,qBAAqBg3C,EAAYH,EAAUG,EACjFC,EAAYjsE,OAAO0/C,OAAOqsB,EAAe/2C,SAAS,EAClDovC,EAAU,IAAI8H,EAAQJ,GAAe,EAAE,EACzC,OAAOlB,EAAeqB,EAAW,UAAW,CAC1C7mE,OAkEsBwmE,EAlEEA,EAkEOpkE,EAlEEA,EAkEI48D,EAlEEA,EAmErC9iE,EAAQ,iBACL,SAAUygE,EAAQoK,GACvB,GAAI,cAAgB7qE,EAAO,MAAM,IAAIzB,MAAM,8BAA8B,EACzE,GAAI,cAAgByB,EAAO,CACzB,GAAI,UAAYygE,EAAQ,MAAMoK,EAC9B,OAAOC,EAAW,CACpB,CACA,IAAKhI,EAAQrC,OAASA,EAAQqC,EAAQ+H,IAAMA,IAAO,CACjD,IAAIE,EAAWjI,EAAQiI,SACvB,GAAIA,EAAU,CACRC,EAuBZ,SAASC,EAAoBF,EAAUjI,GACrC,IAAIoI,EAAapI,EAAQrC,OACvBA,EAASsK,EAASlB,SAASqB,GAC7B,GAAI55D,SAAcmvD,EAAQ,OAAOqC,EAAQiI,SAAW,KAAM,UAAYG,GAAcH,EAASlB,SAASsB,SAAWrI,EAAQrC,OAAS,SAAUqC,EAAQ+H,IAAMv5D,OAAW25D,EAAoBF,EAAUjI,CAAO,EAAG,UAAYA,EAAQrC,SAAW,WAAayK,IAAepI,EAAQrC,OAAS,QAASqC,EAAQ+H,IAAM,IAAIO,UAAU,oCAAsCF,EAAa,UAAU,GAAIG,EAC3XC,EAASC,EAAS9K,EAAQsK,EAASlB,SAAU/G,EAAQ+H,GAAG,EAC5D,GAAI,UAAYS,EAAOz4C,KAAM,OAAOiwC,EAAQrC,OAAS,QAASqC,EAAQ+H,IAAMS,EAAOT,IAAK/H,EAAQiI,SAAW,KAAMM,EAC7G92B,EAAO+2B,EAAOT,IAClB,OAAOt2B,EAAOA,EAAKlnB,MAAQy1C,EAAQiI,EAASS,YAAcj3B,EAAKzwC,MAAOg/D,EAAQhpD,KAAOixD,EAASU,QAAS,WAAa3I,EAAQrC,SAAWqC,EAAQrC,OAAS,OAAQqC,EAAQ+H,IAAMv5D,QAAYwxD,EAAQiI,SAAW,KAAMM,GAAoB92B,GAAQuuB,EAAQrC,OAAS,QAASqC,EAAQ+H,IAAM,IAAIO,UAAU,kCAAkC,EAAGtI,EAAQiI,SAAW,KAAMM,EACrW,EA/BiDN,EAAUjI,CAAO,EAC1D,GAAIkI,EAAgB,CAClB,GAAIA,IAAmBK,EAAkB,SACzC,OAAOL,CACT,CACF,CACA,GAAI,SAAWlI,EAAQrC,OAAQqC,EAAQ4I,KAAO5I,EAAQ6I,MAAQ7I,EAAQ+H,SAAS,GAAI,UAAY/H,EAAQrC,OAAQ,CAC7G,GAAI,mBAAqBzgE,EAAO,MAAMA,EAAQ,YAAa8iE,EAAQ+H,IACnE/H,EAAQ8I,kBAAkB9I,EAAQ+H,GAAG,CACvC,KAAO,WAAa/H,EAAQrC,QAAUqC,EAAQ+I,OAAO,SAAU/I,EAAQ+H,GAAG,EAC1E7qE,EAAQ,YACJsrE,EAASC,EAASjB,EAASpkE,EAAM48D,CAAO,EAC5C,GAAI,WAAawI,EAAOz4C,KAAM,CAC5B,GAAI7yB,EAAQ8iE,EAAQz1C,KAAO,YAAc,iBAAkBi+C,EAAOT,MAAQQ,EAAkB,SAC5F,MAAO,CACLvnE,MAAOwnE,EAAOT,IACdx9C,KAAMy1C,EAAQz1C,IAChB,CACF,CACA,UAAYi+C,EAAOz4C,OAAS7yB,EAAQ,YAAa8iE,EAAQrC,OAAS,QAASqC,EAAQ+H,IAAMS,EAAOT,IAClG,CACF,EAjGA,CAAC,EAAGF,CACN,CACA,SAASY,EAASO,EAAIt8C,EAAKq7C,GACzB,IACE,MAAO,CACLh4C,KAAM,SACNg4C,IAAKiB,EAAGn4C,KAAKnE,EAAKq7C,CAAG,CACvB,CAMF,CALE,MAAO7iB,GACP,MAAO,CACLn1B,KAAM,QACNg4C,IAAK7iB,CACP,CACF,CACF,CACAnpD,EAAQwrE,KAAOA,EACf,IAAIgB,EAAmB,GACvB,SAASX,KACT,SAASqB,KACT,SAASC,KACT,IAAIC,EAAoB,GAIpBC,GAHJhC,EAAO+B,EAAmBrC,EAAgB,WACxC,OAAOzjE,IACT,CAAC,EACczH,OAAOytE,gBACpBC,EAA0BF,GAAYA,EAASA,EAASz9C,EAAO,EAAE,CAAC,CAAC,EAEjE49C,GADJD,GAA2BA,IAA4Bl0D,GAAMsxD,EAAO71C,KAAKy4C,EAAyBxC,CAAc,IAAMqC,EAAoBG,GACjIJ,EAA2Bt4C,UAAYg3C,EAAUh3C,UAAYh1B,OAAO0/C,OAAO6tB,CAAiB,GACrG,SAASK,EAAsB54C,GAC7B,CAAC,OAAQ,QAAS,UAAU1K,QAAQ,SAAUy3C,GAC5CyJ,EAAOx2C,EAAW+sC,EAAQ,SAAUoK,GAClC,OAAO1kE,KAAKomE,QAAQ9L,EAAQoK,CAAG,CACjC,CAAC,CACH,CAAC,CACH,CACA,SAAS2B,EAAc7B,EAAW8B,GAkBhC,IAAIC,EACJpD,EAAenjE,KAAM,UAAW,CAC9BrC,MAAO,SAAU28D,EAAQoK,GACvB,SAAS8B,IACP,OAAO,IAAIF,EAAY,SAAU9tE,EAAS4hB,GACxC4jD,CAtBR,SAASA,EAAO1D,EAAQoK,EAAKlsE,EAAS4hB,GACpC,IAEM1e,EAFFypE,EAASC,EAASZ,EAAUlK,GAASkK,EAAWE,CAAG,EACvD,GAAI,UAAYS,EAAOz4C,KAGrB,OADE/uB,GADEjC,EAASypE,EAAOT,KACH/mE,QACD,UAAY,OAAOA,GAAS0lE,EAAO71C,KAAK7vB,EAAO,SAAS,EAAI2oE,EAAY9tE,QAAQmF,EAAM8oE,OAAO,EAAEtrE,KAAK,SAAUwC,GAC5HqgE,EAAO,OAAQrgE,EAAOnF,EAAS4hB,CAAM,CACvC,EAAG,SAAUynC,GACXmc,EAAO,QAASnc,EAAKrpD,EAAS4hB,CAAM,CACtC,CAAC,EAAIksD,EAAY9tE,QAAQmF,CAAK,EAAExC,KAAK,SAAUurE,GAC7ChrE,EAAOiC,MAAQ+oE,EAAWluE,EAAQkD,CAAM,CAC1C,EAAG,SAAUwb,GACX,OAAO8mD,EAAO,QAAS9mD,EAAO1e,EAAS4hB,CAAM,CAC/C,CAAC,EAEHA,EAAO+qD,EAAOT,GAAG,CACnB,EAMepK,EAAQoK,EAAKlsE,EAAS4hB,CAAM,CACrC,CAAC,CACH,CACA,OAAOmsD,EAAkBA,EAAkBA,EAAgBprE,KAAKqrE,EAA4BA,CAA0B,EAAIA,EAA2B,CACvJ,CACF,CAAC,CACH,CA4CA,SAASG,EAAaC,GACpB,IAAIC,EAAQ,CACVC,OAAQF,EAAK,EACf,EACA,KAAKA,IAASC,EAAME,SAAWH,EAAK,IAAK,KAAKA,IAASC,EAAMG,WAAaJ,EAAK,GAAIC,EAAMI,SAAWL,EAAK,IAAK5mE,KAAKknE,WAAW7lE,KAAKwlE,CAAK,CAC1I,CACA,SAASM,EAAcN,GACrB,IAAI1B,EAAS0B,EAAMO,YAAc,GACjCjC,EAAOz4C,KAAO,SAAU,OAAOy4C,EAAOT,IAAKmC,EAAMO,WAAajC,CAChE,CACA,SAASV,EAAQJ,GACfrkE,KAAKknE,WAAa,CAAC,CACjBJ,OAAQ,MACV,GAAIzC,EAAYxhD,QAAQ8jD,EAAc3mE,IAAI,EAAGA,KAAKs7C,MAAM,EAAE,CAC5D,CACA,SAAShzB,EAAO++C,GACd,GAAIA,EAAU,CACZ,IAIMvrE,EAJFwrE,EAAiBD,EAAS5D,GAC9B,GAAI6D,EAAgB,OAAOA,EAAe95C,KAAK65C,CAAQ,EACvD,GAAI,YAAc,OAAOA,EAAS1zD,KAAM,OAAO0zD,EAC/C,GAAI,CAACl3B,MAAMk3B,EAASnuE,MAAM,EAMxB,OALI4C,EAAI,CAAC,GACP6X,EAAO,SAASA,IACd,KAAO,EAAE7X,EAAIurE,EAASnuE,QAAS,GAAImqE,EAAO71C,KAAK65C,EAAUvrE,CAAC,EAAG,OAAO6X,EAAKhW,MAAQ0pE,EAASvrE,GAAI6X,EAAKuT,KAAO,GAAIvT,EAC9G,OAAOA,EAAKhW,MAAQwN,OAAWwI,EAAKuT,KAAO,GAAIvT,CACjD,GACUA,KAAOA,CAEvB,CACA,MAAO,CACLA,KAAMgxD,CACR,CACF,CACA,SAASA,IACP,MAAO,CACLhnE,MAAOwN,OACP+b,KAAM,EACR,CACF,CACA,OAAiEi8C,EAAe+C,EAAI,cAAe,CACjGvoE,MADKioE,EAAkBr4C,UAAYs4C,EAEnC7B,aAAc,EAChB,CAAC,EAAGb,EAAe0C,EAA4B,cAAe,CAC5DloE,MAAOioE,EACP5B,aAAc,EAChB,CAAC,EAAG4B,EAAkB2B,YAAcxD,EAAO8B,EAA4BhC,EAAmB,mBAAmB,EAAGnrE,EAAQ8uE,oBAAsB,SAAUC,GAClJC,EAAO,YAAc,OAAOD,GAAUA,EAAOE,YACjD,MAAO,CAAC,CAACD,IAASA,IAAS9B,GAAqB,uBAAyB8B,EAAKH,aAAeG,EAAKjnE,MACpG,EAAG/H,EAAQkvE,KAAO,SAAUH,GAC1B,OAAOlvE,OAAOsvE,eAAiBtvE,OAAOsvE,eAAeJ,EAAQ5B,CAA0B,GAAK4B,EAAOK,UAAYjC,EAA4B9B,EAAO0D,EAAQ5D,EAAmB,mBAAmB,GAAI4D,EAAOl6C,UAAYh1B,OAAO0/C,OAAOiuB,CAAE,EAAGuB,CAC5O,EAAG/uE,EAAQqvE,MAAQ,SAAUrD,GAC3B,MAAO,CACL+B,QAAS/B,CACX,CACF,EAAGyB,EAAsBE,EAAc94C,SAAS,EAAGw2C,EAAOsC,EAAc94C,UAAWo2C,EAAqB,WACtG,OAAO3jE,IACT,CAAC,EAAGtH,EAAQ2tE,cAAgBA,EAAe3tE,EAAQsvE,MAAQ,SAAU7D,EAASC,EAASrkE,EAAMskE,EAAaiC,GACxG,SAAWA,IAAgBA,EAAcxwB,SACzC,IAAImyB,EAAO,IAAI5B,EAAcnC,EAAKC,EAASC,EAASrkE,EAAMskE,CAAW,EAAGiC,CAAW,EACnF,OAAO5tE,EAAQ8uE,oBAAoBpD,CAAO,EAAI6D,EAAOA,EAAKt0D,KAAK,EAAExY,KAAK,SAAUO,GAC9E,OAAOA,EAAOwrB,KAAOxrB,EAAOiC,MAAQsqE,EAAKt0D,KAAK,CAChD,CAAC,CACH,EAAGwyD,EAAsBD,CAAE,EAAGnC,EAAOmC,EAAIrC,EAAmB,WAAW,EAAGE,EAAOmC,EAAIzC,EAAgB,WACnG,OAAOzjE,IACT,CAAC,EAAG+jE,EAAOmC,EAAI,WAAY,WACzB,MAAO,oBACT,CAAC,EAAGxtE,EAAQJ,KAAO,SAAUsgB,GAC3B,IAES/Q,EAFL26D,EAASjqE,OAAOqgB,CAAG,EACrBtgB,EAAO,GACT,IAASuP,KAAO26D,EAAQlqE,EAAK+I,KAAKwG,CAAG,EACrC,OAAOvP,EAAK4vE,QAAQ,EAAG,SAASv0D,IAC9B,KAAOrb,EAAKY,QAAS,CACnB,IAAI2O,EAAMvP,EAAKmvD,IAAI,EACnB,GAAI5/C,KAAO26D,EAAQ,OAAO7uD,EAAKhW,MAAQkK,EAAK8L,EAAKuT,KAAO,GAAIvT,CAC9D,CACA,OAAOA,EAAKuT,KAAO,GAAIvT,CACzB,CACF,EAAGjb,EAAQ4vB,OAASA,EAAQm8C,EAAQl3C,UAAY,CAC9Co6C,YAAalD,EACbnpB,MAAO,SAAU6sB,GACf,GAAInoE,KAAKkrC,KAAO,EAAGlrC,KAAK2T,KAAO,EAAG3T,KAAKulE,KAAOvlE,KAAKwlE,MAAQr6D,OAAWnL,KAAKknB,KAAO,GAAIlnB,KAAK4kE,SAAW,KAAM5kE,KAAKs6D,OAAS,OAAQt6D,KAAK0kE,IAAMv5D,OAAWnL,KAAKknE,WAAWrkD,QAAQskD,CAAa,EAAG,CAACgB,EAAe,IAAK,IAAI1nE,KAAQT,KAAM,MAAQS,EAAKuX,OAAO,CAAC,GAAKqrD,EAAO71C,KAAKxtB,KAAMS,CAAI,GAAK,CAAC0vC,MAAM,CAAC1vC,EAAKmX,MAAM,CAAC,CAAC,IAAM5X,KAAKS,GAAQ0K,OACtU,EACAi9D,KAAM,WACJpoE,KAAKknB,KAAO,GACZ,IAAImhD,EAAaroE,KAAKknE,WAAW,GAAGE,WACpC,GAAI,UAAYiB,EAAW37C,KAAM,MAAM27C,EAAW3D,IAClD,OAAO1kE,KAAKsoE,IACd,EACA7C,kBAAmB,SAAU8C,GAC3B,GAAIvoE,KAAKknB,KAAM,MAAMqhD,EACrB,IAAI5L,EAAU38D,KACd,SAASwoE,EAAO5kC,EAAK6kC,GACnB,OAAOtD,EAAOz4C,KAAO,QAASy4C,EAAOT,IAAM6D,EAAW5L,EAAQhpD,KAAOiwB,EAAK6kC,IAAW9L,EAAQrC,OAAS,OAAQqC,EAAQ+H,IAAMv5D,QAAY,CAAC,CAACs9D,CAC5I,CACA,IAAK,IAAI3sE,EAAIkE,KAAKknE,WAAWhuE,OAAS,EAAQ,GAAL4C,EAAQ,EAAEA,EAAG,CACpD,IAAI+qE,EAAQ7mE,KAAKknE,WAAWprE,GAC1BqpE,EAAS0B,EAAMO,WACjB,GAAI,SAAWP,EAAMC,OAAQ,OAAO0B,EAAO,KAAK,EAChD,GAAI3B,EAAMC,QAAU9mE,KAAKkrC,KAAM,CAC7B,IAAIw9B,EAAWrF,EAAO71C,KAAKq5C,EAAO,UAAU,EAC1C8B,EAAatF,EAAO71C,KAAKq5C,EAAO,YAAY,EAC9C,GAAI6B,GAAYC,EAAY,CAC1B,GAAI3oE,KAAKkrC,KAAO27B,EAAME,SAAU,OAAOyB,EAAO3B,EAAME,SAAU,EAAE,EAChE,GAAI/mE,KAAKkrC,KAAO27B,EAAMG,WAAY,OAAOwB,EAAO3B,EAAMG,UAAU,CAClE,MAAO,GAAI0B,GACT,GAAI1oE,KAAKkrC,KAAO27B,EAAME,SAAU,OAAOyB,EAAO3B,EAAME,SAAU,EAAE,CAAC,KAC5D,CACL,GAAI,CAAC4B,EAAY,MAAM,IAAIvwE,MAAM,wCAAwC,EACzE,GAAI4H,KAAKkrC,KAAO27B,EAAMG,WAAY,OAAOwB,EAAO3B,EAAMG,UAAU,CAClE,CACF,CACF,CACF,EACAtB,OAAQ,SAAUh5C,EAAMg4C,GACtB,IAAK,IAAI5oE,EAAIkE,KAAKknE,WAAWhuE,OAAS,EAAQ,GAAL4C,EAAQ,EAAEA,EAAG,CACpD,IAAI+qE,EAAQ7mE,KAAKknE,WAAWprE,GAC5B,GAAI+qE,EAAMC,QAAU9mE,KAAKkrC,MAAQm4B,EAAO71C,KAAKq5C,EAAO,YAAY,GAAK7mE,KAAKkrC,KAAO27B,EAAMG,WAAY,CACjG,IAAI4B,EAAe/B,EACnB,KACF,CACF,CAEA,IAAI1B,GAD0HyD,EAA9HA,IAAiB,UAAYl8C,GAAQ,aAAeA,IAASk8C,EAAa9B,QAAUpC,GAAOA,GAAOkE,EAAa5B,WAA8B,KAChI4B,GAAeA,EAAaxB,WAAa,GACtD,OAAOjC,EAAOz4C,KAAOA,EAAMy4C,EAAOT,IAAMA,EAAKkE,GAAgB5oE,KAAKs6D,OAAS,OAAQt6D,KAAK2T,KAAOi1D,EAAa5B,WAAY9B,GAAoBllE,KAAK0nC,SAASy9B,CAAM,CAClK,EACAz9B,SAAU,SAAUy9B,EAAQ8B,GAC1B,GAAI,UAAY9B,EAAOz4C,KAAM,MAAMy4C,EAAOT,IAC1C,MAAO,UAAYS,EAAOz4C,MAAQ,aAAey4C,EAAOz4C,KAAO1sB,KAAK2T,KAAOwxD,EAAOT,IAAM,WAAaS,EAAOz4C,MAAQ1sB,KAAKsoE,KAAOtoE,KAAK0kE,IAAMS,EAAOT,IAAK1kE,KAAKs6D,OAAS,SAAUt6D,KAAK2T,KAAO,OAAS,WAAawxD,EAAOz4C,MAAQu6C,IAAajnE,KAAK2T,KAAOszD,GAAW/B,CACtQ,EACA2D,OAAQ,SAAU7B,GAChB,IAAK,IAAIlrE,EAAIkE,KAAKknE,WAAWhuE,OAAS,EAAQ,GAAL4C,EAAQ,EAAEA,EAAG,CACpD,IAAI+qE,EAAQ7mE,KAAKknE,WAAWprE,GAC5B,GAAI+qE,EAAMG,aAAeA,EAAY,OAAOhnE,KAAK0nC,SAASm/B,EAAMO,WAAYP,EAAMI,QAAQ,EAAGE,EAAcN,CAAK,EAAG3B,CACrH,CACF,EACA4D,MAAO,SAAUhC,GACf,IAAK,IAAIhrE,EAAIkE,KAAKknE,WAAWhuE,OAAS,EAAQ,GAAL4C,EAAQ,EAAEA,EAAG,CACpD,IAEMqpE,EAEE4D,EAJJlC,EAAQ7mE,KAAKknE,WAAWprE,GAC5B,GAAI+qE,EAAMC,SAAWA,EAMnB,MAJI,WADA3B,EAAS0B,EAAMO,YACI16C,OACjBq8C,EAAS5D,EAAOT,IACpByC,EAAcN,CAAK,GAEdkC,CAEX,CACA,MAAM,IAAI3wE,MAAM,uBAAuB,CACzC,EACA4wE,cAAe,SAAU3B,EAAUhC,EAAYC,GAC7C,OAAOtlE,KAAK4kE,SAAW,CACrBlB,SAAUp7C,EAAO++C,CAAQ,EACzBhC,WAAYA,EACZC,QAASA,CACX,EAAG,SAAWtlE,KAAKs6D,SAAWt6D,KAAK0kE,IAAMv5D,QAAY+5D,CACvD,CACF,EAAGxsE,CACL,CACA,SAASuwE,EAAmBC,EAAK1wE,EAAS4hB,EAAQ+uD,EAAOC,EAAQvhE,EAAK68D,GACpE,IACE,IAAIt2B,EAAO86B,EAAIrhE,GAAK68D,CAAG,EACnB/mE,EAAQywC,EAAKzwC,KAInB,CAHE,MAAOuZ,GAEP,OADAkD,OAAOlD,CAAK,CAEd,CACIk3B,EAAKlnB,KACP1uB,EAAQmF,CAAK,EAEbm4C,QAAQt9C,QAAQmF,CAAK,EAAExC,KAAKguE,EAAOC,CAAM,CAE7C,CACA,SAASC,EAAkB1D,GACzB,OAAO,WACL,IAAI5lE,EAAOC,KACTspE,EAAO1iC,UACT,OAAO,IAAIkP,QAAQ,SAAUt9C,EAAS4hB,GACpC,IAAI8uD,EAAMvD,EAAGh/B,MAAM5mC,EAAMupE,CAAI,EAC7B,SAASH,EAAMxrE,GACbsrE,EAAmBC,EAAK1wE,EAAS4hB,EAAQ+uD,EAAOC,EAAQ,OAAQzrE,CAAK,CACvE,CACA,SAASyrE,EAAOvnB,GACdonB,EAAmBC,EAAK1wE,EAAS4hB,EAAQ+uD,EAAOC,EAAQ,QAASvnB,CAAG,CACtE,CACAsnB,EAAMh+D,MAAS,CACjB,CAAC,CACH,CACF,CACA,SAASo+D,EAAgBC,EAAUC,GACjC,GAAI,EAAED,aAAoBC,GACxB,MAAM,IAAIxE,UAAU,mCAAmC,CAE3D,CACA,SAASyE,EAAkBh/C,EAAQo9B,GACjC,IAAK,IAAIhsD,EAAI,EAAGA,EAAIgsD,EAAM5uD,OAAQ4C,CAAC,GAAI,CACrC,IAAI6tE,EAAa7hB,EAAMhsD,GACvB6tE,EAAW7G,WAAa6G,EAAW7G,YAAc,GACjD6G,EAAW3F,aAAe,GACtB,UAAW2F,IAAYA,EAAW1F,SAAW,IACjD1rE,OAAO4qE,eAAez4C,EAAQk/C,EAAeD,EAAW9hE,GAAG,EAAG8hE,CAAU,CAC1E,CACF,CACA,SAASE,EAAaJ,EAAaK,EAAYC,GACzCD,GAAYJ,EAAkBD,EAAYl8C,UAAWu8C,CAAU,EAC/DC,GAAaL,EAAkBD,EAAaM,CAAW,EAC3DxxE,OAAO4qE,eAAesG,EAAa,YAAa,CAC9CxF,SAAU,EACZ,CAAC,CAEH,CACA,SAASjB,EAAgB35C,EAAKxhB,EAAKlK,IACjCkK,EAAM+hE,EAAe/hE,CAAG,KACbwhB,EACT9wB,OAAO4qE,eAAe95C,EAAKxhB,EAAK,CAC9BlK,MAAOA,EACPmlE,WAAY,GACZkB,aAAc,GACdC,SAAU,EACZ,CAAC,EAED56C,EAAIxhB,GAAOlK,CAGf,CAiBA,SAASqsE,EAAgB9xE,GAIvB,OAHA8xE,EAAkBzxE,OAAOsvE,eAAiBtvE,OAAOytE,eAAehpB,KAAK,EAAI,SAAyB9kD,GAChG,OAAOA,EAAE4vE,WAAavvE,OAAOytE,eAAe9tE,CAAC,CAC/C,GACuBA,CAAC,CAC1B,CACA,SAAS+xE,EAAgB/xE,EAAGgU,GAK1B,OAJA+9D,EAAkB1xE,OAAOsvE,eAAiBtvE,OAAOsvE,eAAe7qB,KAAK,EAAI,SAAyB9kD,EAAGgU,GAEnG,OADAhU,EAAE4vE,UAAY57D,EACPhU,CACT,GACuBA,EAAGgU,CAAC,CAC7B,CACA,SAASg+D,IACP,GAAuB,aAAnB,OAAOC,SAA2B,CAACA,QAAQC,UAAW,MAAO,GACjE,GAAID,QAAQC,UAAUC,KAAM,MAAO,GACnC,GAAqB,YAAjB,OAAOC,MAAsB,MAAO,GACxC,IAEE,OADAC,QAAQh9C,UAAUi9C,QAAQh9C,KAAK28C,QAAQC,UAAUG,QAAS,GAAI,YAAc,CAAC,EACtE,EAGT,CAFE,MAAOpyE,GACP,MAAO,EACT,CACF,CACA,SAASsyE,EAAWC,EAAQpB,EAAMqB,GAahC,OAXEF,EADEP,EAA0B,EACfC,QAAQC,UAAUptB,KAAK,EAEvB,SAAoB0tB,EAAQpB,EAAMqB,GAC7C,IAAIzrE,EAAI,CAAC,MACTA,EAAEmC,KAAKslC,MAAMznC,EAAGoqE,CAAI,EAEhBE,EAAW,IADGoB,SAAS5tB,KAAKrW,MAAM+jC,EAAQxrE,CAAC,GAG/C,OADIyrE,GAAOV,EAAgBT,EAAUmB,EAAMp9C,SAAS,EAC7Ci8C,CACT,GAEgB7iC,MAAM,KAAMC,SAAS,CACzC,CAIA,SAASikC,EAAiBF,GACxB,IAAIG,EAAwB,YAAf,OAAOC,IAAqB,IAAIA,IAAQ5/D,OAuBrD,OAtBmB,SAA0Bw/D,GAC3C,GAAc,OAAVA,GALyD,CAAC,IAAzDC,SAASz9D,SAASqgB,KAKkBm9C,CALX,EAAEvjE,QAAQ,eAAe,EAKN,OAAOujE,EACxD,GAAqB,YAAjB,OAAOA,EACT,MAAM,IAAI1F,UAAU,oDAAoD,EAE1E,GAAsB,SAAX6F,EAAwB,CACjC,GAAIA,EAAO5yC,IAAIyyC,CAAK,EAAG,OAAOG,EAAOhyD,IAAI6xD,CAAK,EAC9CG,EAAOnyD,IAAIgyD,EAAOK,CAAO,CAC3B,CACA,SAASA,IACP,OAAOP,EAAWE,EAAO/jC,UAAWojC,EAAgBhqE,IAAI,EAAE2nE,WAAW,CACvE,CASA,OARAqD,EAAQz9C,UAAYh1B,OAAO0/C,OAAO0yB,EAAMp9C,UAAW,CACjDo6C,YAAa,CACXhqE,MAAOqtE,EACPlI,WAAY,GACZmB,SAAU,GACVD,aAAc,EAChB,CACF,CAAC,EACMiG,EAAgBe,EAASL,CAAK,CACvC,EACwBA,CAAK,CAC/B,CACA,SAASM,EAAuBlrE,GAC9B,GAAa,SAATA,EACF,MAAM,IAAImrE,eAAe,2DAA2D,EAEtF,OAAOnrE,CACT,CASA,SAASorE,EAAaC,GACpB,IAAIC,EAA4BnB,EAA0B,EAC1D,OAAO,WACL,IAXsC18C,EAWlC89C,EAAQtB,EAAgBoB,CAAO,EAXHrrE,GAe9BrE,EAFE2vE,GACEE,EAAYvB,EAAgBhqE,IAAI,EAAE2nE,YAC7BwC,QAAQC,UAAUkB,EAAO1kC,UAAW2kC,CAAS,GAE7CD,EAAM3kC,MAAM3mC,KAAM4mC,SAAS,EAEJ5mC,MAlBpC,GAAIwtB,IAAyB,UAAhB,OAAOA,GAAqC,YAAhB,OAAOA,GAC9C,OAAOA,EACF,GAAa,SAATA,EACT,MAAM,IAAIy3C,UAAU,0DAA0D,EAEhF,OAAOgG,EAAuBlrE,CAAI,CAclC,CACF,CAWA,SAAS6pE,EAAelF,GAClB78D,EAXN,SAAsBgiC,EAAO2hC,GAC3B,GAAqB,UAAjB,OAAO3hC,GAAgC,OAAVA,EAAgB,OAAOA,EACxD,IAAI4hC,EAAO5hC,EAAM25B,OAAOkI,aACxB,GAAavgE,SAATsgE,EAKJ,OAAiB,WAATD,EAAoBvmE,OAASm2B,QAAQyO,CAAK,EAHhD,GAAmB,UAAf,OADAwqB,EAAMoX,EAAKj+C,KAAKqc,EAAO2hC,GAAQ,SAAS,GACf,OAAOnX,EACpC,MAAM,IAAI4Q,UAAU,8CAA8C,CAGtE,EAEyBP,EAAK,QAAQ,EACpC,MAAsB,UAAf,OAAO78D,EAAmBA,EAAM5C,OAAO4C,CAAG,CACnD,CAWA,IAAI8jE,EAA2B,SAAXC,GAAuD,oBAA7B,GAAGz+D,SAASqgB,KAAKo+C,CAAM,EASrE,SAASC,EAAcv+C,EAAMZ,GAC3B,OAAyC,IAArCY,EAAKlmB,QAAQslB,EAAKxa,YAAY,CAAC,EAC1Bob,EAEF,GAAGrhB,OAAOygB,EAAKxa,YAAY,CAAC,EAAEjG,OAAOqhB,EAAKw+C,OAAO,EAAG,CAAC,EAAE7zD,YAAY,CAAC,EAAEhM,OAAOqhB,EAAKw+C,OAAO,CAAC,CAAC,CACpG,CA+BA,SAASC,EAAWjxE,GAClB,MAAO,oHAAoH2jD,KAAK3jD,CAAG,CACrI,CAQA,SAASkxE,EAAalxE,GAEpB,MADW,gGACC2jD,KAAK3jD,CAAG,CACtB,CAqBA,SAASmxE,EAAT,GACE,IA9CiBtuE,EA8CbuuE,EAAsC,EAAnBtlC,UAAU1tC,QAA+BiS,SADlE,IAC6F,GACvFpT,EAAKm0E,EAAiBn0E,GACtB+C,EAAMoxE,EAAiBpxE,IACvBqxE,EAAUp0E,GAAM+C,EACpB,GAAI,CAACqxE,EACH,MAAM,IAAI/zE,MAAM,6GAA6G,EAE/H,GArDiBuF,EAqDHwuE,EAnDP,CAACh8B,MAAMgoB,WAAWx6D,CAAK,CAAC,GAAKyuE,SAASzuE,CAAK,GAAK0Q,KAAKyc,MAAMntB,CAAK,GAAKA,EAoD1E,MAAO,qBAAqBsO,OAAOkgE,CAAO,EAE5C,GAAIJ,EAAWI,CAAO,EACpB,OAAOA,EAAQ94D,QAAQ,QAAS,QAAQ,EAE1C,GAAItb,EACF,MAAM,IAAIktE,UAAU,IAASh5D,OAAOlU,EAAI,4BAAiC,CAAC,EAE5E,MAAM,IAAIktE,UAAU,IAASh5D,OAAOkgE,EAAS,2BAAgC,CAAC,CAChF,CAagB,SAAZE,EAA+B3hD,EAAQ6qB,EAAW7O,GACpD,IAAI4lC,EAA4B,EAAnB1lC,UAAU1tC,QAA+BiS,SAAjBy7B,UAAU,GAAmBA,UAAU,GAAK,mBAC7E2lC,EAA6B,EAAnB3lC,UAAU1tC,QAA+BiS,SAAjBy7B,UAAU,GAAmBA,UAAU,GAAK,sBAC9E4lC,EAAkC,UAArB,OAAOj3B,EAAyB,CAACA,GAAaA,EAI/D,OAHAi3B,EAAW3pD,QAAQ,SAAU4pD,GAC3B/hD,EAAO4hD,GAAQG,EAAQ/lC,CAAQ,CACjC,CAAC,EACM,CACLtZ,OAAQ,WACN,OAAOo/C,EAAW3pD,QAAQ,SAAU4pD,GAClC,OAAO/hD,EAAO6hD,GAASE,EAAQ/lC,CAAQ,CACzC,CAAC,CACH,CACF,CACF,CAdA,IAgBIgmC,EAAyD,SAA5B72C,MAAMtI,UAAUnmB,QAC7CulE,EAAuC,aAAlB,OAAOh0E,QAAwD,SAAvBA,OAAOwgD,YACxE,GAAI,EAACwyB,GAAYe,GAAwBC,GACvC,MAAM,IAAIv0E,MAAM,+DAA+D,EAGjF,IAkBMkrE,EACAsJ,EAQAzJ,EA3BF0J,EAAuC,aAAtB,OAAOC,WAA6BA,WAA+B,aAAlB,OAAOn0E,OAAyBA,OAA2B,SAAXizE,EAAyBA,EAAyB,aAAhB,OAAO7rE,KAAuBA,KAAO,GAwCzL,SAASgtE,IACP,GAAa,SAAT/sE,KACF,MAAM,IAAIilE,UAAU,oCAAoC,EAK1D,GAHA9B,EAAenjE,KAAM,MAqEdgtE,YAAeC,EAAK,EAAI,IAAMA,EAAK,CArEG,EAGtB,EAAnBrmC,UAAU1tC,OAEZ,MAAM,IAAI+rE,UAAU,mCAAmC,CAE3D,CAwDA,SAASiI,EAAc/rE,EAAG4jE,GACxB,GAAI,CAACrO,EAASv1D,CAAC,GAAK,CAACmiE,EAAe91C,KAAKrsB,EAAG,KAAK,EAC/C,MAAM,IAAI8jE,UAAUF,EAAa,2CAA6C,OAAO5jE,CAAC,CAE1F,CAIA,SAAS8rE,IACP,OAAO5+D,KAAK0c,OAAO,EAAE5d,SAAS,EAAE02B,UAAU,CAAC,CAC7C,CAIF,SAAS6yB,EAASv1D,GAChB,OAAO5I,OAAO4I,CAAC,IAAMA,CACvB;;;;;;GA9GSpB;EA+Gc,aAAtB,OAAO+sE,WAA6BA,WAA6B,aAAhB,OAAO/sE,KAAuBA,KAAyB,aAAlB,OAAOpH,OAAyBA,OAAiDk0E,GA7G/JE,UAGLzJ,EAAiB/qE,OAAOg1B,UAAU+1C,eAClCsJ,EAAYr0E,OAAO4qE,gBAAkB,WACvC,IAEE,OAES,IAFF5qE,OAAO4qE,eAAe,GAAI,IAAK,CACpCxlE,MAAO,CACT,CAAC,EAAEwD,CACQ,CAAX,MAAOhJ,IACX,EAAE,EAYF4H,EAAKgtE,UAXD5J,EAAiB,SAAUX,EAAQ/hE,EAAM9C,GACvCivE,EACFr0E,OAAO4qE,eAAeX,EAAQ/hE,EAAM,CAClCujE,aAAc,GACdC,SAAU,GACVtmE,MAAOA,CACT,CAAC,EAED6kE,EAAO/hE,GAAQ9C,CAEnB,GAiBiBovE,EAAQx/C,UAAW,SAAU,SAAU1lB,GAEpD,IAGIg/D,EAHJ,OADAqG,EAAcltE,KAAM,QAAQ,EACvB02D,IAAS7uD,CAAG,GAIjB,EAAIg/D,EADAA,EAAQh/D,EAAI7H,KAAK2M,OACRk6D,EAAM,KAAOh/D,IACxB,OAAOA,EAAI7H,KAAK2M,KACT,GAGX,CAAC,EAGDw2D,EAAe4J,EAAQx/C,UAAW,MAAO,SAAU1lB,GAEjD,IAGIg/D,EAHJ,OADAqG,EAAcltE,KAAM,KAAK,EACpB02D,EAAS7uD,CAAG,IAGbg/D,EAAQh/D,EAAI7H,KAAK2M,OACRk6D,EAAM,KAAOh/D,EACjBg/D,EAAM,GALf,MAQF,CAAC,EAGD1D,EAAe4J,EAAQx/C,UAAW,MAAO,SAAU1lB,GAEjD,IAGIg/D,EAHJ,OADAqG,EAAcltE,KAAM,KAAK,EACpB02D,IAAS7uD,CAAG,GAIbg/D,IADAA,EAAQh/D,EAAI7H,KAAK2M,OACRk6D,EAAM,KAAOh/D,EAI5B,CAAC,EAGDs7D,EAAe4J,EAAQx/C,UAAW,MAAO,SAAU1lB,EAAKlK,GAEtD,IAGIkpE,EAHJ,GADAqG,EAAcltE,KAAM,KAAK,EACpB02D,EAAS7uD,CAAG,EASjB,OANIg/D,EAAQh/D,EAAI7H,KAAK2M,OACRk6D,EAAM,KAAOh/D,EACxBg/D,EAAM,GAAKlpE,EAGbwlE,EAAet7D,EAAK7H,KAAK2M,IAAK,CAAC9E,EAAKlK,EAAM,EACnCqC,KARL,MAAM,IAAIilE,UAAU,oCAAoC,CAS5D,CAAC,EAYD9B,EAAe4J,EAAS,YAAa,EAAI,EAClCA,KAOwB,SAAUt0E;;;;EAM7C;IAAcgI,EAAMk8D,EAASwQ,IAMyD,WAEpF,IAAIC,EACFC,EA0BIC,EAAOpM,EAAMp+C,EAxBjByqD,EAAWh1E,OAAOg1B,UAAUpgB,SAC5BqgE,EAA+B,SAAhBC,EAA8B,SAAe9H,GAC1D,OAAO8H,EAAa9H,CAAE,CACxB,EAAIjnD,WAGN,IACEnmB,OAAO4qE,eAAe,GAAI,IAAK,EAAE,EACjCiK,EAAc,SAAqB/jD,EAAK5oB,EAAMmY,EAAKtf,GACjD,OAAOf,OAAO4qE,eAAe95C,EAAK5oB,EAAM,CACtC9C,MAAOib,EACPqrD,SAAU,GACVD,aAAyB,KAAX1qE,CAChB,CAAC,CACH,CAMF,CALE,MAAOuoD,GACPurB,EAAc,SAAqB/jD,EAAK5oB,EAAMmY,GAE5C,OADAyQ,EAAI5oB,GAAQmY,EACLyQ,CACT,CACF,CAKE,SAASqkD,EAAK/H,EAAI5lE,GAChBC,KAAK2lE,GAAKA,EACV3lE,KAAKD,KAAOA,EACZC,KAAK2T,KAAO,MACd,CAsBF,SAASg6D,EAAShI,EAAI5lE,GACpB6tE,EAAiBC,IAAIlI,EAAI5lE,CAAI,EACxBstE,KACKG,EAAMI,EAAiBE,KAAK,CAExC,CAGA,SAASC,EAAW71E,GAClB,IAAI81E,EACFC,EAAS,OAAO/1E,EAIlB,MAAuB,YAAhB,OAFL81E,EADO,MAAL91E,GAAwB,UAAV+1E,GAAgC,YAAVA,EAG1BD,EAFJ91E,EAAEiD,OAEwB6yE,CACtC,CACA,SAASE,IACP,IAAK,IAAIpyE,EAAI,EAAGA,EAAIkE,KAAKmuE,MAAMj1E,OAAQ4C,CAAC,GAAI,CAUnCkyE,EAALI,EAD4BD,EAAJE,EAANtuE,SARpBuuE,IASEF,EAAKJ,EADajuE,EARLC,KAQWquE,EARU,IAAfruE,KAAKnG,MAAcmG,KAAKmuE,MAAMryE,GAAG4pB,QAAU1lB,KAAKmuE,MAAMryE,GAAGyyE,QAQhDJ,EARyDnuE,KAAKmuE,MAAMryE,GAUpG,IACa,KAAPuyE,EACFF,EAAM/zD,OAAOra,EAAKmmD,GAAG,GAGnBkoB,EADS,KAAPC,EACItuE,EAAKmmD,IAELmoB,EAAG7gD,KAAK,OAAQztB,EAAKmmD,GAAG,KAEpBioB,EAAMvxD,QAChBuxD,EAAM/zD,OAAO6qD,UAAU,qBAAqB,CAAC,GACpC+I,EAAQD,EAAWK,CAAG,GAC/BJ,EAAMxgD,KAAK4gD,EAAKD,EAAM31E,QAAS21E,EAAM/zD,MAAM,EAE3C+zD,EAAM31E,QAAQ41E,CAAG,CAKvB,CAFE,MAAOvsB,GACPssB,EAAM/zD,OAAOynC,CAAG,CAClB,CA5BA,CACA7hD,KAAKmuE,MAAMj1E,OAAS,CACtB,CA4BA,SAASV,EAAQ0tD,GACf,IAAI8nB,EACFjuE,EAAOC,KAGT,GAAID,GAAKyuE,UAAT,CAGAzuE,EAAKyuE,UAAY,GAGbzuE,EAAK0uE,MACP1uE,EAAOA,EAAK0uE,KAEd,KACMT,EAAQD,EAAW7nB,CAAG,GACxBynB,EAAS,WACP,IAAIe,EAAc,IAAIC,EAAe5uE,CAAI,EACzC,IACEiuE,EAAMxgD,KAAK04B,EAAK,WACd1tD,EAAQmuC,MAAM+nC,EAAa9nC,SAAS,CACtC,EAAG,WACDxsB,EAAOusB,MAAM+nC,EAAa9nC,SAAS,CACrC,CAAC,CAGH,CAFE,MAAOib,GACPznC,EAAOoT,KAAKkhD,EAAa7sB,CAAG,CAC9B,CACF,CAAC,GAED9hD,EAAKmmD,IAAMA,EACXnmD,EAAKlG,MAAQ,EACW,EAApBkG,EAAKouE,MAAMj1E,QACby0E,EAASO,EAAQnuE,CAAI,EAK3B,CAFE,MAAO8hD,GACPznC,EAAOoT,KAAK,IAAImhD,EAAe5uE,CAAI,EAAG8hD,CAAG,CAC3C,CA9BA,CA+BF,CACA,SAASznC,EAAO8rC,GACd,IAAInmD,EAAOC,KAGPD,EAAKyuE,YAGTzuE,EAAKyuE,UAAY,IAIfzuE,EADEA,EAAK0uE,IACA1uE,EAAK0uE,IAEd1uE,GAAKmmD,IAAMA,EACXnmD,EAAKlG,MAAQ,EACW,EAApBkG,EAAKouE,MAAMj1E,QACby0E,EAASO,EAAQnuE,CAAI,EAEzB,CACA,SAAS6uE,EAAgBnF,EAAangD,EAAKulD,EAAUC,GACnD,IAAK,IAAIC,EAAM,EAAGA,EAAMzlD,EAAIpwB,OAAQ61E,CAAG,GACrC,UAAeA,GACbtF,EAAYjxE,QAAQ8wB,EAAIylD,EAAI,EAAE5zE,KAAK,SAAoB+qD,GACrD2oB,EAASE,EAAK7oB,CAAG,CACnB,EAAG4oB,CAAQ,CACZ,EAAEC,CAAG,CAEV,CACA,SAASJ,EAAe5uE,GACtBC,KAAKyuE,IAAM1uE,EACXC,KAAKwuE,UAAY,EACnB,CACA,SAASQ,EAAQjvE,GACfC,KAAK4c,QAAU7c,EACfC,KAAKnG,MAAQ,EACbmG,KAAKwuE,UAAY,GACjBxuE,KAAKmuE,MAAQ,GACbnuE,KAAKkmD,IAAM,MACb,CACA,SAASpQ,EAAQm5B,GACf,GAAuB,YAAnB,OAAOA,EACT,MAAMhK,UAAU,gBAAgB,EAElC,GAAqB,IAAjBjlE,KAAKkvE,QACP,MAAMjK,UAAU,eAAe,EAKjCjlE,KAAKkvE,QAAU,EACf,IAAIT,EAAM,IAAIO,EAAQhvE,IAAI,EAC1BA,KAAW,KAAI,SAAc0lB,EAAS6oD,GACpC,IAAIr2E,EAAI,CACNwtB,QAA2B,YAAlB,OAAOA,GAAwBA,EACxC6oD,QAA2B,YAAlB,OAAOA,GAAwBA,CAC1C,EAeA,OAXAr2E,EAAE0kB,QAAU,IAAI5c,KAAK2nE,YAAY,SAAsBnvE,EAAS4hB,GAC9D,GAAsB,YAAlB,OAAO5hB,GAA0C,YAAjB,OAAO4hB,EACzC,MAAM6qD,UAAU,gBAAgB,EAElC/sE,EAAEM,QAAUA,EACZN,EAAEkiB,OAASA,CACb,CAAC,EACDq0D,EAAIN,MAAM9sE,KAAKnJ,CAAC,EACE,IAAdu2E,EAAI50E,OACN8zE,EAASO,EAAQO,CAAG,EAEfv2E,EAAE0kB,OACX,EACA5c,KAAY,MAAI,SAAiBuuE,GAC/B,OAAOvuE,KAAK7E,KAAK,OAAQozE,CAAO,CAClC,EACA,IACEU,EAASzhD,KAAK,OAAQ,SAAuB04B,GAC3C1tD,EAAQg1B,KAAKihD,EAAKvoB,CAAG,CACvB,EAAG,SAAsBA,GACvB9rC,EAAOoT,KAAKihD,EAAKvoB,CAAG,CACtB,CAAC,CAGH,CAFE,MAAOrE,GACPznC,EAAOoT,KAAKihD,EAAK5sB,CAAG,CACtB,CACF,CACA,IAzMA+rB,EAOS,CACLC,IAAK,SAAalI,EAAI5lE,GACpB+iB,EAAO,IAAI4qD,EAAK/H,EAAI5lE,CAAI,EACpBmhE,EACFA,EAAKvtD,KAAOmP,EAEZwqD,EAAQxqD,EAEVo+C,EAAOp+C,CAET,EACAgrD,MAAO,WACL,IAAI3zB,EAAImzB,EAER,IADAA,EAAQpM,EAAOmM,EAAQ,OAChBlzB,GACLA,EAAEwrB,GAAGn4C,KAAK2sB,EAAEp6C,IAAI,EAChBo6C,EAAIA,EAAExmC,IAEV,CACF,EA+KEw7D,EAAmB/B,EAAY,GAAI,cAAet3B,EAA0B,EAAK,EAuErF,OAjEAs3B,EAHAt3B,EAAQvoB,UAAY4hD,EAGU,UAAW,EAAoB,EAAK,EAClE/B,EAAYt3B,EAAS,UAAW,SAAyBoQ,GAKvD,OAAIA,GAAqB,UAAd,OAAOA,GAAmC,IAAhBA,EAAIgpB,QAChChpB,EAEF,IAPWlmD,KAOK,SAAkBxH,EAAS4hB,GAChD,GAAsB,YAAlB,OAAO5hB,GAA0C,YAAjB,OAAO4hB,EACzC,MAAM6qD,UAAU,gBAAgB,EAElCzsE,EAAQ0tD,CAAG,CACb,CAAC,CACH,CAAC,EACDknB,EAAYt3B,EAAS,SAAU,SAAwBoQ,GACrD,OAAO,IAAIlmD,KAAK,SAAkBxH,EAAS4hB,GACzC,GAAsB,YAAlB,OAAO5hB,GAA0C,YAAjB,OAAO4hB,EACzC,MAAM6qD,UAAU,gBAAgB,EAElC7qD,EAAO8rC,CAAG,CACZ,CAAC,CACH,CAAC,EACDknB,EAAYt3B,EAAS,MAAO,SAAqBxsB,GAC/C,IAAImgD,EAAczpE,KAGlB,MAA0B,kBAAtButE,EAAS//C,KAAKlE,CAAG,EACZmgD,EAAYrvD,OAAO6qD,UAAU,cAAc,CAAC,EAElC,IAAf37C,EAAIpwB,OACCuwE,EAAYjxE,QAAQ,EAAE,EAExB,IAAIixE,EAAY,SAAkBjxE,EAAS4hB,GAChD,GAAsB,YAAlB,OAAO5hB,GAA0C,YAAjB,OAAO4hB,EACzC,MAAM6qD,UAAU,gBAAgB,EAElC,IAAIvc,EAAMp/B,EAAIpwB,OACZk2E,EAAOv5C,MAAM6yB,CAAG,EAChBz/B,EAAQ,EACV2lD,EAAgBnF,EAAangD,EAAK,SAAkBylD,EAAK7oB,GACvDkpB,EAAKL,GAAO7oB,EACR,EAAEj9B,IAAUy/B,GACdlwD,EAAQ42E,CAAI,CAEhB,EAAGh1D,CAAM,CACX,CAAC,CACH,CAAC,EACDgzD,EAAYt3B,EAAS,OAAQ,SAAsBxsB,GACjD,IAAImgD,EAAczpE,KAGlB,MAA0B,kBAAtButE,EAAS//C,KAAKlE,CAAG,EACZmgD,EAAYrvD,OAAO6qD,UAAU,cAAc,CAAC,EAE9C,IAAIwE,EAAY,SAAkBjxE,EAAS4hB,GAChD,GAAsB,YAAlB,OAAO5hB,GAA0C,YAAjB,OAAO4hB,EACzC,MAAM6qD,UAAU,gBAAgB,EAElC2J,EAAgBnF,EAAangD,EAAK,SAAkBylD,EAAK7oB,GACvD1tD,EAAQ0tD,CAAG,CACb,EAAG9rC,CAAM,CACX,CAAC,CACH,CAAC,EACM07B,CACT,GAnToB6mB,EAMiCkQ,GANvCpsE,EAMX,WAJek8D,EAAQl8D,IAAS0sE,EAAW,EACvC10E,EAAOC,UACVD,EAAOC,QAAUikE,EAAQl8D,GAgT7B,GArbQhI,EAAS,CAAEC,QAAS,EAAG,CAA4B,EA2H3D,IAAI22E,EA3H0D52E,EAAOC,QA2bjE42E,EAAc,IAAIvC,QAWtB,SAASwC,EAAcj6B,EAAQ70C,EAAMimC,GACnC,IAAI8oC,EAAkBF,EAAYx2D,IAAIw8B,EAAOn/B,OAAO,GAAK,GACnD1V,KAAQ+uE,IACZA,EAAgB/uE,GAAQ,IAE1B+uE,EAAgB/uE,GAAMY,KAAKqlC,CAAQ,EACnC4oC,EAAY32D,IAAI28B,EAAOn/B,QAASq5D,CAAe,CACjD,CASA,SAASC,EAAan6B,EAAQ70C,GAE5B,OADsB6uE,EAAYx2D,IAAIw8B,EAAOn/B,OAAO,GAAK,IAClC1V,IAAS,EAClC,CAUA,SAASivE,EAAep6B,EAAQ70C,EAAMimC,GACpC,IAAI8oC,EAAkBF,EAAYx2D,IAAIw8B,EAAOn/B,OAAO,GAAK,GACzD,MAAKq5D,GAAgB/uE,KAKhBimC,GAMS,CAAC,KADXrb,EAAQmkD,EAAgB/uE,GAAM2G,QAAQs/B,CAAQ,IAEhD8oC,EAAgB/uE,GAAMmqB,OAAOS,EAAO,CAAC,EAEvCikD,EAAY32D,IAAI28B,EAAOn/B,QAASq5D,CAAe,EACxCA,EAAgB/uE,IAA0C,IAAjC+uE,EAAgB/uE,GAAMvH,SATpDs2E,EAAgB/uE,GAAQ,GACxB6uE,EAAY32D,IAAI28B,EAAOn/B,QAASq5D,CAAe,EACxC,IAQX,CA0CA,SAASG,EAAiBr1E,GACxB,GAAoB,UAAhB,OAAOA,EACT,IACEA,EAAO6xB,KAAKC,MAAM9xB,CAAI,CAKxB,CAJE,MAAO4c,GAGP,OADAsB,QAAQo3D,KAAK14D,CAAK,EACX,EACT,CAEF,OAAO5c,CACT,CAUA,SAAS6+C,EAAY7D,EAAQglB,EAAQxrD,GAC9BwmC,EAAOn/B,QAAQ5C,eAAkB+hC,EAAOn/B,QAAQ5C,cAAc4lC,cAG/DohB,EAAU,CACZD,OAAQA,CACV,EACenvD,SAAX2D,IACFyrD,EAAQ58D,MAAQmR,GAKD,IADb+gE,EAAY1X,WAAWxrC,UAAUmjD,UAAU59D,YAAY,EAAEmB,QAAQ,mBAAoB,IAAI,CAAC,IACxEw8D,EAAY,KAChCtV,EAAUpuC,KAAKwrC,UAAU4C,CAAO,GAElCjlB,EAAOn/B,QAAQ5C,cAAc4lC,YAAYohB,EAASjlB,EAAOy6B,MAAM,EACjE,CASA,SAASC,EAAY16B,EAAQh7C,GAE3B,IACI21E,EAnFkB36B,EAAQ70C,EAC1B+uE,EAiFAU,EAAY,IADhB51E,EAAOq1E,EAAiBr1E,CAAI,GAGnB4b,OACY,UAAf5b,EAAK4b,OACQu5D,EAAan6B,EAAQh7C,EAAKA,KAAKggE,MAAM,EAC3Cz3C,QAAQ,SAAUjG,GACzB,IAAI1F,EAAQ,IAAI9e,MAAMkC,EAAKA,KAAKigE,OAAO,EACvCrjD,EAAMzW,KAAOnG,EAAKA,KAAKmG,KACvBmc,EAAQxC,OAAOlD,CAAK,EACpBw4D,EAAep6B,EAAQh7C,EAAKA,KAAKggE,OAAQ19C,CAAO,CAClD,CAAC,EAEHszD,EAAYT,EAAan6B,EAAQ,SAASrpC,OAAO3R,EAAK4b,KAAK,CAAC,EAC5D+5D,EAAQ31E,EAAKA,MACJA,EAAKggE,SAhGMhlB,EAiGUA,EAjGF70C,EAiGUnG,EAAKggE,OAAvC5zB,EA/FF8oC,GADAA,EAAkBC,EAAan6B,EAAQ70C,CAAI,GAC3BvH,OAAS,KAI7Bw2E,EAAep6B,EAAQ70C,EADnBimC,EAAW8oC,EAAgBrlE,MAAM,CACA,EAC9Bu8B,MA4FHwpC,EAAU7uE,KAAKqlC,CAAQ,EACvBupC,EAAQ31E,EAAKqD,OAGjBuyE,EAAUrtD,QAAQ,SAAU6jB,GAC1B,IAC0B,YAApB,OAAOA,EACTA,EAASlZ,KAAK8nB,EAAQ26B,CAAK,EAG7BvpC,EAASluC,QAAQy3E,CAAK,CAGxB,CAFE,MAAO93E,IAGX,CAAC,CACH,CAKA,IAAI+zE,EAAmB,CAAC,UAAW,eAAgB,aAAc,YAAa,WAAY,aAAc,SAAU,KAAM,aAAc,WAAY,aAAc,QAAS,SAAU,WAAY,MAAO,WAAY,aAAc,SAAU,KAAM,qBAAsB,WAAY,OAAQ,YAAa,WAAY,QAAS,uBAAwB,cAAe,WAAY,eAAgB,mBAAoB,aAAc,QAAS,aAAc,YAAa,QAAS,aAAc,cAAe,gBAAiB,MAAO,aAAc,SAAU,mBAAoB,SAS/iB,SAASiE,GAAoBh6D,EAA7B,GAEE,OAAO+1D,EAAiBroE,OAAO,SAAUiL,EAAQmhE,GAC/C,IAAItyE,EAAQwY,EAAQi6D,aAAa,cAAcnkE,OAAOgkE,CAAK,CAAC,EAI5D,MAHItyE,IAAmB,KAAVA,IACXmR,EAAOmhE,GAAmB,KAAVtyE,EAAe,EAAIA,GAE9BmR,CACT,EAPkC,EAAnB83B,UAAU1tC,QAA+BiS,SAD1D,IACqF,EAOxE,CACb,CASA,SAASklE,EAAYC,EAAMn6D,GACzB,IAOIo6D,EAPAz1D,EAAOw1D,EAAKx1D,KAChB,GAAK3E,EAUL,OAPuD,OAAnDA,EAAQi6D,aAAa,wBAAwB,KAG7CG,EAAMp9D,SAAS8c,cAAc,KAAK,GAClCxc,UAAYqH,EAChB3E,EAAQq6D,YAAYD,EAAIE,UAAU,EAClCt6D,EAAQu6D,aAAa,yBAA0B,MAAM,GAC9Cv6D,EAAQw6D,cAAc,QAAQ,EATnC,MAAM,IAAI1L,UAAU,6BAA6B,CAUrD,CAUA,SAAS2L,GAAcC,EAAvB,KACE,IAAI/hE,EAA4B,EAAnB83B,UAAU1tC,QAA+BiS,SADxD,IACmF,GAC7EgL,EAA6B,EAAnBywB,UAAU1tC,OAF1B,EAEsDiS,OACpD,OAAO,IAAI2qC,QAAQ,SAAUt9C,EAAS4hB,GACpC,GAAI,CAAC2xD,EAAW8E,CAAQ,EACtB,MAAM,IAAI5L,UAAU,IAASh5D,OAAO4kE,EAAU,2BAAgC,CAAC,EAEjF,IAESZ,EAFLa,EA1vBR,SAAyBh2E,GAIvB,IAHA,IACIg2E,IAAUjpB,GADD/sD,GAAO,IAAI+sD,MAAM,gCAAgC,IACvCA,EAAM,IAAM,IAAIx0C,QAAQ,UAAW,EAAE,EAEnD09D,EAAK,EAAGC,EADG,CAAC,cAAe,cAAe,eACFD,EAAKC,EAAe93E,OAAQ63E,CAAE,GAE7E,GAAID,EAAOG,SADQD,EAAeD,EACF,EAC9B,OAAOD,EAGX,MAAO,WACT,EA+uBiCD,CAAQ,EACjC/1E,EAAM,WAAWmR,OAAO6kE,EAAQ,uBAAuB,EAAE7kE,OAAOwS,mBAAmBoyD,CAAQ,CAAC,EAChG,IAASZ,KAASnhE,EACZA,EAAOw0D,eAAe2M,CAAK,IAC7Bn1E,GAAO,IAAImR,OAAOgkE,EAAO,GAAG,EAAEhkE,OAAOwS,mBAAmB3P,EAAOmhE,EAAM,CAAC,GAG1E,IAAIiB,EAAmC,IAA7B,mBAAoBv4E,OAAaw4E,eAAuBC,gBAClEF,EAAIr2D,KAAK,MAAO/f,EAAK,EAAI,EACzBo2E,EAAIjlD,OAAS,WACX,GAAmB,MAAfilD,EAAIn/C,OACN3X,EAAO,IAAIhiB,MAAM,IAAS6T,OAAO4kE,EAAU,kBAAuB,CAAC,CAAC,OAGtE,GAAmB,MAAfK,EAAIn/C,OACN3X,EAAO,IAAIhiB,MAAM,IAAS6T,OAAO4kE,EAAU,sBAA2B,CAAC,CAAC,OAG1E,IACE,IAAIQ,EAAOllD,KAAKC,MAAM8kD,EAAII,YAAY,EAEN,MAA5BD,EAAKE,oBAEPlB,EAAYgB,EAAMl7D,CAAO,EACzBiE,EAAO,IAAIhiB,MAAM,IAAS6T,OAAO4kE,EAAU,sBAA2B,CAAC,CAAC,GAG1Er4E,EAAQ64E,CAAI,CAGd,CAFE,MAAOn6D,GACPkD,EAAOlD,CAAK,CACd,CACF,EACAg6D,EAAIM,QAAU,WACZ,IAAIz/C,EAASm/C,EAAIn/C,OAAS,KAAK9lB,OAAOilE,EAAIn/C,OAAQ,GAAG,EAAI,GACzD3X,EAAO,IAAIhiB,MAAM,wDAAwD6T,OAAO8lB,EAAQ,GAAG,CAAC,CAAC,CAC/F,EACAm/C,EAAIn9C,KAAK,CACX,CAAC,CACH,CAQA,SAAS09C,GAAT,GAGoB,SAAdC,EAAmCx6D,GACjC,YAAave,QAAU6f,QAAQtB,OACjCsB,QAAQtB,MAAM,yCAAyCjL,OAAOiL,CAAK,CAAC,CAExE,CANI2U,EAA4B,EAAnB+a,UAAU1tC,QAA+BiS,SADxD,IACmFgI,SAC7Ew+D,EAAW,GAAG/5D,MAAM4V,KAAK3B,EAAO+d,iBAAiB,mCAAmC,CAAC,EAMzF+nC,EAAS9uD,QAAQ,SAAU1M,GACzB,IAEE,IAGIrH,EAH6C,OAA7CqH,EAAQi6D,aAAa,kBAAkB,GAK3CQ,GADU3E,EADNn9D,EAASqhE,GAAoBh6D,CAAO,CACZ,EACTrH,EAAQqH,CAAO,EAAEhb,KAAK,SAAUb,GACjD,OAAO+1E,EAAY/1E,EAAM6b,CAAO,CAClC,CAAC,EAAE2yD,MAAM4I,CAAW,CAGtB,CAFE,MAAOx6D,GACPw6D,EAAYx6D,CAAK,CACnB,CACF,CAAC,CACH,CAkFA,SAAS06D,GAAT,GACE,IAMIF,EANA7lD,EAA4B,EAAnB+a,UAAU1tC,QAA+BiS,SADxD,IACmFgI,SAE7Exa,OAAOk5E,2BAGXl5E,OAAOk5E,yBAA2B,GAC9BH,EAAc,SAAqBx6D,GACjC,YAAave,QAAU6f,QAAQtB,OACjCsB,QAAQtB,MAAM,wCAAwCjL,OAAOiL,CAAK,CAAC,CAEvE,EA6BAve,OAAOmxC,iBAAiB,UA5BR,SAAmB5zB,GACjC,GAAK61D,EAAW71D,EAAM65D,MAAM,EAA5B,CAGA,IAAIz1E,EAAOq1E,EAAiBz5D,EAAM5b,IAAI,EACtC,GAAKA,GAAuB,UAAfA,EAAK4b,MAmBlB,IAhBA,IAAI47D,EAAUjmD,EAAO+d,iBAAiB,QAAQ,EAgBrC9tC,EAAI,EAAGA,EAAIg2E,EAAQ54E,OAAQ4C,CAAC,GACnCi2E,CAhBU,WACV,IAGMz8B,EAHFpiC,EAAS4+D,EAAQh2E,GACjBk2E,EAAuB9+D,EAAOK,gBAAkB2C,EAAM2B,OACtDm0D,EAAa94D,EAAOyd,GAAG,GAAKqhD,IAC1B18B,EAAS,IAAIqB,EAAOzjC,CAAM,GACvB2iC,WAAW,EAAE16C,KAAK,SAAU82E,GACjC,IAAIC,EAAU,IAAIp5E,OAAO,eAAemT,OAAOgmE,EAAS,WAAW,CAAC,EAAEl5E,KAAKJ,OAAOK,SAASwmB,IAAI,EAC3F0yD,GAAWA,EAAQ,KACjBC,EAAMC,UAAUF,EAAQ,EAAE,EAC9B58B,EAAO+8B,eAAeF,CAAG,EAG7B,CAAC,EAAErJ,MAAM4I,CAAW,CAExB,EAEQ,CAtBR,CAwBF,CAC4C,EAC9C,CAsHA,IAxGM/L,EAqBA2M,EAIAC,EA+EFC,GAAiB,CACnBC,KAAM,SACNC,cAAe,GACfC,aAAc,GACdC,gBAAiB,EACjBC,iBAAkB,GAClBC,kBAAmB,GACnBC,iBAAkB,CACpB,EAmBIC,GAAkC,SAAUC,GAC9CC,IA/wCiBC,EA+wCPH,EA9wCV,GAA0B,YAAtB,OAAOI,GAA4C,OAAfA,EACtC,MAAM,IAAInO,UAAU,oDAAoD,EAE1EkO,EAAS5lD,UAAYh1B,OAAO0/C,OAAOm7B,GAAcA,EAAW7lD,UAAW,CACrEo6C,YAAa,CACXhqE,MAAOw1E,EACPlP,SAAU,GACVD,aAAc,EAChB,CACF,CAAC,EACDzrE,OAAO4qE,eAAegQ,EAAU,YAAa,CAC3ClP,SAAU,EACZ,CAAC,EACGmP,GAAYnJ,EAAgBkJ,EAAUC,CAAU,EAkwCpD,IAwLQC,EArDAC,EAzDAC,EA1EJC,EAASrI,EAAa6H,CAAkB,EAO5C,SAASA,EAAmBS,EAASC,GACnC,IAAIC,EACA96B,EAA6B,EAAnBjS,UAAU1tC,QAA+BiS,SAAjBy7B,UAAU,GAAmBA,UAAU,GAAK,GAC9EgtC,EAA4B,EAAnBhtC,UAAU1tC,OAAa0tC,UAAU,GAAKz7B,OA+CnD,OA9CAo+D,EAAgBvpE,KAAMgzE,CAAkB,EAExChQ,EAAgBiI,EADhB0I,EAAQH,EAAOhmD,KAAKxtB,IAAI,CACoB,EAAG,SAAU,MAAM,EAC/DgjE,EAAgBiI,EAAuB0I,CAAK,EAAG,kBAAmB,CAAC,EAMnE3Q,EAAgBiI,EAAuB0I,CAAK,EAAG,cAA4B,WACzE,IAAIrD,EAAOjH,EAAgCjG,EAAoB,EAAEwE,KAAK,SAASiM,EAAQv+B,EAAQw+B,GAC7F,IAAIC,EACJ,OAAO3Q,EAAoB,EAAEc,KAAK,SAAkB8P,GAClD,OAAU,OAAQA,EAAS9oC,KAAO8oC,EAASrgE,MACzC,KAAK,EACH,GAAMggE,EAAMM,kBAAoBH,EAIhC,OAAOE,EAAStO,OAAO,QAAQ,EAH7BsO,EAASrgE,KAAO,EAChB,MAGJ,KAAK,EAEH,OADAqgE,EAASrgE,KAAO,EACT2hC,EAAO4+B,gBAAgB,EAChC,KAAK,EAQH,OAPAF,EAASG,GAAKH,EAASzO,KACvByO,EAASI,GAAKT,EAAMM,gBACpBD,EAASK,GAAKL,EAASG,GAAKH,EAASI,GACrCJ,EAASM,GAAKR,EACdC,EAAkBC,EAASK,GAAKL,EAASM,GACzCX,EAAMl7D,IAAI,sBAAsBxM,OAAO8nE,CAAe,CAAC,EACvDC,EAASrgE,KAAO,GACT2hC,EAAOi/B,gBAAgBR,CAAe,EAC/C,KAAK,GACHJ,EAAMM,gBAAkBH,EAC1B,KAAK,GACL,IAAK,MACH,OAAOE,EAAS5L,KAAK,CACzB,CACF,EAAGyL,CAAO,CACZ,CAAC,CAAC,EACF,OAAO,SAAUW,EAAIC,GACnB,OAAOnE,EAAK3pC,MAAM3mC,KAAM4mC,SAAS,CACnC,CACF,EAAE,CAAC,EACH+sC,EAAMC,OAASA,EACfD,EAAM7kD,KAAK4kD,EAAcD,EAAS1Q,EAAeA,EAAe,GAAIyP,EAAc,EAAG35B,CAAO,CAAC,EACtF86B,CACT,CA2VA,OA1VA9J,EAAamJ,EAAoB,CAAC,CAChCnrE,IAAK,aACLlK,MAAO,WACLqC,KAAK00E,cAAc,IAAIt8D,MAAM,YAAY,CAAC,CAC5C,CAQF,EAAG,CACDvQ,IAAK,OACLlK,OACM41E,EAAQlK,EAAgCjG,EAAoB,EAAEwE,KAAK,SAAS+M,EAASjB,EAAcp+B,EAAQuD,GAC7G,IACI+7B,EAAeC,EAAcC,EAD7BC,EAAS/0E,KAEb,OAAOojE,EAAoB,EAAEc,KAAK,SAAmB8Q,GACnD,OAAU,OAAQA,EAAU9pC,KAAO8pC,EAAUrhE,MAC3C,KAAK,EAEH,OADAqhE,EAAUrhE,KAAO,EACV3T,KAAKi1E,oBAAoBvB,EAAc,MAAM,EACtD,KAAK,EACH,GAAuB,WAAjB76B,EAAQ45B,KAKd,OADAuC,EAAUrhE,KAAO,EACV3T,KAAKk1E,aAAaxB,EAAcp+B,EAAQuD,CAAO,EAJpDm8B,EAAUrhE,KAAO,GACjB,MAIJ,KAAK,EACHihE,EAAgBvI,EAAUqH,EAAc,SAAU,WAChD,OAAOqB,EAAOG,aAAaxB,EAAcp+B,EAAQuD,CAAO,CAC1D,CAAC,EACDg8B,EAAe70E,KAAKm1E,yBAAyBzB,EAAcp+B,EAAQuD,CAAO,EAC1E74C,KAAK8pC,iBAAiB,aAAc,WAClC+qC,EAAaznD,OAAO,EACpBwnD,EAAcxnD,OAAO,CACvB,CAAC,EACD4nD,EAAUrhE,KAAO,GACjB,MACF,KAAK,GAEH,OADAqhE,EAAUrhE,KAAO,GACV3T,KAAKo1E,mBAAmB1B,EAAcp+B,CAAM,EACrD,KAAK,GACHw/B,EAAsBzI,EAAU/2B,EAAQ,CAAC,SAAU,OAAQ,QAAS,cAAe,WACjF,OAAOy/B,EAAOK,mBAAmB1B,EAAcp+B,CAAM,CACvD,EAAG,KAAM,KAAK,EACdt1C,KAAK8pC,iBAAiB,aAAc,WAClC,OAAOgrC,EAAoB1nD,OAAO,CACpC,CAAC,EACH,KAAK,GACL,IAAK,MACH,OAAO4nD,EAAU5M,KAAK,CAC1B,CACF,EAAGuM,EAAU30E,IAAI,CACnB,CAAC,CAAC,EACF,SAAcq1E,EAAKC,EAAKC,GACtB,OAAOhC,EAAM5sC,MAAM3mC,KAAM4mC,SAAS,CACpC,EAUJ,EAAG,CACD/+B,IAAK,qBACLlK,OACM21E,EAAsBjK,EAAgCjG,EAAoB,EAAEwE,KAAK,SAAS4N,EAAS9B,EAAcp+B,GACnH,OAAO8tB,EAAoB,EAAEc,KAAK,SAAmBuR,GACnD,OAAU,OAAQA,EAAUvqC,KAAOuqC,EAAU9hE,MAC3C,KAAK,EAGH,OAFA8hE,EAAUtB,GAAKT,EACf+B,EAAU9hE,KAAO,EACV2hC,EAAOogC,eAAe,EAC/B,KAAK,EAGH,OAFAD,EAAUrB,GAAKqB,EAAUlQ,KACzBkQ,EAAU9hE,KAAO,EACV2hC,EAAOqgC,UAAU,EAC1B,KAAK,EACEF,EAAUlQ,MAIfkQ,EAAUpB,GAAK,EACfoB,EAAU9hE,KAAO,IAJf8hE,EAAU9hE,KAAO,GAKnB,MACF,KAAK,GAEH,OADA8hE,EAAU9hE,KAAO,GACV2hC,EAAO4+B,gBAAgB,EAChC,KAAK,GACHuB,EAAUpB,GAAKoB,EAAUlQ,KAC3B,KAAK,GACHkQ,EAAUnB,GAAKmB,EAAUpB,GACzBoB,EAAUG,GAAK,CACbn0B,SAAUg0B,EAAUrB,GACpByB,SAAUJ,EAAUnB,EACtB,EACAmB,EAAUtB,GAAG2B,OAAOtoD,KAAKioD,EAAUtB,GAAIsB,EAAUG,EAAE,EACrD,KAAK,GACL,IAAK,MACH,OAAOH,EAAUrN,KAAK,CAC1B,CACF,EAAGoN,CAAQ,CACb,CAAC,CAAC,EACF,SAA4BO,EAAKC,GAC/B,OAAO1C,EAAoB3sC,MAAM3mC,KAAM4mC,SAAS,CAClD,EAWJ,EAAG,CACD/+B,IAAK,eACLlK,OACM01E,EAAgBhK,EAAgCjG,EAAoB,EAAEwE,KAAK,SAASqO,EAASvC,EAAcp+B,EAAQuD,GACrH,IAAyB4I,EAAUo0B,EACnC,OAAOzS,EAAoB,EAAEc,KAAK,SAAmBgS,GACnD,OAAU,OAAQA,EAAUhrC,KAAOgrC,EAAUviE,MAC3C,KAAK,EAKH,GAJAwiE,EAAsBzC,EAAa0C,MAAM,EAAG30B,EAAW00B,EAAoB10B,SAAUo0B,EAAWM,EAAoBN,SAC5F,UAApB,OAAOp0B,GACTnM,EAAO+8B,eAAe5wB,CAAQ,EAEN,UAApB,OAAOo0B,EACXK,EAAUviE,KAAO,OADnB,CAIA,GAAmB,IAAbkiE,EAKN,OADAK,EAAUviE,KAAO,EACV2hC,EAAOqgC,UAAU,EAJtBO,EAAUviE,KAAO,EAFnB,CAGE,MAIJ,KAAK,EAEH,GADAuiE,EAAU/B,GAAK+B,EAAU3Q,KACF,KAAjB2Q,EAAU/B,GAAe,CAC7B+B,EAAUviE,KAAO,EACjB,KACF,CACA2hC,EAAO+gC,MAAM,EACf,KAAK,EACHH,EAAUviE,KAAO,GACjB,MACF,KAAK,GACH,GAAiB,EAAXkiE,EAKN,OADAK,EAAUviE,KAAO,GACV2hC,EAAOqgC,UAAU,EAJtBO,EAAUviE,KAAO,GACjB,MAIJ,KAAK,GAEH,GADAuiE,EAAU9B,GAAK8B,EAAU3Q,KACF,KAAjB2Q,EAAU9B,GAKhB,OADA8B,EAAUviE,KAAO,GACV2hC,EAAOghC,KAAK,EAAExN,MAAoB,WACvC,IAAIyN,EAAQlN,EAAgCjG,EAAoB,EAAEwE,KAAK,SAAS4O,EAAS30B,GACvF,OAAOuhB,EAAoB,EAAEc,KAAK,SAAmBuS,GACnD,OAAU,OAAQA,EAAUvrC,KAAOurC,EAAU9iE,MAC3C,KAAK,EACH,GAAmB,oBAAbkuC,EAAIphD,MAA8Bo4C,EAAQ65B,cAKhD,OADA+D,EAAU9iE,KAAO,EACV2hC,EAAOohC,SAAS,EAAI,EAJzBD,EAAU9iE,KAAO,EACjB,MAIJ,KAAK,EAEH,OADA8iE,EAAU9iE,KAAO,EACV2hC,EAAOghC,KAAK,EAAExN,MAAM,SAAU6N,GACnC,OAAOn+D,QAAQtB,MAAM,0DAA4Dy/D,CAAI,CACvF,CAAC,EACH,KAAK,EACL,IAAK,MACH,OAAOF,EAAUrO,KAAK,CAC1B,CACF,EAAGoO,CAAQ,CACb,CAAC,CAAC,EACF,OAAO,SAAUI,GACf,OAAOL,EAAM5vC,MAAM3mC,KAAM4mC,SAAS,CACpC,CACF,EAAE,CAAC,EA7BDsvC,EAAUviE,KAAO,GACjB,MA6BJ,KAAK,GACH3T,KAAKk1E,aAAaxB,EAAcp+B,EAAQuD,CAAO,EACjD,KAAK,GAEH,OADAq9B,EAAUviE,KAAO,GACV2hC,EAAO4+B,gBAAgB,EAChC,KAAK,GAGH,GAFAgC,EAAU7B,GAAK6B,EAAU3Q,KACzB2Q,EAAU5B,GAAKuB,EACTK,EAAU7B,KAAO6B,EAAU5B,GAAK,CACpC4B,EAAUviE,KAAO,GACjB,KACF,CACA2hC,EAAOi/B,gBAAgBsB,CAAQ,EACjC,KAAK,GACL,IAAK,MACH,OAAOK,EAAU9N,KAAK,CAC1B,CACF,EAAG6N,EAAUj2E,IAAI,CACnB,CAAC,CAAC,EACF,SAAsB62E,EAAKC,EAAKC,GAC9B,OAAO1D,EAAc1sC,MAAM3mC,KAAM4mC,SAAS,CAC5C,EAeJ,EAAG,CACD/+B,IAAK,2BACLlK,MAAO,SAAkC+1E,EAAcp+B,EAAQuD,GAC7D,IAAIm+B,EAASh3E,KACT2yE,EAAe95B,EAAQ85B,aACzBC,EAAkB/5B,EAAQ+5B,gBAC1BC,EAAmBh6B,EAAQg6B,iBAC3BC,EAAoBj6B,EAAQi6B,kBAC5BC,EAAmBl6B,EAAQk6B,iBACzBkE,EAAyF,IAA1E5oE,KAAK0S,IAAIgyD,EAAkB1kE,KAAKwS,IAAIgyD,EAAkBD,CAAe,CAAC,EACrFsE,EAAqB,WACvB,IAAIC,EAAQ9N,EAAgCjG,EAAoB,EAAEwE,KAAK,SAASwP,IAC9E,IAAIC,EAAMC,EAAcz2D,EAAK02D,EAC7B,OAAOnU,EAAoB,EAAEc,KAAK,SAAmBsT,GACnD,OAAU,OAAQA,EAAUtsC,KAAOssC,EAAU7jE,MAC3C,KAAK,EAEH,GADA6jE,EAAUrD,GAAuC,IAAlCT,EAAa0C,MAAM,EAAEP,SAChC2B,EAAUrD,GAAI,CAChBqD,EAAU7jE,KAAO,EACjB,KACF,CAEA,OADA6jE,EAAU7jE,KAAO,EACV2hC,EAAOqgC,UAAU,EAC1B,KAAK,EACH6B,EAAUpD,GAAKoD,EAAUjS,KACzBiS,EAAUrD,GAAsB,KAAjBqD,EAAUpD,GAC3B,KAAK,EACH,GAAKoD,EAAUrD,GAIf,OAAOqD,EAAU9R,OAAO,QAAQ,EAH9B8R,EAAU7jE,KAAO,EACjB,MAGJ,KAAK,EAGH,OAFA6jE,EAAUnD,GAAKX,EAAa0C,MAAM,EAAE30B,SACpC+1B,EAAU7jE,KAAO,GACV2hC,EAAOogC,eAAe,EAC/B,KAAK,GAKH,GAJA8B,EAAUlD,GAAKkD,EAAUjS,KACzB8R,EAAOG,EAAUnD,GAAKmD,EAAUlD,GAChCgD,EAAUjpE,KAAKopE,IAAIJ,CAAI,EACvBL,EAAOv+D,IAAI,UAAUxM,OAAOorE,CAAI,CAAC,EACjBzE,EAAV0E,EAKN,OADAE,EAAU7jE,KAAO,GACVqjE,EAAOU,YAAYpiC,EAAQ,CAAC,EAJjCkiC,EAAU7jE,KAAO,GACjB,MAIJ,KAAK,GACH2hC,EAAO+8B,eAAeqB,EAAa0C,MAAM,EAAE30B,QAAQ,EACnDu1B,EAAOv+D,IAAI,uBAAuB,EAClC++D,EAAU7jE,KAAO,GACjB,MACF,KAAK,GACH,GAAgBg/D,EAAV2E,EAQN,OAFAC,GAFAx2D,EAAMu2D,EAAUvE,IAChBlyD,EAAMiyD,IACoBjyD,EAAME,GAAO,EAAIF,EAC3C22D,EAAU7jE,KAAO,GACVqjE,EAAOU,YAAYpiC,EAAQiiC,EAAalpE,KAAKspE,KAAKN,CAAI,CAAC,EAP5DG,EAAU7jE,KAAO,GACjB,MAOJ,KAAK,GACHqjE,EAAOv+D,IAAI,wBAAwB,EACrC,KAAK,GACL,IAAK,MACH,OAAO++D,EAAUpP,KAAK,CAC1B,CACF,EAAGgP,CAAQ,CACb,CAAC,CAAC,EACF,OAAO,WACL,OAAOD,EAAMxwC,MAAM3mC,KAAM4mC,SAAS,CACpC,CACF,EAAE,EACEgxC,EAAWrhE,YAAY,WACzB,OAAO2gE,EAAM,CACf,EAAGD,CAAY,EACf,MAAO,CACL7pD,OAAQ,WACN,OAAOzW,cAAcihE,CAAQ,CAC/B,CACF,CACF,CAKF,EAAG,CACD/vE,IAAK,MACLlK,MAAO,SAAauoD,GAClB,IAAI2xB,EACJ,OAACA,EAAe73E,KAAK4zE,SAAuDiE,EAAarqD,KAAKxtB,KAAM,uBAAuBiM,OAAOi6C,CAAG,CAAC,CACxI,CACF,EAAG,CACDr+C,IAAK,sBACLlK,MAMA,SAA6B+1E,EAAc75E,GACzC,OAAO,IAAIi8C,QAAQ,SAAUt9C,IACf,SAAS0+E,IACfxD,EAAaoE,aAAej+E,EAC9BrB,EAAQ,EAERk7E,EAAa5pC,iBAAiB,mBAAoBotC,EAAO,CACvDa,KAAM,EACR,CAAC,CAEL,GACM,CACR,CAAC,CACH,CACF,EAAE,EACK/E,CACT,EAAgBnI,EAAiBmN,WAAW,CAAC,EAEzCC,EAAY,IAAIlL,QAChBmL,EAAW,IAAInL,QACfwF,EAAa,GACb57B,EAAsB,WASxB,SAASA,EAAOxgC,GACd,IAAIw9D,EAAQ3zE,KACR64C,EAA6B,EAAnBjS,UAAU1tC,QAA+BiS,SAAjBy7B,UAAU,GAAmBA,UAAU,GAAK,GAgBlF,GAfA2iC,EAAgBvpE,KAAM22C,CAAM,EAExB,GAAiBxgC,aAAmBgiE,IACjB,EAAjBhiE,EAAQjd,QAAcP,OAAO6f,SAAWA,QAAQo3D,MAClDp3D,QAAQo3D,KAAK,6EAA6E,EAE5Fz5D,EAAUA,EAAQ,IAII,aAApB,OAAOhD,UAA+C,UAAnB,OAAOgD,IAC5CA,EAAUhD,SAASC,eAAe+C,CAAO,GApiDzBA,EAwiDAA,EAAd,CAviDCo0D,QAAQp0D,GAAgC,IAArBA,EAAQiiE,UAAkB,aAAcjiE,GAAWA,EAAQkiE,eAAiBliE,EAAQkiE,cAAcC,WAAW,EAwiDnI,MAAM,IAAIrT,UAAU,qDAAqD,EAY3E,GAAyB,YALrB9uD,EAHqB,WAArBA,EAAQoiE,WACNrlE,EAASiD,EAAQw6D,cAAc,QAAQ,GAE/Bz9D,EAKViD,GAAQoiE,UAAyB,CAACxM,EAAW51D,EAAQi6D,aAAa,KAAK,GAAK,EAAE,EAChF,MAAM,IAAIh4E,MAAM,gDAAgD,EAIlE,GAAI6/E,EAAU//C,IAAI/hB,CAAO,EACvB,OAAO8hE,EAAUn/D,IAAI3C,CAAO,EAE9BnW,KAAKw4E,QAAUriE,EAAQkiE,cAAcC,YACrCt4E,KAAKmW,QAAUA,EACfnW,KAAK+vE,OAAS,IACd,IAqDM0I,EArDFC,EAAe,IAAIrJ,EAAQ,SAAU72E,EAAS4hB,GA2BhD,IACMtL,EA3BN6kE,EAAMgF,WAAa,SAAUziE,GAC3B,IAeI0iE,EACAC,EAhBC9M,EAAW71D,EAAM65D,MAAM,GAAK4D,EAAMx9D,QAAQ5C,gBAAkB2C,EAAM2B,SAGlD,MAAjB87D,EAAM5D,SACR4D,EAAM5D,OAAS75D,EAAM65D,SAEnBz1E,EAAOq1E,EAAiBz5D,EAAM5b,IAAI,IACD,UAAfA,EAAK4b,OACG5b,EAAKA,MAA6B,UAArBA,EAAKA,KAAKggE,SAE/CpjD,EAAQ,IAAI9e,MAAMkC,EAAKA,KAAKigE,OAAO,GACjC95D,KAAOnG,EAAKA,KAAKmG,KACvB2Z,EAAOlD,CAAK,IAGV0hE,EAAet+E,GAAuB,UAAfA,EAAK4b,MAC5B2iE,EAAiBv+E,GAAwB,SAAhBA,EAAKggE,OAC9Bse,GAAgBC,GAClBlF,EAAMx9D,QAAQu6D,aAAa,aAAc,MAAM,EAC/Cl4E,EAAQ,GAGVw3E,EAAY2D,EAAOr5E,CAAI,GACzB,EACAq5E,EAAM6E,QAAQ1uC,iBAAiB,UAAW6pC,EAAMgF,UAAU,EAC3B,WAA3BhF,EAAMx9D,QAAQoiE,UAGhB3H,GADU3E,EADNn9D,EAASqhE,GAAoBh6D,EAAS0iC,CAAO,CACrB,EACT/pC,EAAQqH,CAAO,EAAEhb,KAAK,SAAUb,GACjD,IA/9Baw+E,EACjBtJ,EA89BQt8D,EAASm9D,EAAY/1E,EAAM6b,CAAO,EAOtC,OAJAw9D,EAAMx9D,QAAUjD,EAChBygE,EAAMoF,iBAAmB5iE,EAn+BZ2iE,EAo+BC3iE,EAp+BW6iE,EAo+BF9lE,EAn+B3Bs8D,EAAkBF,EAAYx2D,IAAIggE,CAAU,EAChDxJ,EAAY32D,IAAIqgE,EAAYxJ,CAAe,EAC3CF,EAAY7vD,OAAOq5D,CAAU,EAk+BrBb,EAAUt/D,IAAIg7D,EAAMx9D,QAASw9D,CAAK,EAC3Br5E,CACT,CAAC,EAAEwuE,MAAM1uD,CAAM,CAEnB,CAAC,EA4BD,OAzBA89D,EAASv/D,IAAI3Y,KAAM04E,CAAY,EAC/BT,EAAUt/D,IAAI3Y,KAAKmW,QAASnW,IAAI,EAIF,WAA1BA,KAAKmW,QAAQoiE,UACfp/B,EAAYn5C,KAAM,MAAM,EAEtBuyE,EAAW0G,YACTR,EAAiB,WACnB,OAAOlG,EAAW2G,KAAK,CACzB,EACAl5E,KAAKm5E,wBAA0B,YACzB5G,EAAW6G,aACb7J,EAEAG,GAFciE,EAAO,uBAAwB8E,CAAc,EAK7D9E,EAAM0F,MAAM,EAAEl+E,KAAK,WACjBg+C,EAAYw6B,EAAO,mBAAoBpB,EAAW6G,YAAY,CAChE,CAAC,CACH,EACA7G,EAAWx7B,GAAG,mBAAoB/2C,KAAKm5E,uBAAuB,GAEzDn5E,IACT,CAkwCS,IACDs5E,EAiCR,OA3xCAzP,EAAalzB,EAAQ,CAAC,CACpB9uC,IAAK,aACLlK,MAAO,SAAoB8C,GACzB,IAAIs0E,EAAS/0E,KACTspE,EAA0B,EAAnB1iC,UAAU1tC,QAA+BiS,SAAjBy7B,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAO,IAAIyoC,EAAQ,SAAU72E,EAAS4hB,GAIpC,OAAO26D,EAAOsE,MAAM,EAAEl+E,KAAK,WACzBo0E,EAAcwF,EAAQt0E,EAAM,CAC1BjI,QAASA,EACT4hB,OAAQA,CACV,CAAC,EACD++B,EAAY47B,EAAQt0E,EAAM6oE,CAAI,CAChC,CAAC,EAAER,MAAM1uD,CAAM,CACjB,CAAC,CACH,CAQF,EAAG,CACDvS,IAAK,MACLlK,MAAO,SAAa8C,GAClB,IAAIu2E,EAASh3E,KACb,OAAO,IAAIqvE,EAAQ,SAAU72E,EAAS4hB,GAMpC,OALA3Z,EAAOorE,EAAcprE,EAAM,KAAK,EAKzBu2E,EAAOqC,MAAM,EAAEl+E,KAAK,WACzBo0E,EAAcyH,EAAQv2E,EAAM,CAC1BjI,QAASA,EACT4hB,OAAQA,CACV,CAAC,EACD++B,EAAY69B,EAAQv2E,CAAI,CAC1B,CAAC,EAAEqoE,MAAM1uD,CAAM,CACjB,CAAC,CACH,CASF,EAAG,CACDvS,IAAK,MACLlK,MAAO,SAAa8C,EAAM9C,GACxB,IAAI47E,EAASv5E,KACb,OAAO,IAAIqvE,EAAQ,SAAU72E,EAAS4hB,GAEpC,GADA3Z,EAAOorE,EAAcprE,EAAM,KAAK,EAC5B9C,QACF,MAAM,IAAIsnE,UAAU,+BAA+B,EAMrD,OAAOsU,EAAOF,MAAM,EAAEl+E,KAAK,WACzBo0E,EAAcgK,EAAQ94E,EAAM,CAC1BjI,QAASA,EACT4hB,OAAQA,CACV,CAAC,EACD++B,EAAYogC,EAAQ94E,EAAM9C,CAAK,CACjC,CAAC,EAAEmrE,MAAM1uD,CAAM,CACjB,CAAC,CACH,CAWF,EAAG,CACDvS,IAAK,KACLlK,MAAO,SAAY43C,EAAW7O,GAC5B,GAAI,CAAC6O,EACH,MAAM,IAAI0vB,UAAU,8BAA8B,EAEpD,GAAI,CAACv+B,EACH,MAAM,IAAIu+B,UAAU,oCAAoC,EAE1D,GAAwB,YAApB,OAAOv+B,EACT,MAAM,IAAIu+B,UAAU,kCAAkC,EAG/B,IADTwK,EAAazvE,KAAM,SAASiM,OAAOspC,CAAS,CAAC,EAC/Cr8C,QACZ8G,KAAKw5E,WAAW,mBAAoBjkC,CAAS,EAAEuzB,MAAM,YAGpD,EAEHyG,EAAcvvE,KAAM,SAASiM,OAAOspC,CAAS,EAAG7O,CAAQ,CAC1D,CAWF,EAAG,CACD7+B,IAAK,MACLlK,MAAO,SAAa43C,EAAW7O,GAC7B,GAAI,CAAC6O,EACH,MAAM,IAAI0vB,UAAU,8BAA8B,EAEpD,GAAIv+B,GAAgC,YAApB,OAAOA,EACrB,MAAM,IAAIu+B,UAAU,kCAAkC,EAErCyK,EAAe1vE,KAAM,SAASiM,OAAOspC,CAAS,EAAG7O,CAAQ,GAI1E1mC,KAAKw5E,WAAW,sBAAuBjkC,CAAS,EAAEuzB,MAAM,SAAU3wE,IAGjE,CAEL,CAiBF,EAAG,CACD0P,IAAK,YACLlK,MAAO,SAAmBk7C,GACxB,OAAO74C,KAAKw5E,WAAW,YAAa3gC,CAAO,CAC7C,CAgBF,EAAG,CACDhxC,IAAK,QACLlK,MAAO,WACL,IAAI+6E,EAAeR,EAASp/D,IAAI9Y,IAAI,GAAK,IAAIqvE,EAAQ,SAAU72E,EAAS4hB,GACtEA,EAAO,IAAIhiB,MAAM,oCAAoC,CAAC,CACxD,CAAC,EACD,OAAOi3E,EAAQ72E,QAAQkgF,CAAY,CACrC,CAmBF,EAAG,CACD7wE,IAAK,cACLlK,MAAO,SAAqB87E,GAE1B,OAAOz5E,KAAKw5E,WAAW,cAAe,CACpCC,KAAMA,EACNn/E,KAH4B,EAAnBssC,UAAU1tC,QAA+BiS,SAAjBy7B,UAAU,GAAmBA,UAAU,GAAK,EAI/E,CAAC,CACH,CAkBF,EAAG,CACD/+B,IAAK,iBACLlK,MAAO,SAAwB5F,GAC7B,OAAOiI,KAAKw5E,WAAW,iBAAkBzhF,CAAE,CAC7C,CA+BF,EAAG,CACD8P,IAAK,kBACLlK,MAAO,SAAyB+7E,EAAUC,GACxC,GAAKD,EAGL,OAAO15E,KAAKw5E,WAAW,kBAAmB,CACxCE,SAAUA,EACVC,KAAMA,CACR,CAAC,EALC,MAAM,IAAI1U,UAAU,2BAA2B,CAMnD,CAaF,EAAG,CACDp9D,IAAK,mBACLlK,MAAO,WACL,OAAOqC,KAAKw5E,WAAW,kBAAkB,CAC3C,CAaF,EAAG,CACD3xE,IAAK,QACLlK,MAAO,WACL,OAAOqC,KAAKw5E,WAAW,OAAO,CAChC,CAgBF,EAAG,CACD3xE,IAAK,OACLlK,MAAO,WACL,OAAOqC,KAAKw5E,WAAW,MAAM,CAC/B,CAMF,EAAG,CACD3xE,IAAK,oBACLlK,MAAO,WACL,OAAI40E,EAAW0G,UACN1G,EAAWlY,QAAQr6D,KAAKmW,OAAO,EAEjCnW,KAAKw5E,WAAW,mBAAmB,CAC5C,CAMF,EAAG,CACD3xE,IAAK,iBACLlK,MAAO,WACL,OAAI40E,EAAW0G,UACN1G,EAAW2G,KAAK,EAElBl5E,KAAKw5E,WAAW,gBAAgB,CACzC,CAMF,EAAG,CACD3xE,IAAK,gBACLlK,MAAO,WACL,OAAI40E,EAAW0G,UACN5J,EAAQ72E,QAAQ+5E,EAAW6G,YAAY,EAEzCp5E,KAAK8Y,IAAI,YAAY,CAC9B,CAMF,EAAG,CACDjR,IAAK,0BACLlK,MAAO,WACL,OAAOqC,KAAKw5E,WAAW,yBAAyB,CAClD,CAMF,EAAG,CACD3xE,IAAK,uBACLlK,MAAO,WACL,OAAOqC,KAAKw5E,WAAW,sBAAsB,CAC/C,CAMF,EAAG,CACD3xE,IAAK,sBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,kBAAkB,CACpC,CAcF,EAAG,CACDjR,IAAK,uBACLlK,MAAO,WACL,OAAOqC,KAAKw5E,WAAW,sBAAsB,CAC/C,CAaF,EAAG,CACD3xE,IAAK,SACLlK,MAAO,WACL,OAAOqC,KAAKw5E,WAAW,QAAQ,CACjC,CAUF,EAAG,CACD3xE,IAAK,UACLlK,MAAO,WACL,IAAIi8E,EAAS55E,KACb,OAAO,IAAIqvE,EAAQ,SAAU72E,GAmB3B,IAEM0a,EApBNglE,EAASz4D,OAAOm6D,CAAM,EACtB3B,EAAUx4D,OAAOm6D,EAAOzjE,OAAO,EAC3ByjE,EAAOb,mBACTd,EAAUx4D,OAAOm6D,EAAOb,gBAAgB,EACxCa,EAAOb,iBAAiBc,gBAAgB,wBAAwB,GAE9DD,EAAOzjE,SAAuC,WAA5ByjE,EAAOzjE,QAAQoiE,UAAyBqB,EAAOzjE,QAAQ2jE,aAGvEF,EAAOzjE,QAAQ2jE,WAAWA,YAAcF,EAAOb,kBAAoBa,EAAOb,mBAAqBa,EAAOzjE,QAAQ2jE,WAChHF,EAAOzjE,QAAQ2jE,WAAWA,WAAWC,YAAYH,EAAOzjE,QAAQ2jE,UAAU,EAE1EF,EAAOzjE,QAAQ2jE,WAAWC,YAAYH,EAAOzjE,OAAO,GAMpDyjE,EAAOzjE,SAAuC,QAA5ByjE,EAAOzjE,QAAQoiE,UAAsBqB,EAAOzjE,QAAQ2jE,aACxEF,EAAOzjE,QAAQ0jE,gBAAgB,wBAAwB,EACnD3mE,EAAS0mE,EAAOzjE,QAAQw6D,cAAc,QAAQ,IACpCz9D,EAAO4mE,aAGf5mE,EAAO4mE,WAAWA,YAAcF,EAAOb,kBAAoBa,EAAOb,mBAAqB7lE,EAAO4mE,WAChG5mE,EAAO4mE,WAAWA,WAAWC,YAAY7mE,EAAO4mE,UAAU,EAE1D5mE,EAAO4mE,WAAWC,YAAY7mE,CAAM,GAI1C0mE,EAAOpB,QAAQwB,oBAAoB,UAAWJ,EAAOjB,UAAU,EAC3DpG,EAAW0G,WACb1G,EAAWptB,IAAI,mBAAoBy0B,EAAOT,uBAAuB,EAEnE3gF,EAAQ,CACV,CAAC,CACH,CAeF,EAAG,CACDqP,IAAK,eACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,WAAW,CAC7B,CAqBF,EAAG,CACDjR,IAAK,eACLlK,MAAO,SAAsBi5C,GAC3B,OAAO52C,KAAK2Y,IAAI,YAAai+B,CAAS,CACxC,CAaF,EAAG,CACD/uC,IAAK,cACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,UAAU,CAC5B,CAoBF,EAAG,CACDjR,IAAK,iBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,aAAa,CAC/B,CAeF,EAAG,CACDjR,IAAK,iBACLlK,MAAO,SAAwBs8E,GAC7B,OAAOj6E,KAAK2Y,IAAI,cAAeshE,CAAM,CACvC,CAqBF,EAAG,CACDpyE,IAAK,cACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,UAAU,CAC5B,CAaF,EAAG,CACDjR,IAAK,oBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,gBAAgB,CAClC,CAaF,EAAG,CACDjR,IAAK,WACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,OAAO,CACzB,CAaF,EAAG,CACDjR,IAAK,YACLlK,MAAO,WACL,OAAO0xE,EAAQ/pE,IAAI,CAACtF,KAAK8Y,IAAI,UAAU,EAAG9Y,KAAK8Y,IAAI,UAAU,EAAG9Y,KAAK8Y,IAAI,YAAY,EAAG9Y,KAAK8Y,IAAI,WAAW,EAAE,CAChH,CAsBF,EAAG,CACDjR,IAAK,WACLlK,MAAO,SAAkBu8E,GACvB,OAAOl6E,KAAK2Y,IAAI,QAASuhE,CAAK,CAChC,CAuBF,EAAG,CACDryE,IAAK,YACLlK,MAAO,SAAmBw8E,GACxB,IAKIC,EALJ,OAAKvkD,MAAMC,QAAQqkD,CAAM,GAKrBC,EAAc,IAAI/K,EAAQ,SAAU72E,GACtC,OAAOA,EAAQ,IAAI,CACrB,CAAC,EACG6hF,EAAgB,CAACF,EAAO,GAAKn6E,KAAK2Y,IAAI,WAAYwhE,EAAO,EAAE,EAAIC,EAAaD,EAAO,GAAKn6E,KAAK2Y,IAAI,WAAYwhE,EAAO,EAAE,EAAIC,EAAaD,EAAO,GAAKn6E,KAAK2Y,IAAI,aAAcwhE,EAAO,EAAE,EAAIC,EAAaD,EAAO,GAAKn6E,KAAK2Y,IAAI,YAAawhE,EAAO,EAAE,EAAIC,GAChP/K,EAAQ/pE,IAAI+0E,CAAa,GARvB,IAAIhL,EAAQ,SAAU72E,EAAS4hB,GACpC,OAAOA,EAAO,IAAI6qD,UAAU,4BAA4B,CAAC,CAC3D,CAAC,CAOL,CAuBF,EAAG,CACDp9D,IAAK,eACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,WAAW,CAC7B,CAaF,EAAG,CACDjR,IAAK,iBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,aAAa,CAC/B,CAsBF,EAAG,CACDjR,IAAK,iBACLlK,MAAO,SAAwB28E,GAC7B,OAAOt6E,KAAK2Y,IAAI,cAAe2hE,CAAW,CAC5C,CAeF,EAAG,CACDzyE,IAAK,cACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,UAAU,CAC5B,CAcF,EAAG,CACDjR,IAAK,WACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,OAAO,CACzB,CAaF,EAAG,CACDjR,IAAK,UACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,MAAM,CACxB,CAeF,EAAG,CACDjR,IAAK,UACLlK,MAAO,SAAiB48E,GACtB,OAAOv6E,KAAK2Y,IAAI,OAAQ4hE,CAAI,CAC9B,CAeF,EAAG,CACD1yE,IAAK,WACLlK,MAAO,SAAkB68E,GACvB,OAAOx6E,KAAK2Y,IAAI,QAAS6hE,CAAK,CAChC,CAaF,EAAG,CACD3yE,IAAK,WACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,OAAO,CACzB,CAaF,EAAG,CACDjR,IAAK,YACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,QAAQ,CAC1B,CAaF,EAAG,CACDjR,IAAK,kBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,cAAc,CAChC,CAiBF,EAAG,CACDjR,IAAK,kBACLlK,MAAO,SAAyB88E,GAC9B,OAAOz6E,KAAK2Y,IAAI,eAAgB8hE,CAAY,CAC9C,CAaF,EAAG,CACD5yE,IAAK,YACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,QAAQ,CAC1B,CAaF,EAAG,CACDjR,IAAK,eACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,WAAW,CAC7B,CAaF,EAAG,CACDjR,IAAK,aACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,SAAS,CAC3B,CAeF,EAAG,CACDjR,IAAK,aACLlK,MAAO,SAAoB+8E,GACzB,OAAO16E,KAAK2Y,IAAI,UAAW+hE,CAAO,CACpC,CAaF,EAAG,CACD7yE,IAAK,gCACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,4BAA4B,CAC9C,CAaF,EAAG,CACDjR,IAAK,yBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,qBAAqB,CACvC,CAaF,EAAG,CACDjR,IAAK,cACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,UAAU,CAC5B,CAaF,EAAG,CACDjR,IAAK,aACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,SAAS,CAC3B,CAaF,EAAG,CACDjR,IAAK,gBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,YAAY,CAC9B,CAaF,EAAG,CACDjR,IAAK,oBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,gBAAgB,CAClC,CAaF,EAAG,CACDjR,IAAK,aACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,SAAS,CAC3B,CAaF,EAAG,CACDjR,IAAK,gBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,YAAY,CAC9B,CAcF,EAAG,CACDjR,IAAK,gBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,YAAY,CAC9B,CAcF,EAAG,CACDjR,IAAK,iBACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,aAAa,CAC/B,CAcF,EAAG,CACDjR,IAAK,cACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,UAAU,CAC5B,CAgBF,EAAG,CACDjR,IAAK,YACLlK,MAAO,WACL,OAAOqC,KAAK8Y,IAAI,QAAQ,CAC1B,CAoBF,EAAG,CACDjR,IAAK,YACLlK,MAAO,SAAmBg9E,GACxB,OAAO36E,KAAK2Y,IAAI,SAAUgiE,CAAM,CAClC,CAcF,EAAG,CACD9yE,IAAK,eACLlK,OACM27E,EAAgBjQ,EAAgCjG,EAAoB,EAAEwE,KAAK,SAASiM,EAAQH,EAAc76B,GAC5G,IACI+hC,EADAC,EAAS76E,KAEb,OAAOojE,EAAoB,EAAEc,KAAK,SAAkB8P,GAClD,OAAU,OAAQA,EAAS9oC,KAAO8oC,EAASrgE,MACzC,KAAK,EACH,GAAI+/D,EAAc,CAChBM,EAASrgE,KAAO,EAChB,KACF,CACA,MAAM,IAAIsxD,UAAU,mCAAmC,EACzD,KAAK,EAEH,OADA+O,EAASrgE,KAAO,EACT3T,KAAKq5E,MAAM,EACpB,KAAK,EAMH,OALAuB,EAAY,IAAI5H,GAAmBhzE,KAAM0zE,EAAc76B,CAAO,EAC9DM,EAAYn5C,KAAM,2BAA2B,EAC7C46E,EAAU9wC,iBAAiB,aAAc,WACvC,OAAOqP,EAAY0hC,EAAQ,8BAA8B,CAC3D,CAAC,EACM7G,EAAStO,OAAO,SAAUkV,CAAS,EAC5C,KAAK,EACL,IAAK,MACH,OAAO5G,EAAS5L,KAAK,CACzB,CACF,EAAGyL,EAAS7zE,IAAI,CAClB,CAAC,CAAC,EACF,SAAsBw0E,EAAIC,GACxB,OAAO6E,EAAc3yC,MAAM3mC,KAAM4mC,SAAS,CAC5C,EAGJ,EAAE,EACK+P,CACT,EAAE,EACGg1B,IA/7DChG,EAAK,WAUP,IATA,IAAI/sD,EACAkiE,EAAQ,CAAC,CAAC,oBAAqB,iBAAkB,oBAAqB,oBAAqB,mBAAoB,mBAEnH,CAAC,0BAA2B,uBAAwB,0BAA2B,0BAA2B,yBAA0B,yBAEpI,CAAC,0BAA2B,yBAA0B,iCAAkC,yBAA0B,yBAA0B,yBAA0B,CAAC,uBAAwB,sBAAuB,uBAAwB,uBAAwB,sBAAuB,sBAAuB,CAAC,sBAAuB,mBAAoB,sBAAuB,sBAAuB,qBAAsB,sBAChah/E,EAAI,EACJwO,EAAIwwE,EAAM5hF,OACVk1E,EAAM,GACHtyE,EAAIwO,EAAGxO,CAAC,GAEb,IADA8c,EAAMkiE,EAAMh/E,KACD8c,EAAI,KAAMzF,SAAU,CAC7B,IAAKrX,EAAI,EAAGA,EAAI8c,EAAI1f,OAAQ4C,CAAC,GAC3BsyE,EAAI0M,EAAM,GAAGh/E,IAAM8c,EAAI9c,GAEzB,OAAOsyE,CACT,CAEF,MAAO,EACT,EAAE,EACEkE,EAAe,CACjByI,iBAAkBpV,EAAGoV,iBACrBC,gBAAiBrV,EAAGqV,eACtB,EACIzI,EAAa,CACflY,QAAS,SAAiBlkD,GACxB,OAAO,IAAI2/B,QAAQ,SAAUt9C,EAAS4hB,GACV,SAAtB6gE,IACF1I,EAAWptB,IAAI,mBAAoB81B,CAAmB,EACtDziF,EAAQ,CACV,CACA+5E,EAAWx7B,GAAG,mBAAoBkkC,CAAmB,EAJrD,IAMIn9C,GADJ3nB,EAAUA,GAAWhD,SAAS+nE,iBACFvV,EAAGwV,mBAAmB,EAC9Cr9C,aAAyBgY,SAC3BhY,EAAc3iC,KAAK8/E,CAAmB,EAAEnS,MAAM1uD,CAAM,CAExD,CAAC,CACH,EACA8+D,KAAM,WACJ,OAAO,IAAIpjC,QAAQ,SAAUt9C,EAAS4hB,GACpC,IAIIghE,EAKAt9C,EATCy0C,EAAW6G,cAQhB7G,EAAWx7B,GAAG,mBAJVqkC,EAAmB,SAASA,IAC9B7I,EAAWptB,IAAI,mBAAoBi2B,CAAgB,EACnD5iF,EAAQ,CACV,CACkD,GAC9CslC,EAAgB3qB,SAASwyD,EAAG8S,gBAAgB,aACnB3iC,SAC3BhY,EAAc3iC,KAAKigF,CAAgB,EAAEtS,MAAM1uD,CAAM,GAVjD5hB,EAAQ,CAYZ,CAAC,CACH,EACAu+C,GAAI,SAAY7gC,EAAOwwB,GACjB6O,EAAY+8B,EAAap8D,GACzBq/B,GACFpiC,SAAS22B,iBAAiByL,EAAW7O,CAAQ,CAEjD,EACAye,IAAK,SAAajvC,EAAOwwB,GACnB6O,EAAY+8B,EAAap8D,GACzBq/B,GACFpiC,SAAS6mE,oBAAoBzkC,EAAW7O,CAAQ,CAEpD,CACF,EACAnuC,OAAO2qE,iBAAiBqP,EAAY,CAClC6G,aAAc,CACZtgE,IAAK,WACH,OAAOyxD,QAAQp3D,SAASwyD,EAAG0V,kBAAkB,CAC/C,CACF,EACAllE,QAAS,CACP2sD,WAAY,GACZhqD,IAAK,WACH,OAAO3F,SAASwyD,EAAG0V,kBACrB,CACF,EACApC,UAAW,CACTnW,WAAY,GACZhqD,IAAK,WAEH,OAAOyxD,QAAQp3D,SAASwyD,EAAG2V,kBAAkB,CAC/C,CACF,CACF,CAAC,EAu2DD/I,EAt2DOA,EAu2DPd,GAAiB,EAlkEnB,YACE,IAAI5lD,EAA4B,EAAnB+a,UAAU1tC,QAA+BiS,SADxD,IACmFgI,SAE7Exa,OAAO4iF,2BAGX5iF,OAAO4iF,yBAA2B,GAuBlC5iF,OAAOmxC,iBAAiB,UAtBR,SAAmB5zB,GACjC,GAAK61D,EAAW71D,EAAM65D,MAAM,GAKvB75D,EAAM5b,MAA6B,gBAArB4b,EAAM5b,KAAK4b,MAI9B,IADA,IAAI47D,EAAUjmD,EAAO+d,iBAAiB,QAAQ,EACrC9tC,EAAI,EAAGA,EAAIg2E,EAAQ54E,OAAQ4C,CAAC,GACnC,GAAIg2E,EAAQh2E,GAAGyX,gBAAkB2C,EAAM2B,OAAvC,CAMYi6D,EAAQh2E,GAAG0/E,cACjBtiC,MAAMuiC,cAAgB,GAAGxvE,OAAOiK,EAAM5b,KAAKA,KAAK,GAAGohF,OAAQ,IAAI,EACrE,KANA,CAQJ,CAC4C,EAC9C,EAqiEe,EA7hEf,YACE,IAAI7vD,EAA4B,EAAnB+a,UAAU1tC,QAA+BiS,SADxD,IACmFgI,SAE7Exa,OAAOgjF,2BAGXhjF,OAAOgjF,yBAA2B,GAqBlChjF,OAAOmxC,iBAAiB,UApBR,SAAmB5zB,GACjC,GAAK61D,EAAW71D,EAAM65D,MAAM,EAA5B,CAGA,IAAIz1E,EAAOq1E,EAAiBz5D,EAAM5b,IAAI,EACtC,GAAKA,GAAuB,UAAfA,EAAK4b,MAIlB,IADA,IAAI47D,EAAUjmD,EAAO+d,iBAAiB,QAAQ,EACrC9tC,EAAI,EAAGA,EAAIg2E,EAAQ54E,OAAQ4C,CAAC,GAAI,CACvC,IAAIoX,EAAS4+D,EAAQh2E,GAGjBk2E,EAAuB9+D,EAAOK,gBAAkB2C,EAAM2B,OACtDm0D,EAAa94D,EAAOyd,GAAG,GAAKqhD,GACjB,IAAIr7B,EAAOzjC,CAAM,EACvBsmE,WAAW,sBAAuB7gF,OAAOK,SAASwmB,IAAI,CAEjE,CAfA,CAgBF,CAC4C,EAC9C,EAkgE0B,EACxBoyD,GAAkB,GAGL,M,4RCr9Gfn5E,EAAOC,QAAU,SAAUoC,EAAK+9C,GAS9B,MAAmB,UAAf,OAFJ/9C,EAAMA,GAAOA,EAAI8gF,WAAa9gF,EAAI+gF,QAAU/gF,MANvC+9C,KAEO,IAUA5/C,OAEV6B,GAAO+9C,EAAQ5/C,MAGb4/C,EAAQijC,kBAAmB,oBAAoBr9B,KAAK3jD,CAAG,EAClD,IAAKmR,OAAOnR,EAAK,GAAI,EAGvBA,CACT,C,2DCzBA;;;;;;;;;;;;;GAaA;CAAA,SAAY8wE,EAAQlzD,GAEnB,aAE6D,UAA1B,OAAOjgB,GAAOC,QAShDD,GAAOC,QAAUkzE,EAAOz4D,SACvBuF,EAASkzD,EAAQ,EAAK,EACtB,SAAUxZ,GACT,GAAMA,EAAEj/C,SAGR,OAAOuF,EAAS05C,CAAE,EAFjB,MAAM,IAAIh6D,MAAO,0CAA2C,CAG9D,EAEDsgB,EAASkzD,CAAO,CAIhB,EAAqB,aAAlB,OAAOjzE,OAAyBA,OAASqH,KAAM,SAAUrH,EAAQojF,GAMtE,aA+BiB,SAAb39B,EAAkC/0B,GASpC,MAAsB,YAAf,OAAOA,GAA8C,UAAxB,OAAOA,EAAI+uD,UAC1B,YAApB,OAAO/uD,EAAIvG,IACb,CAGc,SAAXk5D,EAA8B3yD,GAChC,OAAc,MAAPA,GAAeA,IAAQA,EAAI1wB,MACnC,CA7CD,IAAI2wB,EAAM,GAENy8C,EAAWxtE,OAAOytE,eAElBpuD,EAAQ0R,EAAI1R,MAEZqkE,EAAO3yD,EAAI2yD,KAAO,SAAUj0B,GAC/B,OAAO1+B,EAAI2yD,KAAKzuD,KAAMw6B,CAAM,CAC7B,EAAI,SAAUA,GACb,OAAO1+B,EAAIrd,OAAO06B,MAAO,GAAIqhB,CAAM,CACpC,EAGI3mD,EAAOioB,EAAIjoB,KAEX+F,EAAUkiB,EAAIliB,QAEd80E,EAAa,GAEb/uE,EAAW+uE,EAAW/uE,SAEtBk2D,EAAS6Y,EAAW5Y,eAEpB6Y,EAAa9Y,EAAOl2D,SAEpBivE,EAAuBD,EAAW3uD,KAAMj1B,MAAO,EAE/C8jF,EAAU,GAqBVlpE,EAAWxa,EAAOwa,SAIjBmpE,EAA4B,CAC/B5vD,KAAM,GACNiE,IAAK,GACL4rD,MAAO,GACPC,SAAU,EACX,EAEA,SAASC,EAASpkF,EAAMu6D,EAAM5rB,GAG7B,IAAIlrC,EAAG8c,EACN8jE,GAHD11C,EAAMA,GAAO7zB,GAGC8c,cAAe,QAAS,EAGtC,GADAysD,EAAOzhC,KAAO5iD,EACTu6D,EACJ,IAAM92D,KAAKwgF,GAYV1jE,EAAMg6C,EAAM92D,IAAO82D,EAAKwd,cAAgBxd,EAAKwd,aAAct0E,CAAE,IAE5D4gF,EAAOhM,aAAc50E,EAAG8c,CAAI,EAI/BouB,EAAIG,KAAKqpC,YAAakM,CAAO,EAAE5C,WAAWC,YAAa2C,CAAO,CAC/D,CAGD,SAASC,EAAQtzD,GAChB,OAAY,MAAPA,EACGA,EAAM,GAIQ,UAAf,OAAOA,GAAmC,YAAf,OAAOA,EACxC6yD,EAAY/uE,EAASqgB,KAAMnE,CAAI,IAAO,SACtC,OAAOA,CACT,CAOA,IAIC8uD,EAAS,SAAUyE,EAAUjgB,GAI5B,OAAO,IAAIwb,EAAOxS,GAAG72C,KAAM8tD,EAAUjgB,CAAQ,CAC9C,EAyVD,SAASkgB,EAAaxzD,GAMrB,IAAInwB,EAAS,CAAC,CAACmwB,GAAO,WAAYA,GAAOA,EAAInwB,OAC5CwzB,EAAOiwD,EAAQtzD,CAAI,EAEpB,MAAK+0B,GAAY/0B,CAAI,GAAK2yD,GAAU3yD,CAAI,IAIxB,UAATqD,GAA+B,IAAXxzB,GACR,UAAlB,OAAOA,GAAgC,EAATA,GAAgBA,EAAS,KAAOmwB,EAChE,CAtWA8uD,EAAOxS,GAAKwS,EAAO5qD,UAAY,CAG9BuvD,OAbU,QAeVnV,YAAawQ,EAGbj/E,OAAQ,EAER6jF,QAAS,WACR,OAAOnlE,EAAM4V,KAAMxtB,IAAK,CACzB,EAIA8Y,IAAK,SAAU6pC,GAGd,OAAY,MAAPA,EACG/qC,EAAM4V,KAAMxtB,IAAK,EAIlB2iD,EAAM,EAAI3iD,KAAM2iD,EAAM3iD,KAAK9G,QAAW8G,KAAM2iD,EACpD,EAIAq6B,UAAW,SAAU1wB,GAGhB8hB,EAAM+J,EAAO8E,MAAOj9E,KAAK2nE,YAAY,EAAGrb,CAAM,EAMlD,OAHA8hB,EAAI8O,WAAal9E,KAGVouE,CACR,EAGA+O,KAAM,SAAUz2C,GACf,OAAOyxC,EAAOgF,KAAMn9E,KAAM0mC,CAAS,CACpC,EAEA9uC,IAAK,SAAU8uC,GACd,OAAO1mC,KAAKg9E,UAAW7E,EAAOvgF,IAAKoI,KAAM,SAAUy4C,EAAM38C,GACxD,OAAO4qC,EAASlZ,KAAMirB,EAAM38C,EAAG28C,CAAK,CACrC,CAAE,CAAE,CACL,EAEA7gC,MAAO,WACN,OAAO5X,KAAKg9E,UAAWplE,EAAM+uB,MAAO3mC,KAAM4mC,SAAU,CAAE,CACvD,EAEA0mC,MAAO,WACN,OAAOttE,KAAKo9E,GAAI,CAAE,CACnB,EAEAlc,KAAM,WACL,OAAOlhE,KAAKo9E,GAAI,CAAC,CAAE,CACpB,EAEAC,KAAM,WACL,OAAOr9E,KAAKg9E,UAAW7E,EAAOmF,KAAMt9E,KAAM,SAAUu9E,EAAOzhF,GAC1D,OAASA,EAAI,GAAM,CACpB,CAAE,CAAE,CACL,EAEA0hF,IAAK,WACJ,OAAOx9E,KAAKg9E,UAAW7E,EAAOmF,KAAMt9E,KAAM,SAAUu9E,EAAOzhF,GAC1D,OAAOA,EAAI,CACZ,CAAE,CAAE,CACL,EAEAshF,GAAI,SAAUthF,GACb,IAAI4sD,EAAM1oD,KAAK9G,OACd2T,EAAI,CAAC/Q,GAAMA,EAAI,EAAI4sD,EAAM,GAC1B,OAAO1oD,KAAKg9E,UAAgB,GAALnwE,GAAUA,EAAI67C,EAAM,CAAE1oD,KAAM6M,IAAQ,EAAG,CAC/D,EAEA4b,IAAK,WACJ,OAAOzoB,KAAKk9E,YAAcl9E,KAAK2nE,YAAY,CAC5C,EAIAtmE,KAAMA,EACNC,KAAMgoB,EAAIhoB,KACVspB,OAAQtB,EAAIsB,MACb,EAEAutD,EAAO39D,OAAS29D,EAAOxS,GAAGnrD,OAAS,WAClC,IAAIq+B,EAASp4C,EAAWhG,EAAMgjF,EAAaC,EAC1ChzD,EAASkc,UAAW,IAAO,GAC3B9qC,EAAI,EACJ5C,EAAS0tC,UAAU1tC,OACnBykF,EAAO,GAsBR,IAnBuB,WAAlB,OAAOjzD,IACXizD,EAAOjzD,EAGPA,EAASkc,UAAW9qC,IAAO,GAC3BA,CAAC,IAIqB,UAAlB,OAAO4uB,GAAwB0zB,EAAY1zB,CAAO,IACtDA,EAAS,IAIL5uB,IAAM5C,IACVwxB,EAAS1qB,KACTlE,CAAC,IAGMA,EAAI5C,EAAQ4C,CAAC,GAGpB,GAAqC,OAA9B+8C,EAAUjS,UAAW9qC,IAG3B,IAAM2E,KAAQo4C,EACbp+C,EAAOo+C,EAASp4C,GAIF,cAATA,GAAwBiqB,IAAWjwB,IAKnCkjF,GAAQljF,IAAU09E,EAAOyF,cAAenjF,CAAK,IAC/CgjF,EAAc5nD,MAAMC,QAASr7B,CAAK,KACpCk2B,EAAMjG,EAAQjqB,GAIbi9E,EADID,GAAe,CAAC5nD,MAAMC,QAASnF,CAAI,EAC/B,GACI8sD,GAAgBtF,EAAOyF,cAAejtD,CAAI,EAG9CA,EAFA,GAIT8sD,EAAc,GAGd/yD,EAAQjqB,GAAS03E,EAAO39D,OAAQmjE,EAAMD,EAAOjjF,CAAK,GAG9B0Q,SAAT1Q,IACXiwB,EAAQjqB,GAAShG,IAOrB,OAAOiwB,CACR,EAEAytD,EAAO39D,OAAQ,CAGdqjE,QAAS,UAlLC,QAkLsBxvE,KAAK0c,OAAO,GAAI1X,QAAS,MAAO,EAAG,EAGnEyqE,QAAS,GAET5mE,MAAO,SAAUgvC,GAChB,MAAM,IAAI9tD,MAAO8tD,CAAI,CACtB,EAEArf,KAAM,aAEN+2C,cAAe,SAAUv0D,GAKxB,QAAMA,IAAgC,oBAAzBlc,EAASqgB,KAAMnE,CAAI,IAIhC00D,EAAQhY,EAAU18C,CAAI,KASC,YAAhB,OADP20D,EAAO3a,EAAO71C,KAAMuwD,EAAO,aAAc,GAAKA,EAAMpW,cACfwU,EAAW3uD,KAAMwwD,CAAK,IAAM5B,GAClE,EAEA6B,cAAe,SAAU50D,GAGxB,IAFA,IAAI5oB,KAEU4oB,EACb,MAAO,GAER,MAAO,EACR,EAIA60D,WAAY,SAAU7lF,EAAMwgD,EAAS7R,GACpCy1C,EAASpkF,EAAM,CAAEkkF,MAAO1jC,GAAWA,EAAQ0jC,KAAM,EAAGv1C,CAAI,CACzD,EAEAm2C,KAAM,SAAU9zD,EAAKqd,GACpB,IAAIxtC,EAAQ4C,EAAI,EAEhB,GAAK+gF,EAAaxzD,CAAI,EAErB,IADAnwB,EAASmwB,EAAInwB,OACL4C,EAAI5C,GACqC,KAA3CwtC,EAASlZ,KAAMnE,EAAKvtB,GAAKA,EAAGutB,EAAKvtB,EAAI,EADvBA,CAAC,SAMrB,IAAMA,KAAKutB,EACV,GAAgD,KAA3Cqd,EAASlZ,KAAMnE,EAAKvtB,GAAKA,EAAGutB,EAAKvtB,EAAI,EACzC,MAKH,OAAOutB,CACR,EAGA80D,UAAW,SAAU70D,EAAKzwB,GACrBu1E,EAAMv1E,GAAW,GAarB,OAXY,MAAPywB,IACCuzD,EAAatkF,OAAQ+wB,CAAI,CAAE,EAC/B6uD,EAAO8E,MAAO7O,EACE,UAAf,OAAO9kD,EACN,CAAEA,GAAQA,CACZ,EAEAjoB,EAAKmsB,KAAM4gD,EAAK9kD,CAAI,GAIf8kD,CACR,EAEAgQ,QAAS,SAAU3lC,EAAMnvB,EAAKxtB,GAC7B,OAAc,MAAPwtB,EAAc,CAAC,EAAIliB,EAAQomB,KAAMlE,EAAKmvB,EAAM38C,CAAE,CACtD,EAIAmhF,MAAO,SAAU3P,EAAO+Q,GAKvB,IAJA,IAAI31B,EAAM,CAAC21B,EAAOnlF,OACjB2T,EAAI,EACJ/Q,EAAIwxE,EAAMp0E,OAEH2T,EAAI67C,EAAK77C,CAAC,GACjBygE,EAAOxxE,CAAC,IAAOuiF,EAAQxxE,GAKxB,OAFAygE,EAAMp0E,OAAS4C,EAERwxE,CACR,EAEAgQ,KAAM,SAAUhxB,EAAO5lB,EAAU43C,GAShC,IARA,IACCpM,EAAU,GACVp2E,EAAI,EACJ5C,EAASozD,EAAMpzD,OACfqlF,EAAiB,CAACD,EAIXxiF,EAAI5C,EAAQ4C,CAAC,GACF,CAAC4qC,EAAU4lB,EAAOxwD,GAAKA,CAAE,GAClByiF,GACxBrM,EAAQ7wE,KAAMirD,EAAOxwD,EAAI,EAI3B,OAAOo2E,CACR,EAGAt6E,IAAK,SAAU00D,EAAO5lB,EAAUg+B,GAC/B,IAAIxrE,EAAQyE,EACX7B,EAAI,EACJsyE,EAAM,GAGP,GAAKyO,EAAavwB,CAAM,EAEvB,IADApzD,EAASozD,EAAMpzD,OACP4C,EAAI5C,EAAQ4C,CAAC,GAGN,OAFd6B,EAAQ+oC,EAAU4lB,EAAOxwD,GAAKA,EAAG4oE,CAAI,IAGpC0J,EAAI/sE,KAAM1D,CAAM,OAMlB,IAAM7B,KAAKwwD,EAGI,OAFd3uD,EAAQ+oC,EAAU4lB,EAAOxwD,GAAKA,EAAG4oE,CAAI,IAGpC0J,EAAI/sE,KAAM1D,CAAM,EAMnB,OAAOs+E,EAAM7N,CAAI,CAClB,EAGAoQ,KAAM,EAINnC,QAASA,CACV,CAAE,EAEqB,YAAlB,OAAO7Y,SACX2U,EAAOxS,GAAInC,OAAOE,UAAap6C,EAAKk6C,OAAOE,WAI5CyU,EAAOgF,KAAM,uEAAuE/vE,MAAO,GAAI,EAC9F,SAAU2jE,EAAItwE,GACby7E,EAAY,WAAaz7E,EAAO,KAAQA,EAAKyR,YAAY,CAC1D,CAAE,EA4/EO,SAANusE,EAAgBhmC,EAAMgmC,EAAKC,GAI9B,IAHA,IAAIC,EAAU,GACbC,EAAqBzzE,SAAVuzE,GAEFjmC,EAAOA,EAAMgmC,KAA6B,IAAlBhmC,EAAK2/B,UACtC,GAAuB,IAAlB3/B,EAAK2/B,SAAiB,CAC1B,GAAKwG,GAAYzG,EAAQ1/B,CAAK,EAAEvW,GAAIw8C,CAAM,EACzC,MAEDC,EAAQt9E,KAAMo3C,CAAK,CACpB,CAED,OAAOkmC,CACR,CAGe,SAAXE,EAAqBp8B,EAAGhK,GAG3B,IAFA,IAAIkmC,EAAU,GAENl8B,EAAGA,EAAIA,EAAEq8B,YACI,IAAfr8B,EAAE21B,UAAkB31B,IAAMhK,GAC9BkmC,EAAQt9E,KAAMohD,CAAE,EAIlB,OAAOk8B,CACR,CApgFA,IAAII;;;;;;;;;;GAWJ;SAAYpmF,GA6IC,SAAZqmF,EAAsBC,EAAQC,GAG7B,OAFIC,EAAO,KAAOF,EAAOrnE,MAAO,CAAE,EAAI,MAE/BsnE,IASNC,EAAO,EACNl6E,OAAOwvD,aAAqB,MAAP0qB,CAAe,EACpCl6E,OAAOwvD,aAAc0qB,GAAQ,GAAK,MAAe,KAAPA,EAAe,KAAO,EACnE,CAKa,SAAbC,EAAuBC,EAAIC,GAC1B,OAAKA,EAGQ,OAAPD,EACG,IAIDA,EAAGznE,MAAO,EAAG,CAAC,CAAE,EAAI,KAC1BynE,EAAGjmE,WAAYimE,EAAGnmF,OAAS,CAAE,EAAEiU,SAAU,EAAG,EAAI,IAI3C,KAAOkyE,CACf,CAMgB,SAAhBE,IACCC,EAAY,CACb,CAvLD,IAAI1jF,EACHugF,EACAoD,EACAC,EACAC,EACAC,EACAC,EACAhuC,EACAiuC,EACAC,EACAC,EAGAR,EACArsE,EACA8sE,EACAC,EACAC,EACAC,EACAlO,EACAmO,EAGAxC,EAAU,UAAW,CAAI,IAAIxiF,KAC7BilF,EAAe3nF,EAAOwa,SACtBotE,EAAU,EACVr5D,EAAO,EACPs5D,EAAaC,EAAY,EACzBC,EAAaD,EAAY,EACzBE,EAAgBF,EAAY,EAC5BG,EAAyBH,EAAY,EACrCI,EAAY,SAAU3hF,EAAG26B,GAIxB,OAHK36B,IAAM26B,IACVmmD,EAAe,IAET,CACR,EAGA3c,EAAS,GAAOC,eAChBh6C,EAAM,GACNm+B,EAAMn+B,EAAIm+B,IACVq5B,EAAax3D,EAAIjoB,KACjBA,EAAOioB,EAAIjoB,KACXuW,EAAQ0R,EAAI1R,MAIZxQ,EAAU,SAAU25E,EAAMtoC,GAGzB,IAFA,IAAI38C,EAAI,EACP4sD,EAAMq4B,EAAK7nF,OACJ4C,EAAI4sD,EAAK5sD,CAAC,GACjB,GAAKilF,EAAMjlF,KAAQ28C,EAClB,OAAO38C,EAGT,MAAO,CAAC,CACT,EAEAklF,EAAW,6HAMXC,EAAa,sBAGbC,EAAa,0BAA4BD,EACxC,0CAGDxpE,EAAa,MAAQwpE,EAAa,KAAOC,EAAa,OAASD,EAG9D,gBAAkBA,EAIlB,2DAA6DC,EAAa,OAC1ED,EAAa,OAEdE,EAAU,KAAOD,EAOhB,wFAA6BzpE,EAI7B,eAGD2pE,GAAc,IAAItoF,OAAQmoF,EAAa,IAAK,GAAI,EAChDI,EAAQ,IAAIvoF,OAAQ,IAAMmoF,EAAa,8BACtCA,EAAa,KAAM,GAAI,EAExBK,GAAS,IAAIxoF,OAAQ,IAAMmoF,EAAa,KAAOA,EAAa,GAAI,EAChEM,GAAe,IAAIzoF,OAAQ,IAAMmoF,EAAa,WAAaA,EAAa,IAAMA,EAC7E,GAAI,EACLO,GAAW,IAAI1oF,OAAQmoF,EAAa,IAAK,EAEzCQ,GAAU,IAAI3oF,OAAQqoF,CAAQ,EAC9BO,GAAc,IAAI5oF,OAAQ,IAAMooF,EAAa,GAAI,EAEjDS,EAAY,CACX,GAAM,IAAI7oF,OAAQ,MAAQooF,EAAa,GAAI,EAC3C,MAAS,IAAIpoF,OAAQ,QAAUooF,EAAa,GAAI,EAChD,IAAO,IAAIpoF,OAAQ,KAAOooF,EAAa,OAAQ,EAC/C,KAAQ,IAAIpoF,OAAQ,IAAM2e,CAAW,EACrC,OAAU,IAAI3e,OAAQ,IAAMqoF,CAAQ,EACpC,MAAS,IAAIroF,OAAQ,yDACpBmoF,EAAa,+BAAiCA,EAAa,cAC3DA,EAAa,aAAeA,EAAa,SAAU,GAAI,EACxD,KAAQ,IAAInoF,OAAQ,OAASkoF,EAAW,KAAM,GAAI,EAIlD,aAAgB,IAAIloF,OAAQ,IAAMmoF,EACjC,mDAAqDA,EACrD,mBAAqBA,EAAa,mBAAoB,GAAI,CAC5D,EAEAW,GAAQ,SACRC,GAAU,sCACVC,GAAU,SAEVC,EAAU,yBAGVC,GAAa,mCAEbC,GAAW,OAIXC,EAAY,IAAIppF,OAAQ,uBAAyBmoF,EAAa,uBAAwB,GAAI,EAoB1FkB,GAAa,sDA0BbC,GAAqBC,GACpB,SAAU5pC,GACT,MAAyB,KAAlBA,EAAK2E,UAAqD,aAAhC3E,EAAK8/B,SAASrmE,YAAY,CAC5D,EACA,CAAEusE,IAAK,aAAc9qE,KAAM,QAAS,CACrC,EAGD,IACCtS,EAAKslC,MACFrd,EAAM1R,EAAM4V,KAAM8yD,EAAagC,UAAW,EAC5ChC,EAAagC,UACd,EAKAh5D,EAAKg3D,EAAagC,WAAWppF,QAASk/E,QAoBvC,CAnBE,MAAQjgF,GACTkJ,EAAO,CAAEslC,MAAOrd,EAAIpwB,OAGnB,SAAUwxB,EAAQ63D,GACjBzB,EAAWn6C,MAAOjc,EAAQ9S,EAAM4V,KAAM+0D,CAAI,CAAE,CAC7C,EAIA,SAAU73D,EAAQ63D,GAKjB,IAJA,IAAI11E,EAAI6d,EAAOxxB,OACd4C,EAAI,EAGK4uB,EAAQ7d,CAAC,IAAO01E,EAAKzmF,CAAC,MAChC4uB,EAAOxxB,OAAS2T,EAAI,CACrB,CACD,CACD,CAEA,SAASkyE,EAAQnC,EAAUjgB,EAAS9jE,EAAS2pF,GAC5C,IAAIz4B,EAAGjuD,EAAS2mF,EAAK56B,EAAO9c,EAAQ23C,EACnCC,EAAahmB,GAAWA,EAAQ0b,cAGhCD,EAAWzb,EAAUA,EAAQyb,SAAW,EAKzC,GAHAv/E,EAAUA,GAAW,GAGI,UAApB,OAAO+jF,GAAyB,CAACA,GACxB,IAAbxE,GAA+B,IAAbA,GAA+B,KAAbA,EAEpC,OAAOv/E,EAIR,GAAK,CAAC2pF,IACLhD,EAAa7iB,CAAQ,EACrBA,EAAUA,GAAWxpD,EAEhB+sE,GAAiB,CAIrB,GAAkB,KAAb9H,IAAqBvwB,EAAQm6B,GAAWjpF,KAAM6jF,CAAS,GAG3D,GAAO7yB,EAAIlC,EAAO,IAGjB,GAAkB,IAAbuwB,EAAiB,CACrB,GAAK,EAAE3/B,EAAOkkB,EAAQvpD,eAAgB22C,CAAE,GAUvC,OAAOlxD,EALP,GAAK4/C,EAAK1gD,KAAOgyD,EAEhB,OADAlxD,EAAQwI,KAAMo3C,CAAK,EACZ5/C,CAOV,MAKC,GAAK8pF,IAAgBlqC,EAAOkqC,EAAWvvE,eAAgB22C,CAAE,IACxDs2B,EAAU1jB,EAASlkB,CAAK,GACxBA,EAAK1gD,KAAOgyD,EAGZ,OADAlxD,EAAQwI,KAAMo3C,CAAK,EACZ5/C,CAET,KAGM,IAAKgvD,EAAO,GAElB,OADAxmD,EAAKslC,MAAO9tC,EAAS8jE,EAAQt1B,qBAAsBu1C,CAAS,CAAE,EACvD/jF,EAGD,IAAOkxD,EAAIlC,EAAO,KAASw0B,EAAQuG,wBACzCjmB,EAAQimB,uBAGR,OADAvhF,EAAKslC,MAAO9tC,EAAS8jE,EAAQimB,uBAAwB74B,CAAE,CAAE,EAClDlxD,CACR,CAID,GAAKwjF,EAAQwG,KACZ,CAACjC,EAAwBhE,EAAW,OAClC,CAACuD,GAAa,CAACA,EAAU1hC,KAAMm+B,CAAS,KAI3B,IAAbxE,GAAqD,WAAnCzb,EAAQ4b,SAASrmE,YAAY,GAAmB,CAYpE,GAVAwwE,EAAc9F,EACd+F,EAAahmB,EASK,IAAbyb,IACFoJ,GAAS/iC,KAAMm+B,CAAS,GAAK2E,GAAa9iC,KAAMm+B,CAAS,GAAM,CAqBjE,KAlBA+F,EAAaV,GAASxjC,KAAMm+B,CAAS,GAAKkG,GAAanmB,EAAQmd,UAAW,GACzEnd,KAImBA,GAAY0f,EAAQ5kC,SAGhCgrC,EAAM9lB,EAAQyT,aAAc,IAAK,GACvCqS,EAAMA,EAAIpvE,QAAS8uE,GAAY/C,CAAW,EAE1CziB,EAAQ+T,aAAc,KAAQ+R,EAAM5E,CAAU,GAMhD/hF,GADAivC,EAAS60C,EAAUhD,CAAS,GACjB1jF,OACH4C,CAAC,IACRivC,EAAQjvC,IAAQ2mF,EAAM,IAAMA,EAAM,UAAa,IAC9CM,EAAYh4C,EAAQjvC,EAAI,EAE1B4mF,EAAc33C,EAAOn/B,KAAM,GAAI,CAChC,CAEA,IASC,GAAKywE,EAAQ2G,qBAGZ,CAACC,IAAIC,SAAU,YAAcR,EAAc,GAAI,EAO/C,MAAM,IAAItqF,MAMX,OAHAiJ,EAAKslC,MAAO9tC,EACX8pF,EAAW/4C,iBAAkB84C,CAAY,CAC1C,EACO7pF,CAOR,CANE,MAAQsqF,GACTvC,EAAwBhE,EAAU,EAAK,CACxC,CAAE,QACI6F,IAAQ5E,GACZlhB,EAAQkd,gBAAiB,IAAK,CAEhC,CACD,CACD,CAID,OAAOhoC,EAAQ+qC,EAASvpE,QAASguE,EAAO,IAAK,EAAG1kB,EAAS9jE,EAAS2pF,CAAK,CACxE,CAQA,SAAS/B,IACR,IAAInoF,EAAO,GAEX,SAAS8qF,EAAOv7E,EAAKlK,GAQpB,OALKrF,EAAK+I,KAAMwG,EAAM,GAAI,EAAI43E,EAAK4D,aAGlC,OAAOD,EAAO9qF,EAAK6R,MAAM,GAEjBi5E,EAAOv7E,EAAM,KAAQlK,CAC/B,CACA,OAAOylF,CACR,CAMA,SAASE,EAAc3d,GAEtB,OADAA,EAAIkY,GAAY,GACTlY,CACR,CAMA,SAAS4d,EAAQ5d,GAChB,IAAI3iB,EAAK7vC,EAAS8c,cAAe,UAAW,EAE5C,IACC,MAAO,CAAC,CAAC01C,EAAI3iB,CAAG,CAYjB,CAXE,MAAQ7qD,GACT,MAAO,EACR,CAAE,QAGI6qD,EAAG82B,YACP92B,EAAG82B,WAAWC,YAAa/2B,CAAG,CAKhC,CACD,CAOA,SAASwgC,GAAW5rC,EAAO6rC,GAI1B,IAHA,IAAIn6D,EAAMsuB,EAAMxqC,MAAO,GAAI,EAC1BtR,EAAIwtB,EAAIpwB,OAED4C,CAAC,IACR2jF,EAAKiE,WAAYp6D,EAAKxtB,IAAQ2nF,CAEhC,CAQA,SAASE,GAAczkF,EAAG26B,GACzB,IAAI+pD,EAAM/pD,GAAK36B,EACdm4E,EAAOuM,GAAsB,IAAf1kF,EAAEk5E,UAAiC,IAAfv+C,EAAEu+C,UACnCl5E,EAAE2kF,YAAchqD,EAAEgqD,YAGpB,GAAKxM,EACJ,OAAOA,EAIR,GAAKuM,EACJ,KAAUA,EAAMA,EAAI9E,aACnB,GAAK8E,IAAQ/pD,EACZ,MAAO,CAAC,EAKX,OAAO36B,EAAI,EAAI,CAAC,CACjB,CA4BA,SAAS4kF,GAAsB1mC,GAG9B,OAAO,SAAU3E,GAKhB,MAAK,SAAUA,EASTA,EAAKqhC,YAAgC,KAAlBrhC,EAAK2E,SAGvB,UAAW3E,EACV,UAAWA,EAAKqhC,WACbrhC,EAAKqhC,WAAW18B,WAAaA,EAE7B3E,EAAK2E,WAAaA,EAMpB3E,EAAK6D,aAAec,GAI1B3E,EAAK6D,aAAe,CAACc,GACrBglC,GAAoB3pC,CAAK,IAAM2E,EAG1B3E,EAAK2E,WAAaA,EAKd,UAAW3E,GACfA,EAAK2E,WAAaA,CAK3B,CACD,CAMA,SAAS2mC,EAAwBpe,GAChC,OAAO2d,EAAc,SAAUU,GAE9B,OADAA,EAAW,CAACA,EACLV,EAAc,SAAUd,EAAMtQ,GAMpC,IALA,IAAIrlE,EACHo3E,EAAete,EAAI,GAAI6c,EAAKtpF,OAAQ8qF,CAAS,EAC7CloF,EAAImoF,EAAa/qF,OAGV4C,CAAC,IACH0mF,EAAQ31E,EAAIo3E,EAAcnoF,MAC9B0mF,EAAM31E,GAAM,EAAGqlE,EAASrlE,GAAM21E,EAAM31E,IAGvC,CAAE,CACH,CAAE,CACH,CAOA,SAASi2E,GAAanmB,GACrB,OAAOA,GAAmD,SAAjCA,EAAQt1B,sBAAwCs1B,CAC1E,CA6tCA,IAAM7gE,KA1tCNugF,EAAU0C,EAAO1C,QAAU,GAO3BsD,EAAQZ,EAAOY,MAAQ,SAAUlnC,GAChC,IAAIyrC,EAAYzrC,GAAQA,EAAK0rC,aAC5BlE,EAAUxnC,IAAUA,EAAK4/B,eAAiB5/B,GAAOyiC,gBAKlD,MAAO,CAAC0G,GAAMnjC,KAAMylC,GAAajE,GAAWA,EAAQ1H,UAAY,MAAO,CACxE,EAOAiH,EAAcT,EAAOS,YAAc,SAAU5sB,GAC5C,IACC5rB,EAAM4rB,EAAOA,EAAKylB,eAAiBzlB,EAAO0tB,EAmgB3C,OA5fKt5C,GAAO7zB,GAA6B,IAAjB6zB,EAAIoxC,UAAmBpxC,EAAIk0C,kBAMnD+E,GADA9sE,EAAW6zB,GACQk0C,gBACnBgF,EAAiB,CAACP,EAAOxsE,CAAS,EAQ7BmtE,GAAgBntE,IAClBixE,EAAYjxE,EAASmlE,cAAiB8L,EAAUx/B,MAAQw/B,IAGrDA,EAAUt6C,iBACds6C,EAAUt6C,iBAAkB,SAAUy1C,EAAe,EAAM,EAGhD6E,EAAUC,aACrBD,EAAUC,YAAa,WAAY9E,CAAc,GASnDlD,EAAQ5kC,MAAQ8rC,EAAQ,SAAUvgC,GAEjC,OADAi9B,EAAQzP,YAAaxtB,CAAG,EAAEwtB,YAAar9D,EAAS8c,cAAe,KAAM,CAAE,EACjC,SAAxB+yB,EAAGpZ,kBAChB,CAACoZ,EAAGpZ,iBAAkB,qBAAsB,EAAE1wC,MAChD,CAAE,EAOFmjF,EAAQ2G,oBAAsBO,EAAQ,WAGrC,OAAON,IAAIC,SAAU,aAAc,GAMlC/vE,EAASy2B,iBAAkB,cAAe,GAM1C,CAACq5C,IAAIC,SAAU,0BAA2B,CAG5C,CAAE,EAQF7G,EAAQ5kE,WAAa8rE,EAAQ,SAAUvgC,GAEtC,OADAA,EAAGshC,UAAY,IACR,CAACthC,EAAGotB,aAAc,WAAY,CACtC,CAAE,EAMFiM,EAAQh1C,qBAAuBk8C,EAAQ,SAAUvgC,GAEhD,OADAA,EAAGwtB,YAAar9D,EAASoxE,cAAe,EAAG,CAAE,EACtC,CAACvhC,EAAG3b,qBAAsB,GAAI,EAAEnuC,MACxC,CAAE,EAGFmjF,EAAQuG,uBAAyBb,EAAQtjC,KAAMtrC,EAASyvE,sBAAuB,EAM/EvG,EAAQmI,QAAUjB,EAAQ,SAAUvgC,GAEnC,OADAi9B,EAAQzP,YAAaxtB,CAAG,EAAEjrD,GAAK8lF,EACxB,CAAC1qE,EAASsxE,mBAAqB,CAACtxE,EAASsxE,kBAAmB5G,CAAQ,EAAE3kF,MAC9E,CAAE,EAGGmjF,EAAQmI,SACZ/E,EAAKzhF,OAAa,GAAI,SAAUjG,GAC/B,IAAI2sF,EAAS3sF,EAAGsb,QAAS6uE,EAAWlD,CAAU,EAC9C,OAAO,SAAUvmC,GAChB,OAAOA,EAAK23B,aAAc,IAAK,IAAMsU,CACtC,CACD,EACAjF,EAAKz8D,KAAW,GAAI,SAAUjrB,EAAI4kE,GACjC,GAAuC,SAA3BA,EAAQvpD,gBAAkC8sE,EAErD,OADIznC,EAAOkkB,EAAQvpD,eAAgBrb,CAAG,GACxB,CAAE0gD,GAAS,EAE3B,IAEAgnC,EAAKzhF,OAAa,GAAK,SAAUjG,GAChC,IAAI2sF,EAAS3sF,EAAGsb,QAAS6uE,EAAWlD,CAAU,EAC9C,OAAO,SAAUvmC,GACZma,EAAwC,SAA1Bna,EAAKksC,kBACtBlsC,EAAKksC,iBAAkB,IAAK,EAC7B,OAAO/xB,GAAQA,EAAKj1D,QAAU+mF,CAC/B,CACD,EAIAjF,EAAKz8D,KAAW,GAAI,SAAUjrB,EAAI4kE,GACjC,GAAuC,SAA3BA,EAAQvpD,gBAAkC8sE,EAAiB,CACtE,IAAIttB,EAAM92D,EAAGwwD,EACZ7T,EAAOkkB,EAAQvpD,eAAgBrb,CAAG,EAEnC,GAAK0gD,EAAO,CAIX,IADAma,EAAOna,EAAKksC,iBAAkB,IAAK,IACtB/xB,EAAKj1D,QAAU5F,EAC3B,MAAO,CAAE0gD,GAMV,IAFA6T,EAAQqQ,EAAQ8nB,kBAAmB1sF,CAAG,EACtC+D,EAAI,EACM28C,EAAO6T,EAAOxwD,CAAC,KAExB,IADA82D,EAAOna,EAAKksC,iBAAkB,IAAK,IACtB/xB,EAAKj1D,QAAU5F,EAC3B,MAAO,CAAE0gD,EAGZ,CAEA,MAAO,EACR,CACD,GAIDgnC,EAAKz8D,KAAY,IAAIq5D,EAAQh1C,qBAC5B,SAAUu9C,EAAKjoB,GACd,OAA6C,SAAjCA,EAAQt1B,qBACZs1B,EAAQt1B,qBAAsBu9C,CAAI,EAG9BvI,EAAQwG,IACZlmB,EAAQ/yB,iBAAkBg7C,CAAI,EAD/B,MAGR,EAEA,SAAUA,EAAKjoB,GACd,IAAIlkB,EACHosC,EAAM,GACN/oF,EAAI,EAGJjD,EAAU8jE,EAAQt1B,qBAAsBu9C,CAAI,EAG7C,GAAa,MAARA,EASL,OAAO/rF,EARN,KAAU4/C,EAAO5/C,EAASiD,CAAC,KACH,IAAlB28C,EAAK2/B,UACTyM,EAAIxjF,KAAMo3C,CAAK,EAIjB,OAAOosC,CAGT,EAGDpF,EAAKz8D,KAAc,MAAIq5D,EAAQuG,wBAA0B,SAAU0B,EAAW3nB,GAC7E,GAA+C,SAAnCA,EAAQimB,wBAA0C1C,EAC7D,OAAOvjB,EAAQimB,uBAAwB0B,CAAU,CAEnD,EAQAlE,EAAgB,GAOhBD,EAAY,IAEL9D,EAAQwG,IAAMd,EAAQtjC,KAAMtrC,EAASy2B,gBAAiB,KAI5D25C,EAAQ,SAAUvgC,GAEjB,IAAInZ,EAOJo2C,EAAQzP,YAAaxtB,CAAG,EAAEvvC,UAAY,UAAYoqE,EACjD,qBAAiBA,EACjB,kEAMI76B,EAAGpZ,iBAAkB,sBAAuB,EAAE1wC,QAClDinF,EAAU9+E,KAAM,SAAW4/E,EAAa,cAAe,EAKlDj+B,EAAGpZ,iBAAkB,YAAa,EAAE1wC,QACzCinF,EAAU9+E,KAAM,MAAQ4/E,EAAa,aAAeD,EAAW,GAAI,EAI9Dh+B,EAAGpZ,iBAAkB,QAAUi0C,EAAU,IAAK,EAAE3kF,QACrDinF,EAAU9+E,KAAM,IAAK,GAQtBwoC,EAAQ12B,EAAS8c,cAAe,OAAQ,GAClCygD,aAAc,OAAQ,EAAG,EAC/B1tB,EAAGwtB,YAAa3mC,CAAM,EAChBmZ,EAAGpZ,iBAAkB,WAAY,EAAE1wC,QACxCinF,EAAU9+E,KAAM,MAAQ4/E,EAAa,QAAUA,EAAa,KAC3DA,EAAa,cAAe,EAMxBj+B,EAAGpZ,iBAAkB,UAAW,EAAE1wC,QACvCinF,EAAU9+E,KAAM,UAAW,EAMtB2hD,EAAGpZ,iBAAkB,KAAOi0C,EAAU,IAAK,EAAE3kF,QAClDinF,EAAU9+E,KAAM,UAAW,EAK5B2hD,EAAGpZ,iBAAkB,MAAO,EAC5Bu2C,EAAU9+E,KAAM,aAAc,CAC/B,CAAE,EAEFkiF,EAAQ,SAAUvgC,GACjBA,EAAGvvC,UAAY,oFAKf,IAAIo2B,EAAQ12B,EAAS8c,cAAe,OAAQ,EAC5C4Z,EAAM6mC,aAAc,OAAQ,QAAS,EACrC1tB,EAAGwtB,YAAa3mC,CAAM,EAAE6mC,aAAc,OAAQ,GAAI,EAI7C1tB,EAAGpZ,iBAAkB,UAAW,EAAE1wC,QACtCinF,EAAU9+E,KAAM,OAAS4/E,EAAa,aAAc,EAKH,IAA7Cj+B,EAAGpZ,iBAAkB,UAAW,EAAE1wC,QACtCinF,EAAU9+E,KAAM,WAAY,WAAY,EAKzC4+E,EAAQzP,YAAaxtB,CAAG,EAAE5F,SAAW,GACc,IAA9C4F,EAAGpZ,iBAAkB,WAAY,EAAE1wC,QACvCinF,EAAU9+E,KAAM,WAAY,WAAY,EAKzC2hD,EAAGpZ,iBAAkB,MAAO,EAC5Bu2C,EAAU9+E,KAAM,MAAO,CACxB,CAAE,IAGIg7E,EAAQyI,gBAAkB/C,EAAQtjC,KAAQyzB,EAAU+N,EAAQ/N,SAClE+N,EAAQ8E,uBACR9E,EAAQ+E,oBACR/E,EAAQgF,kBACRhF,EAAQiF,iBAAoB,IAE5B3B,EAAQ,SAAUvgC,GAIjBq5B,EAAQ8I,kBAAoBjT,EAAQ1kD,KAAMw1B,EAAI,GAAI,EAIlDkvB,EAAQ1kD,KAAMw1B,EAAI,WAAY,EAC9Bo9B,EAAc/+E,KAAM,KAAM8/E,CAAQ,CACnC,CAAE,EAGG9E,EAAQ2G,qBASb7C,EAAU9+E,KAAM,MAAO,EAGxB8+E,EAAYA,EAAUjnF,QAAU,IAAIJ,OAAQqnF,EAAUv0E,KAAM,GAAI,CAAE,EAClEw0E,EAAgBA,EAAclnF,QAAU,IAAIJ,OAAQsnF,EAAcx0E,KAAM,GAAI,CAAE,EAI9Ew5E,EAAarD,EAAQtjC,KAAMwhC,EAAQoF,uBAAwB,EAK3DhF,EAAW+E,GAAcrD,EAAQtjC,KAAMwhC,EAAQI,QAAS,EACvD,SAAUnhF,EAAG26B,GAQZ,IAAIyrD,EAAuB,IAAfpmF,EAAEk5E,UAAkBl5E,EAAEg8E,iBAAmBh8E,EACpDqmF,EAAM1rD,GAAKA,EAAEigD,WACd,OAAO56E,IAAMqmF,GAAO,EAAIA,IAAwB,IAAjBA,EAAInN,UAAkB,EACpDkN,EAAMjF,SACLiF,EAAMjF,SAAUkF,CAAI,EACpBrmF,EAAEmmF,yBAA8D,GAAnCnmF,EAAEmmF,wBAAyBE,CAAI,GAE/D,EACA,SAAUrmF,EAAG26B,GACZ,GAAKA,EACJ,KAAUA,EAAIA,EAAEigD,YACf,GAAKjgD,IAAM36B,EACV,MAAO,GAIV,MAAO,EACR,EAMD2hF,EAAYuE,EACZ,SAAUlmF,EAAG26B,GAGZ,IAMI2rD,EANJ,OAAKtmF,IAAM26B,GACVmmD,EAAe,GACR,IAIJwF,EAAU,CAACtmF,EAAEmmF,wBAA0B,CAACxrD,EAAEwrD,2BAiB/B,GAPfG,GAAYtmF,EAAEm5E,eAAiBn5E,KAAS26B,EAAEw+C,eAAiBx+C,GAC1D36B,EAAEmmF,wBAAyBxrD,CAAE,EAG7B,IAIE,CAACwiD,EAAQoJ,cAAgB5rD,EAAEwrD,wBAAyBnmF,CAAE,IAAMsmF,EAOzDtmF,GAAKiU,GAAYjU,EAAEm5E,eAAiBiI,GACxCD,EAAUC,EAAcphF,CAAE,EACnB,CAAC,EAOJ26B,GAAK1mB,GAAY0mB,EAAEw+C,eAAiBiI,GACxCD,EAAUC,EAAczmD,CAAE,EACnB,EAIDkmD,EACJ34E,EAAS24E,EAAW7gF,CAAE,EAAIkI,EAAS24E,EAAWlmD,CAAE,EAClD,EAGe,EAAV2rD,EAAc,CAAC,EAAI,EAC3B,EACA,SAAUtmF,EAAG26B,GAGZ,GAAK36B,IAAM26B,EAEV,OADAmmD,EAAe,GACR,EAGR,IAAI4D,EACH9nF,EAAI,EACJ4pF,EAAMxmF,EAAE46E,WACRyL,EAAM1rD,EAAEigD,WACR6L,EAAK,CAAEzmF,GACP0mF,EAAK,CAAE/rD,GAGR,GAAM6rD,IAAQH,GAMb,OAAOrmF,GAAKiU,EAAW,CAAC,EACvB0mB,GAAK1mB,EAAW,EAEhBuyE,EAAM,CAAC,EACPH,EAAM,EACNxF,EACE34E,EAAS24E,EAAW7gF,CAAE,EAAIkI,EAAS24E,EAAWlmD,CAAE,EAClD,EAGK,GAAK6rD,IAAQH,EACnB,OAAO5B,GAAczkF,EAAG26B,CAAE,EAK3B,IADA+pD,EAAM1kF,EACI0kF,EAAMA,EAAI9J,YACnB6L,EAAGE,QAASjC,CAAI,EAGjB,IADAA,EAAM/pD,EACI+pD,EAAMA,EAAI9J,YACnB8L,EAAGC,QAASjC,CAAI,EAIjB,KAAQ+B,EAAI7pF,KAAQ8pF,EAAI9pF,IACvBA,CAAC,GAGF,OAAOA,EAGN6nF,GAAcgC,EAAI7pF,GAAK8pF,EAAI9pF,EAAI,EAO/B6pF,EAAI7pF,IAAOwkF,EAAe,CAAC,EAC3BsF,EAAI9pF,IAAOwkF,EAAe,EAE1B,CACF,GAEOntE,CACR,EAEA4rE,EAAO7M,QAAU,SAAU4T,EAAMnU,GAChC,OAAOoN,EAAQ+G,EAAM,KAAM,KAAMnU,CAAS,CAC3C,EAEAoN,EAAO+F,gBAAkB,SAAUrsC,EAAMqtC,GAGxC,GAFAtG,EAAa/mC,CAAK,EAEb4jC,EAAQyI,iBAAmB5E,GAC/B,CAACU,EAAwBkF,EAAO,OAC9B,CAAC1F,GAAiB,CAACA,EAAc3hC,KAAMqnC,CAAK,KAC5C,CAAC3F,GAAiB,CAACA,EAAU1hC,KAAMqnC,CAAK,GAE1C,IACC,IAAI1X,EAAM8D,EAAQ1kD,KAAMirB,EAAMqtC,CAAK,EAGnC,GAAK1X,GAAOiO,EAAQ8I,mBAInB1sC,EAAKtlC,UAAuC,KAA3BslC,EAAKtlC,SAASilE,SAC/B,OAAOhK,CAIT,CAFE,MAAQj2E,GACTyoF,EAAwBkF,EAAM,EAAK,CACpC,CAGD,OAAyD,EAAlD/G,EAAQ+G,EAAM3yE,EAAU,KAAM,CAAEslC,EAAO,EAAEv/C,MACjD,EAEA6lF,EAAOsB,SAAW,SAAU1jB,EAASlkB,GAUpC,OAHOkkB,EAAQ0b,eAAiB1b,IAAaxpD,GAC5CqsE,EAAa7iB,CAAQ,EAEf0jB,EAAU1jB,EAASlkB,CAAK,CAChC,EAEAsmC,EAAOjyD,KAAO,SAAU2rB,EAAMh4C,IAOtBg4C,EAAK4/B,eAAiB5/B,IAAUtlC,GACtCqsE,EAAa/mC,CAAK,EAGnB,IAAIktB,EAAK8Z,EAAKiE,WAAYjjF,EAAKyR,YAAY,GAG1C0G,EAAM+sD,GAAMtC,EAAO71C,KAAMiyD,EAAKiE,WAAYjjF,EAAKyR,YAAY,CAAE,EAC5DyzD,EAAIltB,EAAMh4C,EAAM,CAACy/E,CAAe,EAChC/0E,OAEF,OAAeA,SAARyN,EACNA,EACAyjE,EAAQ5kE,YAAc,CAACyoE,EACtBznC,EAAK23B,aAAc3vE,CAAK,GACtBmY,EAAM6/B,EAAKksC,iBAAkBlkF,CAAK,IAAOmY,EAAImtE,UAC9CntE,EAAIjb,MACJ,IACJ,EAEAohF,EAAOE,OAAS,SAAU+G,GACzB,OAASA,EAAM,IAAK3yE,QAAS8uE,GAAY/C,CAAW,CACrD,EAEAL,EAAO7nE,MAAQ,SAAUgvC,GACxB,MAAM,IAAI9tD,MAAO,0CAA4C8tD,CAAI,CAClE,EAMA64B,EAAOkH,WAAa,SAAUptF,GAC7B,IAAI4/C,EACHytC,EAAa,GACbr5E,EAAI,EACJ/Q,EAAI,EAOL,GAJAkkF,EAAe,CAAC3D,EAAQ8J,iBACxBpG,EAAY,CAAC1D,EAAQ+J,YAAcvtF,EAAQ+e,MAAO,CAAE,EACpD/e,EAAQyI,KAAMu/E,CAAU,EAEnBb,EAAe,CACnB,KAAUvnC,EAAO5/C,EAASiD,CAAC,KACrB28C,IAAS5/C,EAASiD,KACtB+Q,EAAIq5E,EAAW7kF,KAAMvF,CAAE,GAGzB,KAAQ+Q,CAAC,IACRhU,EAAQ+xB,OAAQs7D,EAAYr5E,GAAK,CAAE,CAErC,CAMA,OAFAkzE,EAAY,KAELlnF,CACR,EAMA6mF,EAAUX,EAAOW,QAAU,SAAUjnC,GACpC,IAAIma,EACHwb,EAAM,GACNtyE,EAAI,EACJs8E,EAAW3/B,EAAK2/B,SAEjB,GAAMA,GAQC,GAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAkB,CAIjE,GAAiC,UAA5B,OAAO3/B,EAAK4tC,YAChB,OAAO5tC,EAAK4tC,YAIZ,IAAM5tC,EAAOA,EAAKg4B,WAAYh4B,EAAMA,EAAOA,EAAKqmC,YAC/C1Q,GAAOsR,EAASjnC,CAAK,CAGxB,MAAO,GAAkB,IAAb2/B,GAA+B,IAAbA,EAC7B,OAAO3/B,EAAK6tC,SACb,MApBC,KAAU1zB,EAAOna,EAAM38C,CAAC,KAGvBsyE,GAAOsR,EAAS9sB,CAAK,EAqBvB,OAAOwb,CACR,GAEAqR,EAAOV,EAAOwH,UAAY,CAGzBlD,YAAa,GAEbmD,aAAclD,EAEdz7B,MAAO85B,EAEP+B,WAAY,GAEZ1gE,KAAM,GAENkrB,SAAU,CACT,IAAK,CAAEuwC,IAAK,aAAcnR,MAAO,EAAK,EACtC,IAAK,CAAEmR,IAAK,YAAa,EACzB,IAAK,CAAEA,IAAK,kBAAmBnR,MAAO,EAAK,EAC3C,IAAK,CAAEmR,IAAK,iBAAkB,CAC/B,EAEAgI,UAAW,CACV,KAAQ,SAAU5+B,GAWjB,OAVAA,EAAO,GAAMA,EAAO,GAAIx0C,QAAS6uE,EAAWlD,CAAU,EAGtDn3B,EAAO,IAAQA,EAAO,IAAOA,EAAO,IACnCA,EAAO,IAAO,IAAKx0C,QAAS6uE,EAAWlD,CAAU,EAE9B,OAAfn3B,EAAO,KACXA,EAAO,GAAM,IAAMA,EAAO,GAAM,KAG1BA,EAAMjwC,MAAO,EAAG,CAAE,CAC1B,EAEA,MAAS,SAAUiwC,GAiClB,OArBAA,EAAO,GAAMA,EAAO,GAAI31C,YAAY,EAEF,QAA7B21C,EAAO,GAAIjwC,MAAO,EAAG,CAAE,GAGrBiwC,EAAO,IACZk3B,EAAO7nE,MAAO2wC,EAAO,EAAI,EAK1BA,EAAO,GAAM,EAAGA,EAAO,GACtBA,EAAO,IAAQA,EAAO,IAAO,GAC7B,GAAqB,SAAfA,EAAO,IAAiC,QAAfA,EAAO,KACvCA,EAAO,GAAM,EAAKA,EAAO,GAAMA,EAAO,IAAwB,QAAfA,EAAO,KAG3CA,EAAO,IAClBk3B,EAAO7nE,MAAO2wC,EAAO,EAAI,EAGnBA,CACR,EAEA,OAAU,SAAUA,GACnB,IAAI6+B,EACHC,EAAW,CAAC9+B,EAAO,IAAOA,EAAO,GAElC,OAAK85B,EAAmB,MAAEljC,KAAMoJ,EAAO,EAAI,EACnC,MAIHA,EAAO,GACXA,EAAO,GAAMA,EAAO,IAAOA,EAAO,IAAO,GAG9B8+B,GAAYlF,GAAQhjC,KAAMkoC,CAAS,IAG5CD,KAAS9G,EAAU+G,EAAU,EAAK,IAGzBA,EAASv/E,QAAS,IAAKu/E,EAASztF,OAASwtF,CAAO,EAAIC,EAASztF,UAGxE2uD,EAAO,GAAMA,EAAO,GAAIjwC,MAAO,EAAG8uE,CAAO,EACzC7+B,EAAO,GAAM8+B,EAAS/uE,MAAO,EAAG8uE,CAAO,GAIjC7+B,EAAMjwC,MAAO,EAAG,CAAE,EAC1B,CACD,EAEA5Z,OAAQ,CAEP,IAAO,SAAU4oF,GAChB,IAAIrO,EAAWqO,EAAiBvzE,QAAS6uE,EAAWlD,CAAU,EAAE9sE,YAAY,EAC5E,MAA4B,MAArB00E,EACN,WACC,MAAO,EACR,EACA,SAAUnuC,GACT,OAAOA,EAAK8/B,UAAY9/B,EAAK8/B,SAASrmE,YAAY,IAAMqmE,CACzD,CACF,EAEA,MAAS,SAAU+L,GAClB,IAAIuC,EAAUrG,EAAY8D,EAAY,KAEtC,OAAOuC,IACJA,EAAU,IAAI/tF,OAAQ,MAAQmoF,EAC/B,IAAMqD,EAAY,IAAMrD,EAAa,KAAM,IAAOT,EACjD8D,EAAW,SAAU7rC,GACpB,OAAOouC,EAAQpoC,KACY,UAA1B,OAAOhG,EAAK6rC,WAA0B7rC,EAAK6rC,WACd,SAAtB7rC,EAAK23B,cACX33B,EAAK23B,aAAc,OAAQ,GAC5B,EACD,CACH,CAAE,CACJ,EAEA,KAAQ,SAAU3vE,EAAM0nB,EAAU+uD,GACjC,OAAO,SAAUz+B,GACZ/8C,EAASqjF,EAAOjyD,KAAM2rB,EAAMh4C,CAAK,EAErC,OAAe,MAAV/E,EACgB,OAAbysB,EAEFA,KAINzsB,GAAU,GAIU,MAAbysB,EAAmBzsB,IAAWw7E,EACvB,OAAb/uD,EAAoBzsB,IAAWw7E,EAClB,OAAb/uD,EAAoB+uD,GAAqC,IAA5Bx7E,EAAO0L,QAAS8vE,CAAM,EACtC,OAAb/uD,EAAoB+uD,GAAmC,CAAC,EAA3Bx7E,EAAO0L,QAAS8vE,CAAM,EACtC,OAAb/uD,EAAoB+uD,GAASx7E,EAAOkc,MAAO,CAACs/D,EAAMh+E,MAAO,IAAMg+E,EAClD,OAAb/uD,EAA0F,CAAC,GAArE,IAAMzsB,EAAO2X,QAAS+tE,GAAa,GAAI,EAAI,KAAMh6E,QAAS8vE,CAAM,EACzE,OAAb/uD,IAAoBzsB,IAAWw7E,GAASx7E,EAAOkc,MAAO,EAAGs/D,EAAMh+E,OAAS,CAAE,IAAMg+E,EAAQ,KAI1F,CACD,EAEA,MAAS,SAAUxqD,EAAMtF,EAAM0/D,EAAWxZ,EAAOpM,GAChD,IAAIl5C,EAAgC,QAAvB0E,EAAK9U,MAAO,EAAG,CAAE,EAC7BmvE,EAA+B,SAArBr6D,EAAK9U,MAAO,CAAC,CAAE,EACzBovE,EAAkB,YAAT5/D,EAEV,OAAiB,IAAVkmD,GAAwB,IAATpM,EAGrB,SAAUzoB,GACT,MAAO,CAAC,CAACA,EAAKqhC,UACf,EAEA,SAAUrhC,EAAMu7B,EAAUiT,GACzB,IAAI7D,EAAO8D,EAAaC,EAAYv0B,EAAM1nC,EAAWxC,EACpD+1D,EAAMz2D,GAAW++D,EAAU,cAAgB,kBAC3Cl7D,EAAS4sB,EAAKqhC,WACdr5E,EAAOumF,GAAUvuC,EAAK8/B,SAASrmE,YAAY,EAC3Ck1E,EAAW,CAACH,GAAO,CAACD,EACpB3P,EAAO,GAER,GAAKxrD,EAAS,CAGb,GAAK7D,EAAS,CACb,KAAQy2D,GAAM,CAEb,IADA7rB,EAAOna,EACGma,EAAOA,EAAM6rB,IACtB,GAAKuI,EACJp0B,EAAK2lB,SAASrmE,YAAY,IAAMzR,EACd,IAAlBmyD,EAAKwlB,SAEL,MAAO,GAKT1vD,EAAQ+1D,EAAe,SAAT/xD,GAAmB,CAAChE,GAAS,aAC5C,CACA,MAAO,EACR,CAKA,GAHAA,EAAQ,CAAEq+D,EAAUl7D,EAAO4kD,WAAa5kD,EAAOw7D,WAG1CN,GAAWK,GAkBf,IAHA/P,GADAnsD,GADAk4D,GAHA8D,GAJAC,GADAv0B,EAAO/mC,GACYgyD,KAAejrB,EAAMirB,GAAY,KAI1BjrB,EAAK00B,YAC5BH,EAAYv0B,EAAK00B,UAAa,KAEZ56D,IAAU,IACZ,KAAQ6zD,GAAW6C,EAAO,KACzBA,EAAO,GAC3BxwB,EAAO1nC,GAAaW,EAAOy2D,WAAYp3D,GAE7B0nC,EAAO,EAAE1nC,GAAa0nC,GAAQA,EAAM6rB,KAG3CpH,EAAOnsD,EAAY,EAAOxC,EAAM++B,IAAI,IAGtC,GAAuB,IAAlBmL,EAAKwlB,UAAkB,EAAEf,GAAQzkB,IAASna,EAAO,CACrDyuC,EAAax6D,GAAS,CAAE6zD,EAASr1D,EAAWmsD,GAC5C,KACD,CACD,MAuBA,GAAc,MALbA,EAbI+P,EAYJl8D,GADAk4D,GAHA8D,GAJAC,GADAv0B,EAAOna,GACYolC,KAAejrB,EAAMirB,GAAY,KAI1BjrB,EAAK00B,YAC5BH,EAAYv0B,EAAK00B,UAAa,KAEZ56D,IAAU,IACZ,KAAQ6zD,GAAW6C,EAAO,GAMzC/L,GAGJ,MAAUzkB,EAAO,EAAE1nC,GAAa0nC,GAAQA,EAAM6rB,KAC3CpH,EAAOnsD,EAAY,EAAOxC,EAAM++B,IAAI,OAE/Bu/B,EACNp0B,EAAK2lB,SAASrmE,YAAY,IAAMzR,EACd,IAAlBmyD,EAAKwlB,WACL,GAAEf,IAGG+P,KAMJF,GALAC,EAAav0B,EAAMirB,KAChBjrB,EAAMirB,GAAY,KAIKjrB,EAAK00B,YAC5BH,EAAYv0B,EAAK00B,UAAa,KAEpB56D,GAAS,CAAE6zD,EAASlJ,IAG7BzkB,IAASna,MAUlB,OADA4+B,GAAQnW,KACQoM,GAAW+J,EAAO/J,GAAU,GAAqB,GAAhB+J,EAAO/J,CACzD,CACD,CACF,EAEA,OAAU,SAAUia,EAAQvD,GAM3B,IAAI1a,EACH3D,EAAK8Z,EAAK0B,QAASoG,IAAY9H,EAAK+H,WAAYD,EAAOr1E,YAAY,IAClE6sE,EAAO7nE,MAAO,uBAAyBqwE,CAAO,EAKhD,OAAK5hB,EAAIkY,GACDlY,EAAIqe,CAAS,EAIJ,EAAZre,EAAGzsE,QACPowE,EAAO,CAAEie,EAAQA,EAAQ,GAAIvD,GACtBvE,EAAK+H,WAAWlkB,eAAgBikB,EAAOr1E,YAAY,CAAE,EAC3DoxE,EAAc,SAAUd,EAAMtQ,GAI7B,IAHA,IAAInD,EACH4P,EAAUhZ,EAAI6c,EAAMwB,CAAS,EAC7BloF,EAAI6iF,EAAQzlF,OACL4C,CAAC,IAER0mF,EADAzT,EAAM3nE,EAASo7E,EAAM7D,EAAS7iF,EAAI,GACpB,EAAGo2E,EAASnD,GAAQ4P,EAAS7iF,GAE7C,CAAE,EACF,SAAU28C,GACT,OAAOktB,EAAIltB,EAAM,EAAG6wB,CAAK,CAC1B,GAGK3D,CACR,CACD,EAEAwb,QAAS,CAGR,IAAOmC,EAAc,SAAU1G,GAK9B,IAAI/yC,EAAQ,GACXhxC,EAAU,GACV4uF,EAAU5H,EAASjD,EAASvpE,QAASguE,EAAO,IAAK,CAAE,EAEpD,OAAOoG,EAAS5J,GACfyF,EAAc,SAAUd,EAAMtQ,EAAS8B,EAAUiT,GAMhD,IALA,IAAIxuC,EACHivC,EAAYD,EAASjF,EAAM,KAAMyE,EAAK,EAAG,EACzCnrF,EAAI0mF,EAAKtpF,OAGF4C,CAAC,KACD28C,EAAOivC,EAAW5rF,MACxB0mF,EAAM1mF,GAAM,EAAGo2E,EAASp2E,GAAM28C,GAGjC,CAAE,EACF,SAAUA,EAAMu7B,EAAUiT,GAMzB,OALAp9C,EAAO,GAAM4O,EACbgvC,EAAS59C,EAAO,KAAMo9C,EAAKpuF,CAAQ,EAGnCgxC,EAAO,GAAM,KACN,CAAChxC,EAAQ4uD,IAAI,CACrB,CACF,CAAE,EAEF,IAAO67B,EAAc,SAAU1G,GAC9B,OAAO,SAAUnkC,GAChB,OAAyC,EAAlCsmC,EAAQnC,EAAUnkC,CAAK,EAAEv/C,MACjC,CACD,CAAE,EAEF,SAAYoqF,EAAc,SAAUroC,GAEnC,OADAA,EAAOA,EAAK5nC,QAAS6uE,EAAWlD,CAAU,EACnC,SAAUvmC,GAChB,MAAiE,CAAC,GAAzDA,EAAK4tC,aAAe3G,EAASjnC,CAAK,GAAIrxC,QAAS6zC,CAAK,CAC9D,CACD,CAAE,EASF,KAAQqoC,EAAc,SAAUqE,GAO/B,OAJMjG,GAAYjjC,KAAMkpC,GAAQ,EAAG,GAClC5I,EAAO7nE,MAAO,qBAAuBywE,CAAK,EAE3CA,EAAOA,EAAKt0E,QAAS6uE,EAAWlD,CAAU,EAAE9sE,YAAY,EACjD,SAAUumC,GAChB,IAAImvC,EACJ,GACC,GAAOA,EAAW1H,EACjBznC,EAAKkvC,KACLlvC,EAAK23B,aAAc,UAAW,GAAK33B,EAAK23B,aAAc,MAAO,EAG7D,OADAwX,EAAWA,EAAS11E,YAAY,KACZy1E,GAA2C,IAAnCC,EAASxgF,QAASugF,EAAO,GAAI,CAC1D,QACWlvC,EAAOA,EAAKqhC,aAAkC,IAAlBrhC,EAAK2/B,UAC7C,MAAO,EACR,CACD,CAAE,EAGF,OAAU,SAAU3/B,GACnB,IAAIx/C,EAAON,EAAOK,UAAYL,EAAOK,SAASC,KAC9C,OAAOA,GAAQA,EAAK2e,MAAO,CAAE,IAAM6gC,EAAK1gD,EACzC,EAEA,KAAQ,SAAU0gD,GACjB,OAAOA,IAASwnC,CACjB,EAEA,MAAS,SAAUxnC,GAClB,OAAOA,IAAStlC,EAAS00E,gBACtB,CAAC10E,EAAS20E,UAAY30E,EAAS20E,SAAS,IAC1C,CAAC,EAAGrvC,EAAK/rB,MAAQ+rB,EAAKj5B,MAAQ,CAACi5B,EAAKmE,SACtC,EAGA,QAAWknC,GAAsB,EAAM,EACvC,SAAYA,GAAsB,EAAK,EAEvC,QAAW,SAAUrrC,GAIpB,IAAI8/B,EAAW9/B,EAAK8/B,SAASrmE,YAAY,EACzC,MAAsB,UAAbqmE,GAAwB,CAAC,CAAC9/B,EAAK9tB,SACxB,WAAb4tD,GAAyB,CAAC,CAAC9/B,EAAK/T,QACpC,EAEA,SAAY,SAAU+T,GASrB,OALKA,EAAKqhC,YAETrhC,EAAKqhC,WAAWiO,cAGQ,KAAlBtvC,EAAK/T,QACb,EAGA,MAAS,SAAU+T,GAMlB,IAAMA,EAAOA,EAAKg4B,WAAYh4B,EAAMA,EAAOA,EAAKqmC,YAC/C,GAAKrmC,EAAK2/B,SAAW,EACpB,MAAO,GAGT,MAAO,EACR,EAEA,OAAU,SAAU3/B,GACnB,MAAO,CAACgnC,EAAK0B,QAAiB,MAAG1oC,CAAK,CACvC,EAGA,OAAU,SAAUA,GACnB,OAAOqpC,GAAQrjC,KAAMhG,EAAK8/B,QAAS,CACpC,EAEA,MAAS,SAAU9/B,GAClB,OAAOopC,GAAQpjC,KAAMhG,EAAK8/B,QAAS,CACpC,EAEA,OAAU,SAAU9/B,GACnB,IAAIh4C,EAAOg4C,EAAK8/B,SAASrmE,YAAY,EACrC,MAAgB,UAATzR,GAAkC,WAAdg4C,EAAK/rB,MAA8B,WAATjsB,CACtD,EAEA,KAAQ,SAAUg4C,GAEjB,MAAuC,UAAhCA,EAAK8/B,SAASrmE,YAAY,GAClB,SAAdumC,EAAK/rB,OAIuC,OAAxCI,EAAO2rB,EAAK23B,aAAc,MAAO,IACb,SAAvBtjD,EAAK5a,YAAY,EACpB,EAGA,MAAS6xE,EAAwB,WAChC,MAAO,CAAE,EACV,CAAE,EAEF,KAAQA,EAAwB,SAAUiE,EAAe9uF,GACxD,MAAO,CAAEA,EAAS,EACnB,CAAE,EAEF,GAAM6qF,EAAwB,SAAUiE,EAAe9uF,EAAQ8qF,GAC9D,MAAO,CAAEA,EAAW,EAAIA,EAAW9qF,EAAS8qF,EAC7C,CAAE,EAEF,KAAQD,EAAwB,SAAUE,EAAc/qF,GAEvD,IADA,IAAI4C,EAAI,EACAA,EAAI5C,EAAQ4C,GAAK,EACxBmoF,EAAa5iF,KAAMvF,CAAE,EAEtB,OAAOmoF,CACR,CAAE,EAEF,IAAOF,EAAwB,SAAUE,EAAc/qF,GAEtD,IADA,IAAI4C,EAAI,EACAA,EAAI5C,EAAQ4C,GAAK,EACxBmoF,EAAa5iF,KAAMvF,CAAE,EAEtB,OAAOmoF,CACR,CAAE,EAEF,GAAMF,EAAwB,SAAUE,EAAc/qF,EAAQ8qF,GAM7D,IALA,IAAIloF,EAAIkoF,EAAW,EAClBA,EAAW9qF,EACAA,EAAX8qF,EACC9qF,EACA8qF,EACa,GAAP,EAAEloF,GACTmoF,EAAa5iF,KAAMvF,CAAE,EAEtB,OAAOmoF,CACR,CAAE,EAEF,GAAMF,EAAwB,SAAUE,EAAc/qF,EAAQ8qF,GAE7D,IADA,IAAIloF,EAAIkoF,EAAW,EAAIA,EAAW9qF,EAAS8qF,EACnC,EAAEloF,EAAI5C,GACb+qF,EAAa5iF,KAAMvF,CAAE,EAEtB,OAAOmoF,CACR,CAAE,CACH,CACD,GAEK9C,QAAe,IAAI1B,EAAK0B,QAAc,GAGhC,CAAE8G,MAAO,GAAMC,SAAU,GAAMziE,KAAM,GAAMnL,SAAU,GAAMmwB,MAAO,EAAK,EACjFg1C,EAAK0B,QAASrlF,GAr0Cf,SAA4B4wB,GAC3B,OAAO,SAAU+rB,GAEhB,MAAgB,UADLA,EAAK8/B,SAASrmE,YAAY,GACVumC,EAAK/rB,OAASA,CAC1C,CACD,EAg0CwC5wB,CAAE,EAE1C,IAAMA,IAAK,CAAE6iB,OAAQ,GAAM28B,MAAO,EAAK,EACtCmkC,EAAK0B,QAASrlF,GA7zCf,SAA6B4wB,GAC5B,OAAO,SAAU+rB,GAChB,IAAIh4C,EAAOg4C,EAAK8/B,SAASrmE,YAAY,EACrC,OAAkB,UAATzR,GAA6B,WAATA,IAAuBg4C,EAAK/rB,OAASA,CACnE,CACD,EAwzCyC5wB,CAAE,EAI3C,SAAS0rF,MA0ET,SAASzE,EAAYoF,GAIpB,IAHA,IAAIrsF,EAAI,EACP4sD,EAAMy/B,EAAOjvF,OACb0jF,EAAW,GACJ9gF,EAAI4sD,EAAK5sD,CAAC,GACjB8gF,GAAYuL,EAAQrsF,GAAI6B,MAEzB,OAAOi/E,CACR,CAEA,SAASyF,GAAeoF,EAASW,EAAY5kC,GAC5C,IAAIi7B,EAAM2J,EAAW3J,IACpB4J,EAAOD,EAAWz0E,KAClB9L,EAAMwgF,GAAQ5J,EACd6J,EAAmB9kC,GAAgB,eAAR37C,EAC3B0gF,EAAWrhE,CAAI,GAEhB,OAAOkhE,EAAW9a,MAGjB,SAAU70B,EAAMkkB,EAASsqB,GACxB,KAAUxuC,EAAOA,EAAMgmC,IACtB,GAAuB,IAAlBhmC,EAAK2/B,UAAkBkQ,EAC3B,OAAOb,EAAShvC,EAAMkkB,EAASsqB,CAAI,EAGrC,MAAO,EACR,EAGA,SAAUxuC,EAAMkkB,EAASsqB,GACxB,IAAIuB,EAAuBrB,EAC1BsB,EAAW,CAAElI,EAASgI,GAGvB,GAAKtB,GACJ,KAAUxuC,EAAOA,EAAMgmC,IACtB,IAAuB,IAAlBhmC,EAAK2/B,UAAkBkQ,IACtBb,EAAShvC,EAAMkkB,EAASsqB,CAAI,EAChC,MAAO,EAGV,MAEA,KAAUxuC,EAAOA,EAAMgmC,IACtB,GAAuB,IAAlBhmC,EAAK2/B,UAAkBkQ,EAQ3B,GAHApB,GAJAC,EAAa1uC,EAAMolC,KAAeplC,EAAMolC,GAAY,KAI1BplC,EAAK6uC,YAC5BH,EAAY1uC,EAAK6uC,UAAa,IAE5Be,GAAQA,IAAS5vC,EAAK8/B,SAASrmE,YAAY,EAC/CumC,EAAOA,EAAMgmC,IAAShmC,MAChB,KAAO+vC,EAAWtB,EAAar/E,KACrC2gF,EAAU,KAAQjI,GAAWiI,EAAU,KAAQD,EAG/C,OAASE,EAAU,GAAMD,EAAU,GAOnC,IAHAtB,EAAar/E,GAAQ4gF,GAGJ,GAAMhB,EAAShvC,EAAMkkB,EAASsqB,CAAI,EAClD,MAAO,EAET,CAIH,MAAO,EACR,CACF,CAEA,SAASyB,GAAgBC,GACxB,OAAyB,EAAlBA,EAASzvF,OACf,SAAUu/C,EAAMkkB,EAASsqB,GAExB,IADA,IAAInrF,EAAI6sF,EAASzvF,OACT4C,CAAC,IACR,GAAK,CAAC6sF,EAAU7sF,GAAK28C,EAAMkkB,EAASsqB,CAAI,EACvC,MAAO,GAGT,MAAO,EACR,EACA0B,EAAU,EACZ,CAWA,SAASC,GAAUlB,EAAW9vF,EAAKoG,EAAQ2+D,EAASsqB,GAOnD,IANA,IAAIxuC,EACHowC,EAAe,GACf/sF,EAAI,EACJ4sD,EAAMg/B,EAAUxuF,OAChB4vF,EAAgB,MAAPlxF,EAEFkE,EAAI4sD,EAAK5sD,CAAC,GACZ,EAAE28C,EAAOivC,EAAW5rF,KAClBkC,GAAUA,GAAQy6C,EAAMkkB,EAASsqB,CAAI,IAC1C4B,EAAaxnF,KAAMo3C,CAAK,EACnBqwC,GACJlxF,EAAIyJ,KAAMvF,CAAE,GAMhB,OAAO+sF,CACR,CAEA,SAASE,GAAYtC,EAAW7J,EAAU6K,EAASuB,EAAYC,EAAYC,GAO1E,OANKF,GAAc,CAACA,EAAYnL,KAC/BmL,EAAaD,GAAYC,CAAW,GAEhCC,GAAc,CAACA,EAAYpL,KAC/BoL,EAAaF,GAAYE,EAAYC,CAAa,GAE5C5F,EAAc,SAAUd,EAAM3pF,EAAS8jE,EAASsqB,GACtD,IAAIz/B,EAAM1rD,EAAG28C,EACZ0wC,EAAS,GACTC,EAAU,GACVC,EAAcxwF,EAAQK,OAGtBozD,EAAQk2B,GA5CX,SAA2B5F,EAAU0M,EAAUzwF,GAG9C,IAFA,IAAIiD,EAAI,EACP4sD,EAAM4gC,EAASpwF,OACR4C,EAAI4sD,EAAK5sD,CAAC,GACjBijF,EAAQnC,EAAU0M,EAAUxtF,GAAKjD,CAAQ,EAE1C,OAAOA,CACR,EAsCI+jF,GAAY,IACZjgB,EAAQyb,SAAW,CAAEzb,GAAYA,EACjC,EACD,EAGA4sB,EAAY9C,IAAejE,IAAS5F,EAEnCtwB,EADAs8B,GAAUt8B,EAAO68B,EAAQ1C,EAAW9pB,EAASsqB,CAAI,EAGlDuC,EAAa/B,EAGZwB,IAAgBzG,EAAOiE,EAAY4C,GAAeL,GAGjD,GAGAnwF,EACD0wF,EAQF,GALK9B,GACJA,EAAS8B,EAAWC,EAAY7sB,EAASsqB,CAAI,EAIzC+B,EAMJ,IALAxhC,EAAOohC,GAAUY,EAAYJ,CAAQ,EACrCJ,EAAYxhC,EAAM,GAAImV,EAASsqB,CAAI,EAGnCnrF,EAAI0rD,EAAKtuD,OACD4C,CAAC,KACD28C,EAAO+O,EAAM1rD,MACnB0tF,EAAYJ,EAASttF,IAAQ,EAAGytF,EAAWH,EAASttF,IAAQ28C,IAK/D,GAAK+pC,GACJ,GAAKyG,GAAcxC,EAAY,CAC9B,GAAKwC,EAAa,CAKjB,IAFAzhC,EAAO,GACP1rD,EAAI0tF,EAAWtwF,OACP4C,CAAC,KACD28C,EAAO+wC,EAAY1tF,KAGzB0rD,EAAKnmD,KAAQkoF,EAAWztF,GAAM28C,CAAO,EAGvCwwC,EAAY,KAAQO,EAAa,GAAMhiC,EAAMy/B,CAAI,CAClD,CAIA,IADAnrF,EAAI0tF,EAAWtwF,OACP4C,CAAC,KACD28C,EAAO+wC,EAAY1tF,KACqC,CAAC,GAA7D0rD,EAAOyhC,EAAa7hF,EAASo7E,EAAM/pC,CAAK,EAAI0wC,EAAQrtF,MAEtD0mF,EAAMh7B,GAAS,EAAG3uD,EAAS2uD,GAAS/O,GAGvC,OAIA+wC,EAAaZ,GACZY,IAAe3wF,EACd2wF,EAAW5+D,OAAQy+D,EAAaG,EAAWtwF,MAAO,EAClDswF,CACF,EACKP,EACJA,EAAY,KAAMpwF,EAAS2wF,EAAYvC,CAAI,EAE3C5lF,EAAKslC,MAAO9tC,EAAS2wF,CAAW,CAGnC,CAAE,CACH,CAiEA,SAASC,GAA0BC,EAAiBC,GAGnC,SAAfC,EAAyBpH,EAAM7lB,EAASsqB,EAAKpuF,EAASgxF,GACrD,IAAIpxC,EAAM5rC,EAAG46E,EACZqC,EAAe,EACfhuF,EAAI,IACJ4rF,EAAYlF,GAAQ,GACpBuH,EAAa,GACbC,EAAgBlK,EAGhBxzB,EAAQk2B,GAAQyH,GAAaxK,EAAKz8D,KAAY,IAAG,IAAK6mE,CAAU,EAGhEK,EAAkB3J,GAA4B,MAAjByJ,EAAwB,EAAI37E,KAAK0c,OAAO,GAAK,GAC1E29B,EAAM4D,EAAMpzD,OAcb,IAZK2wF,IAMJ/J,EAAmBnjB,GAAWxpD,GAAYwpD,GAAWktB,GAM9C/tF,IAAM4sD,GAAgC,OAAvBjQ,EAAO6T,EAAOxwD,IAAeA,CAAC,GAAK,CACzD,GAAKmuF,GAAaxxC,EAAO,CAWxB,IAVA5rC,EAAI,EAME8vD,GAAWlkB,EAAK4/B,eAAiBllE,IACtCqsE,EAAa/mC,CAAK,EAClBwuC,EAAM,CAAC/G,GAEEuH,EAAUiC,EAAiB78E,CAAC,KACrC,GAAK46E,EAAShvC,EAAMkkB,GAAWxpD,EAAU8zE,CAAI,EAAI,CAChDpuF,EAAQwI,KAAMo3C,CAAK,EACnB,KACD,CAEIoxC,IACJtJ,EAAU2J,EAEZ,CAGKC,KAGG1xC,EAAO,CAACgvC,GAAWhvC,IACzBqxC,CAAY,GAIRtH,IACJkF,EAAUrmF,KAAMo3C,CAAK,CAGxB,CAaA,GATAqxC,GAAgBhuF,EASXquF,GAASruF,IAAMguF,EAAe,CAElC,IADAj9E,EAAI,EACM46E,EAAUkC,EAAa98E,CAAC,KACjC46E,EAASC,EAAWqC,EAAYptB,EAASsqB,CAAI,EAG9C,GAAKzE,EAAO,CAGX,GAAoB,EAAfsH,EACJ,KAAQhuF,CAAC,IACA4rF,EAAW5rF,IAAOiuF,EAAYjuF,KACrCiuF,EAAYjuF,GAAM2rD,EAAIj6B,KAAM30B,CAAQ,GAMvCkxF,EAAanB,GAAUmB,CAAW,CACnC,CAGA1oF,EAAKslC,MAAO9tC,EAASkxF,CAAW,EAG3BF,GAAa,CAACrH,GAA4B,EAApBuH,EAAW7wF,QACG,EAAtC4wF,EAAeH,EAAYzwF,QAE7B6lF,EAAOkH,WAAYptF,CAAQ,CAE7B,CAQA,OALKgxF,IACJtJ,EAAU2J,EACVpK,EAAmBkK,GAGbtC,CACR,CArHD,IAAIyC,EAA6B,EAArBR,EAAYzwF,OACvB+wF,EAAqC,EAAzBP,EAAgBxwF,OAsH7B,OAAOixF,EACN7G,EAAcsG,CAAa,EAC3BA,CACF,CAsLA,OAtpBApC,GAAWj6D,UAAYkyD,EAAK32E,QAAU22E,EAAK0B,QAC3C1B,EAAK+H,WAAa,IAAIA,GAEtB5H,EAAWb,EAAOa,SAAW,SAAUhD,EAAUwN,GAChD,IAAIzL,EAAS92B,EAAOsgC,EAAQz7D,EAC3B29D,EAAOt/C,EAAQu/C,EACfC,EAAS7J,EAAY9D,EAAW,KAEjC,GAAK2N,EACJ,OAAOH,EAAY,EAAIG,EAAO3yE,MAAO,CAAE,EAOxC,IAJAyyE,EAAQzN,EACR7xC,EAAS,GACTu/C,EAAa7K,EAAKgH,UAEV4D,GAAQ,CA2Bf,IAAM39D,KAxBAiyD,GAAW,EAAE92B,EAAQy5B,GAAOvoF,KAAMsxF,CAAM,KACxCxiC,IAGJwiC,EAAQA,EAAMzyE,MAAOiwC,EAAO,GAAI3uD,MAAO,GAAKmxF,GAE7Ct/C,EAAO1pC,KAAQ8mF,EAAS,EAAK,GAG9BxJ,EAAU,IAGH92B,EAAQ05B,GAAaxoF,KAAMsxF,CAAM,KACvC1L,EAAU92B,EAAM19C,MAAM,EACtBg+E,EAAO9mF,KAAM,CACZ1D,MAAOghF,EAGPjyD,KAAMm7B,EAAO,GAAIx0C,QAASguE,EAAO,GAAI,CACtC,CAAE,EACFgJ,EAAQA,EAAMzyE,MAAO+mE,EAAQzlF,MAAO,GAIvBumF,EAAKzhF,OACb,EAAE6pD,EAAQ85B,EAAWj1D,GAAO3zB,KAAMsxF,CAAM,IAAUC,EAAY59D,IAClE,EAAEm7B,EAAQyiC,EAAY59D,GAAQm7B,CAAM,KACpC82B,EAAU92B,EAAM19C,MAAM,EACtBg+E,EAAO9mF,KAAM,CACZ1D,MAAOghF,EACPjyD,KAAMA,EACNwlD,QAASrqB,CACV,CAAE,EACFwiC,EAAQA,EAAMzyE,MAAO+mE,EAAQzlF,MAAO,GAItC,GAAK,CAACylF,EACL,KAEF,CAKA,OAAOyL,EACNC,EAAMnxF,OACNmxF,EACCtL,EAAO7nE,MAAO0lE,CAAS,EAGvB8D,EAAY9D,EAAU7xC,CAAO,EAAEnzB,MAAO,CAAE,CAC3C,EA2ZAioE,EAAUd,EAAOc,QAAU,SAAUjD,EAAU/0B,GAC9C,IAAI/rD,EACH6tF,EAAc,GACdD,EAAkB,GAClBa,EAAS5J,EAAe/D,EAAW,KAEpC,GAAK,CAAC2N,EAAS,CAOd,IADAzuF,GAHM+rD,KACG+3B,EAAUhD,CAAS,GAElB1jF,OACF4C,CAAC,MACRyuF,EA1MH,SAASC,EAAmBrC,GAyB3B,IAxBA,IAAIsC,EAAchD,EAAS56E,EAC1B67C,EAAMy/B,EAAOjvF,OACbwxF,EAAkBjL,EAAKvxC,SAAUi6C,EAAQ,GAAIz7D,MAC7Ci+D,EAAmBD,GAAmBjL,EAAKvxC,SAAU,KACrDpyC,EAAI4uF,EAAkB,EAAI,EAG1BE,EAAevI,GAAe,SAAU5pC,GACvC,OAAOA,IAASgyC,CACjB,EAAGE,EAAkB,EAAK,EAC1BE,EAAkBxI,GAAe,SAAU5pC,GAC1C,MAAuC,CAAC,EAAjCrxC,EAASqjF,EAAchyC,CAAK,CACpC,EAAGkyC,EAAkB,EAAK,EAC1BhC,EAAW,CAAE,SAAUlwC,EAAMkkB,EAASsqB,GAQrC,OAPI7Y,EAAQ,CAACsc,IAAqBzD,GAAOtqB,IAAYmjB,MAClD2K,EAAe9tB,GAAUyb,SAC1BwS,EACAC,GADcpyC,EAAMkkB,EAASsqB,CAAI,EAInCwD,EAAe,KACRrc,CACR,GAEOtyE,EAAI4sD,EAAK5sD,CAAC,GACjB,GAAO2rF,EAAUhI,EAAKvxC,SAAUi6C,EAAQrsF,GAAI4wB,MAC3Ci8D,EAAW,CAAEtG,GAAeqG,GAAgBC,CAAS,EAAGlB,CAAQ,OAC1D,CAIN,IAHAA,EAAUhI,EAAKzhF,OAAQmqF,EAAQrsF,GAAI4wB,MAAOia,MAAO,KAAMwhD,EAAQrsF,GAAIo2E,OAAQ,GAG7D2L,GAAY,CAIzB,IADAhxE,EAAI,EAAE/Q,EACE+Q,EAAI67C,GACN+2B,GAAKvxC,SAAUi6C,EAAQt7E,GAAI6f,MADhB7f,CAAC,IAKlB,OAAOk8E,GACF,EAAJjtF,GAAS4sF,GAAgBC,CAAS,EAC9B,EAAJ7sF,GAASinF,EAGToF,EACEvwE,MAAO,EAAG9b,EAAI,CAAE,EAChBmQ,OAAQ,CAAEtO,MAAgC,MAAzBwqF,EAAQrsF,EAAI,GAAI4wB,KAAe,IAAM,EAAG,CAAE,CAC7D,EAAErZ,QAASguE,EAAO,IAAK,EACvBoG,EACA3rF,EAAI+Q,GAAK29E,EAAmBrC,EAAOvwE,MAAO9b,EAAG+Q,CAAE,CAAE,EACjDA,EAAI67C,GAAO8hC,EAAqBrC,EAASA,EAAOvwE,MAAO/K,CAAE,CAAI,EAC7DA,EAAI67C,GAAOq6B,EAAYoF,CAAO,CAC/B,CACD,CACAQ,EAAStnF,KAAMomF,CAAQ,CACxB,CAGD,OAAOiB,GAAgBC,CAAS,CACjC,EA6I+B9gC,EAAO/rD,EAAI,GAC1B+hF,GACZ8L,EAEAD,GAFYroF,KAAMkpF,CAAO,GAO3BA,EAAS5J,EACR/D,EACA6M,GAA0BC,EAAiBC,CAAY,CACxD,GAGO/M,SAAWA,CACnB,CACA,OAAO2N,CACR,EAWA14C,EAASktC,EAAOltC,OAAS,SAAU+qC,EAAUjgB,EAAS9jE,EAAS2pF,GAC9D,IAAI1mF,EAAGqsF,EAAQ2C,EAAOp+D,EAAM1J,EAC3B+nE,EAA+B,YAApB,OAAOnO,GAA2BA,EAC7C/0B,EAAQ,CAAC26B,GAAQ5C,EAAYhD,EAAWmO,EAASnO,UAAYA,CAAW,EAMzE,GAJA/jF,EAAUA,GAAW,GAIC,IAAjBgvD,EAAM3uD,OAAe,CAIzB,GAAqB,GADrBivF,EAAStgC,EAAO,GAAMA,EAAO,GAAIjwC,MAAO,CAAE,GAC9B1e,QAA+C,QAA/B4xF,EAAQ3C,EAAQ,IAAMz7D,MAC5B,IAArBiwC,EAAQyb,UAAkB8H,GAAkBT,EAAKvxC,SAAUi6C,EAAQ,GAAIz7D,MAAS,CAIhF,GAAMiwC,EAFNA,GAAY8iB,EAAKz8D,KAAW,GAAG8nE,EAAM5Y,QAAS,GAC5C7+D,QAAS6uE,EAAWlD,CAAU,EAAGriB,CAAQ,GAAK,IAAM,IAErD,OAAO9jE,EAGIkyF,IACXpuB,EAAUA,EAAQmd,YAGnB8C,EAAWA,EAAShlE,MAAOuwE,EAAOh+E,MAAM,EAAExM,MAAMzE,MAAO,CACxD,CAIA,IADA4C,EAAI6lF,EAA0B,aAAEljC,KAAMm+B,CAAS,EAAI,EAAIuL,EAAOjvF,OACtD4C,CAAC,KACRgvF,EAAQ3C,EAAQrsF,GAGX2jF,GAAKvxC,SAAYxhB,EAAOo+D,EAAMp+D,QAGnC,IAAO1J,EAAOy8D,EAAKz8D,KAAM0J,MAGjB81D,EAAOx/D,EACb8nE,EAAM5Y,QAAS,GAAI7+D,QAAS6uE,EAAWlD,CAAU,EACjDiD,GAASxjC,KAAM0pC,EAAQ,GAAIz7D,IAAK,GAAKo2D,GAAanmB,EAAQmd,UAAW,GACpEnd,CACF,GAAM,CAKL,GAFAwrB,EAAOv9D,OAAQ9uB,EAAG,CAAE,EACpB8gF,EAAW4F,EAAKtpF,QAAU6pF,EAAYoF,CAAO,EAM7C,MAHC,OADA9mF,EAAKslC,MAAO9tC,EAAS2pF,CAAK,EACnB3pF,CAIT,CAGH,CAWA,OAPEkyF,GAAYlL,EAASjD,EAAU/0B,CAAM,GACtC26B,EACA7lB,EACA,CAACujB,EACDrnF,EACA,CAAC8jE,GAAWslB,GAASxjC,KAAMm+B,CAAS,GAAKkG,GAAanmB,EAAQmd,UAAW,GAAKnd,CAC/E,EACO9jE,CACR,EAKAwjF,EAAQ+J,WAAavI,EAAQzwE,MAAO,EAAG,EAAE9L,KAAMu/E,CAAU,EAAEj1E,KAAM,EAAG,IAAMiyE,EAI1ExB,EAAQ8J,iBAAmB,CAAC,CAACnG,EAG7BR,EAAY,EAIZnD,EAAQoJ,aAAelC,EAAQ,SAAUvgC,GAGxC,OAA4E,EAArEA,EAAGqiC,wBAAyBlyE,EAAS8c,cAAe,UAAW,CAAE,CACzE,CAAE,EAKIszD,EAAQ,SAAUvgC,GAEvB,OADAA,EAAGvvC,UAAY,mBACiC,MAAzCuvC,EAAGytB,WAAWL,aAAc,MAAO,CAC3C,CAAE,GACDoT,GAAW,yBAA0B,SAAU/qC,EAAMh4C,EAAMk/E,GAC1D,GAAK,CAACA,EACL,OAAOlnC,EAAK23B,aAAc3vE,EAA6B,SAAvBA,EAAKyR,YAAY,EAAe,EAAI,CAAE,CAExE,CAAE,EAKGmqE,EAAQ5kE,YAAe8rE,EAAQ,SAAUvgC,GAG9C,OAFAA,EAAGvvC,UAAY,WACfuvC,EAAGytB,WAAWC,aAAc,QAAS,EAAG,EACS,KAA1C1tB,EAAGytB,WAAWL,aAAc,OAAQ,CAC5C,CAAE,GACDoT,GAAW,QAAS,SAAU/qC,EAAM8e,EAAOooB,GAC1C,GAAK,CAACA,GAAyC,UAAhClnC,EAAK8/B,SAASrmE,YAAY,EACxC,OAAOumC,EAAKsB,YAEd,CAAE,EAKGwpC,EAAQ,SAAUvgC,GACvB,OAAwC,MAAjCA,EAAGotB,aAAc,UAAW,CACpC,CAAE,GACDoT,GAAWxC,EAAU,SAAUvoC,EAAMh4C,EAAMk/E,GAE1C,GAAK,CAACA,EACL,MAAwB,KAAjBlnC,EAAMh4C,GAAkBA,EAAKyR,YAAY,GAC7C0G,EAAM6/B,EAAKksC,iBAAkBlkF,CAAK,IAAOmY,EAAImtE,UAC9CntE,EAAIjb,MACJ,IAEJ,CAAE,EAGIohF,CAEL,EAAGpmF,CAAO,EA+CRqyF,GA3CJ7S,EAAOn1D,KAAO+7D,EACd5G,EAAO2N,KAAO/G,EAAOwH,UAGrBpO,EAAO2N,KAAM,KAAQ3N,EAAO2N,KAAK3E,QACjChJ,EAAO8N,WAAa9N,EAAO5yB,OAASw5B,EAAOkH,WAC3C9N,EAAOl9B,KAAO8jC,EAAOW,QACrBvH,EAAO8S,SAAWlM,EAAOY,MACzBxH,EAAOkI,SAAWtB,EAAOsB,SACzBlI,EAAO+S,eAAiBnM,EAAOE,OAkCX9G,EAAO2N,KAAKj+B,MAAMsjC,cAItC,SAAS5S,EAAU9/B,EAAMh4C,GAExB,OAAOg4C,EAAK8/B,UAAY9/B,EAAK8/B,SAASrmE,YAAY,IAAMzR,EAAKyR,YAAY,CAE1E,CACA,IAAIk5E,EAAa,kEAKjB,SAASC,EAAQ1Z,EAAU2Z,EAAWC,GACrC,OAAKntC,EAAYktC,CAAU,EACnBnT,EAAOmF,KAAM3L,EAAU,SAAUl5B,EAAM38C,GAC7C,MAAO,CAAC,CAACwvF,EAAU99D,KAAMirB,EAAM38C,EAAG28C,CAAK,IAAM8yC,CAC9C,CAAE,EAIED,EAAUlT,SACPD,EAAOmF,KAAM3L,EAAU,SAAUl5B,GACvC,OAASA,IAAS6yC,IAAgBC,CACnC,CAAE,EAIuB,UAArB,OAAOD,EACJnT,EAAOmF,KAAM3L,EAAU,SAAUl5B,GACvC,MAA2C,CAAC,EAAnCrxC,EAAQomB,KAAM89D,EAAW7yC,CAAK,IAAa8yC,CACrD,CAAE,EAIIpT,EAAOn6E,OAAQstF,EAAW3Z,EAAU4Z,CAAI,CAChD,CAEApT,EAAOn6E,OAAS,SAAU8nF,EAAMx5B,EAAOi/B,GACtC,IAAI9yC,EAAO6T,EAAO,GAMlB,OAJKi/B,IACJzF,EAAO,QAAUA,EAAO,KAGH,IAAjBx5B,EAAMpzD,QAAkC,IAAlBu/C,EAAK2/B,SACxBD,EAAOn1D,KAAK8hE,gBAAiBrsC,EAAMqtC,CAAK,EAAI,CAAErtC,GAAS,GAGxD0/B,EAAOn1D,KAAKkvD,QAAS4T,EAAM3N,EAAOmF,KAAMhxB,EAAO,SAAU7T,GAC/D,OAAyB,IAAlBA,EAAK2/B,QACb,CAAE,CAAE,CACL,EAEAD,EAAOxS,GAAGnrD,OAAQ,CACjBwI,KAAM,SAAU45D,GACf,IAAI9gF,EAAGsyE,EACN1lB,EAAM1oD,KAAK9G,OACX6G,EAAOC,KAER,GAAyB,UAApB,OAAO48E,EACX,OAAO58E,KAAKg9E,UAAW7E,EAAQyE,CAAS,EAAE5+E,OAAQ,WACjD,IAAMlC,EAAI,EAAGA,EAAI4sD,EAAK5sD,CAAC,GACtB,GAAKq8E,EAAOkI,SAAUtgF,EAAMjE,GAAKkE,IAAK,EACrC,MAAO,EAGV,CAAE,CAAE,EAKL,IAFAouE,EAAMpuE,KAAKg9E,UAAW,EAAG,EAEnBlhF,EAAI,EAAGA,EAAI4sD,EAAK5sD,CAAC,GACtBq8E,EAAOn1D,KAAM45D,EAAU78E,EAAMjE,GAAKsyE,CAAI,EAGvC,OAAa,EAAN1lB,EAAUyvB,EAAO8N,WAAY7X,CAAI,EAAIA,CAC7C,EACApwE,OAAQ,SAAU4+E,GACjB,OAAO58E,KAAKg9E,UAAWqO,EAAQrrF,KAAM48E,GAAY,GAAI,EAAM,CAAE,CAC9D,EACA2O,IAAK,SAAU3O,GACd,OAAO58E,KAAKg9E,UAAWqO,EAAQrrF,KAAM48E,GAAY,GAAI,EAAK,CAAE,CAC7D,EACA16C,GAAI,SAAU06C,GACb,MAAO,CAAC,CAACyO,EACRrrF,KAIoB,UAApB,OAAO48E,GAAyBoO,EAAcvsC,KAAMm+B,CAAS,EAC5DzE,EAAQyE,CAAS,EACjBA,GAAY,GACb,EACD,EAAE1jF,MACH,CACD,CAAE,EAOF,IAAIsyF,EAMHxJ,GAAa,sCA4GVyJ,KA1GItT,EAAOxS,GAAG72C,KAAO,SAAU8tD,EAAUjgB,EAASr3B,GAIpD,GAAMs3C,EAAN,CASA,GAHAt3C,EAAOA,GAAQkmD,EAGU,UAApB,OAAO5O,EAoEL,OAAKA,EAASxE,UACpBp4E,KAAM,GAAM48E,EACZ58E,KAAK9G,OAAS,EACP8G,MAIIo+C,EAAYw+B,CAAS,EACVzxE,SAAfm6B,EAAK+zC,MACX/zC,EAAK+zC,MAAOuD,CAAS,EAGrBA,EAAUzE,CAAO,EAGZA,EAAOgG,UAAWvB,EAAU58E,IAAK,EAtEvC,GAAK6nD,EAPJA,EALsB,MAAlB+0B,EAAU,IACsB,MAApCA,EAAUA,EAAS1jF,OAAS,IACT,GAAnB0jF,EAAS1jF,OAGD,CAAE,KAAM0jF,EAAU,MAGlBoF,GAAWjpF,KAAM6jF,CAAS,IAInB/0B,GAAO,IAAQ8U,EA6CxB,OAAK,CAACA,GAAWA,EAAQmgB,OACtBngB,GAAWr3B,EAKbtlC,KAAK2nE,YAAahL,CAAQ,GALN35C,KAAM45D,CAAS,EA3C1C,GAAK/0B,EAAO,IAYX,GAXA8U,EAAUA,aAAmBwb,EAASxb,EAAS,GAAMA,EAIrDwb,EAAO8E,MAAOj9E,KAAMm4E,EAAOuT,UAC1B7jC,EAAO,GACP8U,GAAWA,EAAQyb,SAAWzb,EAAQ0b,eAAiB1b,EAAUxpD,EACjE,EACD,CAAE,EAGGi4E,EAAW3sC,KAAMoJ,EAAO,EAAI,GAAKswB,EAAOyF,cAAejhB,CAAQ,EACnE,IAzCJ,IAAI9U,KAyCe8U,EAGTve,EAAYp+C,KAAM6nD,EAAQ,EAC9B7nD,KAAM6nD,GAAS8U,EAAS9U,EAAQ,EAIhC7nD,KAAK8sB,KAAM+6B,EAAO8U,EAAS9U,EAAQ,CAGtC,MAMApP,EAAOtlC,EAASC,eAAgBy0C,EAAO,EAAI,KAK1C7nD,KAAM,GAAMy4C,EACZz4C,KAAK9G,OAAS,EA3DlB,CA6DG,OAAO8G,IA8BX,GAGIutB,UAAY4qD,EAAOxS,GAGxB6lB,EAAarT,EAAQhlE,CAAS,EAGX,kCAGlBw4E,GAAmB,CAClB7wC,SAAU,GACVpB,SAAU,GACV/lC,KAAM,GACNu3B,KAAM,EACP,EAmFD,SAAS0gD,GAAShI,EAAKnF,GACtB,MAAUmF,EAAMA,EAAKnF,KAA4B,IAAjBmF,EAAIxL,WACpC,OAAOwL,CACR,CApFAzL,EAAOxS,GAAGnrD,OAAQ,CACjB0d,IAAK,SAAUxN,GACd,IAAImhE,EAAU1T,EAAQztD,EAAQ1qB,IAAK,EAClCsK,EAAIuhF,EAAQ3yF,OAEb,OAAO8G,KAAKhC,OAAQ,WAEnB,IADA,IAAIlC,EAAI,EACAA,EAAIwO,EAAGxO,CAAC,GACf,GAAKq8E,EAAOkI,SAAUrgF,KAAM6rF,EAAS/vF,EAAI,EACxC,MAAO,EAGV,CAAE,CACH,EAEAsrC,QAAS,SAAUm/C,EAAW5pB,GAC7B,IAAIinB,EACH9nF,EAAI,EACJwO,EAAItK,KAAK9G,OACTylF,EAAU,GACVkN,EAA+B,UAArB,OAAOtF,GAA0BpO,EAAQoO,CAAU,EAG9D,GAAK,CAACyE,EAAcvsC,KAAM8nC,CAAU,EACnC,KAAQzqF,EAAIwO,EAAGxO,CAAC,GACf,IAAM8nF,EAAM5jF,KAAMlE,GAAK8nF,GAAOA,IAAQjnB,EAASinB,EAAMA,EAAI9J,WAGxD,GAAK8J,EAAIxL,SAAW,KAAQyT,EACJ,CAAC,EAAxBA,EAAQxgE,MAAOu4D,CAAI,EAGF,IAAjBA,EAAIxL,UACHD,EAAOn1D,KAAK8hE,gBAAiBlB,EAAK2C,CAAU,GAAM,CAEnD5H,EAAQt9E,KAAMuiF,CAAI,EAClB,KACD,CAKH,OAAO5jF,KAAKg9E,UAA4B,EAAjB2B,EAAQzlF,OAAai/E,EAAO8N,WAAYtH,CAAQ,EAAIA,CAAQ,CACpF,EAGAtzD,MAAO,SAAUotB,GAGhB,OAAMA,EAKe,UAAhB,OAAOA,EACJrxC,EAAQomB,KAAM2qD,EAAQ1/B,CAAK,EAAGz4C,KAAM,EAAI,EAIzCoH,EAAQomB,KAAMxtB,KAGpBy4C,EAAKqkC,OAASrkC,EAAM,GAAMA,CAC3B,EAbUz4C,KAAM,IAAOA,KAAM,GAAI85E,WAAe95E,KAAKstE,MAAM,EAAEwe,QAAQ,EAAE5yF,OAAS,CAAC,CAclF,EAEA20E,IAAK,SAAU+O,EAAUjgB,GACxB,OAAO38D,KAAKg9E,UACX7E,EAAO8N,WACN9N,EAAO8E,MAAOj9E,KAAK8Y,IAAI,EAAGq/D,EAAQyE,EAAUjgB,CAAQ,CAAE,CACvD,CACD,CACD,EAEAovB,QAAS,SAAUnP,GAClB,OAAO58E,KAAK6tE,IAAiB,MAAZ+O,EAChB58E,KAAKk9E,WAAal9E,KAAKk9E,WAAWl/E,OAAQ4+E,CAAS,CACpD,CACD,CACD,CAAE,EAOFzE,EAAOgF,KAAM,CACZtxD,OAAQ,SAAU4sB,GACb5sB,EAAS4sB,EAAKqhC,WAClB,OAAOjuD,GAA8B,KAApBA,EAAOusD,SAAkBvsD,EAAS,IACpD,EACAkW,QAAS,SAAU0W,GAClB,OAAOgmC,EAAKhmC,EAAM,YAAa,CAChC,EACAuzC,aAAc,SAAUvzC,EAAMs4B,EAAI2N,GACjC,OAAOD,EAAKhmC,EAAM,aAAcimC,CAAM,CACvC,EACA/qE,KAAM,SAAU8kC,GACf,OAAOmzC,GAASnzC,EAAM,aAAc,CACrC,EACAvN,KAAM,SAAUuN,GACf,OAAOmzC,GAASnzC,EAAM,iBAAkB,CACzC,EACAwzC,QAAS,SAAUxzC,GAClB,OAAOgmC,EAAKhmC,EAAM,aAAc,CACjC,EACAqzC,QAAS,SAAUrzC,GAClB,OAAOgmC,EAAKhmC,EAAM,iBAAkB,CACrC,EACAyzC,UAAW,SAAUzzC,EAAMs4B,EAAI2N,GAC9B,OAAOD,EAAKhmC,EAAM,cAAeimC,CAAM,CACxC,EACAyN,UAAW,SAAU1zC,EAAMs4B,EAAI2N,GAC9B,OAAOD,EAAKhmC,EAAM,kBAAmBimC,CAAM,CAC5C,EACAG,SAAU,SAAUpmC,GACnB,OAAOomC,GAAYpmC,EAAKqhC,YAAc,IAAKrJ,WAAYh4B,CAAK,CAC7D,EACAqC,SAAU,SAAUrC,GACnB,OAAOomC,EAAUpmC,EAAKg4B,UAAW,CAClC,EACA/2B,SAAU,SAAUjB,GACnB,OAA6B,MAAxBA,EAAK2zC,iBAKTrmB,EAAUttB,EAAK2zC,eAAgB,EAExB3zC,EAAK2zC,iBAMR7T,EAAU9/B,EAAM,UAAW,IAC/BA,EAAOA,EAAKgB,SAAWhB,GAGjB0/B,EAAO8E,MAAO,GAAIxkC,EAAK6pC,UAAW,EAC1C,CACD,EAAG,SAAU7hF,EAAMklE,GAClBwS,EAAOxS,GAAIllE,GAAS,SAAUi+E,EAAO9B,GACpC,IAAI+B,EAAUxG,EAAOvgF,IAAKoI,KAAM2lE,EAAI+Y,CAAM,EAuB1C,OApBC9B,EADyB,UAArBn8E,EAAKmX,MAAO,CAAC,CAAE,EACR8mE,EAGP9B,IAAgC,UAApB,OAAOA,IACvB+B,EAAUxG,EAAOn6E,OAAQ4+E,EAAU+B,CAAQ,GAGzB,EAAd3+E,KAAK9G,SAGHyyF,GAAkBlrF,IACvB03E,EAAO8N,WAAYtH,CAAQ,EAIvB8M,GAAahtC,KAAMh+C,CAAK,IAC5Bk+E,EAAQzW,QAAQ,EAIXloE,KAAKg9E,UAAW2B,CAAQ,CAChC,CACD,CAAE,EACF,IAAI0N,EAAgB,oBAsOpB,SAASC,EAAUx+B,GAClB,OAAOA,CACR,CACA,SAASy+B,GAASC,GACjB,MAAMA,CACP,CAEA,SAASC,GAAY9uF,EAAOnF,EAAS4hB,EAAQsyE,GAC5C,IAAIpyB,EAEJ,IAGM38D,GAASygD,EAAckc,EAAS38D,EAAMif,OAAU,EACpD09C,EAAO9sC,KAAM7vB,CAAM,EAAEupB,KAAM1uB,CAAQ,EAAEm0F,KAAMvyE,CAAO,EAGvCzc,GAASygD,EAAckc,EAAS38D,EAAMxC,IAAO,EACxDm/D,EAAO9sC,KAAM7vB,EAAOnF,EAAS4hB,CAAO,EAQpC5hB,EAAQmuC,MAAOx7B,OAAW,CAAExN,GAAQia,MAAO80E,CAAQ,CAAE,CAWvD,CALE,MAAQ/uF,GAITyc,EAAOusB,MAAOx7B,OAAW,CAAExN,EAAQ,CACpC,CACD,CAzOAw6E,EAAOyU,UAAY,SAAU/zC,GA9B7B,IAAwBA,EACnB2pB,EAiCJ3pB,EAA6B,UAAnB,OAAOA,GAlCMA,EAmCPA,EAlCZ2pB,EAAS,GACb2V,EAAOgF,KAAMtkC,EAAQgP,MAAOwkC,CAAc,GAAK,GAAI,SAAUlpE,EAAGixC,GAC/DoO,EAAQpO,GAAS,EAClB,CAAE,EACKoO,GA+BN2V,EAAO39D,OAAQ,GAAIq+B,CAAQ,EAwBpB,SAAPg0C,IAQC,IALAC,EAASA,GAAUj0C,EAAQk/B,KAI3BgV,EAAQC,EAAS,GACTC,EAAM/zF,OAAQg0F,EAAc,CAAC,EAEpC,IADAC,EAASF,EAAM9iF,MAAM,EACb,EAAE+iF,EAAcnM,EAAK7nF,QAGmC,KAA1D6nF,EAAMmM,GAAcvmD,MAAOwmD,EAAQ,GAAKA,EAAQ,EAAI,GACxDt0C,EAAQu0C,cAGRF,EAAcnM,EAAK7nF,OACnBi0F,EAAS,IAMNt0C,EAAQs0C,SACbA,EAAS,IAGVH,EAAS,GAGJF,IAIH/L,EADIoM,EACG,GAIA,GAGV,CAhED,IACCH,EAGAG,EAGAJ,EAGAD,EAGA/L,EAAO,GAGPkM,EAAQ,GAGRC,EAAc,CAAC,EAgDfntF,EAAO,CAGN8tE,IAAK,WA2BJ,OA1BKkT,IAGCoM,GAAU,CAACH,IACfE,EAAcnM,EAAK7nF,OAAS,EAC5B+zF,EAAM5rF,KAAM8rF,CAAO,GAGpB,SAAWtf,EAAKvE,GACf6O,EAAOgF,KAAM7T,EAAM,SAAUnmD,EAAGuhD,GAC1BtmB,EAAYsmB,CAAI,EACd7rB,EAAQ0M,QAAWxlD,EAAKm4B,IAAKwsC,CAAI,GACtCqc,EAAK1/E,KAAMqjE,CAAI,EAELA,GAAOA,EAAIxrE,QAA4B,WAAlByjF,EAAQjY,CAAI,GAG5CmJ,EAAKnJ,CAAI,CAEX,CAAE,CACD,EAAG99B,SAAU,EAEVumD,IAAU,CAACH,GACfH,EAAK,EAGA7sF,IACR,EAGAsW,OAAQ,WAYP,OAXA6hE,EAAOgF,KAAMv2C,UAAW,SAAUzjB,EAAGuhD,GAEpC,IADA,IAAIr5C,EACqD,CAAC,GAAhDA,EAAQ8sD,EAAOiG,QAAS1Z,EAAKqc,EAAM11D,CAAM,IAClD01D,EAAKn2D,OAAQS,EAAO,CAAE,EAGjBA,GAAS6hE,GACbA,CAAW,EAGd,CAAE,EACKltF,IACR,EAIAk4B,IAAK,SAAUytC,GACd,OAAOA,EACuB,CAAC,EAA9BwS,EAAOiG,QAASzY,EAAIob,CAAK,EACX,EAAdA,EAAK7nF,MACP,EAGAunB,MAAO,WAIN,OAHKsgE,KACG,GAED/gF,IACR,EAKAqtF,QAAS,WAGR,OAFAP,EAASG,EAAQ,GACjBlM,EAAOoM,EAAS,GACTntF,IACR,EACAo9C,SAAU,WACT,MAAO,CAAC2jC,CACT,EAKAuM,KAAM,WAKL,OAJAR,EAASG,EAAQ,GACXE,GAAWH,IAChBjM,EAAOoM,EAAS,IAEVntF,IACR,EACA8sF,OAAQ,WACP,MAAO,CAAC,CAACA,CACV,EAGAS,SAAU,SAAU5wB,EAAS2M,GAS5B,OARMwjB,IAELxjB,EAAO,CAAE3M,GADT2M,EAAOA,GAAQ,IACQ1xD,MAAQ0xD,EAAK1xD,MAAM,EAAI0xD,GAC9C2jB,EAAM5rF,KAAMioE,CAAK,EACX0jB,IACLH,EAAK,EAGA7sF,IACR,EAGA6sF,KAAM,WAEL,OADA9sF,EAAKwtF,SAAUvtF,KAAM4mC,SAAU,EACxB5mC,IACR,EAGA+sF,MAAO,WACN,MAAO,CAAC,CAACA,CACV,CACD,EAED,OAAOhtF,CACR,EA2CAo4E,EAAO39D,OAAQ,CAEdgzE,SAAU,SAAUC,GACnB,IAAIC,EAAS,CAIX,CAAE,SAAU,WAAYvV,EAAOyU,UAAW,QAAS,EAClDzU,EAAOyU,UAAW,QAAS,EAAG,GAC/B,CAAE,UAAW,OAAQzU,EAAOyU,UAAW,aAAc,EACpDzU,EAAOyU,UAAW,aAAc,EAAG,EAAG,YACvC,CAAE,SAAU,OAAQzU,EAAOyU,UAAW,aAAc,EACnDzU,EAAOyU,UAAW,aAAc,EAAG,EAAG,aAExC/yF,EAAQ,UACR+iB,EAAU,CACT/iB,MAAO,WACN,OAAOA,CACR,EACA8zF,OAAQ,WAEP,OADAC,EAAS1mE,KAAM0f,SAAU,EAAE+lD,KAAM/lD,SAAU,EACpC5mC,IACR,EACA,MAAS,SAAU2lE,GAClB,OAAO/oD,EAAQzhB,KAAM,KAAMwqE,CAAG,CAC/B,EAGAkoB,KAAM,WACL,IAAIC,EAAMlnD,UAEV,OAAOuxC,EAAOqV,SAAU,SAAUO,GACjC5V,EAAOgF,KAAMuQ,EAAQ,SAAU3c,EAAIid,GAGlC,IAAIroB,EAAKvnB,EAAY0vC,EAAKE,EAAO,GAAM,GAAKF,EAAKE,EAAO,IAKxDJ,EAAUI,EAAO,IAAO,WACvB,IAAIC,EAAWtoB,GAAMA,EAAGh/B,MAAO3mC,KAAM4mC,SAAU,EAC1CqnD,GAAY7vC,EAAY6vC,EAASrxE,OAAQ,EAC7CqxE,EAASrxE,QAAQ,EACf06B,SAAUy2C,EAAS7f,MAAO,EAC1BhnD,KAAM6mE,EAASv1F,OAAQ,EACvBm0F,KAAMoB,EAAS3zE,MAAO,EAExB2zE,EAAUC,EAAO,GAAM,QACtBhuF,KACA2lE,EAAK,CAAEsoB,GAAarnD,SACrB,CAEF,CAAE,CACH,CAAE,EACFknD,EAAM,IACP,CAAE,EAAElxE,QAAQ,CACb,EACAzhB,KAAM,SAAU+yF,EAAaC,EAAYC,GACxC,IAAIC,EAAW,EACf,SAAS71F,EAAS81F,EAAOV,EAAUnK,EAAS8K,GAC3C,OAAO,WAGQ,SAAbC,IACC,IAAIP,EAAU9yF,EAKd,GAAKmzF,IAAQD,GAAb,CAQA,IAJAJ,EAAWxK,EAAQ98C,MAAO8nD,EAAMnlB,CAAK,KAInBskB,EAAShxE,QAAQ,EAClC,MAAM,IAAIqoD,UAAW,0BAA2B,EAOjD9pE,EAAO8yF,IAKgB,UAApB,OAAOA,GACY,YAApB,OAAOA,IACRA,EAAS9yF,KAGLijD,EAAYjjD,CAAK,EAGhBozF,EACJpzF,EAAKqyB,KACJygE,EACAz1F,EAAS61F,EAAUT,EAAUtB,EAAUiC,CAAQ,EAC/C/1F,EAAS61F,EAAUT,EAAUrB,GAASgC,CAAQ,CAC/C,GAMAF,CAAQ,GAERlzF,EAAKqyB,KACJygE,EACAz1F,EAAS61F,EAAUT,EAAUtB,EAAUiC,CAAQ,EAC/C/1F,EAAS61F,EAAUT,EAAUrB,GAASgC,CAAQ,EAC9C/1F,EAAS61F,EAAUT,EAAUtB,EAC5BsB,EAASc,UAAW,CACtB,IAQIjL,IAAY6I,IAChBmC,EAAOtjF,OACPm+D,EAAO,CAAE2kB,KAKRM,GAAWX,EAASe,aAAeF,EAAMnlB,CAAK,EA7DjD,CA+DD,CAzED,IAAImlB,EAAOzuF,KACVspE,EAAO1iC,UA2EPjQ,EAAU43D,EACTC,EACA,WACC,IACCA,EAAW,CAsBZ,CArBE,MAAQr2F,GAEJggF,EAAOqV,SAASoB,eACpBzW,EAAOqV,SAASoB,cAAez2F,EAC9Bw+B,EAAQk4D,UAAW,EAMHR,GAAbC,EAAQ,IAIP7K,IAAY8I,KAChBkC,EAAOtjF,OACPm+D,EAAO,CAAEnxE,IAGVy1F,EAASkB,WAAYL,EAAMnlB,CAAK,EAElC,CACD,EAMGglB,EACJ33D,EAAQ,GAKHwhD,EAAOqV,SAASuB,eACpBp4D,EAAQk4D,WAAa1W,EAAOqV,SAASuB,aAAa,GAEnDp2F,EAAO+lB,WAAYiY,CAAQ,EAE7B,CACD,CAEA,OAAOwhD,EAAOqV,SAAU,SAAUO,GAGjCL,EAAQ,GAAK,GAAI7f,IAChBr1E,EACC,EACAu1F,EACA3vC,EAAYgwC,CAAW,EACtBA,EACA9B,EACDyB,EAASW,UACV,CACD,EAGAhB,EAAQ,GAAK,GAAI7f,IAChBr1E,EACC,EACAu1F,EACA3vC,EAAY8vC,CAAY,EACvBA,EACA5B,CACF,CACD,EAGAoB,EAAQ,GAAK,GAAI7f,IAChBr1E,EACC,EACAu1F,EACA3vC,EAAY+vC,CAAW,EACtBA,EACA5B,EACF,CACD,CACD,CAAE,EAAE3vE,QAAQ,CACb,EAIAA,QAAS,SAAUyM,GAClB,OAAc,MAAPA,EAAc8uD,EAAO39D,OAAQ6O,EAAKzM,CAAQ,EAAIA,CACtD,CACD,EACAgxE,EAAW,GAkEZ,OA/DAzV,EAAOgF,KAAMuQ,EAAQ,SAAU5xF,EAAGkyF,GACjC,IAAIjN,EAAOiN,EAAO,GACjBgB,EAAchB,EAAO,GAKtBpxE,EAASoxE,EAAO,IAAQjN,EAAKlT,IAGxBmhB,GACJjO,EAAKlT,IACJ,WAICh0E,EAAQm1F,CACT,EAIAtB,EAAQ,EAAI5xF,GAAK,GAAIuxF,QAIrBK,EAAQ,EAAI5xF,GAAK,GAAIuxF,QAGrBK,EAAQ,GAAK,GAAIJ,KAGjBI,EAAQ,GAAK,GAAIJ,IAClB,EAMDvM,EAAKlT,IAAKmgB,EAAO,GAAInB,IAAK,EAK1Be,EAAUI,EAAO,IAAQ,WAExB,OADAJ,EAAUI,EAAO,GAAM,QAAUhuF,OAAS4tF,EAAWziF,OAAYnL,KAAM4mC,SAAU,EAC1E5mC,IACR,EAKA4tF,EAAUI,EAAO,GAAM,QAAWjN,EAAKwM,QACxC,CAAE,EAGF3wE,EAAQA,QAASgxE,CAAS,EAGrBH,GACJA,EAAKjgE,KAAMogE,EAAUA,CAAS,EAIxBA,CACR,EAGAl0F,KAAM,SAAUu1F,GAiBD,SAAbC,EAAuBpzF,GACtB,OAAO,SAAU6B,GAChBwxF,EAAiBrzF,GAAMkE,KACvBovF,EAAetzF,GAAyB,EAAnB8qC,UAAU1tC,OAAa0e,EAAM4V,KAAMoZ,SAAU,EAAIjpC,EAChE,EAAI0xF,GACTC,EAAQX,YAAaQ,EAAiBC,CAAc,CAEtD,CACD,CAxBD,IAGCC,EAAYzoD,UAAU1tC,OAGtB4C,EAAIuzF,EAGJF,EAAkBt5D,MAAO/5B,CAAE,EAC3BszF,EAAgBx3E,EAAM4V,KAAMoZ,SAAU,EAGtC0oD,EAAUnX,EAAOqV,SAAS,EAc3B,GAAK6B,GAAa,IACjB5C,GAAYwC,EAAaK,EAAQpoE,KAAMgoE,EAAYpzF,CAAE,CAAE,EAAEtD,QAAS82F,EAAQl1E,OACzE,CAACi1E,CAAU,EAGa,YAApBC,EAAQz1F,MAAM,GAClBukD,EAAYgxC,EAAetzF,IAAOszF,EAAetzF,GAAIX,IAAK,GAE1D,OAAOm0F,EAAQn0F,KAAK,EAKtB,KAAQW,CAAC,IACR2wF,GAAY2C,EAAetzF,GAAKozF,EAAYpzF,CAAE,EAAGwzF,EAAQl1E,MAAO,EAGjE,OAAOk1E,EAAQ1yE,QAAQ,CACxB,CACD,CAAE,EAKF,IAAI2yE,GAAc,yDAwBdC,IAtBJrX,EAAOqV,SAASoB,cAAgB,SAAU13E,EAAOu4E,GAI3C92F,EAAO6f,SAAW7f,EAAO6f,QAAQo3D,MAAQ14D,GAASq4E,GAAY9wC,KAAMvnC,EAAMzW,IAAK,GACnF9H,EAAO6f,QAAQo3D,KAAM,8BAAgC14D,EAAMqjD,QAASrjD,EAAMu4E,MAAOA,CAAM,CAEzF,EAKAtX,EAAOuX,eAAiB,SAAUx4E,GACjCve,EAAO+lB,WAAY,WAClB,MAAMxH,CACP,CAAE,CACH,EAMgBihE,EAAOqV,SAAS,GAkDhC,SAASmC,KACRx8E,EAAS6mE,oBAAqB,mBAAoB2V,EAAU,EAC5Dh3F,EAAOqhF,oBAAqB,OAAQ2V,EAAU,EAC9CxX,EAAOkB,MAAM,CACd,CApDAlB,EAAOxS,GAAG0T,MAAQ,SAAU1T,GAY3B,OAVA6pB,GACEr0F,KAAMwqE,CAAG,EAKTmD,MAAO,SAAU5xD,GACjBihE,EAAOuX,eAAgBx4E,CAAM,CAC9B,CAAE,EAEIlX,IACR,EAEAm4E,EAAO39D,OAAQ,CAGdsjE,QAAS,GAIT8R,UAAW,EAGXvW,MAAO,SAAU11B,IAGF,KAATA,EAAgB,EAAEw0B,EAAOyX,UAAYzX,EAAO2F,WAKjD3F,EAAO2F,QAAU,MAGZn6B,GAAsC,EAArB,EAAEw0B,EAAOyX,WAK/BJ,GAAUb,YAAax7E,EAAU,CAAEglE,EAAS,CAC7C,CACD,CAAE,EAEFA,EAAOkB,MAAMl+E,KAAOq0F,GAAUr0F,KAaD,aAAxBgY,EAAS2kE,YACa,YAAxB3kE,EAAS2kE,YAA4B,CAAC3kE,EAAS+nE,gBAAgB2U,SAGjEl3F,EAAO+lB,WAAYy5D,EAAOkB,KAAM,GAKhClmE,EAAS22B,iBAAkB,mBAAoB6lD,EAAU,EAGzDh3F,EAAOmxC,iBAAkB,OAAQ6lD,EAAU,GAQ/B,SAATG,EAAmBxjC,EAAOqZ,EAAI99D,EAAKlK,EAAOoyF,EAAWC,EAAUC,GAClE,IAAIn0F,EAAI,EACP4sD,EAAM4D,EAAMpzD,OACZg3F,EAAc,MAAProF,EAGR,GAAuB,WAAlB80E,EAAQ90E,CAAI,EAEhB,IAAM/L,KADNi0F,EAAY,GACDloF,EACVioF,EAAQxjC,EAAOqZ,EAAI7pE,EAAG+L,EAAK/L,GAAK,GAAMk0F,EAAUC,CAAI,OAI/C,GAAe9kF,SAAVxN,IACXoyF,EAAY,GAEN3xC,EAAYzgD,CAAM,IACvBsyF,EAAM,IAQLtqB,EALGuqB,EAGCD,GACJtqB,EAAGn4C,KAAM8+B,EAAO3uD,CAAM,EACjB,OAILuyF,EAAOvqB,EACF,SAAUltB,EAAM03C,EAAMxyF,GAC1B,OAAOuyF,EAAK1iE,KAAM2qD,EAAQ1/B,CAAK,EAAG96C,CAAM,CACzC,GAIGgoE,GACJ,KAAQ7pE,EAAI4sD,EAAK5sD,CAAC,GACjB6pE,EACCrZ,EAAOxwD,GAAK+L,EAAKooF,EAChBtyF,EACAA,EAAM6vB,KAAM8+B,EAAOxwD,GAAKA,EAAG6pE,EAAIrZ,EAAOxwD,GAAK+L,CAAI,CAAE,CACnD,EAKH,OAAKkoF,EACGzjC,EAIH4jC,EACGvqB,EAAGn4C,KAAM8+B,CAAM,EAGhB5D,EAAMid,EAAIrZ,EAAO,GAAKzkD,CAAI,EAAImoF,CACtC,CAzDA,IA6DII,GAAY,QACfC,GAAa,YAGd,SAASC,GAAYC,EAAMC,GAC1B,OAAOA,EAAOv4E,YAAY,CAC3B,CAKA,SAASw4E,EAAWC,GACnB,OAAOA,EAAOr9E,QAAS+8E,GAAW,KAAM,EAAE/8E,QAASg9E,GAAYC,EAAW,CAC3E,CACiB,SAAbK,EAAuBC,GAQ1B,OAA0B,IAAnBA,EAAMxY,UAAqC,IAAnBwY,EAAMxY,UAAkB,CAAC,CAAGwY,EAAMxY,QAClE,CAKA,SAASn1C,KACRjjC,KAAK69E,QAAU1F,EAAO0F,QAAU56C,GAAK4tD,GAAG,EACzC,CAEA5tD,GAAK4tD,IAAM,EAEX5tD,GAAK1V,UAAY,CAEhB61D,MAAO,SAAUwN,GAGhB,IAAIjzF,EAAQizF,EAAO5wF,KAAK69E,SA4BxB,OAzBMlgF,IACLA,EAAQ,GAKHgzF,EAAYC,CAAM,IAIjBA,EAAMxY,SACVwY,EAAO5wF,KAAK69E,SAAYlgF,EAMxBpF,OAAO4qE,eAAgBytB,EAAO5wF,KAAK69E,QAAS,CAC3ClgF,MAAOA,EACPqmE,aAAc,EACf,CAAE,IAKErmE,CACR,EACAgb,IAAK,SAAUi4E,EAAOt2F,EAAMqD,GAC3B,IAAI2vB,EACH81D,EAAQpjF,KAAKojF,MAAOwN,CAAM,EAI3B,GAAqB,UAAhB,OAAOt2F,EACX8oF,EAAOqN,EAAWn2F,CAAK,GAAMqD,OAM7B,IAAM2vB,KAAQhzB,EACb8oF,EAAOqN,EAAWnjE,CAAK,GAAMhzB,EAAMgzB,GAGrC,OAAO81D,CACR,EACAtqE,IAAK,SAAU83E,EAAO/oF,GACrB,OAAesD,SAARtD,EACN7H,KAAKojF,MAAOwN,CAAM,EAGlBA,EAAO5wF,KAAK69E,UAAa+S,EAAO5wF,KAAK69E,SAAW4S,EAAW5oF,CAAI,EACjE,EACAioF,OAAQ,SAAUc,EAAO/oF,EAAKlK,GAa7B,OAAawN,SAARtD,GACCA,GAAsB,UAAf,OAAOA,GAAgCsD,SAAVxN,EAElCqC,KAAK8Y,IAAK83E,EAAO/oF,CAAI,GAS7B7H,KAAK2Y,IAAKi4E,EAAO/oF,EAAKlK,CAAM,EAIXwN,SAAVxN,EAAsBA,EAAQkK,EACtC,EACAyO,OAAQ,SAAUs6E,EAAO/oF,GACxB,IAAI/L,EACHsnF,EAAQwN,EAAO5wF,KAAK69E,SAErB,GAAe1yE,SAAVi4E,EAAL,CAIA,GAAaj4E,SAARtD,EAAoB,CAkBxB/L,GAXC+L,EAJIguB,MAAMC,QAASjuB,CAAI,EAIjBA,EAAIjQ,IAAK64F,CAAU,GAEzB5oF,EAAM4oF,EAAW5oF,CAAI,KAIRu7E,EACZ,CAAEv7E,GACAA,EAAIggD,MAAOwkC,CAAc,GAAK,IAG1BnzF,OAER,KAAQ4C,CAAC,IACR,OAAOsnF,EAAOv7E,EAAK/L,GAErB,CAGaqP,SAARtD,GAAqBswE,GAAO8F,cAAemF,CAAM,IAMhDwN,EAAMxY,SACVwY,EAAO5wF,KAAK69E,SAAY1yE,OAExB,OAAOylF,EAAO5wF,KAAK69E,SArCrB,CAwCD,EACAhnD,QAAS,SAAU+5D,GACdxN,EAAQwN,EAAO5wF,KAAK69E,SACxB,OAAiB1yE,SAAVi4E,GAAuB,CAACjL,EAAO8F,cAAemF,CAAM,CAC5D,CACD,EACA,IAAI0N,EAAW,IAAI7tD,GAEf8tD,EAAW,IAAI9tD,GAcf+tD,GAAS,gCACZC,GAAa,SA2Bd,SAASC,GAAUz4C,EAAM5wC,EAAKvN,GAC7B,IAAImG,EA1BanG,EA8BjB,GAAc6Q,SAAT7Q,GAAwC,IAAlBm+C,EAAK2/B,SAI/B,GAHA33E,EAAO,QAAUoH,EAAIwL,QAAS49E,GAAY,KAAM,EAAE/+E,YAAY,EAGzC,UAAhB,OAFL5X,EAAOm+C,EAAK23B,aAAc3vE,CAAK,GAEC,CAC/B,IACCnG,EAnCW,UADGA,EAoCEA,IA/BL,UAATA,IAIS,SAATA,EACG,KAIHA,IAAS,CAACA,EAAO,GACd,CAACA,EAGJ02F,GAAOvyC,KAAMnkD,CAAK,EACf6xB,KAAKC,MAAO9xB,CAAK,EAGlBA,EAeU,CAAb,MAAQnC,IAGV44F,EAASp4E,IAAK8/B,EAAM5wC,EAAKvN,CAAK,CAC/B,MACCA,EAAO6Q,OAGT,OAAO7Q,CACR,CAEA69E,EAAO39D,OAAQ,CACdqc,QAAS,SAAU4hB,GAClB,OAAOs4C,EAASl6D,QAAS4hB,CAAK,GAAKq4C,EAASj6D,QAAS4hB,CAAK,CAC3D,EAEAn+C,KAAM,SAAUm+C,EAAMh4C,EAAMnG,GAC3B,OAAOy2F,EAASjB,OAAQr3C,EAAMh4C,EAAMnG,CAAK,CAC1C,EAEA62F,WAAY,SAAU14C,EAAMh4C,GAC3BswF,EAASz6E,OAAQmiC,EAAMh4C,CAAK,CAC7B,EAIAi3D,MAAO,SAAUjf,EAAMh4C,EAAMnG,GAC5B,OAAOw2F,EAAShB,OAAQr3C,EAAMh4C,EAAMnG,CAAK,CAC1C,EAEA82F,YAAa,SAAU34C,EAAMh4C,GAC5BqwF,EAASx6E,OAAQmiC,EAAMh4C,CAAK,CAC7B,CACD,CAAE,EAEF03E,EAAOxS,GAAGnrD,OAAQ,CACjBlgB,KAAM,SAAUuN,EAAKlK,GACpB,IAAI7B,EAAG2E,EAAMnG,EACZm+C,EAAOz4C,KAAM,GACb43C,EAAQa,GAAQA,EAAKhhC,WAGtB,GAAatM,SAARtD,EA0BL,MAAoB,UAAf,OAAOA,EACJ7H,KAAKm9E,KAAM,WACjB4T,EAASp4E,IAAK3Y,KAAM6H,CAAI,CACzB,CAAE,EAGIioF,EAAQ9vF,KAAM,SAAUrC,GAC9B,IAAIrD,EAOJ,GAAKm+C,GAAkBttC,SAAVxN,EAKZ,OAAcwN,UADd7Q,EAAOy2F,EAASj4E,IAAK2/B,EAAM5wC,CAAI,IAQjBsD,UADd7Q,EAAO42F,GAAUz4C,EAAM5wC,CAAI,GAEnBvN,EAIR,OAID0F,KAAKm9E,KAAM,WAGV4T,EAASp4E,IAAK3Y,KAAM6H,EAAKlK,CAAM,CAChC,CAAE,CACH,EAAG,KAAMA,EAA0B,EAAnBipC,UAAU1tC,OAAY,KAAM,EAAK,EAjEhD,GAAK8G,KAAK9G,SACToB,EAAOy2F,EAASj4E,IAAK2/B,CAAK,EAEH,IAAlBA,EAAK2/B,WAAkB,CAAC0Y,EAASh4E,IAAK2/B,EAAM,cAAe,EAAI,CAEnE,IADA38C,EAAI87C,EAAM1+C,OACF4C,CAAC,IAIH87C,EAAO97C,IAEsB,KADjC2E,EAAOm3C,EAAO97C,GAAI2E,MACR2G,QAAS,OAAQ,IAC1B3G,EAAOgwF,EAAWhwF,EAAKmX,MAAO,CAAE,CAAE,EAClCs5E,GAAUz4C,EAAMh4C,EAAMnG,EAAMmG,EAAO,GAItCqwF,EAASn4E,IAAK8/B,EAAM,eAAgB,EAAK,CAC1C,CAGD,OAAOn+C,CA6CT,EAEA62F,WAAY,SAAUtpF,GACrB,OAAO7H,KAAKm9E,KAAM,WACjB4T,EAASz6E,OAAQtW,KAAM6H,CAAI,CAC5B,CAAE,CACH,CACD,CAAE,EAGFswE,EAAO39D,OAAQ,CACdyyE,MAAO,SAAUx0C,EAAM/rB,EAAMpyB,GAC5B,IAAI2yF,EAEJ,GAAKx0C,EAYJ,OAVAw0C,EAAQ6D,EAASh4E,IAAK2/B,EADtB/rB,GAASA,GAAQ,MAAS,OACO,EAG5BpyB,IACC,CAAC2yF,GAASp3D,MAAMC,QAASx7B,CAAK,EAClC2yF,EAAQ6D,EAAShB,OAAQr3C,EAAM/rB,EAAMyrD,EAAOgG,UAAW7jF,CAAK,CAAE,EAE9D2yF,EAAM5rF,KAAM/G,CAAK,GAGZ2yF,GAAS,EAElB,EAEAoE,QAAS,SAAU54C,EAAM/rB,GACxBA,EAAOA,GAAQ,KAEf,IAAIugE,EAAQ9U,EAAO8U,MAAOx0C,EAAM/rB,CAAK,EACpC4kE,EAAcrE,EAAM/zF,OACpBysE,EAAKsnB,EAAM9iF,MAAM,EACjBonF,EAAQpZ,EAAOqZ,YAAa/4C,EAAM/rB,CAAK,EAM5B,eAAPi5C,IACJA,EAAKsnB,EAAM9iF,MAAM,EACjBmnF,CAAW,IAGP3rB,IAIU,OAATj5C,GACJugE,EAAMpH,QAAS,YAAa,EAI7B,OAAO0L,EAAMnpB,KACbzC,EAAGn4C,KAAMirB,EApBF,WACN0/B,EAAOkZ,QAAS54C,EAAM/rB,CAAK,CAC5B,EAkBqB6kE,CAAM,GAGvB,CAACD,GAAeC,GACpBA,EAAM9wE,MAAMosE,KAAK,CAEnB,EAGA2E,YAAa,SAAU/4C,EAAM/rB,GAC5B,IAAI7kB,EAAM6kB,EAAO,aACjB,OAAOokE,EAASh4E,IAAK2/B,EAAM5wC,CAAI,GAAKipF,EAAShB,OAAQr3C,EAAM5wC,EAAK,CAC/D4Y,MAAO03D,EAAOyU,UAAW,aAAc,EAAE/e,IAAK,WAC7CijB,EAASx6E,OAAQmiC,EAAM,CAAE/rB,EAAO,QAAS7kB,EAAM,CAChD,CAAE,CACH,CAAE,CACH,CACD,CAAE,EAEFswE,EAAOxS,GAAGnrD,OAAQ,CACjByyE,MAAO,SAAUvgE,EAAMpyB,GACtB,IAAIm3F,EAAS,EAQb,MANqB,UAAhB,OAAO/kE,IACXpyB,EAAOoyB,EACPA,EAAO,KACP+kE,CAAM,IAGF7qD,UAAU1tC,OAASu4F,EAChBtZ,EAAO8U,MAAOjtF,KAAM,GAAK0sB,CAAK,EAGtBvhB,SAAT7Q,EACN0F,KACAA,KAAKm9E,KAAM,WACV,IAAI8P,EAAQ9U,EAAO8U,MAAOjtF,KAAM0sB,EAAMpyB,CAAK,EAG3C69E,EAAOqZ,YAAaxxF,KAAM0sB,CAAK,EAEjB,OAATA,GAAgC,eAAfugE,EAAO,IAC5B9U,EAAOkZ,QAASrxF,KAAM0sB,CAAK,CAE7B,CAAE,CACJ,EACA2kE,QAAS,SAAU3kE,GAClB,OAAO1sB,KAAKm9E,KAAM,WACjBhF,EAAOkZ,QAASrxF,KAAM0sB,CAAK,CAC5B,CAAE,CACH,EACAglE,WAAY,SAAUhlE,GACrB,OAAO1sB,KAAKitF,MAAOvgE,GAAQ,KAAM,EAAG,CACrC,EAIA9P,QAAS,SAAU8P,EAAMrD,GAMb,SAAV7wB,IACO,EAAIywB,GACTtM,EAAMgyE,YAAahd,EAAU,CAAEA,EAAW,CAE5C,CATD,IAAIkT,EACH57D,EAAQ,EACRtM,EAAQw7D,EAAOqV,SAAS,EACxB7b,EAAW3xE,KACXlE,EAAIkE,KAAK9G,OAaV,IANqB,UAAhB,OAAOwzB,IACXrD,EAAMqD,EACNA,EAAOvhB,QAERuhB,EAAOA,GAAQ,KAEP5wB,CAAC,KACR+oF,EAAMiM,EAASh4E,IAAK64D,EAAU71E,GAAK4wB,EAAO,YAAa,IAC3Cm4D,EAAIpkE,QACfwI,CAAK,GACL47D,EAAIpkE,MAAMotD,IAAKr1E,CAAQ,GAIzB,OADAA,EAAQ,EACDmkB,EAAMC,QAASyM,CAAI,CAC3B,CACD,CAAE,EA4BuB,SAArBsoE,GAA+Bl5C,EAAMuK,GAOvC,MAA8B,UAH9BvK,EAAOuK,GAAMvK,GAGDS,MAAM04C,SACM,KAAvBn5C,EAAKS,MAAM04C,SAMXC,EAAYp5C,CAAK,GAEiB,SAAlC0/B,EAAO32B,IAAK/I,EAAM,SAAU,CAC9B,CA5CD,IAAIq5C,EAAO,sCAA0Cj6E,OAEjDk6E,GAAU,IAAIj5F,OAAQ,iBAAmBg5F,EAAO,cAAe,GAAI,EAGnEE,EAAY,CAAE,MAAO,QAAS,SAAU,QAExC9W,EAAkB/nE,EAAS+nE,gBAI1B2W,EAAa,SAAUp5C,GACzB,OAAO0/B,EAAOkI,SAAU5nC,EAAK4/B,cAAe5/B,CAAK,CAClD,EACAw5C,GAAW,CAAEA,SAAU,EAAK,EAOxB/W,EAAgBgX,cACpBL,EAAa,SAAUp5C,GACtB,OAAO0/B,EAAOkI,SAAU5nC,EAAK4/B,cAAe5/B,CAAK,GAChDA,EAAKy5C,YAAaD,EAAS,IAAMx5C,EAAK4/B,aACxC,GAuBF,SAAS8Z,GAAW15C,EAAMnrB,EAAM8kE,EAAYC,GAC3C,IAAIC,EAAUh9D,EACbi9D,EAAgB,GAChBjzD,EAAe+yD,EACd,WACC,OAAOA,EAAMzO,IAAI,CAClB,EACA,WACC,OAAOzL,EAAO32B,IAAK/I,EAAMnrB,EAAM,EAAG,CACnC,EACDklE,EAAUlzD,EAAa,EACvBmzD,EAAOL,GAAcA,EAAY,KAASja,EAAOua,UAAWplE,GAAS,GAAK,MAG1EqlE,EAAgBl6C,EAAK2/B,WAClBD,EAAOua,UAAWplE,IAAmB,OAATmlE,GAAiB,CAACD,IAChDT,GAAQh5F,KAAMo/E,EAAO32B,IAAK/I,EAAMnrB,CAAK,CAAE,EAEzC,GAAKqlE,GAAiBA,EAAe,KAAQF,EAAO,CAYnD,IALAA,EAAOA,GAAQE,EAAe,GAG9BA,EAAgB,EANhBH,GAAoB,IAMQ,EAEpBD,CAAa,IAIpBpa,EAAOj/B,MAAOT,EAAMnrB,EAAMqlE,EAAgBF,CAAK,GACxC,EAAIn9D,IAAY,GAAMA,EAAQgK,EAAa,EAAIkzD,GAAW,MAAW,IAC3ED,EAAgB,GAEjBI,GAAgCr9D,EAKjC6iD,EAAOj/B,MAAOT,EAAMnrB,GADpBqlE,GAAgC,GACUF,CAAK,EAG/CL,EAAaA,GAAc,EAC5B,CAeA,OAbKA,IACJO,EAAgB,CAACA,GAAiB,CAACH,GAAW,EAG9CF,EAAWF,EAAY,GACtBO,GAAkBP,EAAY,GAAM,GAAMA,EAAY,GACtD,CAACA,EAAY,GACTC,KACJA,EAAMI,KAAOA,EACbJ,EAAM3pE,MAAQiqE,EACdN,EAAM5pE,IAAM6pE,GAGPA,CACR,CAGA,IAAIM,GAAoB,GAyBxB,SAASC,EAAUlhB,EAAUlvC,GAO5B,IANA,IAAImvD,EAASn5C,EAxBcA,EAE1BzR,EAEA4qD,EAqBAtpE,EAAS,GACT+C,EAAQ,EACRnyB,EAASy4E,EAASz4E,OAGXmyB,EAAQnyB,EAAQmyB,CAAK,IAC5BotB,EAAOk5B,EAAUtmD,IACN6tB,QAIX04C,EAAUn5C,EAAKS,MAAM04C,QAChBnvD,GAKa,SAAZmvD,IACJtpE,EAAQ+C,GAAUylE,EAASh4E,IAAK2/B,EAAM,SAAU,GAAK,KAC/CnwB,EAAQ+C,KACbotB,EAAKS,MAAM04C,QAAU,KAGK,KAAvBn5C,EAAKS,MAAM04C,SAAkBD,GAAoBl5C,CAAK,IAC1DnwB,EAAQ+C,IA7CVumE,EAFA5qD,YAF0ByR,EAiDaA,GA/C5B4/B,cACXE,EAAW9/B,EAAK8/B,UAChBqZ,EAAUgB,GAAmBra,MAM9B/wB,EAAOxgB,EAAIxzB,KAAKg9D,YAAaxpC,EAAI/W,cAAesoD,CAAS,CAAE,EAC3DqZ,EAAUzZ,EAAO32B,IAAKgG,EAAM,SAAU,EAEtCA,EAAKsyB,WAAWC,YAAavyB,CAAK,EAKlCorC,GAAmBra,GAFlBqZ,EADgB,SAAZA,EACM,QAEqBA,GAEzBA,KAgCY,SAAZA,IACJtpE,EAAQ+C,GAAU,OAGlBylE,EAASn4E,IAAK8/B,EAAM,UAAWm5C,CAAQ,IAM1C,IAAMvmE,EAAQ,EAAGA,EAAQnyB,EAAQmyB,CAAK,GACb,MAAnB/C,EAAQ+C,KACZsmD,EAAUtmD,GAAQ6tB,MAAM04C,QAAUtpE,EAAQ+C,IAI5C,OAAOsmD,CACR,CAEAwG,EAAOxS,GAAGnrD,OAAQ,CACjBioB,KAAM,WACL,OAAOowD,EAAU7yF,KAAM,EAAK,CAC7B,EACAK,KAAM,WACL,OAAOwyF,EAAU7yF,IAAK,CACvB,EACA8yF,OAAQ,SAAUj5F,GACjB,MAAsB,WAAjB,OAAOA,EACJA,EAAQmG,KAAKyiC,KAAK,EAAIziC,KAAKK,KAAK,EAGjCL,KAAKm9E,KAAM,WACZwU,GAAoB3xF,IAAK,EAC7Bm4E,EAAQn4E,IAAK,EAAEyiC,KAAK,EAEpB01C,EAAQn4E,IAAK,EAAEK,KAAK,CAEtB,CAAE,CACH,CACD,CAAE,EACF,IAAI0yF,GAAiB,wBAEjBC,GAAW,iCAEXC,GAAc,qCAqCdC,GA/BF3iB,EADcp9D,EAASggF,uBAAuB,EAC/B3iB,YAAar9D,EAAS8c,cAAe,KAAM,CAAE,GAC5D4Z,EAAQ12B,EAAS8c,cAAe,OAAQ,GAMnCygD,aAAc,OAAQ,OAAQ,EACpC7mC,EAAM6mC,aAAc,UAAW,SAAU,EACzC7mC,EAAM6mC,aAAc,OAAQ,GAAI,EAEhCH,EAAIC,YAAa3mC,CAAM,EAIvBwyC,EAAQ+W,WAAa7iB,EAAI8iB,UAAW,EAAK,EAAEA,UAAW,EAAK,EAAEhM,UAAU18D,QAIvE4lD,EAAI98D,UAAY,yBAChB4oE,EAAQiX,eAAiB,CAAC,CAAC/iB,EAAI8iB,UAAW,EAAK,EAAEhM,UAAUttC,aAK3Dw2B,EAAI98D,UAAY,oBAChB4oE,EAAQh6C,OAAS,CAAC,CAACkuC,EAAI8W,UAKV,CAKbkM,MAAO,CAAE,EAAG,UAAW,YACvBC,IAAK,CAAE,EAAG,oBAAqB,uBAC/BC,GAAI,CAAE,EAAG,iBAAkB,oBAC3BC,GAAI,CAAE,EAAG,qBAAsB,yBAE/BC,SAAU,CAAE,EAAG,GAAI,GACpB,GAWA,SAASC,EAAQj3B,EAASioB,GAIzB,IAGCxW,EAD4C,SAAjCzR,EAAQt1B,qBACbs1B,EAAQt1B,qBAAsBu9C,GAAO,GAAI,EAEA,SAA7BjoB,EAAQ/yB,iBACpB+yB,EAAQ/yB,iBAAkBg7C,GAAO,GAAI,EAGrC,GAGP,OAAaz5E,SAARy5E,GAAqBA,GAAOrM,EAAU5b,EAASioB,CAAI,EAChDzM,EAAO8E,MAAO,CAAEtgB,GAAWyR,CAAI,EAGhCA,CACR,CAIA,SAASylB,GAAevnC,EAAOwnC,GAI9B,IAHA,IAAIh4F,EAAI,EACPwO,EAAIgiD,EAAMpzD,OAEH4C,EAAIwO,EAAGxO,CAAC,GACfg1F,EAASn4E,IACR2zC,EAAOxwD,GACP,aACA,CAACg4F,GAAehD,EAASh4E,IAAKg7E,EAAah4F,GAAK,YAAa,CAC9D,CAEF,CA7CAo3F,EAAQa,MAAQb,EAAQc,MAAQd,EAAQe,SAAWf,EAAQgB,QAAUhB,EAAQK,MAC7EL,EAAQiB,GAAKjB,EAAQQ,GAGfrX,EAAQh6C,SACb6wD,EAAQkB,SAAWlB,EAAQ7wD,OAAS,CAAE,EAAG,+BAAgC,cA2C1E,IAAIu/C,GAAQ,YAEZ,SAASyS,GAAe/nC,EAAOqQ,EAAS23B,EAASC,EAAWC,GAO3D,IANA,IAAI/7C,EAAMosC,EAAU3gB,EAAMuwB,EAAU5nF,EACnC6nF,EAAW/3B,EAAQw2B,uBAAuB,EAC1ClrE,EAAQ,GACRnsB,EAAI,EACJwO,EAAIgiD,EAAMpzD,OAEH4C,EAAIwO,EAAGxO,CAAC,GAGf,IAFA28C,EAAO6T,EAAOxwD,KAEQ,IAAT28C,EAGZ,GAAwB,WAAnBkkC,EAAQlkC,CAAK,EAIjB0/B,EAAO8E,MAAOh1D,EAAOwwB,EAAK2/B,SAAW,CAAE3/B,GAASA,CAAK,OAG/C,GAAMmpC,GAAMnjC,KAAMhG,CAAK,EAIvB,CAUN,IATAosC,EAAMA,GAAO6P,EAASlkB,YAAa7T,EAAQ1sC,cAAe,KAAM,CAAE,EAGlE20D,GAAQoO,GAASj6F,KAAM0/C,CAAK,GAAK,CAAE,GAAI,KAAQ,GAAIvmC,YAAY,EAC/DgyD,EAAOgvB,EAAStO,IAASsO,EAAQS,SACjC9O,EAAIpxE,UAAYywD,EAAM,GAAMiU,EAAOwc,cAAel8C,CAAK,EAAIyrB,EAAM,GAGjEr3D,EAAIq3D,EAAM,GACFr3D,CAAC,IACRg4E,EAAMA,EAAIwC,UAKXlP,EAAO8E,MAAOh1D,EAAO48D,EAAIvC,UAAW,GAGpCuC,EAAM6P,EAASjkB,YAGX4V,YAAc,EACnB,MA1BCp+D,EAAM5mB,KAAMs7D,EAAQi4B,eAAgBn8C,CAAK,CAAE,EAkC9C,IAHAi8C,EAASrO,YAAc,GAEvBvqF,EAAI,EACM28C,EAAOxwB,EAAOnsB,CAAC,KAGxB,GAAKy4F,GAAiD,CAAC,EAArCpc,EAAOiG,QAAS3lC,EAAM87C,CAAU,EAC5CC,GACJA,EAAQnzF,KAAMo3C,CAAK,OAgBrB,GAXAg8C,EAAW5C,EAAYp5C,CAAK,EAG5BosC,EAAM+O,EAAQc,EAASlkB,YAAa/3B,CAAK,EAAG,QAAS,EAGhDg8C,GACJZ,GAAehP,CAAI,EAIfyP,EAEJ,IADAznF,EAAI,EACM4rC,EAAOosC,EAAKh4E,CAAC,KACjBomF,GAAYx0C,KAAMhG,EAAK/rB,MAAQ,EAAG,GACtC4nE,EAAQjzF,KAAMo3C,CAAK,EAMvB,OAAOi8C,CACR,CAGA,IAAIG,GAAiB,sBAErB,SAASC,IACR,MAAO,EACR,CAEA,SAASC,IACR,MAAO,EACR,CAQA,SAASC,GAAYv8C,EAAM/rB,GAC1B,OAAS+rB,IAMV,WACC,IACC,OAAOtlC,EAAS00E,aACC,CAAhB,MAAQhmC,IACX,EAVqC,IAAmB,UAATn1B,EAC/C,CAWA,SAASqqB,GAAI0B,EAAMw8C,EAAOrY,EAAUtiF,EAAMqrE,EAAIuvB,GAC7C,IAAIC,EAAQzoE,EAGZ,GAAsB,UAAjB,OAAOuoE,EAAqB,CAShC,IAAMvoE,IANmB,UAApB,OAAOkwD,IAGXtiF,EAAOA,GAAQsiF,EACfA,EAAWzxE,QAEE8pF,EACbl+C,GAAI0B,EAAM/rB,EAAMkwD,EAAUtiF,EAAM26F,EAAOvoE,GAAQwoE,CAAI,EAEpD,OAAOz8C,CACR,CAqBA,GAnBa,MAARn+C,GAAsB,MAANqrE,GAGpBA,EAAKiX,EACLtiF,EAAOsiF,EAAWzxE,QACD,MAANw6D,IACc,UAApB,OAAOiX,GAGXjX,EAAKrrE,EACLA,EAAO6Q,SAIPw6D,EAAKrrE,EACLA,EAAOsiF,EACPA,EAAWzxE,SAGD,KAAPw6D,EACJA,EAAKovB,OACC,GAAK,CAACpvB,EACZ,OAAOltB,EAeR,OAZa,IAARy8C,IACJC,EAASxvB,GACTA,EAAK,SAAUzvD,GAId,OADAiiE,EAAO,EAAEhzB,IAAKjvC,CAAM,EACbi/E,EAAOxuD,MAAO3mC,KAAM4mC,SAAU,CACtC,GAGG43C,KAAO2W,EAAO3W,OAAU2W,EAAO3W,KAAOrG,EAAOqG,IAAI,KAE9C/lC,EAAK0kC,KAAM,WACjBhF,EAAOjiE,MAAM23D,IAAK7tE,KAAMi1F,EAAOtvB,EAAIrrE,EAAMsiF,CAAS,CACnD,CAAE,CACH,CA6aA,SAASwY,GAAgBpyC,EAAIt2B,EAAMsoE,GAG5BA,GAQNlE,EAASn4E,IAAKqqC,EAAIt2B,EAAM,EAAM,EAC9ByrD,EAAOjiE,MAAM23D,IAAK7qB,EAAIt2B,EAAM,CAC3Bw3D,UAAW,GACXT,QAAS,SAAUvtE,GAClB,IAAIm/E,EAAU35F,EACb45F,EAAQxE,EAASh4E,IAAK9Y,KAAM0sB,CAAK,EAElC,GAAyB,EAAlBxW,EAAMq/E,WAAmBv1F,KAAM0sB,IAKrC,GAAM4oE,EAAMp8F,QAuCEi/E,EAAOjiE,MAAMq4E,QAAS7hE,IAAU,IAAK8oE,cAClDt/E,EAAMkkC,gBAAgB,OArBtB,GAdAk7C,EAAQ19E,EAAM4V,KAAMoZ,SAAU,EAC9BkqD,EAASn4E,IAAK3Y,KAAM0sB,EAAM4oE,CAAM,EAKhCD,EAAWL,EAAYh1F,KAAM0sB,CAAK,EAClC1sB,KAAM0sB,GAAO,EAER4oE,KADL55F,EAASo1F,EAASh4E,IAAK9Y,KAAM0sB,CAAK,IACT2oE,EACxBvE,EAASn4E,IAAK3Y,KAAM0sB,EAAM,EAAM,EAEhChxB,EAAS,GAEL45F,IAAU55F,EAWd,OARAwa,EAAMu/E,yBAAyB,EAC/Bv/E,EAAMmB,eAAe,EAOd3b,GAAUA,EAAOiC,KAW1B,MAIW23F,EAAMp8F,SAGjB43F,EAASn4E,IAAK3Y,KAAM0sB,EAAM,CACzB/uB,MAAOw6E,EAAOjiE,MAAMw/E,QAInBvd,EAAO39D,OAAQ86E,EAAO,GAAKnd,EAAO//D,MAAMmV,SAAU,EAClD+nE,EAAM19E,MAAO,CAAE,EACf5X,IACD,CACD,CAAE,EAGFkW,EAAMu/E,yBAAyB,EAEjC,CACD,CAAE,GAlFiCtqF,SAA7B2lF,EAASh4E,IAAKkqC,EAAIt2B,CAAK,GAC3ByrD,EAAOjiE,MAAM23D,IAAK7qB,EAAIt2B,EAAMooE,CAAW,CAkF1C,CA9fA3c,EAAOjiE,MAAQ,CAEd01D,OAAQ,GAERiC,IAAK,SAAUp1B,EAAMw8C,EAAOxR,EAASnpF,EAAMsiF,GAE1C,IAAI+Y,EAAaC,EAChB3tD,EAAQm1B,EACRmxB,EAASsH,EAAUnpE,EAAMopE,EAAYC,EACrCC,EAAWlF,EAASh4E,IAAK2/B,CAAK,EAG/B,GAAMk4C,EAAYl4C,CAAK,EAuCvB,IAlCKgrC,EAAQA,UAEZA,GADAkS,EAAclS,GACQA,QACtB7G,EAAW+Y,EAAY/Y,UAKnBA,GACJzE,EAAOn1D,KAAK8hE,gBAAiB5J,EAAiB0B,CAAS,EAIlD6G,EAAQjF,OACbiF,EAAQjF,KAAOrG,EAAOqG,IAAI,IAInBv2C,KAAS+tD,EAAS/tD,UAChB+tD,EAAS/tD,OAAS1vC,OAAO0/C,OAAQ,IAAK,GAExC29C,KAAcI,EAASxtB,UAChBwtB,EAASxtB,OAAS,SAAUrwE,GAIzC,OAAyB,SAAXggF,GAA0BA,EAAOjiE,MAAMs4D,YAAcr2E,EAAEu0B,KACpEyrD,EAAOjiE,MAAM+/E,SAAStvD,MAAO8R,EAAM7R,SAAU,EAAIz7B,MACnD,GAKDiyD,GADA63B,GAAUA,GAAS,IAAKptC,MAAOwkC,CAAc,GAAK,CAAE,KAC1CnzF,OACFkkE,CAAC,IAER1wC,EAAOqpE,GADPlR,EAAMgQ,GAAe97F,KAAMk8F,EAAO73B,EAAI,GAAK,IACpB,GACvB04B,GAAejR,EAAK,IAAO,IAAKz3E,MAAO,GAAI,EAAE9L,KAAK,EAG5CorB,IAKN6hE,EAAUpW,EAAOjiE,MAAMq4E,QAAS7hE,IAAU,GAG1CA,GAASkwD,EAAW2R,EAAQiH,aAAejH,EAAQ2H,WAAcxpE,EAGjE6hE,EAAUpW,EAAOjiE,MAAMq4E,QAAS7hE,IAAU,GAG1CypE,EAAYhe,EAAO39D,OAAQ,CAC1BkS,KAAMA,EACNqpE,SAAUA,EACVz7F,KAAMA,EACNmpF,QAASA,EACTjF,KAAMiF,EAAQjF,KACd5B,SAAUA,EACVuO,aAAcvO,GAAYzE,EAAO2N,KAAKj+B,MAAMsjC,aAAa1sC,KAAMm+B,CAAS,EACxEsH,UAAW4R,EAAWlqF,KAAM,GAAI,CACjC,EAAG+pF,CAAY,GAGPE,EAAW5tD,EAAQvb,OAC1BmpE,EAAW5tD,EAAQvb,GAAS,IACnB0pE,cAAgB,EAGnB7H,EAAQ8H,OACiD,KAA9D9H,EAAQ8H,MAAM7oE,KAAMirB,EAAMn+C,EAAMw7F,EAAYF,CAAY,IAEnDn9C,EAAK3O,kBACT2O,EAAK3O,iBAAkBpd,EAAMkpE,CAAY,EAKvCrH,EAAQ1gB,MACZ0gB,EAAQ1gB,IAAIrgD,KAAMirB,EAAM09C,CAAU,EAE5BA,EAAU1S,QAAQjF,OACvB2X,EAAU1S,QAAQjF,KAAOiF,EAAQjF,OAK9B5B,EACJiZ,EAASjrE,OAAQirE,EAASO,aAAa,GAAI,EAAGD,CAAU,EAExDN,EAASx0F,KAAM80F,CAAU,EAI1Bhe,EAAOjiE,MAAM01D,OAAQl/C,GAAS,GAGhC,EAGApW,OAAQ,SAAUmiC,EAAMw8C,EAAOxR,EAAS7G,EAAU0Z,GAEjD,IAAIzpF,EAAG0pF,EAAW1R,EACjB58C,EAAQm1B,EAAG+4B,EACX5H,EAASsH,EAAUnpE,EAAMopE,EAAYC,EACrCC,EAAWlF,EAASj6D,QAAS4hB,CAAK,GAAKq4C,EAASh4E,IAAK2/B,CAAK,EAE3D,GAAMu9C,IAAe/tD,EAAS+tD,EAAS/tD,QAAvC,CAOA,IADAm1B,GADA63B,GAAUA,GAAS,IAAKptC,MAAOwkC,CAAc,GAAK,CAAE,KAC1CnzF,OACFkkE,CAAC,IAMR,GAJA1wC,EAAOqpE,GADPlR,EAAMgQ,GAAe97F,KAAMk8F,EAAO73B,EAAI,GAAK,IACpB,GACvB04B,GAAejR,EAAK,IAAO,IAAKz3E,MAAO,GAAI,EAAE9L,KAAK,EAG5CorB,EAAN,CAeA,IARA6hE,EAAUpW,EAAOjiE,MAAMq4E,QAAS7hE,IAAU,GAE1CmpE,EAAW5tD,EADXvb,GAASkwD,EAAW2R,EAAQiH,aAAejH,EAAQ2H,WAAcxpE,IACpC,GAC7Bm4D,EAAMA,EAAK,IACV,IAAI/rF,OAAQ,UAAYg9F,EAAWlqF,KAAM,eAAgB,EAAI,SAAU,EAGxE2qF,EAAY1pF,EAAIgpF,EAAS38F,OACjB2T,CAAC,IACRspF,EAAYN,EAAUhpF,GAEfypF,IAAeP,IAAaI,EAAUJ,UACzCtS,GAAWA,EAAQjF,OAAS2X,EAAU3X,MACtCqG,GAAOA,GAAIpmC,KAAM03C,EAAUjS,SAAU,GACrCtH,GAAYA,IAAauZ,EAAUvZ,WACxB,OAAbA,GAAqBuZ,GAAUvZ,YAChCiZ,EAASjrE,OAAQ/d,EAAG,CAAE,EAEjBspF,EAAUvZ,UACdiZ,EAASO,aAAa,GAElB7H,EAAQj4E,QACZi4E,EAAQj4E,OAAOkX,KAAMirB,EAAM09C,CAAU,GAOnCI,GAAa,CAACV,EAAS38F,SACrBq1F,EAAQiI,UACkD,KAA/DjI,EAAQiI,SAAShpE,KAAMirB,EAAMq9C,EAAYE,EAASxtB,MAAO,GAEzD2P,EAAOse,YAAah+C,EAAM/rB,EAAMspE,EAASxtB,MAAO,EAGjD,OAAOvgC,EAAQvb,GAtChB,MAJC,IAAMA,KAAQub,EACbkwC,EAAOjiE,MAAMI,OAAQmiC,EAAM/rB,EAAOuoE,EAAO73B,GAAKqmB,EAAS7G,EAAU,EAAK,EA8CpEzE,EAAO8F,cAAeh2C,CAAO,GACjC6oD,EAASx6E,OAAQmiC,EAAM,eAAgB,CA5DxC,CA8DD,EAEAw9C,SAAU,SAAUS,GAEnB,IAAI56F,EAAG+Q,EAAQ8xE,EAASwX,EAAWQ,EAClCrtB,EAAO,IAAIzzC,MAAO+Q,UAAU1tC,MAAO,EAGnCgd,EAAQiiE,EAAOjiE,MAAM0gF,IAAKF,CAAY,EAEtCb,GACC/E,EAASh4E,IAAK9Y,KAAM,QAAS,GAAKzH,OAAO0/C,OAAQ,IAAK,GACpD/hC,EAAMwW,OAAU,GACnB6hE,EAAUpW,EAAOjiE,MAAMq4E,QAASr4E,EAAMwW,OAAU,GAKjD,IAFA48C,EAAM,GAAMpzD,EAENpa,EAAI,EAAGA,EAAI8qC,UAAU1tC,OAAQ4C,CAAC,GACnCwtE,EAAMxtE,GAAM8qC,UAAW9qC,GAMxB,GAHAoa,EAAM2gF,eAAiB72F,KAGlBuuF,GAAQuI,aAA2D,KAA5CvI,EAAQuI,YAAYtpE,KAAMxtB,KAAMkW,CAAM,EAAlE,CASA,IAJAygF,EAAexe,EAAOjiE,MAAM2/E,SAASroE,KAAMxtB,KAAMkW,EAAO2/E,CAAS,EAGjE/5F,EAAI,GACM6iF,EAAUgY,EAAc76F,CAAC,MAAU,CAACoa,EAAM6gF,qBAAqB,GAIxE,IAHA7gF,EAAM8gF,cAAgBrY,EAAQlmC,KAE9B5rC,EAAI,GACMspF,EAAYxX,EAAQkX,SAAUhpF,CAAC,MACxC,CAACqJ,EAAM+gF,8BAA8B,GAI/B/gF,EAAMghF,YAAsC,KAAxBf,EAAUjS,WACnChuE,GAAMghF,WAAWz4C,KAAM03C,EAAUjS,SAAU,IAE3ChuE,EAAMigF,UAAYA,EAClBjgF,EAAM5b,KAAO67F,EAAU77F,KAKV6Q,UAHbijE,IAAU+J,EAAOjiE,MAAMq4E,QAAS4H,EAAUJ,WAAc,IAAKvtB,QAC5D2tB,EAAU1S,SAAU98C,MAAOg4C,EAAQlmC,KAAM6wB,CAAK,IAGd,MAAzBpzD,EAAMxa,OAAS0yE,KACrBl4D,EAAMmB,eAAe,EACrBnB,EAAMkkC,gBAAgB,IAY3B,OAJKm0C,EAAQ4I,cACZ5I,EAAQ4I,aAAa3pE,KAAMxtB,KAAMkW,CAAM,EAGjCA,EAAMxa,MAxCb,CAyCD,EAEAm6F,SAAU,SAAU3/E,EAAO2/E,GAC1B,IAAI/5F,EAAGq6F,EAAWnQ,EAAKoR,EAAiBC,EACvCV,EAAe,GACfP,EAAgBP,EAASO,cACzBxS,EAAM1tE,EAAMwU,OAGb,GAAK0rE,GAIJxS,EAAIxL,UAOJ,EAAkB,UAAfliE,EAAMwW,MAAoC,GAAhBxW,EAAM0tC,QAEnC,KAAQggC,IAAQ5jF,KAAM4jF,EAAMA,EAAI9J,YAAc95E,KAI7C,GAAsB,IAAjB4jF,EAAIxL,WAAoC,UAAfliE,EAAMwW,MAAqC,KAAjBk3D,EAAIxmC,UAAsB,CAGjF,IAFAg6C,EAAkB,GAClBC,EAAmB,GACbv7F,EAAI,EAAGA,EAAIs6F,EAAet6F,CAAC,GAMCqP,SAA5BksF,EAFLrR,GAHAmQ,EAAYN,EAAU/5F,IAGN8gF,SAAW,OAG1Bya,EAAkBrR,GAAQmQ,EAAUhL,aACA,CAAC,EAApChT,EAAQ6N,EAAKhmF,IAAK,EAAEqrB,MAAOu4D,CAAI,EAC/BzL,EAAOn1D,KAAMgjE,EAAKhmF,KAAM,KAAM,CAAE4jF,EAAM,EAAE1qF,QAErCm+F,EAAkBrR,IACtBoR,EAAgB/1F,KAAM80F,CAAU,EAG7BiB,EAAgBl+F,QACpBy9F,EAAat1F,KAAM,CAAEo3C,KAAMmrC,EAAKiS,SAAUuB,CAAgB,CAAE,CAE9D,CAUF,OALAxT,EAAM5jF,KACDo2F,EAAgBP,EAAS38F,QAC7By9F,EAAat1F,KAAM,CAAEo3C,KAAMmrC,EAAKiS,SAAUA,EAASj+E,MAAOw+E,CAAc,CAAE,CAAE,EAGtEO,CACR,EAEAW,QAAS,SAAU72F,EAAM82F,GACxBh/F,OAAO4qE,eAAgBgV,EAAO//D,MAAMmV,UAAW9sB,EAAM,CACpDqiE,WAAY,GACZkB,aAAc,GAEdlrD,IAAKslC,EAAYm5C,CAAK,EACrB,WACC,GAAKv3F,KAAKw3F,cACT,OAAOD,EAAMv3F,KAAKw3F,aAAc,CAElC,EACA,WACC,GAAKx3F,KAAKw3F,cACT,OAAOx3F,KAAKw3F,cAAe/2F,EAE7B,EAEDkY,IAAK,SAAUhb,GACdpF,OAAO4qE,eAAgBnjE,KAAMS,EAAM,CAClCqiE,WAAY,GACZkB,aAAc,GACdC,SAAU,GACVtmE,MAAOA,CACR,CAAE,CACH,CACD,CAAE,CACH,EAEAi5F,IAAK,SAAUY,GACd,OAAOA,EAAerf,EAAO0F,SAC5B2Z,EACA,IAAIrf,EAAO//D,MAAOo/E,CAAc,CAClC,EAEAjJ,QAAS,CACR9lD,KAAM,CAGLgvD,SAAU,EACX,EACA3rE,MAAO,CAGNuqE,MAAO,SAAU/7F,GAIZ0oD,EAAKhjD,MAAQ1F,EAWjB,OARKy4F,GAAet0C,KAAMuE,EAAGt2B,IAAK,GACjCs2B,EAAGl3B,OAASysD,EAAUv1B,EAAI,OAAQ,GAGlCoyC,GAAgBpyC,EAAI,QAAS8xC,CAAW,EAIlC,EACR,EACAY,QAAS,SAAUp7F,GAId0oD,EAAKhjD,MAAQ1F,EAUjB,OAPKy4F,GAAet0C,KAAMuE,EAAGt2B,IAAK,GACjCs2B,EAAGl3B,OAASysD,EAAUv1B,EAAI,OAAQ,GAElCoyC,GAAgBpyC,EAAI,OAAQ,EAItB,EACR,EAIA2wC,SAAU,SAAUz9E,GACfwU,EAASxU,EAAMwU,OACnB,OAAOqoE,GAAet0C,KAAM/zB,EAAOgC,IAAK,GACvChC,EAAOoB,OAASysD,EAAU7tD,EAAQ,OAAQ,GAC1ComE,EAASh4E,IAAK4R,EAAQ,OAAQ,GAC9B6tD,EAAU7tD,EAAQ,GAAI,CACxB,CACD,EAEAgtE,aAAc,CACbP,aAAc,SAAUjhF,GAID/K,SAAjB+K,EAAMxa,QAAwBwa,EAAMshF,gBACxCthF,EAAMshF,cAAcG,YAAczhF,EAAMxa,OAE1C,CACD,CACD,CACD,EA+FAy8E,EAAOse,YAAc,SAAUh+C,EAAM/rB,EAAM87C,GAGrC/vB,EAAKuhC,qBACTvhC,EAAKuhC,oBAAqBttD,EAAM87C,CAAO,CAEzC,EAEA2P,EAAO//D,MAAQ,SAAUuY,EAAKm3B,GAG7B,GAAK,EAAG9nD,gBAAgBm4E,EAAO//D,OAC9B,OAAO,IAAI+/D,EAAO//D,MAAOuY,EAAKm3B,CAAM,EAIhCn3B,GAAOA,EAAIjE,MACf1sB,KAAKw3F,cAAgB7mE,EACrB3wB,KAAK0sB,KAAOiE,EAAIjE,KAIhB1sB,KAAK43F,mBAAqBjnE,EAAIo1B,kBACH56C,SAAzBwlB,EAAIo1B,kBAGgB,KAApBp1B,EAAIgnE,YACL7C,EACAC,EAKD/0F,KAAK0qB,OAAWiG,EAAIjG,QAAkC,IAAxBiG,EAAIjG,OAAO0tD,SACxCznD,EAAIjG,OAAOovD,WACXnpD,EAAIjG,OAEL1qB,KAAKg3F,cAAgBrmE,EAAIqmE,cACzBh3F,KAAK63F,cAAgBlnE,EAAIknE,eAIzB73F,KAAK0sB,KAAOiE,EAIRm3B,GACJqwB,EAAO39D,OAAQxa,KAAM8nD,CAAM,EAI5B9nD,KAAK83F,UAAYnnE,GAAOA,EAAImnE,WAAaz8F,KAAKD,IAAI,EAGlD4E,KAAMm4E,EAAO0F,SAAY,EAC1B,EAIA1F,EAAO//D,MAAMmV,UAAY,CACxBo6C,YAAawQ,EAAO//D,MACpBw/E,mBAAoB7C,EACpBgC,qBAAsBhC,EACtBkC,8BAA+BlC,EAC/BgD,YAAa,GAEb1gF,eAAgB,WACf,IAAIlf,EAAI6H,KAAKw3F,cAEbx3F,KAAK43F,mBAAqB9C,EAErB38F,GAAK,CAAC6H,KAAK+3F,aACf5/F,EAAEkf,eAAe,CAEnB,EACA+iC,gBAAiB,WAChB,IAAIjiD,EAAI6H,KAAKw3F,cAEbx3F,KAAK+2F,qBAAuBjC,EAEvB38F,GAAK,CAAC6H,KAAK+3F,aACf5/F,EAAEiiD,gBAAgB,CAEpB,EACAq7C,yBAA0B,WACzB,IAAIt9F,EAAI6H,KAAKw3F,cAEbx3F,KAAKi3F,8BAAgCnC,EAEhC38F,GAAK,CAAC6H,KAAK+3F,aACf5/F,EAAEs9F,yBAAyB,EAG5Bz1F,KAAKo6C,gBAAgB,CACtB,CACD,EAGA+9B,EAAOgF,KAAM,CACZ6a,OAAQ,GACRC,QAAS,GACTC,WAAY,GACZC,eAAgB,GAChBC,QAAS,GACTnuE,OAAQ,GACRouE,WAAY,GACZC,QAAS,GACTC,MAAO,GACPC,MAAO,GACPC,SAAU,GACVC,KAAM,GACN,KAAQ,GACRrgG,KAAM,GACNsgG,SAAU,GACV9wF,IAAK,GACL+wF,QAAS,GACTh1C,OAAQ,GACRi1C,QAAS,GACTC,QAAS,GACTC,QAAS,GACTC,QAAS,GACTC,QAAS,GACTC,UAAW,GACXC,YAAa,GACbC,QAAS,GACTC,QAAS,GACTC,cAAe,GACfC,UAAW,GACXC,QAAS,GACTzgE,MAAO,EACR,EAAGo/C,EAAOjiE,MAAMohF,OAAQ,EAExBnf,EAAOgF,KAAM,CAAEx1C,MAAO,UAAW8xD,KAAM,UAAW,EAAG,SAAU/sE,EAAM8oE,GACpErd,EAAOjiE,MAAMq4E,QAAS7hE,GAAS,CAG9B2pE,MAAO,WAQN,OAHAjB,GAAgBp1F,KAAM0sB,EAAMsoE,EAAW,EAGhC,EACR,EACAU,QAAS,WAMR,OAHAN,GAAgBp1F,KAAM0sB,CAAK,EAGpB,EACR,EAIAinE,SAAU,SAAUz9E,GACnB,OAAO46E,EAASh4E,IAAK5C,EAAMwU,OAAQgC,CAAK,CACzC,EAEA8oE,aAAcA,CACf,CACD,CAAE,EAUFrd,EAAOgF,KAAM,CACZuc,WAAY,YACZC,WAAY,WACZC,aAAc,cACdC,aAAc,YACf,EAAG,SAAUC,EAAMlD,GAClBze,EAAOjiE,MAAMq4E,QAASuL,GAAS,CAC9BtE,aAAcoB,EACdV,SAAUU,EAEVpuB,OAAQ,SAAUtyD,GACjB,IAAIk4D,EAEH2rB,EAAU7jF,EAAM2hF,cAChB1B,EAAYjgF,EAAMigF,UASnB,OALM4D,IAAaA,IANT/5F,MAMgCm4E,EAAOkI,SANvCrgF,KAMyD+5F,CAAQ,KAC1E7jF,EAAMwW,KAAOypE,EAAUJ,SACvB3nB,EAAM+nB,EAAU1S,QAAQ98C,MAAO3mC,KAAM4mC,SAAU,EAC/C1wB,EAAMwW,KAAOkqE,GAEPxoB,CACR,CACD,CACD,CAAE,EAEF+J,EAAOxS,GAAGnrD,OAAQ,CAEjBu8B,GAAI,SAAUk+C,EAAOrY,EAAUtiF,EAAMqrE,GACpC,OAAO5uB,GAAI/2C,KAAMi1F,EAAOrY,EAAUtiF,EAAMqrE,CAAG,CAC5C,EACAuvB,IAAK,SAAUD,EAAOrY,EAAUtiF,EAAMqrE,GACrC,OAAO5uB,GAAI/2C,KAAMi1F,EAAOrY,EAAUtiF,EAAMqrE,EAAI,CAAE,CAC/C,EACAxgB,IAAK,SAAU8vC,EAAOrY,EAAUjX,GAC/B,IAAIwwB,EAAWzpE,EACf,GAAKuoE,GAASA,EAAM59E,gBAAkB49E,EAAMkB,UAG3CA,EAAYlB,EAAMkB,UAClBhe,EAAQ8c,EAAM4B,cAAe,EAAE1xC,IAC9BgxC,EAAUjS,UACTiS,EAAUJ,SAAW,IAAMI,EAAUjS,UACrCiS,EAAUJ,SACXI,EAAUvZ,SACVuZ,EAAU1S,OACX,MAVD,CAaA,GAAsB,UAAjB,OAAOwR,EAiBZ,MATkB,KAAbrY,GAA0C,YAApB,OAAOA,IAGjCjX,EAAKiX,EACLA,EAAWzxE,QAEA,KAAPw6D,IACJA,EAAKovB,GAEC/0F,KAAKm9E,KAAM,WACjBhF,EAAOjiE,MAAMI,OAAQtW,KAAMi1F,EAAOtvB,EAAIiX,CAAS,CAChD,CAAE,EAhBD,IAAMlwD,KAAQuoE,EACbj1F,KAAKmlD,IAAKz4B,EAAMkwD,EAAUqY,EAAOvoE,EAAO,CAL1C,CAOC,OAAO1sB,IAcT,CACD,CAAE,EAGF,IAKCg6F,GAAe,wBAGfC,GAAW,oCAEXC,GAAe,6BAGhB,SAASC,GAAoB1hD,EAAMgB,GAClC,OAAK8+B,EAAU9/B,EAAM,OAAQ,GAC5B8/B,EAA+B,KAArB9+B,EAAQ2+B,SAAkB3+B,EAAUA,EAAQg3B,WAAY,IAAK,GAEhE0H,EAAQ1/B,CAAK,EAAEqC,SAAU,OAAQ,EAAG,IAGrCrC,CACR,CAGA,SAAS2hD,GAAe3hD,GAEvB,OADAA,EAAK/rB,MAAyC,OAAhC+rB,EAAK23B,aAAc,MAAO,GAAe,IAAM33B,EAAK/rB,KAC3D+rB,CACR,CACA,SAAS4hD,GAAe5hD,GAOvB,MAN2C,WAApCA,EAAK/rB,MAAQ,IAAK9U,MAAO,EAAG,CAAE,EACpC6gC,EAAK/rB,KAAO+rB,EAAK/rB,KAAK9U,MAAO,CAAE,EAE/B6gC,EAAKohC,gBAAiB,MAAO,EAGvBphC,CACR,CAEA,SAAS6hD,GAAgB3pE,EAAKugB,GAC7B,IAAIp1C,EAAGwO,EAAGoiB,EAAoCub,EAE9C,GAAuB,IAAlBiJ,EAAKknC,SAAV,CAKA,GAAK0Y,EAASj6D,QAASlG,CAAI,IAE1BsX,EADW6oD,EAASh4E,IAAK6X,CAAI,EACXsX,QAKjB,IAAMvb,KAFNokE,EAASx6E,OAAQ46B,EAAM,eAAgB,EAEzBjJ,EACb,IAAMnsC,EAAI,EAAGwO,EAAI29B,EAAQvb,GAAOxzB,OAAQ4C,EAAIwO,EAAGxO,CAAC,GAC/Cq8E,EAAOjiE,MAAM23D,IAAK38B,EAAMxkB,EAAMub,EAAQvb,GAAQ5wB,EAAI,EAOjDi1F,EAASl6D,QAASlG,CAAI,IAC1B4pE,EAAWxJ,EAASjB,OAAQn/D,CAAI,EAChC6pE,EAAWriB,EAAO39D,OAAQ,GAAI+/E,CAAS,EAEvCxJ,EAASp4E,IAAKu4B,EAAMspD,CAAS,EAvB9B,CAyBD,CAgBA,SAASC,EAAUC,EAAYpxB,EAAM5iC,EAAU8tD,GAG9ClrB,EAAO2S,EAAM3S,CAAK,EAElB,IAAIorB,EAAUpnB,EAAOgnB,EAASqG,EAAY/nC,EAAM5rB,EAC/ClrC,EAAI,EACJwO,EAAIowF,EAAWxhG,OACf0hG,EAAWtwF,EAAI,EACf3M,EAAQ2rE,EAAM,GACduxB,EAAkBz8C,EAAYzgD,CAAM,EAGrC,GAAKk9F,GACG,EAAJvwF,GAA0B,UAAjB,OAAO3M,GACjB,CAAC0+E,EAAQ+W,YAAc6G,GAASx7C,KAAM9gD,CAAM,EAC9C,OAAO+8F,EAAWvd,KAAM,SAAU9xD,GACjC,IAAItrB,EAAO26F,EAAWtd,GAAI/xD,CAAM,EAC3BwvE,IACJvxB,EAAM,GAAM3rE,EAAM6vB,KAAMxtB,KAAMqrB,EAAOtrB,EAAK+a,KAAK,CAAE,GAElD2/E,EAAU16F,EAAMupE,EAAM5iC,EAAU8tD,CAAQ,CACzC,CAAE,EAGH,GAAKlqF,IAEJgjE,GADAonB,EAAWL,GAAe/qB,EAAMoxB,EAAY,GAAIriB,cAAe,GAAOqiB,EAAYlG,CAAQ,GACzE/jB,WAEmB,IAA/BikB,EAASpS,WAAWppF,SACxBw7F,EAAWpnB,GAIPA,GAASknB,GAAU,CAOvB,IALAmG,GADArG,EAAUnc,EAAOvgF,IAAKg8F,EAAQc,EAAU,QAAS,EAAG0F,EAAc,GAC7ClhG,OAKb4C,EAAIwO,EAAGxO,CAAC,GACf82D,EAAO8hC,EAEF54F,IAAM8+F,IACVhoC,EAAOulB,EAAOuF,MAAO9qB,EAAM,GAAM,EAAK,EAGjC+nC,IAIJxiB,EAAO8E,MAAOqX,EAASV,EAAQhhC,EAAM,QAAS,CAAE,EAIlDlsB,EAASlZ,KAAMktE,EAAY5+F,GAAK82D,EAAM92D,CAAE,EAGzC,GAAK6+F,EAOJ,IANA3zD,EAAMstD,EAASA,EAAQp7F,OAAS,GAAIm/E,cAGpCF,EAAOvgF,IAAK08F,EAAS+F,EAAc,EAG7Bv+F,EAAI,EAAGA,EAAI6+F,EAAY7+F,CAAC,GAC7B82D,EAAO0hC,EAASx4F,GACXm3F,GAAYx0C,KAAMmU,EAAKlmC,MAAQ,EAAG,GACtC,CAACokE,EAAShB,OAAQl9B,EAAM,YAAa,GACrCulB,EAAOkI,SAAUr5C,EAAK4rB,CAAK,IAEtBA,EAAKjiC,KAA8C,YAArCiiC,EAAKlmC,MAAQ,IAAKxa,YAAY,EAG3CimE,EAAO2iB,UAAY,CAACloC,EAAK4pB,UAC7BrE,EAAO2iB,SAAUloC,EAAKjiC,IAAK,CAC1B4rD,MAAO3pB,EAAK2pB,OAAS3pB,EAAKwd,aAAc,OAAQ,CACjD,EAAGppC,CAAI,EASRy1C,EAAS7pB,EAAKyzB,YAAYhzE,QAAS6mF,GAAc,EAAG,EAAGtnC,EAAM5rB,CAAI,EAKtE,CAGD,OAAO0zD,CACR,CAEA,SAASpkF,GAAQmiC,EAAMmkC,EAAUme,GAKhC,IAJA,IAAInoC,EACH3qC,EAAQ20D,EAAWzE,EAAOn6E,OAAQ4+E,EAAUnkC,CAAK,EAAIA,EACrD38C,EAAI,EAE4B,OAAvB82D,EAAO3qC,EAAOnsB,IAAeA,CAAC,GACjCi/F,GAA8B,IAAlBnoC,EAAKwlB,UACtBD,EAAO6iB,UAAWpH,EAAQhhC,CAAK,CAAE,EAG7BA,EAAKknB,aACJihB,GAAYlJ,EAAYj/B,CAAK,GACjCihC,GAAeD,EAAQhhC,EAAM,QAAS,CAAE,EAEzCA,EAAKknB,WAAWC,YAAannB,CAAK,GAIpC,OAAOna,CACR,CAEA0/B,EAAO39D,OAAQ,CACdm6E,cAAe,SAAU75E,GACxB,OAAOA,CACR,EAEA4iE,MAAO,SAAUjlC,EAAMwiD,EAAeC,GACrC,IAAIp/F,EAAGwO,EAAG6wF,EAAaC,EA1INzqE,EAAKugB,EACnBqnC,EA0IFmF,EAAQjlC,EAAK46C,UAAW,EAAK,EAC7BgI,EAASxJ,EAAYp5C,CAAK,EAG3B,GAAK,EAAC4jC,EAAQiX,gBAAsC,IAAlB76C,EAAK2/B,UAAoC,KAAlB3/B,EAAK2/B,UAC3DD,EAAO8S,SAAUxyC,CAAK,GAMxB,IAHA2iD,EAAexH,EAAQlW,CAAM,EAGvB5hF,EAAI,EAAGwO,GAFb6wF,EAAcvH,EAAQn7C,CAAK,GAEEv/C,OAAQ4C,EAAIwO,EAAGxO,CAAC,GAtJ7B60B,EAuJLwqE,EAAar/F,GAvJHo1C,EAuJQkqD,EAAct/F,GAtJzCy8E,SAGc,WAHdA,EAAWrnC,EAAKqnC,SAASrmE,YAAY,IAGZ6gF,GAAet0C,KAAM9tB,EAAIjE,IAAK,EAC1DwkB,EAAKvmB,QAAUgG,EAAIhG,QAGK,UAAb4tD,GAAqC,aAAbA,IACnCrnC,EAAK6I,aAAeppB,EAAIopB,cAmJxB,GAAKkhD,EACJ,GAAKC,EAIJ,IAHAC,EAAcA,GAAevH,EAAQn7C,CAAK,EAC1C2iD,EAAeA,GAAgBxH,EAAQlW,CAAM,EAEvC5hF,EAAI,EAAGwO,EAAI6wF,EAAYjiG,OAAQ4C,EAAIwO,EAAGxO,CAAC,GAC5Cw+F,GAAgBa,EAAar/F,GAAKs/F,EAAct/F,EAAI,OAGrDw+F,GAAgB7hD,EAAMilC,CAAM,EAW9B,OAL2B,GAD3B0d,EAAexH,EAAQlW,EAAO,QAAS,GACrBxkF,QACjB26F,GAAeuH,EAAc,CAACC,GAAUzH,EAAQn7C,EAAM,QAAS,CAAE,EAI3DilC,CACR,EAEAsd,UAAW,SAAU1uC,GAKpB,IAJA,IAAIhyD,EAAMm+C,EAAM/rB,EACf6hE,EAAUpW,EAAOjiE,MAAMq4E,QACvBzyF,EAAI,EAE6BqP,UAAxBstC,EAAO6T,EAAOxwD,IAAqBA,CAAC,GAC7C,GAAK60F,EAAYl4C,CAAK,EAAI,CACzB,GAAOn+C,EAAOm+C,EAAMq4C,EAASjT,SAAc,CAC1C,GAAKvjF,EAAK2tC,OACT,IAAMvb,KAAQpyB,EAAK2tC,OACbsmD,EAAS7hE,GACbyrD,EAAOjiE,MAAMI,OAAQmiC,EAAM/rB,CAAK,EAIhCyrD,EAAOse,YAAah+C,EAAM/rB,EAAMpyB,EAAKkuE,MAAO,EAO/C/vB,EAAMq4C,EAASjT,SAAY1yE,MAC5B,CACKstC,EAAMs4C,EAASlT,WAInBplC,EAAMs4C,EAASlT,SAAY1yE,OAE7B,CAEF,CACD,CAAE,EAEFgtE,EAAOxS,GAAGnrD,OAAQ,CACjB8gF,OAAQ,SAAU1e,GACjB,OAAOtmE,GAAQtW,KAAM48E,EAAU,EAAK,CACrC,EAEAtmE,OAAQ,SAAUsmE,GACjB,OAAOtmE,GAAQtW,KAAM48E,CAAS,CAC/B,EAEA3hC,KAAM,SAAUt9C,GACf,OAAOmyF,EAAQ9vF,KAAM,SAAUrC,GAC9B,OAAiBwN,SAAVxN,EACNw6E,EAAOl9B,KAAMj7C,IAAK,EAClBA,KAAKygB,MAAM,EAAE08D,KAAM,WACK,IAAlBn9E,KAAKo4E,UAAoC,KAAlBp4E,KAAKo4E,UAAqC,IAAlBp4E,KAAKo4E,WACxDp4E,KAAKqmF,YAAc1oF,EAErB,CAAE,CACJ,EAAG,KAAMA,EAAOipC,UAAU1tC,MAAO,CAClC,EAEA8zB,OAAQ,WACP,OAAOytE,EAAUz6F,KAAM4mC,UAAW,SAAU6R,GACpB,IAAlBz4C,KAAKo4E,UAAoC,KAAlBp4E,KAAKo4E,UAAqC,IAAlBp4E,KAAKo4E,UAC3C+hB,GAAoBn6F,KAAMy4C,CAAK,EACrC+3B,YAAa/3B,CAAK,CAE3B,CAAE,CACH,EAEAuM,QAAS,WACR,OAAOy1C,EAAUz6F,KAAM4mC,UAAW,SAAU6R,GAC3C,IACK/tB,EADkB,IAAlB1qB,KAAKo4E,UAAoC,KAAlBp4E,KAAKo4E,UAAqC,IAAlBp4E,KAAKo4E,WACpD1tD,EAASyvE,GAAoBn6F,KAAMy4C,CAAK,GACrC8iD,aAAc9iD,EAAM/tB,EAAO+lD,UAAW,CAE/C,CAAE,CACH,EAEAvrB,OAAQ,WACP,OAAOu1C,EAAUz6F,KAAM4mC,UAAW,SAAU6R,GACtCz4C,KAAK85E,YACT95E,KAAK85E,WAAWyhB,aAAc9iD,EAAMz4C,IAAK,CAE3C,CAAE,CACH,EAEA8kD,MAAO,WACN,OAAO21C,EAAUz6F,KAAM4mC,UAAW,SAAU6R,GACtCz4C,KAAK85E,YACT95E,KAAK85E,WAAWyhB,aAAc9iD,EAAMz4C,KAAK8+E,WAAY,CAEvD,CAAE,CACH,EAEAr+D,MAAO,WAIN,IAHA,IAAIg4B,EACH38C,EAAI,EAE2B,OAAtB28C,EAAOz4C,KAAMlE,IAAeA,CAAC,GACf,IAAlB28C,EAAK2/B,WAGTD,EAAO6iB,UAAWpH,EAAQn7C,EAAM,EAAM,CAAE,EAGxCA,EAAK4tC,YAAc,IAIrB,OAAOrmF,IACR,EAEA09E,MAAO,SAAUud,EAAeC,GAI/B,OAHAD,EAAiC,MAAjBA,GAAgCA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzDl7F,KAAKpI,IAAK,WAChB,OAAOugF,EAAOuF,MAAO19E,KAAMi7F,EAAeC,CAAkB,CAC7D,CAAE,CACH,EAEApgF,KAAM,SAAUnd,GACf,OAAOmyF,EAAQ9vF,KAAM,SAAUrC,GAC9B,IAAI86C,EAAOz4C,KAAM,IAAO,GACvBlE,EAAI,EACJwO,EAAItK,KAAK9G,OAEV,GAAeiS,SAAVxN,GAAyC,IAAlB86C,EAAK2/B,SAChC,OAAO3/B,EAAKhlC,UAIb,GAAsB,UAAjB,OAAO9V,GAAsB,CAACq8F,GAAav7C,KAAM9gD,CAAM,GAC3D,CAACu1F,GAAWF,GAASj6F,KAAM4E,CAAM,GAAK,CAAE,GAAI,KAAQ,GAAIuU,YAAY,GAAM,CAE1EvU,EAAQw6E,EAAOwc,cAAeh3F,CAAM,EAEpC,IACC,KAAQ7B,EAAIwO,EAAGxO,CAAC,GAIQ,KAHvB28C,EAAOz4C,KAAMlE,IAAO,IAGVs8E,WACTD,EAAO6iB,UAAWpH,EAAQn7C,EAAM,EAAM,CAAE,EACxCA,EAAKhlC,UAAY9V,GAInB86C,EAAO,CAGO,CAAb,MAAQtgD,IACX,CAEKsgD,GACJz4C,KAAKygB,MAAM,EAAEuM,OAAQrvB,CAAM,CAE7B,EAAG,KAAMA,EAAOipC,UAAU1tC,MAAO,CAClC,EAEAsiG,YAAa,WACZ,IAAIhH,EAAU,GAGd,OAAOiG,EAAUz6F,KAAM4mC,UAAW,SAAU6R,GAC3C,IAAI5sB,EAAS7rB,KAAK85E,WAEb3B,EAAOiG,QAASp+E,KAAMw0F,CAAQ,EAAI,IACtCrc,EAAO6iB,UAAWpH,EAAQ5zF,IAAK,CAAE,EAC5B6rB,IACJA,EAAO4vE,aAAchjD,EAAMz4C,IAAK,CAKnC,EAAGw0F,CAAQ,CACZ,CACD,CAAE,EAEFrc,EAAOgF,KAAM,CACZue,SAAU,SACVC,UAAW,UACXJ,aAAc,SACdK,YAAa,QACbh9B,WAAY,aACb,EAAG,SAAUn+D,EAAMo7F,GAClB1jB,EAAOxS,GAAIllE,GAAS,SAAUm8E,GAO7B,IANA,IAAItwB,EACH8hB,EAAM,GACN0tB,EAAS3jB,EAAQyE,CAAS,EAC1B1b,EAAO46B,EAAO5iG,OAAS,EACvB4C,EAAI,EAEGA,GAAKolE,EAAMplE,CAAC,GACnBwwD,EAAQxwD,IAAMolE,EAAOlhE,KAAOA,KAAK09E,MAAO,EAAK,EAC7CvF,EAAQ2jB,EAAQhgG,EAAI,EAAG+/F,GAAYvvC,CAAM,EAIzCjrD,EAAKslC,MAAOynC,EAAK9hB,EAAMxzC,IAAI,CAAE,EAG9B,OAAO9Y,KAAKg9E,UAAW5O,CAAI,CAC5B,CACD,CAAE,EAMc,SAAZ2tB,GAAsBtjD,GAKxB,IAAIigD,EAAOjgD,EAAK4/B,cAAcC,YAM9B,OAHCogB,EADKA,GAASA,EAAKsD,OAIbtD,EAHC//F,GAGIsjG,iBAAkBxjD,CAAK,CACpC,CAEU,SAAPyjD,GAAiBzjD,EAAMI,EAASnS,GACnC,IAASjmC,EACR07F,EAAM,GAGP,IAAM17F,KAAQo4C,EACbsjD,EAAK17F,GAASg4C,EAAKS,MAAOz4C,GAC1Bg4C,EAAKS,MAAOz4C,GAASo4C,EAASp4C,GAM/B,IAAMA,KAHN2tE,EAAM1nC,EAASlZ,KAAMirB,CAAK,EAGZI,EACbJ,EAAKS,MAAOz4C,GAAS07F,EAAK17F,GAG3B,OAAO2tE,CACR,CArCA,IAyGKguB,GAAkBC,GAAsBC,GAAkBC,GAC7DC,GAAyBC,GACzBC,GACAnsB,EA5GEosB,GAAY,IAAI7jG,OAAQ,KAAOg5F,EAAO,kBAAmB,GAAI,EAE7D8K,GAAc,MAsCdC,GAAY,IAAI/jG,OAAQk5F,EAAUpmF,KAAM,GAAI,EAAG,GAAI,EAEnDq1E,EAAa,sBAGb6b,GAAW,IAAIhkG,OAClB,IAAMmoF,EAAa,8BAAgCA,EAAa,KAChE,GACD,EASC,SAAS8b,KAGR,IAYIC,EAZEzsB,IAINmsB,GAAUxjD,MAAM+jD,QAAU,+EAE1B1sB,EAAIr3B,MAAM+jD,QACT,4HAGD/hB,EAAgB1K,YAAaksB,EAAU,EAAElsB,YAAaD,CAAI,EAEtDysB,EAAWrkG,EAAOsjG,iBAAkB1rB,CAAI,EAC5C6rB,GAAoC,OAAjBY,EAASp4C,IAG5B63C,GAAsE,KAA9CS,GAAoBF,EAASG,UAAW,EAIhE5sB,EAAIr3B,MAAMkkD,MAAQ,MAClBb,GAA6D,KAAzCW,GAAoBF,EAASI,KAAM,EAIvDf,GAAgE,KAAzCa,GAAoBF,EAASttE,KAAM,EAM1D6gD,EAAIr3B,MAAMuI,SAAW,WACrB66C,GAAiE,KAA9CY,GAAoB3sB,EAAI8sB,YAAc,CAAE,EAE3DniB,EAAgBnB,YAAa2iB,EAAU,EAIvCnsB,EAAM,KACP,CAEA,SAAS2sB,GAAoBI,GAC5B,OAAOjvF,KAAKkvF,MAAOplC,WAAYmlC,CAAQ,CAAE,CAC1C,CA2FD,SAASE,GAAQ/kD,EAAMh4C,EAAMg9F,GAC5B,IAA+BrvB,EAC9BsvB,EAAed,GAAYn+C,KAAMh+C,CAAK,EAMtCy4C,EAAQT,EAAKS,MAoEd,OAlEAukD,EAAWA,GAAY1B,GAAWtjD,CAAK,KAgBtC21B,EAAMqvB,EAASE,iBAAkBl9F,CAAK,GAAKg9F,EAAUh9F,GAuBxC,MArBQ2tE,EAAhBsvB,EAAgBtvB,IAkBdA,EAAI/6D,QAASypF,GAAU,IAAK,GAAK3xF,QAGnCijE,IAAeyjB,EAAYp5C,CAAK,IACpC21B,EAAM+J,EAAOj/B,MAAOT,EAAMh4C,CAAK,GAQ3B,CAAC47E,EAAQuhB,eAAe,IAAKjB,GAAUl+C,KAAM2vB,CAAI,GAAKyuB,GAAUp+C,KAAMh+C,CAAK,IAG/EivB,EAAQwpB,EAAMxpB,MACdmuE,EAAW3kD,EAAM2kD,SACjBC,EAAW5kD,EAAM4kD,SAGjB5kD,EAAM2kD,SAAW3kD,EAAM4kD,SAAW5kD,EAAMxpB,MAAQ0+C,EAChDA,EAAMqvB,EAAS/tE,MAGfwpB,EAAMxpB,MAAQA,EACdwpB,EAAM2kD,SAAWA,EACjB3kD,EAAM4kD,SAAWA,GAIJ3yF,SAARijE,EAINA,EAAM,GACNA,CACF,CAGA,SAAS2vB,GAAcC,EAAaC,GAGnC,MAAO,CACNnlF,IAAK,WACJ,GAAKklF,GAAY,EASjB,OAASh+F,KAAK8Y,IAAMmlF,GAASt3D,MAAO3mC,KAAM4mC,SAAU,EALnD,OAAO5mC,KAAK8Y,GAMd,CACD,CACD,CA7LE4jF,GAAYvpF,EAAS8c,cAAe,KAAM,GAC1CsgD,EAAMp9D,EAAS8c,cAAe,KAAM,GAG3BipB,QAMVq3B,EAAIr3B,MAAMglD,eAAiB,cAC3B3tB,EAAI8iB,UAAW,EAAK,EAAEn6C,MAAMglD,eAAiB,GAC7C7hB,EAAQ8hB,gBAA+C,gBAA7B5tB,EAAIr3B,MAAMglD,eAEpC/lB,EAAO39D,OAAQ6hE,EAAS,CACvB+hB,kBAAmB,WAElB,OADArB,GAAkB,EACXV,EACR,EACAuB,eAAgB,WAEf,OADAb,GAAkB,EACXR,EACR,EACA8B,cAAe,WAEd,OADAtB,GAAkB,EACXX,EACR,EACAkC,mBAAoB,WAEnB,OADAvB,GAAkB,EACXN,EACR,EACA8B,cAAe,WAEd,OADAxB,GAAkB,EACXT,EACR,EAWAkC,qBAAsB,WACrB,IAAIC,EAAOhL,EAAaiL,EAmCxB,OAlCgC,MAA3BlC,KACJiC,EAAQtrF,EAAS8c,cAAe,OAAQ,EACxCwjE,EAAKtgF,EAAS8c,cAAe,IAAK,EAClC0uE,EAAUxrF,EAAS8c,cAAe,KAAM,EAExCwuE,EAAMvlD,MAAM+jD,QAAU,2DACtBxJ,EAAGv6C,MAAM+jD,QAAU,mBAKnBxJ,EAAGv6C,MAAMvpB,OAAS,MAClBgvE,EAAQzlD,MAAMvpB,OAAS,MAQvBgvE,EAAQzlD,MAAM04C,QAAU,QAExB1W,EACE1K,YAAaiuB,CAAM,EACnBjuB,YAAaijB,CAAG,EAChBjjB,YAAamuB,CAAQ,EAEvBD,EAAU/lG,EAAOsjG,iBAAkBxI,CAAG,EACtC+I,GAA4Bt5E,SAAUw7E,EAAQ/uE,OAAQ,EAAG,EACxDzM,SAAUw7E,EAAQE,eAAgB,EAAG,EACrC17E,SAAUw7E,EAAQG,kBAAmB,EAAG,IAAQpL,EAAGqL,aAEpD5jB,EAAgBnB,YAAa0kB,CAAM,GAE7BjC,EACR,CACD,CAAE,GA6GH,IAAIuC,GAAc,CAAE,SAAU,MAAO,MACpCC,GAAa7rF,EAAS8c,cAAe,KAAM,EAAEipB,MAC7C+lD,GAAc,GAkBf,SAASC,GAAez+F,GACvB,IAAI0+F,EAAQhnB,EAAOinB,SAAU3+F,IAAUw+F,GAAax+F,GAEpD,OAAK0+F,IAGA1+F,KAAQu+F,GACLv+F,EAEDw+F,GAAax+F,GAxBrB,SAAyBA,GAMxB,IAHA,IAAI4+F,EAAU5+F,EAAM,GAAIwX,YAAY,EAAIxX,EAAKmX,MAAO,CAAE,EACrD9b,EAAIijG,GAAY7lG,OAET4C,CAAC,IAER,IADA2E,EAAOs+F,GAAajjG,GAAMujG,KACbL,GACZ,OAAOv+F,CAGV,EAY8CA,CAAK,GAAKA,EACxD,CAGA,IAKC6+F,GAAe,4BACfC,GAAU,CAAE99C,SAAU,WAAY+9C,WAAY,SAAU5N,QAAS,OAAQ,EACzE6N,GAAqB,CACpBC,cAAe,IACfC,WAAY,KACb,EAED,SAASC,GAAmBriB,EAAO5/E,EAAOkiG,GAIzC,IAAI3tB,EAAU6f,GAAQh5F,KAAM4E,CAAM,EAClC,OAAOu0E,EAGN7jE,KAAKwS,IAAK,EAAGqxD,EAAS,IAAQ2tB,GAAY,EAAI,GAAM3tB,EAAS,IAAO,MACpEv0E,CACF,CAEA,SAASmiG,GAAoBrnD,EAAMsnD,EAAWC,EAAKC,EAAaC,EAAQC,GACvE,IAAIrkG,EAAkB,UAAdikG,EAAwB,EAAI,EACnC9sC,EAAQ,EACRmtC,EAAQ,EAGT,GAAKJ,KAAUC,EAAc,SAAW,WACvC,OAAO,EAGR,KAAQnkG,EAAI,EAAGA,GAAK,EAGN,WAARkkG,IACJI,GAASjoB,EAAO32B,IAAK/I,EAAMunD,EAAMhO,EAAWl2F,GAAK,GAAMokG,CAAO,GAIzDD,GAmBQ,YAARD,IACJI,GAASjoB,EAAO32B,IAAK/I,EAAM,UAAYu5C,EAAWl2F,GAAK,GAAMokG,CAAO,GAIxD,WAARF,IACJI,GAASjoB,EAAO32B,IAAK/I,EAAM,SAAWu5C,EAAWl2F,GAAM,QAAS,GAAMokG,CAAO,KAtB9EE,GAASjoB,EAAO32B,IAAK/I,EAAM,UAAYu5C,EAAWl2F,GAAK,GAAMokG,CAAO,EAGvD,YAARF,EACJI,GAASjoB,EAAO32B,IAAK/I,EAAM,SAAWu5C,EAAWl2F,GAAM,QAAS,GAAMokG,CAAO,EAI7EjtC,GAASklB,EAAO32B,IAAK/I,EAAM,SAAWu5C,EAAWl2F,GAAM,QAAS,GAAMokG,CAAO,GAoChF,MAhBK,CAACD,GAA8B,GAAfE,IAIpBC,GAAS/xF,KAAKwS,IAAK,EAAGxS,KAAKC,KAC1BmqC,EAAM,SAAWsnD,EAAW,GAAI9nF,YAAY,EAAI8nF,EAAUnoF,MAAO,CAAE,GACnEuoF,EACAC,EACAntC,EACA,EAID,CAAE,GAAK,GAGDmtC,CACR,CAEA,SAASC,GAAkB5nD,EAAMsnD,EAAW9sC,GAG3C,IAAIitC,EAASnE,GAAWtjD,CAAK,EAK5BwnD,GADkB,CAAC5jB,EAAQ+hB,kBAAkB,GAAKnrC,IAEE,eAAnDklB,EAAO32B,IAAK/I,EAAM,YAAa,GAAOynD,CAAO,EAC9CI,EAAmBL,EAEnBrnF,EAAM4kF,GAAQ/kD,EAAMsnD,EAAWG,CAAO,EACtCK,EAAa,SAAWR,EAAW,GAAI9nF,YAAY,EAAI8nF,EAAUnoF,MAAO,CAAE,EAI3E,GAAK+kF,GAAUl+C,KAAM7lC,CAAI,EAAI,CAC5B,GAAK,CAACq6C,EACL,OAAOr6C,EAERA,EAAM,MACP,CAwCA,OAlCO,CAACyjE,EAAQ+hB,kBAAkB,GAAK6B,GAMtC,CAAC5jB,EAAQmiB,qBAAqB,GAAKjmB,EAAU9/B,EAAM,IAAK,GAIhD,SAAR7/B,GAIA,CAACu/C,WAAYv/C,CAAI,GAAsD,WAAjDu/D,EAAO32B,IAAK/I,EAAM,UAAW,GAAOynD,CAAO,IAGjEznD,EAAK+nD,eAAe,EAAEtnG,SAEtB+mG,EAAiE,eAAnD9nB,EAAO32B,IAAK/I,EAAM,YAAa,GAAOynD,CAAO,EAK3DI,EAAmBC,KAAc9nD,KAEhC7/B,EAAM6/B,EAAM8nD,KAKd3nF,EAAMu/C,WAAYv/C,CAAI,GAAK,GAI1BknF,GACCrnD,EACAsnD,EACA9sC,IAAWgtC,EAAc,SAAW,WACpCK,EACAJ,EAGAtnF,CACD,EACG,IACL,CA8SA,SAAS6nF,EAAOhoD,EAAMI,EAASvrB,EAAM7E,EAAKi4E,GACzC,OAAO,IAAID,EAAMlzE,UAAUuB,KAAM2pB,EAAMI,EAASvrB,EAAM7E,EAAKi4E,CAAO,CACnE,CA9SAvoB,EAAO39D,OAAQ,CAIdmmF,SAAU,CACTj/C,QAAS,CACR5oC,IAAK,SAAU2/B,EAAMglD,GACpB,GAAKA,EAIJ,MAAe,MADXrvB,EAAMovB,GAAQ/kD,EAAM,SAAU,GACd,IAAM21B,CAE5B,CACD,CACD,EAGAskB,UAAW,CACV,wBAA2B,GAC3B,YAAe,GACf,YAAe,GACf,SAAY,GACZ,WAAc,GACd,WAAc,GACd,SAAY,GACZ,WAAc,GACd,cAAiB,GACjB,gBAAmB,GACnB,QAAW,GACX,WAAc,GACd,aAAgB,GAChB,WAAc,GACd,QAAW,GACX,MAAS,GACT,QAAW,GACX,OAAU,GACV,OAAU,GACV,KAAQ,EACT,EAIA0M,SAAU,GAGVlmD,MAAO,SAAUT,EAAMh4C,EAAM9C,EAAOs1D,GAGnC,GAAMxa,GAA0B,IAAlBA,EAAK2/B,UAAoC,IAAlB3/B,EAAK2/B,UAAmB3/B,EAAKS,MAAlE,CAKA,IAAIk1B,EAAK1hD,EAAM6kE,EACdqP,EAAWnQ,EAAWhwF,CAAK,EAC3Bi9F,EAAed,GAAYn+C,KAAMh+C,CAAK,EACtCy4C,EAAQT,EAAKS,MAad,GARMwkD,IACLj9F,EAAOy+F,GAAe0B,CAAS,GAIhCrP,EAAQpZ,EAAOwoB,SAAUlgG,IAAU03E,EAAOwoB,SAAUC,GAGrCz1F,SAAVxN,EA0CJ,OAAK4zF,GAAS,QAASA,GACwBpmF,UAA5CijE,EAAMmjB,EAAMz4E,IAAK2/B,EAAM,GAAOwa,CAAM,GAE/Bmb,EAIDl1B,EAAOz4C,GA7CA,YAHdisB,EAAO,OAAO/uB,KAGcywE,EAAM2jB,GAAQh5F,KAAM4E,CAAM,IAAOywE,EAAK,KACjEzwE,EAAQw0F,GAAW15C,EAAMh4C,EAAM2tE,CAAI,EAGnC1hD,EAAO,UAIM,MAAT/uB,GAAiBA,GAAUA,IAOlB,WAAT+uB,GAAsBgxE,IAC1B//F,GAASywE,GAAOA,EAAK,KAAS+J,EAAOua,UAAWkO,GAAa,GAAK,OAI7DvkB,EAAQ8hB,iBAA6B,KAAVxgG,GAAiD,IAAjC8C,EAAK2G,QAAS,YAAa,IAC3E8xC,EAAOz4C,GAAS,WAIX8wF,GAAY,QAASA,GACsBpmF,UAA9CxN,EAAQ4zF,EAAM54E,IAAK8/B,EAAM96C,EAAOs1D,CAAM,MAEnCyqC,EACJxkD,EAAM2nD,YAAapgG,EAAM9C,CAAM,EAE/Bu7C,EAAOz4C,GAAS9C,EAtDnB,CAsED,EAEA6jD,IAAK,SAAU/I,EAAMh4C,EAAMwyD,EAAOitC,GACjC,IAAItnF,EACHgoF,EAAWnQ,EAAWhwF,CAAK,EA6B5B,OA5BgBm8F,GAAYn+C,KAAMh+C,CAAK,IAMtCA,EAAOy+F,GAAe0B,CAAS,GAiBnB,YAJZhoF,EADYzN,UAJZyN,GAJD24E,EAAQpZ,EAAOwoB,SAAUlgG,IAAU03E,EAAOwoB,SAAUC,KAGtC,QAASrP,EAChBA,EAAMz4E,IAAK2/B,EAAM,GAAMwa,CAAM,EAI/Br6C,GACE4kF,GAAQ/kD,EAAMh4C,EAAMy/F,CAAO,EAI7BtnF,IAAoBnY,KAAQg/F,KAChC7mF,EAAM6mF,GAAoBh/F,KAIZ,KAAVwyD,GAAgBA,KACpBtQ,EAAMwV,WAAYv/C,CAAI,EACL,KAAVq6C,GAAkBmZ,SAAUzpB,CAAI,GAAIA,GAAO,EAG5C/pC,CACR,CACD,CAAE,EAEFu/D,EAAOgF,KAAM,CAAE,SAAU,SAAW,SAAUpM,EAAIgvB,GACjD5nB,EAAOwoB,SAAUZ,GAAc,CAC9BjnF,IAAK,SAAU2/B,EAAMglD,EAAUxqC,GAC9B,GAAKwqC,EAIJ,MAAO6B,IAAa7gD,KAAM05B,EAAO32B,IAAK/I,EAAM,SAAU,CAAE,GAQpDA,EAAK+nD,eAAe,EAAEtnG,QAAWu/C,EAAKkM,sBAAsB,EAAEj1B,MAIjE2wE,GAAkB5nD,EAAMsnD,EAAW9sC,CAAM,EAHzCipC,GAAMzjD,EAAM8mD,GAAS,WACpB,OAAOc,GAAkB5nD,EAAMsnD,EAAW9sC,CAAM,CACjD,CAAE,CAGL,EAEAt6C,IAAK,SAAU8/B,EAAM96C,EAAOs1D,GAC3B,IACCitC,EAASnE,GAAWtjD,CAAK,EAIzBqoD,EAAqB,CAACzkB,EAAQkiB,cAAc,GACvB,aAApB2B,EAAOz+C,SAIRw+C,GADkBa,GAAsB7tC,IAEY,eAAnDklB,EAAO32B,IAAK/I,EAAM,YAAa,GAAOynD,CAAO,EAC9CL,EAAW5sC,EACV6sC,GACCrnD,EACAsnD,EACA9sC,EACAgtC,EACAC,CACD,EACA,EAqBF,OAjBKD,GAAea,IACnBjB,GAAYxxF,KAAKC,KAChBmqC,EAAM,SAAWsnD,EAAW,GAAI9nF,YAAY,EAAI8nF,EAAUnoF,MAAO,CAAE,GACnEugD,WAAY+nC,EAAQH,EAAY,EAChCD,GAAoBrnD,EAAMsnD,EAAW,SAAU,GAAOG,CAAO,EAC7D,EACD,GAIIL,IAAc3tB,EAAU6f,GAAQh5F,KAAM4E,CAAM,IACnB,QAA3Bu0E,EAAS,IAAO,QAElBz5B,EAAKS,MAAO6mD,GAAcpiG,EAC1BA,EAAQw6E,EAAO32B,IAAK/I,EAAMsnD,CAAU,GAG9BH,GAAmBnnD,EAAM96C,EAAOkiG,CAAS,CACjD,CACD,CACD,CAAE,EAEF1nB,EAAOwoB,SAASxD,WAAaY,GAAc1hB,EAAQiiB,mBAClD,SAAU7lD,EAAMglD,GACf,GAAKA,EACJ,OAAStlC,WAAYqlC,GAAQ/kD,EAAM,YAAa,CAAE,GACjDA,EAAKkM,sBAAsB,EAAEo8C,KAC5B7E,GAAMzjD,EAAM,CAAE0kD,WAAY,CAAE,EAAG,WAC9B,OAAO1kD,EAAKkM,sBAAsB,EAAEo8C,IACrC,CAAE,GACA,IAEN,CACD,EAGA5oB,EAAOgF,KAAM,CACZ6jB,OAAQ,GACRC,QAAS,GACTC,OAAQ,OACT,EAAG,SAAUl0B,EAAQm0B,GACpBhpB,EAAOwoB,SAAU3zB,EAASm0B,GAAW,CACpCC,OAAQ,SAAUzjG,GAOjB,IANA,IAAI7B,EAAI,EACPulG,EAAW,GAGXC,EAAyB,UAAjB,OAAO3jG,EAAqBA,EAAMyP,MAAO,GAAI,EAAI,CAAEzP,GAEpD7B,EAAI,EAAGA,CAAC,GACfulG,EAAUr0B,EAASglB,EAAWl2F,GAAMqlG,GACnCG,EAAOxlG,IAAOwlG,EAAOxlG,EAAI,IAAOwlG,EAAO,GAGzC,OAAOD,CACR,CACD,EAEgB,WAAXr0B,IACJmL,EAAOwoB,SAAU3zB,EAASm0B,GAASxoF,IAAMinF,GAE3C,CAAE,EAEFznB,EAAOxS,GAAGnrD,OAAQ,CACjBgnC,IAAK,SAAU/gD,EAAM9C,GACpB,OAAOmyF,EAAQ9vF,KAAM,SAAUy4C,EAAMh4C,EAAM9C,GAC1C,IAAIuiG,EAAQx3C,EACX9wD,EAAM,GACNkE,EAAI,EAEL,GAAK+5B,MAAMC,QAASr1B,CAAK,EAAI,CAI5B,IAHAy/F,EAASnE,GAAWtjD,CAAK,EACzBiQ,EAAMjoD,EAAKvH,OAEH4C,EAAI4sD,EAAK5sD,CAAC,GACjBlE,EAAK6I,EAAM3E,IAAQq8E,EAAO32B,IAAK/I,EAAMh4C,EAAM3E,GAAK,GAAOokG,CAAO,EAG/D,OAAOtoG,CACR,CAEA,OAAiBuT,SAAVxN,EACNw6E,EAAOj/B,MAAOT,EAAMh4C,EAAM9C,CAAM,EAChCw6E,EAAO32B,IAAK/I,EAAMh4C,CAAK,CACzB,EAAGA,EAAM9C,EAA0B,EAAnBipC,UAAU1tC,MAAW,CACtC,CACD,CAAE,IAMFi/E,EAAOsoB,MAAQA,GAETlzE,UAAY,CACjBo6C,YAAa84B,EACb3xE,KAAM,SAAU2pB,EAAMI,EAASvrB,EAAM7E,EAAKi4E,EAAQjO,GACjDzyF,KAAKy4C,KAAOA,EACZz4C,KAAKstB,KAAOA,EACZttB,KAAK0gG,OAASA,GAAUvoB,EAAOuoB,OAAO/M,SACtC3zF,KAAK64C,QAAUA,EACf74C,KAAK0oB,MAAQ1oB,KAAK5E,IAAM4E,KAAK4jF,IAAI,EACjC5jF,KAAKyoB,IAAMA,EACXzoB,KAAKyyF,KAAOA,IAAUta,EAAOua,UAAWplE,GAAS,GAAK,KACvD,EACAs2D,IAAK,WACJ,IAAI2N,EAAQkP,EAAMc,UAAWvhG,KAAKstB,MAElC,OAAOikE,GAASA,EAAMz4E,IACrBy4E,EACAkP,EAAMc,UAAU5N,UADV76E,IAAK9Y,IAAK,CAElB,EACAsV,IAAK,SAAUihC,GACd,IAAIirD,EACHjQ,EAAQkP,EAAMc,UAAWvhG,KAAKstB,MAoB/B,OAlBKttB,KAAK64C,QAAQvC,SACjBt2C,KAAKyhG,IAAMD,EAAQrpB,EAAOuoB,OAAQ1gG,KAAK0gG,QACtCnqD,EAASv2C,KAAK64C,QAAQvC,SAAWC,EAAS,EAAG,EAAGv2C,KAAK64C,QAAQvC,QAC9D,EAEAt2C,KAAKyhG,IAAMD,EAAQjrD,EAEpBv2C,KAAK5E,KAAQ4E,KAAKyoB,IAAMzoB,KAAK0oB,OAAU84E,EAAQxhG,KAAK0oB,MAE/C1oB,KAAK64C,QAAQ6oD,MACjB1hG,KAAK64C,QAAQ6oD,KAAKl0E,KAAMxtB,KAAKy4C,KAAMz4C,KAAK5E,IAAK4E,IAAK,GAG9CuxF,GAASA,EAAM54E,IACnB44E,EAEAkP,EAAMc,UAAU5N,UAFVh7E,IAAK3Y,IAAK,EAIVA,IACR,CACD,GAEgB8uB,KAAKvB,UAAYkzE,EAAMlzE,WAEvCkzE,EAAMc,UAAY,CACjB5N,SAAU,CACT76E,IAAK,SAAUu5E,GAKd,OAA6B,IAAxBA,EAAM55C,KAAK2/B,UACa,MAA5Bia,EAAM55C,KAAM45C,EAAM/kE,OAAoD,MAAlC+kE,EAAM55C,KAAKS,MAAOm5C,EAAM/kE,MACrD+kE,EAAM55C,KAAM45C,EAAM/kE,OAO1B5xB,EAASy8E,EAAO32B,IAAK6wC,EAAM55C,KAAM45C,EAAM/kE,KAAM,EAAG,IAGnB,SAAX5xB,EAAwBA,EAAJ,CACvC,EACAid,IAAK,SAAU05E,GAKTla,EAAOhkB,GAAGutC,KAAMrP,EAAM/kE,MAC1B6qD,EAAOhkB,GAAGutC,KAAMrP,EAAM/kE,MAAQ+kE,CAAM,EACD,IAAxBA,EAAM55C,KAAK2/B,UACtBD,GAAOwoB,SAAUtO,EAAM/kE,OAC6B,MAAnD+kE,EAAM55C,KAAKS,MAAOgmD,GAAe7M,EAAM/kE,IAAK,GAG7C+kE,EAAM55C,KAAM45C,EAAM/kE,MAAS+kE,EAAMj3F,IAFjC+8E,EAAOj/B,MAAOm5C,EAAM55C,KAAM45C,EAAM/kE,KAAM+kE,EAAMj3F,IAAMi3F,EAAMI,IAAK,CAI/D,CACD,CACD,GAIgBxwC,UAAYw+C,EAAMc,UAAUI,WAAa,CACxDhpF,IAAK,SAAU05E,GACTA,EAAM55C,KAAK2/B,UAAYia,EAAM55C,KAAKqhC,aACtCuY,EAAM55C,KAAM45C,EAAM/kE,MAAS+kE,EAAMj3F,IAEnC,CACD,EAEA+8E,EAAOuoB,OAAS,CACfkB,OAAQ,SAAU11F,GACjB,OAAOA,CACR,EACA21F,MAAO,SAAU31F,GAChB,MAAO,GAAMmC,KAAKyzF,IAAK51F,EAAImC,KAAK0zF,EAAG,EAAI,CACxC,EACApO,SAAU,OACX,EAEAxb,EAAOhkB,GAAKssC,EAAMlzE,UAAUuB,KAG5BqpD,EAAOhkB,GAAGutC,KAAO,GAKjB,IACCM,EAAOC,GAkrBHp4D,EAjrBJq4D,GAAW,yBACXC,GAAO,cAER,SAASx0B,KACHs0B,KACqB,KAApB9uF,EAASivF,QAAoBzpG,EAAO0pG,sBACxC1pG,EAAO0pG,sBAAuB10B,EAAS,EAEvCh1E,EAAO+lB,WAAYivD,GAAUwK,EAAOhkB,GAAGyjB,QAAS,EAGjDO,EAAOhkB,GAAGmuC,KAAK,EAEjB,CAGA,SAASC,KAIR,OAHA5pG,EAAO+lB,WAAY,WAClBsjF,EAAQ72F,MACT,CAAE,EACO62F,EAAQ3mG,KAAKD,IAAI,CAC3B,CAGA,SAASonG,GAAO91E,EAAM+1E,GACrB,IAAI1pE,EACHj9B,EAAI,EACJ87C,EAAQ,CAAEjoB,OAAQjD,CAAK,EAKxB,IADA+1E,EAAeA,EAAe,EAAI,EAC1B3mG,EAAI,EAAGA,GAAK,EAAI2mG,EAEvB7qD,EAAO,UADP7e,EAAQi5D,EAAWl2F,KACS87C,EAAO,UAAY7e,GAAUrM,EAO1D,OAJK+1E,IACJ7qD,EAAM8J,QAAU9J,EAAMloB,MAAQhD,GAGxBkrB,CACR,CAEA,SAAS8qD,GAAa/kG,EAAO2vB,EAAMq1E,GAKlC,IAJA,IAAItQ,EACHqI,GAAekI,EAAUC,SAAUv1E,IAAU,IAAKrhB,OAAQ22F,EAAUC,SAAU,IAAM,EACpFx3E,EAAQ,EACRnyB,EAASwhG,EAAWxhG,OACbmyB,EAAQnyB,EAAQmyB,CAAK,GAC5B,GAAOgnE,EAAQqI,EAAYrvE,GAAQmC,KAAMm1E,EAAWr1E,EAAM3vB,CAAM,EAG/D,OAAO00F,CAGV,CAmNA,SAASuQ,EAAWnqD,EAAMqqD,EAAYjqD,GACrC,IAAIn9C,EACHqnG,EAtCG13E,EAAO5qB,EAAMigG,EAAQ/iG,EAAO4zF,EAuC/BlmE,EAAQ,EACRnyB,EAAS0pG,EAAUI,WAAW9pG,OAC9B00F,EAAWzV,EAAOqV,SAAS,EAAEG,OAAQ,WAGpC,OAAO2U,EAAK7pD,IACb,CAAE,EACF6pD,EAAO,WACN,GAAKS,GAAL,CAaA,IAVA,IAAIzoB,EAAc0nB,GAASO,GAAY,EACtClT,EAAYhhF,KAAKwS,IAAK,EAAG8hF,EAAUM,UAAYN,EAAUrsD,SAAWgkC,CAAY,EAKhF/jC,EAAU,GADH84C,EAAYsT,EAAUrsD,UAAY,GAEzCjrB,EAAQ,EACRnyB,EAASypG,EAAUO,OAAOhqG,OAEnBmyB,EAAQnyB,EAAQmyB,CAAK,GAC5Bs3E,EAAUO,OAAQ73E,GAAQ/V,IAAKihC,CAAQ,EAMxC,GAHAq3C,EAASc,WAAYj2C,EAAM,CAAEkqD,EAAWpsD,EAAS84C,EAAY,EAGxD94C,EAAU,GAAKr9C,EACnB,OAAOm2F,EAIFn2F,GACL00F,EAASc,WAAYj2C,EAAM,CAAEkqD,EAAW,EAAG,EAAI,EAIhD/U,EAASe,YAAal2C,EAAM,CAAEkqD,EAAY,CA5B1C,CA6BA,MAAO,EACR,EACAA,EAAY/U,EAAShxE,QAAS,CAC7B67B,KAAMA,EACNqP,MAAOqwB,EAAO39D,OAAQ,GAAIsoF,CAAW,EACrCx8C,KAAM6xB,EAAO39D,OAAQ,GAAM,CAC1B2oF,cAAe,GACfzC,OAAQvoB,EAAOuoB,OAAO/M,QACvB,EAAG96C,CAAQ,EACXuqD,mBAAoBN,EACpBO,gBAAiBxqD,EACjBoqD,UAAWjB,GAASO,GAAY,EAChCjsD,SAAUuC,EAAQvC,SAClB4sD,OAAQ,GACRR,YAAa,SAAUp1E,EAAM7E,GACxB4pE,EAAQla,EAAOsoB,MAAOhoD,EAAMkqD,EAAUr8C,KAAMh5B,EAAM7E,EACrDk6E,EAAUr8C,KAAK68C,cAAe71E,IAAUq1E,EAAUr8C,KAAKo6C,MAAO,EAE/D,OADAiC,EAAUO,OAAO7hG,KAAMgxF,CAAM,EACtBA,CACR,EACAjqB,KAAM,SAAUk7B,GACf,IAAIj4E,EAAQ,EAIXnyB,EAASoqG,EAAUX,EAAUO,OAAOhqG,OAAS,EAC9C,GAAK6pG,GAAL,CAIA,IADAA,EAAU,GACF13E,EAAQnyB,EAAQmyB,CAAK,GAC5Bs3E,EAAUO,OAAQ73E,GAAQ/V,IAAK,CAAE,EAI7BguF,GACJ1V,EAASc,WAAYj2C,EAAM,CAAEkqD,EAAW,EAAG,EAAI,EAC/C/U,EAASe,YAAal2C,EAAM,CAAEkqD,EAAWW,EAAU,GAEnD1V,EAASkB,WAAYr2C,EAAM,CAAEkqD,EAAWW,EAAU,CAXnD,CAaA,OAAOtjG,IACR,CACD,CAAE,EACF8nD,EAAQ66C,EAAU76C,MA3HCA,EA6HRA,EA7Heq7C,EA6HRR,EAAUr8C,KAAK68C,cAzHlC,IAAM93E,KAASy8B,EAed,GAbA44C,EAASyC,EADT1iG,EAAOgwF,EAAWplE,CAAM,GAExB1tB,EAAQmqD,EAAOz8B,GACVwK,MAAMC,QAASn4B,CAAM,IACzB+iG,EAAS/iG,EAAO,GAChBA,EAAQmqD,EAAOz8B,GAAU1tB,EAAO,IAG5B0tB,IAAU5qB,IACdqnD,EAAOrnD,GAAS9C,EAChB,OAAOmqD,EAAOz8B,KAGfkmE,EAAQpZ,EAAOwoB,SAAUlgG,KACX,WAAY8wF,EAMzB,IAAMlmE,KALN1tB,EAAQ4zF,EAAM6P,OAAQzjG,CAAM,EAC5B,OAAOmqD,EAAOrnD,GAIC9C,EACN0tB,KAASy8B,IAChBA,EAAOz8B,GAAU1tB,EAAO0tB,GACxB83E,EAAe93E,GAAUq1E,QAI3ByC,EAAe1iG,GAASigG,EA+F1B,KAAQr1E,EAAQnyB,EAAQmyB,CAAK,GAE5B,GADA3vB,EAASknG,EAAUI,WAAY33E,GAAQmC,KAAMm1E,EAAWlqD,EAAMqP,EAAO66C,EAAUr8C,IAAK,EAMnF,OAJKlI,EAAY1iD,EAAO0sE,IAAK,IAC5B+P,EAAOqZ,YAAamR,EAAUlqD,KAAMkqD,EAAUr8C,KAAK2mC,KAAM,EAAE7kB,KAC1D1sE,EAAO0sE,KAAKprB,KAAMthD,CAAO,GAEpBA,EAyBT,OArBAy8E,EAAOvgF,IAAKkwD,EAAO46C,GAAaC,CAAU,EAErCvkD,EAAYukD,EAAUr8C,KAAK59B,KAAM,GACrCi6E,EAAUr8C,KAAK59B,MAAM8E,KAAMirB,EAAMkqD,CAAU,EAI5CA,EACErrD,SAAUqrD,EAAUr8C,KAAKhP,QAAS,EAClCpwB,KAAMy7E,EAAUr8C,KAAKp/B,KAAMy7E,EAAUr8C,KAAK5e,QAAS,EACnDilD,KAAMgW,EAAUr8C,KAAKqmC,IAAK,EAC1BgB,OAAQgV,EAAUr8C,KAAKqnC,MAAO,EAEhCxV,EAAOhkB,GAAGqZ,MACT2K,EAAO39D,OAAQ8nF,EAAM,CACpB7pD,KAAMA,EACN8qD,KAAMZ,EACN1V,MAAO0V,EAAUr8C,KAAK2mC,KACvB,CAAE,CACH,EAEO0V,CACR,CAEAxqB,EAAOyqB,UAAYzqB,EAAO39D,OAAQooF,EAAW,CAE5CC,SAAU,CACT,IAAK,CAAE,SAAUv1E,EAAM3vB,GACtB,IAAI00F,EAAQryF,KAAK0iG,YAAap1E,EAAM3vB,CAAM,EAE1C,OADAw0F,GAAWE,EAAM55C,KAAMnrB,EAAMykE,GAAQh5F,KAAM4E,CAAM,EAAG00F,CAAM,EACnDA,CACR,EACD,EAEAmR,QAAS,SAAU17C,EAAOphB,GAYzB,IAJA,IAAIpZ,EACHjC,EAAQ,EACRnyB,GAPA4uD,EAFI1J,EAAY0J,CAAM,GACtBphB,EAAWohB,EACH,CAAE,MAEFA,EAAMD,MAAOwkC,CAAc,GAKpBnzF,OAERmyB,EAAQnyB,EAAQmyB,CAAK,GAC5BiC,EAAOw6B,EAAOz8B,GACdu3E,EAAUC,SAAUv1E,GAASs1E,EAAUC,SAAUv1E,IAAU,GAC3Ds1E,EAAUC,SAAUv1E,GAAOu4D,QAASn/C,CAAS,CAE/C,EAEAs8D,WAAY,CA3Wb,SAA2BvqD,EAAMqP,EAAOxB,GACvC,IAAIh5B,EAAM3vB,EAAOm1F,EAAQvB,EAAOkS,EAASC,EAAWC,EACnDC,EAAQ,UAAW97C,GAAS,WAAYA,EACxCy7C,EAAOvjG,KACP85F,EAAO,GACP5gD,EAAQT,EAAKS,MACbkpD,EAAS3pD,EAAK2/B,UAAYuZ,GAAoBl5C,CAAK,EACnDorD,EAAW/S,EAASh4E,IAAK2/B,EAAM,QAAS,EA6BzC,IAAMnrB,KA1BAg5B,EAAK2mC,QAEa,OADvBsE,EAAQpZ,EAAOqZ,YAAa/4C,EAAM,IAAK,GAC5BqrD,WACVvS,EAAMuS,SAAW,EACjBL,EAAUlS,EAAM9wE,MAAMosE,KACtB0E,EAAM9wE,MAAMosE,KAAO,WACZ0E,EAAMuS,UACXL,EAAQ,CAEV,GAEDlS,EAAMuS,QAAQ,GAEdP,EAAK5V,OAAQ,WAGZ4V,EAAK5V,OAAQ,WACZ4D,EAAMuS,QAAQ,GACR3rB,EAAO8U,MAAOx0C,EAAM,IAAK,EAAEv/C,QAChCq4F,EAAM9wE,MAAMosE,KAAK,CAEnB,CAAE,CACH,CAAE,GAIW/kC,EAEb,GADAnqD,EAAQmqD,EAAOx6B,GACV40E,GAASzjD,KAAM9gD,CAAM,EAAI,CAG7B,GAFA,OAAOmqD,EAAOx6B,GACdwlE,EAASA,GAAoB,WAAVn1F,EACdA,KAAYykG,EAAS,OAAS,QAAW,CAI7C,GAAe,SAAVzkG,GAAoBkmG,IAAiC14F,SAArB04F,EAAUv2E,GAK9C,SAJA80E,EAAS,EAMX,CACAtI,EAAMxsE,GAASu2E,GAAYA,EAAUv2E,IAAU6qD,EAAOj/B,MAAOT,EAAMnrB,CAAK,CACzE,CAKD,IADAo2E,EAAY,CAACvrB,EAAO8F,cAAen2B,CAAM,IACtBqwB,GAAO8F,cAAe6b,CAAK,EA8D9C,IAAMxsE,KAzDDs2E,GAA2B,IAAlBnrD,EAAK2/B,WAMlB9xB,EAAK4M,SAAW,CAAEha,EAAMga,SAAUha,EAAM6qD,UAAW7qD,EAAM8qD,WAIlC,OADvBL,EAAiBE,GAAYA,EAASjS,WAErC+R,EAAiB7S,EAASh4E,IAAK2/B,EAAM,SAAU,GAG/B,UADjBm5C,EAAUzZ,EAAO32B,IAAK/I,EAAM,SAAU,KAEhCkrD,EACJ/R,EAAU+R,GAIV9Q,EAAU,CAAEp6C,GAAQ,EAAK,EACzBkrD,EAAiBlrD,EAAKS,MAAM04C,SAAW+R,EACvC/R,EAAUzZ,EAAO32B,IAAK/I,EAAM,SAAU,EACtCo6C,EAAU,CAAEp6C,EAAO,IAKJ,WAAZm5C,GAAoC,iBAAZA,GAAgD,MAAlB+R,IACrB,SAAhCxrB,EAAO32B,IAAK/I,EAAM,OAAQ,IAGxBirD,IACLH,EAAKr8E,KAAM,WACVgyB,EAAM04C,QAAU+R,CACjB,CAAE,EACqB,MAAlBA,IACJ/R,EAAU14C,EAAM04C,QAChB+R,EAA6B,SAAZ/R,EAAqB,GAAKA,IAG7C14C,EAAM04C,QAAU,gBAKdtrC,EAAK4M,WACTha,EAAMga,SAAW,SACjBqwC,EAAK5V,OAAQ,WACZz0C,EAAMga,SAAW5M,EAAK4M,SAAU,GAChCha,EAAM6qD,UAAYz9C,EAAK4M,SAAU,GACjCha,EAAM8qD,UAAY19C,EAAK4M,SAAU,EAClC,CAAE,GAIHwwC,EAAY,GACE5J,EAGP4J,IACAG,EACC,WAAYA,IAChBzB,EAASyB,EAASzB,QAGnByB,EAAW/S,EAAShB,OAAQr3C,EAAM,SAAU,CAAEm5C,QAAS+R,CAAe,CAAE,EAIpE7Q,IACJ+Q,EAASzB,OAAS,CAACA,GAIfA,GACJvP,EAAU,CAAEp6C,GAAQ,EAAK,EAK1B8qD,EAAKr8E,KAAM,WASV,IAAMoG,KAJA80E,GACLvP,EAAU,CAAEp6C,EAAO,EAEpBq4C,EAASx6E,OAAQmiC,EAAM,QAAS,EAClBqhD,EACb3hB,EAAOj/B,MAAOT,EAAMnrB,EAAMwsE,EAAMxsE,EAAO,CAEzC,CAAE,GAIHo2E,EAAYhB,GAAaN,EAASyB,EAAUv2E,GAAS,EAAGA,EAAMi2E,CAAK,EAC3Dj2E,KAAQu2E,IACfA,EAAUv2E,GAASo2E,EAAUh7E,MACxB05E,IACJsB,EAAUj7E,IAAMi7E,EAAUh7E,MAC1Bg7E,EAAUh7E,MAAQ,GAItB,GAmMCu7E,UAAW,SAAUv9D,EAAUse,GACzBA,EACJ49C,EAAUI,WAAWnd,QAASn/C,CAAS,EAEvCk8D,EAAUI,WAAW3hG,KAAMqlC,CAAS,CAEtC,CACD,CAAE,EAEFyxC,EAAO+rB,MAAQ,SAAUA,EAAOxD,EAAQ/6B,GACvC,IAAIrjC,EAAM4hE,GAA0B,UAAjB,OAAOA,EAAqB/rB,EAAO39D,OAAQ,GAAI0pF,CAAM,EAAI,CAC3Ex8D,SAAUi+B,GAAM,CAACA,GAAM+6B,GACtBtiD,EAAY8lD,CAAM,GAAKA,EACxB5tD,SAAU4tD,EACVxD,OAAQ/6B,GAAM+6B,GAAUA,GAAU,CAACtiD,EAAYsiD,CAAO,GAAKA,CAC5D,EAmCA,OAhCKvoB,EAAOhkB,GAAGhP,IACd7iB,EAAIgU,SAAW,EAGc,UAAxB,OAAOhU,EAAIgU,WACVhU,EAAIgU,YAAY6hC,EAAOhkB,GAAGgwC,OAC9B7hE,EAAIgU,SAAW6hC,EAAOhkB,GAAGgwC,OAAQ7hE,EAAIgU,UAGrChU,EAAIgU,SAAW6hC,EAAOhkB,GAAGgwC,OAAOxQ,UAMjB,MAAbrxD,EAAI2qD,OAA+B,KAAd3qD,EAAI2qD,QAC7B3qD,EAAI2qD,MAAQ,MAIb3qD,EAAI65D,IAAM75D,EAAIoF,SAEdpF,EAAIoF,SAAW,WACT0W,EAAY9b,EAAI65D,GAAI,GACxB75D,EAAI65D,IAAI3uE,KAAMxtB,IAAK,EAGfsiC,EAAI2qD,OACR9U,EAAOkZ,QAASrxF,KAAMsiC,EAAI2qD,KAAM,CAElC,EAEO3qD,CACR,EAEA61C,EAAOxS,GAAGnrD,OAAQ,CACjB4pF,OAAQ,SAAUF,EAAOG,EAAI3D,EAAQh6D,GAGpC,OAAO1mC,KAAKhC,OAAQ2zF,EAAmB,EAAEnwC,IAAK,UAAW,CAAE,EAAE/e,KAAK,EAGhEha,IAAI,EAAE67E,QAAS,CAAE5iD,QAAS2iD,CAAG,EAAGH,EAAOxD,EAAQh6D,CAAS,CAC3D,EACA49D,QAAS,SAAUh3E,EAAM42E,EAAOxD,EAAQh6D,GAGxB,SAAd69D,IAGC,IAAIhB,EAAOX,EAAW5iG,KAAMm4E,EAAO39D,OAAQ,GAAI8S,CAAK,EAAGk3E,CAAO,GAGzD/jF,GAASqwE,EAASh4E,IAAK9Y,KAAM,QAAS,IAC1CujG,EAAKn7B,KAAM,EAAK,CAElB,CAXD,IAAI3nD,EAAQ03D,EAAO8F,cAAe3wD,CAAK,EACtCk3E,EAASrsB,EAAO+rB,MAAOA,EAAOxD,EAAQh6D,CAAS,EAchD,OAFA69D,EAAY17B,OAAS07B,EAEd9jF,GAA0B,KAAjB+jF,EAAOvX,MACtBjtF,KAAKm9E,KAAMonB,CAAY,EACvBvkG,KAAKitF,MAAOuX,EAAOvX,MAAOsX,CAAY,CACxC,EACAn8B,KAAM,SAAU17C,EAAMglE,EAAY4R,GACjB,SAAZmB,EAAsBlT,GACzB,IAAInpB,EAAOmpB,EAAMnpB,KACjB,OAAOmpB,EAAMnpB,KACbA,EAAMk7B,CAAQ,CACf,CAWA,MATqB,UAAhB,OAAO52E,IACX42E,EAAU5R,EACVA,EAAahlE,EACbA,EAAOvhB,QAEHumF,GACJ1xF,KAAKitF,MAAOvgE,GAAQ,KAAM,EAAG,EAGvB1sB,KAAKm9E,KAAM,WACjB,IAAIkU,EAAU,GACbhmE,EAAgB,MAARqB,GAAgBA,EAAO,aAC/Bg4E,EAASvsB,EAAOusB,OAChBpqG,EAAOw2F,EAASh4E,IAAK9Y,IAAK,EAE3B,GAAKqrB,EACC/wB,EAAM+wB,IAAW/wB,EAAM+wB,GAAQ+8C,MACnCq8B,EAAWnqG,EAAM+wB,EAAQ,OAG1B,IAAMA,KAAS/wB,EACTA,EAAM+wB,IAAW/wB,EAAM+wB,GAAQ+8C,MAAQ+5B,GAAK1jD,KAAMpzB,CAAM,GAC5Do5E,EAAWnqG,EAAM+wB,EAAQ,EAK5B,IAAMA,EAAQq5E,EAAOxrG,OAAQmyB,CAAK,IAC5Bq5E,EAAQr5E,GAAQotB,OAASz4C,MACnB,MAAR0sB,GAAgBg4E,EAAQr5E,GAAQ4hE,QAAUvgE,IAE5Cg4E,EAAQr5E,GAAQk4E,KAAKn7B,KAAMk7B,CAAQ,EACnCjS,EAAU,GACVqT,EAAO95E,OAAQS,EAAO,CAAE,GAOrBgmE,IAAYiS,GAChBnrB,EAAOkZ,QAASrxF,KAAM0sB,CAAK,CAE7B,CAAE,CACH,EACAm8C,OAAQ,SAAUn8C,GAIjB,MAHc,KAATA,IACJA,EAAOA,GAAQ,MAET1sB,KAAKm9E,KAAM,WACjB,IAAI9xD,EACH/wB,EAAOw2F,EAASh4E,IAAK9Y,IAAK,EAC1BitF,EAAQ3yF,EAAMoyB,EAAO,SACrB6kE,EAAQj3F,EAAMoyB,EAAO,cACrBg4E,EAASvsB,EAAOusB,OAChBxrG,EAAS+zF,EAAQA,EAAM/zF,OAAS,EAajC,IAVAoB,EAAKuuE,OAAS,GAGdsP,EAAO8U,MAAOjtF,KAAM0sB,EAAM,EAAG,EAExB6kE,GAASA,EAAMnpB,MACnBmpB,EAAMnpB,KAAK56C,KAAMxtB,KAAM,EAAK,EAIvBqrB,EAAQq5E,EAAOxrG,OAAQmyB,CAAK,IAC5Bq5E,EAAQr5E,GAAQotB,OAASz4C,MAAQ0kG,EAAQr5E,GAAQ4hE,QAAUvgE,IAC/Dg4E,EAAQr5E,GAAQk4E,KAAKn7B,KAAM,EAAK,EAChCs8B,EAAO95E,OAAQS,EAAO,CAAE,GAK1B,IAAMA,EAAQ,EAAGA,EAAQnyB,EAAQmyB,CAAK,GAChC4hE,EAAO5hE,IAAW4hE,EAAO5hE,GAAQw9C,QACrCokB,EAAO5hE,GAAQw9C,OAAOr7C,KAAMxtB,IAAK,EAKnC,OAAO1F,EAAKuuE,MACb,CAAE,CACH,CACD,CAAE,EAEFsP,EAAOgF,KAAM,CAAE,SAAU,OAAQ,QAAU,SAAUpM,EAAItwE,GACxD,IAAIkkG,EAAQxsB,EAAOxS,GAAIllE,GACvB03E,EAAOxS,GAAIllE,GAAS,SAAUyjG,EAAOxD,EAAQh6D,GAC5C,OAAgB,MAATw9D,GAAkC,WAAjB,OAAOA,EAC9BS,EAAMh+D,MAAO3mC,KAAM4mC,SAAU,EAC7B5mC,KAAKskG,QAAS9B,GAAO/hG,EAAM,EAAK,EAAGyjG,EAAOxD,EAAQh6D,CAAS,CAC7D,CACD,CAAE,EAGFyxC,EAAOgF,KAAM,CACZynB,UAAWpC,GAAO,MAAO,EACzBqC,QAASrC,GAAO,MAAO,EACvBsC,YAAatC,GAAO,QAAS,EAC7BuC,OAAQ,CAAErjD,QAAS,MAAO,EAC1BsjD,QAAS,CAAEtjD,QAAS,MAAO,EAC3BujD,WAAY,CAAEvjD,QAAS,QAAS,CACjC,EAAG,SAAUjhD,EAAMqnD,GAClBqwB,EAAOxS,GAAIllE,GAAS,SAAUyjG,EAAOxD,EAAQh6D,GAC5C,OAAO1mC,KAAKskG,QAASx8C,EAAOo8C,EAAOxD,EAAQh6D,CAAS,CACrD,CACD,CAAE,EAEFyxC,EAAOusB,OAAS,GAChBvsB,EAAOhkB,GAAGmuC,KAAO,WAChB,IAAI90B,EACH1xE,EAAI,EACJ4oG,EAASvsB,EAAOusB,OAIjB,IAFA1C,EAAQ3mG,KAAKD,IAAI,EAETU,EAAI4oG,EAAOxrG,OAAQ4C,CAAC,IAC3B0xE,EAAQk3B,EAAQ5oG,IAGJ,GAAK4oG,EAAQ5oG,KAAQ0xE,GAChCk3B,EAAO95E,OAAQ9uB,CAAC,GAAI,CAAE,EAIlB4oG,EAAOxrG,QACZi/E,EAAOhkB,GAAGiU,KAAK,EAEhB45B,EAAQ72F,MACT,EAEAgtE,EAAOhkB,GAAGqZ,MAAQ,SAAUA,GAC3B2K,EAAOusB,OAAOrjG,KAAMmsE,CAAM,EAC1B2K,EAAOhkB,GAAGzrC,MAAM,CACjB,EAEAyvD,EAAOhkB,GAAGyjB,SAAW,GACrBO,EAAOhkB,GAAGzrC,MAAQ,WACZu5E,KAILA,GAAa,GACbt0B,GAAS,EACV,EAEAwK,EAAOhkB,GAAGiU,KAAO,WAChB65B,GAAa,IACd,EAEA9pB,EAAOhkB,GAAGgwC,OAAS,CAClBe,KAAM,IACNC,KAAM,IAGNxR,SAAU,GACX,EAIAxb,EAAOxS,GAAGy/B,MAAQ,SAAU3rB,EAAM/sD,GAIjC,OAHA+sD,EAAOtB,EAAOhkB,IAAKgkB,EAAOhkB,GAAGgwC,OAAQ1qB,IAAiBA,EAG/Cz5E,KAAKitF,MAFZvgE,EAAOA,GAAQ,KAEU,SAAU/Y,EAAM49E,GACxC,IAAIvtC,EAAUrrD,EAAO+lB,WAAY/K,EAAM8lE,CAAK,EAC5C8X,EAAMnpB,KAAO,WACZzvE,EAAOu0B,aAAc82B,CAAQ,CAC9B,CACD,CAAE,CACH,EAIKna,EAAQ12B,EAAS8c,cAAe,OAAQ,EAE3CqS,EADSnvB,EAAS8c,cAAe,QAAS,EAC7BugD,YAAar9D,EAAS8c,cAAe,QAAS,CAAE,EAE9D4Z,EAAMnd,KAAO,WAIb2vD,EAAQgpB,QAA0B,KAAhBx7D,EAAMlsC,MAIxB0+E,EAAQipB,YAAchjE,EAAIoC,UAI1BmF,EAAQ12B,EAAS8c,cAAe,OAAQ,GAClCtyB,MAAQ,IACdksC,EAAMnd,KAAO,QACb2vD,EAAQkpB,WAA6B,MAAhB17D,EAAMlsC,MAI5B,IAAI6nG,GACH9hB,GAAavL,EAAO2N,KAAKpC,WAmItB+hB,IAjIJttB,EAAOxS,GAAGnrD,OAAQ,CACjBsS,KAAM,SAAUrsB,EAAM9C,GACrB,OAAOmyF,EAAQ9vF,KAAMm4E,EAAOrrD,KAAMrsB,EAAM9C,EAA0B,EAAnBipC,UAAU1tC,MAAW,CACrE,EAEAkoD,WAAY,SAAU3gD,GACrB,OAAOT,KAAKm9E,KAAM,WACjBhF,EAAO/2B,WAAYphD,KAAMS,CAAK,CAC/B,CAAE,CACH,CACD,CAAE,EAEF03E,EAAO39D,OAAQ,CACdsS,KAAM,SAAU2rB,EAAMh4C,EAAM9C,GAC3B,IAAIywE,EAAKmjB,EACRmU,EAAQjtD,EAAK2/B,SAGd,GAAe,IAAVstB,GAAyB,IAAVA,GAAyB,IAAVA,EAKnC,OAAkC,SAAtBjtD,EAAK23B,aACT+H,EAAO7qD,KAAMmrB,EAAMh4C,EAAM9C,CAAM,GAKxB,IAAV+nG,GAAgBvtB,EAAO8S,SAAUxyC,CAAK,IAC1C84C,EAAQpZ,EAAOwtB,UAAWllG,EAAKyR,YAAY,KACxCimE,EAAO2N,KAAKj+B,MAAM+9C,KAAKnnD,KAAMh+C,CAAK,EAAI+kG,GAAWr6F,SAGtCA,SAAVxN,EACW,OAAVA,EACJw6E,OAAO/2B,WAAY3I,EAAMh4C,CAAK,EAI1B8wF,GAAS,QAASA,GACuBpmF,UAA3CijE,EAAMmjB,EAAM54E,IAAK8/B,EAAM96C,EAAO8C,CAAK,GAC9B2tE,GAGR31B,EAAKi4B,aAAcjwE,EAAM9C,EAAQ,EAAG,EAC7BA,GAGH4zF,KAAS,QAASA,GAA+C,QAApCnjB,EAAMmjB,EAAMz4E,IAAK2/B,EAAMh4C,CAAK,KAOhD,OAHd2tE,EAAM+J,EAAOn1D,KAAK8J,KAAM2rB,EAAMh4C,CAAK,GAGd0K,OAAYijE,EAClC,EAEAu3B,UAAW,CACVj5E,KAAM,CACL/T,IAAK,SAAU8/B,EAAM96C,GACpB,IAEKib,EAFL,GAAK,CAACyjE,EAAQkpB,YAAwB,UAAV5nG,GAC3B46E,EAAU9/B,EAAM,OAAQ,EAMxB,OALI7/B,EAAM6/B,EAAK96C,MACf86C,EAAKi4B,aAAc,OAAQ/yE,CAAM,EAC5Bib,IACJ6/B,EAAK96C,MAAQib,GAEPjb,CAET,CACD,CACD,EAEAyjD,WAAY,SAAU3I,EAAM96C,GAC3B,IAAI8C,EACH3E,EAAI,EAIJ+pG,EAAYloG,GAASA,EAAMkqD,MAAOwkC,CAAc,EAEjD,GAAKwZ,GAA+B,IAAlBptD,EAAK2/B,SACtB,KAAU33E,EAAOolG,EAAW/pG,CAAC,KAC5B28C,EAAKohC,gBAAiBp5E,CAAK,CAG9B,CACD,CAAE,EAGF+kG,GAAW,CACV7sF,IAAK,SAAU8/B,EAAM96C,EAAO8C,GAQ3B,MAPe,KAAV9C,EAGJw6E,EAAO/2B,WAAY3I,EAAMh4C,CAAK,EAE9Bg4C,EAAKi4B,aAAcjwE,EAAMA,CAAK,EAExBA,CACR,CACD,EAEA03E,EAAOgF,KAAMhF,EAAO2N,KAAKj+B,MAAM+9C,KAAK/tF,OAAOgwC,MAAO,MAAO,EAAG,SAAUkpB,EAAItwE,GACzE,IAAIqlG,EAASpiB,GAAYjjF,IAAU03E,EAAOn1D,KAAK8J,KAE/C42D,GAAYjjF,GAAS,SAAUg4C,EAAMh4C,EAAMk/E,GAC1C,IAAIvR,EAAK5F,EACRu9B,EAAgBtlG,EAAKyR,YAAY,EAYlC,OAVMytE,IAGLnX,EAASkb,GAAYqiB,GACrBriB,GAAYqiB,GAAkB33B,EAC9BA,EAAqC,MAA/B03B,EAAQrtD,EAAMh4C,EAAMk/E,CAAM,EAC/BomB,EACA,KACDriB,GAAYqiB,GAAkBv9B,GAExB4F,CACR,CACD,CAAE,EAKe,uCAChB43B,GAAa,gBAwIb,SAASC,EAAkBtoG,GAE1B,OADaA,EAAMkqD,MAAOwkC,CAAc,GAAK,IAC/BzgF,KAAM,GAAI,CACzB,CAGD,SAASs6F,EAAUztD,GAClB,OAAOA,EAAK23B,cAAgB33B,EAAK23B,aAAc,OAAQ,GAAK,EAC7D,CAEA,SAAS+1B,GAAgBxoG,GACxB,OAAKk4B,MAAMC,QAASn4B,CAAM,EAClBA,EAEc,UAAjB,OAAOA,GACJA,EAAMkqD,MAAOwkC,CAAc,GAE5B,EACR,CAxJAlU,EAAOxS,GAAGnrD,OAAQ,CACjB8S,KAAM,SAAU7sB,EAAM9C,GACrB,OAAOmyF,EAAQ9vF,KAAMm4E,EAAO7qD,KAAM7sB,EAAM9C,EAA0B,EAAnBipC,UAAU1tC,MAAW,CACrE,EAEAktG,WAAY,SAAU3lG,GACrB,OAAOT,KAAKm9E,KAAM,WACjB,OAAOn9E,KAAMm4E,EAAOkuB,QAAS5lG,IAAUA,EACxC,CAAE,CACH,CACD,CAAE,EAEF03E,EAAO39D,OAAQ,CACd8S,KAAM,SAAUmrB,EAAMh4C,EAAM9C,GAC3B,IAAIywE,EAAKmjB,EACRmU,EAAQjtD,EAAK2/B,SAGd,GAAe,IAAVstB,GAAyB,IAAVA,GAAyB,IAAVA,EAWnC,OAPe,IAAVA,GAAgBvtB,EAAO8S,SAAUxyC,CAAK,IAG1Ch4C,EAAO03E,EAAOkuB,QAAS5lG,IAAUA,EACjC8wF,EAAQpZ,EAAOopB,UAAW9gG,IAGZ0K,SAAVxN,EACC4zF,GAAS,QAASA,GACuBpmF,UAA3CijE,EAAMmjB,EAAM54E,IAAK8/B,EAAM96C,EAAO8C,CAAK,GAC9B2tE,EAGC31B,EAAMh4C,GAAS9C,EAGpB4zF,GAAS,QAASA,GAA+C,QAApCnjB,EAAMmjB,EAAMz4E,IAAK2/B,EAAMh4C,CAAK,GACtD2tE,EAGD31B,EAAMh4C,EACd,EAEA8gG,UAAW,CACV3kD,SAAU,CACT9jC,IAAK,SAAU2/B,GAMd,IAAI6tD,EAAWnuB,EAAOn1D,KAAK8J,KAAM2rB,EAAM,UAAW,EAElD,OAAK6tD,EACGpjF,SAAUojF,EAAU,EAAG,EAI9Bb,GAAWhnD,KAAMhG,EAAK8/B,QAAS,GAC/BytB,GAAWvnD,KAAMhG,EAAK8/B,QAAS,GAC/B9/B,EAAKj5B,KAEE,EAGD,CAAC,CACT,CACD,CACD,EAEA6mF,QAAS,CACR,IAAO,UACP,MAAS,WACV,CACD,CAAE,EAUIhqB,EAAQipB,cACbntB,EAAOopB,UAAU78D,SAAW,CAC3B5rB,IAAK,SAAU2/B,GAIV5sB,EAAS4sB,EAAKqhC,WAIlB,OAHKjuD,GAAUA,EAAOiuD,YACrBjuD,EAAOiuD,WAAWiO,cAEZ,IACR,EACApvE,IAAK,SAAU8/B,GAIV5sB,EAAS4sB,EAAKqhC,WACbjuD,IACJA,EAAOk8D,cAEFl8D,EAAOiuD,aACXjuD,EAAOiuD,WAAWiO,aAGrB,CACD,GAGD5P,EAAOgF,KAAM,CACZ,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACE,WACFhF,EAAOkuB,QAASrmG,KAAKkS,YAAY,GAAMlS,IACxC,CAAE,EA2BFm4E,EAAOxS,GAAGnrD,OAAQ,CACjByqC,SAAU,SAAUtnD,GACnB,IAAI4oG,EAAY3iB,EAAK4iB,EAAUliB,EAAWxoF,EAAG2qG,EAE7C,OAAKroD,EAAYzgD,CAAM,EACfqC,KAAKm9E,KAAM,SAAUtwE,GAC3BsrE,EAAQn4E,IAAK,EAAEilD,SAAUtnD,EAAM6vB,KAAMxtB,KAAM6M,EAAGq5F,EAAUlmG,IAAK,CAAE,CAAE,CAClE,CAAE,GAGHumG,EAAaJ,GAAgBxoG,CAAM,GAEnBzE,OACR8G,KAAKm9E,KAAM,WAIjB,GAHAqpB,EAAWN,EAAUlmG,IAAK,EAC1B4jF,EAAwB,IAAlB5jF,KAAKo4E,UAAoB,IAAM6tB,EAAkBO,CAAS,EAAI,IAEzD,CACV,IAAM1qG,EAAI,EAAGA,EAAIyqG,EAAWrtG,OAAQ4C,CAAC,GACpCwoF,EAAYiiB,EAAYzqG,GACnB8nF,EAAIx8E,QAAS,IAAMk9E,EAAY,GAAI,EAAI,IAC3CV,GAAOU,EAAY,KAKrBmiB,EAAaR,EAAkBriB,CAAI,EAC9B4iB,IAAaC,GACjBzmG,KAAK0wE,aAAc,QAAS+1B,CAAW,CAEzC,CACD,CAAE,EAGIzmG,IACR,EAEAoX,YAAa,SAAUzZ,GACtB,IAAI4oG,EAAY3iB,EAAK4iB,EAAUliB,EAAWxoF,EAAG2qG,EAE7C,OAAKroD,EAAYzgD,CAAM,EACfqC,KAAKm9E,KAAM,SAAUtwE,GAC3BsrE,EAAQn4E,IAAK,EAAEoX,YAAazZ,EAAM6vB,KAAMxtB,KAAM6M,EAAGq5F,EAAUlmG,IAAK,CAAE,CAAE,CACrE,CAAE,EAGG4mC,UAAU1tC,QAIhBqtG,EAAaJ,GAAgBxoG,CAAM,GAEnBzE,OACR8G,KAAKm9E,KAAM,WAMjB,GALAqpB,EAAWN,EAAUlmG,IAAK,EAG1B4jF,EAAwB,IAAlB5jF,KAAKo4E,UAAoB,IAAM6tB,EAAkBO,CAAS,EAAI,IAEzD,CACV,IAAM1qG,EAAI,EAAGA,EAAIyqG,EAAWrtG,OAAQ4C,CAAC,GAIpC,IAHAwoF,EAAYiiB,EAAYzqG,GAGuB,CAAC,EAAxC8nF,EAAIx8E,QAAS,IAAMk9E,EAAY,GAAI,GAC1CV,EAAMA,EAAIvwE,QAAS,IAAMixE,EAAY,IAAK,GAAI,EAKhDmiB,EAAaR,EAAkBriB,CAAI,EAC9B4iB,IAAaC,GACjBzmG,KAAK0wE,aAAc,QAAS+1B,CAAW,CAEzC,CACD,CAAE,EAGIzmG,KA/BCA,KAAK8sB,KAAM,QAAS,EAAG,CAgChC,EAEAi3B,YAAa,SAAUpmD,EAAO+oG,GAC7B,IAAIH,EAAYjiB,EAAWxoF,EAAGiE,EAC7B2sB,EAAO,OAAO/uB,EACdgpG,EAAwB,UAATj6E,GAAqBmJ,MAAMC,QAASn4B,CAAM,EAE1D,OAAKygD,EAAYzgD,CAAM,EACfqC,KAAKm9E,KAAM,SAAUrhF,GAC3Bq8E,EAAQn4E,IAAK,EAAE+jD,YACdpmD,EAAM6vB,KAAMxtB,KAAMlE,EAAGoqG,EAAUlmG,IAAK,EAAG0mG,CAAS,EAChDA,CACD,CACD,CAAE,EAGsB,WAApB,OAAOA,GAA0BC,EAC9BD,EAAW1mG,KAAKilD,SAAUtnD,CAAM,EAAIqC,KAAKoX,YAAazZ,CAAM,GAGpE4oG,EAAaJ,GAAgBxoG,CAAM,EAE5BqC,KAAKm9E,KAAM,WACjB,GAAKwpB,EAKJ,IAFA5mG,EAAOo4E,EAAQn4E,IAAK,EAEdlE,EAAI,EAAGA,EAAIyqG,EAAWrtG,OAAQ4C,CAAC,GACpCwoF,EAAYiiB,EAAYzqG,GAGnBiE,EAAKoX,SAAUmtE,CAAU,EAC7BvkF,EAAKqX,YAAaktE,CAAU,EAE5BvkF,EAAKklD,SAAUq/B,CAAU,OAKNn5E,SAAVxN,GAAgC,WAAT+uB,KAClC43D,EAAY4hB,EAAUlmG,IAAK,IAI1B8wF,EAASn4E,IAAK3Y,KAAM,gBAAiBskF,CAAU,EAO3CtkF,KAAK0wE,cACT1wE,KAAK0wE,aAAc,QAClB4T,IAAuB,KAAV3mF,GAEZmzF,EAASh4E,IAAK9Y,KAAM,eAAgB,GAAK,EAC3C,EAGH,CAAE,EACH,EAEAmX,SAAU,SAAUylE,GAKnB,IAJA,IAAenkC,EACd38C,EAAI,EAELwoF,EAAY,IAAM1H,EAAW,IACnBnkC,EAAOz4C,KAAMlE,CAAC,KACvB,GAAuB,IAAlB28C,EAAK2/B,UACmE,CAAC,GAA3E,IAAM6tB,EAAkBC,EAAUztD,CAAK,CAAE,EAAI,KAAMrxC,QAASk9E,CAAU,EACxE,MAAO,GAIT,MAAO,EACR,CACD,CAAE,EAiMyB,SAA1BsiB,GAAoCzuG,GACnCA,EAAEiiD,gBAAgB,CACnB,CA9LD,IAAIysD,GAAU,MA2LVC,IAzLJ3uB,EAAOxS,GAAGnrD,OAAQ,CACjB5B,IAAK,SAAUjb,GACd,IAAI4zF,EAAOnjB,EAAKysB,EACfpiD,EAAOz4C,KAAM,GAEd,OAAM4mC,UAAU1tC,QA0BhB2hG,EAAkBz8C,EAAYzgD,CAAM,EAE7BqC,KAAKm9E,KAAM,SAAUrhF,GAGJ,IAAlBkE,KAAKo4E,WAWE,OANXx/D,EADIiiF,EACEl9F,EAAM6vB,KAAMxtB,KAAMlE,EAAGq8E,EAAQn4E,IAAK,EAAE4Y,IAAI,CAAE,EAE1Cjb,GAKNib,EAAM,GAEoB,UAAf,OAAOA,EAClBA,GAAO,GAEIid,MAAMC,QAASld,CAAI,IAC9BA,EAAMu/D,EAAOvgF,IAAKghB,EAAK,SAAUjb,GAChC,OAAgB,MAATA,EAAgB,GAAKA,EAAQ,EACrC,CAAE,IAGH4zF,EAAQpZ,EAAO4uB,SAAU/mG,KAAK0sB,OAAUyrD,EAAO4uB,SAAU/mG,KAAKu4E,SAASrmE,YAAY,KAGjE,QAASq/E,GAA+CpmF,SAApComF,EAAM54E,IAAK3Y,KAAM4Y,EAAK,OAAQ,KACnE5Y,KAAKrC,MAAQib,EAEf,CAAE,GA3DI6/B,GACJ84C,EAAQpZ,EAAO4uB,SAAUtuD,EAAK/rB,OAC7ByrD,EAAO4uB,SAAUtuD,EAAK8/B,SAASrmE,YAAY,KAG3C,QAASq/E,GACgCpmF,UAAvCijE,EAAMmjB,EAAMz4E,IAAK2/B,EAAM,OAAQ,GAE1B21B,EAMY,UAAf,OAHLA,EAAM31B,EAAK96C,OAIHywE,EAAI/6D,QAASwzF,GAAS,EAAG,EAInB,MAAPz4B,EAAc,GAAKA,EAG3B,MAsCF,CACD,CAAE,EAEF+J,EAAO39D,OAAQ,CACdusF,SAAU,CACT1kE,OAAQ,CACPvpB,IAAK,SAAU2/B,GAEd,IAAI7/B,EAAMu/D,EAAOn1D,KAAK8J,KAAM2rB,EAAM,OAAQ,EAC1C,OAAc,MAAP7/B,EACNA,EAMAqtF,EAAkB9tB,EAAOl9B,KAAMxC,CAAK,CAAE,CACxC,CACD,EACA5G,OAAQ,CACP/4B,IAAK,SAAU2/B,GAgBd,IAfA,IAAWpW,EACVwW,EAAUJ,EAAKI,QACfxtB,EAAQotB,EAAKsvC,cACbmN,EAAoB,eAAdz8C,EAAK/rB,KACXpE,EAAS4sE,EAAM,KAAO,GACtBr0E,EAAMq0E,EAAM7pE,EAAQ,EAAIwtB,EAAQ3/C,OAGhC4C,EADIuvB,EAAQ,EACRxK,EAGAq0E,EAAM7pE,EAAQ,EAIXvvB,EAAI+kB,EAAK/kB,CAAC,GAKjB,KAJAumC,EAASwW,EAAS/8C,IAIJ4oC,UAAY5oC,IAAMuvB,IAG9B,CAACgX,EAAO+a,WACN,CAAC/a,EAAOy3C,WAAW18B,UACpB,CAACm7B,EAAUl2C,EAAOy3C,WAAY,UAAW,GAAM,CAMjD,GAHAn8E,EAAQw6E,EAAQ91C,CAAO,EAAEzpB,IAAI,EAGxBs8E,EACJ,OAAOv3F,EAIR2qB,EAAOjnB,KAAM1D,CAAM,CACpB,CAGD,OAAO2qB,CACR,EAEA3P,IAAK,SAAU8/B,EAAM96C,GAMpB,IALA,IAAIqpG,EAAW3kE,EACdwW,EAAUJ,EAAKI,QACfvwB,EAAS6vD,EAAOgG,UAAWxgF,CAAM,EACjC7B,EAAI+8C,EAAQ3/C,OAEL4C,CAAC,MACRumC,EAASwW,EAAS/8C,IAIN4oC,SACsD,CAAC,EAAlEyzC,EAAOiG,QAASjG,EAAO4uB,SAAS1kE,OAAOvpB,IAAKupB,CAAO,EAAG/Z,CAAO,KAE7D0+E,EAAY,IAUd,OAHMA,IACLvuD,EAAKsvC,cAAgB,CAAC,GAEhBz/D,CACR,CACD,CACD,CACD,CAAE,EAGF6vD,EAAOgF,KAAM,CAAE,QAAS,YAAc,WACrChF,EAAO4uB,SAAU/mG,MAAS,CACzB2Y,IAAK,SAAU8/B,EAAM96C,GACpB,GAAKk4B,MAAMC,QAASn4B,CAAM,EACzB,OAAS86C,EAAK9tB,QAA0D,CAAC,EAAjDwtD,EAAOiG,QAASjG,EAAQ1/B,CAAK,EAAE7/B,IAAI,EAAGjb,CAAM,CAEtE,CACD,EACM0+E,EAAQgpB,UACbltB,EAAO4uB,SAAU/mG,MAAO8Y,IAAM,SAAU2/B,GACvC,OAAwC,OAAjCA,EAAK23B,aAAc,OAAQ,EAAa,KAAO33B,EAAK96C,KAC5D,EAEF,CAAE,EAQF0+E,EAAQ4qB,QAAU,cAAetuG,EAGf,mCAqOdK,IAhOJm/E,EAAO39D,OAAQ29D,EAAOjiE,MAAO,CAE5Bw/E,QAAS,SAAUx/E,EAAO5b,EAAMm+C,EAAMyuD,GAErC,IAAIprG,EAAQ+oF,EAAKsiB,EAAYC,EAAQ5+B,EAAQ+lB,EAAS8Y,EACrDC,EAAY,CAAE7uD,GAAQtlC,GACtBuZ,EAAO22C,EAAO71C,KAAMtX,EAAO,MAAO,EAAIA,EAAMwW,KAAOxW,EACnD4/E,EAAazyB,EAAO71C,KAAMtX,EAAO,WAAY,EAAIA,EAAMguE,UAAU92E,MAAO,GAAI,EAAI,GAEjFw2E,EAAMyjB,EAAcxiB,EAAMpsC,EAAOA,GAAQtlC,EAGzC,GAAuB,IAAlBslC,EAAK2/B,UAAoC,IAAlB3/B,EAAK2/B,UAK5B0uB,IAAYroD,KAAM/xB,EAAOyrD,EAAOjiE,MAAMs4D,SAAU,IAI1B,CAAC,EAAvB9hD,EAAKtlB,QAAS,GAAI,IAItBslB,GADAopE,EAAappE,EAAKtf,MAAO,GAAI,GACXjD,MAAM,EACxB2rF,EAAWx0F,KAAK,GAEjB8lG,EAAS16E,EAAKtlB,QAAS,GAAI,EAAI,GAAK,KAAOslB,GAG3CxW,EAAQA,EAAOiiE,EAAO0F,SACrB3nE,EACA,IAAIiiE,EAAO//D,MAAOsU,EAAuB,UAAjB,OAAOxW,GAAsBA,CAAM,GAGtDq/E,UAAY2R,EAAe,EAAI,EACrChxF,EAAMguE,UAAY4R,EAAWlqF,KAAM,GAAI,EACvCsK,EAAMghF,WAAahhF,EAAMguE,UACxB,IAAIprF,OAAQ,UAAYg9F,EAAWlqF,KAAM,eAAgB,EAAI,SAAU,EACvE,KAGDsK,EAAMxa,OAASyP,OACT+K,EAAMwU,SACXxU,EAAMwU,OAAS+tB,GAIhBn+C,EAAe,MAARA,EACN,CAAE4b,GACFiiE,EAAOgG,UAAW7jF,EAAM,CAAE4b,EAAQ,EAGnCq4E,EAAUpW,EAAOjiE,MAAMq4E,QAAS7hE,IAAU,GACpCw6E,GAAgB3Y,GAAQmH,SAAmD,KAAxCnH,EAAQmH,QAAQ/uD,MAAO8R,EAAMn+C,CAAK,GAA3E,CAMA,GAAK,CAAC4sG,GAAgB,CAAC3Y,EAAQkJ,UAAY,CAACzb,EAAUvjC,CAAK,EAAI,CAM9D,IAJA0uD,EAAa5Y,EAAQiH,cAAgB9oE,EAC/Bo6E,GAAYroD,KAAM0oD,EAAaz6E,CAAK,IACzCk3D,EAAMA,EAAI9J,YAEH8J,EAAKA,EAAMA,EAAI9J,WACtBwtB,EAAUjmG,KAAMuiF,CAAI,EACpBiB,EAAMjB,EAIFiB,KAAUpsC,EAAK4/B,eAAiBllE,IACpCm0F,EAAUjmG,KAAMwjF,EAAIvM,aAAeuM,EAAI0iB,cAAgB5uG,CAAO,CAEhE,CAIA,IADAmD,EAAI,GACM8nF,EAAM0jB,EAAWxrG,CAAC,MAAU,CAACoa,EAAM6gF,qBAAqB,GACjEsQ,EAAczjB,EACd1tE,EAAMwW,KAAW,EAAJ5wB,EACZqrG,EACA5Y,EAAQ2H,UAAYxpE,GAGrB87C,GAAWsoB,EAASh4E,IAAK8qE,EAAK,QAAS,GAAKrrF,OAAO0/C,OAAQ,IAAK,GAAK/hC,EAAMwW,OAC1EokE,EAASh4E,IAAK8qE,EAAK,QAAS,IAE5Bpb,EAAO7hC,MAAOi9C,EAAKtpF,CAAK,GAIzBkuE,EAAS4+B,GAAUxjB,EAAKwjB,KACT5+B,EAAO7hC,OAASgqD,EAAY/M,CAAI,IAC9C1tE,EAAMxa,OAAS8sE,EAAO7hC,MAAOi9C,EAAKtpF,CAAK,EACjB,KAAjB4b,EAAMxa,SACVwa,EAAMmB,eAAe,EA8CxB,OA1CAnB,EAAMwW,KAAOA,EAGPw6E,GAAiBhxF,EAAM0hF,mBAAmB,GAEvCrJ,EAAQoF,UACqC,KAApDpF,EAAQoF,SAAShtD,MAAO2gE,EAAU7/C,IAAI,EAAGntD,CAAK,GAC9Cq2F,GAAYl4C,CAAK,GAIZ2uD,GAAUhpD,EAAY3F,EAAM/rB,EAAO,GAAK,CAACsvD,EAAUvjC,CAAK,KAG5DosC,EAAMpsC,EAAM2uD,MAGX3uD,EAAM2uD,GAAW,MAIlBjvB,EAAOjiE,MAAMs4D,UAAY9hD,EAEpBxW,EAAM6gF,qBAAqB,GAC/BsQ,EAAYv9D,iBAAkBpd,EAAMk6E,EAAwB,EAG7DnuD,EAAM/rB,GAAO,EAERxW,EAAM6gF,qBAAqB,GAC/BsQ,EAAYrtB,oBAAqBttD,EAAMk6E,EAAwB,EAGhEzuB,EAAOjiE,MAAMs4D,UAAYrjE,OAEpB05E,KACJpsC,EAAM2uD,GAAWviB,GAMd3uE,EAAMxa,MAvFb,CAwFD,EAIA8rG,SAAU,SAAU96E,EAAM+rB,EAAMviC,GAC3B/d,EAAIggF,EAAO39D,OACd,IAAI29D,EAAO//D,MACXlC,EACA,CACCwW,KAAMA,EACNqrE,YAAa,EACd,CACD,EAEA5f,EAAOjiE,MAAMw/E,QAASv9F,EAAG,KAAMsgD,CAAK,CACrC,CAED,CAAE,EAEF0/B,EAAOxS,GAAGnrD,OAAQ,CAEjBk7E,QAAS,SAAUhpE,EAAMpyB,GACxB,OAAO0F,KAAKm9E,KAAM,WACjBhF,EAAOjiE,MAAMw/E,QAAShpE,EAAMpyB,EAAM0F,IAAK,CACxC,CAAE,CACH,EACAsxC,eAAgB,SAAU5kB,EAAMpyB,GAC/B,IAAIm+C,EAAOz4C,KAAM,GACjB,GAAKy4C,EACJ,OAAO0/B,EAAOjiE,MAAMw/E,QAAShpE,EAAMpyB,EAAMm+C,EAAM,EAAK,CAEtD,CACD,CAAE,EAWI4jC,EAAQ4qB,SACb9uB,EAAOgF,KAAM,CAAEx1C,MAAO,UAAW8xD,KAAM,UAAW,EAAG,SAAUK,EAAMlD,GAGtD,SAAVnT,EAAoBvtE,GACvBiiE,EAAOjiE,MAAMsxF,SAAU5Q,EAAK1gF,EAAMwU,OAAQytD,EAAOjiE,MAAM0gF,IAAK1gF,CAAM,CAAE,CACrE,CAEAiiE,EAAOjiE,MAAMq4E,QAASqI,GAAQ,CAC7BP,MAAO,WAIN,IAAIrvD,EAAMhnC,KAAKq4E,eAAiBr4E,KAAKmT,UAAYnT,KAChDynG,EAAW3W,EAAShB,OAAQ9oD,EAAK4vD,CAAI,EAEhC6Q,GACLzgE,EAAI8C,iBAAkBgwD,EAAMrW,EAAS,EAAK,EAE3CqN,EAAShB,OAAQ9oD,EAAK4vD,GAAO6Q,GAAY,GAAM,CAAE,CAClD,EACAjR,SAAU,WACT,IAAIxvD,EAAMhnC,KAAKq4E,eAAiBr4E,KAAKmT,UAAYnT,KAChDynG,EAAW3W,EAAShB,OAAQ9oD,EAAK4vD,CAAI,EAAI,EAEpC6Q,EAKL3W,EAAShB,OAAQ9oD,EAAK4vD,EAAK6Q,CAAS,GAJpCzgE,EAAIgzC,oBAAqB8f,EAAMrW,EAAS,EAAK,EAC7CqN,EAASx6E,OAAQ0wB,EAAK4vD,CAAI,EAK5B,CACD,CACD,CAAE,EAEYj+F,EAAOK,UAElBujF,GAAQ,CAAEiC,KAAMnjF,KAAKD,IAAI,CAAE,EAE3BssG,GAAS,KAgCZC,IA3BDxvB,EAAOyvB,SAAW,SAAUttG,GAC3B,IAAI2sF,EAAK4gB,EACT,GAAK,CAACvtG,GAAwB,UAAhB,OAAOA,EACpB,OAAO,KAKR,IACC2sF,GAAM,IAAMtuF,EAAOmvG,WAAcC,gBAAiBztG,EAAM,UAAW,CACrD,CAAb,MAAQnC,IAYV,OAVA0vG,EAAkB5gB,GAAOA,EAAI5/C,qBAAsB,aAAc,EAAG,GAC9D4/C,GAAO4gB,IACZ1vB,EAAOjhE,MAAO,iBACb2wF,EACC1vB,EAAOvgF,IAAKiwG,EAAgBvlB,WAAY,SAAUt/B,GACjD,OAAOA,EAAGqjC,WACX,CAAE,EAAEz6E,KAAM,IAAK,EACftR,EACA,EAEI2sF,CACR,EAIY,SACX+gB,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,qCA0ChB/vB,EAAOlI,MAAQ,SAAU/wE,EAAGipG,GAGpB,SAANt6B,EAAgBhmE,EAAKugG,GAGhBzqG,EAAQygD,EAAYgqD,CAAgB,EACvCA,EAAgB,EAChBA,EAED13D,EAAGA,EAAEx3C,QAAWulB,mBAAoB5W,CAAI,EAAI,IAC3C4W,mBAA6B,MAAT9gB,EAAgB,GAAKA,CAAM,CACjD,CAXD,IAAIqvE,EACHt8B,EAAI,GAYL,GAAU,MAALxxC,EACJ,MAAO,GAIR,GAAK22B,MAAMC,QAAS52B,CAAE,GAAOA,EAAE49E,QAAU,CAAC3E,EAAOyF,cAAe1+E,CAAE,EAGjEi5E,EAAOgF,KAAMj+E,EAAG,WACf2uE,EAAK7tE,KAAKS,KAAMT,KAAKrC,KAAM,CAC5B,CAAE,OAMF,IAAMqvE,KAAU9tE,EACfmpG,CAvEH,SAASA,EAAar7B,EAAQ3jD,EAAK8+E,EAAat6B,GAG/C,GAAKh4C,MAAMC,QAASzM,CAAI,EAGvB8uD,EAAOgF,KAAM9zD,EAAK,SAAUvtB,EAAGgyD,GACzBq6C,GAAeR,GAASlpD,KAAMuuB,CAAO,EAGzCa,EAAKb,EAAQlf,CAAE,EAKfu6C,EACCr7B,EAAS,KAAqB,UAAb,OAAOlf,GAAuB,MAALA,EAAYhyD,EAAI,IAAO,IACjEgyD,EACAq6C,EACAt6B,CACD,CAEF,CAAE,OAEI,GAAMs6B,GAAiC,WAAlBxrB,EAAQtzD,CAAI,EAUvCwkD,EAAKb,EAAQ3jD,CAAI,OAPjB,IA1BD,IAAI5oB,KA0BW4oB,EACbg/E,EAAar7B,EAAS,IAAMvsE,EAAO,IAAK4oB,EAAK5oB,GAAQ0nG,EAAat6B,CAAI,CAQzE,EAmCgBb,EAAQ9tE,EAAG8tE,GAAUm7B,EAAat6B,CAAI,EAKrD,OAAOn9B,EAAE9kC,KAAM,GAAI,CACpB,EAEAusE,EAAOxS,GAAGnrD,OAAQ,CACjB8tF,UAAW,WACV,OAAOnwB,EAAOlI,MAAOjwE,KAAKuoG,eAAe,CAAE,CAC5C,EACAA,eAAgB,WACf,OAAOvoG,KAAKpI,IAAK,WAGhB,IAAI+5E,EAAWwG,EAAO7qD,KAAMttB,KAAM,UAAW,EAC7C,OAAO2xE,EAAWwG,EAAOgG,UAAWxM,CAAS,EAAI3xE,IAClD,CAAE,EAAEhC,OAAQ,WACX,IAAI0uB,EAAO1sB,KAAK0sB,KAGhB,OAAO1sB,KAAKS,MAAQ,CAAC03E,EAAQn4E,IAAK,EAAEkiC,GAAI,WAAY,GACnDgmE,GAAazpD,KAAMz+C,KAAKu4E,QAAS,GAAK,CAAC0vB,GAAgBxpD,KAAM/xB,CAAK,IAChE1sB,KAAK2qB,SAAW,CAACooE,GAAet0C,KAAM/xB,CAAK,EAC/C,CAAE,EAAE90B,IAAK,SAAUm5E,EAAIt4B,GACtB,IAAI7/B,EAAMu/D,EAAQn4E,IAAK,EAAE4Y,IAAI,EAE7B,OAAY,MAAPA,EACG,KAGHid,MAAMC,QAASld,CAAI,EAChBu/D,EAAOvgF,IAAKghB,EAAK,SAAUA,GACjC,MAAO,CAAEnY,KAAMg4C,EAAKh4C,KAAM9C,MAAOib,EAAIvF,QAAS20F,GAAO,MAAO,CAAE,CAC/D,CAAE,EAGI,CAAEvnG,KAAMg4C,EAAKh4C,KAAM9C,MAAOib,EAAIvF,QAAS20F,GAAO,MAAO,CAAE,CAC/D,CAAE,EAAElvF,IAAI,CACT,CACD,CAAE,EAGF,IACC0vF,GAAM,OACNC,GAAQ,OACRC,GAAa,gBACbC,GAAW,6BAIXC,GAAa,iBACbC,GAAY,QAWZ7F,GAAa,GAOb8F,GAAa,GAGbC,GAAW,KAAK98F,OAAQ,GAAI,EAG5B+8F,GAAe71F,EAAS8c,cAAe,GAAI,EAK5C,SAASg5E,GAA6BC,GAGrC,OAAO,SAAUC,EAAoB1b,GAED,UAA9B,OAAO0b,IACX1b,EAAO0b,EACPA,EAAqB,KAGtB,IAAIC,EACHttG,EAAI,EACJutG,EAAYF,EAAmBj3F,YAAY,EAAE21C,MAAOwkC,CAAc,GAAK,GAExE,GAAKjuC,EAAYqvC,CAAK,EAGrB,KAAU2b,EAAWC,EAAWvtG,CAAC,KAGT,MAAlBstG,EAAU,IACdA,EAAWA,EAASxxF,MAAO,CAAE,GAAK,KAChCsxF,EAAWE,GAAaF,EAAWE,IAAc,IAAKvjB,QAAS4H,CAAK,IAIpEyb,EAAWE,GAAaF,EAAWE,IAAc,IAAK/nG,KAAMosF,CAAK,CAIvE,CACD,CAGA,SAAS6b,GAA+BJ,EAAWrwD,EAASwqD,EAAiBkG,GAE5E,IAAIC,EAAY,GACfC,EAAqBP,IAAcJ,GAEpC,SAASY,EAASN,GACjB,IAAI1kE,EAcJ,OAbA8kE,EAAWJ,GAAa,GACxBjxB,EAAOgF,KAAM+rB,EAAWE,IAAc,GAAI,SAAUjmF,EAAGwmF,GAClDC,EAAsBD,EAAoB9wD,EAASwqD,EAAiBkG,CAAM,EAC9E,MAAoC,UAA/B,OAAOK,GACVH,GAAqBD,EAAWI,GAKtBH,EACJ,EAAG/kE,EAAWklE,GADf,QAHN/wD,EAAQwwD,UAAUxjB,QAAS+jB,CAAoB,EAC/CF,EAASE,CAAoB,EACtB,GAIT,CAAE,EACKllE,CACR,CAEA,OAAOglE,EAAS7wD,EAAQwwD,UAAW,EAAI,GAAK,CAACG,EAAW,MAASE,EAAS,GAAI,CAC/E,CAKA,SAASG,GAAYn/E,EAAQiG,GAC5B,IAAI9oB,EAAK81E,EACRmsB,EAAc3xB,EAAO4xB,aAAaD,aAAe,GAElD,IAAMjiG,KAAO8oB,EACQxlB,SAAfwlB,EAAK9oB,MACPiiG,EAAajiG,GAAQ6iB,EAAWizD,KAAiB,IAAU91E,GAAQ8oB,EAAK9oB,IAO5E,OAJK81E,GACJxF,EAAO39D,OAAQ,GAAMkQ,EAAQizD,CAAK,EAG5BjzD,CACR,CAhFAs+E,GAAaxpF,KAAOxmB,GAASwmB,KAgP7B24D,EAAO39D,OAAQ,CAGdg3B,OAAQ,EAGRw4D,aAAc,GACdC,KAAM,GAENF,aAAc,CACbjvG,IAAK9B,GAASwmB,KACdkN,KAAM,MACNw9E,QAxRgB,4DAwRQzrD,KAAMzlD,GAASmxG,QAAS,EAChDv+B,OAAQ,GACRoE,YAAa,GACbhI,MAAO,GACPoiC,YAAa,mDAcbC,QAAS,CACR,IAAKtB,GACL9tD,KAAM,aACNngC,KAAM,YACNmsE,IAAK,4BACL5V,KAAM,mCACP,EAEA33B,SAAU,CACTutC,IAAK,UACLnsE,KAAM,SACNu2D,KAAM,UACP,EAEAi5B,eAAgB,CACfrjB,IAAK,cACLhsC,KAAM,eACNo2B,KAAM,cACP,EAIAk5B,WAAY,CAGX,SAAUtlG,OAGV,YAAa,GAGb,YAAaknB,KAAKC,MAGlB,WAAY+rD,EAAOyvB,QACpB,EAMAkC,YAAa,CACZhvG,IAAK,GACL6hE,QAAS,EACV,CACD,EAKA6tC,UAAW,SAAU9/E,EAAQ+/E,GAC5B,OAAOA,EAGNZ,GAAYA,GAAYn/E,EAAQytD,EAAO4xB,YAAa,EAAGU,CAAS,EAGhEZ,GAAY1xB,EAAO4xB,aAAcr/E,CAAO,CAC1C,EAEAggF,cAAezB,GAA6BjG,EAAW,EACvD2H,cAAe1B,GAA6BH,EAAW,EAGvD8B,KAAM,SAAU9vG,EAAK+9C,GAGA,UAAf,OAAO/9C,IACX+9C,EAAU/9C,EACVA,EAAMqQ,QAMP,IAAI0/F,EAGHC,EAGAC,EACAC,EAGAC,EAMAtb,EAGAub,EAGApvG,EAMA40C,EAAIynC,EAAOqyB,UAAW,GA9BvB3xD,EAAUA,GAAW,EA8Bc,EAGlCsyD,EAAkBz6D,EAAEisB,SAAWjsB,EAG/B06D,EAAqB16D,EAAEisB,UACpBwuC,EAAgB/yB,UAAY+yB,EAAgBruB,QAC9C3E,EAAQgzB,CAAgB,EACxBhzB,EAAOjiE,MAGR03E,EAAWzV,EAAOqV,SAAS,EAC3B6d,EAAmBlzB,EAAOyU,UAAW,aAAc,EAGnD0e,EAAa56D,EAAE46D,YAAc,GAG7BC,EAAiB,GACjBC,EAAsB,GAGtBC,EAAW,WAGXlC,EAAQ,CACPzxB,WAAY,EAGZ4zB,kBAAmB,SAAU7jG,GAC5B,IAAIggD,EACJ,GAAK8nC,EAAY,CAChB,GAAK,CAACqb,EAEL,IADAA,EAAkB,GACRnjD,EAAQ8gD,GAAS5vG,KAAMgyG,CAAsB,GACtDC,EAAiBnjD,EAAO,GAAI31C,YAAY,EAAI,MACzC84F,EAAiBnjD,EAAO,GAAI31C,YAAY,EAAI,MAAS,IACrDjG,OAAQ47C,EAAO,EAAI,EAGxBA,EAAQmjD,EAAiBnjG,EAAIqK,YAAY,EAAI,IAC9C,CACA,OAAgB,MAAT21C,EAAgB,KAAOA,EAAMj8C,KAAM,IAAK,CAChD,EAGA+/F,sBAAuB,WACtB,OAAOhc,EAAYob,EAAwB,IAC5C,EAGAa,iBAAkB,SAAUnrG,EAAM9C,GAMjC,OALkB,MAAbgyF,IACJlvF,EAAO+qG,EAAqB/qG,EAAKyR,YAAY,GAC5Cs5F,EAAqB/qG,EAAKyR,YAAY,IAAOzR,EAC9C8qG,EAAgB9qG,GAAS9C,GAEnBqC,IACR,EAGA6rG,iBAAkB,SAAUn/E,GAI3B,OAHkB,MAAbijE,IACJj/C,EAAEo7D,SAAWp/E,GAEP1sB,IACR,EAGAsrG,WAAY,SAAU1zG,GAErB,GAAKA,EACJ,GAAK+3F,EAGJ4Z,EAAM5b,OAAQ/1F,EAAK2xG,EAAMx3E,OAAS,OAIlC,IATF,IAAI15B,KASYT,EACb0zG,EAAYjzG,GAAS,CAAEizG,EAAYjzG,GAAQT,EAAKS,IAInD,OAAO2H,IACR,EAGA+rG,MAAO,SAAUC,GACZC,EAAYD,GAAcP,EAK9B,OAJKZ,GACJA,EAAUkB,MAAOE,CAAU,EAE5B/kF,EAAM,EAAG+kF,CAAU,EACZjsG,IACR,CACD,EAkBD,GAfA4tF,EAAShxE,QAAS2sF,CAAM,EAKxB74D,EAAE51C,MAAUA,GAAO41C,EAAE51C,KAAO9B,GAASwmB,MAAS,IAC5CnM,QAASw1F,GAAW7vG,GAASmxG,SAAW,IAAK,EAG/Cz5D,EAAEhkB,KAAOmsB,EAAQyhB,QAAUzhB,EAAQnsB,MAAQgkB,EAAE4pB,QAAU5pB,EAAEhkB,KAGzDgkB,EAAE24D,WAAc34D,EAAE04D,UAAY,KAAMl3F,YAAY,EAAE21C,MAAOwkC,CAAc,GAAK,CAAE,IAGxD,MAAjB37C,EAAEw7D,YAAsB,CAC5BC,EAAYh5F,EAAS8c,cAAe,GAAI,EAKxC,IACCk8E,EAAU3sF,KAAOkxB,EAAE51C,IAInBqxG,EAAU3sF,KAAO2sF,EAAU3sF,KAC3BkxB,EAAEw7D,YAAclD,GAAamB,SAAW,KAAOnB,GAAaoD,MAC3DD,EAAUhC,SAAW,KAAOgC,EAAUC,IAMxC,CALE,MAAQj0G,GAITu4C,EAAEw7D,YAAc,EACjB,CACD,CAWA,GARKx7D,EAAEp2C,MAAQo2C,EAAEs/B,aAAiC,UAAlB,OAAOt/B,EAAEp2C,OACxCo2C,EAAEp2C,KAAO69E,EAAOlI,MAAOv/B,EAAEp2C,KAAMo2C,EAAEy3D,WAAY,GAI9CmB,GAA+BtG,GAAYtyD,EAAGmI,EAAS0wD,CAAM,EAGxD5Z,GAAL,CA+EA,IAAM7zF,KAzENovG,EAAc/yB,EAAOjiE,OAASw6B,EAAEk7B,SAGQ,GAApBuM,EAAO3mC,MAAM,IAChC2mC,EAAOjiE,MAAMw/E,QAAS,WAAY,EAInChlD,EAAEhkB,KAAOgkB,EAAEhkB,KAAKzU,YAAY,EAG5By4B,EAAE27D,WAAa,CAACzD,GAAWnqD,KAAM/N,EAAEhkB,IAAK,EAKxCo+E,EAAWp6D,EAAE51C,IAAIuY,QAASo1F,GAAO,EAAG,EAG9B/3D,EAAE27D,WAwBI37D,EAAEp2C,MAAQo2C,EAAEs/B,aACoD,KAAzEt/B,EAAE05D,aAAe,IAAKhjG,QAAS,mCAAoC,IACrEspC,EAAEp2C,KAAOo2C,EAAEp2C,KAAK+Y,QAASm1F,GAAK,GAAI,IAvBlC8D,EAAW57D,EAAE51C,IAAI8c,MAAOkzF,EAAS5xG,MAAO,EAGnCw3C,EAAEp2C,OAAUo2C,EAAEs/B,aAAiC,UAAlB,OAAOt/B,EAAEp2C,QAC1CwwG,IAAcpD,GAAOjpD,KAAMqsD,CAAS,EAAI,IAAM,KAAQp6D,EAAEp2C,KAGxD,OAAOo2C,EAAEp2C,MAIO,KAAZo2C,EAAE0yC,QACN0nB,EAAWA,EAASz3F,QAASq1F,GAAY,IAAK,EAC9C4D,GAAa5E,GAAOjpD,KAAMqsD,CAAS,EAAI,IAAM,KAAQ,KAASvuB,GAAMiC,IAAO,GAC1E8tB,GAIF57D,EAAE51C,IAAMgwG,EAAWwB,GASf57D,EAAE67D,aACDp0B,EAAO6xB,aAAcc,IACzBvB,EAAMqC,iBAAkB,oBAAqBzzB,EAAO6xB,aAAcc,EAAW,EAEzE3yB,EAAO8xB,KAAMa,KACjBvB,EAAMqC,iBAAkB,gBAAiBzzB,EAAO8xB,KAAMa,EAAW,GAK9Dp6D,EAAEp2C,MAAQo2C,EAAE27D,YAAgC,KAAlB37D,EAAE05D,aAAyBvxD,EAAQuxD,cACjEb,EAAMqC,iBAAkB,eAAgBl7D,EAAE05D,WAAY,EAIvDb,EAAMqC,iBACL,SACAl7D,EAAE24D,UAAW,IAAO34D,EAAE25D,QAAS35D,EAAE24D,UAAW,IAC3C34D,EAAE25D,QAAS35D,EAAE24D,UAAW,KACA,MAArB34D,EAAE24D,UAAW,GAAc,KAAON,GAAW,WAAa,IAC7Dr4D,EAAE25D,QAAS,IACb,EAGW35D,EAAE3mC,QACZw/F,EAAMqC,iBAAkB9vG,EAAG40C,EAAE3mC,QAASjO,EAAI,EAI3C,GAAK40C,EAAE87D,aAC+C,KAAnD97D,EAAE87D,WAAWh/E,KAAM29E,EAAiB5B,EAAO74D,CAAE,GAAei/C,GAG9D,OAAO4Z,EAAMwC,MAAM,EAepB,GAXAN,EAAW,QAGXJ,EAAiBx9B,IAAKn9B,EAAEhJ,QAAS,EACjC6hE,EAAMriF,KAAMwpB,EAAEhrB,OAAQ,EACtB6jF,EAAM5c,KAAMj8C,EAAEx5B,KAAM,EAGpB2zF,EAAYvB,GAA+BR,GAAYp4D,EAAGmI,EAAS0wD,CAAM,EAKlE,CASN,GARAA,EAAMzxB,WAAa,EAGdozB,GACJE,EAAmB1V,QAAS,WAAY,CAAE6T,EAAO74D,EAAI,EAIjDi/C,EACJ,OAAO4Z,EAIH74D,EAAEs3B,OAAqB,EAAZt3B,EAAEsT,UACjBinD,EAAetyG,EAAO+lB,WAAY,WACjC6qF,EAAMwC,MAAO,SAAU,CACxB,EAAGr7D,EAAEsT,OAAQ,GAGd,IACC2rC,EAAY,GACZkb,EAAU92E,KAAMw3E,EAAgBrkF,CAAK,CAUtC,CATE,MAAQ/uB,GAGT,GAAKw3F,EACJ,MAAMx3F,EAIP+uB,EAAM,CAAC,EAAG/uB,CAAE,CACb,CACD,MAlCC+uB,EAAM,CAAC,EAAG,cAAe,CAtG1B,CAkQA,OAAOqiF,EAvHP,SAASriF,EAAM6K,EAAQ06E,EAAkB3lD,EAAW/8C,GACnD,IAAe2b,EAASxO,EAAO+O,EAC9B+lF,EAAaS,EAGT9c,IAILA,EAAY,GAGPsb,GACJtyG,EAAOu0B,aAAc+9E,CAAa,EAKnCJ,EAAY1/F,OAGZ4/F,EAAwBhhG,GAAW,GAGnCw/F,EAAMzxB,WAAsB,EAAT/lD,EAAa,EAAI,EAGpC26E,EAAsB,KAAV36E,GAAiBA,EAAS,KAAkB,MAAXA,EAGxC+0B,IACJ7gC,EA7lBJ,SAA8ByqB,EAAG64D,EAAOziD,GAOvC,IALA,IAAI6lD,EAAIjgF,EAAMkgF,EAAeC,EAC5BnzD,EAAWhJ,EAAEgJ,SACb2vD,EAAY34D,EAAE24D,UAGY,MAAnBA,EAAW,IAClBA,EAAUl/F,MAAM,EACJgB,SAAPwhG,IACJA,EAAKj8D,EAAEo7D,UAAYvC,EAAMmC,kBAAmB,cAAe,GAK7D,GAAKiB,EACJ,IAAMjgF,KAAQgtB,EACb,GAAKA,EAAUhtB,IAAUgtB,EAAUhtB,GAAO+xB,KAAMkuD,CAAG,EAAI,CACtDtD,EAAUxjB,QAASn5D,CAAK,EACxB,KACD,CAKF,GAAK28E,EAAW,KAAOviD,EACtB8lD,EAAgBvD,EAAW,OACrB,CAGN,IAAM38E,KAAQo6B,EAAY,CACzB,GAAK,CAACuiD,EAAW,IAAO34D,EAAE65D,WAAY79E,EAAO,IAAM28E,EAAW,IAAQ,CACrEuD,EAAgBlgF,EAChB,KACD,CACMmgF,KACWngF,CAElB,CAGAkgF,EAAgBA,GAAiBC,CAClC,CAKA,GAAKD,EAIJ,OAHKA,IAAkBvD,EAAW,IACjCA,EAAUxjB,QAAS+mB,CAAc,EAE3B9lD,EAAW8lD,EAEpB,EAwiBoCl8D,EAAG64D,EAAOziD,CAAU,GAIhD,CAAC4lD,GACqC,CAAC,EAA3Cv0B,EAAOiG,QAAS,SAAU1tC,EAAE24D,SAAU,GACtClxB,EAAOiG,QAAS,OAAQ1tC,EAAE24D,SAAU,EAAI,IACxC34D,EAAE65D,WAAY,eAAkB,cAIjCtkF,EA9iBH,SAAsByqB,EAAGzqB,EAAUsjF,EAAOmD,GACzC,IAAII,EAAO5wG,EAAS6wG,EAAMloB,EAAK35C,EAC9Bq/D,EAAa,GAGblB,EAAY34D,EAAE24D,UAAUzxF,MAAM,EAG/B,GAAKyxF,EAAW,GACf,IAAM0D,KAAQr8D,EAAE65D,WACfA,EAAYwC,EAAK76F,YAAY,GAAMw+B,EAAE65D,WAAYwC,GAOnD,IAHA7wG,EAAUmtG,EAAUl/F,MAAM,EAGlBjO,GAcP,GAZKw0C,EAAE45D,eAAgBpuG,KACtBqtG,EAAO74D,EAAE45D,eAAgBpuG,IAAc+pB,GAInC,CAACilB,GAAQwhE,GAAah8D,EAAEs8D,aAC5B/mF,EAAWyqB,EAAEs8D,WAAY/mF,EAAUyqB,EAAE04D,QAAS,GAG/Cl+D,EAAOhvC,EACPA,EAAUmtG,EAAUl/F,MAAM,EAKzB,GAAiB,MAAZjO,EAEJA,EAAUgvC,OAGJ,GAAc,MAATA,GAAgBA,IAAShvC,EAAU,CAM9C,GAAK,EAHL6wG,EAAOxC,EAAYr/D,EAAO,IAAMhvC,IAAaquG,EAAY,KAAOruG,IAI/D,IAAM4wG,KAASvC,EAId,IADA1lB,EAAMioB,EAAM1/F,MAAO,GAAI,GACb,KAAQlR,IAGjB6wG,EAAOxC,EAAYr/D,EAAO,IAAM25C,EAAK,KACpC0lB,EAAY,KAAO1lB,EAAK,KACb,CAGG,KAATkoB,EACJA,EAAOxC,EAAYuC,GAGgB,KAAxBvC,EAAYuC,KACvB5wG,EAAU2oF,EAAK,GACfwkB,EAAUxjB,QAAShB,EAAK,EAAI,GAE7B,KACD,CAMH,GAAc,KAATkoB,EAGJ,GAAKA,GAAQr8D,EAAEu8D,OACdhnF,EAAW8mF,EAAM9mF,CAAS,OAE1B,IACCA,EAAW8mF,EAAM9mF,CAAS,CAM3B,CALE,MAAQ9tB,GACT,MAAO,CACN0B,MAAO,cACPqd,MAAO61F,EAAO50G,EAAI,sBAAwB+yC,EAAO,OAAShvC,CAC3D,CACD,CAGH,CAIF,MAAO,CAAErC,MAAO,UAAWS,KAAM2rB,CAAS,CAC3C,EAgd2ByqB,EAAGzqB,EAAUsjF,EAAOmD,CAAU,EAGjDA,GAGCh8D,EAAE67D,cACNnwF,EAAWmtF,EAAMmC,kBAAmB,eAAgB,KAEnDvzB,EAAO6xB,aAAcc,GAAa1uF,GAEnCA,EAAWmtF,EAAMmC,kBAAmB,MAAO,KAE1CvzB,EAAO8xB,KAAMa,GAAa1uF,GAKZ,MAAX2V,GAA6B,SAAX2e,EAAEhkB,KACxBs/E,EAAa,YAGS,MAAXj6E,EACXi6E,EAAa,eAIbA,EAAa/lF,EAASpsB,MACtB6rB,EAAUO,EAAS3rB,KAEnBoyG,EAAY,EADZx1F,EAAQ+O,EAAS/O,UAMlBA,EAAQ80F,EACHj6E,IAAWi6E,IACfA,EAAa,QACRj6E,EAAS,IACbA,EAAS,KAMZw3E,EAAMx3E,OAASA,EACfw3E,EAAMyC,YAAeS,GAAoBT,GAAe,GAGnDU,EACJ9e,EAASe,YAAawc,EAAiB,CAAEzlF,EAASsmF,EAAYzC,EAAQ,EAEtE3b,EAASkB,WAAYqc,EAAiB,CAAE5B,EAAOyC,EAAY90F,EAAQ,EAIpEqyF,EAAM+B,WAAYA,CAAW,EAC7BA,EAAangG,OAER+/F,GACJE,EAAmB1V,QAASgX,EAAY,cAAgB,YACvD,CAAEnD,EAAO74D,EAAGg8D,EAAYhnF,EAAUxO,EAAQ,EAI5Cm0F,EAAiB9d,SAAU4d,EAAiB,CAAE5B,EAAOyC,EAAa,EAE7Dd,IACJE,EAAmB1V,QAAS,eAAgB,CAAE6T,EAAO74D,EAAI,EAGnD,EAAIynC,EAAO3mC,QAChB2mC,EAAOjiE,MAAMw/E,QAAS,UAAW,GAGpC,CAGD,EAEAwX,QAAS,SAAUpyG,EAAKR,EAAMosC,GAC7B,OAAOyxC,EAAOr/D,IAAKhe,EAAKR,EAAMosC,EAAU,MAAO,CAChD,EAEAymE,UAAW,SAAUryG,EAAK4rC,GACzB,OAAOyxC,EAAOr/D,IAAKhe,EAAKqQ,OAAWu7B,EAAU,QAAS,CACvD,CACD,CAAE,EAEFyxC,EAAOgF,KAAM,CAAE,MAAO,QAAU,SAAUpM,EAAIzW,GAC7C6d,EAAQ7d,GAAW,SAAUx/D,EAAKR,EAAMosC,EAAUha,GAUjD,OAPK0xB,EAAY9jD,CAAK,IACrBoyB,EAAOA,GAAQga,EACfA,EAAWpsC,EACXA,EAAO6Q,QAIDgtE,EAAOyyB,KAAMzyB,EAAO39D,OAAQ,CAClC1f,IAAKA,EACL4xB,KAAM4tC,EACN8uC,SAAU18E,EACVpyB,KAAMA,EACNorB,QAASghB,CACV,EAAGyxC,EAAOyF,cAAe9iF,CAAI,GAAKA,CAAI,CAAE,CACzC,CACD,CAAE,EAEFq9E,EAAOuyB,cAAe,SAAUh6D,GAE/B,IADA,IAAI50C,KACO40C,EAAE3mC,QACa,iBAApBjO,EAAEoW,YAAY,IAClBw+B,EAAE05D,YAAc15D,EAAE3mC,QAASjO,IAAO,GAGrC,CAAE,EAGFq8E,EAAO2iB,SAAW,SAAUhgG,EAAK+9C,EAAS7R,GACzC,OAAOmxC,EAAOyyB,KAAM,CACnB9vG,IAAKA,EAGL4xB,KAAM,MACN08E,SAAU,SACVhmB,MAAO,GACPpb,MAAO,GACP4D,OAAQ,GAKR2+B,WAAY,CACX,cAAe,YAChB,EACAyC,WAAY,SAAU/mF,GACrBkyD,EAAO+F,WAAYj4D,EAAU4yB,EAAS7R,CAAI,CAC3C,CACD,CAAE,CACH,EAGAmxC,EAAOxS,GAAGnrD,OAAQ,CACjB4yF,QAAS,SAAUtyF,GA0BlB,OAvBK9a,KAAM,KACLo+C,EAAYtjC,CAAK,IACrBA,EAAOA,EAAK0S,KAAMxtB,KAAM,EAAI,GAI7BkkE,EAAOiU,EAAQr9D,EAAM9a,KAAM,GAAIq4E,aAAc,EAAE+E,GAAI,CAAE,EAAEM,MAAO,EAAK,EAE9D19E,KAAM,GAAI85E,YACd5V,EAAKq3B,aAAcv7F,KAAM,EAAI,EAG9BkkE,EAAKtsE,IAAK,WAGT,IAFA,IAAI6gD,EAAOz4C,KAEHy4C,EAAK40D,mBACZ50D,EAAOA,EAAK40D,kBAGb,OAAO50D,CACR,CAAE,EAAEzrB,OAAQhtB,IAAK,GAGXA,IACR,EAEAstG,UAAW,SAAUxyF,GACpB,OAAKsjC,EAAYtjC,CAAK,EACd9a,KAAKm9E,KAAM,SAAUrhF,GAC3Bq8E,EAAQn4E,IAAK,EAAEstG,UAAWxyF,EAAK0S,KAAMxtB,KAAMlE,CAAE,CAAE,CAChD,CAAE,EAGIkE,KAAKm9E,KAAM,WACjB,IAAIp9E,EAAOo4E,EAAQn4E,IAAK,EACvB05C,EAAW35C,EAAK25C,SAAS,EAErBA,EAASxgD,OACbwgD,EAAS0zD,QAAStyF,CAAK,EAGvB/a,EAAKitB,OAAQlS,CAAK,CAEpB,CAAE,CACH,EAEAopD,KAAM,SAAUppD,GACf,IAAIyyF,EAAiBnvD,EAAYtjC,CAAK,EAEtC,OAAO9a,KAAKm9E,KAAM,SAAUrhF,GAC3Bq8E,EAAQn4E,IAAK,EAAEotG,QAASG,EAAiBzyF,EAAK0S,KAAMxtB,KAAMlE,CAAE,EAAIgf,CAAK,CACtE,CAAE,CACH,EAEA0yF,OAAQ,SAAU5wB,GAIjB,OAHA58E,KAAK6rB,OAAQ+wD,CAAS,EAAE2O,IAAK,MAAO,EAAEpO,KAAM,WAC3ChF,EAAQn4E,IAAK,EAAEw7F,YAAax7F,KAAKsiF,UAAW,CAC7C,CAAE,EACKtiF,IACR,CACD,CAAE,EAGFm4E,EAAO2N,KAAK3E,QAAQihB,OAAS,SAAU3pD,GACtC,MAAO,CAAC0/B,EAAO2N,KAAK3E,QAAQxrD,QAAS8iB,CAAK,CAC3C,EACA0/B,EAAO2N,KAAK3E,QAAQxrD,QAAU,SAAU8iB,GACvC,MAAO,CAAC,EAAGA,EAAK4kD,aAAe5kD,EAAKqmD,cAAgBrmD,EAAK+nD,eAAe,EAAEtnG,OAC3E,EAKAi/E,EAAO4xB,aAAa74B,IAAM,WACzB,IACC,OAAO,IAAIv4E,EAAOy4E,cACJ,CAAb,MAAQj5E,IACX,EAEA,IAAIs1G,GAAmB,CAGrBC,EAAG,IAIHC,KAAM,GACP,EACAC,GAAez1B,EAAO4xB,aAAa74B,IAAI,EAyNpC28B,IAvNJxxB,EAAQyxB,KAAO,CAAC,CAACF,IAAkB,oBAAqBA,GACxDvxB,EAAQuuB,KAAOgD,GAAe,CAAC,CAACA,GAEhCz1B,EAAOwyB,cAAe,SAAU9xD,GAC/B,IAAInS,EAAUqnE,EAGd,GAAK1xB,EAAQyxB,MAAQF,IAAgB,CAAC/0D,EAAQqzD,YAC7C,MAAO,CACNn4E,KAAM,SAAUhqB,EAAS29B,GACxB,IAAI5rC,EACHo1E,EAAMr4B,EAAQq4B,IAAI,EAWnB,GATAA,EAAIr2D,KACHg+B,EAAQnsB,KACRmsB,EAAQ/9C,IACR+9C,EAAQmvB,MACRnvB,EAAQgG,SACRhG,EAAQv+B,QACT,EAGKu+B,EAAQm1D,UACZ,IAAMlyG,KAAK+8C,EAAQm1D,UAClB98B,EAAKp1E,GAAM+8C,EAAQm1D,UAAWlyG,GAmBhC,IAAMA,KAdD+8C,EAAQizD,UAAY56B,EAAI26B,kBAC5B36B,EAAI26B,iBAAkBhzD,EAAQizD,QAAS,EAQlCjzD,EAAQqzD,aAAgBniG,EAAS,sBACtCA,EAAS,oBAAuB,kBAItBA,EACVmnE,EAAI06B,iBAAkB9vG,EAAGiO,EAASjO,EAAI,EAIvC4qC,EAAW,SAAUha,GACpB,OAAO,WACDga,IACJA,EAAWqnE,EAAgB78B,EAAIjlD,OAC9BilD,EAAIM,QAAUN,EAAI+8B,QAAU/8B,EAAIg9B,UAC/Bh9B,EAAIi9B,mBAAqB,KAEb,UAATzhF,EACJwkD,EAAI66B,MAAM,EACU,UAATr/E,EAKgB,UAAtB,OAAOwkD,EAAIn/C,OACf2V,EAAU,EAAG,OAAQ,EAErBA,EAGCwpC,EAAIn/C,OACJm/C,EAAI86B,UACL,EAGDtkE,EACC+lE,GAAkBv8B,EAAIn/C,SAAYm/C,EAAIn/C,OACtCm/C,EAAI86B,WAK+B,UAAjC96B,EAAIk9B,cAAgB,SACM,UAA5B,OAAOl9B,EAAII,aACV,CAAE+8B,OAAQn9B,EAAIjrD,QAAS,EACvB,CAAEg1B,KAAMi2B,EAAII,YAAa,EAC1BJ,EAAIy6B,sBAAsB,CAC3B,EAGH,CACD,EAGAz6B,EAAIjlD,OAASya,EAAS,EACtBqnE,EAAgB78B,EAAIM,QAAUN,EAAIg9B,UAAYxnE,EAAU,OAAQ,EAK3Cv7B,SAAhB+lE,EAAI+8B,QACR/8B,EAAI+8B,QAAUF,EAEd78B,EAAIi9B,mBAAqB,WAGA,IAAnBj9B,EAAI4G,YAMRn/E,EAAO+lB,WAAY,WACbgoB,GACJqnE,EAAc,CAEhB,CAAE,CAEJ,EAIDrnE,EAAWA,EAAU,OAAQ,EAE7B,IAGCwqC,EAAIn9C,KAAM8kB,EAAQwzD,YAAcxzD,EAAQv+C,MAAQ,IAAK,CAOtD,CANE,MAAQnC,GAGT,GAAKuuC,EACJ,MAAMvuC,CAER,CACD,EAEA4zG,MAAO,WACDrlE,GACJA,EAAS,CAEX,CACD,CAEF,CAAE,EAMFyxC,EAAOuyB,cAAe,SAAUh6D,GAC1BA,EAAEw7D,cACNx7D,EAAEgJ,SAASgjC,OAAS,GAEtB,CAAE,EAGFvE,EAAOqyB,UAAW,CACjBH,QAAS,CACR3tB,OAAQ,2FAET,EACAhjC,SAAU,CACTgjC,OAAQ,yBACT,EACA6tB,WAAY,CACX,cAAe,SAAUtvD,GAExB,OADAk9B,EAAO+F,WAAYjjC,CAAK,EACjBA,CACR,CACD,CACD,CAAE,EAGFk9B,EAAOuyB,cAAe,SAAU,SAAUh6D,GACxBvlC,SAAZulC,EAAE0yC,QACN1yC,EAAE0yC,MAAQ,IAEN1yC,EAAEw7D,cACNx7D,EAAEhkB,KAAO,MAEX,CAAE,EAGFyrD,EAAOwyB,cAAe,SAAU,SAAUj6D,GAGzC,IACKgsC,EAAQh2C,EADb,GAAKgK,EAAEw7D,aAAex7D,EAAE49D,YAEvB,MAAO,CACNv6E,KAAM,SAAU5Q,EAAGukB,GAClBg1C,EAASvE,EAAQ,UAAW,EAC1BrrD,KAAM4jB,EAAE49D,aAAe,EAAG,EAC1BhhF,KAAM,CAAEihF,QAAS79D,EAAE89D,cAAe79E,IAAK+f,EAAE51C,GAAI,CAAE,EAC/Ci8C,GAAI,aAAcrQ,EAAW,SAAU+nE,GACvC/xB,EAAOpmE,OAAO,EACdowB,EAAW,KACN+nE,GACJ/mE,EAAuB,UAAb+mE,EAAI/hF,KAAmB,IAAM,IAAK+hF,EAAI/hF,IAAK,CAEvD,CAAE,EAGHvZ,EAASg0B,KAAKqpC,YAAakM,EAAQ,EAAI,CACxC,EACAqvB,MAAO,WACDrlE,GACJA,EAAS,CAEX,CACD,CAEF,CAAE,EAKiB,IAClBgoE,GAAS,oBA8iBNrtB,IA3iBJlJ,EAAOqyB,UAAW,CACjBmE,MAAO,WACPC,cAAe,WACd,IAAIloE,EAAWmnE,GAAapmD,IAAI,GAAO0wB,EAAO0F,QAAU,IAAQtB,GAAMiC,IAAO,GAE7E,OADAx+E,KAAM0mC,GAAa,GACZA,CACR,CACD,CAAE,EAGFyxC,EAAOuyB,cAAe,aAAc,SAAUh6D,EAAGm+D,EAAkBtF,GAElE,IAAIuF,EAAcC,EAAaC,EAC9BC,EAAuB,KAAZv+D,EAAEi+D,QAAqBD,GAAOjwD,KAAM/N,EAAE51C,GAAI,EACpD,MACkB,UAAlB,OAAO41C,EAAEp2C,MAE6C,KADnDo2C,EAAE05D,aAAe,IACjBhjG,QAAS,mCAAoC,GAC/CsnG,GAAOjwD,KAAM/N,EAAEp2C,IAAK,GAAK,QAI5B,GAAK20G,GAAiC,UAArBv+D,EAAE24D,UAAW,GA8D7B,OA3DAyF,EAAep+D,EAAEk+D,cAAgBxwD,EAAY1N,EAAEk+D,aAAc,EAC5Dl+D,EAAEk+D,cAAc,EAChBl+D,EAAEk+D,cAGEK,EACJv+D,EAAGu+D,GAAav+D,EAAGu+D,GAAW57F,QAASq7F,GAAQ,KAAOI,CAAa,EAC5C,KAAZp+D,EAAEi+D,QACbj+D,EAAE51C,MAAS4sG,GAAOjpD,KAAM/N,EAAE51C,GAAI,EAAI,IAAM,KAAQ41C,EAAEi+D,MAAQ,IAAMG,GAIjEp+D,EAAE65D,WAAY,eAAkB,WAI/B,OAHMyE,GACL72B,EAAOjhE,MAAO43F,EAAe,iBAAkB,EAEzCE,EAAmB,EAC3B,EAGAt+D,EAAE24D,UAAW,GAAM,OAGnB0F,EAAcp2G,EAAQm2G,GACtBn2G,EAAQm2G,GAAiB,WACxBE,EAAoBpoE,SACrB,EAGA2iE,EAAM5b,OAAQ,WAGQxiF,SAAhB4jG,EACJ52B,EAAQx/E,CAAO,EAAEytG,WAAY0I,CAAa,EAI1Cn2G,EAAQm2G,GAAiBC,EAIrBr+D,EAAGo+D,KAGPp+D,EAAEk+D,cAAgBC,EAAiBD,cAGnCf,GAAaxsG,KAAMytG,CAAa,GAI5BE,GAAqB5wD,EAAY2wD,CAAY,GACjDA,EAAaC,EAAmB,EAAI,EAGrCA,EAAoBD,EAAc5jG,MACnC,CAAE,EAGK,QAET,CAAE,EAUFkxE,EAAQ6yB,qBACH17F,EAAOL,EAASg8F,eAAeD,mBAAoB,EAAG,EAAE17F,MACvDC,UAAY,6BACiB,IAA3BD,EAAK8uE,WAAWppF,QAQxBi/E,EAAOuT,UAAY,SAAUpxF,EAAMqiE,EAASyyC,GAC3C,IAQkB9a,EARlB,MAAqB,UAAhB,OAAOh6F,EACJ,IAEgB,WAAnB,OAAOqiE,IACXyyC,EAAczyC,EACdA,EAAU,IAKLA,IAIA0f,EAAQ6yB,qBAMZ1rD,GALAmZ,EAAUxpD,EAASg8F,eAAeD,mBAAoB,EAAG,GAK1Cj/E,cAAe,MAAO,GAChCzQ,KAAOrM,EAASna,SAASwmB,KAC9Bm9C,EAAQx1B,KAAKqpC,YAAahtB,CAAK,GAE/BmZ,EAAUxpD,GAKZmhF,EAAU,CAAC8a,GAAe,IAD1BC,EAASjkB,EAAWryF,KAAMuB,CAAK,GAKvB,CAAEqiE,EAAQ1sC,cAAeo/E,EAAQ,EAAI,IAG7CA,EAAShb,GAAe,CAAE/5F,GAAQqiE,EAAS23B,CAAQ,EAE9CA,GAAWA,EAAQp7F,QACvBi/E,EAAQmc,CAAQ,EAAEh+E,OAAO,EAGnB6hE,EAAO8E,MAAO,GAAIoyB,EAAO/sB,UAAW,GAC5C,EAMAnK,EAAOxS,GAAGl9B,KAAO,SAAU3tC,EAAKgU,EAAQ43B,GACvC,IAAIk2C,EAAUlwD,EAAMzG,EACnBlmB,EAAOC,KACPmlD,EAAMrqD,EAAIsM,QAAS,GAAI,EAsDxB,MApDW,CAAC,EAAP+9C,IACJy3B,EAAWqpB,EAAkBnrG,EAAI8c,MAAOutC,CAAI,CAAE,EAC9CrqD,EAAMA,EAAI8c,MAAO,EAAGutC,CAAI,GAIpB/G,EAAYtvC,CAAO,GAGvB43B,EAAW53B,EACXA,EAAS3D,QAGE2D,GAA4B,UAAlB,OAAOA,IAC5B4d,EAAO,QAIW,EAAd3sB,EAAK7G,QACTi/E,EAAOyyB,KAAM,CACZ9vG,IAAKA,EAKL4xB,KAAMA,GAAQ,MACd08E,SAAU,OACV9uG,KAAMwU,CACP,CAAE,EAAEoY,KAAM,SAAUoqD,GAGnBrrD,EAAW2gB,UAEX7mC,EAAK+a,KAAM8hE,EAIVzE,EAAQ,OAAQ,EAAEnrD,OAAQmrD,EAAOuT,UAAWpa,CAAa,CAAE,EAAEtuD,KAAM45D,CAAS,EAG5EtL,CAAa,CAKf,CAAE,EAAEqc,OAAQjnD,GAAY,SAAU6iE,EAAOx3E,GACxChyB,EAAKo9E,KAAM,WACVz2C,EAASC,MAAO3mC,KAAMimB,GAAY,CAAEsjF,EAAMj4B,aAAcv/C,EAAQw3E,EAAQ,CACzE,CAAE,CACH,CAAE,EAGIvpG,IACR,EAKAm4E,EAAO2N,KAAK3E,QAAQmuB,SAAW,SAAU72D,GACxC,OAAO0/B,EAAOmF,KAAMnF,EAAOusB,OAAQ,SAAU/+B,GAC5C,OAAOltB,IAASktB,EAAGltB,IACpB,CAAE,EAAEv/C,MACL,EAKAi/E,EAAO7lB,OAAS,CACfi9C,UAAW,SAAU92D,EAAMI,EAAS/8C,GACnC,IAA0B0zG,EAAWC,EAAQC,EAAWC,EACvDluD,EAAW02B,EAAO32B,IAAK/I,EAAM,UAAW,EACxCm3D,EAAUz3B,EAAQ1/B,CAAK,EACvBqP,EAAQ,GAGS,WAAbrG,IACJhJ,EAAKS,MAAMuI,SAAW,YAGvBiuD,EAAYE,EAAQt9C,OAAO,EAC3Bk9C,EAAYr3B,EAAO32B,IAAK/I,EAAM,KAAM,EACpCk3D,EAAax3B,EAAO32B,IAAK/I,EAAM,MAAO,EASrCo3D,GARkC,aAAbpuD,GAAwC,UAAbA,IACD,CAAC,GAA9C+tD,EAAYG,GAAavoG,QAAS,MAAO,GAM3CqoG,GADAK,EAAcF,EAAQnuD,SAAS,GACVmD,IACXkrD,EAAY/O,OAGtB0O,EAASt3C,WAAYq3C,CAAU,GAAK,EAC1Br3C,WAAYw3C,CAAW,GAAK,GASnB,OAHnB92D,EAHIuF,EAAYvF,CAAQ,EAGdA,EAAQrrB,KAAMirB,EAAM38C,EAAGq8E,EAAO39D,OAAQ,GAAIk1F,CAAU,CAAE,EAG5D72D,GAAQ+L,MACZkD,EAAMlD,IAAQ/L,EAAQ+L,IAAM8qD,EAAU9qD,IAAQ6qD,GAE1B,MAAhB52D,EAAQkoD,OACZj5C,EAAMi5C,KAASloD,EAAQkoD,KAAO2O,EAAU3O,KAAS8O,GAG7C,UAAWh3D,EACfA,EAAQk3D,MAAMviF,KAAMirB,EAAMqP,CAAM,EAGhC8nD,EAAQpuD,IAAKsG,CAAM,CAErB,CACD,EAEAqwB,EAAOxS,GAAGnrD,OAAQ,CAGjB83C,OAAQ,SAAUzZ,GAGjB,IAQIm3D,EACHv3D,EATD,OAAK7R,UAAU1tC,OACKiS,SAAZ0tC,EACN74C,KACAA,KAAKm9E,KAAM,SAAUrhF,GACpBq8E,EAAO7lB,OAAOi9C,UAAWvvG,KAAM64C,EAAS/8C,CAAE,CAC3C,CAAE,GAIH28C,EAAOz4C,KAAM,IAURy4C,EAAK+nD,eAAe,EAAEtnG,QAK5B82G,EAAOv3D,EAAKkM,sBAAsB,EAClC5d,EAAM0R,EAAK4/B,cAAcC,YAClB,CACN1zB,IAAKorD,EAAKprD,IAAM7d,EAAIge,YACpBg8C,KAAMiP,EAAKjP,KAAOh6D,EAAIkpE,WACvB,GATQ,CAAErrD,IAAK,EAAGm8C,KAAM,CAAE,EAT1B,MAmBD,EAIAt/C,SAAU,WACT,GAAMzhD,KAAM,GAAZ,CAIA,IAAIkwG,EAAc59C,EAAQtrB,EACzByR,EAAOz4C,KAAM,GACbmwG,EAAe,CAAEvrD,IAAK,EAAGm8C,KAAM,CAAE,EAGlC,GAAwC,UAAnC5oB,EAAO32B,IAAK/I,EAAM,UAAW,EAGjC6Z,EAAS7Z,EAAKkM,sBAAsB,MAE9B,CAON,IANA2N,EAAStyD,KAAKsyD,OAAO,EAIrBtrB,EAAMyR,EAAK4/B,cACX63B,EAAez3D,EAAKy3D,cAAgBlpE,EAAIk0C,gBAChCg1B,IACLA,IAAiBlpE,EAAIxzB,MAAQ08F,IAAiBlpE,EAAIk0C,kBACT,WAA3C/C,EAAO32B,IAAK0uD,EAAc,UAAW,GAErCA,EAAeA,EAAap2B,WAExBo2B,GAAgBA,IAAiBz3D,GAAkC,IAA1By3D,EAAa93B,YAG1D+3B,EAAeh4B,EAAQ+3B,CAAa,EAAE59C,OAAO,GAChC1N,KAAOuzB,EAAO32B,IAAK0uD,EAAc,iBAAkB,EAAK,EACrEC,EAAapP,MAAQ5oB,EAAO32B,IAAK0uD,EAAc,kBAAmB,EAAK,EAEzE,CAGA,MAAO,CACNtrD,IAAK0N,EAAO1N,IAAMurD,EAAavrD,IAAMuzB,EAAO32B,IAAK/I,EAAM,YAAa,EAAK,EACzEsoD,KAAMzuC,EAAOyuC,KAAOoP,EAAapP,KAAO5oB,EAAO32B,IAAK/I,EAAM,aAAc,EAAK,CAC9E,CAtCA,CAuCD,EAYAy3D,aAAc,WACb,OAAOlwG,KAAKpI,IAAK,WAGhB,IAFA,IAAIs4G,EAAelwG,KAAKkwG,aAEhBA,GAA2D,WAA3C/3B,EAAO32B,IAAK0uD,EAAc,UAAW,GAC5DA,EAAeA,EAAaA,aAG7B,OAAOA,GAAgBh1B,CACxB,CAAE,CACH,CACD,CAAE,EAGF/C,EAAOgF,KAAM,CAAEwkB,WAAY,cAAe1/C,UAAW,aAAc,EAAG,SAAUqY,EAAQhtC,GACvF,IAAIs3B,EAAM,gBAAkBt3B,EAE5B6qD,EAAOxS,GAAIrL,GAAW,SAAU1hD,GAC/B,OAAOk3E,EAAQ9vF,KAAM,SAAUy4C,EAAM6hB,EAAQ1hD,GAG5C,IAAImuB,EAOJ,GANKi1C,EAAUvjC,CAAK,EACnB1R,EAAM0R,EACuB,IAAlBA,EAAK2/B,WAChBrxC,EAAM0R,EAAK6/B,aAGCntE,SAARyN,EACJ,OAAOmuB,EAAMA,EAAKzZ,GAASmrB,EAAM6hB,GAG7BvzB,EACJA,EAAI5iB,SACFygC,EAAY7d,EAAIkpE,YAAVr3F,EACPgsC,EAAMhsC,EAAMmuB,EAAIge,WACjB,EAGAtM,EAAM6hB,GAAW1hD,CAEnB,EAAG0hD,EAAQ1hD,EAAKguB,UAAU1tC,MAAO,CAClC,CACD,CAAE,EAQFi/E,EAAOgF,KAAM,CAAE,MAAO,QAAU,SAAUpM,EAAIzjD,GAC7C6qD,EAAOwoB,SAAUrzE,GAASywE,GAAc1hB,EAAQgiB,cAC/C,SAAU5lD,EAAMglD,GACf,GAAKA,EAIJ,OAHAA,EAAWD,GAAQ/kD,EAAMnrB,CAAK,EAGvBqvE,GAAUl+C,KAAMg/C,CAAS,EAC/BtlB,EAAQ1/B,CAAK,EAAEgJ,SAAS,EAAGn0B,GAAS,KACpCmwE,CAEH,CACD,CACD,CAAE,EAIFtlB,EAAOgF,KAAM,CAAEizB,OAAQ,SAAUC,MAAO,OAAQ,EAAG,SAAU5vG,EAAMisB,GAClEyrD,EAAOgF,KAAM,CACZ8jB,QAAS,QAAUxgG,EACnBg5C,QAAS/sB,EACT,GAAI,QAAUjsB,CACf,EAAG,SAAU6vG,EAAcC,GAG1Bp4B,EAAOxS,GAAI4qC,GAAa,SAAUvP,EAAQrjG,GACzC,IAAIoyF,EAAYnpD,UAAU1tC,SAAYo3G,GAAkC,WAAlB,OAAOtP,GAC5D/tC,EAAQq9C,IAA6B,KAAXtP,GAA6B,KAAVrjG,EAAiB,SAAW,UAE1E,OAAOmyF,EAAQ9vF,KAAM,SAAUy4C,EAAM/rB,EAAM/uB,GAC1C,IAAIqpC,EAEJ,OAAKg1C,EAAUvjC,CAAK,EAGoB,IAAhC83D,EAASnpG,QAAS,OAAQ,EAChCqxC,EAAM,QAAUh4C,GAChBg4C,EAAKtlC,SAAS+nE,gBAAiB,SAAWz6E,GAIrB,IAAlBg4C,EAAK2/B,UACTpxC,EAAMyR,EAAKyiC,gBAIJ7sE,KAAKwS,IACX43B,EAAKjlC,KAAM,SAAW/S,GAAQumC,EAAK,SAAWvmC,GAC9Cg4C,EAAKjlC,KAAM,SAAW/S,GAAQumC,EAAK,SAAWvmC,GAC9CumC,EAAK,SAAWvmC,EACjB,GAGgB0K,SAAVxN,EAGNw6E,EAAO32B,IAAK/I,EAAM/rB,EAAMumC,CAAM,EAG9BklB,EAAOj/B,MAAOT,EAAM/rB,EAAM/uB,EAAOs1D,CAAM,CACzC,EAAGvmC,EAAMqjE,EAAYiR,EAAS71F,OAAW4kF,CAAU,CACpD,CACD,CAAE,CACH,CAAE,EAGF5X,EAAOgF,KAAM,CACZ,YACA,WACA,eACA,YACA,cACA,YACE,SAAUpM,EAAIrkD,GAChByrD,EAAOxS,GAAIj5C,GAAS,SAAUi5C,GAC7B,OAAO3lE,KAAK+2C,GAAIrqB,EAAMi5C,CAAG,CAC1B,CACD,CAAE,EAKFwS,EAAOxS,GAAGnrD,OAAQ,CAEjBwiC,KAAM,SAAUi4C,EAAO36F,EAAMqrE,GAC5B,OAAO3lE,KAAK+2C,GAAIk+C,EAAO,KAAM36F,EAAMqrE,CAAG,CACvC,EACA6qC,OAAQ,SAAUvb,EAAOtvB,GACxB,OAAO3lE,KAAKmlD,IAAK8vC,EAAO,KAAMtvB,CAAG,CAClC,EAEAf,SAAU,SAAUgY,EAAUqY,EAAO36F,EAAMqrE,GAC1C,OAAO3lE,KAAK+2C,GAAIk+C,EAAOrY,EAAUtiF,EAAMqrE,CAAG,CAC3C,EACA8qC,WAAY,SAAU7zB,EAAUqY,EAAOtvB,GAGtC,OAA4B,IAArB/+B,UAAU1tC,OAChB8G,KAAKmlD,IAAKy3B,EAAU,IAAK,EACzB58E,KAAKmlD,IAAK8vC,EAAOrY,GAAY,KAAMjX,CAAG,CACxC,EAEA+qC,MAAO,SAAUC,EAAQC,GACxB,OAAO5wG,KAAK05F,WAAYiX,CAAO,EAAEhX,WAAYiX,GAASD,CAAO,CAC9D,CACD,CAAE,EAEFx4B,EAAOgF,KACN,wLAE4D/vE,MAAO,GAAI,EACvE,SAAU2jE,EAAItwE,GAGb03E,EAAOxS,GAAIllE,GAAS,SAAUnG,EAAMqrE,GACnC,OAA0B,EAAnB/+B,UAAU1tC,OAChB8G,KAAK+2C,GAAIt2C,EAAM,KAAMnG,EAAMqrE,CAAG,EAC9B3lE,KAAK01F,QAASj1F,CAAK,CACrB,CACD,CACD,EASY,uDAiGXowG,IA3FD14B,EAAO24B,MAAQ,SAAUnrC,EAAIhJ,GAC5B,IAAS2M,EAAMwnC,EAUf,GARwB,UAAnB,OAAOn0C,IACXkoB,EAAMlf,EAAIhJ,GACVA,EAAUgJ,EACVA,EAAKkf,GAKAzmC,EAAYunB,CAAG,EAarB,OARA2D,EAAO1xD,EAAM4V,KAAMoZ,UAAW,CAAE,GAChCkqE,EAAQ,WACP,OAAOnrC,EAAGh/B,MAAOg2B,GAAW38D,KAAMspE,EAAKr9D,OAAQ2L,EAAM4V,KAAMoZ,SAAU,CAAE,CAAE,CAC1E,GAGM43C,KAAO7Y,EAAG6Y,KAAO7Y,EAAG6Y,MAAQrG,EAAOqG,IAAI,GAEtCsyB,CACR,EAEA34B,EAAO44B,UAAY,SAAUC,GACvBA,EACJ74B,EAAOyX,SAAS,GAEhBzX,EAAOkB,MAAO,EAAK,CAErB,EACAlB,EAAOriD,QAAUD,MAAMC,QACvBqiD,EAAO84B,UAAY9kF,KAAKC,MACxB+rD,EAAOI,SAAWA,EAClBJ,EAAO/5B,WAAaA,EACpB+5B,EAAO6D,SAAWA,EAClB7D,EAAOsY,UAAYA,EACnBtY,EAAOzrD,KAAOiwD,EAEdxE,EAAO/8E,IAAMC,KAAKD,IAElB+8E,EAAO+4B,UAAY,SAAU7nF,GAK5B,IAAIqD,EAAOyrD,EAAOzrD,KAAMrD,CAAI,EAC5B,OAAkB,WAATqD,GAA8B,WAATA,IAK7B,CAACyjB,MAAO9mB,EAAM8uC,WAAY9uC,CAAI,CAAE,CAClC,EAEA8uD,EAAO33D,KAAO,SAAUy6B,GACvB,OAAe,MAARA,EACN,IACEA,EAAO,IAAK5nC,QAASguE,GAAO,IAAK,CACrC,EAoBE,UAFqB,GAAF,WACnB,OAAOlJ,CACP,WAFiB,EAEjB,oBASSx/E,EAAOw/E,QAGjBg5B,GAAKx4G,EAAOy4G,EAwBb,OAtBAj5B,EAAOk5B,WAAa,SAAU1zB,GAS7B,OARKhlF,EAAOy4G,IAAMj5B,IACjBx/E,EAAOy4G,EAAID,IAGPxzB,GAAQhlF,EAAOw/E,SAAWA,IAC9Bx/E,EAAOw/E,OAAS04B,IAGV14B,CACR,EAKyB,SAAb4D,IACXpjF,EAAOw/E,OAASx/E,EAAOy4G,EAAIj5B,GAMrBA,CACP,CAAE,C,yDCjvVF;;;;;;;;;GASC,CAAC,WAGA,IAAIhtE,GAGAmmG,EAAY,GACZC,EAAa,GAGbC,GAAY,EAGZC,GAAY,CAAC,IAAIp2G,KAAO,GAGxBq2G,GAAiB,GAGjBC,EAAc,GAGd1wB,GAAa,iDAYb2wB,GAAuB,iBACvBC,GAAsB,qBACtBC,GAAwB,gCAMxBC,GAAe,kCAGfC,GAAU,OAGVC,GAAa,2BAGbC,GAAgB,mBAGhBC,GAA0Br5G,OAAO,KAAOmoF,GAAa,YAAY,EAGjEmxB,GAAY,OAGZC,GAAS,WAGTC,GAAoB,2BAGpBC,GAAe,CACjB,QAAS,UAAW,OAAQ,WAAY,OAAQ,SAAU,SAC1D,SAAU,SAAU,IAAK,cAAe,eAAgB,WAAY,QACpE,WAAY,cAIVC,GAAkB,EAGlBC,GAAY,qBACZC,GAAa,iBACbC,GAAY,mBACZC,GAAY,gBACZC,GAAY,oBACZC,GAAc,kBACdC,GAAc,kBACdC,GAAc,kBACdC,GAAc,kBAGdC,GAAmB,GAQnBC,IAPJD,GAAiBL,IAAa,GAOR,CACpB,QAAW,EAPbK,GAAiBT,IAAaS,GAAiBR,IAC/CQ,GAAiBP,IAAaO,GAAiBN,IAC/CM,GAAiBJ,IAAeI,GAAiBH,IACjDG,GAAiBF,IAAeE,GAAiBD,IAAe,IAK9D,QAAW,EACX,SAAY,EACd,GAGItpC,GAAa,CACf,aAAgB,GAChB,WAAc,GACd,MAAS,KACT,SAAY,EACd,EAGIypC,GAAc,CAChB,QAAW,GACX,SAAY,GACZ,OAAU,GACV,OAAU,GACV,OAAU,GACV,UAAa,EACf,EAGIC,EAAgB,CAClB,KAAM,KACN,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,OACZ,EAGI/tE,GAAQ8tE,GAAY,OAAOz6G,SAAWA,QAAWqH,KAMjDszG,GAHcF,GAAY,OAAO16G,IAAYA,GAAYA,EAAQ0/E,SAGpDg7B,GAAY,OAAO36G,IAAWA,GAAU,CAACA,EAAO2/E,UAAY3/E,GAMzE86G,GAHgBD,GAAcA,EAAW56G,QAG5B06G,GAAY,OAAOxnC,IAAWA,GAiB/C,SAAS4nC,GAAYxrD,EAAOrqD,EAAO81G,GAIjC,IAHA,IAAIpoF,GAASooF,GAAa,GAAK,EAC3Bv6G,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAE7B,EAAEmyB,EAAQnyB,GACf,GAAI8uD,EAAM38B,KAAW1tB,EACnB,OAAO0tB,EAGX,MAAO,CAAC,CACV,CAWA,SAASqoF,GAAatwB,EAAOzlF,GAC3B,IAAI+uB,EAAO,OAAO/uB,EAGlB,OAFAylF,EAAQA,EAAMA,MAEF,WAAR12D,GAA8B,MAAT/uB,EAChBylF,EAAMzlF,GAAS,EAAI,CAAC,GAM7BylF,GAASA,EAAQA,EAHf12D,EADU,UAARA,GAA4B,UAARA,EACf,SAGcA,KAAU02D,EADf,UAAR12D,EAAmB/uB,EAAQ8zG,GAAY9zG,GAGlC,UAAR+uB,EACF02D,GAAqC,CAAC,EAA7BowB,GAAYpwB,EAAOzlF,CAAK,EAAS,EAAI,CAAC,EAC/CylF,EAAQ,EAAI,CAAC,EACpB,CAQA,SAASuwB,EAAUh2G,GACjB,IASMkK,EATFu7E,EAAQpjF,KAAKojF,MACb12D,EAAO,OAAO/uB,EAEN,WAAR+uB,GAA8B,MAAT/uB,EACvBylF,EAAMzlF,GAAS,IAKXkK,EAAc,WAFhB6kB,EADU,UAARA,GAA4B,UAARA,EACf,SAECA,GAAmB/uB,EAAQ8zG,GAAY9zG,EAC7Ci2G,EAAYxwB,EAAM12D,KAAU02D,EAAM12D,GAAQ,IAElC,UAARA,GACDknF,EAAU/rG,KAAS+rG,EAAU/rG,GAAO,KAAKxG,KAAK1D,CAAK,EAEpDi2G,EAAU/rG,GAAO,GAGvB,CAUA,SAASgsG,GAAel2G,GACtB,OAAOA,EAAMyb,WAAW,CAAC,CAC3B,CAWA,SAAS06F,GAAiB50G,EAAG26B,GAM3B,IALA,IAAIk6E,EAAK70G,EAAE80G,SACPC,EAAKp6E,EAAEm6E,SACP3oF,EAAQ,CAAC,EACTnyB,EAAS66G,EAAG76G,OAET,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQo2G,EAAG1oF,GACXgoB,EAAQ4gE,EAAG5oF,GAEf,GAAI1tB,IAAU01C,EAAO,CACnB,GAAYA,EAAR11C,GAAiC,SAATA,EAC1B,OAAO,EAET,GAAIA,EAAQ01C,GAAyB,SAATA,EAC1B,MAAO,CAAC,CAEZ,CACF,CAOA,OAAOn0C,EAAEmsB,MAAQwO,EAAExO,KACrB,CASA,SAASo1D,GAAYz4B,GACnB,IAAI38B,EAAQ,CAAC,EACTnyB,EAAS8uD,EAAM9uD,OACfo0E,EAAQtlB,EAAM,GACdksD,EAAMlsD,EAAO9uD,EAAS,EAAK,GAC3BgoE,EAAOlZ,EAAM9uD,EAAS,GAE1B,GAAIo0E,GAAyB,UAAhB,OAAOA,GAChB4mC,GAAqB,UAAd,OAAOA,GAAmBhzC,GAAuB,UAAf,OAAOA,EAClD,MAAO,GAET,IAAIkiB,EAAQ+wB,GAAU,EAGlBz4G,GAFJ0nF,EAAa,MAAIA,EAAY,KAAIA,EAAY,KAAIA,EAAM,QAAe,GAEzD+wB,GAAU,GAKvB,IAJAz4G,EAAOssD,MAAQA,EACftsD,EAAO0nF,MAAQA,EACf1nF,EAAO2F,KAAOsyG,EAEP,EAAEtoF,EAAQnyB,GACfwC,EAAO2F,KAAK2mD,EAAM38B,EAAM,EAE1B,OAAO3vB,CACT,CAUA,SAAS04G,GAAiBvsD,GACxB,MAAO,KAAOwrD,EAAcxrD,EAC9B,CAQA,SAASwsD,KACP,OAAO/C,EAAU7pD,IAAI,GAAK,EAC5B,CAQA,SAAS0sD,KACP,OAAO5C,EAAW9pD,IAAI,GAAK,CACzB,MAAS,KACT,MAAS,KACT,SAAY,KACZ,MAAS,GACT,MAAS,EACT,KAAQ,GACR,OAAU,KACV,OAAU,KACV,KAAQ,KACR,OAAU,KACV,KAAQ,GACR,UAAa,GACb,MAAS,IACX,CACF,CAQA,SAAS6sD,GAAatsD,GACpBA,EAAM9uD,OAAS,EACXo4G,EAAUp4G,OAASy4G,GACrBL,EAAUjwG,KAAK2mD,CAAK,CAExB,CAQA,SAASusD,GAAc/xC,GACrB,IAAI4gB,EAAQ5gB,EAAO4gB,MACfA,GACFmxB,GAAcnxB,CAAK,EAErB5gB,EAAOxa,MAAQwa,EAAO4gB,MAAQ5gB,EAAOwxC,SAAWxxC,EAAOA,OAASA,EAAOgyC,OAAShyC,EAAOkuB,OAASluB,EAAO7kE,MAAQ,KAC3G4zG,EAAWr4G,OAASy4G,GACtBJ,EAAWlwG,KAAKmhE,CAAM,CAE1B,CAeA,SAAS5qD,GAAMowC,EAAOt/B,EAAOD,GAS3B,IAJA,IAAI4C,EAAQ,CAAC,EACTnyB,GAHFuvB,EADgB,SAAPA,EACHu/B,EAAQA,EAAM9uD,OAAS,EAGlBuvB,IALbC,KAAkB,IAKU,EACxBhtB,EAASm6B,MAAM38B,EAAS,EAAI,EAAIA,CAAM,EAEnC,EAAEmyB,EAAQnyB,GACfwC,EAAO2vB,GAAS28B,EAAMt/B,EAAQ2C,GAEhC,OAAO3vB,CACT,CAzQI63G,IAAeA,EAAW3nC,SAAW2nC,GAAcA,EAAW56G,SAAW46G,IAC3EjuE,GAAOiuE,GAy8MT,IAAIpwF,GAprMJ,SAASsxF,EAAa93C,GAQpB,IAAI9mC,GAHJ8mC,EAAUA,EAAUx5C,GAAEuxF,SAASpvE,GAAK/sC,OAAO,EAAGokE,EAASx5C,GAAEwxF,KAAKrvE,GAAMitE,EAAY,CAAC,EAAIjtE,IAGjEzP,MAChB00C,EAAU5N,EAAQ4N,QAClBlvE,EAAOshE,EAAQthE,KACfuvE,EAAWjO,EAAQiO,SACnBv8D,EAAOsuD,EAAQtuD,KACf+sB,EAASuhC,EAAQvhC,OACjB7iC,EAASokE,EAAQpkE,OACjBO,EAAS6jE,EAAQ7jE,OACjBmM,EAAS03D,EAAQ13D,OACjBggE,EAAYtI,EAAQsI,UAQpB2vC,EAAW,GAGXC,EAAct8G,EAAOg1B,UAGrBunF,EAAUn4C,EAAQx5C,EAGlBhW,EAAW0nG,EAAY1nG,SAGvB4nG,EAAWj8G,EAAO,IACpBmM,EAAOkI,CAAQ,EACZkG,QAAQ,sBAAuB,MAAM,EACrCA,QAAQ,wBAAyB,KAAK,EAAI,GAC/C,EAGI/E,EAAOD,EAAKC,KACZ4e,EAAeyvC,EAAQzvC,aACvBpC,EAAQzc,EAAKyc,MACbqxD,EAAavR,EAASr9C,UAAUpgB,SAChC64D,EAAiBgvC,EAAShvC,EAAiBztE,EAAOytE,cAAc,GAAKA,EACrE1C,EAAiBuxC,EAAYvxC,eAC7BjiE,EAAOuzG,EAASvzG,KAChBqd,EAAai+C,EAAQj+C,WACrBkM,EAASgqF,EAAShqF,OAClBi7D,EAAU+uB,EAAS/uB,QAGnB1iB,EAAkB,WAEpB,IACE,IAAIjrE,EAAI,GACJu1F,EAAOunB,EAASvnB,EAAOl1F,EAAO4qE,cAAc,GAAKsqB,EACjD/xF,EAAS+xF,EAAKv1F,EAAGA,EAAGA,CAAC,GAAKu1F,CACnB,CAAX,MAAMt1F,IACR,OAAOuD,CACT,EAAG,EAGCu5G,EAAeD,EAASC,EAAe18G,EAAO0/C,MAAM,GAAKg9D,EACzDC,EAAgBF,EAASE,EAAgBr/E,EAAMC,OAAO,GAAKo/E,EAC3DC,EAAiBx4C,EAAQyP,SACzBgpC,EAAcz4C,EAAQxsB,MACtBklE,EAAaL,EAASK,EAAa98G,EAAOD,IAAI,GAAK+8G,EACnDC,EAAYjnG,EAAKwS,IACjB00F,EAAYlnG,EAAK0S,IACjBy0F,GAAiB74C,EAAQz5C,SACzBuyF,GAAepnG,EAAK0c,OAGpB2qF,EAAc,GA6ElB,SAASC,EAAOh4G,GAEd,OAAQA,GAAyB,UAAhB,OAAOA,GAAqB,CAACm4B,EAAQn4B,CAAK,GAAK2lE,EAAe91C,KAAK7vB,EAAO,aAAa,EACrGA,EACA,IAAIi4G,EAAcj4G,CAAK,CAC5B,CAUA,SAASi4G,EAAcj4G,EAAOk4G,GAC5B71G,KAAK81G,UAAY,CAAC,CAACD,EACnB71G,KAAK+1G,YAAcp4G,CACrB,CA9FA+3G,EAAYhD,IAAc78E,EAC1B6/E,EAAY/C,IAAapoC,EACzBmrC,EAAY9C,IAAav3G,EACzBq6G,EAAY7C,IAAajoC,EACzB8qC,EAAY3C,IAAex6G,EAC3Bm9G,EAAY5C,IAAe13E,EAC3Bs6E,EAAY1C,IAAel6G,EAC3B48G,EAAYzC,IAAehuG,EAyF3B2wG,EAAcroF,UAAYooF,EAAOpoF,UASjC,IAAI8uD,EAAUs5B,EAAOt5B,QAAU,GA0F/B,SAAS25B,GAASC,GAChB,IAAIxoB,EAAOwoB,EAAS,GAChBC,EAAcD,EAAS,GACvBE,EAAUF,EAAS,GAEvB,SAASG,IAGP,IAIM9sC,EAOA+sC,EACA36G,EAHN,OATIw6G,IAIE5sC,EAAO1xD,GAAMs+F,CAAW,EAC5B70G,EAAKslC,MAAM2iC,EAAM1iC,SAAS,GAIxB5mC,gBAAgBo2G,GAEdC,EAAcC,EAAW7oB,EAAKlgE,SAAS,EAEpCmpC,EADHh7D,EAAS+xF,EAAK9mD,MAAM0vE,EAAa/sC,GAAQ1iC,SAAS,CAChC,EAAIlrC,EAAS26G,GAE9B5oB,EAAK9mD,MAAMwvE,EAAS7sC,GAAQ1iC,SAAS,CAC9C,CAEA,OADA2vE,GAAYH,EAAOH,CAAQ,EACpBG,CACT,CAcA,SAASI,GAAU74G,EAAO84G,EAAQ/vE,EAAUgwE,EAAQC,GAClD,GAAIjwE,EAAU,CACZ,IAAIhrC,EAASgrC,EAAS/oC,CAAK,EAC3B,GAAqB,SAAVjC,EACT,OAAOA,CAEX,CAGA,GAAIk7G,CADQlgD,EAAS/4D,CAAK,EAsBxB,OAAOA,EApBP,IAAI2mF,EAAYn3E,EAASqgB,KAAK7vB,CAAK,EACnC,GAAI,CAACu1G,GAAiB5uB,GACpB,OAAO3mF,EAET,IAAI+pE,EAAOguC,EAAYpxB,GACvB,OAAQA,GACN,KAAKquB,GACL,KAAKC,GACH,OAAO,IAAIlrC,EAAK,CAAC/pE,CAAK,EAExB,KAAKm1G,GACL,KAAKG,GACH,OAAO,IAAIvrC,EAAK/pE,CAAK,EAEvB,KAAKq1G,GAGH,OAFAt3G,EAASgsE,EAAK/pE,EAAMka,OAAQm6F,GAAQj5G,KAAK4E,CAAK,CAAC,GACxCk5G,UAAYl5G,EAAMk5G,UAClBn7G,CACX,CAKF,GADIo7G,EAAQhhF,EAAQn4B,CAAK,EACrB84G,EAAQ,CAOV,IALA,IAAIM,EAAc,CAACL,EAIfx9G,GAHJw9G,KAAoBrC,GAAS,EAC7BsC,KAAoBtC,GAAS,EAEhBqC,EAAOx9G,QACbA,CAAM,IACX,GAAIw9G,EAAOx9G,IAAWyE,EACpB,OAAOg5G,EAAOz9G,GAGlBwC,EAASo7G,EAAQpvC,EAAK/pE,EAAMzE,MAAM,EAAI,EACxC,MAEEwC,EAASo7G,EAAQl/F,GAAMja,CAAK,EAAIq5G,GAAO,GAAIr5G,CAAK,EA6BlD,OA1BIm5G,IACExzC,EAAe91C,KAAK7vB,EAAO,OAAO,IACpCjC,EAAO2vB,MAAQ1tB,EAAM0tB,OAEnBi4C,EAAe91C,KAAK7vB,EAAO,OAAO,KACpCjC,EAAOmuC,MAAQlsC,EAAMksC,OAIpB4sE,IAKLC,EAAOr1G,KAAK1D,CAAK,EACjBg5G,EAAOt1G,KAAK3F,CAAM,GAGjBo7G,EAAQj0F,EAAUo0F,GAAQt5G,EAAO,SAASu5G,EAAUrvG,GACnDnM,EAAOmM,GAAO2uG,GAAUU,EAAUT,EAAQ/vE,EAAUgwE,EAAQC,CAAM,CACpE,CAAC,EAEGI,KACFzC,GAAaoC,CAAM,EACnBpC,GAAaqC,CAAM,GAEdj7G,CACT,CAUA,SAAS46G,EAAW/oF,EAAWu1E,GAC7B,OAAOpsC,EAASnpC,CAAS,EAAI0nF,EAAa1nF,CAAS,EAAI,EACzD,CAII,SAASh1B,MAsBb,SAAS4+G,EAAmB1pB,EAAM0oB,EAASiB,GACzC,GAAmB,YAAf,OAAO3pB,EACT,OAAO4pB,GAGT,GAAsB,SAAXlB,GAA0B,EAAE,cAAe1oB,GACpD,OAAOA,EAET,IAOQ51E,EAPJo+F,EAAWxoB,EAAK6pB,aAmBpB,GAlBuB,SAAZrB,IAITA,GAFEA,EADE55B,EAAQk7B,UACC,CAAC9pB,EAAKhtF,KAERw1G,IAAY,CAAC55B,EAAQm7B,cAE1B3/F,EAASskE,EAAW3uD,KAAKigE,CAAI,EAE/BwoB,EADG55B,EAAQk7B,UAGRtB,EAFQ,CAAChE,GAAWxzD,KAAK5mC,CAAM,KAIlCo+F,EAAW5D,GAAO5zD,KAAK5mC,CAAM,EAC7B0+F,GAAY9oB,EAAMwoB,CAAQ,GAKf,KAAbA,GAAoC,KAAbA,GAAmC,EAAdA,EAAS,GACvD,OAAOxoB,EAET,OAAQ2pB,GACN,KAAK,EAAG,OAAO,SAASz5G,GACtB,OAAO8vF,EAAKjgE,KAAK2oF,EAASx4G,CAAK,CACjC,EACA,KAAK,EAAG,OAAO,SAASuB,EAAG26B,GACzB,OAAO4zD,EAAKjgE,KAAK2oF,EAASj3G,EAAG26B,CAAC,CAChC,EACA,KAAK,EAAG,OAAO,SAASl8B,EAAO0tB,EAAOqvE,GACpC,OAAOjN,EAAKjgE,KAAK2oF,EAASx4G,EAAO0tB,EAAOqvE,CAAU,CACpD,EACA,KAAK,EAAG,OAAO,SAASr7D,EAAa1hC,EAAO0tB,EAAOqvE,GACjD,OAAOjN,EAAKjgE,KAAK2oF,EAAS92E,EAAa1hC,EAAO0tB,EAAOqvE,CAAU,CACjE,CACF,CACA,OAAO19C,GAAKywC,EAAM0oB,CAAO,CAC3B,CAUA,SAASsB,GAAkBxB,GACzB,IAAIxoB,EAAOwoB,EAAS,GAChByB,EAAUzB,EAAS,GACnBC,EAAcD,EAAS,GACvB0B,EAAmB1B,EAAS,GAC5BE,EAAUF,EAAS,GACnB2B,EAAQ3B,EAAS,GAEjB4B,EAAmB,EAAVH,EACTI,EAAsB,EAAVJ,EACZK,EAAoB,EAAVL,EACVM,EAAyB,EAAVN,EACf7vG,EAAM4lF,EAEV,SAAS2oB,IACP,IAEM9sC,EAmBA5tE,EArBF26G,EAAcwB,EAAS1B,EAAUn2G,KAKrC,OAJIk2G,IACE5sC,EAAO1xD,GAAMs+F,CAAW,EAC5B70G,EAAKslC,MAAM2iC,EAAM1iC,SAAS,IAExB+wE,GAAoBI,KACtBzuC,KAAgB1xD,GAAMgvB,SAAS,EAC3B+wE,GACFt2G,EAAKslC,MAAM2iC,EAAMquC,CAAgB,EAE/BI,IAAWzuC,EAAKpwE,OAAS0+G,GAC3BF,GAAW,GACJD,GAAkB,CAAChqB,EAAOuqB,EAAeN,EAAoB,GAAVA,EAAepuC,EAAM,KAAM6sC,EAASyB,EAAM,IAGxGtuC,KAAgB1iC,UACZkxE,IACFrqB,EAAO4oB,EAAYxuG,IAEjB7H,gBAAgBo2G,GAClBC,EAAcC,EAAW7oB,EAAKlgE,SAAS,EAEhCmpC,EADHh7D,EAAS+xF,EAAK9mD,MAAM0vE,EAAa/sC,CAAI,CACnB,EAAI5tE,EAAS26G,GAE9B5oB,EAAK9mD,MAAM0vE,EAAa/sC,CAAI,EACrC,CAEA,OADAitC,GAAYH,EAAOH,CAAQ,EACpBG,CACT,CAWA,SAAS6B,EAAejwD,EAAO1/B,GAC7B,IAOM86D,EAPF/3D,EAAQ,CAAC,EACTjkB,EAAU8wG,GAAW,EACrBh/G,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAChCi/G,EAAoBzG,IAAVx4G,GAA4BkO,IAAYosG,GAClD93G,EAAS,GAWb,IATIy8G,KACE/0B,EAAQ3C,GAAYn4D,CAAM,IAE5BlhB,EAAUssG,GACVprF,EAAS86D,GAET+0B,EAAU,IAGP,EAAE9sF,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQqqD,EAAM38B,GACdjkB,EAAQkhB,EAAQ3qB,CAAK,EAAI,GAC3BjC,EAAO2F,KAAK1D,CAAK,CAErB,CAIA,OAHIw6G,GACF5D,GAAcjsF,CAAM,EAEf5sB,CACT,CAaA,SAAS08G,EAAYpwD,EAAOqwD,EAAWC,EAAU7E,GAK/C,IAJA,IAAIpoF,GAASooF,GAAa,GAAK,EAC3Bv6G,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAChCwC,EAAS,GAEN,EAAE2vB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQqqD,EAAM38B,GAElB,GAAI1tB,GAAyB,UAAhB,OAAOA,GAA4C,UAAvB,OAAOA,EAAMzE,SAC9C48B,EAAQn4B,CAAK,GAAK46G,GAAY56G,CAAK,GAAI,CAK7C,IAAI66G,EAAW,CAAC,EACZC,GAHF96G,EADG06G,EAIW16G,EAHNy6G,EAAYz6G,EAAO06G,EAAWC,CAAQ,GAG1Bp/G,OAClBw/G,EAAWh9G,EAAOxC,OAGtB,IADAwC,EAAOxC,QAAUu/G,EACV,EAAED,EAAWC,GAClB/8G,EAAOg9G,CAAQ,IAAM/6G,EAAM66G,EAE/B,MAAYF,GACV58G,EAAO2F,KAAK1D,CAAK,CAErB,CACA,OAAOjC,CACT,CAeA,SAASi9G,EAAYz5G,EAAG26B,EAAG6M,EAAUkyE,EAASlC,EAAQC,GAEpD,GAAIjwE,GAEmB,UAAVhrC,EADEgrC,EAASxnC,EAAG26B,CAAC,GAExB,MAAO,CAAC,CAACn+B,EAIb,GAAIwD,IAAM26B,EAER,OAAa,IAAN36B,GAAY,EAAIA,GAAK,EAAI26B,EAMlC,GAAI36B,KAAMA,GACJA,GAAKk0G,GALA,OAAOl0G,IAMZ26B,GAAKu5E,GALK,OAAOv5E,IAMrB,MAAO,GAIT,GAAS,MAAL36B,GAAkB,MAAL26B,EACf,OAAO36B,IAAM26B,EAGf,IAAIyqD,EAAYn3E,EAASqgB,KAAKtuB,CAAC,EAC3B25G,EAAa1rG,EAASqgB,KAAKqM,CAAC,EAQhC,IALEyqD,EADEA,GAAamuB,GACHM,GAKVzuB,KAFFu0B,EADEA,GAAcpG,GACHM,GAEE8F,GACf,MAAO,GAET,OAAQv0B,GACN,KAAKquB,GACL,KAAKC,GAGH,MAAO,CAAC1zG,GAAK,CAAC26B,EAEhB,KAAKi5E,GAEH,OAAQ5zG,GAAK,CAACA,EACV26B,GAAK,CAACA,EAEA,GAAL36B,EAAU,EAAIA,GAAK,EAAI26B,EAAK36B,GAAK,CAAC26B,EAEzC,KAAKm5E,GACL,KAAKC,GAGH,OAAO/zG,GAAK+F,EAAO40B,CAAC,CACxB,CAEA,GAAI,EADAi9E,EAAQxyB,GAAaouB,IACb,CAEV,IAAIoG,EAAWx1C,EAAe91C,KAAKtuB,EAAG,aAAa,EAC/C65G,EAAWz1C,EAAe91C,KAAKqM,EAAG,aAAa,EAEnD,GAAIi/E,GAAYC,EACd,OAAOJ,EAAYG,EAAW55G,EAAE62G,YAAc72G,EAAG65G,EAAWl/E,EAAEk8E,YAAcl8E,EAAG6M,EAAUkyE,EAASlC,EAAQC,CAAM,EAGlH,GAAIryB,GAAayuB,GACf,MAAO,GAOT,GAJIiG,EAAQ95G,EAAEyoE,YACVsxC,EAAQp/E,EAAE8tC,YAGVqxC,GAASC,GACP,EAAE76D,EAAW46D,CAAK,GAAKA,aAAiBA,GAAS56D,EAAW66D,CAAK,GAAKA,aAAiBA,IACtF,gBAAiB/5G,GAAK,gBAAiB26B,EAE5C,MAAO,EAEX,CASA,IALA,IAAIk9E,EAAc,CAACL,EAIfx9G,GAHJw9G,KAAoBrC,GAAS,EAC7BsC,KAAoBtC,GAAS,EAEhBqC,EAAOx9G,QACbA,CAAM,IACX,GAAIw9G,EAAOx9G,IAAWgG,EACpB,OAAOy3G,EAAOz9G,IAAW2gC,EAG7B,IAAIq/E,EAAO,EACXx9G,EAAS,GAOT,GAJAg7G,EAAOr1G,KAAKnC,CAAC,EACby3G,EAAOt1G,KAAKw4B,CAAC,EAGTi9E,GAMF,GAJA59G,EAASgG,EAAEhG,OACXggH,EAAOr/E,EAAE3gC,QACTwC,EAASw9G,GAAQhgH,IAEH0/G,EAEZ,KAAOM,CAAI,IAAI,CACb,IAAI7tF,EAAQnyB,EACRyE,EAAQk8B,EAAEq/E,GAEd,GAAIN,EACF,KAAOvtF,CAAK,IACN,EAAC3vB,EAASi9G,EAAYz5G,EAAEmsB,GAAQ1tB,EAAO+oC,EAAUkyE,EAASlC,EAAQC,CAAM,UAIzE,GAAI,EAAEj7G,EAASi9G,EAAYz5G,EAAEg6G,GAAOv7G,EAAO+oC,EAAUkyE,EAASlC,EAAQC,CAAM,GACjF,KAEJ,CACF,MAKAwC,EAAMt/E,EAAG,SAASl8B,EAAOkK,EAAKgyB,GAC5B,GAAIypC,EAAe91C,KAAKqM,EAAGhyB,CAAG,EAI5B,OAFAqxG,CAAI,GAEIx9G,EAAS4nE,EAAe91C,KAAKtuB,EAAG2I,CAAG,GAAK8wG,EAAYz5G,EAAE2I,GAAMlK,EAAO+oC,EAAUkyE,EAASlC,EAAQC,CAAM,CAEhH,CAAC,EAEGj7G,GAAU,CAACk9G,GAEbO,EAAMj6G,EAAG,SAASvB,EAAOkK,EAAK3I,GAC5B,GAAIokE,EAAe91C,KAAKtuB,EAAG2I,CAAG,EAE5B,OAAQnM,EAAkB,CAAC,EAAV,EAAEw9G,CAEvB,CAAC,EAUL,OAPAxC,EAAOjvD,IAAI,EACXkvD,EAAOlvD,IAAI,EAEPsvD,IACFzC,GAAaoC,CAAM,EACnBpC,GAAaqC,CAAM,GAEdj7G,CACT,CA4EA,SAAS09G,GAAWr4F,EAAKF,GACvB,OAAOE,EAAM+J,EAAM2qF,GAAa,GAAK50F,EAAME,EAAM,EAAE,CACrD,CAYA,SAASs4F,GAASrxD,EAAOsxD,EAAU5yE,GACjC,IAAIrb,EAAQ,CAAC,EACTjkB,EAAU8wG,GAAW,EACrBh/G,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAChCwC,EAAS,GAETy8G,EAAU,CAACmB,GAAsB5H,IAAVx4G,GAA4BkO,IAAYosG,GAC/D+F,EAAQ7yE,GAAYyxE,EAAW9D,GAAS,EAAI34G,EAOhD,IALIy8G,IAEF/wG,EAAUssG,GACV6F,EAFY94B,GAAY84B,CAAI,GAIvB,EAAEluF,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQqqD,EAAM38B,GACdoyE,EAAW/2D,EAAWA,EAAS/oC,EAAO0tB,EAAO28B,CAAK,EAAIrqD,GAEtD27G,EACI,CAACjuF,GAASkuF,EAAKA,EAAKrgH,OAAS,KAAOukG,EACpCr2F,EAAQmyG,EAAM9b,CAAQ,EAAI,MAE5B/2D,GAAYyxE,IACdoB,EAAKl4G,KAAKo8F,CAAQ,EAEpB/hG,EAAO2F,KAAK1D,CAAK,EAErB,CAOA,OANIw6G,GACF7D,GAAaiF,EAAKvxD,KAAK,EACvBusD,GAAcgF,CAAI,GACT7yE,GACT4tE,GAAaiF,CAAI,EAEZ79G,CACT,CAYA,SAAS89G,GAAiB/nB,GACxB,OAAO,SAASiJ,EAAYh0D,EAAUyvE,GACpC,IAAIz6G,EAAS,GAGT2vB,GAFJqb,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAEzC,CAAC,GACTj9G,EAASwhG,EAAaA,EAAWxhG,OAAS,EAE9C,GAAqB,UAAjB,OAAOA,EACT,KAAO,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQ+8F,EAAWrvE,GACvBomE,EAAO/1F,EAAQiC,EAAO+oC,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,EAAGA,CAAU,CACtE,MAEAuc,EAAOvc,EAAY,SAAS/8F,EAAOkK,EAAK6yF,GACtCjJ,EAAO/1F,EAAQiC,EAAO+oC,EAAS/oC,EAAOkK,EAAK6yF,CAAU,EAAGA,CAAU,CACpE,CAAC,EAEH,OAAOh/F,CACT,CACF,CAwBA,SAASg+G,EAAcjsB,EAAMiqB,EAASxB,EAAayB,EAAkBxB,EAASyB,GAC5E,IAAIC,EAAmB,EAAVH,EAETK,EAAoB,EAAVL,EAEViC,EAAsB,GAAVjC,EACZkC,EAA2B,GAAVlC,EAErB,GAAI,EANsB,EAAVA,GAMGt5D,EAAWqvC,CAAI,GAChC,MAAM,IAAIxoB,EAER00C,GAAa,CAACzD,EAAYh9G,SAC5Bw+G,GAAW,IACXiC,EAAYzD,EAAc,IAExB0D,GAAkB,CAACjC,EAAiBz+G,SACtCw+G,GAAW,IACXkC,EAAiBjC,EAAmB,IAEtC,IAAI1B,EAAWxoB,GAAQA,EAAK6pB,aAC5B,OAAIrB,GAAyB,KAAbA,IAEdA,EAAWr+F,GAAMq+F,CAAQ,GACZ,KACXA,EAAS,GAAKr+F,GAAMq+F,EAAS,EAAE,GAE7BA,EAAS,KACXA,EAAS,GAAKr+F,GAAMq+F,EAAS,EAAE,GAG7B4B,IAA0B,EAAd5B,EAAS,KACvBA,EAAS,GAAKE,GAGZ,CAAC0B,GAAwB,EAAd5B,EAAS,KACtByB,GAAW,GAGTK,IAA2B,EAAd9B,EAAS,KACxBA,EAAS,GAAK2B,GAGZ+B,GACFt4G,EAAKslC,MAAMsvE,EAAS,KAAOA,EAAS,GAAK,IAAKC,CAAW,EAGvD0D,GACF/zB,EAAQl/C,MAAMsvE,EAAS,KAAOA,EAAS,GAAK,IAAK0B,CAAgB,EAGnE1B,EAAS,IAAMyB,EACRgC,EAAc/yE,MAAM,KAAMsvE,CAAQ,IAGjB,GAAXyB,GAA4B,KAAZA,EAAkB1B,GAAWyB,IAC7C,CAAChqB,EAAMiqB,EAASxB,EAAayB,EAAkBxB,EAASyB,EAAM,CAC/E,CASA,SAASiC,GAAehyD,GACtB,OAAOiyD,GAAYjyD,EACrB,CAUA,SAASqwD,KACP,IAAIx8G,EACJ,OADcA,EAASi6G,EAAOvuG,WAAaA,GAAUosG,GAAc93G,CAErE,CASA,SAASs5G,EAASr3G,GAChB,MAAuB,YAAhB,OAAOA,GAAuBo3G,EAASt2D,KAAK9gD,CAAK,CAC1D,CA51BA0+E,EAAQm7B,WAAa,CAACxC,EAASr4C,EAAQo9C,UAAU,GAAK1H,GAAO5zD,KAAKg2D,CAAY,EAQ9Ep4B,EAAQk7B,UAAoC,UAAxB,OAAO3sC,EAASnqE,KAWpCk1G,EAAOqE,iBAAmB,CAQxB,OAAU,mBAQV,SAAY,kBAQZ,YAAe9H,GAQf,SAAY,GAQZ,QAAW,CAQT,EAAKyD,CACP,CACF,EAiJKV,IACHqB,EAES,SAAS/oF,GACd,IAEM7xB,EAGN,OALIg7D,EAASnpC,CAAS,IACpBh1B,GAAOg1B,UAAYA,EACf7xB,EAAS,IAAInD,GACjBA,GAAOg1B,UAAY,MAEd7xB,GAAUihE,EAAQpkE,OAAO,CAClC,GAqoBJ,IAAIg+G,GAAepzC,EAAwB,SAASsqB,EAAM9vF,GACxDgsE,GAAWhsE,MAAQA,EACnBwlE,EAAesqB,EAAM,eAAgB9jB,EAAU,EAC/CA,GAAWhsE,MAAQ,IACrB,EAJoCkpC,GAgBpC,SAASozE,GAAkBt8G,GACzB,IAAI+pE,EACAhsE,EAGJ,MAAI,EAAEiC,IAASwP,EAASqgB,KAAK7vB,CAAK,GAAKo1G,IACR30D,EAA1BspB,EAAO/pE,EAAMgqE,WAA4B,GAAM,EAACD,aAAgBA,MAMrEyxC,EAAMx7G,EAAO,SAASA,EAAOkK,GAC3BnM,EAASmM,CACX,CAAC,EACuB,SAAVnM,GAAyB4nE,EAAe91C,KAAK7vB,EAAOjC,CAAM,EAC1E,CASA,SAASw+G,GAAiBryD,GACxB,OAAOsyD,GAActyD,EACvB,CAoBA,SAAS0wD,GAAY56G,GACnB,OAAOA,GAAyB,UAAhB,OAAOA,GAA4C,UAAvB,OAAOA,EAAMzE,QACvDiU,EAASqgB,KAAK7vB,CAAK,GAAK80G,IAAa,EACzC,CAmBA,IAAI38E,EAAUo/E,GAAiB,SAASv3G,GACtC,OAAOA,GAAyB,UAAhB,OAAOA,GAA4C,UAAvB,OAAOA,EAAMzE,QACvDiU,EAASqgB,KAAK7vB,CAAK,GAAK+0G,IAAc,EAC1C,EAoCIp6G,EAAQ+8G,EAAwB,SAAS7yC,GAC3C,OAAK9L,EAAS8L,CAAM,EAGb6yC,EAAW7yC,CAAM,EAFf,EAGX,EA9Be,SAASA,GACtB,IAAIn3C,EAAOg8C,EAAW7E,EAAQ9mE,EAAS,GACvC,GAAK2rE,GACC+rC,GAAY,OAAO5wC,GACvB,IAAKn3C,KAASg8C,EACR/D,EAAe91C,KAAK65C,EAAUh8C,CAAK,GACrC3vB,EAAO2F,KAAKgqB,CAAK,EAGvB,OAAO3vB,CACT,EA8BIo+G,GAAc,CAChB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,OACP,EAGIK,GAAgB77B,GAAOw7B,EAAW,EAGlCM,GAAgBthH,EAAO,IAAMR,EAAK6hH,EAAa,EAAEvuG,KAAK,GAAG,EAAI,IAAK,GAAG,EACrEyuG,GAAkBvhH,EAAO,IAAMR,EAAKwhH,EAAW,EAAEluG,KAAK,EAAE,EAAI,IAAK,GAAG,EAkCpEorG,GAAS,SAASx0C,EAAQ3qD,EAAQyiG,GACpC,IAAIjvF,EAAOg8C,EAAmB3rE,EAAR8mE,EACtB,GADsBA,EACtB,CACA,IAIM97B,EAJF4iC,EAAO1iC,UACP2zE,EAAY,EACZC,EAA6B,UAAhB,OAAOF,EAAoB,EAAIhxC,EAAKpwE,OAMrD,IALiB,EAAbshH,GAAiD,YAA/B,OAAOlxC,EAAKkxC,EAAa,GACzC9zE,EAAWywE,EAAmB7tC,EAAK,EAAEkxC,EAAa,GAAIlxC,EAAKkxC,CAAU,IAAK,CAAC,EACzD,EAAbA,GAAiD,YAA/B,OAAOlxC,EAAKkxC,EAAa,KACpD9zE,EAAW4iC,EAAK,EAAEkxC,IAEb,EAAED,EAAYC,GAEnB,IADAnzC,EAAWiC,EAAKixC,KACAnH,GAAY,OAAO/rC,GAKnC,IAJA,IAAIozC,EAAW,CAAC,EACZC,EAAWtH,GAAY,OAAO/rC,IAAa/uE,EAAK+uE,CAAQ,EACxDnuE,EAASwhH,EAAWA,EAASxhH,OAAS,EAEnC,EAAEuhH,EAAWvhH,GAElBwC,EADA2vB,EAAQqvF,EAASD,IACD/zE,EAAWA,EAAShrC,EAAO2vB,GAAQg8C,EAASh8C,EAAM,EAAIg8C,EAASh8C,EAlBvD,CAsB5B,OAAO3vB,CACT,EA0Je,SAAXg5G,GAAoBlyC,EAAQ3qD,EAAQyiG,GACtC,IAAIjvF,EAAOg8C,EAAmB3rE,EAAR8mE,EACtB,GADsBA,EAKtB,IAHA,IAAI8G,EAAO1iC,UACP2zE,EAAY,EACZC,EAA6B,UAAhB,OAAOF,EAAoB,EAAIhxC,EAAKpwE,OAC9C,EAAEqhH,EAAYC,GAEnB,IADAnzC,EAAWiC,EAAKixC,KACAnH,GAAY,OAAO/rC,GAKnC,IAJA,IAAIozC,EAAW,CAAC,EACZC,EAAWtH,GAAY,OAAO/rC,IAAa/uE,EAAK+uE,CAAQ,EACxDnuE,EAASwhH,EAAWA,EAASxhH,OAAS,EAEnC,EAAEuhH,EAAWvhH,GAEU,SAAjBwC,EADX2vB,EAAQqvF,EAASD,MACwB/+G,EAAO2vB,GAASg8C,EAASh8C,IAItE,OAAO3vB,CACT,CA2IA,IAAIy9G,EAAQ,SAASze,EAAYh0D,EAAUyvE,GACzC,IAAI9qF,EAAOg8C,EAAWqzB,EAAYh/F,EAAS2rE,EAC3C,GAAKA,GACA+rC,GAAY,OAAO/rC,GAEtB,IAAKh8C,KADPqb,EAAWA,GAA8B,SAAXyvE,EAAyBzvE,EAAWywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,EACzF9uC,EACZ,GAAqD,KAAjD3gC,EAAS2gC,EAASh8C,GAAQA,EAAOqvE,CAAU,EAAa,OAAOh/F,EAEvE,OAAOA,CACT,EAoEA,IAAIu7G,EAAS,SAASvc,EAAYh0D,EAAUyvE,GAC1C,IAAI9qF,EAAOg8C,EAAWqzB,EAAYh/F,EAAS2rE,EAC3C,GAAKA,GACA+rC,GAAY,OAAO/rC,GAAxB,CACA3gC,EAAWA,GAA8B,SAAXyvE,EAAyBzvE,EAAWywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,EAKvG,IAJA,IAAIsE,EAAW,CAAC,EACZC,EAAWtH,GAAY,OAAO/rC,IAAa/uE,EAAK+uE,CAAQ,EACxDnuE,EAASwhH,EAAWA,EAASxhH,OAAS,EAEnC,EAAEuhH,EAAWvhH,GAElB,GAAqD,KAAjDwtC,EAAS2gC,EADbh8C,EAAQqvF,EAASD,IACapvF,EAAOqvE,CAAU,EAAa,OAAOh/F,CARvB,CAUhD,OAAOA,CACT,EAoBA,SAASi/G,GAAYn4C,EAAQ97B,EAAUyvE,GACrC,IAAIruD,EAAQxvD,EAAKkqE,CAAM,EACnBtpE,EAAS4uD,EAAM5uD,OAGnB,IADAwtC,EAAWywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,EAC3Cj9G,CAAM,IAAI,CACf,IAAI2O,EAAMigD,EAAM5uD,GAChB,GAA2C,KAAvCwtC,EAAS87B,EAAO36D,GAAMA,EAAK26D,CAAM,EACnC,KAEJ,CACA,OAAOA,CACT,CAiBA,SAASo4C,EAAUp4C,GACjB,IAAI9mE,EAAS,GAMb,OALAy9G,EAAM32C,EAAQ,SAAS7kE,EAAOkK,GACxBu2C,EAAWzgD,CAAK,GAClBjC,EAAO2F,KAAKwG,CAAG,CAEnB,CAAC,EACMnM,EAAO4F,KAAK,CACrB,CAkCA,SAASg9E,GAAO9b,GAMd,IALA,IAAIn3C,EAAQ,CAAC,EACTy8B,EAAQxvD,EAAKkqE,CAAM,EACnBtpE,EAAS4uD,EAAM5uD,OACfwC,EAAS,GAEN,EAAE2vB,EAAQnyB,GAAQ,CACvB,IAAI2O,EAAMigD,EAAMz8B,GAChB3vB,EAAO8mE,EAAO36D,IAAQA,CACxB,CACA,OAAOnM,CACT,CAoLA,SAAS0iD,EAAWzgD,GAClB,MAAuB,YAAhB,OAAOA,CAChB,CAsBA,SAAS+4D,EAAS/4D,GAKhB,MAAO,EAAGA,IAASy1G,IAAY,OAAOz1G,GACxC,CAoEA,SAASmmB,GAASnmB,GAChB,MAAuB,UAAhB,OAAOA,GACZA,GAAyB,UAAhB,OAAOA,GAAqBwP,EAASqgB,KAAK7vB,CAAK,GAAKm1G,IAAe,EAChF,CA0BA,IAAIl1B,GAAiB5X,EAAqC,SAASroE,GACjE,IAGI6sE,EACAqwC,EAJJ,MAAK,EAACl9G,IAASwP,EAASqgB,KAAK7vB,CAAK,GAAKo1G,OAInC8H,EAAW7F,EADXxqC,EAAU7sE,EAAM6sE,OACW,IAAMqwC,EAAW70C,EAAewE,CAAO,IAAMxE,EAAe60C,CAAQ,GAG9Fl9G,GAASk9G,GAAY70C,EAAeroE,CAAK,GAAKk9G,EAC/CZ,GAAkBt8G,CAAK,EAC7B,EAVsCs8G,GA0CtC,SAASa,GAASn9G,GAChB,MAAuB,UAAhB,OAAOA,GACZA,GAAyB,UAAhB,OAAOA,GAAqBwP,EAASqgB,KAAK7vB,CAAK,GAAKs1G,IAAe,EAChF,CAsVA,SAAS3qF,GAAOk6C,GAMd,IALA,IAAIn3C,EAAQ,CAAC,EACTy8B,EAAQxvD,EAAKkqE,CAAM,EACnBtpE,EAAS4uD,EAAM5uD,OACfwC,EAASm6B,EAAM38B,CAAM,EAElB,EAAEmyB,EAAQnyB,GACfwC,EAAO2vB,GAASm3C,EAAO1a,EAAMz8B,IAE/B,OAAO3vB,CACT,CAiEA,SAAS2kF,GAASqa,EAAYhwE,EAAQ+oF,GACpC,IAAIpoF,EAAQ,CAAC,EACTjkB,EAAU8wG,GAAW,EACrBh/G,EAASwhG,EAAaA,EAAWxhG,OAAS,EAC1CwC,EAAS,GAcb,OAZA+3G,GAAaA,EAAY,EAAI6B,EAAU,EAAGp8G,EAASu6G,CAAS,EAAIA,IAAc,EAC1E39E,EAAQ4kE,CAAU,EACpBh/F,EAAkD,CAAC,EAA1C0L,EAAQszF,EAAYhwE,EAAQ+oF,CAAS,EACpB,UAAjB,OAAOv6G,EAChBwC,EAAmH,CAAC,GAA1Go/G,GAASpgB,CAAU,EAAIA,EAAWtzF,QAAQsjB,EAAQ+oF,CAAS,EAAIrsG,EAAQszF,EAAYhwE,EAAQ+oF,CAAS,GAE9GwD,EAAOvc,EAAY,SAAS/8F,GAC1B,GAAI,EAAE0tB,GAASooF,EACb,MAAO,EAAE/3G,EAASiC,IAAU+sB,EAEhC,CAAC,EAEIhvB,CACT,CAoCIq/G,EAAUvB,GAAiB,SAAS99G,EAAQiC,EAAOkK,GACpDy7D,EAAe91C,KAAK9xB,EAAQmM,CAAG,EAAInM,EAAOmM,EAAI,GAAKnM,EAAOmM,GAAO,CACpE,CAAC,EA2CD,SAASmzG,GAAMtgB,EAAYh0D,EAAUyvE,GACnC,IAAIz6G,EAAS,GAGT2vB,GAFJqb,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAEzC,CAAC,GACTj9G,EAASwhG,EAAaA,EAAWxhG,OAAS,EAE9C,GAAqB,UAAjB,OAAOA,EACT,KAAO,EAAEmyB,EAAQnyB,IACTwC,EAAS,CAAC,CAACgrC,EAASg0D,EAAWrvE,GAAQA,EAAOqvE,CAAU,UAKhEuc,EAAOvc,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GACxC,OAAQh/F,EAAS,CAAC,CAACgrC,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,CACtD,CAAC,EAEH,OAAOh/F,CACT,CA0CA,SAASsC,GAAO08F,EAAYh0D,EAAUyvE,GACpC,IAAIz6G,EAAS,GAGT2vB,GAFJqb,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAEzC,CAAC,GACTj9G,EAASwhG,EAAaA,EAAWxhG,OAAS,EAE9C,GAAqB,UAAjB,OAAOA,EACT,KAAO,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQ+8F,EAAWrvE,GACnBqb,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,GACnCh/F,EAAO2F,KAAK1D,CAAK,CAErB,MAEAs5G,EAAOvc,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GACpCh0D,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,GACnCh/F,EAAO2F,KAAK1D,CAAK,CAErB,CAAC,EAEH,OAAOjC,CACT,CA6CA,SAASsnB,GAAK03E,EAAYh0D,EAAUyvE,GAClCzvE,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAErD,IAWMz6G,EAXF2vB,EAAQ,CAAC,EACTnyB,EAASwhG,EAAaA,EAAWxhG,OAAS,EAE9C,GAAqB,UAAjB,OAAOA,EAeT,OANA+9G,EAAOvc,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GACxC,GAAIh0D,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,EAEnC,OADAh/F,EAASiC,EACF,EAEX,CAAC,EACMjC,EAdP,KAAO,EAAE2vB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQ+8F,EAAWrvE,GACvB,GAAIqb,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,EACnC,OAAO/8F,CAEX,CAWJ,CA4DA,SAASklB,EAAQ63E,EAAYh0D,EAAUyvE,GACrC,IAAI9qF,EAAQ,CAAC,EACTnyB,EAASwhG,EAAaA,EAAWxhG,OAAS,EAG9C,GADAwtC,EAAWA,GAA8B,SAAXyvE,EAAyBzvE,EAAWywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,EACpF,UAAjB,OAAOj9G,EACT,KAAO,EAAEmyB,EAAQnyB,GACwC,KAAnDwtC,EAASg0D,EAAWrvE,GAAQA,EAAOqvE,CAAU,SAKnDuc,EAAOvc,EAAYh0D,CAAQ,EAE7B,OAAOg0D,CACT,CAmBA,SAASugB,GAAavgB,EAAYh0D,EAAUyvE,GAC1C,IAAIj9G,EAASwhG,EAAaA,EAAWxhG,OAAS,EAE9C,GADAwtC,EAAWA,GAA8B,SAAXyvE,EAAyBzvE,EAAWywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,EACpF,UAAjB,OAAOj9G,EACT,KAAOA,CAAM,IAC8C,KAArDwtC,EAASg0D,EAAWxhG,GAASA,EAAQwhG,CAAU,QAIhD,CACL,IAAI5yC,EAAQxvD,EAAKoiG,CAAU,EAC3BxhG,EAAS4uD,EAAM5uD,OACf+9G,EAAOvc,EAAY,SAAS/8F,EAAOkK,EAAK6yF,GAEtC,OADA7yF,EAAMigD,EAAQA,EAAM,EAAE5uD,GAAU,EAAEA,EAC3BwtC,EAASg0D,EAAW7yF,GAAMA,EAAK6yF,CAAU,CAClD,CAAC,CACH,CACA,OAAOA,CACT,CAqCI1vD,EAAUwuE,GAAiB,SAAS99G,EAAQiC,EAAOkK,IACpDy7D,EAAe91C,KAAK9xB,EAAQmM,CAAG,EAAInM,EAAOmM,GAAOnM,EAAOmM,GAAO,IAAIxG,KAAK1D,CAAK,CAChF,CAAC,EAyCGu9G,EAAU1B,GAAiB,SAAS99G,EAAQiC,EAAOkK,GACrDnM,EAAOmM,GAAOlK,CAChB,CAAC,EA4ED,SAAS/F,GAAI8iG,EAAYh0D,EAAUyvE,GACjC,IAAI9qF,EAAQ,CAAC,EACTnyB,EAASwhG,EAAaA,EAAWxhG,OAAS,EAG9C,GADAwtC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAChC,UAAjB,OAAOj9G,EAET,IADA,IAAIwC,EAASm6B,EAAM38B,CAAM,EAClB,EAAEmyB,EAAQnyB,GACfwC,EAAO2vB,GAASqb,EAASg0D,EAAWrvE,GAAQA,EAAOqvE,CAAU,OAG/Dh/F,EAAS,GACTu7G,EAAOvc,EAAY,SAAS/8F,EAAOkK,EAAK6yF,GACtCh/F,EAAO,EAAE2vB,GAASqb,EAAS/oC,EAAOkK,EAAK6yF,CAAU,CACnD,CAAC,EAEH,OAAOh/F,CACT,CA0CA,SAASmlB,GAAI65E,EAAYh0D,EAAUyvE,GACjC,IAAI1Y,EAAW,KACX/hG,EAAS+hG,EAOb,GAAgB,OAFd/2D,EADqB,YAAnB,OAAOA,GAA0ByvE,GAAWA,EAAQzvE,KAAcg0D,EACzD,KAETh0D,IAAoB5Q,EAAQ4kE,CAAU,EAIxC,IAHA,IAAIrvE,EAAQ,CAAC,EACTnyB,EAASwhG,EAAWxhG,OAEjB,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQ+8F,EAAWrvE,GACX3vB,EAARiC,IACFjC,EAASiC,EAEb,MAEA+oC,EAAwB,MAAZA,GAAoBo0E,GAASpgB,CAAU,EAC/CmZ,GACA8B,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAE9CtzF,EAAQ63E,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GACrCx+F,EAAUwqC,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,EACjC+C,EAAVvhG,IACFuhG,EAAWvhG,EACXR,EAASiC,EAEb,CAAC,EAEH,OAAOjC,CACT,CAiGA,IAAIy/G,GAAQvjH,GAgCZ,SAASiM,GAAO62F,EAAYh0D,EAAUrH,EAAa82E,GACjD,GAAKzb,EAAL,CACA,IAAI0gB,EAAUx0E,UAAU1tC,OAAS,EAG7BmyB,GAFJqb,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAEzC,CAAC,GACTj9G,EAASwhG,EAAWxhG,OAExB,GAAqB,UAAjB,OAAOA,EAIT,IAHIkiH,IACF/7E,EAAcq7D,EAAW,EAAErvE,IAEtB,EAAEA,EAAQnyB,GACfmmC,EAAcqH,EAASrH,EAAaq7D,EAAWrvE,GAAQA,EAAOqvE,CAAU,OAG1Euc,EAAOvc,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GACxCr7D,EAAc+7E,GACTA,EAAU,GAAOz9G,GAClB+oC,EAASrH,EAAa1hC,EAAO0tB,EAAOqvE,CAAU,CACpD,CAAC,CAnBgC,CAqBnC,OAAOr7D,CACT,CAqBA,SAASg8E,GAAY3gB,EAAYh0D,EAAUrH,EAAa82E,GACtD,IAAIiF,EAAUx0E,UAAU1tC,OAAS,EAOjC,OANAwtC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EACrD8E,GAAavgB,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GAC9Cr7D,EAAc+7E,GACTA,EAAU,GAAOz9G,GAClB+oC,EAASrH,EAAa1hC,EAAO0tB,EAAOqvE,CAAU,CACpD,CAAC,EACMr7D,CACT,CA4FA,SAASi8E,GAAQ5gB,GACf,IAAIrvE,EAAQ,CAAC,EACTnyB,EAASwhG,EAAaA,EAAWxhG,OAAS,EAC1CwC,EAASm6B,EAAuB,UAAjB,OAAO38B,EAAqBA,EAAS,CAAC,EAOzD,OALA2pB,EAAQ63E,EAAY,SAAS/8F,GAC3B,IAAIsvE,EAAOmsC,GAAW,EAAG,EAAE/tF,CAAK,EAChC3vB,EAAO2vB,GAAS3vB,EAAOuxE,GACvBvxE,EAAOuxE,GAAQtvE,CACjB,CAAC,EACMjC,CACT,CAqEA,SAAS0nB,GAAKs3E,EAAYh0D,EAAUyvE,GAElCzvE,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EADrD,IAAIz6G,EAGA2vB,EAAQ,CAAC,EACTnyB,EAASwhG,EAAaA,EAAWxhG,OAAS,EAE9C,GAAqB,UAAjB,OAAOA,EACT,KAAO,EAAEmyB,EAAQnyB,GACX,EAACwC,EAASgrC,EAASg0D,EAAWrvE,GAAQA,EAAOqvE,CAAU,UAK7Duc,EAAOvc,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GACxC,MAAO,EAAEh/F,EAASgrC,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,EACrD,CAAC,EAEH,MAAO,CAAC,CAACh/F,CACX,CAiII6/G,EAAQv9G,GAgNZ,SAASsvE,GAAMtlB,EAAOthB,EAAUyvE,GAC9B,IAAI1zD,EAAI,EACJvpD,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAEpC,GAAuB,UAAnB,OAAOwtC,GAAoC,MAAZA,EAAkB,CACnD,IAAIrb,EAAQ,CAAC,EAEb,IADAqb,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9C,EAAE9qF,EAAQnyB,GAAUwtC,EAASshB,EAAM38B,GAAQA,EAAO28B,CAAK,GAC5DvF,CAAC,EAEL,MAEE,GAAS,OADTA,EAAI/b,IACayvE,EACf,OAAOnuD,EAAQA,EAAM,GAAK78C,GAG9B,OAAOyM,GAAMowC,EAAO,EAAGutD,EAAUD,EAAU,EAAG7yD,CAAC,EAAGvpD,CAAM,CAAC,CAC3D,CAgFA,SAASkO,GAAQ4gD,EAAOrqD,EAAO81G,GAC7B,GAAwB,UAApB,OAAOA,EAAuB,CAChC,IAAIv6G,EAAS8uD,EAAQA,EAAM9uD,OAAS,EACpCu6G,EAAaA,EAAY,EAAI6B,EAAU,EAAGp8G,EAASu6G,CAAS,EAAIA,GAAa,CAC/E,MAAO,GAAIA,EAET,OAAOzrD,EADH38B,EAAQmwF,GAAYxzD,EAAOrqD,CAAK,KACZA,EAAQ0tB,EAAQ,CAAC,EAE3C,OAAOmoF,GAAYxrD,EAAOrqD,EAAO81G,CAAS,CAC5C,CA+aA,SAASgI,GAAKzzD,EAAOthB,EAAUyvE,GAC7B,GAAuB,UAAnB,OAAOzvE,GAAoC,MAAZA,EAAkB,CACnD,IAAI+b,EAAI,EACJp3B,EAAQ,CAAC,EACTnyB,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAGpC,IADAwtC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9C,EAAE9qF,EAAQnyB,GAAUwtC,EAASshB,EAAM38B,GAAQA,EAAO28B,CAAK,GAC5DvF,CAAC,EAEL,MACEA,EAAiB,MAAZ/b,GAAoByvE,EAAW,EAAIb,EAAU,EAAG5uE,CAAQ,EAE/D,OAAO9uB,GAAMowC,EAAOvF,CAAC,CACvB,CAkDA,SAAS+4D,GAAYxzD,EAAOrqD,EAAO+oC,EAAUyvE,GAC3C,IAAIuF,EAAM,EACNv8B,EAAOn3B,EAAQA,EAAM9uD,OAASwiH,EAMlC,IAFA/9G,GADA+oC,EAAWA,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAAIkB,IACnD15G,CAAK,EAEf+9G,EAAMv8B,GAAM,CACjB,IAAI+0B,EAAOwH,EAAMv8B,IAAU,EAC1Bz4C,EAASshB,EAAMksD,EAAI,EAAIv2G,EACpB+9G,EAAY,EAANxH,EACN/0B,EAAO+0B,CACb,CACA,OAAOwH,CACT,CAgEA,SAASv7D,GAAK6H,EAAOsxD,EAAU5yE,EAAUyvE,GAUvC,MARuB,WAAnB,OAAOmD,GAAqC,MAAZA,IAClCnD,EAAUzvE,EACVA,EAA+B,YAAnB,OAAO4yE,GAA0BnD,GAAWA,EAAQmD,KAActxD,EAAS,KAAOsxD,EAC9FA,EAAW,IAKND,GAASrxD,EAAOsxD,EAFrB5yE,EADc,MAAZA,EACSivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAEtBzvE,CAAQ,CAC3C,CAqEA,SAASi1E,KAMP,IALA,IAAI3zD,EAA2B,EAAnBphB,UAAU1tC,OAAa0tC,UAAYA,UAAU,GACrDvb,EAAQ,CAAC,EACTnyB,EAAS8uD,EAAQnnC,GAAIs6F,GAAMnzD,EAAO,QAAQ,CAAC,EAAI,EAC/CtsD,EAASm6B,EAAM38B,EAAS,EAAI,EAAIA,CAAM,EAEnC,EAAEmyB,EAAQnyB,GACfwC,EAAO2vB,GAAS8vF,GAAMnzD,EAAO38B,CAAK,EAEpC,OAAO3vB,CACT,CAoBA,SAASkgH,GAAUtjH,EAAMgwB,GACvB,IAAI+C,EAAQ,CAAC,EACTnyB,EAASZ,EAAOA,EAAKY,OAAS,EAC9BwC,EAAS,GAKb,IAHK4sB,GAAUpvB,IAAW48B,EAAQx9B,EAAK,EAAE,IACvCgwB,EAAS,IAEJ,EAAE+C,EAAQnyB,GAAQ,CACvB,IAAI2O,EAAMvP,EAAK+yB,GACX/C,EACF5sB,EAAOmM,GAAOygB,EAAO+C,GACZxjB,IACTnM,EAAOmM,EAAI,IAAMA,EAAI,GAEzB,CACA,OAAOnM,CACT,CA6DA,SAASshD,GAAKywC,EAAM0oB,GAClB,OAA0B,EAAnBvvE,UAAU1tC,OACbwgH,EAAcjsB,EAAM,GAAI71E,GAAMgvB,UAAW,CAAC,EAAG,KAAMuvE,CAAO,EAC1DuD,EAAcjsB,EAAM,EAAG,KAAM,KAAM0oB,CAAO,CAChD,CAwMA,SAASlpF,GAASwgE,EAAM9pC,EAAM9K,GAC5B,IAAIywB,EACAuyC,EACAngH,EACAogH,EACA3F,EACA4F,EACAC,EAUEC,EATFC,EAAa,EACbC,EAAU,GACVC,EAAW,GAEf,GAAKh+D,EAAWqvC,CAAI,EA8CpB,OA3CA9pC,EAAO2xD,EAAU,EAAG3xD,CAAI,GAAK,EACb,KAAZ9K,EAEFujE,EAAW,EADPH,EAAU,IAELvlD,EAAS7d,CAAO,IACzBojE,EAAUpjE,EAAQojE,QAClBE,EAAU,YAAatjE,IAAYy8D,EAAU3xD,EAAM9K,EAAQsjE,OAAO,GAAK,GACvEC,EAAW,aAAcvjE,EAAUA,EAAQujE,SAAWA,GAoCjD,WAML,IACMC,EAKAhtB,EACAitB,EA0BN,OAtCAhzC,EAAO1iC,UACPk1E,EAAQ1gH,EAAI,EACZ+6G,EAAUn2G,KACVg8G,EAAeI,IAAaL,GAAa,CAACE,GAE1B,KAAZE,EACEE,EAAcJ,GAAW,CAACF,GAM1BO,GADAjtB,EAAY8sB,GAAWL,GAFzBI,EADGL,GAAiBI,EAGaC,EAFpBJ,MAGa,IAGtBD,KACa3uF,EAAa2uF,CAAY,EAE1CK,EAAaJ,EACbpgH,EAAS+xF,EAAK9mD,MAAMwvE,EAAS7sC,CAAI,GAEzBuyC,KACOn9F,EAAW69F,EAAYltB,CAAS,EAG/CitB,GAAYP,EACdA,EAAY7uF,EAAa6uF,CAAS,EAE1BA,GAAap4D,IAASw4D,IAC9BJ,EAAYr9F,EAAW89F,EAAS74D,CAAI,GAElC04D,IACFC,EAAW,GACX5gH,EAAS+xF,EAAK9mD,MAAMwvE,EAAS7sC,CAAI,GAE/BgzC,IAAaP,GAAcF,IAC7BvyC,EAAO6sC,EAAU,MAEZz6G,CACT,EArFE,MAAM,IAAIupE,EAWE,SAAVu3C,IACF,IAKMF,EALFjtB,EAAY1rC,GAAQvoD,EAAI,EAAI0gH,GAC5BzsB,GAAa,GACXwsB,GACF3uF,EAAa2uF,CAAY,EAEvBS,EAAWN,EACfH,EAAeE,EAAYC,EAAe7wG,GACtCmxG,IACFJ,EAAa9gH,EAAI,EACjBM,EAAS+xF,EAAK9mD,MAAMwvE,EAAS7sC,CAAI,EAC5ByyC,GAAcF,IACjBvyC,EAAO6sC,EAAU,QAIrB4F,EAAYr9F,EAAW89F,EAASntB,CAAS,CAE7C,CAEiB,SAAbktB,IACER,GACF7uF,EAAa6uF,CAAS,EAExBF,EAAeE,EAAYC,EAAe7wG,GACtCixG,IAAaD,IAAYx4D,IAC3Bu4D,EAAa9gH,EAAI,EACjBM,EAAS+xF,EAAK9mD,MAAMwvE,EAAS7sC,CAAI,EAC5ByyC,IAAcF,IACjBvyC,EAAO6sC,EAAU,KAGvB,CA2CF,CAqYA,SAASkB,GAAS15G,GAChB,OAAOA,CACT,CA8BA,SAAS8+G,GAAMj6C,EAAQ3qD,EAAQghC,GAC7B,IAAIs1B,EAAQ,GACRuuC,EAAc7kG,GAAU+iG,EAAU/iG,CAAM,EAgBxC6vD,GAdC7vD,IAAYghC,GAAY6jE,EAAYxjH,UACxB,MAAX2/C,IACFA,EAAUhhC,GAEZ6vD,EAAOkuC,EACP/9F,EAAS2qD,EACTA,EAASmzC,EACT+G,EAAc9B,EAAU/iG,CAAM,GAEhB,KAAZghC,EACFs1B,EAAQ,GACCzX,EAAS7d,CAAO,GAAK,UAAWA,IACzCs1B,EAAQt1B,EAAQs1B,OAEP3L,GACPm6C,EAASv+D,EAAWspB,CAAI,EAE5B7kD,EAAQ65F,EAAa,SAAS33C,GAC5B,IAAI0oB,EAAOjrB,EAAOuC,GAAcltD,EAAOktD,GACnC43C,IACFj1C,EAAKn6C,UAAUw3C,GAAc,WAC3B,IAAI8wC,EAAW71G,KAAK81G,UAChBn4G,EAAQqC,KAAK+1G,YACbzsC,EAAO,CAAC3rE,GAGRjC,GADJ2F,EAAKslC,MAAM2iC,EAAM1iC,SAAS,EACb6mD,EAAK9mD,MAAM67B,EAAQ8G,CAAI,GACpC,GAAI6E,GAAS0nC,EAAU,CACrB,GAAIl4G,IAAUjC,GAAUg7D,EAASh7D,CAAM,EACrC,OAAOsE,MAETtE,EAAS,IAAIgsE,EAAKhsE,CAAM,GACjBo6G,UAAYD,CACrB,CACA,OAAOn6G,CACT,EAEJ,CAAC,CACH,CA+BA,SAASmrC,MAiBT,IA4qBMhvB,GA5qBFzc,EAAM45G,EAAS55G,EAAMC,EAAKD,GAAG,GAAKA,GAAO,WAC3C,OAAO,IAAIC,GAAO6zB,QAAQ,CAC5B,EAqBIhM,GAAgD,GAArCsyF,GAAev0B,GAAa,IAAI,EAASu0B,GAAiB,SAAS73G,EAAOi/G,GAEvF,OAAOpH,GAAesF,GAASn9G,CAAK,EAAIA,EAAM0V,QAAQ8+F,GAAyB,EAAE,EAAIx0G,EAAOi/G,GAAS,CAAC,CACxG,EA0BA,SAASC,GAASh1G,GAChB,OAAO,SAAS26D,GACd,OAAOA,EAAO36D,EAChB,CACF,CAudA,SAASi1G,KACP,OAAO98G,KAAK+1G,WACd,CA4OA,OAvOAJ,EAAO7wD,MAr2CP,SAAerC,EAAGgrC,GAChB,GAAKrvC,EAAWqvC,CAAI,EAGpB,OAAO,WACL,GAAI,EAAEhrC,EAAI,EACR,OAAOgrC,EAAK9mD,MAAM3mC,KAAM4mC,SAAS,CAErC,EANE,MAAM,IAAIq+B,CAOd,EA61CA0wC,EAAOqB,OAASA,GAChBrB,EAAOoH,GA7/GP,SAAYriB,GAOV,IANA,IAAIpxB,EAAO1iC,UACPvb,EAAQ,CAAC,EACTy8B,EAAQswD,EAAY9uC,EAAM,GAAM,GAAO,CAAC,EACxCpwE,EAAUowE,EAAK,IAAMA,EAAK,GAAGA,EAAK,MAAQoxB,EAAc,EAAI5yC,EAAM5uD,OAClEwC,EAASm6B,EAAM38B,CAAM,EAEnB,EAAEmyB,EAAQnyB,GACdwC,EAAO2vB,GAASqvE,EAAW5yC,EAAMz8B,IAEnC,OAAO3vB,CACT,EAm/GAi6G,EAAO34D,KAAOA,GACd24D,EAAOqH,QA1yCP,SAAiBx6C,GAKf,IAJA,IAAIy6C,EAA2B,EAAnBr2E,UAAU1tC,OAAak/G,EAAYxxE,UAAW,GAAM,GAAO,CAAC,EAAIg0E,EAAUp4C,CAAM,EACxFn3C,EAAQ,CAAC,EACTnyB,EAAS+jH,EAAM/jH,OAEZ,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAI2O,EAAMo1G,EAAM5xF,GAChBm3C,EAAO36D,GAAO6xG,EAAcl3C,EAAO36D,GAAM,EAAG,KAAM,KAAM26D,CAAM,CAChE,CACA,OAAOA,CACT,EAiyCAmzC,EAAOuH,QA7vCP,SAAiB16C,EAAQ36D,GACvB,OAA0B,EAAnB++B,UAAU1tC,OACbwgH,EAAc7xG,EAAK,GAAI+P,GAAMgvB,UAAW,CAAC,EAAG,KAAM47B,CAAM,EACxDk3C,EAAc7xG,EAAK,EAAG,KAAM,KAAM26D,CAAM,CAC9C,EA0vCAmzC,EAAOxnC,MAvGP,SAAexwE,GAGb,OAFAA,EAAQ,IAAIi4G,EAAcj4G,CAAK,GACzBm4G,UAAY,GACXn4G,CACT,EAoGAg4G,EAAOwH,QA72EP,SAAiBn1D,GAKf,IAJA,IAAI38B,EAAQ,CAAC,EACTnyB,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAChCwC,EAAS,GAEN,EAAE2vB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQqqD,EAAM38B,GACd1tB,GACFjC,EAAO2F,KAAK1D,CAAK,CAErB,CACA,OAAOjC,CACT,EAk2EAi6G,EAAOyH,QA5tCP,WAIE,IAHA,IAAIH,EAAQr2E,UACR1tC,EAAS+jH,EAAM/jH,OAEZA,CAAM,IACX,GAAI,CAACklD,EAAW6+D,EAAM/jH,EAAO,EAC3B,MAAM,IAAI+rE,EAGd,OAAO,WAIL,IAHA,IAAIqE,EAAO1iC,UACP1tC,EAAS+jH,EAAM/jH,OAEZA,CAAM,IACXowE,EAAO,CAAC2zC,EAAM/jH,GAAQytC,MAAM3mC,KAAMspE,CAAI,GAExC,OAAOA,EAAK,EACd,CACF,EA2sCAqsC,EAAOt6C,SAjwBP,SAAkB19D,GAChB,OAAO,WACL,OAAOA,CACT,CACF,EA8vBAg4G,EAAOoF,QAAUA,EACjBpF,EAAO19D,OAxlJP,SAAgB1qB,EAAWu1E,GAEzB,OADIpnG,EAAS46G,EAAW/oF,CAAS,EAC1Bu1E,EAAakU,GAAOt7G,EAAQonG,CAAU,EAAIpnG,CACnD,EAslJAi6G,EAAO8D,eA/tBP,SAAwBhsB,EAAM0oB,EAASiB,GACrC,IAQItvD,EACAjgD,EACA3I,EAVAwtB,EAAO,OAAO+gE,EAClB,OAAY,MAARA,GAAwB,YAAR/gE,EACXyqF,EAAmB1pB,EAAM0oB,EAASiB,CAAQ,EAGvC,UAAR1qF,EACKmwF,GAASpvB,CAAI,GAElB3lC,EAAQxvD,EAAKm1F,CAAI,EACjB5lF,EAAMigD,EAAM,GACZ5oD,EAAIuuF,EAAK5lF,GAGO,GAAhBigD,EAAM5uD,QAAegG,GAAMA,GAAMw3D,EAASx3D,CAAC,EAQxC,SAASsjE,GAId,IAHA,IAAItpE,EAAS4uD,EAAM5uD,OACfwC,EAAS,GAENxC,CAAM,KACLwC,EAASi9G,EAAYn2C,EAAO1a,EAAM5uD,IAAUu0F,EAAK3lC,EAAM5uD,IAAU,KAAM,EAAI,KAInF,OAAOwC,CACT,EAfS,SAAS8mE,GAEd,OADI3oC,EAAI2oC,EAAO36D,GACR3I,IAAM26B,IAAY,IAAN36B,GAAY,EAAIA,GAAK,EAAI26B,EAC9C,EAaJ,EA+rBA87E,EAAO0H,MAjrCP,SAAe5vB,EAAMmqB,GAEnB,OAAO8B,EAAcjsB,EAAM,EAAG,KAAM,KAAM,KAD1CmqB,EAAwB,UAAhB,OAAOA,EAAoBA,EAAS,CAACA,GAASnqB,EAAKv0F,MACN,CACvD,EA+qCAy8G,EAAO1oF,SAAWA,GAClB0oF,EAAOjB,SAAWA,GAClBiB,EAAOh5F,MAphCP,SAAe8wE,GACb,IAGInkB,EAHJ,GAAKlrB,EAAWqvC,CAAI,EAIpB,OADInkB,EAAO1xD,GAAMgvB,UAAW,CAAC,EACtBloB,EAAW,WAAa+uE,EAAK9mD,MAAMx7B,GAAWm+D,CAAI,CAAG,EAAG,CAAC,EAH9D,MAAM,IAAIrE,CAId,EA+gCA0wC,EAAOvQ,MA7/BP,SAAe3X,EAAM9pC,GACnB,IAGI2lB,EAHJ,GAAKlrB,EAAWqvC,CAAI,EAIpB,OADInkB,EAAO1xD,GAAMgvB,UAAW,CAAC,EACtBloB,EAAW,WAAa+uE,EAAK9mD,MAAMx7B,GAAWm+D,CAAI,CAAG,EAAG3lB,CAAI,EAHjE,MAAM,IAAIshB,CAId,EAw/BA0wC,EAAO2H,WA31EP,SAAoBt1D,GAClB,OAAOiwD,EAAejwD,EAAOowD,EAAYxxE,UAAW,GAAM,GAAM,CAAC,CAAC,CACpE,EA01EA+uE,EAAO33G,OAASA,GAChB23G,EAAO4H,QAhoEP,SAAiBv1D,EAAOqwD,EAAW3xE,EAAUyvE,GAU3C,MARwB,WAApB,OAAOkC,GAAuC,MAAbA,IACnClC,EAAUzvE,EACVA,EAAgC,YAApB,OAAO2xE,GAA2BlC,GAAWA,EAAQkC,KAAerwD,EAAS,KAAOqwD,EAChGA,EAAY,IAKPD,EAFLpwD,EADc,MAAZthB,EACM9uC,GAAIowD,EAAOthB,EAAUyvE,CAAO,EAEnBnuD,EAAOqwD,CAAS,CACrC,EAsnEA1C,EAAO9yF,QAAUA,EACjB8yF,EAAOsF,aAAeA,GACtBtF,EAAOwD,MAAQA,EACfxD,EAAO6H,WAt4IP,SAAoBh7C,EAAQ97B,EAAUyvE,GACpC,IAAIsH,EAAQ,GAMRvkH,GAJJigH,EAAM32C,EAAQ,SAAS7kE,EAAOkK,GAC5B41G,EAAMp8G,KAAKwG,EAAKlK,CAAK,CACvB,CAAC,EAEY8/G,EAAMvkH,QAEnB,IADAwtC,EAAWywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,EAC3Cj9G,CAAM,IAC8C,KAArDwtC,EAAS+2E,EAAMvkH,CAAM,IAAKukH,EAAMvkH,GAASspE,CAAM,IAIrD,OAAOA,CACT,EAw3IAmzC,EAAOsB,OAASA,EAChBtB,EAAOgF,YAAcA,GACrBhF,EAAOiF,UAAYA,EACnBjF,EAAO3qE,QAAUA,EACjB2qE,EAAOuF,QAAUA,EACjBvF,EAAOnjB,QAxiEP,SAAiBxqC,EAAOthB,EAAUyvE,GAChC,IAAI1zD,EAAI,EACJvpD,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAEpC,GAAuB,UAAnB,OAAOwtC,GAAoC,MAAZA,EAAkB,CACnD,IAAIrb,EAAQnyB,EAEZ,IADAwtC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9C9qF,CAAK,IAAMqb,EAASshB,EAAM38B,GAAQA,EAAO28B,CAAK,GACnDvF,CAAC,EAEL,MACEA,EAAiB,MAAZ/b,GAAoByvE,EAAW,EAAIzvE,GAAY+b,EAEtD,OAAO7qC,GAAMowC,EAAO,EAAGutD,EAAUD,EAAU,EAAGp8G,EAASupD,CAAC,EAAGvpD,CAAM,CAAC,CACpE,EA2hEAy8G,EAAO+H,aA3gEP,WASE,IARA,IAAIp0C,EAAO,GACPixC,EAAY,CAAC,EACbC,EAAa5zE,UAAU1tC,OACvBykH,EAAStJ,GAAS,EAClBjtG,EAAU8wG,GAAW,EACrB0F,EAAex2G,IAAYosG,GAC3B+F,EAAOlF,GAAS,EAEb,EAAEkG,EAAYC,IAEf1kF,EAAQn4B,EADAipC,UAAU2zE,EACL,GAAKhC,GAAY56G,CAAK,KACrC2rE,EAAKjoE,KAAK1D,CAAK,EACfggH,EAAOt8G,KAAKu8G,GAAgBjgH,EAAMzE,QAAUw4G,IAC1CjxB,GAAY85B,EAAYjxC,EAAKixC,GAAahB,CAAI,CAAC,GAGrD,IAAIvxD,EAAQshB,EAAK,GACbj+C,EAAQ,CAAC,EACTnyB,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAChCwC,EAAS,GAEbmiH,EACA,KAAO,EAAExyF,EAAQnyB,GAAQ,CACvB,IAAIkqF,EAAQu6B,EAAO,GACnBhgH,EAAQqqD,EAAM38B,GAEd,IAAK+3D,EAAQswB,GAAatwB,EAAOzlF,CAAK,EAAIyJ,EAAQmyG,EAAM57G,CAAK,GAAK,EAAG,CAGnE,IAFA48G,EAAYC,GACXp3B,GAASm2B,GAAMl4G,KAAK1D,CAAK,EACnB,EAAE48G,GAEP,KADAn3B,EAAQu6B,EAAOpD,IACF7G,GAAatwB,EAAOzlF,CAAK,EAAIyJ,EAAQkiE,EAAKixC,GAAY58G,CAAK,GAAK,EAC3E,SAASkgH,EAGbniH,EAAO2F,KAAK1D,CAAK,CACnB,CACF,CACA,KAAO68G,CAAU,KACfp3B,EAAQu6B,EAAOnD,KAEbjG,GAAcnxB,CAAK,EAKvB,OAFAkxB,GAAaqJ,CAAM,EACnBrJ,GAAaiF,CAAI,EACV79G,CACT,EA49DAi6G,EAAOr3B,OAASA,GAChBq3B,EAAO33C,OA/hGP,SAAgB08B,EAAY31B,GAC1B,IAAIuE,EAAO1xD,GAAMgvB,UAAW,CAAC,EACzBvb,EAAQ,CAAC,EACTsxF,EAA8B,YAArB,OAAO53C,EAChB7rE,EAASwhG,EAAaA,EAAWxhG,OAAS,EAC1CwC,EAASm6B,EAAuB,UAAjB,OAAO38B,EAAqBA,EAAS,CAAC,EAKzD,OAHA2pB,EAAQ63E,EAAY,SAAS/8F,GAC3BjC,EAAO,EAAE2vB,IAAUsxF,EAAS53C,EAAapnE,EAAMonE,IAAap+B,MAAMhpC,EAAO2rE,CAAI,CAC/E,CAAC,EACM5tE,CACT,EAqhGAi6G,EAAOr9G,KAAOA,EACdq9G,EAAO/9G,IAAMA,GACb+9G,EAAOmI,UAj2HP,SAAmBt7C,EAAQ97B,EAAUyvE,GACnC,IAAIz6G,EAAS,GAMb,OALAgrC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAErDc,EAAOz0C,EAAQ,SAAS7kE,EAAOkK,EAAK26D,GAClC9mE,EAAOmM,GAAO6+B,EAAS/oC,EAAOkK,EAAK26D,CAAM,CAC3C,CAAC,EACM9mE,CACT,EA01HAi6G,EAAO90F,IAAMA,GACb80F,EAAOoI,QAr+BP,SAAiBtwB,EAAM5e,GACrB,IAGI1U,EAHJ,GAAK/b,EAAWqvC,CAAI,EAYpB,OATItzB,EAAW,WACb,IAAIipB,EAAQjpB,EAASipB,MACjBv7E,EAAMgnE,EAAWA,EAASloC,MAAM3mC,KAAM4mC,SAAS,EAAI6qE,GAAY7qE,UAAU,GAE7E,OAAO08B,EAAe91C,KAAK41D,EAAOv7E,CAAG,EACjCu7E,EAAMv7E,GACLu7E,EAAMv7E,GAAO4lF,EAAK9mD,MAAM3mC,KAAM4mC,SAAS,CAC9C,GACSw8C,MAAQ,GACVjpB,EAXL,MAAM,IAAI8K,CAYd,EAw9BA0wC,EAAO14B,MAvyHP,SAAeza,GACb,IAAI8G,EAAO1iC,UACP1tC,EAAS,EAEb,GAAKw9D,EAAS8L,CAAM,EAApB,CAQa,GAFXtpE,EADoB,UAAlB,OAAOowE,EAAK,GACLA,EAAKpwE,OAEZA,IAAyC,YAA3B,OAAOowE,EAAKpwE,EAAS,GACjCwtC,EAAWywE,EAAmB7tC,EAAK,EAAEpwE,EAAS,GAAIowE,EAAKpwE,CAAM,IAAK,CAAC,EACrD,EAATA,GAAyC,YAA3B,OAAOowE,EAAKpwE,EAAS,KAC5CwtC,EAAW4iC,EAAK,EAAEpwE,IAOpB,IAVA,IACMwtC,EAIFs3E,EAAUpmG,GAAMgvB,UAAW,EAAG1tC,CAAM,EACpCmyB,EAAQ,CAAC,EACTqrF,EAASrC,GAAS,EAClBsC,EAAStC,GAAS,EAEf,EAAEhpF,EAAQnyB,GACf+kH,CAp8CJ,SAASA,EAAUz7C,EAAQ3qD,EAAQ6uB,EAAUgwE,EAAQC,IAClD7gF,EAAQje,CAAM,EAAIgL,EAAUo0F,GAAQp/F,EAAQ,SAASA,EAAQhQ,GAC5D,IAAIu7B,EACA0zE,EACAp7G,EAASmc,EACTla,EAAQ6kE,EAAO36D,GAEnB,GAAIgQ,KAAYi/F,EAAQhhF,EAAQje,CAAM,IAAM+lE,GAAc/lE,CAAM,GAAI,CAGlE,IADA,IAQMwgG,EARF6F,EAAcxH,EAAOx9G,OAClBglH,CAAW,IAChB,GAAK96E,EAAQszE,EAAOwH,IAAgBrmG,EAAS,CAC3Cla,EAAQg5G,EAAOuH,GACf,KACF,CAEG96E,IAECsD,IAEG2xE,EAA6B,UADlC38G,EAASgrC,EAAS/oC,EAAOka,CAAM,MAE7Bla,EAAQjC,GAGP28G,IACH16G,EAAQm5G,EACHhhF,EAAQn4B,CAAK,EAAIA,EAAQ,GACzBigF,GAAcjgF,CAAK,EAAIA,EAAQ,IAGtC+4G,EAAOr1G,KAAKwW,CAAM,EAClB8+F,EAAOt1G,KAAK1D,CAAK,EAGZ06G,IACH4F,EAAUtgH,EAAOka,EAAQ6uB,EAAUgwE,EAAQC,CAAM,CAGvD,MAQuB,UAHjBj7G,EAHAgrC,GAEmB,UADrBhrC,EAASgrC,EAAS/oC,EAAOka,CAAM,GAEpBA,EAGFnc,KACTiC,EAAQjC,GAGZ8mE,EAAO36D,GAAOlK,CAChB,CAAC,CACH,EAg5Cc6kE,EAAQw7C,EAAQ3yF,GAAQqb,EAAUgwE,EAAQC,CAAM,EAE5DrC,GAAaoC,CAAM,EACnBpC,GAAaqC,CAAM,CApBnB,CAqBA,OAAOn0C,CACT,EA4wHAmzC,EAAO50F,IA52FP,SAAa25E,EAAYh0D,EAAUyvE,GACjC,IAAI1Y,EAAW0gB,IACXziH,EAAS+hG,EAOb,GAAgB,OAFd/2D,EADqB,YAAnB,OAAOA,GAA0ByvE,GAAWA,EAAQzvE,KAAcg0D,EACzD,KAETh0D,IAAoB5Q,EAAQ4kE,CAAU,EAIxC,IAHA,IAAIrvE,EAAQ,CAAC,EACTnyB,EAASwhG,EAAWxhG,OAEjB,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQ+8F,EAAWrvE,GACnB1tB,EAAQjC,IACVA,EAASiC,EAEb,MAEA+oC,EAAwB,MAAZA,GAAoBo0E,GAASpgB,CAAU,EAC/CmZ,GACA8B,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAE9CtzF,EAAQ63E,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,IACrCx+F,EAAUwqC,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,GACjC+C,IACZA,EAAWvhG,EACXR,EAASiC,EAEb,CAAC,EAEH,OAAOjC,CACT,EA40FAi6G,EAAOyI,KAjvHP,SAAc57C,EAAQ97B,EAAUyvE,GAC9B,IAAIz6G,EAAS,GACb,GAAuB,YAAnB,OAAOgrC,EAUT,IATA,IAAIohB,EAAQ,GAMRz8B,GALJ8tF,EAAM32C,EAAQ,SAAS7kE,EAAOkK,GAC5BigD,EAAMzmD,KAAKwG,CAAG,CAChB,CAAC,EAGW,CAAC,GACT3O,GAHJ4uD,EAAQmwD,EAAenwD,EAAOswD,EAAYxxE,UAAW,GAAM,GAAO,CAAC,CAAC,GAGjD1tC,OAEZ,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAI2O,EAAMigD,EAAMz8B,GAChB3vB,EAAOmM,GAAO26D,EAAO36D,EACvB,MAEA6+B,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EACrDgD,EAAM32C,EAAQ,SAAS7kE,EAAOkK,EAAK26D,GAC5B97B,EAAS/oC,EAAOkK,EAAK26D,CAAM,IAC9B9mE,EAAOmM,GAAOlK,EAElB,CAAC,EAEH,OAAOjC,CACT,EAytHAi6G,EAAO59B,KAx8BP,SAAc0V,GACZ,IAAI4wB,EACA3iH,EAEJ,GAAK0iD,EAAWqvC,CAAI,EAGpB,OAAO,WASL,OARI4wB,IAGJA,EAAM,GACN3iH,EAAS+xF,EAAK9mD,MAAM3mC,KAAM4mC,SAAS,EAGnC6mD,EAAO,MACA/xF,CACT,EAZE,MAAM,IAAIupE,CAad,EAu7BA0wC,EAAO8H,MA1sHP,SAAej7C,GAMb,IALA,IAAIn3C,EAAQ,CAAC,EACTy8B,EAAQxvD,EAAKkqE,CAAM,EACnBtpE,EAAS4uD,EAAM5uD,OACfwC,EAASm6B,EAAM38B,CAAM,EAElB,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAI2O,EAAMigD,EAAMz8B,GAChB3vB,EAAO2vB,GAAS,CAACxjB,EAAK26D,EAAO36D,GAC/B,CACA,OAAOnM,CACT,EAgsHAi6G,EAAO2I,QAp6BP,SAAiB7wB,GACf,OAAOisB,EAAcjsB,EAAM,GAAI71E,GAAMgvB,UAAW,CAAC,CAAC,CACpD,EAm6BA+uE,EAAO4I,aAt4BP,SAAsB9wB,GACpB,OAAOisB,EAAcjsB,EAAM,GAAI,KAAM71E,GAAMgvB,UAAW,CAAC,CAAC,CAC1D,EAq4BA+uE,EAAOhB,KArqHP,SAAcnyC,EAAQ97B,EAAUyvE,GAC9B,IAAIz6G,EAAS,GACb,GAAuB,YAAnB,OAAOgrC,EAKT,IAJA,IAAIrb,EAAQ,CAAC,EACTy8B,EAAQswD,EAAYxxE,UAAW,GAAM,GAAO,CAAC,EAC7C1tC,EAASw9D,EAAS8L,CAAM,EAAI1a,EAAM5uD,OAAS,EAExC,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAAI2O,EAAMigD,EAAMz8B,GACZxjB,KAAO26D,IACT9mE,EAAOmM,GAAO26D,EAAO36D,GAEzB,MAEA6+B,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EACrDgD,EAAM32C,EAAQ,SAAS7kE,EAAOkK,EAAK26D,GAC7B97B,EAAS/oC,EAAOkK,EAAK26D,CAAM,IAC7B9mE,EAAOmM,GAAOlK,EAElB,CAAC,EAEH,OAAOjC,CACT,EAgpHAi6G,EAAOwF,MAAQA,GACfxF,EAAOkH,SAAWA,GAClBlH,EAAO6I,KA72DP,SAAcx2D,GAMZ,IALA,IAAIshB,EAAO1iC,UACP2zE,EAAY,EACZC,EAAalxC,EAAKpwE,OAClBA,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAE7B,EAAEqhH,EAAYC,GAGnB,IAFA,IAAInvF,EAAQ,CAAC,EACT1tB,EAAQ2rE,EAAKixC,GACV,EAAElvF,EAAQnyB,GACX8uD,EAAM38B,KAAW1tB,IACnBitB,EAAO4C,KAAKw6B,EAAO38B,CAAK,GAAI,CAAC,EAC7BnyB,CAAM,IAIZ,OAAO8uD,CACT,EA61DA2tD,EAAO8I,MA3zDP,SAAe/1F,EAAOD,EAAKi5E,GACzBh5E,EAAQ,CAACA,GAAS,EAGP,MAAPD,IACFA,EAAMC,EACNA,EAAQ,GAQV,IAJA,IAAI2C,EAAQ,CAAC,EACTnyB,EAASo8G,EAAU,EAAGhnG,GAAMma,EAAMC,KATtCg5E,EAAsB,UAAf,OAAOA,EAAmBA,EAAQ,CAACA,GAAQ,IASM,EAAE,CAAC,EACvDhmG,EAASm6B,EAAM38B,CAAM,EAElB,EAAEmyB,EAAQnyB,GACfwC,EAAO2vB,GAAS3C,EAChBA,GAASg5E,EAEX,OAAOhmG,CACT,EAyyDAi6G,EAAOv7F,OAnsFP,SAAgBsgF,EAAYh0D,EAAUyvE,GAEpC,OADAzvE,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9Cn4G,GAAO08F,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GAC/C,MAAO,CAACh0D,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,CAC3C,CAAC,CACH,EA+rFAib,EAAOr/F,OAxwDP,SAAgB0xC,EAAOthB,EAAUyvE,GAC/B,IAAI9qF,EAAQ,CAAC,EACTnyB,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAChCwC,EAAS,GAGb,IADAgrC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9C,EAAE9qF,EAAQnyB,GAAQ,CACvB,IAAIyE,EAAQqqD,EAAM38B,GACdqb,EAAS/oC,EAAO0tB,EAAO28B,CAAK,IAC9BtsD,EAAO2F,KAAK1D,CAAK,EACjBitB,EAAO4C,KAAKw6B,EAAO38B,CAAK,GAAI,CAAC,EAC7BnyB,CAAM,GAEV,CACA,OAAOwC,CACT,EA0vDAi6G,EAAO8F,KAAOA,GACd9F,EAAO2F,QAAUA,GACjB3F,EAAO+I,OA7/EP,SAAgBhkB,EAAYh0D,EAAUyvE,GACpC,IAAI9qF,EAAQ,CAAC,EACTyrF,EAAQhhF,EAAQ4Q,CAAQ,EACxBxtC,EAASwhG,EAAaA,EAAWxhG,OAAS,EAC1CwC,EAASm6B,EAAuB,UAAjB,OAAO38B,EAAqBA,EAAS,CAAC,EAkBzD,IAhBK49G,IACHpwE,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,GAEvDtzF,EAAQ63E,EAAY,SAAS/8F,EAAOkK,EAAK6yF,GACvC,IAAIl4B,EAAS9mE,EAAO,EAAE2vB,GAAS8oF,GAAU,EACrC2C,EACFt0C,EAAOwxC,SAAWp8G,GAAI8uC,EAAU,SAAS7+B,GAAO,OAAOlK,EAAMkK,EAAM,CAAC,GAEnE26D,EAAOwxC,SAAWK,GAAS,GAAG,GAAK3tE,EAAS/oC,EAAOkK,EAAK6yF,CAAU,EAErEl4B,EAAOn3C,MAAQA,EACfm3C,EAAO7kE,MAAQA,CACjB,CAAC,EAEDzE,EAASwC,EAAOxC,OAChBwC,EAAO4F,KAAKwyG,EAAgB,EACrB56G,CAAM,IAAI,CACf,IAAIspE,EAAS9mE,EAAOxC,GACpBwC,EAAOxC,GAAUspE,EAAO7kE,MACnBm5G,GACHxC,GAAa9xC,EAAOwxC,QAAQ,EAE9BO,GAAc/xC,CAAM,CACtB,CACA,OAAO9mE,CACT,EA+9EAi6G,EAAOgJ,IA/HP,SAAahhH,EAAOihH,GAElB,OADAA,EAAYjhH,CAAK,EACVA,CACT,EA6HAg4G,EAAOkJ,SA/2BP,SAAkBpxB,EAAM9pC,EAAM9K,GAC5B,IAAIojE,EAAU,GACVG,EAAW,GAEf,GAAKh+D,EAAWqvC,CAAI,EAapB,MAVgB,KAAZ50C,EACFojE,EAAU,GACDvlD,EAAS7d,CAAO,IACzBojE,EAAU,YAAapjE,EAAUA,EAAQojE,QAAUA,EACnDG,EAAW,aAAcvjE,EAAUA,EAAQujE,SAAWA,GAExDjJ,GAAgB8I,QAAUA,EAC1B9I,GAAgBgJ,QAAUx4D,EAC1BwvD,GAAgBiJ,SAAWA,EAEpBnvF,GAASwgE,EAAM9pC,EAAMwvD,EAAe,EAZzC,MAAM,IAAIluC,CAad,EA81BA0wC,EAAOmJ,MAzOP,SAAer8D,EAAG/b,EAAUyvE,GAC1B1zD,EAAe,CAAC,GAAXA,EAAI,CAACA,GAAUA,EAAI,EACxB,IAAIp3B,EAAQ,CAAC,EACT3vB,EAASm6B,EAAM4sB,CAAC,EAGpB,IADA/b,EAAWywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,EAC3C,EAAE9qF,EAAQo3B,GACf/mD,EAAO2vB,GAASqb,EAASrb,CAAK,EAEhC,OAAO3vB,CACT,EAgOAi6G,EAAO54B,QAn9EP,SAAiB2d,GACf,OAAIA,GAA0C,UAA5B,OAAOA,EAAWxhG,OAC3B0e,GAEF0Q,IAFQoyE,CAAU,CAG3B,EA+8EAib,EAAOoJ,UA5nHP,SAAmBv8C,EAAQ97B,EAAUrH,EAAa82E,GAChD,IAKQzuC,EALJovC,EAAQhhF,EAAQ0sC,CAAM,EAiB1B,OAhBmB,MAAfnjC,IAEAA,EADEy3E,EACY,GAKAR,GAHV5uC,EAAOlF,GAAUA,EAAOmF,cACRD,EAAKn6C,SAEK,GAG9BmZ,IACFA,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,GACpDW,EAAQj0F,EAAUo0F,GAAQz0C,EAAQ,SAAS7kE,EAAO0tB,EAAOm3C,GACxD,OAAO97B,EAASrH,EAAa1hC,EAAO0tB,EAAOm3C,CAAM,CACnD,CAAC,GAEInjC,CACT,EA0mHAs2E,EAAOqJ,MA7mDP,WACE,OAAO3F,GAASjB,EAAYxxE,UAAW,GAAM,EAAI,CAAC,CACpD,EA4mDA+uE,EAAOx1D,KAAOA,GACdw1D,EAAOrtF,OAASA,GAChBqtF,EAAO4F,MAAQA,EACf5F,EAAOsJ,QAriDP,SAAiBj3D,GACf,OAAOiwD,EAAejwD,EAAOpwC,GAAMgvB,UAAW,CAAC,CAAC,CAClD,EAoiDA+uE,EAAOzxC,KA/0BP,SAAcvmE,EAAOuhH,GACnB,OAAOxF,EAAcwF,EAAS,GAAI,CAACvhH,EAAM,CAC3C,EA80BAg4G,EAAOwJ,IAlhDP,WAIE,IAHA,IAAI9zF,EAAQ,CAAC,EACTnyB,EAAS0tC,UAAU1tC,OAEhB,EAAEmyB,EAAQnyB,GAAQ,CACvB,IAEMwC,EAFFssD,EAAQphB,UAAUvb,IAClByK,EAAQkyB,CAAK,GAAKuwD,GAAYvwD,CAAK,KACjCtsD,EAASA,EACT29G,GAASpB,EAAev8G,EAAQssD,CAAK,EAAE/7C,OAAOgsG,EAAejwD,EAAOtsD,CAAM,CAAC,CAAC,EAC5EssD,EAER,CACA,OAAOtsD,GAAU,EACnB,EAsgDAi6G,EAAOgG,IAAMA,GACbhG,EAAOiG,UAAYA,GAGnBjG,EAAOyJ,QAAUxnH,GACjB+9G,EAAO0J,KAAO5D,GACd9F,EAAOx4B,KAAOt6D,EACd8yF,EAAO2J,UAAYrE,GACnBtF,EAAOn7F,OAASw8F,GAChBrB,EAAO4J,QAAU3E,EACjBjF,EAAOnzC,OAASo5C,GAChBjG,EAAO9jE,OAAS7zC,GAChB23G,EAAO6J,KAAO/D,GACd9F,EAAOpwD,OAASpF,GAChBw1D,EAAO8J,MAAQ9D,GAGfc,GAAM9G,CAAM,EAKZA,EAAOj4B,MA9vJP,SAAe//E,EAAO84G,EAAQ/vE,EAAUyvE,GAQtC,MALqB,WAAjB,OAAOM,GAAiC,MAAVA,IAChCN,EAAUzvE,EACVA,EAAW+vE,EACXA,EAAS,IAEJD,GAAU74G,EAAO84G,EAA2B,YAAnB,OAAO/vE,GAA0BywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,CAAC,CAC3G,EAsvJAR,EAAO+J,UA3sJP,SAAmB/hH,EAAO+oC,EAAUyvE,GAClC,OAAOK,GAAU74G,EAAO,GAAyB,YAAnB,OAAO+oC,GAA0BywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,CAAC,CACzG,EA0sJAR,EAAOt1B,SAAWA,GAClBs1B,EAAO12B,OA/vBP,SAAgByR,GACd,OAAiB,MAAVA,EAAiB,GAAKzrF,EAAOyrF,CAAM,EAAEr9E,QAAQgnG,GAAiBR,EAAc,CACrF,EA8vBAlE,EAAOqF,MAAQA,GACfrF,EAAO3yF,KAAOA,GACd2yF,EAAOgK,UA53EP,SAAmB33D,EAAOthB,EAAUyvE,GAClC,IAAI9qF,EAAQ,CAAC,EACTnyB,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAGpC,IADAwtC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9C,EAAE9qF,EAAQnyB,GACf,GAAIwtC,EAASshB,EAAM38B,GAAQA,EAAO28B,CAAK,EACrC,OAAO38B,EAGX,MAAO,CAAC,CACV,EAk3EAsqF,EAAOiK,QAtlJP,SAAiBp9C,EAAQ97B,EAAUyvE,GACjC,IAAIz6G,EAQJ,OAPAgrC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EACrDc,EAAOz0C,EAAQ,SAAS7kE,EAAOkK,EAAK26D,GAClC,GAAI97B,EAAS/oC,EAAOkK,EAAK26D,CAAM,EAE7B,OADA9mE,EAASmM,EACF,EAEX,CAAC,EACMnM,CACT,EA6kJAi6G,EAAOkK,SApyGP,SAAkBnlB,EAAYh0D,EAAUyvE,GACtC,IAAIz6G,EAQJ,OAPAgrC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EACrD8E,GAAavgB,EAAY,SAAS/8F,EAAO0tB,EAAOqvE,GAC9C,GAAIh0D,EAAS/oC,EAAO0tB,EAAOqvE,CAAU,EAEnC,OADAh/F,EAASiC,EACF,EAEX,CAAC,EACMjC,CACT,EA2xGAi6G,EAAOmK,cAz0EP,SAAuB93D,EAAOthB,EAAUyvE,GACtC,IAAIj9G,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAEpC,IADAwtC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9Cj9G,CAAM,IACX,GAAIwtC,EAASshB,EAAM9uD,GAASA,EAAQ8uD,CAAK,EACvC,OAAO9uD,EAGX,MAAO,CAAC,CACV,EAi0EAy8G,EAAOoK,YApiJP,SAAqBv9C,EAAQ97B,EAAUyvE,GACrC,IAAIz6G,EAQJ,OAPAgrC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EACrDwE,GAAYn4C,EAAQ,SAAS7kE,EAAOkK,EAAK26D,GACvC,GAAI97B,EAAS/oC,EAAOkK,EAAK26D,CAAM,EAE7B,OADA9mE,EAASmM,EACF,EAEX,CAAC,EACMnM,CACT,EA2hJAi6G,EAAOz9E,IAr1IP,SAAasqC,EAAQ36D,GACnB,MAAO26D,KAASc,EAAe91C,KAAKg1C,EAAQ36D,CAAG,CACjD,EAo1IA8tG,EAAO0B,SAAWA,GAClB1B,EAAOvuG,QAAUA,GACjBuuG,EAAO4C,YAAcA,GACrB5C,EAAO7/E,QAAUA,EACjB6/E,EAAOqK,UA/yIP,SAAmBriH,GACjB,MAAiB,KAAVA,GAA4B,KAAVA,GACvBA,GAAyB,UAAhB,OAAOA,GAAqBwP,EAASqgB,KAAK7vB,CAAK,GAAKg1G,IAAa,EAC9E,EA6yIAgD,EAAOsK,OA9xIP,SAAgBtiH,GACd,OAAOA,GAAyB,UAAhB,OAAOA,GAAqBwP,EAASqgB,KAAK7vB,CAAK,GAAKi1G,IAAa,EACnF,EA6xIA+C,EAAOuK,UA9wIP,SAAmBviH,GACjB,OAAOA,GAA4B,IAAnBA,EAAMy6E,UAAkB,EAC1C,EA6wIAu9B,EAAO7pE,QAtvIP,SAAiBnuC,GACf,IAAIjC,EAAS,GACb,GAAKiC,EAAL,CAGA,IAAI2mF,EAAYn3E,EAASqgB,KAAK7vB,CAAK,EAC/BzE,EAASyE,EAAMzE,OAEnB,GAAKorF,GAAaouB,IAAcpuB,GAAa2uB,IAAe3uB,GAAamuB,IACpEnuB,GAAayuB,IAAgC,UAAjB,OAAO75G,GAAsBklD,EAAWzgD,EAAMitB,MAAM,EACnF,MAAO,CAAC1xB,EAEV+9G,EAAOt5G,EAAO,WACZ,OAAQjC,EAAS,EACnB,CAAC,CAVD,CAWA,OAAOA,CACT,EAuuIAi6G,EAAOwK,QA/rIP,SAAiBjhH,EAAG26B,EAAG6M,EAAUyvE,GAC/B,OAAOwC,EAAYz5G,EAAG26B,EAAsB,YAAnB,OAAO6M,GAA0BywE,EAAmBzwE,EAAUyvE,EAAS,CAAC,CAAC,CACpG,EA8rIAR,EAAOvpC,SAhqIP,SAAkBzuE,GAChB,OAAOw3G,EAAex3G,CAAK,GAAK,CAACy3G,EAAYj9C,WAAWx6D,CAAK,CAAC,CAChE,EA+pIAg4G,EAAOv3D,WAAaA,EACpBu3D,EAAOxlE,MAxlIP,SAAexyC,GAGb,OAAOmmB,GAASnmB,CAAK,GAAKA,GAAS,CAACA,CACtC,EAqlIAg4G,EAAOyK,OAnkIP,SAAgBziH,GACd,OAAiB,OAAVA,CACT,EAkkIAg4G,EAAO7xF,SAAWA,GAClB6xF,EAAOj/C,SAAWA,EAClBi/C,EAAO/3B,cAAgBA,GACvB+3B,EAAO0K,SA9/HP,SAAkB1iH,GAChB,OAAOA,GAAyB,UAAhB,OAAOA,GAAqBwP,EAASqgB,KAAK7vB,CAAK,GAAKq1G,IAAe,EACrF,EA6/HA2C,EAAOmF,SAAWA,GAClBnF,EAAO2K,YA79HP,SAAqB3iH,GACnB,OAAuB,SAATA,CAChB,EA49HAg4G,EAAO4K,YAn9DP,SAAqBv4D,EAAOrqD,EAAO81G,GACjC,IAAIpoF,EAAQ28B,EAAQA,EAAM9uD,OAAS,EAInC,IAHwB,UAApB,OAAOu6G,IACTpoF,GAASooF,EAAY,EAAI6B,EAAU,EAAGjqF,EAAQooF,CAAS,EAAI8B,EAAU9B,EAAWpoF,EAAQ,CAAC,GAAK,GAEzFA,CAAK,IACV,GAAI28B,EAAM38B,KAAW1tB,EACnB,OAAO0tB,EAGX,MAAO,CAAC,CACV,EAy8DAsqF,EAAO8G,MAAQA,GACf9G,EAAOtE,WAnrBP,WAEE,OADA10C,EAAQx5C,EAAI2xF,EACL90G,IACT,EAirBA21G,EAAO9uE,KAAOA,GACd8uE,EAAOv6G,IAAMA,EACbu6G,EAAOzyF,SAAWA,GAClByyF,EAAO5qF,OAhkBP,SAAgBhK,EAAKF,EAAK2/F,GACxB,IAAIC,EAAe,MAAP1/F,EACR2/F,EAAe,MAAP7/F,EAsBZ,OApBgB,MAAZ2/F,IACgB,WAAd,OAAOz/F,GAAoB2/F,GAC7BF,EAAWz/F,EACXA,EAAM,GAEE2/F,GAAuB,WAAd,OAAO7/F,IACxB2/F,EAAW3/F,EACX6/F,EAAQ,KAGRD,GAASC,IACX7/F,EAAM,GAERE,EAAM,CAACA,GAAO,EACV2/F,GACF7/F,EAAME,EACNA,EAAM,GAENF,EAAM,CAACA,GAAO,EAEZ2/F,GAAYz/F,EAAM,GAAKF,EAAM,GAC3BosD,EAAOwoC,GAAa,EACjBF,EAAUx0F,EAAOksD,GAAQpsD,EAAME,EAAMo3C,WAAW,QAAU8U,EAAM,IAAI/zE,OAAS,EAAE,GAAK2nB,CAAG,GAEzFu4F,GAAWr4F,EAAKF,CAAG,CAC5B,EAoiBA80F,EAAO9xG,OAASA,GAChB8xG,EAAO0F,YAAcA,GACrB1F,EAAOj6G,OAzgBP,SAAgB8mE,EAAQ36D,GACtB,IACMlK,EADN,GAAI6kE,EAEF,OAAOpkB,EADHzgD,EAAQ6kE,EAAO36D,EACI,EAAI26D,EAAO36D,GAAK,EAAIlK,CAE/C,EAqgBAg4G,EAAOlB,aAAeA,EACtBkB,EAAOuD,KA/rFP,SAAcxe,GACZ,IAAIxhG,EAASwhG,EAAaA,EAAWxhG,OAAS,EAC9C,MAAwB,UAAjB,OAAOA,EAAqBA,EAASZ,EAAKoiG,CAAU,EAAExhG,MAC/D,EA6rFAy8G,EAAOvyF,KAAOA,GACduyF,EAAO6F,YAAcA,GACrB7F,EAAO57G,SAjbP,SAAkBkhD,EAAM3gD,EAAMu+C,GAK5B,IAUI8nE,EAVAlW,EAAWkL,EAAOqE,iBAMlB4G,GALJ3lE,EAAOh2C,EAAOg2C,GAAQ,EAAE,EAGxBpC,EAAU67D,GAAS,GAAI77D,EAAS4xD,CAAQ,EAE1BiK,GAAS,GAAI77D,EAAQ+nE,QAASnW,EAASmW,OAAO,GACxDC,EAAcvoH,EAAKsoH,CAAO,EAC1BE,EAAgBx4F,GAAOs4F,CAAO,EAG9Bv1F,EAAQ,EACR01F,EAAcloE,EAAQkoE,aAAe3O,GACrCv6F,EAAS,WAGTmpG,EAAeloH,GAChB+/C,EAAQomC,QAAUmzB,IAAWv6F,OAAS,IACvCkpG,EAAYlpG,OAAS,KACpBkpG,IAAgB7O,GAAgBH,GAAeK,IAAWv6F,OAAS,KACnEghC,EAAQooE,UAAY7O,IAAWv6F,OAAS,KACzC,GAAG,EA8BDqpG,GA5BJjmE,EAAK5nC,QAAQ2tG,EAAc,SAASn5D,EAAOs5D,EAAaC,EAAkBC,EAAiBC,EAAehvD,GAqBxG,OApBA8uD,KAAwCC,EAGxCxpG,GAAUojC,EAAKrjC,MAAMyT,EAAOinC,CAAM,EAAEj/C,QAAQi/F,GAAmB8B,EAAgB,EAG3E+M,IACFtpG,GAAU,YAAcspG,EAAc,UAEpCG,IACFX,EAAe,GACf9oG,GAAU,OAASypG,EAAgB,eAEjCF,IACFvpG,GAAU,iBAAmBupG,EAAmB,+BAElD/1F,EAAQinC,EAASzK,EAAM3uD,OAIhB2uD,CACT,CAAC,EAEDhwC,GAAU,OAIKghC,EAAQqoE,UA0BnBK,IAvBCC,EAFaN,KAIhBrpG,EAAS,UADTqpG,EAAW,OACoB,QAAUrpG,EAAS,SAGpDA,GAAU8oG,EAAe9oG,EAAOxE,QAAQu+F,GAAsB,EAAE,EAAI/5F,GACjExE,QAAQw+F,GAAqB,IAAI,EACjCx+F,QAAQy+F,GAAuB,KAAK,EAGvCj6F,EAAS,YAAcqpG,EAAW,SAC/BM,EAAc,GAAKN,EAAW,QAAUA,EAAW,aACpD,qCACCP,EACG,uFAEA,OAEJ9oG,EACA,gBAIc,wBAA0BghC,EAAQ0oE,WAAa,2BAA8B/O,EAAiB,GAAI,KAAO,QAEzH,IACE,IAAI92G,EAASkvE,EAASi2C,EAAa,UAAYhpG,EAAS0pG,CAAS,EAAE56E,MAAMx7B,GAAW21G,CAAa,CAInG,CAHE,MAAM3oH,GAEN,MADAA,EAAE0f,OAASA,EACL1f,CACR,CACA,OAAImC,EACKoB,EAAOpB,CAAI,GAKpBoB,EAAOmc,OAASA,EACTnc,EACT,EAgVAi6G,EAAO8L,SA5RP,SAAkB/wB,GAChB,OAAiB,MAAVA,EAAiB,GAAKzrF,EAAOyrF,CAAM,EAAEr9E,QAAQ+mG,GAAeF,EAAgB,CACrF,EA2RAvE,EAAO+L,SAzQP,SAAkB10C,GAChB,IAAIj1E,EAAK,EAAEy5G,GACX,OAAOvsG,EAAiB,MAAV+nE,EAAiB,GAAKA,CAAM,EAAIj1E,CAChD,EAyQA49G,EAAOrwG,IAAM01G,GACbrF,EAAOp6E,IAAMnY,GACbuyF,EAAOgM,OAAS3+F,GAChB2yF,EAAOiM,UAAY5+F,GACnB2yF,EAAOkM,MAAQh+G,GACf8xG,EAAOmM,MAAQzG,GACf1F,EAAOttF,QAAUg4D,GACjBs1B,EAAOoM,OAASl+G,GAEhB44G,IACM5kG,GAAS,GACbo/F,EAAOtB,EAAQ,SAASloB,EAAM1oB,GACvB4wC,EAAOpoF,UAAUw3C,KACpBltD,GAAOktD,GAAc0oB,EAEzB,CAAC,EACM51E,IACJ,EAAK,EAKV89F,EAAOroC,MAAQA,GACfqoC,EAAOz0C,KA3iEP,SAAclZ,EAAOthB,EAAUyvE,GAC7B,IAAI1zD,EAAI,EACJvpD,EAAS8uD,EAAQA,EAAM9uD,OAAS,EAEpC,GAAuB,UAAnB,OAAOwtC,GAAoC,MAAZA,EAAkB,CACnD,IAAIrb,EAAQnyB,EAEZ,IADAwtC,EAAWivE,EAAO8D,eAAe/yE,EAAUyvE,EAAS,CAAC,EAC9C9qF,CAAK,IAAMqb,EAASshB,EAAM38B,GAAQA,EAAO28B,CAAK,GACnDvF,CAAC,EAEL,MAEE,GAAS,OADTA,EAAI/b,IACayvE,EACf,OAAOnuD,EAAQA,EAAM9uD,EAAS,GAAKiS,GAGvC,OAAOyM,GAAMowC,EAAOstD,EAAU,EAAGp8G,EAASupD,CAAC,CAAC,CAC9C,EA2hEAkzD,EAAOqM,OA1xFP,SAAgBtnB,EAAYj4C,EAAG63D,GAI7B,OAHI5f,GAA0C,UAA5B,OAAOA,EAAWxhG,SAClCwhG,EAAapyE,GAAOoyE,CAAU,GAEvB,MAALj4C,GAAa63D,EACR5f,EAAaA,EAAW0e,GAAW,EAAG1e,EAAWxhG,OAAS,CAAC,GAAKiS,KAErEzP,EAAS4/G,GAAQ5gB,CAAU,GACxBxhG,OAASq8G,EAAUD,EAAU,EAAG7yD,CAAC,EAAG/mD,EAAOxC,MAAM,EACjDwC,EACT,EAmxFAi6G,EAAOsM,KAAO30C,GACdqoC,EAAOxuE,KAAOmmC,GAEd2pC,EAAOtB,EAAQ,SAASloB,EAAM1oB,GAC5B,IAAIm9C,EAA8B,WAAfn9C,EACd4wC,EAAOpoF,UAAUw3C,KACpB4wC,EAAOpoF,UAAUw3C,GAAa,SAAStiB,EAAG63D,GACxC,IAAIzE,EAAW71G,KAAK81G,UAChBp6G,EAAS+xF,EAAKztF,KAAK+1G,YAAatzD,EAAG63D,CAAK,EAE5C,OAAQzE,GAAkB,MAALpzD,IAAc63D,IAAW4H,GAA4B,YAAZ,OAAOz/D,GAEjE,IAAImzD,EAAcl6G,EAAQm6G,CAAQ,EADlCn6G,CAEN,EAEJ,CAAC,EAWDi6G,EAAOwM,QAAU,QAGjBxM,EAAOpoF,UAAU4gD,MA7OjB,WAEE,OADAnuE,KAAK81G,UAAY,GACV91G,IACT,EA2OA21G,EAAOpoF,UAAUpgB,SA7NjB,WACE,OAAOlI,EAAOjF,KAAK+1G,WAAW,CAChC,EA4NAJ,EAAOpoF,UAAU5vB,MAAQm/G,GACzBnH,EAAOpoF,UAAUi9C,QAAUsyC,GAG3Bj6F,EAAQ,CAAC,OAAQ,MAAO,SAAU,SAASkiD,GACzC,IAAI0oB,EAAOmnB,EAAS7vC,GACpB4wC,EAAOpoF,UAAUw3C,GAAc,WAC7B,IAAI8wC,EAAW71G,KAAK81G,UAChBp6G,EAAS+xF,EAAK9mD,MAAM3mC,KAAK+1G,YAAanvE,SAAS,EAEnD,OAAOivE,EACH,IAAID,EAAcl6G,EAAQm6G,CAAQ,EAClCn6G,CACN,CACF,CAAC,EAGDmnB,EAAQ,CAAC,OAAQ,UAAW,OAAQ,WAAY,SAASkiD,GACvD,IAAI0oB,EAAOmnB,EAAS7vC,GACpB4wC,EAAOpoF,UAAUw3C,GAAc,WAE7B,OADA0oB,EAAK9mD,MAAM3mC,KAAK+1G,YAAanvE,SAAS,EAC/B5mC,IACT,CACF,CAAC,EAGD6iB,EAAQ,CAAC,SAAU,QAAS,UAAW,SAASkiD,GAC9C,IAAI0oB,EAAOmnB,EAAS7vC,GACpB4wC,EAAOpoF,UAAUw3C,GAAc,WAC7B,OAAO,IAAI6wC,EAAcnoB,EAAK9mD,MAAM3mC,KAAK+1G,YAAanvE,SAAS,EAAG5mC,KAAK81G,SAAS,CAClF,CACF,CAAC,EAEMH,CACT,EAKqB,EAOnBrwE,GAAKniB,EAAIA,IAIT,aACE,OAAOA,EACR,oCAiBL,EAAEqK,KAAKxtB,IAAK,C,+JChoNZ,IAOIoiH,EACAC,EARA1rF,EAAUl+B,EAAOC,QAAU,GAU/B,SAAS4pH,IACL,MAAM,IAAIlqH,MAAM,iCAAiC,CACrD,CACA,SAASmqH,IACL,MAAM,IAAInqH,MAAM,mCAAmC,CACvD,CAEI,IAEQgqH,EADsB,YAAtB,OAAO1jG,WACYA,WAEA4jG,CAI3B,CAFE,MAAOnqH,GACLiqH,EAAmBE,CACvB,CACA,IAEQD,EADwB,YAAxB,OAAOn1F,aACcA,aAEAq1F,CAI7B,CAFE,MAAOpqH,GACLkqH,EAAqBE,CACzB,CAEJ,SAASC,EAAWC,GAChB,GAAIL,IAAqB1jG,WAErB,OAAOA,WAAW+jG,EAAK,CAAC,EAG5B,IAAKL,IAAqBE,GAAoB,CAACF,IAAqB1jG,WAEhE,OADA0jG,EAAmB1jG,YACD+jG,EAAK,CAAC,EAE5B,IAEI,OAAOL,EAAiBK,EAAK,CAAC,CASlC,CARE,MAAMtqH,GACJ,IAEI,OAAOiqH,EAAiB50F,KAAK,KAAMi1F,EAAK,CAAC,CAI7C,CAHE,MAAMtqH,GAEJ,OAAOiqH,EAAiB50F,KAAKxtB,KAAMyiH,EAAK,CAAC,CAC7C,CACJ,CAGJ,CA4BA,IAEIC,EAFAz1B,EAAQ,GACR01B,EAAW,GAEXC,EAAa,CAAC,EAElB,SAASC,IACAF,GAAaD,IAGlBC,EAAW,GACPD,EAAaxpH,OACb+zF,EAAQy1B,EAAaz2G,OAAOghF,CAAK,EAEjC21B,EAAa,CAAC,EAEd31B,EAAM/zF,SACN4pH,EAAW,CAEnB,CAEA,SAASA,IACL,GAAIH,GAAJ,CAOA,IAJA,IAAI3+D,EAAUw+D,EAAWK,CAAe,EAGpCn6D,GAFJi6D,EAAW,GAED11B,EAAM/zF,QACVwvD,GAAK,CAGP,IAFAg6D,EAAez1B,EACfA,EAAQ,GACD,EAAE21B,EAAal6D,GACdg6D,GACAA,EAAaE,GAAYttG,IAAI,EAGrCstG,EAAa,CAAC,EACdl6D,EAAMukC,EAAM/zF,MAChB,CACAwpH,EAAe,KACfC,EAAW,GACXI,CApEJ,SAAyBC,GACrB,GAAIX,IAAuBn1F,aAEvB,OAAOA,aAAa81F,CAAM,EAG9B,IAAKX,IAAuBE,GAAuB,CAACF,IAAuBn1F,aAEvE,OADAm1F,EAAqBn1F,cACD81F,CAAM,EAE9B,IAEWX,EAAmBW,CAAM,CAUpC,CATE,MAAO7qH,GACL,IAEI,OAAOkqH,EAAmB70F,KAAK,KAAMw1F,CAAM,CAK/C,CAJE,MAAO7qH,GAGL,OAAOkqH,EAAmB70F,KAAKxtB,KAAMgjH,CAAM,CAC/C,CACJ,CAIJ,EA0CoBh/D,CAAO,CAlBvB,CAmBJ,CAgBA,SAAS0pB,EAAK+0C,EAAKz6D,GACfhoD,KAAKyiH,IAAMA,EACXziH,KAAKgoD,MAAQA,CACjB,CAWA,SAASnhB,KA5BTlQ,EAAQssF,SAAW,SAAUR,GACzB,IAAIn5C,EAAO,IAAIzzC,MAAM+Q,UAAU1tC,OAAS,CAAC,EACzC,GAAuB,EAAnB0tC,UAAU1tC,OACV,IAAK,IAAI4C,EAAI,EAAGA,EAAI8qC,UAAU1tC,OAAQ4C,CAAC,GACnCwtE,EAAKxtE,EAAI,GAAK8qC,UAAU9qC,GAGhCmxF,EAAM5rF,KAAK,IAAIqsE,EAAK+0C,EAAKn5C,CAAI,CAAC,EACT,IAAjB2jB,EAAM/zF,QAAiBypH,GACvBH,EAAWM,CAAU,CAE7B,EAOAp1C,EAAKngD,UAAUjY,IAAM,WACjBtV,KAAKyiH,IAAI97E,MAAM,KAAM3mC,KAAKgoD,KAAK,CACnC,EACArxB,EAAQuQ,MAAQ,UAChBvQ,EAAQusF,QAAU,GAClBvsF,EAAQwsF,IAAM,GACdxsF,EAAQysF,KAAO,GACfzsF,EAAQ0sF,QAAU,GAClB1sF,EAAQ2sF,SAAW,GAInB3sF,EAAQogB,GAAKlQ,EACblQ,EAAQ4sF,YAAc18E,EACtBlQ,EAAQohD,KAAOlxC,EACflQ,EAAQwuB,IAAMte,EACdlQ,EAAQ6sF,eAAiB38E,EACzBlQ,EAAQ8sF,mBAAqB58E,EAC7BlQ,EAAQ+sF,KAAO78E,EACflQ,EAAQgtF,gBAAkB98E,EAC1BlQ,EAAQitF,oBAAsB/8E,EAE9BlQ,EAAQktF,UAAY,SAAUpjH,GAAQ,MAAO,EAAG,EAEhDk2B,EAAQmtF,QAAU,SAAUrjH,GACxB,MAAM,IAAIrI,MAAM,kCAAkC,CACtD,EAEAu+B,EAAQotF,IAAM,WAAc,MAAO,GAAI,EACvCptF,EAAQqtF,MAAQ,SAAUvlC,GACtB,MAAM,IAAIrmF,MAAM,gCAAgC,CACpD,EACAu+B,EAAQstF,MAAQ,WAAa,OAAO,CAAG,C,2DCvLvC,MAasB,+BAAd,EAQL,WAEC,IAAIC,EAAS,SAAUC,EAAW,WAAYC,EAAY,YAItDC,EAAqB,CAAC,iBAAkB,cAAe,eAAgB,YAAa,YACpF,2BAGAC,EAAkB,CAAC,WAAY,iBAAkB,gBAAiB,SAAU,eAC5E,cAAe,WAAY,aAAc,qBAAsB,wBAAyB,iBACxF,kBAAmB,gBAAiB,aAAc,mBAAoB,aAAc,WAAY,UAEhGC,EAAsB,CAAC,iBAAkB,eAAgB,cAAe,gBAAiB,WAAY,QAGrGC,EAAmB,CAAC,WAAY,mBAAoB,YAAa,oBAAqB,gBAAiB,SACvG,cAAe,yBAMnB,SAASC,EAAavsH,EAAGgU,GACrB,IAAIkxD,EAAI,OAAOllE,EAAEgU,GACjB,OAAOkxD,GAAK+mD,GAAY,CAAE,EAAE/mD,GAAK8mD,GAAUhsH,EAAEgU,KAAQkxD,GAAK,SAC9D,CAEA,SAASsnD,EAAaxsH,EAAGgU,GACrB,MAAO,CAAC,EAAE,OAAOhU,EAAEgU,IAAMg4G,GAAUhsH,EAAEgU,GACzC,CAEA,SAASy4G,EAAezsH,EAAGgU,GACvB,OAAO,OAAOhU,EAAEgU,IAAMk4G,CAC1B,CAGA,SAASQ,EAA2BC,GAChC,OAAO,SAAS3sH,EAAG4vD,GACf,IAAIhsD,EAAIgsD,EAAM5uD,OACd,MAAO4C,CAAC,GACJ,GAAI,CAAC+oH,EAAS3sH,EAAG4vD,EAAMhsD,EAAE,EACrB,OAAO,MAGf,OAAO,IACX,CACJ,CAGA,IAAIgpH,EAAiBF,EAA2BH,CAAY,EACxDM,EAAiBH,EAA2BF,CAAY,EACxDM,EAAoBJ,EAA2BD,CAAc,EAEjE,SAASM,EAAYxG,GACjB,OAAOA,GAASqG,EAAerG,EAAO+F,CAAgB,GAAKQ,EAAkBvG,EAAO8F,CAAmB,CAC3G,CAEA,SAASW,EAAQl+E,GACb,OAAO09E,EAAa19E,EAAK,MAAM,EAAIA,EAAIxzB,KAAOwzB,EAAIK,qBAAqB,MAAM,EAAE,EACnF,CAEA,IAAIxkB,EAUAsiG,EAAU,GAEVC,EAAa,OAAOzsH,QAAUyrH,GAAa,OAAOjxG,UAAYixG,EAE9DiB,EAAO,CACPZ,aAAcA,EACdC,aAAcA,EACdC,eAAgBA,EAChBG,eAAgBA,EAChBC,eAAgBA,EAChBC,kBAAmBA,EACnBC,YAAaA,EACbC,QAASA,EACTriG,QAvBU,GAAGA,QACb,SAASyG,EAAKmkE,GACVnkE,EAAIzG,QAAQ4qE,CAAI,CACpB,EACA,SAASnkE,EAAKmkE,GACV,IAAK,IAAI3xF,EAAI,EAAG4sD,EAAMp/B,EAAIpwB,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EACzC2xF,EAAKnkE,EAAIxtB,GAAIA,CAAC,CAEtB,CAgBJ,EAEIwpH,EAAM,CACNjC,QAAS,QACTkC,YAAa,MACbH,UAAWA,EACXI,UAAW,KACXH,KAAMA,EACNI,SAAU,GACVN,QAASA,EACT7rH,OAAQ,CACJosH,YAAa,MACbC,YAAa,MACbC,gBAAiB,MACjBC,eAAiB,OAAOC,qBAAuB1B,EAAa,KAAO0B,mBACvE,CACJ,EA+BItrG,EAwCIuiE,EA8BJwmC,EAnGJ,SAASwC,EAAW7/D,GAChB,GAAI,OAAO1tC,SAAW4rG,GAAaK,EAAajsG,QAAS,KAAK,EAC1DA,QAAQC,IAAIytC,CAAG,CAEvB,CAEA,SAAS8/D,EAAW9/D,EAAK+/D,GACrB,GAAIb,GAAaa,EACbjqG,MAAMkqC,CAAG,OAET6/D,EAAW7/D,CAAG,CAEtB,CAEA,SAASymC,EAAKu5B,GACVZ,EAAIC,YAAc,KAClBD,EAAIE,UAAY,MAChBQ,EAAW,uDAAyDE,EAAQZ,EAAIhsH,OAAOosH,WAAW,CACtG,CAIA,SAAS91C,EAAK1pB,GACV8/D,EAAW,kBAAoB9/D,EAAKo/D,EAAIhsH,OAAOqsH,WAAW,CAC9D,CAMA,GAVAL,EAAI34B,KAAOA,EAMX24B,EAAI11C,KAAOA,EAIP,GAAGtM,eAAgB,CACnB+hD,EAAK7qG,OAASA,EAAS,SAAS6O,EAAKy+B,EAAO61B,GACxC,IAAIzlF,EAAGgU,EACP,IAAK,IAAIpQ,KAAKgsD,EACV,GAAIA,EAAMwb,eAAexnE,CAAC,EAAG,CACzB5D,EAAImxB,EAAIvtB,GACRoQ,EAAI47C,EAAMhsD,GACV,GAAI6hF,GAAQzlF,IAAM,MAAQ,OAAOA,GAAK,UAAYgU,IAAM,MAAQ,OAAOA,GAAK,SACxEsO,EAAOtiB,EAAGgU,EAAG,IAAI,EAErBmd,EAAIvtB,GAAKoQ,CACb,CAGJ,GAAI47C,EAAMwb,eAAe,UAAU,EAC/Bj6C,EAAIlc,SAAW26C,EAAM36C,SAEzB,OAAOkc,CACX,EAEAg8F,EAAKc,cAAgB,SAASC,EAAc1R,GACxC,IAAI77D,EAAU,GACdr+B,EAAOq+B,EAAS67D,CAAQ,EACxB,GAAI0R,EACA5rG,EAAOq+B,EAASutE,CAAY,EAEhC,OAAOvtE,CACX,CACJ,MACI8zC,EAAK,8BAA8B,EAIvC,GAAI,CAACy4B,EACDz4B,EAAK,iCAAiC,EAOtC,GAAIy4B,EAAW,CACX,IAAIpiE,EAAK7vC,SAAS8c,cAAc,KAAK,EACrC+yB,EAAGwtB,YAAYr9D,SAAS8c,cAAc,MAAM,CAAC,EAC7C,IAAIrY,EAAQ,GAAGA,MACf,IACI,GAAIA,EAAM4V,KAAKw1B,EAAGs/B,WAAY,CAAC,EAAE,GAAGlK,UAAY,EAC5C2E,EAAU,SAASspC,GACf,OAAOzuG,EAAM4V,KAAK64F,EAAW,CAAC,CAClC,CAEK,CAAX,MAAOluH,IACb,CAEA,GAAI,CAAC4kF,EACDA,EAAU,SAASspC,GACf,IAAI/8F,EAAM,GACV,IAAK,IAAIxtB,EAAI,EAAG4sD,EAAM29D,EAAUntH,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAC/CwtB,EAAIxtB,GAAKuqH,EAAUvqH,GAEvB,OAAOwtB,CACX,EASR,GANI+7F,EAAKtoC,QAAUA,EAMfqoC,EAAW,CACX,GAAIX,EAAatxG,SAAU,kBAAkB,EACzCowG,EAAc,SAASl6F,EAAKi9F,EAAWC,GACnCl9F,EAAIygB,iBAAiBw8E,EAAWC,EAAU,KAAK,CACnD,OACG,GAAI9B,EAAatxG,SAAU,aAAa,EAC3CowG,EAAc,SAASl6F,EAAKi9F,EAAWC,GACnCl9F,EAAIg7D,YAAY,KAAOiiC,EAAWC,CAAQ,CAC9C,OAEA55B,EAAK,wEAAwE,EAGjF04B,EAAK9B,YAAcA,CACvB,CAEA,IAAIiD,EAAgB,GAEpB,SAASC,EAAaj6B,GAClB,OAAOA,EAAGjyB,SAAWiyB,EAAGxnF,aAAeC,OAAOunF,CAAE,CACpD,CAGA,SAAS19D,IACL,GAAI,CAACs2F,GAAaE,EAAIC,YAClB,OAEJ,IAAImB,EACJ,IAAIC,EAAqB,MAAOC,EAAsB,MAItD,GAAInC,EAAatxG,SAAU,aAAa,EAAG,CACvCuzG,EAAYvzG,SAAS0zG,YAAY,EACjC,GAAI/B,EAAe4B,EAAWpC,CAAe,GAAKU,EAAkB0B,EAAWrC,CAAkB,EAC7FsC,EAAqB,IAE7B,CAEA,IAAInzG,EAAO0xG,EAAQ/xG,QAAQ,EAC3B,GAAI,CAACK,GAAQA,EAAK+kE,SAASrmE,YAAY,GAAK,OAAQ,CAChDy6E,EAAK,uBAAuB,EAC5B,MACJ,CAEA,GAAIn5E,GAAQixG,EAAajxG,EAAM,iBAAiB,EAAG,CAC/CkzG,EAAYlzG,EAAKszG,gBAAgB,EACjC,GAAI7B,EAAYyB,CAAS,EACrBE,EAAsB,IAE9B,CAEA,GAAI,CAACD,GAAsB,CAACC,EAAqB,CAC7Cj6B,EAAK,2CAA2C,EAChD,MACJ,CAEA24B,EAAIC,YAAc,KAClBD,EAAIG,SAAW,CACXkB,mBAAoBA,EACpBC,oBAAqBA,CACzB,EAGA,IAAInuH,EAAQ+kD,EACZ,IAAK,IAAIupE,KAAc5B,EACnB,IAAM1sH,EAAS0sH,EAAQ4B,cAAwBC,EAC3CvuH,EAAOq2B,KAAKr2B,EAAQ6sH,CAAG,EAK/B,IAAK,IAAIxpH,EAAI,EAAG4sD,EAAM89D,EAActtH,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EACnD,IACI0qH,EAAc1qH,GAAGwpH,CAAG,CAIxB,CAHE,MAAO94B,GACLhvC,EAAe,+DAAiEipE,EAAaj6B,CAAE,EAC/Fu5B,EAAWvoE,CAAY,CAC3B,CAER,CAEA,SAASypE,EAAkBC,EAAYC,EAAa1uH,GAChD,GAAIA,EACAyuH,GAAc,cAAgBzuH,EAAOgI,KAEzC6kH,EAAI11C,KAAK,eAAiBs3C,EAAa,8BACvCC,EAAc,WAAW,CAC7B,CAEA,SAASC,EAA+Bx2B,EAAOs2B,EAAYC,EAAa1uH,GACpEm4F,EAAMs2B,GAAc,WAChBD,EAAkBC,EAAYC,EAAa1uH,CAAM,EACjD,OAAOm4F,EAAMu2B,GAAaxgF,MAAMiqD,EAAOy0B,EAAKtoC,QAAQn2C,SAAS,CAAC,CAClE,CACJ,CAEAy+E,EAAK4B,kBAAoBA,EACzB5B,EAAK+B,+BAAiCA,EAGtC9B,EAAIx2F,KAAOA,EAGXw2F,EAAI+B,gBAAkB,SAASd,GAC3B,GAAIjB,EAAIC,YACJgB,EAASjB,CAAG,OAEZkB,EAAcnlH,KAAKklH,CAAQ,CAEnC,EAEA,IAAIe,EAAgB,GAMpB,SAASC,EAAKxgF,GACVA,EAAMA,GAAOpuC,OACbm2B,EAAK,EAGL,IAAK,IAAIhzB,EAAI,EAAG4sD,EAAM4+D,EAAcpuH,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EACnDwrH,EAAcxrH,GAAGirC,CAAG,CAE5B,CAEA,GAdAu+E,EAAIkC,gBAAkB,SAASjB,GAC3Be,EAAcjmH,KAAKklH,CAAQ,CAC/B,EAYInB,EAAW,CACXE,EAAIiC,KAAOjC,EAAImC,uBAAyBF,EACxCH,EAA+B9B,EAAK,yBAA0B,MAAM,CACxE,CAEA,SAAS0B,EAAOvmH,EAAMinH,EAAcC,GAChC3nH,KAAKS,KAAOA,EACZT,KAAK0nH,aAAeA,EACpB1nH,KAAKulH,YAAc,MACnBvlH,KAAKwlH,UAAY,MACjBxlH,KAAK2nH,YAAcA,CACvB,CA4CA,SAASC,EAAannH,EAAMinH,EAAcG,GACtC,IAAIC,EAAY,IAAId,EAAOvmH,EAAMinH,EAAc,SAASjvH,GACpD,GAAI,CAACA,EAAO8sH,YAAa,CACrB9sH,EAAO8sH,YAAc,KACrB,IACIsC,EAASvC,EAAK7sH,CAAM,EACpBA,EAAO+sH,UAAY,IAOvB,CANE,MAAOh5B,GACL,IAAIhvC,EAAe,WAAa/8C,EAAO,qBAAuBgmH,EAAaj6B,CAAE,EAC7Eu5B,EAAWvoE,CAAY,EACvB,GAAIgvC,EAAGiD,MACHs2B,EAAWv5B,EAAGiD,KAAK,CAE3B,CACJ,CACJ,CAAC,EACD01B,EAAQ1kH,GAAQqnH,EAChB,OAAOA,CACX,CA6BA,SAASC,KAIT,SAASC,KA7FThB,EAAOz5F,UAAY,CACfuB,KAAM,WACF,IAAIm5F,EAAsBjoH,KAAK0nH,cAAgB,GAC/C,IAAK,IAAI5rH,EAAI,EAAG4sD,EAAMu/D,EAAoB/uH,OAAQgvH,EAAgBnB,EAAYjrH,EAAI4sD,EAAK,EAAE5sD,EAAG,CACxFirH,EAAakB,EAAoBnsH,GAEjCosH,EAAiB/C,EAAQ4B,GACzB,GAAI,CAACmB,GAAkB,EAAEA,aAA0BlB,GAC/C,MAAM,IAAI5uH,MAAM,oBAAsB2uH,EAAa,aAAa,EAGpEmB,EAAep5F,KAAK,EAEpB,GAAI,CAACo5F,EAAe1C,UAChB,MAAM,IAAIptH,MAAM,oBAAsB2uH,EAAa,iBAAiB,CAE5E,CAGA/mH,KAAK2nH,YAAY3nH,IAAI,CACzB,EAEA2sF,KAAM,SAASu5B,GACXlmH,KAAKulH,YAAc,KACnBvlH,KAAKwlH,UAAY,MACjB,MAAM,IAAIptH,MAAM8tH,CAAM,CAC1B,EAEAt2C,KAAM,SAAS1pB,GACXo/D,EAAI11C,KAAK,UAAY5vE,KAAKS,KAAO,KAAOylD,CAAG,CAC/C,EAEA+gE,kBAAmB,SAASC,EAAYC,GACpC7B,EAAI11C,KAAK,eAAiBs3C,EAAa,cAAgBlnH,KAAKS,KAAO,8BAC/D0mH,EAAc,UAAU,CAChC,EAEAgB,YAAa,SAASjiE,GAClB,OAAO,IAAI9tD,MAAM,kBAAoB4H,KAAKS,KAAO,YAAcylD,CAAG,CACtE,CACJ,EAsBAo/D,EAAIsC,aAAe,SAASnnH,GAExB,IAAIonH,EAAUH,EACd,GAAI9gF,UAAU1tC,QAAU,EAAG,CACvB2uH,EAAWjhF,UAAU,GACrB8gF,EAAe,EACnB,KAAO,CACHG,EAAWjhF,UAAU,GACrB8gF,EAAe9gF,UAAU,EAC7B,CAEA,IAAInuC,EAASmvH,EAAannH,EAAMinH,EAAcG,CAAQ,EAGtD,GAAIvC,EAAIC,aAAeD,EAAIE,UACvB/sH,EAAOq2B,KAAK,CAEpB,EAEAw2F,EAAI8C,iBAAmB,SAAS3nH,EAAMinH,EAAcG,GAChDD,EAAannH,EAAMinH,EAAcG,CAAQ,CAC7C,EAOAvC,EAAIyC,eAAiBA,EACrBzC,EAAI+C,eAAiB,IAAIN,EAGzBzC,EAAIgD,mBAAqB,IAAIN,EAK7B1C,EAAI8C,iBAAiB,UAAW,GAAI,SAAS9C,EAAK7sH,GAC9C,IAAI8vH,EAAQ,YACZ,IAAIlD,EAAOC,EAAID,KACf,IAAIH,EAAUG,EAAKH,QAGnB,GAAI,CAACG,EAAKP,eAAe3xG,SAAU,CAAC,yBAA0B,gBAAiB,iBAAiB,EAC5F1a,EAAOk0F,KAAK,yCAAyC,EAGzD,GAAI,CAAC04B,EAAKZ,aAAatxG,SAAU,sBAAsB,EACnD1a,EAAOk0F,KAAK,8CAA8C,EAG9D,IAAI3pC,EAAK7vC,SAAS8c,cAAc,KAAK,EACrC,GAAI,CAACo1F,EAAKP,eAAe9hE,EAAI,CAAC,eAAgB,cAAe,cACrD,KAAwF,EAC5FvqD,EAAOk0F,KAAK,mCAAmC,EAInD,GAAI,CAAC04B,EAAKV,eAAe3hE,EAAI,WAAW,EACpCvqD,EAAOk0F,KAAK,uCAAuC,EAGvD,IAAI67B,EAAWr1G,SAASyhF,eAAe,MAAM,EAC7C,GAAI,CAACywB,EAAKP,eAAe0D,EAAU,CAAC,YAAa,aAAc,aAAc,aAAc,cACnF,OACA,KAA2C,EAC/C/vH,EAAOk0F,KAAK,qCAAqC,EAQrD,IAAI87B,EAKA,SAASn/F,EAAK1Q,GACV,IAAI9c,EAAIwtB,EAAIpwB,OACZ,MAAO4C,CAAC,GACJ,GAAIwtB,EAAIxtB,KAAO8c,EACX,OAAO,KAGf,OAAO,KACX,EAGJ,SAAS8vG,EAAgB91D,GACrB,IAAI+1D,EACJ,OAAO,OAAO/1D,EAAKuxB,cAAgBokC,KAAWI,EAAK/1D,EAAKuxB,gBAAkB,MAAQwkC,GAAM,+BAC5F,CAEA,SAASntC,EAAc5oB,GACnB,IAAI/mC,EAAS+mC,EAAKknB,WAClB,OAAQjuD,EAAOusD,UAAY,EAAKvsD,EAAS,IAC7C,CAEA,SAAS+8F,EAAah2D,GAClB,IAAI92D,EAAI,EACR,MAAQ82D,EAAOA,EAAKi2D,gBAChB,EAAE/sH,EAEN,OAAOA,CACX,CAEA,SAASgtH,EAAcl2D,GACnB,OAAQA,EAAKwlB,UACT,KAAK,EACL,KAAK,GACD,OAAO,EACX,KAAK,EACL,KAAK,EACD,OAAOxlB,EAAK15D,OAChB,QACI,OAAO05D,EAAK0vB,WAAWppF,MAC/B,CACJ,CAEA,SAAS6vH,EAAkBC,EAAOC,GAC9B,IAAIC,EAAY,GAAIzmE,EACpB,IAAKA,EAAIumE,EAAOvmE,EAAGA,EAAIA,EAAEq3B,WACrBovC,EAAU7nH,KAAKohD,CAAC,EAGpB,IAAKA,EAAIwmE,EAAOxmE,EAAGA,EAAIA,EAAEq3B,WACrB,GAAI2uC,EAAcS,EAAWzmE,CAAC,EAC1B,OAAOA,EAIf,OAAO,IACX,CAEA,SAAS0mE,EAAaC,EAAUC,EAAYC,GACxC,IAAI7mE,EAAI6mE,EAAiBD,EAAaA,EAAWvvC,WACjD,MAAOr3B,EACH,GAAIA,IAAM2mE,EACN,OAAO,UAEP3mE,EAAIA,EAAEq3B,WAGd,OAAO,KACX,CAEA,SAASyvC,EAAiBH,EAAUC,GAChC,OAAOF,EAAaC,EAAUC,EAAY,IAAI,CAClD,CAEA,SAASG,EAAqB52D,EAAMw2D,EAAUE,GAC1C,IAAIp9G,EAAGu2C,EAAI6mE,EAAiB12D,EAAOA,EAAKknB,WACxC,MAAOr3B,EAAG,CACNv2C,EAAIu2C,EAAEq3B,WACN,GAAI5tE,IAAMk9G,EACN,OAAO3mE,EAEXA,EAAIv2C,CACR,CACA,OAAO,IACX,CAEA,SAASu9G,EAAoB72D,GACzB,IAAIwK,EAAIxK,EAAKwlB,SACb,OAAOhb,GAAK,GAAKA,GAAK,GAAKA,GAAK,CACpC,CAEA,SAASssD,EAAoB92D,GACzB,GAAI,CAACA,EACD,OAAO,MAEX,IAAIwK,EAAIxK,EAAKwlB,SACb,OAAOhb,GAAK,GAAKA,GAAK,CAC1B,CAEA,SAASw+B,EAAYhpC,EAAM+2D,GACvB,IAAIC,EAAWD,EAAc7qC,YAAajzD,EAAS89F,EAAc7vC,WACjE,GAAI8vC,EACA/9F,EAAO0vE,aAAa3oC,EAAMg3D,CAAQ,OAElC/9F,EAAO2kD,YAAY5d,CAAI,EAE3B,OAAOA,CACX,CAGA,SAASi3D,EAAcj3D,EAAMvnC,EAAOy+F,GAChC,IAAIC,EAAUn3D,EAAKygC,UAAU,KAAK,EAClC02B,EAAQC,WAAW,EAAG3+F,CAAK,EAC3BunC,EAAKo3D,WAAW3+F,EAAOunC,EAAK15D,OAASmyB,CAAK,EAC1CuwE,EAAYmuB,EAASn3D,CAAI,EAGzB,GAAIk3D,EACA,IAAK,IAAIhuH,EAAI,EAAG2lD,EAAUA,EAAWqoE,EAAoBhuH,CAAC,KAEtD,GAAI2lD,EAASmR,MAAQA,GAAQnR,EAAS6Q,OAASjnC,EAAO,CAClDo2B,EAASmR,KAAOm3D,EAChBtoE,EAAS6Q,QAAUjnC,CACvB,MAEK,GAAIo2B,EAASmR,MAAQA,EAAKknB,YAAcr4B,EAAS6Q,OAASs2D,EAAah2D,CAAI,EAC5E,EAAEnR,EAAS6Q,OAIvB,OAAOy3D,CACX,CAEA,SAASE,EAAYr3D,GACjB,GAAIA,EAAKwlB,UAAY,EACjB,OAAOxlB,OACJ,GAAI,OAAOA,EAAKylB,eAAiBkwC,EACpC,OAAO31D,EAAKylB,mBACT,GAAI,OAAOzlB,EAAKz/C,UAAYo1G,EAC/B,OAAO31D,EAAKz/C,cACT,GAAIy/C,EAAKknB,WACZ,OAAOmwC,EAAYr3D,EAAKknB,UAAU,OAElC,MAAMrhF,EAAO0vH,YAAY,yCAAyC,CAE1E,CAEA,SAAS+B,EAAUt3D,GACf,IAAI5rB,EAAMijF,EAAYr3D,CAAI,EAC1B,GAAI,OAAO5rB,EAAIsxC,aAAeiwC,EAC1B,OAAOvhF,EAAIsxC,iBACR,GAAI,OAAOtxC,EAAIugE,cAAgBghB,EAClC,OAAOvhF,EAAIugE,kBAEX,MAAM9uG,EAAO0vH,YAAY,qCAAqC,CAEtE,CAEA,SAASgC,EAAkBC,GACvB,GAAI,OAAOA,EAASh+B,iBAAmBm8B,EACnC,OAAO6B,EAASh+B,qBACb,GAAI,OAAOg+B,EAAS72G,eAAiBg1G,EACxC,OAAO6B,EAAS72G,cAAcJ,cAE9B,MAAM1a,EAAO0vH,YAAY,gEAAgE,CAEjG,CAEA,SAASkC,EAAgBD,GACrB,GAAI,OAAOA,EAAS72G,eAAiBg1G,EACjC,OAAO6B,EAAS72G,mBACb,GAAI,OAAO62G,EAASh+B,iBAAmBm8B,EAC1C,OAAO6B,EAASh+B,gBAAgB9T,iBAEhC,MAAM7/E,EAAO0vH,YAAY,4DAA4D,CAE7F,CAGA,SAASnsC,EAAS3yD,GACd,OAAOA,GAAOg8F,EAAKZ,aAAap7F,EAAK,YAAY,GAAKg8F,EAAKX,aAAar7F,EAAK,UAAU,CAC3F,CAEA,SAASihG,EAAmBjhG,EAAK5wB,EAAQssE,GACrC,IAAI/9B,EAEJ,GAAI,CAAC3d,EACD2d,EAAM7zB,cAIL,GAAIkyG,EAAKV,eAAet7F,EAAK,UAAU,EACxC2d,EAAO3d,EAAI+uD,UAAY,GAAK/uD,EAAIkhG,QAAQr4G,YAAY,GAAK,SACrDi4G,EAAkB9gG,CAAG,EAAI4gG,EAAY5gG,CAAG,OAI3C,GAAI2yD,EAAS3yD,CAAG,EACjB2d,EAAM3d,EAAIlW,SAGd,GAAI,CAAC6zB,EACD,MAAMvuC,EAAO0vH,YAAYpjD,EAAa,mDAAmD,EAG7F,OAAO/9B,CACX,CAEA,SAASwjF,EAAiB53D,GACtB,IAAI/mC,EACJ,MAASA,EAAS+mC,EAAKknB,WACnBlnB,EAAO/mC,EAEX,OAAO+mC,CACX,CAEA,SAAS63D,EAAcC,EAAOC,EAASC,EAAOC,GAE1C,IAAIC,EAAOxlF,EAAMylF,EAAQC,EAAQvoE,EACjC,GAAIioE,GAASE,EAET,OAAOD,IAAYE,EAAU,EAAKF,EAAUE,EAAW,CAAC,EAAI,OACzD,GAAMC,EAAQtB,EAAqBoB,EAAOF,EAAO,IAAI,EAExD,OAAOC,GAAW/B,EAAakC,CAAK,EAAI,CAAC,EAAI,OAC1C,GAAMA,EAAQtB,EAAqBkB,EAAOE,EAAO,IAAI,EAExD,OAAOhC,EAAakC,CAAK,EAAID,EAAW,CAAC,EAAI,MAC1C,CACHvlF,EAAOyjF,EAAkB2B,EAAOE,CAAK,EACrC,GAAI,CAACtlF,EACD,MAAM,IAAIltC,MAAM,oDAAoD,EAIxE2yH,EAAUL,IAAUplF,EAAQA,EAAOkkF,EAAqBkB,EAAOplF,EAAM,IAAI,EACzE0lF,EAAUJ,IAAUtlF,EAAQA,EAAOkkF,EAAqBoB,EAAOtlF,EAAM,IAAI,EAEzE,GAAIylF,IAAWC,EAEX,MAAMvyH,EAAO0vH,YAAY,iEAAiE,MACvF,CACH1lE,EAAInd,EAAKmrC,WACT,MAAOhuB,EAAG,CACN,GAAIA,IAAMsoE,EACN,MAAO,CAAC,OACL,GAAItoE,IAAMuoE,EACb,OAAO,EAEXvoE,EAAIA,EAAEq8B,WACV,CACJ,CACJ,CACJ,CAKA,IAAImsC,EAAkB,MAEtB,SAASC,EAAat4D,GAClB,IAAInQ,EACJ,IACIA,EAAImQ,EAAKknB,WACT,OAAO,KAGX,CAFE,MAAO3hF,GACL,OAAO,IACX,CACJ,EAEA,WACI,IAAI6qD,EAAK7vC,SAAS8c,cAAc,GAAG,EACnC+yB,EAAGvvC,UAAY,IACf,IAAI+0G,EAAWxlE,EAAGytB,WAClBztB,EAAGvvC,UAAY,SACfw3G,EAAkBC,EAAa1C,CAAQ,EAEvClD,EAAIG,SAASwF,gBAAkBA,CAClC,GAAE,EAIH,SAASE,EAAYv4D,GACjB,GAAI,CAACA,EACD,MAAO,YAEX,GAAIq4D,GAAmBC,EAAat4D,CAAI,EACpC,MAAO,gBAEX,GAAI62D,EAAoB72D,CAAI,EACxB,MAAO,IAAMA,EAAKt4D,KAAO,IAE7B,GAAIs4D,EAAKwlB,UAAY,EAAG,CACpB,IAAIgzC,EAASx4D,EAAK76D,GAAK,QAAU66D,EAAK76D,GAAK,IAAM,GACjD,MAAO,IAAM66D,EAAK2lB,SAAW6yC,EAAS,WAAaxC,EAAah2D,CAAI,EAAI,WAAaA,EAAK0vB,WAAWppF,OAAS,MAAQ05D,EAAKn/C,WAAa,6BAA6BmE,MAAM,EAAG,EAAE,EAAI,GACxL,CACA,OAAOg7C,EAAK2lB,QAChB,CAEA,SAAS8yC,EAAyBz4D,GAC9B,IAAI8hC,EAAWu1B,EAAYr3D,CAAI,EAAEugC,uBAAuB,EAAGm4B,EAC3D,MAASA,EAAQ14D,EAAK6d,WAClBikB,EAASlkB,YAAY86C,CAAK,EAE9B,OAAO52B,CACX,CAEA,IAAI62B,EACJ,GAAI,OAAO5yH,OAAOsjG,kBAAoBssB,EAClCgD,EAA2B,SAASvoE,EAAIwoE,GACpC,OAAOtB,EAAUlnE,CAAE,EAAEi5C,iBAAiBj5C,EAAI,IAAI,EAAEwoE,EACpD,OACG,GAAI,OAAOr4G,SAAS+nE,gBAAgBuwC,cAAgBlD,EACvDgD,EAA2B,SAASvoE,EAAIwoE,GACpC,OAAOxoE,EAAGyoE,aAAezoE,EAAGyoE,aAAaD,GAAY,EACzD,OAEA/yH,EAAOk0F,KAAK,uDAAuD,EAGvE,SAAS++B,EAAkB1kF,EAAKlsB,EAAM6wG,GAClC,IAAIn4G,EAAO0xG,EAAQl+E,CAAG,EACtB,IAAIgc,EAAKhc,EAAI/W,cAAc,KAAK,EAChC+yB,EAAG2oE,gBAAkB,GAAK,CAAC,CAACA,EAC5B,GAAI7wG,EACAkoC,EAAGvvC,UAAYqH,EAInB,IAAI8wG,EAAiBp4G,EAAKi9D,WAC1B,GAAIm7C,EACAp4G,EAAK+nF,aAAav4C,EAAI4oE,CAAc,OAEpCp4G,EAAKg9D,YAAYxtB,CAAE,EAGvB,OAAOA,CACX,CAEA,SAAS6oE,EAAWj5D,GAChB,OAAOA,EAAKknB,WAAWC,YAAYnnB,CAAI,CAC3C,CAEA,SAASk5D,EAAaxmF,GAClBtlC,KAAKslC,KAAOA,EACZtlC,KAAKmpE,MAAQ7jC,CACjB,CAEAwmF,EAAav+F,UAAY,CACrBw+F,SAAU,KAEVC,QAAS,WACL,MAAO,CAAC,CAAChsH,KAAKmpE,KAClB,EAEAx1D,KAAM,WACF,IAAI8uC,EAAIziD,KAAK+rH,SAAW/rH,KAAKmpE,MAC7B,IAAImiD,EAAO33G,EACX,GAAI3T,KAAK+rH,SAAU,CACfT,EAAQ7oE,EAAEguB,WACV,GAAI66C,EACAtrH,KAAKmpE,MAAQmiD,MACV,CACH33G,EAAO,KACP,MAAQ8uC,IAAMziD,KAAKslC,MAAS,EAAE3xB,EAAO8uC,EAAEq8B,aACnCr8B,EAAIA,EAAEq3B,WAEV95E,KAAKmpE,MAAQx1D,CACjB,CACJ,CACA,OAAO3T,KAAK+rH,QAChB,EAEAzwB,OAAQ,WACJt7F,KAAK+rH,SAAW/rH,KAAKmpE,MAAQnpE,KAAKslC,KAAO,IAC7C,CACJ,EAEA,SAAS2mF,EAAe3mF,GACpB,OAAO,IAAIwmF,EAAaxmF,CAAI,CAChC,CAEA,SAAS4mF,EAAYt5D,EAAMN,GACvBtyD,KAAK4yD,KAAOA,EACZ5yD,KAAKsyD,OAASA,CAClB,CAEA45D,EAAY3+F,UAAY,CACpBwB,OAAQ,SAAS0yE,GACb,MAAO,CAAC,CAACA,GAAOzhG,KAAK4yD,OAAS6uC,EAAI7uC,MAAQ5yD,KAAKsyD,QAAUmvC,EAAInvC,MACjE,EAEAo3C,QAAS,WACL,MAAO,gBAAkByhB,EAAYnrH,KAAK4yD,IAAI,EAAI,IAAM5yD,KAAKsyD,OAAS,IAC1E,EAEAnlD,SAAU,WACN,OAAOnN,KAAK0pG,QAAQ,CACxB,CACJ,EAEA,SAASyiB,EAAaC,GAClBpsH,KAAK3H,KAAO2H,KAAKosH,GACjBpsH,KAAKosH,SAAWA,EAChBpsH,KAAKu6D,QAAU,iBAAmBv6D,KAAKosH,QAC3C,CAEAD,EAAa5+F,UAAY,CACrB8+F,eAAgB,EAChBC,sBAAuB,EACvBC,mBAAoB,EACpBC,4BAA6B,EAC7BC,cAAe,EACfC,kBAAmB,EACnBC,kBAAmB,GACnBC,sBAAuB,EAC3B,EAEAT,EAAa5+F,UAAUpgB,SAAW,WAC9B,OAAOnN,KAAKu6D,OAChB,EAEA+qD,EAAIuH,IAAM,CACNpE,cAAeA,EACfC,gBAAiBA,EACjBltC,cAAeA,EACfotC,aAAcA,EACdE,cAAeA,EACfC,kBAAmBA,EACnBI,aAAcA,EACdI,iBAAkBA,EAClBC,qBAAsBA,EACtBC,oBAAqBA,EACrBC,oBAAqBA,EACrB9tB,YAAaA,EACbiuB,cAAeA,EACfI,YAAaA,EACbC,UAAWA,EACXG,gBAAiBA,EACjBF,kBAAmBA,EACnBjF,QAASA,EACTlpC,SAAUA,EACVsuC,mBAAoBA,EACpBE,iBAAkBA,EAClBC,cAAeA,EACfS,aAAcA,EACdC,YAAaA,EACbI,yBAA0BA,EAC1BG,kBAAmBA,EACnBG,WAAYA,EACZR,yBAA0BA,EAC1BY,eAAgBA,EAChBC,YAAaA,CACjB,EAEA5G,EAAI6G,aAAeA,CACvB,CAAC,EAKD7G,EAAI8C,iBAAiB,WAAY,CAAC,WAAY,SAAS9C,EAAK7sH,GACxD,IAAIo0H,EAAMvH,EAAIuH,IACd,IAAIxH,EAAOC,EAAID,KACf,IAAI6G,EAAcW,EAAIX,YACtB,IAAIC,EAAe7G,EAAI6G,aAEvB,IAAI1C,EAAsBoD,EAAIpD,oBAC9B,IAAIb,EAAeiE,EAAIjE,aACvB,IAAIW,EAAmBsD,EAAItD,iBAC3B,IAAIU,EAAc4C,EAAI5C,YACtB,IAAIQ,EAAgBoC,EAAIpC,cACxB,IAAIZ,EAAgBgD,EAAIhD,cACxB,IAAIL,EAAuBqD,EAAIrD,qBAC/B,IAAIV,EAAgB+D,EAAI/D,cACxB,IAAIL,EAAgBoE,EAAIpE,cACxB,IAAI+B,EAAmBqC,EAAIrC,iBAC3B,IAAIS,EAAkB3F,EAAIG,SAASwF,gBAEnC,IAAIY,EAAagB,EAAIhB,WAMrB,SAASiB,EAA2Bl6D,EAAM6rD,GACtC,OAAQ7rD,EAAKwlB,UAAY,IACjBmxC,EAAiB32D,EAAM6rD,EAAMsO,cAAc,GAAKxD,EAAiB32D,EAAM6rD,EAAMuO,YAAY,EACrG,CAEA,SAASC,EAAiBxO,GACtB,OAAOA,EAAMtrG,UAAY82G,EAAYxL,EAAMsO,cAAc,CAC7D,CAEA,SAASG,EAAazO,GAClB,OAAO+L,EAAiB/L,EAAMsO,cAAc,CAChD,CAEA,SAASI,EAAsBv6D,GAC3B,OAAO,IAAIs5D,EAAYt5D,EAAKknB,WAAY8uC,EAAah2D,CAAI,CAAC,CAC9D,CAEA,SAASw6D,EAAqBx6D,GAC1B,OAAO,IAAIs5D,EAAYt5D,EAAKknB,WAAY8uC,EAAah2D,CAAI,EAAI,CAAC,CAClE,CAEA,SAASy6D,EAAqBz6D,EAAMnQ,EAAGvqD,GACnC,IAAIo1H,EAAoB16D,EAAKwlB,UAAY,GAAKxlB,EAAK6d,WAAa7d,EAChE,GAAI62D,EAAoBhnE,CAAC,EACrB,GAAIvqD,GAAKuqD,EAAEvpD,OACP2zH,EAAIjxB,YAAYhpC,EAAMnQ,CAAC,OAEvBA,EAAEq3B,WAAWyhB,aAAa3oC,EAAM16D,GAAK,EAAIuqD,EAAIonE,EAAcpnE,EAAGvqD,CAAC,CAAC,OAEjE,GAAIA,GAAKuqD,EAAE6/B,WAAWppF,OACzBupD,EAAE+tB,YAAY5d,CAAI,OAElBnQ,EAAE84C,aAAa3oC,EAAMnQ,EAAE6/B,WAAWpqF,EAAE,EAExC,OAAOo1H,CACX,CAEA,SAASC,EAAgBC,EAAQC,EAAQC,GACrCC,EAAiBH,CAAM,EACvBG,EAAiBF,CAAM,EAEvB,GAAIR,EAAiBQ,CAAM,GAAKR,EAAiBO,CAAM,EACnD,MAAM,IAAIrB,EAAa,oBAAoB,EAG/C,IAAIyB,EAAkBnD,EAAc+C,EAAOT,eAAgBS,EAAOK,YAAaJ,EAAOT,aAAcS,EAAOK,SAAS,EAChHC,EAAgBtD,EAAc+C,EAAOR,aAAcQ,EAAOM,UAAWL,EAAOV,eAAgBU,EAAOI,WAAW,EAElH,OAAOH,EAAyBE,GAAmB,GAAKG,GAAiB,EAAIH,EAAkB,GAAKG,EAAgB,CACxH,CAEA,SAASC,EAAatqD,GAClB,IAAIuqD,EACJ,IAAK,IAAIr7D,EAAMs7D,EAAOjB,EAAiBvpD,EAAS+6C,KAAK,EAAEtrB,uBAAuB,EAAGg7B,EAAav7D,EAAO8Q,EAAS/vD,KAAK,GAAK,CACpHs6G,EAAoBvqD,EAAS0qD,2BAA2B,EACxDx7D,EAAOA,EAAKygC,UAAU,CAAC46B,CAAiB,EACxC,GAAIA,EAAmB,CACnBE,EAAczqD,EAAS2qD,mBAAmB,EAC1Cz7D,EAAK4d,YAAYw9C,EAAaG,CAAW,CAAC,EAC1CA,EAAY7yB,OAAO,CACvB,CAEA,GAAI1oC,EAAKwlB,UAAY,GACjB,MAAM,IAAI+zC,EAAa,uBAAuB,EAElD+B,EAAK19C,YAAY5d,CAAI,CACzB,CACA,OAAOs7D,CACX,CAEA,SAASI,EAAeC,EAAe9gC,EAAM+gC,GACzC,IAAIC,EAAIhsE,EACR+rE,EAAgBA,GAAiB,CAAEpmD,KAAM,KAAM,EAC/C,IAAK,IAAIxV,EAAM87D,EAAkB97D,EAAO27D,EAAc56G,KAAK,GACvD,GAAI46G,EAAcH,2BAA2B,EACzC,GAAI3gC,EAAK76B,CAAI,IAAM,MAAO,CACtB47D,EAAcpmD,KAAO,KACrB,MACJ,KAAO,CAGHsmD,EAAmBH,EAAcF,mBAAmB,EACpDC,EAAeI,EAAkBjhC,EAAM+gC,CAAa,EACpDE,EAAiBpzB,OAAO,EACxB,GAAIkzB,EAAcpmD,KACd,MAER,KACG,CAGHqmD,EAAK5B,EAAIZ,eAAer5D,CAAI,EAC5B,MAASnQ,EAAIgsE,EAAG96G,KAAK,EACjB,GAAI85E,EAAKhrC,CAAC,IAAM,MAAO,CACnB+rE,EAAcpmD,KAAO,KACrB,MACJ,CAER,CAER,CAEA,SAASumD,EAAcjrD,GACnB,IAAIyqD,EACJ,MAAOzqD,EAAS/vD,KAAK,EACjB,GAAI+vD,EAAS0qD,2BAA2B,EAAG,CACvCD,EAAczqD,EAAS2qD,mBAAmB,EAC1CM,EAAcR,CAAW,EACzBA,EAAY7yB,OAAO,CACvB,MACI53B,EAASptD,OAAO,CAG5B,CAEA,SAASs4G,EAAelrD,GACpB,IAAK,IAAI9Q,EAAMs7D,EAAOjB,EAAiBvpD,EAAS+6C,KAAK,EAAEtrB,uBAAuB,EAAGg7B,EAAav7D,EAAO8Q,EAAS/vD,KAAK,GAAK,CAEpH,GAAI+vD,EAAS0qD,2BAA2B,EAAG,CACvCx7D,EAAOA,EAAKygC,UAAU,KAAK,EAC3B86B,EAAczqD,EAAS2qD,mBAAmB,EAC1Cz7D,EAAK4d,YAAYo+C,EAAeT,CAAW,CAAC,EAC5CA,EAAY7yB,OAAO,CACvB,MACI53B,EAASptD,OAAO,EAEpB,GAAIs8C,EAAKwlB,UAAY,GACjB,MAAM,IAAI+zC,EAAa,uBAAuB,EAElD+B,EAAK19C,YAAY5d,CAAI,CACzB,CACA,OAAOs7D,CACX,CAEA,SAASW,EAAgBpQ,EAAOqQ,EAAW9wH,GACvC,IAAI+wH,EAAkB,CAAC,EAAED,GAAaA,EAAU51H,QAAS81H,EACzD,IAAIC,EAAe,CAAC,CAACjxH,EACrB,GAAI+wH,EACAC,EAAQ,IAAIl2H,OAAO,KAAOg2H,EAAUljH,KAAK,GAAG,EAAI,IAAI,EAGxD,IAAIqc,EAAQ,GACZqmG,EAAe,IAAIY,EAAczQ,EAAO,KAAK,EAAG,SAAS7rD,GACrD,GAAIm8D,GAAmB,CAACC,EAAMvwE,KAAKmU,EAAKwlB,QAAQ,EAC5C,OAEJ,GAAI62C,GAAgB,CAACjxH,EAAO40D,CAAI,EAC5B,OAIJ,IAAIu8D,EAAK1Q,EAAMsO,eACf,GAAIn6D,GAAQu8D,GAAM1F,EAAoB0F,CAAE,GAAK1Q,EAAMoP,aAAesB,EAAGj2H,OACjE,OAGJ,IAAIk2H,EAAK3Q,EAAMuO,aACf,GAAIp6D,GAAQw8D,GAAM3F,EAAoB2F,CAAE,GAAK3Q,EAAMqP,WAAa,EAC5D,OAGJ7lG,EAAM5mB,KAAKuxD,CAAI,CACnB,CAAC,EACD,OAAO3qC,CACX,CAEA,SAASyhF,EAAQ+U,GACb,IAAIh+G,EAAQ,OAAOg+G,EAAMvmD,SAAW,YAAe,QAAUumD,EAAMvmD,QAAQ,EAC3E,MAAO,IAAMz3D,EAAO,IAAMosH,EAAI1B,YAAY1M,EAAMsO,cAAc,EAAI,IAAMtO,EAAMoP,YAAc,KACpFhB,EAAI1B,YAAY1M,EAAMuO,YAAY,EAAI,IAAMvO,EAAMqP,UAAY,IAC1E,CAMA,SAASoB,EAAczQ,EAAO4Q,GAC1BrvH,KAAKy+G,MAAQA,EACbz+G,KAAKqvH,gCAAkCA,EAGvC,GAAI,CAAC5Q,EAAM6Q,UAAW,CAClBtvH,KAAKmvH,GAAK1Q,EAAMsO,eAChB/sH,KAAKuvH,GAAK9Q,EAAMoP,YAChB7tH,KAAKovH,GAAK3Q,EAAMuO,aAChBhtH,KAAKwvH,GAAK/Q,EAAMqP,UAChB,IAAIxoF,EAAOm5E,EAAMgR,wBAEjB,GAAIzvH,KAAKmvH,KAAOnvH,KAAKovH,IAAM3F,EAAoBzpH,KAAKmvH,EAAE,EAAG,CACrDnvH,KAAK0vH,0BAA4B,KACjC1vH,KAAK2vH,OAAS3vH,KAAK4vH,MAAQ5vH,KAAKmpE,MAAQnpE,KAAKmvH,EACjD,KAAO,CACHnvH,KAAK2vH,OAAS3vH,KAAKmpE,MAASnpE,KAAKmvH,KAAO7pF,GAAQ,CAACmkF,EAAoBzpH,KAAKmvH,EAAE,EACxEnvH,KAAKmvH,GAAG7sC,WAAWtiF,KAAKuvH,IAAM/F,EAAqBxpH,KAAKmvH,GAAI7pF,EAAM,IAAI,EAC1EtlC,KAAK4vH,MAAS5vH,KAAKovH,KAAO9pF,GAAQ,CAACmkF,EAAoBzpH,KAAKovH,EAAE,EAC1DpvH,KAAKovH,GAAG9sC,WAAWtiF,KAAKwvH,GAAK,GAAKhG,EAAqBxpH,KAAKovH,GAAI9pF,EAAM,IAAI,CAClF,CACJ,CACJ,CAEA4pF,EAAc3hG,UAAY,CACtBw+F,SAAU,KACV5iD,MAAO,KACPwmD,OAAQ,KACRC,MAAO,KACPF,0BAA2B,MAE3Bp0E,MAAO,WACHt7C,KAAK+rH,SAAW,KAChB/rH,KAAKmpE,MAAQnpE,KAAK2vH,MACtB,EAEA3D,QAAS,WACL,MAAO,CAAC,CAAChsH,KAAKmpE,KAClB,EAEAx1D,KAAM,WAEF,IAAIzX,EAAU8D,KAAK+rH,SAAW/rH,KAAKmpE,MACnC,GAAIjtE,EAAS,CACT8D,KAAKmpE,MAASjtE,IAAY8D,KAAK4vH,MAAS1zH,EAAQ4iF,YAAc,KAG9D,GAAI2qC,EAAoBvtH,CAAO,GAAK8D,KAAKqvH,gCAAiC,CACtE,GAAInzH,IAAY8D,KAAKovH,IAChBlzH,EAAUA,EAAQm3F,UAAU,IAAI,GAAG22B,WAAWhqH,KAAKwvH,GAAItzH,EAAQhD,OAAS8G,KAAKwvH,EAAE,EAEpF,GAAIxvH,KAAK+rH,WAAa/rH,KAAKmvH,IACtBjzH,EAAUA,EAAQm3F,UAAU,IAAI,GAAG22B,WAAW,EAAGhqH,KAAKuvH,EAAE,CAEjE,CACJ,CAEA,OAAOrzH,CACX,EAEAoa,OAAQ,WACJ,IAAIpa,EAAU8D,KAAK+rH,SAAUrjG,EAAOD,EAEpC,GAAIghG,EAAoBvtH,CAAO,IAAMA,IAAY8D,KAAKmvH,IAAMjzH,IAAY8D,KAAKovH,IAAK,CAC9E1mG,EAASxsB,IAAY8D,KAAKmvH,GAAMnvH,KAAKuvH,GAAK,EAC1C9mG,EAAOvsB,IAAY8D,KAAKovH,GAAMpvH,KAAKwvH,GAAKtzH,EAAQhD,OAChD,GAAIwvB,GAASD,EACTvsB,EAAQ8tH,WAAWthG,EAAOD,EAAMC,CAAK,CAE7C,MACI,GAAIxsB,EAAQ49E,WACR+xC,EAAW3vH,CAAO,OAI9B,EAGAkyH,2BAA4B,WACxB,IAAIlyH,EAAU8D,KAAK+rH,SACnB,OAAOe,EAA2B5wH,EAAS8D,KAAKy+G,KAAK,CACzD,EAEA4P,mBAAoB,WAChB,IAAIwB,EACJ,GAAI7vH,KAAK0vH,0BAA2B,CAChCG,EAAW7vH,KAAKy+G,MAAMqR,WAAW,EACjCD,EAAStkG,SAAS,KAAK,CAC3B,KAAO,CACHskG,EAAW,IAAIE,EAAM9C,EAAiBjtH,KAAKy+G,KAAK,CAAC,EACjD,IAAIviH,EAAU8D,KAAK+rH,SACnB,IAAIgB,EAAiB7wH,EAAS2xH,EAAc,EAAGb,EAAe9wH,EAAS4xH,EAAYhF,EAAc5sH,CAAO,EAExG,GAAIqtH,EAAiBrtH,EAAS8D,KAAKmvH,EAAE,EAAG,CACpCpC,EAAiB/sH,KAAKmvH,GACtBtB,EAAc7tH,KAAKuvH,EACvB,CACA,GAAIhG,EAAiBrtH,EAAS8D,KAAKovH,EAAE,EAAG,CACpCpC,EAAehtH,KAAKovH,GACpBtB,EAAY9tH,KAAKwvH,EACrB,CAEAQ,EAAiBH,EAAU9C,EAAgBc,EAAab,EAAcc,CAAS,CACnF,CACA,OAAO,IAAIoB,EAAcW,EAAU7vH,KAAKqvH,+BAA+B,CAC3E,EAEA/zB,OAAQ,WACJt7F,KAAKy+G,MAAQz+G,KAAK+rH,SAAW/rH,KAAKmpE,MAAQnpE,KAAK2vH,OAAS3vH,KAAK4vH,MAAQ5vH,KAAKmvH,GAAKnvH,KAAKuvH,GAAKvvH,KAAKovH,GAAKpvH,KAAKwvH,GAAK,IACjH,CACJ,EAIA,IAAIS,EAAuB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC9C,IAAIC,EAAyB,CAAC,EAAG,EAAG,IACpC,IAAIC,EAAoB,CAAC,EAAG,EAAG,GAAI,IACnC,IAAIC,EAAsB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IACjD,IAAIC,EAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAExC,SAASC,EAAqBxB,GAC1B,OAAO,SAASl8D,EAAM02D,GAClB,IAAIlsD,EAAG3a,EAAI6mE,EAAiB12D,EAAOA,EAAKknB,WACxC,MAAOr3B,EAAG,CACN2a,EAAI3a,EAAE21B,SACN,GAAIqwC,EAAcqG,EAAW1xD,CAAC,EAC1B,OAAO3a,EAEXA,EAAIA,EAAEq3B,UACV,CACA,OAAO,IACX,CACJ,CAEA,IAAIy2C,EAAiCD,EAAsB,CAAC,EAAG,GAAI,EACnE,IAAIE,EAAsBF,EAAqBH,CAAiB,EAChE,IAAIM,EAAmCH,EAAsB,CAAC,EAAG,GAAI,GAAI,EACzE,IAAII,EAAqBJ,EAAsB,CAAC,EAAG,EAEnD,SAASK,EAAsC/9D,EAAMg+D,GACjD,GAAIH,EAAiC79D,EAAMg+D,CAAS,EAChD,MAAM,IAAIzE,EAAa,uBAAuB,CAEtD,CAEA,SAAS0E,EAAoBj+D,EAAMk+D,GAC/B,GAAI,CAACrI,EAAcqI,EAAcl+D,EAAKwlB,QAAQ,EAC1C,MAAM,IAAI+zC,EAAa,uBAAuB,CAEtD,CAEA,SAAS4E,EAAkBn+D,EAAMN,GAC7B,GAAIA,EAAS,GAAKA,GAAUm3D,EAAoB72D,CAAI,EAAIA,EAAK15D,OAAS05D,EAAK0vB,WAAWppF,QAClF,MAAM,IAAIizH,EAAa,gBAAgB,CAE/C,CAEA,SAAS6E,EAA6BhI,EAAOC,GACzC,GAAIsH,EAA+BvH,EAAO,IAAI,IAAMuH,EAA+BtH,EAAO,IAAI,EAC1F,MAAM,IAAIkD,EAAa,oBAAoB,CAEnD,CAEA,SAAS8E,EAAsBr+D,GAC3B,GAAI49D,EAAoB59D,EAAM,IAAI,EAC9B,MAAM,IAAIu5D,EAAa,6BAA6B,CAE5D,CAEA,SAAS+E,GAAWt+D,EAAMw5D,GACtB,GAAI,CAACx5D,EACD,MAAM,IAAIu5D,EAAaC,CAAQ,CAEvC,CAEA,SAAS+E,GAAcv+D,EAAMN,GACzB,OAAOA,IAAWm3D,EAAoB72D,CAAI,EAAIA,EAAK15D,OAAS05D,EAAK0vB,WAAWppF,OAChF,CAEA,SAASk4H,GAAa3S,GAClB,MAAQ,CAAC,CAACA,EAAMsO,gBAAkB,CAAC,CAACtO,EAAMuO,cAClC,EAAE/B,IAAoB4B,EAAI3B,aAAazM,EAAMsO,cAAc,GAAKF,EAAI3B,aAAazM,EAAMuO,YAAY,KACnGxC,EAAiB/L,EAAMsO,cAAc,GAAKvC,EAAiB/L,EAAMuO,YAAY,GAC7EmE,GAAc1S,EAAMsO,eAAgBtO,EAAMoP,WAAW,GACrDsD,GAAc1S,EAAMuO,aAAcvO,EAAMqP,SAAS,CAC7D,CAEA,SAASH,EAAiBlP,GACtB,GAAI,CAAC2S,GAAa3S,CAAK,EACnB,MAAM,IAAIrmH,MAAM,qFAAuFqmH,EAAM/U,QAAQ,EAAI,GAAG,CAEpI,CAKA,IAAI2nB,GAAUl+G,SAAS8c,cAAc,OAAO,EAC5C,IAAIqhG,EAAsB,MAC1B,IACID,GAAQ59G,UAAY,WACpB69G,EAAuBD,GAAQ5gD,WAAW2H,UAAY,CAG1D,CAFE,MAAOjgF,IAITmtH,EAAIG,SAAS6L,oBAAsBA,EAEnC,IAAIC,GAA2BD,EAM3B,SAASE,GAEL,IAAI5+D,EAAO5yD,KAAK+sH,eAChB,IAAI/lF,EAAMijF,EAAYr3D,CAAI,EAI1B,GAAI,CAACA,EACD,MAAM,IAAIu5D,EAAa,mBAAmB,EAK9C,IAAInpE,EAAK,KAGT,GAAI4P,EAAKwlB,UAAY,EACjBp1B,EAAK4P,OAGF,GAAI62D,EAAoB72D,CAAI,EAC/B5P,EAAK6pE,EAAIrxC,cAAc5oB,CAAI,EAM/B,GAAI5P,IAAO,MACPA,EAAGu1B,UAAY,QACfs0C,EAAInE,gBAAgBuB,EAAYjnE,CAAE,EAAEk4B,eAAe,GACnD2xC,EAAInE,gBAAgB1lE,CAAE,EAKtBA,EAAKhc,EAAI/W,cAAc,MAAM,OAE7B+yB,EAAKA,EAAGqwC,UAAU,KAAK,EAO3BrwC,EAAGvvC,UAAY+9G,EAQf,OAAO3E,EAAIxB,yBAAyBroE,CAAE,CAC1C,EAIA,SAASwuE,GACL,IAAIxqF,EAAMimF,EAAiBjtH,IAAI,EAC/B,IAAIgjD,EAAKhc,EAAI/W,cAAc,MAAM,EACjC+yB,EAAGvvC,UAAY+9G,EAEf,OAAO3E,EAAIxB,yBAAyBroE,CAAE,CAC1C,EAEJ,SAASyuE,GAAqBhT,EAAOqL,GACjC6D,EAAiBlP,CAAK,EAEtB,IAAI0Q,EAAK1Q,EAAMsO,eAAgBwC,EAAK9Q,EAAMoP,YAAauB,EAAK3Q,EAAMuO,aAAcwC,EAAK/Q,EAAMqP,UAC3F,IAAI4D,EAAgBvC,IAAOC,EAE3B,GAAI3F,EAAoB2F,CAAE,GAAKI,EAAK,GAAKA,EAAKJ,EAAGl2H,OAC7C2wH,EAAcuF,EAAII,EAAI1F,CAAmB,EAG7C,GAAIL,EAAoB0F,CAAE,GAAKI,EAAK,GAAKA,EAAKJ,EAAGj2H,OAAQ,CACrDi2H,EAAKtF,EAAcsF,EAAII,EAAIzF,CAAmB,EAC9C,GAAI4H,EAAc,CACdlC,GAAMD,EACNH,EAAKD,CACT,MAAO,GAAIC,GAAMD,EAAGr1C,YAAc01C,GAAM5G,EAAauG,CAAE,EACnDK,CAAE,GAEND,EAAK,CACT,CACA9Q,EAAMkT,eAAexC,EAAII,EAAIH,EAAII,CAAE,CACvC,CAEA,SAASoC,GAAYnT,GACjBkP,EAAiBlP,CAAK,EACtB,IAAI/hB,EAAY+hB,EAAMgR,wBAAwB31C,WAAWuZ,UAAU,KAAK,EACxEqJ,EAAUlsB,YAAaiuC,EAAMoT,cAAc,CAAE,EAC7C,OAAOn1B,EAAUjpF,SACrB,CAIA,IAAIq+G,EAAkB,CAAC,iBAAkB,cAAe,eAAgB,YAAa,YACjF,2BAEJ,IAAIC,EAAM,EAAGC,GAAM,EAAGC,GAAM,EAAGC,GAAM,EACrC,IAAIC,GAAM,EAAGC,GAAM,EAAGC,GAAQ,EAAGC,EAAM,EAEvCjN,EAAK7qG,OAAO8qG,EAAI+C,eAAgB,CAC5BkK,sBAAuB,SAASC,EAAK/T,GACjCkP,EAAiB3tH,IAAI,EACrBgxH,EAA6BhxH,KAAK+sH,eAAgBtO,EAAMsO,cAAc,EAEtE,IAAIrC,EAAOC,EAASC,EAAOC,EAC3B,IAAI4H,EAAWD,GAAON,IAAOM,GAAOT,EAAO,QAAU,MACrD,IAAIW,EAAWF,GAAOR,IAAOQ,GAAOT,EAAO,QAAU,MACrDrH,EAAQ1qH,KAAKyyH,EAAU,aACvB9H,EAAU3qH,KAAKyyH,EAAU,UACzB7H,EAAQnM,EAAMiU,EAAU,aACxB7H,EAAUpM,EAAMiU,EAAU,UAC1B,OAAOjI,EAAcC,EAAOC,EAASC,EAAOC,CAAO,CACvD,EAEA8H,WAAY,SAAS//D,GACjB+6D,EAAiB3tH,IAAI,EACrB6wH,EAAoBj+D,EAAMw9D,CAAmB,EAC7Ca,EAAsBjxH,KAAK+sH,cAAc,EAEzC,GAAIxD,EAAiB32D,EAAM5yD,KAAK+sH,cAAc,EAC1C,MAAM,IAAIZ,EAAa,uBAAuB,EAOlD,IAAImB,EAAoBD,EAAqBz6D,EAAM5yD,KAAK+sH,eAAgB/sH,KAAK6tH,WAAW,EACxF7tH,KAAK4yH,eAAetF,CAAiB,CACzC,EAEAuE,cAAe,WACXlE,EAAiB3tH,IAAI,EAErB,IAAI09E,EAAOwwC,EACX,GAAIluH,KAAKsvH,UACL,OAAOrC,EAAiBjtH,IAAI,EAAEmzF,uBAAuB,MAClD,CACH,GAAInzF,KAAK+sH,iBAAmB/sH,KAAKgtH,cAAgBvD,EAAoBzpH,KAAK+sH,cAAc,EAAG,CACvFrvC,EAAQ19E,KAAK+sH,eAAe15B,UAAU,IAAI,EAC1C3V,EAAMpjF,KAAOojF,EAAMpjF,KAAKsd,MAAM5X,KAAK6tH,YAAa7tH,KAAK8tH,SAAS,EAC9DI,EAAOjB,EAAiBjtH,IAAI,EAAEmzF,uBAAuB,EACrD+6B,EAAK19C,YAAYkN,CAAK,EACtB,OAAOwwC,CACX,KAAO,CACH,IAAIxqD,EAAW,IAAIwrD,EAAclvH,KAAM,IAAI,EAC3C09E,EAAQswC,EAAatqD,CAAQ,EAC7BA,EAAS43B,OAAO,CACpB,CACA,OAAO5d,CACX,CACJ,EAEAm1C,oBAAqB,WACjBlF,EAAiB3tH,IAAI,EACrBixH,EAAsBjxH,KAAK+sH,cAAc,EACzCkE,EAAsBjxH,KAAKgtH,YAAY,EAIvC,IAAItpD,EAAW,IAAIwrD,EAAclvH,KAAM,IAAI,EAC3C,IAAI8yH,EAAqBpvD,EAASisD,QAAW7C,EAA2BppD,EAASisD,OAAQ3vH,IAAK,GACrF0jE,EAASksD,OAAS9C,EAA2BppD,EAASksD,MAAO5vH,IAAI,EAC1E0jE,EAAS43B,OAAO,EAChB,MAAO,CAACw3B,CACZ,EAEAC,iBAAkB,SAASngE,GACvBi+D,EAAoBj+D,EAAMy9D,CAAiB,EAE3C,GAAI,CAACrwH,KAAK6yH,oBAAoB,EAC1B,MAAM,IAAI1G,EAAa,mBAAmB,EAI9C,IAAI1yE,EAAUz5C,KAAKgzH,gBAAgB,EAGnC,GAAIpgE,EAAKqgE,cAAc,EACnB,MAAOrgE,EAAKy0B,UACRz0B,EAAKmnB,YAAYnnB,EAAKy0B,SAAS,EAKvCgmC,EAAqBz6D,EAAM5yD,KAAK+sH,eAAgB/sH,KAAK6tH,WAAW,EAChEj7D,EAAK4d,YAAY/2B,CAAO,EAExBz5C,KAAKkzH,WAAWtgE,CAAI,CACxB,EAEAk9D,WAAY,WACRnC,EAAiB3tH,IAAI,EACrB,IAAIy+G,EAAQ,IAAIsR,EAAM9C,EAAiBjtH,IAAI,CAAC,EAC5C,IAAIlE,EAAIg2H,EAAgB54H,OAAQo0B,EAChC,MAAOxxB,CAAC,GAAI,CACRwxB,EAAOwkG,EAAgBh2H,GACvB2iH,EAAMnxF,GAAQttB,KAAKstB,EACvB,CACA,OAAOmxF,CACX,EAEAtxG,SAAU,WACNwgH,EAAiB3tH,IAAI,EACrB,IAAImvH,EAAKnvH,KAAK+sH,eACd,GAAIoC,IAAOnvH,KAAKgtH,cAAgBvD,EAAoB0F,CAAE,EAClD,OAAQA,EAAG/2C,UAAY,GAAK+2C,EAAG/2C,UAAY,EAAK+2C,EAAG70H,KAAKsd,MAAM5X,KAAK6tH,YAAa7tH,KAAK8tH,SAAS,EAAI,OAC/F,CACH,IAAIqF,EAAY,GAAIzvD,EAAW,IAAIwrD,EAAclvH,KAAM,IAAI,EAC3DsuH,EAAe5qD,EAAU,SAAS9Q,GAE9B,GAAIA,EAAKwlB,UAAY,GAAKxlB,EAAKwlB,UAAY,EACvC+6C,EAAU9xH,KAAKuxD,EAAKt4D,IAAI,CAEhC,CAAC,EACDopE,EAAS43B,OAAO,EAChB,OAAO63B,EAAUvnH,KAAK,EAAE,CAC5B,CACJ,EAKAwnH,YAAa,SAASxgE,GAClB+6D,EAAiB3tH,IAAI,EAErB,IAAI6rB,EAAS+mC,EAAKknB,WAClB,IAAI5uD,EAAY09F,EAAah2D,CAAI,EAEjC,GAAI,CAAC/mC,EACD,MAAM,IAAIsgG,EAAa,eAAe,EAG1C,IAAIyB,EAAkB5tH,KAAKqzH,aAAaxnG,EAAQX,CAAS,EACrD6iG,EAAgB/tH,KAAKqzH,aAAaxnG,EAAQX,EAAY,CAAC,EAE3D,GAAI0iG,EAAkB,EAClB,OAAQG,EAAgB,EAAKsE,GAAQF,QAErC,OAAQpE,EAAgB,EAAKqE,GAAME,CAE3C,EAEAe,aAAc,SAASzgE,EAAMN,GACzBq7D,EAAiB3tH,IAAI,EACrBkxH,GAAWt+D,EAAM,uBAAuB,EACxCo+D,EAA6Bp+D,EAAM5yD,KAAK+sH,cAAc,EAEtD,GAAItC,EAAc73D,EAAMN,EAAQtyD,KAAK+sH,eAAgB/sH,KAAK6tH,WAAW,EAAI,EACrE,MAAO,CAAC,OACL,GAAIpD,EAAc73D,EAAMN,EAAQtyD,KAAKgtH,aAAchtH,KAAK8tH,SAAS,EAAI,EACxE,OAAO,EAEX,OAAO,CACX,EAEAyD,yBAA0BA,GAE1B+B,OAAQ,WACJ,OAAO1B,GAAY5xH,IAAI,CAC3B,EAIAuzH,eAAgB,SAAS3gE,EAAM86D,GAC3BC,EAAiB3tH,IAAI,EACrB,GAAIwqH,EAAiB53D,CAAI,GAAKs6D,EAAaltH,IAAI,EAC3C,OAAO,MAGX,IAAI6rB,EAAS+mC,EAAKknB,WAAYxnB,EAASs2D,EAAah2D,CAAI,EACxD,GAAI,CAAC/mC,EACD,OAAO,KAGX,IAAI+hG,EAAkBnD,EAAc5+F,EAAQymC,EAAQtyD,KAAKgtH,aAAchtH,KAAK8tH,SAAS,EACjFC,EAAgBtD,EAAc5+F,EAAQymC,EAAS,EAAGtyD,KAAK+sH,eAAgB/sH,KAAK6tH,WAAW,EAE3F,OAAOH,EAAyBE,GAAmB,GAAKG,GAAiB,EAAIH,EAAkB,GAAKG,EAAgB,CACxH,EAEAyF,eAAgB,SAAS5gE,EAAMN,GAC3Bq7D,EAAiB3tH,IAAI,EACrBkxH,GAAWt+D,EAAM,uBAAuB,EACxCo+D,EAA6Bp+D,EAAM5yD,KAAK+sH,cAAc,EAEtD,OAAQtC,EAAc73D,EAAMN,EAAQtyD,KAAK+sH,eAAgB/sH,KAAK6tH,WAAW,GAAK,GACtEpD,EAAc73D,EAAMN,EAAQtyD,KAAKgtH,aAAchtH,KAAK8tH,SAAS,GAAK,CAC9E,EAKA2F,gBAAiB,SAAShV,GACtB,OAAO8O,EAAgBvtH,KAAMy+G,EAAO,KAAK,CAC7C,EAGAiV,yBAA0B,SAASjV,GAC/B,OAAO8O,EAAgBvtH,KAAMy+G,EAAO,IAAI,CAC5C,EAEAf,aAAc,SAASe,GACnB,GAAIz+G,KAAKyzH,gBAAgBhV,CAAK,EAAG,CAC7B,IAAImP,EAAkBnD,EAAczqH,KAAK+sH,eAAgB/sH,KAAK6tH,YAAapP,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAC9GE,EAAgBtD,EAAczqH,KAAKgtH,aAAchtH,KAAK8tH,UAAWrP,EAAMuO,aAAcvO,EAAMqP,SAAS,EAExG,IAAI6F,EAAoB3zH,KAAK8vH,WAAW,EACxC,GAAIlC,GAAmB,CAAC,EACpB+F,EAAkBC,SAASnV,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAEtE,GAAIE,GAAiB,EACjB4F,EAAkBE,OAAOpV,EAAMuO,aAAcvO,EAAMqP,SAAS,EAEhE,OAAO6F,CACX,CACA,OAAO,IACX,EAEA3U,MAAO,SAASP,GACZ,GAAIz+G,KAAK0zH,yBAAyBjV,CAAK,EAAG,CACtC,IAAIqV,EAAa9zH,KAAK8vH,WAAW,EACjC,GAAIrF,EAAchM,EAAMsO,eAAgBtO,EAAMoP,YAAa7tH,KAAK+sH,eAAgB/sH,KAAK6tH,WAAW,GAAK,CAAC,EAClGiG,EAAWF,SAASnV,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAE/D,GAAIpD,EAAchM,EAAMuO,aAAcvO,EAAMqP,UAAW9tH,KAAKgtH,aAAchtH,KAAK8tH,SAAS,GAAK,EACzFgG,EAAWD,OAAOpV,EAAMuO,aAAcvO,EAAMqP,SAAS,EAEzD,OAAOgG,CACX,MACI,MAAM,IAAI3H,EAAa,yBAAyB,CAExD,EAEA4H,aAAc,SAASnhE,EAAMohE,GACzB,GAAIA,EACA,OAAOh0H,KAAKuzH,eAAe3gE,EAAM,KAAK,OAEtC,OAAO5yD,KAAKozH,YAAYxgE,CAAI,GAAK0/D,CAEzC,EAEA2B,qBAAsB,SAASrhE,GAC3B,OAAO5yD,KAAKqzH,aAAazgE,EAAM,CAAC,GAAK,GAAK5yD,KAAKqzH,aAAazgE,EAAMk2D,EAAcl2D,CAAI,CAAC,GAAK,CAC9F,EAEAshE,cAAe,SAASzV,GACpB,IAAIf,EAAe19G,KAAK09G,aAAae,CAAK,EAC1C,OAAOf,IAAiB,MAAQe,EAAM1vF,OAAO2uF,CAAY,CAC7D,EAEAyW,iBAAkB,SAASvhE,GACvB,IAAIwhE,EAAYp0H,KAAK8vH,WAAW,EAChCsE,EAAUlB,WAAWtgE,CAAI,EACzB,IAAIyhE,EAAYD,EAAUE,SAAS,CAAC,EAAE,EACtC,GAAID,EAAUn7H,OAAS,EAAG,CACtBk7H,EAAUR,SAASS,EAAU,GAAI,CAAC,EAClC,IAAIE,EAAeF,EAAU5sE,IAAI,EACjC2sE,EAAUP,OAAOU,EAAcA,EAAar7H,MAAM,EAClD,OAAO8G,KAAKk0H,cAAcE,CAAS,CACvC,MACI,OAAOp0H,KAAKi0H,qBAAqBrhE,CAAI,CAE7C,EAEA0hE,SAAU,SAASxF,EAAW9wH,GAC1B2vH,EAAiB3tH,IAAI,EACrB,OAAO6uH,EAAgB7uH,KAAM8uH,EAAW9wH,CAAM,CAClD,EAEAisH,YAAa,WACT,OAAOgD,EAAiBjtH,IAAI,CAChC,EAEAw0H,eAAgB,SAAS5hE,GACrB5yD,KAAKy0H,aAAa7hE,CAAI,EACtB5yD,KAAKurB,SAAS,KAAK,CACvB,EAEAmpG,cAAe,SAAS9hE,GACpB5yD,KAAK20H,cAAc/hE,CAAI,EACvB5yD,KAAKurB,SAAS,IAAI,CACtB,EAEAqpG,YAAa,SAASC,GAClB,IAAI7tF,EAAMimF,EAAiBjtH,IAAI,EAC/B,IAAI80H,EAAoBxP,EAAIuB,YAAY7/E,CAAG,EAC3C6tF,EAAgBA,GAAiBhI,EAAI3H,QAAQl+E,CAAG,EAChD8tF,EAAkBC,mBAAmBF,CAAa,EAClD,IAAIpW,EAAQz+G,KAAK09G,aAAaoX,CAAiB,EAC/C,IAAIpsG,EAAQ,EAAGD,EAAM,EACrB,GAAIg2F,EAAO,CACPqW,EAAkBjB,OAAOpV,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAChEnlG,EAAQosG,EAAkB3nH,SAAS,EAAEjU,OACrCuvB,EAAMC,EAAQ+1F,EAAMtxG,SAAS,EAAEjU,MACnC,CAEA,MAAO,CACHwvB,MAAOA,EACPD,IAAKA,EACLosG,cAAeA,CACnB,CACJ,EAEAG,eAAgB,SAASC,GACrB,IAAIJ,EAAgBI,EAASJ,cAC7B,IAAIK,EAAY,EAChBl1H,KAAK4zH,SAASiB,EAAe,CAAC,EAC9B70H,KAAKurB,SAAS,IAAI,EAClB,IAAI4pG,EAAY,CAACN,GAAgBjiE,EAAMwiE,EAAa,MAAOhtD,EAAO,MAClE,IAAIitD,EAAev5H,EAAGwmF,EAEtB,MAAO,CAACla,IAASxV,EAAOuiE,EAAU1tE,IAAI,GAClC,GAAImL,EAAKwlB,UAAY,EAAG,CACpBi9C,EAAgBH,EAAYtiE,EAAK15D,OACjC,GAAI,CAACk8H,GAAcH,EAASvsG,OAASwsG,GAAaD,EAASvsG,OAAS2sG,EAAe,CAC/Er1H,KAAK4zH,SAAShhE,EAAMqiE,EAASvsG,MAAQwsG,CAAS,EAC9CE,EAAa,IACjB,CACA,GAAIA,GAAcH,EAASxsG,KAAOysG,GAAaD,EAASxsG,KAAO4sG,EAAe,CAC1Er1H,KAAK6zH,OAAOjhE,EAAMqiE,EAASxsG,IAAMysG,CAAS,EAC1C9sD,EAAO,IACX,CACA8sD,EAAYG,CAChB,KAAO,CACH/yC,EAAa1vB,EAAK0vB,WAClBxmF,EAAIwmF,EAAWppF,OACf,MAAO4C,CAAC,GACJq5H,EAAU9zH,KAAKihF,EAAWxmF,EAAE,CAEpC,CAER,EAEAo8D,QAAS,WACL,MAAO,UACX,EAEAnpC,OAAQ,SAAS0vF,GACb,OAAOsR,EAAMuF,YAAYt1H,KAAMy+G,CAAK,CACxC,EAEA8W,QAAS,WACL,OAAOnE,GAAapxH,IAAI,CAC5B,EAEA0pG,QAAS,WACL,OAAOA,EAAQ1pG,IAAI,CACvB,EAEAs7F,OAAQ,YAGZ,CAAC,EAED,SAASk6B,GAAgCnsG,GACrCA,EAAIosG,eAAiB1D,EACrB1oG,EAAIqsG,aAAe1D,GACnB3oG,EAAIssG,WAAa1D,GACjB5oG,EAAIusG,aAAe1D,GAEnB7oG,EAAIwsG,YAAc1D,GAClB9oG,EAAIysG,WAAa1D,GACjB/oG,EAAI0sG,sBAAwB1D,GAC5BhpG,EAAI2sG,YAAc1D,CACtB,CAEA,SAAS2D,GAAwBtuD,GAC7B6tD,GAAgC7tD,CAAW,EAC3C6tD,GAAgC7tD,EAAYp6C,SAAS,CACzD,CAEA,SAAS2oG,GAA0BC,EAASC,GACxC,OAAO,WACHzI,EAAiB3tH,IAAI,EAErB,IAAImvH,EAAKnvH,KAAK+sH,eAAgBwC,EAAKvvH,KAAK6tH,YAAavoF,EAAOtlC,KAAKyvH,wBAEjE,IAAI/rD,EAAW,IAAIwrD,EAAclvH,KAAM,IAAI,EAG3C,IAAI4yD,EAAMyjE,EACV,GAAIlH,IAAO7pF,EAAM,CACbstB,EAAO42D,EAAqB2F,EAAI7pF,EAAM,IAAI,EAC1C+wF,EAAWjJ,EAAqBx6D,CAAI,EACpCu8D,EAAKkH,EAASzjE,KACd28D,EAAK8G,EAAS/jE,MAClB,CAGAg8D,EAAe5qD,EAAUutD,CAAqB,EAE9CvtD,EAASpoB,MAAM,EAGf,IAAIq8C,EAAcw+B,EAAQzyD,CAAQ,EAClCA,EAAS43B,OAAO,EAGhB86B,EAAgBp2H,KAAMmvH,EAAII,EAAIJ,EAAII,CAAE,EAEpC,OAAO53B,CACX,CACJ,CAEA,SAAS2+B,GAAqB3uD,EAAayuD,GACvC,SAASG,EAA4BC,EAAUC,GAC3C,OAAO,SAAS7jE,GACZi+D,EAAoBj+D,EAAMq9D,CAAoB,EAC9CY,EAAoBrG,EAAiB53D,CAAI,EAAGs9D,CAAsB,EAElE,IAAImG,GAAYG,EAAWrJ,EAAwBC,GAAsBx6D,CAAI,GAC5E6jE,EAAUC,EAAgBC,GAAa32H,KAAMq2H,EAASzjE,KAAMyjE,EAAS/jE,MAAM,CAChF,CACJ,CAEA,SAASokE,EAAcjY,EAAO7rD,EAAMN,GAChC,IAAI88D,EAAK3Q,EAAMuO,aAAcwC,EAAK/Q,EAAMqP,UACxC,GAAIl7D,IAAS6rD,EAAMsO,gBAAkBz6D,IAAWmsD,EAAMoP,YAAa,CAG/D,GAAIrD,EAAiB53D,CAAI,GAAK43D,EAAiB4E,CAAE,GAAK3E,EAAc73D,EAAMN,EAAQ88D,EAAII,CAAE,GAAK,EAAG,CAC5FJ,EAAKx8D,EACL48D,EAAKl9D,CACT,CACA8jE,EAAgB3X,EAAO7rD,EAAMN,EAAQ88D,EAAII,CAAE,CAC/C,CACJ,CAEA,SAASmH,EAAYlY,EAAO7rD,EAAMN,GAC9B,IAAI68D,EAAK1Q,EAAMsO,eAAgBwC,EAAK9Q,EAAMoP,YAC1C,GAAIj7D,IAAS6rD,EAAMuO,cAAgB16D,IAAWmsD,EAAMqP,UAAW,CAG3D,GAAItD,EAAiB53D,CAAI,GAAK43D,EAAiB2E,CAAE,GAAK1E,EAAc73D,EAAMN,EAAQ68D,EAAII,CAAE,GAAK,CAAC,EAAG,CAC7FJ,EAAKv8D,EACL28D,EAAKj9D,CACT,CACA8jE,EAAgB3X,EAAO0Q,EAAII,EAAI38D,EAAMN,CAAM,CAC/C,CACJ,CAGA,IAAIskE,EAAI,aACRA,EAAErpG,UAAY+3F,EAAI+C,eAClB1gD,EAAYp6C,UAAY,IAAIqpG,EAE5BvR,EAAK7qG,OAAOmtD,EAAYp6C,UAAW,CAC/BqmG,SAAU,SAAShhE,EAAMN,GACrBq+D,EAAsC/9D,EAAM,IAAI,EAChDm+D,EAAkBn+D,EAAMN,CAAM,EAE9BokE,EAAc12H,KAAM4yD,EAAMN,CAAM,CACpC,EAEAuhE,OAAQ,SAASjhE,EAAMN,GACnBq+D,EAAsC/9D,EAAM,IAAI,EAChDm+D,EAAkBn+D,EAAMN,CAAM,EAE9BqkE,EAAY32H,KAAM4yD,EAAMN,CAAM,CAClC,EAUAq/D,eAAgB,WACZ,IAAIroD,EAAO1iC,UACX,IAAIuoF,EAAK7lD,EAAK,GAAIimD,EAAKjmD,EAAK,GAAI8lD,EAAKD,EAAIK,EAAKD,EAE9C,OAAQjmD,EAAKpwE,QACT,KAAK,EACDs2H,EAAKlmD,EAAK,GACV,MACJ,KAAK,EACD8lD,EAAK9lD,EAAK,GACVkmD,EAAKlmD,EAAK,GACV,KACR,CAEAqnD,EAAsCxB,EAAI,IAAI,EAC9C4B,EAAkB5B,EAAII,CAAE,EAExBoB,EAAsCvB,EAAI,IAAI,EAC9C2B,EAAkB3B,EAAII,CAAE,EAExB4G,EAAgBp2H,KAAMmvH,EAAII,EAAIH,EAAII,CAAE,CACxC,EAEAqH,YAAa,SAASjkE,EAAMN,EAAQmkE,GAChCz2H,KAAK,OAASy2H,EAAU,QAAU,QAAQ7jE,EAAMN,CAAM,CAC1D,EAEAsgE,eAAgB2D,EAA4B,KAAM,IAAI,EACtD5B,cAAe4B,EAA4B,MAAO,IAAI,EACtD9B,aAAc8B,EAA4B,KAAM,KAAK,EACrDO,YAAaP,EAA4B,MAAO,KAAK,EAErDhrG,SAAU,SAASkrG,GACf9I,EAAiB3tH,IAAI,EACrB,GAAIy2H,EACAL,EAAgBp2H,KAAMA,KAAK+sH,eAAgB/sH,KAAK6tH,YAAa7tH,KAAK+sH,eAAgB/sH,KAAK6tH,WAAW,OAElGuI,EAAgBp2H,KAAMA,KAAKgtH,aAAchtH,KAAK8tH,UAAW9tH,KAAKgtH,aAAchtH,KAAK8tH,SAAS,CAElG,EAEAiH,mBAAoB,SAASniE,GACzB+9D,EAAsC/9D,EAAM,IAAI,EAEhDwjE,EAAgBp2H,KAAM4yD,EAAM,EAAGA,EAAMk2D,EAAcl2D,CAAI,CAAC,CAC5D,EAEAsgE,WAAY,SAAStgE,GACjB+9D,EAAsC/9D,EAAM,KAAK,EACjDi+D,EAAoBj+D,EAAMq9D,CAAoB,EAE9C,IAAIvnG,EAAQykG,EAAsBv6D,CAAI,EAAGnqC,EAAM2kG,EAAqBx6D,CAAI,EACxEwjE,EAAgBp2H,KAAM0oB,EAAMkqC,KAAMlqC,EAAM4pC,OAAQ7pC,EAAImqC,KAAMnqC,EAAI6pC,MAAM,CACxE,EAEA0gE,gBAAiBkD,GAA0BtH,EAAgBwH,CAAe,EAE1EW,eAAgBb,GAA0BvH,EAAeyH,CAAe,EAExEvD,oBAAqB,WACjBlF,EAAiB3tH,IAAI,EACrBixH,EAAsBjxH,KAAK+sH,cAAc,EACzCkE,EAAsBjxH,KAAKgtH,YAAY,EAIvC,IAAItpD,EAAW,IAAIwrD,EAAclvH,KAAM,IAAI,EAC3C,IAAI8yH,EAAqBpvD,EAASisD,QAAU7C,EAA2BppD,EAASisD,OAAQ3vH,IAAI,GACnF0jE,EAASksD,OAAS9C,EAA2BppD,EAASksD,MAAO5vH,IAAI,EAC1E0jE,EAAS43B,OAAO,EAChB,MAAO,CAACw3B,CACZ,EAEAkE,gBAAiB,WACbvF,GAAqBzxH,IAAI,CAC7B,EAEAi3H,mCAAoC,SAASnN,GACzC2H,GAAqBzxH,KAAM8pH,CAAmB,CAClD,EAEAoN,oBAAqB,WACjBvJ,EAAiB3tH,IAAI,EAErB,IAAImvH,EAAKnvH,KAAK+sH,eAAgBwC,EAAKvvH,KAAK6tH,YAAauB,EAAKpvH,KAAKgtH,aAAcwC,EAAKxvH,KAAK8tH,UAEvF,IAAIqJ,EAAe,SAASvkE,GACxB,IAAIg5B,EAAUh5B,EAAKksB,YACnB,GAAI8M,GAAWA,EAAQxT,UAAYxlB,EAAKwlB,SAAU,CAC9Cg3C,EAAKx8D,EACL48D,EAAK58D,EAAK15D,OACV05D,EAAKwkE,WAAWxrC,EAAQtxF,IAAI,EAC5BuxH,EAAWjgC,CAAO,CACtB,CACJ,EAEA,IAAIyrC,EAAgB,SAASzkE,GACzB,IAAIg5B,EAAUh5B,EAAKi2D,gBACnB,GAAIj9B,GAAWA,EAAQxT,UAAYxlB,EAAKwlB,SAAU,CAC9C+2C,EAAKv8D,EACL,IAAI0kE,EAAa1kE,EAAK15D,OACtBq2H,EAAK3jC,EAAQ1yF,OACb05D,EAAK2kE,WAAW,EAAG3rC,EAAQtxF,IAAI,EAC/BuxH,EAAWjgC,CAAO,EAClB,GAAIujC,GAAMC,EAAI,CACVI,GAAMD,EACNH,EAAKD,CACT,MAAO,GAAIC,GAAMx8D,EAAKknB,WAAY,CAC9B,IAAI5uD,EAAY09F,EAAah2D,CAAI,EACjC,GAAI48D,GAAMtkG,EAAW,CACjBkkG,EAAKx8D,EACL48D,EAAK8H,CACT,MAAO,GAAI9H,EAAKtkG,EACZskG,CAAE,EAEV,CACJ,CACJ,EAEA,IAAIgI,EAAiB,KACrB,IAAI5rC,EAEJ,GAAI69B,EAAoB2F,CAAE,GACtB,GAAII,GAAMJ,EAAGl2H,OACTi+H,EAAa/H,CAAE,OACZ,GAAII,GAAM,EAAG,CAChB5jC,EAAUwjC,EAAGvG,gBACb,GAAIj9B,GAAWA,EAAQxT,UAAYg3C,EAAGh3C,SAAU,CAC5Co3C,EAAK5jC,EAAQ1yF,OACb,GAAIi2H,GAAMC,EACNoI,EAAiB,MAErB5rC,EAAQwrC,WAAWhI,EAAG90H,IAAI,EAC1BuxH,EAAWuD,CAAE,EACbA,EAAKxjC,CACT,CACJ,MACG,CACH,GAAI4jC,EAAK,EAAG,CACR,IAAIiI,EAAUrI,EAAG9sC,WAAWktC,EAAK,GACjC,GAAIiI,GAAWhO,EAAoBgO,CAAO,EACtCN,EAAaM,CAAO,CAE5B,CACAD,EAAiB,CAACx3H,KAAKsvH,SAC3B,CAEA,GAAIkI,GACA,GAAI/N,EAAoB0F,CAAE,GACtB,GAAII,GAAM,EACN8H,EAAclI,CAAE,OACb,GAAII,GAAMJ,EAAGj2H,OAAQ,CACxB0yF,EAAUujC,EAAGrwC,YACb,GAAI8M,GAAWA,EAAQxT,UAAY+2C,EAAG/2C,SAAU,CAC5C,GAAIg3C,GAAMxjC,EAAS,CACfwjC,EAAKD,EACLK,GAAML,EAAGj2H,MACb,CACAi2H,EAAGiI,WAAWxrC,EAAQtxF,IAAI,EAC1BuxH,EAAWjgC,CAAO,CACtB,CACJ,OAEA,GAAI2jC,EAAKJ,EAAG7sC,WAAWppF,OAAQ,CAC3B,IAAIw+H,EAAYvI,EAAG7sC,WAAWitC,GAC9B,GAAImI,GAAajO,EAAoBiO,CAAS,EAC1CL,EAAcK,CAAS,CAE/B,CACJ,KACG,CACHvI,EAAKC,EACLG,EAAKC,CACT,CAEA4G,EAAgBp2H,KAAMmvH,EAAII,EAAIH,EAAII,CAAE,CACxC,EAEAmI,gBAAiB,SAAS/kE,EAAMN,GAC5Bq+D,EAAsC/9D,EAAM,IAAI,EAChDm+D,EAAkBn+D,EAAMN,CAAM,EAC9BtyD,KAAK2xH,eAAe/+D,EAAMN,CAAM,CACpC,EAEAkpB,cAAe,WACXmyC,EAAiB3tH,IAAI,EACrB,IAAI85E,EAAa95E,KAAKyvH,wBACtB,OAAO31C,EAAa42C,EAAmB1wH,KAAKyvH,wBAAyB,IAAI,EAAI,IACjF,CACJ,CAAC,EAEDwG,GAAwBtuD,CAAW,CACvC,CAKA,SAASiwD,GAAiCnZ,GACtCA,EAAM6Q,UAAa7Q,EAAMsO,iBAAmBtO,EAAMuO,cAAgBvO,EAAMoP,cAAgBpP,EAAMqP,UAC9FrP,EAAMgR,wBAA0BhR,EAAM6Q,UAClC7Q,EAAMsO,eAAiBF,EAAI9D,kBAAkBtK,EAAMsO,eAAgBtO,EAAMuO,YAAY,CAC7F,CAEA,SAASgD,EAAiBvR,EAAOsO,EAAgBc,EAAab,EAAcc,GACxErP,EAAMsO,eAAiBA,EACvBtO,EAAMoP,YAAcA,EACpBpP,EAAMuO,aAAeA,EACrBvO,EAAMqP,UAAYA,EAClBrP,EAAMtrG,SAAW05G,EAAI5C,YAAY8C,CAAc,EAC/C6K,GAAiCnZ,CAAK,CAC1C,CAEA,SAASsR,EAAM/oF,GACXgpF,EAAiBhwH,KAAMgnC,EAAK,EAAGA,EAAK,CAAC,CACzC,CAEAsvF,GAAqBvG,EAAOC,CAAgB,EAE5C3K,EAAK7qG,OAAOu1G,EAAO,CACf+B,gBAAiBA,EACjB5C,cAAeA,EACf+G,wBAAyBA,GACzBK,qBAAsBA,GACtB5sB,QAASA,EACT4pB,OAAQ1B,GACR3E,iBAAkBA,EAClBqI,YAAa,SAASuC,EAAIC,GACtB,OAAOD,EAAG9K,iBAAmB+K,EAAG/K,gBAC5B8K,EAAGhK,cAAgBiK,EAAGjK,aACtBgK,EAAG7K,eAAiB8K,EAAG9K,cACvB6K,EAAG/J,YAAcgK,EAAGhK,SAC5B,CACJ,CAAC,EAEDxI,EAAIyS,SAAWhI,CACnB,CAAC,EAKDzK,EAAI8C,iBAAiB,eAAgB,CAAC,YAAa,SAAS9C,EAAK7sH,GAC7D,IAAIu/H,EAAcC,EAClB,IAAIpL,EAAMvH,EAAIuH,IACd,IAAIxH,EAAOC,EAAID,KACf,IAAI6G,EAAcW,EAAIX,YACtB,IAAI6L,EAAWzS,EAAIyS,SACnB,IAAI7S,EAAU2H,EAAI3H,QAClB,IAAIoF,EAAqBuC,EAAIvC,mBAC7B,IAAIb,EAAsBoD,EAAIpD,oBAK9B,GAAInE,EAAIG,SAASkB,oBAKb,WACI,IAAIuR,EACJ,IAAIpG,EAAkBiG,EAASjG,gBAE/B,SAASqG,EAAsB1Z,GAC3B,IAAI3iH,EAAIg2H,EAAgB54H,OAAQo0B,EAChC,MAAOxxB,CAAC,GAAI,CACRwxB,EAAOwkG,EAAgBh2H,GACvB2iH,EAAMnxF,GAAQmxF,EAAM2Z,YAAY9qG,EACpC,CAEAmxF,EAAM6Q,UAAa7Q,EAAMsO,iBAAmBtO,EAAMuO,cAAgBvO,EAAMoP,cAAgBpP,EAAMqP,SAClG,CAEA,SAASuK,EAAkB5Z,EAAOsO,EAAgBc,EAAab,EAAcc,GACzE,IAAIwK,EAAc7Z,EAAMsO,iBAAmBA,GAAkBtO,EAAMoP,aAAeA,EAClF,IAAI0K,EAAY9Z,EAAMuO,eAAiBA,GAAgBvO,EAAMqP,WAAaA,EAC1E,IAAI0K,EAAuB,CAAC/Z,EAAM1vF,OAAO0vF,EAAM2Z,WAAW,EAG1D,GAAIE,GAAcC,GAAYC,EAAsB,CAChD/Z,EAAMoV,OAAO7G,EAAcc,CAAS,EACpCrP,EAAMmV,SAAS7G,EAAgBc,CAAW,CAC9C,CACJ,CAEA,IAAI0I,EAEJyB,EAAe,SAASvZ,GACpB,GAAI,CAACA,EACD,MAAMhmH,EAAO0vH,YAAY,uCAAuC,EAEpEnoH,KAAKo4H,YAAc3Z,EACnB0Z,EAAsBn4H,IAAI,CAC9B,EAEA+3H,EAASzB,qBAAqB0B,EAAcK,CAAiB,EAE7DH,EAAaF,EAAazqG,UAE1B2qG,EAAWhF,WAAa,SAAStgE,GAC7B5yD,KAAKo4H,YAAYlF,WAAWtgE,CAAI,EAChCulE,EAAsBn4H,IAAI,CAC9B,EAEAk4H,EAAWrG,cAAgB,WACvB,OAAO7xH,KAAKo4H,YAAYvG,cAAc,CAC1C,EAKAqG,EAAWnF,iBAAmB,SAASngE,GACnC5yD,KAAKo4H,YAAYrF,iBAAiBngE,CAAI,EACtCulE,EAAsBn4H,IAAI,CAC9B,EAEAk4H,EAAW3sG,SAAW,SAASkrG,GAC3Bz2H,KAAKo4H,YAAY7sG,SAASkrG,CAAO,EACjC0B,EAAsBn4H,IAAI,CAC9B,EAEAk4H,EAAWpI,WAAa,WACpB,OAAO,IAAIkI,EAAah4H,KAAKo4H,YAAYtI,WAAW,CAAC,CACzD,EAEAoI,EAAWv/F,QAAU,WACjBw/F,EAAsBn4H,IAAI,CAC9B,EAEAk4H,EAAW/qH,SAAW,WAClB,OAAOnN,KAAKo4H,YAAYjrH,SAAS,CACrC,EAIA,IAAIsrH,EAAetlH,SAASyhF,eAAe,MAAM,EACjDswB,EAAQ/xG,QAAQ,EAAEq9D,YAAYioD,CAAY,EAC1C,IAAIha,EAAQtrG,SAAS0zG,YAAY,EAOjCpI,EAAMmV,SAAS6E,EAAc,CAAC,EAC9Bha,EAAMoV,OAAO4E,EAAc,CAAC,EAE5B,IACIha,EAAMmV,SAAS6E,EAAc,CAAC,EAE9BP,EAAWtE,SAAW,SAAShhE,EAAMN,GACjCtyD,KAAKo4H,YAAYxE,SAAShhE,EAAMN,CAAM,EACtC6lE,EAAsBn4H,IAAI,CAC9B,EAEAk4H,EAAWrE,OAAS,SAASjhE,EAAMN,GAC/BtyD,KAAKo4H,YAAYvE,OAAOjhE,EAAMN,CAAM,EACpC6lE,EAAsBn4H,IAAI,CAC9B,EAEAu2H,EAA8B,SAAS91H,GACnC,OAAO,SAASmyD,GACZ5yD,KAAKo4H,YAAY33H,GAAMmyD,CAAI,EAC3BulE,EAAsBn4H,IAAI,CAC9B,CACJ,CAmCJ,CAjCE,MAAMwsF,GAEJ0rC,EAAWtE,SAAW,SAAShhE,EAAMN,GACjC,IACItyD,KAAKo4H,YAAYxE,SAAShhE,EAAMN,CAAM,CAI1C,CAHE,MAAOk6B,GACLxsF,KAAKo4H,YAAYvE,OAAOjhE,EAAMN,CAAM,EACpCtyD,KAAKo4H,YAAYxE,SAAShhE,EAAMN,CAAM,CAC1C,CACA6lE,EAAsBn4H,IAAI,CAC9B,EAEAk4H,EAAWrE,OAAS,SAASjhE,EAAMN,GAC/B,IACItyD,KAAKo4H,YAAYvE,OAAOjhE,EAAMN,CAAM,CAIxC,CAHE,MAAOk6B,GACLxsF,KAAKo4H,YAAYxE,SAAShhE,EAAMN,CAAM,EACtCtyD,KAAKo4H,YAAYvE,OAAOjhE,EAAMN,CAAM,CACxC,CACA6lE,EAAsBn4H,IAAI,CAC9B,EAEAu2H,EAA8B,SAAS91H,EAAMi4H,GACzC,OAAO,SAAS9lE,GACZ,IACI5yD,KAAKo4H,YAAY33H,GAAMmyD,CAAI,CAI/B,CAHE,MAAO45B,GACLxsF,KAAKo4H,YAAYM,GAAc9lE,CAAI,EACnC5yD,KAAKo4H,YAAY33H,GAAMmyD,CAAI,CAC/B,CACAulE,EAAsBn4H,IAAI,CAC9B,CACJ,CACJ,CAEAk4H,EAAWtF,eAAiB2D,EAA4B,iBAAkB,cAAc,EACxF2B,EAAWvD,cAAgB4B,EAA4B,gBAAiB,aAAa,EACrF2B,EAAWzD,aAAe8B,EAA4B,eAAgB,gBAAgB,EACtF2B,EAAWpB,YAAcP,EAA4B,cAAe,eAAe,EAMnF2B,EAAWnD,mBAAqB,SAASniE,GACrC5yD,KAAK2xH,eAAe/+D,EAAM,EAAGi6D,EAAI/D,cAAcl2D,CAAI,CAAC,CACxD,EAOA6rD,EAAMsW,mBAAmB0D,CAAY,EACrCha,EAAMoV,OAAO4E,EAAc,CAAC,EAE5B,IAAIE,EAASxlH,SAAS0zG,YAAY,EAClC8R,EAAO5D,mBAAmB0D,CAAY,EACtCE,EAAO9E,OAAO4E,EAAc,CAAC,EAC7BE,EAAO/E,SAAS6E,EAAc,CAAC,EAE/B,GAAIha,EAAM8T,sBAAsB9T,EAAMiX,aAAciD,CAAM,GAAK,CAAC,GACxDla,EAAM8T,sBAAsB9T,EAAMmX,aAAc+C,CAAM,GAAK,EAG/DT,EAAW3F,sBAAwB,SAAS7lG,EAAM+xF,GAC9CA,EAAQA,EAAM2Z,aAAe3Z,EAC7B,GAAI/xF,GAAQ+xF,EAAMiX,aACdhpG,EAAO+xF,EAAMmX,kBACV,GAAIlpG,GAAQ+xF,EAAMmX,aACrBlpG,EAAO+xF,EAAMiX,aAEjB,OAAO11H,KAAKo4H,YAAY7F,sBAAsB7lG,EAAM+xF,CAAK,CAC7D,OAEAyZ,EAAW3F,sBAAwB,SAAS7lG,EAAM+xF,GAC9C,OAAOz+G,KAAKo4H,YAAY7F,sBAAsB7lG,EAAM+xF,EAAM2Z,aAAe3Z,CAAK,CAClF,EAOJ,IAAIz7D,EAAK7vC,SAAS8c,cAAc,KAAK,EACrC+yB,EAAGvvC,UAAY,MACf,IAAI+0G,EAAWxlE,EAAGytB,WAClB,IAAIj9D,EAAO0xG,EAAQ/xG,QAAQ,EAC3BK,EAAKg9D,YAAYxtB,CAAE,EAEnBy7D,EAAMmV,SAASpL,EAAU,CAAC,EAC1B/J,EAAMoV,OAAOrL,EAAU,CAAC,EACxB/J,EAAMsY,eAAe,EAErB,GAAIvO,EAASluH,MAAQ,KAAM,CAGvB49H,EAAWnB,eAAiB,WACxB/2H,KAAKo4H,YAAYrB,eAAe,EAChCoB,EAAsBn4H,IAAI,CAC9B,EAEAk4H,EAAWlF,gBAAkB,WACzB,IAAI9E,EAAOluH,KAAKo4H,YAAYpF,gBAAgB,EAC5CmF,EAAsBn4H,IAAI,EAC1B,OAAOkuH,CACX,CACJ,MAGA16G,EAAKumE,YAAY/2B,CAAE,EACnBxvC,EAAO,KAKP,GAAI6xG,EAAKZ,aAAahG,EAAO,0BAA0B,EACnDyZ,EAAW3G,yBAA2B,SAASC,GAC3C,OAAOxxH,KAAKo4H,YAAY7G,yBAAyBC,CAAW,CAChE,EAMJtM,EAAQ/xG,QAAQ,EAAE4mE,YAAY0+C,CAAY,EAE1CP,EAAWhgE,QAAU,WACjB,MAAO,cACX,EAEAotD,EAAI0S,aAAeA,EAEnB1S,EAAIsT,kBAAoB,SAAS5xF,GAC7BA,EAAMsjF,EAAmBtjF,EAAKvuC,EAAQ,mBAAmB,EACzD,OAAOuuC,EAAI6/E,YAAY,CAC3B,CACH,GAAE,EAGP,GAAIvB,EAAIG,SAASmB,oBAAqB,CAelC,IAAIiS,EAA+B,SAASC,GACxC,IAAIC,EAAWD,EAAUt9C,cAAc,EACvC,IAAIijC,EAAQqa,EAAUE,UAAU,EAChCva,EAAMlzF,SAAS,IAAI,EACnB,IAAI0tG,EAAUxa,EAAMjjC,cAAc,EAClCijC,EAAQqa,EAAUE,UAAU,EAC5Bva,EAAMlzF,SAAS,KAAK,EACpB,IAAI2tG,EAAQza,EAAMjjC,cAAc,EAChC,IAAI29C,EAAqBF,GAAWC,EAASD,EAAUpM,EAAI9D,kBAAkBkQ,EAASC,CAAK,EAE3F,OAAOC,GAAqBJ,EAAWI,EAAoBtM,EAAI9D,kBAAkBgQ,EAAUI,CAAiB,CAChH,EAEA,IAAIC,EAAuB,SAASN,GAChC,OAAOA,EAAUO,iBAAiB,aAAcP,CAAS,GAAK,CAClE,EAMA,IAAIQ,EAA+B,SAASR,EAAWS,EAA4B9C,EAAS+C,EAAaC,GACrG,IAAIC,EAAeZ,EAAUE,UAAU,EACvCU,EAAanuG,SAASkrG,CAAO,EAC7B,IAAIkD,EAAmBD,EAAal+C,cAAc,EAIlD,GAAI,CAACqxC,EAAItD,iBAAiBgQ,EAA4BI,CAAgB,EAClEA,EAAmBJ,EAMvB,GAAI,CAACI,EAAiBC,YAAa,CAC/B,IAAIn4B,EAAM,IAAIyqB,EAAYyN,EAAiB7/C,WAAY+yC,EAAIjE,aAAa+Q,CAAgB,CAAC,EACzF,MAAO,CACHE,iBAAkBp4B,EAClBq4B,SAAU,CACN5uG,UAAWu2E,EAAInvC,OACfqnE,iBAAkBl4B,EAAI7uC,IAC1B,CACJ,CACJ,CAEA,IAAImnE,EAAclN,EAAI5C,YAAY0P,CAAgB,EAAE1pG,cAAc,MAAM,EAIxE,GAAI8pG,EAAYjgD,WACZ+yC,EAAIhB,WAAWkO,CAAW,EAG9B,IAAIC,EAAYC,EAAwBxD,EAAU,eAAiB,aACnE,IAAIyD,EAActQ,EAAUiQ,EAAkBM,EAC9C,IAAIzxG,EAAS+wG,GAAaA,EAAUE,kBAAoBA,EAAoBF,EAAUvuG,UAAY,EAClG,IAAIkvG,EAAiBT,EAAiBr3C,WAAWppF,OACjD,IAAIuvB,EAAM2xG,EAIV,IAAIlvG,EAAYzC,EAEhB,MAAO,KAAM,CACT,GAAIyC,GAAakvG,EACbT,EAAiBnpD,YAAYupD,CAAW,OAExCJ,EAAiBp+B,aAAaw+B,EAAaJ,EAAiBr3C,WAAWp3D,EAAU,EAErFwuG,EAAaW,kBAAkBN,CAAW,EAC1CC,EAAaN,EAAaL,iBAAiBY,EAAuBnB,CAAS,EAC3E,GAAIkB,GAAc,GAAKtxG,GAASD,EAC5B,WACG,GAAIuxG,GAAc,CAAC,EACtB,GAAIvxG,GAAOC,EAAQ,EAEf,WAEAA,EAAQwC,OAGZzC,EAAOA,GAAOC,EAAQ,EAAKA,EAAQwC,EAEvCA,EAAY7c,KAAKyc,OAAOpC,EAAQD,GAAO,CAAC,EACxCkxG,EAAiB5/C,YAAYggD,CAAW,CAC5C,CAKAI,EAAeJ,EAAYj7C,YAE3B,GAAIk7C,GAAc,CAAC,GAAKG,GAAgB1Q,EAAoB0Q,CAAY,EAAG,CAIvET,EAAaY,YAAY7D,EAAU,aAAe,WAAYqC,CAAS,EAEvE,IAAIxmE,EAEJ,GAAI,SAAS7T,KAAK07E,EAAa7/H,IAAI,EAAG,CA+BlC,IAAIigI,EAAYb,EAAaV,UAAU,EACvC,IAAIwB,EAAcD,EAAUt/E,KAAK5nC,QAAQ,QAAS,IAAI,EAAEna,OAExDo5D,EAASioE,EAAUE,UAAU,YAAaD,CAAW,EACrD,OAASR,EAAaO,EAAUlB,iBAAiB,aAAckB,CAAS,IAAM,CAAC,EAAG,CAC9EjoE,CAAM,GACNioE,EAAUE,UAAU,YAAa,CAAC,CACtC,CACJ,MACInoE,EAASonE,EAAaz+E,KAAK/hD,OAE/B2gI,EAAmB,IAAI3N,EAAYiO,EAAc7nE,CAAM,CAC3D,KAAO,CAIH4nE,GAAgBV,GAAe,CAAC/C,IAAYsD,EAAYlR,gBACxDe,GAAY4P,GAAe/C,IAAYsD,EAAYj7C,YACnD,GAAI8qC,GAAYH,EAAoBG,CAAQ,EACxCiQ,EAAmB,IAAI3N,EAAYtC,EAAU,CAAC,OAC3C,GAAIsQ,GAAgBzQ,EAAoByQ,CAAY,EACvDL,EAAmB,IAAI3N,EAAYgO,EAAcA,EAAa5/H,KAAKpB,MAAM,OAEzE2gI,EAAmB,IAAI3N,EAAYyN,EAAkB9M,EAAIjE,aAAamR,CAAW,CAAC,CAE1F,CAGAlN,EAAIhB,WAAWkO,CAAW,EAE1B,MAAO,CACHF,iBAAkBA,EAClBC,SAAU,CACN5uG,UAAWA,EACXyuG,iBAAkBA,CACtB,CACJ,CACJ,EAKA,IAAIe,EAA0B,SAASb,EAAkBpD,GACrD,IAAI0D,EAAcQ,EAAgBC,EAAiBf,EAAiBvnE,OACpE,IAAItrB,EAAM6lF,EAAI5C,YAAY4P,EAAiBjnE,IAAI,EAC/C,IAAImnE,EAAaz3C,EAAYo3C,EAAexU,EAAQl+E,CAAG,EAAE8/E,gBAAgB,EACzE,IAAI+T,EAAiBpR,EAAoBoQ,EAAiBjnE,IAAI,EAE9D,GAAIioE,EAAgB,CAChBV,EAAeN,EAAiBjnE,KAChC+nE,EAAiBR,EAAargD,UAClC,KAAO,CACHwI,EAAau3C,EAAiBjnE,KAAK0vB,WACnC63C,EAAgBS,EAAiBt4C,EAAWppF,OAAUopF,EAAWs4C,GAAkB,KACnFD,EAAiBd,EAAiBjnE,IACtC,CAGAmnE,EAAc/yF,EAAI/W,cAAc,MAAM,EAItC8pG,EAAYtmH,UAAY,UAIxB,GAAI0mH,EACAQ,EAAep/B,aAAaw+B,EAAaI,CAAY,OAErDQ,EAAenqD,YAAYupD,CAAW,EAG1CL,EAAaW,kBAAkBN,CAAW,EAC1CL,EAAanuG,SAAS,CAACkrG,CAAO,EAG9BkE,EAAe5gD,YAAYggD,CAAW,EAGtC,GAAIc,EACAnB,EAAajD,EAAU,YAAc,WAAW,YAAamE,CAAc,EAG/E,OAAOlB,CACX,EAOAzB,EAAmB,SAASa,GACxB94H,KAAK84H,UAAYA,EACjB94H,KAAK24B,QAAQ,CACjB,EAEAs/F,EAAiB1qG,UAAY,IAAIwqG,EAAS5kH,QAAQ,EAElD8kH,EAAiB1qG,UAAUoL,QAAU,WACjC,IAAIjQ,EAAOD,EAAKqyG,EAGhB,IAAIC,EAAwBlC,EAA6B74H,KAAK84H,SAAS,EAEvE,GAAIM,EAAqBp5H,KAAK84H,SAAS,EACnCrwG,EAAMC,EAAQ4wG,EAA6Bt5H,KAAK84H,UAAWiC,EAAuB,KAC9E,IAAI,EAAElB,qBACP,CACHiB,EAAgBxB,EAA6Bt5H,KAAK84H,UAAWiC,EAAuB,KAAM,KAAK,EAC/FryG,EAAQoyG,EAAcjB,iBAKtBpxG,EAAM6wG,EAA6Bt5H,KAAK84H,UAAWiC,EAAuB,MAAO,MAC7ED,EAAchB,QAAQ,EAAED,gBAChC,CAEA75H,KAAK4zH,SAASlrG,EAAMkqC,KAAMlqC,EAAM4pC,MAAM,EACtCtyD,KAAK6zH,OAAOprG,EAAImqC,KAAMnqC,EAAI6pC,MAAM,CACpC,EAEA2lE,EAAiB1qG,UAAU2qC,QAAU,WACjC,MAAO,kBACX,EAEA6/D,EAAS9B,wBAAwBgC,CAAgB,EAEjD,IAAI+C,EAAmB,SAASvc,GAC5B,GAAIA,EAAM6Q,UACN,OAAOoL,EAAwB,IAAIxO,EAAYzN,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAAG,IAAI,MAC1F,CACH,IAAIoN,EAAaP,EAAwB,IAAIxO,EAAYzN,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAAG,IAAI,EACvG,IAAIqN,EAAWR,EAAwB,IAAIxO,EAAYzN,EAAMuO,aAAcvO,EAAMqP,SAAS,EAAG,KAAK,EAClG,IAAIgL,EAAY5T,EAAS6S,EAAS9K,iBAAiBxO,CAAK,CAAE,EAAEqI,gBAAgB,EAC5EgS,EAAUwB,YAAY,eAAgBW,CAAU,EAChDnC,EAAUwB,YAAY,WAAYY,CAAQ,EAC1C,OAAOpC,CACX,CACJ,EAEAb,EAAiB+C,iBAAmBA,EAEpC/C,EAAiB1qG,UAAU4tG,YAAc,WACrC,OAAOH,EAAiBh7H,IAAI,CAChC,EAEAslH,EAAI2S,iBAAmBA,EAIvB,GAAI,CAAC3S,EAAIG,SAASkB,oBAAsBrB,EAAIhsH,OAAOssH,gBAAiB,CAEhE,IAAIwV,EAAY,SAAUjhF,GAAK,OAAOA,EAAE,cAAc,EAAE,CAAI,EAAEywB,QAAQ,EACtE,GAAI,OAAOwwD,EAAUrL,OAAS,YAC1BqL,EAAUrL,MAAQkI,EAGtB3S,EAAIsT,kBAAoB,SAAS5xF,GAC7BA,EAAMsjF,EAAmBtjF,EAAKvuC,EAAQ,mBAAmB,EACzD,OAAOysH,EAAQl+E,CAAG,EAAE8/E,gBAAgB,CACxC,EAEAxB,EAAI0S,aAAeC,CACvB,CACJ,CAEA3S,EAAIuB,YAAc,SAAS7/E,GACvBA,EAAMsjF,EAAmBtjF,EAAKvuC,EAAQ,aAAa,EACnD,OAAO,IAAI6sH,EAAI0S,aAAa1S,EAAIsT,kBAAkB5xF,CAAG,CAAC,CAC1D,EAEAs+E,EAAI+V,iBAAmB,SAASr0F,GAC5BA,EAAMsjF,EAAmBtjF,EAAKvuC,EAAQ,kBAAkB,EACxD,OAAO,IAAIs/H,EAAS/wF,CAAG,CAC3B,EAEAq+E,EAAK+B,+BAA+B9B,EAAK,oBAAqB,aAAa,EAC3ED,EAAK+B,+BAA+B9B,EAAK,yBAA0B,kBAAkB,EAErFA,EAAIkC,gBAAgB,SAASzgF,GACzB,IAAIC,EAAMD,EAAI5zB,SACd,GAAI,OAAO6zB,EAAI6/E,aAAe,YAC1B7/E,EAAI6/E,YAAc,WACd,OAAOvB,EAAIuB,YAAY7/E,CAAG,CAC9B,EAEJA,EAAMD,EAAM,IAChB,CAAC,CACL,CAAC,EAMDu+E,EAAI8C,iBAAiB,mBAAoB,CAAC,WAAY,gBAAiB,SAAS9C,EAAK7sH,GACjF6sH,EAAIhsH,OAAOgiI,qBAAuB,KAElC,IAAIC,EAAU,UACd,IAAIC,EAAS,SACb,IAAI3O,EAAMvH,EAAIuH,IACd,IAAIxH,EAAOC,EAAID,KACf,IAAIZ,EAAeY,EAAKZ,aACxB,IAAIsT,EAAWzS,EAAIyS,SACnB,IAAIC,EAAe1S,EAAI0S,aACvB,IAAI7L,EAAe7G,EAAI6G,aACvB,IAAID,EAAcW,EAAIX,YACtB,IAAIuP,EACJ,IAAIC,EACJ,IAAIjW,EAAWH,EAAIG,SACnB,IAAIkW,EAAU,UACd,IAAI1R,EAAc4C,EAAI5C,YACtB,IAAI/E,EAAU2H,EAAI3H,QAClB,IAAIoQ,EAAcyC,EAASzC,YAK3B,SAASsG,EAAoBn9C,GACzB,OAAQ,OAAOA,GAAO,SAAY,kBAAkBhgC,KAAKggC,CAAG,EAAI,CAAC,CAACA,CACtE,CAEA,SAASyrC,EAAUnjF,EAAKg+B,GACpB,GAAI,CAACh+B,EACD,OAAOpuC,YACJ,GAAIk0H,EAAI7wC,SAASj1C,CAAG,EACvB,OAAOA,OACJ,GAAIA,aAAe80F,EACtB,OAAO90F,EAAIA,QACR,CACH,IAAIC,EAAM6lF,EAAIvC,mBAAmBvjF,EAAKtuC,EAAQssE,CAAU,EACxD,OAAO8nD,EAAI3C,UAAUljF,CAAG,CAC5B,CACJ,CAEA,SAAS80F,EAAgBC,GACrB,OAAO7R,EAAU6R,EAAU,iBAAiB,EAAEC,aAAa,CAC/D,CAEA,SAASC,EAAgBF,GACrB,OAAO7R,EAAU6R,EAAU,iBAAiB,EAAE5oH,SAASohF,SAC3D,CAEA,SAAS2nC,EAAuBl2C,GAC5B,IAAIm2C,EAAW,MACf,GAAIn2C,EAAIo2C,WACJD,EAAYtP,EAAIpC,cAAczkC,EAAIo2C,WAAYp2C,EAAIq2C,aAAcr2C,EAAIs2C,UAAWt2C,EAAIu2C,WAAW,GAAK,EAEvG,OAAOJ,CACX,CAIA,IAAIK,EAA4B/X,EAAa9rH,OAAQ,cAAc,EAC/D8jI,EAAyBpX,EAAKX,aAAavxG,SAAU,WAAW,EAEpEsyG,EAAS+W,0BAA4BA,EACrC/W,EAASgX,uBAAyBA,EAElC,IAAIC,EAAuBD,IAA2B,CAACD,GAA6BlX,EAAIhsH,OAAOssH,iBAE/F,GAAI8W,EAAsB,CACtBjB,EAAqBQ,EACrB3W,EAAIqX,iBAAmB,SAASZ,GAC5B,IAAI/0F,EAAMkjF,EAAU6R,EAAU,kBAAkB,EAAE5oH,SAAUypH,EAAY51F,EAAIutD,UAG5E,OAAQqoC,EAAUlwG,MAAQ,QAAUu9F,EAAY2S,EAAU/V,YAAY,EAAErrC,cAAc,CAAC,GAAKx0C,CAChG,CACJ,MAAO,GAAIw1F,EAA2B,CAClCf,EAAqBK,EACrBxW,EAAIqX,iBAAmB,WACnB,OAAO,IACX,CACJ,KAAO,CACHlkI,EAAOk0F,KAAK,+DAA+D,EAC3E,OAAO,KACX,CAEA24B,EAAImW,mBAAqBA,EAEzB,IAAIoB,EAAgBpB,EAAmB,EAGvC,GAAI,CAACoB,EAAe,CAChBpkI,EAAOk0F,KAAK,iDAAiD,EAC7D,OAAO,KACX,CAEA,IAAI+5B,EAAYpB,EAAIsT,kBAAkBzlH,QAAQ,EAC9C,IAAIK,EAAO0xG,EAAQ/xG,QAAQ,EAG3B,IAAI2pH,EAA6BzX,EAAKL,kBAAkB6X,EACpD,CAAC,aAAc,YAAa,eAAgB,cAAc,EAE9DpX,EAASqX,2BAA6BA,EAGtC,IAAIC,EAAqBtY,EAAaoY,EAAe,QAAQ,EAC7DpX,EAASsX,mBAAqBA,EAG9B,IAAIC,EAA+BvY,EAAaoY,EAAe,kBAAkB,EACjFpX,EAASuX,6BAA+BA,EAGxC,IAAIC,EAA0B,OAAOJ,EAAcK,YAAc1B,EACjE/V,EAASwX,uBAAyBA,EAElC,IAAIE,EAAkC,MACtC,IAAIC,EAA0C,KAE9C,IAAIC,EAA2BN,EAC3B,SAASO,EAAiB7e,GACtB,IAAIz3E,EAAM+wF,EAAS9K,iBAAiBxO,CAAK,EACzC,IAAIyc,EAAW5V,EAAIuB,YAAY7/E,CAAG,EAClCk0F,EAASvD,gBAAgBlZ,EAAMuO,aAAcvO,EAAMqP,SAAS,EAC5DwP,EAAgBC,SAASC,EAAetC,CAAQ,CAAC,EACjDoC,EAAgB9iH,OAAOikG,EAAMsO,eAAgBtO,EAAMoP,WAAW,CAClE,EAAI,KAER,GAAIxI,EAAKP,eAAe+X,EAAe,CAAC,WAAY,aAAc,kBAAkB,GAC5E,OAAOA,EAAcK,YAAc1B,GAAU/V,EAASkB,oBAE1D,WAOI,IAAI3gC,EAAMrtF,OAAOqjI,aAAa,EAC9B,GAAIh2C,EAAK,CAEL,IAAIy3C,EAA8Bz3C,EAAIk3C,WACtC,IAAIQ,EAA8BD,EAA8B,EAChE,IAAIE,EAA0B,GAC9B,IAAIC,EAA4B1B,EAAuBl2C,CAAG,EAC1D,IAAK,IAAIlqF,EAAI,EAAGA,EAAI2hI,EAA6B,EAAE3hI,EAC/C6hI,EAAwB7hI,GAAKkqF,EAAI63C,WAAW/hI,CAAC,EAIjD,IAAIgiI,EAASjR,EAAInB,kBAAkBv4G,SAAU,GAAI,KAAK,EACtD,IAAIq1G,EAAWsV,EAAOttD,YAAar9D,SAASyhF,eAAe,KAAoB,CAAE,EAGjF,IAAIijC,EAAK1kH,SAAS0zG,YAAY,EAE9BgR,EAAGjE,SAASpL,EAAU,CAAC,EACvBqP,EAAGtsG,SAAS,IAAI,EAChBy6D,EAAI+3C,gBAAgB,EACpB/3C,EAAIu3C,SAAS1F,CAAE,EACfuF,EAA2Cp3C,EAAIk3C,YAAc,EAC7Dl3C,EAAI+3C,gBAAgB,EAGpB,GAAI,CAACL,EAA4B,CAM7B,IAAIM,EAAcrlI,OAAOg0B,UAAUsxG,WAAWp2E,MAAM,gBAAgB,EACpE,GAAIm2E,GAAe96G,SAAS86G,EAAY,EAAE,GAAK,GAC3Cb,EAAkC,UAC/B,CACH,IAAIrF,EAAKD,EAAG/H,WAAW,EACvB+H,EAAGjE,SAASpL,EAAU,CAAC,EACvBsP,EAAGjE,OAAOrL,EAAU,CAAC,EACrBsP,EAAGlE,SAASpL,EAAU,CAAC,EACvBxiC,EAAIu3C,SAAS1F,CAAE,EACf7xC,EAAIu3C,SAASzF,CAAE,EACfqF,EAAmCn3C,EAAIk3C,YAAc,CACzD,CACJ,CAGArQ,EAAIhB,WAAWiS,CAAM,EACrB93C,EAAI+3C,gBAAgB,EAEpB,IAAKjiI,EAAI,EAAGA,EAAI2hI,EAA6B,EAAE3hI,EAC3C,GAAIA,GAAK,GAAK8hI,EACV,GAAIP,EACAA,EAAyBr3C,EAAK23C,EAAwB7hI,EAAE,MACrD,CACHwpH,EAAI11C,KAAK,uJAAuJ,EAChKoW,EAAIu3C,SAASI,EAAwB7hI,EAAE,CAC3C,MAEAkqF,EAAIu3C,SAASI,EAAwB7hI,EAAE,CAGnD,CACH,GAAE,EAGP2pH,EAAS0X,gCAAkCA,EAC3C1X,EAAS2X,wCAA0CA,EAGnD,IAAIc,EAAyB,MAAOC,EAEpC,GAAI3qH,GAAQixG,EAAajxG,EAAM,oBAAoB,EAAG,CAClD2qH,EAAmB3qH,EAAK4qH,mBAAmB,EAC3C,GAAI/Y,EAAKL,kBAAkBmZ,EAAkB,CAAC,OAAQ,MAAM,EACxDD,EAAyB,IAEjC,CACAzY,EAASyY,uBAAyBA,EAGlC,GAAIpB,EACApB,EAAuB,SAAS11C,GAC5B,OAAOA,EAAIo2C,aAAep2C,EAAIs2C,WAAat2C,EAAIq2C,eAAiBr2C,EAAIu2C,WACxE,OAEAb,EAAuB,SAAS11C,GAC5B,OAAOA,EAAIk3C,WAAal3C,EAAI63C,WAAW73C,EAAIk3C,WAAa,CAAC,EAAE5N,UAAY,KAC3E,EAGJ,SAAS+O,EAA8Br4C,EAAKy4B,EAAO0d,GAC/C,IAAImC,EAAenC,EAAW,MAAQ,QAASoC,EAAcpC,EAAW,QAAU,MAClFn2C,EAAIo2C,WAAa3d,EAAM6f,EAAe,aACtCt4C,EAAIq2C,aAAe5d,EAAM6f,EAAe,UACxCt4C,EAAIs2C,UAAY7d,EAAM8f,EAAc,aACpCv4C,EAAIu2C,YAAc9d,EAAM8f,EAAc,SAC1C,CAEA,SAASC,EAAwCx4C,GAC7C,IAAI42C,EAAY52C,EAAIs3C,gBACpBt3C,EAAIo2C,WAAaQ,EAAUR,WAC3Bp2C,EAAIq2C,aAAeO,EAAUP,aAC7Br2C,EAAIs2C,UAAYM,EAAUN,UAC1Bt2C,EAAIu2C,YAAcK,EAAUL,WAChC,CAEA,SAASkC,EAAqBz4C,GAC1BA,EAAIo2C,WAAap2C,EAAIs2C,UAAY,KACjCt2C,EAAIq2C,aAAer2C,EAAIu2C,YAAc,EACrCv2C,EAAIk3C,WAAa,EACjBl3C,EAAIwzC,YAAc,KAClBxzC,EAAI04C,QAAQxlI,OAAS,EACrBylI,EAAW34C,CAAG,CAClB,CAEA,SAAS24C,EAAW34C,GAChBA,EAAIt5D,KAAQs5D,EAAIk3C,YAAc,EAAK,OAAUxB,EAAqB11C,CAAG,EAAI,QAAU,OACvF,CAEA,SAASw3C,EAAe/e,GACpB,IAAI2Z,EACJ,GAAI3Z,aAAiBsZ,EAAU,CAC3BK,EAAc9S,EAAIsT,kBAAkBna,EAAMwL,YAAY,CAAC,EACvDmO,EAAYvE,OAAOpV,EAAMuO,aAAcvO,EAAMqP,SAAS,EACtDsK,EAAYxE,SAASnV,EAAMsO,eAAgBtO,EAAMoP,WAAW,CAChE,MAAO,GAAIpP,aAAiBuZ,EACxBI,EAAc3Z,EAAM2Z,iBACjB,GAAI3S,EAASkB,oBAAuBlI,aAAiBoO,EAAI3C,UAAUzL,EAAMsO,cAAc,EAAEgD,MAC5FqI,EAAc3Z,EAElB,OAAO2Z,CACX,CAEA,SAASwG,EAA2BC,GAChC,GAAI,CAACA,EAAW3lI,QAAU2lI,EAAW,GAAGzmD,UAAY,EAChD,OAAO,MAEX,IAAK,IAAIt8E,EAAI,EAAG4sD,EAAMm2E,EAAW3lI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAChD,GAAI,CAAC+wH,EAAI1D,aAAa0V,EAAW,GAAIA,EAAW/iI,EAAE,EAC9C,OAAO,MAGf,OAAO,IACX,CAEA,SAASgjI,EAA0BrgB,GAC/B,IAAIx2F,EAAQw2F,EAAM6V,SAAS,EAC3B,GAAI,CAACsK,EAA2B32G,CAAK,EACjC,MAAMxvB,EAAO0vH,YAAY,oCAAsC1J,EAAM/U,QAAQ,EAAI,sCAAsC,EAE3H,OAAOzhF,EAAM,EACjB,CAGA,SAASg9F,EAAYxG,GACjB,MAAO,CAAC,CAACA,GAAS,OAAOA,EAAMxjE,MAAQ,WAC3C,CAEA,SAAS8jF,GAAoB/4C,EAAKy4B,GAE9B,IAAIugB,EAAe,IAAIhH,EAAavZ,CAAK,EACzCz4B,EAAI04C,QAAU,CAACM,GAEfX,EAA8Br4C,EAAKg5C,EAAc,KAAK,EACtDh5C,EAAIk3C,WAAa,EACjBl3C,EAAIwzC,YAAcwF,EAAa1P,UAC/BqP,EAAW34C,CAAG,CAClB,CAEA,SAASi5C,EAAuBj5C,GAE5BA,EAAI04C,QAAQxlI,OAAS,EACrB,GAAI8sF,EAAIk5C,aAAaxyG,MAAQ,OACzB+xG,EAAqBz4C,CAAG,MACrB,CACH,IAAIm5C,EAAen5C,EAAIk5C,aAAarY,YAAY,EAChD,GAAI5B,EAAYka,CAAY,EAIxBJ,GAAoB/4C,EAAKm5C,CAAY,MAClC,CACHn5C,EAAIk3C,WAAaiC,EAAajmI,OAC9B,IAAIulH,EAAOz3E,EAAMijF,EAAYkV,EAAar8G,KAAK,CAAC,CAAC,EACjD,IAAK,IAAIhnB,EAAI,EAAGA,EAAIkqF,EAAIk3C,WAAY,EAAEphI,EAAG,CACrC2iH,EAAQ6G,EAAIuB,YAAY7/E,CAAG,EAC3By3E,EAAMyU,WAAWiM,EAAar8G,KAAKhnB,CAAC,CAAC,EACrCkqF,EAAI04C,QAAQr9H,KAAKo9G,CAAK,CAC1B,CACAz4B,EAAIwzC,YAAcxzC,EAAIk3C,YAAc,GAAKl3C,EAAI04C,QAAQ,GAAGpP,UACxD+O,EAA8Br4C,EAAKA,EAAI04C,QAAQ14C,EAAIk3C,WAAa,GAAI,KAAK,EACzEyB,EAAW34C,CAAG,CAClB,CACJ,CACJ,CAEA,SAASo5C,GAA2Bp5C,EAAKy4B,GACrC,IAAI0gB,EAAen5C,EAAIk5C,aAAarY,YAAY,EAChD,IAAIwY,EAAeP,EAA0BrgB,CAAK,EAIlD,IAAIz3E,EAAMijF,EAAYkV,EAAar8G,KAAK,CAAC,CAAC,EAC1C,IAAIw8G,EAAkBpa,EAAQl+E,CAAG,EAAEo3F,mBAAmB,EACtD,IAAK,IAAItiI,EAAI,EAAG4sD,EAAMy2E,EAAajmI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAClDwjI,EAAgBzxD,IAAIsxD,EAAar8G,KAAKhnB,CAAC,CAAC,EAE5C,IACIwjI,EAAgBzxD,IAAIwxD,CAAY,CAGpC,CAFE,MAAO7yC,GACL,MAAM/zF,EAAO0vH,YAAY,+GAA+G,CAC5I,CACAmX,EAAgBztF,OAAO,EAGvBotF,EAAuBj5C,CAAG,CAC9B,CAEA,IAAIu5C,EAEJ,GAAI9a,EAAaoY,EAAe,YAAY,EAIxC0C,EAAsB,SAASv5C,EAAK36D,GAChC,IACI,OAAO26D,EAAI63C,WAAWxyG,CAAK,CAG/B,CAFE,MAAOmhE,GACL,OAAO,IACX,CACJ,OACG,GAAIswC,EACPyC,EAAsB,SAASv5C,GAC3B,IAAIh/C,EAAMijF,EAAYjkC,EAAIo2C,UAAU,EACpC,IAAI3d,EAAQ6G,EAAIuB,YAAY7/E,CAAG,EAC/By3E,EAAMkT,eAAe3rC,EAAIo2C,WAAYp2C,EAAIq2C,aAAcr2C,EAAIs2C,UAAWt2C,EAAIu2C,WAAW,EAIrF,GAAI9d,EAAM6Q,YAActvH,KAAKw5H,YACzB/a,EAAMkT,eAAe3rC,EAAIs2C,UAAWt2C,EAAIu2C,YAAav2C,EAAIo2C,WAAYp2C,EAAIq2C,YAAY,EAGzF,OAAO5d,CACX,EAGJ,SAASod,EAAiBtnC,EAAW2qC,EAAcn4F,GAC/C/mC,KAAKs9H,gBAAkB/oC,EACvBv0F,KAAKk/H,aAAeA,EACpBl/H,KAAK0+H,QAAU,GACf1+H,KAAK+mC,IAAMA,EACX/mC,KAAK24B,QAAQ,CACjB,CAEAkjG,EAAiBtuG,UAAY+3F,EAAIgD,mBAEjC,SAASkX,GAAiBx5C,GACtBA,EAAIj/C,IAAMi/C,EAAIo2C,WAAap2C,EAAIs2C,UAAYt2C,EAAI04C,QAAU,KACzD14C,EAAIk3C,WAAal3C,EAAIq2C,aAAer2C,EAAIu2C,YAAc,EACtDv2C,EAAIy5C,SAAW,KACfd,EAAW34C,CAAG,CAClB,CAEA,IAAI05C,EAAwB,GAE5B,SAASC,GAAqB54F,EAAK64F,GAC/B,IAAI9jI,EAAI4jI,EAAsBxmI,OAAQqxF,EAAQvE,EAC9C,MAAOlqF,CAAC,GAAI,CACRyuF,EAASm1C,EAAsB5jI,GAC/BkqF,EAAMuE,EAAOgK,UACb,GAAIqrC,GAAU,YACVJ,GAAiBx5C,CAAG,OACjB,GAAIuE,EAAOxjD,KAAOA,EACrB,GAAI64F,GAAU,SAAU,CACpBF,EAAsB90G,OAAO9uB,EAAG,CAAC,EACjC,OAAO,IACX,MACI,OAAOkqF,CAGnB,CACA,GAAI45C,GAAU,YACVF,EAAsBxmI,OAAS,EAEnC,OAAO,IACX,CAEA,IAAI8iI,GAAe,SAASj1F,GAExB,GAAIA,GAAOA,aAAe80F,EAAkB,CACxC90F,EAAIpO,QAAQ,EACZ,OAAOoO,CACX,CAEAA,EAAMmjF,EAAUnjF,EAAK,oBAAoB,EAEzC,IAAIi/C,EAAM25C,GAAqB54F,CAAG,EAClC,IAAI61F,EAAYnB,EAAmB10F,CAAG,EAAG84F,EAASpD,EAAyBR,EAAgBl1F,CAAG,EAAI,KAClG,GAAIi/C,EAAK,CACLA,EAAIs3C,gBAAkBV,EACtB52C,EAAIk5C,aAAeW,EACnB75C,EAAIrtD,QAAQ,CAChB,KAAO,CACHqtD,EAAM,IAAI61C,EAAiBe,EAAWiD,EAAQ94F,CAAG,EACjD24F,EAAsBr+H,KAAM,CAAE0lC,IAAKA,EAAKwtD,UAAWvO,CAAI,CAAE,CAC7D,CACA,OAAOA,CACX,EAEAs/B,EAAI0W,aAAeA,GAEnB3W,EAAK+B,+BAA+B9B,EAAK,qBAAsB,cAAc,EAE7E,IAAIwa,EAAWjE,EAAiBtuG,UAEhC,SAASwyG,GAAuB/5C,EAAKg6C,GAEjC,IAAIh5F,EAAMijF,EAAY+V,EAAO,GAAGjT,cAAc,EAC9C,IAAIoS,EAAeja,EAAQl+E,CAAG,EAAEo3F,mBAAmB,EACnD,IAAK,IAAItiI,EAAI,EAAGknD,EAAI0F,EAAMs3E,EAAO9mI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAAG,CACnDknD,EAAK87E,EAA0BkB,EAAOlkI,EAAE,EACxC,IACIqjI,EAAatxD,IAAI7qB,CAAE,CAGvB,CAFE,MAAOwpC,GACL,MAAM/zF,EAAO0vH,YAAY,wHAAwH,CACrJ,CACJ,CACAgX,EAAattF,OAAO,EAGpBotF,EAAuBj5C,CAAG,CAC9B,CAGA,GAAI,CAAC02C,GAAwBI,GAA8BzX,EAAKP,eAAe+X,EAAe,CAAC,kBAAmB,WAAW,EAAG,CAC5HiD,EAAS/B,gBAAkB,WACvB/9H,KAAKs9H,gBAAgBS,gBAAgB,EACrCU,EAAqBz+H,IAAI,CAC7B,EAEA,IAAIigI,GAAmB,SAASj6C,EAAKy4B,GACjC4e,EAAyBr3C,EAAIs3C,gBAAiB7e,CAAK,EACnDz4B,EAAIrtD,QAAQ,CAChB,EAEA,GAAIskG,EACA6C,EAASvC,SAAW,SAAS9e,EAAOyhB,GAChC,GAAIhC,GAA0BzB,GAA0Bz8H,KAAKk/H,aAAaxyG,MAAQivG,EAC9EyD,GAA2Bp/H,KAAMy+G,CAAK,OAEtC,GAAImd,EAAoBsE,CAAS,GAAKnD,EAClCkD,GAAiBjgI,KAAMy+G,CAAK,MACzB,CACH,IAAI0hB,EACJ,GAAIhD,EACAgD,EAAqBngI,KAAKk9H,eACvB,CACHl9H,KAAK+9H,gBAAgB,EACrBoC,EAAqB,CACzB,CAIA,IAAIC,EAAoB5C,EAAe/e,CAAK,EAAEqR,WAAW,EACzD,IACI9vH,KAAKs9H,gBAAgBC,SAAS6C,CAAiB,CAEnD,CADE,MAAO5zC,IAITxsF,KAAKk9H,WAAal9H,KAAKs9H,gBAAgBJ,WAEvC,GAAIl9H,KAAKk9H,YAAciD,EAAqB,EAAG,CAK3C,GAAI7a,EAAIhsH,OAAOgiI,qBAAsB,CACjC,IAAIlD,EAAcmH,EAAoBv/H,KAAKs9H,gBAAiBt9H,KAAKk9H,WAAa,CAAC,EAC/E,GAAI9E,GAAe,CAAC9C,EAAY8C,EAAa3Z,CAAK,EAE9CA,EAAQ,IAAIuZ,EAAaI,CAAW,CAE5C,CACAp4H,KAAK0+H,QAAQ1+H,KAAKk9H,WAAa,GAAKze,EACpC4f,EAA8Br+H,KAAMy+G,EAAO4hB,EAAoBrgI,KAAKs9H,eAAe,CAAC,EACpFt9H,KAAKw5H,YAAckC,EAAqB17H,IAAI,EAC5C2+H,EAAW3+H,IAAI,CACnB,MAEIA,KAAK24B,QAAQ,CAErB,CAER,OAEAmnG,EAASvC,SAAW,SAAS9e,EAAOyhB,GAChC,GAAItE,EAAoBsE,CAAS,GAAKnD,EAClCkD,GAAiBjgI,KAAMy+G,CAAK,MACzB,CACHz+G,KAAKs9H,gBAAgBC,SAASC,EAAe/e,CAAK,CAAC,EACnDz+G,KAAK24B,QAAQ,CACjB,CACJ,EAGJmnG,EAASQ,UAAY,SAASN,GAC1B,GAAI9B,GAA0BzB,GAA0BuD,EAAO9mI,OAAS,EACpE6mI,GAAuB//H,KAAMggI,CAAM,MAChC,CACHhgI,KAAK+9H,gBAAgB,EACrB,IAAK,IAAIjiI,EAAI,EAAG4sD,EAAMs3E,EAAO9mI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAC5CkE,KAAKu9H,SAASyC,EAAOlkI,EAAE,CAE/B,CACJ,CACJ,MAAO,GAAI2oH,EAAaoY,EAAe,OAAO,GAAKpY,EAAaiC,EAAW,QAAQ,GACxEwX,GAA0BxB,EAAsB,CAEvDoD,EAAS/B,gBAAkB,WAEvB,IACI/9H,KAAKk/H,aAAaz+G,MAAM,EAGxB,GAAIzgB,KAAKk/H,aAAaxyG,MAAQ,OAAQ,CAGlC,IAAIsa,EACJ,GAAIhnC,KAAKo8H,WACLp1F,EAAMijF,EAAYjqH,KAAKo8H,UAAU,OAC9B,GAAIp8H,KAAKk/H,aAAaxyG,MAAQivG,EAAS,CAC1C,IAAIwD,EAAen/H,KAAKk/H,aAAarY,YAAY,EACjD,GAAIsY,EAAajmI,OACb8tC,EAAMijF,EAAakV,EAAar8G,KAAK,CAAC,CAAE,CAEhD,CACA,GAAIkkB,EAAK,CACL,IAAI8xF,EAAY5T,EAAQl+E,CAAG,EAAE8/E,gBAAgB,EAC7CgS,EAAUjnF,OAAO,EACjB7xC,KAAKk/H,aAAaz+G,MAAM,CAC5B,CACJ,CACS,CAAX,MAAM+rE,IACRiyC,EAAqBz+H,IAAI,CAC7B,EAEA8/H,EAASvC,SAAW,SAAS9e,GACzB,GAAIz+G,KAAKk/H,aAAaxyG,MAAQivG,EAC1ByD,GAA2Bp/H,KAAMy+G,CAAK,MACnC,CACH6G,EAAI2S,iBAAiB+C,iBAAiBvc,CAAK,EAAE5sE,OAAO,EACpD7xC,KAAK0+H,QAAQ,GAAKjgB,EAClBz+G,KAAKk9H,WAAa,EAClBl9H,KAAKw5H,YAAcx5H,KAAK0+H,QAAQ,GAAGpP,UACnC+O,EAA8Br+H,KAAMy+G,EAAO,KAAK,EAChDkgB,EAAW3+H,IAAI,CACnB,CACJ,EAEA8/H,EAASQ,UAAY,SAASN,GAC1BhgI,KAAK+9H,gBAAgB,EACrB,IAAIb,EAAa8C,EAAO9mI,OACxB,GAAIgkI,EAAa,EACb6C,GAAuB//H,KAAMggI,CAAM,OAChC,GAAI9C,EACPl9H,KAAKu9H,SAASyC,EAAO,EAAE,CAE/B,CACJ,KAAO,CACHvnI,EAAOk0F,KAAK,sDAAsD,EAClE,OAAO,KACX,CAEAmzC,EAASjC,WAAa,SAASxyG,GAC3B,GAAIA,EAAQ,GAAKA,GAASrrB,KAAKk9H,WAC3B,MAAM,IAAI/Q,EAAa,gBAAgB,OAGvC,OAAOnsH,KAAK0+H,QAAQrzG,GAAOykG,WAAW,CAE9C,EAEA,IAAIyQ,EAEJ,GAAI7D,EACA6D,EAAmB,SAASv6C,GACxB,IAAIy4B,EACJ,GAAI6G,EAAIqX,iBAAiB32C,EAAIj/C,GAAG,EAC5B03E,EAAQz4B,EAAIk5C,aAAarY,YAAY,MAClC,CACHpI,EAAQyG,EAAQl/B,EAAIj/C,IAAI5zB,QAAQ,EAAE2zG,gBAAgB,EAClDrI,EAAMlzF,SAAS,IAAI,CACvB,CAEA,GAAIy6D,EAAIk5C,aAAaxyG,MAAQivG,EACzBsD,EAAuBj5C,CAAG,OACvB,GAAIi/B,EAAYxG,CAAK,EACxBsgB,GAAoB/4C,EAAKy4B,CAAK,OAE9BggB,EAAqBz4C,CAAG,CAEhC,OACG,GAAIy+B,EAAaoY,EAAe,YAAY,GAAK,OAAOA,EAAcK,YAAc1B,EACvF+E,EAAmB,SAASv6C,GACxB,GAAIk4C,GAA0BzB,GAA0Bz2C,EAAIk5C,aAAaxyG,MAAQivG,EAC7EsD,EAAuBj5C,CAAG,MACvB,CACHA,EAAI04C,QAAQxlI,OAAS8sF,EAAIk3C,WAAal3C,EAAIs3C,gBAAgBJ,WAC1D,GAAIl3C,EAAIk3C,WAAY,CAChB,IAAK,IAAIphI,EAAI,EAAG4sD,EAAMs9B,EAAIk3C,WAAYphI,EAAI4sD,EAAK,EAAE5sD,EAC7CkqF,EAAI04C,QAAQ5iI,GAAK,IAAIwpH,EAAI0S,aAAahyC,EAAIs3C,gBAAgBO,WAAW/hI,CAAC,CAAC,EAE3EuiI,EAA8Br4C,EAAKA,EAAI04C,QAAQ14C,EAAIk3C,WAAa,GAAImD,EAAoBr6C,EAAIs3C,eAAe,CAAC,EAC5Gt3C,EAAIwzC,YAAckC,EAAqB11C,CAAG,EAC1C24C,EAAW34C,CAAG,CAClB,MACIy4C,EAAqBz4C,CAAG,CAEhC,CACJ,OACG,GAAI82C,GAA8B,OAAOD,EAAcrD,aAAe+B,GAAW,OAAO7U,EAAU4I,WAAaiM,GAAW9V,EAASkB,mBACtI4Z,EAAmB,SAASv6C,GACxB,IAAIy4B,EAAOme,EAAY52C,EAAIs3C,gBAC3B,GAAIV,EAAUR,WAAY,CACtB3d,EAAQ8gB,EAAoB3C,EAAW,CAAC,EACxC52C,EAAI04C,QAAU,CAACjgB,GACfz4B,EAAIk3C,WAAa,EACjBsB,EAAwCx4C,CAAG,EAC3CA,EAAIwzC,YAAckC,EAAqB11C,CAAG,EAC1C24C,EAAW34C,CAAG,CAClB,MACIy4C,EAAqBz4C,CAAG,CAEhC,MACG,CACHvtF,EAAOk0F,KAAK,gFAAgF,EAC5F,OAAO,KACX,CAEAmzC,EAASnnG,QAAU,SAAS6nG,GACxB,IAAIC,EAAYD,EAAkBxgI,KAAK0+H,QAAQ9mH,MAAM,CAAC,EAAI,KAC1D,IAAI8oH,EAAgB1gI,KAAKo8H,WAAYuE,EAAkB3gI,KAAKq8H,aAE5DkE,EAAiBvgI,IAAI,EACrB,GAAIwgI,EAAiB,CAEjB,IAAI1kI,EAAI2kI,EAAUvnI,OAClB,GAAI4C,GAAKkE,KAAK0+H,QAAQxlI,OAClB,OAAO,KAKX,GAAI8G,KAAKo8H,YAAcsE,GAAiB1gI,KAAKq8H,cAAgBsE,EACzD,OAAO,KAIX,MAAO7kI,CAAC,GACJ,GAAI,CAACw5H,EAAYmL,EAAU3kI,GAAIkE,KAAK0+H,QAAQ5iI,EAAE,EAC1C,OAAO,KAGf,OAAO,KACX,CACJ,EAGA,IAAI8kI,GAAsB,SAAS56C,EAAKy4B,GACpC,IAAIuhB,EAASh6C,EAAI66C,aAAa,EAC9B76C,EAAI+3C,gBAAgB,EACpB,IAAK,IAAIjiI,EAAI,EAAG4sD,EAAMs3E,EAAO9mI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAC5C,GAAI,CAACw5H,EAAY7W,EAAOuhB,EAAOlkI,EAAE,EAC7BkqF,EAAIu3C,SAASyC,EAAOlkI,EAAE,EAG9B,GAAI,CAACkqF,EAAIk3C,WACLuB,EAAqBz4C,CAAG,CAEhC,EAEA,GAAIk4C,GAA0BzB,EAC1BqD,EAASgB,YAAc,SAASriB,GAC5B,GAAIz+G,KAAKk/H,aAAaxyG,MAAQivG,EAAS,CACnC,IAAIwD,EAAen/H,KAAKk/H,aAAarY,YAAY,EACjD,IAAIwY,EAAeP,EAA0BrgB,CAAK,EAIlD,IAAIz3E,EAAMijF,EAAYkV,EAAar8G,KAAK,CAAC,CAAC,EAC1C,IAAIw8G,EAAkBpa,EAAQl+E,CAAG,EAAEo3F,mBAAmB,EACtD,IAAIp7E,EAAI+9E,EAAU,MAClB,IAAK,IAAIjlI,EAAI,EAAG4sD,EAAMy2E,EAAajmI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAAG,CACrDknD,EAAKm8E,EAAar8G,KAAKhnB,CAAC,EACxB,GAAIknD,IAAOq8E,GAAgB0B,EACvBzB,EAAgBzxD,IAAIsxD,EAAar8G,KAAKhnB,CAAC,CAAC,OAExCilI,EAAU,IAElB,CACAzB,EAAgBztF,OAAO,EAGvBotF,EAAuBj/H,IAAI,CAC/B,MACI4gI,GAAoB5gI,KAAMy+G,CAAK,CAEvC,OAEAqhB,EAASgB,YAAc,SAASriB,GAC5BmiB,GAAoB5gI,KAAMy+G,CAAK,CACnC,EAIJ,IAAI4hB,EACJ,GAAI,CAAC3D,GAAwBI,GAA8BrX,EAASkB,mBAAoB,CACpF0Z,EAAsBnE,EAEtB4D,EAASkB,WAAa,WAClB,OAAOX,EAAoBrgI,IAAI,CACnC,CACJ,MACIqgI,EAAsBP,EAASkB,WAAa,WACxC,OAAO,KACX,EAIJlB,EAASmB,YAAcnB,EAASkB,WAKhClB,EAAS3yH,SAAW,WAChB,IAAI+zH,EAAa,GACjB,IAAK,IAAIplI,EAAI,EAAG4sD,EAAM1oD,KAAKk9H,WAAYphI,EAAI4sD,EAAK,EAAE5sD,EAC9ColI,EAAWplI,GAAK,GAAKkE,KAAK0+H,QAAQ5iI,GAEtC,OAAOolI,EAAWt1H,KAAK,EAAE,CAC7B,EAEA,SAASu1H,EAAyBn7C,EAAKpzB,GACnC,GAAIozB,EAAIj/C,IAAI5zB,UAAY82G,EAAYr3D,CAAI,EACpC,MAAM,IAAIu5D,EAAa,oBAAoB,CAEnD,CAEA,SAAS4E,GAAkBn+D,EAAMN,GAC7B,GAAIA,EAAS,GAAKA,GAAUu6D,EAAIpD,oBAAoB72D,CAAI,EAAIA,EAAK15D,OAAS05D,EAAK0vB,WAAWppF,QACtF,MAAM,IAAIizH,EAAa,gBAAgB,CAE/C,CAGA2T,EAASv0G,SAAW,SAASqnC,EAAMN,GAC/B6uE,EAAyBnhI,KAAM4yD,CAAI,EACnC,IAAI6rD,EAAQ6G,EAAIuB,YAAYj0D,CAAI,EAChC6rD,EAAMkZ,gBAAgB/kE,EAAMN,CAAM,EAClCtyD,KAAKohI,eAAe3iB,CAAK,EACzBz+G,KAAKw5H,YAAc,IACvB,EAEAsG,EAASuB,gBAAkB,WACvB,GAAIrhI,KAAKk9H,WAAY,CACjB,IAAIze,EAAQz+G,KAAK0+H,QAAQ,GACzB1+H,KAAKurB,SAASkzF,EAAMsO,eAAgBtO,EAAMoP,WAAW,CACzD,MACI,MAAM,IAAI1B,EAAa,mBAAmB,CAElD,EAEA2T,EAASwB,cAAgB,WACrB,GAAIthI,KAAKk9H,WAAY,CACjB,IAAIze,EAAQz+G,KAAK0+H,QAAQ1+H,KAAKk9H,WAAa,GAC3Cl9H,KAAKurB,SAASkzF,EAAMuO,aAAcvO,EAAMqP,SAAS,CACrD,MACI,MAAM,IAAI3B,EAAa,mBAAmB,CAElD,EAIA2T,EAASyB,kBAAoB,SAAS3uE,GAClCuuE,EAAyBnhI,KAAM4yD,CAAI,EACnC,IAAI6rD,EAAQ6G,EAAIuB,YAAYj0D,CAAI,EAChC6rD,EAAMsW,mBAAmBniE,CAAI,EAC7B5yD,KAAKohI,eAAe3iB,CAAK,CAC7B,EAEA,GAAIue,EACA8C,EAAS0B,iBAAmB,SAASpF,EAAYC,EAAcC,EAAWC,GACtEv8H,KAAKs9H,gBAAgBkE,iBAAiBpF,EAAYC,EAAcC,EAAWC,CAAW,EACtFv8H,KAAK24B,QAAQ,CACjB,OACG,GAAIokG,EACP+C,EAAS0B,iBAAmB,SAASpF,EAAYC,EAAcC,EAAWC,GACtExL,GAAkBqL,EAAYC,CAAY,EAC1CtL,GAAkBuL,EAAWC,CAAW,EACxC4E,EAAyBnhI,KAAMo8H,CAAU,EACzC+E,EAAyBnhI,KAAMs8H,CAAS,EACxC,IAAI7d,EAAQ6G,EAAIuB,YAAYj0D,IAAI,EAChC,IAAIquE,EAAepU,EAAIpC,cAAc2R,EAAYC,EAAcC,EAAWC,CAAW,GAAK,CAAC,EAC3F,GAAI0E,EACAxiB,EAAMkT,eAAe2K,EAAWC,EAAaH,EAAYC,CAAY,OAErE5d,EAAMkT,eAAeyK,EAAYC,EAAcC,EAAWC,CAAW,EAEzEv8H,KAAKohI,eAAe3iB,EAAOwiB,CAAW,CAC1C,EAGJnB,EAAS2B,mBAAqB,WAE1B,GAAIvD,GAA0BzB,GAA0Bz8H,KAAKk/H,aAAaxyG,MAAQivG,EAAS,CACvF,IAAIwD,EAAen/H,KAAKk/H,aAAarY,YAAY,EACjD,IAAI1wG,EACJ,MAAOgpH,EAAajmI,OAAQ,CACxBid,EAAUgpH,EAAar8G,KAAK,CAAC,EAC7Bq8G,EAAa7oH,OAAOH,CAAO,EAC3B02G,EAAIhB,WAAW11G,CAAO,CAC1B,CACAnW,KAAK24B,QAAQ,CACjB,MAAO,GAAI34B,KAAKk9H,WAAY,CACxB,IAAI8C,EAAShgI,KAAK6gI,aAAa,EAC/B,GAAIb,EAAO9mI,OAAQ,CACf8G,KAAK+9H,gBAAgB,EACrB,IAAK,IAAIjiI,EAAI,EAAG4sD,EAAMs3E,EAAO9mI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAC5CkkI,EAAOlkI,GAAGi7H,eAAe,EAI7B/2H,KAAKu9H,SAASyC,EAAOt3E,EAAM,EAAE,CACjC,CACJ,CACJ,EAGAo3E,EAAS4B,UAAY,SAASj0C,EAAMkK,GAChC,IAAK,IAAI77F,EAAI,EAAG4sD,EAAM1oD,KAAK0+H,QAAQxlI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAClD,GAAK2xF,EAAMztF,KAAK69H,WAAW/hI,CAAC,CAAE,EAC1B,OAAO67F,CAGnB,EAEAmoC,EAASe,aAAe,WACpB,IAAIb,EAAS,GACbhgI,KAAK0hI,UAAU,SAASjjB,GACpBuhB,EAAO3+H,KAAKo9G,CAAK,CACrB,CAAC,EACD,OAAOuhB,CACX,EAEAF,EAASsB,eAAiB,SAAS3iB,EAAOyhB,GACtClgI,KAAK+9H,gBAAgB,EACrB/9H,KAAKu9H,SAAS9e,EAAOyhB,CAAS,CAClC,EAEAJ,EAAS6B,sBAAwB,SAAS58D,EAAYj2D,GAClD,IAAIjW,EAAU,GACdmH,KAAK0hI,UAAW,SAASjjB,GACrB5lH,EAAQwI,KAAMo9G,EAAM15C,GAAYp+B,MAAM83E,EAAO3vG,GAAU,EAAE,CAAE,CAC/D,CAAE,EACF,OAAOjW,CACX,EAEA,SAAS+oI,GAAuBnL,GAC5B,OAAO,SAAS7jE,EAAMN,GAClB,IAAImsD,EACJ,GAAIz+G,KAAKk9H,WAAY,CACjBze,EAAQz+G,KAAK69H,WAAW,CAAC,EACzBpf,EAAM,OAASgY,EAAU,QAAU,QAAQ7jE,EAAMN,CAAM,CAC3D,KAAO,CACHmsD,EAAQ6G,EAAIuB,YAAY7mH,KAAK+mC,IAAI5zB,QAAQ,EACzCsrG,EAAMkT,eAAe/+D,EAAMN,CAAM,CACrC,CACAtyD,KAAKohI,eAAe3iB,EAAOz+G,KAAKghI,WAAW,CAAC,CAChD,CACJ,CAEAlB,EAASlM,SAAWgO,GAAuB,IAAI,EAC/C9B,EAASjM,OAAS+N,GAAuB,KAAK,EAG9Ctc,EAAI+C,eAAex2E,OAAS,SAASquF,GACjClE,GAAch8H,KAAKiqH,YAAY,CAAE,EAAEmX,eAAephI,KAAMkgI,CAAS,CACrE,EAEAJ,EAAS+B,gBAAkB,SAASp0C,GAChC,IAAIuyC,EAAS,GACb,IAAI7D,EAAWn8H,KAAKghI,WAAW,EAE/BhhI,KAAK0hI,UAAU,SAASjjB,GACpBhxB,EAAKgxB,CAAK,EACVuhB,EAAO3+H,KAAKo9G,CAAK,CACrB,CAAC,EAEDz+G,KAAK+9H,gBAAgB,EACrB,GAAI5B,GAAY6D,EAAO9mI,QAAU,EAC7B8G,KAAKu9H,SAASyC,EAAO,GAAI,UAAU,OAEnChgI,KAAKsgI,UAAUN,CAAM,CAE7B,EAEAF,EAAS/L,aAAe,SAASnhE,EAAMohE,GACnC,OAAOh0H,KAAK0hI,UAAW,SAASjjB,GAC5B,OAAOA,EAAMsV,aAAanhE,EAAMohE,CAAY,CAChD,EAAG,IAAK,GAAK,KACjB,EAEA8L,EAASlL,YAAc,SAASC,GAC5B,MAAO,CACHsH,SAAUn8H,KAAKghI,WAAW,EAC1Bc,eAAgB9hI,KAAK2hI,sBAAsB,cAAe,CAAC9M,EAAc,CAC7E,CACJ,EAEAiL,EAAS9K,eAAiB,SAASC,GAC/B,IAAI8M,EAAY,GAChB,IAAK,IAAIjmI,EAAI,EAAGkmI,EAAevjB,EAAOujB,EAAgB/M,EAAS6M,eAAehmI,CAAC,KAAO,CAClF2iH,EAAQ6G,EAAIuB,YAAY7mH,KAAK+mC,GAAG,EAChC03E,EAAMuW,eAAegN,CAAa,EAClCD,EAAU1gI,KAAKo9G,CAAK,CACxB,CACA,GAAIwW,EAASkH,SACTn8H,KAAKohI,eAAeW,EAAU,GAAI,UAAU,OAE5C/hI,KAAKsgI,UAAUyB,CAAS,CAEhC,EAEAjC,EAASmC,WAAa,WAClB,MAAO,CACH9F,SAAUn8H,KAAKghI,WAAW,EAC1BhB,OAAQhgI,KAAK2hI,sBAAsB,YAAY,CACnD,CACJ,EAEA7B,EAASoC,cAAgB,SAASH,GAC9B/hI,KAAK+9H,gBAAgB,EACrB,IAAK,IAAIjiI,EAAI,EAAG2iH,EAAOA,EAAQsjB,EAAU/B,OAAOlkI,GAAI,EAAEA,EAClDkE,KAAKu9H,SAAS9e,EAAQsjB,EAAU5F,UAAYrgI,GAAK,CAAE,CAE3D,EAEAgkI,EAASxM,OAAS,WACd,IAAI6O,EAAa,GACjBniI,KAAK0hI,UAAU,SAASjjB,GACpB0jB,EAAW9gI,KAAM02H,EAASzE,OAAO7U,CAAK,CAAE,CAC5C,CAAC,EACD,OAAO0jB,EAAWv2H,KAAK,EAAE,CAC7B,EAEA,GAAI65G,EAASmB,oBACTkZ,EAASsC,mBAAqB,WAC1B,IAAIp8C,EAAK8yC,EACT,GAAM9yC,EAAMhmF,KAAKk/H,aAAgB,CAC7B,IAAIzgB,EAAQz4B,EAAI6gC,YAAY,EAC5B,GAAI5B,EAAYxG,CAAK,EACjB,OAAOA,OAEP,MAAMhmH,EAAO0vH,YAAY,sDAAsD,CAEvF,MAAO,GAAInoH,KAAKk9H,WAAa,EACzB,OAAO5X,EAAI2S,iBAAiB+C,iBAAkBh7H,KAAK69H,WAAW,CAAC,CAAE,OAEjE,MAAMplI,EAAO0vH,YAAY,iDAAiD,CAElF,EAGJ,SAASze,GAAQ1jB,GACb,IAAIq8C,EAAgB,GACpB,IAAIxnF,EAAS,IAAIqxE,EAAYlmC,EAAIo2C,WAAYp2C,EAAIq2C,YAAY,EAC7D,IAAI10F,EAAQ,IAAIukF,EAAYlmC,EAAIs2C,UAAWt2C,EAAIu2C,WAAW,EAC1D,IAAI97H,EAAQ,OAAOulF,EAAI9tB,SAAW,WAAc8tB,EAAI9tB,QAAQ,EAAI,YAEhE,GAAI,OAAO8tB,EAAIk3C,YAAc,YACzB,IAAK,IAAIphI,EAAI,EAAG4sD,EAAMs9B,EAAIk3C,WAAYphI,EAAI4sD,EAAK,EAAE5sD,EAC7CumI,EAAcvmI,GAAKi8H,EAASruB,QAAQ1jB,EAAI63C,WAAW/hI,CAAC,CAAC,EAG7D,MAAO,IAAM2E,EAAO,YAAc4hI,EAAcz2H,KAAK,IAAI,EACjD,aAAeivC,EAAO6uD,QAAQ,EAAI,YAAc/hE,EAAM+hE,QAAQ,EAAI,GAC9E,CAEAo2B,EAAS5nE,QAAU,WACf,MAAO,kBACX,EAEA4nE,EAASp2B,QAAU,WACf,OAAOA,GAAQ1pG,IAAI,CACvB,EAEA8/H,EAASxkC,OAAS,WACdqkC,GAAqB3/H,KAAK+mC,IAAK,QAAQ,EACvCy4F,GAAiBx/H,IAAI,CACzB,EAEA67H,EAAiByG,UAAY,WACzB3C,GAAqB,KAAM,WAAW,CAC1C,EAEA9D,EAAiBnyB,QAAUA,GAC3BmyB,EAAiBD,oBAAsBA,EAEvCtW,EAAIid,UAAY1G,EAEhBvW,EAAIgD,mBAAqBwX,EAEzBxa,EAAIkC,gBAAgB,SAASzgF,GACzB,GAAI,OAAOA,EAAIi1F,cAAgB,YAC3Bj1F,EAAIi1F,aAAe,WACf,OAAOA,GAAaj1F,CAAG,CAC3B,EAEJA,EAAM,IACV,CAAC,CACL,CAAC,EAMD,IAAIy7F,EAAW,MAEXC,EAAc,SAAStqI,GACvB,GAAI,CAACqqI,EAAU,CACXA,EAAW,KACX,GAAI,CAACld,EAAIC,aAAeD,EAAIhsH,OAAOusH,eAC/B/2F,EAAK,CAEb,CACJ,EAEA,GAAIs2F,EAEA,GAAIjyG,SAAS2kE,YAAc,WACvB2qD,EAAY,MACT,CACH,GAAIhe,EAAatxG,SAAU,kBAAkB,EACzCA,SAAS22B,iBAAiB,mBAAoB24F,EAAa,KAAK,EAIpElf,EAAY5qH,OAAQ,OAAQ8pI,CAAW,CAC3C,CAGJ,OAAOnd,CACX,GA1yHsB,iC,2ECbtB,MAiBQ,EAAO,CAAC,6CAAwB,+BAAP,EAQ9B,SAASod,GAiOR,OAhOAA,EAAM9a,aAAa,cAAe,CAAC,oBAAqB,SAAStC,EAAK7sH,GAClE,IAAIo0H,EAAMvH,EAAIuH,IACd,IAAIhB,EAAagB,EAAIhB,WACrB,IAAI+P,EAAsBtW,EAAIid,UAAU3G,oBACxC,IAAI+G,EAAiB,SAErB,SAASC,EAAK7qI,EAAIivC,GACd,OAAQA,GAAO7zB,UAAUC,eAAerb,CAAE,CAC9C,CAEA,SAAS8qI,EAA0BpkB,EAAOqkB,GACtC,IAAIC,EAAW,sBAAuB,CAAE,IAAI1nI,KAAU,KAAO,GAAKgT,KAAK0c,OAAO,GAAGnT,MAAM,CAAC,EACxF,IAAIorH,EACJ,IAAIh8F,EAAM6lF,EAAI5C,YAAYxL,EAAMsO,cAAc,EAG9C,IAAIkW,EAAgBxkB,EAAMqR,WAAW,EACrCmT,EAAc13G,SAASu3G,CAAO,EAG9BE,EAAWh8F,EAAI/W,cAAc,MAAM,EACnC+yG,EAASjrI,GAAKgrI,EACdC,EAAS9pF,MAAMgqF,WAAa,IAC5BF,EAAS9pF,MAAM04C,QAAU,OACzBoxC,EAAS1+C,UAAY,yBACrB0+C,EAASxyD,YAAYxpC,EAAI4tD,eAAe+tC,CAAc,CAAC,EAEvDM,EAActQ,WAAWqQ,CAAQ,EACjC,OAAOA,CACX,CAEA,SAASG,EAAiBn8F,EAAKy3E,EAAOskB,EAAUD,GAC5C,IAAIE,EAAWJ,EAAKG,EAAU/7F,CAAG,EACjC,GAAIg8F,EAAU,CACVvkB,EAAMqkB,EAAU,iBAAmB,gBAAgBE,CAAQ,EAC3DnX,EAAWmX,CAAQ,CACvB,MACIvqI,EAAOm3E,KAAK,4DAA4D,CAEhF,CAEA,SAASwzD,EAAcvL,EAAIC,GACvB,OAAOA,EAAGvF,sBAAsBsF,EAAGpC,eAAgBoC,CAAE,CACzD,CAEA,SAASwL,EAAU5kB,EAAOyhB,GACtB,IAAIjH,EAASC,EAAOlyF,EAAMs+E,EAAIyS,SAAS9K,iBAAiBxO,CAAK,EAAGxjE,EAAOwjE,EAAMtxG,SAAS,EACtF,IAAIgvH,EAAWP,EAAoBsE,CAAS,EAE5C,GAAIzhB,EAAM6Q,UAAW,CACjB4J,EAAQ2J,EAA0BpkB,EAAO,KAAK,EAC9C,MAAO,CACHtrG,SAAU6zB,EACV+7F,SAAU7J,EAAMnhI,GAChBu3H,UAAW,IACf,CACJ,KAAO,CACH4J,EAAQ2J,EAA0BpkB,EAAO,KAAK,EAC9Cwa,EAAU4J,EAA0BpkB,EAAO,IAAI,EAE/C,MAAO,CACHtrG,SAAU6zB,EACVs8F,cAAerK,EAAQlhI,GACvBwrI,YAAarK,EAAMnhI,GACnBu3H,UAAW,MACX6M,SAAUA,EACVhvH,SAAU,WACN,MAAO,mBAAqB8tC,EAAO,iBAAmBwjE,EAAMtxG,SAAS,EAAI,GAC7E,CACJ,CACJ,CACJ,CAEA,SAASq2H,EAAaC,EAAWC,GAC7B,IAAI18F,EAAMy8F,EAAUtwH,SACpB,GAAI,OAAOuwH,GAAa,YACpBA,EAAY,KAEhB,IAAIjlB,EAAQ6G,EAAIuB,YAAY7/E,CAAG,EAC/B,GAAIy8F,EAAUnU,UAAW,CACrB,IAAI0T,EAAWJ,EAAKa,EAAUV,SAAU/7F,CAAG,EAC3C,GAAIg8F,EAAU,CACVA,EAAS9pF,MAAM04C,QAAU,SACzB,IAAIsoC,EAAe8I,EAASna,gBAG5B,GAAIqR,GAAgBA,EAAa9hD,UAAY,EAAG,CAC5CyzC,EAAWmX,CAAQ,EACnBvkB,EAAMkZ,gBAAgBuC,EAAcA,EAAahhI,MAAM,CAC3D,KAAO,CACHulH,EAAM+V,eAAewO,CAAQ,EAC7BnX,EAAWmX,CAAQ,CACvB,CACJ,MACIvqI,EAAOm3E,KAAK,4DAA4D,CAEhF,KAAO,CACHuzD,EAAiBn8F,EAAKy3E,EAAOglB,EAAUH,cAAe,IAAI,EAC1DH,EAAiBn8F,EAAKy3E,EAAOglB,EAAUF,YAAa,KAAK,CAC7D,CAEA,GAAIG,EACAjlB,EAAMyY,oBAAoB,EAG9B,OAAOzY,CACX,CAEA,SAASwjB,EAAWjC,EAAQE,GACxB,IAAIyD,EAAa,GAAIllB,EAAOz3E,EAC5B,IAAIm1F,EAAWP,EAAoBsE,CAAS,EAG5CF,EAASA,EAAOpoH,MAAM,CAAC,EACvBooH,EAAO1+H,KAAK8hI,CAAa,EAEzB,IAAK,IAAItnI,EAAI,EAAG4sD,EAAMs3E,EAAO9mI,OAAQ4C,EAAI4sD,EAAK,EAAE5sD,EAC5C6nI,EAAW7nI,GAAKunI,EAAUrD,EAAOlkI,GAAIqgI,CAAQ,EAKjD,IAAKrgI,EAAI4sD,EAAM,EAAG5sD,GAAK,EAAG,EAAEA,EAAG,CAC3B2iH,EAAQuhB,EAAOlkI,GACfkrC,EAAMs+E,EAAIyS,SAAS9K,iBAAiBxO,CAAK,EACzC,GAAIA,EAAM6Q,UACN7Q,EAAMiW,cAAckO,EAAKe,EAAW7nI,GAAGinI,SAAU/7F,CAAG,CAAC,MAClD,CACHy3E,EAAMgW,aAAamO,EAAKe,EAAW7nI,GAAGynI,YAAav8F,CAAG,CAAC,EACvDy3E,EAAMkW,cAAciO,EAAKe,EAAW7nI,GAAGwnI,cAAet8F,CAAG,CAAC,CAC9D,CACJ,CAEA,OAAO28F,CACX,CAEA,SAASC,EAAc78F,GACnB,GAAI,CAACu+E,EAAIqX,iBAAiB51F,CAAG,EAAG,CAC5BtuC,EAAOm3E,KAAK,wHAAwH,EACpI,OAAO,IACX,CACA,IAAIoW,EAAMs/B,EAAI0W,aAAaj1F,CAAG,EAC9B,IAAIi5F,EAASh6C,EAAI66C,aAAa,EAC9B,IAAI1E,EAAY6D,EAAO9mI,QAAU,GAAK8sF,EAAIg7C,WAAW,EAErD,IAAI2C,EAAa1B,EAAWjC,EAAQ7D,CAAQ,EAG5C,GAAIA,EACAn2C,EAAIo7C,eAAepB,EAAO,GAAI7D,CAAQ,OAEtCn2C,EAAIs6C,UAAUN,CAAM,EAGxB,MAAO,CACHj5F,IAAKA,EACL48F,WAAYA,EACZE,SAAU,KACd,CACJ,CAEA,SAAS3B,EAAcyB,GACnB,IAAI3D,EAAS,GAIb,IAAI9C,EAAayG,EAAWzqI,OAE5B,IAAK,IAAI4C,EAAIohI,EAAa,EAAGphI,GAAK,EAAGA,CAAC,GAClCkkI,EAAOlkI,GAAK0nI,EAAaG,EAAW7nI,GAAI,IAAI,EAGhD,OAAOkkI,CACX,CAEA,SAAS8D,EAAiBC,EAAgBC,GACtC,GAAI,CAACD,EAAeF,SAAU,CAC1B,IAAIF,EAAaI,EAAeJ,WAChC,IAAI39C,EAAMs/B,EAAI0W,aAAa+H,EAAeh9F,GAAG,EAC7C,IAAIi5F,EAASkC,EAAcyB,CAAU,EAAGzG,EAAayG,EAAWzqI,OAEhE,GAAIgkI,GAAc,GAAK8G,GAAqB1e,EAAIG,SAASsX,oBAAsB4G,EAAW,GAAGxH,SAAU,CACnGn2C,EAAI+3C,gBAAgB,EACpB/3C,EAAIu3C,SAASyC,EAAO,GAAI,IAAI,CAChC,MACIh6C,EAAIs6C,UAAUN,CAAM,EAGxB+D,EAAeF,SAAW,IAC9B,CACJ,CAEA,SAASI,EAAoBj9F,EAAK+7F,GAC9B,IAAIC,EAAWJ,EAAKG,EAAU/7F,CAAG,EACjC,GAAIg8F,EACAnX,EAAWmX,CAAQ,CAE3B,CAEA,SAASkB,EAAcH,GACnB,IAAIJ,EAAaI,EAAeJ,WAChC,IAAK,IAAI7nI,EAAI,EAAG4sD,EAAMi7E,EAAWzqI,OAAQuqI,EAAW3nI,EAAI4sD,EAAK,EAAE5sD,EAAG,CAC9D2nI,EAAYE,EAAW7nI,GACvB,GAAI2nI,EAAUnU,UACV2U,EAAoBF,EAAe/8F,IAAKy8F,EAAUV,QAAQ,MACvD,CACHkB,EAAoBF,EAAe/8F,IAAKy8F,EAAUH,aAAa,EAC/DW,EAAoBF,EAAe/8F,IAAKy8F,EAAUF,WAAW,CACjE,CACJ,CACJ,CAEAje,EAAID,KAAK7qG,OAAO8qG,EAAK,CACjB+d,UAAWA,EACXG,aAAcA,EACdvB,WAAYA,EACZC,cAAeA,EACf0B,cAAeA,EACfE,iBAAkBA,EAClBG,oBAAqBA,EACrBC,cAAeA,CACnB,CAAC,CACL,CAAC,EAEMxB,CACX,GA1OwC,8B,gECjBxC,8BACI,aAEA,IAIIyB,EACAC,EACAC,EACAr9F,EACAs9F,EA6HIxpH,EAZAypH,EAmCRC,EAjIA,SAASC,EAAej8D,GACpB,OAAO47D,EAAc57D,EACzB,CAwBA,SAASk8D,EAAal8D,GAGlB,GAAI67D,EAGA3lH,WAAWgmH,EAAc,EAAGl8D,CAAM,MAC/B,CACH,IAAIm8D,EAAOP,EAAc57D,GACzB,GAAIm8D,EAAM,CACNN,EAAwB,GACxB,IACI/uH,IAlCHqvH,EAkCOA,EAjCZj+F,EAAWi+F,EAAKj+F,SAChB4iC,EAAOq7D,EAAKr7D,KAChB,OAAQA,EAAKpwE,QACb,KAAK,EACDwtC,EAAS,EACT,MACJ,KAAK,EACDA,EAAS4iC,EAAK,EAAE,EAChB,MACJ,KAAK,EACD5iC,EAAS4iC,EAAK,GAAIA,EAAK,EAAE,EACzB,MACJ,KAAK,EACD5iC,EAAS4iC,EAAK,GAAIA,EAAK,GAAIA,EAAK,EAAE,EAClC,MACJ,QACI5iC,EAASC,MAAMx7B,EAAWm+D,CAAI,CAElC,CAmBQ,CAHE,QACEm7D,EAAej8D,CAAM,EACrB67D,EAAwB,EAC5B,CACJ,CACJ,CACJ,CAuBA,SAASO,IAMiB,SAAlBC,EAA2B3uH,GACvBA,EAAM2B,SAAW+zD,GACK,UAAtB,OAAO11D,EAAM5b,MACyB,IAAtC4b,EAAM5b,KAAK8M,QAAQ09H,CAAa,GAChCJ,EAAa,CAACxuH,EAAM5b,KAAKsd,MAAMktH,EAAc5rI,MAAM,CAAC,CAE5D,CAPA,IAAI4rI,EAAgB,gBAAkBz2H,KAAK0c,OAAO,EAAI,IASlD6gD,EAAO9hC,iBACP8hC,EAAO9hC,iBAAiB,UAAW+6F,EAAiB,EAAK,EAEzDj5D,EAAOyY,YAAY,YAAawgD,CAAe,EAGnDP,EAAoB,SAAS97D,GACzBoD,EAAOzyB,YAAY2rF,EAAgBt8D,EAAQ,GAAG,CAClD,CACJ,CAtHIoD,EAAO6B,eAIP02D,EAAa,EAEbE,EAAwB,EADxBD,EAAgB,IAEhBp9F,EAAM4kC,EAAOz4D,SAqJjBqxH,GAAWA,EADIjsI,OAAOytE,gBAAkBztE,OAAOytE,eAAe4F,CAAM,IAC7C44D,EAAS9lH,WAAa8lH,EAAW54D,EAGf,qBAArC,GAAGz+D,SAASqgB,KAAKo+C,EAAOj1C,OAAO,EApF/B2tG,EAAoB,SAAS97D,GACzB7xC,EAAQssF,SAAS,WAAcyhB,EAAal8D,CAAM,CAAG,CAAC,CAC1D,EAsFOu8D,CAnFX,WAGI,IACQC,EACAC,EAFR,GAAIr5D,EAAOzyB,aAAe,CAACyyB,EAAOs5D,cAQ9B,OAPIF,EAA4B,GAC5BC,EAAer5D,EAAOu5D,UAC1Bv5D,EAAOu5D,UAAY,WACfH,EAA4B,EAChC,EACAp5D,EAAOzyB,YAAY,GAAI,GAAG,EAC1ByyB,EAAOu5D,UAAYF,EACZD,CAEf,EAsE6B,EApCzBV,EAwCO14D,EAAOw5D,iBA9CVb,EAAU,IAAIa,gBACVC,MAAMF,UAAY,SAASjvH,GAE/BwuH,EADaxuH,EAAM5b,IACA,CACvB,EAEoB,SAASkuE,GACzB+7D,EAAQe,MAAMnsF,YAAYqvB,CAAM,CACpC,GA0COxhC,GAAO,uBAAwBA,EAAI/W,cAAc,QAAQ,GAtC5DnV,EAAOksB,EAAIk0C,gBACK,SAAS1S,GAGzB,IAAIkU,EAAS11C,EAAI/W,cAAc,QAAQ,EACvCysD,EAAOyxB,mBAAqB,WACxBu2B,EAAal8D,CAAM,EACnBkU,EAAOyxB,mBAAqB,KAC5BrzF,EAAKi/D,YAAY2C,CAAM,EACvBA,EAAS,IACb,EACA5hE,EAAK01D,YAAYkM,CAAM,CAC3B,GAIoB,SAASlU,GACzB9pD,WAAWgmH,EAAc,EAAGl8D,CAAM,CACtC,EAcAo8D,EAAiC,EAerCJ,EAAS/2D,aA1KT,SAAsB/mC,GAEI,YAApB,OAAOA,IACTA,EAAW,IAAIkkC,SAAS,GAAKlkC,CAAQ,GAIvC,IADA,IAAI4iC,EAAO,IAAIzzC,MAAM+Q,UAAU1tC,OAAS,CAAC,EAChC4C,EAAI,EAAGA,EAAIwtE,EAAKpwE,OAAQ4C,CAAC,GAC9BwtE,EAAKxtE,GAAK8qC,UAAU9qC,EAAI,GAM5B,OAFAsoI,EAAcD,GADH,CAAEz9F,SAAUA,EAAU4iC,KAAMA,CAAK,EAE5Cg7D,EAAkBH,CAAU,EACrBA,CAAU,EACnB,EA4JAK,EAASC,eAAiBA,EAC9B,EAAkB,aAAhB,OAAO1kI,KAAyC,SAAX6rE,EAAyB5rE,KAAO4rE,EAAS7rE,IAAK,C,0KCzLrF,QAcEC,KAXE,EAAsB,CAAC,4CAAQ,6DAE9B,UAFuE,EAAF,SAAYulI,EAAGC,GACnF,OAAQlgG,EAAK,oBAUX,SAAUo9F,IAIlB,SAAS+C,EAAmB/0C,GACxB,IACI,OAAOt3F,QAAQ+c,QAAQu6E,CAAM,EAAEx3F,SAAW,CAG9C,CAFC,MAAMqiC,GACH,OAAO,KACX,CACJ,CAIA,IAAIpiC,EAAU,GA2Cd,SAASusI,EAAwBjlI,EAAMklI,GACnC,GAAG,CAACllI,GAAQA,IAAS,IAAMtH,EAAQmqE,eAAe7iE,CAAI,EAAG,KAAK,qEAC9D,GACKklI,EAAe/zC,UAAY+zC,EAAe/zC,UAAY,IAAM,CAAC6zC,EAAmBE,EAAe/zC,OAAO,IACtG,CAAC+zC,EAAe/zC,SAAW,CAAC+zC,EAAeC,YAAc,CAACD,EAAeE,UAE1E,KAAM,2CAA6CplI,EAAO,6DAC9DtH,EAAQsH,GAAQklI,CACpB,CAEAvsI,QAAQX,OAAO,mBAAoB,EAAE,EACpC4iE,SAAS,iBAAkBqqE,CAAuB,EAClD/nI,MAAM,UAAWxE,CAAO,EAExBwE,MAAM,YAAc,CAKjBmoI,yBAA0B,KA0B1BC,YAAc,GACdC,QAAS,CACL,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,MAAO,SACjD,CAAC,OAAQ,UAAW,YAAa,gBAAiB,KAAM,KAAM,OAAQ,OAAQ,SAC9E,CAAC,cAAc,gBAAgB,eAAe,cAAc,SAAS,WACrE,CAAC,OAAQ,cAAe,aAAc,cAAe,YAAa,cAEtEC,QAAS,CACLC,SAAU,WACVF,QAAS,cACTG,aAAc,YACdC,cAAe,kBACfC,oBAAqB,SACrBjpF,SAAU,WACVkpF,WAAY,eACZC,WAAY,cAChB,EACAC,qBAAuB,CACnBtnI,EAAG,CAACwrB,OAAO,EAAE,CACjB,EACA2rE,MAAO,CAEHowC,gBAAiB,SAASC,KAE1BC,gBAAiB,SAASD,IAC9B,EACAE,uBAEI,SAASnhH,EAAMohH,GACX,IAAIC,EAAS,IAAI96G,WACjB,GAAGvG,EAAKiH,KAAKmX,UAAU,EAAG,CAAC,IAAM,QAAQ,CACrCijG,EAAO76G,OAAS,WACZ,GAAG66G,EAAOprI,SAAW,GAAImrI,EAAa,cAAeC,EAAOprI,OAAQ,IAAI,CAC5E,EAEAorI,EAAOt3G,cAAc/J,CAAI,EAEzB,OAAO,IACX,CACA,OAAO,KACX,CACR,CAAC,EAKA9nB,MAAM,uBAAwB,CAAC,IAAI,MAAM,EAOzCA,MAAM,oBAAqB,CACxB,CAGIi/E,SAAU,MACVmqD,gBAAiB,kBACjBC,YAAa,SAAS7wH,GAClB,IAAIjD,EAAS9Z,QAAQ+c,QAAQ,mBAAmB,EAChD,IAAIsB,EAAatB,EAAQmX,KAAK,YAAY,EAE1Cl0B,QAAQypB,QAAQpL,EAAY,SAASqV,GACjC5Z,EAAO4Z,KAAKA,EAAKrsB,KAAMqsB,EAAKnvB,KAAK,CACrC,CAAC,EACDuV,EAAO4Z,KAAK,MAAO5Z,EAAO4Z,KAAK,iBAAiB,CAAC,EACjD3W,EAAQqlF,YAAYtoF,CAAM,CAC9B,CACJ,EACH,EAEAvV,MAAM,iBAAkB,CAMrBmd,KAAM,CACFmsH,QAAS,yBACb,EAEAjsF,QAAS,CACLisF,QAAS,UACb,EACA/6H,EAAG,CACC+6H,QAAS,WACb,EACAC,IAAK,CACDD,QAAS,mBACb,EACAE,GAAI,CACAF,QAAS,gBACb,EACAG,GAAI,CACAH,QAAS,cACb,EACAI,MAAO,CACHJ,QAAS,sCACb,EACAK,KAAM,CACFL,QAAS,MACb,EACAM,KAAM,CACFN,QAAS,MACb,EACAO,KAAM,CACFP,QAAS,MACb,EACAQ,OAAQ,CACJR,QAAS,QACb,EACAS,UAAW,CACPT,QAAS,WACb,EACAU,cAAc,CACVV,QAAS,eACb,EACAW,YAAa,CACTX,QAAS,iBACb,EACAY,aAAc,CACVZ,QAAS,kBACb,EACAa,YAAa,CACTb,QAAS,cACb,EACAc,cAAe,CACXd,QAAS,QACb,EACAe,OAAQ,CACJf,QAAS,iBACb,EACAgB,QAAS,CACLhB,QAAS,iBACb,EACAh4G,MAAO,CACHg4G,QAAS,kBACb,EACAiB,YAAa,CACTC,aAAc,sCACdlB,QAAS,eACTmB,OAAQ,6EACZ,EACAC,YAAa,CACTpB,QAAS,eACTkB,aAAc,qCAClB,EACAG,WAAY,CACRrB,QAAS,qBACTkB,aAAc,8BAClB,EACAI,SAAU,CACNC,aAAc,CACVvB,QAAS,QACb,EACAwB,aAAc,CACVxB,QAAS,QACb,EACAyB,aAAc,CACV9C,WAAY,oBAChB,CACJ,EACA+C,UAAW,CACP1B,QAAS,qBACb,EACI2B,UAAW,CACX3B,QAAS,0BACb,CACJ,CAAC,EACAvuH,QAAQ,kBAAmB,CAAC,UAAU,iBAAkB,SAASxH,EAAS23H,GACvE,MAAO,CACHC,kBAAmB,SAAS5yH,EAAOwwH,EAAUqC,GAGzC,IAAIC,EAAa,WACbD,EAAYE,0BAA0B,EACtCF,EAAYG,YAAY,CAC5B,EACAhzH,EAAMmB,eAAe,EACrB0xH,EAAYI,gBAAgBC,QAAQ5nF,IAAI,QAAS,OAAO,EACxD,IAAIk7C,EAAYqsC,EAAYI,gBAAgBE,iBAC5C3sC,EAAUj8E,MAAM,EAChB,IAAI6oH,EAAclwI,QAAQ+c,QAAQ,qDAAqD,EACvF,IAAIozH,EAAanwI,QAAQ+c,QAAQ,+GAA+G,EAChJozH,EAAWxyF,GAAG,QAAS,SAAS7gC,GAC5BA,EAAMmB,eAAe,EACrBqvH,EAASllF,IAAI,CACT,MAAS,OACT,OAAU,EACd,CAAC,EACDwnF,EAAW,CACf,CAAC,EACD,IAAIQ,EAAapwI,QAAQ+c,QAAQ,8GAA8G,EAC/IqzH,EAAWzyF,GAAG,QAAS,SAAS7gC,GAC5BA,EAAMmB,eAAe,EACrBqvH,EAASllF,IAAI,CACT,MAAS,MACT,OAAU,EACd,CAAC,EACDwnF,EAAW,CACf,CAAC,EACD,IAAIS,EAAcrwI,QAAQ+c,QAAQ,8GAA8G,EAChJszH,EAAY1yF,GAAG,QAAS,SAAS7gC,GAC7BA,EAAMmB,eAAe,EACrBqvH,EAASllF,IAAI,CACT,MAAS,MACT,OAAU,EACd,CAAC,EACDwnF,EAAW,CACf,CAAC,EACD,IAAIU,EAActwI,QAAQ+c,QAAQ,+GAA+G,EACjJuzH,EAAY3yF,GAAG,QAAS,SAAS7gC,GAC7BA,EAAMmB,eAAe,EACrBqvH,EAASllF,IAAI,CACT9xB,MAAO,GACPC,OAAQ,EACZ,CAAC,EACDq5G,EAAW,CACf,CAAC,EACDM,EAAYt8G,OAAOu8G,CAAU,EAC7BD,EAAYt8G,OAAOw8G,CAAU,EAC7BF,EAAYt8G,OAAOy8G,CAAW,EAC9BH,EAAYt8G,OAAO08G,CAAW,EAC9BhtC,EAAU1vE,OAAOs8G,CAAW,EAE5BA,EAAclwI,QAAQ+c,QAAQ,qDAAqD,EACnF,IAAIwzH,EAAYvwI,QAAQ+c,QAAQ,0IAA0I,EAC1KwzH,EAAU5yF,GAAG,QAAS,SAAS7gC,GAC3BA,EAAMmB,eAAe,EAErBqvH,EAASllF,IAAI,QAAS,MAAM,EAE5BklF,EAASllF,IAAI,WAAY,MAAM,EAE/BklF,EAASllF,IAAI,aAAc,MAAM,EACjCwnF,EAAW,CACf,CAAC,EACD,IAAIY,EAAaxwI,QAAQ+c,QAAQ,2IAA2I,EAC5KyzH,EAAW7yF,GAAG,QAAS,SAAS7gC,GAC5BA,EAAMmB,eAAe,EAErBqvH,EAASllF,IAAI,QAAS,OAAO,EAE7BklF,EAASllF,IAAI,WAAY,OAAO,EAEhCklF,EAASllF,IAAI,aAAc,OAAO,EAClCwnF,EAAW,CACf,CAAC,EACD,IAAIa,EAAYzwI,QAAQ+c,QAAQ,6IAA6I,EAC7K0zH,EAAU9yF,GAAG,QAAS,SAAS7gC,GAC3BA,EAAMmB,eAAe,EAErBqvH,EAASllF,IAAI,QAAS,EAAE,EAExBklF,EAASllF,IAAI,WAAY,EAAE,EAE3BklF,EAASllF,IAAI,aAAc,EAAE,EAC7BwnF,EAAW,CACf,CAAC,EACDM,EAAYt8G,OAAO28G,CAAS,EAC5BL,EAAYt8G,OAAO68G,CAAS,EAC5BP,EAAYt8G,OAAO48G,CAAU,EAC7BltC,EAAU1vE,OAAOs8G,CAAW,EAE5BA,EAAclwI,QAAQ+c,QAAQ,yBAAyB,EACvD,IAAIG,EAASld,QAAQ+c,QAAQ,uIAAuI,EACpKG,EAAOygC,GAAG,QAAS,SAAS7gC,GACxBA,EAAMmB,eAAe,EACrBqvH,EAASpwH,OAAO,EAChB0yH,EAAW,CACf,CAAC,EACDM,EAAYt8G,OAAO1W,CAAM,EACzBomF,EAAU1vE,OAAOs8G,CAAW,EAE5BP,EAAYe,YAAYpD,CAAQ,EAChCqC,EAAYgB,kBAAkBrD,CAAQ,CAC1C,EACAsD,gBAAiB,SAAS9zH,EAAOwwH,EAAUqC,GAGvC7yH,EAAMmB,eAAe,EACrB0xH,EAAYI,gBAAgBC,QAAQ5nF,IAAI,QAAS,OAAO,EACxD,IAAIk7C,EAAYqsC,EAAYI,gBAAgBE,iBAC5C3sC,EAAUj8E,MAAM,EAChBi8E,EAAUl7C,IAAI,cAAe,MAAM,EACnC,IAAI7J,EAAOv+C,QAAQ+c,QAAQ,YAAcuwH,EAAS55G,KAAK,MAAM,EAAI,qBAAuB45G,EAAS55G,KAAK,MAAM,EAAI,MAAM,EACtH6qB,EAAK6J,IAAI,CACL,QAAW,eACX,YAAa,QACb,SAAY,SACZ,gBAAiB,WACjB,cAAe,SACf,iBAAkB,QACtB,CAAC,EACDk7C,EAAU1vE,OAAO2qB,CAAI,EACrB,IAAI2xF,EAAclwI,QAAQ+c,QAAQ,oCAAoC,EACtE,IAAIqyH,EAAepvI,QAAQ+c,QAAQ,yGAA2G0yH,EAAeN,SAASC,aAAavB,QAAU,iDAAiD,EAC9OuB,EAAazxF,GAAG,QAAS,SAAS7gC,GAC9BA,EAAMmB,eAAe,EACrB,IAAI4yH,EAAU/4H,EAAQ4wC,OAAO+mF,EAAeP,WAAWH,aAAczB,EAAS55G,KAAK,MAAM,CAAC,EAC1F,GAAGm9G,GAAWA,IAAY,IAAMA,IAAY,UAAU,CAClDvD,EAAS55G,KAAK,OAAQm9G,CAAO,EAC7BlB,EAAYE,0BAA0B,CAC1C,CACAF,EAAYG,YAAY,CAC5B,CAAC,EACDI,EAAYt8G,OAAOw7G,CAAY,EAC/B,IAAIC,EAAervI,QAAQ+c,QAAQ,yGAA2G0yH,EAAeN,SAASE,aAAaxB,QAAU,qDAAqD,EAElPwB,EAAa1xF,GAAG,QAAS,SAAS7gC,GAC9BA,EAAMmB,eAAe,EACrBqvH,EAASlrC,YAAYkrC,EAAShtF,SAAS,CAAC,EACxCqvF,EAAYE,0BAA0B,EACtCF,EAAYG,YAAY,CAC5B,CAAC,EACDI,EAAYt8G,OAAOy7G,CAAY,EAC/B,IAAIC,EAAetvI,QAAQ+c,QAAQ,kGAAoG0yH,EAAeN,SAASG,aAAa9C,WAAa,WAAW,EACpM,GAAGc,EAAS55G,KAAK,QAAQ,IAAM,SAC3B47G,EAAazjF,SAAS,QAAQ,EAElCyjF,EAAa3xF,GAAG,QAAS,SAAS7gC,GAC9BA,EAAMmB,eAAe,EACrBqvH,EAAS55G,KAAK,SAAW45G,EAAS55G,KAAK,QAAQ,IAAM,SAAY,GAAK,QAAQ,EAC9E47G,EAAa3kF,YAAY,QAAQ,EACjCglF,EAAYE,0BAA0B,CAC1C,CAAC,EACDK,EAAYt8G,OAAO07G,CAAY,EAC/BhsC,EAAU1vE,OAAOs8G,CAAW,EAC5BP,EAAYe,YAAYpD,CAAQ,CACpC,EACAwD,sBAAuB,SAASpvI,GAC5B,IAAIqvI,EAAK,sHACT,IAAItiF,EAAQ/sD,EAAI+sD,MAAMsiF,CAAE,EACxB,OAAQtiF,GAASA,EAAM,IAAO,IAClC,CACJ,CACJ,EAAE,EACDvyC,IAAI,CAAC,iBAAkB,UAAW,iBAAkB,cAAe,kBAAmB,YAAa,YAAa,OAC7G,SAAS80H,EAAgBl5H,EAAS23H,EAAgBwB,EAAaC,EAAiBC,EAAWC,EAAWvwE,GAGtG,IAAIwwE,EAAK,GAAIF,EAAU,GAAIE,CAAE,EAE7B,GAAKD,EAAU1E,2BAA2B,MAAU2E,EAAGpnB,UAAY,aAC/D,MAAMjqH,QAAQsxI,SAAS,aAAa,EAAE,mBAAoB,kHAAkH,EAEhLN,EAAe,OAAQ,CACnBvE,UAAW,aACX8E,YAAa9B,EAAe/tH,KAAKmsH,QACjCrH,OAAQ,WACJ5/H,KAAK4qI,QAAQ,EAAEC,WAAW,CAC9B,EACAC,YAAa,WACT,OAAO9qI,KAAK4qI,QAAQ,EAAEG,QAC1B,CACJ,CAAC,EAGD,IAAIC,EAA0B,SAASxvG,GACnC,OAAO,WAAY,OAAOx7B,KAAK4qI,QAAQ,EAAEK,sBAAsBzvG,CAAC,CAAG,CACvE,EACA,IAAI0vG,EAAe,WACf,OAAOlrI,KAAK4qI,QAAQ,EAAEO,cAAc,cAAe,IAAMnrI,KAAKS,KAAKwX,YAAY,EAAG,GAAG,CACzF,EACA7e,QAAQypB,QAAQ,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,MAAO,SAASkwC,GACtDq3E,EAAer3E,EAAE7gD,YAAY,EAAG,CAC5B0zH,WAAY7yE,EAAE96C,YAAY,EAC1B0yH,YAAa9B,EAAe7tF,QAAQisF,QAAUl0E,EAAE/6C,OAAO,CAAC,EACxD4nH,OAAQsL,EACRJ,YAAaE,EAAwBj4E,EAAE7gD,YAAY,CAAC,CACxD,CAAC,CACL,CAAC,EACDk4H,EAAe,IAAK,CAChBxE,WAAY,IACZ+E,YAAa9B,EAAe38H,EAAE+6H,QAC9BrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,cAAe,KAAK,CAC5D,EACAL,YAAa,WAAY,OAAO9qI,KAAK4qI,QAAQ,EAAEK,sBAAsB,GAAG,CAAG,CAC/E,CAAC,EAEDb,EAAe,MAAO,CAClBxE,WAAY,MACZ+E,YAAa9B,EAAe3B,IAAID,QAChCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,cAAe,OAAO,CAC9D,EACAL,YAAa,WAAY,OAAO9qI,KAAK4qI,QAAQ,EAAEK,sBAAsB,KAAK,CAAG,CACjF,CAAC,EACDb,EAAe,KAAM,CACjBvE,UAAW,gBACX8E,YAAa9B,EAAe1B,GAAGF,QAC/BrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,sBAAuB,IAAI,CACnE,EACAL,YAAa,WAAY,OAAO9qI,KAAK4qI,QAAQ,EAAEQ,kBAAkB,qBAAqB,CAAG,CAC7F,CAAC,EACDhB,EAAe,KAAM,CACjBvE,UAAW,gBACX8E,YAAa9B,EAAezB,GAAGH,QAC/BrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,oBAAqB,IAAI,CACjE,EACAL,YAAa,WAAY,OAAO9qI,KAAK4qI,QAAQ,EAAEQ,kBAAkB,mBAAmB,CAAG,CAC3F,CAAC,EACDhB,EAAe,QAAS,CACpBvE,UAAW,oBACX8E,YAAa9B,EAAexB,MAAMJ,QAClCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,cAAe,cAAc,CACrE,EACAL,YAAa,WAAY,OAAO9qI,KAAK4qI,QAAQ,EAAEK,sBAAsB,YAAY,CAAG,CACxF,CAAC,EACDb,EAAe,OAAQ,CACnBvE,UAAW,aACX8E,YAAa9B,EAAevB,KAAKL,QACjCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,OAAQ,IAAI,CACpD,CACJ,CAAC,EACDf,EAAe,OAAQ,CACnBvE,UAAW,eACX8E,YAAa9B,EAAetB,KAAKN,QACjCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,OAAQ,IAAI,CACpD,CACJ,CAAC,EACDf,EAAe,OAAQ,CACnBvE,UAAW,aACX8E,YAAa9B,EAAerB,KAAKP,QACjCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,OAAQ,IAAI,CACpD,EACAL,YAAa,WACT,OAAO9qI,KAAK4qI,QAAQ,EAAEQ,kBAAkB,MAAM,CAClD,EACAC,eAAgB,EACpB,CAAC,EACDjB,EAAe,cAAe,CAC1BvE,UAAW,mBACX8E,YAAa9B,EAAejB,YAAYX,QACxCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,cAAe,IAAI,CAC3D,EACAL,YAAa,SAASQ,GAElB,GAAIA,GAAiBA,EAAc/yD,WAAa,YAAa,OAAO,MACpE,IAAI78E,EAAS,MACb,GAAI4vI,EAGA,IACI5vI,EACI4vI,EAAc9pF,IAAI,YAAY,IAAM,QACpC8pF,EAAcx+G,KAAK,OAAO,IAAM,QAE5Bw+G,EAAc9pF,IAAI,YAAY,IAAM,SACpC8pF,EAAc9pF,IAAI,YAAY,IAAM,UACpC8pF,EAAc9pF,IAAI,YAAY,IAAM,WAAa,CAACxhD,KAAK4qI,QAAQ,EAAEQ,kBAAkB,cAAc,GAAK,CAACprI,KAAK4qI,QAAQ,EAAEQ,kBAAkB,eAAe,GACtJ,CAACprI,KAAK4qI,QAAQ,EAAEQ,kBAAkB,aAAa,CAK5D,CAJE,MAAMjzI,GAGJuD,EAAS,KACb,CAEJA,EAASA,GAAUsE,KAAK4qI,QAAQ,EAAEQ,kBAAkB,aAAa,EACjE,OAAO1vI,CACX,CACJ,CAAC,EACD0uI,EAAe,eAAgB,CAC3BvE,UAAW,oBACX8E,YAAa9B,EAAehB,aAAaZ,QACzCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,eAAgB,IAAI,CAC5D,EACAL,YAAa,SAASQ,GAElB,GAAIA,GAAiBA,EAAc/yD,WAAa,YAAa,OAAO,MACpE,IAAI78E,EAAS,MACb,GAAG4vI,EAGC,IACI5vI,EAAS4vI,EAAc9pF,IAAI,YAAY,IAAM,OAKjD,CAJE,MAAMrpD,GAGJuD,EAAS,KACb,CAEJA,EAASA,GAAUsE,KAAK4qI,QAAQ,EAAEQ,kBAAkB,cAAc,EAClE,OAAO1vI,CACX,CACJ,CAAC,EACD0uI,EAAe,cAAe,CAC1BvE,UAAW,sBACX8E,YAAa9B,EAAef,YAAYb,QACxCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,cAAe,IAAI,CAC3D,EACAL,YAAa,SAASQ,GAClB,IAAI5vI,EAAS,MACb,GAAG4vI,EAGC,IACI5vI,EAAS4vI,EAAc9pF,IAAI,YAAY,IAAM,SAKjD,CAJE,MAAMrpD,GAGJuD,EAAS,KACb,CAEJA,EAASA,GAAUsE,KAAK4qI,QAAQ,EAAEQ,kBAAkB,aAAa,EACjE,OAAO1vI,CACX,CACJ,CAAC,EACD0uI,EAAe,gBAAiB,CAC5BvE,UAAW,qBACX8E,YAAa9B,EAAed,cAAcd,QAC1CrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,gBAAiB,IAAI,CAC7D,EACAL,YAAa,SAASQ,GAElB,GAAIA,GAAiBA,EAAc/yD,WAAa,YAAa,OAAO,MACpE,IAAI78E,EAAS,MACb,GAAG4vI,EAGC,IACI5vI,EAAS4vI,EAAc9pF,IAAI,YAAY,IAAM,QAKjD,CAJE,MAAMrpD,GAGJuD,EAAS,KACb,CAGJA,EAASA,GAAUsE,KAAK4qI,QAAQ,EAAEQ,kBAAkB,eAAe,EACnE,OAAO1vI,CACX,CACJ,CAAC,EACD0uI,EAAe,SAAU,CACrBvE,UAAW,eACX8E,YAAa9B,EAAeb,OAAOf,QACnCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,SAAU,IAAI,CACtD,EACAL,YAAa,WACT,OAAO9qI,KAAK4qI,QAAQ,EAAEK,sBAAsB,YAAY,CAC5D,EACAI,eAAgB,QACpB,CAAC,EACDjB,EAAe,UAAW,CACtBvE,UAAW,gBACX8E,YAAa9B,EAAeZ,QAAQhB,QACpCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,UAAW,IAAI,CACvD,EACAL,YAAa,WACT,OAAO,KACX,EACAO,eAAgB,aACpB,CAAC,EACDjB,EAAe,UAAW,CACtBvE,UAAW,eACX8E,YAAa9B,EAAepB,OAAOR,QACnCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,SAAU,IAAI,CACtD,EACAL,YAAa,WACT,OAAO9qI,KAAK4qI,QAAQ,EAAEQ,kBAAkB,QAAQ,CACpD,EACAC,eAAgB,GACpB,CAAC,EACDjB,EAAe,YAAa,CACxBvE,UAAW,kBACX8E,YAAa9B,EAAenB,UAAUT,QACtCrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,YAAa,IAAI,CACzD,EACAL,YAAa,WACT,OAAO9qI,KAAK4qI,QAAQ,EAAEQ,kBAAkB,WAAW,CACvD,EACAC,eAAgB,GACpB,CAAC,EACDjB,EAAe,gBAAiB,CAC5BvE,UAAW,sBACX8E,YAAa9B,EAAelB,cAAcV,QAC1CrH,OAAQ,WACJ,OAAO5/H,KAAK4qI,QAAQ,EAAEO,cAAc,gBAAiB,IAAI,CAC7D,EACAL,YAAa,WACT,OAAO33H,SAASi4H,kBAAkB,eAAe,CACrD,CACJ,CAAC,EACDhB,EAAe,QAAS,CACpBvE,UAAW,YACX8E,YAAa9B,EAAe55G,MAAMg4G,QAClCrH,OAAQ,SAAShyC,EAAUk2C,GACvB,IAAIhoI,EAAGyvI,EAAkBC,EAEzBxrI,KAAK4qI,QAAQ,EAAEO,cAAc,eAAgB,IAAI,EACjD,IAAIM,EAAgBryI,QAAQ+c,QAAQk0H,EAAYqB,oBAAoB,CAAC,EACrEH,EAAmBlB,EAAYsB,uBAAuB,EAGtD,IAAIC,EAAqB,SAAS7qD,EAAM8qD,GACpC9qD,EAAO3nF,QAAQ+c,QAAQ4qE,CAAI,EAC3B,IAAI+qD,EAAcD,EAClB,GAAI,CAACA,EACDC,EAAc/qD,EAElB3nF,QAAQypB,QAAQk+D,EAAKjmC,SAAS,EAAG,SAASixF,GACtC,GAAIA,EAAOxhB,QAAQr4G,YAAY,IAAM,MACjC65H,EAAOxhB,QAAQr4G,YAAY,IAAM,KACjC45H,EAAcF,EAAmBG,EAAQD,CAAW,MACjD,CACH,IAAIE,EAAU5yI,QAAQ+c,QAAQ,SAAS,EACvC61H,EAAQlxH,KAAK1hB,QAAQ+c,QAAQ41H,CAAM,EAAEjxH,KAAK,CAAC,EAC3CgxH,EAAYhnF,MAAMknF,CAAO,EACzBF,EAAcE,CAClB,CACJ,CAAC,EACDjrD,EAAKzqE,OAAO,EACZ,OAAOw1H,CACX,EAEA1yI,QAAQypB,QAAQ0oH,EAAkB,SAASp1H,GACvC,GAAIA,EAAQoiE,SAASrmE,YAAY,IAAM,MACnCiE,EAAQoiE,SAASrmE,YAAY,IAAM,KAEnC05H,EAAmBz1H,CAAO,CAElC,CAAC,EAED/c,QAAQypB,QAAQ4oH,EAAczoH,KAAK,IAAI,EAAG4oH,CAAkB,EAC5DxyI,QAAQypB,QAAQ4oH,EAAczoH,KAAK,IAAI,EAAG4oH,CAAkB,EAG5D,IAAIhB,EAAU5qI,KAAK4qI,QAAQ,EAC3B,IAAIqB,EAAuB,SAASr5E,GAChCA,EAAOx5D,QAAQ+c,QAAQy8C,CAAI,EAE3B,GAAGA,EAAK,KAAOg4E,EAAQzB,gBAAgBluF,KAAK,GACxC2X,EAAKxR,WAAW,OAAO,EAE3BhoD,QAAQypB,QAAQ+vC,EAAK9X,SAAS,EAAGmxF,CAAoB,CACzD,EACA7yI,QAAQypB,QAAQ4oH,EAAeQ,CAAoB,EAEnD,GAAGR,EAAc,IAAMA,EAAc,GAAGlhB,QAAQr4G,YAAY,IAAM,MAC9Du5H,EAAc,GAAGlhB,QAAQr4G,YAAY,IAAM,MAC3Cu5H,EAAc,GAAGlhB,QAAQr4G,YAAY,IAAM,MAC3Cu5H,EAAc,GAAGr7D,aAAa,iBAAiB,IAAM,OACrDpwE,KAAK4qI,QAAQ,EAAEO,cAAc,cAAe,SAAS,EAEzDrH,EAAiB,CACrB,CACJ,CAAC,EA6FD,IAAIoI,EAAkB,SAAUv0F,GAC5B,GAAIA,EAAKzlC,YAAY,EAAE9K,QAAQ,YAAY,IAAI,CAAC,EAC5C,OAAO,KAEX,OAAO,KACX,EAEAgjI,EAAe,cAAe,CAC1BvE,UAAW,kBACX8E,YAAa9B,EAAeX,YAAYjB,QACxCrH,OAAQ,WACJ,IAAIuM,EACJA,EAAYj7H,EAAQ4wC,OAAO+mF,EAAeX,YAAYC,aAAc,SAAS,EAC7E,GAAGgE,GAAaA,IAAc,IAAMA,IAAc,UAG9C,GAAI,CAACD,EAAgBC,CAAS,EAAG,CAC7B,GAAI9B,EAAYqB,oBAAoB,EAAEnhB,SAAW8f,EAAYqB,oBAAoB,EAAEnhB,QAAQr4G,YAAY,IAAM,IAIzGm4H,EAAY+B,yBAAyB/B,EAAYqB,oBAAoB,CAAC,EAU1E,IAAIW,EAAQ,aAAeF,EAAY,KACvC,OAAOnsI,KAAK4qI,QAAQ,EAAEO,cAAc,aAAckB,EAAO,IAAI,CACjE,CAER,EACAC,gBAAiB,CACbn2H,QAAS,MACTypH,OAAQ0K,EAAgBxB,iBAC5B,CACJ,CAAC,EACDsB,EAAe,cAAe,CAC1BvE,UAAW,qBACX8E,YAAa9B,EAAeR,YAAYpB,QACxCrH,OAAQ,WACJ,IAAI2M,EACJA,EAAYr7H,EAAQ4wC,OAAO+mF,EAAeR,YAAYF,aAAc,UAAU,EAG9E,GAAI,CAAC+D,EAAgBK,CAAS,EAE1B,GAAIA,GAAaA,IAAc,IAAMA,IAAc,WAAY,CAE3Dt6D,QAAUq4D,EAAgBJ,sBAAsBqC,CAAS,EAGzD,GAAIt6D,QAAS,CAET,IAAIg4D,EAAU,iCAAmCh4D,QAIjD,IAAIo6D,EAAQ,gEAAkEp6D,QAAU,oCAAsCg4D,EAAU,sEAExI,GAAII,EAAYqB,oBAAoB,EAAEnhB,SAAW8f,EAAYqB,oBAAoB,EAAEnhB,QAAQr4G,YAAY,IAAM,IAIzGm4H,EAAY+B,yBAAyB/B,EAAYqB,oBAAoB,CAAC,EAG1E,OAAO1rI,KAAK4qI,QAAQ,EAAEO,cAAc,aAAckB,EAAO,IAAI,CACjE,CACJ,CAER,EACAC,gBAAiB,CACbn2H,QAAS,MACTq2H,cAAe,CAAC,mBAChB5M,OAAQ0K,EAAgBxB,iBAC5B,CACJ,CAAC,EACDsB,EAAe,aAAc,CACzBO,YAAa9B,EAAeP,WAAWrB,QACvCpB,UAAW,aACXjG,OAAQ,WACJ,IAAIqK,EAGJ,GAAII,EAAYqB,oBAAoB,EAAEnhB,SAAW8f,EAAYqB,oBAAoB,EAAEnhB,QAAQr4G,YAAY,IAAM,IACzG+3H,EAAU/4H,EAAQ4wC,OAAO+mF,EAAeP,WAAWH,aAAckC,EAAYqB,oBAAoB,EAAElsH,IAAI,OAEvGyqH,EAAU/4H,EAAQ4wC,OAAO+mF,EAAeP,WAAWH,aAAc,SAAS,EAE9E,GAAG8B,GAAWA,IAAY,IAAMA,IAAY,UAGxC,GAAI,CAACiC,EAAgBjC,CAAO,EACxB,OAAOjqI,KAAK4qI,QAAQ,EAAEO,cAAc,aAAclB,EAAS,IAAI,CAG3E,EACAa,YAAa,SAASQ,GAClB,GAAGA,EAAe,OAAOA,EAAc,GAAG/gB,UAAY,IACtD,OAAO,KACX,EACA+hB,gBAAiB,CACbn2H,QAAS,IACTypH,OAAQ0K,EAAgBN,eAC5B,CACJ,CAAC,EACDI,EAAe,YAAa,CACxBx4C,QAAS,6GACTx0C,SAAU,KACVurF,UAAW,EACXmC,YAAa,WACT,IAAI2B,EAAczsI,KAAK4qI,QAAQ,EAAEzB,gBAAgBluF,KAEjD,IAAIyxF,EAAcD,EAAY,GAAGh5H,WAAa,GAC9C,IAAIk5H,EAAY,EAGhB,GAAID,EAAYr5H,QAAQ,kBAAmB,EAAE,IAAM,GAC/C,GAAIq5H,EAAYlsH,KAAK,IAAM,GACvBmsH,EAAYD,EAAYr5H,QAAQ,kFAAmF,EAAE,EAChHA,QAAQ,0BAA2B,GAAG,EACtCA,QAAQ,eAAgB,EAAE,EAC1BA,QAAQ,QAAS,GAAG,EACpBw0C,MAAM,MAAM,EAAE3uD,OAK3B8G,KAAK2oI,UAAYgE,EAEjB3sI,KAAK4qI,QAAQ,EAAEjC,UAAYgE,EAE3B,OAAO,KACX,CACJ,CAAC,EACDvC,EAAe,YAAa,CACxBx4C,QAAS,kHACTx0C,SAAU,KACVwrF,UAAW,EACXkC,YAAa,WACT,IAAI2B,EAAczsI,KAAK4qI,QAAQ,EAAEzB,gBAAgBluF,KACjD,IAAI2xF,EAAaH,EAAY,GAAGI,WAAaJ,EAAY,GAAGpmD,YAG5D,IAAIymD,EAAYF,EAAWv5H,QAAQ,iBAAiB,EAAE,EAAEA,QAAQ,QAAQ,GAAG,EAAEA,QAAQ,QAAS,GAAG,EAAEna,OAEnG8G,KAAK4oI,UAAYkE,EAEjB9sI,KAAK4qI,QAAQ,EAAEhC,UAAYkE,EAC3B,OAAO,KACX,CACJ,CAAC,CACL,EAAE;;;;;;;;EAgBF;aACA,IAAIC,EAAqB,SAkBrBC,GAAiB,CACpBC,GAAK,WACJ,IAAIC,EACHp/E,EAAI,EACJyiB,EAAMp9D,SAAS8c,cAAc,KAAK,EAClC3qB,EAAMirE,EAAIlpC,qBAAqB,GAAG,EAEnC,MACCkpC,EAAI98D,UAAY,qBAAmB,EAAGq6C,EAAK,2BAC3CxoD,EAAI,IAGL,OAAOwoD,EAAI,EAAIA,EAAIo/E,CACpB,EAAG,EACHC,OAAQ,yBAAyB1uF,KAAK9xB,UAAUmjD,SAAS,EACzDs9D,UAAWzgH,UAAUmjD,UAAU59D,YAAY,EAAE9K,QAAQ,SAAS,EAAI,CAAC,CACpE,EAIIimI,EAAcA,GAAe,GAkBjC,SAASC,EAAgBxyH,GAExB,IAAI+pE,EAAM1xE,SAAS8c,cAAc,KAAK,EACtC40D,EAAIpxE,UAAYqH,EAChB,IAAIu5C,EAAMwwB,EAAIwB,aAAexB,EAAIgoD,WAAa,GAC9Cx4E,EAAIhhD,QAAQ,IAAU,EAAE,EACxBghD,EAAMA,EAAI7zC,KAAK,EACf,OAAO6zC,CACR,CAEA,SAASk5E,EAAezyH,GAEvB,IAAI+pE,EAAM1xE,SAAS8c,cAAc,KAAK,EACtC40D,EAAIpxE,UAAYqH,EAChB,OAAO+pE,CACR,CA/BAwoD,EAAYjyI,IAAM,WACjB,OAAOiyI,EAAYjyI,KAClBiyI,EAAYG,QACZH,EAAYI,OACZJ,EAAYK,MACZL,EAAYM,WACZ,WAAa,OAAO,IAAItyI,MAAO6zB,QAAQ,CAAG,CAC3C,EAAE,EA6BH,IAAI0+G,GAAgB,sMAChBC,EAAe,gBAEfC,GAAgB,oNAehBC,EAAOC,GAAYC,GAAeC,EAAaC,EAAgBC,EAVnE,GAAI,CAACnpI,OAAOsoB,UAAU/M,KACrBvb,OAAOsoB,UAAU/M,KAAO,WACvB,OAAOxgB,KAAKqT,QAAQ,aAAc,EAAE,CACrC,EASD,GAAG25H,GAAeC,GAAK,GAAKD,GAAeC,KAAO9hI,UAAU,CAC3D,IAAIkjI,EAAUl7H,SAASm7H,YAEvB,IAAI,IAAIxyI,EAAI,EAAGA,EAAIuyI,EAAQn1I,OAAQ4C,CAAC,GACnC,GAAGuyI,EAAQvyI,GAAGyyI,MAAMr1I,SAAW,GAAKm1I,EAAQvyI,GAAGyyI,MAAMC,UAAU3mF,MAAM,gBAAgB,EACpF,GAAGwmF,EAAQvyI,GAAG0jB,KACb,GAAG6uH,EAAQvyI,GAAG0jB,KAAKqoC,MAAM,4BAA4B,EAAE,CACtDkmF,EAAQM,EAAQvyI,GAChB,KACD,CAKH,GAAG,CAACiyI,EAEHA,EAAQ,WAEP,IAAI70F,EAAQ/lC,SAAS8c,cAAc,OAAO,EAE1C,GAAG+8G,GAAeG,OAAQj0F,EAAMs3B,YAAYr9D,SAASyhF,eAAe,EAAE,CAAC,EAGvEzhF,SAASk0B,qBAAqB,MAAM,EAAE,GAAGmpC,YAAYt3B,CAAK,EAE1D,OAAOA,EAAM60F,KACb,EAAE,EAIJC,GAAa,SAASpxD,EAAU6xD,GAC/B,OAAOP,EAAYH,EAAOnxD,EAAU6xD,CAAK,CAC1C,EACAP,EAAc,SAASQ,EAAQ9xD,EAAU6xD,GACxC,IAAIE,EACJ,IAAIC,EAGJ,GAAGF,EAAOG,SAAUF,EAActgI,KAAKwS,IAAI6tH,EAAOG,SAAS31I,OAAS,EAAG,CAAC,OACnE,GAAGw1I,EAAOD,MAAOE,EAActgI,KAAKwS,IAAI6tH,EAAOD,MAAMv1I,OAAS,EAAG,CAAC,EAGvE,GAAGw1I,EAAOI,WACTJ,EAAOI,WAAWlyD,EAAW,IAAM6xD,EAAQ,IAAKE,CAAW,OAG3DD,EAAOK,QAAQnyD,EAAU6xD,EAAOE,CAAW,EAG5C,GAAGZ,EAAMU,MAAOG,EAAeb,EAAMU,MAAME,QACtC,GAAGZ,EAAMc,SAAUD,EAAeb,EAAMc,SAASF,GAEtD,OAAOC,CACR,EAEAR,EAAgB,SAASY,EAAMP,GAC9B,IAAI3yI,EAAGmzI,EACP,IAAKnzI,EAAE,EAAGA,EAAI2yI,EAAMv1I,OAAQ4C,CAAC,GAE5B,GAAI2yI,EAAM3yI,GAAGmhG,UAAY+xC,EAAK/xC,QAAS,CACtCgyC,EAAYnzI,EACZ,KACD,CAED,OAAOmzI,CACR,EAEAhB,GAAgB,SAASe,GACxBb,EAAeJ,EAAOiB,CAAI,CAC3B,EAEAb,EAAiB,SAASJ,EAAOiB,GAChC,IAAIP,EAAQV,EAAMc,UAAYd,EAAMU,MACpC,GAAG,CAACA,GAASA,EAAMv1I,SAAW,EAAG,OACjC,IAAI+1I,EAAYb,EAAcY,EAAMP,CAAK,EACzC,GAAGV,EAAMmB,WACRnB,EAAMmB,WAAWD,CAAS,OAE1BlB,EAAMoB,WAAWF,CAAS,CAE5B,CACD,CAEA71I,QAAQX,OAAO,wBAAyB,EAAE,EACzCigB,QAAQ,eAAgB,CAAC,WACtB,OAAO,SAASksE,GAEZ,GAAG,CAACA,EAAK,OAAQooD,GAAeC,IAAM,EAAI,IAAM,SAC3C,GAAGroD,IAAQ,GAAI,OAAQooD,GAAeC,KAAO9hI,UAAY,MAAS6hI,GAAeC,IAAM,EAAI,IAAM,SACjG,OAAQD,GAAeC,IAAM,EAAIroD,EAAI3sE,YAAY,EAAI2sE,CAC9D,CACJ,EAAE,EAAElsE,QAAQ,yBAA0B,CAAC,oBAAqB,QAAS,SAAS02H,EAAmBC,GAC7F,OAAO,SAASz2H,GACZ,IAAIzC,EAAU/c,QAAQ+c,QAAQ,aAAa,EAC3CA,EAAQ,GAAG1C,UAAYmF,EAEvBxf,QAAQypB,QAAQusH,EAAmB,SAASE,GACxC,IAAI39D,EAAW,GAEf,GAAG29D,EAAS1yD,UAAY0yD,EAAS1yD,WAAa,GAC1CjL,EAAWx7D,EAAQ6M,KAAKssH,EAAS1yD,QAAQ,OAExC,GAAG0yD,EAASvI,iBAAmBuI,EAASvI,kBAAoB,GAC7Dp1D,EAAW09D,EAAME,eAAep5H,EAASm5H,EAASvI,eAAe,EAErE3tI,QAAQypB,QAAQ8uD,EAAU,SAAS69D,GAC/BA,EAAWp2I,QAAQ+c,QAAQq5H,CAAQ,EACnC,GAAGF,EAAS1yD,UAAY0yD,EAAS1yD,WAAa,IAAM0yD,EAASvI,iBAAmBuI,EAASvI,kBAAoB,IACzG,GAAGyI,EAAS1iH,KAAKwiH,EAASvI,eAAe,IAAM57H,UAAWmkI,EAAStI,YAAYwI,CAAQ,CAAC,MACrFF,EAAStI,YAAYwI,CAAQ,CACxC,CAAC,CACL,CAAC,EAED,OAAOr5H,EAAQ,GAAG1C,SACtB,CACJ,EAAE,EAAEiF,QAAQ,cAAe,WAGvB,IAAI+2H,EAAc,SAAS30H,EAAM40H,GAC7B,GAAG,CAAC50H,GAAQ,CAAC1hB,QAAQ0hH,SAAShgG,CAAI,GAAKA,EAAK5hB,QAAU,EAAG,OAAO4hB,EAKhE,IAAI60H,EAAkB,2CAGtB,IAAIC,EAAY,oDAChB,IAAIC,EAA2B,wDAC/B,IAAIhoF,EAAOioF,EAAUC,EAAeC,EAAQC,EAAY,GAAIp5B,EAAY,EAIxE,MAAMhvD,EAAQgoF,EAAyB92I,KAAK+hB,CAAI,EAAE,CAC9Ci1H,EAAgBloF,EAAM,GACtBkoF,EAAgBA,EAAc18H,QAAQ,WAAY,GAAG,EACrD48H,GAAan1H,EAAK+oB,UAAUgzE,EAAWhvD,EAAMx8B,KAAK,EAAI0kH,EACtDl5B,EAAYhvD,EAAMx8B,MAAQw8B,EAAM,GAAG3uD,MACvC,CAEA,GAAI29G,EAAW,CAEXo5B,GAAan1H,EAAK+oB,UAAUgzE,CAAS,EACrC/7F,EAAKm1H,EACLA,EAAU,GACVp5B,EAAU,CACd,CAcA,GAAI,CAAC64B,EAAY,CACb,MAAO7nF,EAAQ8nF,EAAgB52I,KAAK+hB,CAAI,EAAG,CACvCm1H,GAAan1H,EAAK+oB,UAAUgzE,EAAWhvD,EAAMx8B,MAAM,CAAC,EACpDykH,EAAWjoF,EAAM,GAEjBA,EAAQ,qLAAqL9uD,KAAK+2I,CAAQ,EAC1M,GAAIjoF,EAAO,CACPioF,EAAWA,EAASz8H,QAAQ,uLAAwL,EAAE,EAEtN,GAAIy8H,EAAS52I,OAAS,EAClB+2I,GAAa,IAAMH,CAE3B,MACIG,GAAa,IAAMH,EAEvBj5B,EAAY84B,EAAgB94B,SAChC,CACAo5B,GAAan1H,EAAK+oB,UAAUgzE,CAAS,CACzC,CAGA,GAAGA,EAAY,EAAE,CAEb,IAAIq5B,EAAKD,EAAU58H,QAAQ,uCAAwC,IAAI,EACvE,OAAO68H,CACX,MAAO,OAAOp1H,CAClB,EACA,OAAO20H,CACX,CAAC,EAAE/2H,QAAQ,aAAc,CAAC,YAAa,SAASy3H,EAAkB5F,GAE9D,IAAI6F,EAAgB,CAChB,CACIvzB,SAAU,cACVv0F,OAAQ,CAAE,QACVs8D,IAAK,GACT,EACA,CACIi4B,SAAU,aACVv0F,OAAQ,CAAE,UACVs8D,IAAK,GACT,GAGJ,IAAIyrD,EAAa,GACjB,IAAI,IAAIv0I,EAAI,EAAGA,EAAIs0I,EAAcl3I,OAAQ4C,CAAC,GAAG,CACzC,IAAIw0I,EAAgB,IAAMF,EAAct0I,GAAG+gH,SAAW,SACtD,IAAI,IAAIhwG,EAAI,EAAGA,EAAIujI,EAAct0I,GAAGwsB,OAAOpvB,OAAQ2T,CAAC,GAAG,CAEnD,GAAGA,EAAI,EAAGyjI,GAAiB,IAC3BA,GAAiBF,EAAct0I,GAAGwsB,OAAOzb,EAC7C,CACAyjI,GAAiB,MACjBD,EAAWhvI,KAAKivI,CAAa,CACjC,CACA,IAAIC,EAAmB,IAAMF,EAAWzkI,KAAK,GAAG,EAAI,IAEpD,SAAS4kI,EAAW11H,EAAM21H,GACtB,IAAIniD,EAAQ,EACZ,IAAIuoB,EAAY,EAChB,IAAIhvD,EACJ,IAAI6oF,EAAW,YACf,MAAM7oF,EAAQ6oF,EAAS33I,KAAK+hB,CAAI,EAAE,CAC9B+7F,EAAYhvD,EAAMx8B,MAClB,GAAGw8B,EAAM,GAAGikB,OAAO,EAAG,CAAC,IAAM,IACzB,GAAGwiB,IAAU,EAAG,WACXA,CAAK,QACRA,CAAK,EACf,CACA,OAAOmiD,EACH31H,EAAK+oB,UAAU,EAAGgzE,CAAS,EAE3Bz9G,QAAQ+c,QAAQs6H,CAAO,EAAE,GAAGE,UAAU9sG,UAAU4sG,EAAQv3I,MAAM,EAC9D4hB,EAAK+oB,UAAUgzE,CAAS,CAChC,CAEA,SAAS+5B,EAAsB91H,GAC3B,GAAG,CAACA,GAAQ,CAAC1hB,QAAQ0hH,SAAShgG,CAAI,GAAKA,EAAK5hB,QAAU,EAAG,OAAO4hB,EAChE,IAAIhf,EACJ,IAAI+0I,EAAoB,mDACxB,IAAIhpF,EAAOipF,EAAUhB,EAAUE,EAAQe,EAAa,GAAIC,EAASf,EAAY,GAAIp5B,EAAY,EAC7F,MAAMhvD,EAAQgpF,EAAkB93I,KAAK+hB,CAAI,EAAE,CAGvCg1H,EAAWjoF,EAAM,IAAMA,EAAM,GAC7B,IAAIopF,EAAa,IAAIn4I,OAAOy3I,EAAkB,GAAG,EAEjD,GAAGn3I,QAAQ0hH,SAASg1B,CAAQ,GAAKmB,EAAWxyF,KAAKqxF,CAAQ,EAAE,CAEvDE,EAAS,GAET,IAAIkB,EAAiB,IAAIp4I,OAAOy3I,EAAkB,IAAI,EAEtD,MAAMO,EAAWI,EAAen4I,KAAK+2I,CAAQ,EACzC,IAAIh0I,EAAI,EAAGA,EAAIs0I,EAAcl3I,OAAQ4C,CAAC,GAClC,GAAG,CAAC,CAACg1I,EAAUh1I,EAAE,EAAK,GAClBk0I,GAAU,IAAMI,EAAct0I,GAAG8oF,IAAM,IAKnDosD,EAAUJ,EAAsB91H,EAAK+oB,UAAUgzE,EAAWhvD,EAAMx8B,KAAK,CAAC,EAEtE,GAAG0lH,EAAW73I,OAAS,EACnB+2I,GAAaO,EAAWQ,EAASD,CAAU,OACzCd,GAAae,EAEnBlB,EAAWA,EAASz8H,QAAQ,IAAIva,OAAOy3I,EAAkB,IAAI,EAAG,EAAE,EAElEN,GAAa,IAAMpoF,EAAM,GAAGrnC,KAAK,EACjC,GAAGsvH,EAAS52I,OAAS,EAAG+2I,GAAa,WAAaH,EAAW,IAC7DG,GAAapoF,EAAM,GAAK,IAExBgvD,EAAYhvD,EAAMx8B,MAAQw8B,EAAM,GAAG3uD,OACnC63I,EAAaf,CACjB,CACJ,CACA,GAAGe,EAAW73I,OAAS,EACnB+2I,GAAaO,EAAW11H,EAAK+oB,UAAUgzE,CAAS,EAAGk6B,CAAU,OAE5Dd,GAAan1H,EAAK+oB,UAAUgzE,CAAS,EAC1C,OAAOo5B,CACX,CAEA,SAASkB,EAA0Br2H,GAC/B,GAAG,CAACA,GAAQ,CAAC1hB,QAAQ0hH,SAAShgG,CAAI,GAAKA,EAAK5hB,QAAU,EAAG,OAAO4hB,EAEhE,IAAIs2H,EAAmB,mDACvB,IAAIvpF,EAAOooF,EAAY,GAAIp5B,EAAY,EAEvC,MAAMhvD,EAAQupF,EAAiBr4I,KAAK+hB,CAAI,EAAE,CAEtCm1H,GAAan1H,EAAK+oB,UAAUgzE,EAAWhvD,EAAMx8B,KAAK,EAElDwrF,EAAYhvD,EAAMx8B,MAAQw8B,EAAM,GAAG3uD,OAEnC,IAAI82I,EAAS,IAAMnoF,EAAM,GAAKA,EAAM,GAEpC,GAAG,gCAAgCpJ,KAAKuxF,CAAM,EAE1CA,EAASA,EAAO38H,QAAQ,+BAAgC,2BAA6Bw0C,EAAM,IAAMA,EAAM,IAAM,IAAI,OAGjHmoF,GAAU,uBAAyBnoF,EAAM,IAAMA,EAAM,IAAM,KAE/DmoF,GAAU,IAEVC,GAAaD,CACjB,CAEA,OAAOC,EAAYn1H,EAAK+oB,UAAUgzE,CAAS,CAC/C,CAGA,IAAIw6B,EAAO,IAAIv4I,OAAO,uFAAuF,EAC7G,IAAIw4I,EAAO,IAAIx4I,OAAO,uFAAuF,EAC7G,IAAIy4I,EAAO,IAAIz4I,OAAO,uFAAuF,EAE7G,OAAO,SAAS04I,EAAWC,EAAQC,EAASC,GAExC,GAAK,CAACA,EACF,IACIF,EAASb,EAAsBa,CAAM,CAEzC,CADE,MAAOt5I,IAObs5I,EAASN,EAA0BM,CAAM,EAKzC,GAAIA,EACA,IACIA,EAASA,EAAOp+H,QAAQg+H,EAAM,EAAE,EAChCI,EAASA,EAAOp+H,QAAQi+H,EAAM,EAAE,EAChCG,EAASA,EAAOp+H,QAAQg+H,EAAM,EAAE,EAChCI,EAASA,EAAOp+H,QAAQk+H,EAAM,EAAE,CAEpC,CADE,MAAOp5I,IAIb,IAAIy5I,EACJ,IACIA,EAAOrH,EAAUkH,CAAM,EAEvB,GAAGE,EAAQC,EAAOH,CAGtB,CAFE,MAAOt5I,GACLy5I,EAAOF,GAAW,EACtB,CAIA,IAAIG,EAAWD,EAAK/pF,MAAM,+BAA+B,EACzD,IAAIiqF,EAAgBF,EAAKv+H,QAAQ,iBAAkB,EAAE,EACrD,IAAI82H,EAAK,8BACT,IAAI9+G,EAAQ,EACZ,IAAIwrF,EAAY,EAChB,IAAIk7B,EACJH,EAAO,GACP,OAAOG,EAAU5H,EAAGpxI,KAAK+4I,CAAa,KAAO,MAAQzmH,EAAQwmH,EAAS34I,OAAO,CACzE04I,GAAQE,EAAcjuG,UAAUgzE,EAAWk7B,EAAQ1mH,KAAK,EAAIwmH,EAASxmH,GACrEwrF,EAAYk7B,EAAQ1mH,MAAQ0mH,EAAQ,GAAG74I,OACvCmyB,CAAK,EACT,CACA,OAAOumH,EAAOE,EAAcjuG,UAAUgzE,CAAS,CACnD,CACJ,EAAE,EAAEn+F,QAAQ,sBAAuB,CAAC,KAAM,OAAQ,SAAS7a,EAAIo8D,GAE3D,OAAO,SAAS+3E,GACZ,GAAGA,IAAW7mI,UAAWnL,KAAK4qI,QAAU,WAAY,OAAOoH,CAAQ,EACnE,IAAIpkD,EAAW/vF,EAAG8e,MAAM,EACpBC,EAAUgxE,EAAShxE,QACnBq1H,EAAUjyI,KAAK4qI,QAAQ,EAE3B,IAAIlvI,EACJ,IACIA,EAASsE,KAAK4/H,OAAOhyC,EAAUqkD,EAAQC,YAAY,CAAC,EAEpDt1H,EAAQ,WAAW,WACfq1H,EAAQE,UAAU3kH,KAAKykH,CAAO,CAClC,CAAC,CAGL,CAFC,MAAMG,GACHn4E,EAAK/iD,MAAMk7H,CAAG,CAClB,CACA,GAAG12I,GAAUA,IAAWyP,UAEpByiF,EAASp1F,QAAQ,CAEzB,CACJ,EAAE,EAEFY,QAAQX,OAAO,kBAAmB,CAAC,wBAAwB,EAC1DigB,QAAQ,gBAAiB,CAAC,cAAe,eAAgB,YAAa,SAAS2xH,EAAagI,EAAc1qH,GACvG,IAAI2qH,EAAgB,SAASC,EAAaC,GACtC,IAAIC,EAAS32I,EAGb,IAAIg/C,EAAWy3F,EAAYvvH,KAAK,IAAI,EACpC,IAAIlnB,EAAIg/C,EAAS5hD,OAAS,EAAG4C,GAAK,EAAGA,CAAC,GAAG,CACrC22I,EAAUr5I,QAAQ+c,QAAQ,IAAMq8H,EAAc,IAAM13F,EAASh/C,GAAG2X,UAAY,KAAO++H,EAAc,GAAG,EACpGD,EAAYztF,MAAM2tF,CAAO,CAC7B,CACAF,EAAYj8H,OAAO,EACnB+zH,EAAYqI,yBAAyBD,EAAQ,EAAE,CACnD,EACA,IAAIE,EAAuB,SAAS5xD,EAAMwxD,EAAaK,EAASC,EAAUL,GACtE,IAAIC,EAAS32I,EAGb,IAAIg3I,EACJ,IAAIC,EACJ,IAAIj4F,EAAWimC,EAAK/9D,KAAK,IAAI,EAC7B,IAAIgwH,EACJ,IAAKl3I,EAAI,EAAGA,EAAEg/C,EAAS5hD,OAAQ4C,CAAC,GAC5B,GAAIg/C,EAASh/C,GAAG60I,YAAc4B,EAAY,GAAG5B,UAAW,CAEpDqC,EAAal3I,EACb,GAAIA,EAAE,EACFg3I,EAAeh4F,EAASh/C,EAAE,GAE9B,GAAIA,EAAE,EAAEg/C,EAAS5hD,OACb65I,EAAcj4F,EAASh/C,EAAE,GAE7B,KACJ,CAIJ,IAAIgf,EAAO,GACX,GAAI+3H,EACA/3H,GAAQ,IAAM03H,EAAc,IAAMD,EAAY,GAAG9+H,UAAY,KAAO++H,EAAc,QAC/E,CACH13H,GAAQ,IAAMu3H,EAAaO,CAAO,EAAI,IACtC93H,GAAQ,OAASy3H,EAAY,GAAG9+H,UAAY,QAC5CqH,GAAQ,KAAOu3H,EAAaO,CAAO,EAAI,GAC3C,CACAH,EAAUr5I,QAAQ+c,QAAQ2E,CAAI,EAE9B,GAAI,CAACg4H,EAAc,CAEfP,EAAYj8H,OAAO,EACnByqE,EAAKj8B,MAAM1rD,QAAQ+c,QAAQ4qE,EAAK,GAAG4vD,SAAS,CAAC,EAC7C5vD,EAAKj8B,MAAM2tF,CAAO,EAClB1xD,EAAKzqE,OAAO,EACZ+zH,EAAYqI,yBAAyBD,EAAQ,EAAE,EAC/C,MACJ,MAAO,GAAI,CAACM,EAAa,CAErBR,EAAYj8H,OAAO,EACnByqE,EAAKj8B,MAAM2tF,CAAO,EAClBpI,EAAYqI,yBAAyBD,EAAQ,EAAE,CACnD,KAAO,CACH,IAAIvmI,EAAI60E,EAAKl1D,OAAO,EAEpB,IAAIonH,EAAQ,GACZ,IAAIC,EAAUnyD,EAAK,GAAGxI,SAASrmE,YAAY,EAC3C+gI,GAAS,IAAMC,EAAU,IACzB,IAAIp3I,EAAI,EAAGA,EAAIk3I,EAAYl3I,CAAC,GACxBm3I,GAAS,OAASn4F,EAASh/C,GAAG2X,UAAY,QAE9Cw/H,GAAS,KAAOC,EAAU,IAC1B,IAAIC,EAAQ,GACZA,GAAS,IAAMD,EAAU,IACzB,IAAIp3I,EAAIk3I,EAAW,EAAGl3I,EAAIg/C,EAAS5hD,OAAQ4C,CAAC,GACxCq3I,GAAS,OAASr4F,EAASh/C,GAAG2X,UAAY,QAE9C0/H,GAAS,KAAOD,EAAU,IAE1BnyD,EAAKj8B,MAAM1rD,QAAQ+c,QAAQg9H,CAAK,CAAC,EACjCpyD,EAAKj8B,MAAM2tF,CAAO,EAClB1xD,EAAKj8B,MAAM1rD,QAAQ+c,QAAQ88H,CAAK,CAAC,EACjClyD,EAAKzqE,OAAO,EAEZ+zH,EAAYqI,yBAAyBD,EAAQ,EAAE,CACnD,CACJ,EACA,IAAIW,EAAwB,SAASryD,EAAMsyD,EAAcT,EAASC,EAAUL,GACxE,IAAIC,EAAS32I,EAAG+Q,EAAGX,EAEnB,IAAI4mI,EACJ,IAAIQ,EAEJ,IAAIx4F,EAAWimC,EAAK/9D,KAAK,IAAI,EAC7B,IAAIuwH,EAAe,GACnB,IAAKz3I,EAAI,EAAGA,EAAEg/C,EAAS5hD,OAAQ4C,CAAC,GAC5B,IAAK+Q,EAAI,EAAGA,EAAEwmI,EAAan6I,OAAQ2T,CAAC,GAChC,GAAIiuC,EAASh/C,GAAG03I,YAAYH,EAAaxmI,EAAE,EAEvC0mI,EAAa1mI,GAAK/Q,EAI9B,GAAIy3I,EAAa,GAAK,EAClBT,EAAeh4F,EAASy4F,EAAa,GAAK,GAE9C,GAAIA,EAAaF,EAAan6I,OAAO,GAAK,EAAI4hD,EAAS5hD,OACnDo6I,EAAex4F,EAASy4F,EAAaF,EAAan6I,OAAO,GAAK,GAIlE,IAAI4hB,EAAO,GACX,GAAI+3H,EACA,IAAKhmI,EAAI,EAAGA,EAAIwmI,EAAan6I,OAAQ2T,CAAC,GAAI,CACtCiO,GAAQ,IAAM03H,EAAc,IAAMa,EAAaxmI,GAAG4G,UAAY,KAAO++H,EAAc,IACnFa,EAAaxmI,GAAGyJ,OAAO,CAC3B,KACG,CACHwE,GAAQ,IAAMu3H,EAAaO,CAAO,EAAI,IACtC,IAAK/lI,EAAI,EAAGA,EAAIwmI,EAAan6I,OAAQ2T,CAAC,GAAI,CACtCiO,GAAQu4H,EAAaxmI,GAAG8jI,UACxB0C,EAAaxmI,GAAGyJ,OAAO,CAC3B,CACAwE,GAAQ,KAAOu3H,EAAaO,CAAO,EAAI,GAC3C,CACAH,EAAUr5I,QAAQ+c,QAAQ2E,CAAI,EAC9B,GAAI,CAACg4H,EAAc,CAEf/xD,EAAKj8B,MAAM1rD,QAAQ+c,QAAQ4qE,EAAK,GAAG4vD,SAAS,CAAC,EAC7C5vD,EAAKj8B,MAAM2tF,CAAO,EAClB1xD,EAAKzqE,OAAO,EACZ+zH,EAAYqI,yBAAyBD,EAAQ,EAAE,EAC/C,MACJ,MAAO,GAAI,CAACa,EAAc,CAEtBvyD,EAAKj8B,MAAM2tF,CAAO,EAClBpI,EAAYqI,yBAAyBD,EAAQ,EAAE,EAC/C,MACJ,KAAO,CAEH,IAAIQ,EAAQ,GACZ,IAAIC,EAAUnyD,EAAK,GAAGxI,SAASrmE,YAAY,EAC3C+gI,GAAS,IAAMC,EAAU,IACzB,IAAIp3I,EAAI,EAAGA,EAAIy3I,EAAa,GAAIz3I,CAAC,GAC7Bm3I,GAAS,OAASn4F,EAASh/C,GAAG2X,UAAY,QAE9Cw/H,GAAS,KAAOC,EAAU,IAC1B,IAAIC,EAAQ,GACZA,GAAS,IAAMD,EAAU,IACzB,IAAIp3I,EAAIy3I,EAAaF,EAAan6I,OAAO,GAAG,EAAG4C,EAAIg/C,EAAS5hD,OAAQ4C,CAAC,GACjEq3I,GAAS,OAASr4F,EAASh/C,GAAG2X,UAAY,QAE9C0/H,GAAS,KAAOD,EAAU,IAC1BnyD,EAAKj8B,MAAM1rD,QAAQ+c,QAAQg9H,CAAK,CAAC,EACjCpyD,EAAKj8B,MAAM2tF,CAAO,EAClB1xD,EAAKj8B,MAAM1rD,QAAQ+c,QAAQ88H,CAAK,CAAC,EACjClyD,EAAKzqE,OAAO,EAEZ+zH,EAAYqI,yBAAyBD,EAAQ,EAAE,CACnD,CACJ,EACA,IAAIgB,EAAW,SAASC,GACpB,GAAG,gBAAgBj1F,KAAKi1F,EAAUjgI,UAAU+M,KAAK,CAAC,EAAG6pH,EAAYsJ,0BAA0Bv6I,QAAQ+c,QAAQu9H,CAAS,EAAE1wH,KAAK,IAAI,EAAE,EAAE,OAC9HqnH,EAAYqI,yBAAyBgB,CAAS,CACvD,EACA,IAAIE,EAAa,SAASrB,EAAasB,GACnC,IAAIpB,EAAUr5I,QAAQ+c,QAAQ,IAAM09H,EAAa,IAAMtB,EAAY,GAAG9+H,UAAY,KAAOogI,EAAa,GAAG,EACzGtB,EAAYztF,MAAM2tF,CAAO,EACzBF,EAAYj8H,OAAO,EACnBm9H,EAAShB,EAAQzvH,KAAK,IAAI,EAAE,EAAE,CAClC,EACA,IAAI8wH,EAAsB,SAASniE,EAAU4gE,EAAasB,GACtD,IAAI/4H,EAAO,GACX,IAAI,IAAIhf,EAAI,EAAGA,EAAI61E,EAASz4E,OAAQ4C,CAAC,GACjCgf,GAAQ,IAAMu3H,EAAa,IAAI,EAAI,IAAM1gE,EAAS71E,GAAG2X,UAAY,KAAO4+H,EAAa,IAAI,EAAI,IAEjG,IAAII,EAAUr5I,QAAQ+c,QAAQ,IAAM09H,EAAa,IAAM/4H,EAAO,KAAO+4H,EAAa,GAAG,EACrFtB,EAAYztF,MAAM2tF,CAAO,EACzBF,EAAYj8H,OAAO,EACnBm9H,EAAShB,EAAQzvH,KAAK,IAAI,EAAE,EAAE,CAClC,EACA,IAAI+wH,EAAsB,SAAS59H,EAAS0iC,GACxC,IAAI,IAAI/8C,EAAI,EAAGA,EAAEqa,EAAQmsE,WAAWppF,OAAQ4C,CAAC,GAAI,CAC7C,IAAIk4I,EAAK79H,EAAQmsE,WAAWxmF,GAE5B,GAAIk4I,EAAGzpB,SAAWypB,EAAGzpB,QAAQ1iE,MAAM+lF,EAAa,EAC5CmG,EAAoBC,EAAIn7F,CAAO,CAEvC,CAEA,GAAI1iC,EAAQ2jE,aAAe,KAEvB,OAAO3jE,EAGX,GAAI0iC,IAAY,OACZ,OAAO1iC,MAEN,CACD,IAAIs8H,EAAUr5I,QAAQ+c,QAAQ0iC,CAAO,EACrC45F,EAAQ,GAAGh/H,UAAY0C,EAAQ1C,UAC/B0C,EAAQ2jE,WAAWyhB,aAAak3C,EAAQ,GAAIt8H,CAAO,EACnDA,EAAQ2jE,WAAWC,YAAY5jE,CAAO,EACtC,OAAOs8H,CACX,CACJ,EACA,OAAO,SAASwB,EAAeC,GAG3BD,EAAgB5B,EAAa4B,CAAa,EAC1C,OAAO,SAASE,EAASC,EAAQv7F,EAAS2tF,GACtC,IAAI1qI,EAAG22I,EAAS33H,EAAMu5H,EAAQ1gI,EAAM2gI,EAAgBC,EAAiBC,EACrE,IAAIC,EAAiBr7I,QAAQ+c,QAAQ,IAAM89H,EAAgB,GAAG,EAC9D,IACI,GAAI5J,EAAYrO,aACZwY,EAAenK,EAAYrO,aAAa,EAE5CuY,EAAkBlK,EAAYqB,oBAAoB,EAElD,IAAIgJ,EAAKC,EAET,GAAIJ,EAAgBhqB,UAAYp/G,UAC5B,GAAIopI,EAAgBhqB,QAAQr4G,YAAY,IAAM,OAC1C,kBAAkBusC,KAAK81F,EAAgBx8I,EAAE,GACzCy8I,GAAgBA,EAAa9rH,OAC7B8rH,EAAa9rH,MAAM4pC,SAAW,GAC9BkiF,EAAa/rH,IAAI6pC,SAAW,EAAG,CAG/BoiF,EAAMH,EAAgB9gI,UACtB,GAAI,QAAQgrC,KAAKi2F,CAAG,EAEhBA,EAAMA,EAAIrhI,QAAQ,QAAS,SAAS,EAExC,GAAI,UAAUorC,KAAKi2F,CAAG,EAElBA,EAAMA,EAAIrhI,QAAQ,UAAW,SAAS,EAG1C,GAAI,mBAAmBorC,KAAKi2F,CAAG,EAC3BA,EAAME,GAAGvhI,QAAQ,mBAAoB,QAAQ,EAGjD,GAAI,uBAAuBorC,KAAKi2F,CAAG,EAC/BA,EAAME,GAAGvhI,QAAQ,uBAAwB,SAAU,EAEvD,GAAI,kBAAkBorC,KAAKi2F,CAAG,EAE1BA,EAAMA,EAAIrhI,QAAQ,kBAAmB,EAAE,EAG3CshI,EAAa,QAAUD,EAAM,SAC7BH,EAAgB9gI,UAAYkhI,EAC5BtK,EAAYqI,yBAAyB6B,EAAgBjyD,WAAW,EAAE,EAClEiyD,EAAkBlK,EAAYqB,oBAAoB,CACtD,MAAO,GAAI6I,EAAgBhqB,QAAQr4G,YAAY,IAAM,QACjDsiI,GAAgBA,EAAa9rH,OAC7B8rH,EAAa9rH,MAAM4pC,SAAW,GAC9BkiF,EAAa/rH,IAAI6pC,SAAW,EAAG,CAG/BoiF,EAAMH,EAAgB9gI,UACtB,GAAI,QAAQgrC,KAAKi2F,CAAG,EAEhBA,EAAMA,EAAIrhI,QAAQ,QAAS,SAAS,EAExC,GAAI,UAAUorC,KAAKi2F,CAAG,EAElBA,EAAMA,EAAIrhI,QAAQ,UAAW,SAAS,EAG1C,GAAI,mBAAmBorC,KAAKi2F,CAAG,EAC3BA,EAAME,GAAGvhI,QAAQ,mBAAoB,QAAQ,EAGjD,GAAI,uBAAuBorC,KAAKi2F,CAAG,EAC/BA,EAAME,GAAGvhI,QAAQ,uBAAwB,SAAU,EAEvD,GAAI,kBAAkBorC,KAAKi2F,CAAG,EAE1BA,EAAMA,EAAIrhI,QAAQ,kBAAmB,EAAE,EAK3CshI,EAAa,QAAUD,EAAM,SAC7BH,EAAgB9gI,UAAYkhI,EAC5BtK,EAAYqI,yBAAyB6B,EAAgBjyD,WAAW,EAAE,EAClEiyD,EAAkBlK,EAAYqB,oBAAoB,CAEtD,MAAO,GAAI6I,EAAgBhqB,QAAQr4G,YAAY,IAAM,KACjDsiI,GAAgBA,EAAa9rH,OAC7B8rH,EAAa9rH,MAAM4pC,SAAW,GAC9BkiF,EAAa/rH,IAAI6pC,SAAW,EAAG,CAG/BoiF,EAAMH,EAAgB9gI,UACtB,GAAI,QAAQgrC,KAAKi2F,CAAG,EAAG,CAEnBA,EAAMA,EAAIrhI,QAAQ,QAAS,SAAS,EACpCkhI,EAAgB9gI,UAAYihI,CAChC,CACJ,MAAO,GAAIH,EAAgBhqB,QAAQr4G,YAAY,IAAM,MACjDsiI,GAAgBA,EAAa9rH,OAC7B8rH,EAAa9rH,MAAM4pC,SAAWkiF,EAAa/rH,IAAI6pC,OAAQ,CAEvDoiF,EAAMH,EAAgB9gI,UACtB,GAAI,QAAQgrC,KAAKi2F,CAAG,EAAG,CAEnBA,EAAMA,EAAIrhI,QAAQ,QAAS,EAAE,EAC7BkhI,EAAgB9gI,UAAYihI,CAChC,CACJ,CAEE,CAAT,MAAMv8I,IAGP,GAAI,CAACo8I,EAAiB,OACtB,IAAIM,EAAYz7I,QAAQ+c,QAAQo+H,CAAe,EAC/C,IAAIhqB,EAAWgqB,GAAmBA,EAAgBhqB,SAAWgqB,EAAgBhqB,QAAQr4G,YAAY,GACjE,GAChC,GAAGiiI,EAAQjiI,YAAY,IAAM,qBAAuBiiI,EAAQjiI,YAAY,IAAM,sBAAsB,CAChG,IAAI0gI,EAAUP,EAAc8B,EAAQjiI,YAAY,IAAM,oBAAsB,KAAO,IAAI,EACvF,IAAIq5H,EAAmBlB,EAAYyK,wBAAwB,EAE3D,GAAIvJ,EAAiBryI,OAAO,IAAMqxH,IAAY,MAASA,IAAY,MAC/D,OAAO6oB,EAAsByB,EAAWtJ,EAAkBqH,EAASA,IAAUroB,EAAS0pB,CAAa,EAEvG,GAAG1pB,IAAYqoB,EAIX,GAAIiC,EAAU,GAAGvyD,WAAWppF,SAAWqyI,EAAiBryI,QAAUqyI,EAAiBryI,SAAS,EAAG,CAC3F27I,EAAYz7I,QAAQ+c,QAAQo1H,EAAiB,EAAE,EAC/C,OAAOoH,EAAqBkC,EAAUhpH,OAAO,EAAGgpH,EAAWjC,EAAS,KAAMqB,CAAa,CAC3F,MACI,OAAO3B,EAAcuC,EAAWZ,CAAa,OAE/C,GAAG1pB,IAAY,MACjBsqB,EAAUhpH,OAAO,EAAE,GAAG0+F,QAAQr4G,YAAY,IAAM0gI,GAChDiC,EAAUhpH,OAAO,EAAEivB,SAAS,EAAE5hD,SAAW,EAEzC,OAAOo5I,EAAcuC,EAAUhpH,OAAO,EAAGooH,CAAa,OACpD,GAAG1pB,IAAY,MACjBsqB,EAAUhpH,OAAO,EAAE,GAAG0+F,QAAQr4G,YAAY,IAAM0gI,GAChDiC,EAAUhpH,OAAO,EAAEivB,SAAS,EAAE5hD,SAAW,EAEzC,OAAO06I,EAAWiB,EAAUhpH,OAAO,EAAG+mH,CAAO,OAC3C,GAAGroB,EAAQ1iE,MAAM+lF,EAAa,GAAK,CAACiH,EAAU19H,SAAS,SAAS,EAAE,CAGpE,GAAIo0H,EAAiBryI,OACjB,GAAI27I,EAAU,GAAGvyD,WAAWppF,SAAWqyI,EAAiBryI,QAAUqyI,EAAiBryI,SAAS,EAAG,CAE3F27I,EAAYz7I,QAAQ+c,QAAQo1H,EAAiB,EAAE,EAC/C,OAAOoH,EAAqBkC,EAAUhpH,OAAO,EAAGgpH,EAAWjC,EAASA,IAAUroB,EAAS0pB,CAAa,CACxG,CAEJ,GAAG1pB,IAAY,MAAQA,IAAY,KAE/B,OAAOqpB,EAAWiB,EAAWjC,CAAO,MACnC,CACD,IAAImC,EAAqB,MACzB37I,QAAQypB,QAAQgyH,EAAU/5F,SAAS,EAAG,SAASrC,GAC3C,GAAGA,EAAK8xE,QAAQ1iE,MAAM+lF,EAAa,EAC/BmH,EAAqB,IAE7B,CAAC,EACD,GAAGA,EACC,OAAOjB,EAAoBe,EAAU/5F,SAAS,EAAG+5F,EAAWjC,CAAO,OAEnE,OAAOkB,EAAoB,CAAC16I,QAAQ+c,QAAQ,QAAUo+H,EAAgB9gI,UAAY,QAAQ,EAAE,IAAKohI,EAAWjC,CAAO,CAE3H,CACJ,MAAM,GAAGroB,EAAQ1iE,MAAM+lF,EAAa,EAAE,CAElCyG,EAAShK,EAAYyK,wBAAwB,EAE7C,GAAGT,EAAOn7I,SAAW,EAAE,CAEnBu5I,EAAUr5I,QAAQ+c,QAAQ,IAAMy8H,EAAU,QAAU2B,EAAgB9gI,UAAY,UAAYm/H,EAAU,GAAG,EACzGiC,EAAU/5H,KAAK,EAAE,EACjB+5H,EAAU7nH,OAAOylH,CAAO,CAC5B,MAAM,GAAG4B,EAAOn7I,SAAW,IAAMm7I,EAAO,GAAG9pB,QAAQr4G,YAAY,IAAM,MAAQmiI,EAAO,GAAG9pB,QAAQr4G,YAAY,IAAM,MAC7G,GAAGmiI,EAAO,GAAG9pB,QAAQr4G,YAAY,IAAM0gI,EAEnC,OAAON,EAAcl5I,QAAQ+c,QAAQk+H,EAAO,EAAE,EAAGJ,CAAa,OAE9D,OAAOL,EAAWx6I,QAAQ+c,QAAQk+H,EAAO,EAAE,EAAGzB,CAAO,MAExD,CACD93H,EAAO,GACP,IAAIk6H,EAAS,GACb,IAAIl5I,EAAI,EAAGA,EAAIu4I,EAAOn7I,OAAQ4C,CAAC,GAE3B,GAAGu4I,EAAOv4I,GAAGs8E,WAAa,EAAE,CACxB,IAAI68D,EAAK77I,QAAQ+c,QAAQk+H,EAAOv4I,EAAE,EAElC,GAAGu4I,EAAOv4I,GAAGyuH,QAAQr4G,YAAY,IAAM,KAAM,cACxC,GAAGmiI,EAAOv4I,GAAGyuH,QAAQr4G,YAAY,IAAM,MAAQmiI,EAAOv4I,GAAGyuH,QAAQr4G,YAAY,IAAM,KACpF4I,GAAQm6H,EAAG,GAAGxhI,eACZ,GAAG4gI,EAAOv4I,GAAGyuH,QAAQr4G,YAAY,IAAM,SAAWmiI,EAAOv4I,GAAGwmF,WAAW,GAAGioC,QAAQr4G,YAAY,IAAM,MAAQmiI,EAAOv4I,GAAGwmF,WAAW,GAAGioC,QAAQr4G,YAAY,IAAM,MAChK4I,GAAQm6H,EAAG,GAAG3yD,WAAW,GAAG7uE,eAE5BqH,GAAQ,IAAMu3H,EAAa,IAAI,EAAI,IAAM4C,EAAG,GAAGxhI,UAAY,KAAO4+H,EAAa,IAAI,EAAI,IAE3F2C,EAAOnvD,QAAQovD,CAAE,CACrB,CAGJxC,EAAUr5I,QAAQ+c,QAAQ,IAAMy8H,EAAU,IAAM93H,EAAO,KAAO83H,EAAU,GAAG,EAC3EoC,EAAOvtF,IAAI,EAAE+zC,YAAYi3C,CAAO,EAChCr5I,QAAQypB,QAAQmyH,EAAQ,SAASE,GAAQA,EAAM5+H,OAAO,CAAG,CAAC,CAC9D,CACA+zH,EAAYqI,yBAAyBD,EAAQ,EAAE,EAC/C,MACJ,CACJ,MAAM,GAAG0B,EAAQjiI,YAAY,IAAM,cAAc,CAC7CoiI,EAAiBz7F,EAAQ3mC,YAAY,EAAEmB,QAAQ,SAAU,EAAE,EAC3D,GAAGihI,EAAe9zH,KAAK,IAAM,UAAW,CACpC8zH,EAAiBL,EACjBp7F,EAAU,IAAMo7F,EAAgB,GACpC,CACA,GAAG1pB,IAAY,KACXkoB,EAAUoC,EAAUhpH,OAAO,OAG3B4mH,EAAUoC,EAGd,MAAM,CAACpC,EAAQ,GAAGloB,SAAW,CAACkoB,EAAQ,GAAGloB,QAAQ1iE,MAAM+lF,EAAa,GAAK,CAAC6E,EAAQ5mH,OAAO,EAAEiB,KAAK,iBAAiB,EAAE,CAC/G2lH,EAAUA,EAAQ5mH,OAAO,EAEzB0+F,GAAWkoB,EAAQ,GAAGloB,SAAW,IAAIr4G,YAAY,CACrD,CACA,GAAGq4G,IAAY+pB,EAAe,CAE1BD,EAAS5B,EAAQ33F,SAAS,EAC1B,IAAIq6F,EAAW,MACf,IAAIr5I,EAAI,EAAGA,EAAIu4I,EAAOn7I,OAAQ4C,CAAC,GAC3Bq5I,EAAWA,GAAYd,EAAOv4I,GAAGyuH,QAAQ1iE,MAAM+lF,EAAa,EAEhE,GAAGuH,EAAS,CACR1C,EAAQ3tF,MAAMuvF,CAAM,EACpB1gI,EAAO8+H,EAAQ9+H,KAAK,EACpB8+H,EAAQn8H,OAAO,EACfm8H,EAAU9+H,CACd,KAAK,CACD8gI,EAAeznH,OAAOylH,EAAQ,GAAGnwD,UAAU,EAC3CmwD,EAAQ3tF,MAAM2vF,CAAc,EAC5BhC,EAAQn8H,OAAO,EACfm8H,EAAUgC,CACd,CACJ,MAAM,GAAGhC,EAAQ5mH,OAAO,EAAE,GAAG0+F,QAAQr4G,YAAY,IAAMoiI,GACnD,CAAC7B,EAAQ5mH,OAAO,EAAE1U,SAAS,SAAS,EAAE,CAEtC,IAAIi+H,EAAe3C,EAAQ5mH,OAAO,EAClC,IAAI6tB,EAAW07F,EAAa17F,SAAS,EACrC,IAAI59C,EAAI,EAAGA,EAAI49C,EAASxgD,OAAQ4C,CAAE,GAAG,CAEjC,GAAGs5I,EAAavpH,OAAO,EAAE1U,SAAS,SAAS,GAAKuiC,EAAS59C,GAAGs8E,WAAa,EAAE,CACvEq8D,EAAiBr7I,QAAQ+c,QAAQ,IAAM89H,EAAgB,GAAG,EAC1DQ,EAAe,GAAGhhI,UAAYimC,EAAS59C,GAAG60I,UAC1Cj3F,EAAS59C,GAAK24I,EAAe,EACjC,CACAW,EAAavpH,OAAO,EAAE,GAAG0vE,aAAa7hD,EAAS59C,GAAIs5I,EAAa,EAAE,CACtE,CACAA,EAAa9+H,OAAO,CACxB,MAAM,GAAGi0G,EAAQ1iE,MAAMgmF,CAAY,EAE/B4E,EAAQvuE,KAAKrrB,CAAO,MACnB,CAEDw7F,EAAShK,EAAYyK,wBAAwB,EAC7C,GAAGT,EAAOn7I,SAAW,EAEjBm7I,EAAS,CAAC5B,EAAQ,IAGtB,IAAI32I,EAAI,EAAGA,EAAIu4I,EAAOn7I,OAAQ4C,CAAC,GAC3B,GAAGu4I,EAAOv4I,GAAGs8E,WAAa,GAAK,CAACi8D,EAAOv4I,GAAGyuH,QAAQ1iE,MAAM+lF,EAAa,EACjE,MAAMyG,EAAOv4I,GAAGs8E,WAAa,GAAK,CAACi8D,EAAOv4I,GAAGyuH,SAAW,CAAC8pB,EAAOv4I,GAAGyuH,QAAQ1iE,MAAM+lF,EAAa,EAC1FyG,EAAOv4I,GAAKu4I,EAAOv4I,GAAGg+E,WAKlCu6D,EAASA,EAAOr2I,OAAO,SAASL,EAAO0tB,EAAOtrB,GAC1C,OAAOA,EAAKqH,QAAQzJ,CAAK,IAAM0tB,CACnC,CAAC,EAED,GAAIgpH,EAAOn7I,OAAO,EACdm7I,EAASA,EAAOr2I,OAAO,SAAUL,EAAO0tB,EAAOtrB,GAC3C,MAAO,EAAEpC,EAAM46E,SAASrmE,YAAY,IAAM,OAAS,iBAAiBusC,KAAK9gD,EAAM5F,EAAE,EACrF,CAAC,EAEL,GAAGqB,QAAQ+c,QAAQk+H,EAAO,EAAE,EAAEl9H,SAAS,SAAS,EAAE,CAC9Cs7H,EAAUr5I,QAAQ+c,QAAQ0iC,CAAO,EACjC45F,EAAQ,GAAGh/H,UAAY4gI,EAAO,GAAG5gI,UACjC4gI,EAAO,GAAG5gI,UAAYg/H,EAAQ,GAAG9B,SACrC,MAAM,GAAG2D,IAAmB,aAAa,CAErCx5H,EAAO,GACP,IAAIhf,EAAI,EAAGA,EAAIu4I,EAAOn7I,OAAQ4C,CAAC,GAC3Bgf,GAAQu5H,EAAOv4I,GAAG60I,UAEtB8B,EAAUr5I,QAAQ+c,QAAQ0iC,CAAO,EACjC45F,EAAQ,GAAGh/H,UAAYqH,EACvBu5H,EAAO,GAAGv6D,WAAWyhB,aAAak3C,EAAQ,GAAG4B,EAAO,EAAE,EACtD,IAAIv4I,EAAIu4I,EAAOn7I,OAAS,EAAG4C,GAAK,EAAGA,CAAC,GAEhC,GAAIu4I,EAAOv4I,GAAGg+E,WAAYu6D,EAAOv4I,GAAGg+E,WAAWC,YAAYs6D,EAAOv4I,EAAE,CAE5E,MACA,GAAIw4I,IAAmB,OAASjK,EAAYgL,iBAAiB,EAAG,CAG5Dv6H,EAAO,GACP,IAAKhf,EAAI,EAAGA,EAAIu4I,EAAOn7I,OAAQ4C,CAAC,GAC5Bgf,GAAQu5H,EAAOv4I,GAAG60I,UAEtB8B,EAAUr5I,QAAQ+c,QAAQ0iC,CAAO,EACjC45F,EAAQ,GAAGh/H,UAAYqH,EACvBu5H,EAAO,GAAGv6D,WAAWyhB,aAAak3C,EAAQ,GAAI4B,EAAO,EAAE,EACvD,IAAKv4I,EAAIu4I,EAAOn7I,OAAS,EAAG4C,GAAK,EAAGA,CAAC,GAEjC,GAAIu4I,EAAOv4I,GAAGg+E,WAAYu6D,EAAOv4I,GAAGg+E,WAAWC,YAAYs6D,EAAOv4I,EAAE,CAE5E,MAII,IAAKA,EAAI,EAAGA,EAAIu4I,EAAOn7I,OAAQ4C,CAAC,GAAI,CAChC,IAAIw5I,EAAWvB,EAAoBM,EAAOv4I,GAAI+8C,CAAO,EACrD,GAAIw7F,EAAOv4I,KAAO22I,EAAQ,GACtBA,EAAUr5I,QAAQ+c,QAAQm/H,CAAQ,CAE1C,CAER,CACAjL,EAAYqI,yBAAyBD,EAAQ,EAAE,EAG/CA,EAAQ,GAAG9qG,MAAM,EACjB,MACJ,MAAM,GAAGwsG,EAAQjiI,YAAY,IAAM,aAAa,CAE5C,GAAIq4G,IAAY,IAAK,CAEjB8f,EAAYqB,oBAAoB,EAAElsH,KAAOq5B,EACzC,MACJ,CACA,IAAI08F,EAAW,YAAc18F,EAAU,cAC9B2tF,EAAqBtnI,EAAEwrB,OAAS87G,EAAqBtnI,EAAEwrB,OAAS,IACjE,KACJ8qH,EAAS,OACTC,EAAapL,EAAYrO,aAAa,EAC1C,GAAGyZ,EAAWnmB,UAGV+a,EAAYqL,WAAWH,EAAW18F,EAAU28F,EAAQtB,CAAO,OACzD,GAAGxR,GAAM1G,aAAa,EAAE6B,WAAW,CAAC,EAAEhL,oBAAoB,EAAE,CAC9D,IAAIjgE,EAAOx5D,QAAQ+c,QAAQo/H,EAAWC,CAAM,EAAE,GAC9C9S,GAAM1G,aAAa,EAAE6B,WAAW,CAAC,EAAE9K,iBAAiBngE,CAAI,CAC5D,CACA,MACJ,MAAM,GAAGuhF,EAAQjiI,YAAY,IAAM,aAAa,CAE5Cm4H,EAAYqL,WAAW78F,EAASq7F,CAAO,EACvC,MACJ,CACA,IACIvsH,EAAU,GAAGH,YAAY2sH,EAASC,EAAQv7F,CAAO,CAC3C,CAAT,MAAM1gD,IACX,CACJ,CACJ,EAAE,EAAEmpD,QAAQ,cAAe,CAAC,YAAa,QAAS,OAElD,SAAS35B,EAAW0nH,EAAOp1E,GAEvB,IAAI07E,EAAYhuH,EAAU,GAC1B,IAAIiuH,EACJ,IAAIC,EAAc,SAAU1/H,EAASm8C,GAMjC,GAAIn8C,EAAQo0G,SAAWp0G,EAAQo0G,QAAQ1iE,MAAM,OAAO,GAAKyK,IAAW,GAAK,CAACn8C,EAAQ0yG,gBAC9E,MAAO,CACH1yG,QAASA,EAAQ2jE,WACjBxnB,OAAQ,CACZ,OAEA,MAAO,CACHn8C,QAASA,EACTm8C,OAAQA,CACZ,CAER,EACA,IAAIgzD,EAAM,CACN0W,aAAc,WACV,IAAIvd,EACJ,IAEIA,EAAQikB,GAAM1G,aAAa,EAAE6B,WAAW,CAAC,CAI7C,CAHE,MAAM1lI,GAEJ,OAAOgT,SACX,CACA,IAAIuxF,EAAY+hB,EAAMgR,wBACtB,IAAIl7B,EAAY,CACZ7rE,MAAOmtH,EAAYp3B,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAC1DplG,IAAKotH,EAAYp3B,EAAMuO,aAAcvO,EAAMqP,SAAS,EACpDwB,UAAW7Q,EAAM6Q,SACrB,EAqBA,GAAI5yB,EAAUtkB,WAAa,EACvB,GAAIskB,EAAU5iB,WAAWvB,SAASrmE,YAAY,IAAM,OAChD,iBAAiBusC,KAAKi+C,EAAU5iB,WAAW/hF,EAAE,QAI7C2kG,EAAYA,EAAU5iB,WAG9B,GAAI4iB,EAAUnkB,SAASrmE,YAAY,IAAM,OACrC,iBAAiBusC,KAAKi+C,EAAU3kG,EAAE,EAAG,CAGrCw8F,EAAU7rE,MAAMvS,QAAUumF,EAAUpa,WAAWiS,EAAU7rE,MAAM4pC,QAC/DiiC,EAAU9rE,IAAItS,QAAUumF,EAAUpa,WAAWiS,EAAU9rE,IAAI6pC,QAC3DiiC,EAAUmI,UAAYA,CAC1B,MACI,GAAIA,EAAU5iB,aAAeya,EAAU7rE,MAAMvS,SACzCumF,EAAU5iB,aAAeya,EAAU9rE,IAAItS,QACvCo+E,EAAUmI,UAAYA,EAAU5iB,gBAEhCya,EAAUmI,UAAYA,EAI9B,OAAOnI,CACX,EAGAuhD,mBAAoB,SAAS3/H,GACzB,IAAIsoG,EAAQikB,GAAM1G,aAAa,EAAE6B,WAAW,CAAC,EAC7C,GAAIpf,GAASA,EAAM6Q,UAAW,CAC1B,IAAI+kB,EAAS/uB,EAAIywB,gBAAgBt3B,CAAK,EACtC,GAAI,CAAC41B,EAAO10B,UAAW,OACvB,IAAIq2B,EAAQv3B,EAAMsO,eAClB,IAAIkpB,EAAsB5B,EAAO10B,UAAU,SAASxpG,EAASkV,GACzD,GAAIlV,EAAQy8C,OAAOojF,EAAO,OAAO,KACjC,IAAIE,EAAU//H,EAAQ4rB,QAAQ36B,QAAQ4uI,CAAK,EAC3C,OAAQE,IAAY,CAAC,CACzB,CAAC,EACD,IAAInsF,EACJ,IAAIosF,EAEJ9B,EAAOxxH,QAAQ,SAAU4/B,EAAG3mD,GAExB2mD,EAAE1gB,QAAQlf,QAAQ,SAAUuzH,EAAIvpI,IAE/B,CACL,CAAC,EACD,GAAIopI,EAAoB,EAAI5B,EAAOn7I,OAG/Bi9I,EAAkB9B,EAAO4B,EAAoB,GAAGrjF,KAOpD,GAAIujF,GAAmBA,EAAgB9vD,YAAa,CAChDt8B,EAAI,uBAAuBhxD,KAAKo9I,EAAgB9vD,WAAW,EAC3D,GAAIt8B,EAIA,MAER,CACA,IAAIssF,EACJ,GAAIJ,EAAsB,EAGtBI,EAAiBhC,EAAO4B,EAAoB,GAAGrjF,KAGnD,GAAI6rD,EAAMoP,cAAgB,GAAKwoB,EAAgB,CAE3CtsF,EAAI,uBAAuBhxD,KAAKs9I,EAAehwD,WAAW,EAC1D,GAAIt8B,EAAG,CAGHu7D,EAAIotB,yBAAyB2D,CAAc,EAC3C,MACJ,CACJ,CACJ,CACA,MACJ,EAEAC,oBAAqB,SAASngI,GAE1B,GAAI,MAAO,mBA4Df,EACA4/H,gBAAiB,SAASt3B,GACtB,IAAI5yF,EAAS4yF,EAAMgR,wBAAwB31C,WAC3C,GAAI,CAACjuD,EACD,OAAO4yF,EAAMgR,wBAAwBntC,WAEzC,IAAIr6D,EAAQ4N,MAAMtI,UAAU3V,MAAM4V,KAAK3B,EAAOy2D,UAAU,EACxD,IAAI2zD,EAAsBhuH,EAAM7gB,QAAQq3G,EAAMsO,cAAc,EAE5D,GAAIkpB,EAAoB,EAAIhuH,EAAM/uB,QAAU+8I,EAAsB,QAI9D,GAAIpqH,EAAOiuD,WACPjuD,EAASA,EAAOiuD,WAIxB7xD,EAAQ,GACR,SAASsuH,EAASC,GACd,GAAIA,EAAK5jF,KAAK0vB,WAAWppF,OAAQ,CAC7B,IAAIopF,EAAazsD,MAAMtI,UAAU3V,MAAM4V,KAAKgpH,EAAK5jF,KAAK0vB,UAAU,EAChEA,EAAWz/D,QAAQ,SAAS4/B,GACxB,IAAIg0F,EAAKD,EAAKz0G,QAAQnqB,MAAM,EAC5B,GAAI6+H,EAAG7+H,MAAM,CAAC,CAAC,EAAE,KAAK4+H,EAAK5jF,KACvB6jF,EAAGp1I,KAAKm1I,EAAK5jF,IAAI,EAErB2jF,EAAS,CAACx0G,QAAS00G,EAAI7jF,KAAMnQ,CAAC,CAAC,CACnC,CAAC,CACL,MACIx6B,EAAM5mB,KAAK,CAAC0gC,QAASy0G,EAAKz0G,QAAS6wB,KAAM4jF,EAAK5jF,IAAI,CAAC,CAE3D,CACA2jF,EAAS,CAACx0G,QAAS,CAAClW,GAAS+mC,KAAM/mC,CAAM,CAAC,EAC1C,OAAO5D,CACX,EACA6sH,wBAAyB,WACrB,IAAIr2B,EAAQikB,GAAM1G,aAAa,EAAE6B,WAAW,CAAC,EAC7C,IAAInhC,EAAY+hB,EAAMgR,wBAKtB/yB,EAAYA,EAAUtkB,WAAa,EAAIskB,EAAU5iB,WAAa4iB,EAG9D,OAAO+hB,EAAM6V,SAAS,CAAC,GAAI,SAAS1hE,GAChC,OAAOA,EAAKknB,aAAe4iB,CAC/B,CAAC,CACL,EAEAivC,uBAAwB,WACpB,IAAIltB,EAAQikB,GAAM1G,aAAa,EAAE6B,WAAW,CAAC,EAC7C,IAAInhC,EAAY+hB,EAAMgR,wBAKtB/yB,EAAYA,EAAUtkB,WAAa,EAAIskB,EAAU5iB,WAAa4iB,EAG9D,IAAIg6C,EAAgBj4B,EAAM6V,SAAS,CAAC,GAAI,SAAS1hE,GAC7C,OAAOA,EAAKknB,aAAe4iB,CAC/B,CAAC,EACD,IAAIi6C,EAAYj6C,EAAUjpF,UAE1BkjI,EAAYA,EAAUtjI,QAAQ,qDAAsD,EAAE,EAItF,GAAIsjI,IAAcl4B,EAAM6U,OAAO,GAE3B,EAAG52B,EAAUnkB,SAASrmE,YAAY,IAAM,OAAU,iBAAiBusC,KAAKi+C,EAAU3kG,EAAE,GACtF,CACE,IAAIuxB,EAAM,GACV,IAAI,IAAIxtB,EAAI46I,EAAcx9I,OAAQ4C,CAAC,GAAIwtB,EAAIu8D,QAAQ6wD,EAAc56I,EAAE,GACnE46I,EAAgBptH,EAChBotH,EAAcr1I,KAAKq7F,CAAS,CAEhC,CACA,OAAOg6C,CACX,EAEAhL,oBAAqB,WACjB,IAAIh7F,EAAI40E,EAAI0W,aAAa,EACzB,GAAItrF,EACA,OAAO40E,EAAI0W,aAAa,EAAEt/B,eAE1B,OAAOvxF,SAEf,EACAyrI,aAAc,SAASC,EAASC,EAAOpuH,EAAOD,GAC1C,IAAIg2F,EAAQikB,GAAM7b,YAAY,EAE9BpI,EAAMmV,SAASijB,EAASnuH,CAAK,EAC7B+1F,EAAMoV,OAAOijB,EAAOruH,CAAG,EAEvBi6G,GAAM1G,aAAa,EAAEoF,eAAe3iB,CAAK,CAC7C,EACAk1B,0BAA2B,SAAU3wF,GACjC,IAAIy7D,EAAQikB,GAAM7b,YAAY,EAE9BpI,EAAMyU,WAAWlwE,CAAE,EACnBy7D,EAAMlzF,SAAS,IAAI,EAEnBm3G,GAAM1G,aAAa,EAAEoF,eAAe3iB,CAAK,CAC7C,EACA2tB,yBAA0B,SAAUppF,GAChC,IAAIy7D,EAAQikB,GAAM7b,YAAY,EAE9BpI,EAAMyU,WAAWlwE,CAAE,EACnBy7D,EAAMlzF,SAAS,KAAK,EAEpBm3G,GAAM1G,aAAa,EAAEoF,eAAe3iB,CAAK,CAC7C,EACAs4B,2BAA4B,SAAU/zF,GAClC,IAAIy7D,EAAQikB,GAAM7b,YAAY,EAE9BpI,EAAMsW,mBAAmB/xE,CAAE,EAC3By7D,EAAMlzF,SAAS,IAAI,EAEnBm3G,GAAM1G,aAAa,EAAEoF,eAAe3iB,CAAK,CAC7C,EACAi0B,yBAA0B,SAAU1vF,GAChC,IAAIy7D,EAAQikB,GAAM7b,YAAY,EAE9BpI,EAAMsW,mBAAmB/xE,CAAE,EAC3By7D,EAAMlzF,SAAS,KAAK,EACpB,GAAGy3B,EAAGs/B,YAAct/B,EAAGs/B,WAAWt/B,EAAGs/B,WAAWppF,OAAS,IAAM8pD,EAAGs/B,WAAWt/B,EAAGs/B,WAAWppF,OAAS,GAAGq/E,WAAa,KAChHkmC,EAAMoP,YAAcpP,EAAMqP,UAAYrP,EAAMoP,YAAc,EAE9D6U,GAAM1G,aAAa,EAAEoF,eAAe3iB,CAAK,CAC7C,EACAu4B,iBAAkB,SAASC,GACvBrB,EAAcqB,CAClB,EACA5B,iBAAkB,WACd,OAAOO,CACX,EAGAF,WAAY,SAAS56H,EAAMo5H,GACvB,IAAIroH,EAAQqrH,EAAcC,EAASlvH,EAAOnsB,EAAGs7I,EAAUC,EACvD,IAAIlhI,EAAU/c,QAAQ+c,QAAQ,QAAU2E,EAAO,QAAQ,EACvD,IAAI2jG,EAAQikB,GAAM1G,aAAa,EAAE6B,WAAW,CAAC,EAC7C,IAAI3P,EAAOynB,EAAUxiD,uBAAuB,EAC5C,IAAIr4C,EAAW3kC,EAAQ,GAAGmsE,WAC1B,IAAIg1D,EAAW,KAEf,GAAGx8F,EAAS5hD,OAAS,EAAE,CAInB+uB,EAAQ,GACR,IAAIkvH,EAAU,EAAGA,EAAUr8F,EAAS5hD,OAAQi+I,CAAO,GAAG,CAClD,IAAII,EAASz8F,EAASq8F,GACtB,GAAII,EAAOh/D,SAASrmE,YAAY,IAAM,KAClCqlI,EAAO9jI,UAAU+M,KAAK,IAAM,GAC5B,SAiBJ82H,EAAWA,GAAY,CAAC1J,GAAcnvF,KAAK84F,EAAOh/D,QAAQ,EAC1DtwD,EAAM5mB,KAAKk2I,CAAM,CACrB,CACA,IAAI,IAAIvD,EAAK,EAAGA,EAAK/rH,EAAM/uB,OAAQ86I,CAAE,GACjCoD,EAAWlpB,EAAK19C,YAAYvoD,EAAM+rH,EAAG,EAEzC,GAAI,CAACsD,GACD74B,EAAM6Q,WACN,kBAAkB7wE,KAAKggE,EAAMsO,eAAet5G,SAAS,EACrDgrG,EAAMyU,WAAWzU,EAAMsO,cAAc,CAE7C,KAAK,CACDuqB,EAAW,KAEXF,EAAWlpB,EAAOynB,EAAU/gD,eAAe95E,CAAI,CACnD,CAGA,GAAGw8H,EACC74B,EAAMsY,eAAe,OAErB,GAAGtY,EAAM6Q,WAAa7Q,EAAMsO,iBAAmBmnB,EAC3C,GAAGz1B,EAAMsO,eAAet5G,WAAagrG,EAAMsO,eAAet5G,UAAUo0C,MAAM,YAAY,EAAE,CAEpFh8B,EAAS4yF,EAAMsO,eACf,GAAGtO,EAAMoP,cAAgB,EAAE,CAEvBpP,EAAMkW,cAAc9oG,CAAM,EAC1B4yF,EAAMqY,YAAYjrG,CAAM,CAC5B,KAAK,CAED4yF,EAAMmU,eAAe/mG,CAAM,EAC3B4yF,EAAMgW,aAAa5oG,CAAM,CAC7B,CACJ,KAAK,CAED,GAAG4yF,EAAMsO,eAAe30C,WAAa,GAAKqmC,EAAMsO,eAAejzC,aAAeo6D,EAAQ,CAClFroH,EAAS4yF,EAAMsO,eAAejzC,WAC9Bo9D,EAAerrH,EAAOwnE,UAAU,EAEhCg8C,EAAMmI,WAAW3rH,EAAOy2D,WAAYz2D,EAAQqrH,EAAcz4B,EAAMsO,eAAgBtO,EAAMoP,WAAW,EAGjG,MAAM,CAACigB,GAAcrvF,KAAK5yB,EAAO0sD,QAAQ,EAAE,CACvCn/E,QAAQ+c,QAAQ0V,CAAM,EAAEi5B,MAAMoyF,CAAY,EAC1CrrH,EAASA,EAAOiuD,WAChB,IAAI29D,EAAoBP,EACxBA,EAAerrH,EAAOwnE,UAAU,EAEhCg8C,EAAMmI,WAAW3rH,EAAOy2D,WAAYz2D,EAAQqrH,EAAcO,CAAiB,CAC/E,CACJ,KAAK,CACD5rH,EAAS4yF,EAAMsO,eACfmqB,EAAerrH,EAAOwnE,UAAU,EAChCg8C,EAAMmI,WAAW3rH,EAAOy2D,WAAYz2D,EAAQqrH,EAAc/rI,UAAWA,UAAWszG,EAAMoP,WAAW,CACrG,CAEAz0H,QAAQ+c,QAAQ0V,CAAM,EAAEi5B,MAAMoyF,CAAY,EAG1Cz4B,EAAMkW,cAAc9oG,CAAM,EAC1B4yF,EAAMqY,YAAYjrG,CAAM,EAExB,GAAG,kBAAkB4yB,KAAK5yB,EAAOpY,UAAU+M,KAAK,CAAC,EAAE,CAC/Ci+F,EAAMmU,eAAe/mG,CAAM,EAC3B4yF,EAAMgW,aAAa5oG,CAAM,EACzBzyB,QAAQ+c,QAAQ0V,CAAM,EAAEvV,OAAO,CACnC,CACA,GAAG,kBAAkBmoC,KAAKy4F,EAAazjI,UAAU+M,KAAK,CAAC,EAAGpnB,QAAQ+c,QAAQ+gI,CAAY,EAAE5gI,OAAO,EAC/F,GAAGuV,EAAO0sD,SAASrmE,YAAY,IAAM,KAAK,CACtCmlI,EAAY1B,EAAUxiD,uBAAuB,EAC7C,IAAIr3F,EAAI,EAAGA,EAAIoyH,EAAK5rC,WAAWppF,OAAQ4C,CAAC,GAAG,CACvCqa,EAAU/c,QAAQ+c,QAAQ,MAAM,EAChCk5H,EAAMqI,mBAAmBxpB,EAAK5rC,WAAWxmF,GAAIqa,EAAQ,EAAE,EACvDk5H,EAAMsI,uBAAuBzpB,EAAK5rC,WAAWxmF,GAAIqa,EAAQ,EAAE,EAC3DkhI,EAAU7mE,YAAYr6D,EAAQ,EAAE,CACpC,CACA+3G,EAAOmpB,EACP,GAAGD,EAAS,CACRA,EAAWlpB,EAAK5rC,WAAW4rC,EAAK5rC,WAAWppF,OAAS,GACpDk+I,EAAWA,EAAS90D,WAAW80D,EAAS90D,WAAWppF,OAAS,EAChE,CACJ,CACJ,MAEAulH,EAAMsY,eAAe,EAI7BtY,EAAMkU,WAAWzE,CAAI,EACrB,GAAGkpB,EACC9xB,EAAIotB,yBAAyB0E,CAAQ,CAE7C,CA0BJ,EACA,OAAO9xB,CACX,EAAE,EAAEhkE,QAAQ,QAAS,WACjB,IAAI+tF,EAAQ,CAERE,eAAgB,SAASp5H,EAASyhI,GAC9B,IAAIC,EAAoB,GACxB,IAAIv1D,EAAansE,EAAQ2kC,SAAS,EAClC,GAAGwnC,EAAWppF,OACVE,QAAQypB,QAAQy/D,EAAY,SAASgpC,GACjCusB,EAAoBA,EAAkB5rI,OAAOojI,EAAME,eAAen2I,QAAQ+c,QAAQm1G,CAAK,EAAGssB,CAAS,CAAC,CACxG,CAAC,EAEL,GAAGzhI,EAAQ2W,KAAK8qH,CAAS,IAAMzsI,UAAW0sI,EAAkBx2I,KAAK8U,CAAO,EACxE,OAAO0hI,CACX,EAEAH,mBAAoB,SAAS7/H,EAAQ6S,GAEjCA,EAAOjX,UAAY,GACnB,MAAMoE,EAAOyqE,WAAWppF,OAAS,EAAGwxB,EAAO8lD,YAAY34D,EAAOyqE,WAAW,EAAE,EAC3E,OAAO53D,CACX,EAEA8sH,WAAY,SAASvvH,EAAO6vH,EAASC,EAASC,EAAWC,EAAeC,GACpE,GAAG,CAACF,GAAa7nG,MAAM+nG,CAAU,EAAG,MAAM,IAAI9/I,MAAM,qDAAqD,EACzG,IAAI+/I,EAAahlI,SAASggF,uBAAuB,EACjD,IAAIilD,EAAWjlI,SAASggF,uBAAuB,EAC/C,IAAI9nE,EAAQ,EAEZ,MAAMpD,EAAM/uB,OAAS,IAAMi3C,MAAM+nG,CAAU,GAAKA,IAAe7sH,IAAUpD,EAAM,KAAO+vH,EAAU,CAC5FG,EAAW3nE,YAAYvoD,EAAM,EAAE,EAC/BoD,CAAK,EACT,CAEA,GAAG,CAAC8kB,MAAM8nG,CAAa,GAAKA,GAAiB,GAAKhwH,EAAM,GAAG,CACvDkwH,EAAW3nE,YAAYr9D,SAASyhF,eAAe3sE,EAAM,GAAGq+D,UAAUziD,UAAU,EAAGo0G,CAAa,CAAC,CAAC,EAC9FhwH,EAAM,GAAGq+D,UAAYr+D,EAAM,GAAGq+D,UAAUziD,UAAUo0G,CAAa,CACnE,CACA,MAAMhwH,EAAM/uB,OAAS,EAAGk/I,EAAS5nE,YAAYvoD,EAAM,EAAE,EAErDonH,EAAMqI,mBAAmBS,EAAYL,CAAO,EAC5CzI,EAAMqI,mBAAmBU,EAAUL,CAAO,CAC9C,EAEAJ,uBAAwB,SAAS9/H,EAAQ6S,GACrC,IAAI,IAAI5uB,EAAI,EAAGA,EAAI+b,EAAOJ,WAAWve,OAAQ4C,CAAC,GAAI4uB,EAAOgmD,aAAa74D,EAAOJ,WAAW3b,GAAG2E,KAAMoX,EAAOJ,WAAW3b,GAAG6B,KAAK,EAC3H,OAAO+sB,CACX,CACJ,EACA,OAAO2kH,CACX,CAAC,EAEDj2I,QAAQX,OAAO,yBAA0B,EAAE,EAC1C4/C,UAAU,YAAa,WACpB,MAAO,CACHb,SAAU,IACVn+C,QAAS,UACTs+C,KAAM,SAASF,EAAOgB,EAAMb,EAAOc,GAC/B,IAAI73B,EAAMqC,SAASu0B,EAAM4gG,MAAMzgG,EAAM0gG,SAAS,CAAC,EAC/C,GAAInoG,MAAMtvB,CAAG,EACT,KAAK,8BAET+2B,EAAM2gG,SAAS,YAAa,SAAS56I,GACjCkjB,EAAMqC,SAASvlB,CAAK,EACpB,GAAIwyC,MAAMtvB,CAAG,EACT,KAAK,8BAET,GAAI63B,EAAK8/F,OACL9/F,EAAK+/F,UAAU,CAEvB,CAAC,EACD//F,EAAK4M,YAAYgzF,UAAY,SAAS7yF,GAClC,IAAI5tC,EAASze,QAAQ+c,QAAQ,QAAQ,EACrC0B,EAAOiD,KAAK2qC,CAAS,EACrB,OAAO5tC,EAAOojC,KAAK,EAAE/hD,QAAU2nB,CACnC,CACJ,CACJ,CACJ,CAAC,EAAEw3B,UAAU,YAAa,WACtB,MAAO,CACHb,SAAU,IACVn+C,QAAS,UACTs+C,KAAM,SAASF,EAAOgB,EAAMb,EAAOc,GAC/B,IAAI33B,EAAMmC,SAASu0B,EAAM4gG,MAAMzgG,EAAM8gG,SAAS,CAAC,EAC/C,GAAIvoG,MAAMpvB,CAAG,EACT,KAAK,8BAET62B,EAAM2gG,SAAS,YAAa,SAAS56I,GACjCojB,EAAMmC,SAASvlB,CAAK,EACpB,GAAIwyC,MAAMpvB,CAAG,EACT,KAAK,8BAET,GAAI23B,EAAK8/F,OACL9/F,EAAK+/F,UAAU,CAEvB,CAAC,EACD//F,EAAK4M,YAAYozF,UAAY,SAASjzF,GAClC,IAAI5tC,EAASze,QAAQ+c,QAAQ,QAAQ,EACrC0B,EAAOiD,KAAK2qC,CAAS,EACrB,MAAO,CAAC5tC,EAAOojC,KAAK,EAAE/hD,QAAU2e,EAAOojC,KAAK,EAAE/hD,QAAU6nB,CAC5D,CACJ,CACJ,CACJ,CAAC,EACD3nB,QAAQX,OAAO,qBAAsB,CAAC,wBAAyB,kBAAkB,EAChF6oD,QAAQ,eAAgB,CAAC,WACtB,OAAO,SAASq3F,GAKZ,GAAG,CAACA,EAAW,OAAO,KAItB,IAAIC,EAAStL,EAAgBqL,CAAS,EAGtC,GAAIC,IAAU,GAAI,CAEd,GAAI,aAAan6F,KAAKk6F,CAAS,EAC3B,OAAO,MAEX,OAAO,IACX,MACI,OAAO,KAEf,CACJ,EAAE,EACDtgG,UAAU,WAAY,CAAC,WACpB,MAAO,CACHV,KAAM,SAASF,EAAOthC,EAASyhC,GAC3BzhC,EAAQ2W,KAAK,eAAgB,IAAI,EACjC3W,EAAQ4gC,GAAG,YAAa,SAAS5+C,EAAGq9C,GAEhC,GAAGA,EAAWp8C,QAAQohB,OAAOriB,EAAGq9C,CAAS,EAEzCr9C,EAAEkf,eAAe,EACjB,OAAO,KACX,CAAC,CACL,CACJ,CACJ,EAAE,EACDghC,UAAU,SAAU,CACb,aAAc,WAAY,YAAa,cAAe,eACtD,cAAe,uBAAwB,yBAA0B,YACjE,eAAgB,SAAU,QAAS,qBACnC,SACIm5F,EAAY59H,EAAU+T,GAAW8nH,GAAa4C,EAC9ChI,GAAawO,GAAsBC,GAAwBtO,GAC3DuO,GAAcxgG,GAAQ82F,EAAO2J,IAGrC,MAAO,CACHzlG,SAAU,EACVl6C,QAAS,CAAC,UAAU,mBACpBs+C,KAAM,SAASF,EAAOthC,EAASyhC,EAAO59C,GAClC,IAAIyiD,EAAUziD,EAAW,GACzB,IAAIi/I,EAAiBj/I,EAAW,IAAM,GAEtC,IAAIk/I,EAAqB/iI,EAAQ2W,KAAK,iBAAiB,IAAM3hB,WAAagL,EAAQ2W,KAAK,iBAAiB,EACxG,IAAIqsH,EAAmBD,GAAsB/iI,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,YAAciE,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,QACrI,IAAIknI,EAAc,MAClB,IAAIC,EAAY,MAChB,IAAIC,EAAc,MAClB,IAAIC,EAAoB3hG,EAAM4hG,mBAAqBhP,GAAUiP,iBAC7D,IAAIC,EAAc9hG,EAAM+hG,cAAgBnP,GAAUkF,WAClD,IAAIkK,EAQJ,IAAIC,EAAe,qGAMnB,IAAIC,EAAoB,gFACxB,IAAIC,EAIJ,IAAIC,EAAaC,EAEjB,IAAIC,EAAY,EAChB,IAAIC,EAAY,EAChB,IAAIC,EAAW,EACf,IAAIC,EAAa,EAEjB,IAAIC,EAAiB,GACrB,IAAIC,EAAiB,GACrB,IAAIC,EAAe,EACnB,IAAIC,EAAsB,GAC1B,IAAIC,EAAuB,GAG3B,IAAIC,EAAe,CAEf,CACIC,WAAY,UACZC,mBAAoBT,EAAWC,EAC/BS,kBAAmB,CAACX,EAAYD,GAChCthD,QAAS,EACb,EAEA,CACIgiD,WAAY,UACZC,mBAAoBT,EACpBU,kBAAmB,CAACX,EAAYD,EAAWG,GAC3CzhD,QAAS,EACb,EAEA,CACIgiD,WAAY,UACZC,mBAAoBT,EAAWC,EAC/BS,kBAAmB,CAACX,EAAYD,GAChCthD,QAAS,EACb,EAEA,CACIgiD,WAAY,SACZC,mBAAoBV,EAAYE,EAAaD,EAAWF,EACxDY,kBAAmB,GACnBliD,QAAS4hD,CACb,EAEA,CACII,WAAY,cACZC,mBAAoBV,EAAYC,EAAWF,EAC3CY,kBAAmB,CAACT,GACpBzhD,QAAS4hD,CACb,GAEJ,SAASO,EAAS7kI,GACd,IAAI0kI,EACJD,EAAa93H,QAAQ,SAAUjrB,GAC3B,GAAIA,EAAIghG,UAAY1iF,EAAM0iF,QAAS,CAC/B,IAAIoiD,GAAgB9kI,EAAMoiF,QAAU6hD,EAAW,IAC1CjkI,EAAMkiF,QAAU8hD,EAAW,IAC3BhkI,EAAMuiF,SAAW4hD,EAAY,IAC7BnkI,EAAM8hF,OAASoiD,EAAU,GAC9B,GAAIxiJ,EAAIijJ,mBAAqBG,EAAc,OAC3C,GAAIpjJ,EAAIkjJ,kBAAkB9/B,MAAM,SAAUigC,GAAY,OAAOD,EAAeC,CAAU,CAAC,EACnFL,EAAahjJ,EAAIgjJ,UAEzB,CACJ,CAAC,EACD,OAAOA,CACX,CAGA,GAAGhjG,EAAMq8F,gBAAkB9oI,UAAWysC,EAAMq8F,cAAgB,IAE5D,GAAGr8F,EAAMq8F,gBAAkB,GAAG,CAC1B+F,EAAc,GACdC,EAAgBjN,GAAeC,KAAO9hI,UAAY,kBAAqB6hI,GAAeC,IAAM,GAAK,cAAiBD,GAAeC,IAAM,EAAI,gBAAkB,eACjK,KAAK,CACD+M,EAAehN,GAAeC,KAAO9hI,WAAa6hI,GAAeC,IAAM,GAClEr1F,EAAMq8F,cAAc/hI,YAAY,IAAM,KAAO,WAAa,IAAM0lC,EAAMq8F,cAAgB,UAAYr8F,EAAMq8F,cAAgB,IACxHjH,GAAeC,IAAM,EAClB,IAAMr1F,EAAMq8F,cAAch8H,YAAY,EAAI,MAAQ2/B,EAAMq8F,cAAch8H,YAAY,EAAI,IACtF,IAAM2/B,EAAMq8F,cAAgB,MAAQr8F,EAAMq8F,cAAgB,IAClEgG,EAAgBjN,GAAeC,KAAO9hI,WAAa6hI,GAAeC,IAAM,GACnEr1F,EAAMq8F,cAAc/hI,YAAY,IAAM,KAAO,WAAa,IAAM0lC,EAAMq8F,cAAgB,UAAYr8F,EAAMq8F,cAAgB,IACxHjH,GAAeC,IAAM,EAClB,IAAMr1F,EAAMq8F,cAAch8H,YAAY,EAAI,YAAc2/B,EAAMq8F,cAAch8H,YAAY,EAAI,IAC5F,IAAM2/B,EAAMq8F,cAAgB,YAAcr8F,EAAMq8F,cAAgB,GAC5E,CAGA,GAAG,CAACgF,EAAeiC,SAAUjC,EAAeiC,SAAW,GAEvD,IAAIC,EAAwB,SAASx9I,GACjC,GAAIo7I,GAAap7I,CAAK,EAAG,OAAOA,EAChC,IAAIy9I,EAAUhiJ,QAAQ+c,QAAQ,QAAUxY,EAAQ,QAAQ,EAIxD,GAAIy9I,EAAQtgG,SAAS,EAAE5hD,SAAW,EAG9ByE,EAAQ,IAAMi6C,EAAMq8F,cAAgB,IAAMt2I,EAAQ,KAAOi6C,EAAMq8F,cAAgB,QAC5E,CACH,IAAIoH,EAAYD,EAAQ,GAAG94D,WAC3B,IAAIxmF,EACJ,IAAIw/I,EAAqB,MACzB,IAAKx/I,EAAI,EAAGA,EAAIu/I,EAAUniJ,OAAQ4C,CAAC,GAC/B,GAAIw/I,EAAqBD,EAAUv/I,GAAGy8E,SAASrmE,YAAY,EAAE21C,MAAM+lF,EAAa,EAAG,MAEvF,GAAI,CAAC0N,EACD39I,EAAQ,IAAMi6C,EAAMq8F,cAAgB,IAAMt2I,EAAQ,KAAOi6C,EAAMq8F,cAAgB,QAE/E,CACAt2I,EAAQ,GACR,IAAI7B,EAAI,EAAGA,EAAIu/I,EAAUniJ,OAAQ4C,CAAC,GAAG,CACjC,IAAI82D,EAAOyoF,EAAUv/I,GACrB,IAAIy8E,EAAW3lB,EAAK2lB,SAASrmE,YAAY,EAEzC,GAAGqmE,IAAa,WACZ56E,GAAS,UAASi1D,EAAK0zB,UAAY,cAChC,GAAG/N,IAAa,QAAS,CAG5B,IAAIt9B,EAAO2X,EAAKyzB,YAChB,GAAI,CAACprC,EAAKz6B,KAAK,EAEX7iB,GAASs9C,OAGTt9C,GAAS,IAAMi6C,EAAMq8F,cAAgB,IAAMh5F,EAAO,KAAOrD,EAAMq8F,cAAgB,GAEvF,MAAO,GAAG,CAAC17D,EAAS1wB,MAAM+lF,EAAa,EAAE,CAErC,IAAI2N,EAAW3oF,EAAK+9E,WAAa/9E,EAAK0zB,UAEtC,GAAGi1D,EAAQ/6H,KAAK,IAAM,GAClB7iB,GAAS,IAAMi6C,EAAMq8F,cAAgB,IAAMsH,EAAU,KAAO3jG,EAAMq8F,cAAgB,SACjFt2I,GAAS49I,CAClB,MACI59I,GAASi1D,EAAK+9E,SAGtB,CACJ,CACJ,CAEA,OAAOhzI,CACX,EAEA,GAAGi6C,EAAM4jG,QACLzB,EAAgBxhG,GAAOX,EAAM4jG,OAAO,EAGxCrlI,EAAQ8uC,SAAS,SAAS,EAE1B,IAAIw2F,EAEJhkG,EAAM,gBAAkBG,EAAM7/C,IAAM,KAAO0kD,EAAQi/F,aAAe,CAC9DC,OAAQ,GACRC,OAAQ,EACRC,KAAM,IACNx6I,KAAM,SAAS1D,GACX,GAAI,OAAOA,IAAU,aAAeA,IAAU,MACxC,OAAOqC,KAAK9D,QAAQ,IAAM,aAAe8D,KAAK9D,QAAQ,IAAM,MAASyB,IAAUqC,KAAK9D,QAAQ,EAAI,OAAOyB,EAC7G,GAAGqC,KAAK47I,OAAS57I,KAAK27I,OAAOziJ,OAAS,EAClC8G,KAAK27I,OAAS37I,KAAK27I,OAAO/jI,MAAM,EAAE5X,KAAK47I,OAAO,CAAC,EAEnD57I,KAAK27I,OAAOt6I,KAAK1D,CAAK,EACtB,GAAG89I,EAAmB7nI,EAASwZ,OAAOquH,CAAiB,EACvD,GAAGz7I,KAAK27I,OAAOziJ,OAAS8G,KAAK67I,KAAM77I,KAAK27I,OAAOxxI,MAAM,EACrDnK,KAAK47I,OAAS57I,KAAK27I,OAAOziJ,OAAS,EACnC,OAAOyE,CACX,EACA2pI,KAAM,WACF,OAAOtnI,KAAK87I,WAAW97I,KAAK47I,OAAO,CAAC,CACxC,EACArU,KAAM,WACF,OAAOvnI,KAAK87I,WAAW97I,KAAK47I,OAAO,CAAC,CACxC,EACAE,WAAY,SAASzwH,GACjB,GAAGA,EAAQ,GAAKA,EAAQrrB,KAAK27I,OAAOziJ,OAAS,EACzC,OAAOiS,UAEXnL,KAAK47I,OAASvwH,EACd,OAAOrrB,KAAK9D,QAAQ,CACxB,EACAA,QAAS,WACL,OAAO8D,KAAK27I,OAAO37I,KAAK47I,OAC5B,CACJ,EAGA,IAAIG,EAAe,WACf,GAAG7C,EACC,OAAO/iI,EAAQ,GAAG1C,UAEtB,GAAG0lI,EACC,OAAOhjI,EAAQyC,IAAI,EAEvB,KAAM,6DACV,EAEA,IAAIojI,EAAuB,SAAS9lI,GAEhCuhC,EAAMwkG,MAAM,oBAAqBj8I,IAAI,EACrCkW,EAAMmB,eAAe,EACrB,OAAO,KACX,EAGA,IAAI6kI,EAA6BzkG,EAAM,6BAA+BG,EAAM7/C,IAAM,KAAO,WAErF,GAAG,CAACqhJ,EAAahgJ,QAAQypB,QAAQg2H,GAAsB,SAASj8D,GAE5DzmE,EAAQ6M,KAAK45D,CAAQ,EAChBz3B,IAAI,QAAS62F,CAAoB,EACjCjlG,GAAG,QAASilG,CAAoB,CACzC,CAAC,CACL,EAEA,IAAIG,EAAgB,SAASC,EAAMC,EAAaC,GAC5ChD,EAAcgD,GAAc,MAC5B,GAAG,OAAOD,IAAgB,aAAeA,IAAgB,KAAMA,EAAc,MAAQnD,EACrF,GAAG,OAAOkD,IAAS,aAAeA,IAAS,KAAMA,EAAOL,EAAa,EACrE,GAAGhD,GAAaqD,CAAI,EAAE,CAElB,GAAG3/F,EAAQ8/F,aAAe,GAAI9/F,EAAQ+/F,cAAc,EAAE,EACtD,GAAGH,GAAe5/F,EAAQi/F,aAAax/I,QAAQ,IAAM,GAAIugD,EAAQi/F,aAAar6I,KAAK,EAAE,CACzF,KAAK,CACD66I,EAA2B,EAC3B,GAAGz/F,EAAQ8/F,aAAeH,EAAK,CAC3B3/F,EAAQ+/F,cAAcJ,CAAI,EAC1B,GAAGC,EAAa5/F,EAAQi/F,aAAar6I,KAAK+6I,CAAI,CAClD,CACJ,CACA3/F,EAAQggG,QAAQ,CACpB,EAEA,IAAIC,EAAgB,SAAS79G,GACzB1oB,EAAQ,GAAG1C,UAAYorB,CAC3B,EAEA,IAAI89G,EACJ,IAAIC,EAAQnlG,EAAM,eAAiBG,EAAM7/C,IAAM,KAAO,WAElD,GAAG,CAACqhJ,GAAeF,EAAmB,CAClC,IAAIz/F,EAAUgD,EAAQi/F,aAAapU,KAAK,EACxC,GAAG,OAAO7tF,IAAY,aAAeA,IAAY,KAAK,CAClDijG,EAAcjjG,CAAO,EACrB0iG,EAAc1iG,EAAS,KAAK,EAC5B,GAAGkjG,EAAkB/oI,EAASwZ,OAAOuvH,CAAgB,EACrDA,EAAmB/oI,EAAS,WACxBuC,EAAQ,GAAGwxB,MAAM,EACjB0iG,GAAYqI,yBAAyBv8H,EAAQ,EAAE,CACnD,EAAG,CAAC,CACR,CACJ,CACJ,EAEA,IAAI0mI,EAAQplG,EAAM,eAAiBG,EAAM7/C,IAAM,KAAO,WAElD,GAAG,CAACqhJ,GAAeF,EAAmB,CAClC,IAAIz/F,EAAUgD,EAAQi/F,aAAanU,KAAK,EACxC,GAAG,OAAO9tF,IAAY,aAAeA,IAAY,KAAK,CAClDijG,EAAcjjG,CAAO,EACrB0iG,EAAc1iG,EAAS,KAAK,EAE5B,GAAGkjG,EAAkB/oI,EAASwZ,OAAOuvH,CAAgB,EACrDA,EAAmB/oI,EAAS,WACxBuC,EAAQ,GAAGwxB,MAAM,EACjB0iG,GAAYqI,yBAAyBv8H,EAAQ,EAAE,CACnD,EAAG,CAAC,CACR,CACJ,CACJ,EAGAshC,EAAM,gBAAkBG,EAAM7/C,IAAM,KAAO,WACvC,GAAG,CAACqhJ,EAAa+C,EAAchxI,UAAWA,UAAW,IAAI,CAC7D,EAIA,IAAI2xI,EAAY,SAASrL,GACrB,OAAQh1F,EAAQsgG,cAAgBvL,EAAW/B,GAAYgC,EAAQiI,CAAW,EAAGj9F,EAAQsgG,cAAexD,CAAiB,CACzH,EAGA,GAAGpjI,EAAQ2W,KAAK,UAAU,EAAG2vB,EAAQ6I,YAAYwb,SAAW,SAAStb,EAAYC,GAC7E,MAAO,CAACszF,GAAavzF,GAAcC,CAAS,CAChD,EAEAhJ,EAAQugG,SAAS37I,KAAKy7I,CAAS,EAC/BrgG,EAAQugG,SAASn3D,QAAQs1D,CAAqB,EAE9C1+F,EAAQwgG,YAAY57I,KAAKy7I,CAAS,EAClCrgG,EAAQwgG,YAAYp3D,QAAQs1D,CAAqB,EACjD1+F,EAAQwgG,YAAYp3D,QAAQ,SAASloF,GACjC,OAAO8+C,EAAQi/F,aAAar6I,KAAK1D,GAAS,EAAE,CAChD,CAAC,EAGD,GAAGw7I,EAAiB,CAChB1hG,EAAMxP,OAAS,GACf,GAAG,CAACixG,EAAmB,CAEnB/iI,EAAQ4gC,GAAG,cAAeU,EAAMxP,OAAOkT,OAAS1D,EAAMxP,OAAOwxD,KAAO,WAChE,GAAG,CAAC2/C,EAAa38F,EAAQ+/F,cAAcT,EAAa,CAAC,CACzD,CAAC,EAED5lI,EAAQ4gC,GAAG,UAAWU,EAAMxP,OAAOi1G,QAAU,SAAShnI,EAAOs/B,GAEzD,GAAGA,EAAWp8C,QAAQohB,OAAOtE,EAAOs/B,CAAS,EAG7C,GAAGt/B,EAAM0iF,UAAY4hD,EAAa,CAE9B,IAAI9xH,EAAQ1oB,KAAKm9I,eACjB,IAAI10H,EAAMzoB,KAAKo9I,aAEf,IAAIz/I,EAAQwY,EAAQyC,IAAI,EACxB,GAAG1C,EAAMuiF,SAAS,CAEd,IAAI4kD,EAAa1/I,EAAM4iH,YAAY,KAAM73F,CAAK,EAAG40H,EAAO3/I,EAAM4iH,YAAY,KAAM73F,CAAK,EACrF,GAAG40H,IAAS,CAAC,GAAKA,GAAQD,EAAW,CAEjClnI,EAAQyC,IAAIjb,EAAMkmC,UAAU,EAAGy5G,CAAI,EAAI3/I,EAAMkmC,UAAUy5G,EAAO,CAAC,CAAC,EAGhEt9I,KAAKm9I,eAAiBn9I,KAAKo9I,aAAe10H,EAAQ,CACtD,CACJ,KAAK,CAEDvS,EAAQyC,IAAIjb,EAAMkmC,UAAU,EAAGnb,CAAK,EAAI,KAAO/qB,EAAMkmC,UAAUpb,CAAG,CAAC,EAGnEzoB,KAAKm9I,eAAiBn9I,KAAKo9I,aAAe10H,EAAQ,CACtD,CAEAxS,EAAMmB,eAAe,CACzB,CACJ,CAAC,EAED,IAAIkmI,EAAU,SAAS7sD,EAAQjuC,GAC3B,IAAI/mD,EAAS,GACb,IAAI,IAAIs4I,EAAK,EAAGA,EAAKvxF,EAAGuxF,CAAE,GAAIt4I,GAAUg1F,EACxC,OAAOh1F,CACX,EAGA,IAAImnB,EAAU,SAAUmlC,EAAOthB,EAAU+Q,GACrC,IAAK,IAAI37C,EAAG,EAAGA,EAAEksD,EAAM9uD,OAAQ4C,CAAC,GAC5B4qC,EAASlZ,KAAKiqB,EAAO37C,EAAGksD,EAAMlsD,EAAE,CAExC,EAGA,IAAI0hJ,EAAsB,SAASC,EAAUC,GACzC,IAAIC,EAAQ,GACZ,IAAIC,EAAYH,EAASn7D,WACzBo7D,CAAQ,GAERC,GAASJ,EAAQ,KAAMG,EAAS,CAAC,EAAID,EAAS9M,UAAU9sG,UAAU,EAAG,CAAC,EACtEhhB,EAAQ+6H,EAAW,SAAUvyH,EAAOunC,GAEhC,IAAI2lB,EAAW3lB,EAAK2lB,SAASrmE,YAAY,EACzC,GAAIqmE,IAAa,WAAY,CACzBolE,GAAS,UAAS/qF,EAAK0zB,UAAY,SACnC,MACJ,CACA,GAAI/N,IAAa,QAAS,CACtBolE,GAAS/qF,EAAKyzB,YACd,MACJ,CAEA,GAAG,CAACzzB,EAAK+9E,UAEL,OAEJ,GAAGp4D,IAAa,MAAQA,IAAa,KACjColE,GAAS,KAAOH,EAAoB5qF,EAAM8qF,CAAQ,OAIlDC,GAAS,KAAOJ,EAAQ,KAAMG,CAAQ,EAAI9qF,EAAK+9E,SAEvD,CAAC,EAEDgN,GAAS,KAAOJ,EAAQ,KAAMG,EAAS,CAAC,EAAID,EAAS9M,UAAU9sG,UAAU45G,EAAS9M,UAAUpwB,YAAY,GAAG,CAAC,EAC5G,OAAOo9B,CACX,EAUAlhG,EAAQwgG,YAAYp3D,QAAQ,SAASg4D,GAQjC,IAAIxJ,EAASj7I,QAAQ+c,QAAQ,QAAU0nI,EAAY,QAAQ,EAAE,GAAGv7D,WAChE,GAAG+xD,EAAOn7I,OAAS,EAAE,CAEjB2kJ,EAAY,GACZh7H,EAAQwxH,EAAQ,SAAUhpH,EAAOunC,GAC7B,IAAI2lB,EAAW3lB,EAAK2lB,SAASrmE,YAAY,EACzC,GAAIqmE,IAAa,WAAY,CACzBslE,GAAa,UAASjrF,EAAK0zB,UAAY,SACvC,MACJ,CACA,GAAI/N,IAAa,QAAS,CACtBslE,GAAajrF,EAAKyzB,YAClB,MACJ,CAEA,GAAG,CAACzzB,EAAK+9E,UAGL,OAEJ,GAAGkN,EAAU3kJ,OAAS,EAElB2kJ,GAAa,KAEjB,GAAGtlE,IAAa,MAAQA,IAAa,KAEjCslE,GAAa,GAAKL,EAAoB5qF,EAAM,CAAC,OAI7CirF,GAAa,GAAKjrF,EAAK+9E,SAE/B,CAAC,CACL,CACA,OAAOkN,CACX,CAAC,CACL,KAAK,CAED,IAAIC,EAAmB,MAEvB,IAAIC,EAAe,SAAS9iG,GACzB,IAAI+iG,EAAa/iG,IAAO9vC,UAAW8vC,EAAK4M,MAAM,4BAA4B,EAAG,MAG5E,GAAG5M,GAAQA,EAAKz6B,KAAK,EAAEtnB,OAAO,CAE1B,GAAG+hD,EAAK4M,MAAM,8BAA8B,GAAK5M,EAAK4M,MAAM,6BAA6B,GAAK5M,EAAK4M,MAAM,4BAA4B,EAAE,CACnI,IAAIo2F,EAAehjG,EAAK4M,MAAM,mDAAmD,EACjF,GAAG,CAACo2F,EAAcA,EAAehjG,OAC5BgjG,EAAeA,EAAa,GACjCA,EAAeA,EAAa5qI,QAAQ,yBAA0B,EAAE,EAAEA,QAAQ,kCAAmC,EAAE,EAC/G,IAAIw5G,EAAMzzH,QAAQ+c,QAAQ,QAAU8nI,EAAe,QAAQ,EAC3D,IAAIC,EAAY9kJ,QAAQ+c,QAAQ,aAAa,EAC7C,IAAIgoI,EAAQ,CACRhoI,QAAS,KACTioI,WAAY,GACZC,OAAQ,KACRC,KAAM,KACV,EACAH,EAAMC,WAAWG,KAAO,WACpB,IAAI97F,EAAIziD,KAAK9G,OACb,GAAIupD,EAAE,EAAG,OAAOziD,KAAKyiD,EAAE,EAC3B,EACA,IAAI+7F,EAAa,SAASF,GACtBH,EAAMG,KAAOA,EACbH,EAAMhoI,QAAU/c,QAAQ+c,QAAQmoI,EAAO,OAAS,MAAM,EACtDH,EAAMC,WAAa,GACnBD,EAAMC,WAAWG,KAAO,WACpB,IAAI97F,EAAIziD,KAAK9G,OACb,GAAIupD,EAAE,EAAG,OAAOziD,KAAKyiD,EAAE,EAC3B,EACA07F,EAAMM,eAAiB,IAC3B,EACA,IAAI,IAAI3iJ,EAAI,EAAGA,GAAK+wH,EAAI,GAAGvqC,WAAWppF,OAAQ4C,CAAC,GAAG,CAC9C,GAAG,CAAC+wH,EAAI,GAAGvqC,WAAWxmF,IAAM+wH,EAAI,GAAGvqC,WAAWxmF,GAAGy8E,WAAa,QAC1D,aACG,CACH,IAAIgyC,EAAUsC,EAAI,GAAGvqC,WAAWxmF,GAAGyuH,QAAQr4G,YAAY,EACvD,GAAGq4G,IAAY,KACXA,IAAY,MACZA,IAAY,MACZA,IAAY,MACZA,IAAY,MACZA,IAAY,MACZA,IAAY,MACZA,IAAY,MACZA,IAAY,QACZ,QAER,CACA,IAAIvnE,EAAK5pD,QAAQ+c,QAAQ02G,EAAI,GAAGvqC,WAAWxmF,EAAE,EAC7C,IAAI4iJ,GAAc17F,EAAGl2B,KAAK,OAAO,GAAK,IAAI+6B,MAAM,6DAA6D,EAE7G,GAAG62F,EAAW,CACV,GAAG17F,EAAG,GAAGs/B,WAAWppF,OAAS,GAAK8pD,EAAG,GAAGs/B,WAAW,GAAGA,WAAWppF,OAAS,EACtE,SAEJ,IAAIolJ,EAAOI,EAAW,GAAGxsI,YAAY,IAAM,UAAawsI,EAAW,GAAGxsI,YAAY,IAAM,UAAY,EAAE,qCAAqCusC,KAAKuE,EAAG,GAAGs/B,WAAW,GAAG7uE,SAAS,GAAK,qCAAqCgrC,KAAKuE,EAAG,GAAGs/B,WAAW,GAAGA,WAAW,GAAG7uE,SAAS,GACvQ,IAAIkrI,GAAgB37F,EAAGl2B,KAAK,OAAO,GAAK,IAAI+6B,MAAM,2BAA2B,EAC7E,IAAImgF,EAAS7vE,WAAW,EAAewmF,EAAa,GAAG,CAAC,EACxD,IAAIC,GAAe57F,EAAGl2B,KAAK,OAAO,GAAK,IAAI+6B,MAAM,kDAAkD,EAGnG,GAAG+2F,GAAeA,EAAY,GAAI5W,EAAS9kH,SAAS07H,EAAY,EAAE,EAElE,GAAKA,IAAgB,CAACT,EAAMM,gBAAkBG,EAAY,KAAOT,EAAMM,eAAe,KAAQ,CAACC,EAAW,IAAMA,EAAW,GAAGxsI,YAAY,IAAM,SAAYisI,EAAMC,WAAWG,KAAK,IAAM,MAAUJ,EAAMG,OAASA,GAAQH,EAAMC,WAAWG,KAAK,IAAMvW,EAAS,CAC1PwW,EAAWF,CAAI,EACfJ,EAAUlxH,OAAOmxH,EAAMhoI,OAAO,CAClC,MAAO,GAAIgoI,EAAMC,WAAWG,KAAK,GAAK,MAAQJ,EAAMC,WAAWG,KAAK,EAAIvW,EAAO,CAC3EmW,EAAMhoI,QAAU/c,QAAQ+c,QAAQmoI,EAAO,OAAS,MAAM,EACtDH,EAAME,OAAOrxH,OAAOmxH,EAAMhoI,OAAO,CACrC,MAAO,GAAIgoI,EAAMC,WAAWG,KAAK,GAAK,MAAQJ,EAAMC,WAAWG,KAAK,EAAIvW,EAAO,CAC3E,MAAMmW,EAAMC,WAAWG,KAAK,GAAK,MAAQJ,EAAMC,WAAWG,KAAK,EAAIvW,EAAO,CACtE,GAAGmW,EAAMhoI,QAAQ0V,OAAO,EAAE,GAAG0+F,QAAQr4G,YAAY,IAAM,KAAK,CACxDisI,EAAMhoI,QAAUgoI,EAAMhoI,QAAQ0V,OAAO,EACrC,QACJ,MAAM,GAAG,SAAS4yB,KAAK0/F,EAAMhoI,QAAQ0V,OAAO,EAAE,GAAG0+F,QAAQr4G,YAAY,CAAC,EAClEisI,EAAMhoI,QAAUgoI,EAAMhoI,QAAQ0V,OAAO,OAErC,MAEJsyH,EAAMC,WAAW32F,IAAI,CACzB,CACA02F,EAAMG,KAAOH,EAAMhoI,QAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,KACxD,GAAIosI,IAASH,EAAMG,KAAM,CACrBE,EAAWF,CAAI,EACfJ,EAAUlxH,OAAOmxH,EAAMhoI,OAAO,CAClC,CACJ,CAEAgoI,EAAMM,eAAiBG,EACvB,GAAG5W,IAAWmW,EAAMC,WAAWG,KAAK,EAAGJ,EAAMC,WAAW/8I,KAAK2mI,CAAM,EACnEmW,EAAME,OAASjlJ,QAAQ+c,QAAQ,MAAM,EACrCgoI,EAAMhoI,QAAQ6W,OAAOmxH,EAAME,MAAM,EACjCF,EAAME,OAAOvjI,KAAKkoC,EAAGloC,KAAK,EAAEzH,QAAQ,oEAAqE,EAAE,CAAC,EAC5G2vC,EAAG1sC,OAAO,CACd,KAAK,CACDkoI,EAAW,KAAK,EAChBN,EAAUlxH,OAAOg2B,CAAE,CACvB,CACJ,CACA,IAAI67F,EAAiB,SAASjsF,GAC1BA,EAAOx5D,QAAQ+c,QAAQy8C,CAAI,EAC3B,IAAI,IAAIohF,EAAKphF,EAAK,GAAG0vB,WAAWppF,OAAS,EAAG86I,GAAM,EAAGA,CAAE,GAAIphF,EAAK9N,MAAM8N,EAAK,GAAG0vB,WAAW0xD,EAAG,EAC5FphF,EAAKt8C,OAAO,CAChB,EAEAld,QAAQypB,QAAQq7H,EAAUl7H,KAAK,MAAM,EAAG,SAAS4vC,GAC7CA,EAAKinB,gBAAgB,MAAM,EAC3B,GAAGjnB,EAAKn7C,WAAWve,QAAU,EAAG2lJ,EAAejsF,CAAI,CACvD,CAAC,EACDx5D,QAAQypB,QAAQq7H,EAAUl7H,KAAK,MAAM,EAAG67H,CAAc,EAEtD5jG,EAAOijG,EAAUpjI,KAAK,EACtB,GAAGkjI,EACC/iG,EAAOijG,EAAUpjI,KAAK,GAAK+xG,EAAI/xG,KAAK,EAGxCmgC,EAAOA,EAAK5nC,QAAQ,MAAO,GAAG,CAClC,KAAK,CAED4nC,EAAOA,EAAK5nC,QAAQ,sBAAuB,EAAE,EAC7C,GAAG4nC,EAAK4M,MAAM,yBAAyB,GAEnC,GAAG5M,EAAK4M,MAAM,8BAA8B,EAAE,CAC1C,IAAIi3F,EAAM1lJ,QAAQ+c,QAAQ,QAAU8kC,EAAO,QAAQ,EACnD6jG,EAAI97H,KAAK,UAAU,EAAE1M,OAAO,EAC5B,IAAI,IAAIyoI,EAAK,EAAGA,EAAKC,MAAM9lJ,OAAQ6lJ,CAAE,GAAG,CACpC,IAAIE,EAAUD,MAAMD,GAAI,GAAGjlE,WAAWA,WACtC,IAAI,IAAIolE,EAAK,EAAGA,EAAKF,MAAMD,GAAI,GAAGz8D,WAAWppF,OAAQgmJ,CAAE,GACnDD,EAAQnlE,WAAWyhB,aAAayjD,MAAMD,GAAI,GAAGz8D,WAAW48D,GAAKD,CAAO,EAExEA,EAAQnlE,WAAWC,YAAYklE,CAAO,CAC1C,CACAhkG,EAAO6jG,EAAIhkI,KAAK,EAAEzH,QAAQ,yCAA0C,EAAE,CAC1E,OACE,GAAG4nC,EAAK4M,MAAM,QAAQ,EAIxB,GAAI,CAAC5M,EAAK4M,MAAM,+EAA+E,EAC3F5M,EAAOA,EAAK5nC,QAAQ,sBAAuB,EAAE,EAIrD4nC,EAAOA,EAAK5nC,QAAQ,iDAAkD,EAAE,EAAEA,QAAQ,2DAA4D,QAAQ,CAC1J,CAEA,GAAI,eAAeorC,KAAKxD,CAAI,GAAK,0CAA0CwD,KAAKxD,CAAI,IAAM,MAEtFA,EAAOA,EAAK5nC,QAAQ,8BAA+B,aAAa,EAIpE4nC,EAAOA,EAAK5nC,QAAQ,iBAAkB,SAAUw0C,GAC5C,IAAInsD,EAAS,GACb,IAAK,IAAII,EAAI,EAAGA,EAAI+rD,EAAM3uD,OAAQ4C,CAAC,GAC/BJ,GAAU,SAEd,OAAOA,CACX,CAAC,EAAE2X,QAAQ,cAAe,QAAQ,EAAEA,QAAQ,MAAO,0BAA0B,EAE7E,GAAG0mI,EAAe9+F,EAAO8+F,EAActiG,EAAO,CAAC0nG,MAAOlkG,CAAI,CAAC,GAAKA,EAGhEA,EAAOA,EAAK5nC,QAAQ,uFAAwF,4BAA4B,EAExI4nC,EAAOu2F,EAAWv2F,EAAM,GAAIs+F,CAAiB,EAG7ClP,GAAYqL,WAAWz6F,EAAM9kC,EAAQ,EAAE,EACvCvC,EAAS,WACL6oC,EAAQ+/F,cAAcT,EAAa,CAAC,EACpC+B,EAAmB,MACnB3nI,EAAQiB,YAAY,kBAAkB,CAC1C,EAAG,CAAC,CACR,KAAK,CACD0mI,EAAmB,MACnB3nI,EAAQiB,YAAY,kBAAkB,CAC1C,CACJ,EAEAjB,EAAQ4gC,GAAG,QAASU,EAAMxP,OAAOm3G,MAAQ,SAASjnJ,EAAGq9C,GAEjD,GAAGA,EAAWp8C,QAAQohB,OAAOriB,EAAGq9C,CAAS,EACzC,GAAG4jG,GAAe0E,EAAiB,CAC/B3lJ,EAAEiiD,gBAAgB,EAClBjiD,EAAEkf,eAAe,EACjB,OAAO,KACX,CAGAymI,EAAmB,KACnB3nI,EAAQ8uC,SAAS,kBAAkB,EACnC,IAAIo6F,EACJ,IAAIC,GAAiBnnJ,EAAEq/F,eAAiBr/F,GAAGmnJ,cAE3C,GAAK,CAACA,GAAiB3mJ,OAAO2mJ,eAAiB3mJ,OAAO2mJ,cAAcxvI,QAAS,CACzEuvI,EAAgB1mJ,OAAO2mJ,cAAcxvI,QAAQ,MAAM,EACnDiuI,EAAasB,CAAa,EAC1BlnJ,EAAEiiD,gBAAgB,EAClBjiD,EAAEkf,eAAe,EACjB,OAAO,KACX,CACA,GAAIioI,GAAiBA,EAAcxvI,SAAWwvI,EAAcrqD,MAAM/7F,OAAS,EAAG,CAC1E,IAAIqmJ,EAAS,GACb,IAAI,IAAI9I,EAAK,EAAGA,EAAK6I,EAAcrqD,MAAM/7F,OAAQu9I,CAAE,GAC/C8I,GAAU,IAAMD,EAAcrqD,MAAMwhD,GAGxC,GAAI,cAAch4F,KAAK8gG,CAAM,EACzBF,EAAgBC,EAAcxvI,QAAQ,WAAW,OAC9C,GAAI,eAAe2uC,KAAK8gG,CAAM,EACjCF,EAAgBC,EAAcxvI,QAAQ,YAAY,EAEtDiuI,EAAasB,CAAa,EAC1BlnJ,EAAEiiD,gBAAgB,EAClBjiD,EAAEkf,eAAe,EACjB,OAAO,KACX,KAAO,CACH,IAAImoI,EAAkB9c,GAAMkB,cAAc,EACtC6b,EAAWrmJ,QAAQ+c,QAAQ,4DAA4D,EAC3FwR,GAAU3E,KAAK,MAAM,EAAEgK,OAAOyyH,CAAQ,EACtCA,EAAS,GAAG93G,MAAM,EAClB/zB,EAAS,WAEL8uH,GAAMoB,iBAAiB0b,CAAe,EACtCzB,EAAa0B,EAAS,GAAGhsI,SAAS,EAClC0C,EAAQ,GAAGwxB,MAAM,EACjB83G,EAASnpI,OAAO,CACpB,EAAG,CAAC,CACR,CACJ,CAAC,EACDH,EAAQ4gC,GAAG,MAAOU,EAAMxP,OAAOy3G,IAAM,SAASvnJ,GAE1C,GAAG,CAACihJ,EAAaxlI,EAAS,WACtB6oC,EAAQ+/F,cAAcT,EAAa,CAAC,CACxC,EAAG,CAAC,OACC5jJ,EAAEkf,eAAe,CAC1B,CAAC,EAEDlB,EAAQ4gC,GAAG,UAAWU,EAAMxP,OAAOi1G,QAAU,SAAShnI,EAAOs/B,GAEzD,GAAGA,EAAWp8C,QAAQohB,OAAOtE,EAAOs/B,CAAS,EAC7C,GAAIt/B,EAAM0iF,UAAY2hD,EAClBlQ,GAAY2M,iBAAiB,IAAI,OAEjC3M,GAAY2M,iBAAiB,KAAK,EAEtC9gI,EAAM0kI,WAAaG,EAAS7kI,CAAK,EACjC,IAAIypI,EAEJnV,GAAUzE,YAAYljH,QAAQ,SAAU+8H,GACpC,GAAI1pI,EAAM0kI,aAAegF,EAAQvU,eAG7Bn1H,EAAM0kI,WAAazvI,UAEvB,GAAIy0I,EAAQC,WAAW3pI,CAAK,EACxBypI,EAAiBC,EAAQvU,eAE7B,GAAKuU,EAAQvU,iBAAmB,WAAeuU,EAAQvU,iBAAmB,UAEtE,GAAI,CAACuU,EAAQE,kBACT5pI,EAAMmB,eAAe,CAGjC,CAAC,EAED,GAAI,OAAOsoI,IAAmB,YAC1BzpI,EAAM0kI,WAAa+E,EAGvB,GAAK,OAAOzpI,EAAM0kI,aAAe,cACzB1kI,EAAM0kI,aAAe,WAAa1kI,EAAM0kI,aAAe,WACxD,CACH1kI,EAAMmB,eAAe,EACrB2hI,GAAmB+G,eAAetoG,EAAOvhC,CAAK,CAClD,CAEA,GAAG,CAACkjI,EAAY,CACZ,GAAIljI,EAAM0kI,aAAa,UAAW,CAC9BgC,EAAM,EACN1mI,EAAMmB,eAAe,CACzB,CACA,GAAInB,EAAM0kI,aAAa,UAAW,CAC9BiC,EAAM,EACN3mI,EAAMmB,eAAe,CACzB,CAEA,GAAGnB,EAAM0iF,UAAY0hD,GAAkB,CAACpkI,EAAMuiF,UAAY,CAACviF,EAAMkiF,SAAW,CAACliF,EAAMoiF,SAAW,CAACpiF,EAAM8hF,OACrG,CACI,IAAI3X,EAAW,SAASnhF,EAAGmqB,GACvB,IAAK,IAAIvtB,EAAI,EAAGA,EAAIoD,EAAEhG,OAAQ4C,CAAC,GAC3B,GAAIoD,EAAEpD,KAAOutB,EACT,OAAO,KAGf,OAAO,KACX,EACA,IAAI22H,EACJ,IAAIzrD,EAAY81C,GAAYqB,oBAAoB,EAEhD,GAAG,CAACn3C,EAAUhc,SAAS1wB,MAAMimF,EAAa,EAAG,OAC7C,IAAImS,EAAO7mJ,QAAQ+c,QAAQ6jI,CAAW,EAGtC,IAAIkG,EAAsB,CAAC,aAAc,KAAM,MAC/C,GAAI7/D,EAAS6/D,EAAqB3rD,EAAUza,WAAWywC,QAAQr4G,YAAY,CAAC,EAAG,CAC3E,GAAI,eAAeusC,KAAK81C,EAAU9gF,UAAU+M,KAAK,CAAC,GAAK,CAAC+zE,EAAUzV,YAAa,CAE3EkhE,EAAa5mJ,QAAQ+c,QAAQo+E,CAAS,EACtC,IAAI4rD,EAAUH,EAAWn0H,OAAO,EAChCs0H,EAAQr7F,MAAMm7F,CAAI,EAClBD,EAAW1pI,OAAO,EAClB,GAAI6pI,EAAQrlG,SAAS,EAAE5hD,SAAW,EAAGinJ,EAAQ7pI,OAAO,EACpD+zH,GAAY0M,2BAA2BkJ,EAAK,EAAE,EAC9C/pI,EAAMmB,eAAe,CACzB,CACA,GAAI,+BAA+BonC,KAAK81C,EAAU9gF,UAAU+M,KAAK,CAAC,EAAG,CACjEw/H,EAAa5mJ,QAAQ+c,QAAQo+E,CAAS,EACtCyrD,EAAWl7F,MAAMm7F,CAAI,EACrBD,EAAW1pI,OAAO,EAClB+zH,GAAY0M,2BAA2BkJ,EAAK,EAAE,EAC9C/pI,EAAMmB,eAAe,CACzB,CACJ,CACJ,CACJ,CACJ,CAAC,EACD,IAAI+oI,EACJjqI,EAAQ4gC,GAAG,QAASU,EAAMxP,OAAOo4G,MAAQ,SAASnqI,EAAOs/B,GAErD,GAAGA,EAAWp8C,QAAQohB,OAAOtE,EAAOs/B,CAAS,EAC7C60F,GAAY2M,iBAAiB,KAAK,EAElC,GAAI9gI,EAAM0iF,UAAY4hD,EAAc,CAChC,IAAI/E,EAAapL,GAAYrO,aAAa,EAC1C,GAAGyZ,EAAW/sH,MAAMvS,UAAYA,EAAQ,IAAMA,EAAQ2kC,SAAS,EAAE5hD,OAAQmxI,GAAY0M,2BAA2B5gI,EAAQ2kC,SAAS,EAAE,EAAE,EACrI,MACJ,CAEA,GAAI5kC,EAAM0iF,UAAY6hD,GAAuB,CAACvkI,EAAMuiF,SAChD4xC,GAAYyL,mBAAmB3/H,CAAO,EAG1C,GAAID,EAAM0iF,UAAY8hD,GAAwB,CAACxkI,EAAMuiF,SACjD4xC,GAAYiM,oBAAoBngI,CAAO,EAE3C,GAAGslI,EAAmB7nI,EAASwZ,OAAOquH,CAAiB,EACvD,GAAG,CAACrC,GAAe,CAACS,EAAap7F,KAAKvoC,EAAM0iF,OAAO,EAE/C,GAAI1iF,EAAM0iF,UAAY0hD,IAAmBpkI,EAAMkiF,SAAWliF,EAAMoiF,SAAWpiF,EAAM8hF,aAE1E,CAEH,GAAGgiD,IAAgB,IAAMA,IAAgB,YAAc9jI,EAAM0iF,UAAY0hD,GAAkB,CAACpkI,EAAMkiF,SAAW,CAACliF,EAAMoiF,SAAW,CAACpiF,EAAM8hF,OAAO,CACzI,IAAIzD,EAAY81C,GAAYqB,oBAAoB,EAChD,MAAM,CAACn3C,EAAUhc,SAAS1wB,MAAMimF,EAAa,GAAKv5C,IAAcp+E,EAAQ,GACpEo+E,EAAYA,EAAUza,WAE1B,GAAG,CAAC5jE,EAAMuiF,UAIN,GAAGlE,EAAUg2B,QAAQr4G,YAAY,IAC7B0lC,EAAMq8F,eACN1/C,EAAUhc,SAASrmE,YAAY,IAAM,OACpCqiF,EAAU9gF,UAAU+M,KAAK,IAAM,IAAM+zE,EAAU9gF,UAAU+M,KAAK,IAAM,QACvE,CAGE,IAAIy/H,EAAO7mJ,QAAQ+c,QAAQ6jI,CAAW,EACtC5gJ,QAAQ+c,QAAQo+E,CAAS,EAAEiH,YAAYykD,CAAI,EAC3C5V,GAAY0M,2BAA2BkJ,EAAK,EAAE,CAClD,MACG,CAEH,IAAI11B,EAAUh2B,EAAUg2B,QAAQr4G,YAAY,EAO5C,IAAIq4G,IAAY3yE,EAAMq8F,eAClB1pB,IAAY,MACZA,IAAY,OACZA,IAAY,QACZ,CAAC,aAAa9rE,KAAK81C,EAAU9gF,UAAU+M,KAAK,CAAC,EAAG,CAChD,IAAI8/H,EAAK/rD,EAAUs0B,gBAGnB,GAAIy3B,EAAI,CACJA,EAAG7sI,UAAY6sI,EAAG7sI,UAAY,WAC9Bra,QAAQ+c,QAAQo+E,CAAS,EAAEj+E,OAAO,EAClC+zH,GAAYqI,yBAAyB4N,CAAE,CAC3C,CACJ,CACJ,CACJ,CACA,IAAI1nI,EAAMmjI,EAAa,EACvB,GAAG/B,IAAgB,KAAOphI,EAAI4H,KAAK,IAAM,IAAM5H,EAAI4H,KAAK,IAAM,QAAQ,CAClEk8H,EAAc1C,CAAW,EACzB3P,GAAY0M,2BAA2B5gI,EAAQ2kC,SAAS,EAAE,EAAE,CAChE,MAAM,GAAGliC,EAAIirB,UAAU,EAAG,CAAC,IAAM,KAAO+T,EAAMq8F,gBAAkB,IAShE,IAAIoI,EAAczC,IAAa1jI,EAAM0iF,SAAWkhD,EAAkBr7F,KAAKvoC,EAAM0iF,OAAO,EACpF,GAAGwnD,EAAexsI,EAASwZ,OAAOgzH,CAAa,EAC/CA,EAAgBxsI,EAAS,WACrBuoI,EAAcvjI,EAAKyjI,EAAa,IAAI,CACxC,EAAGpD,EAAeiC,SAASjuH,UAAY,GAAG,EAC1C,GAAG,CAACovH,EAAaZ,EAAoB7nI,EAAS,WAAY6oC,EAAQi/F,aAAar6I,KAAKuX,CAAG,CAAG,EAAG,GAAG,EAChGghI,EAAW1jI,EAAM0iF,OACrB,CAER,CAAC,EAMD,IAAI2nD,EACJpqI,EAAQ4gC,GAAG,QAAS,WAChB,GAAIglG,EAAa,IAAMt/F,EAAQ8/F,WAAY,CAKvC,GAAGgE,EAAe3sI,EAASwZ,OAAOmzH,CAAa,EAE/CA,EAAgB3sI,EAAS,WACrB,IAAI4rI,EAAkB9c,GAAMkB,cAAc,EAC1C,IAAIwY,EAAOL,EAAa,EACxB,GAAIK,IAAS3/F,EAAQ8/F,WAIjBJ,EAAcC,EAAM,IAAI,EAI5B,GAAI3/F,EAAQ8/F,WAAWrjJ,SAAW,EAC9BwpI,GAAMoB,iBAAiB0b,CAAe,CAE9C,EAAG,GAAI,CACX,CACJ,CAAC,EAEDrpI,EAAQ4gC,GAAG,OAAQU,EAAMxP,OAAOwxD,KAAO,WACnC4/C,EAAY,MAEZ,GAAG,CAACD,EACA+C,EAAchxI,UAAWA,UAAW,IAAI,MACvC,CACDmuI,EAAc,KACd78F,EAAQggG,QAAQ,CACpB,CACJ,CAAC,EAGD,GAAG7kG,EAAM4oG,cAAgBxT,GAAeC,GAAK,GAAKD,GAAeC,KAAO9hI,WAAW,CAC/E,IAAI6jI,EACJ,GAAGp3F,EAAM7/C,GAAIi3I,EAAOhB,GAAW,IAAMp2F,EAAM7/C,GAAK,2BAA4B,aAAe6/C,EAAM4oG,YAAc,GAAG,OAC7G,KAAK,uEAEV/oG,EAAM5gC,IAAI,WAAY,WAClBo3H,GAAce,CAAI,CACtB,CAAC,CACL,CAEA74H,EAAQ4gC,GAAG,QAASU,EAAMxP,OAAON,MAAQ,WACrC0xG,EAAY,KACZljI,EAAQiB,YAAY,kBAAkB,EACtC8kI,EAA2B,CAC/B,CAAC,EAED/lI,EAAQ4gC,GAAG,UAAWU,EAAMxP,OAAOw4G,QAAU,WACzC,IAAIhL,EAAapL,GAAYrO,aAAa,EAC1C,GAAGyZ,GAAcA,EAAW/sH,MAAMvS,UAAYA,EAAQ,IAAMA,EAAQ2kC,SAAS,EAAE5hD,OAAQmxI,GAAY0M,2BAA2B5gI,EAAQ2kC,SAAS,EAAE,EAAE,CACvJ,CAAC,EAGD3kC,EAAQ4gC,GAAG,YAAaU,EAAMxP,OAAOy4G,UAAY,SAASxqI,EAAOs/B,GAE7D,GAAGA,EAAWp8C,QAAQohB,OAAOtE,EAAOs/B,CAAS,EAC7Ct/B,EAAMkkC,gBAAgB,CAC1B,CAAC,CACL,CACJ,CAEA,IAAIumG,EAAkB,SAASzqI,EAAOs/B,GAElC,GAAGA,EAAWp8C,QAAQohB,OAAOtE,EAAOs/B,CAAS,EAE7C,GAAG,CAACorG,IAAa,CAACxH,EAAY,CAC1BwH,GAAY,KACZ,IAAIC,EACJ,GAAG3qI,EAAMshF,cAAeqpD,EAAe3qI,EAAMshF,cAAcqpD,kBACtDA,EAAe3qI,EAAM2qI,aAC1BppG,EAAMwkG,MAAM,gBAAiBj8I,KAAMkW,EAAO2qI,CAAY,EACtDjtI,EAAS,WACLgtI,GAAY,MACZzE,EAAchxI,UAAWA,UAAW,IAAI,CAC5C,EAAG,GAAG,CACV,CACJ,EAEA,IAAI21I,EACJ,IAAIC,EAAoB,MAExBtkG,EAAQggG,QAAU,WAEd,GAAGsE,EAAmB,YACjBA,EAAoB,KAEzB,IAAInoI,EAAM6jC,EAAQ8/F,YAAc,GAEhC,GAAG,CAACjD,EAAY,CAEZ,GAAGJ,GAAsBG,EAAU,CAE/BljI,EAAQiB,YAAY,kBAAkB,EAEtC,GAAG0pI,EAAgBltI,EAASwZ,OAAO0zH,CAAc,EACjDA,EAAiBltI,EAAS,WAEtB,GAAG,CAACylI,EAAU,CACVljI,EAAQ,GAAGwxB,MAAM,EACjB0iG,GAAYqI,yBAAyBv8H,EAAQ2kC,SAAS,EAAE3kC,EAAQ2kC,SAAS,EAAE5hD,OAAS,EAAE,CAC1F,CACA4nJ,EAAiB31I,SACrB,EAAG,CAAC,CACR,CACA,GAAG+tI,EAAmB,CAElB,GAAGthG,EAAM4oG,YACL,GAAG5nI,IAAQ,GAEP8jI,EAAc1C,CAAW,OAGzB0C,EAAc9jI,CAAG,OAGrB8jI,EAAe9jI,IAAQ,GAAMohI,EAAcphI,CAAG,EAGlD,GAAG,CAACwgI,EAAY,CACZ8C,EAA2B,EAC3B/lI,EAAQ4gC,GAAG,OAAQ4pG,CAAe,CACtC,MACIxqI,EAAQgvC,IAAI,OAAQw7F,CAAe,CAE3C,MAAM,GAAGxqI,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,YAAciE,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,QAE7FwqI,EAAc5D,GAAuBlgI,CAAG,CAAC,OAGzCzC,EAAQyC,IAAIA,CAAG,CAEvB,CACA,GAAGsgI,GAAsBthG,EAAM4oG,YAC3B,GAAG5nI,IAAQ,GACP,GAAGygI,EAAWljI,EAAQiB,YAAY,kBAAkB,OAC/CjB,EAAQ8uC,SAAS,kBAAkB,OAExC9uC,EAAQiB,YAAY,kBAAkB,EAG9C2pI,EAAoBzH,EAAc,KACtC,EAEA,GAAG1hG,EAAMopG,WAAW,CAEhB5H,EAAc3hG,EAAM4gG,MAAMzgG,EAAMopG,UAAU,EAC1C,GAAG5H,EAAY,CACXjjI,EAAQ8uC,SAAS,aAAa,EAE9B,GAAG9uC,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,YAAciE,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,QACvFiE,EAAQ2W,KAAK,WAAY,UAAU,EAEvC,GAAG3W,EAAQ2W,KAAK,iBAAiB,IAAM3hB,WAAagL,EAAQ2W,KAAK,iBAAiB,EAC9E3W,EAAQirC,WAAW,iBAAiB,CAE5C,KAAK,CACDjrC,EAAQiB,YAAY,aAAa,EAEjC,GAAGjB,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,YAAciE,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,QACvFiE,EAAQirC,WAAW,UAAU,OAC3B,GAAG83F,EACL/iI,EAAQ2W,KAAK,kBAAmB,MAAM,CAE9C,CAGA2qB,EAAM/2C,OAAOk3C,EAAMopG,WAAY,SAAS5nF,EAAQC,GAC5C,GAAGA,IAAWD,EAAQ,OACtB,GAAGA,EAAO,CACNjjD,EAAQ8uC,SAAS,aAAa,EAE9B,GAAG9uC,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,YAAciE,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,QACvFiE,EAAQ2W,KAAK,WAAY,UAAU,EAEvC,GAAG3W,EAAQ2W,KAAK,iBAAiB,IAAM3hB,WAAagL,EAAQ2W,KAAK,iBAAiB,EAC9E3W,EAAQirC,WAAW,iBAAiB,EAGxChoD,QAAQypB,QAAQg2H,GAAsB,SAASj8D,GAC3CzmE,EAAQ6M,KAAK45D,CAAQ,EAAE7lC,GAAG,QAASilG,CAAoB,CAC3D,CAAC,EACD7lI,EAAQgvC,IAAI,OAAQw7F,CAAe,CACvC,KAAK,CACDxqI,EAAQiB,YAAY,aAAa,EAEjC,GAAGjB,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,YAAciE,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAAM,QACvFiE,EAAQirC,WAAW,UAAU,OAC3B,GAAG83F,EACL/iI,EAAQ2W,KAAK,kBAAmB,MAAM,EAG1C1zB,QAAQypB,QAAQg2H,GAAsB,SAASj8D,GAC3CzmE,EAAQ6M,KAAK45D,CAAQ,EAAEz3B,IAAI,QAAS62F,CAAoB,CAC5D,CAAC,EACD7lI,EAAQ4gC,GAAG,OAAQ4pG,CAAe,CACtC,CACAvH,EAAchgF,CAClB,CAAC,CACL,CAIA,GAAG8/E,GAAsB,CAACE,EAAY,CAClChgJ,QAAQypB,QAAQg2H,GAAsB,SAASj8D,GAC3CzmE,EAAQ6M,KAAK45D,CAAQ,EAAE7lC,GAAG,QAASilG,CAAoB,CAC3D,CAAC,EACD7lI,EAAQ4gC,GAAG,OAAQ4pG,CAAe,CACtC,CACJ,CACJ,CACJ,EAAE,EAGF,IAAIC,GAAY,MACZK,EAAc7nJ,QAAQX,OAAO,cAAe,CAAC,aAAc,mBAAoB,wBAAyB,kBAAmB,yBAA0B,qBAAqB,EAq4C9K,OAn4CAwoJ,EAAY3nJ,OAAO,CAAC,WAEhBF,QAAQypB,QAAQ1pB,EAAS,SAASwE,EAAOkK,GAAM,OAAO1O,EAAQ0O,EAAM,CAAC,CACzE,EAAE,EAEFo5I,EAAY5oG,UAAU,cAAe,CACjC,WAAY,WAAY,YAAa,cAAe,gBACpD,qBAAsB,YAAa,WAAY,OAAQ,KAAM,SAC7D,SAASmB,EAAU5lC,EAAU42H,EAAWH,EAAa6W,EACjDlI,EAAoBrxH,EAAWw5H,EAAUlnF,EAAMp8D,EAAI06C,GACnD,MAAO,CACHl/C,QAAS,WACTo+C,MAAO,GACPD,SAAU,KACVjE,SAAU,EACVoE,KAAM,SAASF,EAAOthC,EAASyhC,EAAO6E,GAElC,IAAI2kG,EAAUC,EAAQC,EAAWC,EAAUC,EAAUC,EACjDC,EAAmBC,EACnBC,EAAWhqG,EAAY,OAAIA,EAAMiqG,OAASxzI,KAAKyc,MAAMzc,KAAK0c,OAAO,EAAI,IAAiB,EACtF+2H,EAAgBC,EAAkBC,EACtC,IAAIC,EAEJxqG,EAAM8f,MAAS3f,EAAU,KAAIA,EAAMn3C,KAAO,oBAAsBmhJ,EAEhE,IAAIM,EAAW,SAAS1S,EAAUt5H,EAAO0pH,GACrChsH,EAAS,WACL47H,EAASt6C,IAAIh/E,EAAO0pH,CAAM,CAC9B,EAAG,GAAG,CACV,EACAkiB,EAAiBZ,EAActpG,EAAMq8F,aAAa,EAElD76I,QAAQohB,OAAOi9B,EAAOr+C,QAAQqB,KAAK+vI,CAAS,EAAG,CAE3CW,cAAe,SAASgJ,EAAS7xG,EAAK6/G,GAIlC,GAAGhO,EAAQjiI,YAAY,IAAM,OACzBulC,EAAM,2BAA6BmqG,GAAS,OAC1C,GAAGzN,EAAQjiI,YAAY,IAAM,OAC/BulC,EAAM,2BAA6BmqG,GAAS,MAC3C,CAEDE,EAAe3N,EAAS,MAAO7xG,EAAKmV,EAAM+uF,oBAAoB,EAC9D,GAAG2b,EAEC1qG,EAAM,yCAA2CmqG,GAAS,EAI9DnqG,EAAM0xF,gBAAgBluF,KAAK,GAAGtT,MAAM,CACxC,CACJ,EACAojG,SAAUtzF,EAAM4gG,MAAMzgG,EAAMwqG,UAAU,GAAK,KAC/C,CAAC,EAED,GAAGxqG,EAAMyqG,gBAAmB5qG,EAAMwuF,QAAQC,SAAWtuF,EAAMyqG,gBAC3D,GAAGzqG,EAAM0qG,kBAAqB7qG,EAAMwuF,QAAQK,WAAa1uF,EAAM0qG,kBAC/D,GAAG1qG,EAAM2qG,kBAAqB9qG,EAAMwuF,QAAQM,WAAa3uF,EAAM2qG,kBAC/D,GAAG3qG,EAAM4qG,uBACL,IAEIppJ,QAAQohB,OAAOi9B,EAAM+uF,qBAAsBptI,QAAQmY,SAASqmC,EAAM4qG,sBAAsB,CAAC,CAG7F,CAFE,MAAOtrI,GACL+iD,EAAK/iD,MAAMA,CAAK,CACpB,CAGJ,GAAG0gC,EAAM6qG,kBAAqBhrG,EAAM4+C,MAAMowC,gBAAkBhvF,EAAMnpB,QAAQ+pH,MAAMzgG,EAAM6qG,iBAAiB,EACvG,GAAG7qG,EAAM8qG,kBAAqBjrG,EAAM4+C,MAAMswC,gBAAkBlvF,EAAMnpB,QAAQ+pH,MAAMzgG,EAAM8qG,iBAAiB,EAEvG,GAAG9qG,EAAM+qG,WAAelrG,EAAMkpG,gBAAkBlpG,EAAMnpB,QAAQ+pH,MAAMzgG,EAAM+qG,UAAU,OACxElrG,EAAMkpG,gBAAkBlpG,EAAMmvF,uBAE1C8a,EAAoBvrI,EAAQ,GAAG1C,UAE/B0C,EAAQ,GAAG1C,UAAY,GAGvBgkC,EAAM0xF,gBAAkB,CAGpByZ,UAAWxpJ,QAAQ+c,QAAQ,4DAA4D,EACvF2E,KAAM1hB,QAAQ+c,QAAQ,uBAAuB,EAC7C8kC,KAAM7hD,QAAQ+c,QAAQ,aAAa,EAEnC0sI,aAAczpJ,QAAQ+c,QAAQ,sCAAsC,EACpEizH,QAAShwI,QAAQ+c,QAAQ,gFAAgF,EACzG2sI,aAAc1pJ,QAAQ+c,QAAQ,2BAA2B,EACzDkzH,iBAAkBjwI,QAAQ+c,QAAQ,qCAAqC,EACvE4sI,OAAQ,CACJC,QAAS5pJ,QAAQ+c,QAAQ,+CAA+C,EACxE8sI,WAAY7pJ,QAAQ+c,QAAQ,kDAAkD,EAC9E+sI,QAAS,CACL9pJ,QAAQ+c,QAAQ,0EAA0E,EAC1F/c,QAAQ+c,QAAQ,0EAA0E,EAC1F/c,QAAQ+c,QAAQ,0EAA0E,EAC1F/c,QAAQ+c,QAAQ,0EAA0E,GAE9Fi4B,KAAMh1C,QAAQ+c,QAAQ,4CAA4C,CACtE,CACJ,EAGAshC,EAAM0xF,gBAAgBC,QAAQp8G,OAAOyqB,EAAM0xF,gBAAgB2Z,YAAY,EACvErrG,EAAM0xF,gBAAgBC,QAAQp8G,OAAOyqB,EAAM0xF,gBAAgBE,gBAAgB,EAC3E5xF,EAAM0xF,gBAAgB0Z,aAAa71H,OAAOyqB,EAAM0xF,gBAAgBC,OAAO,EAEvE3xF,EAAM0xF,gBAAgBC,QAAQryF,GAAG,YAAa,SAAS5+C,EAAGq9C,GAEtD,GAAGA,EAAWp8C,QAAQohB,OAAOriB,EAAGq9C,CAAS,EAEzCr9C,EAAEkf,eAAe,EACjB,OAAO,KACX,CAAC,EAGDogC,EAAM0rG,oBAAsB,WACxB,GAAI1rG,EAAM0xF,gBAAgBC,QAAQ5nF,IAAI,SAAS,IAAI,QAAS,CACxD,GAAGygG,EAAgBruI,EAASwZ,OAAO60H,CAAc,EACjDA,EAAiBruI,EAAS,WAEtB6jC,EAAM2rG,cAAc3rG,EAAM4rG,aAAa,EACvC5rG,EAAM6rG,oBAAoB7rG,EAAM4rG,aAAa,CACjD,EAAG,GAAG,CACV,CACJ,EAGAjqJ,QAAQ+c,QAAQxd,MAAM,EAAEo+C,GAAG,SAAUU,EAAM0rG,mBAAmB,EAG9D/pJ,QAAQ+c,QAAQxd,MAAM,EAAEo+C,GAAG,SAAUU,EAAM0rG,mBAAmB,EAI9D,IAAII,EAAe,SAAS3wF,GACxB,IAAI4wF,EACJ,IAAIC,EAAiB,CACjBC,SAAU,MACVC,WAAY,KAChB,EACA,IACIH,EAAK7qJ,OAAOsjG,iBAAiBrpC,CAAI,EACjC,GAAI4wF,IAAO,KACP,OAAOC,CAKf,CAHE,MAAOtrJ,GAEL,OAAOsrJ,CACX,CACA,IAAIz/C,EAAYw/C,EAAG,cACnB,IAAIz/C,EAAYy/C,EAAG,cACnB,MAAO,CACHE,UAAW1/C,IAAc,UAAYA,IAAc,SAEvCpxC,EAAKxuC,aAAewuC,EAAKgxF,aACrCD,YAAa5/C,IAAc,UAAYA,IAAc,SAEzCnxC,EAAKixF,YAAcjxF,EAAKkxF,WACxC,CACJ,EAUArsG,EAAMssG,aAAe,SAAUjF,EAAKkF,GAChC,IAAI/hG,EAAY68F,EAAI78F,UACpB,GAAI,OAAOA,IAAc,YACrBA,EAAY,EAGhB,GAAI+hG,GAAgBT,EAAazE,CAAG,EAAE4E,SAAU,CAE5C5E,EAAI9kE,oBAAoB,SAAUviC,EAAMwsG,gBAAiB,KAAK,EAC9DnF,EAAIh1G,iBAAiB,SAAU2N,EAAMwsG,gBAAiB,KAAK,CAC/D,CAEA,GAAIhiG,IAAc,EACd,MAAO,CAAE2Q,KAAKksF,EAAIvmE,SAAU3zB,IAAI3C,CAAU,EAG9C,GAAI68F,EAAIhlE,WACJ,OAAOriC,EAAMssG,aAAajF,EAAIhlE,WAAYkqE,CAAY,OAEtD,MAAO,CAAEpxF,KAAK,SAAUhO,IAAI,CAAE,CAEtC,EAGAnN,EAAMqyF,YAAc,SAASgV,GACzBrnG,EAAMssG,aAAatsG,EAAM0xF,gBAAgB0Z,aAAa,GAAI,IAAI,EAC9DprG,EAAM0xF,gBAAgBC,QAAQ5nF,IAAI,UAAW,OAAO,EAIpD5tC,EAAS,WACL6jC,EAAM0xF,gBAAgB4Z,OAAOC,QAAQxhG,IAAI,UAAW,OAAO,CAC/D,CAAC,EACD/J,EAAM4rG,cAAgBvE,EACtBrnG,EAAM2rG,cAActE,CAAG,EACvBqC,EAASl8F,SAASxN,EAAM0xF,gBAAgBC,QAAS,IAAI,EACrD8Y,EAASv6H,EAAU3E,KAAK,MAAM,EAAG,cAAe,WAAWy0B,EAAMyxF,YAAY,CAAE,CAAC,CACpF,EAGAzxF,EAAMwsG,gBAAkB,SAAU9rJ,EAAGq9C,GACjCiC,EAAM0rG,oBAAoB,CAC9B,EAEA1rG,EAAM2rG,cAAgB,SAAStE,GAC3B,IAAI78F,EAAYxK,EAAMssG,aAAatsG,EAAM0xF,gBAAgB0Z,aAAa,GAAI,KAAK,EAC/E,IAAIqB,EAAkBpF,EAAI,GAAGqF,UAAUliG,EAAU2C,IAKjD,GAAGs/F,EAAkB,GAAI,CACrBzsG,EAAM0xF,gBAAgBC,QAAQ5nF,IAAI,MAAOs9F,EAAI,GAAGqF,UAAYrF,EAAI,GAAGhgD,aAAernD,EAAM0xF,gBAAgB0Z,aAAa,GAAG5gG,UAAY,IAAI,EACxIxK,EAAM0xF,gBAAgBC,QAAQhyH,YAAY,KAAK,EAAE6tC,SAAS,QAAQ,CACtE,KAAO,CACHxN,EAAM0xF,gBAAgBC,QAAQ5nF,IAAI,MAAOs9F,EAAI,GAAGqF,UAAY,GAAK1sG,EAAM0xF,gBAAgB0Z,aAAa,GAAG5gG,UAAY,IAAI,EACvHxK,EAAM0xF,gBAAgBC,QAAQhyH,YAAY,QAAQ,EAAE6tC,SAAS,KAAK,CACtE,CACA,IAAIm/F,EAAW3sG,EAAM0xF,gBAAgBluF,KAAK,GAAGoiD,YAAc5lD,EAAM0xF,gBAAgBC,QAAQ,GAAG/rC,YAC5F,IAAIgnD,EAAcvF,EAAI,GAAGwF,WAAcxF,EAAI,GAAGzhD,YAAc,EAAQ5lD,EAAM0xF,gBAAgBC,QAAQ,GAAG/rC,YAAc,EACnH,IAAIknD,EAASl2I,KAAKwS,IAAI,EAAGxS,KAAK0S,IAAIqjI,EAAUC,CAAW,CAAC,EACxD,IAAIG,EAAen2I,KAAK0S,IAAIsjI,EAAch2I,KAAKwS,IAAI,EAAGwjI,EAAcD,CAAS,CAAC,EAAI,GAClFG,GAAU5rJ,OAAO0gD,QACjBmrG,GAAe7rJ,OAAO0gD,QACtB5B,EAAM0xF,gBAAgBC,QAAQ5nF,IAAI,OAAQ+iG,EAAS,IAAI,EACvD9sG,EAAM0xF,gBAAgB2Z,aAAathG,IAAI,cAAegjG,EAAc,IAAI,CAC5E,EACA/sG,EAAMyxF,YAAc,WAChBzxF,EAAM0xF,gBAAgBC,QAAQ5nF,IAAI,UAAW,MAAM,EACnD/J,EAAM0xF,gBAAgBE,iBAAiBv8G,KAAK,QAAS,EAAE,EACvD2qB,EAAM0xF,gBAAgBE,iBAAiBv8G,KAAK,QAAS,iBAAiB,EACtE2qB,EAAM0xF,gBAAgBC,QAAQhyH,YAAY,IAAI,EAC9CqgC,EAAM0xF,gBAAgB4Z,OAAOC,QAAQxhG,IAAI,UAAW,MAAM,CAC9D,EAGA/J,EAAM0xF,gBAAgB4Z,OAAOC,QAAQh2H,OAAOyqB,EAAM0xF,gBAAgB4Z,OAAOE,UAAU,EACnF7pJ,QAAQypB,QAAQ40B,EAAM0xF,gBAAgB4Z,OAAOG,QAAS,SAASroG,GAASpD,EAAM0xF,gBAAgB4Z,OAAOC,QAAQh2H,OAAO6tB,CAAM,CAAE,CAAC,EAC7HpD,EAAM0xF,gBAAgB4Z,OAAOC,QAAQh2H,OAAOyqB,EAAM0xF,gBAAgB4Z,OAAO30G,IAAI,EAC7EqJ,EAAM0xF,gBAAgB0Z,aAAa71H,OAAOyqB,EAAM0xF,gBAAgB4Z,OAAOC,OAAO,EAI9EvrG,EAAM0xF,gBAAgB4Z,OAAOE,WAAWlsG,GAAG,QAAS,SAAS5+C,GACzDs/C,EAAM0xF,gBAAgBluF,KAAK,GAAGtT,MAAM,CACxC,CAAC,EAGD8P,EAAM6rG,oBAAsB,SAASxE,GACjCA,EAAM1lJ,QAAQ+c,QAAQ2oI,CAAG,EAAE,GAC3BrnG,EAAM0xF,gBAAgB4Z,OAAOC,QAAQxhG,IAAI,CACrC,QAAW,QACX,KAAQs9F,EAAIwF,WAAa,EAAI,KAC7B,IAAOxF,EAAIqF,UAAY,EAAI,KAC3B,MAASrF,EAAIzhD,YAAc,GAAK,KAChC,OAAUyhD,EAAIhgD,aAAe,GAAK,IACtC,CAAC,EACDrnD,EAAM0xF,gBAAgB4Z,OAAO30G,KAAK6M,KAAK6jG,EAAIzhD,YAAc,MAAQyhD,EAAIhgD,YAAY,CACrF,EAEArnD,EAAMsyF,kBAAoB,SAAS+U,GAC/B,IAAI2F,EAAQ98H,EAAU3E,KAAK,MAAM,EACjC++H,EAAmB,SAAS7rI,GACxB,IAAIwuI,EAAgB,CAChBh1H,MAAOxM,SAAS47H,EAAIhyH,KAAK,OAAO,CAAC,EACjC6C,OAAQzM,SAAS47H,EAAIhyH,KAAK,QAAQ,CAAC,EACnC3rB,EAAG+U,EAAM4iF,QACTvxF,EAAG2O,EAAM6iF,OACb,EACA,GAAG2rD,EAAch1H,QAAUvkB,WAAaglC,MAAMu0G,EAAch1H,KAAK,EAAGg1H,EAAch1H,MAAQovH,EAAI,GAAGzhD,YACjG,GAAGqnD,EAAc/0H,SAAWxkB,WAAaglC,MAAMu0G,EAAc/0H,MAAM,EAAG+0H,EAAc/0H,OAASmvH,EAAI,GAAGhgD,aACpGrnD,EAAMyxF,YAAY,EAClB,IAAIyb,EAAQD,EAAc/0H,OAAS+0H,EAAch1H,MACjD,IAAIk1H,EAAY,SAAS1uI,GAErB,IAAIurF,EAAM,CACNtgG,EAAGkN,KAAKwS,IAAI,EAAG6jI,EAAch1H,OAASxZ,EAAM4iF,QAAU4rD,EAAcvjJ,EAAE,EACtEoG,EAAG8G,KAAKwS,IAAI,EAAG6jI,EAAc/0H,QAAUzZ,EAAM6iF,QAAU2rD,EAAcn9I,EAAE,CAC3E,EAKA,IAAIs9I,EAAqBjtG,EAAMktG,2BAA6B35I,UAG5D,IAAI45I,EAAkBntG,EAAMotG,4BAC5B,IAAIC,EAAcJ,GAAsBE,GAAmB,CAAC7uI,EAAMuiF,SAClE,GAAGwsD,EAAY,CACX,IAAIC,EAAWzjD,EAAIl6F,EAAIk6F,EAAItgG,EAC3BsgG,EAAItgG,EAAIwjJ,EAAQO,EAAWzjD,EAAItgG,EAAIsgG,EAAIl6F,EAAIo9I,EAC3CljD,EAAIl6F,EAAIo9I,EAAQO,EAAWzjD,EAAItgG,EAAIwjJ,EAAQljD,EAAIl6F,CACnD,CACA,IAAIy7C,EAAK5pD,QAAQ+c,QAAQ2oI,CAAG,EAC5B,SAASqG,EAAcvsI,GACnB,OAAOvK,KAAKkvF,MAAMlvF,KAAKwS,IAAI,EAAGjI,CAAG,CAAC,CACtC,CACAoqC,EAAGxB,IAAI,SAAU2jG,EAAc1jD,EAAIl6F,CAAC,EAAI,IAAI,EAC5Cy7C,EAAGxB,IAAI,QAAS2jG,EAAc1jD,EAAItgG,CAAC,EAAI,IAAI,EAG3Cs2C,EAAM6rG,oBAAoBxE,CAAG,CACjC,EACA2F,EAAM1tG,GAAG,YAAa6tG,CAAS,EAC/B1C,EAASuC,EAAO,UAAW,SAASvuI,GAChCA,EAAMmB,eAAe,EACrBnB,EAAMkkC,gBAAgB,EACtBqqG,EAAMt/F,IAAI,YAAay/F,CAAS,EAKhCntG,EAAMvrB,OAAO,WACTurB,EAAMyxF,YAAY,EAClBzxF,EAAMwxF,0BAA0B,CACpC,EAAG,GAAG,CACV,CAAC,EACD/yH,EAAMkkC,gBAAgB,EACtBlkC,EAAMmB,eAAe,CACzB,EAEAogC,EAAM0xF,gBAAgB4Z,OAAOG,QAAQ,GAAG/9F,IAAI,WAAW,EACvD1N,EAAM0xF,gBAAgB4Z,OAAOG,QAAQ,GAAGnsG,GAAG,YAAagrG,CAAgB,EAExEtqG,EAAM6rG,oBAAoBxE,CAAG,EAC7BoD,EAASuC,EAAO,QAAS,WAAWhtG,EAAM2tG,kBAAkB,CAAE,CAAC,CACnE,EAEA3tG,EAAM2tG,kBAAoB,WACtB3tG,EAAM0xF,gBAAgB4Z,OAAOG,QAAQ,GAAG/9F,IAAI,YAAa48F,CAAgB,EACzEtqG,EAAM0xF,gBAAgB4Z,OAAOC,QAAQxhG,IAAI,UAAW,MAAM,CAC9D,EAGA/J,EAAM4+C,MAAMswC,gBAAgBlvF,EAAM0xF,gBAAgBruH,IAAI,EACtD28B,EAAM4+C,MAAMowC,gBAAgBhvF,EAAM0xF,gBAAgBluF,IAAI,EACtDxD,EAAM0xF,gBAAgBruH,KAAKgS,KAAK,CAC5B,GAAM,gBAAkB80H,EACxB,UAAW,WACX,UAAW,UACX,WAAY,OACZ,mBAAoBzrI,EAAQ2W,KAAK,kBAAkB,CACvD,CAAC,EACD2qB,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,CAC5B,GAAM,gBAAkB80H,EACxB,gBAAmB,OACnB,UAAW,UACX,WAAY,OACZ,mBAAoBzrI,EAAQ2W,KAAK,kBAAkB,CACvD,CAAC,EACD2qB,EAAM0xF,gBAAgB0Z,aAAa/1H,KAAK,CAAC,UAAW,UAAU,CAAC,EAC/D,GAAG8qB,EAAMq8F,cAELx8F,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,kBAAmB8qB,EAAMq8F,aAAa,EAG1E,GAAGr8F,EAAM4hG,kBAAkB,CACvB/hG,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,sBAAuB8qB,EAAM4hG,iBAAiB,EAC9E/hG,EAAM0xF,gBAAgBruH,KAAKgS,KAAK,sBAAuB8qB,EAAM4hG,iBAAiB,CAClF,CAEA,GAAG5hG,EAAM+hG,aAAa,CAClBliG,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,iBAAkB8qB,EAAM+hG,YAAY,EACpEliG,EAAM0xF,gBAAgBruH,KAAKgS,KAAK,iBAAkB8qB,EAAM+hG,YAAY,CACxE,CAGAliG,EAAM0xF,gBAAgB0Z,aAAa71H,OAAOyqB,EAAM0xF,gBAAgBluF,IAAI,EACpE9kC,EAAQ6W,OAAOyqB,EAAM0xF,gBAAgB0Z,YAAY,EACjD1sI,EAAQ6W,OAAOyqB,EAAM0xF,gBAAgBruH,IAAI,EAEzC28B,EAAM0xF,gBAAgByZ,UAAU91H,KAAK,OAAQ2qB,EAAM8f,KAAK,EACxDphD,EAAQ6W,OAAOyqB,EAAM0xF,gBAAgByZ,SAAS,EAE9C,GAAGhrG,EAAM0uD,SAAS,CACdnwF,EAAQirC,WAAW,UAAU,EAC7B3J,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,WAAY8qB,EAAM0uD,QAAQ,EAC1D7uD,EAAM0xF,gBAAgBruH,KAAKgS,KAAK,WAAY8qB,EAAM0uD,QAAQ,CAC9D,CAEA,GAAI1uD,EAAM4oG,YAAa,CACnB/oG,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,cAAe8qB,EAAM4oG,WAAW,EAChE/oG,EAAM0xF,gBAAgBruH,KAAKgS,KAAK,cAAe8qB,EAAM4oG,WAAW,CACpE,CAEA,GAAG5oG,EAAMytG,WAAW,CAChB5tG,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,cAAe,UAAU,EACzD2qB,EAAM0xF,gBAAgBruH,KAAKgS,KAAK,cAAe,UAAU,EACzD2qB,EAAM2F,SAAW3F,EAAMnpB,QAAQ+pH,MAAMzgG,EAAMytG,UAAU,EACrD5tG,EAAMnpB,QAAQ5tB,OAAOk3C,EAAMytG,WAAY,SAASjsF,GAC5C3hB,EAAM2F,SAAWgc,EACjB,GAAG3hB,EAAM2F,SACLjnC,EAAQ8uC,SAASxN,EAAMwuF,QAAQ7oF,QAAQ,OAEvCjnC,EAAQiB,YAAYqgC,EAAMwuF,QAAQ7oF,QAAQ,CAElD,CAAC,CACL,CAEA,GAAGxF,EAAM4jG,QAAQ,CACb/jG,EAAMsiG,cAAgB,SAAS4D,GAC3B,OAAOplG,EAAOX,EAAM4jG,OAAO,EAAE/jG,EAAMnpB,QAAS,CAAC6wH,MAAOxB,CAAK,CAAC,CAC9D,EACAlmG,EAAM0xF,gBAAgBluF,KAAKnuB,KAAK,WAAY,sBAAsB,CACtE,CAGA0sB,EAAS/B,EAAM0xF,gBAAgB0Z,YAAY,EAAEprG,CAAK,EAClD+B,EAAS/B,EAAM0xF,gBAAgBruH,IAAI,EAAE28B,CAAK,EAE1CA,EAAMwxF,0BAA4BxxF,EAAM,4BAA8BmqG,GACtEnqG,EAAM6tG,0BAA4B7tG,EAAM,4BAA8BmqG,GAGtEzrI,EAAQ8uC,SAAS,SAAS,EAC1BxN,EAAM0xF,gBAAgB0Z,aAAa59F,SAAS,qBAAuBxN,EAAMwuF,QAAQK,UAAU,EAC3F7uF,EAAM0xF,gBAAgBruH,KAAKmqC,SAAS,qBAAuBxN,EAAMwuF,QAAQM,UAAU,EAEnF,IAAIgf,EAAa,SAASC,EAAQC,GAE9B,GAAIA,IAAgB99H,EAAU,GAAGyjH,kBAAkBoa,CAAM,EACrD79H,EAAU,GAAGH,YAAYg+H,EAAQ,MAAO,IAAI,CAEpD,EAEA/tG,EAAMiuG,eAAiB,MACvB,IAAIlG,EAAkB,MACtB/nG,EAAMy6F,YAAc,WAChB,IAAIyT,EAAmB,MACvB,IAAIC,EAAqB,MACzB,IAAIC,EAAwB,MAC5B,IAAIC,EAA2B,MAC/BruG,EAAMiuG,eAAiB,KACvBC,EAAmBh+H,EAAU,GAAGyjH,kBAAkB,MAAM,EACxDwa,EAAqBj+H,EAAU,GAAGyjH,kBAAkB,QAAQ,EAC5Dya,EAAwBl+H,EAAU,GAAGyjH,kBAAkB,WAAW,EAClE0a,EAA2Bn+H,EAAU,GAAGyjH,kBAAkB,eAAe,EAGzEoU,EAAkB9c,GAAMkB,cAAc,EAItC2hB,EAAW,OAAQI,CAAgB,EACnCJ,EAAW,SAAUK,CAAkB,EACvCL,EAAW,YAAaM,CAAqB,EAC7CN,EAAW,gBAAiBO,CAAwB,EAEpD,OAAO,WACH,GAAGtG,EAAiB9c,GAAMoB,iBAAiB0b,CAAe,CAG9D,CACJ,EACA/nG,EAAM06F,UAAY,WACd16F,EAAMiuG,eAAiB,MACvB,GAAGlG,EAAgB,CACf,GAAG/nG,EAAMszF,SACLtzF,EAAM0xF,gBAAgBruH,KAAK,GAAG6sB,MAAM,OAEpC8P,EAAM0xF,gBAAgBluF,KAAK,GAAGtT,MAAM,EAGxC+6F,GAAMwB,cAAcsb,CAAe,CACvC,CACAA,EAAkB,MAClB/nG,EAAMsuG,qBAAqB,EAE3B,GAAG,CAACtuG,EAAMszF,SAAUtzF,EAAM,4BAA8BmqG,GAAS,CACrE,EAIAJ,EAAW,SAASrpJ,GAChBs/C,EAAMyuF,SAAW,KACjB/vH,EAAQ8uC,SAASxN,EAAMwuF,QAAQC,QAAQ,EAQvCyb,EAAiBh6G,MAAM,EACvBxxB,EAAQm7B,eAAe,OAAO,EAI9B,GAAGmG,EAAMsuG,sBAAwB,CAACtuG,EAAMuuG,uBAMpCpyI,EAAS,WACL6jC,EAAMsuG,qBAAqB,CAC/B,EAAG,CAAC,CAEZ,EACAtuG,EAAM0xF,gBAAgBruH,KAAKi8B,GAAG,QAASyqG,CAAQ,EAC/C/pG,EAAM0xF,gBAAgBluF,KAAKlE,GAAG,QAASyqG,CAAQ,EAC/CC,EAAY,SAAStpJ,GAajB,GAAG,CAACs/C,EAAMiuG,gBACN/9H,EAAU,GAAGkgE,gBAAkBpwC,EAAM0xF,gBAAgBruH,KAAK,IAC1D6M,EAAU,GAAGkgE,gBAAkBpwC,EAAM0xF,gBAAgBluF,KAAK,GAC9D,CACI9kC,EAAQiB,YAAYqgC,EAAMwuF,QAAQC,QAAQ,EAC1Cyb,EAAiBsE,QAAQ,EAEzBryI,EAAS,WACL6jC,EAAMuuG,uBAAyB,MAC/B7vI,EAAQm7B,eAAe,MAAM,EAC7BmG,EAAMyuF,SAAW,KACrB,EAAG,CAAC,CACR,CACA/tI,EAAEkf,eAAe,EACjB,OAAO,KACX,EACAogC,EAAM0xF,gBAAgBruH,KAAKi8B,GAAG,OAAQ0qG,CAAS,EAC/ChqG,EAAM0xF,gBAAgBluF,KAAKlE,GAAG,OAAQ0qG,CAAS,EAE/ChqG,EAAM0xF,gBAAgBluF,KAAKlE,GAAG,QAAS,SAAS7gC,GAC5CC,EAAQm7B,eAAe,QAASp7B,CAAK,CACzC,CAAC,EAIDuhC,EAAMwzF,sBAAwB,SAASkJ,GAEnC,MAAO,CAAC18F,EAAMszF,UAAYoJ,EAAQjiI,YAAY,IAAMyV,EAAU,GAAGu+H,kBAAkB,aAAa,EAAEh0I,YAAY,CAClH,EACAulC,EAAM2zF,kBAAoB,SAAS+I,GAE/B,MAAO,CAAE18F,EAAMszF,SAAYpjH,EAAU,GAAGyjH,kBAAkB+I,CAAO,EAAI,EACzE,EACA18F,EAAMozF,WAAa,WACfpzF,EAAMszF,SAAW,CAACtzF,EAAMszF,SACxBoW,EAAS32H,QAAQ,MAAOitB,EAAM0xF,gBAAgBruH,IAAI,EAClDqmI,EAAS32H,QAAQ,MAAOitB,EAAM0xF,gBAAgBluF,IAAI,EAkBlD,GAAGxD,EAAMszF,SAELn3H,EAAS,WACLutI,EAAS32H,QAAQ,KAAMitB,EAAM0xF,gBAAgBruH,IAAI,EACjDqmI,EAAS32H,QAAQ,KAAMitB,EAAM0xF,gBAAgBluF,IAAI,EAEjD,OAAOxD,EAAM0xF,gBAAgBruH,KAAK,GAAG6sB,MAAM,CAC/C,EAAG,GAAG,OAIN/zB,EAAS,WACLutI,EAAS32H,QAAQ,KAAMitB,EAAM0xF,gBAAgBruH,IAAI,EACjDqmI,EAAS32H,QAAQ,KAAMitB,EAAM0xF,gBAAgBluF,IAAI,EAEjD,OAAOxD,EAAM0xF,gBAAgBluF,KAAK,GAAGtT,MAAM,CAC/C,EAAG,GAAG,CAEd,EAIA,GAAGiQ,EAAM6E,QAAQ,CACb,IAAI0pG,EAAY,KAChB1pG,EAAQggG,QAAU,WACd,GAAG0J,EAAU,CAETA,EAAY,MAEZ,IAAIC,EAAgB3uG,EAAMnpB,QAAQ+pH,MAAMzgG,EAAM6E,OAAO,EACrD,IAAI2pG,IAAkBj7I,WAAai7I,IAAkB,QAAU1E,GAAqBA,IAAsB,IAEtGjlG,EAAQ+/F,cAAckF,CAAiB,CAE/C,CACAjqG,EAAM0xF,gBAAgByZ,UAAUhqI,IAAI6jC,EAAQ8/F,UAAU,EAEtD9kG,EAAM38B,KAAO2hC,EAAQ8/F,YAAc,EACvC,EAEA,GAAGpmI,EAAQ2W,KAAK,UAAU,EAAG2vB,EAAQ6I,YAAYwb,SAAW,SAAStb,EAAYC,GAC7E,IAAI9nD,EAAQ6nD,GAAcC,EAC1B,MAAO,EAAE,CAAC9nD,GAASA,EAAM6iB,KAAK,IAAM,GACxC,CACJ,KAAK,CAEDi3B,EAAM0xF,gBAAgByZ,UAAUhqI,IAAI8oI,CAAiB,EACrDjqG,EAAM38B,KAAO4mI,CACjB,CAGAjqG,EAAM/2C,OAAO,OAAQ,SAASC,EAAUC,GACpC,GAAGD,IAAaC,EAAS,CACrB,GAAGg3C,EAAM6E,SAAWA,EAAQ8/F,aAAe57I,EACvC87C,EAAQ+/F,cAAc77I,CAAQ,EAElC82C,EAAM0xF,gBAAgByZ,UAAUhqI,IAAIjY,CAAQ,CAChD,CACJ,CAAC,EAED,GAAGi3C,EAAMyuG,iBACL1E,EAAmB3I,EAAmBsN,eAAe7uG,EAAM8f,MAAO9f,EAAOG,EAAMyuG,iBAAiBj5I,MAAM,GAAG,CAAC,MAE1G,CACA,IAAIm5I,EAAWntJ,QAAQ+c,QAAQ,qDAAuDyrI,EAAU,IAAI,EAEpG,GAAGhqG,EAAM4uG,UAAgBD,EAASz5H,KAAK,aAAc8qB,EAAM4uG,SAAS,EACpE,GAAG5uG,EAAM6uG,eAAmBF,EAASz5H,KAAK,mBAAoB8qB,EAAM6uG,cAAc,EAClF,GAAG7uG,EAAM8uG,oBAAuBH,EAASz5H,KAAK,yBAA0B8qB,EAAM8uG,mBAAmB,EACjG,GAAG9uG,EAAM+uG,qBAAwBJ,EAASz5H,KAAK,0BAA2B8qB,EAAM+uG,oBAAoB,EACpG,GAAG/uG,EAAMgvG,2BAA4BL,EAASz5H,KAAK,iCAAkC8qB,EAAMgvG,0BAA0B,EACrH,GAAGhvG,EAAMyqG,gBAAoBkE,EAASz5H,KAAK,oBAAqB8qB,EAAMyqG,eAAe,EAErFlsI,EAAQ6uC,QAAQuhG,CAAQ,EACxB/sG,EAAS+sG,CAAQ,EAAE9uG,EAAMnpB,OAAO,EAChCqzH,EAAmB3I,EAAmBsN,eAAe7uG,EAAM8f,MAAO9f,EAAO,CAAC,qBAAuBmqG,EAAQ,CAC7G,CAEAnqG,EAAM5gC,IAAI,WAAY,WAClBmiI,EAAmB6N,iBAAiBpvG,EAAM8f,KAAK,EAC/Cn+D,QAAQ+c,QAAQxd,MAAM,EAAEwsD,IAAI,MAAM,EAClC/rD,QAAQ+c,QAAQxd,MAAM,EAAEwsD,IAAI,SAAU1N,EAAM0rG,mBAAmB,EAC/D/pJ,QAAQ+c,QAAQxd,MAAM,EAAEwsD,IAAI,SAAU1N,EAAM0rG,mBAAmB,CACnE,CAAC,EAGD1rG,EAAM5gC,IAAI,oBAAqB,SAASX,EAAOC,GAC3C,GAAGwrI,EAAiBmF,qBAAqB5wI,EAAOC,CAAO,EACnDshC,EAAM,yCAA2CmqG,GAAS,CAElE,CAAC,EAkDDnqG,EAAM5gC,IAAI,gBAAiB,SAASX,EAAOC,EAAS4wI,EAAWlG,GAC3D,GAAGA,GAAgBA,EAAajzH,OAASizH,EAAajzH,MAAM10B,OAAS,EAAE,CACnEu+C,EAAM0xF,gBAAgBluF,KAAK,GAAGtT,MAAM,EAGpC0iG,EAAYqI,yBAAyBqU,EAAUr8H,MAAM,EACrDtxB,QAAQypB,QAAQg+H,EAAajzH,MAAO,SAASnI,GAIzC,IACI5nB,EAAGnE,KAAK+9C,EAAMkpG,gBAAgBl7H,EAAMgyB,EAAM0zF,aAAa,GAClD1zF,EAAMkpG,kBAAoBlpG,EAAMmvF,wBACjC/oI,EAAGnE,KAAK+9C,EAAMmvF,uBAAuBnhH,EAAMgyB,EAAM0zF,aAAa,CAAC,CAAE,EAAEhwI,KAAK,WACpEs8C,EAAM,4BAA8BmqG,GAAS,CACjD,CAAC,CAGT,CAFC,MAAM1qI,GACH+iD,EAAK/iD,MAAMA,CAAK,CACpB,CACJ,CAAC,EACD6vI,EAAU1vI,eAAe,EACzB0vI,EAAU3sG,gBAAgB,CAE9B,MACIxmC,EAAS,WACL6jC,EAAM,4BAA8BmqG,GAAS,CACjD,EAAG,CAAC,CAEZ,CAAC,EAGDnqG,EAAMuuG,uBAAyB,MAE/B5sJ,QAAQ+c,QAAQxd,MAAM,EAAEo+C,GAAG,OAAQ,WAC/BU,EAAMuuG,uBAAyB,MAC/BvuG,EAAMyuF,SAAW,KACrB,CAAC,EAEDzuF,EAAMsuG,qBAAuB,WACzB,IAAItQ,EAEJ,GAAGuM,EAA8BpuI,EAASwZ,OAAO40H,CAA4B,EAE7E,IAAIvM,EAAapL,EAAYqB,oBAAoB,KAAOvgI,WAAasqI,EAAW37D,aAAeriC,EAAM0xF,gBAAgBluF,KAAK,GACtH0mG,EAAiBoE,qBAAqB3sJ,QAAQ+c,QAAQs/H,CAAU,CAAC,OAC/DkM,EAAiBoE,qBAAqB,EAG5C,GAAGtuG,EAAMuuG,uBAAwBhE,EAA+BpuI,EAAS6jC,EAAMsuG,qBAAsB,GAAG,CAC5G,EAEA3E,EAAW,WAEP,GAAG,CAAC3pG,EAAMyuF,SAAS,CACfzuF,EAAMuuG,uBAAyB,MAC/B,MACJ,CAEA,GAAG,CAACvuG,EAAMuuG,uBAAuB,CAC7BvuG,EAAMuuG,uBAAyB,KAC/BvuG,EAAMvrB,OAAO,WACTurB,EAAMsuG,qBAAqB,CAC/B,CAAC,CACL,CACJ,EACAtuG,EAAM0xF,gBAAgBruH,KAAKi8B,GAAG,UAAWqqG,CAAQ,EACjD3pG,EAAM0xF,gBAAgBluF,KAAKlE,GAAG,UAAWqqG,CAAQ,EAEjDC,EAAS,WACL5pG,EAAMuuG,uBAAyB,KACnC,EACAvuG,EAAM0xF,gBAAgBruH,KAAKi8B,GAAG,QAASsqG,CAAM,EAC7C5pG,EAAM0xF,gBAAgBluF,KAAKlE,GAAG,QAASsqG,CAAM,EAE7CC,EAAY,SAASprI,EAAOs/B,GAIxB,GAAI60F,EAAYrO,aAAc,CAC1B,IAAIyZ,EAAapL,EAAYrO,aAAa,EAI1C,GAAIqO,EAAYqB,oBAAoB,GAAKrB,EAAYqB,oBAAoB,EAAEnzD,SAASrmE,YAAY,IAAM,IAAK,CAEvG,GAAIujI,EAAW/sH,MAAMvS,QAAQiiE,WAAa,GACtCq9D,EAAW/sH,MAAMvS,QAAQkwE,YAAYntF,SAAWu8I,EAAWhtH,IAAI6pC,OAG/D+3E,EAAY+B,yBAAyB/B,EAAYqB,oBAAoB,CAAC,EAE1E,GAAI+J,EAAW/sH,MAAMvS,QAAQiiE,WAAa,GACtCq9D,EAAW/sH,MAAM4pC,SAAW,EAG5B+3E,EAAYsJ,0BAA0BtJ,EAAYqB,oBAAoB,CAAC,CAE/E,CACJ,CAEA,GAAGl2F,EAAWp8C,QAAQohB,OAAOtE,EAAOs/B,CAAS,EAC7CiC,EAAMvrB,OAAO,WACT,GAAGy1H,EAAiB5B,eAAe7pI,CAAK,EAAE,CAEtC,GAAG,CAACuhC,EAAMuuG,uBACNvuG,EAAMsuG,qBAAqB,EAE/B7vI,EAAMmB,eAAe,EACrB,OAAO,KACX,CACJ,CAAC,CACL,EACAogC,EAAM0xF,gBAAgBruH,KAAKi8B,GAAG,WAAYuqG,CAAS,EACnD7pG,EAAM0xF,gBAAgBluF,KAAKlE,GAAG,WAAYuqG,CAAS,EAEnDC,EAAW,WAEP9pG,EAAMuuG,uBAAyB,MAK/BpyI,EAAS,WAAa6jC,EAAMsuG,qBAAqB,CAAG,EAAG,CAAC,CAC5D,EACAtuG,EAAM0xF,gBAAgBruH,KAAKi8B,GAAG,UAAWwqG,CAAQ,EACjD9pG,EAAM0xF,gBAAgBluF,KAAKlE,GAAG,UAAWwqG,CAAQ,CACrD,CACJ,CACJ,EACH,EACDN,EAAY3/F,QAAQ,qBAAsB,CAAC,sBAAuB,UAAW,iBAAkB,YAAa,aAAc,OACtH,SAAS0lG,EAAqB7tJ,EAASixI,EAAgB50H,EAAWzI,EAAYktD,GAI9E,IAAIgtF,EAAW,GAAIC,EAAU,GAG7B,IAAIC,EAAyB,EAC7B,IAAIC,EAAe,SAAS7S,GACxBn7I,QAAQypB,QAAQqkI,EAAS,SAASlV,GAC9BA,EAAOqV,gBAAgBtB,qBAAqBxR,CAAe,CAC/D,CAAC,CACL,EACA,IAAI+S,EAAkB,GACtB,IAAIC,EACJ,IAAIC,EAA2B,WAC3BL,EAAyB9rJ,KAAKD,IAAI,EAElCmsJ,EAAuB/xI,EAAU,WAC7B4xI,EAAa,EACbG,EAAuBp8I,SAC3B,EAAGm8I,EAAiB,CAAC,CACzB,EAEAv6I,EAAW8J,IAAI,UAAW,WACtB,GAAI0wI,EAAsB,CACtB/xI,EAAU4X,OAAOm6H,CAAoB,EACrCA,EAAuBp8I,SAC3B,CACJ,CAAC,EACD,IAAIs8I,EAAoB,WACpB,GAAIp5I,KAAKopE,IAAIp8E,KAAKD,IAAI,EAAI+rJ,CAAsB,EAAIG,EAEhDE,EAAyB,CAEjC,EAGA,MAAO,CAEHlB,eAAgB,SAASoB,EAAY3e,EAAa4e,GAI9C,GAAG,CAACD,GAAcA,IAAe,GAAI,KAAK,+CAC1C,GAAG,CAAC3e,EAAa,KAAK,gDACtB,GAAGme,EAAQQ,GAAa,KAAM,2CAA6CA,EAAa,mBACxFR,EAAQQ,GAAc,CAClBjwG,MAAOsxF,EACPke,SAAUU,EAEVC,cAAe,GACfC,sBAAuB,SAASC,GAE5B,GAAG9nJ,KAAKinJ,SAAS7/I,QAAQ0gJ,EAAarnJ,IAAI,GAAK,EAE3CT,KAAK4nJ,cAAcvmJ,KAAKymJ,CAAY,CAE5C,EAEAT,gBAAiB,CACbh6D,QAAS,WAELj0F,QAAQypB,QAAQqkI,EAAQQ,GAAYE,cAAe,SAASE,GACxDA,EAAa1qG,SAAW,IAC5B,CAAC,CACL,EACA2qG,OAAQ,WAEJ3uJ,QAAQypB,QAAQqkI,EAAQQ,GAAYE,cAAe,SAASE,GACxDA,EAAa1qG,SAAW,KAC5B,CAAC,CACL,EACAzV,MAAO,WAEHvuC,QAAQypB,QAAQqkI,EAAQQ,GAAYE,cAAe,SAASE,GACxDA,EAAa3H,QAAUpX,EACvB+e,EAAa1qG,SAAW,MACxB0qG,EAAa5hB,SAAW,IAC5B,CAAC,EACD6C,EAAY7C,SAAW,IAC3B,EACA+f,QAAS,WAEL7sJ,QAAQypB,QAAQqkI,EAAQQ,GAAYE,cAAe,SAASE,GACxDA,EAAa1qG,SAAW,KACxB0qG,EAAa5hB,SAAW,KAC5B,CAAC,EACD6C,EAAY7C,SAAW,KAC3B,EACA6f,qBAAsB,SAASxR,GAE3Bn7I,QAAQypB,QAAQqkI,EAAQQ,GAAYE,cAAe,SAASE,GACxD1uJ,QAAQypB,QAAQilI,EAAaE,MAAO,SAASC,GACzC,GAAGA,EAAUnd,YAAY,CACrBgd,EAAa3H,QAAUpX,EAEvBkf,EAAUz2G,OAASy2G,EAAUnd,YAAYyJ,CAAe,CAC5D,CACJ,CAAC,CACL,CAAC,CACL,EACAwL,eAAgB,SAAS7pI,GAErB,IAAIxa,EAAS,MACb,GAAGwa,EAAMkiF,SAAWliF,EAAMoiF,SAAWpiF,EAAM0kI,WAAYxhJ,QAAQypB,QAAQ1pB,EAAS,SAAS+uJ,EAAMznJ,GAC3F,GAAGynJ,EAAK7c,iBAAmB6c,EAAK7c,iBAAmBn1H,EAAM6iB,OAASmvH,EAAK7c,iBAAmBn1H,EAAM0kI,YAC5F,IAAI,IAAInE,EAAK,EAAGA,EAAKyQ,EAAQQ,GAAYE,cAAc1uJ,OAAQu9I,CAAE,GAC7D,GAAGyQ,EAAQQ,GAAYE,cAAcnR,GAAIuR,MAAMvnJ,KAAU0K,UAAU,CAC/D67I,EAAoBx5H,KAAK05H,EAAQQ,GAAYE,cAAcnR,GAAIuR,MAAMvnJ,GAAOsoI,CAAW,EACvFrtI,EAAS,KACT,KACJ,CAGZ,CAAC,EACD,OAAOA,CACX,EACAorJ,qBAAsB,SAAS5wI,EAAOC,GAIlC,IAAIgyI,EAAkB,SAAS3Y,EAAU53F,GACrC,IAAIl8C,EAAS,KACb,IAAI,IAAII,EAAI,EAAGA,EAAI87C,EAAM1+C,OAAQ4C,CAAC,GAAIJ,EAASA,GAAU8zI,EAAS1iH,KAAK8qB,EAAM97C,EAAE,EAC/E,OAAOJ,CACX,EACA,IAAI0sJ,EAAc,GAClB,IAAIC,EAAkB,GACtB,IAAI3sJ,EAAS,MACbya,EAAU/c,QAAQ+c,QAAQA,CAAO,EAEjC,IAAImyI,EAAsB,MAC1BlvJ,QAAQypB,QAAQ1pB,EAAS,SAAS+uJ,EAAMznJ,GACpC,GACIynJ,EAAK5b,iBACL4b,EAAK5b,gBAAgBn2H,SACrB+xI,EAAK5b,gBAAgBn2H,QAAQjE,YAAY,IAAMiE,EAAQ,GAAGo0G,QAAQr4G,YAAY,IAC7E,CAACg2I,EAAK5b,gBAAgBtuI,QAAUkqJ,EAAK5b,gBAAgBtuI,OAAOmY,CAAO,GACvE,CAEGmyI,EAAsBA,GACjBlvJ,QAAQ08B,QAAQoyH,EAAK5b,gBAAgBE,aAAa,GAAK2b,EAAgBhyI,EAAS+xI,EAAK5b,gBAAgBE,aAAa,EACvH,GAAG,CAAC0b,EAAK5b,gBAAgBE,eAAiB2b,EAAgBhyI,EAAS+xI,EAAK5b,gBAAgBE,aAAa,EAAG6b,EAAgB5nJ,GAAQynJ,CACpI,CACJ,CAAC,EAED,GAAGI,EAAoB,CACnBlvJ,QAAQypB,QAAQwlI,EAAiB,SAASH,EAAMznJ,GAC5C,GAAGynJ,EAAK5b,gBAAgBE,eAAiB2b,EAAgBhyI,EAAS+xI,EAAK5b,gBAAgBE,aAAa,EAAG4b,EAAY/mJ,KAAK,CAAC,KAAQZ,EAAM,KAAQynJ,CAAI,CAAC,CACxJ,CAAC,EAEDE,EAAY9mJ,KAAK,SAASpC,EAAE26B,GACxB,OAAOA,EAAEquH,KAAK5b,gBAAgBE,cAActzI,OAASgG,EAAEgpJ,KAAK5b,gBAAgBE,cAActzI,MAC9F,CAAC,CACL,MACIE,QAAQypB,QAAQwlI,EAAiB,SAASH,EAAMznJ,GAC5C2nJ,EAAY/mJ,KAAK,CAAC,KAAQZ,EAAM,KAAQynJ,CAAI,CAAC,CACjD,CAAC,EAGL,GAAGE,EAAYlvJ,OAAS,EACpB,IAAI,IAAI63E,EAAK,EAAGA,EAAKq3E,EAAYlvJ,OAAQ63E,CAAE,GAAG,CAC1C,IAAIm3E,EAAOE,EAAYr3E,GAAIm3E,KAC3B,IAAIznJ,EAAO2nJ,EAAYr3E,GAAItwE,KAC3B,IAAI,IAAIg2I,EAAK,EAAGA,EAAKyQ,EAAQQ,GAAYE,cAAc1uJ,OAAQu9I,CAAE,GAC7D,GAAGyQ,EAAQQ,GAAYE,cAAcnR,GAAIuR,MAAMvnJ,KAAU0K,UAAU,CAC/D+8I,EAAK5b,gBAAgB1M,OAAOpyG,KAAK05H,EAAQQ,GAAYE,cAAcnR,GAAIuR,MAAMvnJ,GAAOyV,EAAOC,EAAS4yH,CAAW,EAC/GrtI,EAAS,KACT,KACJ,CAEJ,GAAGA,EAAQ,KACf,CAEJ,OAAOA,CACX,CACJ,CACJ,EACAtC,QAAQypB,QAAQ8kI,EAAgB,SAASpwF,GACrC,GAAG0vF,EAAS1vF,GACR2vF,EAAQQ,GAAYE,cAAcvmJ,KAAK4lJ,EAAS1vF,EAAM,CAG9D,CAAC,EACDkwF,EAAkB,EAClB,OAAOP,EAAQQ,GAAYL,eAC/B,EAEAkB,eAAgB,SAAS9nJ,GACrB,OAAOymJ,EAAQzmJ,EACnB,EACAomJ,iBAAkB,SAASpmJ,GACvB,OAAOymJ,EAAQzmJ,GACfgnJ,EAAkB,CACtB,EAEAe,gBAAiB,SAASV,GACtB,GAAG,CAACA,EAAc,KAAK,gDACvB,GAAG,CAACA,EAAarnJ,MAAQqnJ,EAAarnJ,OAAS,GAAI,KAAK,+CACxD,GAAGwmJ,EAASa,EAAarnJ,MAAO,KAAM,2CAA6CqnJ,EAAarnJ,KAAO,mBACvGwmJ,EAASa,EAAarnJ,MAAQqnJ,EAI9B1uJ,QAAQypB,QAAQqkI,EAAS,SAASjV,GAC9BA,EAAQ4V,sBAAsBC,CAAY,CAC9C,CAAC,EACDL,EAAkB,CACtB,EAEAgB,gBAAiB,SAAShoJ,GACtB,OAAOwmJ,EAASxmJ,EACpB,EAEAioJ,0BAA2B,SAASjoJ,GAChC,IAAI/E,EAAS,GAAIi4E,EAAQ3zE,KACzB5G,QAAQypB,QAAQ7iB,KAAKuoJ,eAAe9nJ,CAAI,EAAEwmJ,SAAU,SAASxmJ,GACzD/E,EAAO2F,KAAKsyE,EAAM80E,gBAAgBhoJ,CAAI,CAAC,CAC3C,CAAC,EACD,OAAO/E,CACX,EACAitJ,kBAAmB,SAASloJ,GACxB,OAAOwmJ,EAASxmJ,GAChBgnJ,EAAkB,CACtB,EAEAmB,mBAAoB,SAASC,GAEzB,IAAIl1E,EAAQ3zE,KACZ5G,QAAQypB,QAAQgmI,EAAY,SAASC,EAAUjhJ,GAC3C8rE,EAAMo1E,kBAAkBlhJ,EAAKihJ,CAAQ,CACzC,CAAC,CACL,EAEAE,kBAAmB,WACf,IAAIr1E,EAAQ3zE,KACZ5G,QAAQypB,QAAQ1pB,EAAS,SAAS2vJ,EAAUjhJ,GACxC8rE,EAAMs1E,iBAAiBphJ,CAAG,CAC9B,CAAC,EACD4/I,EAAkB,CACtB,EAEAsB,kBAAmB,SAASG,EAASJ,GACjC,IAAIn1E,EAAQ3zE,KACZ5G,QAAQypB,QAAQokI,EAAU,SAASa,EAAcqB,GAC7Cx1E,EAAMy1E,yBAAyBD,EAAYD,EAASJ,CAAQ,CAChE,CAAC,EACDrB,EAAkB,CACtB,EAEAwB,iBAAkB,SAASC,GACvB,IAAIv1E,EAAQ3zE,KACZ5G,QAAQypB,QAAQokI,EAAU,SAASa,EAAcqB,GAC7Cx1E,EAAM01E,wBAAwBF,EAAYD,CAAO,CACrD,CAAC,EACDzB,EAAkB,CACtB,EAEA2B,yBAA0B,SAASD,EAAYD,EAASJ,GACpD,GAAG7B,EAASkC,GAAalC,EAASkC,GAAYJ,kBAAkBG,EAASJ,CAAQ,OAC5E,KAAM,4CAA8CK,EAAa,UAC1E,EAEAE,wBAAyB,SAASF,EAAYD,GAC1C,GAAGjC,EAASkC,GAAalC,EAASkC,GAAYJ,kBAAkBG,EAAS/vJ,EAAQ+vJ,GAAU,IAAI,OAC1F,KAAM,4CAA8CC,EAAa,UAC1E,EAEAG,WAAY,SAASJ,GACjB,OAAO/vJ,EAAQ+vJ,GACf9vJ,QAAQypB,QAAQokI,EAAU,SAASa,GAC/B,OAAOA,EAAaE,MAAMkB,GAC1B,IAAI,IAAIptJ,EAAI,EAAGA,EAAIgsJ,EAAa9hB,QAAQ9sI,OAAQ4C,CAAC,GAAG,CAChD,IAAIytJ,EACJ,IAAI,IAAI18I,EAAI,EAAGA,EAAIi7I,EAAa9hB,QAAQlqI,GAAG5C,OAAQ2T,CAAC,GAAG,CACnD,GAAGi7I,EAAa9hB,QAAQlqI,GAAG+Q,KAAOq8I,EAAQ,CACtCK,EAAe,CACXC,MAAO1tJ,EACPuvB,MAAOxe,CACX,EACA,KACJ,CACA,GAAG08I,IAAiBp+I,UAAW,KACnC,CACA,GAAGo+I,IAAiBp+I,UAAU,CAC1B28I,EAAa9hB,QAAQujB,EAAaC,OAAO5xI,MAAM2xI,EAAal+H,MAAO,CAAC,EACpEy8H,EAAa2B,UAAU3uG,SAAS,EAAEsiC,GAAGmsE,EAAaC,KAAK,EAAE1uG,SAAS,EAAEsiC,GAAGmsE,EAAal+H,KAAK,EAAE/U,OAAO,CACtG,CACJ,CACJ,CAAC,EACDmxI,EAAkB,CACtB,EAEAiC,QAAS,SAASR,EAASvjB,EAAgB6jB,EAAOn+H,GAC9C++G,EAAe8e,EAASvjB,CAAc,EACtCvsI,QAAQypB,QAAQokI,EAAU,SAASa,GAC/BA,EAAa4B,QAAQR,EAASvjB,EAAgB6jB,EAAOn+H,CAAK,CAC9D,CAAC,EACDo8H,EAAkB,CACtB,EAEAkC,iBAAkB,SAAST,EAASvjB,EAAgBwjB,EAAYK,EAAOn+H,GACnE++G,EAAe8e,EAASvjB,CAAc,EACtCshB,EAASkC,GAAYO,QAAQR,EAASvjB,EAAgB6jB,EAAOn+H,CAAK,EAClEo8H,EAAkB,CACtB,EAGAmC,cAAe,SAASnpJ,GACpB,GAAGymJ,EAAQzmJ,GAAM,CACbymJ,EAAQzmJ,GAAMg3C,MAAMwxF,0BAA0B,EAE9C,GAAG,CAACie,EAAQzmJ,GAAMg3C,MAAMoyG,QAAS3C,EAAQzmJ,GAAMg3C,MAAMqyG,QAAQ,CACjE,MAAM,KAAM,2CAA6CrpJ,EAAO,WAChEgnJ,EAAkB,CACtB,EAEA1H,eAAgB,SAAStoG,EAAOvhC,GAC5B,IAAI+7H,EAAUiV,EAAQzvG,EAAM8f,OAE5B,GAAI06E,GAAWA,EAAQoV,gBAAgBtH,eAAe7pI,CAAK,EAAG,CAE1D,GAAG,CAACuhC,EAAMuuG,uBACNvuG,EAAMsuG,qBAAqB,EAE/B7vI,EAAMmB,eAAe,EACrB,OAAO,KACX,CACJ,EAOA+vI,aAAcA,EAEd2C,WAAY,WAAc,OAAOhd,CAAoB,EAErDid,iBAAkB,WACd,IAAInlE,EAAI,GACRzrF,QAAQypB,QAAQqkI,EAAS,SAAUjV,GAC/BptD,EAAMA,EAAI54E,OAAOgmI,EAAQ2V,aAAa,CAC1C,CAAC,EACD,OAAO/iE,CACX,CAkBJ,CACJ,EAAE,EACFo8D,EAAY5oG,UAAU,qBAAsB,CACxC,WAAY,qBAAsB,YAAa,UAAW,sBAAuB,UACjF,SAASmB,EAAUw/F,EAAoBxO,EAAWrxI,EAAS6tJ,EAAqB91I,GAC5E,MAAO,CACHumC,MAAO,CACHh3C,KAAM,GACV,EACA+2C,SAAU,KACVG,KAAM,SAASF,EAAOthC,EAASyhC,GAC3B,GAAG,CAACH,EAAMh3C,MAAQg3C,EAAMh3C,OAAS,GAAI,KAAK,+CAC1CrH,QAAQohB,OAAOi9B,EAAOr+C,QAAQqB,KAAK+vI,CAAS,CAAC,EAC7C,GAAG5yF,EAAM4uG,UAAgB/uG,EAAMuuF,QAAUvuF,EAAMnpB,QAAQ+pH,MAAMzgG,EAAM4uG,SAAS,EAC5E,GAAG5uG,EAAM6uG,eAAmBhvG,EAAMwuF,QAAQD,QAAUpuF,EAAM6uG,eAC1D,GAAG7uG,EAAM8uG,oBAAuBjvG,EAAMwuF,QAAQE,aAAevuF,EAAM8uG,oBACnE,GAAG9uG,EAAM+uG,qBAAwBlvG,EAAMwuF,QAAQG,cAAgBxuF,EAAM+uG,qBACrE,GAAG/uG,EAAMgvG,2BAA4BnvG,EAAMwuF,QAAQI,oBAAsBzuF,EAAMgvG,2BAC/E,GAAGhvG,EAAMyqG,gBAAoB5qG,EAAMwuF,QAAQC,SAAWtuF,EAAMyqG,gBAE5D5qG,EAAM2F,SAAW,KACjB3F,EAAMyuF,SAAW,MACjBzuF,EAAMgyG,UAAYtzI,EAClBA,EAAQ,GAAG1C,UAAY,GACvB0C,EAAQ8uC,SAAS,cAAgBxN,EAAMwuF,QAAQD,OAAO,EAEtDvuF,EAAM/2C,OAAO,WAAY,WACrB,GAAG+2C,EAAMyuF,SAAU/vH,EAAQ8uC,SAASxN,EAAMwuF,QAAQC,QAAQ,OACrD/vH,EAAQiB,YAAYqgC,EAAMwuF,QAAQC,QAAQ,CACnD,CAAC,EAED,IAAI+jB,EAAmB,SAAStkB,EAAgBsiB,GAC5C,IAAIiC,EACJ,GAAGvkB,GAAkBA,EAAe/zC,QAChCs4D,EAAc9wJ,QAAQ+c,QAAQwvH,EAAe/zC,OAAO,OAEnDs4D,EAAc9wJ,QAAQ+c,QAAQ,wBAAwB,EAE3D,GAAGwvH,GAAkBA,EAAe,SAAUukB,EAAYjlG,SAAS0gF,EAAe,QAAQ,OACrFukB,EAAYjlG,SAASxN,EAAMwuF,QAAQG,aAAa,EAErD8jB,EAAYp9H,KAAK,OAAQm7H,EAAUxnJ,IAAI,EAEvCypJ,EAAYp9H,KAAK,YAAa,WAAW,EACzCo9H,EAAYp9H,KAAK,cAAe,cAAc,EAC9Co9H,EAAYp9H,KAAK,WAAY,IAAI,EACjCo9H,EAAYp9H,KAAK,WAAY,iBAAiB,EAC9Co9H,EAAYp9H,KAAK,WAAY,gCAAgC,EAE7D,GAAI64G,GAAkBA,EAAegF,YACjCuf,EAAYp9H,KAAK,QAAS64G,EAAegF,WAAW,EAExD,GAAGhF,GAAkB,CAACA,EAAe/zC,SAAW,CAACq2D,EAAUkC,SAAS,CAEhED,EAAY,GAAGz2I,UAAY,GAE3B,GAAGkyH,EAAeC,WAAYskB,EAAY,GAAGz2I,UAAYkyH,EAAeC,WAExE,GAAGD,EAAeE,UAAU,CACxB,IAAIukB,EAAOhxJ,QAAQ+c,QAAQ,KAAK,EAAGsjC,EAAUywG,EAAY,GAAGz2I,UAC5D22I,EAAKnlG,SAAS0gF,EAAeE,SAAS,EACtCqkB,EAAY,GAAGz2I,UAAY,GAC3By2I,EAAYl9H,OAAOo9H,CAAI,EACvB,GAAG3wG,GAAWA,IAAY,GAAIywG,EAAYl9H,OAAO,SAAWysB,CAAO,CACvE,CACJ,CAEAwuG,EAAUoC,oBAAsBjxJ,QAAQqB,KAAKkrI,CAAc,EAE3D,OAAOnsF,EAAS0wG,CAAW,EAAEjC,CAAS,CAC1C,EAGAxwG,EAAMuwG,MAAQ,GAGdvwG,EAAM0oG,QAAU,CACZ/iG,SAAU,KACV2tF,SAAU,MACVE,sBAAuB,WAAY,OAAO,KAAO,EACjDG,kBAAmB,WAAY,OAAO,KAAO,CACjD,EACA,IAAIkf,EAAoB,CACpBp5I,QAASA,EACT05H,QAAS,WAEL,OAAOnzF,EAAM0oG,OACjB,EACA7jG,WAAY,WAER,GAAIt8C,KAAKS,OAAS,QAAUg3C,EAAM0oG,QAAQjO,YACtC,OAAO,MAGX,OAEK,OAAOlyI,KAAKq4I,MAAM,UAAU,IAAM,YAAcr4I,KAAKq4I,MAAM,UAAU,GAAMr4I,KAAKq4I,MAAM,YAAY,GAElGr4I,KAAKS,OAAS,QAAUT,KAAK4qI,QAAQ,EAAEG,UAExC/qI,KAAKsuB,QAAQ8uB,UAEbp9C,KAAK4qI,QAAQ,EAAExtF,QAEvB,EACAmtG,uBAAwB,SAAS/4G,GAC7B,OAAO,EAAUiG,EAAMwuF,QAAQI,oBAAsB,EACzD,EACAmkB,cAAexD,CACnB,EAEA5tJ,QAAQypB,QAAQ40B,EAAMuuF,QAAS,SAASwjB,GAEpC,IAAIiB,EAAerxJ,QAAQ+c,QAAQ,OAAO,EAC1Cs0I,EAAaxlG,SAASxN,EAAMwuF,QAAQE,YAAY,EAChD/sI,QAAQypB,QAAQ2mI,EAAO,SAAStB,GAK5BzwG,EAAMuwG,MAAME,GAAQ9uJ,QAAQohB,OAAOi9B,EAAMizG,KAAK,IAAI,EAAGvxJ,EAAQ+uJ,GAAOoC,EAAmB,CAAC7pJ,KAAMynJ,CAAI,CAAC,EACnGzwG,EAAMuwG,MAAME,GAAMxhB,SAAWujB,EAAiB9wJ,EAAQ+uJ,GAAOzwG,EAAMuwG,MAAME,EAAK,EAE9EuC,EAAaz9H,OAAOyqB,EAAMuwG,MAAME,GAAMxhB,QAAQ,CAClD,CAAC,EAEDvwH,EAAQ6W,OAAOy9H,CAAY,CAC/B,CAAC,EAMDhzG,EAAMsxG,kBAAoB,SAASlhJ,EAAKihJ,EAAU6B,GAC9C,IAAIC,EAAenzG,EAAMuwG,MAAMngJ,GAC/B,GAAG+iJ,EAAa,CAEZ,GAAGA,EAAaP,qBAAuB,CAACM,EAAU7B,EAAW1vJ,QAAQohB,OAAO,GAAIowI,EAAaP,oBAAqBvB,CAAQ,EAC1H,GAAGA,EAASljB,aAAe,MAAQkjB,EAASjjB,YAAc,MAAQijB,EAASl3D,UAAY,KACnF,KAAM,oDAAsD/pF,EAAM,6DAGtE,GAAGihJ,EAASljB,aAAe,KACvB,OAAOkjB,EAASljB,WAEpB,GAAGkjB,EAASjjB,YAAc,KACtB,OAAOijB,EAASjjB,UAEpB,GAAGijB,EAASl3D,UAAY,KACpB,OAAOk3D,EAASl3D,QAGpB,IAAIs4D,EAAcD,EAAiBnB,EAAU8B,CAAY,EACzDA,EAAalkB,SAASlrC,YAAY0uD,CAAW,EAC7CU,EAAalkB,SAAWwjB,CAC5B,CACJ,EAGAzyG,EAAMiyG,QAAU,SAAS7hJ,EAAKihJ,EAAU+B,EAAYx/H,GAChDosB,EAAMuwG,MAAMngJ,GAAOzO,QAAQohB,OAAOi9B,EAAMizG,KAAK,IAAI,EAAGvxJ,EAAQ0O,GAAMyiJ,EAAmB,CAAC7pJ,KAAMoH,CAAG,CAAC,EAChG4vC,EAAMuwG,MAAMngJ,GAAK6+H,SAAWujB,EAAiB9wJ,EAAQ0O,GAAM4vC,EAAMuwG,MAAMngJ,EAAI,EAC3E,IAAI2hJ,EACJ,GAAGqB,IAAe1/I,UAAW0/I,EAAapzG,EAAMuuF,QAAQ9sI,OAAS,EACjEswJ,EAAQpwJ,QAAQ+c,QAAQA,EAAQ2kC,SAAS,EAAE+vG,EAAW,EAEtD,GAAGx/H,IAAUlgB,UAAU,CACnBq+I,EAAMx8H,OAAOyqB,EAAMuwG,MAAMngJ,GAAK6+H,QAAQ,EACtCjvF,EAAMuuF,QAAQ6kB,GAAYpzG,EAAMuuF,QAAQ6kB,GAAY3xJ,OAAS,GAAK2O,CACtE,KAAK,CACD2hJ,EAAM1uG,SAAS,EAAEsiC,GAAG/xD,CAAK,EAAEy5B,MAAMrN,EAAMuwG,MAAMngJ,GAAK6+H,QAAQ,EAC1DjvF,EAAMuuF,QAAQ6kB,GAAYx/H,GAASxjB,CACvC,CACJ,EAEAmxI,EAAmBwP,gBAAgB/wG,CAAK,EAExCA,EAAM5gC,IAAI,WAAY,WAClBmiI,EAAmB2P,kBAAkBlxG,EAAMh3C,IAAI,CACnD,CAAC,CACL,CACJ,CACJ,EACH,EACDwgJ,EAAY5oG,UAAU,qBAAsB,CAAC,qBACzC,SAAS2gG,GACL,IAAI31B,EAAU21B,EAAmB+Q,WAAW,EAC5C,MAAO,CACHvyG,SAAU,KACVG,KAAM,SAAUF,EAAOthC,EAASyhC,GAC5BzhC,EAAQ2E,KAAKuoG,CAAO,CACxB,CACJ,CACJ,EACH,EAEM49B,EAAYxgJ,IAEnB,EA7rKiD8kI,CAAK,CACjD,4B,6DCLL,kCAC6B,aAAhB,OAAOxlI,MAAwBA,MAChCpH,OACRguC,EAAQikC,SAASr9C,UAAUoZ,MAiB/B,SAASmkH,EAAQ/yJ,EAAIgzJ,GACnB/qJ,KAAK2M,IAAM5U,EACXiI,KAAKgrJ,SAAWD,CAClB,CAhBAryJ,EAAQgmB,WAAa,WACnB,OAAO,IAAIosI,EAAQnkH,EAAMnZ,KAAK9O,WAAY+4B,EAAO7Q,SAAS,EAAG1Z,YAAY,CAC3E,EACAx0B,EAAQ6d,YAAc,WACpB,OAAO,IAAIu0I,EAAQnkH,EAAMnZ,KAAKjX,YAAakhC,EAAO7Q,SAAS,EAAGjwB,aAAa,CAC7E,EACAje,EAAQw0B,aACRx0B,EAAQie,cAAgB,SAASqtC,GAC3BA,GACFA,EAAQxd,MAAM,CAElB,EAMAskH,EAAQv9H,UAAU09H,MAAQH,EAAQv9H,UAAU29H,IAAM,aAClDJ,EAAQv9H,UAAUiZ,MAAQ,WACxBxmC,KAAKgrJ,SAASx9H,KAAKiqB,EAAOz3C,KAAK2M,GAAG,CACpC,EAGAjU,EAAQyyJ,OAAS,SAASroI,EAAMsoI,GAC9Bl+H,aAAapK,EAAKuoI,cAAc,EAChCvoI,EAAKwoI,aAAeF,CACtB,EAEA1yJ,EAAQ6yJ,SAAW,SAASzoI,GAC1BoK,aAAapK,EAAKuoI,cAAc,EAChCvoI,EAAKwoI,aAAe,CAAC,CACvB,EAEA5yJ,EAAQ8yJ,aAAe9yJ,EAAQ84C,OAAS,SAAS1uB,GAC/CoK,aAAapK,EAAKuoI,cAAc,EAEhC,IAAID,EAAQtoI,EAAKwoI,aACJ,GAATF,IACFtoI,EAAKuoI,eAAiB3sI,WAAW,WAC3BoE,EAAK2oI,YACP3oI,EAAK2oI,WAAW,CACpB,EAAGL,CAAK,EAEZ,EAGA,EAAQ,6CAAc,EAItB1yJ,EAAQ+0E,aAAgC,aAAhB,OAAO1tE,MAAwBA,KAAK0tE,cAClB,SAAX7B,GAA0BA,EAAO6B,cACxCztE,MAAQA,KAAKytE,aACrC/0E,EAAQ+rI,eAAkC,aAAhB,OAAO1kI,MAAwBA,KAAK0kI,gBAClB,SAAX74D,GAA0BA,EAAO64D,gBACxCzkI,MAAQA,KAAKykI,c,qHC9DvC,IAGAinB,EAAI,WACH,OAAO1rJ,IACP,EAAE,EAEH,IAEC0rJ,EAAIA,GAAK,IAAI9gF,SAAS,aAAa,EAAE,CAItC,CAHE,MAAOzyE,GAEc,UAAlB,OAAOQ,SAAqB+yJ,EAAI/yJ,OACrC,CAMAF,EAAOC,QAAUgzJ,C,2DCnBjBjzJ,EAAOC,QAAU,SAASD,GAoBzB,OAnBKA,EAAOkzJ,kBACXlzJ,EAAOmzJ,UAAY,aACnBnzJ,EAAOozJ,MAAQ,GAEVpzJ,EAAOqiD,WAAUriD,EAAOqiD,SAAW,IACxCviD,OAAO4qE,eAAe1qE,EAAQ,SAAU,CACvCqqE,WAAY,GACZhqD,IAAK,WACJ,OAAOrgB,EAAO6R,CACf,CACD,CAAC,EACD/R,OAAO4qE,eAAe1qE,EAAQ,KAAM,CACnCqqE,WAAY,GACZhqD,IAAK,WACJ,OAAOrgB,EAAOqD,CACf,CACD,CAAC,EACDrD,EAAOkzJ,gBAAkB,GAEnBlzJ,CACR,C","file":"main-ecfb3937c5d66998b7d4.chunk.min.js","sourcesContent":["var map = {\n\t\"./views/Login/accountSearch.html\": \"./app/views/Login/accountSearch.html\",\n\t\"./views/Login/changePassword.html\": \"./app/views/Login/changePassword.html\",\n\t\"./views/Login/companyLogin.html\": \"./app/views/Login/companyLogin.html\",\n\t\"./views/Login/landing.html\": \"./app/views/Login/landing.html\",\n\t\"./views/Login/loginErrors.html\": \"./app/views/Login/loginErrors.html\",\n\t\"./views/Login/loginForm.html\": \"./app/views/Login/loginForm.html\",\n\t\"./views/Login/lookupShowCompany.html\": \"./app/views/Login/lookupShowCompany.html\",\n\t\"./views/account.html\": \"./app/views/account.html\",\n\t\"./views/address.html\": \"./app/views/address.html\",\n\t\"./views/addressForm.html\": \"./app/views/addressForm.html\",\n\t\"./views/badgeSelection.html\": \"./app/views/badgeSelection.html\",\n\t\"./views/businessCardDetail.html\": \"./app/views/businessCardDetail.html\",\n\t\"./views/cart.html\": \"./app/views/cart.html\",\n\t\"./views/checkout.html\": \"./app/views/checkout.html\",\n\t\"./views/checkoutOnly.html\": \"./app/views/checkoutOnly.html\",\n\t\"./views/collateral.html\": \"./app/views/collateral.html\",\n\t\"./views/collateralAdd.html\": \"./app/views/collateralAdd.html\",\n\t\"./views/confirmation.html\": \"./app/views/confirmation.html\",\n\t\"./views/dashboard.html\": \"./app/views/dashboard.html\",\n\t\"./views/dataSales.html\": \"./app/views/dataSales.html\",\n\t\"./views/dataSalesMailHouse.html\": \"./app/views/dataSalesMailHouse.html\",\n\t\"./views/dataSalesPreview.html\": \"./app/views/dataSalesPreview.html\",\n\t\"./views/dataSalesSummary.html\": \"./app/views/dataSalesSummary.html\",\n\t\"./views/dataSalesTemplate.html\": \"./app/views/dataSalesTemplate.html\",\n\t\"./views/dataSalesTerms.html\": \"./app/views/dataSalesTerms.html\",\n\t\"./views/documents.html\": \"./app/views/documents.html\",\n\t\"./views/emailCampaigns.html\": \"./app/views/emailCampaigns.html\",\n\t\"./views/emailSurvey.html\": \"./app/views/emailSurvey.html\",\n\t\"./views/event.html\": \"./app/views/event.html\",\n\t\"./views/eventBit.html\": \"./app/views/eventBit.html\",\n\t\"./views/landing.html\": \"./app/views/landing.html\",\n\t\"./views/leadDetail.html\": \"./app/views/leadDetail.html\",\n\t\"./views/leadDetailEditSurvey.html\": \"./app/views/leadDetailEditSurvey.html\",\n\t\"./views/leadDetailEditSurveyQuestion.html\": \"./app/views/leadDetailEditSurveyQuestion.html\",\n\t\"./views/leadFollowUp.html\": \"./app/views/leadFollowUp.html\",\n\t\"./views/leadUpload.html\": \"./app/views/leadUpload.html\",\n\t\"./views/leads.html\": \"./app/views/leads.html\",\n\t\"./views/main.html\": \"./app/views/main.html\",\n\t\"./views/modalTemplate.html\": \"./app/views/modalTemplate.html\",\n\t\"./views/moreInfo.html\": \"./app/views/moreInfo.html\",\n\t\"./views/myShows.html\": \"./app/views/myShows.html\",\n\t\"./views/navLink.html\": \"./app/views/navLink.html\",\n\t\"./views/productDetail.html\": \"./app/views/productDetail.html\",\n\t\"./views/products.html\": \"./app/views/products.html\",\n\t\"./views/recommendation.html\": \"./app/views/recommendation.html\",\n\t\"./views/shared/addtocart.html\": \"./app/views/shared/addtocart.html\",\n\t\"./views/shared/cart.html\": \"./app/views/shared/cart.html\",\n\t\"./views/shared/inputField.html\": \"./app/views/shared/inputField.html\",\n\t\"./views/shared/pager.html\": \"./app/views/shared/pager.html\",\n\t\"./views/shared/summary.html\": \"./app/views/shared/summary.html\",\n\t\"./views/shop.html\": \"./app/views/shop.html\",\n\t\"./views/shopDetail.html\": \"./app/views/shopDetail.html\",\n\t\"./views/survey.html\": \"./app/views/survey.html\",\n\t\"./views/surveyCopy.html\": \"./app/views/surveyCopy.html\",\n\t\"./views/surveyQuestion.html\": \"./app/views/surveyQuestion.html\",\n\t\"./views/surveys.html\": \"./app/views/surveys.html\",\n\t\"./views/upsell.html\": \"./app/views/upsell.html\",\n\t\"./views/videos.html\": \"./app/views/videos.html\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./app sync recursive ^.\\\\/views[//\\\\/]([^//\\\\/]+\\\\/)*[^//\\\\/]+\\\\.html?$/\";","export default __webpack_public_path__ + \"ff7fb7d3ea9a332e08e3ab9cac7ca3e4.png\";","export default __webpack_public_path__ + \"97f88bfce2f52c71ccd314604533e3bf.png\";","export default __webpack_public_path__ + \"a2e7b40a22c9e069faf558980ba712f0.png\";","export default __webpack_public_path__ + \"498bedbe26dfefbfdc62ed100db075e8.png\";","'use strict';\r\n\r\nwindow.getEventCode = function () {\r\n var results = new RegExp(\"^#/event/([_a-zA-Z0-9]*)/.*\").exec(window.location.hash);\r\n return (results && results.length) ? results[1] : '';\r\n};\r\n\r\nwindow.taTools = {};\r\n\r\nangular\r\n .module('exhibitorPortalApp', [\r\n 'mm.foundation',\r\n 'ngSanitize',\r\n 'ui.router',\r\n 'angular-chartist',\r\n 'ngCsv',\r\n 'angular-loading-bar',\r\n 'angularFileUpload',\r\n 'ngCart',\r\n 'ngMessages',\r\n 'ngAria',\r\n 'ngTouch',\r\n 'ipCookie',\r\n 'swapTemplates',\r\n 'ngModal',\r\n require('textangularjs'),\r\n 'sharedModule',\r\n 'ngClickCopy'\r\n ])\r\n .config(function ($stateProvider, $urlRouterProvider, $locationProvider) {\r\n 'ngInject'\r\n $urlRouterProvider\r\n .when('', '/')\r\n .otherwise('/oops');\r\n\r\n //removes hash from the url but royally screws things up with virtual directory so not using for now\r\n //$locationProvider.html5Mode(true);\r\n\r\n // AngularJS 1.6 changed the default hash prefix from empty string to '!'... reverting here so as not to screw up routes.\r\n $locationProvider.hashPrefix('');\r\n\r\n $stateProvider\r\n .state('root', {\r\n abstract: true,\r\n template: '',\r\n controller: function (ShowService, Search, SearchBase, Checkout, CheckoutBase) {\r\n 'ngInject'\r\n //clear the current show\r\n ShowService.data.currentShow = null;\r\n\r\n //reset these values to their initial config\r\n Search.leads = angular.copy(SearchBase.leads);\r\n Search.surveys = angular.copy(SearchBase.surveys);\r\n Search.survey = angular.copy(SearchBase.survey);\r\n Search.resources = angular.copy(SearchBase.resources);\r\n Search.surveyQuestion = angular.copy(SearchBase.surveyQuestion);\r\n Checkout = angular.copy(CheckoutBase);\r\n }\r\n })\r\n .state('root.myShows', {\r\n url: '/',\r\n templateUrl: 'views/myShows.html',\r\n controller: 'MyShowsCtrl',\r\n controllerAs: 'MyShows',\r\n resolve: {\r\n MyEvents: function (ShowService) {\r\n 'ngInject'\r\n return ShowService\r\n .getShows()\r\n .then(function () {\r\n var now = new Date();\r\n var shows = angular.copy(ShowService.data.shows);\r\n\r\n function addDays(date, days) {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n for (var i = 0; i < shows.length; i++) {\r\n shows[i].moveInDateMS = new Date(shows[i].MoveInDate);\r\n\r\n if (shows[i].BeginDate) {\r\n var beginDate = new Date(shows[i].BeginDate);\r\n shows[i].current = beginDate >= addDays(now, -60) && beginDate <= addDays(now, 60);\r\n shows[i].past = beginDate < addDays(now, -60);\r\n shows[i].future = beginDate > addDays(now, 60);\r\n }\r\n }\r\n\r\n return shows;\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Events',\r\n feedbackName: 'ShowList'\r\n }\r\n })\r\n .state('root.account', {\r\n url: '/account',\r\n templateUrl: 'views/account.html',\r\n controller: 'AccountCtrl',\r\n controllerAs: 'account',\r\n data: {\r\n pageTitle: 'Account'\r\n }\r\n })\r\n .state('event', {\r\n abstract: true,\r\n url: '/event/:showcode',\r\n templateUrl: 'views/event.html',\r\n controller: 'SwitchShowCtrl',\r\n controllerAs: 'SwitchShow',\r\n resolve: {\r\n AdditionalInfo: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n if (CurrentEvent.HasActiveSalesTier)\r\n return ShowService\r\n .getShowAdditionalInfo({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.showAdditionalInfo[CurrentEvent.ShowCode];\r\n });\r\n },\r\n CurrentEvent: function ($stateParams, ShowService) {\r\n 'ngInject'\r\n return ShowService\r\n .getShow($stateParams.showcode)\r\n .then(function () {\r\n return ShowService.data.currentShow;\r\n });\r\n },\r\n MyEvents: function (ShowService) {\r\n 'ngInject'\r\n return ShowService\r\n .getShows()\r\n .then(function () {\r\n return ShowService.data.shows;\r\n });\r\n },\r\n HasActivations: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n return ShowService\r\n .hasActivations({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.activations[CurrentEvent.ShowCode];\r\n });\r\n }\r\n }\r\n })\r\n //Check with Rob about the child router.\r\n .state('event.collateral', {\r\n abstract: true,\r\n template: '',\r\n resolve: {\r\n CollateralConfig: function (CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.getCollateralConfig({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return CollateralService.data.collateralConfig[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Collaterals: function (CollateralConfig, CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.data.collaterals[CurrentEvent.ShowCode];\r\n },\r\n ScrollToBottom: function () {\r\n 'ngInject'\r\n return { value: false };\r\n }\r\n }\r\n })\r\n .state('event.collateral.collaterals', {\r\n url: '/collateral',\r\n templateUrl: 'views/collateral.html',\r\n controller: 'CollateralCtrl',\r\n controllerAs: 'collateral',\r\n data: {\r\n feedbackName: 'Collateral'\r\n }\r\n })\r\n .state('event.collateral.collateral', {\r\n url: '/collateral/edit/:id',\r\n templateUrl: 'views/collateralAdd.html',\r\n controller: 'CollateralAddCtrl',\r\n controllerAs: 'collateralAdd',\r\n resolve: {\r\n Collateral: function ($q, $stateParams, CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n if (!$stateParams.id)\r\n return $q.when();\r\n\r\n var collateralId = $stateParams.id;\r\n\r\n return CollateralService.getCollateral({ showCode: CurrentEvent.ShowCode, collateralId: collateralId })\r\n .then(function () {\r\n var collaterals = CollateralService.data.collaterals[CurrentEvent.ShowCode];\r\n return collaterals.filter(function (c) {\r\n return c.CollateralID == collateralId;\r\n })\r\n });\r\n },\r\n SWAPExhibitor: function (UserService, CurrentEvent) {\r\n 'ngInject'\r\n return UserService.getSWAPExhibitor({ showCode: CurrentEvent.ShowCode })\r\n .then(function () { return UserService.data[CurrentEvent.ShowCode].SWAPExhibitor; });\r\n }\r\n },\r\n data: {\r\n feedbackName: 'CollateralAdd'\r\n }\r\n })\r\n .state('event.followUp', {\r\n url: '/followUp',\r\n templateUrl: 'views/leadFollowUp.html',\r\n controller: 'LeadFollowUpCtrl',\r\n controllerAs: 'leadFollowUp',\r\n resolve: {\r\n HTMLTemplate: function (LeadFollowUpService, CurrentEvent) {\r\n 'ngInject'\r\n return LeadFollowUpService.getTemplate({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadFollowUpService.data.templateHtml[CurrentEvent.ShowCode];\r\n });\r\n },\r\n FollowUpConfig: function (LeadFollowUpService, CurrentEvent) {\r\n 'ngInject'\r\n return LeadFollowUpService.getFollowUpConfig({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadFollowUpService.data.followUpConfigs[CurrentEvent.ShowCode];\r\n });\r\n }\r\n },\r\n data: {\r\n feedbackName: 'CollateralAdd'\r\n }\r\n })\r\n .state('event.account', {\r\n url: '/account',\r\n templateUrl: 'views/account.html',\r\n controller: 'AccountCtrl',\r\n controllerAs: 'account',\r\n data: {\r\n pageTitle: 'Account',\r\n feedbackName: 'EventAccount'\r\n }\r\n })\r\n .state('event.dashboard', {\r\n abstract: true,\r\n templateUrl: 'views/dashboard.html',\r\n controllerAs: 'dashboard',\r\n resolve: {\r\n Orders: function (CurrentEvent, OrderService) {\r\n 'ngInject'\r\n return OrderService\r\n .getOrders({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return OrderService.data.orders[CurrentEvent.ShowCode] || [];\r\n });\r\n },\r\n EmailCampaignOrders: function (Orders) {\r\n 'ngInject'\r\n for (var i = 0; i < Orders.length; i++) {\r\n for (var a = 0; a < Orders[i].Transactions.length; a++) {\r\n if (Orders[i].Transactions[a].DataSalesListId && Orders[i].Transactions[a].TransTypeCode === 'PUR' && Orders[i].Transactions[a].TransStatus !== 'VOIDED')\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n EventBitOrders: function (Orders) {\r\n 'ngInject'\r\n for (var i = 0; i < Orders.length; i++) {\r\n for (var a = 0; a < Orders[i].Transactions.length; a++) {\r\n if (Orders[i].Transactions[a].ProductCode === '1500' &&\r\n Orders[i].Transactions[a].TransTypeCode === 'PUR' &&\r\n Orders[i].Transactions[a].TransStatus !== 'VOIDED' &&\r\n !Orders[i].Transactions[a].IsVoided)\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n isSPOT: function (CurrentEvent, EventBitService) {\r\n 'ngInject'\r\n return EventBitService\r\n .isSPOT({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return !!EventBitService.data.isSPOT[CurrentEvent.ShowCode];\r\n });\r\n }\r\n },\r\n controller: function ($state, $scope, EmailCampaignOrders, EventBitOrders, ActiveUserProfile) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.showEmailCampaignsTab = EmailCampaignOrders;\r\n self.showEventBitTab = EventBitOrders;\r\n self.showLeadPrizeTab = true;\r\n\r\n if (!self.showEventBitTab && !self.showEmailCampaignsTab || (ActiveUserProfile.SWAPOnly && !self.showEventBitTab))\r\n self.hide = true;\r\n else {\r\n self.currentState = $state.$current;\r\n self.stateName = self.currentState.name;\r\n\r\n $scope.$watch('currentState', function (newValue, oldValue) {\r\n if (newValue !== oldValue)\r\n self.stateName = newValue;\r\n });\r\n }\r\n }\r\n })\r\n .state('event.landing', {\r\n url: '/',\r\n templateUrl: 'views/landing.html',\r\n redirectTo: 'event.dashboard.landing'\r\n //controller: 'LandingCtrl',\r\n //controllerAs: 'Landing',\r\n //resolve: LandingCtrl.resolve,\r\n //data: {\r\n //\tpageTitle: 'Dashboard'\r\n //}\r\n })\r\n .state('event.dashboard.landing', {\r\n url: '/dashboard/swap',\r\n templateUrl: 'views/landing.html',\r\n controller: 'LandingCtrl',\r\n controllerAs: 'Landing',\r\n resolve: {\r\n AdditionalInfo: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n if (CurrentEvent.HasActiveSalesTier)\r\n return ShowService\r\n .getShowAdditionalInfo({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.showAdditionalInfo[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Surveys: function (CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n\r\n var surveys = [];\r\n\r\n // Get surveys active only\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++) {\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].IsActive) {\r\n var questions = [];\r\n for (var x = 0; x < SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions.length; x++) {\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[x].IsActive) {\r\n questions.push(SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[x]);\r\n }\r\n }\r\n SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions = questions.sort(function (i1, i2) {\r\n return i1.DisplayOrder - i2.DisplayOrder;\r\n });\r\n surveys.push(SurveyService.data.surveys[CurrentEvent.ShowCode][i]);\r\n }\r\n }\r\n\r\n // Sort Surveys\r\n surveys = surveys.sort(function (i1, i2) {\r\n return i1.DisplayOrder - i2.DisplayOrder;\r\n });\r\n\r\n return surveys;\r\n });\r\n },\r\n CurrentSurvey: function (Surveys) {\r\n 'ngInject'\r\n if (Surveys) {\r\n if (Surveys.length > 1) {\r\n return Surveys[1];\r\n } else if (Surveys.length > 0) {\r\n return Surveys[0];\r\n }\r\n }\r\n return null;\r\n },\r\n CurrentSurveyQuestion: function (CurrentSurvey) {\r\n 'ngInject'\r\n if (CurrentSurvey) {\r\n for (var x = 0; x < CurrentSurvey.SurveyQuestions.length; x++) {\r\n if (CurrentSurvey.SurveyQuestions[x].IsActive) {\r\n return CurrentSurvey.SurveyQuestions[x];\r\n }\r\n }\r\n }\r\n return null;\r\n },\r\n DemographicQuestions: function (CurrentEvent, DemographicService) {\r\n 'ngInject'\r\n return DemographicService.getDemographics({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var questions = [];\r\n\r\n for (var i = 0; i < DemographicService.data.demographics[CurrentEvent.ShowCode].length; i++)\r\n if (DemographicService.data.demographics[CurrentEvent.ShowCode][i].TableName == 'RegDemo')\r\n questions.push(DemographicService.data.demographics[CurrentEvent.ShowCode][i]);\r\n\r\n return questions;\r\n });\r\n },\r\n CurrentDemographic: function (DemographicQuestions) {\r\n 'ngInject'\r\n return DemographicQuestions[0];\r\n },\r\n LeadSummaryData: function (CurrentEvent, LeadActivityService) {\r\n 'ngInject'\r\n return LeadActivityService.getLeadSummary({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadActivityService.data.leadSummary[CurrentEvent.ShowCode];\r\n });\r\n },\r\n LeadSourcesChartData: function (CurrentEvent, LeadActivityService) {\r\n 'ngInject'\r\n return LeadActivityService.getLeadSources({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadActivityService.parseChartData(LeadActivityService.data.leadSources[CurrentEvent.ShowCode]);\r\n });\r\n },\r\n LeadDemographicChartData: function (CurrentEvent, CurrentDemographic, LeadActivityService) {\r\n 'ngInject'\r\n if (!CurrentDemographic)\r\n return {\r\n labels: [],\r\n series: []\r\n };\r\n\r\n return LeadActivityService.getLeadsByDemographicQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n fieldDetailId: CurrentDemographic.Id\r\n })\r\n .then(function () {\r\n return LeadActivityService.parseChartData(LeadActivityService.data.leadDemographics[CurrentEvent.ShowCode][CurrentDemographic.Id], 'Other Demographics');\r\n });\r\n },\r\n LeadSurveyChartData: function (CurrentEvent, CurrentSurveyQuestion, LeadActivityService) {\r\n 'ngInject'\r\n if (!CurrentSurveyQuestion)\r\n return {\r\n labels: [],\r\n series: []\r\n };\r\n\r\n return LeadActivityService.getLeadsBySurveyQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n surveyQuestionId: CurrentSurveyQuestion.Id\r\n })\r\n .then(function () {\r\n return LeadActivityService.parseChartData(LeadActivityService.data.leadSurveys[CurrentEvent.ShowCode][CurrentSurveyQuestion.Id], 'Other Survey Questions');\r\n });\r\n },\r\n LeadDaysChartData: function (CurrentEvent, LeadActivityService) {\r\n 'ngInject'\r\n return LeadActivityService.getLeadsByDay({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var data = LeadActivityService.data.leadDays[CurrentEvent.ShowCode],\r\n labels = [],\r\n series = [];\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n labels.push(data[i].Source);\r\n series.push(data[i].Count);\r\n }\r\n\r\n return {\r\n labels: labels,\r\n series: series\r\n };\r\n });\r\n },\r\n HasActivations: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n return ShowService\r\n .hasActivations({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.activations[CurrentEvent.ShowCode];\r\n });\r\n },\r\n LeadCollateral: function (CollateralService, CurrentEvent, HasActivations, $q) {\r\n 'ngInject'\r\n if (HasActivations) {\r\n return CollateralService.getLeadCollateral({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return CollateralService.data.leadCollateral[CurrentEvent.ShowCode].reduce(\r\n function (acc, curr) {\r\n acc[curr.LeadID] = acc[curr.LeadID] || [];\r\n acc[curr.LeadID].push(curr);\r\n return acc;\r\n }, {});\r\n });\r\n } else {\r\n return $q.when({});\r\n }\r\n },\r\n HasPurchasedEventBit: function (Orders) {\r\n 'ngInject'\r\n var EVENT_BIT_PRODUCT_CODE = '1500';\r\n\r\n for (var i = 0; i < Orders.length; i++) {\r\n for (var a = 0; a < Orders[i].Transactions.length; a++) {\r\n if (Orders[i].Transactions[a].ProductCode === EVENT_BIT_PRODUCT_CODE && Orders[i].Transactions[a].TransTypeCode === 'PUR' && Orders[i].Transactions[a].TransStatus !== 'VOIDED')\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n CollateralConfig: function (CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.getCollateralConfig({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return CollateralService.data.collateralConfig[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Collateral: function (CollateralConfig, CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.data.collaterals[CurrentEvent.ShowCode];\r\n },\r\n FollowUpConfig: function (LeadFollowUpService, CurrentEvent) {\r\n 'ngInject'\r\n return LeadFollowUpService.getFollowUpConfig({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadFollowUpService.data.followUpConfigs[CurrentEvent.ShowCode];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'SWAP Dashboard'\r\n }\r\n })\r\n .state('event.dashboard.eventBit', {\r\n url: '/dashboard/eventBit',\r\n templateUrl: 'views/eventBit.html',\r\n controller: 'EventBitCtrl',\r\n controllerAs: 'eventBit',\r\n resolve: {\r\n SSO: function (CurrentEvent, EventBitService) {\r\n 'ngInject'\r\n return EventBitService.getSSO({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return EventBitService.data.sso[CurrentEvent.ShowCode];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'eventBit Dashboard'\r\n }\r\n })\r\n .state('event.dashboard.emailCampaigns', {\r\n url: '/dashboard/attendeeData',\r\n templateUrl: 'views/emailCampaigns.html',\r\n controller: 'EmailCampaignsCtrl',\r\n controllerAs: 'emailCampaigns',\r\n resolve: {\r\n EmailCampaigns: function (CurrentEvent, DataSalesService) {\r\n 'ngInject'\r\n return DataSalesService.getEmailCampaigns({ showCode: CurrentEvent.ShowCode }).then(function () {\r\n return DataSalesService.data.emailCampaigns[CurrentEvent.ShowCode];\r\n });\r\n },\r\n AttendeeListDownloads: function (CurrentEvent, DataSalesService) {\r\n 'ngInject'\r\n return DataSalesService.getAttendeeListDownloads({\r\n showCode: CurrentEvent.ShowCode\r\n }).then(function (data) {\r\n return DataSalesService.data.attendeeListDownloads[CurrentEvent.ShowCode];\r\n });\r\n },\r\n FilterGroup: function () {\r\n 'ngInject'\r\n return function (name) {\r\n this.Name = name;\r\n this.FilterDetails = {};\r\n };\r\n },\r\n FilterDetail: function () {\r\n 'ngInject'\r\n return function (id, description) {\r\n this.Id = String(id);\r\n this.Description = description;\r\n this.FilterPicks = {};\r\n };\r\n },\r\n FilterPick: function () {\r\n 'ngInject'\r\n return function (id, description) {\r\n this.Id = String(id);\r\n this.Description = description;\r\n };\r\n },\r\n Demographics: function ($q, EmailCampaigns, CurrentEvent, DemographicService, FilterGroup, FilterDetail, FilterPick) {\r\n 'ngInject'\r\n return $q.all((function () {\r\n var promises = [];\r\n\r\n for (var i = 0; i < EmailCampaigns.length; i++)\r\n promises.push(DemographicService.getDemographics({ showCode: EmailCampaigns[i].Strategy.TargetShowCode }));\r\n\r\n return promises;\r\n })()).then(function (data) {\r\n var allDemographics = {};\r\n\r\n for (var z = 0; z < data.length; z++) {\r\n if (!allDemographics[EmailCampaigns[z].Strategy.TargetShowCode]) {\r\n var demographics = DemographicService.data.demographics[EmailCampaigns[z].Strategy.TargetShowCode].filter(function (e) {\r\n return e.DataSalesAllowUserFilters;\r\n });\r\n\r\n var filterGroup = new FilterGroup('Demographics');\r\n\r\n for (var i = 0; i < demographics.length; i++) {\r\n var filterDetail = new FilterDetail(demographics[i].FieldName, demographics[i].Description);\r\n\r\n for (var a = 0; a < demographics[i].FieldPicks.length; a++) {\r\n var pickDesc = '';\r\n if (demographics[i].IsPickCodeDesc) {\r\n pickDesc = demographics[i].FieldPicks[a].PickCode + ' - ' + demographics[i].FieldPicks[a].Description;\r\n } else {\r\n pickDesc = demographics[i].FieldPicks[a].Description;\r\n }\r\n filterDetail.FilterPicks[demographics[i].FieldPicks[a].PickCode] = new FilterPick(demographics[i].FieldPicks[a].PickCode, pickDesc);\r\n }\r\n\r\n filterGroup.FilterDetails[demographics[i].FieldName] = filterDetail;\r\n }\r\n\r\n allDemographics[EmailCampaigns[z].Strategy.TargetShowCode] = filterGroup;\r\n }\r\n }\r\n\r\n return allDemographics;\r\n });\r\n },\r\n Locations: function ($q, FilterGroup, EmailCampaigns, LeadService, FilterDetail, FilterPick) {\r\n 'ngInject'\r\n return $q.all((function () {\r\n var promises = [];\r\n\r\n for (var i = 0; i < EmailCampaigns.length; i++)\r\n promises.push(LeadService.getCountries({ showCode: EmailCampaigns[i].Strategy.TargetShowCode }));\r\n\r\n for (i = 0; i < EmailCampaigns.length; i++)\r\n promises.push(LeadService.getAllStates({ showCode: EmailCampaigns[i].Strategy.TargetShowCode }));\r\n\r\n return promises;\r\n })()).then(function () {\r\n var allLocations = {};\r\n\r\n for (var i = 0; i < EmailCampaigns.length; i++)\r\n allLocations[EmailCampaigns[i].Strategy.TargetShowCode] = allLocations[EmailCampaigns[i].Strategy.TargetShowCode] || {};\r\n\r\n for (var showCode in allLocations)\r\n allLocations[showCode] = {\r\n FilterDetails: {\r\n CountryCode: (function () {\r\n var countries = LeadService.data.countries[showCode];\r\n var filterDetail = new FilterDetail('CountryCode', 'Country');\r\n\r\n for (var i = 0; i < countries.length; i++) {\r\n //4-5-2016 - RJZ - hack to replace us value with blank\r\n filterDetail.FilterPicks[countries[i].Value === 'UNITED STATES' ? '' : countries[i].Value] = new FilterPick(countries[i].Value === 'UNITED STATES' ? '' : countries[i].Value, countries[i].Key);\r\n }\r\n\r\n return filterDetail;\r\n })(showCode),\r\n StateCode: (function () {\r\n var states = LeadService.data.allStates[showCode];\r\n var filterDetail = new FilterDetail('StateCode', 'State');\r\n\r\n for (var i = 0; i < states.length; i++) {\r\n filterDetail.FilterPicks[states[i].Value] = new FilterPick(states[i].Value, states[i].Key);\r\n }\r\n\r\n return filterDetail;\r\n })(showCode)\r\n }\r\n };\r\n\r\n return allLocations;\r\n });\r\n },\r\n DownloadDemographics: function ($q, CurrentEvent, DemographicService, FilterGroup, FilterDetail, FilterPick, AttendeeListDownloads) {\r\n 'ngInject'\r\n return $q.all((function () {\r\n var promises = [];\r\n\r\n for (var i = 0; i < AttendeeListDownloads.length; i++)\r\n promises.push(DemographicService.getDemographics({ showCode: AttendeeListDownloads[i].TargetShowCode }));\r\n\r\n return promises;\r\n })()).then(function (data) {\r\n var allDemographics = {};\r\n\r\n for (var z = 0; z < data.length; z++) {\r\n if (!allDemographics[AttendeeListDownloads[z].TargetShowCode]) {\r\n var demographics = DemographicService.data.demographics[AttendeeListDownloads[z].TargetShowCode].filter(function (e) {\r\n return e.DataSalesAllowUserFilters;\r\n });\r\n\r\n var filterGroup = new FilterGroup('Demographics');\r\n\r\n for (var i = 0; i < demographics.length; i++) {\r\n var filterDetail = new FilterDetail(demographics[i].FieldName, demographics[i].Description);\r\n\r\n for (var a = 0; a < demographics[i].FieldPicks.length; a++) {\r\n var pickDesc = '';\r\n if (demographics[i].IsPickCodeDesc) {\r\n pickDesc = demographics[i].FieldPicks[a].PickCode + ' - ' + demographics[i].FieldPicks[a].Description;\r\n } else {\r\n pickDesc = demographics[i].FieldPicks[a].Description;\r\n }\r\n filterDetail.FilterPicks[demographics[i].FieldPicks[a].PickCode] = new FilterPick(demographics[i].FieldPicks[a].PickCode, pickDesc);\r\n }\r\n\r\n filterGroup.FilterDetails[demographics[i].FieldName] = filterDetail;\r\n }\r\n\r\n allDemographics[AttendeeListDownloads[z].TargetShowCode] = filterGroup;\r\n }\r\n }\r\n\r\n return allDemographics;\r\n });\r\n },\r\n DownloadLocations: function ($q, FilterGroup, AttendeeListDownloads, LeadService, FilterDetail, FilterPick) {\r\n 'ngInject'\r\n return $q.all((function () {\r\n var promises = [];\r\n\r\n for (var i = 0; i < AttendeeListDownloads.length; i++)\r\n promises.push(LeadService.getCountries({ showCode: AttendeeListDownloads[i].TargetShowCode }));\r\n\r\n for (i = 0; i < AttendeeListDownloads.length; i++)\r\n promises.push(LeadService.getAllStates({ showCode: AttendeeListDownloads[i].TargetShowCode }));\r\n\r\n return promises;\r\n })()).then(function () {\r\n var allLocations = {};\r\n\r\n for (var i = 0; i < AttendeeListDownloads.length; i++)\r\n allLocations[AttendeeListDownloads[i].TargetShowCode] = allLocations[AttendeeListDownloads[i].TargetShowCode] || {};\r\n\r\n for (var showCode in allLocations)\r\n allLocations[showCode] = {\r\n FilterDetails: {\r\n CountryCode: (function () {\r\n var countries = LeadService.data.countries[showCode];\r\n var filterDetail = new FilterDetail('CountryCode', 'Country');\r\n\r\n for (var i = 0; i < countries.length; i++) {\r\n //4-5-2016 - RJZ - hack to replace us value with blank\r\n filterDetail.FilterPicks[countries[i].Value === 'UNITED STATES' ? '' : countries[i].Value] = new FilterPick(countries[i].Value === 'UNITED STATES' ? '' : countries[i].Value, countries[i].Key);\r\n }\r\n\r\n // for(var i = 0; i < countries.length; i++){\r\n // \tfilterDetail.FilterPicks[countries[i].Value] = new FilterPick(countries[i].Value, countries[i].Key);\r\n // }\r\n\r\n return filterDetail;\r\n })(showCode),\r\n StateCode: (function () {\r\n var states = LeadService.data.allStates[showCode];\r\n var filterDetail = new FilterDetail('StateCode', 'State');\r\n\r\n for (var i = 0; i < states.length; i++) {\r\n filterDetail.FilterPicks[states[i].Value] = new FilterPick(states[i].Value, states[i].Key);\r\n }\r\n\r\n return filterDetail;\r\n })(showCode)\r\n }\r\n };\r\n\r\n return allLocations;\r\n });\r\n },\r\n Templates: function ($q, EmailCampaigns, DataSalesService) {\r\n 'ngInject'\r\n var showCodes = [];\r\n\r\n for (var i = 0; i < EmailCampaigns.length; i++)\r\n if (showCodes.indexOf(EmailCampaigns[i].Strategy.TargetShowCode) == -1)\r\n showCodes.push(EmailCampaigns[i].Strategy.TargetShowCode);\r\n\r\n return $q.all(showCodes.map(function (x) {\r\n return DataSalesService.getTemplates({\r\n showCode: x\r\n });\r\n })).then(function () {\r\n var templates = [];\r\n\r\n for (var y = 0; y < showCodes.length; y++)\r\n for (var i = 0; i < DataSalesService.data.templates[showCodes[y]].length; i++) {\r\n var template = angular.copy(DataSalesService.data.templates[showCodes[y]][i]);\r\n var bodyFields = {};\r\n\r\n for (var a = 0; a < template.BodyFields.length; a++)\r\n bodyFields[template.BodyFields[a].KeyName] = template.BodyFields[a];\r\n\r\n template.BodyFields = bodyFields;\r\n templates.push(template);\r\n }\r\n\r\n return templates;\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Email Campaigns'\r\n }\r\n })\r\n .state('event.dashboard.emailCampaigns.edit', {\r\n url: '/edit/:id',\r\n templateUrl: 'views/dataSalesTemplate.html',\r\n controller: 'DataSalesTemplateCtrl',\r\n controllerAs: 'dataSalesTemplate',\r\n resolve: {\r\n Strategy: function ($stateParams, EmailCampaigns) {\r\n 'ngInject'\r\n return EmailCampaigns.filter(function (x) {\r\n return x.Strategy.PrimaryID == $stateParams.id;\r\n })[0].Strategy;\r\n },\r\n Email: function (Strategy) {\r\n 'ngInject'\r\n var email = {};\r\n\r\n for (var key in Strategy)\r\n email[key] = Strategy[key];\r\n\r\n for (var i = 0; i < Strategy.MessageConfigs.length; i++)\r\n email[Strategy.MessageConfigs[i].KeyName] = Strategy.MessageConfigs[i].ItemValue;\r\n\r\n email.TemplateId = email.TemplateID;\r\n\r\n delete email.MessageConfigs;\r\n delete email.FeedbackSummary;\r\n\r\n return email;\r\n },\r\n Cart: function () {\r\n 'ngInject'\r\n return undefined;\r\n },\r\n DataSalesProduct: function () {\r\n 'ngInject'\r\n return undefined;\r\n },\r\n DataSalesCartItem: function () {\r\n 'ngInject'\r\n return undefined;\r\n }\r\n }\r\n })\r\n .state('event.leads', {\r\n url: '/leads',\r\n templateUrl: 'views/leads.html',\r\n controller: 'LeadsCtrl',\r\n controllerAs: 'leads',\r\n resolve: {\r\n Demographics: function (CurrentEvent, DemographicService) {\r\n 'ngInject'\r\n return DemographicService.getDemographics({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return DemographicService.data.demographics[CurrentEvent.ShowCode].filter(function (x) {\r\n return x.FieldTypeCode !== 'OPN';\r\n });\r\n });\r\n },\r\n CollateralConfig: function (CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.getCollateralConfig({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return CollateralService.data.collateralConfig[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Collateral: function (CollateralConfig, CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.data.collaterals[CurrentEvent.ShowCode];\r\n },\r\n HasActivations: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n return ShowService\r\n .hasActivations({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.activations[CurrentEvent.ShowCode];\r\n });\r\n },\r\n LeadCollateral: function (CollateralService, CurrentEvent, HasActivations, $q) {\r\n 'ngInject'\r\n if (HasActivations) {\r\n return CollateralService.getLeadCollateral({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return CollateralService.data.leadCollateral[CurrentEvent.ShowCode].reduce(\r\n function (acc, curr) {\r\n acc[curr.LeadID] = acc[curr.LeadID] || [];\r\n acc[curr.LeadID].push(curr);\r\n return acc;\r\n }, {});\r\n });\r\n } else {\r\n return $q.when({});\r\n }\r\n },\r\n LeadsCapturedBy: function (CurrentEvent, LeadService) {\r\n 'ngInject'\r\n return LeadService.getLeadsCapturedBy({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadService.data.leadsCapturedBy[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Countries: function (CurrentEvent, LeadService) {\r\n 'ngInject'\r\n return LeadService.getCountries({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadService.data.countries[CurrentEvent.ShowCode];\r\n });\r\n },\r\n States: function (CurrentEvent, LeadService, Search) {\r\n 'ngInject'\r\n var countryCode =\r\n (Search.leads.filters.ContactInfo && Search.leads.filters.ContactInfo['Contact.Address.CountryCode']) ?\r\n Search.leads.filters.ContactInfo['Contact.Address.CountryCode'] :\r\n '';\r\n\r\n return LeadService.getStates({ showCode: CurrentEvent.ShowCode, countryCode: countryCode })\r\n .then(function () {\r\n return LeadService.data.states[CurrentEvent.ShowCode][countryCode];\r\n });\r\n },\r\n Surveys: function ($q, CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var surveys = angular.copy(SurveyService.data.surveys[CurrentEvent.ShowCode]).filter(function (x) {\r\n return x.IsActive;\r\n });\r\n\r\n for (var i = 0; i < surveys.length; i++) {\r\n surveys[i].SurveyQuestions = surveys[i].SurveyQuestions.filter(function (x) {\r\n return x.IsActive;\r\n });\r\n\r\n for (var a = 0; a < surveys[i].SurveyQuestions.length; a++)\r\n surveys[i].SurveyQuestions[a].SurveyAnswers = surveys[i].SurveyQuestions[a].SurveyAnswers.filter(function (x) {\r\n return x.IsActive;\r\n });\r\n }\r\n\r\n return surveys;\r\n });\r\n },\r\n Orders: function (CurrentEvent, OrderService) {\r\n 'ngInject'\r\n return OrderService\r\n .getOrders({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return OrderService.data.orders[CurrentEvent.ShowCode];\r\n });\r\n },\r\n HasPurchasedDevKit: function (CurrentEvent, Orders, OrderService) {\r\n 'ngInject'\r\n var DEV_KIT_PRODUCT_CODE = '300';\r\n\r\n for (var i = 0; i < Orders.length; i++)\r\n for (var a = 0; a < Orders[i].Transactions.length; a++) {\r\n var transaction = Orders[i].Transactions[a];\r\n\r\n if (transaction.ProductCode === DEV_KIT_PRODUCT_CODE && !transaction.IsVoided && transaction.TransTypeCode === 'PUR')\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n HasPurchasedEventBit: function (Orders) {\r\n 'ngInject'\r\n var EVENT_BIT_PRODUCT_CODE = '1500';\r\n\r\n for (var i = 0; i < Orders.length; i++) {\r\n for (var a = 0; a < Orders[i].Transactions.length; a++) {\r\n if (Orders[i].Transactions[a].ProductCode === EVENT_BIT_PRODUCT_CODE && Orders[i].Transactions[a].TransTypeCode === 'PUR' && Orders[i].Transactions[a].TransStatus !== 'VOIDED')\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n isSPOT: function (CurrentEvent, EventBitService) {\r\n 'ngInject'\r\n return EventBitService\r\n .isSPOT({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return !!EventBitService.data.isSPOT[CurrentEvent.ShowCode];\r\n });\r\n },\r\n LeadsEmailInformation: function (CurrentEvent, LeadService) {\r\n 'ngInject'\r\n return LeadService.getLeadsEmailInformation({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadService.data.leadsEmailInformation[CurrentEvent.ShowCode];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Leads'\r\n }\r\n })\r\n .state('event.businessCardDetail', {\r\n url: '/businesscard/detail/:key',\r\n templateUrl: 'views/businessCardDetail.html',\r\n controller: 'BusinessCardDetailCtrl',\r\n controllerAs: 'businessCardDetail',\r\n resolve: {\r\n BusinessCard: function ($stateParams, CurrentEvent, BusinessCardLeadService) {\r\n 'ngInject'\r\n return BusinessCardLeadService.getBusinessCardLead({ showCode: CurrentEvent.ShowCode, key: $stateParams.key })\r\n .then(function () {\r\n for (var i = 0; i < BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode].length; i++)\r\n if (BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode][i].ImageKey == $stateParams.key) {\r\n return angular.copy(BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode][i]);\r\n }\r\n\r\n return undefined;\r\n });\r\n },\r\n Orders: function (CurrentEvent, OrderService) {\r\n 'ngInject'\r\n return OrderService\r\n .getOrders({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return OrderService.data.orders[CurrentEvent.ShowCode];\r\n });\r\n },\r\n HasPurchasedEventBit: function (Orders) {\r\n 'ngInject'\r\n var EVENT_BIT_PRODUCT_CODE = '1500';\r\n\r\n for (var i = 0; i < Orders.length; i++) {\r\n for (var a = 0; a < Orders[i].Transactions.length; a++) {\r\n if (Orders[i].Transactions[a].ProductCode === EVENT_BIT_PRODUCT_CODE && Orders[i].Transactions[a].TransTypeCode === 'PUR' && Orders[i].Transactions[a].TransStatus !== 'VOIDED')\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n ExportHeaders: function (CurrentEvent, LeadExportService, BusinessCard, HasPurchasedEventBit) {\r\n 'ngInject'\r\n return LeadExportService.getHeaders(CurrentEvent.ShowCode, [BusinessCard], HasPurchasedEventBit)\r\n .then(function () {\r\n return LeadExportService.data[CurrentEvent.ShowCode].headers;\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Business Card Detail'\r\n }\r\n })\r\n .state('event.leadDetail', {\r\n url: '/leads/detail/:id',\r\n templateUrl: 'views/leadDetail.html',\r\n controller: 'LeadDetailCtrl',\r\n controllerAs: 'leadDetail',\r\n resolve: {\r\n Lead: function ($stateParams, CurrentEvent, LeadService) {\r\n 'ngInject'\r\n return LeadService.getLeads({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n for (var i = 0; i < LeadService.data.leads[CurrentEvent.ShowCode].length; i++)\r\n if (LeadService.data.leads[CurrentEvent.ShowCode][i].Id == $stateParams.id) {\r\n return angular.copy(LeadService.data.leads[CurrentEvent.ShowCode][i]);\r\n }\r\n\r\n return undefined;\r\n });\r\n },\r\n LeadsCapturedBy: function (CurrentEvent, LeadService) {\r\n 'ngInject'\r\n return LeadService.getLeadsCapturedBy({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadService.data.leadsCapturedBy[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Demographics: function (CurrentEvent, DemographicService) {\r\n 'ngInject'\r\n return DemographicService.getDemographics({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return DemographicService.data.demographics[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Surveys: function ($q, CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var surveys = angular.copy(SurveyService.data.surveys[CurrentEvent.ShowCode]).filter(function (x) {\r\n return x.IsActive;\r\n });\r\n\r\n for (var i = 0; i < surveys.length; i++) {\r\n surveys[i].SurveyQuestions = surveys[i].SurveyQuestions.filter(function (x) {\r\n return x.IsActive;\r\n });\r\n\r\n for (var a = 0; a < surveys[i].SurveyQuestions.length; a++)\r\n surveys[i].SurveyQuestions[a].SurveyAnswers = surveys[i].SurveyQuestions[a].SurveyAnswers.filter(function (x) {\r\n return x.IsActive;\r\n });\r\n }\r\n\r\n return surveys;\r\n });\r\n },\r\n Orders: function (CurrentEvent, OrderService) {\r\n 'ngInject'\r\n return OrderService\r\n .getOrders({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return OrderService.data.orders[CurrentEvent.ShowCode];\r\n });\r\n },\r\n HasPurchasedEventBit: function (Orders) {\r\n 'ngInject'\r\n var EVENT_BIT_PRODUCT_CODE = '1500';\r\n\r\n for (var i = 0; i < Orders.length; i++) {\r\n for (var a = 0; a < Orders[i].Transactions.length; a++) {\r\n if (Orders[i].Transactions[a].ProductCode === EVENT_BIT_PRODUCT_CODE && Orders[i].Transactions[a].TransTypeCode === 'PUR' && Orders[i].Transactions[a].TransStatus !== 'VOIDED')\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n ExportHeaders: function (CurrentEvent, LeadExportService, Lead, HasPurchasedEventBit) {\r\n 'ngInject'\r\n return LeadExportService.getHeaders(CurrentEvent.ShowCode, [Lead], HasPurchasedEventBit)\r\n .then(function () {\r\n return LeadExportService.data[CurrentEvent.ShowCode].headers;\r\n });\r\n },\r\n CollateralConfig: function (CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.getCollateralConfig({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return CollateralService.data.collateralConfig[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Collateral: function (CollateralConfig, CollateralService, CurrentEvent) {\r\n 'ngInject'\r\n return CollateralService.data.collaterals[CurrentEvent.ShowCode];\r\n },\r\n LeadCollateral: function (CollateralService, CurrentEvent, $stateParams, LeadsCapturedBy, Collateral) {\r\n 'ngInject'\r\n return CollateralService.getLeadCollateral({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return CollateralService.data.leadCollateral[CurrentEvent.ShowCode].filter(\r\n function (x) {\r\n return x.LeadID == $stateParams.id;\r\n }).map(function (x) {\r\n return {\r\n CollateralName: (Collateral.filter(function (c) { return c.CollateralID == x.CollateralID; }).shift() || {}).DisplayName,\r\n SentBy: (LeadsCapturedBy.filter(function (l) { return l.Value == x.ContactID; }).shift() || {}).Key,\r\n SentDate: x.SendDate\r\n }\r\n });\r\n })\r\n },\r\n },\r\n data: {\r\n pageTitle: 'Lead Detail'\r\n }\r\n })\r\n .state('event.leadDetail.editSurvey', {\r\n url: '/editSurvey/:surveyId',\r\n templateUrl: 'views/leadDetailEditSurvey.html',\r\n controller: 'LeadDetailEditSurveyCtrl',\r\n controllerAs: 'surveyEdit',\r\n resolve: {\r\n Survey: function ($stateParams, CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurvey({ showCode: CurrentEvent.ShowCode, surveyId: $stateParams.surveyId })\r\n .then(function () {\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++)\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == $stateParams.surveyId) {\r\n var survey = angular.copy(SurveyService.data.surveys[CurrentEvent.ShowCode][i]);\r\n\r\n survey.SurveyQuestions = survey.SurveyQuestions.filter(function (x) {\r\n return x.IsActive;\r\n });\r\n\r\n for (var a = 0; a < survey.SurveyQuestions.length; a++)\r\n survey.SurveyQuestions[a].SurveyAnswers = survey.SurveyQuestions[a].SurveyAnswers.filter(function (x) {\r\n return x.IsActive;\r\n });\r\n\r\n return survey;\r\n }\r\n\r\n return undefined;\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Edit Lead Survey'\r\n }\r\n })\r\n .state('event.leadDetail.editSurvey.editSurveyQuestion', {\r\n url: '/question/:questionId',\r\n templateUrl: 'views/leadDetailEditSurveyQuestion.html',\r\n controller: 'LeadDetailEditSurveyQuestionCtrl',\r\n controllerAs: 'surveyQuestionEdit',\r\n resolve: {\r\n SurveyQuestion: function ($stateParams, CurrentEvent, SurveyService, Survey) {\r\n 'ngInject'\r\n return SurveyService\r\n .getSurveyQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n surveyId: Survey.Id,\r\n surveyQuestionId: $stateParams.questionId\r\n })\r\n .then(function (data) {\r\n if (!data.data.Id)\r\n return data.data;\r\n else\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++) {\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == Survey.Id) {\r\n for (var a = 0; a < SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions.length; a++) {\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a].Id == $stateParams.questionId) {\r\n var surveyQuestion = angular.copy(SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a]);\r\n surveyQuestion.SurveyAnswers = surveyQuestion.SurveyAnswers.filter(function (x) {\r\n return x.IsActive;\r\n });\r\n return surveyQuestion;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Edit Lead Survey'\r\n }\r\n })\r\n .state('event.badgeSelection', {\r\n url: '/leads/upload/badgeSelection',\r\n templateUrl: 'views/badgeSelection.html',\r\n controller: 'BadgeSelectionCtrl',\r\n controllerAs: 'badgeSelection',\r\n data: {\r\n pageTitle: 'Badge Selection'\r\n }\r\n })\r\n .state('event.leadUpload', {\r\n url: '/leads/upload/:contactId',\r\n templateUrl: 'views/leadUpload.html',\r\n controller: 'LeadUploadCtrl',\r\n controllerAs: 'leadUpload',\r\n data: {\r\n pageTitle: 'Lead Upload'\r\n }\r\n })\r\n .state('event.surveys', {\r\n abstract: true,\r\n template: ''\r\n })\r\n .state('event.surveys.surveys', {\r\n url: '/surveys',\r\n templateUrl: 'views/surveys.html',\r\n controller: 'SurveysCtrl',\r\n controllerAs: 'surveys',\r\n resolve: {\r\n Surveys: function (CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode].filter(function (x) {\r\n return x.Id;\r\n });\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Surveys',\r\n feedbackName: 'SurveyList'\r\n }\r\n })\r\n .state('event.surveys.copy', {\r\n url: '/surveys/copy',\r\n templateUrl: 'views/surveyCopy.html',\r\n controller: 'SurveyCopyCtrl',\r\n controllerAs: 'surveyCopy',\r\n resolve: {\r\n HistoricalSurveys: function (CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getHistoricalSurveys()\r\n .then(function () {\r\n return SurveyService.data.historicalSurveys;\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Survey Copy',\r\n feedbackName: 'SurveyCopy'\r\n }\r\n })\r\n .state('event.surveys.survey', {\r\n url: '/survey/:id',\r\n templateUrl: 'views/survey.html',\r\n controller: 'SurveyCtrl',\r\n controllerAs: 'survey',\r\n resolve: {\r\n Surveys: function (CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode].filter(function (x) {\r\n return x.Id;\r\n });\r\n });\r\n },\r\n Survey: function ($stateParams, CurrentEvent, Surveys, SurveyService) {\r\n 'ngInject'\r\n return SurveyService\r\n .getSurvey({ showCode: CurrentEvent.ShowCode, surveyId: $stateParams.id })\r\n .then(function () {\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++)\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == $stateParams.id)\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode][i];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Survey',\r\n feedbackName: 'SurveyAddEdit'\r\n }\r\n })\r\n .state('event.surveys.emailSurvey', {\r\n url: '/survey/:id/email',\r\n templateUrl: 'views/emailSurvey.html',\r\n controller: 'EmailSurveyCtrl',\r\n controllerAs: 'emailSurvey',\r\n resolve: {\r\n Surveys: function (CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode].filter(function (x) {\r\n return x.Id;\r\n });\r\n });\r\n },\r\n Survey: function ($stateParams, CurrentEvent, Surveys, SurveyService) {\r\n 'ngInject'\r\n return SurveyService\r\n .getSurvey({ showCode: CurrentEvent.ShowCode, surveyId: $stateParams.id })\r\n .then(function () {\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++)\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == $stateParams.id)\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode][i];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Email Survey'\r\n }\r\n })\r\n .state('event.surveys.surveyQuestion', {\r\n url: '/survey/:id/surveyQuestion/:surveyQuestionId',\r\n templateUrl: 'views/surveyQuestion.html',\r\n controller: 'SurveyQuestionCtrl',\r\n controllerAs: 'surveyQuestion',\r\n resolve: {\r\n Surveys: function (CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode].filter(function (x) {\r\n return x.Id;\r\n });\r\n });\r\n },\r\n Survey: function ($stateParams, CurrentEvent, Surveys, SurveyService) {\r\n 'ngInject'\r\n return SurveyService\r\n .getSurvey({ showCode: CurrentEvent.ShowCode, surveyId: $stateParams.id })\r\n .then(function () {\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++)\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == $stateParams.id)\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode][i];\r\n });\r\n },\r\n SurveyQuestions: function ($stateParams, CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n return SurveyService.getSurvey({ showCode: CurrentEvent.ShowCode, surveyId: $stateParams.id })\r\n .then(function () {\r\n var survey = undefined;\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++) {\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == $stateParams.id) {\r\n survey = SurveyService.data.surveys[CurrentEvent.ShowCode][i];\r\n break;\r\n }\r\n }\r\n\r\n if (survey) {\r\n return survey.SurveyQuestions;\r\n } else {\r\n return [];\r\n }\r\n });\r\n },\r\n SurveyQuestion: function ($stateParams, CurrentEvent, Surveys, SurveyService) {\r\n 'ngInject'\r\n return SurveyService\r\n .getSurveyQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n surveyId: $stateParams.id,\r\n surveyQuestionId: $stateParams.surveyQuestionId\r\n })\r\n .then(function (data) {\r\n if (!data.data.Id)\r\n return data.data;\r\n else\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++)\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == $stateParams.id)\r\n for (var a = 0; a < SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions.length; a++)\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a].Id == $stateParams.surveyQuestionId)\r\n return SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Survey Question'\r\n }\r\n })\r\n .state('event.shop', {\r\n abstract: true,\r\n url: '/shop',\r\n templateUrl: 'views/shop.html',\r\n controller: 'ShopCtrl',\r\n controllerAs: 'shop',\r\n resolve: {\r\n AdditionalInfo: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n if (CurrentEvent.HasActiveSalesTier)\r\n return ShowService\r\n .getShowAdditionalInfo({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.showAdditionalInfo[CurrentEvent.ShowCode];\r\n });\r\n },\r\n Cart: function (ngCart) {\r\n 'ngInject'\r\n return ngCart;\r\n },\r\n Products: function (CurrentEvent, ProductsService) {\r\n 'ngInject'\r\n return ProductsService\r\n .getProducts({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ProductsService.data.products[CurrentEvent.ShowCode];\r\n });\r\n },\r\n PurchasedProductIds: function (CurrentEvent, OrderService) {\r\n 'ngInject'\r\n return OrderService\r\n .getOrders({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var orders = OrderService.data.orders[CurrentEvent.ShowCode] || [];\r\n var productIds = [];\r\n\r\n for (var i = 0; i < orders.length; i++)\r\n for (var a = 0; a < orders[i].Transactions.length; a++)\r\n if (!productIds.filter(function (x) { return x == orders[i].Transactions[a].ProductId; }).length)\r\n productIds.push(orders[i].Transactions[a].ProductId);\r\n\r\n return productIds.join(',');\r\n });\r\n },\r\n DataSalesProducts: function (CurrentEvent, ProductsService) {\r\n 'ngInject'\r\n return ProductsService.getDataSalesProducts({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ProductsService.data.dataSalesProducts[CurrentEvent.ShowCode];\r\n });\r\n },\r\n AllAvailableProducts: function (CurrentEvent, Products, ProductsService, DataSalesProducts, PurchasedProductIds) {\r\n 'ngInject'\r\n //use all possible productIds so this is truly AllAvailableProducts\r\n var productIds = Products.concat(DataSalesProducts).map(p => {\r\n return p.Id;\r\n }).concat(PurchasedProductIds).join(',');\r\n\r\n return ProductsService.getUpsell({ showCode: CurrentEvent.ShowCode, productIds: productIds })\r\n .then(function () {\r\n var upSellProducts = ProductsService.data.upsell[CurrentEvent.ShowCode][productIds] || [];\r\n //console.log('shop - AllAvailableProducts', Products.concat(DataSalesProducts).concat(upSellProducts));\r\n return Products.concat(DataSalesProducts).concat(upSellProducts);\r\n });\r\n },\r\n /*\r\n * WI 54461 - Reordered this and injected \"AllAvailableProducts.\" We then use this property to construct the\r\n * array of UpsellProducts. This is a workaround to get the quantities to properly display on the shopping\r\n * page(s) for certain products. The issue is that we set the quantity on the AllAvailableProducts array\r\n * objects, so other arrays need to share memory with those array items in order for the quantities to display\r\n * properly. This is noted on the products controller. This was introduced when we refactored AllAvailableProducts.\r\n * TODO: Find a better approach.\r\n * */\r\n UpsellProducts: function (CurrentEvent, PurchasedProductIds, ProductsService, Products, DataSalesProducts, Cart, AllAvailableProducts) {\r\n 'ngInject'\r\n var AllProducts = Products.concat(DataSalesProducts);\r\n\r\n var cartProductIds = Cart.getItems().map(function (e) {\r\n var product = AllProducts.filter(function (p) {\r\n return p.ProductPriceID == e._id;\r\n });\r\n\r\n if (product.length)\r\n return product[0].Id;\r\n else\r\n return 0;\r\n }).join(',');\r\n\r\n var productIds = [cartProductIds, PurchasedProductIds].filter(function (x) { return !!x; }).join(',');\r\n\r\n return ProductsService.getUpsell({ showCode: CurrentEvent.ShowCode, productIds: productIds })\r\n .then(function () {\r\n var upSellProducts = ProductsService.data.upsell[CurrentEvent.ShowCode][productIds] || [];\r\n var toRet = [];\r\n if (!upSellProducts) {\r\n return toRet;\r\n }\r\n\r\n // Use \"AllAvailableProducts\" to construct array. Should be the same items\r\n // we otherwise would have had, but in memory will be the same objects.\r\n for (var i = 0; i < upSellProducts.length; i++) {\r\n for (var j = 0; j < AllAvailableProducts.length; j++) {\r\n if (upSellProducts[i].Id == AllAvailableProducts[j].Id) {\r\n toRet.push(AllAvailableProducts[j]);\r\n }\r\n }\r\n }\r\n\r\n return toRet;\r\n });\r\n },\r\n Templates: function (CurrentEvent, DataSalesService) {\r\n 'ngInject'\r\n return DataSalesService.getTemplates({\r\n showCode: CurrentEvent.ShowCode\r\n });\r\n }\r\n }\r\n })\r\n .state('event.shop.detail', {\r\n url: '/detail',\r\n templateUrl: 'views/shopDetail.html',\r\n controllerAs: 'detail',\r\n controller: function ($anchorScroll, $rootScope, CurrentEvent, EXSConfig) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.isRecommendationEvent = window.RecommendationEvents.toString().split(',').includes(CurrentEvent.ShowCode);\r\n self.hasActiveSalesTier = CurrentEvent.HasActiveSalesTier;\r\n self.EXSConfig = EXSConfig;\r\n\r\n $rootScope.showActionWidget = true;\r\n\r\n $anchorScroll();\r\n //Google Optimize - Custom Trigger\r\n window.dataLayer = window.dataLayer || [];\r\n dataLayer.push({ 'event': 'optimize.activate' });\r\n },\r\n data: {\r\n pageTitle: 'Event Detail'\r\n }\r\n })\r\n .state('event.shop.recommendation', {\r\n url: '/recommendation',\r\n templateUrl: 'views/recommendation.html',\r\n controller: 'ProductsCtrl',\r\n controllerAs: 'recommendation',\r\n resolve: {\r\n AdditionalInfo: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n if (CurrentEvent.HasActiveSalesTier)\r\n return ShowService\r\n .getShowAdditionalInfo({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.showAdditionalInfo[CurrentEvent.ShowCode];\r\n });\r\n },\r\n PurchasedProducts: function (CurrentEvent, ProductsService, ActiveUserProfile) {\r\n 'ngInject'\r\n if (CurrentEvent.PriorShowCode != \"\") {\r\n return ProductsService.getPurchasedProducts({ showCode: CurrentEvent.PriorShowCode, exhibitorId: ActiveUserProfile.ExhibitorId })\r\n .then(function () {\r\n return ProductsService.data.purchasedProducts[CurrentEvent.PriorShowCode][ActiveUserProfile.ExhibitorId];\r\n });\r\n }\r\n else {\r\n return [];\r\n }\r\n },\r\n RecommendedProducts: function (AllAvailableProducts, CurrentEvent, ProductsService, ActiveUserProfile, AdditionalInfo) {\r\n 'ngInject'\r\n\r\n var exhibitorId = ActiveUserProfile.ExhibitorId;\r\n var boothId = 0;\r\n var boothSize = 0;\r\n var regCnt = 0;\r\n\r\n if (AdditionalInfo.BoothList.length > 0) {\r\n boothId = AdditionalInfo.BoothList[0].showExhibitorBoothId;\r\n boothSize = AdditionalInfo.BoothList[0].boothSize;\r\n regCnt = Math.ceil(boothSize / 300);\r\n }\r\n if (CurrentEvent.ShowCode != 'CON231') {\r\n exhibitorId = 1001894;\r\n boothId = 1520143;\r\n }\r\n\r\n if (AdditionalInfo.BoothList.length > 0 && boothSize > 0)\r\n return ProductsService.getShowExhibitorBoothRecommendation({ exhibitorId: exhibitorId, showExhibitorBoothID: boothId, boothWorkers: regCnt, surveyBoothsize: boothSize, showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ProductsService.data.showExhibitorBoothRecommendation[exhibitorId][boothId][regCnt][boothSize][CurrentEvent.ShowCode];\r\n });\r\n else {\r\n return [];\r\n }\r\n },\r\n },\r\n data: {\r\n pageTitle: 'Recommendation'\r\n }\r\n })\r\n .state('event.shop.products', {\r\n url: '/products',\r\n templateUrl: 'views/products.html',\r\n controller: 'ProductsCtrl',\r\n controllerAs: 'products',\r\n resolve: {\r\n AdditionalInfo: function (CurrentEvent, ShowService) {\r\n 'ngInject'\r\n if (CurrentEvent.HasActiveSalesTier)\r\n return ShowService\r\n .getShowAdditionalInfo({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ShowService.data.showAdditionalInfo[CurrentEvent.ShowCode];\r\n });\r\n },\r\n PurchasedProducts: function (CurrentEvent, ProductsService, ActiveUserProfile) {\r\n 'ngInject'\r\n if (CurrentEvent.PriorShowCode != \"\") {\r\n return ProductsService.getPurchasedProducts({ showCode: CurrentEvent.PriorShowCode, exhibitorId: ActiveUserProfile.ExhibitorId })\r\n .then(function () {\r\n return ProductsService.data.purchasedProducts[CurrentEvent.PriorShowCode][ActiveUserProfile.ExhibitorId];\r\n });\r\n }\r\n else {\r\n return [];\r\n }\r\n },\r\n RecommendedProducts: function () {\r\n 'ngInject'\r\n return [];\r\n },\r\n },\r\n data: {\r\n pageTitle: 'Products',\r\n optimizeTag: 'Products_OptimizeTag'\r\n }\r\n })\r\n .state('event.shop.moreInfo', {\r\n url: '/products/:id/moreInfo',\r\n templateUrl: 'views/moreInfo.html',\r\n controller: 'MoreInfoCtrl',\r\n controllerAs: 'moreInfo',\r\n resolve: {\r\n Product: function ($stateParams, CurrentEvent, ProductsService) {\r\n 'ngInject'\r\n return ProductsService\r\n .getProducts({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ProductsService.data.products[CurrentEvent.ShowCode].filter(function (x) {\r\n return x.Id == $stateParams.id;\r\n })[0];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'More Info'\r\n }\r\n })\r\n .state('event.shop.upsell', {\r\n url: '/recommended',\r\n templateUrl: 'views/upsell.html',\r\n controller: 'ProductsCtrl',\r\n controllerAs: 'upsell',\r\n resolve: {\r\n AllProducts: function ($q, CurrentEvent, ProductsService) {\r\n 'ngInject'\r\n return $q.all([\r\n ProductsService.getProducts({ showCode: CurrentEvent.ShowCode }),\r\n ProductsService.getDataSalesProducts({ showCode: CurrentEvent.ShowCode }) \r\n ]).then(function () {\r\n return ProductsService.data.products[CurrentEvent.ShowCode]\r\n .concat(ProductsService.data.dataSalesProducts[CurrentEvent.ShowCode]);\r\n });\r\n },\r\n Products: function (CurrentEvent, Cart, ProductsService, AllProducts) {\r\n 'ngInject'\r\n var productIds = Cart.getItems().map(function (e) {\r\n var product = AllProducts.filter(function (p) {\r\n return p.ProductPriceID == e._id;\r\n });\r\n\r\n if (product.length)\r\n return product[0].Id;\r\n else\r\n return 0;\r\n }).join(',');\r\n\r\n return ProductsService\r\n .getUpsell({ showCode: CurrentEvent.ShowCode, productIds: productIds })\r\n .then(function () {\r\n return ProductsService.data.upsell[CurrentEvent.ShowCode][productIds];\r\n });\r\n },\r\n PurchasedProducts: function (CurrentEvent, ProductsService, ActiveUserProfile) {\r\n 'ngInject'\r\n if (CurrentEvent.PriorShowCode != \"\") {\r\n return ProductsService.getPurchasedProducts({ showCode: CurrentEvent.PriorShowCode, exhibitorId: ActiveUserProfile.ExhibitorId })\r\n .then(function () {\r\n return ProductsService.data.purchasedProducts[CurrentEvent.PriorShowCode][ActiveUserProfile.ExhibitorId];\r\n });\r\n }\r\n else {\r\n return [];\r\n }\r\n },\r\n RecommendedProducts: function () {\r\n 'ngInject'\r\n return [];\r\n },\r\n UpsellProducts: function () {\r\n 'ngInject'\r\n return [];\r\n },\r\n // WI 54461 - Redefine just for this upsell path. Otherwise the quantities\r\n // in the inputs were not displaying by default.\r\n // TODO: Find a better approach.\r\n AllAvailableProducts: function (Products, UpsellProducts) {\r\n 'ngInject'\r\n return Products;\r\n },\r\n DataSalesProducts: function () {\r\n 'ngInject'\r\n return [];\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Recommended Products'\r\n }\r\n })\r\n .state('event.shop.cart', {\r\n url: '/cart/:productsHash',\r\n templateUrl: 'views/cart.html',\r\n params: {\r\n productsHash: ''\r\n },\r\n controller: 'CartCtrl',\r\n controllerAs: 'cart',\r\n resolve: {\r\n Addresses: function (AddressService) {\r\n 'ngInject'\r\n return AddressService.getBillingAddresses()\r\n .then(function () {\r\n return AddressService.data.billingAddresses;\r\n });\r\n },\r\n Countries: function (AddressService) {\r\n 'ngInject'\r\n return AddressService.getCountries()\r\n .then(function () {\r\n return AddressService.data.countries;\r\n });\r\n },\r\n States: function (AddressService) {\r\n 'ngInject'\r\n return AddressService.getStates()\r\n .then(function () {\r\n return AddressService.data.states;\r\n });\r\n },\r\n CartTotal: function (Cart) {\r\n 'ngInject'\r\n return Cart.totalCost();\r\n },\r\n UserEmail: function (ActiveUserProfile, UserService, CurrentEvent) {\r\n 'ngInject'\r\n return !ActiveUserProfile.BadgeId ? '' : UserService\r\n .getEmail({ showCode: CurrentEvent.ShowCode, connectKey: ActiveUserProfile.BadgeId })\r\n .then(function () {\r\n return UserService.data.email;\r\n });\r\n },\r\n Errors: function ($q, ProductsService, DataSalesService, CurrentEvent, Cart) {\r\n 'ngInject'\r\n var dataSalesValidation = [];\r\n var errors = {};\r\n\r\n return $q.all((function () {\r\n var promises = [];\r\n\r\n // PDJ: This same code is in cart.js, changes here needed there\r\n var cartItems = Cart.getItems();\r\n for (var i = 0; i < cartItems.length; i++) {\r\n if (!!cartItems[i].getData().dataSalesTierTypeCode) {\r\n dataSalesValidation.push(cartItems[i].getData().timestamp);\r\n promises.push(DataSalesService.validate(CurrentEvent.ShowCode, cartItems[i].getData()));\r\n }\r\n }\r\n\r\n return promises;\r\n })())\r\n .then(function (results) {\r\n // PDJ: This same code is in cart.js, changes here needed there\r\n for (var i = 0; i < results.length; i++) {\r\n if (results[i].length) {\r\n errors.dataSales = errors.dataSales || {};\r\n errors.dataSales[dataSalesValidation[i]] = results[i];\r\n }\r\n }\r\n\r\n return errors;\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Cart',\r\n optimizeTag: 'Cart_OptimizeTag'\r\n }\r\n })\r\n .state('event.shop.address', {\r\n url: '/address',\r\n templateUrl: 'views/address.html',\r\n controller: 'AddressCtrl',\r\n controllerAs: 'address',\r\n resolve: {\r\n Addresses: function (AddressService) {\r\n 'ngInject'\r\n return AddressService.getBillingAddresses()\r\n .then(function () {\r\n return AddressService.data.billingAddresses;\r\n });\r\n },\r\n Countries: function (AddressService) {\r\n 'ngInject'\r\n return AddressService.getCountries()\r\n .then(function () {\r\n return AddressService.data.countries;\r\n });\r\n },\r\n States: function (AddressService) {\r\n 'ngInject'\r\n return AddressService.getStates()\r\n .then(function () {\r\n return AddressService.data.states;\r\n });\r\n },\r\n CartTotal: function (Cart) {\r\n 'ngInject'\r\n return Cart.totalCost();\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Address'\r\n }\r\n })\r\n .state('event.shop.pciauth', {\r\n url: '/checkout?auth',\r\n template: '',\r\n resolve: {\r\n pciResult: function ($stateParams, CurrentEvent, OrderService) {\r\n 'ngInject'\r\n if ($stateParams.auth) {\r\n return OrderService.completeOrder({\r\n data: {\r\n auth: $stateParams.auth,\r\n showCode: CurrentEvent.ShowCode\r\n }\r\n })\r\n .then(function (data) {\r\n return data;\r\n }, function () {\r\n return null;\r\n });\r\n }\r\n else\r\n return null;\r\n }\r\n },\r\n controller: function ($anchorScroll, pciResult, $state) {\r\n 'ngInject'\r\n $anchorScroll();\r\n if (pciResult && pciResult.IsAuthorized)\r\n $state.go('event.shop.confirmation', { salesOrderId: pciResult.SalesOrderId });\r\n else\r\n $state.go('event.shop.cart');\r\n },\r\n data: {\r\n pageTitle: 'Checkout'\r\n }\r\n })\r\n .state('event.shop.checkoutonly', {\r\n url: '/checkoutonly',\r\n templateUrl: 'views/checkoutOnly.html',\r\n controller: 'CheckoutOnlyCtrl',\r\n controllerAs: 'checkoutonly',\r\n resolve: {\r\n pendingOrder: function (OrderService) {\r\n 'ngInject'\r\n if (window.SalesOrderId) {\r\n return OrderService.getOrder({ salesOrderId: window.SalesOrderId }, true)\r\n .then(function (resp) {\r\n return resp.data;\r\n }, function () {\r\n return null;\r\n });\r\n }\r\n else return null;\r\n }\r\n },\r\n data: {\r\n pageTitle: 'CheckoutOnly'\r\n }\r\n })\r\n .state('event.shop.checkout', {\r\n url: '/checkout',\r\n templateUrl: 'views/checkout.html',\r\n controller: 'CheckoutCtrl',\r\n controllerAs: 'checkout',\r\n resolve: {\r\n CartTotal: function (Cart) {\r\n 'ngInject'\r\n return Cart.totalCost();\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Checkout'\r\n }\r\n })\r\n .state('event.shop.confirmation', {\r\n url: '/confirmation/:salesOrderId',\r\n templateUrl: 'views/confirmation.html',\r\n resolve: {\r\n ConfirmationHtml: function ($stateParams, CurrentEvent, OrderService) {\r\n 'ngInject'\r\n return OrderService.getConfirmationHtml({\r\n showCode: CurrentEvent.ShowCode,\r\n salesOrderId: $stateParams.salesOrderId\r\n }, true)\r\n .then(function () {\r\n return OrderService.data.confirmations[CurrentEvent.ShowCode][$stateParams.salesOrderId];\r\n });\r\n }\r\n },\r\n controller: 'ConfirmationCtrl',\r\n controllerAs: 'confirmation',\r\n data: {\r\n pageTitle: 'Confirmation'\r\n }\r\n })\r\n .state('event.shop.dataSales', {\r\n url: '/dataSales/:timestamp',\r\n abstract: true,\r\n template: '',\r\n resolve: {\r\n DataSalesCartItem: function ($stateParams, Cart) {\r\n 'ngInject'\r\n var cartItems = Cart.getItems();\r\n var data;\r\n\r\n for (var i = 0; i < cartItems.length; i++) {\r\n data = cartItems[i].getData();\r\n\r\n if (data.timestamp == $stateParams.timestamp)\r\n return cartItems[i];\r\n }\r\n\r\n return null;\r\n },\r\n DataSalesProduct: function (DataSalesCartItem, CurrentEvent, ProductsService) {\r\n 'ngInject'\r\n return ProductsService.getDataSalesProducts({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return ProductsService.data.dataSalesProducts[CurrentEvent.ShowCode].filter(function (x) {\r\n return x.ProductPriceID == DataSalesCartItem.getData().productPriceId;\r\n })[0];\r\n });\r\n },\r\n TourHistory: function ($window, CurrentEvent) {\r\n 'ngInject'\r\n var tourRaw = $window.localStorage.getItem('EPTOUR');\r\n\r\n if (tourRaw)\r\n tourRaw = angular.fromJson(tourRaw);\r\n\r\n var tour = tourRaw || {};\r\n tour[CurrentEvent.ShowCode] = tour[CurrentEvent.ShowCode] || {};\r\n tour[CurrentEvent.ShowCode].dataSales = tour[CurrentEvent.ShowCode].dataSales || false;\r\n\r\n tour[CurrentEvent.ShowCode].save = function () {\r\n $window.localStorage.setItem('EPTOUR', angular.toJson(tour));\r\n };\r\n\r\n return tour[CurrentEvent.ShowCode];\r\n }\r\n }\r\n })\r\n .state('event.shop.dataSales.filterBuilder', {\r\n url: '/listBuilder',\r\n controller: 'DataSalesCtrl',\r\n controllerAs: 'dataSales',\r\n templateUrl: 'views/dataSales.html',\r\n resolve: {\r\n FilterGroup: function () {\r\n 'ngInject'\r\n return function (name) {\r\n this.Name = name;\r\n this.FilterDetails = {};\r\n };\r\n },\r\n FilterDetail: function () {\r\n 'ngInject'\r\n return function (id, description) {\r\n this.Id = String(id);\r\n this.Description = description;\r\n this.FilterPicks = {};\r\n };\r\n },\r\n FilterPick: function () {\r\n 'ngInject'\r\n return function (id, description) {\r\n this.Id = String(id);\r\n this.Description = description;\r\n };\r\n },\r\n ExcludedFieldPicks: function (DataSalesProduct, DataSalesService) {\r\n 'ngInject'\r\n return DataSalesService.getPreFilterFields({\r\n showCode: DataSalesProduct.DataSalesTargetShowCode\r\n }).then(function () {\r\n return DataSalesService.data.preFilterFields[DataSalesProduct.DataSalesTargetShowCode].filter(function (x) {\r\n return x.Op === 1; //isnotoneof\r\n });\r\n });\r\n },\r\n IncludedFieldPicks: function (DataSalesProduct, DataSalesService) {\r\n 'ngInject'\r\n return DataSalesService.getPreFilterFields({\r\n showCode: DataSalesProduct.DataSalesTargetShowCode\r\n }).then(function () {\r\n return DataSalesService.data.preFilterFields[DataSalesProduct.DataSalesTargetShowCode].filter(function (x) {\r\n return !x.Op; //isoneof\r\n });\r\n });\r\n },\r\n Demographics: function (DataSalesProduct, DemographicService, FilterGroup, FilterDetail, FilterPick, ExcludedFieldPicks, IncludedFieldPicks) {\r\n 'ngInject'\r\n return DemographicService.getDemographics({ showCode: DataSalesProduct.DataSalesTargetShowCode })\r\n .then(function () {\r\n var demographics = DemographicService.data.demographics[DataSalesProduct.DataSalesTargetShowCode].filter(function (e) {\r\n return e.DataSalesAllowUserFilters;\r\n });\r\n\r\n var filterGroup = new FilterGroup('Demographics');\r\n\r\n for (var i = 0; i < demographics.length; i++) {\r\n var filterDetail = new FilterDetail(demographics[i].FieldName, demographics[i].Description);\r\n var excludedPicks = ExcludedFieldPicks.filter(function (x) { return x.FieldName.toLowerCase() === demographics[i].FieldName.toLowerCase(); });\r\n var includedPicks = IncludedFieldPicks.filter(function (x) { return x.FieldName.toLowerCase() === demographics[i].FieldName.toLowerCase(); });\r\n\r\n for (var a = 0; a < demographics[i].FieldPicks.length; a++) {\r\n if ((!excludedPicks.length || !excludedPicks.filter(function (x) { return !!x.PickIDs.filter(function (y) { return y == demographics[i].FieldPicks[a].Id; }).length; }).length)\r\n && !(includedPicks.length && !includedPicks.filter(function (x) { return !!x.PickIDs.filter(function (y) { return y == demographics[i].FieldPicks[a].Id; }).length; }).length)) {\r\n var pickDesc = '';\r\n if (demographics[i].IsPickCodeDesc) {\r\n pickDesc = demographics[i].FieldPicks[a].PickCode + ' - ' + demographics[i].FieldPicks[a].Description;\r\n } else {\r\n pickDesc = demographics[i].FieldPicks[a].Description;\r\n }\r\n filterDetail.FilterPicks[demographics[i].FieldPicks[a].PickCode] = new FilterPick(demographics[i].FieldPicks[a].PickCode, pickDesc);\r\n }\r\n }\r\n\r\n filterGroup.FilterDetails[demographics[i].FieldName] = filterDetail;\r\n }\r\n\r\n return filterGroup;\r\n });\r\n },\r\n Location: function (FilterGroup) {\r\n 'ngInject'\r\n return new FilterGroup('Location');\r\n },\r\n Countries: function (DataSalesProduct, LeadService, Location, FilterDetail, FilterPick, ExcludedFieldPicks, IncludedFieldPicks) {\r\n 'ngInject'\r\n return LeadService.getCountries({ showCode: DataSalesProduct.DataSalesTargetShowCode })\r\n .then(function () {\r\n var countries = LeadService.data.countries[DataSalesProduct.DataSalesTargetShowCode];\r\n var filterDetail = new FilterDetail('CountryCode', 'Country');\r\n var excludedPicks = ExcludedFieldPicks.filter(function (x) { return x.FieldName.toLowerCase() === filterDetail.Id.toLowerCase(); });\r\n var includedPicks = IncludedFieldPicks.filter(function (x) { return x.FieldName.toLowerCase() === filterDetail.Id.toLowerCase(); });\r\n\r\n for (var i = 0; i < countries.length; i++) {\r\n if ((!excludedPicks.length || !excludedPicks.filter(function (x) { return !!x.PickCodes.filter(function (y) { return y == countries[i].Key; }).length; }).length)\r\n && !(includedPicks.length && !includedPicks.filter(function (x) { return !!x.PickCodes.filter(function (y) { return y == countries[i].Key; }).length; }).length))\r\n //4-5-2016 - RJZ - hack to replace us value with blank\r\n filterDetail.FilterPicks[countries[i].Value === 'UNITED STATES' ? '' : countries[i].Value] = new FilterPick(countries[i].Value === 'UNITED STATES' ? '' : countries[i].Value, countries[i].Key);\r\n }\r\n\r\n Location.FilterDetails.Country = filterDetail;\r\n });\r\n },\r\n States: function (DataSalesProduct, LeadService, Location, FilterDetail, FilterPick) {\r\n 'ngInject'\r\n return LeadService.getAllStates({ showCode: DataSalesProduct.DataSalesTargetShowCode })\r\n .then(function () {\r\n var states = LeadService.data.allStates[DataSalesProduct.DataSalesTargetShowCode];\r\n var filterDetail = new FilterDetail('StateCode', 'State');\r\n\r\n for (var i = 0; i < states.length; i++) {\r\n filterDetail.FilterPicks[states[i].Value] = new FilterPick(states[i].Value, states[i].Key);\r\n }\r\n\r\n Location.FilterDetails.State = filterDetail;\r\n });\r\n },\r\n Filters: function (Demographics, Location) {\r\n 'ngInject'\r\n var filters = {};\r\n\r\n filters[Location.Name] = Location;\r\n filters[Demographics.Name] = Demographics;\r\n\r\n return filters;\r\n },\r\n DataSalesConfig: function (DataSalesService, DataSalesProduct) {\r\n 'ngInject'\r\n return DataSalesService.getConfig({\r\n showCode: DataSalesProduct.DataSalesTargetShowCode\r\n }).then(function () {\r\n return DataSalesService.data.config[DataSalesProduct.DataSalesTargetShowCode];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Filter Builder'\r\n }\r\n })\r\n .state('event.shop.dataSales.emailBuilder', {\r\n url: '/emailBuilder',\r\n controller: 'DataSalesTemplateCtrl',\r\n controllerAs: 'dataSalesTemplate',\r\n templateUrl: 'views/dataSalesTemplate.html',\r\n resolve: {\r\n Strategy: function () {\r\n 'ngInject'\r\n return undefined;\r\n },\r\n Templates: function (DataSalesProduct, DataSalesService) {\r\n 'ngInject'\r\n return DataSalesService.getTemplates({\r\n showCode: DataSalesProduct.DataSalesTargetShowCode\r\n }).then(function () {\r\n var templates = [];\r\n\r\n for (var i = 0; i < DataSalesService.data.templates[DataSalesProduct.DataSalesTargetShowCode].length; i++) {\r\n var template = angular.copy(DataSalesService.data.templates[DataSalesProduct.DataSalesTargetShowCode][i]);\r\n var bodyFields = {};\r\n\r\n for (var a = 0; a < template.BodyFields.length; a++)\r\n bodyFields[template.BodyFields[a].KeyName] = template.BodyFields[a];\r\n\r\n template.BodyFields = bodyFields;\r\n templates.push(template);\r\n }\r\n\r\n return templates;\r\n });\r\n },\r\n Email: function (DataSalesCartItem) {\r\n 'ngInject'\r\n return DataSalesCartItem.getData().email;\r\n }\r\n },\r\n params: {\r\n setSubmitted: false\r\n },\r\n data: {\r\n pageTitle: 'Email Builder'\r\n }\r\n })\r\n .state('event.shop.dataSales.mailHouse', {\r\n url: '/mailHouse',\r\n templateUrl: 'views/dataSalesMailHouse.html',\r\n controller: 'DataSalesMailHouseCtrl',\r\n controllerAs: 'dataSalesMailHouse',\r\n resolve: {\r\n MailHouse: function (DataSalesCartItem) {\r\n 'ngInject'\r\n return DataSalesCartItem.getData().mailHouse;\r\n },\r\n DataSalesConfig: function (DataSalesService, DataSalesProduct) {\r\n 'ngInject'\r\n return DataSalesService.getConfig({\r\n showCode: DataSalesProduct.DataSalesTargetShowCode\r\n }).then(function () {\r\n return DataSalesService.data.config[DataSalesProduct.DataSalesTargetShowCode];\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Mail House Information'\r\n }\r\n })\r\n .state('event.shop.dataSales.preview', {\r\n url: '/preview',\r\n templateUrl: 'views/dataSalesPreview.html',\r\n controllerAs: 'dataSalesPreview',\r\n resolve: {\r\n Email: function (DataSalesCartItem) {\r\n 'ngInject'\r\n return DataSalesCartItem.getData().email;\r\n },\r\n Template: function (DataSalesProduct, DataSalesService, Email) {\r\n 'ngInject'\r\n return DataSalesService.getTemplates({\r\n showCode: DataSalesProduct.DataSalesTargetShowCode\r\n }).then(function () {\r\n var templates = [];\r\n\r\n for (var i = 0; i < DataSalesService.data.templates[DataSalesProduct.DataSalesTargetShowCode].length; i++) {\r\n var template = angular.copy(DataSalesService.data.templates[DataSalesProduct.DataSalesTargetShowCode][i]);\r\n var bodyFields = {};\r\n\r\n for (var a = 0; a < template.BodyFields.length; a++)\r\n bodyFields[template.BodyFields[a].KeyName] = template.BodyFields[a];\r\n\r\n template.BodyFields = bodyFields;\r\n templates.push(template);\r\n }\r\n\r\n templates = templates.filter(function (x) {\r\n return x.TemplateID == Email.TemplateId;\r\n });\r\n\r\n return templates.length ? templates[0] : null;\r\n });\r\n }\r\n },\r\n controller: function ($state, $anchorScroll, Template, Email) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.email = Email;\r\n self.selectedTemplate = Template;\r\n\r\n var templateHtml = angular.copy(Template.BodyHtml);\r\n var iframe = document.getElementById('TemplatePreview');\r\n\r\n $anchorScroll();\r\n\r\n for (var key in self.selectedTemplate.BodyFields)\r\n templateHtml = templateHtml.replace(new RegExp(self.selectedTemplate.BodyFields[key].Tag, 'g'), self.email[key]);\r\n\r\n if (iframe) {\r\n iframe.contentWindow.document.body.innerHTML = '';\r\n iframe.contentWindow.document.write(templateHtml);\r\n }\r\n\r\n self.next = function () {\r\n $state.go('event.shop.dataSales.terms');\r\n };\r\n },\r\n data: {\r\n pageTitle: 'Email Review'\r\n }\r\n })\r\n .state('event.shop.dataSales.terms', {\r\n url: '/terms',\r\n templateUrl: 'views/dataSalesTerms.html',\r\n controllerAs: 'dataSalesTerms',\r\n controller: function ($state, $stateParams, $timeout, $anchorScroll, DataSalesConfig, DataSalesProduct, DataSalesCartItem, Cart) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.dataSalesConfig = DataSalesConfig;\r\n self.dataSalesCartData = DataSalesCartItem.getData();\r\n self.dataSalesProduct = DataSalesProduct;\r\n self.enableTermsCheckbox = false;\r\n self.isEmail = DataSalesProduct.ProductCode == '203';\r\n self.isDownload = DataSalesProduct.ProductCode == '204';\r\n self.isMailHouse = DataSalesProduct.ProductCode == '205';\r\n self.isSet = self.dataSalesProduct.DataSalesTierTypeCode == \"SET\";\r\n $anchorScroll();\r\n\r\n if (self.isMailHouse)\r\n self.previous = 'event.shop.dataSales.mailHouse';\r\n else if (self.isEmail)\r\n self.previous = 'event.shop.dataSales.emailBuilder';\r\n else if (!self.isSet && self.isDownload)\r\n self.previous = 'event.shop.dataSales.filterBuilder';\r\n else\r\n self.previous = \"event.shop.products\";\r\n\r\n if ($stateParams.setSubmitted)\r\n $timeout(function () { self.termsForm.$setSubmitted(); });\r\n\r\n self.saveCart = function () {\r\n Cart.$save();\r\n };\r\n\r\n self.next = function () {\r\n if (!self.termsForm.$valid)\r\n self.termsForm.$setSubmitted();\r\n else\r\n $state.go('event.shop.cart');\r\n };\r\n },\r\n resolve: {\r\n DataSalesConfig: function (DataSalesService, DataSalesProduct) {\r\n 'ngInject'\r\n return DataSalesService.getConfig({\r\n showCode: DataSalesProduct.DataSalesTargetShowCode\r\n }).then(function () {\r\n return DataSalesService.data.config[DataSalesProduct.DataSalesTargetShowCode];\r\n });\r\n }\r\n },\r\n params: {\r\n setSubmitted: false\r\n },\r\n data: {\r\n pageTitle: 'Terms & Conditions'\r\n }\r\n })\r\n //Resources states\r\n .state('event.resources', {\r\n abstract: true,\r\n template: ''\r\n })\r\n .state('event.resources.documents', {\r\n url: '/documents',\r\n templateUrl: 'views/documents.html',\r\n controller: 'DocumentsCtrl',\r\n controllerAs: 'documents',\r\n resolve: {\r\n ExhibitorResources: function (CurrentEvent, ResourceService) {\r\n 'ngInject'\r\n return ResourceService.getExhibitorResources({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var resources = angular.copy(ResourceService.data.resources[CurrentEvent.ShowCode]);\r\n\r\n return resources;\r\n });\r\n },\r\n AllResources: function (ResourceService) {\r\n 'ngInject'\r\n var subFolderName = 'ALL';\r\n return ResourceService.getResources({ subFolder: subFolderName })\r\n .then(function () {\r\n var resources = angular.copy(ResourceService.data.resources[subFolderName]);\r\n return resources;\r\n });\r\n }\r\n },\r\n data: {\r\n pageTitle: 'Exhibitor Resource Documents',\r\n feedbackName: 'ExhibitorResourceDocuments'\r\n }\r\n })\r\n .state('event.resources.videos', {\r\n url: '/videos',\r\n templateUrl: 'views/videos.html',\r\n controller: 'VideosCtrl',\r\n controllerAs: 'videos',\r\n data: {\r\n pageTitle: 'Lead Retrieval Videos',\r\n feedbackName: 'LeadRetrievalVideos'\r\n }\r\n })\r\n .state('404', {\r\n url: '/oops',\r\n templateUrl: '404.html',\r\n data: {\r\n pageTitle: 'Oops!'\r\n }\r\n });\r\n })\r\n .config(function ($provide, SearchBase, CheckoutBase) {\r\n 'ngInject'\r\n $provide.value('ActiveUserProfile', angular.copy(window.ActiveUserProfile));\r\n $provide.value('EXSConfig', angular.copy(window.EXSConfig));\r\n $provide.value('EnvironmentConfig', angular.copy(window.EnvironmentConfig));\r\n $provide.value('Search', angular.copy(SearchBase));\r\n $provide.value('Checkout', angular.copy(CheckoutBase));\r\n })\r\n .config(function (cfpLoadingBarProvider) {\r\n 'ngInject'\r\n // set loading bar preferences\r\n cfpLoadingBarProvider.includeSpinner = false;\r\n // only show the loading bar if the resolve takes more than 1 second. this prevents the user\r\n // from seeing the loading bar flash on the screen when the resolve completes quickly.\r\n // cfpLoadingBarProvider.latencyThreshold = 1000;\r\n // if(EnvironmentConfig.InAppPurchase)\r\n // \tcfpLoadingBarProvider.includeBar = false;\r\n })\r\n .run(function ($rootScope, $location, $interval, $timeout, ipCookie, UserService, ActiveUserProfile, EnvironmentConfig, $state, $window) {\r\n 'ngInject'\r\n var session = ipCookie('EPSession'),\r\n returnURL = ipCookie('EPReturnURL'),\r\n expire = ipCookie('EPExpire'),\r\n utm = ipCookie('EPUTM'),\r\n authCheckInProgress = false,\r\n topBar;\r\n\r\n $rootScope.hideFeedbackWidget = false;\r\n\r\n if (window.dataLayer && utm) {\r\n dataLayer.push({ event: 'utmChange', utm: utm });\r\n }\r\n\r\n $timeout(function () {\r\n topBar = angular.element('.top-bar');\r\n });\r\n\r\n if (session && session.ShowCode) {\r\n if (session.Location) {\r\n if (session.Location == 'shop')\r\n $location.path('event/' + session.ShowCode + '/shop/products');\r\n else if (session.Location == 'lead')\r\n $location.path('event/' + session.ShowCode + '/leads');\r\n else if (session.Location == 'eventbit')\r\n $location.path('event/' + session.ShowCode + '/dashboard/eventBit');\r\n else if (session.Location == 'attendeeData')\r\n $location.path('event/' + session.ShowCode + '/dashboard/attendeeData');\r\n else if (session.Location == 'swap' || session.Location == 'landing')\r\n $location.path('event/' + session.ShowCode + '/dashboard/swap');\r\n else if (session.Location == 'landing')\r\n $location.path('event/' + session.ShowCode + '/');\r\n else if (session.Location == 'products')\r\n $location.path('event/' + session.ShowCode + '/shop/products');\r\n else if (session.Location == 'resources')\r\n $location.path('event/' + session.ShowCode + '/resources');\r\n\r\n session.Location = null;\r\n ipCookie('EPSession', session, { path: EnvironmentConfig.ReturnURLPath });\r\n }\r\n }\r\n\r\n if (returnURL) {\r\n ipCookie.remove('EPReturnURL', { path: EnvironmentConfig.ReturnURLPath });\r\n $location.path(returnURL);\r\n }\r\n\r\n $rootScope.$watch(function () { return ipCookie('EPExpire'); }, function (newValue) {\r\n expire = newValue;\r\n });\r\n\r\n var reAuth = window.setInterval(function () {\r\n if (!authCheckInProgress && (expire - new Date()) <= 60000) {\r\n authCheckInProgress = true;\r\n\r\n if (window.confirm('Your login is about to expire. Would you like to continue using the site?')) {\r\n if (expire - new Date() > 0) {\r\n UserService\r\n .reAuth({ ignoreLoadingBar: true })\r\n .finally(function () {\r\n authCheckInProgress = false;\r\n });\r\n }\r\n else {\r\n window.clearInterval(reAuth);\r\n window.location = EnvironmentConfig.SiteRoot + 'home/logout' + (ActiveUserProfile.SWAPOnly ? '/?swap=true' : '');\r\n }\r\n }\r\n else\r\n window.location = EnvironmentConfig.SiteRoot + 'home/logout' + (ActiveUserProfile.SWAPOnly ? '/?swap=true' : '');\r\n }\r\n }, 10000);\r\n\r\n $rootScope.reAuth = function () {\r\n if (!authCheckInProgress && ((expire - new Date()) <= 300000)) {\r\n authCheckInProgress = true;\r\n UserService\r\n .reAuth({ ignoreLoadingBar: true })\r\n .finally(function () {\r\n authCheckInProgress = false;\r\n });\r\n }\r\n };\r\n\r\n $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams, error) {\r\n $rootScope.currentState = toState.name;\r\n\r\n if (topBar && topBar.hasClass('expanded'))\r\n topBar.removeClass('expanded');\r\n\r\n if (toState.redirectTo) {\r\n event.preventDefault();\r\n $state.go(toState.redirectTo, toParams, { location: 'replace' });\r\n }\r\n });\r\n\r\n $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams, error) {\r\n $rootScope.previousState = fromState.name;\r\n $rootScope.currentState = toState.name;\r\n\r\n //shop.detail, checkout, and checkoutonly will turn this on\r\n $rootScope.showActionWidget = false;\r\n\r\n $timeout(function () {\r\n var eventCode = getEventCode();\r\n $rootScope.pageTitle = (toState.data && toState.data.pageTitle) ? ((toState.data.pageTitle + (eventCode ? (' | ' + eventCode) : '')) + ' | Exhibitor Portal') :\r\n (eventCode ? (eventCode + ' | Exhibitor Portal') : 'Exhibitor Portal');\r\n\r\n $rootScope.optimizeTag = (toState.data && toState.data.optimizeTag) ? toState.data.optimizeTag : null;\r\n\r\n //google analytics tracking\r\n if (window.dataLayer) {\r\n const pageViewUrl = () => {\r\n // Do not include the specific ID(s) in the URL sent. Construct the URL from the current location\r\n // as well as the state, if applicable.\r\n let pageUrl = $window.location.pathname;\r\n\r\n // Trim trailing slash at the end\r\n if (pageUrl.slice(-1) === '/')\r\n pageUrl = pageUrl.slice(0, -1);\r\n\r\n if ($state && $state.$current && $state.$current.url && $state.$current.url.source) {\r\n // Including the '#' character that is normally in the URL seems to chop off the rest of\r\n // the URL for the data collection.\r\n pageUrl += $state.$current.url.source;\r\n\r\n // Replace show code parameter with the value of the show code\r\n pageUrl = pageUrl.replace(':showcode', eventCode);\r\n }\r\n\r\n if (['', '/'].includes(pageUrl))\r\n pageUrl = '/eventSearch'\r\n\r\n return pageUrl;\r\n };\r\n\r\n window.dataLayer.push({\r\n event: 'ngRouteChange',\r\n attributes: {\r\n route: pageViewUrl(),\r\n pageTitle: $rootScope.pageTitle\r\n }\r\n });\r\n }\r\n\r\n // Experient feedback widget\r\n $rootScope.hideFeedbackWidget = !ExperientFeedback || $rootScope.currentState.indexOf('eventBit') > -1;\r\n if (ExperientFeedback) {\r\n // Going to set the location of the widget to the state name unless a\r\n // specific name is given for it in the state's data object\r\n var location = toState.name;\r\n var data = toState.data;\r\n if (data && data.feedbackName) {\r\n location = data.feedbackName;\r\n } else {\r\n location = location.replace('root.', '').replace('event.', '').replace('surveys.', '').replace('collateral.', '');\r\n var statePath = location.split('.');\r\n if (statePath && statePath.length > 1) {\r\n location = '';\r\n for (var i = 0; i < statePath.length; i++) {\r\n location = location + (statePath[i].charAt(0).toUpperCase() + statePath[i].slice(1));\r\n }\r\n } else {\r\n location = location.charAt(0).toUpperCase() + location.slice(1);\r\n }\r\n }\r\n\r\n window.exfb = new ExperientFeedback({\r\n Application: \"ExhibitorPortal\",\r\n Location: location,\r\n Event: window.getEventCode(),\r\n UserId: window.ActiveUserProfile.Id,\r\n UserType: \"EXSEnterprise.Contact\",\r\n QuestionText: \"Is this page easy to use?\"\r\n }, \"exfb-content\");\r\n }\r\n });\r\n\r\n });\r\n\r\n //make sure we are logging errors from ui-router\r\n $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {\r\n $rootScope.currentState = fromState.name;\r\n\r\n console.log({\r\n event: event,\r\n toState: toState,\r\n toParams: toParams,\r\n fromState: fromState,\r\n fromParams: fromParams,\r\n error: error\r\n });\r\n });\r\n })\r\n .factory('ECR', function ($window, $rootScope) {\r\n 'ngInject'\r\n return {\r\n set: function (val) {\r\n $window.sessionStorage && $window.sessionStorage.setItem('extraConfirmationRecipient', val);\r\n return this;\r\n },\r\n get: function () {\r\n return $window.sessionStorage && $window.sessionStorage.getItem('extraConfirmationRecipient');\r\n },\r\n remove: function () {\r\n $window.sessionStorage && $window.sessionStorage.removeItem('extraConfirmationRecipient');\r\n }\r\n };\r\n })\r\n .factory('UtilityFactory', function () {\r\n 'ngInject'\r\n return {\r\n HTMLEncode: function (str) {\r\n var i = str.length,\r\n aRet = [];\r\n\r\n while (i--) {\r\n var iC = str[i].charCodeAt();\r\n if (iC > 160) {\r\n aRet[i] = '&#' + iC + ';';\r\n } else {\r\n aRet[i] = str[i];\r\n }\r\n }\r\n return aRet.join('');\r\n }\r\n };\r\n });\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:AccountCtrl\r\n * @description\r\n * # AccountCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var AccountCtrl = function ($q, $state, ActiveUserProfile, UserService, ShowService, OrderService) {\n 'ngInject'\r\n var self = this;\n\r\n self.stateName = $state.$current.name;\r\n self.userProfile = angular.copy(ActiveUserProfile);\r\n self.verifyEmail = self.userProfile.Email;\r\n self.oldPassword = '';\r\n self.newPassword = '';\r\n self.confirmNewPassword = '';\r\n self.waiting = false;\n self.hideOrders = ActiveUserProfile.SWAPOnly\n self.orders = null;\n self.orderHistory = {\r\n data: [],\r\n chapterSize: 5,\r\n pageSize: 5,\r\n currentChapter: 0,\r\n currentPage: 0\r\n };\n ShowService.getShows()\r\n .then(function () {\n self.shows = ShowService.data.shows;\n });\n\n self.selectedShow = null;\n\r\n self.changePassword = function () {\r\n self.waiting = true;\r\n\r\n return UserService.changePassword({\r\n data: {\r\n oldPassword: self.oldPassword,\r\n newPassword: self.newPassword,\r\n confirmNewPassword: self.confirmNewPassword\r\n }\r\n })\r\n .then(function () {\r\n self.oldPassword = '';\r\n self.newPassword = '';\r\n self.confirmNewPassword = '';\r\n self.waiting = false;\n }, function (error) {\r\n self.waiting = false;\r\n return $q.reject(error);\r\n });\r\n };\n\n self.validatePassword = function (password) {\n if (password.includes('/') || password.includes('\\\\'))\n return false;\n else\n return true;\n };\r\n\r\n self.save = function () {\r\n return UserService.save({\r\n data: {\r\n user: self.userProfile\r\n }\r\n })\r\n .then(function () {\r\n angular.extend(ActiveUserProfile, self.userProfile);\r\n });\r\n };\n\n self.getOrderHistoryForShow = function () {\n if (!self.hideOrders) {\n if (self.selectedShow && self.selectedShow.ShowCode) {\n self.orders = [];\n self.retrievingOrders = true;\n \n OrderService.getOrders({ showCode: self.selectedShow.ShowCode }).then(function () {\n self.orders = OrderService.data.orders[self.selectedShow.ShowCode];\n self.retrievingOrders = false;\r\n });\n\n self.getConfirmationHtmlForOrder = function (salesOrderId) {\r\n OrderService.getConfirmationHtml({\r\n showCode: self.selectedShow.ShowCode,\r\n salesOrderId: salesOrderId\r\n }, true)\r\n .then(function () {\r\n var confirmationHtml = OrderService.data.confirmations[self.selectedShow.ShowCode][salesOrderId];\r\n\r\n if (confirmationHtml)\r\n angular.element(window.open().document.body).html(confirmationHtml);\r\n });\r\n };\n } else {\n self.orders = [];\r\n }\r\n }\r\n }\n\n \n \n\n \n \r\n };\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('AccountCtrl', AccountCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:AddressCtrl\r\n * @description\r\n * # AddressCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var AddressCtrl = function ($timeout, $state, $anchorScroll, CartTotal, CurrentEvent, Addresses, Countries, States, AdditionalInfo, Checkout, AddressService, EnvironmentConfig) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.isRecommendationEvent = window.RecommendationEvents.toString().split(',').includes(CurrentEvent.ShowCode);\r\n self.addresses = Addresses;\r\n self.countries = Countries;\r\n self.states = States;\r\n self.checkout = Checkout;\r\n self.editMode = !Addresses.length;\r\n self.editAddress = {};\r\n self.cartTotal = CartTotal;\r\n self.environmentConfig = EnvironmentConfig;\r\n self.boothList = AdditionalInfo.BoothList || [];\r\n self.currentEvent = CurrentEvent;\r\n self.addressControl = {};\r\n\r\n $anchorScroll();\r\n\r\n self.USA = Countries.filter(function(x) {\r\n return x.CountryCode === 'US';\r\n })[0];\r\n\r\n if(!self.addresses.length)\r\n self.editAddress = {\r\n CountryId: self.USA.Id\r\n };\r\n\r\n if (!self.checkout.address) {\r\n var preferred = self.addresses.length ? self.addresses.filter(function (x) {\r\n return x.IsPreferred;\r\n }) : null;\r\n\r\n self.checkout.address = (preferred && preferred.length) ? preferred[0] :\r\n ((self.addresses && self.addresses.length) ? self.addresses[0] : null);\r\n }\r\n\r\n if (!self.checkout.boothId && self.boothList && self.boothList.length) {\r\n self.checkout.boothId = self.boothList[0].showExhibitorBoothId;\r\n }\r\n\r\n self.next = function() {\r\n if (self.addressControl.editMode && !self.addresses.length) {\r\n if (!self.addressControl.addressForm.$valid) {\r\n self.addressControl.addressForm.$setSubmitted();\r\n }\r\n else {\r\n self.addressControl.save().then(function () {\r\n $state.go('event.shop.checkout');\r\n });\r\n }\r\n }\r\n else if (self.addressControl.editMode) {\r\n self.addressControl.save().then(function () {\r\n $state.go('event.shop.checkout');\r\n });\r\n }\r\n else if (!self.addressControl.editMode && !self.checkout.address) {\r\n window.alert('Please make a selection before proceeding.');\r\n }\r\n else if(self.checkout.address.AddressTypeCode !== 'BILLING'){\r\n self.editAddress = self.checkout.address;\r\n\r\n self.addressControl.save(true).then(function() {\r\n $state.go('event.shop.checkout');\r\n });\r\n }\r\n else\r\n $state.go('event.shop.checkout');\r\n };\r\n\r\n self.save = function(force) {\r\n if(force || self.addressForm.$valid) {\r\n if(self.editAddress.AddressTypeCode !== 'BILLING')\r\n self.editAddress.Id = 0;\r\n\r\n \tangular.extend(self.editAddress,\r\n {\r\n \t\tAddressTypeCode: 'BILLING',\r\n \t\tCountryName: self.editAddress.CountryId ? self.countries.filter(function(x) {\r\n \t\t\treturn x.Id === self.editAddress.CountryId;\r\n \t\t})[0].CountryName : undefined\r\n \t});\r\n\r\n \treturn AddressService.save({\r\n \t\tdata: {\r\n \t\t\tshowCode: CurrentEvent.ShowCode,\r\n \t\t\taddresses: (function(){\r\n \t\t\t\tif(self.editAddress.IsPreferred){\r\n \t\t\t\t\tvar oldPreferred = self.addresses.filter(function(x) {\r\n \t\t\t\t\t\treturn x.Id !== self.editAddress.Id && x.IsPreferred;\r\n \t\t\t\t\t});\r\n\r\n \t\t\t\t\tif(oldPreferred.length){\r\n \t\t\t\t\t\tvar modified = oldPreferred.map(function(x) {\r\n \t\t\t\t\t\t\tx.IsPreferred = false;\r\n \t\t\t\t\t\t\treturn x;\r\n \t\t\t\t\t\t});\r\n\r\n \t\t\t\t\t\tmodified.push(self.editAddress);\r\n\r\n \t\t\t\t\t\treturn modified;\r\n \t\t\t\t\t}\r\n \t\t\t\t\telse\r\n \t\t\t\t\t\treturn [self.editAddress];\r\n \t\t\t\t}\r\n \t\t\t\telse\r\n \t\t\t\t\treturn [self.editAddress];\r\n \t\t\t})()\r\n \t\t}\r\n \t})\r\n \t.then(function() {\r\n \t\tAddressService.getBillingAddresses({}, true)\r\n \t\t\t.then(function() {\r\n //add\r\n if(!self.editAddress.Id){\r\n //scan the existing address array and find the id that is missing to determine\r\n //which address is our new one\r\n for(var i = 0; i < AddressService.data.billingAddresses.length; i++)\r\n if(!self.addresses.filter(function(x) { return x.Id === AddressService.data.billingAddresses[i].Id; }).length){\r\n self.checkout.address = AddressService.data.billingAddresses[i];\r\n break;\r\n }\r\n }\r\n //edit\r\n else {\r\n self.checkout.address = AddressService.data.billingAddresses.filter(function(x) { return x.Id === self.editAddress.Id; })[0];\r\n }\r\n\r\n self.addresses = AddressService.data.billingAddresses;\r\n \t\t\t\tself.editMode = false;\r\n \t\t\t});\r\n \t});\r\n }\r\n };\r\n\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.controller('AddressCtrl', AddressCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.controller:BadgeSelectionCtrl\r\n * @description\r\n * # BadgeSelectionCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n var BadgeSelectionCtrl = function ($q, $timeout, $state, LeadService, CurrentEvent) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.ID = '';\r\n\r\n \tself.next = function() {\r\n \t\tif(self.badgeForm.$valid) {\r\n \t\t\treturn LeadService.activateDevKit({\r\n \t\t\t\tparams: {\r\n \t\t\t\t\tconnectKey: self.ID,\r\n \t\t\t\t\tshowCode: CurrentEvent.ShowCode\r\n \t\t\t\t}\r\n \t\t\t}).then(function(data){\r\n \t\t\t\tif(data)\r\n \t\t\t\t\t$state.go('event.leadUpload', { contactId: data });\r\n \t\t\t});\r\n \t\t}\r\n \t\telse {\r\n \t\t\tvar d = $q.defer();\r\n\r\n \t\t\t$timeout(function() {\r\n \t\t\t\tself.badgeForm.$setSubmitted();\r\n \t\t\t\td.reject();\r\n \t\t\t});\r\n\r\n \t\t\treturn d.promise;\r\n \t\t}\r\n \t};\r\n\t};\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.controller('BadgeSelectionCtrl', BadgeSelectionCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:BusinessCardDetailCtrl\r\n * @description\r\n * # Business Card Detail\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var BusinessCardDetailCtrl = function ($state, $anchorScroll, $location, $filter, $sce, BusinessCardLeadService, LeadExportService, EnvironmentConfig, CurrentEvent, BusinessCard, ExportHeaders, ActiveUserProfile, HasPurchasedEventBit) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.businesscard = BusinessCard;\r\n self.editMode = false;\r\n self.exportHeaders = ExportHeaders;\r\n self.hasPurchasedEventBit = HasPurchasedEventBit;\r\n\r\n self.exportUrl = $sce.trustAsResourceUrl(EnvironmentConfig.SiteRoot + 'export/');\r\n self.filename = 'lead-' + CurrentEvent.ShowCode + '-' + new Date().toJSON().slice(0, 10);\r\n self.filedata = '';\r\n self.filetype = '';\r\n\r\n self.localRating = self.businesscard.Rating ? self.businesscard.Rating : 0;\r\n\r\n self.search = {\r\n collateral: {\r\n sort: 'SentDate',\r\n sortDirection: true\r\n }\r\n };\r\n\r\n $anchorScroll();\r\n\r\n self.ratingLeave = function () {\r\n self.localRating = self.businesscard.Rating ? self.businesscard.Rating : 0;\r\n };\r\n\r\n self.setRating = function (rating) {\r\n self.businesscard.Rating = rating;\r\n self.localRating = self.businesscard.Rating ? self.businesscard.Rating : 0;\r\n };\r\n\r\n self.save = function () {\r\n return BusinessCardLeadService\r\n .saveBusinessCardLeads({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n businessCards: [self.businesscard]\r\n }\r\n })\r\n .then(function () {\r\n for (var i = 0; i < BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode].length; i++)\r\n if (BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode][i].ImageKey == self.businesscard.ImageKey) {\r\n self.businesscard = angular.copy(BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode][i]);\r\n break;\r\n }\r\n });\r\n };\r\n\r\n self.edit = function () {\r\n self.editMode = !self.editMode;\r\n\r\n if (self.editMode) {\r\n $location.hash('Edit');\r\n }\r\n else {\r\n $location.hash('');\r\n }\r\n };\r\n\r\n self.postLeadsForExport = function (filetype) {\r\n if (typeof dataLayer !== 'undefined') {\r\n if (filetype.toLowerCase() === 'csv') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Lead Detail', 'eventAction': 'Download CSV', 'eventLabel': CurrentEvent.ShowCode });\r\n } else {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Lead Detail', 'eventAction': 'Download Excel', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n }\r\n\r\n var data = LeadExportService.getExportCSV(CurrentEvent.ShowCode, self.exportHeaders, [self.businesscard], filetype);\r\n self.filedata = btoa(RawDeflate.deflate(encodeURIComponent(data))).replace(/\\//g, '-').replace(/\\+/g, '.').replace(/=/g, '_');\r\n self.filetype = filetype;\r\n\r\n setTimeout(function () { angular.element('#ExportForm').submit(); }, 0);\r\n };\r\n\r\n\r\n self.share = function () {\r\n //build mailto link\r\n var subject = 'Lead info from ' + CurrentEvent.TradeShowName;\r\n var body = '';\r\n\r\n //contact info\r\n body += 'First Name: ' + self.businesscard.FirstName + '\\r\\n';\r\n body += 'Last Name: ' + self.businesscard.LastName + '\\r\\n';\r\n body += 'Title: ' + self.businesscard.Title + '\\r\\n';\r\n body += 'Company: ' + self.businesscard.Company + '\\r\\n';\r\n\r\n body += 'Address: ' + self.businesscard.Address + '\\r\\n';\r\n\r\n body += 'Phone: ' + self.businesscard.Phone + '\\r\\n';\r\n body += 'Email: ' + self.businesscard.Email + '\\r\\n';\r\n\r\n //notes\r\n body += '\\r\\nNotes: \\r\\n' + self.businesscard.Notes + '\\r\\n \\r\\n';\r\n\r\n // other\r\n body += 'Capture Date: ' + $filter('date')(self.businesscard.LeadDate, 'short', self.businesscard.TimeZoneOffset);\r\n\r\n if (typeof dataLayer !== 'undefined') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Business Card Detail', 'eventAction': 'Share', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n\r\n window.location.href = 'mailto:?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body);\r\n };\r\n\r\n self.delete = function () {\r\n if (window.confirm('Are you sure you want to delete this lead?')) {\r\n\r\n if (typeof dataLayer !== 'undefined') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Business Card Detail', 'eventAction': 'DeleteBusinessCardLead', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n\r\n return BusinessCardLeadService\r\n .deleteBusinessCardLead({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n key: self.businesscard.ImageKey\r\n }\r\n })\r\n .then(function () {\r\n $state.go('event.leads');\r\n });\r\n }\r\n }\r\n };\r\n\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('BusinessCardDetailCtrl', BusinessCardDetailCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:CartCtrl\r\n * @description\r\n * # CartCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var CartCtrl = function ($rootScope, $scope, $stateParams, $anchorScroll, $state, $q, Cart, AllAvailableProducts, ProductsService, DataSalesService, CurrentEvent, AdditionalInfo, ngCart, Checkout, OrderService, CartTotal, EnvironmentConfig, UserEmail, ECR, Errors, Addresses, Countries, States, AddressService) {\r\n 'ngInject'\r\n var self = this;\r\n var products = [];\r\n var p;\r\n\r\n self.isRecommendationEvent = window.RecommendationEvents.toString().split(',').includes(CurrentEvent.ShowCode);\r\n self.environmentConfig = EnvironmentConfig;\r\n self.cartTotal = CartTotal;\r\n self.errors = Errors;\r\n self.showCoupon = true;\r\n self.addresses = Addresses;\r\n self.countries = Countries;\r\n self.states = States;\r\n self.currentEvent = CurrentEvent;\r\n self.addressControl = {};\r\n\r\n $stateParams.productsHash = $stateParams.productsHash.split(',');\r\n\r\n $anchorScroll();\t\t\r\n\r\n if (self.environmentConfig.QuickShop) {\r\n self.checkout = Checkout;\r\n\r\n self.processQuickOrder = function () {\r\n if (self.addressControl.editMode && !self.addresses.length) {\r\n if (!self.addressControl.addressForm.$valid)\r\n return $q.when(self.addressControl.addressForm.$setSubmitted());\r\n else\r\n return self.addressControl.save().then(function () {\r\n $scope.shop.processOrder();\r\n });\r\n }\r\n else if (self.addressControl.editMode)\r\n return self.addressControl.save().then(function () {\r\n $scope.shop.processOrder();\r\n });\r\n else if (!self.addressControl.editMode && !self.checkout.address) {\r\n window.alert('Please provide a billing address before proceeding.');\r\n return $q.when(undefined);\r\n }\r\n else if (self.checkout.address.AddressTypeCode != 'BILLING') {\r\n self.editAddress = self.checkout.address;\r\n\r\n return self.addressControl.save(true).then(function () {\r\n $scope.shop.processOrder();\r\n });\r\n }\r\n else\r\n return $scope.shop.processOrder();\r\n };\r\n }\r\n\r\n var swapActivationUpsellProduct = AllAvailableProducts.filter(function (x) { return x.ProductCode == '312'; }); \r\n\r\n if (swapActivationUpsellProduct.length) {\r\n \tswapActivationUpsellProduct = swapActivationUpsellProduct[0];\r\n\r\n \tif (!Cart.getItems().filter(function (x) { return x.getData().productCode == '312'; }).length) {\r\n \t\tself.showUpsell = true;\r\n \t\tself.swapActivationUpsellProduct = swapActivationUpsellProduct;\r\n \t}\r\n }\r\n \r\n\r\n self.extraConfirmationRecipient = ECR.get() === undefined || ECR.get() == null ? UserEmail : ECR.get();\r\n $scope.$watch('cart.extraConfirmationRecipient', function (val) {\r\n ECR.set(val);\r\n }, true);\r\n\r\n for (var i = 0; i < $stateParams.productsHash.length; i++)\r\n if (p = $stateParams.productsHash[i].trim())\r\n products.push(p);\r\n\r\n if (products.length) {\r\n var productCode;\r\n var productQuantity;\r\n\r\n Cart.empty();\r\n\r\n for (i = 0; i < products.length; i++) {\r\n p = products[i].split(':');\r\n\r\n productCode = p[0];\r\n productQuantity = p[1];\r\n\r\n p = AllAvailableProducts.filter(function (x) { return x.ProductCode == productCode; });\r\n\r\n if (p.length === 1) {\r\n p = p[0];\r\n\r\n var discount = {\r\n id: p.ProductDiscountID,\r\n limit: p.MaxAvailableQty,\r\n max: p.MaxDiscountsPerShow,\r\n min: p.MinQualifyingQty,\r\n price: p.DiscountedUnitPrice\r\n };\r\n\r\n Cart.addItem(\r\n p.ProductPriceID,\r\n p.ProductName,\r\n p.PackageTotalPrice,\r\n productQuantity,\r\n discount,\r\n {\r\n thumbnail: p.ProductImage,\r\n note: p.MoreInfoTypeCode == 'CUSTOMPRINT' ? '' : undefined,\r\n productCode: p.ProductCode,\r\n promoCode: p.ProductCode == '1010' ? 'ENGAGED' : '' //use the ENGAGED promoCode if this is in an upsell\r\n });\r\n }\r\n }\r\n }\r\n\r\n self.next = function() {\r\n var dataSalesValidation = [];\r\n\r\n return $q.all((function() {\r\n var promises = [];\r\n\r\n promises.push(ProductsService.validateCart({\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n addressId: Checkout.address ? Checkout.address.Id : null,\r\n couponCode: Cart.getCouponCode(),\r\n cart: (function() {\t\t\t\t\t\t\t\r\n return Cart.getItems().map(function(x) { \r\n return {\r\n productPriceId: x.getId(),\r\n quantity: x.getQuantity(),\r\n note: x.getData().note,\r\n dataSalesListId: x.getData().dataSalesListId,\r\n dataSalesTargetShowCode: x.getData().targetShowCode, \r\n promoCode: x.getData().promoCode\r\n };\r\n });\r\n })() \r\n }\r\n }));\r\n\r\n var cartItems = Cart.getItems();\r\n for (var i = 0; i < cartItems.length; i++) {\r\n if (!!cartItems[i].getData().dataSalesTierTypeCode) {\r\n dataSalesValidation.push(cartItems[i].getData().timestamp);\r\n promises.push(DataSalesService.validate(CurrentEvent.ShowCode, cartItems[i].getData()));\r\n }\r\n }\r\n\r\n return promises;\r\n })())\r\n .then(function(results) {\r\n var hasErrors = false;\r\n\r\n // PDJ, need to start at 1, those are where DSE errors come from\r\n // Do not see where results[0] is being tested\r\n for (var i = 1; i < results.length; i++) {\r\n \tif (results[i].length) {\r\n \t\tself.errors.dataSales[dataSalesValidation[i - 1]] = results[i];\r\n \t\thasErrors = hasErrors || results[i].length;\r\n \t}\r\n }\r\n\r\n if(hasErrors)\r\n $anchorScroll();\r\n else\r\n $state.go('event.shop.address');\r\n });\r\n };\r\n\r\n self.persistExtraConfirmationRecipient = function (val) {\r\n ECR.set(val);\r\n };\r\n\r\n $rootScope.$on('ngCart:change', function () {\r\n var dataSalesValidation = [];\r\n var errors = {};\r\n\r\n return $q.all((function() {\r\n var promises = [];\r\n\r\n // PDJ: This same code is in app.js, changes here needed there\r\n var cartItems = Cart.getItems();\r\n for (var i = 0; i < cartItems.length; i++) {\r\n if (!!cartItems[i].getData().dataSalesTierTypeCode) {\r\n dataSalesValidation.push(cartItems[i].getData().timestamp);\r\n promises.push(DataSalesService.validate(CurrentEvent.ShowCode, cartItems[i].getData()));\r\n }\r\n }\r\n\r\n return promises;\r\n })())\r\n .then(function (results) {\r\n // PDJ: This same code is in app.js, changes here needed there\r\n for (var i = 0; i < results.length; i++) {\r\n if (results[i].length) {\r\n errors.dataSales = errors.dataSales || {};\r\n errors.dataSales[dataSalesValidation[i]] = results[i];\r\n }\r\n }\r\n\r\n self.errors = errors;\r\n });\r\n });\r\n };\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('CartCtrl', CartCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:CheckoutCtrl\r\n * @description\r\n * # CheckoutCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var CheckoutCtrl = function ($anchorScroll, $rootScope, CartTotal, CurrentEvent, EnvironmentConfig, Cart, Checkout, AllAvailableProducts, modalFactory) {\r\n 'ngInject'\r\n var self = this;\r\n\n self.isRecommendationEvent = window.RecommendationEvents.toString().split(',').includes(CurrentEvent.ShowCode);\n\n $rootScope.showActionWidget = true;\r\n\r\n $anchorScroll();\n\n const cart = Cart.getCart();\n self.doesOrderHaveEventBit = false;\n cart.items.forEach(item => {\n const product = AllAvailableProducts.find(p => p.ProductPriceID == item._id);\n if (product.ProductCode == 1510) {\n self.doesOrderHaveEventBit = true;\n } else if (product.PackageItemIDList) {\n const productIDList = product.PackageItemIDList.split(',').map(x => parseInt(x));\n const products = AllAvailableProducts.filter(p => _.some(productIDList, id => id == p.Id));\n self.doesOrderHaveEventBit = self.doesOrderHaveEventBit || _.some(products, p => p.ProductCode == 1510);\n };\r\n })\n Checkout.doesOrderHaveEventBit = self.doesOrderHaveEventBit;\n\r\n\t\tself.cartTotal = CartTotal;\r\n self.environmentConfig = EnvironmentConfig;\n\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('CheckoutCtrl', CheckoutCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:CheckoutOnlyCtrl\r\n * @description\r\n * # CheckoutOnlyCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var CheckoutOnlyCtrl = function ($q, $state, $anchorScroll, $rootScope, OrderService, pendingOrder, Checkout, AllAvailableProducts) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n if (!pendingOrder) {\r\n $state.go('event.shop.cart');\r\n }\r\n else if (pendingOrder && pendingOrder.OrderStatus !== 'BalanceDue') {\r\n $state.go('event.shop.confirmation', { salesOrderId: pendingOrder.PrimaryID, isPayOnly: 1 });\r\n }\r\n else {\r\n $rootScope.showActionWidget = true;\r\n }\r\n\r\n self.doesOrderHaveEventBit = false;\r\n\r\n //add the product image to the transaction\r\n for (var i = 0; i < pendingOrder.OrderPurchases.length; i++) {\r\n var product = _.find(AllAvailableProducts, function (p) { return p.Id === pendingOrder.OrderPurchases[i].ProductID; });\r\n if (product) {\r\n pendingOrder.OrderPurchases[i][\"ProductImage\"] = product.ProductImage;\r\n if (product.ProductCode == 1510) {\r\n self.doesOrderHaveEventBit = true;\r\n } else if (product.PackageItemIDList) {\r\n const productIDList = product.PackageItemIDList.split(',').map(x => parseInt(x));\r\n const products = AllAvailableProducts.filter(p => _.some(productIDList, id => id == p.Id));\r\n self.doesOrderHaveEventBit = self.doesOrderHaveEventBit || _.some(products, p => p.ProductCode == 1510);\r\n };\r\n }\r\n }\r\n Checkout.doesOrderHaveEventBit = self.doesOrderHaveEventBit;\r\n\r\n $anchorScroll();\r\n\r\n self.pendingOrder = pendingOrder;\r\n\r\n self.processOrder = function () {\r\n var d = $q.defer();\r\n\r\n if (!self.agreeToTerms) {\r\n window.alert('You must agree to the Terms and Conditions before proceeding.');\r\n return $q.when(undefined);\r\n }\r\n\r\n if (Checkout.doesOrderHaveEventBit && !self.ebitAcknowledgement) {\r\n window.alert('You must acknowledge eventBit requirements.')\r\n return $q.when(undefined);\r\n }\r\n if (self.processingOrder != true) {\r\n self.processingOrder = true;\r\n OrderService.processPendingOrder({\r\n data: pendingOrder.PrimaryID\r\n })\r\n .then(function (data) {\r\n if (data.toLowerCase().indexOf('http') > -1) {\r\n window.location = data;\r\n }\r\n else if (angular.isNumber(data)) {\r\n $state.go('event.shop.confirmation', { salesOrderId: data });\r\n }\r\n else {\r\n self.processingOrder = false;\r\n window.alert('There was an error processing your order.');\r\n }\r\n })\r\n .finally(function () {\r\n d.resolve();\r\n });\r\n }\r\n return d.promise;\r\n };\r\n\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('CheckoutOnlyCtrl', CheckoutOnlyCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:CollateralCtrl\r\n * @description\r\n * # CollateralCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var CollateralCtrl = function ($state, $q, ActiveUserProfile, CurrentEvent, CollateralService, Collaterals, CollateralConfig, ScrollToBottom) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.collateralConfig = {};\r\n\r\n self.collaterals = Collaterals;\r\n self.collateralConfig = CollateralConfig;\r\n self.collateralEmailBody = replaceBreaks(self.collateralConfig.EmailBody);\r\n\r\n if (ScrollToBottom.value) {\r\n setTimeout(function () { window.scrollTo(0, document.body.scrollHeight) }, 0);\r\n ScrollToBottom.value = false;\r\n }\r\n\r\n self.saveCollateralConfig = function (form) {\r\n if (!form.$valid) {\r\n form.$setSubmitted();\r\n return false;\r\n }\r\n\r\n self.collateralConfig.ContactID = ActiveUserProfile.Id;\r\n self.collateralConfig.EmailBody = replaceNewLines(self.collateralEmailBody);\r\n\r\n CollateralService.saveCollateralConfig({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n collateralConfig: self.collateralConfig\r\n }\r\n }).then(function (data) {\r\n self.collateralConfig = data;\r\n self.collateralEmailBody = replaceBreaks(self.collateralConfig.EmailBody);\r\n });\r\n };\r\n\r\n self.editCollateral = function (collateral) {\r\n $state.go('event.collateral.collateral', { id: collateral.CollateralID });\r\n };\r\n\r\n function replaceNewLines(body) {\r\n return body ? body.replace(/(?:\\r\\n|\\r|\\n)/g, '
') : body;\r\n };\r\n\r\n function replaceBreaks(body) {\r\n return body ? body.replace(new RegExp('
', 'g'), '\\n') : body;\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('CollateralCtrl', CollateralCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:CollateralAddCtrl\r\n * @description\r\n * # ShopCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var CollateralAddCtrl = function ($state, $q, ActiveUserProfile, CurrentEvent, CollateralService, Collateral, CollateralConfig, SWAPExhibitor, $timeout, EXSConfig, $upload, ScrollToBottom) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.collateral = {\r\n CollateralConfigID: CollateralConfig.Id\r\n };\r\n self.exsConfig = EXSConfig;\r\n self.currentEvent = CurrentEvent;\r\n self.activeUserProfile = ActiveUserProfile;\r\n self.SWAPExhibitor = SWAPExhibitor;\r\n self.isExternalBrowser = window.isExternalBrowser.toLowerCase() === 'true';\r\n ScrollToBottom.value = true;\r\n self.showUnableToUploadMessage = false;\r\n self.showToolTip = false;\r\n\r\n /*if (self.isExternalBrowser === false) {\r\n self.uploadRadioButtonStyle = { \"opacity\": \"0.5\", \"cursor\": \"not-allowed\" };\r\n } else {\r\n self.uploadRadioButtonStyle = {};\r\n }\r\n*/\r\n if (Collateral && Collateral.length) {\r\n self.collateral = Collateral[0];\r\n }\r\n\r\n self.collateral.cType = self.collateral.URL ? 'l' : 'f';\r\n // If the user has come from the internal web view of the mobile app,\r\n // the mobile upload section of collateral is disabled - so we must\r\n // default to l (upload a link)\r\n\r\n\r\n if (self.isExternalBrowser === false) {\r\n self.collateral.cType = 'l'\r\n }\r\n\r\n self.saveCollateral = function (form) {\r\n if (form && !form.$valid) {\r\n form.$setSubmitted();\r\n return false;\r\n }\r\n\r\n CollateralService.saveCollateral({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n collateral: angular.extend(self.collateral, self.collateral.cType == 'l' ? { FilePath: undefined } : { URL: undefined })\r\n }\r\n }).then(function (c) {\r\n $state.go('event.collateral.collaterals');\r\n });\r\n }\r\n\r\n self.deleteCollateral = function () {\r\n CollateralService.deleteCollateral({ showCode: CurrentEvent.ShowCode, collateralId: self.collateral.CollateralID })\r\n .then(function () {\r\n $state.go('event.collateral.collaterals');\r\n });\r\n }\r\n\r\n self.onFileSelect = function ($files) {\r\n self.errorMessages = [];\r\n\r\n self.upload = $upload.upload({\r\n url: EnvironmentConfig.SiteRoot + 'api/collateral/uploadFile', //upload.php script, node.js route, or servlet url\r\n //method: 'POST' or 'PUT',\r\n //headers: {'header-key': 'header-value'},\r\n //withCredentials: true,\r\n data: { showCode: CurrentEvent.ShowCode },\r\n file: $files, // or list of files ($files) for html5 only\r\n //fileName: 'doc.jpg' or ['1.jpg', '2.jpg', ...] // to modify the name of the file(s)\r\n // customize file formData name ('Content-Disposition'), server side file variable name.\r\n //fileFormDataName: myFile, //or a list of names for multiple files (html5). Default is 'file'\r\n // customize how data is added to formData. See #40#issuecomment-28612000 for sample code\r\n //formDataAppender: function(formData, key, val){}\r\n })\r\n // .progress(function(evt) {\r\n // console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));\r\n // })\r\n .success(function (data) {\r\n if (data && data.length > 0)\r\n self.collateral.FilePath = data[0];\r\n })\r\n .error(function (data) {\r\n if (data && data.ExceptionMessage)\r\n self.errorMessages = [data.ExceptionMessage];\r\n else\r\n self.errorMessages = ['There was a problem uploading your file.'];\r\n });\r\n };\r\n\r\n self.linkUrl = function (url) {\r\n\r\n if (url)\r\n if (url.trim().toLowerCase().indexOf('http') === 0)\r\n return url;\r\n else\r\n return \"http://\" + url;\r\n\r\n return url;\r\n }\r\n\r\n self.handleUploadRadioSelect = function () {\r\n if (!self.isExternalBrowser) {\r\n self.showUnableToUploadMessage = true;\r\n } else {\r\n self.collateral.cType = 'f'\r\n }\r\n }\r\n\r\n self.closeModal = function () {\r\n if (self.showUnableToUploadMessage) {\r\n self.showUnableToUploadMessage = false;\r\n }\r\n }\r\n\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('CollateralAddCtrl', CollateralAddCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:ConfirmationCtrl\r\n * @description\r\n * # ConfirmationCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var ConfirmationCtrl = function ($window, $stateParams, $state, $q, $timeout, Cart, ShowService, ConfirmationHtml, EXSConfig, EnvironmentConfig, ActiveUserProfile, CurrentEvent, OrderService, ECR, ipCookie) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.EXSConfig = EXSConfig;\r\n self.environmentConfig = EnvironmentConfig;\n self.isPayOnly = $window.SalesOrderId;\r\n\r\n if (!self.environmentConfig.InAppPurchase && ConfirmationHtml)\r\n setTimeout(function() {\r\n var iframe = document.getElementById('Confirmation');\r\n\r\n if(iframe)\r\n iframe.contentWindow.document.write(ConfirmationHtml);\r\n }, 0);\r\n\r\n Cart.empty();\r\n //START GTM CODE\r\n OrderService.getOrder({ salesOrderId: $stateParams.salesOrderId }, true).then(function success(response) {\r\n var order = response.data;\r\n var productsForGTM = [];\r\n \r\n for (var i = 0; i < order.OrderPurchases.length; i++) {\r\n var gtmItem = order.OrderPurchases[i];\r\n var gtmCategoryCode = '';\r\n for (var x = 0; x < order.OrderSummary.length; x++) {\r\n var gtmSummary = order.OrderSummary[x];\r\n\r\n if (gtmSummary.ProductID === gtmItem.ProductID) {\r\n gtmCategoryCode = gtmSummary.CategoryCode;\r\n break;\r\n }\r\n }\r\n productsForGTM.push({\r\n 'id': gtmItem.ProductID,\r\n 'name': gtmItem.ProductName,\r\n 'price': (gtmItem.TotalAmount - gtmItem.Taxes)/ gtmItem.Quantity, //Accounts for all adjustments e.g. ((UnitCost - UnitAdjmt) * Quantity) + TransAdjustment [no taxes]\r\n 'category': gtmCategoryCode,\r\n 'quantity': gtmItem.Quantity,\r\n 'coupon': gtmItem.CouponName,\n 'dimension1': gtmItem.ProductCode\r\n });\r\n }\r\n window.dataLayer = window.dataLayer || [];\r\n\n dataLayer.push({\r\n 'event': 'purchase',\r\n 'ecommerce': {\r\n 'purchase': {\r\n 'actionField': {\r\n 'id': order.PrimaryID,\r\n 'affiliation': order.ShowCode,\r\n 'revenue': order.TotalPayments === 0 ? order.TotalPayments : order.TotalPayments *= -1, // Total transaction value (incl. tax and shipping)\r\n 'tax': order.TotalSalesTax,\r\n 'coupon': order.CouponName\r\n },\r\n 'products': productsForGTM\r\n }\r\n }\r\n });\r\n });\r\n //END GTM CODE\r\n\r\n //refresh orders\r\n OrderService.getOrders({ showCode: CurrentEvent.ShowCode }, true);\r\n\r\n //send extra confirmation\r\n if (ECR.get() !== undefined && ECR.get() != null) {\r\n if(ECR.get())\r\n OrderService.sendExtraConfirmation({\r\n data: {\r\n salesOrderId: $stateParams.salesOrderId,\r\n email: ECR.get()\r\n }\r\n });\r\n\r\n ECR.remove();\r\n }\r\n\r\n self.returnToSWAP = function () {\r\n var session = ipCookie('EPSession');\r\n\r\n if (typeof injectedObject !== 'undefined') {\r\n // Android\r\n injectedObject.done();\r\n } else if (typeof WP !== 'undefined') {\r\n // Windows Phone\r\n new WP().what('done');\r\n } else if (session.Re !== 'undefined' && session.Re != '') {\r\n // Web Mobile\r\n window.location = session.Re;\r\n } else {\r\n // iOS\r\n window.location = \"js-call:done\";\r\n }\r\n };\r\n\r\n self.shareActivation = function () {\r\n var session = ipCookie('EPSession');\r\n\r\n if (typeof injectedObject !== 'undefined') {\r\n // Android\r\n injectedObject.share();\r\n } else if (typeof WP !== 'undefined') {\r\n // Windows Phone\r\n new WP().what('share');\r\n } else if (session.Re !== 'undefined' && session.Re != '') {\r\n // Web Mobile\r\n window.location = session.Re;\r\n } else {\r\n // iOS\r\n window.location = \"js-call:share\";\r\n }\r\n };\r\n\r\n self.print = function () {\r\n document.getElementById('Confirmation').contentWindow.document.execCommand('print', false, null) || document.getElementById('Confirmation').contentWindow.print();\r\n };\r\n\r\n self.goToDashboard = function() {\r\n var d = $q.defer();\r\n\r\n if(ShowService.data.currentShow && ShowService.data.activations && ShowService.data.activations[CurrentEvent.ShowCode]){\r\n $timeout(function() {\r\n $state.go('event.dashboard.landing');\r\n d.resolve();\r\n });\r\n }\r\n else\r\n OrderService.getOrders({ showCode: CurrentEvent.ShowCode })\r\n .then(function() {\r\n var orders = OrderService.data.orders[CurrentEvent.ShowCode];\r\n\r\n for(var i = 0; i < orders.length; i++){\r\n for(var a = 0; a < orders[i].Transactions.length; a++){\r\n if(orders[i].Transactions[a].DataSalesListId && orders[i].Transactions[a].TransTypeCode === 'PUR' && orders[i].Transactions[a].TransStatus !== 'VOIDED'){\r\n $state.go('event.dashboard.emailCampaigns');\r\n d.resolve();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n $state.go('event.dashboard.landing');\r\n d.resolve();\r\n });\r\n };\r\n };\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('ConfirmationCtrl', ConfirmationCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:DataSalesCtrl\r\n * @description\r\n * # Data Sales Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var DataSalesCtrl = function ($window, $document, $scope, $state, $timeout, $anchorScroll, $rootScope, $q, $tour, DataSalesService, DataSalesExecuteContext, DataSalesProduct, Search, Filters, DataSalesConfig, DataSalesCartItem, Cart, TourHistory, CurrentEvent, ActiveUserProfile) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n\t\t//shouldn't be here\r\n\t\tif(DataSalesProduct.DataSalesTierTypeCode == 'SET'){\r\n\t\t\t$state.go('event.shop.dataSales.emailBuilder');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.expressions = DataSalesCartItem.getData().expressions;\r\n\t\tself.dataSalesProduct = DataSalesProduct;\r\n\t\tself.filters = Filters;\r\n\t\tself.filterOptions = [];\r\n\t\tself.search = Search.dataSales;\r\n\t\tself.config = DataSalesConfig;\r\n\t\tself.tour = $tour;\r\n\t\tself.isDownload = DataSalesProduct.ProductCode == '204';\r\n\t\tself.isMailHouse = DataSalesProduct.ProductCode == '205';\r\n\t\t$anchorScroll();\r\n\r\n self.simple = !(function (expressions) {\r\n for(var i = 0; i < expressions.length; i++)\r\n for(var a = 0; a < expressions[i].nodes.length; a++)\r\n if(expressions[i].nodes[a].operands.length > 1)\r\n return true;\r\n else if(expressions[i].nodes[a].operands[0].operator != 'oneOf')\r\n return true;\r\n })(self.expressions);\r\n\r\n\t\tself.startTour = function() {\r\n\t\t\tif($window.confirm('Taking the tour will reset the current filter. Do you still want to proceed?')) {\r\n\t\t\t\tself.expressions = [];\r\n\t\t\t\tself.expressions.push({\r\n\t include: 'true',\r\n\t nodes: [\r\n\t {\r\n\t operands: [\r\n\t {\r\n\t \toperator: 'oneOf',\r\n\t values: []\r\n\t }\r\n\t ]\r\n\t }\r\n\t ]\r\n\t });\r\n\t self.applied = false;\r\n\t execCtx();\r\n\t $tour.end();\r\n\t $tour.start();\r\n\t $anchorScroll();\r\n\r\n if (window.dataLayer) {\r\n window.dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Data Sales', 'eventAction': 'Tour Restart', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n\t\t\t}\r\n\t\t\t// else {\r\n\t\t\t// \t$tour.end();\r\n\t\t\t// \t$tour.start();\r\n\t\t\t// \t$anchorScroll();\r\n\t\t\t// }\r\n\t\t};\r\n\r\n if (window.dataLayer) {\r\n $scope.$on('$stateChangeStart', function (fromState, toState) {\r\n if (!DataSalesCartItem.getData().dataSalesListId && toState.name != 'event.shop.dataSales.emailBuilder')\r\n window.dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Data Sales', 'eventAction': 'List Build Bounce', 'eventLabel': CurrentEvent.ShowCode });\r\n });\r\n }\r\n\r\n\t\tvar tourNext = $tour.next;\r\n\t\tvar tourEnd = $tour.end;\r\n\r\n\t\t$tour.end = function() {\r\n if (window.dataLayer) {\r\n if ($tour.current() < 11)\r\n window.dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Data Sales', 'eventAction': 'Tour Close', 'eventLabel': CurrentEvent.ShowCode });\r\n else\r\n window.dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Data Sales', 'eventAction': 'Tour Complete', 'eventLabel': CurrentEvent.ShowCode });\r\n\t\t\t}\r\n\r\n\t\t\ttourEnd();\r\n\t\t};\r\n\r\n\t\t$tour.next = function() {\r\n\t\t\tif(self.simple && $tour.current() === 2){\r\n\t\t\t\t$tour.current(4);\r\n\t\t\t}\r\n\r\n\t\t\ttourNext();\r\n\t\t};\r\n\r\n\t\tif(!TourHistory.dataSales){\r\n\t\t\t$tour.start();\r\n\t\t\tTourHistory.dataSales = true;\r\n\t\t\tTourHistory.save();\r\n\t\t}\r\n\t\telse\r\n\t\t\t$tour.end();\r\n\r\n\t\tfor(var filterGroupKey in Filters)\r\n\t\t\tfor(var filterDetailKey in Filters[filterGroupKey].FilterDetails)\r\n\t\t\t\tself.filterOptions.push({\r\n\t\t\t\t\tfilterGroupName: Filters[filterGroupKey].Name,\r\n\t\t\t\t\tfilterDetail: Filters[filterGroupKey].FilterDetails[filterDetailKey]\r\n\t\t\t\t});\r\n\r\n\t\tif(DataSalesCartItem.getData().cachedCount !== undefined){\r\n\t\t\tself.count = DataSalesCartItem.getData().cachedCount;\r\n\t\t\tself.showCount = true;\r\n\t\t}\r\n\r\n\t\tself.applied = !!self.expressions[0].nodes[0].operands[0].values.length;\r\n\r\n\t\tself.hasSelections = function() {\r\n\t\t\treturn !!self.expressions[0].nodes[0].operands[0].values.length;\r\n\t\t};\r\n\r\n\t\tself.getValues = function (obj) {\r\n\t\t var arr = [];\r\n\r\n\t\t for (var key in obj) \r\n\t\t arr.push(obj[key]);\t\t \r\n\r\n\t\t return arr;\r\n\t\t}\r\n\r\n\t\tfunction execCtx() {\r\n\t\t\tif(execCtx.debounce)\r\n\t\t\t\tclearTimeout(execCtx.debounce);\r\n\r\n\t\t\tif(DataSalesService.execute.defer)\r\n\t\t\t\tDataSalesService.execute.defer.cancel();\r\n\r\n\t\t\tself.showCount = false;\r\n\r\n\t\t\texecCtx.debounce = setTimeout(function() {\r\n\t\t\t\tDataSalesService.execute({\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tshowCode: DataSalesProduct.DataSalesTargetShowCode,\r\n\t\t\t\t\t\tdataSalesExecuteContext: new DataSalesExecuteContext(self.expressions, 'EMAIL')\r\n\t\t\t\t\t},\r\n\t\t\t\t\tignoreLoadingBar: true\r\n\t\t\t\t}).then(function(data) {\r\n\t\t\t\t\tDataSalesCartItem.getData().cachedCount = self.count = getCachedCount(data);\r\n\t\t\t\t\tCart.$save();\r\n\t\t\t\t\t$rootScope.$broadcast('ngCart:change', {});\r\n\t\t\t\t\tself.showCount = true;\r\n\t\t\t\t});\r\n\t\t\t}, 500);\r\n\t\t}\r\n\r\n\t\tfunction getCachedCount(obj) {\r\n\t\t\tfor(var prop in obj) {\r\n\t\t\t\tif(Object.prototype.toString.call(obj[prop]) === '[object Object]' && obj[prop].Summary !== undefined)\r\n\t\t\t\t\treturn obj[prop].Summary.CachedCount;\r\n\t\t\t\telse if(Object.prototype.toString.call(obj[prop]) === '[object Object]')\r\n\t\t\t\t\treturn getCachedCount(obj[prop]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//finalize the list and proceed to the next step\r\n\t\tself.next = function() {\r\n\t\t\tvar d = $q.defer();\r\n\r\n\t\t\tif(!self.applied){\t\t\t\t\r\n\t\t\t\tsetTimeout(function() { \r\n\t\t\t\t\td.reject();\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\twindow.alert('Please hit the \\'Apply\\' button to activate this filter.');\t\r\n\t\t\t\t}, 0);\r\n\r\n\t\t\t\treturn d.promise;\r\n\t\t\t}\r\n\t\t\telse if(self.count === 0) {\r\n\t\t\t\tsetTimeout(function() { \r\n\t\t\t\t\td.reject();\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\twindow.alert('Your count is 0, cannot proceed!');\t\t\t\t\t\r\n\t\t\t\t}, 0);\r\n\r\n\t\t\t\treturn d.promise;\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn DataSalesService.finalize({\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tshowCode: DataSalesProduct.DataSalesTargetShowCode,\r\n\t\t\t\t\t\tdataSalesExecuteContext: new DataSalesExecuteContext(self.expressions, 'EMAIL')\r\n\t\t\t\t\t},\r\n\t\t\t\t\tignoreLoadingBar: true\r\n\t\t\t\t}).then(function(data) {\r\n\t\t\t\t\t//in the rare case that the user's cached count has become stale before finalization, alert them to the update\r\n\t\t\t\t\tif(DataSalesCartItem.getData().cachedCount != data.FinalCount)\r\n\t\t\t\t\t\twindow.alert('Please note that your count has changed since the last time the query was run. Your new count and price has been updated accordingly.');\r\n\r\n\t\t\t\t\tDataSalesCartItem.getData().cachedCount = self.count = data.FinalCount;\r\n\t\t\t\t\tDataSalesCartItem.getData().dataSalesListId = data.DataSalesListID;\r\n\t\t\t\t\tDataSalesCartItem.getData().finalExpressions = angular.copy(self.expressions);\r\n\t\t\t\t\tDataSalesCartItem.getData().execDate = Date.now();\r\n\t\t\t\t\tCart.$save();\r\n\t\t\t\t\t$rootScope.$broadcast('ngCart:change', {});\r\n\r\n\t\t\t\t\tif (!self.isDownload && !self.isMailHouse)\r\n\t\t\t\t\t\t$state.go('event.shop.dataSales.emailBuilder');\r\n\t\t\t\t\telse if(self.isMailHouse)\r\n\t\t\t\t\t\t$state.go('event.shop.dataSales.mailHouse');\r\n\t\t\t\t\telse\r\n\t\t\t\t\t $state.go('event.shop.dataSales.terms');\r\n\t\t\t\t});\t\t\t\t\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.listSelect = function(operand, filterDetail, filter) {\r\n\t\t\tvar filterOption = self.filterOptions.filter(function(e) {\r\n\t\t\t\treturn e.filterGroupName === filter.Name && e.filterDetail.Id == filterDetail.Id;\r\n\t\t\t});\r\n\r\n\t\t\tif(filterOption.length)\r\n\t\t\t\toperand.detail = filterOption[0];\r\n\r\n\t\t\tif($tour.isActive())\r\n\t\t\t\t$tour.next();\r\n\t\t};\r\n\r\n\t\tself.changeInclude = function() {\r\n\t\t\texecCtx();\r\n\t\t};\r\n\r\n\t\tself.onFilterChange = function(operand) {\r\n\t\t\tif(operand.values.length)\r\n\t\t\t\texecCtx();\r\n\r\n\t\t\toperand.values = [];\r\n\t\t\toperand.operator = 'oneOf';\r\n\t\t};\r\n\r\n\t\tself.changeOperator = function(operand) {\r\n\t\t\tif(operand.detail)\r\n\t\t\t\texecCtx();\r\n\t\t};\r\n\r\n\t\tself.applyFilter = function(editing) {\r\n\t\t\tediting.enabled = false;\r\n\t\t\tself.applied = true;\r\n\r\n\t\t\tif($tour.isActive())\r\n\t\t\t\t$tour.next();\r\n\t\t};\r\n\r\n\t\tself.toggleFilterPick = function(e, operand, id) {\r\n\t\t\tif(e.target.checked)\r\n\t\t\t\toperand.values.push(id);\r\n\t\t\telse\r\n\t\t\t\toperand.values.splice(operand.values.indexOf(id), 1);\r\n\r\n //Set countryCode filters to include United States along with\r\n //an empty string when United States filter is selected\r\n if (operand.detail.filterDetail.Id == 'CountryCode' && id == '')\r\n {\r\n if (e.target.checked)\r\n operand.values.push('United States');\r\n else if (operand.values.includes('United States'))\r\n operand.values.splice(operand.values.indexOf('United States'), 1);\r\n }\r\n\r\n\t\t\texecCtx();\r\n\r\n\t\t\tif($tour.isActive() && $tour.current() === 5)\r\n\t\t\t\t$tour.next();\r\n\t\t};\r\n\r\n\t\tself.getRandomNum = function (min, max) {\r\n\t\t\treturn Math.floor(Math.random() * (max - min)) + min;\r\n\t\t};\r\n\r\n\t\tself.all = function(operand) {\r\n\t\t\toperand.values = [];\r\n\r\n\t\t\tfor(var id in operand.detail.filterDetail.FilterPicks)\r\n\t\t\t\toperand.values.push(id);\r\n if (operand.detail.filterDetail.Id == 'CountryCode' && operand.values.includes(''))\r\n operand.values.push('United States');\r\n\r\n\t\t\texecCtx();\r\n\t\t};\r\n\r\n\t\tself.none = function(operand) {\r\n\t\t\toperand.values = [];\r\n\r\n\t\t\texecCtx();\r\n\t\t};\r\n\r\n\t\tself.removeOperand = function(nodes, nodeIndex, operandIndex) {\r\n\t\t\tif(!nodes[nodeIndex].operands[operandIndex].detail || window.confirm('Are you sure you want to remove this filter?')){\r\n\t\t\t\tnodes[nodeIndex].operands.splice(operandIndex, 1);\r\n\r\n\t\t\t\tif(!nodes[nodeIndex].operands.length && nodes.length > 1)\r\n\t\t\t\t\tnodes.splice(nodeIndex, 1);\r\n\t\t\t\telse if(!nodes[nodeIndex].operands.length)\r\n\t\t\t\t\tnodes[nodeIndex].operands.push({\r\n\t\t\t\t\t\toperator: 'oneOf',\r\n\t\t\t\t\t\tvalues: []\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\texecCtx();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.removeExpression = function(expressions, index) {\r\n\t\t\tif(window.confirm('Are you sure you want to remove this filter group?')){\r\n\t\t\t\texpressions.splice(index, 1);\r\n\t\t\t\texecCtx();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.more = function(pageSize) {\r\n\t\t\tpageSize.current = '';\r\n\t\t};\r\n\r\n\t\tself.collapse = function(pageSize, value) {\r\n\t\t\tpageSize.current = value;\r\n\t\t};\r\n\r\n\t\tself.getFilterLimit = function(pageSize) {\r\n\t\t\treturn pageSize.current;\r\n\t\t};\r\n\r\n\t\tself.or = function(operands, index) {\r\n\t\t\toperands.splice(index + 1, 0, {\r\n\t\t\t\toperator: 'oneOf',\r\n\t\t\t\tvalues: []\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.and = function(nodes, index) {\r\n\t\t\tnodes.splice(index + 1, 0, { operands: [ {\r\n\t\t\t\toperator: 'oneOf',\r\n\t\t\t\tvalues: []\r\n\t\t\t} ] });\r\n\t\t};\r\n\r\n\t\tself.addFilter = function(expressions) {\r\n\t\t\texpressions.push({\r\n include: 'true',\r\n nodes: [\r\n {\r\n operands: [\r\n {\r\n \toperator: 'oneOf',\r\n values: []\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n\t\t};\r\n\r\n\t\tself.import = function (e) {\r\n\t\t\tsetTimeout(function() { \r\n\t\t\t\tangular.element(e.target).parent().find('input').click();\r\n\t\t\t}, 0);\r\n\t\t};\r\n\t\t\r\n\t\tself.onFileSelect = function (file) {\r\n\t\t\tvar fileReader = new FileReader();\r\n\t\t\tfile = file[0];\r\n\t\t\t\r\n\t\t\tfileReader.onload = function(e) {\r\n\t\t\t\t//console.log(e.target.result);\r\n\t\t\t\t$scope.$apply(function() { \r\n\t\t\t\t\tself.expressions = JSON.parse(e.target.result);\r\n\t\t\t\t\texecCtx();\r\n\t\t\t\t\tself.applied = true;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tfileReader.readAsText(file);\t\t\t\r\n\t\t}\r\n\r\n\t\tself.export = function () {\r\n\t\t\tvar charset = \"utf-8\";\r\n\t\t\tvar filename = \"List-Export-\" + Date.now() + \".json\";\t\t\t \r\n\t\t\tvar blob = new Blob([angular.toJson(self.expressions)], {\r\n\t\t\t\ttype: \"application/json;charset=\" + charset + \";\"\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tif (window.navigator.msSaveOrOpenBlob) {\r\n \tnavigator.msSaveBlob(blob, filename);\r\n\t\t\t} else {\r\n\t\t\t\tvar downloadLink = angular.element('');\r\n\t\t\t\tdownloadLink.attr('href', window.URL.createObjectURL(blob));\r\n\t\t\t\tdownloadLink.attr('download', filename);\r\n\t\t\t\tdownloadLink.attr('target', '_blank');\r\n\r\n\t\t\t\t$document.find('body').append(downloadLink);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\tdownloadLink[0].click();\r\n\t\t\t\tdownloadLink.remove();\r\n\t\t\t\t}, null);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.controller('DataSalesCtrl', DataSalesCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:DataSalesMailHouseCtrl\r\n * @description\r\n * # Data Sales Mail House Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n// After configuring the list build criteria, display page for user to enter mail house information:\r\n// - Configurable text field for instructions to exhibitor user (SWAPMan)\r\n// - Mail House Company, Address, Address2, City, State, Country, Postal Code, Phone, Email\r\n// -require all fields except Address2\r\n// - Upload collateral (PDF only, 20 MB per file limit, no file limit) Store in DB or on S3.\r\n// - Need to be able to add and remove files\r\n// - Need to be able to download uploaded files\r\n\r\n(function (angular, window, undefined) {\r\n var DataSalesMailHouseCtrl = function ($q, $upload, $anchorScroll, $window, $timeout, $state, $stateParams, $scope, EXSConfig, CurrentEvent, DataSalesProduct, DataSalesService, MailHouse, DataSalesConfig, ActiveUserProfile, EnvironmentConfig) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\t\t$anchorScroll();\t\t\t\r\n\t\t\t\t\r\n\t\tself.dataSalesProduct = DataSalesProduct;\t\t\t\t\r\n\t\tself.mailHouse = MailHouse;\t\r\n\t\tself.files = MailHouse.DataSalesAttachments;\t\r\n\t\tself.config = DataSalesConfig;\r\n\t\tself.exsConfig = EXSConfig;\r\n\t\tself.currentEvent = CurrentEvent;\r\n\t\tself.activeUserProfile = ActiveUserProfile;\r\n\t\t\r\n\t\tself.next = function() {\r\n\t\t\tvar d = $q.defer();\r\n\r\n\t\t\t$timeout(function() {\r\n\t\t\t\tif(!self.mailHouseForm.$valid || !self.files.length){\r\n\t self.mailHouseForm.$setSubmitted();\r\n\t d.reject();\r\n\t\t\t\t}\r\n\t else{\r\n\t \t$state.go('event.shop.dataSales.terms');\r\n\t \td.resolve();\r\n\t }\r\n \t});\r\n\r\n \treturn d.promise;\r\n\t\t};\r\n\r\n\t\t self.onFileSelect = function($files) {\t\t\r\n\t\t\tself.upload = $upload.upload({\r\n\t\t\t\t\turl: EnvironmentConfig.SiteRoot + 'api/dataSales/uploadFile', //upload.php script, node.js route, or servlet url\r\n\t\t\t\t\t//method: 'POST' or 'PUT',\r\n\t\t\t\t\t//headers: {'header-key': 'header-value'},\r\n\t\t\t\t\t//withCredentials: true,\r\n\t\t\t\t\tdata: { showCode: CurrentEvent.ShowCode },\r\n\t\t\t\t\tfile: $files, // or list of files ($files) for html5 only\r\n\t\t\t\t\t//fileName: 'doc.jpg' or ['1.jpg', '2.jpg', ...] // to modify the name of the file(s)\r\n\t\t\t\t\t// customize file formData name ('Content-Disposition'), server side file variable name.\r\n\t\t\t\t\t//fileFormDataName: myFile, //or a list of names for multiple files (html5). Default is 'file'\r\n\t\t\t\t\t// customize how data is added to formData. See #40#issuecomment-28612000 for sample code\r\n\t\t\t\t\t//formDataAppender: function(formData, key, val){}\r\n\t\t\t\t})\r\n\t\t\t\t// .progress(function(evt) {\r\n\t\t\t\t// console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));\r\n\t\t\t\t// })\r\n\t\t\t\t.success(function(data) {\t\t\r\n\t\t\t\t\tdata.forEach(function(url) {\r\n\t\t\t\t\t\tself.files.push(url);\r\n\t\t\t\t\t})\t\t\t\t\t\r\n\t\t\t\t})\r\n\t\t\t\t.error(function(data) {\r\n\t\t\t\t\tif(data && data.ExceptionMessage)\r\n\t\t\t\t\t\tself.errorMessages = [data.ExceptionMessage];\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tself.errorMessages = ['There was a problem uploading your file.'];\r\n\t\t\t\t});\r\n\t\t};\r\n\t\t\t\r\n\t\tself.removeFile = function(x) {\r\n\t\t\tself.files.splice(self.files.indexOf(x), 1);\t\t\t\r\n\t\t}\r\n\t};\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.controller('DataSalesMailHouseCtrl', DataSalesMailHouseCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:DataSalesTemplateCtrl\r\n * @description\r\n * # Data Sales Template Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var DataSalesTemplateCtrl = function ($q, $anchorScroll, $window, $timeout, $state, $stateParams, $scope, Strategy, Templates, Email, CurrentEvent, DataSalesProduct, Cart, DataSalesService, DataSalesCartItem, UtilityFactory) {\r\n 'ngInject'\r\n var self = this;\r\n var SCHEDULE_BUFFER_HOURS = 8; //TODO: replace with injected config setting\r\n var now = new Date();\r\n\r\n self.editMode = !Cart;\r\n self.email = self.editMode ? angular.copy(Email) : Email;\r\n self.dataSalesProduct = DataSalesProduct;\r\n self.templates = Templates;\r\n self.debounce = 1000;\r\n $anchorScroll();\r\n\r\n if (self.email.TemplateId)\r\n self.selectedTemplate = self.templates.filter(function (e) { return e.TemplateID == self.email.TemplateId; })[0];\r\n else {\r\n self.selectedTemplate = self.templates[0];\r\n self.email.TemplateId = self.templates[0].TemplateID;\r\n }\r\n\r\n self.dateOptions = {\r\n min: now\r\n };\r\n\r\n self.datePicker = {};\r\n self.timePicker = {};\r\n\r\n if ($stateParams.setSubmitted)\r\n $timeout(function () { self.emailForm.$setSubmitted(); });\r\n\r\n if (!self.editMode)\r\n $scope.$watch('dataSalesTemplate.email', function (newValue, oldValue) {\r\n if (!angular.equals(newValue, oldValue))\r\n Cart.$save();\r\n }, true);\r\n else {\r\n $scope.$parent.$parent.dashboard.hide = true;\r\n var d = new Date(self.email.ScheduledExecutionDate);\r\n\r\n $timeout(function () {\r\n self.datePicker.set('select', [d.getFullYear(), d.getMonth(), d.getDate()]);\r\n self.timePicker.set('select', [d.getHours(), d.getMinutes()]);\r\n self.onDateChange.init = true;\r\n });\r\n }\r\n\r\n\r\n self.onDateChange = function () {\r\n if (!self.onDateChange.init) {\r\n self.timePicker.clear();\r\n\r\n now = new Date();\r\n var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n var scheduledExecutionDate = new Date(self.email.ScheduledExecutionDate);\r\n\r\n if (scheduledExecutionDate.getTime() === today.getTime())\r\n self.timePicker.set('min', [now.getHours(), now.getMinutes() > 30 ? 60 : 30]);\r\n else\r\n self.timePicker.set('min', [0, 0]);\r\n }\r\n else\r\n self.onDateChange.init = false;\r\n };\r\n\r\n self.onTemplateChange = function (template) {\r\n self.email.TemplateId = template.TemplateID;\r\n };\r\n\r\n self.getPreview = function (template) {\r\n var templateHtml = angular.copy(template.BodyHtml);\r\n var iframe = document.getElementById('TemplatePreview');\r\n\r\n for (var key in self.selectedTemplate.BodyFields)\r\n templateHtml = templateHtml.replace(new RegExp(self.selectedTemplate.BodyFields[key].Tag, 'g'), self.email[key]);\r\n\r\n if (iframe) {\r\n iframe.contentWindow.document.body.innerHTML = '';\r\n iframe.contentWindow.document.write(templateHtml);\r\n self.showPreview = true;\r\n }\r\n };\r\n\r\n self.showEmailSpecification = function () {\r\n $window.open('http://md.swap.mge360.com/content/exhibitor/HTML_Best_Practices_Exb_Portal.pdf', '_blank');\r\n };\r\n\r\n self.onFileSelect = function (files) {\r\n var allowedFileTypes = ['image/png', 'image/jpeg', 'image/gif'];\r\n\r\n for (var i = 0; i < files.length; i++) {\r\n var file = files[i];\r\n\r\n if (allowedFileTypes.indexOf(file.type) === -1) {\r\n window.alert('Invalid file type!');\r\n return;\r\n }\r\n\r\n if (typeof FileReader !== 'undefined' && file.type.indexOf('image') > -1) {\r\n var fileReader = new FileReader();\r\n fileReader.readAsDataURL(files[i]);\r\n\r\n fileReader.onload = function (e) {\r\n $timeout(function () {\r\n if (e.target.result.length > 2000000) {\r\n files.splice(i, 1);\r\n window.alert('Image is greater than 2MB!');\r\n self.email.DataSalesExhibitorImage = null;\r\n $scope.$apply();\r\n }\r\n else {\r\n var tempUrl = window.URL || window.webkitURL;\r\n var img = new Image();\r\n var obj = tempUrl.createObjectURL(file);\r\n var width = 0, height = 0;\r\n img.onload = function () {\r\n width = this.width;\r\n height = this.height;\r\n if (width > 600) {\r\n height = (height / width) * 600;\r\n width = 600;\r\n }\r\n var canvas = document.createElement(\"canvas\");\r\n canvas.width = width;\r\n canvas.height = height;\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.mozImageSmoothingEnabled = false;\r\n ctx.webkitImageSmoothingEnabled = false;\r\n ctx.msImageSmoothingEnabled = false;\r\n ctx.imageSmoothingEnabled = false;\r\n ctx.drawImage(this, 0, 0, width, height);\r\n var dataurl = canvas.toDataURL(file.type);\r\n self.email.DataSalesExhibitorImage = dataurl;\r\n $scope.$apply();\r\n }\r\n img.src = obj;\r\n }\r\n });\r\n };\r\n }\r\n }\r\n };\r\n\r\n self.next = function () {\r\n var d = $q.defer();\r\n\r\n $timeout(function () {\r\n if (!self.emailForm.$valid) {\r\n self.emailForm.$setSubmitted();\r\n d.reject();\r\n }\r\n else {\r\n $state.go('event.shop.dataSales.preview');\r\n d.resolve();\r\n }\r\n });\r\n\r\n return d.promise;\r\n };\r\n\r\n self.save = function () {\r\n var d = $q.defer();\r\n\r\n if (!self.emailForm.$valid) {\r\n self.emailForm.$setSubmitted();\r\n d.reject();\r\n }\r\n else {\r\n DataSalesService.saveStrategy({\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n strategy: {\r\n activityFocus: 'DSE',\r\n strategyType: 'BLAST',\r\n subjectLine: self.email.SubjectLine,\r\n primaryID: $stateParams.id,\r\n templateId: self.email.TemplateId,\r\n messageConfigs: (function (templates, templateId) {\r\n var messageConfigs = [];\r\n var template = templates.filter(function (e) { return e.TemplateID == templateId; });\r\n\r\n if (template.length && (template = template[0])) {\r\n for (var a = 0; a < template.BodyFields.length; a++) {\r\n if (template.BodyFields[a].KeyName === 'DataSalesExhibitorBody') {\r\n messageConfigs.push({\r\n keyName: template.BodyFields[a].KeyName,\r\n itemValue: UtilityFactory.HTMLEncode(self.email[template.BodyFields[a].KeyName])\r\n });\r\n } else {\r\n messageConfigs.push({\r\n keyName: template.BodyFields[a].KeyName,\r\n itemValue: self.email[template.BodyFields[a].KeyName]\r\n });\r\n }\r\n }\r\n }\r\n\r\n return messageConfigs;\r\n })(DataSalesService.data.templates[CurrentEvent.ShowCode], self.email.TemplateId),\r\n scheduledExecutionDate: new Date(self.email.ScheduledExecutionDate + ' ' + self.email.ScheduledExecutionTime).toUTCString()\r\n }\r\n }\r\n }).then(function () {\r\n DataSalesService.getEmailCampaigns({ showCode: CurrentEvent.ShowCode }, true)\r\n .then(function () {\r\n $state.go('event.dashboard.emailCampaigns', {}, { reload: true });\r\n d.resolve();\r\n });\r\n });\r\n }\r\n\r\n return d.promise;\r\n };\r\n\r\n self.sendingTest = false;\r\n self.sendTestEmail = function () {\r\n\r\n if (!self.testEmails) {\r\n alert('You must provide an email address');\r\n return;\r\n }\r\n\r\n if (!self.email.SubjectLine) {\r\n alert('You must provide a subject.');\r\n return;\r\n }\r\n\r\n self.sendingTest = true;\r\n //Call Data Sales Service to Email Template.\r\n DataSalesService.sendTestEmail({\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n strategy: {\r\n strategyType: 'BLAST',\r\n subjectLine: self.email.SubjectLine,\r\n primaryID: $stateParams.id,\r\n templateId: self.email.TemplateId,\r\n dataSalesListId: DataSalesCartItem ? DataSalesCartItem.getData().dataSalesListId : Strategy.DataSalesListID,\r\n messageConfigs: (function (templates, templateId) {\r\n var messageConfigs = [];\r\n var template = templates.filter(function (e) { return e.TemplateID == templateId; });\r\n\r\n if (template.length && (template = template[0])) {\r\n for (var a = 0; a < template.BodyFields.length; a++) {\r\n if (template.BodyFields[a].KeyName === 'DataSalesExhibitorBody') {\r\n messageConfigs.push({\r\n keyName: template.BodyFields[a].KeyName,\r\n itemValue: UtilityFactory.HTMLEncode(self.email[template.BodyFields[a].KeyName])\r\n });\r\n } else {\r\n messageConfigs.push({\r\n keyName: template.BodyFields[a].KeyName,\r\n itemValue: self.email[template.BodyFields[a].KeyName]\r\n });\r\n }\r\n }\r\n }\r\n\r\n return messageConfigs;\r\n })(DataSalesService.data.templates[CurrentEvent.ShowCode], self.email.TemplateId),\r\n scheduledExecutionDate: new Date(self.email.ScheduledExecutionDate + ' ' + self.email.ScheduledExecutionTime).toUTCString()\r\n },\r\n emails: self.testEmails\r\n }\r\n }).then(function (status) {\r\n //\r\n self.showTestModal = false;\r\n self.sendingTest = false;\r\n\r\n if (status)\r\n window.alert('Test Email Sent Successfully!');\r\n else\r\n window.alert('Test Email Send Failed!');\r\n });\r\n\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('DataSalesTemplateCtrl', DataSalesTemplateCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:DocumentsCtrl\r\n * @description\r\n * # Documents Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n const DocumentsCtrl = function ($filter, ExhibitorResources, AllResources, Search) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.search = Search.resources;\r\n\r\n var ordered = $filter('orderBy')(ExhibitorResources.concat(AllResources), 'Title');\r\n\r\n for (var i = 0; i < ordered.length; i++)\r\n ordered[i].DisplayOrder = i;\r\n\r\n self.baseResources = angular.copy(ordered);\r\n self.paginated = self.resources = angular.copy(ordered);\r\n\r\n self.resourceClicked = function (event, linkText, downloadUrl) {\r\n event.preventDefault();\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'DownloadResource',\r\n 'DisplayName': linkText\r\n });\r\n\r\n window.open(downloadUrl, '_blank');\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('DocumentsCtrl', DocumentsCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:EmailCampaignsCtrl\r\n * @description\r\n * # Email Campaigns Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var EmailCampaignsCtrl = function ($state, $scope, $q, $sce, DataSalesService, CurrentEvent, EmailCampaigns, Templates, Search, DataSalesExpression, Demographics, Locations, AttendeeListDownloads, DownloadDemographics, DownloadLocations, EnvironmentConfig, EXSConfig, ActiveUserProfile) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.campaigns = angular.copy(EmailCampaigns);\r\n self.showPreview = false;\r\n self.search = Search.dataSales;\r\n self.attendeeListDownloads = AttendeeListDownloads;\r\n self.showCode = CurrentEvent.ShowCode;\r\n self.dataSalesListId = undefined;\r\n self.filename = \"\";\r\n self.exportType = \"\";\r\n self.exportUrl = $sce.trustAsResourceUrl(EnvironmentConfig.SiteRoot + 'dataSalesExport/');\r\n self.exsConfig = EXSConfig;\r\n self.currentEvent = CurrentEvent;\r\n self.activeUserProfile = ActiveUserProfile;\r\n\r\n $scope.$parent.dashboard.hide = false;\r\n\r\n function isComplex(expressions) {\r\n for (var i = 0; i < expressions.length; i++)\r\n for (var a = 0; a < expressions[i].nodes.length; a++)\r\n if (expressions[i].nodes[a].operands.length > 1)\r\n return true;\r\n else if (expressions[i].nodes[a].operands[0].operator != 'oneOf')\r\n return true;\r\n }\r\n\r\n for (var i = 0; i < self.campaigns.length; i++) {\r\n if (self.campaigns[i].Strategy.ExecutionDate)\r\n self.campaigns[i].Date = self.campaigns[i].Strategy.ExecutionDate;\r\n else\r\n self.campaigns[i].Date = '';\r\n\r\n self.campaigns[i].ProductName = self.campaigns[i].Strategy.DisplayName;\r\n self.campaigns[i].TargetShowCode = self.campaigns[i].Strategy.ShowCode;\r\n self.campaigns[i].StrategyType = self.campaigns[i].Strategy.StrategyType;\r\n self.campaigns[i].ApprovalStatus = self.campaigns[i].Strategy.ApprovalStatus;\r\n\r\n self.campaigns[i].MessageConfigs = self.campaigns[i].Strategy.MessageConfigs.reduce(\r\n function (acc, curr) { return (curr.ItemValue && (acc[curr.KeyName] = curr.ItemValue) && acc) || acc; }, {})\r\n\r\n for (var x = 0; x < self.attendeeListDownloads.length; x++) {\r\n if (self.campaigns[i].Strategy.DataSalesListID == self.attendeeListDownloads[x].Transaction.DataSalesListId) {\r\n self.campaigns[i].Date = self.attendeeListDownloads[x].Date;\r\n self.campaigns[i].ProductName = self.attendeeListDownloads[x].ProductName;\r\n }\r\n }\r\n\r\n if (self.campaigns[i].ListInfo && self.campaigns[i].ListInfo.ContextRaw) {\r\n self.campaigns[i].ListInfo.expressions = new DataSalesExpression(angular.fromJson(self.campaigns[i].ListInfo.ContextRaw), angular.extend({}, Locations[self.campaigns[i].Strategy.TargetShowCode].FilterDetails, Demographics[self.campaigns[i].Strategy.TargetShowCode].FilterDetails));\r\n self.campaigns[i].ListInfo.complex = isComplex(self.campaigns[i].ListInfo.expressions);\r\n }\r\n }\r\n\r\n for (var i = 0; i < self.attendeeListDownloads.length; i++) {\r\n self.attendeeListDownloads[i].StrategyType = '';\r\n self.attendeeListDownloads[i].ApprovalStatus = 'APPROVED';\r\n\r\n for (var x = 0; x < self.campaigns.length; x++) {\r\n if (self.attendeeListDownloads[i].Transaction.DataSalesListId == self.campaigns[x].Strategy.DataSalesListID) {\r\n self.attendeeListDownloads[i].StrategyType = self.campaigns[x].Strategy.StrategyType;\r\n self.attendeeListDownloads[i].ApprovalStatus = self.campaigns[x].Strategy.ApprovalStatus;\r\n }\r\n }\r\n\r\n if (self.attendeeListDownloads[i].ListInfo && self.attendeeListDownloads[i].ListInfo.ContextRaw) {\r\n self.attendeeListDownloads[i].ListInfo.expressions = new DataSalesExpression(angular.fromJson(self.attendeeListDownloads[i].ListInfo.ContextRaw), angular.extend({}, DownloadLocations[self.attendeeListDownloads[i].TargetShowCode].FilterDetails, DownloadDemographics[self.attendeeListDownloads[i].TargetShowCode].FilterDetails));\r\n self.attendeeListDownloads[i].ListInfo.complex = isComplex(self.attendeeListDownloads[i].ListInfo.expressions);\r\n }\r\n }\r\n\r\n self.more = function (pageSize) {\r\n pageSize.current = '';\r\n };\r\n\r\n self.getPreview = function (campaign) {\r\n var template = Templates.filter(function (x) { return x.TemplateID == campaign.Strategy.TemplateID; })[0];\r\n var templateHtml = angular.copy(template.BodyHtml);\r\n var iframe = document.getElementById('TemplatePreview');\r\n\r\n for (var i = 0; i < campaign.Strategy.MessageConfigs.length; i++) {\r\n if (template.BodyFields[campaign.Strategy.MessageConfigs[i].KeyName])\r\n templateHtml = templateHtml.replace(new RegExp(template.BodyFields[campaign.Strategy.MessageConfigs[i].KeyName].Tag, 'g'), campaign.Strategy.MessageConfigs[i].ItemValue);\r\n }\r\n\r\n if (iframe) {\r\n iframe.contentWindow.document.body.innerHTML = '';\r\n iframe.contentWindow.document.write(templateHtml);\r\n self.showPreview = true;\r\n }\r\n };\r\n\r\n self.collapse = function (pageSize, value) {\r\n pageSize.current = value;\r\n };\r\n\r\n self.getFilterLimit = function (pageSize) {\r\n return pageSize.current;\r\n };\r\n\r\n self.edit = function (strategy) {\r\n //TODO: timecheck\r\n $state.go('event.dashboard.emailCampaigns.edit', { id: strategy.PrimaryID });\r\n };\r\n\r\n self.refreshStrategy = function (strategy) {\r\n return function () {\r\n return $q.all([\r\n DataSalesService.getStrategy({\r\n showCode: CurrentEvent.ShowCode,\r\n id: strategy.PrimaryID\r\n }, true),\r\n DataSalesService.getFeedbackSummary({\r\n strategyId: strategy.PrimaryID\r\n }, true)\r\n ]).then(function (data) {\r\n for (var i = 0; i < EmailCampaigns.length; i++) {\r\n if (EmailCampaigns[i].Strategy.PrimaryID == strategy.PrimaryID) {\r\n EmailCampaigns[i].Strategy = DataSalesService.data.strategies[CurrentEvent.ShowCode][strategy.PrimaryID];\r\n EmailCampaigns[i].Strategy.FeedbackSummary = data[1].data;\r\n self.campaigns[i].Strategy = angular.copy(EmailCampaigns[i].Strategy);\r\n return;\r\n }\r\n }\r\n });\r\n };\r\n };\r\n\r\n self.download = function (dataSalesListId, type) {\r\n self.filename = \"attendee_list_\" + dataSalesListId;\r\n self.exportType = type;\r\n self.dataSalesListId = dataSalesListId;\r\n setTimeout(function () { angular.element('#ExportForm').submit(); }, 0);\r\n }\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('EmailCampaignsCtrl', EmailCampaignsCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:EmailSurveyCtrl\r\n * @description\r\n * # Email Survey Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var EmailSurveyCtrl = function ($state, Survey, CurrentEvent, SurveyService) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n\t\tself.survey = Survey;\r\n\t\tself.email = {\r\n\t\t\ttoAddress: '',\r\n\t\t\tfromAddress: '',\r\n\t\t\tsubject: '',\r\n\t\t\tadditionalText: ''\r\n\t\t};\r\n\r\n\t\tself.send = function () {\r\n\t\t\treturn SurveyService.sendEmail({\r\n\t\t\t\t\tdata: angular.extend({ surveyId: Survey.Id, showCode: CurrentEvent.ShowCode }, self.email)\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(){\r\n\t\t\t\t\twindow.alert('Success!');\r\n\t\t\t\t\t$state.go('event.surveys.survey', { id: self.survey.Id });\r\n\t\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.controller('EmailSurveyCtrl', EmailSurveyCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:eventBitCtrl\r\n * @description\r\n * # eventBitCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var EventBitCtrl = function ($sce, $state, $rootScope, $scope, SSO, EventBitOrders) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n if (!EventBitOrders) {\r\n $state.go('event.dashboard.landing');\r\n }\r\n\r\n self.SSO = $sce.trustAsResourceUrl(SSO);\r\n\r\n //keep session alive when on this page\r\n var reAuth = window.setInterval($rootScope.reAuth, 10000);\r\n\r\n $scope.$on('$stateChangeStart', function () {\r\n clearInterval(reAuth);\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('EventBitCtrl', EventBitCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.controller:LandingCtrl\r\n * @description\r\n * # LandingCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\nfunction LandingCtrl($q, $state, $filter, $sce, CurrentEvent, LeadActivityService, OrderService, Search, ActiveUserProfile,\r\n LeadSourcesChartData, LeadDaysChartData, LeadSurveyChartData, LeadDemographicChartData, LeadSummaryData,\r\n isSPOT, DemographicQuestions, CurrentDemographic, Surveys, CurrentSurvey, CurrentSurveyQuestion, EventBitOrders,\r\n LeadService, LeadExportService, LeadCollateral, Collateral, HasPurchasedEventBit, BusinessCardLeadService, CollateralConfig, FollowUpConfig, AdditionalInfo, ShowService) {\r\n 'ngInject'\r\n\r\n var self = this;\r\n self.currentEvent = CurrentEvent;\r\n self.leadSearch = Search.leads;\r\n self.activeUserProfile = ActiveUserProfile;\r\n self.showSalesforceModal = false;\r\n self.showSalesforceUnderConstructionModal = false;\r\n self.additionalInfo = AdditionalInfo;\r\n\r\n self.isDemographicLoaded = true;\r\n self.demographics = DemographicQuestions;\r\n self.currentDemographic = CurrentDemographic;\r\n\r\n self.isSurveyLoaded = true;\r\n self.surveys = Surveys;\r\n self.currentSurvey = CurrentSurvey;\r\n self.currentSurveyQuestion = CurrentSurveyQuestion;\r\n\r\n self.exportUrl = $sce.trustAsResourceUrl(EnvironmentConfig.SiteRoot + 'export/');\r\n self.filename = 'leads-' + CurrentEvent.ShowCode + '-' + new Date().toJSON().slice(0, 10);\r\n self.filedata = '';\r\n self.filetype = '';\r\n\r\n self.SPOTSummaryOptions = {\r\n chart: {\r\n bottomPinch: 1,\r\n bottomWidth: 1 / 2,\r\n height: 300\r\n },\r\n label: {\r\n format: '{f}'\r\n },\r\n block: {\r\n dynamicHeight: true,\r\n minHeight: 20,\r\n fill: {\r\n scale: [\r\n '#FF8E46',\r\n '#008E8E',\r\n '#8BBA00',\r\n ]\r\n }\r\n },\r\n }\r\n\r\n var now = new Date();\r\n var beginDate = new Date(self.currentEvent.BeginDate);\r\n var endDate = new Date(self.currentEvent.EndDate);\r\n\r\n self.preShowActions = {\r\n visible: now <= beginDate,\r\n surveyCreated: Array.isArray(self.surveys) && self.surveys.length > 1,\r\n collateralUploaded: CollateralConfig && CollateralConfig.Collaterals && Array.isArray(CollateralConfig.Collaterals) && CollateralConfig.Collaterals.length > 0,\r\n leadEmailScheduled: FollowUpConfig && FollowUpConfig.FollowUpType !== 'None',\r\n };\r\n\r\n self.onsiteShowActions = {\r\n visible: now >= beginDate && now <= endDate\r\n };\r\n\r\n self.postShowActions = {\r\n visible: now > endDate\r\n };\r\n\r\n var SPOTSummaryChartData = [];\r\n if (EventBitOrders) {\r\n LandingCtrl.process.SPOTSummaryChartData(CurrentEvent, LeadActivityService).then(function (data) {\r\n SPOTSummaryChartData = data;\r\n updateLeadData();\r\n\r\n self.showSPOTChart = (function (hasData, isSPOT) {\r\n return hasData || (!hasData && isSPOT);\r\n })(!!SPOTSummaryChartData.filter(function (x) { return !!x.value; }).length, isSPOT);\r\n });\r\n }\r\n\r\n LeadService.getSwapActivations({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n self.swapActivations = LeadService.data.swapActivations[CurrentEvent.ShowCode];\r\n });\r\n\r\n $q.all([\r\n LeadService.getLeads({ showCode: CurrentEvent.ShowCode }),\r\n BusinessCardLeadService.getBusinessCardLeads({ showCode: CurrentEvent.ShowCode })\r\n ]).then(function () {\r\n self.businessCardLeads = BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode];\r\n self.leads = LeadService.data.leads[CurrentEvent.ShowCode].map(function (l) {\r\n return angular.extend({}, l, {\r\n Collateral: LeadCollateral[l.Id] || [],\r\n CollateralFormatted: (LeadCollateral[l.Id] || []).map(function (x) {\r\n return (Collateral.filter(function (c) { return c.CollateralID == x.CollateralID; }).shift() || {}).DisplayName;\r\n }).join(' | '),\r\n Spotted: !!(l.LeadOwnerSpotted || l.NonLeadOwnerSpotted) ? 1 : 0,\r\n MoreCaptureTimes: l.MoreCaptureTimes ? JSON.parse(l.MoreCaptureTimes).map(function (x) {\r\n var d = new Date(0);\r\n d.setUTCMilliseconds(x.mc);\r\n return d.toISOString();\r\n }) : '',\r\n Rating: l.Rating ? l.Rating : 0\r\n });\r\n });\r\n\r\n if (self.businessCardLeads) {\r\n for (var i = 0; i < self.businessCardLeads.length; i++) {\r\n self.leads.push(self.businessCardLeads[i]);\r\n }\r\n }\r\n\r\n self.leadSearch.data = $filter('orderBy')(self.leads, self.leadSearch.sort, self.leadSearch.sortDirection);\r\n\r\n LeadService.getLeadDates(CurrentEvent.ShowCode)\r\n .then(function () {\r\n self.leadDates = LeadService.data.leadDates[CurrentEvent.ShowCode];\r\n })\r\n\r\n LeadExportService.getHeaders(CurrentEvent.ShowCode, self.leads, HasPurchasedEventBit)\r\n .then(function () {\r\n self.exportHeaders = LeadExportService.data[CurrentEvent.ShowCode].headers;\r\n });\r\n\r\n self.showSPOT = (function (hasData, isSPOT) {\r\n return hasData || (!hasData && isSPOT);\r\n })(!!self.leads.filter(function (x) { return x.LeadOwnerSpotted || x.NonLeadOwnerSpotted; }).length, isSPOT);\r\n });\r\n\r\n self.postLeadsForExport = function (filetype) {\r\n if (typeof dataLayer !== 'undefined') {\r\n if (filetype.toLowerCase() === 'csv') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Leads', 'eventAction': 'Download CSV', 'eventLabel': CurrentEvent.ShowCode });\r\n } else {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Leads', 'eventAction': 'Download Excel', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n }\r\n\r\n var data = LeadExportService.getExportCSV(CurrentEvent.ShowCode, self.exportHeaders, self.leadSearch.data, filetype);\r\n self.filedata = btoa(RawDeflate.deflate(encodeURIComponent(data))).replace(/\\//g, '-').replace(/\\+/g, '.').replace(/=/g, '_');\r\n self.filetype = filetype;\r\n\r\n setTimeout(function () { angular.element('#ExportForm').submit(); }, 0);\r\n };\r\n\r\n self.downloadQR = function (filetype) {\r\n if (typeof dataLayer !== 'undefined') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'QR Download', 'eventAction': 'Download ' + filetype.toUpperCase(), 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n\r\n var exhibitorId = AdditionalInfo.Id;\r\n var url = 'https://030zczz9je.execute-api.us-east-1.amazonaws.com/dev/api/qrcode?c=HTTPS://SR-DEV.L4E.US?'\r\n + 'SC=' + CurrentEvent.ShowCode.toUpperCase() + '%26'\r\n + 'EID=' + exhibitorId + '&'\r\n + 's=20' + '&' \r\n + 'format=' + filetype.toLowerCase();\r\n window.open(url, '_blank');\r\n };\r\n\r\n self.showQrDownload = function () {\r\n if (ShowService.data.currentShow &&\r\n ShowService.data.currentShow.ShowCode &&\r\n OrderService.data.orders &&\r\n OrderService.data.orders[ShowService.data.currentShow.ShowCode]) {\r\n\r\n var orders = OrderService.data.orders[ShowService.data.currentShow.ShowCode];\r\n var QrProductCode = '270';\r\n var SWAPCodes = new Set(['311', '312', '313', '782', '325']);\r\n var hasQrProductCode = false;\r\n var hasSWAPCode = false;\r\n\r\n for (var i = 0; i < orders.length; i++) {\r\n for (var a = 0; a < orders[i].Transactions.length; a++) {\r\n var transaction = orders[i].Transactions[a];\r\n\r\n if (transaction.TransTypeCode === 'PUR' && transaction.TransStatus !== 'VOIDED') {\r\n if (transaction.ProductCode === QrProductCode) {\r\n hasQrProductCode = true;\r\n }\r\n if (SWAPCodes.has(transaction.ProductCode)) {\r\n hasSWAPCode = true;\r\n }\r\n if (hasQrProductCode && hasSWAPCode) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n self.selectDemographic = function (demo) {\r\n self.currentDemographic = demo;\r\n self.asyncDemo = true;\r\n self.isDemographicLoaded = false;\r\n\r\n LandingCtrl.process.LeadDemographicChartData(CurrentEvent, self.currentDemographic, LeadActivityService)\r\n .then(function (data) {\r\n LeadDemographicChartData = data;\r\n self.chartData.demographic = {\r\n series: data.series\r\n };\r\n self.chartLabels.demographic = data.labels;\r\n self.asyncDemo = false;\r\n }).finally(function () {\r\n self.isDemographicLoaded = true;\r\n });\r\n };\r\n\r\n self.selectSurvey = function (survey) {\r\n self.currentSurvey = survey;\r\n var defaultQuestion = null;\r\n if (self.currentSurvey) {\r\n for (var x = 0; x < self.currentSurvey.SurveyQuestions.length; x++) {\r\n if (self.currentSurvey.SurveyQuestions[x].IsActive) {\r\n defaultQuestion = self.currentSurvey.SurveyQuestions[x];\r\n break;\r\n }\r\n }\r\n }\r\n self.selectSurveyQuestion(defaultQuestion);\r\n }\r\n\r\n self.selectSurveyQuestion = function (question) {\r\n self.currentSurveyQuestion = question;\r\n self.asyncSurveyQuestion = true;\r\n self.isSurveyLoaded = false;\r\n\r\n LandingCtrl.process.LeadSurveyChartData(CurrentEvent, self.currentSurveyQuestion, LeadActivityService)\r\n .then(function (data) {\r\n LeadSurveyChartData = data;\r\n self.chartData.survey = {\r\n series: data.series\r\n };\r\n self.chartLabels.survey = data.labels;\r\n self.asyncSurveyQuestion = false;\r\n }).finally(function () {\r\n self.isSurveyLoaded = true;\r\n });\r\n };\r\n\r\n self.refresh = function () {\r\n return $q.all([\r\n LeadActivityService.getLeadSources({ showCode: CurrentEvent.ShowCode }, true),\r\n LeadActivityService.getLeadsByDay({ showCode: CurrentEvent.ShowCode }, true),\r\n LeadActivityService.getLeadsByDemographicQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n fieldDetailId: self.currentDemographic.Id\r\n }, true),\r\n LeadActivityService.getLeadsBySurveyQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n surveyQuestionId: self.currentSurveyQuestion ? self.currentSurveyQuestion.Id : 0\r\n }, true),\r\n LeadActivityService.getLeadSummary({ showCode: CurrentEvent.ShowCode }, true),\r\n EventBitOrders ? LeadActivityService.getSPOTSummary({ showCode: CurrentEvent.ShowCode }, true) : $q.when([]),\r\n ])\r\n .then(function () {\r\n $q.all([\r\n LandingCtrl.process.LeadSourcesChartData(CurrentEvent, LeadActivityService),\r\n LandingCtrl.process.LeadDaysChartData(CurrentEvent, LeadActivityService),\r\n LandingCtrl.process.LeadSurveyChartData(CurrentEvent, self.currentSurveyQuestion, LeadActivityService),\r\n LandingCtrl.process.LeadDemographicChartData(CurrentEvent, self.currentDemographic, LeadActivityService),\r\n LandingCtrl.process.LeadSummaryData(CurrentEvent, LeadActivityService),\r\n EventBitOrders ? LandingCtrl.process.SPOTSummaryChartData(CurrentEvent, LeadActivityService) : $q.when([]),\r\n ])\r\n .then(function (data) {\r\n LeadSourcesChartData = data[0];\r\n LeadDaysChartData = data[1];\r\n LeadSurveyChartData = data[2];\r\n LeadDemographicChartData = data[3];\r\n LeadSummaryData = data[4];\r\n SPOTSummaryChartData = data[5];\r\n self.eBitCompanySummary = data[6];\r\n\r\n updateLeadData();\r\n });\r\n });\r\n };\r\n\r\n self.onLeadSearch = function (e) {\r\n if (!e || (e && e.which === 13))\r\n $state.go('event.leads');\r\n };\r\n\r\n self.onPickPrizeWinner = function () {\r\n return LeadActivityService.getLeads({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var leads = [];\r\n for (var i = 0; i < LeadActivityService.data.leads[CurrentEvent.ShowCode].length; i++) {\r\n leads.push(angular.copy(LeadActivityService.data.leads[CurrentEvent.ShowCode][i]));\r\n }\r\n\r\n var randomLead = leads[Math.floor(Math.random() * leads.length)];\r\n if (randomLead) {\r\n if (typeof dataLayer !== 'undefined') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Leads', 'eventAction': 'Select Prize Winner', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n $state.go('event.leadDetail', { id: randomLead.Id });\r\n }\r\n });\r\n };\r\n\r\n function updateLeadData() {\r\n self.chartData = {\r\n source: {\r\n series: LeadSourcesChartData.series\r\n },\r\n day: {\r\n labels: LeadDaysChartData.labels,\r\n series: [LeadDaysChartData.series]\r\n },\r\n survey: {\r\n series: LeadSurveyChartData.series || []\r\n },\r\n demographic: {\r\n series: LeadDemographicChartData.series\r\n },\r\n summary: LeadSummaryData,\r\n SPOTSummary: SPOTSummaryChartData\r\n };\r\n\r\n self.chartLabels = {\r\n source: LeadSourcesChartData.labels,\r\n survey: LeadSurveyChartData.labels,\r\n demographic: LeadDemographicChartData.labels,\r\n SPOTSummary: SPOTSummaryChartData.map(function (x) { return x.label; })\r\n };\r\n }\r\n\r\n updateLeadData();\r\n};\r\n\r\n(function () {\r\n LandingCtrl.process = {\r\n DemographicQuestions: function (CurrentEvent, DemographicService) {\r\n return DemographicService.getDemographics({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var questions = [];\r\n\r\n for (var i = 0; i < DemographicService.data.demographics[CurrentEvent.ShowCode].length; i++)\r\n if (DemographicService.data.demographics[CurrentEvent.ShowCode][i].TableName == 'RegDemo')\r\n questions.push(DemographicService.data.demographics[CurrentEvent.ShowCode][i]);\r\n\r\n return questions;\r\n });\r\n },\r\n LeadSummaryData: function (CurrentEvent, LeadActivityService) {\r\n return LeadActivityService.getLeadSummary({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadActivityService.data.leadSummary[CurrentEvent.ShowCode];\r\n });\r\n },\r\n LeadSourcesChartData: function (CurrentEvent, LeadActivityService) {\r\n return LeadActivityService.getLeadSources({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadActivityService.parseChartData(LeadActivityService.data.leadSources[CurrentEvent.ShowCode]);\r\n });\r\n },\r\n LeadDemographicChartData: function (CurrentEvent, CurrentDemographic, LeadActivityService) {\r\n if (!CurrentDemographic)\r\n return {\r\n labels: [],\r\n series: []\r\n };\r\n\r\n return LeadActivityService.getLeadsByDemographicQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n fieldDetailId: CurrentDemographic.Id\r\n })\r\n .then(function () {\r\n return LeadActivityService.parseChartData(LeadActivityService.data.leadDemographics[CurrentEvent.ShowCode][CurrentDemographic.Id], 'Other Demographics');\r\n });\r\n },\r\n LeadSurveyChartData: function (CurrentEvent, CurrentSurveyQuestion, LeadActivityService) {\r\n if (!CurrentSurveyQuestion)\r\n return {\r\n labels: [],\r\n series: []\r\n };\r\n\r\n return LeadActivityService.getLeadsBySurveyQuestion({\r\n showCode: CurrentEvent.ShowCode,\r\n surveyQuestionId: CurrentSurveyQuestion.Id\r\n })\r\n .then(function () {\r\n return LeadActivityService.parseChartData(LeadActivityService.data.leadSurveys[CurrentEvent.ShowCode][CurrentSurveyQuestion.Id], 'Other Survey Questions');\r\n });\r\n },\r\n LeadDaysChartData: function (CurrentEvent, LeadActivityService) {\r\n return LeadActivityService.getLeadsByDay({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n var data = LeadActivityService.data.leadDays[CurrentEvent.ShowCode],\r\n labels = [],\r\n series = [];\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n labels.push(data[i].Source);\r\n series.push(data[i].Count);\r\n }\r\n\r\n return {\r\n labels: labels,\r\n series: series\r\n };\r\n });\r\n },\r\n SPOTSummaryChartData: function (CurrentEvent, LeadActivityService) {\r\n return LeadActivityService.getSPOTSummary({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n return LeadActivityService.data.SPOTSummary[CurrentEvent.ShowCode].map(function (x) {\r\n return {\r\n label: x.Source,\r\n value: x.Count || 0\r\n }\r\n });\r\n })\r\n },\r\n }\r\n\r\n function parseChartData(data, otherLabel) {\r\n data = data || [];\r\n return angular.injector(['ng']).invoke(['$filter', function ($filter) {\r\n var labels = [],\r\n series = [],\r\n other = 0;\r\n\r\n data = $filter('orderBy')(data, 'Count', true);\r\n\r\n for (var i = 0; i < 5 && i < data.length; i++) {\r\n labels.push(data[i].Source);\r\n series.push(data[i].Count);\r\n }\r\n\r\n for (i = 5; i < data.length; i++)\r\n other += data[i].Count;\r\n\r\n if (data.length > 5) {\r\n labels.push(otherLabel || 'Other');\r\n series.push(other);\r\n }\r\n\r\n return {\r\n labels: labels,\r\n series: series\r\n };\r\n }]);\r\n }\r\n})()\r\n\r\nangular.module('exhibitorPortalApp')\r\n .controller('LandingCtrl', LandingCtrl);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:LeadDetailCtrl\r\n * @description\r\n * # Lead Detail\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LeadDetailCtrl = function ($state, $anchorScroll, $location, $filter, $sce, LeadService, LeadExportService, EnvironmentConfig, CurrentEvent, Lead, Demographics, Surveys, ExportHeaders, ActiveUserProfile, HasPurchasedEventBit, LeadCollateral) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.lead = angular.extend({}, Lead, {\r\n CollateralFormatted: LeadCollateral.map(function (lc) { return lc.CollateralName; }).join(' | ')\r\n });\r\n self.demographics = Demographics;\r\n self.surveys = Surveys;\r\n self.editMode = false;\r\n self.exportHeaders = ExportHeaders;\r\n self.hasPurchasedEventBit = HasPurchasedEventBit;\r\n\r\n self.exportUrl = $sce.trustAsResourceUrl(EnvironmentConfig.SiteRoot + 'export/');\r\n self.filename = 'lead-' + CurrentEvent.ShowCode + '-' + new Date().toJSON().slice(0, 10);\r\n self.filedata = '';\r\n self.filetype = '';\r\n\r\n self.collateral = LeadCollateral;\r\n self.moreCaptureTimes = Lead.MoreCaptureTimes ? JSON.parse(Lead.MoreCaptureTimes).map(function (x) {\r\n var d = new Date(0);\r\n d.setUTCMilliseconds(x.mc);\r\n\r\n return d.toISOString();\r\n }) : '';\r\n\r\n self.localRating = self.lead.Rating ? self.lead.Rating : 0;\r\n\r\n self.search = {\r\n collateral: {\r\n sort: 'SentDate',\r\n sortDirection: true\r\n }\r\n };\r\n\r\n $anchorScroll();\r\n\r\n self.ratingLeave = function () {\r\n self.localRating = self.lead.Rating ? self.lead.Rating : 0;\r\n };\r\n\r\n self.setRating = function (rating) {\r\n self.lead.Rating = rating;\r\n self.localRating = self.lead.Rating ? self.lead.Rating : 0;\r\n };\r\n\r\n self.save = function () {\r\n return LeadService\r\n .saveLeads({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n leads: [self.lead]\r\n }\r\n })\r\n .then(function () {\r\n for (var i = 0; i < LeadService.data.leads[CurrentEvent.ShowCode].length; i++)\r\n if (LeadService.data.leads[CurrentEvent.ShowCode][i].Id == self.lead.Id) {\r\n self.lead = angular.copy(LeadService.data.leads[CurrentEvent.ShowCode][i]);\r\n break;\r\n }\r\n });\r\n };\r\n\r\n self.getDemoAnswer = function (demo) {\r\n var answers = [];\r\n var response = [];\r\n\r\n for (var i = 0; i < self.lead.Contact.DemographicAnswers.length; i++)\r\n if (self.lead.Contact.DemographicAnswers[i].ParentId == demo.Id)\r\n answers.push(self.lead.Contact.DemographicAnswers[i].Response);\r\n\r\n for (var b = 0; b < answers.length; b++)\r\n if (answers[b] !== undefined) {\r\n if (demo.FieldTypeCode === 'OPN')\r\n response.push(answers[b]);\r\n else\r\n for (i = 0; i < Demographics.length; i++)\r\n if (Demographics[i].Id == demo.Id)\r\n for (var a = 0; a < Demographics[i].FieldPicks.length; a++)\r\n if (Demographics[i].FieldPicks[a].PickCode == answers[b])\r\n response.push(Demographics[i].FieldPicks[a].Description);\r\n }\r\n\r\n return response.length ? response.join(', ') : undefined;\r\n };\r\n\r\n self.getSurveyAnswer = function (surveyQuestion) {\r\n var answers = [];\r\n for (var i = 0; i < Lead.SurveyAnswers.length; i++)\r\n if (Lead.SurveyAnswers[i].ParentId == surveyQuestion.Id)\r\n answers.push(Lead.SurveyAnswers[i].Response);\r\n\r\n return answers.length ? answers.join(', ') : undefined;\r\n };\r\n\r\n self.answerCount = function (survey) {\r\n var count = 0;\r\n\r\n for (var i = 0; i < Surveys.length; i++)\r\n if (Surveys[i].Id == survey.Id)\r\n for (var a = 0; a < Surveys[i].SurveyQuestions.length; a++)\r\n for (var b = 0; b < Lead.SurveyAnswers.length; b++)\r\n if (Surveys[i].SurveyQuestions[a].Id == Lead.SurveyAnswers[b].ParentId)\r\n count++;\r\n\r\n return count;\r\n };\r\n\r\n self.edit = function () {\r\n self.editMode = !self.editMode;\r\n\r\n if (self.editMode) {\r\n $location.hash('Edit');\r\n }\r\n else {\r\n $location.hash('');\r\n }\r\n };\r\n\r\n self.postLeadsForExport = function (filetype) {\r\n if (typeof dataLayer !== 'undefined') {\r\n if (filetype.toLowerCase() === 'csv') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Lead Detail', 'eventAction': 'Download CSV', 'eventLabel': CurrentEvent.ShowCode });\r\n } else {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Lead Detail', 'eventAction': 'Download Excel', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n }\r\n\r\n var data = LeadExportService.getExportCSV(CurrentEvent.ShowCode, self.exportHeaders, [self.lead], filetype);\r\n self.filedata = btoa(RawDeflate.deflate(encodeURIComponent(data))).replace(/\\//g, '-').replace(/\\+/g, '.').replace(/=/g, '_');\r\n self.tiletype = filetype;\r\n\r\n setTimeout(function () { angular.element('#ExportForm').submit(); }, 0);\r\n };\r\n\r\n self.share = function () {\r\n //build mailto link\r\n var subject = 'Lead info from ' + CurrentEvent.TradeShowName;\r\n var body = '';\r\n\r\n //contact info\r\n body += 'First Name: ' + self.lead.Contact.FirstName + '\\r\\n';\r\n body += 'Last Name: ' + self.lead.Contact.LastName + '\\r\\n';\r\n body += 'Title: ' + self.lead.Contact.Title + '\\r\\n';\r\n body += 'Company: ' + self.lead.Contact.Company + ' ' + self.lead.Contact.Company2 + '\\r\\n';\r\n\r\n body += 'Address: ' + self.lead.Contact.Address.Address + ' ' + self.lead.Contact.Address.Address2 + ' ' + self.lead.Contact.Address.Address3 + '\\r\\n';\r\n body += 'City: ' + self.lead.Contact.Address.City + '\\r\\n';\r\n body += 'State: ' + self.lead.Contact.Address.StateCode + '\\r\\n';\r\n body += 'Postal Code: ' + self.lead.Contact.Address.ZipCode + '\\r\\n';\r\n body += 'Country: ' + self.lead.Contact.Address.CountryCode + '\\r\\n';\r\n\r\n body += 'Phone: ' + self.lead.Contact.Phone + (self.lead.Contact.PhoneExtension ? (' x' + self.lead.Contact.PhoneExtension) : '') + '\\r\\n';\r\n body += 'Fax: ' + self.lead.Contact.Fax + '\\r\\n';\r\n body += 'Email: ' + self.lead.Contact.Email + '\\r\\n';\r\n\r\n //notes\r\n body += '\\r\\nNotes: \\r\\n' + self.lead.Notes + '\\r\\n \\r\\n';\r\n\r\n // other\r\n body += 'Badge ID: ' + self.lead.Contact.RegistrantId + '\\r\\n';\r\n body += 'Capture Date: ' + $filter('date')(self.lead.LeadDate, 'short', self.lead.TimeZoneOffset);\r\n\r\n if (typeof dataLayer !== 'undefined') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Lead Detail', 'eventAction': 'Share', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n\r\n window.location.href = 'mailto:?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body);\r\n };\r\n\n self.validateNote = function (note) {\r\n if (note.includes('\"'))\r\n return false;\r\n else\r\n return true;\r\n };\n\r\n self.delete = function () {\r\n if (window.confirm('Are you sure you want to delete this lead?')) {\r\n\r\n if (typeof dataLayer !== 'undefined') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Lead Detail', 'eventAction': 'DeleteLead', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n\r\n return LeadService\r\n .deleteLeads({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n leads: [self.lead]\r\n }\r\n })\r\n .then(function () {\r\n $state.go('event.leads');\r\n });\r\n }\r\n }\r\n };\r\n\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('LeadDetailCtrl', LeadDetailCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:LeadDetailEditSurveyCtrl\r\n * @description\r\n * # Lead Detail Edit Survey\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var LeadDetailEditSurveyCtrl = function ($q, $timeout, $rootScope, CurrentEvent, Lead, Survey, LeadService, SurveyService) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n\t\tself.lead = Lead;\r\n self.survey = Survey;\r\n\r\n\t\tself.answers = {};\r\n\n $rootScope.$on('leadSurvey:change', function (e, l) {\n if (l && self.lead.Id == l.Id) {\n self.lead = l;\n\n buildAnswers();\r\n }\r\n });\n\n function buildAnswers() {\n for (var i = 0; i < Survey.SurveyQuestions.length; i++) {\r\n var exists = false;\r\n self.answers[Survey.SurveyQuestions[i].Id] = {};\r\n\r\n for (var a = 0; a < self.lead.SurveyAnswers.length; a++) {\r\n if (self.lead.SurveyAnswers[a].ParentId == Survey.SurveyQuestions[i].Id) {\r\n self.answers[Survey.SurveyQuestions[i].Id][self.lead.SurveyAnswers[a].Id] = self.lead.SurveyAnswers[a].Response;\r\n exists = true;\r\n }\r\n }\r\n\r\n if (!exists && Survey.SurveyQuestions[i].SurveyQuestionTypeCode == 'OPN')\r\n self.answers[Survey.SurveyQuestions[i].Id][Survey.SurveyQuestions[i].SurveyAnswers[0].Id] = '';\r\n }\n\n // grab the first question based on display order. This will be used to find the list of questions that\n // the lead was actually presented with\n var firstQuestion = SurveyService.getFirstQuestion(self.survey.SurveyQuestions);\n self.firstQuestionId = firstQuestion ? firstQuestion.Id : null;\n\n var answered = Object.keys(self.answers).filter(function (a) { return Object.keys(self.answers[a]).length > 0; }).map(function (k) {\n return Number(k);\n });\n\n // build a list of questions based off of the next questionid that is configured\n var seenQuestions = SurveyService.leadSeenQuestions(self.answers, self.survey.SurveyQuestions);\n // which questions have responses of this list\n if (_.any(seenQuestions, function (q) {\n return _.any(answered, function (answer) {\n return q.Id === answer;\n });\n })) {\n self.questionsToShow = seenQuestions;\r\n } else {\n self.questionsToShow = [];\r\n }\r\n }\n\n buildAnswers();\n\n // build a composite response for questions with multple responses\n self.getQuestionAnswerComposite = function (question) {\n if (!question)\n return 'No Response';\n\n var answers = self.answers[question.Id];\n if (!answers)\n return 'No Response';\n\n var allAnswers = Object.keys(answers).map(function (a) { return self.answers[question.Id][a]; });\n if (!allAnswers || allAnswers.length == 0)\n return 'No Response';\n\n return allAnswers.join(',');\r\n };\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('LeadDetailEditSurveyCtrl', LeadDetailEditSurveyCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:LeadDetailEditSurveyQuestionCtrl\r\n * @description\r\n * # Lead Detail Edit Survey Question\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LeadDetailEditSurveyQuestionCtrl = function ($q, $timeout, CurrentEvent, Lead, Survey, LeadService, SurveyQuestion, $state, SurveyService, $rootScope) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.lead = Lead;\r\n self.survey = Survey;\r\n self.surveyQuestion = SurveyQuestion;\r\n self.questionsAnswered = {};\r\n self.nextAction = {\r\n BranchAction: 'NATURAL',\r\n NextQuestionId: null\r\n };\r\n self.prevQuestion = null;\r\n self.errorModalInfo = {\r\n errorModalText: '',\r\n showSaveError: false,\r\n showErrorModalButtons: false,\r\n errorModalConfirmButtonText: '',\r\n onContinue: goToNextQuestion\r\n };\r\n\r\n self.branchedQuestionAlert = \"Branching questions must have an answer to continue.\";\r\n self.requiredQuestionAlert = \"This required question must be answered before continuing.\";\r\n self.requiredQuestionAlertDownstreamQuestions = \"Downstream required questions are unanswered. They must be answered to leave the survey.\";\r\n self.changeBranchedQuestionAlert = \"This is a branched question. If you change your answer, the other answers in this branch will be removed. Are you sure you want to change it?\";\r\n self.importantQuestionText = \"This is an important question. It can be skipped, but is not advised.\";\r\n self.importantQuestionAlert = \"This is an important question. Are you sure you want to skip it?\";\r\n\r\n self.answers = {};\r\n\r\n self.isRequired = self.surveyQuestion.Priority == 'REQUIRED';\r\n self.isImportant = self.surveyQuestion.Priority == 'IMPORTANT';\r\n\r\n self.uniqueBranchAnswers = self.surveyQuestion.SurveyQuestionTypeCode == 'SGL' && self.surveyQuestion.SurveyAnswers\r\n ? self.surveyQuestion.SurveyAnswers.map(function (sa) { return sa.NextQuestionId; }).filter(function (value, index, self) { return self.indexOf(value) === index; })\r\n : [];\r\n\r\n // deteremine if there is branching in this question\r\n self.hasBranching = self.uniqueBranchAnswers && self.uniqueBranchAnswers.length > 1;\r\n\r\n // if not single select, the next question id will always be the same as we only branch from single select questions\r\n if ((self.surveyQuestion.SurveyQuestionTypeCode != 'SGL' || !self.hasBranching) && self.surveyQuestion.SurveyAnswers.length) {\r\n self.nextAction.NextQuestionId = self.surveyQuestion.SurveyAnswers[0].NextQuestionId;\r\n }\r\n\r\n for (var i = 0; i < Survey.SurveyQuestions.length; i++) {\r\n var exists = false;\r\n self.answers[Survey.SurveyQuestions[i].Id] = {};\r\n self.questionsAnswered[Survey.SurveyQuestions[i].Id] = {};\r\n\r\n for (var a = 0; a < Lead.SurveyAnswers.length; a++) {\r\n if (Lead.SurveyAnswers[a].ParentId == Survey.SurveyQuestions[i].Id) {\r\n setAnswerValues(Survey.SurveyQuestions[i], Survey.SurveyQuestions[i].SurveyAnswers.filter(function (sa) { return sa.Id == Number(Lead.SurveyAnswers[a].Id); })[0], Lead.SurveyAnswers[a].Response, !!Lead.SurveyAnswers[a].Response);\r\n exists = true;\r\n }\r\n }\r\n\r\n if (!exists && Survey.SurveyQuestions[i].SurveyQuestionTypeCode == 'OPN') {\r\n setAnswerValues(Survey.SurveyQuestions[i], Survey.SurveyQuestions[i].SurveyAnswers[0], '', false);\r\n }\r\n }\r\n\r\n self.prevQuestion = SurveyService.getPreviousQuestion(self.answers, self.survey.SurveyQuestions, self.surveyQuestion.Id);\r\n\r\n // mimic a check box/radio button setting answers and the next question/branching action based off of the answer\r\n self.setAnswer = function (answer) {\r\n if (self.hasAnswer(answer.Id)) {\r\n deleteAnswers(null, answer.Id);\r\n\r\n if (self.hasBranching) {\r\n self.nextAction.NextQuestionId = null;\r\n }\r\n\r\n setNextButtonText();\r\n } else {\r\n if (self.surveyQuestion.SurveyQuestionTypeCode == 'SGL') {\r\n deleteAnswers(self.surveyQuestion.SurveyAnswers.filter(function (sa) { return sa.Id == answer.Id; }));\r\n }\r\n\r\n setAnswerValues(self.surveyQuestion, answer, answer.SurveyAnswerTypeCode == 'OPN' ? '' : answer.Text, true);\r\n setNextButtonText(answer.Id);\r\n }\r\n\r\n setModel();\r\n self.errorModalInfo.showSaveError = false;\r\n self.branchChanging = false;\r\n self.noLongerValidQuestions = null;\r\n };\r\n\r\n // get the current answers as a list of ids\r\n function getCurrentAnswerIds() {\r\n var answers = self.answers[self.surveyQuestion.Id];\r\n\r\n if (answers) {\r\n return Object.keys(answers).map(function (aid) { return Number(aid); });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n // collect the list of starting answerIds in order to detect changes in the branching strategy\r\n self.startingAnswerIds = getCurrentAnswerIds();\r\n\r\n // do we have an answer already for this question\r\n self.hasAnswer = function (answerId) {\r\n var answers = self.answers[self.surveyQuestion.Id];\r\n\r\n if (answers) {\r\n return _.any(Object.keys(answers).filter(function (a) { return !answerId || Number(a) === answerId; }), function (ai) { return answers[ai] && answers[ai].length; });\r\n }\r\n return false;\r\n };\r\n\r\n function setNextButtonText(answerId) {\r\n if (self.surveyQuestion.SurveyQuestionTypeCode == 'SGL' && self.hasAnswer() && !answerId) {\r\n var currentAnswers = Object.keys(self.answers[self.surveyQuestion.Id]).map(function (a) { return Number(a); });\r\n if (currentAnswers && currentAnswers.length) {\r\n answerId = currentAnswers[0];\r\n }\r\n }\r\n\r\n var answers = self.surveyQuestion.SurveyAnswers.filter(function (sa) { return !answerId || sa.Id == answerId; });\r\n if (answers && answers.length && _.any(answers, function (a) { return a.NextQuestionId; }))\r\n self.NextButtonText = 'Next';\r\n else\r\n self.NextButtonText = 'Done';\r\n }\r\n\r\n setNextButtonText();\r\n\r\n // open answers are a bit different, the answer should be selected if the user types in the box\r\n self.changeOpenAnswer = function (answerId, newval, oldval) {\r\n if (oldval === '' && newval !== '' && newval.length > 0) {\r\n if (self.surveyQuestion.SurveyQuestionTypeCode == 'SGL') {\r\n deleteAnswers([answerId]);\r\n }\r\n setAnswerValues(self.surveyQuestion, self.surveyQuestion.SurveyAnswers.filter(function (sa) { return sa.Id == answerId; })[0], newval, true);\r\n setModel();\r\n self.branchChanging = false;\r\n }\r\n };\r\n\r\n self.goBack = function () {\r\n if (self.prevQuestion) {\r\n $state.go('event.leadDetail.editSurvey.editSurveyQuestion', { questionId: self.prevQuestion.Id });\r\n } else {\r\n $state.go('event.leadDetail.editSurvey', { surveyId: self.survey.Id });\r\n }\r\n };\r\n\r\n self.save = function (removeOldBranchQuestions) {\r\n setModel();\r\n\r\n if (!validateSurveyQuestion(removeOldBranchQuestions)) {\r\n return returnPromise();\r\n }\r\n\r\n if (!self.form.$valid) {\r\n return returnPromise();\r\n }\r\n\r\n //find all survey answer IDs valid for the current survey\r\n var validSurveyAnswerIds = self.survey.SurveyQuestions.reduce(function (accumulator, currentValue) {\r\n currentValue.SurveyAnswers.map(function (answer) { return answer.Id; }).forEach(function (answerId) {\r\n accumulator.push(answerId);\r\n });\r\n return accumulator;\r\n }, []);\r\n\r\n //Find all answers that are on the lead that do not belong to the current survey\r\n var otherSurveyAnswers = self.lead.SurveyAnswers.filter(function (answer) {\r\n return validSurveyAnswerIds.filter(function (validAnswer) { return answer.Id === validAnswer; }).length === 0;\r\n });\r\n\r\n self.lead.SurveyAnswers = otherSurveyAnswers;\r\n\r\n for (var questionId in self.answers)\r\n for (var answerId in self.answers[questionId])\r\n self.lead.SurveyAnswers.push({\r\n Id: Number(answerId),\r\n ParentId: Number(questionId),\r\n Response: self.answers[questionId][answerId],\r\n SurveyAnswerTypeCode: getAnswerType(questionId, answerId)\r\n });\r\n\r\n if (removeOldBranchQuestions && self.noLongerValidQuestions && self.noLongerValidQuestions.length) {\r\n self.lead.SurveyAnswers = self.lead.SurveyAnswers.filter(function (sa) { return !_.any(self.noLongerValidQuestions, function (nv) { return sa.ParentId == nv; }); });\r\n }\r\n\r\n return LeadService\r\n .saveLeads({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n leads: [self.lead]\r\n }\r\n })\r\n .then(function () {\r\n var lead = LeadService.data.leads[CurrentEvent.ShowCode].filter(function (l) { return l.Id == self.lead.Id; });\r\n\r\n if (lead && lead.length) {\r\n $rootScope.$broadcast('leadSurvey:change', lead[0]);\r\n }\r\n\r\n goToNextQuestion();\r\n });\r\n };\r\n\r\n function returnPromise() {\r\n var d = $q.defer();\r\n\r\n $timeout(function () {\r\n self.form.$setSubmitted();\r\n\r\n d.reject();\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n function validateSurveyQuestion(skipBranchingChange) {\r\n if (!self.hasAnswer()) {\r\n if (self.isRequired || self.hasBranching) {\r\n self.errorModalInfo.showErrorModalButtons = false;\r\n self.errorModalInfo.errorModalText = self.isRequired ? self.requiredQuestionAlert : self.branchedQuestionAlert;\r\n self.errorModalInfo.showSaveError = true;\r\n return false;\r\n } else if (self.isImportant) {\r\n self.errorModalInfo.showErrorModalButtons = true;\r\n self.errorModalInfo.errorModalText = self.importantQuestionAlert;\r\n self.errorModalInfo.errorModalConfirmButtonText = 'Skip';\r\n self.errorModalInfo.onContinue = function () {\r\n goToNextQuestion();\r\n };\r\n self.errorModalInfo.showSaveError = true;\r\n return false;\r\n }\r\n } else {\r\n var currentAnswerIds = getCurrentAnswerIds();\r\n if (!skipBranchingChange && self.surveyQuestion.SurveyQuestionTypeCode == 'SGL' && currentAnswerIds.length && self.startingAnswerIds.length) {\r\n self.noLongerValidQuestions = SurveyService.getNoLongerValidQuestions(self.startingAnswerIds[0], self.survey.SurveyQuestions, self.surveyQuestion, currentAnswerIds[0]);\r\n if (self.noLongerValidQuestions && self.noLongerValidQuestions.length) {\r\n self.branchChanging = true;\r\n self.errorModalInfo.showErrorModalButtons = true;\r\n self.errorModalInfo.errorModalText = self.changeBranchedQuestionAlert;\r\n self.errorModalInfo.errorModalConfirmButtonText = 'Yes, continue';\r\n self.errorModalInfo.onContinue = function () {\r\n self.save(true);\r\n };\r\n self.errorModalInfo.showSaveError = true;\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function goToNextQuestion() {\r\n if (self.nextAction.BranchAction == 'ENDSURVEY' || (self.nextAction.BranchAction == 'NATURAL' && !self.nextAction.NextQuestionId)) {\r\n $state.go('event.leadDetail.editSurvey', { surveyId: self.survey.Id }, { reload: 'event.leadDetail.editSurvey' });\r\n } else {\r\n $state.go('event.leadDetail.editSurvey.editSurveyQuestion', { questionId: self.nextAction.NextQuestionId }, { reload: 'event.leadDetail.editSurvey.editSurveyQuestion' });\r\n }\r\n }\r\n\r\n function getAnswerType(questionId, answerId) {\r\n for (var i = 0; i < self.survey.SurveyQuestions.length; i++)\r\n if (self.survey.SurveyQuestions[i].Id == questionId)\r\n for (var a = 0; a < self.survey.SurveyQuestions[i].SurveyAnswers.length; a++)\r\n if (self.survey.SurveyQuestions[i].SurveyAnswers[a].Id == answerId)\r\n return self.survey.SurveyQuestions[i].SurveyAnswers[a].SurveyAnswerTypeCode;\r\n }\r\n\r\n function setAnswerValues(question, answer, value, answered) {\r\n self.answers[question.Id][answer.Id] = value;\r\n self.questionsAnswered[question.Id][answer.Id] = answered !== undefined ? answered : !!value;\r\n\r\n if (answer && question.Id == self.surveyQuestion.Id) {\r\n self.nextAction.BranchAction = answer.BranchAction == 'NATURAL' && !answer.NextQuestionId ? 'ENDSURVEY' : answer.BranchAction;\r\n self.nextAction.NextQuestionId = answer.NextQuestionId;\r\n }\r\n\r\n if (self.nextAction.BranchAction == 'ENDSURVEY') {\r\n self.nextAction.NextQuestionId = null;\r\n }\r\n }\r\n\r\n function deleteAnswers(excluded, onlyId) {\r\n for (var i = 0; i < self.surveyQuestion.SurveyAnswers.length; i++) {\r\n if ((!excluded || !_.any(excluded, function (a) { return self.surveyQuestion.SurveyAnswers[i].Id == a; }))\r\n && (!onlyId || onlyId == self.surveyQuestion.SurveyAnswers[i].Id)) {\r\n delete self.answers[self.surveyQuestion.Id][self.surveyQuestion.SurveyAnswers[i].Id];\r\n delete self.questionsAnswered[self.surveyQuestion.Id][self.surveyQuestion.SurveyAnswers[i].Id];\r\n }\r\n }\r\n }\r\n\r\n function setModel() {\r\n self.theModel = self.hasAnswer() ? 'answered' : '';\r\n }\r\n\r\n setModel();\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('LeadDetailEditSurveyQuestionCtrl', LeadDetailEditSurveyQuestionCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:LeadFollowUpCtrl\r\n * @description\r\n * # Survey Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LeadFollowUpCtrl = function ($q, HTMLTemplate, FollowUpConfig, CurrentEvent, LeadFollowUpService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.baseConfig = angular.copy(FollowUpConfig);\r\n self.config = angular.copy(FollowUpConfig);\r\n self.baseTemplate = angular.copy(HTMLTemplate);\r\n\r\n\r\n self.saveFollowUpConfig = function () {\r\n var d = $q.defer();\r\n\r\n\r\n if (!self.form.$valid) {\r\n self.form.$setSubmitted();\r\n d.reject();\r\n }\r\n\r\n LeadFollowUpService\r\n .saveFollowUpConfig({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: self.config\r\n }).then(function (data) {\r\n self.baseConfig = angular.copy(data);\r\n d.resolve();\r\n });\r\n\r\n return d.promise;\r\n };\r\n\r\n self.getPreview = function () {\r\n if (!self.form.$valid) {\r\n self.form.$setSubmitted();\r\n return false;\r\n }\r\n\r\n var templateHtml = angular.copy(self.baseTemplate.BodyHtml);\r\n var iframe = document.getElementById('TemplatePreview');\r\n\r\n console.log(templateHtml);\r\n\r\n templateHtml = templateHtml.replace(new RegExp('%%DataSalesExhibitorBody%%', 'g'), self.config.MessageText);\r\n templateHtml = templateHtml.replace(new RegExp('%%SignatureCompany%%', 'g'), self.config.FromCompany);\r\n templateHtml = templateHtml.replace(new RegExp('%%SignatureAddress%%', 'g'), self.config.FromAddress);\r\n templateHtml = templateHtml.replace(new RegExp('%%SignatureAddrCSZ%%', 'g'), self.config.FromCSZ);\r\n templateHtml = templateHtml.replace(new RegExp('%%SignatureTitle%%', 'g'), self.config.FromTitle);\r\n templateHtml = templateHtml.replace(new RegExp('%%SignaturePhone%%', 'g'), self.config.FromPhone);\r\n templateHtml = templateHtml.replace(new RegExp('%%SignatureEmail%%', 'g'), self.config.FromEmail);\r\n templateHtml = templateHtml.replace(new RegExp('%%SignatureWebSite%%', 'g'), self.config.FromWebsite);\r\n\r\n if (iframe) {\r\n iframe.contentWindow.document.body.innerHTML = '';\r\n iframe.contentWindow.document.write(templateHtml);\r\n self.showPreview = true;\r\n }\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('LeadFollowUpCtrl', LeadFollowUpCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.controller:LeadUploadCtrl\r\n * @description\r\n * # LeadUploadCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n var LeadUploadCtrl = function ($upload, $stateParams, LeadService, CurrentEvent, EnvironmentConfig) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.toggleTechRequirements = false;\r\n self.barcodes = '';\r\n self.siteRoot = EnvironmentConfig.SiteRoot;\r\n\r\n self.uploadBarcodes = function() {\r\n\t\t\treturn LeadService.uploadBarcodes({\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tshowCode: CurrentEvent.ShowCode,\r\n\t\t\t\t\t\tbarcodes: self.barcodes,\r\n\t\t\t\t\t\tcontactId: $stateParams.contactId\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.then(function(){\r\n\t\t\t\t\tself.barcodes = '';\r\n\t\t\t\t\tLeadService.getLeads({\r\n\t\t\t\t\t\tshowCode: CurrentEvent.ShowCode\r\n\t\t\t\t\t}, true);\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n self.onFileSelect = function($files) {\r\n\t\t//$files: an array of files selected, each file has name, size, and type.\r\n\t\t\tfor (var i = 0; i < $files.length; i++) {\r\n\t\t\t\tvar file = $files[i];\r\n\t\t\t\tself.upload = $upload.upload({\r\n\t\t\t\t\turl: 'api/lead/uploadFile', //upload.php script, node.js route, or servlet url\r\n\t\t\t\t\t//method: 'POST' or 'PUT',\r\n\t\t\t\t\t//headers: {'header-key': 'header-value'},\r\n\t\t\t\t\t//withCredentials: true,\r\n\t\t\t\t\tdata: { showCode: CurrentEvent.ShowCode, contactId: $stateParams.contactId },\r\n\t\t\t\t\tfile: file, // or list of files ($files) for html5 only\r\n\t\t\t\t\t//fileName: 'doc.jpg' or ['1.jpg', '2.jpg', ...] // to modify the name of the file(s)\r\n\t\t\t\t\t// customize file formData name ('Content-Disposition'), server side file variable name.\r\n\t\t\t\t\t//fileFormDataName: myFile, //or a list of names for multiple files (html5). Default is 'file'\r\n\t\t\t\t\t// customize how data is added to formData. See #40#issuecomment-28612000 for sample code\r\n\t\t\t\t\t//formDataAppender: function(formData, key, val){}\r\n\t\t\t\t})\r\n\t\t\t\t// .progress(function(evt) {\r\n\t\t\t\t// console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));\r\n\t\t\t\t// })\r\n\t\t\t\t.success(function(data) {\r\n\t\t\t\t\t// file is uploaded successfully\r\n\t\t\t\t\tLeadService.getLeads({ showCode: CurrentEvent.ShowCode }, true);\r\n\r\n\t\t\t\t\tself.uploadMessages = data;\r\n\t\t\t\t})\r\n\t\t\t\t.error(function(data) {\r\n\t\t\t\t\tif(data && data.ExceptionMessage)\r\n\t\t\t\t\t\tself.errorMessages = [data.ExceptionMessage];\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tself.errorMessages = ['There was a problem uploading your file.'];\r\n\t\t\t\t});\r\n\t\t\t\t//.error(...)\r\n\t\t\t\t//.then(success, error, progress);\r\n\t\t\t\t// access or attach event listeners to the underlying XMLHttpRequest.\r\n\t\t\t\t//.xhr(function(xhr){xhr.upload.addEventListener(...)})\r\n\t\t\t}\r\n\t\t\t/* alternative way of uploading, send the file binary with the file's content-type.\r\n\t\t\t Could be used to upload files to CouchDB, imgur, etc... html5 FileReader is needed.\r\n\t\t\t It could also be used to monitor the progress of a normal http post/put request with large data*/\r\n\t\t\t// $scope.upload = $upload.http({...}) see 88#issuecomment-31366487 for sample code.\r\n\t\t};\r\n\t};\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.controller('LeadUploadCtrl', LeadUploadCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.controller:LeadsCtrl\r\n * @description\r\n * # LeadsCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n var LeadsCtrl = function ($state, $sce, $http, $q, CurrentEvent, Demographics, Surveys, Search, Countries, States,\r\n LeadsCapturedBy, HasPurchasedDevKit, HasPurchasedEventBit, LeadService, LeadExportService, EnvironmentConfig,\r\n LeadCollateral, Collateral, isSPOT, LeadsEmailInformation, BusinessCardLeadService) {\r\n 'ngInject'\r\n\r\n var self = this;\r\n\r\n self.demographics = Demographics;\r\n self.leadSearch = Search.leads;\r\n self.leadsCapturedBy = LeadsCapturedBy;\r\n self.countries = Countries;\r\n self.states = States;\r\n self.surveys = Surveys;\r\n self.hasPurchasedDevKit = HasPurchasedDevKit;\r\n self.hasPurchasedEventBit = HasPurchasedEventBit;\r\n self.filterOnly = false;\r\n\r\n self.exportUrl = $sce.trustAsResourceUrl(EnvironmentConfig.SiteRoot + 'export/');\r\n self.filename = 'leads-' + CurrentEvent.ShowCode + '-' + new Date().toJSON().slice(0, 10);\r\n self.filedata = '';\r\n self.filetype = '';\r\n\r\n self.leadCollateral = LeadCollateral;\r\n self.collateral = Collateral || [];\r\n self.leadsMsg = \"Loading leads...\";\r\n self.leadsEmailInformation = LeadsEmailInformation;\r\n self.showSalesforceModal = false;\r\n self.showSalesforceUnderConstructionModal = false;\r\n\r\n setTimeout(function () {\r\n if (!self.leads)\r\n self.leadsMsg += \" WOW, you must have a lot of leads, good job!\";\r\n }, 20000)\r\n\r\n LeadService.getSwapActivations({ showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n self.swapActivations = LeadService.data.swapActivations[CurrentEvent.ShowCode];\r\n });\r\n\r\n $q.all([\r\n LeadService.getLeadDates(CurrentEvent.ShowCode),\r\n BusinessCardLeadService.getBusinessCardLeadDates(CurrentEvent.ShowCode)\r\n ]).then(function () {\r\n self.leadDates = LeadService.data.leadDates[CurrentEvent.ShowCode];\r\n\r\n BusinessCardLeadService.data.leadDates[CurrentEvent.ShowCode].forEach(function (ld) {\r\n if (ld && !_.any(self.leadDates, function (sld) { return sld == ld; }))\r\n self.leadDates.push(ld);\r\n });\r\n\r\n self.leadDates = self.leadDates.sort();\r\n\r\n self.businessCardLeads = BusinessCardLeadService.data.businessCardLeads[CurrentEvent.ShowCode];\r\n self.leads = LeadService.data.leads[CurrentEvent.ShowCode].map(function (l) {\r\n return angular.extend({}, l, {\r\n Collateral: LeadCollateral[l.Id] || [],\r\n CollateralFormatted: (LeadCollateral[l.Id] || []).map(function (x) {\r\n return (Collateral.filter(function (c) { return c.CollateralID == x.CollateralID; }).shift() || {}).DisplayName;\r\n }).join(' | '),\r\n Spotted: !!(l.LeadOwnerSpotted || l.NonLeadOwnerSpotted) ? 1 : 0,\r\n MoreCaptureTimes: l.MoreCaptureTimes ? JSON.parse(l.MoreCaptureTimes).map(function (x) {\r\n var d = new Date(0);\r\n d.setUTCMilliseconds(x.mc);\r\n\r\n return d.toISOString();\r\n }) : '',\r\n Rating: l.Rating ? l.Rating : 0\r\n });\r\n });\r\n\r\n for (var i = 0; i < self.businessCardLeads.length; i++) {\r\n self.leads.push(self.businessCardLeads[i]);\r\n }\r\n\r\n LeadExportService.getHeaders(CurrentEvent.ShowCode, self.leads, HasPurchasedEventBit)\r\n .then(function () {\r\n self.exportHeaders = LeadExportService.data[CurrentEvent.ShowCode].headers;\r\n });\r\n\r\n self.showSPOT = (function (hasData, isSPOT) {\r\n return hasData || (!hasData && isSPOT);\r\n })(!!self.leads.filter(function (x) { return x.LeadOwnerSpotted || x.NonLeadOwnerSpotted; }).length, isSPOT);\r\n });\r\n\r\n self.pendingPredicate = function (contactType, checked) {\r\n if (checked)\r\n return true;\r\n else\r\n return contactType != 'UNV';\r\n };\r\n\r\n self.collateralPredicate = function (collateral, checked) {\r\n if (checked)\r\n return true;\r\n };\r\n\r\n self.leadDatePredicate = function (leadDate, filterDate) {\r\n return leadDate === filterDate;\r\n };\r\n\r\n self.getDate = function (dateString) {\r\n return new Date(dateString);\r\n };\r\n\r\n self.changeCheckbox = function (e) {\r\n e.target.value = e.target.checked ? 'true' : '';\r\n };\r\n\r\n self.changeCountry = function (e, oldValue, newValue) {\r\n if (newValue === 'UNITED STATES' || newValue === 'US') {\r\n e.target.value = '';\r\n\r\n if (oldValue)\r\n getStates('');\r\n }\r\n else\r\n getStates(newValue);\r\n };\r\n\r\n self.postLeadsForExport = function (filetype) {\r\n if (typeof dataLayer !== 'undefined') {\r\n if (filetype.toLowerCase() === 'csv') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Leads', 'eventAction': 'Download CSV', 'eventLabel': CurrentEvent.ShowCode });\r\n } else {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Leads', 'eventAction': 'Download Excel', 'eventLabel': CurrentEvent.ShowCode });\r\n }\r\n }\r\n\r\n var data = LeadExportService.getExportCSV(CurrentEvent.ShowCode, self.exportHeaders, self.leadSearch.data, filetype);\r\n self.filedata = btoa(RawDeflate.deflate(encodeURIComponent(data))).replace(/\\//g, '-').replace(/\\+/g, '.').replace(/=/g, '_');\r\n self.filetype = filetype;\r\n\r\n setTimeout(function () { angular.element('#ExportForm').submit(); }, 0);\r\n };\r\n\r\n // Track a button click event\r\n self.handleSalesforceIntegrationClick = function () {\r\n // Track the button click event with Google Tag Manager\r\n dataLayer.push({\r\n 'event': 'salesforce_integration_click',\r\n 'eventCategory': 'ExhibitorPortal',\r\n 'eventAction': 'Salesforce Integration Clicked',\r\n 'eventLabel': 'Salesforce Integration Button'\r\n });\r\n };\r\n\r\n self.toggleFilterOnly = function (e) {\r\n if (!e || (e && !angular.element(e.target).parents('[ep-filter-clear]').length))\r\n self.filterOnly = !self.filterOnly;\r\n else if (e && angular.element(e.target).parents('[ep-filter-clear]').length)\r\n setTimeout(function () { angular.element(e.target).parents('[ep-filter-clear]').click(); }, 0);\r\n };\r\n\r\n self.toggleButtonBar = function () {\r\n self.showButtonBar = !self.showButtonBar;\r\n };\r\n\r\n self.detail = function (e, lead) {\r\n if (!angular.element(e.target).is('a')) {\r\n if (lead.LeadType == 'BUSINESS CARD')\r\n $state.go('event.businessCardDetail', { key: lead.ImageKey });\r\n else\r\n $state.go('event.leadDetail', { id: lead.Id });\r\n }\r\n };\r\n\r\n self.clickSort = function (option) {\r\n var opt = angular.copy(option);\r\n if (opt && opt.indexOf('.') > -1 && opt.split('.').length > 1)\r\n opt = option.split('.')[1];\r\n\r\n if (typeof dataLayer != 'undefined') {\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Click', 'eventAction': 'Sorting', 'eventLabel': 'By ' + opt });\r\n }\r\n };\r\n\r\n function getStates(countryCode) {\r\n LeadService.getStates({ showCode: CurrentEvent.ShowCode, countryCode: countryCode })\r\n .then(function () {\r\n self.states = LeadService.data.states[CurrentEvent.ShowCode][countryCode];\r\n\r\n if (Search.leads.filters.ContactInfo['Contact.Address.StateCode'])\r\n delete Search.leads.filters.ContactInfo['Contact.Address.StateCode'];\r\n });\r\n }\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('LeadsCtrl', LeadsCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.controller:AccountCtrl\r\n * @description\r\n * # AccountCtrl\r\n * Controller of the exhibitorPortalLoginApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var AccountCtrl = function ($state, $rootScope, $window, EnvironmentConfig, LoginService, $stateParams) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.forgotPassword = $stateParams.forgotPassword;\r\n\r\n if (!self.forgotPassword && (!LoginService.data.show.showCode || !LoginService.data.exhibitor.exhibitorId))\r\n $state.go('login.landing');\r\n\r\n self.header = self.forgotPassword ? \"What's your email address?\" : \"Let's see if you have an account already.\";\r\n\r\n self.search = function () {\r\n if (!self.email || self.email.indexOf('@') === -1 || self.email.indexOf('.') === -1) {\r\n self.errors = ['PLEASE NOTE: Please enter a valid email address to continue.'];\r\n } else {\r\n self.errors = null;\r\n }\r\n\r\n if (self.forgotPassword)\r\n self.sendForgotPasswordEmail();\r\n else\r\n self.searchAccount();\r\n };\r\n\r\n self.sendForgotPasswordEmail = function () {\r\n LoginService.sendChangePasswordEmail({\r\n params: {\r\n email: self.email,\r\n showCode: LoginService.data.show ? LoginService.data.show.showCode || '' : '',\r\n exhibitorID: LoginService.data.exhibitor ? LoginService.data.exhibitor.exhibitorId || 0 : 0\r\n }\r\n }).then(function (data) {\r\n if (data) {\r\n if (data.Success) {\r\n if (data.Data === 'Multiple') {\r\n self.NeedMoreInfo = true;\r\n self.EmailSent = false;\r\n self.found = false;\r\n self.errors = null;\r\n } else if (data.Data === 'Sent') {\r\n self.NeedMoreInfo = false;\r\n self.EmailSent = true;\r\n self.found = false;\r\n self.errors = null;\r\n } else {\r\n self.errors = data.Errors;\r\n }\r\n } else {\r\n self.errors = data.Errors;\r\n }\r\n }\r\n });\r\n };\r\n\r\n self.searchAccount = function () {\r\n LoginService.getContactByEmailShowCodeExhibitorID({\r\n email: self.email,\r\n showCode: LoginService.data.show.showCode,\r\n exhibitorId: LoginService.data.exhibitor.exhibitorId\r\n }).then(function (data) {\r\n if (data) {\r\n var result = data.data;\r\n\r\n if (result.Success) {\r\n LoginService.data.user = result.Data;\r\n self.found = true;\r\n self.user = result.Data;\r\n } else {\r\n self.errors = result.Errors;\r\n }\r\n }\r\n });\r\n };\r\n\r\n self.back = function () {\r\n $state.go('login.landing');\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .controller('AccountCtrl', AccountCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.controller:ChangePwdCtrl\r\n * @description\r\n * # ChangePwdCtrl\r\n * Controller of the exhibitorPortalLoginApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var ChangePwdCtrl = function ($state, $rootScope, $window, EnvironmentConfig, LoginService, $stateParams) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.focusPassword = true;\r\n self.inputType = 'password';\r\n\r\n self.pwdUser = LoginService.getPwdUser();\r\n if (!self.pwdUser || !self.pwdUser.ContactID)\r\n $state.go('login.landing');\r\n\r\n self.changePassword = function () {\r\n if (!self.password) {\r\n self.errors = ['You must enter a new password to continue.'];\r\n return;\r\n }\r\n\r\n LoginService.changePassword({\r\n params: {\r\n ContactID: self.pwdUser.ContactID,\r\n password: self.password\r\n }\r\n }).then(function (data) {\r\n if (data) {\r\n if (data.Success && data.Data) {\r\n var loc = (EnvironmentConfig.SiteRoot[EnvironmentConfig.SiteRoot.length - 1] === '/' && data.Data[0] === '/')\r\n ? EnvironmentConfig.SiteRoot + data.Data.substring(1, data.Data.length)\r\n : EnvironmentConfig.SiteRoot + data.Data;\r\n\r\n window.location = loc;\r\n } else if (data.Errors && data.Errors.length > 0) {\r\n self.errors = data.Errors;\r\n }\r\n }\r\n }).finally(function () {\r\n LoginService.clearPwdUser();\r\n });\r\n };\r\n\r\n self.changeType = function () {\r\n if (self.inputType === 'password')\r\n self.inputType = 'text';\r\n else\r\n self.inputType = 'password';\r\n\r\n self.focusPassword = true;\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .controller('ChangePwdCtrl', ChangePwdCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.controller:CompanyLoginCtrl\r\n * @description\r\n * # CompanyLoginCtrl\r\n * Controller of the exhibitorPortalLoginApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var CompanyLoginCtrl = function (EnvironmentConfig, LoginService, $state) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.loginData = LoginService.getCompanyLogin();\r\n\r\n self.helpObj = {\r\n FullName: '',\r\n Company: '',\r\n StreetAddress: '',\r\n CityStateZip: '',\r\n Country: '',\r\n Phone: '',\r\n Email: '',\r\n AdditionalInfo: '',\r\n ShowCode: self.loginData ? self.loginData.ShowCode : '', \r\n CompanyId: self.loginData ? self.loginData.CompanyID : '', \r\n };\r\n\r\n self.selectContact = function () {\r\n if (self.selectedContact) {\r\n var selected = parseInt(self.selectedContact);\r\n var contact = _.find(self.loginData.Contacts, function (c) { return c.Id === selected; });\r\n if (self.selectedContact === 'Other') {\r\n self.getHelp = true;\r\n self.errors = null;\r\n } else {\r\n var loc = (EnvironmentConfig.SiteRoot[EnvironmentConfig.SiteRoot.length - 1] === '/' && self.loginData.RedirectUrl[0] === '/')\r\n ? EnvironmentConfig.SiteRoot + self.loginData.RedirectUrl.substring(1, self.loginData.RedirectUrl.length - 1)\r\n : EnvironmentConfig.SiteRoot + self.loginData.RedirectUrl;\r\n\r\n loc = loc.replace('[USERNAME]', contact.UserName).replace('[PWD]', contact.EncodedPassword);\r\n\r\n window.location = loc;\r\n }\r\n } else {\r\n self.errors = ['Please select an option to continue'];\r\n }\r\n };\r\n\r\n self.sendGetHelp = function () {\r\n LoginService.sendGetHelp({\r\n data: self.helpObj\r\n }).then(function (data) {\r\n if (data && data.Success)\r\n self.getHelpThankYou = true;\r\n else\r\n self.errors = data.Errors;\r\n });\r\n };\r\n\r\n self.goHome = function () {\r\n $state.go('login.landing');\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .controller('CompanyLoginCtrl', CompanyLoginCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.controller:LoginCtrl\r\n * @description\r\n * # LoginCtrl\r\n * Controller of the exhibitorPortalLoginApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LoginCtrl = function ($state, $rootScope, $window, EnvironmentConfig, LoginService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.root = $rootScope;\r\n\r\n self.panels = ['ShowComp', 'SignIn'];\r\n self.ShowComp = true;\r\n self.SignIn = false;\r\n\r\n LoginService.clearChoices();\r\n\r\n self.swapManualLogin = EnvironmentConfig.SWAPManualLogin;\r\n if (self.swapManualLogin) {\r\n self['ShowComp'] = false;\r\n self['SignIn'] = true;\r\n }\r\n\r\n self.clickPanel = function (panel) {\r\n if (!self[panel]) {\r\n self[panel] = true;\r\n\r\n var hiddenPanels = _.filter(self.panels, function (p) { return p !== panel; });\r\n for (var i = 0; i < hiddenPanels.length; i++)\r\n self[hiddenPanels[i]] = false;\r\n\r\n LoginService.data.messages = null;\r\n }\r\n };\r\n\r\n self.accountSearch = function () {\r\n $state.go('login.accountSearch');\r\n };\r\n\r\n self.forgotPassword = function () {\r\n $state.go('login.accountSearch', { forgotPassword: true });\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .controller('LoginCtrl', LoginCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:MainCtrl\r\n * @description\r\n * # MainCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var MainCtrl = function () {\r\n 'ngInject'\r\n\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t .controller('MainCtrl', MainCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n angular\r\n .module('exhibitorPortalApp')\r\n .controller('ModalController', ModalController);\r\n\r\n ModalController.$inject = ['$scope', '$window', '$modalInstance', 'templates', 'inputs', '$timeout'];\r\n\r\n function ModalController($scope, $window, $modalInstance, templates, inputs, $timeout) {\r\n /* jshint validthis:true */\r\n var vm = this;\r\n\r\n vm.templates = templates;\r\n\r\n // bind to controller\r\n angular.extend(vm, inputs);\r\n\r\n $timeout(() => {\r\n vm.isInitialized = true;\r\n }, 100);\r\n\r\n vm.dismiss = $modalInstance.dismiss;\r\n vm.close = function (type, httpPromise) {\r\n var result = {\r\n status: type\r\n };\r\n if (httpPromise) {\r\n // Sometimes we need to defer the closing of a modal until after a successful callback so\r\n // that we can display error messages in the modal so the user can resolve and try again.\r\n httpPromise.promise().then(function () {\r\n var fn = this;\r\n if (httpPromise.callback.apply(fn, arguments)) {\r\n $modalInstance.close(result);\r\n }\r\n }, angular.noop);\r\n }\r\n else {\r\n $modalInstance.close(result);\r\n }\r\n };\r\n\r\n vm.print = function ($event) {\r\n // http://stackoverflow.com/questions/32946154/window-open-throwing-apply-error-on-firefox\r\n // Not sure why this only seems to be a problem in FireFox. The link has a similar problem,\r\n // we were seeing the \"$digest already in progress\" rather than \"$apply already in progress.\"\r\n // Generally, the $timeout is the way to go. The link mentions that this caused popups to be\r\n // blocked, but I haven't seen this in testing. Maybe the user had the \"onClick\" method coming\r\n // from outside angularJS.\r\n $timeout(function () {\r\n var win = $window.open('', '_blank', 'top=0,left=0,toolbar=no,titlebar=no,status=no,scrollbars=no,resizable=no,menubar=no,location=no', true);\r\n\r\n var doc = win.document;\r\n doc.title = document.title;//re-use the main window's title in the new window\r\n angular.element(doc.head)\r\n .append('');\r\n //angular.element(doc.body).html(vm.templates.body);\r\n // comment the following code b/c exception of symbol.iterator not defined was thrown on WIN10/EDGE browser\r\n //angular.element(doc.body).html(\r\n // angular.element($event.target).closest('.reveal-modal').find('.email-wrapper').html()\r\n //);\r\n doc.write(angular.element($event.target).closest('.reveal-modal').find('.email-wrapper').html());\r\n\r\n doc.close(); // must close the document so the browser knows we're finished writing to it\r\n\r\n var images = doc.getElementsByTagName('img'),\r\n countPrintAttempts = 0,\r\n retryDelayMilliseconds = 250,\r\n attemptPrint = function () {\r\n // if it takes longer than 20 seconds, then something is wrong and we should exit this recursive loop...\r\n if (++countPrintAttempts * retryDelayMilliseconds / 1000 > 20) {\r\n win.close();\r\n return;\r\n }\r\n\r\n var areAllImagesLoaded = true;\r\n for (var i = 0; i < images.length; i++) {\r\n if (!images[i].complete) {\r\n areAllImagesLoaded = false;\r\n break;\r\n }\r\n }\r\n\r\n if (areAllImagesLoaded) {\r\n win.focus();// focus needed by IE?\r\n win.print();\r\n win.close();\r\n } else {\r\n /// if at first you don't succeed, then try again...\r\n $timeout(attemptPrint, retryDelayMilliseconds);\r\n }\r\n };\r\n attemptPrint();\r\n }, 0);\r\n };\r\n }\r\n\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:MoreInfoCtrl\r\n * @description\r\n * # MoreInfoCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var MoreInfoCtrl = function ($state, $stateParams, $rootScope, $anchorScroll, Product, Cart) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n\t\tself.cartItem = Cart.getItems().filter(function(x) { return x.getId() == $stateParams.id; })[0];\r\n\t\tself.product = Product;\r\n\r\n\t\t$anchorScroll();\r\n\r\n\t\tif(self.cartItem.getData().note)\r\n\t\t\tself.note = angular.copy(self.cartItem.getData().note);\r\n\t\telse\r\n\t\t\tself.note = '';\r\n\r\n\t\tself.save = function() {\r\n\t\t\tself.cartItem.getData().note = self.note;\r\n\t\t\tCart.$save();\r\n\t\t\tself.back();\r\n\t\t};\r\n\r\n\t\tself.assist = function() {\r\n\t\t\tvar confirm = window.confirm('Upon completion of your order, our Customer Service Department will be informed to contact you to help configure your custom printout.');\r\n\r\n\t\t\tif(confirm) {\r\n\t\t\t\tself.note = 'NEEDASSISTANCE';\r\n\t\t\t\tself.save();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.back = function() {\r\n\t\t\tif($rootScope.previousState)\r\n\t\t\t\t$state.go($rootScope.previousState);\r\n\t\t\telse\r\n\t\t\t\t$state.go('event.shop.products');\r\n\t\t};\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('MoreInfoCtrl', MoreInfoCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:MyShowsCtrl\r\n * @description\r\n * # MyShowsCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var MyShowsCtrl = function ($state, $scope, $window, $timeout, ActiveUserProfile, MyEvents, Search, ShowService, LeadActivityService, OrderService, EnvironmentConfig, ngCart, EXSConfig) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n\t\tself.shows = MyEvents;\r\n\t\tself.search = Search.events;\r\n\t\tself.accessCode = '';\r\n\t\tself.profile = ActiveUserProfile;\r\n\t\tself.modalWidth = angular.element($window).width() > 641 ? '50%' : '90%';\r\n\t\tself.EXSConfig = EXSConfig;\r\n\t\tself.filterSelections = {\r\n\t\t\tcurrent: true,\r\n\t\t\tpast: false,\r\n\t\t\tfuture: true\r\n\t\t};\r\n\r\n\t\tif(EnvironmentConfig.MarketingSplash && !$window.localStorage.getItem('EPMODAL')){\r\n\t\t\tself.showModal = true;\r\n\t\t\t$window.localStorage.setItem('EPMODAL', true);\r\n\t\t}\r\n\r\n\t\tself.selectShow = function (show) {\r\n\t\t\tShowService.hasActivations({\r\n\t\t\t\tshowCode: show.ShowCode\r\n\t\t\t})\r\n\t\t\t.then(function() {\r\n\t\t\t\t$timeout(function() { ngCart.load(show.ShowCode); });\r\n\r\n\t\t\t\tif(ShowService.data.activations[show.ShowCode])\r\n\t\t\t\t\tLeadActivityService.getLeadSummary({ showCode: show.ShowCode })\r\n\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\tif(LeadActivityService.data.leadSummary[show.ShowCode][1].Count)\r\n\t\t\t\t\t\t\t$state.go('event.dashboard.landing', { showcode: show.ShowCode });\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t$state.go('event.shop.products', { showcode: show.ShowCode });\r\n\t\t\t\t\t});\r\n\t\t\t\telse\r\n\t\t\t\t\tOrderService.getOrders({ showCode: show.ShowCode })\r\n\t\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\t\tvar orders = OrderService.data.orders[show.ShowCode] || [];\r\n\r\n\t\t\t\t\t \tfor(var i = 0; i < orders.length; i++){\r\n\t\t\t\t\t\t\t\tfor(var a = 0; a < orders[i].Transactions.length; a++){\r\n\t\t\t\t\t\t\t\t\tif(orders[i].Transactions[a].DataSalesListId && orders[i].Transactions[a].TransTypeCode === 'PUR' && orders[i].Transactions[a].TransStatus !== 'VOIDED'){\r\n\t\t\t\t\t\t\t\t\t\t$state.go('event.dashboard.emailCampaigns', { showcode: show.ShowCode });\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n $state.go('event.shop.products', { showcode: show.ShowCode });\r\n\t\t\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.changeFilter = function(e) {\r\n e.target.value = e.target.checked ? 'true' : '';\r\n };\r\n\r\n\t\tself.showFilter = function(show) {\r\n\t\t\tif(self.filterSelections.current && show.current)\r\n\t\t\t\treturn true;\r\n\t\t\telse if(self.filterSelections.past && show.past)\r\n\t\t\t\treturn true;\r\n\t\t\telse if(self.filterSelections.future && show.future)\r\n\t\t\t\treturn true;\r\n\t\t\telse if (!(self.filterSelections.current || self.filterSelections.past || self.filterSelections.future))\r\n\t\t\t\treturn true;\r\n\t\t\telse\r\n\t\t\t\treturn false;\r\n\t\t};\r\n\r\n\t\tself.addShow = function() {\r\n\t\t\treturn ShowService\r\n\t\t\t\t.addShow({accessCode: self.accessCode}, true)\r\n\t\t\t\t.then(function() {\r\n\t\t\t\t\tShowService.getShows({}, true)\r\n\t\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\t\tself.accessCode = '';\r\n\t\t\t\t\t\t\tself.shows = ShowService.data.shows;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('MyShowsCtrl', MyShowsCtrl);\r\n})(angular, window);\r\n\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:NavCtrl\r\n * @description\r\n * # NavCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var NavCtrl = function ($state, $rootScope, $window, ShowService, ngCart, ActiveUserProfile, EnvironmentConfig, OrderService) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n\t\tself.root = $rootScope;\r\n\r\n\t\tself.inEvent = function() {\r\n\t\t\treturn !!ShowService.data.currentShow;\r\n };\r\n\r\n\t\tself.hasActivations = function() {\r\n\t\t\treturn ShowService.data.currentShow && ShowService.data.activations && ShowService.data.activations[ShowService.data.currentShow.ShowCode];\r\n\t\t};\r\n\r\n\t\tself.hasCampaign = function () {\r\n\t\t\tif(ShowService.data.currentShow && ShowService.data.currentShow.ShowCode && OrderService.data.orders && OrderService.data.orders[ShowService.data.currentShow.ShowCode]){\r\n\t\t\t\tvar orders = OrderService.data.orders[ShowService.data.currentShow.ShowCode];\r\n\r\n\t\t \tfor(var i = 0; i < orders.length; i++){\r\n\t\t\t\t\tfor(var a = 0; a < orders[i].Transactions.length; a++){\r\n\t\t\t\t\t\tif(orders[i].Transactions[a].DataSalesListId && orders[i].Transactions[a].TransTypeCode === 'PUR' && orders[i].Transactions[a].TransStatus !== 'VOIDED')\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.hasCollateral = function () {\r\n\t\t\tif(ShowService.data.currentShow && ShowService.data.currentShow.ShowCode && OrderService.data.orders && OrderService.data.orders[ShowService.data.currentShow.ShowCode]){\r\n\t\t\t\tvar orders = OrderService.data.orders[ShowService.data.currentShow.ShowCode];\r\n\t\t\t\tvar codes = ['311', '312', '313', '314']; //SWAP product codes\r\n\r\n\t\t \tfor(var i = 0; i < orders.length; i++){\r\n\t\t\t\t\tfor(var a = 0; a < orders[i].Transactions.length; a++){\r\n\t\t\t\t\t\tif(codes.indexOf(orders[i].Transactions[a].ProductCode) > -1 && orders[i].Transactions[a].TransTypeCode === 'PUR' && orders[i].Transactions[a].TransStatus !== 'VOIDED')\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.shop = function() {\r\n $state.go('event.shop.products');\r\n\t\t};\r\n\r\n\t\tself.logout = function () {\r\n\t\t\twindow.location = EnvironmentConfig.SiteRoot + 'home/logout' + (ActiveUserProfile.SWAPOnly ? '/?swap=true' : '');\r\n\t\t};\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('NavCtrl', NavCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:ProductsCtrl\r\n * @description\r\n * # ProductsCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var ProductsCtrl = function ($state, $timeout, $q, $sce, $anchorScroll, CurrentEvent, Products, PurchasedProducts, RecommendedProducts, UpsellProducts, DataSalesProducts, AllAvailableProducts, Cart, ProductsService, DataSalesService, ngCartItem, Search, ActiveUserProfile, AdditionalInfo, modalFactory) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.isRecommendationEvent = window.RecommendationEvents.toString().split(',').includes(CurrentEvent.ShowCode);\r\n self.products = Products;\r\n self.upsellProducts = UpsellProducts;\r\n self.dataSalesProducts = DataSalesProducts;\r\n self.additionalInfo = AdditionalInfo;\r\n self.featuredProducts = Products.filter(p => p.IsFeatured);\r\n //push featured products down in the display order\r\n self.featuredProducts.forEach(p => p.DisplayOrder += 1000);\r\n self.currentEvent = CurrentEvent;\r\n self.pastProducts = PurchasedProducts;\r\n self.currentRecProductIds = RecommendedProducts;\r\n self.boothSizeLimit = 1000;\r\n self.boothList = AdditionalInfo.BoothList || [];\r\n self.totalRecPrice = 0;\r\n\r\n const numInputs = document.querySelectorAll('input[type=number]')\r\n\r\n numInputs.forEach(function (input) {\r\n input.addEventListener('change', function (e) {\r\n if (e.target.value == '') {\r\n e.target.value = 0\r\n }\r\n })\r\n })\r\n\r\n self.displayErrors = false;\r\n self.isRecommendationValid = false;//based on what is returned by ERE\r\n self.isProductHistoryEmpty = true;\r\n self.isRecommendationEbitRep = false;//if booth size is over a specific value (error will be returned by ERE in future)\r\n self.isBoothListEmpty = true;\r\n self.isBoothList = false;\r\n\r\n if (AdditionalInfo.BoothList.length > 1) {\r\n self.isBoothList = true;\r\n }\r\n if (self.pastProducts.length > 0) {\r\n self.isProductHistoryEmpty = false;\r\n }\r\n\r\n self.exhibitorId = ActiveUserProfile.ExhibitorId;\r\n if (AdditionalInfo.BoothList.length > 0) {\r\n self.boothId = AdditionalInfo.BoothList[0].showExhibitorBoothId;\r\n self.boothSize = AdditionalInfo.BoothList[0].boothSize;\r\n self.boothWorkers = Math.ceil(self.boothSize / 300);\r\n self.isBoothListEmpty = false;\r\n }\r\n else {\r\n self.boothId = 0;\r\n self.boothSize = 0;\r\n self.boothWorkers = 0;\r\n }\r\n\r\n if (self.currentRecProductIds.length > 0 && self.boothSize < self.boothSizeLimit) {\r\n self.isRecommendationValid = true;\r\n }\r\n\r\n self.quantities = {};\r\n self.added = {};\r\n self.items = {};\r\n self.prices = {};\r\n\r\n $anchorScroll();\r\n\r\n self.getThumbnail = function (image) {\r\n return { thumbnail: image };\r\n };\r\n\r\n const createGroups = () => {\r\n const packages = Products.filter(p => p.ProductTypeCode == 'PKG');\r\n packages.forEach(p => {\r\n //sort the ids so item order is consistent and we can group on it\r\n p.sortedPackageItemIDList = p.PackageItemIDList.split(',').map(x => x.trim()).sort().join(',');\r\n });\r\n //packages that have the same items can be bundled\r\n const groups = _.groupBy(packages, 'sortedPackageItemIDList');\r\n return groups;\r\n };\r\n const groups = createGroups();\r\n self.bundles = {};\r\n\r\n //any groups with length > 1 are bundles\r\n for (const prop in groups) {\r\n if (groups[prop].length > 1) {\r\n const lowestPricePkg = groups[prop].reduce((prev, curr) => {\r\n return prev.PackageTotalPrice < curr.PackageTotalPrice ? prev : curr;\r\n })\r\n //all packages in a bundle are like packages, so use the first package for image and desc\r\n const pkg = groups[prop][0];\r\n self.bundles[prop] = {\r\n startingPrice: lowestPricePkg.PackageTotalPrice,\r\n imageUrl: pkg.ProductImage,\r\n title: pkg.ProductDescription,\r\n description: pkg.HTMLDescription,\r\n items: groups[prop]\r\n };\r\n }\r\n }\r\n console.log(self.bundles);\r\n\r\n self.bundleOnChange = (e) => {\r\n if (e.selectedItemId) {\r\n e.selectedItem = e.items.find(p => p.Id == e.selectedItemId);\r\n } else {\r\n e.selectedItem = undefined;\r\n }\r\n console.log(e);\r\n };\r\n\r\n self.onBoothIdChange = (selectedBoothId) => {\r\n if (selectedBoothId) {\r\n var booth = self.boothList.find(p => p.showExhibitorBoothId == selectedBoothId);\r\n self.boothSize = booth.boothSize;\r\n self.boothWorkers = Math.ceil(self.boothSize / 300);\r\n } else {\r\n self.boothSize = 0;\r\n self.boothWorkers = 0;\r\n }\r\n };\r\n\r\n self.isBundleEmpty = () => {\r\n return _.isEmpty(self.bundles);\r\n };\r\n\r\n self.onClickShowProductDetail = function (product, showPrice = true) {\r\n //self.modalProductDetailID = product.Id;\r\n //self.modalProductDetailShow = true;\r\n\r\n var inputs = {\r\n product: product,\r\n quantities: self.quantities,\r\n added: self.added,\r\n prices: self.prices,\r\n onAdd: self.onAdd,\r\n setQuantity: self.setQuantity,\r\n title: product.ProductName,\r\n };\r\n\r\n var bodyTpl = '';\r\n if (!showPrice) {\r\n bodyTpl = '';\r\n }\r\n var footerTpl = ' ';\r\n modalFactory.showModal({\r\n bodyTemplate: bodyTpl,\r\n //footerTemplate: footerTpl,\r\n controller: 'ModalController',\r\n //modalcss: vm.modalcss,\r\n inputs: inputs\r\n })\r\n .then(function (result) {\r\n if (result.status == 'OK')\r\n angular.extend(vm.profile, profileCopy);\r\n });\r\n };\r\n\r\n self.onAdd = function (cartItem, element) {\r\n var product = AllAvailableProducts.filter(function (p) { return p.ProductPriceID == cartItem.getId(); })[0];\r\n var swapProduct = AllAvailableProducts.filter(function (p) { return p.ProductCode === 'SWAP'; });\r\n\r\n if ((product.MoreInfoTypeCode == 'CUSTOMPRINT' && !cartItem.length) ||\r\n (product.MoreInfoTypeCode == 'CUSTOMPRINT' && !cartItem[0].getData().note))\r\n $state.go('event.shop.moreInfo', { id: id });\r\n else if (product.ProductCode == '203') { //203 is the email blast product code\r\n\r\n // PDJ 2016.05.23: City State Zip was displaying as \"undefined, undefined, undefined\"\r\n // May be a cleaner way than this\r\n var AddrCSZ = \"\";\r\n if (ActiveUserProfile.CompanyAddress.City !== undefined) {\r\n AddrCSZ = ActiveUserProfile.CompanyAddress.City;\r\n }\r\n if (ActiveUserProfile.CompanyAddress.State !== undefined) {\r\n if (AddrCSZ != '') {\r\n AddrCSZ = AddrCSZ + ', ';\r\n }\r\n AddrCSZ = AddrCSZ + ActiveUserProfile.CompanyAddress.State;\r\n }\r\n if (ActiveUserProfile.CompanyAddress.PostalCode !== undefined) {\r\n if (AddrCSZ != '') {\r\n AddrCSZ = AddrCSZ + ' ';\r\n }\r\n AddrCSZ = AddrCSZ + ActiveUserProfile.CompanyAddress.PostalCode;\r\n }\r\n\r\n var data = {\r\n timestamp: new Date().getTime(),\r\n thumbnail: product.ProductImage,\r\n productCode: product.ProductCode,\r\n //moreInfoTypeCode: product.MoreInfoTypeCode,\r\n dataSalesTierTypeCode: product.DataSalesTierTypeCode,\r\n productPriceId: product.ProductPriceID,\r\n expressions: angular.copy(Search.dataSales.expressions),\r\n email: {\r\n SubjectLine: '',\r\n ScheduledExecutionDate: '',\r\n ScheduleExecutionTime: '',\r\n ShowCode: CurrentEvent.ShowCode,\r\n ShowName: CurrentEvent.TradeShowName,\r\n SignatureFullName: ActiveUserProfile.FirstName + ' ' + ActiveUserProfile.LastName,\r\n SignatureTitle: ActiveUserProfile.Title,\r\n SignatureCompany: ActiveUserProfile.Company,\r\n SignatureAddress: ActiveUserProfile.CompanyAddress.Address,\r\n SignatureAddress2: ActiveUserProfile.CompanyAddress.Address2,\r\n SignatureAddrCSZ: AddrCSZ,\r\n SignatureEmail: ActiveUserProfile.Email,\r\n SignaturePhone: ActiveUserProfile.Phone,\r\n SignatureFax: ActiveUserProfile.Fax,\r\n SignatureWebSite: '',\r\n DataSalesExhibitorImage: '',\r\n DataSalesExhibitorBody: ''\r\n },\r\n agreeToTerms: false,\r\n minAmount: product.DataSalesMinOrderAmount || 0,\r\n targetShowCode: product.DataSalesTargetShowCode\r\n };\r\n\r\n cartItem.setData(data);\r\n\r\n if (product.DataSalesTierTypeCode.startsWith('SET'))\r\n DataSalesService.finalize({\r\n data: {\r\n showCode: product.DataSalesTargetShowCode,\r\n dataSalesExecuteContext: { MediaTypeCode: 'EMAIL' }\r\n }\r\n }).then(function (results) {\r\n if (product.DataSalesTierTypeCode == 'SETPERNAME') {\r\n data.cachedCount = results.FinalCount;\r\n }\r\n data.dataSalesListId = results.DataSalesListID;\r\n Cart.$save();\r\n $state.go('event.shop.dataSales.emailBuilder', { timestamp: data.timestamp });\r\n });\r\n else {\r\n Cart.$save();\r\n $state.go('event.shop.dataSales.filterBuilder', { timestamp: data.timestamp });\r\n }\r\n }\r\n else if (['204', '205'].indexOf(product.ProductCode) > -1) {\r\n var data = {\r\n timestamp: new Date().getTime(),\r\n thumbnail: product.ProductImage,\r\n productCode: product.ProductCode,\r\n dataSalesTierTypeCode: product.DataSalesTierTypeCode,\r\n productPriceId: product.ProductPriceID,\r\n expressions: angular.copy(Search.dataSales.expressions),\r\n agreeToTerms: false,\r\n minAmount: product.DataSalesMinOrderAmount || 0,\r\n targetShowCode: product.DataSalesTargetShowCode\r\n };\r\n\r\n if (product.ProductCode == '205') {\r\n data.mailHouse = {\r\n SignatureCompany: '',\r\n SignatureAddress: '',\r\n SignatureAddress2: '',\r\n SignatureAddrCSZ: '',\r\n SignatureEmail: '',\r\n SignaturePhone: '',\r\n DataSalesAttachments: []\r\n };\r\n }\r\n\r\n cartItem.setData(data);\r\n\r\n if (product.DataSalesTierTypeCode.startsWith('SET'))\r\n DataSalesService.finalize({\r\n data: {\r\n showCode: product.DataSalesTargetShowCode,\r\n dataSalesExecuteContext: { MediaTypeCode: 'EMAIL' }\r\n }\r\n }).then(function (results) {\r\n if (product.DataSalesTierTypeCode == 'SETPERNAME') {\r\n data.cachedCount = results.FinalCount;\r\n }\r\n data.dataSalesListId = results.DataSalesListID;\r\n Cart.$save();\r\n\r\n if (product.ProductCode == '205')\r\n $state.go('event.shop.dataSales.mailHouse', { timestamp: data.timestamp });\r\n else\r\n $state.go('event.shop.dataSales.terms', { timestamp: data.timestamp });\r\n });\r\n else {\r\n Cart.$save();\r\n $state.go('event.shop.dataSales.filterBuilder', { timestamp: data.timestamp });\r\n }\r\n }\r\n else if (product.ProductCode == '205') {\r\n\r\n }\r\n else if (!window.localStorage.getItem(CurrentEvent.ShowCode + ':UPSELL:SWAP') && swapProduct.length && ['782', '325', '326'].indexOf(product.ProductCode) > -1) {\r\n if (window.confirm('That\\'s a great choice, but did you know you could save money and have 3 points of lead collection by using SWAP, a mobile lead retrieval app? Would you like to change your order to SWAP?')) {\r\n Cart.removeItem(Cart.getCart().items.indexOf(cartItem), true);\r\n swapProduct = swapProduct[0];\r\n cartItem = Cart.addItem(swapProduct.ProductPriceID.toString(), swapProduct.ProductName, swapProduct.PackageTotalPrice, 1, swapProduct.discount, {\r\n thumbnail: swapProduct.ProductImage,\r\n productCode: swapProduct.ProductCode,\r\n promoCode: 'SWAPOUT'\r\n });\r\n }\r\n\r\n window.localStorage.setItem(CurrentEvent.ShowCode + ':UPSELL:SWAP', true);\r\n }\r\n\r\n self.added[cartItem.getId()] = true;\r\n angular.element(element).prop('disabled', true);\r\n\r\n $timeout(function () {\r\n self.setQuantity(cartItem.getId(), 1);\r\n self.added[cartItem.getId()] = false;\r\n self.setTotalRecPrice;\r\n angular.element(element).prop('disabled', false);\r\n }, 2000);\r\n };\r\n\r\n self.setTotalRecPrice = () => {\r\n var total = 0;\r\n self.currentRecProductIds.forEach(r => {\r\n var product = AllAvailableProducts.find(p => p.ProductPriceID == r.ProductPriceID);\r\n total = total + (product.quantity * product.PackageTotalPrice);\r\n });\r\n self.totalRecPrice = total;\r\n }\r\n\r\n self.getPrice = function (p, quantity) {\r\n if (p.ProductDiscountID > 0) {\r\n var existing = Cart.getItems().filter(function (x) { return x.getId() == p.ProductPriceID; });\r\n\r\n if (existing.length)\r\n self.items[p.ProductPriceID].setQuantity(quantity + existing[0].getQuantity());\r\n else\r\n self.items[p.ProductPriceID].setQuantity(quantity);\r\n\r\n self.items[p.ProductPriceID].getTotal().then(function (result) {\r\n if (existing.length)\r\n existing[0].getTotal().then(function (existingTotal) {\r\n self.prices[p.ProductPriceID] = result - existingTotal;\r\n });\r\n else\r\n self.prices[p.ProductPriceID] = result;\r\n });\r\n }\r\n else {\r\n self.prices[p.ProductPriceID] = p.PackageTotalPrice * quantity;\r\n }\r\n };\r\n\r\n self.setQuantity = function (id, quantity, relative) {\r\n quantity = parseInt(quantity);\r\n\r\n if (quantity % 1 === 0) {\r\n if (relative === true) {\r\n self.quantities[id] += quantity;\r\n } else {\r\n self.quantities[id] = quantity;\r\n }\r\n if (self.quantities[id] < 1) self.quantities[id] = 1;\r\n\r\n const product = AllAvailableProducts.find(p => p.ProductPriceID == id);\r\n product.quantity = self.quantities[id];\r\n const prod = self.currentRecProductIds.find(p => p.ProductPriceID == id);\r\n if (prod) {\r\n prod.quantity = self.quantities[id];\r\n }\r\n } else {\r\n self.quantities[id] = 1;\r\n console.info('Quantity must be an integer and was defaulted to 1');\r\n }\r\n\r\n\r\n self.updatePrice(id);\r\n self.setTotalRecPrice();\r\n };\r\n\r\n self.updatePrice = function (id) {\r\n self.getPrice(AllAvailableProducts.filter(function (p) {\r\n return p.ProductPriceID == id;\r\n })[0], self.quantities[id]);\r\n };\r\n\r\n self.newRecommendation = function () {\r\n var d = $q.defer();\r\n self.displayErrors = false;\r\n self.isRecommendationEbitRep = false;\r\n var tempExhibitorId = self.exhibitorId;\r\n var tempBoothId = self.boothId;\r\n if (CurrentEvent.ShowCode != 'CON231') {\r\n tempExhibitorId = 1001894;\r\n tempBoothId = 1520143;\r\n }\r\n //temporary work around\r\n if (self.boothSize >= self.boothSizeLimit) {\r\n self.isRecommendationEbitRep = true;\r\n self.displayErrors = true;\r\n }\r\n else if (self.boothSize == 0 || self.boothSize == undefined || self.boothWorkers == 0 || self.boothWorkers == undefined) {\r\n self.isRecommendationValid = false;\r\n self.displayErrors = true;\r\n }\r\n else {\r\n ProductsService\r\n .getShowExhibitorBoothRecommendation({ exhibitorId: tempExhibitorId, showExhibitorBoothID: tempBoothId, boothWorkers: self.boothWorkers, surveyBoothsize: self.boothSize, showCode: CurrentEvent.ShowCode })\r\n .then(function () {\r\n if (ProductsService.data.showExhibitorBoothRecommendation[tempExhibitorId][tempBoothId][self.boothWorkers][self.boothSize][CurrentEvent.ShowCode].length) {\r\n self.currentRecProductIds = ProductsService.data.showExhibitorBoothRecommendation[tempExhibitorId][tempBoothId][self.boothWorkers][self.boothSize][CurrentEvent.ShowCode];\r\n self.resetRec();\r\n self.isRecommendationValid = true;\r\n }\r\n else {\r\n self.currentRecProductIds = [];\r\n self.isRecommendationValid = false;\r\n self.displayErrors = true;\r\n }\r\n d.resolve();\r\n });\r\n }\r\n }\r\n\r\n\r\n self.next = function () {\r\n var d = $q.defer();\r\n\r\n if (Cart.totalItems()) {\r\n var productIds = Cart.getItems().map(function (e) {\r\n var product = AllAvailableProducts.filter(function (p) {\r\n return p.ProductPriceID == e._id;\r\n });\r\n\r\n if (product.length)\r\n return product[0].Id;\r\n else\r\n return 0;\r\n }).join(',');\r\n\r\n ProductsService\r\n .getUpsell({ showCode: CurrentEvent.ShowCode, productIds: productIds })\r\n .then(function () {\r\n if (ProductsService.data.upsell[CurrentEvent.ShowCode][productIds].length)\r\n $state.go('event.shop.upsell');\r\n else\r\n $state.go('event.shop.cart');\r\n\r\n d.resolve();\r\n });\r\n }\r\n else {\r\n $timeout(function () {\r\n window.alert('Please add at least one item to your cart before attempting to continue.');\r\n d.resolve();\r\n });\r\n }\r\n\r\n return d.promise;\r\n };\r\n\r\n self.trustAsHtml = function (html) {\r\n return $sce.trustAsHtml(html);\r\n };\r\n\r\n self.resetRec = function () {\r\n AllAvailableProducts.forEach(function (p) {\r\n let defaultQty = p.ProductMinQuantity ? p.ProductMinQuantity : 1;\r\n self.quantities[p.ProductPriceID] = defaultQty\r\n p.quantity = defaultQty;\r\n\r\n p.discount = {\r\n id: p.ProductDiscountID,\r\n limit: p.MaxAvailableQty,\r\n max: p.MaxDiscountsPerShow,\r\n min: p.MinQualifyingQty,\r\n price: p.DiscountedUnitPrice\r\n };\r\n\r\n self.items[p.ProductPriceID] = new ngCartItem(p.ProductPriceID, p.ProductName, p.PackageTotalPrice, defaultQty, p.discount, { thumbnail: p.ProductImage });\r\n self.getPrice(p, defaultQty);\r\n });\r\n \r\n if (self.currentRecProductIds.length != 0) {\r\n self.currentRecProductIds.forEach(r => {\r\n var product = AllAvailableProducts.find(p => p.ProductPriceID == r.ProductPriceID);\r\n let defaultQty = r.ProductRecQuantity ? r.ProductRecQuantity : 1;\r\n self.quantities[product.ProductPriceID] = defaultQty\r\n product.quantity = defaultQty;\r\n r.quantity = defaultQty;\r\n\r\n self.items[product.ProductPriceID] = new ngCartItem(product.ProductPriceID, product.ProductName, product.PackageTotalPrice, defaultQty, product.discount, { thumbnail: product.ProductImage });\r\n self.getPrice(product, defaultQty);\r\n })\r\n }\r\n self.setTotalRecPrice();\r\n }\r\n\r\n self.onAddAll = function (element) {\r\n self.currentRecProductIds.forEach(r => {\r\n var product = AllAvailableProducts.find(p => p.ProductPriceID == r.ProductPriceID);\r\n var cartItem = Cart.addItem(product.ProductPriceID, product.ProductName, product.PackageTotalPrice, product.quantity, product.discount, {\r\n thumbnail: product.ProductImage,\r\n productCode: product.ProductCode,\r\n });\r\n self.onAdd(cartItem, element);\r\n });\r\n $state.go('event.shop.products');\r\n }\r\n\r\n self.resetRec();\r\n self.setTotalRecPrice();\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('ProductsCtrl', ProductsCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:ShopCtrl\r\n * @description\r\n * # ShopCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var ShopCtrl = function ($state, $q, ActiveUserProfile, CurrentEvent, AdditionalInfo, ngCart, Checkout, AllAvailableProducts, OrderService, DataSalesService, UtilityFactory) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n\t\tself.cart = ngCart;\r\n\t\tself.currentEvent = CurrentEvent;\r\n\t\tself.additionalInfo = AdditionalInfo;\r\n self.checkout = Checkout;\r\n self.showTermsOfUseModal = false;\r\n\r\n\t\tif(self.currentEvent.HasActiveSalesTier){\r\n\t\t\tvar deadline = AdditionalInfo.PreRegEndDate,\r\n\t\t\t\tdiscountDeadline = AdditionalInfo.DiscountDeadline,\r\n\t\t\t\tpostShowDataSalesBegin = AdditionalInfo.FullSetPostBeginDate,\r\n\t\t\t\tpostShowDataSalesEnd = AdditionalInfo.FullSetPostEndDate;\r\n\r\n\t\t\tself.deadline = deadline || 'N/A';\r\n\t\t\tself.discountDeadline = discountDeadline || 'N/A';\r\n\t\t\tself.postShowDataSalesDates = (postShowDataSalesBegin && postShowDataSalesEnd) ?\r\n\t\t\t\t(postShowDataSalesBegin + ' - ' + postShowDataSalesEnd) : 'N/A';\r\n\t\t}\r\n\r\n\t\t//clean up cart\r\n\t\tvar invalidItems = ngCart.getCart().items.reduce(function(previousValue, currentValue, currentIndex) {\r\n\t\t\tif(AllAvailableProducts.map(function(x) { return Number(x.ProductPriceID); }).indexOf(Number(currentValue._id)) > -1)\r\n\t\t\t\treturn previousValue;\r\n\t\t\telse {\r\n\t\t\t\tpreviousValue.push(currentIndex);\r\n\t\t\t\treturn previousValue;\r\n\t\t\t}\r\n\t\t}, []);\r\n\r\n\t\tif(invalidItems.length)\r\n\t\t\tngCart.setItems(function(x,i) {\r\n\t\t\t\treturn invalidItems.indexOf(i) === -1;\r\n\t\t\t});\r\n\r\n\t\tself.processOrder = function(){\r\n var d = $q.defer();\r\n\r\n if (!self.agreeToTerms) {\r\n window.alert('You must agree to the Terms and Conditions before proceeding.');\r\n return $q.when(undefined);\r\n }\r\n if (Checkout.doesOrderHaveEventBit && !self.ebitAcknowledgement) {\r\n window.alert('You must acknowledge eventBit requirements.')\r\n return $q.when(undefined);\r\n }\r\n if (self.processingOrder != true) {\r\n self.processingOrder = true;\r\n $q.all((function() {\r\n var promises = [];\r\n var cartItems = ngCart.getItems();\r\n\r\n if(cartItems.filter(function(x){ return x.getData().email || x.getData().mailHouse; }).length){\r\n for(var i = 0; i < cartItems.length; i++){\r\n var cartItemData = cartItems[i].getData();\r\n\r\n if (cartItemData.email) {\r\n promises.push(\r\n DataSalesService.saveStrategy({\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n strategy: {\r\n activityFocus: 'DSE',\r\n strategyType: 'BLAST',\r\n areTermsAgreed: cartItemData.agreeToTerms,\r\n //TODO: ContactID???\r\n dataSalesListId: cartItemData.dataSalesListId,\r\n subjectLine: cartItemData.email.SubjectLine,\r\n templateId: cartItemData.email.TemplateId,\r\n messageConfigs: (function (templates, templateId) {\r\n var messageConfigs = [];\r\n var template = templates.filter(function (e) { return e.TemplateID == templateId; });\r\n\r\n if (template.length && (template = template[0]))\r\n for (var a = 0; a < template.BodyFields.length; a++) {\r\n if (template.BodyFields[a].KeyName === 'DataSalesExhibitorBody') {\r\n messageConfigs.push({\r\n keyName: template.BodyFields[a].KeyName,\r\n itemValue: UtilityFactory.HTMLEncode(cartItemData.email[template.BodyFields[a].KeyName])\r\n });\r\n } else {\r\n messageConfigs.push({\r\n keyName: template.BodyFields[a].KeyName,\r\n itemValue: cartItemData.email[template.BodyFields[a].KeyName]\r\n });\r\n }\r\n }\r\n\r\n return messageConfigs;\r\n })(DataSalesService.data.templates[CurrentEvent.ShowCode], cartItemData.email.TemplateId),\r\n scheduledExecutionDate: new Date(cartItemData.email.ScheduledExecutionDate + ' ' + cartItemData.email.ScheduledExecutionTime),\r\n exhibitorId: ActiveUserProfile.ExhibitorId,\r\n showCode: CurrentEvent.ShowCode,\r\n strategyStatus: 'setup'\r\n }\r\n }\r\n })\r\n );\r\n }\r\n else if (cartItemData.mailHouse) {\r\n promises.push(\r\n DataSalesService.saveStrategy({\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n strategy: {\r\n activityFocus: 'DSE',\r\n strategyType: 'MAILHOUSE',\r\n areTermsAgreed: cartItemData.agreeToTerms,\r\n dataSalesListId: cartItemData.dataSalesListId,\r\n messageConfigs: (function rescurse(messageConfigs, data) {\r\n for (var key in data) {\r\n if (typeof data[key] === 'string')\r\n messageConfigs.push({\r\n keyName: key,\r\n itemValue: data[key]\r\n });\r\n else if (Array.isArray(data[key]))\r\n messageConfigs.push({\r\n keyName: key,\r\n itemValue: data[key].join(',')\r\n });\r\n }\r\n\r\n return messageConfigs;\r\n })([], cartItemData.mailHouse),\r\n exhibitorId: ActiveUserProfile.ExhibitorId,\r\n showCode: CurrentEvent.ShowCode,\r\n strategyStatus: 'setup'\r\n }\r\n }\r\n })\r\n );\r\n }\r\n else {\r\n promises.push($q.when(undefined));\r\n }\r\n }\r\n }\r\n\r\n return promises;\r\n })()).then(function(strategies) {\r\n OrderService.processOrder({\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n boothId: Checkout.boothId,\r\n addressId: Checkout.address ? Checkout.address.Id : null,\r\n couponCode: ngCart.getCouponCode(),\r\n cart: (function() {\r\n return ngCart.getItems().map(function(x,i) {\r\n var strategy = strategies[i];\r\n return {\r\n productPriceId: x.getId(),\r\n quantity: x.getQuantity(),\r\n note: x.getData().note,\r\n dataSalesListId: x.getData().dataSalesListId,\r\n dataSalesTargetShowCode: x.getData().targetShowCode,\r\n campaignStrategyId: strategy ? strategy.PrimaryID : null,\r\n promoCode: x.getData().promoCode\r\n };\r\n });\r\n })()\r\n }\r\n }).then(function(data) {\r\n ngCart.totalCost().then(function(cartTotal) {\r\n if(!cartTotal && !isNaN(data)) {\r\n $state.go('event.shop.confirmation', { salesOrderId: data });\r\n }\r\n else if(data){\r\n window.location = data;\r\n }\r\n else {\r\n self.processingOrder = false;\r\n window.alert('There was an error processing your order.');\r\n }\r\n });\r\n }).finally(function() {\r\n d.resolve();\r\n });\r\n }, function() {\r\n d.resolve();\r\n });\r\n }\r\n return d.promise;\r\n\t\t};\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('ShopCtrl', ShopCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:SurveyCtrl\r\n * @description\r\n * # Survey Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var SurveyCtrl = function ($scope, $filter, $state, $q, $timeout, CurrentEvent, Surveys, Survey, Search, SurveyService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n Survey.SurveyQuestions = $filter('orderBy')(Survey.SurveyQuestions, 'DisplayOrder');\r\n\r\n for (var i = 0; i < Survey.SurveyQuestions.length; i++)\r\n Survey.SurveyQuestions[i].DisplayOrder = i;\r\n\r\n self.baseSurvey = Survey;\r\n self.survey = angular.copy(Survey);\r\n self.search = Search.survey;\r\n self.search.edit = false;\n\n self.isUsed = _.any(self.survey.SurveyQuestions, function (sq) { return sq.IsUsed; });\r\n\r\n self.existingSurveyNames = Surveys.filter(function (s) { return s.Id !== Survey.Id; })\r\n .map(function (s) { return s.Name; });\r\n\r\n $scope.$on('$stateChangeStart', function (event) {\r\n var pageChangeOk = true;\r\n if (!angular.equals(self.survey, self.baseSurvey)) {\r\n if (!window.confirm('You have unsaved changes that will be lost, are you sure you want to proceed?')) {\r\n pageChangeOk = false;\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n //PDJ 2016.10.12: Remove this survey, leaving it is causing a mess in some places do not list it when name is blank then saving goes wonky\r\n if (pageChangeOk == true && self.survey.Id == 0) {\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++) {\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == self.survey.Id) {\r\n SurveyService.data.surveys[CurrentEvent.ShowCode].splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n });\n\n self.markQuestionInactive = function (question) {\n if (question) {\n self.deleteModalLinkedQuestions = self.survey.SurveyQuestions.filter(function (sq) {\n return _.any(sq.SurveyAnswers, function (sa) {\n return sa.BranchAction == 'OVERRIDE' && sa.NextQuestionId == question.Id\n });\n });\n\n if (self.deleteModalLinkedQuestions && self.deleteModalLinkedQuestions.length) {\n self.showSurveyFixerUpper = true;\r\n } else {\n question.IsActive = false;\r\n }\r\n }\r\n };\r\n\r\n self.save = function (redirect) {\r\n //check to see if we actually need to save\r\n if (!angular.equals(self.survey, self.baseSurvey)) {\r\n return SurveyService\r\n .saveSurvey({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n survey: self.survey\r\n }\r\n })\r\n .then(function (survey) {\r\n for (var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++)\r\n if (SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == survey.Id) {\r\n self.baseSurvey = SurveyService.data.surveys[CurrentEvent.ShowCode][i];\r\n self.survey = angular.copy(self.baseSurvey);\r\n break;\r\n }\r\n\r\n if (redirect !== false && self.survey.SurveyQuestions.length)\r\n $state.go('event.surveys.surveys');\r\n });\r\n }\r\n //nope, but code still expects this to return a promise so return one and resolve it immediately\r\n else {\r\n var d = $q.defer();\r\n\r\n $timeout(function () {\r\n d.resolve();\r\n\r\n if (redirect !== false && self.survey.SurveyQuestions.length)\r\n $state.go('event.surveys.surveys');\r\n });\r\n\r\n return d.promise;\r\n }\r\n };\r\n\r\n self.upClick = function (index) {\r\n if (index === 0)\r\n self.paginated[index].DisplayOrder = self.paginated[self.paginated.length - 1].DisplayOrder + 1;\r\n else {\r\n var dest, destDisplayOrder;\r\n\r\n dest = self.paginated[index - 1];\r\n destDisplayOrder = dest.DisplayOrder;\r\n\r\n dest.DisplayOrder = self.paginated[index].DisplayOrder;\r\n self.paginated[index].DisplayOrder = destDisplayOrder;\r\n }\r\n };\r\n\r\n self.downClick = function (index) {\r\n if (index === self.paginated.length - 1) {\r\n self.paginated[index].DisplayOrder = 0;\r\n\r\n for (var i = 0; i < self.paginated.length; i++)\r\n if (self.paginated[i] != self.paginated[index])\r\n self.paginated[i].DisplayOrder++;\r\n }\r\n else {\r\n var dest, destDisplayOrder;\r\n\r\n dest = self.paginated[index + 1];\r\n destDisplayOrder = dest.DisplayOrder;\r\n\r\n dest.DisplayOrder = self.paginated[index].DisplayOrder;\r\n self.paginated[index].DisplayOrder = destDisplayOrder;\r\n }\r\n };\r\n\r\n self.questionClick = function (surveyId, questionId) {\r\n if (!self.search.edit)\r\n $state.go('event.surveys.surveyQuestion', { id: surveyId, surveyQuestionId: questionId });\r\n\r\n return false;\r\n };\r\n\r\n self.edit = function (e) {\r\n self.search.edit = !self.search.edit\r\n e.target.value = self.search.edit;\r\n angular.element(e.target).triggerHandler('change', true);\r\n };\r\n\r\n self.activePredicate = function (active, edit) {\r\n if (edit === 'true')\r\n return true;\r\n else\r\n return active;\r\n };\r\n\r\n self.preview = function () {\r\n return self.save(false).then(function () {\r\n SurveyService.getPreviewURL({\r\n showCode: CurrentEvent.ShowCode,\r\n surveyId: self.survey.Id,\r\n questionId: 0\r\n })\r\n .then(function () {\r\n window.open(SurveyService.data.previewURL[CurrentEvent.ShowCode][self.survey.Id][0]);\r\n });\r\n });\r\n };\r\n\r\n self.email = function () {\r\n return self.save(false).then(function () {\r\n $state.go('event.surveys.emailSurvey', { id: self.survey.Id });\r\n });\r\n };\n\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('SurveyCtrl', SurveyCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:SurveyCopyCtrl\r\n * @description\r\n * # Survey Copy Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var SurveyCopyCtrl = function ($state, CurrentEvent, HistoricalSurveys, Search, SurveyService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.currentEvent = CurrentEvent;\r\n self.surveys = HistoricalSurveys; //.filter(function (survey) { return survey.ShowCode !== CurrentEvent.ShowCode; });\r\n\r\n self.select = function (survey) {\r\n if (survey.selected)\r\n survey.selected = false;\r\n else\r\n survey.selected = true;\r\n };\r\n\r\n self.copySurvey = function (showcode) {\r\n\r\n var selectedSurveys = self.surveys.filter(function (survey) { return survey.selected; });\r\n\r\n var surveyData = selectedSurveys.reduce(function (acc, obj) {\r\n var showCode = obj.ShowCode;\r\n (acc[showCode] = acc[showCode] || []).push(obj.SurveyID);\r\n return acc;\r\n }, {});\r\n\r\n SurveyService.copySurvey({\r\n data: {\r\n copySurveys: surveyData,\r\n sourceShowCode: showcode,\r\n destinationShowCode: CurrentEvent.ShowCode\r\n }\r\n }).then(function (data) {\r\n $state.go('event.surveys.surveys');\r\n });\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('SurveyCopyCtrl', SurveyCopyCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:SurveyQuestionCtrl\r\n * @description\r\n * # Survey Question Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var SurveyQuestionCtrl = function ($scope, $state, $q, $timeout, $filter, CurrentEvent, Survey, SurveyQuestion, Search, SurveyService, SurveyQuestions) {\r\n 'ngInject'\r\n\t\tvar self = this;\r\n\r\n SurveyQuestion.SurveyAnswers = $filter('orderBy')(SurveyQuestion.SurveyAnswers, 'DisplayOrder');\r\n\r\n for(var i = 0; i < SurveyQuestion.SurveyAnswers.length; i++)\r\n SurveyQuestion.SurveyAnswers[i].DisplayOrder = i;\r\n\r\n self.survey = Survey;\r\n self.baseSurveyQuestion = SurveyQuestion;\r\n\t\t self.surveyQuestion = angular.copy(SurveyQuestion);\r\n\t\t self.search = Search.surveyQuestion;\r\n self.search.edit = false;\r\n self.answersToAdd = '';\r\n self.hasOther = false;\r\n self.otherAnswerText = '';\n\n self.questions = SurveyQuestions;\n self.availableQuestions = SurveyService.availableBranchedQuestions(self.surveyQuestion, self.questions);\n \n if (!_.any(self.availableQuestions, function (q) { return q.Text === 'END SURVEY' && !q.Id; })) {\r\n self.availableQuestions.push({\r\n Id: 0,\r\n Text: 'END SURVEY',\r\n EndSurvey: true\r\n });\r\n }\n\r\n if (!_.any(self.availableQuestions, function (q) { return q.Text === 'NONE - Remove Branching' && !q.Id; })) {\r\n self.availableQuestions.push({\r\n Id: -1,\r\n Text: 'NONE - Remove Branching',\r\n EndSurvey: false,\r\n RemoveBranching: true\r\n });\r\n }\n\n self.changeBranchAction = function (answer) {\n if (answer) {\n if (answer.BranchAction === 'NATURAL') {\n answer.BranchAction = 'OVERRIDE';\r\n } else {\n answer.BranchAction = 'NATURAL';\n SurveyService.setNextQuestionIdByNaturalOrder(answer, self.surveyQuestion, self.questions);\r\n }\r\n }\r\n };\n\n self.changeNextQuestion = function (answer) {\r\n if (!answer)\r\n return;\r\n\r\n var nextQuestion = self.availableQuestions.filter(function (q) { return q.Id == answer.NextQuestionId; })[0];\r\n if (nextQuestion && nextQuestion.EndSurvey) {\r\n answer.BranchAction = 'ENDSURVEY';\r\n } else if (nextQuestion && nextQuestion.RemoveBranching) {\r\n answer.BranchAction = 'NATURAL';\r\n SurveyService.setNextQuestionIdByNaturalOrder(answer, self.surveyQuestion, self.questions);\r\n } else {\r\n answer.BranchAction = 'OVERRIDE'; //first question selecting third as branch\r\n }\r\n };\r\n\r\n self.changeNextQuestionOther = function () {\r\n var nextQuestion = self.availableQuestions.filter(function (q) { return q.Id == self.otherNextQuestionId; })[0];\r\n if (nextQuestion && nextQuestion.EndSurvey) {\r\n self.otherBranchAction = 'ENDSURVEY';\r\n } else if (nextQuestion && nextQuestion.RemoveBranching) {\r\n self.otherBranchAction = 'NATURAL';\r\n var answer = { BranchAction: 'NATURAL', NextQuestionId: null };\r\n SurveyService.setNextQuestionIdByNaturalOrder(answer, self.surveyQuestion, self.questions);\r\n self.otherNextQuestionId = answer.NextQuestionId;\r\n } else {\r\n self.otherBranchAction = 'OVERRIDE';\r\n }\r\n };\n\n self.changeBranchActionOther = function () {\n if (self.otherBranchAction === 'NATURAL') {\n self.otherBranchAction = 'OVERRIDE';\r\n } else {\n self.otherBranchAction = 'NATURAL';\n self.otherNextQuestionId = null;\r\n }\r\n };\n\n self.otherNextQuestionId = null;\n self.otherBranchAction = 'NATURAL';\r\n\n var other = self.surveyQuestion.SurveyAnswers.filter(function(x) { return x.SurveyAnswerTypeCode === 'OPN' && x.IsActive; });\r\n\r\n if(other.length){\r\n self.hasOther = true;\r\n self.otherAnswerText = other[0].Text;\n self.otherNextQuestionId = other[0].NextQuestionId;\n self.otherBranchAction = other[0].BranchAction;\r\n }\r\n\r\n $scope.$on('$stateChangeStart', function(e) {\r\n if(!angular.equals(self.surveyQuestion, self.baseSurveyQuestion)) {\r\n if(!window.confirm('You have unsaved changes that will be lost, are you sure you want to proceed?'))\r\n e.preventDefault();\r\n }\r\n });\r\n\n self.changePriority = function (priority) {\n self.prevPriority = self.surveyQuestion.Priority;\n self.surveyQuestion.Priority = priority;\r\n };\n \r\n self.answerFilter = function(answer) {\r\n return answer.SurveyAnswerTypeCode !== 'OPN';\r\n };\r\n\r\n self.addAnswer = function() {\r\n //split on new line and remove empty entries\r\n var answers = self.answersToAdd.split('\\n').filter(function(x) { return x.trim(); });\r\n\r\n for(var i = 0; i < answers.length; i++){\r\n self.surveyQuestion.SurveyAnswers.push({\r\n Id: 0,\r\n SurveyQuestionId: self.surveyQuestion.Id,\r\n SurveyAnswerTypeCode: 'SEL',\r\n Text: answers[i],\r\n IsActive: true,\r\n DisplayOrder: self.surveyQuestion.SurveyAnswers.length + 1\r\n });\r\n };\r\n\r\n self.answersToAdd = '';\r\n };\n\n self.hasActiveAnswers = function() {\n if (!self.surveyQuestion.SurveyAnswers)\n return false;\n\n return self.surveyQuestion.SurveyAnswers.find(answer => answer.SurveyAnswerTypeCode !== 'OPN' && answer.IsActive) ? true : false;\r\n };\n\n $scope.$watch(function () {\n return self.surveyQuestion.Text;\n }, function (newval, oldval) {\n if (newval !== oldval) {\n if (!self.surveyQuestion.Id && _.any(self.survey.SurveyQuestions, function (sq) { return sq.Text === newval; }))\n self.form.questionName.$setValidity('nonunique', false);\n else\n self.form.questionName.$setValidity('nonunique', true);\r\n }\n });\r\n\r\n self.save = function (redirect) {\r\n if(!self.form.$valid){\r\n var d = $q.defer();\r\n\r\n $timeout(function() {\r\n self.form.$setSubmitted();\r\n\r\n d.reject();\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n if(self.answersToAdd.trim())\r\n self.addAnswer();\r\n\r\n if(other.length){\r\n if (self.hasOther) {\r\n other[0].Text = self.otherAnswerText || other[0].Text;\n other[0].NextQuestionId = self.otherNextQuestionId;\n other[0].BranchAction = self.otherBranchAction;\n }\r\n else\r\n other[0].IsActive = false;\r\n }\r\n else if(!other.length && self.hasOther){\r\n var newOther = {\r\n Id: 0,\r\n SurveyQuestionId: self.surveyQuestion.Id,\r\n SurveyAnswerTypeCode: 'OPN',\r\n Text: self.otherAnswerText,\r\n IsActive: true,\r\n DisplayOrder: self.surveyQuestion.SurveyAnswers.length + 1,\n NextQuestionId: self.otherNextQuestionId,\n BranchAction: self.otherBranchAction\r\n };\r\n other.push(newOther);\r\n self.surveyQuestion.SurveyAnswers.push(newOther);\r\n }\r\n\r\n if (!angular.equals(self.surveyQuestion, self.baseSurveyQuestion)) {\n\r\n if (!self.surveyQuestion.Id && !_.any(self.survey.SurveyQuestions, function (sq) { return sq.Text === self.surveyQuestion.Text; }))\r\n self.survey.SurveyQuestions.push(self.surveyQuestion);\r\n else\r\n for(var i = 0; i < self.survey.SurveyQuestions.length; i++)\r\n if(self.survey.SurveyQuestions[i].Id == self.surveyQuestion.Id){\r\n self.survey.SurveyQuestions[i] = self.surveyQuestion;\r\n break;\r\n }\r\n \r\n return SurveyService\r\n .saveSurvey({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n survey: self.survey\r\n }\r\n })\r\n .then(function(survey) {\r\n for(var i = 0; i < SurveyService.data.surveys[CurrentEvent.ShowCode].length; i++){\r\n if(SurveyService.data.surveys[CurrentEvent.ShowCode][i].Id == survey.Id){\r\n //edit case\r\n if(self.surveyQuestion.Id){\r\n for(var a = 0; a < SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions.length; a++)\r\n if(SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a].Id == self.surveyQuestion.Id){\r\n self.baseSurveyQuestion = SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a];\r\n self.surveyQuestion = angular.copy(self.baseSurveyQuestion);\r\n break;\r\n }\r\n }\r\n //add case\r\n else {\r\n //determine which question is the new one by comparing old question array to new\r\n for(var a = 0; a < SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions.length; a++){\r\n var existingQuestion = self.survey.SurveyQuestions.filter(function(x) {\r\n return x.Id == SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a].Id;\r\n });\r\n\r\n if(!existingQuestion.length){\r\n //find the old question object and update it with its new Id and any saved answer objects\r\n var unsavedQuestion = self.survey.SurveyQuestions.filter(function(x) { return !x.Id; });\r\n\r\n if(unsavedQuestion.length){\r\n unsavedQuestion[0] = SurveyService.data.surveys[CurrentEvent.ShowCode][i].SurveyQuestions[a];\r\n self.baseSurveyQuestion = unsavedQuestion[0];\r\n self.surveyQuestion = angular.copy(self.baseSurveyQuestion);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if(redirect !== false)\r\n $state.go('event.surveys.survey', { id: self.survey.Id });\r\n });\r\n }\r\n else {\r\n var d = $q.defer();\r\n\r\n $timeout(function() {\r\n d.resolve();\r\n\r\n if(redirect !== false)\r\n $state.go('event.surveys.survey', { id: self.survey.Id });\r\n });\r\n\r\n return d.promise;\r\n }\r\n };\r\n\r\n self.changeType = function(type) {\r\n self.surveyQuestion.SurveyQuestionTypeCode = type;\r\n };\r\n\r\n self.upClick = function(index) {\r\n if(index === 0)\r\n self.paginated[index].DisplayOrder = self.paginated[self.paginated.length - 1].DisplayOrder + 1;\r\n else {\r\n var dest, destDisplayOrder;\r\n\r\n dest = self.paginated[index - 1];\r\n destDisplayOrder = dest.DisplayOrder;\r\n\r\n dest.DisplayOrder = self.paginated[index].DisplayOrder;\r\n self.paginated[index].DisplayOrder = destDisplayOrder;\r\n }\r\n };\r\n\r\n self.downClick = function(index) {\r\n if(index === self.paginated.length - 1){\r\n self.paginated[index].DisplayOrder = 0;\r\n\r\n for(var i = 0; i < self.paginated.length; i++)\r\n if(self.paginated[i] != self.paginated[index])\r\n self.paginated[i].DisplayOrder++;\r\n }\r\n else {\r\n var dest, destDisplayOrder;\r\n\r\n dest = self.paginated[index + 1];\r\n destDisplayOrder = dest.DisplayOrder;\r\n\r\n dest.DisplayOrder = self.paginated[index].DisplayOrder;\r\n self.paginated[index].DisplayOrder = destDisplayOrder;\r\n }\r\n };\r\n\r\n self.edit = function(e) {\r\n self.search.edit = !self.search.edit;\r\n e.target.value = self.search.edit;\r\n angular.element(e.target).triggerHandler('change', true);\r\n };\r\n\r\n self.activePredicate = function(active, edit) {\r\n if(edit === 'true')\r\n return true;\r\n else\r\n return active;\r\n };\r\n\r\n self.preview = function() {\r\n return self.save(false).then(function() {\r\n SurveyService.getPreviewURL({\r\n showCode: CurrentEvent.ShowCode,\r\n surveyId: self.survey.Id,\r\n questionId: self.surveyQuestion.Id\r\n })\r\n .then(function() {\r\n window.open(SurveyService.data.previewURL[CurrentEvent.ShowCode][self.survey.Id][self.surveyQuestion.Id]);\r\n });\r\n });\r\n };\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t .controller('SurveyQuestionCtrl', SurveyQuestionCtrl);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:SurveysCtrl\r\n * @description\r\n * # Surveys Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var SurveysCtrl = function ($scope, $q, $state, $filter, CurrentEvent, Surveys, Search, SurveyService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.search = Search.surveys;\r\n self.search.edit = false;\r\n self.search.editDefault = false;\r\n self.currentEvent = CurrentEvent;\r\n\r\n var ordered = $filter('orderBy')(Surveys, 'DisplayOrder');\r\n\r\n for (var i = 0; i < ordered.length; i++)\r\n ordered[i].DisplayOrder = i;\r\n\r\n self.baseSurveys = angular.copy(ordered);\r\n self.paginated = self.surveys = angular.copy(ordered);\r\n\r\n $scope.$on('$stateChangeStart', function (event) {\r\n if (!angular.equals(self.surveys, self.baseSurveys))\r\n if (!window.confirm('You have unsaved changes that will be lost, are you sure you want to proceed?'))\r\n event.preventDefault();\r\n });\r\n\r\n self.save = function () {\r\n return $q.all((function (promises) {\r\n //only save surveys that have changed\r\n for (var i = 0; i < self.surveys.length; i++)\r\n for (var a = 0; a < self.baseSurveys.length; a++)\r\n if (self.surveys[i].Id === self.baseSurveys[a].Id && !angular.equals(self.surveys[i], self.baseSurveys[a]))\r\n promises.push(SurveyService\r\n .saveSurvey({\r\n params: { showCode: CurrentEvent.ShowCode },\r\n data: {\r\n showCode: CurrentEvent.ShowCode,\r\n survey: self.surveys[i]\r\n }\r\n }));\r\n\r\n return promises;\r\n })([]))\r\n .then(function () {\r\n self.baseSurveys = angular.copy(SurveyService.data.surveys[CurrentEvent.ShowCode]);\r\n self.paginated = self.surveys = angular.copy(self.baseSurveys);\r\n });\r\n };\r\n\r\n self.upClick = function (index) {\r\n if (index === 0)\r\n self.paginated[index].DisplayOrder = self.paginated[self.paginated.length - 1].DisplayOrder + 1;\r\n else {\r\n var dest, destDisplayOrder;\r\n\r\n dest = self.paginated[index - 1];\r\n destDisplayOrder = dest.DisplayOrder;\r\n\r\n dest.DisplayOrder = self.paginated[index].DisplayOrder;\r\n self.paginated[index].DisplayOrder = destDisplayOrder;\r\n }\r\n };\r\n\r\n self.downClick = function (index) {\r\n if (index === self.paginated.length - 1) {\r\n self.paginated[index].DisplayOrder = 0;\r\n\r\n for (var i = 0; i < self.paginated.length; i++)\r\n if (self.paginated[i] !== self.paginated[index])\r\n self.paginated[i].DisplayOrder++;\r\n }\r\n else {\r\n var dest, destDisplayOrder;\r\n\r\n dest = self.paginated[index + 1];\r\n destDisplayOrder = dest.DisplayOrder;\r\n\r\n dest.DisplayOrder = self.paginated[index].DisplayOrder;\r\n self.paginated[index].DisplayOrder = destDisplayOrder;\r\n }\r\n };\r\n\r\n self.surveyClick = function (survey) {\r\n if (!self.search.edit && !self.search.editDefault) {\r\n //If the survey does not have a ContactId then it must be an event level or enterprise level survey.\r\n //Before we edit the survey, we must make a copy of it (this is part of the business logic of the getSurvey endpoint)\r\n if (!survey.ContactId)\r\n SurveyService\r\n .getSurvey({ showCode: CurrentEvent.ShowCode, surveyId: survey.Id })\r\n .then(function (data) {\r\n SurveyService.getSurveys({ showCode: CurrentEvent.ShowCode }, true)\r\n .then(function () {\r\n $state.go('event.surveys.survey', { id: data.data.Id });\r\n });\r\n });\r\n else\r\n $state.go('event.surveys.survey', { id: survey.Id });\r\n }\r\n };\r\n\r\n self.edit = function (e) {\r\n self.search.edit = !self.search.edit\r\n self.search.editDefault = false;\r\n e.target.value = self.search.edit;\r\n angular.element(e.target).triggerHandler('change', true);\r\n };\r\n\r\n self.activePredicate = function (active, edit) {\r\n if (edit === 'true')\r\n return true;\r\n else\r\n return active;\r\n };\r\n\r\n self.filterQuestions = function (surveyQuestions, type) {\r\n return surveyQuestions.filter(function (s) { return s.SurveyQuestionTypeCode === type; });\r\n };\r\n\r\n self.editDefault = function (e) {\r\n self.search.edit = false;\r\n self.search.editDefault = !self.search.editDefault;\r\n e.target.value = self.search.editDefault;\r\n angular.element(e.target).triggerHandler('change', true);\r\n };\r\n\r\n self.clickDefault = function (survey, isDefault) {\r\n survey.IsDefault = isDefault;\r\n if (survey.IsDefault) {\r\n for (var i = 0; i < self.surveys.length; i++) {\r\n if (self.surveys[i].Id !== survey.Id)\r\n self.surveys[i].IsDefault = false;\r\n }\r\n }\r\n };\r\n\r\n self.copySurveys = function () {\r\n $state.go('event.surveys.copy');\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .controller('SurveysCtrl', SurveysCtrl);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:SwitchShowCtrl\r\n * @description\r\n * # SwitchShowCtrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n\r\n(function(angular, window, undefined) {\r\n var SwitchShowCtrl = function ($state, $scope, $rootScope, $timeout, $window, CurrentEvent, ngCart, MyEvents, LeadService, DemographicService, ShowService, SurveyService, LeadActivityService, ActiveUserProfile, AdditionalInfo) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.modalWidth = angular.element($window).width() > 641 ? '50%' : '90%';\r\n self.isArchived = CurrentEvent.IsArchived;\r\n\t\tself.currentShow = CurrentEvent;\r\n\t\tself.myEvents = MyEvents;\r\n\t\tself.SWAPOnly = ActiveUserProfile.SWAPOnly;\r\n self.company = ActiveUserProfile.Company;\r\n self.isPayOnly = $window.SalesOrderId;\r\n self.showDetailsModal = false;\r\n self.additionalInfo = AdditionalInfo;\r\n\t\t//load these resources asynchronously w/out a loading bar\r\n\t\tif(ShowService.data.activations[CurrentEvent.ShowCode])\r\n\t\t\t$timeout(function() {\r\n\t\t\t\t//LeadService.getLeads({ showCode: CurrentEvent.ShowCode } , false, { ignoreLoadingBar: true });\r\n\t\t\t\tLeadService.getCountries({ showCode: CurrentEvent.ShowCode } , false, { ignoreLoadingBar: true });\r\n\t\t\t\tLeadService.getStates({ showCode: CurrentEvent.ShowCode, countryCode: '' }, false, { ignoreLoadingBar: true });\r\n\t\t\t\tSurveyService.getSurveys({ showCode: CurrentEvent.ShowCode }, false, { ignoreLoadingBar: true });\r\n\t\t\t\tDemographicService.getDemographics({ showCode: CurrentEvent.ShowCode } , false, { ignoreLoadingBar: true });\r\n }, 500);\r\n\r\n\t\tself.switchEvent = function(showcode) {\r\n\t\t\tShowService.hasActivations({\r\n\t\t\t\tshowCode: showcode\r\n\t\t\t})\r\n\t\t\t.then(function() {\r\n\t\t\t\tif(ShowService.data.activations[showcode])\r\n\t\t\t\t\tLeadActivityService.getLeadSummary({ showCode: showcode })\r\n\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\tngCart.load(showcode);\r\n\r\n\t\t\t\t\t\tif(LeadActivityService.data.leadSummary[showcode][1].Count)\r\n\t\t\t\t\t\t\t$state.go('event.dashboard.landing', { showcode: showcode });\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t$state.go('event.shop.products', { showcode: showcode });\r\n\t\t\t\t\t});\r\n\t\t\t\telse{\r\n\t\t\t\t\tngCart.load(showcode);\r\n\t\t\t\t\t$state.go('event.shop.products', { showcode: showcode });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.controller('SwitchShowCtrl', SwitchShowCtrl);\r\n})(angular, window);\r\n","import Player from '@vimeo/player';\r\n\r\n'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalApp.controller:VideosCtl\r\n * @description\r\n * # Videos Ctrl\r\n * Controller of the exhibitorPortalApp\r\n */\r\n(function (angular, window) {\r\n angular.module('exhibitorPortalApp')\r\n .controller('VideosCtrl', VideosController);\r\n\r\n function VideosController($scope) {\r\n 'ngInject';\r\n\r\n var self = this;\r\n\r\n self.videoConfig = getVideoConfiguration();\r\n\r\n function getVideoConfiguration() {\r\n return [\r\n { title: 'Your Guide to the Maritz Lead Retrieval App', id: '1048205462', thumbnailImage: 'your-guide.png' },\r\n { title: 'Maritz Lead Generation', id: '1045759054', thumbnailImage: 'lead-generation.png' },\r\n { title: 'Optimizing Maritz Lead Retrieval', id: '1045762374', thumbnailImage: 'optimizing-lead-retrieval.png' },\r\n { title: 'Maritz Exhibitor Etiquette', id: '1045738840', thumbnailImage: 'exhibitor-etiquette.png' },\r\n { title: 'Maritz Return on Investment', id: '1045764696', thumbnailImage: 'return-on-investment.png' },\r\n ];\r\n }\r\n\r\n self.playVideo = (videoConfig) => {\r\n const { id } = videoConfig;\r\n\r\n const videoContainerId = `vimeo_video_${id}`;\r\n const videoOptions = getVimeoPlayerOptions(id);\r\n\r\n const player = new Player(videoContainerId, videoOptions);\r\n registerPlayerEventListeners(player, videoConfig);\r\n };\r\n\r\n function getVimeoPlayerOptions(videoId) {\r\n return {\r\n id: videoId,\r\n autopause: true,\r\n autoplay: true,\r\n play_button_position: 'center',\r\n };\r\n }\r\n\r\n function registerPlayerEventListeners(player, videoConfig) {\r\n onPlayerLoaded(player, videoConfig);\r\n onPlayerPlay(player);\r\n onPlayerEnded(player);\r\n onPlayerTimeUpdate(player);\r\n }\r\n\r\n function onPlayerLoaded(player, videoConfig) {\r\n player.on('loaded', (eventData) => {\r\n $scope.$apply(() => {\r\n videoConfig.loaded = true;\r\n });\r\n pushEventToGoogleTagManagerDataLayer(player, \"video_load\", eventData);\r\n });\r\n }\r\n\r\n function onPlayerPlay(player) {\r\n player.on('play', (eventData) => {\r\n pushEventToGoogleTagManagerDataLayer(player, \"video_play\", eventData)\r\n });\r\n }\r\n\r\n function onPlayerEnded(player) {\r\n player.on('ended', (eventData) => {\r\n pushEventToGoogleTagManagerDataLayer(player, \"video_ended\", eventData)\r\n });\r\n }\r\n\r\n function onPlayerTimeUpdate(player) {\r\n const progressPercentThresholds = [25, 50, 75, 100];\r\n\r\n const timestampsPushed = [];\r\n\r\n player.on('timeupdate', (eventData) => {\r\n progressPercentThresholds.forEach((progressThreshold) => {\r\n pushTimeUpdateWhenProgressIsReached(player, eventData, timestampsPushed, progressThreshold);\r\n });\r\n });\r\n }\r\n\r\n function pushTimeUpdateWhenProgressIsReached(player, eventData, timestampsPushed, progress) {\r\n const currentProgress = getVideoProgressAsWholeNumber(eventData.percent);\r\n\r\n const progressHasBeenReached = currentProgress >= progress;\r\n const updateEventHasNotBeenFired = timestampsPushed.indexOf(progress) === -1;\r\n\r\n if (progressHasBeenReached && updateEventHasNotBeenFired) {\r\n timestampsPushed.push(progress);\r\n\r\n const progressAsDecimal = progress / 100;\r\n eventData.percent = progressAsDecimal;\r\n\r\n pushEventToGoogleTagManagerDataLayer(player, \"video_timeupdate\", eventData);\r\n }\r\n }\r\n\r\n function getVideoProgressAsWholeNumber(percentAsDecimal) {\r\n const percentShifted = percentAsDecimal * 100;\r\n return Math.floor(percentShifted);\r\n }\r\n\r\n function pushEventToGoogleTagManagerDataLayer(player, eventName, eventData) {\r\n if (typeof dataLayer === 'undefined') {\r\n return;\r\n }\r\n\r\n getPlayerInformation(player, eventData).then((result) => {\r\n const data = assembleGTMEventObject(result, eventName, eventData);\r\n dataLayer.push(data);\r\n });\r\n }\r\n\r\n function getPlayerInformation(player, eventData) {\r\n const promises = [player.getVideoUrl(), player.getVideoTitle()];\r\n\r\n let videoIdPromise;\r\n const doesNotHaveIdInEventData = eventData.id === undefined;\r\n\r\n if (doesNotHaveIdInEventData) {\r\n videoIdPromise = player.getVideoId();\r\n } else {\r\n videoIdPromise = Promise.resolve(eventData.id);\r\n }\r\n\r\n promises.push(videoIdPromise);\r\n return Promise.all(promises);\r\n }\r\n\r\n const VIDEO_PROVIDER = \"Vimeo\";\r\n function assembleGTMEventObject(playerInfoResult, eventName, eventData) {\r\n const [url, title, id] = playerInfoResult;\r\n\r\n const data = {\r\n event: eventName,\r\n video_provider: VIDEO_PROVIDER,\r\n video_url: url,\r\n video_title: title,\r\n video_id: id,\r\n };\r\n\r\n if (eventData.seconds !== undefined) {\r\n data['video_current_time'] = eventData.seconds;\r\n }\r\n if (eventData.duration !== undefined) {\r\n data['video_duration'] = eventData.duration;\r\n }\r\n if (eventData.percent !== undefined) {\r\n data['video_percent'] = getVideoProgressAsWholeNumber(eventData.percent);\r\n }\r\n\r\n return data;\r\n }\r\n }\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:addressForm\r\n * @description\r\n * # Address Form\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function addressForm(AddressService, $window) {\r\n 'ngInject'\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n addresses: '=',\r\n checkout: '=',\r\n countries: '=',\r\n states: '=',\r\n addressControls: '=',\r\n currentEvent: '='\r\n },\r\n link: function (scope, element, attrs) {\r\n var self = scope.adrForm;\r\n \r\n self.editMode = !self.addresses.length;\r\n self.editAddress = {};\r\n\r\n self.USA = self.countries.filter(function (x) {\r\n return x.CountryCode === 'US';\r\n })[0];\r\n\r\n if (!self.addresses.length)\r\n self.editAddress = {\r\n CountryId: self.USA.Id\r\n };\r\n\r\n if (!self.checkout.address) {\r\n var preferred = self.addresses.length ? self.addresses.filter(function (x) {\r\n return x.IsPreferred;\r\n }) : null;\r\n\r\n self.checkout.address = (preferred && preferred.length) ? preferred[0] :\r\n ((self.addresses && self.addresses.length) ? self.addresses[0] : null);\r\n }\r\n\r\n self.edit = function (address) {\r\n self.editMode = true;\r\n if (self.addressControls)\r\n self.addressControls.editMode = true;\r\n self.modePrefix = 'Edit ';\r\n self.editAddress = angular.copy(address);\r\n self.addressForm.$setPristine();\r\n self.addressForm.$setUntouched();\r\n };\r\n\r\n self.create = function () {\r\n self.editMode = true;\r\n if (self.addressControls)\r\n self.addressControls.editMode = true;\r\n self.modePrefix = 'Add ';\r\n self.editAddress = {\r\n CountryId: self.USA.Id\r\n };\r\n self.addressForm.$setPristine();\r\n self.addressForm.$setUntouched();\r\n };\r\n\r\n self.deleteMe = function (address) {\r\n if (window.confirm('Are you sure you want to delete this address?')) {\r\n self.editAddress = angular.copy(address);\r\n self.editAddress.IsActive = false;\r\n self.save(true);\r\n }\r\n };\r\n\r\n self.save = save;\r\n if (self.addressControls) {\r\n self.addressControls.save = save;\r\n self.addressControls.addressForm = self.addressForm;\r\n }\r\n\r\n function save(force) {\r\n if (force || self.addressForm.$valid) {\r\n if (self.editAddress.AddressTypeCode !== 'BILLING')\r\n self.editAddress.Id = 0;\r\n\r\n angular.extend(self.editAddress,\r\n {\r\n AddressTypeCode: 'BILLING',\r\n CountryName: self.editAddress.CountryId ? self.countries.filter(function (x) {\r\n return x.Id === self.editAddress.CountryId;\r\n })[0].CountryName : undefined\r\n });\r\n\r\n return AddressService.save({\r\n data: {\r\n showCode: self.currentEvent.ShowCode,\r\n addresses: (function () {\r\n if (self.editAddress.IsPreferred) {\r\n var oldPreferred = self.addresses.filter(function (x) {\r\n return x.Id !== self.editAddress.Id && x.IsPreferred;\r\n });\r\n\r\n if (oldPreferred.length) {\r\n var modified = oldPreferred.map(function (x) {\r\n x.IsPreferred = false;\r\n return x;\r\n });\r\n\r\n modified.push(self.editAddress);\r\n\r\n return modified;\r\n }\r\n else\r\n return [self.editAddress];\r\n }\r\n else\r\n return [self.editAddress];\r\n })()\r\n }\r\n })\r\n .then(function () {\r\n AddressService.getBillingAddresses({}, true)\r\n .then(function () {\r\n //add\r\n if (!self.editAddress.Id) {\r\n //scan the existing address array and find the id that is missing to determine\r\n //which address is our new one\r\n for (var i = 0; i < AddressService.data.billingAddresses.length; i++)\r\n if (!self.addresses.filter(function (x) { return x.Id === AddressService.data.billingAddresses[i].Id; }).length) {\r\n self.checkout.address = AddressService.data.billingAddresses[i];\r\n break;\r\n }\r\n }\r\n //edit\r\n else {\r\n self.checkout.address = AddressService.data.billingAddresses.filter(function (x) { return x.Id === self.editAddress.Id; })[0];\r\n }\r\n\r\n self.addresses = AddressService.data.billingAddresses;\r\n self.editMode = false;\r\n if (self.addressControls)\r\n self.addressControls.editMode = false;\r\n });\r\n });\r\n }\r\n }\r\n },\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/addressForm.html',\r\n controllerAs: 'adrForm',\r\n controller: function () {\r\n\r\n },\r\n bindToController: true\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n .directive('addressForm', addressForm);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name sharedModule.directive:epAutoFocus\r\n * @description\r\n * # Filter Group\r\n * Directive of the shared Module\r\n */\r\n(function (angular, window, undefined) {\r\n function epAutoFocus($timeout, $parse) {\r\n 'ngInject'\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n var model = $parse(attrs.epAutoFocus);\r\n scope.$watch(model, function (value) {\r\n if (value === true) {\r\n $timeout(function () {\r\n element[0].focus();\r\n });\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n angular.module('sharedModule')\r\n .directive('epAutoFocus', epAutoFocus);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:characterCounter\r\n * @description\r\n * # Character Counter\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epCharacterCounter() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\tlimit: '=epCharacterCounter'\r\n\t\t\t},\r\n controller: function () {\r\n 'ngInject'\r\n\t\t\t\tvar self = this;\r\n\r\n\t\t\t\tself.visible = false;\r\n\t\t\t\tself.count = 0;\r\n\t\t\t},\r\n\t\t\tlink: function(scope, elem, attrs, ctrl) {\r\n\t\t\t\tctrl.limit = scope.limit;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epCharacterCounter', epCharacterCounter);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:characterCounterLabel\r\n * @description\r\n * # Character Counter Label\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epCharacterCounterLabel() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\tscope: {},\r\n\t\t\trequire: '^epCharacterCounter',\r\n\t\t\ttemplate: '( limit() }\">{{ count() }} / {{ limit() }})',\r\n\t\t\tlink: function (scope, elem, attrs, characterCounterCtrl) {\r\n\t\t\t\tscope.count = function() {\r\n\t\t\t\t\treturn characterCounterCtrl.count;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscope.limit = function() {\r\n\t\t\t\t\treturn characterCounterCtrl.limit;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscope.visible = function() {\r\n\t\t\t\t\treturn characterCounterCtrl.visible;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epCharacterCounterLabel', epCharacterCounterLabel);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:characterCounterTarget\r\n * @description\r\n * # Character Counter Target\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epCharacterCounterTarget() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\t// scope: {\r\n\t\t\t// \tmodel: '=epCharacterCounterTarget'\r\n\t\t\t// },\r\n\t\t\trequire: '^epCharacterCounter',\r\n\t\t\tlink: function (scope, elem, attrs, characterCounterCtrl) {\r\n\t\t\t\tif(typeof attrs.epCharacterCounterTarget !== 'string')\r\n\t\t\t\t\tthrow new Error('Unsupported character counter target model!');\r\n\r\n\t\t\t\tscope.$watch(attrs.epCharacterCounterTarget, function(newValue) {\r\n\t\t\t\t\tnewValue = newValue || '';\r\n\t\t\t\t\tcharacterCounterCtrl.count = newValue.length;\r\n\t\t\t\t});\r\n\r\n\t\t\t\telem.on('focus', function() {\r\n\t\t\t\t\tscope.$apply(function() {\r\n\t\t\t\t\t\tcharacterCounterCtrl.visible = true;\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\telem.on('blur', function() {\r\n\t\t\t\t\tscope.$apply(function() {\r\n\t\t\t\t\t\tcharacterCounterCtrl.visible = false;\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epCharacterCounterTarget', epCharacterCounterTarget);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:Pick A Date\r\n * @description\r\n * # Date\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epDate() {\r\n 'ngInject';\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\toptions: '=options',\r\n\t\t\t\tpicker: '=picker'\r\n\t\t\t},\r\n\t\t\tlink: function (scope, element) {\r\n\t\t\t element.pickadate(scope.options);\r\n\t\t\t scope.picker = element.pickadate('picker');\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epDate', epDate);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:eventBit\r\n * @description\r\n * # eventBit iframe\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epEventBit($sce) {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'E',\r\n\t\t\tscope: {\r\n url: '=url',\r\n // origin: '=origin'\r\n },\r\n\t\t\ttemplate: '',\r\n\t\t\tlink: function (scope, elem, attrs) {\r\n var iframe = elem.find('iframe')[0];\r\n\r\n window.addEventListener(\"message\", receiveMessage, false);\r\n window.addEventListener(\"scroll\", onScroll, false);\r\n\r\n //scope.url = $sce.trustAsResourceUrl(scope.url);\r\n\r\n function receiveMessage(event) {\r\n // if(event.origin.toLowerCase() !== \"@ViewBag.eventBitOrigin\")\r\n // return;\r\n\r\n if(event.data.resizeHeight) {\r\n iframe.style.height = event.data.resizeHeight + \"px\";\r\n }\r\n\r\n if (event.data.scrollTo) {\r\n setTimeout(function () {\r\n window.scrollTo(event.data.scrollTo.x, event.data.scrollTo.y)\r\n }, 200); // leave buffer of time for iframe to resize to contain content we are scrolling to\r\n }\r\n }\r\n\r\n function onScroll() {\r\n iframe.contentWindow.postMessage({ hostScrollPosition: { x: window.scrollX, y: window.scrollY } }, \"*\");\r\n }\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epEventBit', epEventBit);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n angular\r\n .module('exhibitorPortalApp')\r\n .directive('exlTemplate', exlTemplate);\r\n\r\n exlTemplate.$inject = ['$compile'];\r\n\r\n function exlTemplate($compile) {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n link: link,\r\n restrict: 'E',\r\n scope: {\r\n content: '@'\r\n }\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n $compile(element.html(scope.content).contents())(scope.$parent);\r\n }\r\n }\r\n\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:filter\r\n * @description\r\n * # Filter\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n\tfunction epFilter() {\r\n\t'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\tactiveFilters: '=epFilter',\r\n\t\t\t\tfiltering: '=?epFilterStatus'\r\n\t\t\t},\r\n controller: function ($scope) {\r\n 'ngInject'\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tself.activeFilters = $scope.activeFilters;\r\n\r\n if ($scope.filtering !== undefined) {\r\n $scope.$watch('activeFilters', function () {\r\n $scope.filtering = self.getCount($scope.activeFilters);\r\n }, true);\r\n }\r\n\r\n\t\t\t\tself.getCount = function (activeFilters) {\r\n\t\t\t\t\tvar count = 0;\r\n\r\n\t\t\t\t\t(function recurse(filter){\r\n\t\t\t\t\t\tfor(var key in filter)\r\n\t\t\t\t\t\t\tif(Object.prototype.toString.apply(filter[key]) === '[object Object]')\r\n\t\t\t\t\t\t\t\trecurse(filter[key]);\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tif(Object.prototype.toString.apply(filter[key]) === '[object Array]'){\r\n\t\t\t\t\t\t\t\t\tfor(var i = 0; i < filter[key].length; i++)\r\n\t\t\t\t\t\t\t\t\t\tif(filter[key][i].defaultValue !== undefined){\r\n\t\t\t\t\t\t\t\t\t\t\tif(filter[key][i].responseValue != filter[key][i].defaultValue)\r\n\t\t\t\t\t\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t//assume object is primitive\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t})(activeFilters);\r\n\r\n\t\t\t\t\treturn count;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epFilter', epFilter);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:filterClear\r\n * @description\r\n * # Filter Clear\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epFilterClear() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: '^epFilter',\r\n link: function (scope, element, attrs, FilterCtrl) {\r\n\t\t\t\telement[0].onclick = function (e) {\r\n\t\t\t\t\tscope.$apply(function () {\r\n\t\t\t\t\t\tfor(var f in FilterCtrl.activeFilters)\r\n\t\t\t\t\t\t\tfor(var o in FilterCtrl.activeFilters[f])\r\n\t\t\t\t\t\t\t\tdelete FilterCtrl.activeFilters[f][o];\r\n\r\n\t\t\t\t\t\tscope.$broadcast('clear');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epFilterClear', epFilterClear);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:filterGroup\r\n * @description\r\n * # Filter Group\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n\tfunction epFilterGroup() {\r\n\t'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\trequire: '^epFilter',\r\n controller: function ($scope) {\r\n 'ngInject'\r\n\t\t\t\tvar self = this;\r\n\t\t\t\t$scope.currentFilter = {};\r\n\r\n\t\t\t\t(function(activeFilters) {\r\n self.changeFilter = function (option, optionKey, optionValue, responseKey, responseValue, predicate, defaultValue) {\n\r\n\t\t\t\t\t\tif(!optionKey){\r\n\t\t\t\t\t\t\tif(predicate && defaultValue !== undefined){\r\n\t\t\t\t\t\t\t\tactiveFilters[option] = [{\r\n\t\t\t\t\t\t\t\t\tresponseValue: responseValue,\r\n\t\t\t\t\t\t\t\t\tpredicate: predicate,\r\n\t\t\t\t\t\t\t\t\tdefaultValue: defaultValue\r\n\t\t\t\t\t\t\t\t}];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n if (!responseValue || responseValue === 0) {\n delete activeFilters[option];\r\n } else if (predicate) {\r\n activeFilters[option] = [{\r\n responseValue: responseValue,\r\n predicate: predicate,\r\n defaultValue: defaultValue\r\n }];\r\n } else {\n activeFilters[option] = responseValue;\r\n }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif(!activeFilters[option])\r\n\t\t\t\t\t\t\t\tactiveFilters[option] = [];\r\n\r\n\t\t\t\t\t\t\tvar found;\r\n\r\n\t\t\t\t\t\t\tfor(var i = 0; i < activeFilters[option].length; i++){\r\n\t\t\t\t\t\t\t\tif(activeFilters[option][i].optionValue === optionValue){\r\n\t\t\t\t\t\t\t\t\tif(!responseValue || responseValue === 0){\r\n\t\t\t\t\t\t\t\t\t\tactiveFilters[option].splice(i, 1);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif(!activeFilters[option].length)\r\n\t\t\t\t\t\t\t\t\t\t\tdelete activeFilters[option];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\tactiveFilters[option][i].responseValue = responseValue;\r\n\r\n\t\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(!found && responseValue)\r\n\t\t\t\t\t\t\t\tactiveFilters[option].push({\r\n\t\t\t\t\t\t\t\t\toptionKey: optionKey,\r\n\t\t\t\t\t\t\t\t\toptionValue: optionValue,\r\n\t\t\t\t\t\t\t\t\tresponseKey: responseKey,\r\n\t\t\t\t\t\t\t\t\tresponseValue: responseValue,\r\n\t\t\t\t\t\t\t\t\tdefaultValue: defaultValue\r\n\t\t\t\t\t\t\t\t});\r\n }\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tself.getResponse = function(option, optionValue) {\r\n if (activeFilters[option]) {\r\n if (Object.prototype.toString.apply(activeFilters[option]) === '[object Array]') {\r\n for (var i = 0; i < activeFilters[option].length; i++) {\r\n if (activeFilters[option][i].optionValue === optionValue) {\r\n return activeFilters[option][i].responseValue;\n }\n }\r\n }\n }\r\n else {\r\n return activeFilters[option];\n }\r\n\t\t\t\t\t};\r\n\t\t\t\t})($scope.currentFilter);\r\n\t\t\t},\r\n\t\t\tlink: function(scope, element, attrs, filterCtrl) {\r\n\t\t\t\tif(filterCtrl.activeFilters[attrs.epFilterGroup])\r\n\t\t\t\t\tangular.extend(scope.currentFilter, filterCtrl.activeFilters[attrs.epFilterGroup]);\r\n\r\n\t\t\t\tfilterCtrl.activeFilters[attrs.epFilterGroup] = scope.currentFilter;\r\n\r\n\t\t\t\tscope.activeFilters = scope.activeFilters || {};\r\n\t\t\t\tscope.activeFilters[attrs.epFilterGroup] = scope.currentFilter;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epFilterGroup', epFilterGroup);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:filterGroupStatus\r\n * @description\r\n * # Filter Group Status\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epFilterGroupStatus() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\trequire: '^epFilter',\r\n link: function (scope, element, attrs, FilterCtrl) {\r\n\t\t\t\tvar anchor = element.children('a');\r\n\t\t\t\tvar defaultText = attrs.heading;\r\n\r\n\t\t\t\tscope.$watch('activeFilters[\"' + attrs.epFilterGroup + '\"]', function () {\r\n\t\t\t\t\tvar count = FilterCtrl.getCount(scope.activeFilters[attrs.epFilterGroup]);\r\n\t\t\t\t\tanchor.text(defaultText + (count ? (' (' + count + ')') : ''));\r\n\t\t\t\t}, true);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epFilterGroupStatus', epFilterGroupStatus);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:filterOption\r\n * @description\r\n * # Filter Option\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epFilterOption($timeout) {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\toption: '=epFilterOption',\r\n\t\t\t\toptionKey: '=?epFilterOptionKey',\r\n\t\t\t\toptionValue: '=?epFilterOptionValue',\r\n\t\t\t\tresponseKey: '=?epFilterOptionResponseKey',\r\n\t\t\t\tpredicate: '=?epFilterOptionPredicate',\r\n\t\t\t\tchange: '=?epFilterOptionChange',\r\n defaultValue: '=?epFilterOptionDefaultValue',\r\n changeEventObject: '=?epFilterOptionChangeEventObject'\r\n\t\t\t},\r\n\t\t\trequire: '^epFilterGroup',\r\n link: function (scope, element, attrs, filterGroupCtrl) {\r\n scope.ignoreGTM = false;\r\n\r\n\t\t\t\tfunction init(reset) {\r\n\t\t\t\t\tvar response = filterGroupCtrl.getResponse(scope.option, scope.optionValue);\r\n\r\n\t\t\t\t\tif((reset && scope.defaultValue === undefined) || response) {\r\n\t\t\t\t\t\telement[0].value = reset ? '' : response;\r\n\r\n\t\t\t\t\t\t//special case for when element is a checkbox, we need to also set its checked state\r\n\t\t\t\t\t\tif('checked' in element[0])\r\n\t\t\t\t\t\t\telement[0].checked = !!response;\r\n\r\n\t\t\t\t\t\tif(reset)\r\n\t\t\t\t\t\t\telement.triggerHandler('change', true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(scope.defaultValue !== undefined) {\r\n\t\t\t\t\t\telement[0].value = scope.defaultValue;\r\n\r\n\t\t\t\t\t\tif('checked' in element[0])\r\n element[0].checked = scope.defaultValue;\r\n\r\n scope.ignoreGTM = true;\r\n element.triggerHandler('change', true);\r\n scope.ignoreGTM = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n function change(e) {\r\n\r\n if (scope.change) {\r\n scope.change(e, change.oldValue, e.target.value, scope.clearing);\r\n }\r\n\r\n\t\t\t\t\tfilterGroupCtrl.changeFilter(\r\n\t\t\t\t\t\tscope.option,\r\n\t\t\t\t\t\tscope.optionKey,\r\n\t\t\t\t\t\tscope.optionValue,\r\n\t\t\t\t\t\tscope.responseKey,\r\n\t\t\t\t\t\te.target.value,\r\n\t\t\t\t\t\tscope.predicate,\r\n\t\t\t\t\t\tscope.defaultValue\r\n\t\t\t\t\t);\r\n\r\n if (!scope.ignoreGTM && scope.changeEventObject && change.oldValue !== e.target.value) {\r\n if (typeof dataLayer !== 'undefined')\r\n dataLayer.push({ 'event': 'GenericEvent', 'eventCategory': 'Click', 'eventAction': 'Filtering By' + scope.changeEventObject.Group, 'eventLabel': scope.changeEventObject.Label });\r\n }\r\n\r\n change.oldValue = e.target.value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//timeout so that any angular templating can finish rendering before setting the elements value\r\n\t\t\t\t//ex. a select's options are generated by ng-repeat\r\n\t\t\t\t$timeout(init);\r\n\r\n scope.$on('clear', function () {\r\n scope.ignoreGTM = true;\r\n init(true);\r\n scope.ignoreGTM = false;\r\n\t\t\t\t});\r\n\r\n\t\t\t\telement[0].onchange = function (e, internal){\r\n\t\t\t\t\tif(!internal)\r\n\t\t\t\t\t\tscope.$apply(function () {\r\n\t\t\t\t\t\t\tchange(e);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tchange(e);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epFilterOption', epFilterOption);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:FunnelChart\r\n * @description\r\n * # Funnel Chart\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epFunnelChart() {\r\n 'ngInject'\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n data: '=epFunnelChart',\r\n options: '=epFunnelChartOptions',\r\n },\r\n link: function (scope, element) {\r\n var options = scope.options;\r\n\r\n scope.$watch('data', function(newValue) {\r\n\t\t\t\t\tupdate(newValue);\r\n\t\t\t\t});\r\n\r\n function update(data) {\r\n if(data !== undefined && data.length) {\r\n var chart = new D3Funnel(element[0]);\r\n chart.draw(data, options);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.directive('epFunnelChart', epFunnelChart);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name sharedModule.directive:inputField\r\n * @description\r\n * # Input Field\r\n * Directive of the shared Module\r\n */\r\n(function (angular, window, undefined) {\r\n function inputField($timeout, $parse) {\r\n 'ngInject'\r\n return {\r\n restrict: 'E',\r\n require: 'ngModel',\r\n scope: {\r\n bindModel: '=ngModel',\r\n bindDisabled: '=?ngDisabled',\r\n fieldName: '@',\r\n typeahead: '@',\r\n typeaheadMinLength: '=?',\r\n typeaheadItems: '=?',\r\n isDisabled: '=?',\r\n description: '@',\r\n fieldType: '@',\r\n masked: '=?'\r\n },\r\n controller: function () {\r\n },\r\n controllerAs: 'inputField',\r\n bindToController: true,\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/shared/inputField.html',\r\n link: function (scope, element, attrs, ngModel, ngDisabled) {\r\n var self = scope.inputField;\r\n\r\n if (self.fieldType === 'password') {\r\n if (!self.masked)\r\n self.masked = true;\r\n }\r\n\r\n self.focused = false;\r\n\r\n $timeout(function () {\r\n element.tabIndex = -1;\r\n var input = element.find('input');\r\n if (input && input[0]) {\r\n input[0].onblur = function () {\r\n if (self.focused) {\r\n self.focused = false;\r\n self.leaving = true;\r\n }\r\n };\r\n\r\n input[0].onfocus = function () {\r\n if (!self.leaving) {\r\n self.focused = true;\r\n self.leaving = false;\r\n }\r\n };\r\n }\r\n }, 0);\r\n\r\n element.bind('focus', function () {\r\n $timeout(function () {\r\n var input = element.find('input');\r\n if (input && input[0]) {\r\n if (!self.focused && !self.leaving) {\r\n input[0].focus();\r\n } else {\r\n focusNextTabbable(input[0]);\r\n }\r\n }\r\n }, 0);\r\n });\r\n\r\n function focusNextTabbable(input) {\r\n var tabs = document.querySelectorAll('button, [href], input, select, textarea');\r\n var useNext = false;\r\n for (var i = 0; i < tabs.length; i++) {\r\n if (useNext && !tabs[i].disabled) {\r\n tabs[i].focus();\r\n self.leaving = false;\r\n return;\r\n } else if (tabs[i].name === input.name) {\r\n useNext = true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n angular.module('sharedModule')\r\n .directive('inputField', inputField);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:Interact\r\n * @description\r\n * # Sort\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epInteract() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n callback: '=epInteract'\r\n\t\t\t},\r\n link: function (scope, element) {\r\n 'ngInject'\r\n\t\t\t element.on('mousemove', scope.callback);\r\n\t\t\t element.on('click', scope.callback);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epInteract', epInteract);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.directive:loginErrors\r\n * @description\r\n * # Login Errors\r\n * Directive of the exhibitorPortalLoginApp\r\n */\r\n(function (angular, window, undefined) {\r\n function loginErrors($window, $rootScope, $location, LoginService, SHOW) {\r\n 'ngInject'\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n errors: '='\r\n },\r\n link: function (scope, element, attrs) {\r\n var self = scope.logErrors;\r\n\r\n scope.$watch('logErrors.errors', function (newval, oldval) {\r\n if (newval && newval.length > 0 && window.dataLayer) {\r\n window.dataLayer.push({\r\n event: 'loginError',\r\n attributes: {\r\n route: $location.url(),\r\n pageTitle: $rootScope.pageTitle,\r\n errorMessage: newval[0]\r\n }\r\n });\r\n }\r\n });\r\n },\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/Login/loginErrors.html',\r\n controllerAs: 'logErrors',\r\n controller: function () {\r\n\r\n },\r\n bindToController: true\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .directive('loginErrors', loginErrors);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.directive:loginForm\r\n * @description\r\n * # Login Form\r\n * Directive of the exhibitorPortalLoginApp\r\n */\r\n(function (angular, window, undefined) {\r\n function loginForm($window, LoginService, EnvironmentConfig, $timeout, $rootScope) {\r\n 'ngInject'\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n userName: '=?',\r\n forgotPassword: '=?',\r\n allowChangePassword: '=?',\r\n changePasswordFunc: '=?',\r\n defaultToSwap: '=?',\r\n hideActivationLogin: '=?',\r\n hideUsername: '=?'\r\n },\r\n link: function (scope, element, attrs) {\r\n var self = scope.formLogin;\r\n\r\n self.nextDisabled = true;\r\n\r\n if (self.hideUsername) {\r\n self.showUsernameLogin = true;\r\n }\r\n else {\r\n self.showUsernameActivationLogin = true;\r\n }\r\n\r\n self.errors = LoginService.data.messages;\r\n\r\n if (angular.isFunction(self.forgotPassword) && !self.allowChangePassword)\r\n self.showForgotPassword = true;\r\n\r\n\r\n self.userNameActivationValidation = function () {\r\n self.errors = null;\r\n LoginService.data.messages = null;\r\n\r\n if (!self.usernameOrActivationCode) {\r\n self.errors = ['PLEASE NOTE: You must provide your username or activation code.'];\r\n return;\r\n }\r\n\r\n self.isActivationCode = /^(\\d{4})+(?:(-|\\s|)+(\\d{4})){3}$/.test(self.usernameOrActivationCode);\r\n if (self.isActivationCode) {\r\n self.switchForms('Activation')\r\n self.activationCode = self.usernameOrActivationCode;\r\n }\r\n else {\r\n self.switchForms('Username')\r\n self.userName = self.usernameOrActivationCode;\r\n }\r\n };\r\n\r\n self.userNameLogin = function () {\r\n self.errors = null;\r\n LoginService.data.messages = null;\r\n\r\n if (!self.userName || !self.password) {\r\n self.errors = ['PLEASE NOTE: You must provide your username and password.'];\r\n return;\r\n }\r\n\r\n LoginService.userNameLogin({\r\n params: {\r\n username: self.userName,\r\n password: self.password,\r\n showCode: LoginService.data.show ? LoginService.data.show.showCode || '' : '',\r\n exhibitorID: LoginService.data.exhibitor ? LoginService.data.exhibitor.exhibitorId || 0 : 0\r\n }\r\n }).then(function (data) {\r\n if (data) {\r\n if (data.Success && data.RedirectUrl) {\r\n var loc = (EnvironmentConfig.SiteRoot[EnvironmentConfig.SiteRoot.length - 1] === '/' && data.RedirectUrl[0] === '/')\r\n ? EnvironmentConfig.SiteRoot + data.RedirectUrl.substring(1)\r\n : EnvironmentConfig.SiteRoot + data.RedirectUrl;\r\n\r\n window.location = loc;\r\n } else if (data.Errors && data.Errors.length > 0) {\r\n self.errors = data.Errors;\r\n }\r\n }\r\n });\r\n };\r\n\r\n self.activationLogin = function () {\r\n LoginService.data.messages = null;\r\n if (!self.activationCode || !self.accessKey) {\r\n self.errors = ['PLEASE NOTE: You must provide an activation code and access key or badge ID'];\r\n return;\r\n }\r\n\r\n LoginService.activationLogin({\r\n params: {\r\n activationCode: self.activationCode,\r\n badgeKey: self.accessKey\r\n }\r\n }).then(function (data) {\r\n if (data) {\r\n if (data.Success && data.RedirectUrl) {\r\n var loc = (EnvironmentConfig.SiteRoot[EnvironmentConfig.SiteRoot.length - 1] === '/' && data.RedirectUrl[0] === '/')\r\n ? EnvironmentConfig.SiteRoot + data.RedirectUrl.substring(1)\r\n : EnvironmentConfig.SiteRoot + data.RedirectUrl;\r\n\r\n window.location = loc;\r\n } else if (data.Errors && data.Errors.length > 0) {\r\n self.errors = data.Errors;\r\n }\r\n }\r\n });\r\n };\r\n\r\n self.switchForms = function (form, keepErrors) {\r\n switch (form) {\r\n case 'UsernameActivation':\r\n self.showUsernameActivationLogin = true;\r\n self.showUsernameLogin = false;\r\n self.showActivationLogin = false;\r\n\r\n if (!keepErrors)\r\n self.errors = null;\r\n\r\n break;\r\n case 'Activation':\r\n self.showActivationLogin = true;\r\n self.showUsernameLogin = false;\r\n self.showUsernameActivationLogin = false;\r\n\r\n self.userName = null;\r\n self.password = null;\r\n if (!keepErrors)\r\n self.errors = null;\r\n\r\n self.focusUsername = false;\r\n self.focusPassword = false;\r\n self.focusActivationCode = true;\r\n break;\r\n case 'Username':\r\n self.showActivationLogin = false;\r\n self.showUsernameLogin = true;\r\n self.showUsernameActivationLogin = false;\r\n\r\n self.activationCode = null;\r\n self.accessKey = null;\r\n if (!keepErrors)\r\n self.errors = null;\r\n\r\n self.focusActivationCode = false;\r\n\r\n self.focusPassword = !(self.focusUsername = !self.hideUsername);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n self.defaultToSwap = 'UsernameActivation';\r\n },\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/Login/loginForm.html',\r\n controllerAs: 'formLogin',\r\n controller: function () {\r\n\r\n },\r\n bindToController: true\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .directive('loginForm', loginForm);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.directive:lookupShowCompany\r\n * @description\r\n * # Lookup Show Company\r\n * Directive of the exhibitorPortalLoginApp\r\n */\r\n(function (angular, window, undefined) {\r\n function lookupShowCompany($window, $rootScope, LoginService, SHOW) {\r\n 'ngInject';\r\n /** @type {angular.IDirective} */\r\n const directive = {\r\n restrict: 'E',\r\n scope: {\r\n callback: '='\r\n },\r\n link: function (scope, element, attrs) {\r\n var self = scope.scLookup;\r\n\r\n self.selectShow = true;\r\n self.validShow = false;\r\n\r\n self.focusShow = true;\r\n\r\n self.errors = LoginService.data.messages;\r\n\r\n LoginService.getShowsByName({\r\n showName: self.showName || ''\r\n }).then(function () {\r\n if (LoginService.data.shows) {\r\n self.showList = LoginService.data.shows;\r\n\r\n var dupeShows = _.filter(self.showList, function (s) {\r\n return _.any(self.showList, function (s1) { return s1.ShowCode !== s.ShowCode && s1.TradeShowName.trim() === s.TradeShowName.trim(); });\r\n });\r\n\r\n self.showList = _.map(self.showList, function (s) {\r\n var newShow = angular.copy(s);\r\n\r\n if (_.filter(dupeShows, function (d) { return d.ShowCode === newShow.ShowCode; })) {\r\n try {\r\n var openDate = new Date(newShow.ShowOpenDate);\r\n var month = openDate.getMonth() + 1;\r\n if (openDate.getFullYear() === 1)\r\n newShow.TradeShowName = s.TradeShowName;\r\n else\r\n newShow.TradeShowName = s.TradeShowName + ' (' + month + '/' + openDate.getFullYear() + ')';\r\n } catch (e) {\r\n newShow.TradeShowName = s.TradeShowName;\r\n }\r\n }\r\n\r\n return newShow;\r\n });\r\n\r\n if (SHOW && SHOW.ShowCode && _.any(self.showList, function (s) { return s.ShowCode === SHOW.ShowCode; })) {\r\n self.showName = SHOW.TradeShowName || null;\r\n self.showCode = SHOW.ShowCode;\r\n }\r\n }\r\n else\r\n self.showList = [];\r\n });\r\n\r\n scope.$watch('scLookup.showName', function (newval, oldval) {\r\n var valid = _.uniq(_.filter(self.showList, function (s) {\r\n return s.TradeShowName === newval;\r\n }), function (show) {\r\n return show.ShowCode;\r\n });\r\n self.validShow = valid && valid.length === 1;\r\n\r\n if (self.validShow) {\r\n self.showCode = valid[0].ShowCode;\r\n\r\n self.loadingCompanies = true;\r\n LoginService.getExhibitorsByShowCode({\r\n showCode: self.showCode\r\n }).then(function () {\r\n if (LoginService.data.exhibitors) {\r\n self.exhibitorList = LoginService.data.exhibitors;\r\n\r\n self.exhibitorList = _.map(self.exhibitorList, function (s) {\r\n var newExhibitor = angular.copy(s);\r\n\r\n if (newExhibitor.BoothNumbers && newExhibitor.BoothNumbers.trim() !== '') {\r\n newExhibitor.ExhibitorName = newExhibitor.ExhibitorName + ' (Booth Number(s): ' + newExhibitor.BoothNumbers + ')';\r\n }\r\n\r\n return newExhibitor;\r\n });\r\n\r\n self.focusExhibitor = true;\r\n }\r\n }).finally(function () {\r\n self.loadingCompanies = false;\r\n\r\n if (!self.exhibitorList || !_.any(self.exhibitorList, function (e) { return e.ExhibitorName === self.exhibitorName; }))\r\n self.exhibitorName = null;\r\n\r\n if (self.validShow && (!self.exhibitorList || self.exhibitorList.length === 0))\r\n self.errors = ['PLEASE NOTE: The list of exhibiting companies is not yet available for this show but we\\'d be happy to help you. Please contact our Customer Service Department at exhibitorservices@maritz.com.'];\r\n else\r\n self.errors = [];\r\n });\r\n } else {\r\n self.showCode = null;\r\n self.exhibitorName = null;\r\n self.exhibitorList = null;\r\n self.errors = [];\r\n }\r\n });\r\n\r\n scope.$watch('scLookup.exhibitorName', function (newval, oldval) {\r\n var valid = _.filter(self.exhibitorList, function (e) { return e.ExhibitorName === newval; });\r\n self.validExhibitor = valid && valid.length === 1;\r\n\r\n self.moreThanOne = valid && valid.length > 1;\r\n\r\n self.exhibitorId = self.validExhibitor ? valid[0].Id : null;\r\n });\r\n\r\n self.next = function () {\r\n self.errors = null;\r\n LoginService.data.messages = null;\r\n\r\n if (self.moreThanOne) {\r\n self.errors = [\"PLEASE NOTE: We found more than one company that matches the name selected. Please contact our Customer Service Department at exhibitorservices@maritz.com and we'll work this out together.\"];\r\n return;\r\n }\r\n else if (!self.showCode || !self.exhibitorId) {\r\n self.errors = [\"PLEASE NOTE: We couldn't find your company in our database. Please contact our Customer Service Department at exhibitorservices@maritz.com and we'll work this out together.\"];\r\n return;\r\n }\r\n\r\n LoginService.data.show = {\r\n showName: self.showName,\r\n showCode: self.showCode\r\n };\r\n\r\n LoginService.data.exhibitor = {\r\n exhibitorName: self.exhibitorName,\r\n exhibitorId: self.exhibitorId\r\n };\r\n\r\n if (angular.isFunction(self.callback)) {\r\n self.callback();\r\n }\r\n };\r\n },\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/Login/lookupShowCompany.html',\r\n controllerAs: 'scLookup',\r\n controller: function () {\r\n\r\n },\r\n bindToController: true\r\n };\r\n return directive;\r\n }\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .directive('lookupShowCompany', lookupShowCompany);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:navLink\r\n * @description\r\n * # Navigation Link\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window) {\r\n function navLink($rootScope) {\r\n 'ngInject'\r\n\r\n // Usage:\r\n // Documents\r\n const directive = {\r\n restrict: 'E',\r\n scope: {\r\n state: '@',\r\n isDropdown: '<', // Default is false\r\n },\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/navLink.html',\r\n controller: controller,\r\n controllerAs: 'navLink',\r\n link: link,\r\n bindToController: true,\r\n transclude: true,\r\n replace: true,\r\n };\r\n return directive;\r\n\r\n function controller() {\r\n 'ngInject';\r\n\r\n const self = this;\r\n\r\n self.$onInit = () => {\r\n self.isDropdown = angular.isDefined(self.isDropdown) && self.isDropdown;\r\n };\r\n\r\n self.buildLinkClassObject = function () {\r\n return {\r\n active: isActiveLink()\r\n };\r\n };\r\n\r\n function isActiveLink() {\r\n let result = false;\r\n\r\n const { currentState } = $rootScope;\r\n if (currentState) {\r\n result = currentState.indexOf(self.state) >= 0;\r\n }\r\n\r\n return result;\r\n }\r\n }\r\n\r\n function link(scope, element) {\r\n const self = directive.controllerAs ? scope[directive.controllerAs] : scope;\r\n\r\n if (self.isDropdown) {\r\n removeHrefFromLink();\r\n }\r\n\r\n function removeHrefFromLink() {\r\n element.removeAttr(\"ui-sref\");\r\n element.removeAttr(\"href\");\r\n }\r\n }\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n .directive('navLink', navLink);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n//https://gist.github.com/JustMaier/6ef7788709d675bd8230\r\nangular.module('ngClickCopy', [])\r\n .service('ngCopy', ['$window', function ($window) {\r\n var body = angular.element($window.document.body);\r\n var textarea = angular.element('');\r\n textarea.css({\r\n position: 'fixed',\r\n opacity: '0'\r\n });\r\n\r\n return function (toCopy) {\r\n textarea.val(toCopy);\r\n body.append(textarea);\r\n textarea[0].select();\r\n\r\n try {\r\n var successful = document.execCommand('copy');\r\n if (!successful) throw successful;\r\n } catch (err) {\r\n window.prompt(\"Copy to clipboard: Ctrl+C, Enter\", toCopy);\r\n }\r\n\r\n textarea.remove();\r\n }\r\n }])\r\n .directive('ngClickCopy', ['ngCopy', function (ngCopy) {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n element.bind('click', function (e) {\r\n ngCopy(attrs.ngClickCopy);\r\n });\r\n }\r\n }\r\n }])\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:pager\r\n * @description\r\n * # Pager\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epPager() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\tconfig: '=epPager',\r\n\t\t\t\tscrollTop: '=?epPagerScrollTop'\r\n\t\t\t},\r\n\t\t\ttemplateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/shared/pager.html',\r\n\t\t\tlink: function (scope) {\r\n\t\t\t\tscope.$watch('config.data.length', function(newValue, oldValue) {\r\n\t\t\t\t\tif(scope.config.currentPage > 0 && newValue != oldValue)\r\n\t\t\t\t\t\tscope.config.currentPage = scope.config.currentChapter = 0;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tscope.$watch('config.searchText', function(newValue, oldValue) {\r\n\t\t\t\t\tif(scope.config.currentPage > 0 && newValue != oldValue){\r\n\t\t\t\t\t\tscope.config.currentPage = 0;\r\n\t\t\t\t\t\tscope.config.currentChapter = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tscope.setCurrentPage = function(page) {\r\n\t\t\t\t\tif(page >= 0 && page < scope.numberOfPages()){\r\n\t\t\t\t\t\tif(page > scope.config.currentPage && page === ((scope.config.currentChapter * scope.config.chapterSize) + scope.config.chapterSize))\r\n\t\t\t\t\t\t\tscope.config.currentChapter++;\r\n\t\t\t\t\t\telse if(page < scope.config.currentPage && page === ((scope.config.currentChapter * scope.config.chapterSize) - 1))\r\n\t\t\t\t\t\t\tscope.config.currentChapter--;\r\n\r\n\t\t\t\t\t\tscope.config.currentPage = page;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(scope.scrollTop)\r\n\t\t\t\t\t\tangular.element(document).scrollTop(0);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscope.setCurrentChapter = function(chapter) {\r\n\t\t\t\t\tif(chapter >= 0 && chapter < scope.numberOfChapters()){\r\n\t\t\t\t\t\tif(scope.config.currentChapter < chapter)\r\n\t\t\t\t\t\t\tif((scope.config.currentPage + scope.config.chapterSize) > scope.numberOfPages())\r\n\t\t\t\t\t\t\t\tscope.config.currentPage = scope.numberOfPages() - 1;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tscope.config.currentPage = scope.config.currentPage + scope.config.chapterSize;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tscope.config.currentPage = scope.config.currentPage - scope.config.chapterSize;\r\n\r\n\t\t\t\t\t\tscope.config.currentChapter = chapter;\r\n\r\n\t\t\t\t\t\tif(scope.scrollTop)\r\n\t\t\t\t\t\t\tangular.element(document).scrollTop(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscope.numberOfPages = function() {\r\n\t\t\t\t\tvar n = Math.ceil(scope.config.data.length / scope.config.pageSize);\r\n\t\t\t\t\treturn n;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscope.numberOfChapters = function () {\r\n\t\t\t\t\tvar n = Math.ceil(scope.config.data.length / scope.config.pageSize / scope.config.chapterSize);\r\n\t\t\t\t\treturn n;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscope.numberOfChapterPages = function (chapter) {\r\n\t\t\t\t\tvar n = scope.numberOfPages() - ((chapter || scope.config.currentChapter) * scope.config.chapterSize);\r\n\t\t\t\t\treturn n >= scope.config.chapterSize ? scope.config.chapterSize : n;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tscope.getNumberAsArray = function(num) {\r\n\t\t\t\t\treturn new Array(num);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epPager', epPager);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:pagerStatus\r\n * @description\r\n * # Pager Status\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epPagerStatus() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t config: '=epPagerStatus',\r\n\t\t\t},\r\n\t\t\ttemplate: '{{ getResultString() }}',\r\n\t\t\tlink: function (scope) {\r\n\t\t\t\tscope.getResultString = function() {\r\n\t return !scope.config.data.length ?\r\n\t 'No results found!' :\r\n\t scope.config.data.length ?\r\n\t ((scope.config.data.length > scope.config.pageSize ?\r\n\t ((scope.config.currentPage * scope.config.pageSize + 1) + ' - ' + (((1 + scope.config.currentPage) * scope.config.pageSize) -\r\n\t (((1 + scope.config.currentPage) * scope.config.pageSize) % scope.config.data.length) > scope.config.pageSize ?\r\n\t (((1 + scope.config.currentPage) * scope.config.pageSize) - ((1 + scope.config.currentPage) * scope.config.pageSize) % scope.config.data.length) :\r\n\t ((1 + scope.config.currentPage) * scope.config.pageSize)) + ' of ') : '') +\r\n\t\t\t\t\t\t\t\t\tscope.config.data.length + ' result' + (scope.config.data.length === 1 ? '' : 's') + '.')\r\n\t\t\t\t\t\t\t: 'No results found!';\r\n\t };\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epPagerStatus', epPagerStatus);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.directive:productDetail\r\n * @description\r\n * # Product Detail\r\n * Directive of the exhibitorPortal Product Detail\r\n */\r\n(function (angular, window, undefined) {\r\n function productDetail($window, ProductsService, EnvironmentConfig, $timeout, $rootScope, $sce) {\r\n 'ngInject'\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n product: '<',\r\n quantities: '<',\r\n added: '<',\r\n prices: '<',\r\n onAdd: '&',\r\n setQuantity: '&'\r\n },\r\n link: function (scope, element, attrs) {\r\n var self = scope.pd;\r\n\r\n self.modalOnAdd = (cartItem, el) => {\r\n if (angular.isDefined(self.onAdd)) {\r\n self.onAdd()(cartItem, el);\r\n }\r\n };\r\n\r\n self.modalSetQuantity = (id, quantity, relative) => {\r\n if (angular.isDefined(self.setQuantity)) {\r\n self.setQuantity()(id, quantity, relative);\r\n }\r\n };\r\n\r\n self.htmlDesc = self.product && self.product.HTMLDescriptionDetail ? $sce.trustAsHtml(self.product.HTMLDescriptionDetail) : '';\r\n\r\n ProductsService\r\n .getProductImages({ productID: self.product.Id })\r\n .then(function () {\r\n self.productImages = ProductsService.data.productImages[self.product.Id];\r\n });\r\n\r\n },\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/productDetail.html',\r\n controllerAs: 'pd',\r\n controller: function () {\r\n\r\n },\r\n bindToController: true\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n .directive('productDetail', productDetail);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:promise\r\n * @description\r\n * # Promise Button\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epPromiseButton($timeout) {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\tpromise: '&epPromiseButton',\r\n\t\t\t\tbase: '=?epPromiseButtonWatchBase',\r\n\t\t\t\tdirty: '=?epPromiseButtonWatchDirty',\r\n\t\t\t\tsuccess: '=?epPromiseButtonSuccess',\r\n\t\t\t\terror: '=?epPromiseButtonError',\r\n\t\t\t\twaitText: '=?epPromiseButtonWaitText',\r\n\t\t\t\twait: '@epPromiseButtonWaitClass'\r\n\t\t\t},\r\n\t\t\tlink: function (scope, button) {\r\n\t\t\t\tbutton.on('click', function () {\r\n\t\t\t\t\tif(!button.prop('disabled') && !button.attr('disabled')){\r\n\t\t\t\t\t\tbutton.prop('disabled', true);\r\n\r\n\t\t\t\t\t\tif(scope.wait !== undefined)\r\n\t\t\t\t\t\t\tbutton.toggleClass(scope.wait);\r\n\t\t\t\t\t\telse if(button.find('[ep-promise-button-wait-class]').length){\r\n\t\t\t\t\t\t\tvar waitChild = button.find('[ep-promise-button-wait-class]');\r\n\t\t\t\t\t\t\twaitChild.toggleClass(waitChild.attr('ep-promise-button-wait-class'));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar oldText = button.text();\r\n\r\n\t\t\t\t\t\tif (scope.waitText) {\r\n\t\t\t\t\t\t button.text(scope.waitText);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.promise()().then(function() {\r\n\t\t\t\t\t\t\t// if(scope.success) {\r\n\t\t\t\t\t\t\t// \tvar timeout = scope.success.timeout || 2000;\r\n\t\t\t\t\t\t\t// \tvar text = scope.success.text || 'Success!';\r\n\t\t\t\t\t\t\t// \tvar cssClass = scope.success.cssClass || 'success';\r\n\t\t\t\t\t\t\t// \tvar oldText = button.text();\r\n\r\n\t\t\t\t\t\t\t// \tbutton.text(text);\r\n\t\t\t\t\t\t\t// \tbutton.toggleClass(cssClass);\r\n\r\n\t\t\t\t\t\t\t// \t$timeout(function() {\r\n\t\t\t\t\t\t\t// \t\tbutton.text(oldText);\r\n\t\t\t\t\t\t\t// \t\tbutton.toggleClass(cssClass);\r\n\t\t\t\t\t\t\t// \t}, timeout);\r\n\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\tif(scope.success === undefined || scope.success){\r\n\t\t\t\t\t\t\t\tvar timeout = (scope.success && scope.success.timeout !== undefined && scope.success.timeout) || 2000;\r\n\t\t\t\t\t\t\t\tvar text = (scope.success && scope.success.text !== undefined && scope.success.text) || ' Success!';\r\n\t\t\t\t\t\t\t\tvar cssClass = (scope.success && scope.success.cssClass !== undefined && scope.success.cssClass) || 'success';\r\n\r\n\t\t\t\t\t\t\t\tbutton.text(text);\r\n\t\t\t\t\t\t\t\tbutton.toggleClass(cssClass);\r\n\r\n\t\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\t\tbutton.text(oldText);\r\n\t\t\t\t\t\t\t\t\tbutton.toggleClass(cssClass);\r\n\t\t\t\t\t\t\t\t}, timeout);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, function() {\r\n\t\t\t\t\t\t\tif(scope.error === undefined || scope.error){\r\n\t\t\t\t\t\t\t\tvar timeout = (scope.error && scope.error.timeout !== undefined && scope.error.timeout) || 2000;\r\n\t\t\t\t\t\t\t\tvar text = (scope.error && scope.error.text !== undefined && scope.error.text) || ' Error!';\r\n\t\t\t\t\t\t\t\tvar cssClass = (scope.error && scope.error.cssClass != undefined && scope.error.cssClass) || 'alert';\r\n\r\n\t\t\t\t\t\t\t\tbutton.text(text);\r\n\t\t\t\t\t\t\t\tbutton.toggleClass(cssClass);\r\n\r\n\t\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\t\tbutton.text(oldText);\r\n\t\t\t\t\t\t\t\t\tbutton.toggleClass(cssClass);\r\n\t\t\t\t\t\t\t\t}, timeout);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(function() {\r\n\t\t\t\t\t\t\tbutton.prop('disabled', false);\r\n\r\n\t\t\t\t\t\t\tif(scope.wait)\r\n\t\t\t\t\t\t\t\tbutton.toggleClass(scope.wait);\r\n\t\t\t\t\t\t\telse if(waitChild) {\r\n\t\t\t\t\t\t\t\twaitChild.toggleClass(waitChild.attr('ep-promise-button-wait-class'));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif(scope.base !== undefined && scope.dirty !== undefined){\r\n\t\t\t\t\tscope.$watch('base', function () {\r\n\t\t\t\t\t\tbutton.prop('disabled', true);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tscope.$watch('dirty', function (newValue) {\r\n\t\t\t\t\t\tif(!angular.equals(scope.base, newValue))\r\n\t\t\t\t\t\t\tbutton.prop('disabled', false);\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tbutton.prop('disabled', true);\r\n\t\t\t\t\t}, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epPromiseButton', epPromiseButton);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:Scroll Bottom\r\n * @description\r\n * # Detect when an element's scroll bar has reached the bottom y-axis.\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epScrollBottom($timeout) {\r\n 'ngInject'\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n isBottom: '=epScrollBottom',\r\n },\r\n link: function (scope, element) {\r\n $timeout(function() {\r\n scope.isBottom = element.scrollTop() + element.innerHeight() >= element[0].scrollHeight;\r\n });\r\n\r\n element.on('scroll', function () {\r\n if (element.scrollTop() + element.innerHeight() >= element[0].scrollHeight) {\r\n if (!scope.isBottom)\r\n scope.$apply(function () {\r\n scope.isBottom = true;\r\n });\r\n }\r\n else if (scope.isBottom)\r\n scope.$apply(function () {\r\n scope.isBottom = false;\r\n });\r\n });\r\n }\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.directive('epScrollBottom', epScrollBottom);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:Sort\r\n * @description\r\n * # Sort\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epSort() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\tconfig: '=epSort'\r\n\t\t\t},\r\n controller: function ($scope) {\r\n 'ngInject'\r\n\t\t\t\tthis.config = $scope.config;\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epSort', epSort);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:sortOption\r\n * @description\r\n * # Sort Option\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epSortOption() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: '^epSort',\r\n\t\t\tscope: {\r\n\t\t\t\tsort: '=epSortOption',\r\n inverse: '=?epSortOptionInverse',\r\n clickEvent: '=?epSortOptionClickEvent'\r\n\t\t\t},\r\n link: function (scope, element, attrs, ParentSortController) {\r\n\t\t\t element.on('click', function () {\r\n scope.$apply(function () {\r\n\t\t\t\t\t if(ParentSortController.config.sort === scope.sort)\r\n\t\t\t\t\t\t ParentSortController.config.sortDirection = !ParentSortController.config.sortDirection;\r\n\t\t\t\t\t else {\r\n\t\t\t\t\t\t if(ParentSortController.config.sortInverse != scope.inverse)\r\n\t\t\t\t\t\t\t ParentSortController.config.sortDirection = !ParentSortController.config.sortDirection;\r\n\r\n\t\t\t\t\t\t ParentSortController.config.sortInverse = scope.inverse;\r\n\t\t\t\t\t\t ParentSortController.config.sort = scope.sort;\r\n\t\t\t\t\t }\r\n\r\n if (angular.isFunction(scope.clickEvent)) {\r\n scope.clickEvent(scope.sort);\r\n }\r\n\t\t\t\t });\r\n\t\t\t });\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epSortOption', epSortOption);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:Sticky\r\n * @description\r\n * # Sticky\r\n * \"Stick\" an element to the top of the viewport after the browser scrolls past it.\r\n */\r\n(function (angular, window, undefined) {\r\n function epSticky($window) {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\ttemplate: '
',\r\n\t\t\ttransclude: true,\r\n\t\t\tlink: function (scope, element) {\r\n\t\t\t\tvar elementPosition = element[0].getBoundingClientRect().top;\r\n\t\t\t\tvar placeHolder = angular.element('
').hide();\r\n\t\t\t\tvar body = angular.element('body');\r\n\t\t\t\tscope.window = window;\r\n\r\n\t\t\t\telement.after(placeHolder);\r\n\r\n\t\t\t\t//grab the height of the element after angular has a chance to render\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tplaceHolder.height(element.height());\r\n\t\t\t\t}, 0);\r\n\r\n\t\t\t\tangular.element($window).on('scroll', function() {\r\n\t\t\t\t\tif(this.pageYOffset >= elementPosition){\r\n\t\t\t\t\t\tplaceHolder.show();\r\n\t\t\t\t\t\tbody.prepend(element);\r\n\t\t\t\t\t\telement.addClass('sticky');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (element.is('.sticky') && this.pageYOffset < elementPosition){\r\n\t\t\t\t\t\tplaceHolder.hide();\r\n\t\t\t\t\t\tplaceHolder.before(element);\r\n\t\t\t\t\t\telement.removeClass('sticky');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tscope.$on('$destroy', function() {\r\n\t\t\t\t\tplaceHolder.hide();\r\n\t\t\t\t\tplaceHolder.before(element);\r\n\t\t\t\t\telement.removeClass('sticky');\r\n\t\t\t\t\tangular.element($window).off('scroll');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epSticky', epSticky);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:Time\r\n * @description\r\n * # Time\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epTime() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\trestrict: 'A',\r\n\t\t\tscope: {\r\n\t\t\t\toptions: '=?options',\r\n\t\t\t\tpicker: '=picker'\r\n\t\t\t},\r\n\t\t\tlink: function (scope, element) {\r\n\t\t\t element.pickatime(scope.options);\r\n\t\t\t scope.picker = element.pickatime('picker');\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epTime', epTime);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.directive:Unique\r\n * @description\r\n * # Sort\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function epUnique() {\r\n 'ngInject'\r\n\t\treturn {\r\n\t\t\tscope: {\r\n\t\t\t\texisting: '=epUnique',\r\n\t\t\t\tcaseInsensitive: '=?'\r\n\t\t\t},\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tlink: function (scope, element, attrs, ctrl) {\r\n\t\t\t ctrl.$validators.unique = function (modelValue, viewValue) {\r\n\t\t\t if (ctrl.$isEmpty(modelValue))\r\n\t\t\t return true;\r\n\r\n\t\t\t if(scope.caseInsensitive){\r\n\t\t\t \tmodelValue = modelValue.toLowerCase();\r\n\t\t\t \treturn !scope.existing.filter(function(x) { return x.toLowerCase() === modelValue; }).length;\r\n\t\t\t }\r\n\t\t\t else\r\n\t\t\t \treturn !scope.existing.filter(function(x) { return x === modelValue; }).length;\r\n\t\t\t };\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.directive('epUnique', epUnique);\r\n})(angular, window);\r\n","/* ModalFactory knows the template to use for our modals. You pass in the following parameters to the showModal() method and it will\r\n load the templates and activate them in a modal\r\n options:\r\n bodyTemplateUrl (or bodyTemplate)\r\n footerTemplateUrl (or footerTemplate)\r\n controller\r\n modalcss\r\n inputs {\r\n title: \r\n }\r\n inputs is an arbitrary object containing the parameters you want passed to your controller. In addtion, title is used in \r\n the modaltemplate.html if you want to set this parameter\r\n */\r\n\r\nangular\r\n .module('exhibitorPortalApp')\r\n .factory('modalFactory', modalFactory);\r\n\r\n/**\r\n * \r\n * @param {ng.IRootScopeService} $rootScope AngularJS RootScope Service\r\n * @param {ng.ISCEService} $sce AngularJS Strict-Contextual-Escaping Service\r\n * @param {ng.ITemplateRequestService} $templateRequest AngularJS TemplateRequest Service\r\n * @param {ng.IQService} $q AngularJS Promise Service\r\n * @param {any} $modal Pinecone Modal Service\r\n * @returns {Function} A function that returns an AngularJS Factory\r\n */\r\nfunction modalFactory($rootScope, $sce, $templateRequest, $q, $modal/*mm-foundation modal*/) {\r\n 'ngInject';//used by ng-annotate... must be first line in function\r\n\r\n var templateUrl = (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/modalTemplate.html',\r\n defaultController = 'modalController',\r\n defaultControllerAs = 'modalCtrl',\r\n modalStack = [];\r\n\r\n //if we are navigating with modals open then close them\r\n $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {\r\n if (!event.defaultPrevented) {\r\n dismissAllModals();\r\n }\r\n });\r\n\r\n const service = {\r\n showModal: showModal,\r\n dismissAllModals: dismissAllModals,\r\n displayConfirm: displayConfirm\r\n };\r\n return service;\r\n\r\n function showModal(opts) {\r\n\r\n var modalResult = $q.defer(),\r\n promises = {},\r\n urls = {\r\n modal: templateUrl,\r\n body: opts.bodyTemplateUrl,\r\n footer: opts.footerTemplateUrl\r\n };\r\n angular.forEach(urls, function (value, key) {\r\n if (value) {\r\n this[key] = $templateRequest($sce.getTrustedResourceUrl(value));\r\n }\r\n }, promises);\r\n\r\n //load all the templates using promises and when complete showModal\r\n\r\n $q.all(promises).then(function (responses) {\r\n const reControllerAs = new RegExp('\\\\b' + defaultControllerAs + '\\\\b', 'g');\r\n\r\n var templates = {};\r\n angular.forEach(['body', 'footer'], function (value) {\r\n var template = responses[value] || opts[value + 'Template'];\r\n if (angular.isDefined(template)) {\r\n this[value] = opts.controllerAs && opts.controllerAs !== defaultControllerAs\r\n ? template.replace(reControllerAs, opts.controllerAs) : template;\r\n }\r\n }, templates);\r\n\r\n var modalTpl = responses.modal,\r\n modalInstance = $modal.open({\r\n template: opts.controllerAs && opts.controllerAs !== defaultControllerAs\r\n ? modalTpl.replace(reControllerAs, opts.controllerAs) : modalTpl,\r\n controller: opts.controller || defaultController,\r\n controllerAs: opts.controllerAs || defaultControllerAs,\r\n resolve: {\r\n // these have to be function references or they won't work... WTH?\r\n templates: function () { return templates; },\r\n inputs: function () { return opts.inputs; }\r\n },\r\n windowClass: opts.modalcss,\r\n keyboard: angular.isDefined(opts.keyboard) ? opts.keyboard : true,\r\n backdrop: 'static',//\"static\" = backdrop visible, but clicking on it doesn't close the modal\r\n scope: opts.scope\r\n });\r\n modalStack.push(modalInstance);\r\n\r\n /*\r\n * Copied from EventXL BaseShow. Don't need at the moment.\r\n modalInstance.opened.then(function (opened) {\r\n if (opts.inputs && opts.inputs.setFocusCtlName) {\r\n DocumentService.setFocusByName(opts.inputs.setFocusCtlName);\r\n }\r\n if (angular.isFunction(opts.onOpen)) {\r\n opts.onOpen();\r\n }\r\n });\r\n */\r\n\r\n modalInstance.result.then(\r\n function (closed) {\r\n popModalStack(modalInstance);\r\n modalResult.resolve(closed);\r\n },\r\n function (dismissed) {\r\n popModalStack(modalInstance);\r\n modalResult.reject(dismissed);\r\n }\r\n );\r\n //could not use finally because login does a nav and the ui router event was getting called before finally\r\n //.finally(function () {\r\n // popModalStack(modalInstance);\r\n //});\r\n\r\n });\r\n\r\n return modalResult.promise;\r\n\r\n }\r\n\r\n function dismissAllModals() {\r\n if (modalStack.length) {\r\n //make a copy because calling dismiss will remove the modal from the stack while we are iterating over it\r\n const temp = modalStack.slice(0);\r\n for (var i = temp.length - 1; i >= 0; i--) {\r\n temp[i].dismiss();\r\n }\r\n }\r\n }\r\n\r\n function popModalStack(modal) {\r\n //normally we could just pop the last element, but it looks like you can close modals out of order\r\n const index = modalStack.indexOf(modal);\r\n if (index >= 0) {\r\n modalStack.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} msg Message body to display\r\n * @param {string} title Modal header title to display\r\n * @param {string} modalCssClass Modal CSS Class to use\r\n * @returns {PromiseLike} A promise\r\n */\r\n function displayConfirm(msg, title, modalCssClass) {\r\n return showModal({\r\n bodyTemplate: msg || 'Are you Sure?',\r\n footerTemplate:\r\n '',\r\n modalcss: modalCssClass,\r\n inputs: {\r\n title: title || 'Confirm'\r\n }\r\n }).then((result) => {\r\n return result.status ? $q.when() : $q.reject();\r\n });\r\n }\r\n}\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.filter:collateralFile\r\n * @description\r\n * # Collateral File\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function collateralFile() {\r\n 'ngInject'\r\n return function (input, EXSConfig, CurrentEvent, SWAPExhibitor) {\r\n if(arguments.length === 1)\r\n return typeof input === 'string' ? /.*(-.*)\\..*/.exec(input.split('/').pop())\r\n .reduce(function(acc, curr) { return acc && (acc = acc.replace(curr,'')) || (acc = curr); }, '') \r\n : null;\r\n else {\r\n var rootURL = EXSConfig.AWS3CollateralRootURL.replace('{0}', CurrentEvent.ShowCode.toLowerCase());\r\n rootURL = rootURL.replace('{1}', SWAPExhibitor.Id)\r\n\r\n return rootURL + '/' + input;\r\n }\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.filter('collateralFile', collateralFile);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.filter:dataSalesFile\r\n * @description\r\n * # Data Sales File\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function dataSalesFile() {\r\n 'ngInject'\r\n return function (input, EXSConfig, CurrentEvent, ActiveUserProfile) { \r\n if(arguments.length === 1)\r\n return typeof input === 'string' ? /.*(-.*)\\..*/.exec(input.split('/').pop())\r\n .reduce(function(acc, curr) { return acc && (acc = acc.replace(curr,'')) || (acc = curr); }, '') \r\n : null;\r\n else {\r\n var rootURL = EXSConfig.AWS3RootURL.replace('{0}', CurrentEvent.ShowCode.toLowerCase());\r\n rootURL = rootURL.replace('{1}', ActiveUserProfile.ExhibitorId)\r\n\r\n return rootURL + '/' + input;\r\n }\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.filter('dataSalesFile', dataSalesFile);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.filter:excludeShow\r\n * @description\r\n * # ExcludeShow\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function excludeShow() {\r\n 'ngInject'\r\n return function (input, showcode) {\r\n var results = [];\r\n if (input) {\r\n\r\n for (var i = 0; i < input.length; i++) {\r\n if (input[i].ShowCode !== showcode)\r\n results.push(input[i]);\r\n }\r\n }\r\n return results;\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n .filter('excludeShow', excludeShow);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.filter:price\r\n * @description\r\n * # Price\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function price() {\r\n 'ngInject'\r\n return function (input) {\r\n return typeof input === 'string' ? input.replace(/\\$0.00/g, 'FREE') : input;\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.filter('price', price);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.filter:searchFilter\r\n * @description\r\n * # Search Filter\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function searchFilter($filter) {\r\n 'ngInject'\r\n\t\treturn function (input, search) {\r\n\t\t\tvar results = [];\r\n if (input) {\n \r\n for (var i = 0; i < input.length; i++) {\r\n var match = true;\r\n (function recurse(filter) {\r\n for (var key in filter) {\r\n if (Object.prototype.toString.apply(filter[key]) === '[object Object]') {\n match = match && recurse(filter[key]);\n } else {\r\n match = (function () {\r\n var props = key.split('.');\r\n\r\n return (function recurse(props, input) {\r\n if (props.length) {\r\n var prop = props[0];\r\n if (prop in input)\r\n return recurse(props.splice(1), input[prop]);\r\n else\r\n return false;\r\n }\r\n else {\r\n if (Object.prototype.toString.apply(filter[key]) === '[object Array]') {\r\n for (var f = 0; f < filter[key].length; f++) {\r\n match = (function () {\r\n if (Object.prototype.toString.apply(input) === '[object Array]') {\r\n for (var o = 0; o < input.length; o++)\r\n if (input[o][filter[key][f].optionKey] === filter[key][f].optionValue || filter[key][f].optionValue === undefined) {\r\n var result = filter[key][f].predicate ?\r\n filter[key][f].predicate(input[o][filter[key][f].responseKey], filter[key][f].responseValue) :\r\n input[o][filter[key][f].responseKey] == filter[key][f].responseValue;\r\n\r\n if (!!result)\r\n return result;\r\n }\r\n }\r\n //assume that object is primitive\r\n else if (filter[key][f].predicate)\r\n return filter[key][f].predicate(input, filter[key][f].responseValue);\r\n else\r\n throw 'Unhandled filter scenario!';\r\n })();\r\n\r\n if (!match)\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n else if (typeof filter[key] === 'string' && typeof input === 'string')\r\n return filter[key].toUpperCase() === input.toUpperCase();\r\n else\r\n return filter[key] == input;\r\n }\r\n })(props, input[i]);\r\n })();\r\n\r\n if (!match)\r\n return false;\r\n }\r\n }\r\n return true;\r\n })(search.filters);\r\n\r\n if (match && $filter('filter')([input[i]], search.searchText).length)\r\n results.push(input[i]);\r\n }\n }\r\n\r\n\t\t\treturn results;\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('exhibitorPortalApp')\r\n\t\t.filter('searchFilter', searchFilter);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortalLoginApp.directive:showOrder\r\n * @description\r\n * # Show Order Filter\r\n * Directive of the exhibitorPortalLoginApp\r\n */\r\n(function (angular, window, undefined) {\r\n function showOrder() {\r\n 'ngInject'\r\n return function (shows) {\r\n var array = [];\r\n Object.keys(shows).forEach(function (key) {\r\n shows[key].name = key;\r\n array.push(shows[key]);\r\n });\r\n\r\n array.sort(function (s1, s2) {\r\n var s1Date = new Date(s1.ShowOpenDate);\r\n var s2Date = new Date(s2.ShowOpenDate);\r\n\r\n if (s1Date.getFullYear() > s2Date.getFullYear())\r\n return -1;\r\n else if (s1Date.getFullYear() < s2Date.getFullYear())\r\n return 1;\r\n\r\n if (s1Date.getMonth() > s2Date.getMonth())\r\n return 1;\r\n else if (s1Date.getMonth() < s2Date.getMonth())\r\n return -1;\r\n\r\n if (s1.TradeShowName > s2.TradeShowName)\r\n return 1;\r\n else if (s1.TradeShowName < s2.TradeShowName)\r\n return -1;\r\n return 0;\r\n });\r\n\r\n return array;\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .filter('showOrder', showOrder);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc function\r\n * @name exhibitorPortaluiApp.filter:startFrom\r\n * @description\r\n * # Start From\r\n * Directive of the exhibitorPortalApp\r\n */\r\n(function (angular, window, undefined) {\r\n function startFrom() {\r\n 'ngInject'\r\n return function (input, start) {\r\n return (typeof input == 'undefined' || !input) ? [] : input.slice(start);\r\n };\r\n }\r\n\r\n angular.module('exhibitorPortalApp')\r\n\t\t.filter('startFrom', startFrom);\r\n})(angular, window);\n","/*\r\n * $Id: rawdeflate.js,v 0.5 2013/04/09 14:25:38 dankogai Exp dankogai $\r\n *\r\n * GNU General Public License, version 2 (GPL-2.0)\r\n * http://opensource.org/licenses/GPL-2.0\r\n * Original:\r\n * http://www.onicos.com/staff/iz/amuse/javascript/expert/deflate.txt\r\n */\r\n\r\n(function (ctx) {\r\n\r\n /* Copyright (C) 1999 Masanao Izumo \r\n * Version: 1.0.1\r\n * LastModified: Dec 25 1999\r\n */\r\n\r\n /* Interface:\r\n * data = zip_deflate(src);\r\n */\r\n\r\n /* constant parameters */\r\n var zip_WSIZE = 32768;\t\t// Sliding Window size\r\n var zip_STORED_BLOCK = 0;\r\n var zip_STATIC_TREES = 1;\r\n var zip_DYN_TREES = 2;\r\n\r\n /* for deflate */\r\n var zip_DEFAULT_LEVEL = 6;\r\n var zip_FULL_SEARCH = true;\r\n var zip_INBUFSIZ = 32768;\t// Input buffer size\r\n var zip_INBUF_EXTRA = 64;\t// Extra buffer\r\n var zip_OUTBUFSIZ = 1024 * 8;\r\n var zip_window_size = 2 * zip_WSIZE;\r\n var zip_MIN_MATCH = 3;\r\n var zip_MAX_MATCH = 258;\r\n var zip_BITS = 16;\r\n // for SMALL_MEM\r\n var zip_LIT_BUFSIZE = 0x2000;\r\n var zip_HASH_BITS = 13;\r\n // for MEDIUM_MEM\r\n // var zip_LIT_BUFSIZE = 0x4000;\r\n // var zip_HASH_BITS = 14;\r\n // for BIG_MEM\r\n // var zip_LIT_BUFSIZE = 0x8000;\r\n // var zip_HASH_BITS = 15;\r\n if (zip_LIT_BUFSIZE > zip_INBUFSIZ)\r\n alert(\"error: zip_INBUFSIZ is too small\");\r\n if ((zip_WSIZE << 1) > (1 << zip_BITS))\r\n alert(\"error: zip_WSIZE is too large\");\r\n if (zip_HASH_BITS > zip_BITS - 1)\r\n alert(\"error: zip_HASH_BITS is too large\");\r\n if (zip_HASH_BITS < 8 || zip_MAX_MATCH != 258)\r\n alert(\"error: Code too clever\");\r\n var zip_DIST_BUFSIZE = zip_LIT_BUFSIZE;\r\n var zip_HASH_SIZE = 1 << zip_HASH_BITS;\r\n var zip_HASH_MASK = zip_HASH_SIZE - 1;\r\n var zip_WMASK = zip_WSIZE - 1;\r\n var zip_NIL = 0; // Tail of hash chains\r\n var zip_TOO_FAR = 4096;\r\n var zip_MIN_LOOKAHEAD = zip_MAX_MATCH + zip_MIN_MATCH + 1;\r\n var zip_MAX_DIST = zip_WSIZE - zip_MIN_LOOKAHEAD;\r\n var zip_SMALLEST = 1;\r\n var zip_MAX_BITS = 15;\r\n var zip_MAX_BL_BITS = 7;\r\n var zip_LENGTH_CODES = 29;\r\n var zip_LITERALS = 256;\r\n var zip_END_BLOCK = 256;\r\n var zip_L_CODES = zip_LITERALS + 1 + zip_LENGTH_CODES;\r\n var zip_D_CODES = 30;\r\n var zip_BL_CODES = 19;\r\n var zip_REP_3_6 = 16;\r\n var zip_REPZ_3_10 = 17;\r\n var zip_REPZ_11_138 = 18;\r\n var zip_HEAP_SIZE = 2 * zip_L_CODES + 1;\r\n var zip_H_SHIFT = parseInt((zip_HASH_BITS + zip_MIN_MATCH - 1) /\r\n zip_MIN_MATCH);\r\n\r\n /* variables */\r\n var zip_free_queue;\r\n var zip_qhead, zip_qtail;\r\n var zip_initflag;\r\n var zip_outbuf = null;\r\n var zip_outcnt, zip_outoff;\r\n var zip_complete;\r\n var zip_window;\r\n var zip_d_buf;\r\n var zip_l_buf;\r\n var zip_prev;\r\n var zip_bi_buf;\r\n var zip_bi_valid;\r\n var zip_block_start;\r\n var zip_ins_h;\r\n var zip_hash_head;\r\n var zip_prev_match;\r\n var zip_match_available;\r\n var zip_match_length;\r\n var zip_prev_length;\r\n var zip_strstart;\r\n var zip_match_start;\r\n var zip_eofile;\r\n var zip_lookahead;\r\n var zip_max_chain_length;\r\n var zip_max_lazy_match;\r\n var zip_compr_level;\r\n var zip_good_match;\r\n var zip_nice_match;\r\n var zip_dyn_ltree;\r\n var zip_dyn_dtree;\r\n var zip_static_ltree;\r\n var zip_static_dtree;\r\n var zip_bl_tree;\r\n var zip_l_desc;\r\n var zip_d_desc;\r\n var zip_bl_desc;\r\n var zip_bl_count;\r\n var zip_heap;\r\n var zip_heap_len;\r\n var zip_heap_max;\r\n var zip_depth;\r\n var zip_length_code;\r\n var zip_dist_code;\r\n var zip_base_length;\r\n var zip_base_dist;\r\n var zip_flag_buf;\r\n var zip_last_lit;\r\n var zip_last_dist;\r\n var zip_last_flags;\r\n var zip_flags;\r\n var zip_flag_bit;\r\n var zip_opt_len;\r\n var zip_static_len;\r\n var zip_deflate_data;\r\n var zip_deflate_pos;\r\n\r\n /* objects (deflate) */\r\n\r\n var zip_DeflateCT = function () {\r\n this.fc = 0; // frequency count or bit string\r\n this.dl = 0; // father node in Huffman tree or length of bit string\r\n }\r\n\r\n var zip_DeflateTreeDesc = function () {\r\n this.dyn_tree = null;\t// the dynamic tree\r\n this.static_tree = null;\t// corresponding static tree or NULL\r\n this.extra_bits = null;\t// extra bits for each code or NULL\r\n this.extra_base = 0;\t// base index for extra_bits\r\n this.elems = 0;\t\t// max number of elements in the tree\r\n this.max_length = 0;\t// max bit length for the codes\r\n this.max_code = 0;\t\t// largest code with non zero frequency\r\n }\r\n\r\n /* Values for max_lazy_match, good_match and max_chain_length, depending on\r\n * the desired pack level (0..9). The values given below have been tuned to\r\n * exclude worst case performance for pathological files. Better values may be\r\n * found for specific files.\r\n */\r\n var zip_DeflateConfiguration = function (a, b, c, d) {\r\n this.good_length = a; // reduce lazy search above this match length\r\n this.max_lazy = b; // do not perform lazy search above this match length\r\n this.nice_length = c; // quit search above this match length\r\n this.max_chain = d;\r\n }\r\n\r\n var zip_DeflateBuffer = function () {\r\n this.next = null;\r\n this.len = 0;\r\n this.ptr = new Array(zip_OUTBUFSIZ);\r\n this.off = 0;\r\n }\r\n\r\n /* constant tables */\r\n var zip_extra_lbits = new Array(\r\n 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0);\r\n var zip_extra_dbits = new Array(\r\n 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13);\r\n var zip_extra_blbits = new Array(\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7);\r\n var zip_bl_order = new Array(\r\n 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15);\r\n var zip_configuration_table = new Array(\r\n new zip_DeflateConfiguration(0, 0, 0, 0),\r\n new zip_DeflateConfiguration(4, 4, 8, 4),\r\n new zip_DeflateConfiguration(4, 5, 16, 8),\r\n new zip_DeflateConfiguration(4, 6, 32, 32),\r\n new zip_DeflateConfiguration(4, 4, 16, 16),\r\n new zip_DeflateConfiguration(8, 16, 32, 32),\r\n new zip_DeflateConfiguration(8, 16, 128, 128),\r\n new zip_DeflateConfiguration(8, 32, 128, 256),\r\n new zip_DeflateConfiguration(32, 128, 258, 1024),\r\n new zip_DeflateConfiguration(32, 258, 258, 4096));\r\n\r\n\r\n /* routines (deflate) */\r\n\r\n var zip_deflate_start = function (level) {\r\n var i;\r\n\r\n if (!level)\r\n level = zip_DEFAULT_LEVEL;\r\n else if (level < 1)\r\n level = 1;\r\n else if (level > 9)\r\n level = 9;\r\n\r\n zip_compr_level = level;\r\n zip_initflag = false;\r\n zip_eofile = false;\r\n if (zip_outbuf != null)\r\n return;\r\n\r\n zip_free_queue = zip_qhead = zip_qtail = null;\r\n zip_outbuf = new Array(zip_OUTBUFSIZ);\r\n zip_window = new Array(zip_window_size);\r\n zip_d_buf = new Array(zip_DIST_BUFSIZE);\r\n zip_l_buf = new Array(zip_INBUFSIZ + zip_INBUF_EXTRA);\r\n zip_prev = new Array(1 << zip_BITS);\r\n zip_dyn_ltree = new Array(zip_HEAP_SIZE);\r\n for (i = 0; i < zip_HEAP_SIZE; i++)\r\n zip_dyn_ltree[i] = new zip_DeflateCT();\r\n zip_dyn_dtree = new Array(2 * zip_D_CODES + 1);\r\n for (i = 0; i < 2 * zip_D_CODES + 1; i++)\r\n zip_dyn_dtree[i] = new zip_DeflateCT();\r\n zip_static_ltree = new Array(zip_L_CODES + 2);\r\n for (i = 0; i < zip_L_CODES + 2; i++)\r\n zip_static_ltree[i] = new zip_DeflateCT();\r\n zip_static_dtree = new Array(zip_D_CODES);\r\n for (i = 0; i < zip_D_CODES; i++)\r\n zip_static_dtree[i] = new zip_DeflateCT();\r\n zip_bl_tree = new Array(2 * zip_BL_CODES + 1);\r\n for (i = 0; i < 2 * zip_BL_CODES + 1; i++)\r\n zip_bl_tree[i] = new zip_DeflateCT();\r\n zip_l_desc = new zip_DeflateTreeDesc();\r\n zip_d_desc = new zip_DeflateTreeDesc();\r\n zip_bl_desc = new zip_DeflateTreeDesc();\r\n zip_bl_count = new Array(zip_MAX_BITS + 1);\r\n zip_heap = new Array(2 * zip_L_CODES + 1);\r\n zip_depth = new Array(2 * zip_L_CODES + 1);\r\n zip_length_code = new Array(zip_MAX_MATCH - zip_MIN_MATCH + 1);\r\n zip_dist_code = new Array(512);\r\n zip_base_length = new Array(zip_LENGTH_CODES);\r\n zip_base_dist = new Array(zip_D_CODES);\r\n zip_flag_buf = new Array(parseInt(zip_LIT_BUFSIZE / 8));\r\n }\r\n\r\n var zip_deflate_end = function () {\r\n zip_free_queue = zip_qhead = zip_qtail = null;\r\n zip_outbuf = null;\r\n zip_window = null;\r\n zip_d_buf = null;\r\n zip_l_buf = null;\r\n zip_prev = null;\r\n zip_dyn_ltree = null;\r\n zip_dyn_dtree = null;\r\n zip_static_ltree = null;\r\n zip_static_dtree = null;\r\n zip_bl_tree = null;\r\n zip_l_desc = null;\r\n zip_d_desc = null;\r\n zip_bl_desc = null;\r\n zip_bl_count = null;\r\n zip_heap = null;\r\n zip_depth = null;\r\n zip_length_code = null;\r\n zip_dist_code = null;\r\n zip_base_length = null;\r\n zip_base_dist = null;\r\n zip_flag_buf = null;\r\n }\r\n\r\n var zip_reuse_queue = function (p) {\r\n p.next = zip_free_queue;\r\n zip_free_queue = p;\r\n }\r\n\r\n var zip_new_queue = function () {\r\n var p;\r\n\r\n if (zip_free_queue != null) {\r\n p = zip_free_queue;\r\n zip_free_queue = zip_free_queue.next;\r\n }\r\n else\r\n p = new zip_DeflateBuffer();\r\n p.next = null;\r\n p.len = p.off = 0;\r\n\r\n return p;\r\n }\r\n\r\n var zip_head1 = function (i) {\r\n return zip_prev[zip_WSIZE + i];\r\n }\r\n\r\n var zip_head2 = function (i, val) {\r\n return zip_prev[zip_WSIZE + i] = val;\r\n }\r\n\r\n /* put_byte is used for the compressed output, put_ubyte for the\r\n * uncompressed output. However unlzw() uses window for its\r\n * suffix table instead of its output buffer, so it does not use put_ubyte\r\n * (to be cleaned up).\r\n */\r\n var zip_put_byte = function (c) {\r\n zip_outbuf[zip_outoff + zip_outcnt++] = c;\r\n if (zip_outoff + zip_outcnt == zip_OUTBUFSIZ)\r\n zip_qoutbuf();\r\n }\r\n\r\n /* Output a 16 bit value, lsb first */\r\n var zip_put_short = function (w) {\r\n w &= 0xffff;\r\n if (zip_outoff + zip_outcnt < zip_OUTBUFSIZ - 2) {\r\n zip_outbuf[zip_outoff + zip_outcnt++] = (w & 0xff);\r\n zip_outbuf[zip_outoff + zip_outcnt++] = (w >>> 8);\r\n } else {\r\n zip_put_byte(w & 0xff);\r\n zip_put_byte(w >>> 8);\r\n }\r\n }\r\n\r\n /* ==========================================================================\r\n * Insert string s in the dictionary and set match_head to the previous head\r\n * of the hash chain (the most recent string with same hash key). Return\r\n * the previous length of the hash chain.\r\n * IN assertion: all calls to to INSERT_STRING are made with consecutive\r\n * input characters and the first MIN_MATCH bytes of s are valid\r\n * (except for the last MIN_MATCH-1 bytes of the input file).\r\n */\r\n var zip_INSERT_STRING = function () {\r\n zip_ins_h = ((zip_ins_h << zip_H_SHIFT)\r\n ^ (zip_window[zip_strstart + zip_MIN_MATCH - 1] & 0xff))\r\n & zip_HASH_MASK;\r\n zip_hash_head = zip_head1(zip_ins_h);\r\n zip_prev[zip_strstart & zip_WMASK] = zip_hash_head;\r\n zip_head2(zip_ins_h, zip_strstart);\r\n }\r\n\r\n /* Send a code of the given tree. c and tree must not have side effects */\r\n var zip_SEND_CODE = function (c, tree) {\r\n zip_send_bits(tree[c].fc, tree[c].dl);\r\n }\r\n\r\n /* Mapping from a distance to a distance code. dist is the distance - 1 and\r\n * must not have side effects. dist_code[256] and dist_code[257] are never\r\n * used.\r\n */\r\n var zip_D_CODE = function (dist) {\r\n return (dist < 256 ? zip_dist_code[dist]\r\n : zip_dist_code[256 + (dist >> 7)]) & 0xff;\r\n }\r\n\r\n /* ==========================================================================\r\n * Compares to subtrees, using the tree depth as tie breaker when\r\n * the subtrees have equal frequency. This minimizes the worst case length.\r\n */\r\n var zip_SMALLER = function (tree, n, m) {\r\n return tree[n].fc < tree[m].fc ||\r\n (tree[n].fc == tree[m].fc && zip_depth[n] <= zip_depth[m]);\r\n }\r\n\r\n /* ==========================================================================\r\n * read string data\r\n */\r\n var zip_read_buff = function (buff, offset, n) {\r\n var i;\r\n for (i = 0; i < n && zip_deflate_pos < zip_deflate_data.length; i++)\r\n buff[offset + i] =\r\n zip_deflate_data.charCodeAt(zip_deflate_pos++) & 0xff;\r\n return i;\r\n }\r\n\r\n /* ==========================================================================\r\n * Initialize the \"longest match\" routines for a new file\r\n */\r\n var zip_lm_init = function () {\r\n var j;\r\n\r\n /* Initialize the hash table. */\r\n for (j = 0; j < zip_HASH_SIZE; j++)\r\n //\tzip_head2(j, zip_NIL);\r\n zip_prev[zip_WSIZE + j] = 0;\r\n /* prev will be initialized on the fly */\r\n\r\n /* Set the default configuration parameters:\r\n */\r\n zip_max_lazy_match = zip_configuration_table[zip_compr_level].max_lazy;\r\n zip_good_match = zip_configuration_table[zip_compr_level].good_length;\r\n if (!zip_FULL_SEARCH)\r\n zip_nice_match = zip_configuration_table[zip_compr_level].nice_length;\r\n zip_max_chain_length = zip_configuration_table[zip_compr_level].max_chain;\r\n\r\n zip_strstart = 0;\r\n zip_block_start = 0;\r\n\r\n zip_lookahead = zip_read_buff(zip_window, 0, 2 * zip_WSIZE);\r\n if (zip_lookahead <= 0) {\r\n zip_eofile = true;\r\n zip_lookahead = 0;\r\n return;\r\n }\r\n zip_eofile = false;\r\n /* Make sure that we always have enough lookahead. This is important\r\n * if input comes from a device such as a tty.\r\n */\r\n while (zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)\r\n zip_fill_window();\r\n\r\n /* If lookahead < MIN_MATCH, ins_h is garbage, but this is\r\n * not important since only literal bytes will be emitted.\r\n */\r\n zip_ins_h = 0;\r\n for (j = 0; j < zip_MIN_MATCH - 1; j++) {\r\n // UPDATE_HASH(ins_h, window[j]);\r\n zip_ins_h = ((zip_ins_h << zip_H_SHIFT) ^ (zip_window[j] & 0xff)) & zip_HASH_MASK;\r\n }\r\n }\r\n\r\n /* ==========================================================================\r\n * Set match_start to the longest match starting at the given string and\r\n * return its length. Matches shorter or equal to prev_length are discarded,\r\n * in which case the result is equal to prev_length and match_start is\r\n * garbage.\r\n * IN assertions: cur_match is the head of the hash chain for the current\r\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\r\n */\r\n var zip_longest_match = function (cur_match) {\r\n var chain_length = zip_max_chain_length; // max hash chain length\r\n var scanp = zip_strstart; // current string\r\n var matchp;\t\t// matched string\r\n var len;\t\t// length of current match\r\n var best_len = zip_prev_length;\t// best match length so far\r\n\r\n /* Stop when cur_match becomes <= limit. To simplify the code,\r\n * we prevent matches with the string of window index 0.\r\n */\r\n var limit = (zip_strstart > zip_MAX_DIST ? zip_strstart - zip_MAX_DIST : zip_NIL);\r\n\r\n var strendp = zip_strstart + zip_MAX_MATCH;\r\n var scan_end1 = zip_window[scanp + best_len - 1];\r\n var scan_end = zip_window[scanp + best_len];\r\n\r\n /* Do not waste too much time if we already have a good match: */\r\n if (zip_prev_length >= zip_good_match)\r\n chain_length >>= 2;\r\n\r\n // Assert(encoder->strstart <= window_size-MIN_LOOKAHEAD, \"insufficient lookahead\");\r\n\r\n do {\r\n // Assert(cur_match < encoder->strstart, \"no future\");\r\n matchp = cur_match;\r\n\r\n /* Skip to next match if the match length cannot increase\r\n * or if the match length is less than 2:\r\n */\r\n if (zip_window[matchp + best_len] != scan_end ||\r\n zip_window[matchp + best_len - 1] != scan_end1 ||\r\n zip_window[matchp] != zip_window[scanp] ||\r\n zip_window[++matchp] != zip_window[scanp + 1]) {\r\n continue;\r\n }\r\n\r\n /* The check at best_len-1 can be removed because it will be made\r\n * again later. (This heuristic is not always a win.)\r\n * It is not necessary to compare scan[2] and match[2] since they\r\n * are always equal when the other bytes match, given that\r\n * the hash keys are equal and that HASH_BITS >= 8.\r\n */\r\n scanp += 2;\r\n matchp++;\r\n\r\n /* We check for insufficient lookahead only every 8th comparison;\r\n * the 256th check will be made at strstart+258.\r\n */\r\n do {\r\n } while (zip_window[++scanp] == zip_window[++matchp] &&\r\n zip_window[++scanp] == zip_window[++matchp] &&\r\n zip_window[++scanp] == zip_window[++matchp] &&\r\n zip_window[++scanp] == zip_window[++matchp] &&\r\n zip_window[++scanp] == zip_window[++matchp] &&\r\n zip_window[++scanp] == zip_window[++matchp] &&\r\n zip_window[++scanp] == zip_window[++matchp] &&\r\n zip_window[++scanp] == zip_window[++matchp] &&\r\n scanp < strendp);\r\n\r\n len = zip_MAX_MATCH - (strendp - scanp);\r\n scanp = strendp - zip_MAX_MATCH;\r\n\r\n if (len > best_len) {\r\n zip_match_start = cur_match;\r\n best_len = len;\r\n if (zip_FULL_SEARCH) {\r\n if (len >= zip_MAX_MATCH) break;\r\n } else {\r\n if (len >= zip_nice_match) break;\r\n }\r\n\r\n scan_end1 = zip_window[scanp + best_len - 1];\r\n scan_end = zip_window[scanp + best_len];\r\n }\r\n } while ((cur_match = zip_prev[cur_match & zip_WMASK]) > limit\r\n && --chain_length != 0);\r\n\r\n return best_len;\r\n }\r\n\r\n /* ==========================================================================\r\n * Fill the window when the lookahead becomes insufficient.\r\n * Updates strstart and lookahead, and sets eofile if end of input file.\r\n * IN assertion: lookahead < MIN_LOOKAHEAD && strstart + lookahead > 0\r\n * OUT assertions: at least one byte has been read, or eofile is set;\r\n * file reads are performed for at least two bytes (required for the\r\n * translate_eol option).\r\n */\r\n var zip_fill_window = function () {\r\n var n, m;\r\n\r\n // Amount of free space at the end of the window.\r\n var more = zip_window_size - zip_lookahead - zip_strstart;\r\n\r\n /* If the window is almost full and there is insufficient lookahead,\r\n * move the upper half to the lower one to make room in the upper half.\r\n */\r\n if (more == -1) {\r\n /* Very unlikely, but possible on 16 bit machine if strstart == 0\r\n * and lookahead == 1 (input done one byte at time)\r\n */\r\n more--;\r\n } else if (zip_strstart >= zip_WSIZE + zip_MAX_DIST) {\r\n /* By the IN assertion, the window is not empty so we can't confuse\r\n * more == 0 with more == 64K on a 16 bit machine.\r\n */\r\n //\tAssert(window_size == (ulg)2*WSIZE, \"no sliding with BIG_MEM\");\r\n\r\n //\tSystem.arraycopy(window, WSIZE, window, 0, WSIZE);\r\n for (n = 0; n < zip_WSIZE; n++)\r\n zip_window[n] = zip_window[n + zip_WSIZE];\r\n\r\n zip_match_start -= zip_WSIZE;\r\n zip_strstart -= zip_WSIZE; /* we now have strstart >= MAX_DIST: */\r\n zip_block_start -= zip_WSIZE;\r\n\r\n for (n = 0; n < zip_HASH_SIZE; n++) {\r\n m = zip_head1(n);\r\n zip_head2(n, m >= zip_WSIZE ? m - zip_WSIZE : zip_NIL);\r\n }\r\n for (n = 0; n < zip_WSIZE; n++) {\r\n /* If n is not on any hash chain, prev[n] is garbage but\r\n * its value will never be used.\r\n */\r\n m = zip_prev[n];\r\n zip_prev[n] = (m >= zip_WSIZE ? m - zip_WSIZE : zip_NIL);\r\n }\r\n more += zip_WSIZE;\r\n }\r\n // At this point, more >= 2\r\n if (!zip_eofile) {\r\n n = zip_read_buff(zip_window, zip_strstart + zip_lookahead, more);\r\n if (n <= 0)\r\n zip_eofile = true;\r\n else\r\n zip_lookahead += n;\r\n }\r\n }\r\n\r\n /* ==========================================================================\r\n * Processes a new input file and return its compressed length. This\r\n * function does not perform lazy evaluationof matches and inserts\r\n * new strings in the dictionary only for unmatched strings or for short\r\n * matches. It is used only for the fast compression options.\r\n */\r\n var zip_deflate_fast = function () {\r\n while (zip_lookahead != 0 && zip_qhead == null) {\r\n var flush; // set if current block must be flushed\r\n\r\n /* Insert the string window[strstart .. strstart+2] in the\r\n * dictionary, and set hash_head to the head of the hash chain:\r\n */\r\n zip_INSERT_STRING();\r\n\r\n /* Find the longest match, discarding those <= prev_length.\r\n * At this point we have always match_length < MIN_MATCH\r\n */\r\n if (zip_hash_head != zip_NIL &&\r\n zip_strstart - zip_hash_head <= zip_MAX_DIST) {\r\n /* To simplify the code, we prevent matches with the string\r\n * of window index 0 (in particular we have to avoid a match\r\n * of the string with itself at the start of the input file).\r\n */\r\n zip_match_length = zip_longest_match(zip_hash_head);\r\n /* longest_match() sets match_start */\r\n if (zip_match_length > zip_lookahead)\r\n zip_match_length = zip_lookahead;\r\n }\r\n if (zip_match_length >= zip_MIN_MATCH) {\r\n //\t check_match(strstart, match_start, match_length);\r\n\r\n flush = zip_ct_tally(zip_strstart - zip_match_start,\r\n zip_match_length - zip_MIN_MATCH);\r\n zip_lookahead -= zip_match_length;\r\n\r\n /* Insert new strings in the hash table only if the match length\r\n * is not too large. This saves time but degrades compression.\r\n */\r\n if (zip_match_length <= zip_max_lazy_match) {\r\n zip_match_length--; // string at strstart already in hash table\r\n do {\r\n zip_strstart++;\r\n zip_INSERT_STRING();\r\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\r\n * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH\r\n * these bytes are garbage, but it does not matter since\r\n * the next lookahead bytes will be emitted as literals.\r\n */\r\n } while (--zip_match_length != 0);\r\n zip_strstart++;\r\n } else {\r\n zip_strstart += zip_match_length;\r\n zip_match_length = 0;\r\n zip_ins_h = zip_window[zip_strstart] & 0xff;\r\n //\t\tUPDATE_HASH(ins_h, window[strstart + 1]);\r\n zip_ins_h = ((zip_ins_h << zip_H_SHIFT) ^ (zip_window[zip_strstart + 1] & 0xff)) & zip_HASH_MASK;\r\n\r\n //#if MIN_MATCH != 3\r\n //\t\tCall UPDATE_HASH() MIN_MATCH-3 more times\r\n //#endif\r\n\r\n }\r\n } else {\r\n /* No match, output a literal byte */\r\n flush = zip_ct_tally(0, zip_window[zip_strstart] & 0xff);\r\n zip_lookahead--;\r\n zip_strstart++;\r\n }\r\n if (flush) {\r\n zip_flush_block(0);\r\n zip_block_start = zip_strstart;\r\n }\r\n\r\n /* Make sure that we always have enough lookahead, except\r\n * at the end of the input file. We need MAX_MATCH bytes\r\n * for the next match, plus MIN_MATCH bytes to insert the\r\n * string following the next match.\r\n */\r\n while (zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)\r\n zip_fill_window();\r\n }\r\n }\r\n\r\n var zip_deflate_better = function () {\r\n /* Process the input block. */\r\n while (zip_lookahead != 0 && zip_qhead == null) {\r\n /* Insert the string window[strstart .. strstart+2] in the\r\n * dictionary, and set hash_head to the head of the hash chain:\r\n */\r\n zip_INSERT_STRING();\r\n\r\n /* Find the longest match, discarding those <= prev_length.\r\n */\r\n zip_prev_length = zip_match_length;\r\n zip_prev_match = zip_match_start;\r\n zip_match_length = zip_MIN_MATCH - 1;\r\n\r\n if (zip_hash_head != zip_NIL &&\r\n zip_prev_length < zip_max_lazy_match &&\r\n zip_strstart - zip_hash_head <= zip_MAX_DIST) {\r\n /* To simplify the code, we prevent matches with the string\r\n * of window index 0 (in particular we have to avoid a match\r\n * of the string with itself at the start of the input file).\r\n */\r\n zip_match_length = zip_longest_match(zip_hash_head);\r\n /* longest_match() sets match_start */\r\n if (zip_match_length > zip_lookahead)\r\n zip_match_length = zip_lookahead;\r\n\r\n /* Ignore a length 3 match if it is too distant: */\r\n if (zip_match_length == zip_MIN_MATCH &&\r\n zip_strstart - zip_match_start > zip_TOO_FAR) {\r\n /* If prev_match is also MIN_MATCH, match_start is garbage\r\n * but we will ignore the current match anyway.\r\n */\r\n zip_match_length--;\r\n }\r\n }\r\n /* If there was a match at the previous step and the current\r\n * match is not better, output the previous match:\r\n */\r\n if (zip_prev_length >= zip_MIN_MATCH &&\r\n zip_match_length <= zip_prev_length) {\r\n var flush; // set if current block must be flushed\r\n\r\n //\t check_match(strstart - 1, prev_match, prev_length);\r\n flush = zip_ct_tally(zip_strstart - 1 - zip_prev_match,\r\n zip_prev_length - zip_MIN_MATCH);\r\n\r\n /* Insert in hash table all strings up to the end of the match.\r\n * strstart-1 and strstart are already inserted.\r\n */\r\n zip_lookahead -= zip_prev_length - 1;\r\n zip_prev_length -= 2;\r\n do {\r\n zip_strstart++;\r\n zip_INSERT_STRING();\r\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\r\n * always MIN_MATCH bytes ahead. If lookahead < MIN_MATCH\r\n * these bytes are garbage, but it does not matter since the\r\n * next lookahead bytes will always be emitted as literals.\r\n */\r\n } while (--zip_prev_length != 0);\r\n zip_match_available = 0;\r\n zip_match_length = zip_MIN_MATCH - 1;\r\n zip_strstart++;\r\n if (flush) {\r\n zip_flush_block(0);\r\n zip_block_start = zip_strstart;\r\n }\r\n } else if (zip_match_available != 0) {\r\n /* If there was no match at the previous position, output a\r\n * single literal. If there was a match but the current match\r\n * is longer, truncate the previous match to a single literal.\r\n */\r\n if (zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff)) {\r\n zip_flush_block(0);\r\n zip_block_start = zip_strstart;\r\n }\r\n zip_strstart++;\r\n zip_lookahead--;\r\n } else {\r\n /* There is no previous match to compare with, wait for\r\n * the next step to decide.\r\n */\r\n zip_match_available = 1;\r\n zip_strstart++;\r\n zip_lookahead--;\r\n }\r\n\r\n /* Make sure that we always have enough lookahead, except\r\n * at the end of the input file. We need MAX_MATCH bytes\r\n * for the next match, plus MIN_MATCH bytes to insert the\r\n * string following the next match.\r\n */\r\n while (zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)\r\n zip_fill_window();\r\n }\r\n }\r\n\r\n var zip_init_deflate = function () {\r\n if (zip_eofile)\r\n return;\r\n zip_bi_buf = 0;\r\n zip_bi_valid = 0;\r\n zip_ct_init();\r\n zip_lm_init();\r\n\r\n zip_qhead = null;\r\n zip_outcnt = 0;\r\n zip_outoff = 0;\r\n zip_match_available = 0;\r\n\r\n if (zip_compr_level <= 3) {\r\n zip_prev_length = zip_MIN_MATCH - 1;\r\n zip_match_length = 0;\r\n }\r\n else {\r\n zip_match_length = zip_MIN_MATCH - 1;\r\n zip_match_available = 0;\r\n zip_match_available = 0;\r\n }\r\n\r\n zip_complete = false;\r\n }\r\n\r\n /* ==========================================================================\r\n * Same as above, but achieves better compression. We use a lazy\r\n * evaluation for matches: a match is finally adopted only if there is\r\n * no better match at the next window position.\r\n */\r\n var zip_deflate_internal = function (buff, off, buff_size) {\r\n var n;\r\n\r\n if (!zip_initflag) {\r\n zip_init_deflate();\r\n zip_initflag = true;\r\n if (zip_lookahead == 0) { // empty\r\n zip_complete = true;\r\n return 0;\r\n }\r\n }\r\n\r\n if ((n = zip_qcopy(buff, off, buff_size)) == buff_size)\r\n return buff_size;\r\n\r\n if (zip_complete)\r\n return n;\r\n\r\n if (zip_compr_level <= 3) // optimized for speed\r\n zip_deflate_fast();\r\n else\r\n zip_deflate_better();\r\n if (zip_lookahead == 0) {\r\n if (zip_match_available != 0)\r\n zip_ct_tally(0, zip_window[zip_strstart - 1] & 0xff);\r\n zip_flush_block(1);\r\n zip_complete = true;\r\n }\r\n return n + zip_qcopy(buff, n + off, buff_size - n);\r\n }\r\n\r\n var zip_qcopy = function (buff, off, buff_size) {\r\n var n, i, j;\r\n\r\n n = 0;\r\n while (zip_qhead != null && n < buff_size) {\r\n i = buff_size - n;\r\n if (i > zip_qhead.len)\r\n i = zip_qhead.len;\r\n // System.arraycopy(qhead.ptr, qhead.off, buff, off + n, i);\r\n for (j = 0; j < i; j++)\r\n buff[off + n + j] = zip_qhead.ptr[zip_qhead.off + j];\r\n\r\n zip_qhead.off += i;\r\n zip_qhead.len -= i;\r\n n += i;\r\n if (zip_qhead.len == 0) {\r\n var p;\r\n p = zip_qhead;\r\n zip_qhead = zip_qhead.next;\r\n zip_reuse_queue(p);\r\n }\r\n }\r\n\r\n if (n == buff_size)\r\n return n;\r\n\r\n if (zip_outoff < zip_outcnt) {\r\n i = buff_size - n;\r\n if (i > zip_outcnt - zip_outoff)\r\n i = zip_outcnt - zip_outoff;\r\n // System.arraycopy(outbuf, outoff, buff, off + n, i);\r\n for (j = 0; j < i; j++)\r\n buff[off + n + j] = zip_outbuf[zip_outoff + j];\r\n zip_outoff += i;\r\n n += i;\r\n if (zip_outcnt == zip_outoff)\r\n zip_outcnt = zip_outoff = 0;\r\n }\r\n return n;\r\n }\r\n\r\n /* ==========================================================================\r\n * Allocate the match buffer, initialize the various tables and save the\r\n * location of the internal file attribute (ascii/binary) and method\r\n * (DEFLATE/STORE).\r\n */\r\n var zip_ct_init = function () {\r\n var n;\t// iterates over tree elements\r\n var bits;\t// bit counter\r\n var length;\t// length value\r\n var code;\t// code value\r\n var dist;\t// distance index\r\n\r\n if (zip_static_dtree[0].dl != 0) return; // ct_init already called\r\n\r\n zip_l_desc.dyn_tree = zip_dyn_ltree;\r\n zip_l_desc.static_tree = zip_static_ltree;\r\n zip_l_desc.extra_bits = zip_extra_lbits;\r\n zip_l_desc.extra_base = zip_LITERALS + 1;\r\n zip_l_desc.elems = zip_L_CODES;\r\n zip_l_desc.max_length = zip_MAX_BITS;\r\n zip_l_desc.max_code = 0;\r\n\r\n zip_d_desc.dyn_tree = zip_dyn_dtree;\r\n zip_d_desc.static_tree = zip_static_dtree;\r\n zip_d_desc.extra_bits = zip_extra_dbits;\r\n zip_d_desc.extra_base = 0;\r\n zip_d_desc.elems = zip_D_CODES;\r\n zip_d_desc.max_length = zip_MAX_BITS;\r\n zip_d_desc.max_code = 0;\r\n\r\n zip_bl_desc.dyn_tree = zip_bl_tree;\r\n zip_bl_desc.static_tree = null;\r\n zip_bl_desc.extra_bits = zip_extra_blbits;\r\n zip_bl_desc.extra_base = 0;\r\n zip_bl_desc.elems = zip_BL_CODES;\r\n zip_bl_desc.max_length = zip_MAX_BL_BITS;\r\n zip_bl_desc.max_code = 0;\r\n\r\n // Initialize the mapping length (0..255) -> length code (0..28)\r\n length = 0;\r\n for (code = 0; code < zip_LENGTH_CODES - 1; code++) {\r\n zip_base_length[code] = length;\r\n for (n = 0; n < (1 << zip_extra_lbits[code]) ; n++)\r\n zip_length_code[length++] = code;\r\n }\r\n // Assert (length == 256, \"ct_init: length != 256\");\r\n\r\n /* Note that the length 255 (match length 258) can be represented\r\n * in two different ways: code 284 + 5 bits or code 285, so we\r\n * overwrite length_code[255] to use the best encoding:\r\n */\r\n zip_length_code[length - 1] = code;\r\n\r\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\r\n dist = 0;\r\n for (code = 0 ; code < 16; code++) {\r\n zip_base_dist[code] = dist;\r\n for (n = 0; n < (1 << zip_extra_dbits[code]) ; n++) {\r\n zip_dist_code[dist++] = code;\r\n }\r\n }\r\n // Assert (dist == 256, \"ct_init: dist != 256\");\r\n dist >>= 7; // from now on, all distances are divided by 128\r\n for (; code < zip_D_CODES; code++) {\r\n zip_base_dist[code] = dist << 7;\r\n for (n = 0; n < (1 << (zip_extra_dbits[code] - 7)) ; n++)\r\n zip_dist_code[256 + dist++] = code;\r\n }\r\n // Assert (dist == 256, \"ct_init: 256+dist != 512\");\r\n\r\n // Construct the codes of the static literal tree\r\n for (bits = 0; bits <= zip_MAX_BITS; bits++)\r\n zip_bl_count[bits] = 0;\r\n n = 0;\r\n while (n <= 143) { zip_static_ltree[n++].dl = 8; zip_bl_count[8]++; }\r\n while (n <= 255) { zip_static_ltree[n++].dl = 9; zip_bl_count[9]++; }\r\n while (n <= 279) { zip_static_ltree[n++].dl = 7; zip_bl_count[7]++; }\r\n while (n <= 287) { zip_static_ltree[n++].dl = 8; zip_bl_count[8]++; }\r\n /* Codes 286 and 287 do not exist, but we must include them in the\r\n * tree construction to get a canonical Huffman tree (longest code\r\n * all ones)\r\n */\r\n zip_gen_codes(zip_static_ltree, zip_L_CODES + 1);\r\n\r\n /* The static distance tree is trivial: */\r\n for (n = 0; n < zip_D_CODES; n++) {\r\n zip_static_dtree[n].dl = 5;\r\n zip_static_dtree[n].fc = zip_bi_reverse(n, 5);\r\n }\r\n\r\n // Initialize the first block of the first file:\r\n zip_init_block();\r\n }\r\n\r\n /* ==========================================================================\r\n * Initialize a new block.\r\n */\r\n var zip_init_block = function () {\r\n var n; // iterates over tree elements\r\n\r\n // Initialize the trees.\r\n for (n = 0; n < zip_L_CODES; n++) zip_dyn_ltree[n].fc = 0;\r\n for (n = 0; n < zip_D_CODES; n++) zip_dyn_dtree[n].fc = 0;\r\n for (n = 0; n < zip_BL_CODES; n++) zip_bl_tree[n].fc = 0;\r\n\r\n zip_dyn_ltree[zip_END_BLOCK].fc = 1;\r\n zip_opt_len = zip_static_len = 0;\r\n zip_last_lit = zip_last_dist = zip_last_flags = 0;\r\n zip_flags = 0;\r\n zip_flag_bit = 1;\r\n }\r\n\r\n /* ==========================================================================\r\n * Restore the heap property by moving down the tree starting at node k,\r\n * exchanging a node with the smallest of its two sons if necessary, stopping\r\n * when the heap property is re-established (each father smaller than its\r\n * two sons).\r\n */\r\n var zip_pqdownheap = function (\r\n tree,\t// the tree to restore\r\n k) {\t// node to move down\r\n var v = zip_heap[k];\r\n var j = k << 1;\t// left son of k\r\n\r\n while (j <= zip_heap_len) {\r\n // Set j to the smallest of the two sons:\r\n if (j < zip_heap_len &&\r\n zip_SMALLER(tree, zip_heap[j + 1], zip_heap[j]))\r\n j++;\r\n\r\n // Exit if v is smaller than both sons\r\n if (zip_SMALLER(tree, v, zip_heap[j]))\r\n break;\r\n\r\n // Exchange v with the smallest son\r\n zip_heap[k] = zip_heap[j];\r\n k = j;\r\n\r\n // And continue down the tree, setting j to the left son of k\r\n j <<= 1;\r\n }\r\n zip_heap[k] = v;\r\n }\r\n\r\n /* ==========================================================================\r\n * Compute the optimal bit lengths for a tree and update the total bit length\r\n * for the current block.\r\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\r\n * above are the tree nodes sorted by increasing frequency.\r\n * OUT assertions: the field len is set to the optimal bit length, the\r\n * array bl_count contains the frequencies for each bit length.\r\n * The length opt_len is updated; static_len is also updated if stree is\r\n * not null.\r\n */\r\n var zip_gen_bitlen = function (desc) { // the tree descriptor\r\n var tree = desc.dyn_tree;\r\n var extra = desc.extra_bits;\r\n var base = desc.extra_base;\r\n var max_code = desc.max_code;\r\n var max_length = desc.max_length;\r\n var stree = desc.static_tree;\r\n var h;\t\t// heap index\r\n var n, m;\t\t// iterate over the tree elements\r\n var bits;\t\t// bit length\r\n var xbits;\t\t// extra bits\r\n var f;\t\t// frequency\r\n var overflow = 0;\t// number of elements with bit length too large\r\n\r\n for (bits = 0; bits <= zip_MAX_BITS; bits++)\r\n zip_bl_count[bits] = 0;\r\n\r\n /* In a first pass, compute the optimal bit lengths (which may\r\n * overflow in the case of the bit length tree).\r\n */\r\n tree[zip_heap[zip_heap_max]].dl = 0; // root of the heap\r\n\r\n for (h = zip_heap_max + 1; h < zip_HEAP_SIZE; h++) {\r\n n = zip_heap[h];\r\n bits = tree[tree[n].dl].dl + 1;\r\n if (bits > max_length) {\r\n bits = max_length;\r\n overflow++;\r\n }\r\n tree[n].dl = bits;\r\n // We overwrite tree[n].dl which is no longer needed\r\n\r\n if (n > max_code)\r\n continue; // not a leaf node\r\n\r\n zip_bl_count[bits]++;\r\n xbits = 0;\r\n if (n >= base)\r\n xbits = extra[n - base];\r\n f = tree[n].fc;\r\n zip_opt_len += f * (bits + xbits);\r\n if (stree != null)\r\n zip_static_len += f * (stree[n].dl + xbits);\r\n }\r\n if (overflow == 0)\r\n return;\r\n\r\n // This happens for example on obj2 and pic of the Calgary corpus\r\n\r\n // Find the first bit length which could increase:\r\n do {\r\n bits = max_length - 1;\r\n while (zip_bl_count[bits] == 0)\r\n bits--;\r\n zip_bl_count[bits]--;\t\t// move one leaf down the tree\r\n zip_bl_count[bits + 1] += 2;\t// move one overflow item as its brother\r\n zip_bl_count[max_length]--;\r\n /* The brother of the overflow item also moves one step up,\r\n * but this does not affect bl_count[max_length]\r\n */\r\n overflow -= 2;\r\n } while (overflow > 0);\r\n\r\n /* Now recompute all bit lengths, scanning in increasing frequency.\r\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\r\n * lengths instead of fixing only the wrong ones. This idea is taken\r\n * from 'ar' written by Haruhiko Okumura.)\r\n */\r\n for (bits = max_length; bits != 0; bits--) {\r\n n = zip_bl_count[bits];\r\n while (n != 0) {\r\n m = zip_heap[--h];\r\n if (m > max_code)\r\n continue;\r\n if (tree[m].dl != bits) {\r\n zip_opt_len += (bits - tree[m].dl) * tree[m].fc;\r\n tree[m].fc = bits;\r\n }\r\n n--;\r\n }\r\n }\r\n }\r\n\r\n /* ==========================================================================\r\n * Generate the codes for a given tree and bit counts (which need not be\r\n * optimal).\r\n * IN assertion: the array bl_count contains the bit length statistics for\r\n * the given tree and the field len is set for all tree elements.\r\n * OUT assertion: the field code is set for all tree elements of non\r\n * zero code length.\r\n */\r\n var zip_gen_codes = function (tree,\t// the tree to decorate\r\n max_code) {\t// largest code with non zero frequency\r\n var next_code = new Array(zip_MAX_BITS + 1); // next code value for each bit length\r\n var code = 0;\t\t// running code value\r\n var bits;\t\t\t// bit index\r\n var n;\t\t\t// code index\r\n\r\n /* The distribution counts are first used to generate the code values\r\n * without bit reversal.\r\n */\r\n for (bits = 1; bits <= zip_MAX_BITS; bits++) {\r\n code = ((code + zip_bl_count[bits - 1]) << 1);\r\n next_code[bits] = code;\r\n }\r\n\r\n /* Check that the bit counts in bl_count are consistent. The last code\r\n * must be all ones.\r\n */\r\n // Assert (code + encoder->bl_count[MAX_BITS]-1 == (1<> 1; n >= 1; n--)\r\n zip_pqdownheap(tree, n);\r\n\r\n /* Construct the Huffman tree by repeatedly combining the least two\r\n * frequent nodes.\r\n */\r\n do {\r\n n = zip_heap[zip_SMALLEST];\r\n zip_heap[zip_SMALLEST] = zip_heap[zip_heap_len--];\r\n zip_pqdownheap(tree, zip_SMALLEST);\r\n\r\n m = zip_heap[zip_SMALLEST]; // m = node of next least frequency\r\n\r\n // keep the nodes sorted by frequency\r\n zip_heap[--zip_heap_max] = n;\r\n zip_heap[--zip_heap_max] = m;\r\n\r\n // Create a new node father of n and m\r\n tree[node].fc = tree[n].fc + tree[m].fc;\r\n //\tdepth[node] = (char)(MAX(depth[n], depth[m]) + 1);\r\n if (zip_depth[n] > zip_depth[m] + 1)\r\n zip_depth[node] = zip_depth[n];\r\n else\r\n zip_depth[node] = zip_depth[m] + 1;\r\n tree[n].dl = tree[m].dl = node;\r\n\r\n // and insert the new node in the heap\r\n zip_heap[zip_SMALLEST] = node++;\r\n zip_pqdownheap(tree, zip_SMALLEST);\r\n\r\n } while (zip_heap_len >= 2);\r\n\r\n zip_heap[--zip_heap_max] = zip_heap[zip_SMALLEST];\r\n\r\n /* At this point, the fields freq and dad are set. We can now\r\n * generate the bit lengths.\r\n */\r\n zip_gen_bitlen(desc);\r\n\r\n // The field len is now set, we can generate the bit codes\r\n zip_gen_codes(tree, max_code);\r\n }\r\n\r\n /* ==========================================================================\r\n * Scan a literal or distance tree to determine the frequencies of the codes\r\n * in the bit length tree. Updates opt_len to take into account the repeat\r\n * counts. (The contribution of the bit length codes will be added later\r\n * during the construction of bl_tree.)\r\n */\r\n var zip_scan_tree = function (tree,// the tree to be scanned\r\n max_code) { // and its largest code of non zero frequency\r\n var n;\t\t\t// iterates over all tree elements\r\n var prevlen = -1;\t\t// last emitted length\r\n var curlen;\t\t\t// length of current code\r\n var nextlen = tree[0].dl;\t// length of next code\r\n var count = 0;\t\t// repeat count of the current code\r\n var max_count = 7;\t\t// max repeat count\r\n var min_count = 4;\t\t// min repeat count\r\n\r\n if (nextlen == 0) {\r\n max_count = 138;\r\n min_count = 3;\r\n }\r\n tree[max_code + 1].dl = 0xffff; // guard\r\n\r\n for (n = 0; n <= max_code; n++) {\r\n curlen = nextlen;\r\n nextlen = tree[n + 1].dl;\r\n if (++count < max_count && curlen == nextlen)\r\n continue;\r\n else if (count < min_count)\r\n zip_bl_tree[curlen].fc += count;\r\n else if (curlen != 0) {\r\n if (curlen != prevlen)\r\n zip_bl_tree[curlen].fc++;\r\n zip_bl_tree[zip_REP_3_6].fc++;\r\n } else if (count <= 10)\r\n zip_bl_tree[zip_REPZ_3_10].fc++;\r\n else\r\n zip_bl_tree[zip_REPZ_11_138].fc++;\r\n count = 0; prevlen = curlen;\r\n if (nextlen == 0) {\r\n max_count = 138;\r\n min_count = 3;\r\n } else if (curlen == nextlen) {\r\n max_count = 6;\r\n min_count = 3;\r\n } else {\r\n max_count = 7;\r\n min_count = 4;\r\n }\r\n }\r\n }\r\n\r\n /* ==========================================================================\r\n * Send a literal or distance tree in compressed form, using the codes in\r\n * bl_tree.\r\n */\r\n var zip_send_tree = function (tree, // the tree to be scanned\r\n max_code) { // and its largest code of non zero frequency\r\n var n;\t\t\t// iterates over all tree elements\r\n var prevlen = -1;\t\t// last emitted length\r\n var curlen;\t\t\t// length of current code\r\n var nextlen = tree[0].dl;\t// length of next code\r\n var count = 0;\t\t// repeat count of the current code\r\n var max_count = 7;\t\t// max repeat count\r\n var min_count = 4;\t\t// min repeat count\r\n\r\n /* tree[max_code+1].dl = -1; */ /* guard already set */\r\n if (nextlen == 0) {\r\n max_count = 138;\r\n min_count = 3;\r\n }\r\n\r\n for (n = 0; n <= max_code; n++) {\r\n curlen = nextlen;\r\n nextlen = tree[n + 1].dl;\r\n if (++count < max_count && curlen == nextlen) {\r\n continue;\r\n } else if (count < min_count) {\r\n do { zip_SEND_CODE(curlen, zip_bl_tree); } while (--count != 0);\r\n } else if (curlen != 0) {\r\n if (curlen != prevlen) {\r\n zip_SEND_CODE(curlen, zip_bl_tree);\r\n count--;\r\n }\r\n // Assert(count >= 3 && count <= 6, \" 3_6?\");\r\n zip_SEND_CODE(zip_REP_3_6, zip_bl_tree);\r\n zip_send_bits(count - 3, 2);\r\n } else if (count <= 10) {\r\n zip_SEND_CODE(zip_REPZ_3_10, zip_bl_tree);\r\n zip_send_bits(count - 3, 3);\r\n } else {\r\n zip_SEND_CODE(zip_REPZ_11_138, zip_bl_tree);\r\n zip_send_bits(count - 11, 7);\r\n }\r\n count = 0;\r\n prevlen = curlen;\r\n if (nextlen == 0) {\r\n max_count = 138;\r\n min_count = 3;\r\n } else if (curlen == nextlen) {\r\n max_count = 6;\r\n min_count = 3;\r\n } else {\r\n max_count = 7;\r\n min_count = 4;\r\n }\r\n }\r\n }\r\n\r\n /* ==========================================================================\r\n * Construct the Huffman tree for the bit lengths and return the index in\r\n * bl_order of the last bit length code to send.\r\n */\r\n var zip_build_bl_tree = function () {\r\n var max_blindex; // index of last bit length code of non zero freq\r\n\r\n // Determine the bit length frequencies for literal and distance trees\r\n zip_scan_tree(zip_dyn_ltree, zip_l_desc.max_code);\r\n zip_scan_tree(zip_dyn_dtree, zip_d_desc.max_code);\r\n\r\n // Build the bit length tree:\r\n zip_build_tree(zip_bl_desc);\r\n /* opt_len now includes the length of the tree representations, except\r\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\r\n */\r\n\r\n /* Determine the number of bit length codes to send. The pkzip format\r\n * requires that at least 4 bit length codes be sent. (appnote.txt says\r\n * 3 but the actual value used is 4.)\r\n */\r\n for (max_blindex = zip_BL_CODES - 1; max_blindex >= 3; max_blindex--) {\r\n if (zip_bl_tree[zip_bl_order[max_blindex]].dl != 0) break;\r\n }\r\n /* Update opt_len to include the bit length tree and counts */\r\n zip_opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\r\n // Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\r\n //\t encoder->opt_len, encoder->static_len));\r\n\r\n return max_blindex;\r\n }\r\n\r\n /* ==========================================================================\r\n * Send the header for a block using dynamic Huffman trees: the counts, the\r\n * lengths of the bit length codes, the literal tree and the distance tree.\r\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\r\n */\r\n var zip_send_all_trees = function (lcodes, dcodes, blcodes) { // number of codes for each tree\r\n var rank; // index in bl_order\r\n\r\n // Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\r\n // Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\r\n //\t \"too many codes\");\r\n // Tracev((stderr, \"\\nbl counts: \"));\r\n zip_send_bits(lcodes - 257, 5); // not +255 as stated in appnote.txt\r\n zip_send_bits(dcodes - 1, 5);\r\n zip_send_bits(blcodes - 4, 4); // not -3 as stated in appnote.txt\r\n for (rank = 0; rank < blcodes; rank++) {\r\n // Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\r\n zip_send_bits(zip_bl_tree[zip_bl_order[rank]].dl, 3);\r\n }\r\n\r\n // send the literal tree\r\n zip_send_tree(zip_dyn_ltree, lcodes - 1);\r\n\r\n // send the distance tree\r\n zip_send_tree(zip_dyn_dtree, dcodes - 1);\r\n }\r\n\r\n /* ==========================================================================\r\n * Determine the best encoding for the current block: dynamic trees, static\r\n * trees or store, and output the encoded block to the zip file.\r\n */\r\n var zip_flush_block = function (eof) { // true if this is the last block for a file\r\n var opt_lenb, static_lenb; // opt_len and static_len in bytes\r\n var max_blindex;\t// index of last bit length code of non zero freq\r\n var stored_len;\t// length of input block\r\n\r\n stored_len = zip_strstart - zip_block_start;\r\n zip_flag_buf[zip_last_flags] = zip_flags; // Save the flags for the last 8 items\r\n\r\n // Construct the literal and distance trees\r\n zip_build_tree(zip_l_desc);\r\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\",\r\n //\t encoder->opt_len, encoder->static_len));\r\n\r\n zip_build_tree(zip_d_desc);\r\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\",\r\n //\t encoder->opt_len, encoder->static_len));\r\n /* At this point, opt_len and static_len are the total bit lengths of\r\n * the compressed block data, excluding the tree representations.\r\n */\r\n\r\n /* Build the bit length tree for the above two trees, and get the index\r\n * in bl_order of the last bit length code to send.\r\n */\r\n max_blindex = zip_build_bl_tree();\r\n\r\n // Determine the best encoding. Compute first the block length in bytes\r\n opt_lenb = (zip_opt_len + 3 + 7) >> 3;\r\n static_lenb = (zip_static_len + 3 + 7) >> 3;\r\n\r\n // Trace((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u dist %u \",\r\n //\t opt_lenb, encoder->opt_len,\r\n //\t static_lenb, encoder->static_len, stored_len,\r\n //\t encoder->last_lit, encoder->last_dist));\r\n\r\n if (static_lenb <= opt_lenb)\r\n opt_lenb = static_lenb;\r\n if (stored_len + 4 <= opt_lenb // 4: two words for the lengths\r\n && zip_block_start >= 0) {\r\n var i;\r\n\r\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\r\n * Otherwise we can't have processed more than WSIZE input bytes since\r\n * the last block flush, because compression would have been\r\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\r\n * transform a block into a stored block.\r\n */\r\n zip_send_bits((zip_STORED_BLOCK << 1) + eof, 3); /* send block type */\r\n zip_bi_windup();\t\t /* align on byte boundary */\r\n zip_put_short(stored_len);\r\n zip_put_short(~stored_len);\r\n\r\n // copy block\r\n /*\r\n p = &window[block_start];\r\n for(i = 0; i < stored_len; i++)\r\n put_byte(p[i]);\r\n */\r\n for (i = 0; i < stored_len; i++)\r\n zip_put_byte(zip_window[zip_block_start + i]);\r\n\r\n } else if (static_lenb == opt_lenb) {\r\n zip_send_bits((zip_STATIC_TREES << 1) + eof, 3);\r\n zip_compress_block(zip_static_ltree, zip_static_dtree);\r\n } else {\r\n zip_send_bits((zip_DYN_TREES << 1) + eof, 3);\r\n zip_send_all_trees(zip_l_desc.max_code + 1,\r\n zip_d_desc.max_code + 1,\r\n max_blindex + 1);\r\n zip_compress_block(zip_dyn_ltree, zip_dyn_dtree);\r\n }\r\n\r\n zip_init_block();\r\n\r\n if (eof != 0)\r\n zip_bi_windup();\r\n }\r\n\r\n /* ==========================================================================\r\n * Save the match info and tally the frequency counts. Return true if\r\n * the current block must be flushed.\r\n */\r\n var zip_ct_tally = function (\r\n dist, // distance of matched string\r\n lc) { // match length-MIN_MATCH or unmatched char (if dist==0)\r\n zip_l_buf[zip_last_lit++] = lc;\r\n if (dist == 0) {\r\n // lc is the unmatched char\r\n zip_dyn_ltree[lc].fc++;\r\n } else {\r\n // Here, lc is the match length - MIN_MATCH\r\n dist--;\t\t // dist = match distance - 1\r\n // Assert((ush)dist < (ush)MAX_DIST &&\r\n //\t (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\r\n //\t (ush)D_CODE(dist) < (ush)D_CODES, \"ct_tally: bad match\");\r\n\r\n zip_dyn_ltree[zip_length_code[lc] + zip_LITERALS + 1].fc++;\r\n zip_dyn_dtree[zip_D_CODE(dist)].fc++;\r\n\r\n zip_d_buf[zip_last_dist++] = dist;\r\n zip_flags |= zip_flag_bit;\r\n }\r\n zip_flag_bit <<= 1;\r\n\r\n // Output the flags if they fill a byte\r\n if ((zip_last_lit & 7) == 0) {\r\n zip_flag_buf[zip_last_flags++] = zip_flags;\r\n zip_flags = 0;\r\n zip_flag_bit = 1;\r\n }\r\n // Try to guess if it is profitable to stop the current block here\r\n if (zip_compr_level > 2 && (zip_last_lit & 0xfff) == 0) {\r\n // Compute an upper bound for the compressed length\r\n var out_length = zip_last_lit * 8;\r\n var in_length = zip_strstart - zip_block_start;\r\n var dcode;\r\n\r\n for (dcode = 0; dcode < zip_D_CODES; dcode++) {\r\n out_length += zip_dyn_dtree[dcode].fc * (5 + zip_extra_dbits[dcode]);\r\n }\r\n out_length >>= 3;\r\n // Trace((stderr,\"\\nlast_lit %u, last_dist %u, in %ld, out ~%ld(%ld%%) \",\r\n //\t encoder->last_lit, encoder->last_dist, in_length, out_length,\r\n //\t 100L - out_length*100L/in_length));\r\n if (zip_last_dist < parseInt(zip_last_lit / 2) &&\r\n out_length < parseInt(in_length / 2))\r\n return true;\r\n }\r\n return (zip_last_lit == zip_LIT_BUFSIZE - 1 ||\r\n zip_last_dist == zip_DIST_BUFSIZE);\r\n /* We avoid equality with LIT_BUFSIZE because of wraparound at 64K\r\n * on 16 bit machines and because stored blocks are restricted to\r\n * 64K-1 bytes.\r\n */\r\n }\r\n\r\n /* ==========================================================================\r\n * Send the block data compressed using the given Huffman trees\r\n */\r\n var zip_compress_block = function (\r\n ltree,\t// literal tree\r\n dtree) {\t// distance tree\r\n var dist;\t\t// distance of matched string\r\n var lc;\t\t// match length or unmatched char (if dist == 0)\r\n var lx = 0;\t\t// running index in l_buf\r\n var dx = 0;\t\t// running index in d_buf\r\n var fx = 0;\t\t// running index in flag_buf\r\n var flag = 0;\t// current flags\r\n var code;\t\t// the code to send\r\n var extra;\t\t// number of extra bits to send\r\n\r\n if (zip_last_lit != 0) do {\r\n if ((lx & 7) == 0)\r\n flag = zip_flag_buf[fx++];\r\n lc = zip_l_buf[lx++] & 0xff;\r\n if ((flag & 1) == 0) {\r\n zip_SEND_CODE(lc, ltree); /* send a literal byte */\r\n //\tTracecv(isgraph(lc), (stderr,\" '%c' \", lc));\r\n } else {\r\n // Here, lc is the match length - MIN_MATCH\r\n code = zip_length_code[lc];\r\n zip_SEND_CODE(code + zip_LITERALS + 1, ltree); // send the length code\r\n extra = zip_extra_lbits[code];\r\n if (extra != 0) {\r\n lc -= zip_base_length[code];\r\n zip_send_bits(lc, extra); // send the extra length bits\r\n }\r\n dist = zip_d_buf[dx++];\r\n // Here, dist is the match distance - 1\r\n code = zip_D_CODE(dist);\r\n //\tAssert (code < D_CODES, \"bad d_code\");\r\n\r\n zip_SEND_CODE(code, dtree);\t // send the distance code\r\n extra = zip_extra_dbits[code];\r\n if (extra != 0) {\r\n dist -= zip_base_dist[code];\r\n zip_send_bits(dist, extra); // send the extra distance bits\r\n }\r\n } // literal or match pair ?\r\n flag >>= 1;\r\n } while (lx < zip_last_lit);\r\n\r\n zip_SEND_CODE(zip_END_BLOCK, ltree);\r\n }\r\n\r\n /* ==========================================================================\r\n * Send a value on a given number of bits.\r\n * IN assertion: length <= 16 and value fits in length bits.\r\n */\r\n var zip_Buf_size = 16; // bit size of bi_buf\r\n var zip_send_bits = function (\r\n value,\t// value to send\r\n length) {\t// number of bits\r\n /* If not enough room in bi_buf, use (valid) bits from bi_buf and\r\n * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))\r\n * unused bits in value.\r\n */\r\n if (zip_bi_valid > zip_Buf_size - length) {\r\n zip_bi_buf |= (value << zip_bi_valid);\r\n zip_put_short(zip_bi_buf);\r\n zip_bi_buf = (value >> (zip_Buf_size - zip_bi_valid));\r\n zip_bi_valid += length - zip_Buf_size;\r\n } else {\r\n zip_bi_buf |= value << zip_bi_valid;\r\n zip_bi_valid += length;\r\n }\r\n }\r\n\r\n /* ==========================================================================\r\n * Reverse the first len bits of a code, using straightforward code (a faster\r\n * method would use a table)\r\n * IN assertion: 1 <= len <= 15\r\n */\r\n var zip_bi_reverse = function (\r\n code,\t// the value to invert\r\n len) {\t// its bit length\r\n var res = 0;\r\n do {\r\n res |= code & 1;\r\n code >>= 1;\r\n res <<= 1;\r\n } while (--len > 0);\r\n return res >> 1;\r\n }\r\n\r\n /* ==========================================================================\r\n * Write out any remaining bits in an incomplete byte.\r\n */\r\n var zip_bi_windup = function () {\r\n if (zip_bi_valid > 8) {\r\n zip_put_short(zip_bi_buf);\r\n } else if (zip_bi_valid > 0) {\r\n zip_put_byte(zip_bi_buf);\r\n }\r\n zip_bi_buf = 0;\r\n zip_bi_valid = 0;\r\n }\r\n\r\n var zip_qoutbuf = function () {\r\n if (zip_outcnt != 0) {\r\n var q, i;\r\n q = zip_new_queue();\r\n if (zip_qhead == null)\r\n zip_qhead = zip_qtail = q;\r\n else\r\n zip_qtail = zip_qtail.next = q;\r\n q.len = zip_outcnt - zip_outoff;\r\n // System.arraycopy(zip_outbuf, zip_outoff, q.ptr, 0, q.len);\r\n for (i = 0; i < q.len; i++)\r\n q.ptr[i] = zip_outbuf[zip_outoff + i];\r\n zip_outcnt = zip_outoff = 0;\r\n }\r\n }\r\n\r\n var zip_deflate = function (str, level) {\r\n var i, j;\r\n\r\n zip_deflate_data = str;\r\n zip_deflate_pos = 0;\r\n if (typeof level == \"undefined\")\r\n level = zip_DEFAULT_LEVEL;\r\n zip_deflate_start(level);\r\n\r\n var buff = new Array(1024);\r\n var aout = [];\r\n while ((i = zip_deflate_internal(buff, 0, buff.length)) > 0) {\r\n var cbuf = new Array(i);\r\n for (j = 0; j < i; j++) {\r\n cbuf[j] = String.fromCharCode(buff[j]);\r\n }\r\n aout[aout.length] = cbuf.join(\"\");\r\n }\r\n zip_deflate_data = null; // G.C.\r\n return aout.join(\"\");\r\n }\r\n\r\n if (!ctx.RawDeflate) ctx.RawDeflate = {};\r\n ctx.RawDeflate.deflate = zip_deflate;\r\n\r\n})(window);\n","'use strict';\r\n\r\nwindow.taTools = {};\r\n\r\nangular\r\n .module('exhibitorPortalLoginApp', [\r\n 'mm.foundation',\r\n 'ngSanitize',\r\n 'ui.router',\r\n 'angular-chartist',\r\n 'ngCsv',\r\n 'angular-loading-bar',\r\n 'angularFileUpload',\r\n 'ngMessages',\r\n 'ngAria',\r\n 'ngTouch',\r\n 'ipCookie',\r\n 'swapTemplates',\r\n 'ngModal',\r\n require('textangularjs'),\r\n 'sharedModule'\r\n ])\r\n .config(function ($stateProvider, $urlRouterProvider, $locationProvider) {\r\n 'ngInject'\r\n $urlRouterProvider\r\n .when('', '/')\r\n .otherwise('/oops');\r\n\r\n // AngularJS 1.6 changed the default hash prefix from empty string to '!'... reverting here so as not to screw up routes.\r\n $locationProvider.hashPrefix('');\r\n\r\n $stateProvider\r\n .state('login', {\r\n abstract: true,\r\n template: '',\r\n controller: function () {\r\n 'ngInject'\r\n\r\n }\r\n })\r\n .state('login.landing', {\r\n url: '/',\r\n templateUrl: 'views/Login/landing.html',\r\n controller: 'LoginCtrl',\r\n controllerAs: 'Login',\r\n data: {\r\n pageTitle: 'Login Landing',\r\n feedbackName: 'LoginLanding'\r\n }\r\n })\r\n .state('login.accountSearch', {\r\n url: '/accountSearch',\r\n templateUrl: 'views/Login/accountSearch.html',\r\n controller: 'AccountCtrl',\r\n controllerAs: 'Account',\r\n params: {\r\n forgotPassword: false\r\n },\r\n data: {\r\n pageTitle: 'Account Search',\r\n feedbackName: 'LoginAccountSearch'\r\n }\r\n })\r\n .state('login.changePassword', {\r\n url: '/changePassword',\r\n templateUrl: 'views/Login/changePassword.html',\r\n controller: 'ChangePwdCtrl',\r\n controllerAs: 'Pwd',\r\n data: {\r\n pageTitle: 'Change Password',\r\n feebackName: 'ChangePassword'\r\n }\r\n })\r\n .state('login.companyLogin', {\r\n url: '/companyLogin',\r\n templateUrl: 'views/Login/companyLogin.html',\r\n controller: 'CompanyLoginCtrl',\r\n controllerAs: 'CompLogin',\r\n data: {\r\n pageTitle: 'Company Login',\r\n feedbackName: 'CompanyLogin'\r\n }\r\n });\r\n })\r\n .config(function ($provide) {\r\n 'ngInject'\r\n $provide.value('EXSConfig', angular.copy(window.EXSConfig));\r\n $provide.value('EnvironmentConfig', angular.copy(window.EnvironmentConfig));\r\n $provide.value('SHOW', angular.copy(window.SHOW));\r\n })\r\n .config(function (cfpLoadingBarProvider) {\r\n 'ngInject'\r\n // set loading bar preferences\r\n cfpLoadingBarProvider.includeSpinner = false;\r\n // only show the loading bar if the resolve takes more than 1 second. this prevents the user\r\n // from seeing the loading bar flash on the screen when the resolve completes quickly.\r\n // cfpLoadingBarProvider.latencyThreshold = 1000;\r\n // if(EnvironmentConfig.InAppPurchase)\r\n // \tcfpLoadingBarProvider.includeBar = false;\r\n })\r\n .run(function ($rootScope, $location, $interval, $timeout, ipCookie, EnvironmentConfig, $state, $window) {\r\n 'ngInject'\r\n var utm = ipCookie('EPUTM');\r\n\r\n if (window.dataLayer && utm) {\r\n dataLayer.push({ event: 'utmChange', utm: utm });\r\n }\r\n\r\n $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams, error) {\r\n $rootScope.previousState = fromState.name;\r\n $rootScope.currentState = toState.name;\r\n\r\n $timeout(function () {\r\n $rootScope.pageTitle = (toState.data && toState.data.pageTitle) ? toState.data.pageTitle + ' | Exhibitor Portal' : '';\r\n\r\n //google analytics tracking\r\n if (window.dataLayer && $rootScope.pageTitle) {\r\n const pageViewUrl = () => {\r\n // Do not include the specific ID(s) in the URL sent. Construct the URL from the current location\r\n // as well as the state, if applicable.\r\n let pageUrl = $window.location.pathname;\r\n\r\n // Trim trailing slash at the end\r\n if (pageUrl.slice(-1) === '/')\r\n pageUrl = pageUrl.slice(0, -1);\r\n\r\n if ($state && $state.$current && $state.$current.url && $state.$current.url.source) {\r\n // Including the '#' character that is normally in the URL seems to chop off the rest of\r\n // the URL for the data collection.\r\n pageUrl += $state.$current.url.source;\r\n }\r\n\r\n if (['', '/'].includes(pageUrl))\r\n pageUrl = '/home/login'\r\n\r\n return pageUrl;\r\n };\r\n\r\n window.dataLayer.push({\r\n event: 'ngRouteChange',\r\n attributes: {\r\n route: pageViewUrl(),\r\n pageTitle: $rootScope.pageTitle\r\n }\r\n });\r\n }\r\n\r\n // Experient feedback widget\r\n if (ExperientFeedback) {\r\n // Going to set the location of the widget to the state name unless a specific name is given for it\r\n // in the state's data object\r\n var location = toState.name;\r\n var data = toState.data;\r\n if (data && data.feedbackName) {\r\n location = data.feedbackName;\r\n } else {\r\n location = location.replace('login.', '');\r\n var statePath = location.split('.');\r\n if (statePath && statePath.length > 1) {\r\n location = '';\r\n for (var i = 0; i < statePath.length; i++) {\r\n location = location + (statePath[i].charAt(0).toUpperCase() + statePath[i].slice(1));\r\n }\r\n } else {\r\n location = location.charAt(0).toUpperCase() + location.slice(1);\r\n }\r\n }\r\n\r\n window.exfb = new ExperientFeedback({\r\n Application: \"ExhibitorPortal\",\r\n Location: location,\r\n Event: '',\r\n UserId: '',\r\n UserType: \"EXSEnterprise.Contact\",\r\n QuestionText: \"Is this page easy to use?\"\r\n }, \"exfb-content\");\r\n }\r\n });\r\n });\r\n });\r\n","'use strict';\r\n\r\n\r\nangular.module('ngCart.directives', [])\r\n\r\n\r\n .controller('CartController', ['$scope', 'ngCart', function ($scope, ngCart) {\r\n $scope.ngCart = ngCart;\r\n }])\r\n\r\n .directive('addtocart', ['ngCart', function (ngCart) {\r\n return {\r\n restrict: 'E',\r\n controller: 'CartController',\r\n scope: {\r\n id: '@',\r\n name: '@',\r\n quantity: '@',\r\n price: '@',\r\n discount:'=',\r\n data: '=?',\r\n max: '@',\r\n success: '=?'\r\n },\r\n transclude: true,\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/shared/addtocart.html',\r\n link: function (scope, element, attrs) {\r\n scope.attrs = attrs;\r\n scope.inCart = function () {\r\n return ngCart.itemInCart(attrs.id);\r\n };\r\n scope.addItem = function(id, name, price, quantity, discount, data, maxTransactionQuantity) {\r\n var item = ngCart.addItem(id, name, price, quantity, discount, data, maxTransactionQuantity);\r\n\r\n if(scope.success) {\r\n scope.success(item, element);\r\n }\r\n };\r\n }\r\n };\r\n }])\r\n\r\n .directive('cart', ['$q', '$state', '$rootScope', 'ngCart', 'EnvironmentConfig', function ($q, $state, $rootScope, ngCart, EnvironmentConfig) {\r\n return {\r\n restrict: 'E',\r\n controller: 'CartController',\r\n scope: {\r\n errors: '=?',\r\n showCoupon: '=?',\r\n showUpsell: '=?',\r\n upsellSwapProduct: '=?',\r\n },\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/shared/cart.html',\r\n link: function (scope, element, attrs) {\r\n scope.readonly = 'readonly' in attrs;\r\n scope.calculating = false;\r\n scope.environmentConfig = EnvironmentConfig;\r\n\r\n scope.showCoupon = true; // TBD: need to figure out how this can be set\r\n scope.couponCode = ngCart.getCouponCode();\r\n\r\n scope.go = function (route, data) {\r\n $state.go(route, angular.extend({ setSubmitted: true }, data));\r\n };\r\n\r\n function calc(validateCoupon) {\r\n scope.calculating = true;\r\n\r\n $q.all([\r\n ngCart.getSubTotal(),\r\n ngCart.getCartSummary(validateCoupon),\r\n ])\r\n .then(function (results) {\r\n results.reduce(function (accum, summary) {\r\n scope.hasAddress = summary.addressId > 0;\r\n scope.couponCode = summary.CouponCode;\r\n scope.couponName = summary.CouponName;\r\n scope.totalCost = summary.TotalBalance;\r\n scope.totalPrice = summary.TotalPrice;\r\n scope.totalDiscountOther = summary.TotalDiscountOther;\r\n scope.totalDiscountCoupon = summary.TotalDiscountCoupon;\r\n scope.totalFees = summary.TotalFees;\r\n scope.totalTax = summary.TotalTax;\r\n });\r\n\r\n scope.calculating = false;\r\n });\r\n\r\n //ngCart.getDiscountTotal().then(function (result) {\r\n // scope.discountTotal = result;\r\n //});\r\n }\r\n\r\n $rootScope.$on('ngCart:change', function () {\r\n calc(false);\r\n });\r\n\r\n calc(false);\r\n\r\n scope.addSwapActivations = function () {\r\n var p = scope.upsellSwapProduct;\r\n\r\n var discount = {\r\n id: p.ProductDiscountID,\r\n limit: p.MaxAvailableQty,\r\n max: p.MaxDiscountsPerShow,\r\n min: p.MinQualifyingQty,\r\n price: p.DiscountedUnitPrice\r\n };\r\n\r\n ngCart.addItem(p.ProductPriceID, p.ProductName, p.UnitPrice, 1, discount, { thumbnail: p.ProductImage, note: p.MoreInfoTypeCode, productCode: p.ProductCode }, 0);\r\n scope.showUpsell = false;\r\n return false;\r\n }\r\n\r\n scope.applyCoupon = function (couponCode) {\r\n var oldCouponCode = ngCart.getCouponCode();\r\n ngCart.setCouponCode(couponCode);\r\n scope.couponCode = couponCode;\r\n calc(true);\r\n if (oldCouponCode != couponCode) {\r\n $rootScope.$broadcast('ngCart:change', {});\r\n }\r\n return false;\r\n }\r\n }\r\n };\r\n }])\r\n\r\n .directive('summary', ['$rootScope', 'ngCart', function ($rootScope, ngCart) {\r\n return {\r\n restrict: 'E',\r\n controller: 'CartController',\r\n scope: {},\r\n transclude: true,\r\n templateUrl: (window.location.hostname === 'localhost' ? '/app/' : '') + 'views/shared/summary.html',\r\n link: function (scope) {\r\n $rootScope.$on('ngCart:change', function () {\r\n //ngCart.getCartSummary().then(function(result){\r\n // scope.totalCost = result.TotalBalance;\r\n //});\r\n //ngCart.getSubTotal().then(function (result) {\r\n // scope.subTotal = result;\r\n //});\r\n });\r\n\r\n //ngCart.getCartSummary().then(function (result) {\r\n // scope.totalCost = result.TotalBalance;\r\n //});\r\n //ngCart.getSubTotal().then(function (result) {\r\n // scope.subTotal = result;\r\n //});\r\n }\r\n };\r\n }]);\r\n\r\n","'use strict';\r\n\r\n\r\nangular.module('ngCart', ['ngCart.directives'])\r\n\r\n .run(['$rootScope', '$location', '$timeout', 'ngCart', 'ngCartItem', 'store', function ($rootScope, $location, $timeout, ngCart, ngCartItem, store) {\r\n\r\n $rootScope.$on('ngCart:change', function () {\r\n ngCart.$save(window.getEventCode());\r\n });\r\n\r\n\r\n if (angular.isObject(JSON.parse(store.get(window.getEventCode())))) {\r\n ngCart.$restore(JSON.parse(store.get(window.getEventCode())));\r\n } else {\r\n ngCart.init();\r\n }\r\n }])\r\n\r\n .service('ngCart', ['$rootScope', '$timeout', '$q', 'ngCartItem', 'store', 'ProductsService', 'Checkout', function ($rootScope, $timeout, $q, ngCartItem, store, ProductsService, Checkout) {\r\n\r\n this.init = function () {\r\n this.$cart = {\r\n couponCode: '',\r\n items: [],\r\n };\r\n };\r\n\r\n this.addItem = function (id, name, price, quantity, discount, data, maxTransactionQuantity) {\r\n //GTM - Custom Trigger\r\n window.dataLayer = window.dataLayer || [];\r\n dataLayer.push({ 'event': 'addToCart' });\r\n\r\n var inCart = this.itemInCart(id);\r\n\r\n maxTransactionQuantity = maxTransactionQuantity || 0;\r\n\r\n if (inCart !== false && (!maxTransactionQuantity || (maxTransactionQuantity && (inCart.getQuantity() + Number(quantity)) < maxTransactionQuantity ))) {\r\n inCart.setQuantity(quantity, true);\r\n return inCart;\r\n } else {\r\n var newItem = new ngCartItem(id, name, price, quantity, discount, data);\r\n this.$cart.items.push(newItem);\r\n $rootScope.$broadcast('ngCart:change', {});\r\n $rootScope.$broadcast('ngCart:itemAdded', newItem);\r\n return newItem;\r\n }\r\n };\r\n\r\n this.setItem = function (id, name, price, quantity, discount, data) {\r\n\r\n var inCart = this.itemInCart(id);\r\n\r\n if (inCart !== false) {\r\n inCart.setQuantity(quantity, false);\r\n } else {\r\n var newItem = new ngCartItem(id, name, price, quantity, discount, data)\r\n this.$cart.items.push(newItem);\r\n $rootScope.$broadcast('ngCart:change', {});\r\n }\r\n $rootScope.$broadcast('ngCart:itemAdded', newItem);\r\n };\r\n\r\n this.itemInCart = function (itemId) {\r\n\r\n var a = _.find(this.getCart().items, { _id: itemId }); // This should really call .getId() - not read the private property\r\n if (a === undefined) return false\r\n else return a;\r\n }\r\n\r\n this.setCouponCode = function (code) {\r\n this.$cart.couponCode = code;\r\n }\r\n this.getCouponCode = function () {\r\n if (!this.getCart().items.length)\r\n return '';\r\n return this.getCart().couponCode || '';\r\n }\r\n\r\n // PDJ 2018.05.16: Holding onto this for now\r\n // Not needed now that server is doing work in GetCartSummary()\r\n this.getDiscountTotal = function () {\r\n var d = $q.defer();\r\n\r\n $q.all(\r\n this.getCart().items.map(function (item) {\r\n return item.getDiscountedPrice();\r\n })\r\n )\r\n .then(function (results) {\r\n d.resolve(results.reduce(function (accum, val) {\r\n return accum + val;\r\n }, 0));\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n this.setCart = function (cart) {\r\n this.$cart = cart;\r\n }\r\n this.getCart = function () {\r\n return this.$cart;\r\n }\r\n\r\n this.setItems = function (pred) {\r\n this.$cart.items = this.$cart.items.filter(function (x, i) { return pred(x, i); });\r\n $rootScope.$broadcast('ngCart:itemRemoved', {});\r\n $rootScope.$broadcast('ngCart:change', {});\r\n }\r\n this.getItems = function () {\r\n return this.getCart().items;\r\n }\r\n\r\n this.getSubTotal = function () {\r\n var d = $q.defer();\r\n\r\n $q.all(this.getCart().items.map(function(item) {\r\n return item.getTotal();\r\n }))\r\n .then(function(results){\r\n if(results.length)\r\n d.resolve(results.reduce(function(accum, value) {\r\n return accum + value;\r\n }));\r\n else\r\n d.resolve(0);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n this.getCartSummary = function (validateCoupon) {\r\n var d = $q.defer();\r\n var self = this;\r\n\r\n if (!self.$cart.couponCode || !validateCoupon) {\r\n validateCoupon = false;\r\n }\r\n\r\n if (self.totalItems() > 0) {\r\n ProductsService.cartSummary({\r\n data: {\r\n showCode: window.getEventCode(),\r\n addressId: Checkout.address ? Checkout.address.Id : null,\r\n boothId: Checkout.boothId,\r\n couponCode: self.$cart.couponCode,\r\n validateCoupon: validateCoupon,\r\n cart: (function () {\r\n return self.getItems().map(function (x) {\r\n return {\r\n productPriceId: x.getId(),\r\n quantity: x.getQuantity(),\r\n note: x.getData().note,\r\n dataSalesListId: x.getData().dataSalesListId,\r\n dataSalesTargetShowCode: x.getData().targetShowCode,\r\n promoCode: x.getData().promoCode\r\n };\r\n });\r\n })()\r\n },\r\n ignoreLoadingBar: true\r\n }, true)\r\n .then(function (data) {\r\n d.resolve(data);\r\n });\r\n }\r\n else\r\n $timeout(function () {\r\n d.resolve(0);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n this.totalCost = function () {\r\n var self = this;\r\n var d = $q.defer();\r\n\r\n $q.all([\r\n self.getSubTotal(),\r\n self.getCartSummary()\r\n ])\r\n .then(function (results) {\r\n d.resolve(results.reduce(function (accum, summary) {\r\n return summary.TotalBalance;\r\n }));\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n this.totalItems = function () {\r\n return this.getCart().items\r\n .map(function (x) { return x._quantity; })\r\n .reduce(function (accum, value) {\r\n return accum + value;\r\n }, 0);\r\n }\r\n\r\n this.removeItem = function (index, force) {\r\n if(force || window.confirm(\"Are you sure you want to remove this item?\")) {\r\n this.$cart.items.splice(index, 1);\r\n $rootScope.$broadcast('ngCart:itemRemoved', {});\r\n $rootScope.$broadcast('ngCart:change', {});\r\n };\r\n }\r\n\r\n this.empty = function () {\r\n this.$cart.couponCode = '';\r\n this.$cart.items = [];\r\n localStorage.removeItem(window.getEventCode());\r\n $rootScope.$broadcast('ngCart:change', {});\r\n }\r\n\r\n this.$restore = function (storedCart) {\r\n var _self = this;\r\n _self.init();\r\n _self.$cart.couponCode = storedCart.couponCode;\r\n\r\n angular.forEach(storedCart.items, function (item) {\r\n _self.$cart.items.push(new ngCartItem(item._id, item._name, item._price, item._quantity, item._discount, item._data));\r\n });\r\n this.$save(window.getEventCode());\r\n }\r\n\r\n this.$save = function () {\r\n return store.set(window.getEventCode(), JSON.stringify(this.getCart()));\r\n }\r\n\r\n this.load = function(eventCode) {\r\n var storedCart = JSON.parse(store.get(eventCode));\r\n var _self = this;\r\n _self.init();\r\n _self.$cart.couponCode = storedCart.couponCode;\r\n\r\n angular.forEach(storedCart.items, function (item) {\r\n _self.$cart.items.push(new ngCartItem(item._id, item._name, item._price, item._quantity, item._discount, item._data));\r\n });\r\n };\r\n }])\r\n\r\n .factory('ngCartItem', ['$rootScope', '$injector', '$q', '$timeout', function ($rootScope, $injector, $q, $timeout) {\r\n\r\n var item = function (id, name, price, quantity, discount, data) {\r\n this.setId(id);\r\n this.setName(name);\r\n this.setPrice(price);\r\n this.setQuantity(quantity);\r\n this.setDiscount(discount);\r\n this.setData(data);\r\n this.qty = this._quantity;\r\n };\r\n\r\n item.prototype.setId = function (id) {\r\n if (id) this._id = id;\r\n else {\r\n console.error('An ID must be provided');\r\n }\r\n }\r\n\r\n item.prototype.getId = function () {\r\n return this._id;\r\n }\r\n\r\n item.prototype.setName = function (name) {\r\n if (name) this._name = name;\r\n else {\r\n console.error('A name must be provided');\r\n }\r\n }\r\n item.prototype.getName = function () {\r\n return this._name;\r\n }\r\n\r\n item.prototype.setPrice = function (price) {\r\n var price = parseFloat(price);\r\n if (price) {\r\n if (price <= 0) {\r\n console.error('A price must be over 0');\r\n }\r\n this._price = (price);\r\n } else {\r\n console.error('A price must be provided');\r\n }\r\n }\r\n\r\n item.prototype.getPrice = function () {\r\n return this._price;\r\n }\r\n\r\n item.prototype.setQuantity = function (quantity, relative) {\r\n var self = this;\r\n\r\n if(self._quantity != undefined) {\r\n if(self.setQuantity.debounce)\r\n window.clearTimeout(self.setQuantity.debounce);\r\n\r\n self.setQuantity.debounce = window.setTimeout(function() {\r\n $rootScope.$broadcast('ngCart:change', {});\r\n }, 500);\r\n }\r\n\r\n var quantity = parseInt(quantity);\r\n if (quantity % 1 === 0) {\r\n if (relative === true) {\r\n this._quantity += quantity;\r\n } else {\r\n this._quantity = quantity;\r\n }\r\n if (this._quantity < 1) this._quantity = 1;\r\n this.qty = this._quantity;\r\n\r\n } else {\r\n this._quantity = 1;\r\n console.info('Quantity must be an integer and was defaulted to 1');\r\n }\r\n }\r\n\r\n item.prototype.getQuantity = function () {\r\n return this._quantity;\r\n }\r\n\r\n item.prototype.setData = function (data) {\r\n if (data) this._data = data;\r\n }\r\n\r\n item.prototype.getData = function () {\r\n if (this._data) return this._data;\r\n else {\r\n console.info('This item has no data');\r\n return {};\r\n }\r\n }\r\n\r\n item.prototype.getTotal = function () {\r\n var d = $q.defer();\r\n var self = this;\r\n var total;\r\n\r\n //if this item has a discount then defer to the discount promise\r\n if(this.getDiscount() && this.getDiscount().id > 0){\r\n this.getDiscountedPrice().then(function(adjustedAmount){\r\n if(self.getData().cachedCount)\r\n total = self.getData().cachedCount * self.getPrice() + adjustedAmount;\r\n else\r\n total = self.getQuantity() * self.getPrice() + adjustedAmount;\r\n\r\n d.resolve(total > (self.getData().minAmount || 0) ? total : self.getData().minAmount);\r\n });\r\n }\r\n else{\r\n $timeout(function(){\r\n if(self.getData().cachedCount)\r\n total = self.getData().cachedCount * self.getPrice();\r\n else\r\n total = self.getQuantity() * self.getPrice();\r\n\r\n d.resolve(total > (self.getData().minAmount || 0) ? total : self.getData().minAmount);\r\n });\r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n item.prototype.setDiscount = function(discount) {\r\n if(discount)\r\n this._discount = discount;\r\n }\r\n\r\n item.prototype.getDiscount = function() {\r\n if(this._discount)\r\n return this._discount;\r\n }\r\n\r\n item.prototype.discountDelegate = $injector.get('DiscountService');\r\n\r\n item.prototype.getDiscountedPrice = function(){\r\n if(this.discountDelegate)\r\n return this.discountDelegate(this);\r\n }\r\n\r\n return item;\r\n\r\n }])\r\n\r\n .service('store', ['$window', function ($window) {\r\n\r\n return {\r\n\r\n \tget: function (key) {\r\n \t\ttry {\r\n \t\t\t\tif ($window.localStorage[key]) {\r\n \t\t\t\t\treturn angular.fromJson($window.localStorage[key]);\r\n \t\t\t}\r\n \t\t\treturn false;\r\n\t\t\t\t}\r\n \t\tcatch(e)\r\n \t\t{\r\n \t\t\treturn false;\r\n \t\t}\r\n },\r\n\r\n set: function (key, val) {\r\n\r\n if (val === undefined) {\r\n $window.localStorage.removeItem(key);\r\n } else {\r\n $window.localStorage[key] = angular.toJson(val);\r\n }\r\n return $window.localStorage[key];\r\n }\r\n }\r\n }])\r\n\r\n .controller('CartController', ['$scope', 'ngCart', function ($scope, ngCart) {\r\n $scope.ngCart = ngCart;\r\n }])\r\n\r\n .value('version', '0.0.1-rc.2');\r\n","(function() {\r\n var app;\r\n\r\n app = angular.module(\"ngModal\", []);\r\n\r\n app.provider(\"ngModalDefaults\", function() {\r\n return {\r\n options: {\r\n closeButtonHtml: \"X\"\r\n },\r\n $get: function() {\r\n return this.options;\r\n },\r\n set: function(keyOrHash, value) {\r\n var k, v, _results;\r\n if (typeof keyOrHash === 'object') {\r\n _results = [];\r\n for (k in keyOrHash) {\r\n v = keyOrHash[k];\r\n _results.push(this.options[k] = v);\r\n }\r\n return _results;\r\n } else {\r\n return this.options[keyOrHash] = value;\r\n }\r\n }\r\n };\r\n });\r\n\r\n app.directive('modalDialog', [\r\n 'ngModalDefaults', '$sce', function(ngModalDefaults, $sce) {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n show: '=',\r\n dialogTitle: '@',\r\n onClose: '&?'\r\n },\r\n replace: true,\r\n transclude: true,\r\n link: function(scope, element, attrs) {\r\n var setupCloseButton, setupStyle;\r\n setupCloseButton = function() {\r\n return scope.closeButtonHtml = $sce.trustAsHtml(ngModalDefaults.closeButtonHtml);\r\n };\r\n setupStyle = function() {\r\n scope.dialogStyle = {};\r\n if (attrs.width) {\r\n scope.dialogStyle['width'] = attrs.width;\r\n }\r\n if (attrs.height) {\r\n return scope.dialogStyle['height'] = attrs.height;\r\n }\r\n };\r\n scope.hideModal = function() {\r\n return scope.show = false;\r\n };\r\n scope.$watch('show', function(newVal, oldVal) {\r\n document.getElementsByTagName(\"body\")[0].style.overflow = newVal && !oldVal ? 'hidden' : '';\r\n if ((!newVal && oldVal) && (scope.onClose != null)) {\r\n return scope.onClose();\r\n }\r\n });\r\n setupCloseButton();\r\n return setupStyle();\r\n },\r\n template: \"
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\"\r\n };\r\n }\r\n ]);\r\n\r\n}).call(this);\r\n","'use strict';\r\n\r\nangular\r\n .module('swapTemplates', [])\r\n .run(function ($templateCache) {\r\n 'ngInject';//flag for ng-annotate\r\n\r\n if (process.env.NODE_ENV === 'production') {\r\n var requireContext = require.context('../../../', true, /^.\\/views[//\\/]([^//\\/]+\\/)*[^//\\/]+\\.html?$/i);\r\n requireContext.keys().forEach(function (templatePath) {\r\n $templateCache.put(templatePath.replace(/^(\\.\\/)/i, ''), requireContext(templatePath));\r\n });\r\n }\r\n });\r\n","'use strict';\r\n\r\nangular.module('sharedModule', []);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Address\r\n * @description\r\n * # Address\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var AddressService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getBillingAddresses = ApiService.endpoint.get({\r\n url: 'api/address/getBillingAddresses',\r\n success: function (data) {\r\n var deduped = [];\r\n\r\n if(data)\r\n for(var i = 0; i < data.length; i++){\r\n if(data[i].AddressTypeCode == 'BILLING')\r\n deduped.push(data[i]);\r\n //search for duplicates if address type is not billing\r\n else {\r\n var isDupe = false;\r\n var a1 = angular.copy(data[i]);\r\n\r\n //delete things we know are different and then compare the rest\r\n delete a1.Id;\r\n delete a1.AddressTypeCode;\r\n\r\n for(var a = 0; a < data.length; a++){\r\n //only check against existing BILLING address since that is what we ultimately\r\n //want to pass on to PCI\r\n if(data[i].Id != data[a].Id && data[a].AddressTypeCode == 'BILLING'){\r\n var a2 = angular.copy(data[a])\r\n delete a2.Id;\r\n delete a2.AddressTypeCode;\r\n\r\n if(angular.equals(a1, a2)){\r\n isDupe = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if(!isDupe)\r\n deduped.push(data[i]);\r\n }\r\n }\r\n\r\n self.data.billingAddresses = deduped;\r\n }\r\n });\r\n\r\n self.getCountries = ApiService.endpoint.get({\r\n url: 'api/address/getCountries',\r\n success: function (data) {\r\n self.data.countries = data;\r\n }\r\n });\r\n\r\n self.getStates = ApiService.endpoint.get({\r\n url: 'api/address/getStates',\r\n success: function (data) {\r\n self.data.states = data;\r\n }\r\n });\r\n\r\n self.save = ApiService.endpoint.post({\r\n url: 'api/address/save'\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('AddressService', AddressService);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Api\r\n * @description\r\n * # Api\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n /**\r\n * @param {angular.IHttpService} $http\r\n * @param {angular.IQService} $q\r\n * @param {angular.ITimeoutService} $timeout\r\n * @param {angular.IWindowService} $window\r\n * @param {angular.ILogService} $log\r\n * @param {Record} EnvironmentConfig\r\n */\r\n var ApiService = function ($http, $q, $timeout, $window, $log, EnvironmentConfig) {\r\n 'ngInject'\r\n this.endpoint = {\r\n //the main workhorse for GET requests; this wrapper provides concurrency management,\r\n //memoization, cancelation and error handling\r\n get: function (config) {\r\n //config defaults\r\n config = angular.extend({\r\n memoization: true\r\n }, config);\r\n\r\n return function get(params, force, options) {\r\n var d = $q.defer();\r\n var c = $q.defer();\r\n\r\n params = params || {};\r\n options = options || {};\r\n get.defer = get.defer || {};\r\n get.memo = get.memo || [];\r\n\r\n function memoized(params) {\r\n for (var i = 0; i < get.memo.length; i++)\r\n if (angular.equals(get.memo[i], params))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n if (!force && config.memoization && memoized(params))\r\n $timeout(function () {\r\n d.resolve();\r\n });\r\n //prevent redundant requests by checking if a request with the same params is currently in progress\r\n else if (!get.defer || force || (get.defer && !angular.equals(get.defer.params, params))) {\r\n //if this request is forced, and there is a concurrent defered request with the same\r\n //params then cancel it and give this request priority; note that even a forced defered\r\n //request can be overridden in this way\r\n if (force && get.defer && angular.equals(get.defer.params, params))\r\n get.defer.cancel();\r\n\r\n get.defer = {\r\n params: params,\r\n force: force,\r\n cancel: function () {\r\n c.resolve('This request was canceled by another request that was forced!');\r\n },\r\n request: $http(angular.extend({\r\n method: 'GET',\r\n url: EnvironmentConfig.SiteRoot + config.url,\r\n params: params,\r\n timeout: c.promise\r\n }, options))\r\n .then(\r\n (response) => {\r\n if (config.memoization && !memoized(params))\r\n get.memo.push(params);\r\n\r\n if (config.success) {\r\n try {\r\n config.success(response.data, params);\r\n }\r\n catch (e) {\r\n $timeout(function () { $window.alert(e.message); });\r\n d.reject(e);\r\n throw e;\r\n }\r\n }\r\n\r\n d.resolve({\r\n data: response.data,\r\n status: response.status,\r\n headers: response.headers,\r\n config: response.config\r\n });\r\n },\r\n /**\r\n * @param {angular.IHttpPromiseCallbackArg} response Error response\r\n */\r\n (response) => {\r\n //if an error handler has been provided then use that\r\n //note: the erorr handler will be responsible for rejecting if that is desired\r\n if (config.error)\r\n config.error(d, response.data, response.status, response.headers, response.config);\r\n //default handling of internal exceptions is to alert the user, api exception messages\r\n //should be well formatted\r\n else if (response.status === 500 && response.data.ExceptionMessage) {\r\n $log.log(response.data, response.status, response.headers, response.config);\r\n $timeout(function () { $window.alert(response.data.ExceptionMessage); });\r\n }\r\n\r\n if (!config.error)\r\n d.reject({\r\n data: response.data,\r\n status: response.status,\r\n headers: response.headers,\r\n config: response.config\r\n });\r\n }\r\n ).finally(function () {\r\n get.defer = null;\r\n })\r\n };\r\n }\r\n //if a request with the same params is already in progress then piggy back off of it\r\n else if (get.defer)\r\n get.defer.request.then(function () {\r\n d.resolve();\r\n });\r\n\r\n return d.promise;\r\n };\r\n },\r\n post: function (endpointConfig) {\r\n return function post(config) {\r\n var d = $q.defer();\r\n var c = $q.defer();\r\n\r\n config = angular.extend({\r\n method: 'POST',\r\n timeout: c.promise\r\n }, endpointConfig, config);\r\n\r\n config.url = EnvironmentConfig.SiteRoot + config.url;\r\n\r\n post.defer = {\r\n cancel: function (msg) {\r\n c.resolve(msg);\r\n post.defer = null;\r\n },\r\n request: $http(config)\r\n .then(\r\n (response) => {\r\n if (config.success) {\r\n try {\r\n config.success(response.data, config.data);\r\n }\r\n catch (e) {\r\n $timeout(function () { $window.alert(e.message); });\r\n d.reject(e);\r\n throw e;\r\n }\r\n }\r\n\r\n d.resolve(response.data);\r\n },\r\n /**\r\n * @param {angular.IHttpPromiseCallbackArg} response Error response\r\n */\r\n (response) => {\r\n //if an error handler has been provided then use that\r\n //note: the erorr handler will be responsible for rejecting if that is desired\r\n if (config.error)\r\n config.error(d, response.data, response.status, response.headers, response.config);\r\n //default handling of internal exceptions is to alert the user, api exception messages\r\n //should be well formatted\r\n else if (response.status === 500 && response.data.ExceptionMessage) {\r\n $log.log(response.data, response.status, response.headers, response.config);\r\n $timeout(function () { $window.alert(response.data.ExceptionMessage); });\r\n }\r\n\r\n if (!config.error)\r\n d.reject({\r\n data: response.data,\r\n status: response.status,\r\n headers: response.headers,\r\n config: response.config\r\n });\r\n }\r\n ).finally(function () {\r\n post.defer = null;\r\n })\r\n };\r\n\r\n return d.promise;\r\n };\r\n },\r\n del: function (config) {\r\n return function del(params, options) {\r\n var d = $q.defer();\r\n var c = $q.defer();\r\n\r\n params = params || {};\r\n options = options || {};\r\n\r\n del.defer = {\r\n params: params,\r\n cancel: function () {\r\n c.resolve('This request was canceled by another request that was forced!');\r\n },\r\n request: $http.delete(EnvironmentConfig.SiteRoot + config.url, angular.extend({}, params, options))\r\n .then(\r\n (response) => {\r\n if (config.success) {\r\n try {\r\n config.success(response.data, params);\r\n }\r\n catch (e) {\r\n $timeout(function () { $window.alert(e.message); });\r\n d.reject(e);\r\n throw e;\r\n }\r\n }\r\n\r\n d.resolve({\r\n data: response.data,\r\n status: response.status,\r\n headers: response.headers,\r\n config: response.config\r\n });\r\n },\r\n /**\r\n * @param {angular.IHttpPromiseCallbackArg} response Error response\r\n */\r\n (response) => {\r\n //if an error handler has been provided then use that\r\n //note: the erorr handler will be responsible for rejecting if that is desired\r\n if (config.error)\r\n config.error(d, response.data, response.status, response.headers, response.config);\r\n //default handling of internal exceptions is to alert the user, api exception messages\r\n //should be well formatted\r\n else if (response.status === 500 && response.data.ExceptionMessage) {\r\n $log.log(response.data, response.status, response.headers, response.config);\r\n $timeout(function () { $window.alert(response.data.ExceptionMessage); });\r\n }\r\n\r\n if (!config.error)\r\n d.reject({\r\n data: response.data,\r\n status: response.status,\r\n headers: response.headers,\r\n config: response.config\r\n });\r\n }\r\n ).finally(function () {\r\n del.defer = null;\r\n })\r\n };\r\n\r\n return d.promise;\r\n };\r\n },\r\n };\r\n };\r\n\r\n angular.module('sharedModule')\r\n .service('ApiService', ApiService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.BusinessCardLead\r\n * @description\r\n * # Business Card Lead\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var BusinessCardLeadService = function ($q, $timeout, $filter, ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getBusinessCardLead = ApiService.endpoint.get({\r\n url: 'api/businesscardlead/',\r\n memoization: false,\r\n success: function (data, params) {\r\n self.data.businessCardLeads = self.data.businessCardLeads || {};\r\n self.data.businessCardLeads[params.showCode] = self.data.businessCardLeads[params.showCode] || [];\r\n\r\n var businessCard = extendBusinessCardLeads([data])[0];\r\n if (self.data.businessCardLeads[params.showCode].length == 0) {\r\n self.data.businessCardLeads[params.showCode].push(businessCard);\r\n return businessCard;\r\n }\r\n\r\n for (var i = 0; i < self.data.businessCardLeads[params.showCode].length; i++) {\r\n if (self.data.businessCardLeads[params.showCode][i].ImageKey == businessCard.ImageKey) {\r\n self.data.businessCardLeads[params.showCode][i] = businessCard;\r\n return businessCard;\r\n }\r\n }\r\n }\r\n });\r\n\r\n self.getBusinessCardLeads = ApiService.endpoint.get({\r\n url: 'api/businesscardlead/getList',\r\n memoization: false,\r\n success: function (data, params) {\r\n self.data.businessCardLeads = self.data.businessCardLeads || {};\r\n self.data.businessCardLeads[params.showCode] = extendBusinessCardLeads(data.People);\r\n }\r\n });\r\n\r\n self.saveBusinessCardLeads = ApiService.endpoint.post({\r\n url: 'api/businesscardlead/',\r\n success: function (data, params) {\r\n self.data.businessCardLeads = self.data.businessCardLeads || {};\r\n self.data.businessCardLeads[params.showCode] = extendBusinessCardLeads(self.data.businessCardLeads[params.showCode]) || [];\r\n\r\n for (var i = 0; i < self.data.businessCardLeads[params.showCode].length; i++) {\r\n for (var a = 0; a < data.UpdatedPeople.length; a++) {\r\n if (self.data.businessCardLeads[params.showCode][i].ImageKey == data.UpdatedPeople[a].ImageKey) {\r\n self.data.businessCardLeads[params.showCode][i] = extendBusinessCardLeads([data.UpdatedPeople[a]])[0];\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n self.deleteBusinessCardLead = ApiService.endpoint.post({\r\n url: 'api/businesscardlead/deletebusinesscardlead',\r\n success: function (data, params) {\r\n self.data.businessCardLeads = self.data.businessCardLeads || {};\r\n self.data.businessCardLeads[params.showCode] = extendBusinessCardLeads(self.data.businessCardLeads[params.showCode]) || [];\r\n\r\n if (data) {\r\n self.data.businessCardLeads[params.showCode] = self.data.businessCardLeads[params.showCode].filter(function (bcl) {\r\n return bcl.ImageKey != data;\r\n });\r\n }\r\n }\r\n });\r\n\r\n self.getBusinessCardLeadDates = function (showcode) {\r\n var d = $q.defer();\r\n\r\n self.data.leadDates = self.data.leadDates || {};\r\n\r\n if (self.data.leadDates[showcode])\r\n $timeout(function () {\r\n d.resolve();\r\n });\r\n else {\r\n var leadDates = {},\r\n toReturn = [];\r\n\r\n self.getBusinessCardLeads({ showCode: showcode }).then(function () {\r\n for (var i = 0; i < self.data.businessCardLeads[showcode].length; i++) {\r\n var shortDate = $filter('date')(self.data.businessCardLeads[showcode][i].LeadDate, 'shortDate', self.data.businessCardLeads[showcode][i].TimeZoneOffset);\r\n\r\n //save the shortDate on the lead object so that we don't have to recalc it when filtering\r\n self.data.businessCardLeads[showcode][i].shortLeadDate = shortDate;\r\n\r\n if (!leadDates[shortDate]) {\r\n leadDates[shortDate] = 1;\r\n\r\n toReturn.push(shortDate);\r\n }\r\n }\r\n\r\n\r\n self.data.leadDates[showcode] = toReturn;\r\n d.resolve();\r\n });\r\n }\r\n\r\n return d.promise;\r\n };\r\n\r\n function extendBusinessCardLeads(cards) {\r\n if (!cards)\r\n return cards;\r\n\r\n return cards.map(function (c) {\r\n return angular.extend({}, c, {\r\n Id: null,\r\n Contact: contactFromBusinessCard(c),\r\n SurveyAnswers: [],\r\n LeadDate: convertDate(c.CaptureDate),\r\n Collateral: [],\r\n CollateralFormatted: '',\r\n Spotted: 0,\r\n MoreCaptureTimes: '',\r\n LeadType: 'BUSINESS CARD'\r\n });\r\n });\r\n }\r\n\r\n function contactFromBusinessCard(bcl) {\r\n return {\r\n Id: null,\r\n Company: bcl.Company,\r\n FirstName: bcl.FirstName,\r\n LastName: bcl.LastName,\r\n Address: contactAddress(bcl),\r\n Email: bcl.Email,\r\n Phone: bcl.Phone,\r\n Title: bcl.Title,\r\n RegistrantId: null,\r\n ContactTypeCode: 'UNK',\r\n DemographicAnswers: []\r\n };\r\n }\r\n\r\n function contactAddress(bcl) {\r\n return {\r\n Address: bcl.Address,\r\n Address2: '',\r\n Address3: '',\r\n City: '',\r\n CountryCode: '',\r\n Id: 0,\r\n StateCode: '',\r\n ZipCode: ''\r\n };\r\n }\r\n\r\n function convertDate(timestamp) {\r\n if (!timestamp)\r\n return '';\r\n var d = new Date(0);\r\n d.setUTCMilliseconds(timestamp);\r\n return d.toISOString();\r\n }\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('BusinessCardLeadService', BusinessCardLeadService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Search\r\n * @description\r\n * # Search\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n angular.module('exhibitorPortalApp')\r\n .constant('CheckoutBase', { \r\n showCode: '',\r\n productIds: [],\r\n boothId: null,\r\n addressId: null,\r\n postBackUrl: '',\r\n redirectUrl: '',\r\n strategyId: null,\r\n PromoCode: '',\r\n SourceCode: '',\r\n address: null,\n doesOrderHaveEventBit: false\r\n });\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Survey\r\n * @description\r\n * # Survey\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var CollateralService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getCollateralConfig = ApiService.endpoint.get({\r\n url: 'api/collateral/getCollateralConfig',\r\n success: function (data, params) {\r\n self.data.collateralConfig = self.data.collateralConfig || {};\r\n self.data.collateralConfig[params.showCode] = data;\r\n\r\n self.data.collaterals = self.data.collaterals || {};\r\n self.data.collaterals[params.showCode] = data.Collaterals || [];\r\n }\r\n });\r\n\r\n self.saveCollateralConfig = ApiService.endpoint.post({\r\n url: 'api/collateral/saveCollateralConfig',\r\n success: function (data, params) {\r\n self.data.collateralConfig = self.data.collateralConfig || {};\r\n angular.extend(self.data.collateralConfig[params.showCode], data);\r\n\r\n self.data.collaterals = self.data.collaterals || {};\r\n angular.extend(self.data.collaterals[params.showCode], data.Collaterals);\r\n }\r\n });\r\n\r\n self.getLeadCollateral = ApiService.endpoint.get({\r\n url: 'api/collateral/getLeadCollateral',\r\n success: function (data, params) {\r\n self.data.leadCollateral = self.data.leadCollateral || {};\r\n self.data.leadCollateral[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getCollateral = ApiService.endpoint.get({\r\n url: 'api/collateral/getCollateral',\r\n success: function (data, params) {\r\n self.data.collaterals = self.data.collaterals || {};\r\n self.data.collaterals[params.showCode] = self.data.collaterals[params.showCode] || [];\r\n\r\n //Check for exisiting item.\r\n var cIndex = self.data.collaterals[params.showCode].map(function(x) { return x.CollateralID; }).indexOf(data.CollateralID);\r\n\r\n if (cIndex > -1)\r\n self.data.collaterals[params.showCode].splice(cIndex, 1)\r\n\r\n self.data.collaterals[params.showCode].push(data);\r\n }\r\n });\r\n\r\n self.saveCollateral = ApiService.endpoint.post({\r\n url: 'api/collateral/saveCollateral',\r\n success: function (data, params) {\r\n self.data.collaterals = self.data.collaterals || {};\r\n self.data.collaterals[params.showCode] = self.data.collaterals[params.showCode] || [];\r\n\r\n //Check for exisiting item.\r\n var cIndex = self.data.collaterals[params.showCode].map(function(x) { return x.CollateralID; }).indexOf(data.CollateralID);\r\n\r\n if (cIndex > -1)\r\n self.data.collaterals[params.showCode].splice(cIndex, 1)\r\n\r\n self.data.collaterals[params.showCode].push(data);\r\n }\r\n });\r\n\r\n self.deleteCollateral = ApiService.endpoint.get({\r\n url: 'api/collateral/deleteCollateral',\r\n success: function (data, params) {\r\n self.data.collaterals = self.data.collaterals || {};\r\n self.data.collaterals[params.showCode] = self.data.collaterals[params.showCode] || [];\r\n\r\n var cIndex = self.data.collaterals[params.showCode].map(function(x) { return x.CollateralID; }).indexOf(params.collateralId);\r\n\r\n if (cIndex > -1)\r\n self.data.collaterals[params.showCode].splice(cIndex, 1)\r\n }\r\n });\r\n\r\n\r\n\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('CollateralService', CollateralService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Colors\r\n * @description\r\n * # Colors\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n angular.module('exhibitorPortalApp')\r\n .constant('Colors', [\r\n '#8ede43',\r\n '#F6BD0F',\r\n '#AFD8F8',\r\n '#8BBA00',\r\n '#008E8E',\r\n '#FF8E46',\r\n '#D64646',\r\n '#8E468E',\r\n '#588526',\r\n '#B3AA00',\r\n '#008ED6',\r\n '#9D080D',\r\n '#A186BE',\r\n '#9A652F',\r\n '#A8CB3E',\r\n '#F9CE4B',\r\n '#C5E1F6',\r\n '#F8AE55',\r\n '#407FBC',\r\n '#FBEF4A',\r\n '#F5919E',\r\n '#C1B93F',\r\n '#FAD1A3',\r\n '#B8A4CE',\r\n '#B5474A',\r\n '#3FA9E0',\r\n '#CECF9A',\r\n '#82A35B',\r\n '#AA74AA',\r\n '#E07474',\r\n '#40AAAA',\r\n '#D0499A',\r\n '#76C9B6',\r\n '#6566AE',\r\n '#CE6728',\r\n '#CDDC29',\r\n '#9A652F',\r\n '#cbb72f',\r\n '#e31c00',\r\n '#93ddcf',\r\n '#a26500',\r\n '#007c2e',\r\n '#ea305c',\r\n '#c4338e',\r\n '#533881',\r\n '#7a6a1a',\r\n '#9c3100',\r\n '#00ba82',\r\n '#90005f',\r\n '#7179a8',\r\n '#8d212e',\r\n '#ba842c',\r\n '#e54a35',\r\n '#a8d9cf',\r\n '#e33f4e',\r\n '#2fac9a',\r\n '#e76934',\r\n '#dc77c4',\r\n '#b1562e',\r\n '#dc77c4',\r\n '#b1562e',\r\n '#e08891',\r\n '#8c93b6',\r\n '#a5367e',\r\n '#2cce9f',\r\n '#9e37be',\r\n '#61b46c',\r\n '#9e37be',\r\n '#61b46c',\r\n '#9e37be',\r\n '#61b46c',\r\n '#53829c',\r\n '#be1841',\r\n '#cc6a18',\r\n '#8d212e',\r\n '#caefa7',\r\n '#fbe08e',\r\n '#afd8f8',\r\n '#c8df87',\r\n '#87caca',\r\n '#ffcaa8',\r\n '#eca8a8',\r\n '#caa8ca',\r\n '#b0c699',\r\n '#dbd787',\r\n '#87caec',\r\n '#d18b8d',\r\n '#d3c6e0',\r\n '#cfb79d',\r\n '#d6e7a4',\r\n '#fce8aa',\r\n '#e4f1fb',\r\n '#fcd9af',\r\n '#a5c3df',\r\n '#fdf7aa',\r\n '#facbd1',\r\n '#e2dea5',\r\n '#fde9d4',\r\n '#ded4e8',\r\n '#dca8aa',\r\n '#a5d7f0',\r\n '#e8e8cf',\r\n '#c4d4b2',\r\n '#d7bed7',\r\n '#f0bebe',\r\n '#a5d7d7',\r\n '#e8e8cf'\r\n ]);\r\n})(angular, window);","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.DataSales\r\n * @description\r\n * # DataSales\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var DataSalesService = function ($q, ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.execute = ApiService.endpoint.post({\r\n url: 'api/dataSales/portalExecute'\r\n });\r\n\r\n self.finalize = ApiService.endpoint.post({\r\n url: 'api/dataSales/portalFinalize'\r\n });\r\n\r\n self.getConfig = ApiService.endpoint.get({\r\n url: 'api/dataSales/getConfig',\r\n success: function (data, params) {\r\n self.data.config = self.data.config || {};\r\n self.data.config[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getTemplates = ApiService.endpoint.get({\r\n url: 'api/dataSales/getTemplates',\r\n success: function (data, params) {\r\n self.data.templates = self.data.templates || {};\r\n self.data.templates[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getTemplate = ApiService.endpoint.get({\r\n url: 'api/dataSales/getTemplate',\r\n success: function (data, params) {\r\n self.data.templateHtml = self.data.templateHtml || {};\r\n self.data.templateHtml[params.showCode] = self.data.templateHtml[params.showCode] || {};\r\n self.data.templateHtml[params.showCode][params.templateId] = data;\r\n }\r\n });\r\n\r\n self.getEmailCampaigns = ApiService.endpoint.get({\r\n url: 'api/dataSales/getEmailCampaigns',\r\n success: function (data, params) {\r\n self.data.emailCampaigns = self.data.emailCampaigns || {};\r\n self.data.emailCampaigns[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getPreFilterFields = ApiService.endpoint.get({\r\n url: 'api/dataSales/getPreFilterFields',\r\n success: function (data, params) {\r\n self.data.preFilterFields = self.data.preFilterFields || {};\r\n self.data.preFilterFields[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getAttendeeListDownloads = ApiService.endpoint.get({\r\n url: 'api/dataSales/getAttendeeListDownloads',\r\n success: function (data, params) {\r\n self.data.attendeeListDownloads = self.data.attendeeListDownloads || {};\r\n self.data.attendeeListDownloads[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getAttendeeListExport = ApiService.endpoint.post({\r\n url: 'api/dataSales/getAttendeeListExport'\r\n });\r\n\r\n self.getStrategy = ApiService.endpoint.get({\r\n url: 'api/dataSales/getStrategy',\r\n success: function (data, params) {\r\n self.data.strategies = self.data.strategies || {};\r\n self.data.strategies[params.showCode] = self.data.strategies[params.showCode] || {};\r\n self.data.strategies[params.showCode][params.id] = data;\r\n }\r\n });\r\n\r\n self.getFeedbackSummary = ApiService.endpoint.get({\r\n url: 'api/dataSales/getFeedbackSummary'\r\n });\r\n\r\n self.saveStrategy = ApiService.endpoint.post({\r\n url: 'api/dataSales/saveStrategy'\r\n });\r\n\r\n self.validate = function(showCode, dataSalesCartItem) {\r\n var d = $q.defer();\r\n var errors = [];\r\n\r\n if(!dataSalesCartItem.dataSalesTierTypeCode.startsWith('SET') && !dataSalesCartItem.dataSalesListId)\r\n errors.push('event.shop.dataSales.filterBuilder');\r\n\r\n if(dataSalesCartItem.ProductCode == '203') {\r\n var fields = [\r\n {\r\n IsRequired: true,\r\n KeyName: 'SubjectLine'\r\n },\r\n {\r\n IsRequired: true,\r\n KeyName: 'ScheduledExecutionDate'\r\n },\r\n {\r\n IsRequired: true,\r\n KeyName: 'ScheduledExecutionTime'\r\n }\r\n ]; \r\n\r\n self.getTemplates({\r\n showCode: showCode\r\n }).then(function(){\r\n var template = self.data.templates[showCode].filter(function(e){\r\n return e.TemplateID == dataSalesCartItem.email.TemplateId;\r\n });\r\n\r\n if(template.length){\r\n template = template[0];\r\n fields = fields.concat(template.BodyFields);\r\n\r\n for(var i = 0; i < fields.length; i++){\r\n if(fields[i].IsRequired && !dataSalesCartItem.email[fields[i].KeyName]){\r\n errors.push('event.shop.dataSales.emailBuilder');\r\n break;\r\n }\r\n }\r\n }\r\n else\r\n errors.push('event.shop.dataSales.emailBuilder');\r\n\r\n if(!dataSalesCartItem.agreeToTerms)\r\n errors.push('event.shop.dataSales.terms');\r\n\r\n d.resolve(errors);\r\n });\r\n }\r\n else if (dataSalesCartItem.productCode == '205'){\r\n if(Object.keys(dataSalesCartItem.mailHouse).filter(function(key) {\r\n Array.isArray(dataSalesCartItem.mailHouse[key]) ? \r\n !dataSalesCartItem.mailHouse[key].length : \r\n !dataSalesCartItem.mailHouse[key] }).length)\r\n errors.push('event.shop.dataSales.mailHouse')\r\n else if(!dataSalesCartItem.agreeToTerms)\r\n errors.push('event.shop.dataSales.terms');\r\n\r\n setTimeout(function() { d.resolve(errors); }, 0);\r\n }\r\n else {\r\n if(!dataSalesCartItem.agreeToTerms)\r\n errors.push('event.shop.dataSales.terms');\r\n \r\n setTimeout(function() { d.resolve(errors); }, 0);\r\n }\r\n\r\n return d.promise;\r\n };\r\n\r\n self.sendTestEmail = ApiService.endpoint.post({\r\n url: 'api/dataSales/sendTestEmail'\r\n });\r\n\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('DataSalesService', DataSalesService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc factory\r\n * @name exhibitorPortalApp.factory:DataSalesExecuteContext\r\n * @description\r\n * Wrapper around a complete DataSales plan tree, including global parameters.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var DataSalesExecuteContext = function () {\r\n 'ngInject'\r\n\r\n //@param {Array} filterExpression the expression to build an execute context from\r\n //@param {String} mediaTypeCode how it's going to be used (download file types, email blast, etc.)\r\n return function ExecuteContext(filterExpression, mediaTypeCode) {\r\n this.MediaTypeCode = mediaTypeCode;\r\n this.PlanRoot = {}; //PlanPolymorph\r\n\r\n this.PlanRoot.PlanCombine = {};\r\n this.PlanRoot.PlanCombine.Min = 1;\r\n this.PlanRoot.PlanCombine.Max = filterExpression.length;\r\n this.PlanRoot.PlanCombine.Sources = [];\r\n\r\n for(var i = 0; i < filterExpression.length; i++) {\r\n var x = {}; //PlanCombine\r\n\r\n x.Min = x.Max = filterExpression[i].nodes.length;\r\n x.Sources = [];\r\n\r\n for(var a = 0; a < filterExpression[i].nodes.length; a++){\r\n var y = {}; //PlanCombine\r\n\r\n y.Min = 1;\r\n y.Max = filterExpression[i].nodes[a].operands.length;\r\n y.Sources = [];\r\n\r\n for(var b = 0; b < filterExpression[i].nodes[a].operands.length; b++) {\r\n var z = {}; //PlanCombine\r\n\r\n if(filterExpression[i].nodes[a].operands[b].detail && filterExpression[i].nodes[a].operands[b].values.length) {\r\n z.Field = filterExpression[i].nodes[a].operands[b].detail.filterDetail.Id;\r\n z.Values = angular.copy(filterExpression[i].nodes[a].operands[b].values);\r\n\r\n switch(filterExpression[i].nodes[a].operands[b].operator) {\r\n case 'oneOf':\r\n case 'notOneOf':\r\n z.Min = 1;\r\n z.Max = filterExpression[i].nodes[a].operands[b].values.length;\r\n break;\r\n case 'allOf':\r\n case 'notAllOf':\r\n z.Min = z.Max = filterExpression[i].nodes[a].operands[b].values.length;\r\n break;\r\n }\r\n\r\n if(['notOneOf', 'notAllOf'].indexOf(filterExpression[i].nodes[a].operands[b].operator) > -1)\r\n y.Sources.push({\r\n PlanExclude: {\r\n Exclude: {\r\n PlanFilterField: z\r\n }\r\n }\r\n });\r\n else\r\n y.Sources.push({\r\n PlanFilterField: z\r\n });\r\n }\r\n }\r\n\r\n if(y.Sources.length)\r\n x.Sources.push({\r\n PlanCombine: y\r\n });\r\n }\r\n\r\n if(x.Sources.length){\r\n if(filterExpression[i].include === 'true'){\r\n this.PlanRoot.PlanCombine.Sources.push({\r\n PlanCombine: x\r\n });\r\n }\r\n else {\r\n this.PlanRoot.PlanCombine.Sources.push({\r\n PlanExclude: {\r\n Exclude: {\r\n PlanCombine: x\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .factory('DataSalesExecuteContext', DataSalesExecuteContext);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc factory\r\n * @name exhibitorPortalApp.factory:DataSalesExpression\r\n * @description\r\n * The model for data sales filtering views.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var DataSalesExpression = function () {\r\n 'ngInject'\r\n\r\n //@param {Object} context The plan (from SWAP) to build an expression from.\r\n //@param {Object} filters The full metadata for all available filters.\r\n return function DataSalesExpression(context, filters) {\r\n \tvar expressions = [];\r\n\r\n \tif (context.PlanRoot) {\r\n \t\tfor (var i = 0; i < context.PlanRoot.PlanCombine.Sources.length; i++) {\r\n \t\t\tvar include = !!context.PlanRoot.PlanCombine.Sources[i].PlanCombine;\r\n\r\n \t\t\tvar expression = {\r\n \t\t\t\tinclude: include.toString(),\r\n \t\t\t\tnodes: []\r\n \t\t\t};\r\n\r\n \t\t\tvar planCombine = include ? context.PlanRoot.PlanCombine.Sources[i].PlanCombine : context.PlanRoot.PlanCombine.Sources[i].PlanExclude.Exclude.PlanCombine;\r\n\r\n \t\t\tfor (var a = 0; a < planCombine.Sources.length; a++) {\r\n \t\t\t\tvar nodePlanCombine = planCombine.Sources[a].PlanCombine;\r\n \t\t\t\tvar node = {\r\n \t\t\t\t\toperands: []\r\n \t\t\t\t};\r\n\r\n \t\t\t\tfor (var b = 0; b < nodePlanCombine.Sources.length; b++) {\r\n \t\t\t\t\tvar operatorExclude = !!nodePlanCombine.Sources[b].PlanExclude;\r\n \t\t\t\t\tvar operandPlanFilterField = operatorExclude ? nodePlanCombine.Sources[b].PlanExclude.Exclude.PlanFilterField : nodePlanCombine.Sources[b].PlanFilterField;\r\n\r\n \t\t\t\t\tvar operand = {\r\n \t\t\t\t\t\tvalues: operandPlanFilterField.Values,\r\n \t\t\t\t\t\tdetail: {\r\n \t\t\t\t\t\t\tfilterDetail: filters[operandPlanFilterField.Field]\r\n \t\t\t\t\t\t},\r\n \t\t\t\t\t\toperator: (function () {\r\n \t\t\t\t\t\t\tif ((operandPlanFilterField.Min < operandPlanFilterField.Max || (operandPlanFilterField.Min === operandPlanFilterField.Max === 1)))\r\n \t\t\t\t\t\t\t\treturn operatorExclude ? 'notOneOf' : 'oneOf';\r\n \t\t\t\t\t\t\telse\r\n \t\t\t\t\t\t\t\treturn operatorExclude ? 'notAllOf' : 'allOf';\r\n \t\t\t\t\t\t})()\r\n \t\t\t\t\t};\r\n\r\n \t\t\t\t\tnode.operands.push(operand);\r\n \t\t\t\t}\r\n\r\n \t\t\t\texpression.nodes.push(node);\r\n \t\t\t}\r\n\r\n \t\t\texpressions.push(expression);\r\n \t\t}\r\n \t}\r\n\r\n \treturn expressions;\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .factory('DataSalesExpression', DataSalesExpression);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Demographic\r\n * @description\r\n * # Demographic\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var DemographicService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getDemographics = ApiService.endpoint.get({\r\n url: 'api/demographic',\n memoization: false,\r\n success: function(data, params) {\r\n self.data.demographics = self.data.demographics || {};\r\n self.data.demographics[params.showCode] = data;\r\n }\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('DemographicService', DemographicService);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Discount\r\n * @description\r\n * # Discount\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var DiscountService = function ($q, $rootScope, OrderService) {\r\n 'ngInject'\r\n return function (item) {\r\n \tvar d = $q.defer();\r\n\r\n\t\t\tOrderService.getOrders({ showCode: window.getEventCode() })\r\n\t\t\t\t.then(function() {\r\n\t\t\t\t\tif(!item.getDiscount() || item.getDiscount().id <= 0)\r\n\t\t\t\t\t\td.resolve(0);\r\n\r\n\t\t var orders = OrderService.data.orders[window.getEventCode()] || [];\r\n\t\t var existingTransactions = [];\r\n\r\n\t\t orders.forEach(function(o) {\r\n\t\t \texistingTransactions = existingTransactions.concat(o.Transactions.filter(function (t) {\r\n\t\t \t\treturn t.ProductId == item.getId();\r\n\t\t \t}));\r\n\t\t });\r\n\r\n\t\t var existingDiscount = existingTransactions.reduce(function(accum, t){\r\n\t\t \tif(t.ProductDiscountId === item.getDiscount().id){\r\n\t\t\t \tif(t.TransTypeCode == 'RET')\r\n\t\t\t \t\treturn accum - t.Quantity;\r\n\t\t\t \telse if(t.TransTypeCode == 'PUR')\r\n\t\t\t \t\treturn accum + t.Quantity;\r\n\t\t\t \telse\r\n\t\t \t\t\treturn accum;\r\n\t\t \t}\r\n\t\t \telse\r\n\t\t \t\treturn accum;\r\n\t\t }, 0);\r\n\r\n\t\t //limit: item.MaxAvailableQty\r\n\t\t //max: item.MaxDiscountsPerShow\r\n\t\t //min: item.MinQualifyingQty\r\n\t\t //price: item.DiscountedUnitPrice\r\n\t\t var discount = item.getDiscount();\r\n\t\t var quantity = item.getQuantity();\r\n\t\t var amtItemAdjustment = discount.price - item.getPrice();\r\n\r\n\t\t if(discount.max > 0 && existingDiscount > 0)\r\n\t\t \td.resolve(0);\r\n\t\t else {\r\n\t\t\t if(discount.max > 0) {\r\n\t\t\t \t// THIS IS A \"ONE TIME\" DISCOUNT... SEE IF THEY MEET THE CRITERIA\r\n\t\t\t\t\t\t\t// (no discounts have been applied yet so we don't need to check again)\r\n\t\t\t\t\t\t\t// note: this logic will not work for pre-existing quantities so we won't use them for\r\n\t\t\t\t\t\t\t// determination of the discount\r\n\t\t\t \tif(quantity > discount.min){\r\n\t\t\t \t\tif((quantity - discount.min) > discount.limit)\r\n\t\t\t \t\t\td.resolve(amtItemAdjustment * discount.limit);\r\n\t\t\t \t\telse\r\n\t\t\t \t\t\td.resolve(amtItemAdjustment * (quantity - discount.min));\r\n\t\t\t \t}\r\n\t\t\t }\r\n\t\t\t else {\r\n\t\t\t \t// THIS IS A \"REOCCURRING\" DISCOUNT... SEE IF THEY MEET THE CRITERIA\r\n\t\t\t \tvar totalQualifyQty = discount.min + discount.limit;\r\n\t\t\t \tvar qtyRatio = Math.floor(quantity / totalQualifyQty);\r\n\r\n\t\t\t \tif(discount.limit == 0)\r\n\t\t\t \t\td.resolve((quantity - discount.min) * amtItemAdjustment);\r\n\t\t\t \telse if(discount.min == 0)\r\n\t\t\t \t\td.resolve(discount.limit * amtItemAdjustment);\r\n\t\t\t \telse\r\n\t\t\t \t\td.resolve(qtyRatio * discount.limit * amtItemAdjustment);\r\n\t\t\t }\r\n\t\t \t}\r\n \t});\r\n\r\n\t\t\treturn d.promise;\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .factory('DiscountService', DiscountService);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.eventBit\r\n * @description\r\n * # eventBit\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var EventBitService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getSSO = ApiService.endpoint.get({\r\n url: 'api/eventbit/sso',\r\n success: function (data, params) {\r\n self.data.sso = self.data.sso || {};\r\n self.data.sso[params.showCode] = data;\r\n }\r\n });\r\n\n self.isSPOT = ApiService.endpoint.get({\r\n url: 'api/eventbit/isSPOT',\r\n success: function (data, params) {\r\n self.data.isSPOT = self.data.isSPOT || {};\r\n self.data.isSPOT[params.showCode] = data;\r\n }\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('EventBitService', EventBitService);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Lead\r\n * @description\r\n * # Lead\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LeadService = function ($q, $timeout, $filter, ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getLeads = ApiService.endpoint.get({\r\n url: 'api/lead/getLeads',\n memoization: false,\r\n success: function (data, params) {\r\n self.data.leads = self.data.leads || {};\r\n self.data.leads[params.showCode] = extendLead(data);\r\n }\r\n });\r\n\r\n self.saveLeads = ApiService.endpoint.post({\r\n url: 'api/lead/saveLeads',\r\n success: function (data, params) {\r\n self.data.leads = self.data.leads || {};\r\n self.data.leads[params.showCode] = extendLead(self.data.leads[params.showCode]) || [];\r\n\r\n for (var i = 0; i < self.data.leads[params.showCode].length; i++)\r\n for (var a = 0; a < data.length; a++)\r\n if (self.data.leads[params.showCode][i].Id == data[a].Id)\r\n self.data.leads[params.showCode][i] = data[a];\r\n }\r\n });\n\n self.deleteLeads = ApiService.endpoint.post({\r\n url: 'api/lead/DeleteLeads',\r\n success: function (data, params) {\r\n self.data.leads = self.data.leads || {};\r\n self.data.leads[params.showCode] = self.data.leads[params.showCode] || [];\n\n data.forEach(function (id) {\n self.data.leads[params.showCode] = self.data.leads[params.showCode].filter(function (obj) {\r\n return obj.Id !== id;\r\n });\n });\r\n }\r\n });\r\n\r\n self.getLeadsCapturedBy = ApiService.endpoint.get({\r\n url: 'api/lead/getLeadCapturedByList',\n memoization: false,\r\n success: function (data, params) {\r\n self.data.leadsCapturedBy = self.data.leadsCapturedBy || {};\r\n self.data.leadsCapturedBy[params.showCode] = data;\r\n }\r\n });\n\n self.getLeadsEmailInformation = ApiService.endpoint.get({\r\n url: 'api/lead/getLeadsEmailInformation',\r\n success: function (data, params) {\r\n self.data.leadsEmailInformation = self.data.leadsCapturedBy || {};\r\n self.data.leadsEmailInformation[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getCountries = ApiService.endpoint.get({\r\n url: 'api/lead/getCountries',\r\n success: function (data, params) {\r\n self.data.countries = self.data.countries || {};\r\n self.data.countries[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getStates = ApiService.endpoint.get({\r\n url: 'api/lead/getStates',\r\n success: function (data, params) {\r\n self.data.states = self.data.states || {};\r\n self.data.states[params.showCode] = self.data.states[params.showCode] || {};\r\n self.data.states[params.showCode][params.countryCode] = data;\r\n }\r\n });\r\n\r\n self.getAllStates = ApiService.endpoint.get({\r\n url: 'api/lead/getAllStates',\r\n success: function (data, params) {\r\n self.data.allStates = self.data.allStates || {};\r\n self.data.allStates[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getSwapActivations = ApiService.endpoint.get({\r\n url: 'api/order/getSwapActivations',\r\n success: function (data, params) {\r\n self.data.swapActivations = self.data.swapActivations || {};\r\n self.data.swapActivations[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getDevKitActivationCode = ApiService.endpoint.get({\r\n url: 'api/lead/getDevKitActivationCode',\r\n success: function (data, params) {\r\n self.data.activationCodes = self.data.activationCodes || {};\r\n self.data.activationCodes[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.hasDevKit = ApiService.endpoint.get({\r\n url: 'api/lead/getDevKit',\r\n success: function (data, params) {\r\n self.data.hasDevKit = self.data.hasDevKit || {};\r\n self.data.hasDevKit[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.activateDevKit = ApiService.endpoint.post({\r\n url: 'api/lead/activateDevKit'\r\n });\r\n\r\n self.uploadBarcodes = ApiService.endpoint.post({\r\n url: 'api/lead/uploadBarcodes'\r\n });\r\n\r\n self.getLeadDates = function (showcode) {\r\n var d = $q.defer();\r\n\r\n self.data.leadDates = self.data.leadDates || {};\r\n\r\n if (self.data.leadDates[showcode])\r\n $timeout(function () {\r\n d.resolve();\r\n });\r\n else {\r\n var leadDates = {},\r\n toReturn = [];\r\n\r\n self.getLeads({ showCode: showcode }).then(function () {\r\n for (var i = 0; i < self.data.leads[showcode].length; i++) {\r\n var shortDate = $filter('date')(self.data.leads[showcode][i].LeadDate, 'shortDate', self.data.leads[showcode][i].TimeZoneOffset);\r\n\r\n //save the shortDate on the lead object so that we don't have to recalc it when filtering\r\n self.data.leads[showcode][i].shortLeadDate = shortDate;\r\n\r\n if (!leadDates[shortDate]) {\r\n leadDates[shortDate] = 1;\r\n\r\n toReturn.push(shortDate);\r\n }\r\n }\r\n\r\n\r\n self.data.leadDates[showcode] = toReturn;\r\n d.resolve();\r\n });\r\n }\r\n\r\n return d.promise;\r\n };\n\n function extendLead(leads) {\n return leads.map(function (l) {\n return angular.extend({}, l, {\n LeadType: 'SCAN'\n });\r\n })\r\n }\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('LeadService', LeadService);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.LeadActivity\r\n * @description\r\n * # LeadActivity\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LeadActivityService = function (ApiService, $filter) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getLeadSources = ApiService.endpoint.get({\r\n url: 'api/leadActivity/getLeadsBySource',\r\n success: function (data, params) {\r\n self.data.leadSources = self.data.leadSources || {};\r\n self.data.leadSources[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getLeadsByDemographicQuestion = ApiService.endpoint.get({\r\n url: 'api/leadActivity/getLeadsByDemographicQuestion',\r\n success: function (data, params) {\r\n self.data.leadDemographics = self.data.leadDemographics || {};\r\n self.data.leadDemographics[params.showCode] = self.data.leadDemographics[params.showCode] || {};\r\n self.data.leadDemographics[params.showCode][params.fieldDetailId] = data;\r\n }\r\n });\r\n\r\n self.getLeadsBySurveyQuestion = ApiService.endpoint.get({\r\n url: 'api/leadActivity/getLeadsBySurveyQuestion',\r\n success: function (data, params) {\r\n self.data.leadSurveys = self.data.leadSurveys || {};\r\n self.data.leadSurveys[params.showCode] = self.data.leadSurveys[params.showCode] || {};\r\n self.data.leadSurveys[params.showCode][params.surveyQuestionId] = data;\r\n }\r\n });\r\n\r\n self.getLeadsByDay = ApiService.endpoint.get({\r\n url: 'api/leadActivity/getLeadsByDay',\r\n success: function (data, params) {\r\n self.data.leadDays = self.data.leadDays || {};\r\n self.data.leadDays[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getLeadSummary = ApiService.endpoint.get({\r\n url: 'api/leadActivity/getSummary',\r\n success: function (data, params) {\r\n self.data.leadSummary = self.data.leadSummary || {};\r\n self.data.leadSummary[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getSPOTSummary = ApiService.endpoint.get({\r\n url: 'api/leadActivity/getSPOTSummary',\r\n success: function (data, params) {\r\n self.data.SPOTSummary = self.data.SPOTSummary || {};\r\n self.data.SPOTSummary[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getEventBitCompanySummary = ApiService.endpoint.get({\r\n url: 'api/leadActivity/getEventBitCompanySummary',\r\n success: function (data, params) {\r\n self.data.eBitCompanySummary = self.data.eBitCompanySummary || {};\r\n self.data.eBitCompanySummary[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getLeads = ApiService.endpoint.get({\r\n url: 'api/lead/getLeads',\r\n success: function (data, params) {\r\n self.data.leads = self.data.leads || {};\r\n self.data.leads[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.parseChartData = function (data, otherLabel) {\r\n data = data || [];\r\n return angular.injector(['ng']).invoke(['$filter', function ($filter) {\r\n var labels = [],\r\n series = [],\r\n other = 0;\r\n\r\n data = $filter('orderBy')(data, 'Count', true);\r\n\r\n for (var i = 0; i < 5 && i < data.length; i++) {\r\n labels.push(data[i].Source);\r\n series.push(data[i].Count);\r\n }\r\n\r\n for (i = 5; i < data.length; i++)\r\n other += data[i].Count;\r\n\r\n if (data.length > 5) {\r\n labels.push(otherLabel || 'Other');\r\n series.push(other);\r\n }\r\n\r\n return {\r\n labels: labels,\r\n series: series\r\n };\r\n }]);\r\n }\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('LeadActivityService', LeadActivityService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.leadExport\r\n * @description\r\n * # Lead Export\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LeadExportService = function ($q, $timeout, $filter, SurveyService, DemographicService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n var columns = [\r\n {\r\n name: 'Lead Type',\r\n key: 'LeadType'\r\n },\r\n {\r\n name: 'Lead Id',\r\n key: 'Id'\r\n },\r\n {\r\n name: 'Captured Date',\r\n key: 'LeadDate'\r\n },\r\n {\r\n name: 'More Capture Times',\r\n key: 'MoreCaptureTimes'\r\n },\r\n {\r\n name: 'Captured By',\r\n key: 'SalesPerson'\r\n },\r\n {\r\n name: 'Badge Id',\r\n key: 'Contact.ConnectKey'\r\n },\r\n {\r\n name: 'FirstName',\r\n key: 'Contact.FirstName'\r\n },\r\n {\r\n name: 'LastName',\r\n key: 'Contact.LastName'\r\n },\r\n {\r\n name: 'Title',\r\n key: 'Contact.Title'\r\n },\r\n {\r\n name: 'Company',\r\n key: 'Contact.Company'\r\n },\r\n {\r\n name: 'Company2',\r\n key: 'Contact.Company2'\r\n },\r\n {\r\n name: 'Address',\r\n key: 'Contact.Address.Address'\r\n },\r\n {\r\n name: 'Address2',\r\n key: 'Contact.Address.Address2'\r\n },\r\n {\r\n name: 'Address3',\r\n key: 'Contact.Address.Address3'\r\n },\r\n {\r\n name: 'City',\r\n key: 'Contact.Address.City'\r\n },\r\n {\r\n name: 'StateCode',\r\n key: 'Contact.Address.StateCode'\r\n },\r\n {\r\n name: 'ZipCode',\r\n key: 'Contact.Address.ZipCode'\r\n },\r\n {\r\n name: 'CountryCode',\r\n key: 'Contact.Address.CountryCode'\r\n },\r\n {\r\n name: 'Email',\r\n key: 'Contact.Email'\r\n },\r\n {\r\n name: 'Phone',\r\n key: 'Contact.Phone'\r\n },\r\n {\r\n name: 'PhoneExtension',\r\n key: 'Contact.PhoneExtension'\r\n },\r\n {\r\n name: 'Fax',\r\n key: 'Contact.Fax'\r\n },\r\n {\r\n name: 'Notes',\r\n key: 'Notes'\r\n },\r\n {\r\n name: 'Total Dwell Time (Min.)',\r\n key: 'TotalDwellMinutes'\r\n },\r\n {\r\n name: 'Targeted Leads Captured',\r\n key: 'LeadOwnerSpotted'\r\n },\r\n {\r\n name: 'Collateral',\r\n key: 'CollateralFormatted'\r\n },\r\n {\r\n name: \"Rating\",\r\n key: \"Rating\"\r\n }\r\n ];\r\n\r\n self.getHeaders = function (showCode, leads, hasPurchasedEventBit) {\r\n var d = $q.defer();\r\n var dwellTimeColumns = getDwellTimeColumns(leads);\r\n\r\n if (!self.data[showCode] || !self.data[showCode].headers)\r\n $q.all([\r\n getDemographicColumns(showCode),\r\n getSurveyColumns(showCode)\r\n ])\r\n .then(function (data) {\r\n self.data[showCode] = self.data[showCode] || {};\r\n self.data[showCode].columns = angular.copy(columns);\r\n\r\n if (hasPurchasedEventBit) {\r\n //omit \"Total Dwell Time\" column if there is no dwell time data or only a single location\r\n if (!dwellTimeColumns.length || dwellTimeColumns.length === 1)\r\n self.data[showCode].columns = self.data[showCode].columns.filter(function (x) { return x.key !== 'TotalDwellMinutes'; });\r\n //omit SPOT columns if there is no data\r\n if (!leads.filter(function (l) { return l.LeadOwnerSpotted || l.NonLeadOwnerSpotted; }).length)\r\n self.data[showCode].columns = self.data[showCode].columns.filter(function (x) {\r\n return [\r\n 'LeadOwnerSpotted',\r\n 'NonLeadOwnerSpotted'\r\n ].indexOf(x.key) === -1;\r\n });\r\n\r\n self.data[showCode].columns = self.data[showCode].columns.concat(dwellTimeColumns);\r\n }\r\n else {\r\n self.data[showCode].columns = self.data[showCode].columns.filter(function (x) {\r\n return [\r\n 'TotalDwellMinutes',\r\n 'LeadOwnerSpotted',\r\n 'NonLeadOwnerSpotted'\r\n ].indexOf(x.key) === -1;\r\n });\r\n }\r\n\r\n self.data[showCode].columns = self.data[showCode].columns.concat(data[0]);\r\n self.data[showCode].columns = self.data[showCode].columns.concat(data[1]);\r\n\r\n var names = [];\r\n var dupes = {};\r\n\r\n for (var i = 0; i < self.data[showCode].columns.length; i++) {\r\n var name = self.data[showCode].columns[i].name;\r\n\r\n dupes[name] = dupes[name] || 1;\r\n\r\n if (dupes[name] > 1) {\r\n self.data[showCode].columns[i].name = name + dupes[name];\r\n names.push(self.data[showCode].columns[i].name);\r\n }\r\n else\r\n names.push(name);\r\n\r\n dupes[name]++;\r\n }\r\n\r\n self.data[showCode].headers = names;\r\n d.resolve();\r\n });\r\n else\r\n $timeout(function () {\r\n d.resolve();\r\n });\r\n\r\n return d.promise;\r\n };\r\n\r\n function getDemographicColumns(showCode) {\r\n return DemographicService\r\n .getDemographics({ showCode: showCode })\r\n .then(function () {\r\n var columns = [];\r\n\r\n for (var i = 0; i < DemographicService.data.demographics[showCode].length; i++) {\r\n columns.push({\r\n name: DemographicService.data.demographics[showCode][i].Description,\r\n key: 'Contact.DemographicAnswers',\r\n responseKey: 'ParentId',\r\n responseValue: DemographicService.data.demographics[showCode][i].Id\r\n });\r\n }\r\n\r\n return columns;\r\n });\r\n }\r\n\r\n function getSurveyColumns(showCode) {\r\n return SurveyService\r\n .getSurveys({ showCode: showCode })\r\n .then(function () {\r\n var columns = [];\r\n\r\n for (var a = 0; a < SurveyService.data.surveys[showCode].length; a++)\r\n if (SurveyService.data.surveys[showCode][a].IsActive)\r\n for (var i = 0; i < SurveyService.data.surveys[showCode][a].SurveyQuestions.length; i++)\r\n if (SurveyService.data.surveys[showCode][a].SurveyQuestions[i].IsActive)\r\n columns.push({\r\n //apparantly if the last column header in excel can be coerced into a number it shifts all the columns over....\r\n //try to detect if column headers can be coerced, if true than add a space to force it to a string, sigh....\r\n name: (function (x) { return isNaN(x) ? x : x + \" \"; })(SurveyService.data.surveys[showCode][a].SurveyQuestions[i].Text),\r\n key: 'SurveyAnswers',\r\n responseKey: 'ParentId',\r\n responseValue: SurveyService.data.surveys[showCode][a].SurveyQuestions[i].Id\r\n });\r\n\r\n return columns;\r\n });\r\n }\r\n\r\n function getDwellTimeColumns(leads) {\r\n var columns = [];\r\n\r\n for (var i = 0; i < leads.length; i++)\r\n if (leads[i].DwellTimes)\r\n for (var a = 0; a < leads[i].DwellTimes.length; a++)\r\n if (!columns.filter(function (x) { return x.responseValue === leads[i].DwellTimes[a].LocationID }).length)\r\n columns.push({\r\n name: leads[i].DwellTimes[a].Name + ' - Dwell Time (min.)',\r\n key: 'DwellTimes',\r\n responseKey: 'LocationID',\r\n responseValue: leads[i].DwellTimes[a].LocationID\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n function getExportRow(showCode, columns, input, type) {\r\n var row = {};\r\n\r\n for (var i = 0; i < columns.length; i++) {\r\n var props = columns[i].key.split('.');\r\n\r\n (function recurse(props, input) {\r\n if (props.length) {\r\n var prop = props[0];\r\n\r\n if (input[prop] && props.length > 1)\r\n return recurse(props.splice(1), input[prop]);\r\n else {\r\n if (columns[i].responseKey && Array.isArray(input[prop])) {\r\n var answers = [];\r\n\r\n if (columns[i].key === 'DwellTimes' && (!input[prop].length || !input[prop].filter(function (x) { return x.LocationID === columns[i].responseValue; }).length))\r\n answers.push(0);\r\n\r\n for (var a = 0; a < input[prop].length; a++)\r\n if (input[prop][a][columns[i].responseKey] == columns[i].responseValue) {\r\n if (columns[i].key === 'Contact.DemographicAnswers') {\r\n for (var b = 0; b < DemographicService.data.demographics[showCode].length; b++) {\r\n if (DemographicService.data.demographics[showCode][b].Id == columns[i].responseValue) {\r\n if (DemographicService.data.demographics[showCode][b].FieldTypeCode === 'OPN')\r\n answers.push(input[prop][a].Response);\r\n else\r\n for (var c = 0; c < DemographicService.data.demographics[showCode][b].FieldPicks.length; c++)\r\n if (DemographicService.data.demographics[showCode][b].FieldPicks[c].PickCode == input[prop][a].Response) {\r\n answers.push(DemographicService.data.demographics[showCode][b].FieldPicks[c].Description);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n else if (columns[i].key === 'DwellTimes')\r\n answers.push(input[prop][a].TotalMinutes);\r\n else\r\n answers.push(input[prop][a].Response);\r\n }\r\n\r\n row[columns[i].name] = answers.join(' | ');\r\n }\r\n else if (columns[i].key === 'LeadDate')\r\n row[columns[i].name] = $filter('date')(input[prop], 'short', input.TimeZoneOffset);\r\n else if (columns[i].key === 'MoreCaptureTimes')\r\n row[columns[i].name] = (input[prop] || []).map(function (x) {\r\n return $filter('date')(x, 'short', input.TimeZoneOffset);\r\n }).join(' | ');\r\n else if (columns[i].key === 'Contact.Address.ZipCode' && type && type.toUpperCase() === 'CSV')\r\n row[columns[i].name] = input[prop] ? ('\\'' + input[prop] + '\\'') : '';\r\n else if (['LeadOwnerSpotted', 'NonLeadOwnerSpotted'].indexOf(columns[i].key) > -1)\r\n row[columns[i].name] = (!!input['LeadOwnerSpotted'] || !!input['NonLeadOwnerSpotted']) ? 'true' : 'false';\r\n else if (columns[i].key === 'Rating')\r\n row[columns[i].name] = angular.isDefined(input['Rating']) ? input['Rating'] : '';\r\n else\r\n row[columns[i].name] = input[prop];\r\n }\r\n }\r\n })(props, input);\r\n }\r\n\r\n return row;\r\n }\r\n\r\n self.getExport = function (showCode, data, type) {\r\n var r = [];\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n r.push(getExportRow(showCode, self.data[showCode].columns, data[i], type));\r\n }\r\n\r\n return r;\r\n };\r\n\r\n self.getExportCSV = function (showCode, headers, data, type) {\r\n var exportData = self.getExport(showCode, data, type);\r\n var csv = '';\r\n var row = '';\r\n\r\n // headers\r\n for (var i = 0; i < headers.length; i++) {\r\n row += JSON.stringify(headers[i]) + ',';\r\n }\r\n row = row.slice(0, -1);\r\n csv += row + '\\r\\n';\r\n\r\n // data\r\n for (var i = 0; i < exportData.length; i++) {\r\n row = '';\r\n\r\n for (var x = 0; x < headers.length; x++) {\r\n\r\n if (exportData[i][headers[x]]) {\r\n var temp = JSON.stringify(exportData[i][headers[x]]).slice(1, -1) \r\n if (temp.includes('\"')) {\r\n row += '\"' + temp.replaceAll('\\\\\"', '') + '\"' + ',';\r\n }\r\n else {\r\n row += JSON.stringify(exportData[i][headers[x]]) + ',';\r\n }\r\n } else {\r\n row += ',';\r\n }\r\n }\r\n row = row.slice(0, -1);\r\n csv += row + '\\r\\n';\r\n }\r\n\r\n return csv;\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('LeadExportService', LeadExportService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.LeadFollowUp\r\n * @description\r\n * # LeadFollowUp\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LeadFollowUpService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getFollowUpConfig = ApiService.endpoint.get({\r\n url: 'api/followUp/getFollowUpConfig',\r\n success: function (data, params) {\r\n self.data.followUpConfigs = self.data.followUpConfigs || {};\r\n self.data.followUpConfigs[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.saveFollowUpConfig = ApiService.endpoint.post({\r\n url: 'api/followUp/saveFollowUpConfig',\r\n success: function (data, params) {\r\n self.data.followUpConfigs = self.data.followUpConfigs || {};\r\n self.data.followUpConfigs[this.params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getTemplate = ApiService.endpoint.get({\r\n url: 'api/followUp/getTemplate',\r\n success: function (data, params) {\r\n self.data.templateHtml = self.data.templateHtml || {};\r\n self.data.templateHtml[params.showCode] = data;\r\n }\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('LeadFollowUpService', LeadFollowUpService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalLoginApp.Login\r\n * @description\r\n * # Login\r\n * Service in the exhibitorPortalLoginApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var LoginService = function (ApiService, $window) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {\r\n show: {},\r\n exhibitor: {}\r\n };\r\n\r\n self.data.messages = window.Messages;\r\n\r\n if (window.PwdUser && window.PwdUser.ContactID) {\r\n $window.sessionStorage['SWAP|PwdUser'] = angular.toJson(window.PwdUser);\r\n }\r\n\r\n if (window.CompanyLogin) {\r\n $window.sessionStorage['SWAP|CompanyLogin'] = angular.toJson(window.CompanyLogin);\r\n }\r\n\r\n self.getPwdUser = function () {\r\n return angular.fromJson($window.sessionStorage['SWAP|PwdUser']);\r\n };\r\n\r\n self.clearPwdUser = function () {\r\n $window.sessionStorage.removeItem('SWAP|PwdUser');\r\n };\r\n\r\n self.getCompanyLogin = function () {\r\n return angular.fromJson($window.sessionStorage['SWAP|CompanyLogin']);\r\n };\r\n\r\n self.clearCompanyLogin = function () {\r\n $window.sessionStorage.removeItem('SWAP|CompanyLogin');\r\n };\r\n\r\n self.clearChoices = function () {\r\n self.data.show = {};\r\n self.data.exhibitor = {};\r\n };\r\n\r\n self.getShowsByName = ApiService.endpoint.get({\r\n url: 'api/loginApi/GetShowsByName',\r\n success: function (data, params) {\r\n self.data.shows = data || [];\r\n }\r\n });\r\n\r\n self.getExhibitorsByShowCode = ApiService.endpoint.get({\r\n url: 'api/loginApi/GetExhibitorsByShowCode',\r\n memoization: false,\r\n success: function (data, params) {\r\n self.data.exhibitors = data || [];\r\n }\r\n });\r\n\r\n self.getContactByEmailShowCodeExhibitorID = ApiService.endpoint.get({\r\n url: 'api/loginApi/GetContactByEmailShowCodeExhibitorID',\r\n memoization: false\r\n });\r\n\r\n self.userNameLogin = ApiService.endpoint.post({\r\n url: 'api/loginApi/Login'\r\n });\r\n\r\n self.activationLogin = ApiService.endpoint.post({\r\n url: 'api/loginApi/SWAPManualLogin'\r\n });\r\n\r\n self.sendChangePasswordEmail = ApiService.endpoint.post({\r\n url: 'api/loginApi/SendChangePasswordEmail'\r\n });\r\n\r\n self.changePassword = ApiService.endpoint.post({\r\n url: 'api/loginApi/ChangePassword'\r\n });\r\n\r\n self.sendGetHelp = ApiService.endpoint.post({\r\n url: 'api/loginApi/SendGetHelp'\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalLoginApp')\r\n .service('LoginService', LoginService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Order\r\n * @description\r\n * # Order\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var OrderService = function ($log, ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getOrders = ApiService.endpoint.get({\r\n url: 'api/order/getOrders',\r\n success: function (data, params) {\r\n self.data.orders = self.data.orders || {};\r\n self.data.orders[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getConfirmationHtml = ApiService.endpoint.get({\r\n url: 'api/order/getConfirmationHtml',\r\n success: function (data, params) {\r\n self.data.confirmations = self.data.confirmations || {};\r\n self.data.confirmations[params.showCode] = self.data.confirmations[params.showCode] || {};\r\n self.data.confirmations[params.showCode][params.salesOrderId] = data;\r\n }\r\n });\r\n\r\n self.getSwapActivations = ApiService.endpoint.get({\r\n url: 'api/order/getSwapActivations',\r\n success: function (data, params) {\r\n self.data.swapActivations = self.data.swapActivations || {};\r\n self.data.swapActivations[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.processOrder = ApiService.endpoint.post({\r\n url: 'api/order/processOrder'\r\n });\n\n self.processPendingOrder = ApiService.endpoint.post({\r\n url: 'api/order/processPendingOrder'\r\n });\r\n\r\n self.completeOrder = ApiService.endpoint.post({\r\n url: 'api/order/completeOrder',\r\n success: function (data, params) {\r\n $log.log(data);\r\n }\r\n });\r\n\r\n self.sendExtraConfirmation = ApiService.endpoint.post({\r\n url: 'api/order/sendExtraConfirmation'\r\n });\r\n\r\n self.getOrder = ApiService.endpoint.get({\r\n url: 'api/order/getOrder',\r\n success: function (data, params) {\r\n self.data.order = self.data.orders || {};\r\n self.data.order[params.salesOrderId] = data;\r\n }\r\n });\r\n\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('OrderService', OrderService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Products\r\n * @description\r\n * # Products\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var ProductsService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getProducts = ApiService.endpoint.get({\r\n url: 'api/products/getProducts',\r\n success: function(data, params) {\r\n self.data.products = self.data.products || {};\r\n self.data.products[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getPurchasedProducts = ApiService.endpoint.get({\r\n url: 'api/products/getPurchasedProducts',\r\n success: function (data, params) {\r\n self.data.purchasedProducts = self.data.purchasedProducts || {};\r\n self.data.purchasedProducts[params.showCode] = self.data.purchasedProducts[params.showCode] || {};\r\n self.data.purchasedProducts[params.showCode][params.exhibitorId] = data;\r\n }\r\n });\r\n\r\n self.getShowExhibitorBoothRecommendation = ApiService.endpoint.get({\r\n url: 'api/products/getShowExhibitorBoothRecommendation',\r\n success: function (data, params) {\r\n self.data.showExhibitorBoothRecommendation = self.data.showExhibitorBoothRecommendation || {};\r\n self.data.showExhibitorBoothRecommendation[params.exhibitorId] = self.data.showExhibitorBoothRecommendation[params.exhibitorId] || {};\r\n self.data.showExhibitorBoothRecommendation[params.exhibitorId][params.showExhibitorBoothID] = self.data.showExhibitorBoothRecommendation[params.exhibitorId][params.showExhibitorBoothID] || {};\r\n self.data.showExhibitorBoothRecommendation[params.exhibitorId][params.showExhibitorBoothID][params.boothWorkers] = self.data.showExhibitorBoothRecommendation[params.exhibitorId][params.showExhibitorBoothID][params.boothWorkers] || {};\r\n self.data.showExhibitorBoothRecommendation[params.exhibitorId][params.showExhibitorBoothID][params.boothWorkers][params.surveyBoothsize] = self.data.showExhibitorBoothRecommendation[params.exhibitorId][params.showExhibitorBoothID][params.boothWorkers][params.surveyBoothsize] || {};\r\n self.data.showExhibitorBoothRecommendation[params.exhibitorId][params.showExhibitorBoothID][params.boothWorkers][params.surveyBoothsize][params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getProductImages = ApiService.endpoint.get({\r\n url: 'api/products/getProductImages',\r\n success: function (data, params) {\r\n self.data.productImages = self.data.productImages || {};\r\n self.data.productImages[params.productID] = data;\r\n }\r\n });\r\n\r\n self.getDataSalesProducts = ApiService.endpoint.get({\r\n url: 'api/products/getDataSalesProducts',\r\n success: function(data, params) {\r\n self.data.dataSalesProducts = self.data.dataSalesProducts || {};\r\n self.data.dataSalesProducts[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getUpsell = ApiService.endpoint.get({\r\n url: 'api/products/getUpsell',\r\n success: function(data, params) {\r\n self.data.upsell = self.data.upsell || {};\r\n self.data.upsell[params.showCode] = self.data.upsell[params.showCode] || {};\r\n self.data.upsell[params.showCode][params.productIds] = data;\r\n }\r\n });\r\n\r\n self.cartSummary = ApiService.endpoint.post({\r\n url: 'api/products/cartSummary'\r\n });\r\n\r\n self.validateCart = ApiService.endpoint.post({\r\n url: 'api/products/validateCart'\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('ProductsService', ProductsService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Resource\r\n * @description\r\n * # Resource\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var ResourceService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getResources = ApiService.endpoint.get({\r\n url: 'api/resource/getResources',\r\n success: function (data, params) {\r\n self.data.resources = self.data.resources || {};\r\n self.data.resources[params.subFolder] = data;\r\n }\r\n });\r\n\r\n self.getExhibitorResources = ApiService.endpoint.get({\r\n url: 'api/resource/getExhibitorResources',\r\n success: function (data, params) {\r\n self.data.resources = self.data.resources || {};\r\n self.data.resources[params.showCode] = data;\r\n }\r\n });\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('ResourceService', ResourceService);\r\n})(angular, window);\r\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Search\r\n * @description\r\n * # Search\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n angular.module('exhibitorPortalApp')\r\n .constant('SearchBase', {\r\n events: {\r\n data: [],\r\n filters: {},\r\n filtering: 0,\r\n chapterSize: 5,\r\n pageSize: 10,\r\n currentChapter: 0,\r\n currentPage: 0\r\n },\r\n leads: {\r\n data: [],\r\n filters: {},\r\n filtering: 0,\r\n chapterSize: 5,\r\n pageSize: 40,\r\n currentChapter: 0,\r\n currentPage: 0,\r\n sort: 'LeadDate',\r\n sortDirection: true,\r\n sortInverse: true,\r\n displayMode: 'block'\r\n },\r\n surveys: {\r\n data: [],\r\n filters: {},\r\n filtering: false,\r\n searchText: '',\r\n chapterSize: 5,\r\n pageSize: 10,\r\n currentChapter: 0,\r\n currentPage: 0,\r\n sort: 'DisplayOrder',\r\n edit: false,\n editDefault: false\r\n },\r\n survey: {\r\n data: [],\r\n filters: {},\r\n filtering: false,\r\n searchText: '',\r\n chapterSize: 5,\r\n pageSize: 10,\r\n currentChapter: 0,\r\n currentPage: 0,\r\n sort: 'DisplayOrder',\r\n edit: false\r\n },\r\n surveyQuestion: {\r\n data: [],\r\n filters: {},\r\n filtering: false,\r\n searchText: '',\r\n chapterSize: 5,\r\n pageSize: 10,\r\n currentChapter: 0,\r\n currentPage: 0,\r\n sort: 'DisplayOrder',\r\n edit: false\r\n },\n resources: {\r\n data: [],\r\n filters: {},\r\n filtering: false,\r\n searchText: '',\r\n chapterSize: 5,\r\n pageSize: 10,\r\n currentChapter: 0,\r\n currentPage: 0,\r\n sort: 'DisplayOrder'\r\n },\r\n dataSales: {\r\n filters: {\r\n\r\n },\r\n expressions: [\r\n {\r\n include: 'true',\r\n nodes: [\r\n {\r\n operands: [\r\n {\r\n operator: 'oneOf',\r\n values: []\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n email: {\r\n subject: '',\r\n from: ''\r\n },\r\n pageSize: 10\r\n }\r\n });\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Show\r\n * @description\r\n * # Show\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var ShowService = function ($q, $timeout, ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.addShow = ApiService.endpoint.get({\r\n url: 'api/show/addShow'\r\n });\r\n\r\n self.getShows = ApiService.endpoint.get({\r\n url: 'api/show',\r\n success: function (data) {\r\n self.data.shows = data;\r\n }\r\n });\r\n\r\n self.getShowAdditionalInfo = ApiService.endpoint.get({\r\n url: 'api/show/getShowAdditionalInfo',\r\n success: function(data, params) {\r\n self.data.showAdditionalInfo = self.data.showAdditionalInfo || {};\r\n self.data.showAdditionalInfo[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.hasActivations = ApiService.endpoint.get({\r\n url: 'api/show/hasActivations',\r\n success: function(data, params) {\r\n self.data.activations = self.data.activations || {};\r\n self.data.activations[params.showCode] = data;\r\n },\r\n error: function(promise, data, status, headers, config){\r\n self.data.activations = self.data.activations || {};\r\n promise.resolve(self.data.activations[config.params.showCode] = 0);\r\n }\r\n });\r\n\r\n self.getShow = function (showCode) {\r\n var d = $q.defer();\r\n\r\n if (self.data.currentShow && self.data.currentShow.ShowCode.toUpperCase() === showCode.toUpperCase())\r\n $timeout(function () {\r\n d.resolve();\r\n });\r\n else if (showCode) {\r\n if (self.data.shows && self.data.shows.length) {\r\n var show;\r\n showCode = showCode.toUpperCase();\r\n\r\n for(var i = 0; i < self.data.shows.length; i++)\r\n if (self.data.shows[i].ShowCode.toUpperCase() === showCode) {\r\n show = self.data.shows[i];\r\n break;\r\n }\r\n\r\n if (show) {\r\n self.data.currentShow = show;\r\n $timeout(function () {\r\n d.resolve();\r\n });\r\n }\r\n else\r\n throw 'Event was not found!';\r\n }\r\n else\r\n self\r\n .getShows()\r\n .then(function () {\r\n self\r\n .getShow(showCode)\r\n .then(function () {\r\n d.resolve();\r\n });\r\n });\r\n }\r\n\r\n return d.promise;\r\n };\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('ShowService', ShowService);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.Survey\r\n * @description\r\n * # Survey\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var SurveyService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.getSurveys = ApiService.endpoint.get({\r\n url: 'api/survey/getSurveys',\r\n success: function (data, params) {\r\n self.data.surveys = self.data.surveys || {};\n if (data) {\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].SurveyQuestions.length; j++) {\n data[i].SurveyQuestions[j].SurveyAnswers = cleanUpNextQuestionId(data[i].SurveyQuestions[j].SurveyAnswers);\r\n }\r\n }\r\n }\r\n self.data.surveys[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getSurvey = ApiService.endpoint.get({\r\n url: 'api/survey/getSurvey',\r\n memoization: false,\r\n success: function (data, params) {\r\n var exists = false;\r\n self.data.surveys = self.data.surveys || {};\r\n self.data.surveys[params.showCode] = self.data.surveys[params.showCode] || [];\n\n if (data) {\n for (var j = 0; j < data.SurveyQuestions.length; j++) {\n data.SurveyQuestions[j].SurveyAnswers = cleanUpNextQuestionId(data.SurveyQuestions[j].SurveyAnswers);\r\n }\r\n }\r\n\r\n if (data.Id === 0) {\r\n //if there isn't an unsaved survey template already then add it\r\n if (!self.data.surveys[params.showCode].filter(function (x) { return !x.Id; }).length)\r\n self.data.surveys[params.showCode].push(data);\r\n }\r\n else {\r\n for (var i = 0; i < self.data.surveys[params.showCode].length; i++)\r\n if (self.data.surveys[params.showCode][i].Id == data.Id) {\r\n self.data.surveys[params.showCode][i] = data;\r\n exists = true;\r\n break;\r\n }\r\n\r\n if (!exists)\r\n self.data.surveys[params.showCode].push(data);\r\n }\r\n }\r\n });\n\n self.getHistoricalSurveys = ApiService.endpoint.get({\r\n url: 'api/survey/getHistoricalSurveys',\r\n memoization: false,\r\n success: function (data) {\r\n self.data.historicalSurveys = self.data.historicalSurveys || {};\r\n self.data.historicalSurveys = data;\r\n }\r\n });\r\n\r\n self.saveSurvey = ApiService.endpoint.post({\r\n url: 'api/survey/saveSurvey',\r\n success: function (data, params) {\r\n var exists = false;\r\n self.data.surveys = self.data.surveys || {};\r\n self.data.surveys[params.showCode] = self.data.surveys[params.showCode] || [];\r\n\r\n for (var i = 0; i < self.data.surveys[params.showCode].length; i++)\r\n if (self.data.surveys[params.showCode][i].Id == data.Id) {\r\n self.data.surveys[params.showCode][i] = data;\r\n exists = true;\r\n break;\r\n }\r\n\r\n if (!exists)\r\n for (i = 0; i < self.data.surveys[params.showCode].length; i++)\r\n if (self.data.surveys[params.showCode][i].Id === 0) {\r\n self.data.surveys[params.showCode][i] = data;\r\n break;\r\n }\r\n }\r\n });\r\n\r\n self.getSurveyQuestions = ApiService.endpoint.get({\r\n url: 'api/survey/getSurveyQuestions',\r\n memoization: false,\r\n success: function (data, params) {\r\n self.data.surveyQuestions = self.data.surveyQuestions || {};\n if (data) {\n for (var i = 0; i < data.length; i++) {\n data[i].SurveyAnswers = cleanUpNextQuestionId(data[i].SurveyAnswers);\r\n }\n }\r\n self.data.surveyQuestions[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.getSurveyQuestion = ApiService.endpoint.get({\r\n url: 'api/survey/getSurveyQuestion',\r\n memoization: false,\r\n success: function (data, params) {\r\n for (var i = 0; i < self.data.surveys[params.showCode].length; i++)\r\n if (self.data.surveys[params.showCode][i].Id == params.surveyId) {\r\n for (var a = 0; a < self.data.surveys[params.showCode][i].SurveyQuestions.length; a++)\r\n if (self.data.surveys[params.showCode][i].SurveyQuestions[a].Id == data.Id) {\n if (data) {\n data.SurveyAnswers = cleanUpNextQuestionId(data.SurveyAnswers);\n }\r\n self.data.surveys[params.showCode][i].SurveyQuestions[a] = data;\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n });\r\n\r\n self.saveSurveyQuestion = ApiService.endpoint.post({\r\n url: 'api/survey/saveSurveyQuestion',\r\n success: function (data, params) {\r\n var i, a, exists = false;\r\n self.data.surveysQuestion = self.data.surveysQuestion || {};\r\n self.data.surveysQuestion[params.showCode] = self.data.surveysQuestion[params.showCode] || [];\r\n\r\n for (i = 0; i < self.data.surveys[params.showCode].length; i++)\r\n if (self.data.surveys[params.showCode][i].Id == params.surveyId)\r\n for (a = 0; a < self.data.surveys[params.showCode][i].SurveyQuestions.length; a++)\r\n if (self.data.surveys[params.showCode][i].SurveyQuestions[a].Id == data.Id) {\r\n self.data.surveys[params.showCode][i].SurveyQuestions[a] = data;\r\n exists = true;\r\n break;\r\n }\r\n\r\n if (!exists)\r\n for (i = 0; i < self.data.surveys[params.showCode].length; i++)\r\n if (self.data.surveys[params.showCode][i].Id == params.surveyId)\r\n for (a = 0; a < self.data.surveys[params.showCode][i].SurveyQuestions.length; a++)\r\n if (self.data.surveys[params.showCode][i].SurveyQuestions[a].Id === 0) {\r\n self.data.surveys[params.showCode][i].SurveyQuestions[a] = data;\r\n break;\r\n }\r\n }\r\n });\r\n\r\n self.getSurveyAnswers = ApiService.endpoint.get({\r\n url: 'api/survey/getSurveyAnswers',\r\n success: function (data, params) {\r\n self.data.surveyAnswers = self.data.surveyAnswers || {};\n data = cleanUpNextQuestionId(data);\r\n self.data.surveyAnswers[params.showCode] = data;\r\n }\r\n });\r\n\r\n self.addSurveyAnswers = ApiService.endpoint.post({\r\n url: 'api/survey/addSurveyAnswers',\r\n success: function (data, params) {\r\n self.data.surveyAnswers = self.data.surveyAnswers || {};\r\n self.data.surveyAnswers[params.showCode] = self.data.surveyAnswers[params.showCode] || [];\r\n self.data.surveyAnswers[params.showCode] = self.data.surveyAnswers[params.showCode].concat(data);\r\n }\r\n });\r\n\r\n self.saveSurveyAnswer = ApiService.endpoint.post({\r\n url: 'api/survey/saveSurveyAnswer',\r\n success: function (data, params) {\r\n self.data.surveyAnswers = self.data.surveyAnswers || {};\r\n self.data.surveyAnswers[params.showCode] = self.data.surveyAnswers[params.showCode] || [];\r\n\r\n for (var i = 0; i < self.data.surveyAnswers[params.showCode].length; i++)\r\n if (self.data.surveyAnswers[params.showCode][i].Id == data.Id) {\r\n self.data.surveyAnswers[params.showCode][i] = data;\r\n break;\r\n }\r\n\r\n if (i == self.data.surveyAnswers[params.showCode].length)\r\n self.data.surveyAnswers[params.showCode].push(data);\r\n }\r\n });\r\n\r\n self.getPreviewURL = ApiService.endpoint.get({\r\n url: 'api/survey/getPreviewURL',\r\n success: function (data, params) {\r\n self.data.previewURL = self.data.previewURL || {};\r\n self.data.previewURL[params.showCode] = self.data.previewURL[params.showCode] || {};\r\n self.data.previewURL[params.showCode][params.surveyId] = self.data.previewURL[params.showCode][params.surveyId] || {};\r\n\r\n try {\r\n self.data.previewURL[params.showCode][params.surveyId][params.questionId] = JSON.parse(data);\r\n }\r\n catch (e) {\r\n self.data.previewURL[params.showCode][params.surveyId][params.questionId] = data;\r\n }\r\n }\r\n });\r\n\r\n self.sendEmail = ApiService.endpoint.post({\r\n url: 'api/survey/sendEmail'\r\n });\n\n self.copySurvey = ApiService.endpoint.post({\n url: 'api/survey/copySurvey',\n success: function (data, params) {\r\n self.data.surveys = self.data.surveys || {};\r\n self.data.surveys[params.destinationShowCode] = self.data.surveys[params.destinationShowCode] || [];\r\n //self.data.surveys[params.destinationShowCode].push(...data);\n for (var i = 0; i < data.length; i++) {\n self.data.surveys[params.destinationShowCode].push(data[i]);\r\n }\r\n }\r\n });\n\n self.validateSurveyBranching = function (survey) {\n if (!survey)\n return { valid: false, messages: ['Survey does not exist'] };\n\n if (survey.SurveyQuestions) {\n for (var i = 0; i < survey.SurveyQuestions.length; i++) {\n var branchValid = { valid: true };\n checkBranchingRecursive(survey.SurveyQuestions[i], survey.SurveyQuestions, null, survey.SurveyQuestions[i].Id, branchValid);\n if (!branchValid.valid)\n return { valid: false, message: 'Question: ' + survey.SurveyQuestions[i].Text + ' has dependencies that would lead back to itself.' };\r\n }\r\n }\n\n return { valid: true, messages: [] };\r\n };\n\n self.availableBranchedQuestions = function (firstQuestion, questionsList) {\n var returnQuestions = [];\n for (var i = 0; i < questionsList.length; i++) {\n if (firstQuestion.Id === questionsList[i].Id || !questionsList[i].IsActive) //DTS 22-03-18: pbi-54579 added .isActive test\n continue;\n\n var branchValid = { valid: true };\n checkBranchingRecursive(questionsList[i], questionsList, null, firstQuestion.Id, branchValid);\n if (branchValid.valid)\n returnQuestions.push(questionsList[i]);\r\n }\n return returnQuestions;\r\n };\n\n function checkBranchingRecursive(question, questionsList, visited, questionId, branchValid) {\n if (!visited)\n visited = [];\n\n visited.push(question.Id);\n if (_.any(visited, function (v) { return v == questionId; })) {\n branchValid.valid = false;\n return;\n }\n var surveyAnswers = question.SurveyAnswers.filter(function (x) { return x.IsActive; });\n\n var distinctNextQuestionIds = surveyAnswers\n .map(function (sa) { return sa.NextQuestionId; })\n .filter(function (x, index, self) { return x != null && self.indexOf(x) === index; });\n for (var i = 0; i < distinctNextQuestionIds.length; i++) {\n var nextQuestion = questionsList.filter(function (x) { return x.Id === distinctNextQuestionIds[i]; });\n if (nextQuestion && nextQuestion.length)\n checkBranchingRecursive(nextQuestion[0], questionsList, visited, questionId, branchValid);\r\n }\r\n }\n\n self.hasDownlineRequiredQuestions = function (firstQuestion, questionsList) {\n var hasRequired = { required: false };\n checkRequiredRecursive(firstQuestion, questionsList, hasRequired);\n return hasRequired.required;\r\n };\n\n function checkRequiredRecursive(question, questionsList, hasRequired) {\n if (hasRequired.required)\n return;\n\n var surveyAnswers = question.SurveyAnswers.filter(function (x) { return x.IsActive; });\n\n var distinctNextQuestionIds = surveyAnswers\n .map(function (sa) { return sa.NextQuestionId; })\n .filter(function (x, index, self) { return x != null && self.indexOf(x) === index; });\n for (var i = 0; i < distinctNextQuestionIds.length; i++) {\n var nextQuestion = questionsList.filter(function (x) { return x.Id == distinctNextQuestionIds[i]; });\n if (nextQuestion && nextQuestion.length) {\n if (nextQuestion[0].Priority == 'REQUIRED') {\n hasRequired.required = true;\r\n }\n checkRequiredRecursive(nextQuestion[0], questionsList, hasRequired);\n }\r\n }\r\n }\n\n function cleanUpNextQuestionId(answers) {\n if (!answers)\n return answers;\n\n for (var i = 0; i < answers.length; i++) {\n if (answers[i].BranchAction === 'ENDSURVEY') {\n answers[i].NextQuestionId = 0;\r\n }\r\n }\n\n return answers;\r\n }\n\n function sortQuestionsList(questionList) {\n return questionList.sort(function (q1, q2) {\n return q1.DisplayOrder - q2.DisplayOrder;\r\n });\r\n }\n\n self.setNextQuestionIdByNaturalOrder = function (answer, question, questionList) {\n if (answer.BranchAction != 'NATURAL') {\n return;\r\n }\n\n var sortedQuestions = sortQuestionsList(questionList);\n\n var index = 0;\n for (var i = 0; i < sortedQuestions.length; i++) {\n if (sortedQuestions[i].Id == question.Id) {\n index = i + 1;\n break;\r\n }\r\n }\n\n if (index == sortedQuestions.length) {\n answer.NextQuestionId = null; //DTS 22-03-18: This assumes the last entry is \"NONE - Remove Branching\"\r\n } else {\n answer.NextQuestionId = sortedQuestions[index].Id; //DTS 22-03-18: This index represents the next question\r\n }\r\n };\n\n self.leadSeenQuestions = function (answers, questionList) {\n if (!answers || answers.length == 0 || !questionList || questionList.length == 0)\n return [];\n\n var sortedQuestions = sortQuestionsList(questionList);\n\n var answered = {\n alongTheWay: [sortedQuestions[0]],\n last: sortedQuestions[0]\n };\n getLastSeen(answers, sortedQuestions[0], questionList, answered);\n\n return answered.alongTheWay;\r\n };\n\n function getLastSeen(answers, question, questionList, answered) {\n var keys = Object.keys(answers);\n\n var questionAnswer = keys.filter(function (k) { return Number(k) === question.Id; });\n\n var hasAnswer = false;\n if (questionAnswer && questionAnswer.length > 0) {\n var qAnswers = answers[questionAnswer[0]];\n hasAnswer = _.any(qAnswers, function (qa) {\n return qa;\r\n });\r\n }\n\n var hasBranching = _.any(question.SurveyAnswers, function (sa) { return sa.BranchAction != 'NATURAL'; });\n\n function addQuestionToAnswered(q) {\n if (!_.any(answered.alongTheWay, function (atw) { return atw.Id === q.Id; }))\n answered.alongTheWay.push(q);\n answered.last = q;\r\n }\n\n var answerIds = null;\n if (hasAnswer) {\n addQuestionToAnswered(question);\r\n\n var answer = answers[question.Id.toString()];\n answerIds = Object.keys(answer).filter(function (a) { return answers[question.Id][a]; }).map(function (a) { return Number(a); });\r\n } else if (!hasBranching) {\n addQuestionToAnswered(question);\r\n }\n\n if ((question.Priority === 'REQUIRED' || hasBranching)\n && !hasAnswer) {\n addQuestionToAnswered(question);\n return;\n }\n\n var distinctNextQuestionIds = question.SurveyAnswers\n .filter(function (sa) {\n return answerIds === null || _.any(answerIds, function (ai) { return sa.Id === ai; });\n })\n .map(function (sa) { return sa.NextQuestionId; })\n .filter(function (x, index, self) { return x != null && self.indexOf(x) === index; });\n for (var i = 0; i < distinctNextQuestionIds.length; i++) {\n var nextQuestion = questionList.filter(function (x) { return x.Id == distinctNextQuestionIds[i]; });\n if (nextQuestion && nextQuestion.length) {\n getLastSeen(answers, nextQuestion[0], questionList, answered);\n }\r\n }\r\n }\n\n self.getFirstQuestion = function (questionList) {\n var sortedQuestions = sortQuestionsList(questionList);\n return sortedQuestions && sortedQuestions.length ? sortedQuestions[0] : null;\r\n };\n\n self.getPreviousQuestion = function (answers, questionList, currentQuestionId) {\n var lastSeenQuestions = self.leadSeenQuestions(answers, questionList);\n\n if (lastSeenQuestions && lastSeenQuestions.length) {\n var question = null;\n var found = false;\n for (var i = 0; i < lastSeenQuestions.length; i++) {\n if (currentQuestionId == lastSeenQuestions[i].Id) {\n return question;\r\n } else {\n question = lastSeenQuestions[i];\r\n }\r\n }\n\n return question;\r\n } else {\n return null;\r\n }\r\n };\n\n function getNextQuestionByAnswerId(answerId, question, questionList) {\n var answers = question.SurveyAnswers.filter(function (sa) { return sa.Id == answerId; });\n var nextQuestionId = answers && answers.length ? answers[0].NextQuestionId : null;\n\n if (nextQuestionId) {\n var nextQuestion = questionList.filter(function (q) { return q.Id == nextQuestionId; });\n return nextQuestion && nextQuestion.length ? nextQuestion[0] : null;\r\n } else {\n return null;\r\n }\r\n }\n\n function buildBranchByAnswerRecursive(questionsInBranch, questionList, currentQuestion) {\n if (!currentQuestion)\n return;\n\n if (!_.any(questionsInBranch.questions, function (qi) { return qi == currentQuestion.Id; }))\n questionsInBranch.questions.push(currentQuestion.Id);\n\n for (var i = 0; i < currentQuestion.SurveyAnswers.length; i++) {\n var nextQuestion = getNextQuestionByAnswerId(currentQuestion.SurveyAnswers[i].Id, currentQuestion, questionList);\n if (nextQuestion)\n buildBranchByAnswerRecursive(questionsInBranch, questionList, nextQuestion);\r\n }\r\n }\n\n self.getNoLongerValidQuestions = function (prevAnswerId, questionList, currentQuestion, currentAnswerId) {\n var questionsInPrevBranch = {\n questions: [currentQuestion.Id]\r\n };\n var prevNextQuestion = getNextQuestionByAnswerId(prevAnswerId, currentQuestion, questionList);\n buildBranchByAnswerRecursive(questionsInPrevBranch, questionList, prevNextQuestion);\n\n var questionsInNewBranch = {\n questions: [currentQuestion.Id]\r\n };\n var newNextQuestion = getNextQuestionByAnswerId(currentAnswerId, currentQuestion, questionList);\n buildBranchByAnswerRecursive(questionsInNewBranch, questionList, newNextQuestion);\n\n return questionsInPrevBranch.questions.filter(function (q) {\n return !_.any(questionsInNewBranch.questions, function (nq) { return q == nq; });\n });\r\n };\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('SurveyService', SurveyService);\r\n})(angular, window);\n","'use strict';\r\n\r\n/**\r\n * @ngdoc service\r\n * @name exhibitorPortalApp.User\r\n * @description\r\n * # User\r\n * Service in the exhibitorPortalApp.\r\n */\r\n\r\n(function (angular, window, undefined) {\r\n var UserService = function (ApiService) {\r\n 'ngInject'\r\n var self = this;\r\n\r\n self.data = {};\r\n\r\n self.changePassword = ApiService.endpoint.post({\r\n url: 'api/user/changePassword'\r\n });\r\n\r\n self.save = ApiService.endpoint.post({\r\n url: 'api/user/save'\r\n });\r\n\r\n self.reAuth = ApiService.endpoint.post({\r\n url: 'api/user/reAuth'\r\n });\r\n\r\n self.getEmail = ApiService.endpoint.get({\r\n url: 'api/contact/email',\r\n success: function (data) { \r\n self.data.email = data;\r\n }\r\n });\r\n\r\n self.getSWAPExhibitor = ApiService.endpoint.get({\r\n url: 'api/contact/getswapexhibitor',\r\n success: function (data, params) {\r\n self.data[params.showCode] = self.data[params.showCode] || {};\r\n self.data[params.showCode].SWAPExhibitor = data;\r\n }\r\n })\r\n };\r\n\r\n angular.module('exhibitorPortalApp')\r\n .service('UserService', UserService);\r\n})(angular, window);\r\n","// Module\nvar code = \"

{{Account.header}}

We sent you an email to help you sign in.

Check your inbox for an email with subject \\\"Access the Maritz Global Events Exhibitor Portal\\\".

We need a little more information.

We found you!

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Change your password

Passwords must have at least 7 characters.
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

{{CompLogin.loginData.companyName}}

The list below shows the people from your company that are associated with the {{CompLogin.loginData.TradeShowName}} event.

Select your name from the list below to log in. Don't see your name? Select \\\"Name Not Listed\\\" if your name is not in the list.

Request Account Information

Enter your information in the fields below. A Customer Service Representative will contact you within 1-3 business days.

Thank you!

Your Request for Support has been submitted. A Customer Service Representative will be contacting you soon.

Go Home
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
Find Your Show & Company

Find Your Show & Company

Sign In with Username or Activation Code

Let's Get Started!

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
0\\\"> {{error}}
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Note: An activation code has sixteen digits with no characters.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Account

{{ account.userProfile.UserName }}

Required! Too short! Required! Password cannot contain slashes! Doesn't match! Change Password

Loading Your Orders

  • {{ ::order.Id }} {{ ::order.Id }}
  • {{ ::order.Status }}
  • {{ ::order.Date | date }}
  • {{ ::order.Balance | currency }}

account.orderHistory.pageSize\\\">
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Booth & Billing Address

Booth

{{ (address.editMode) ? address.modePrefix : '' }}Billing Address

Select your 'billing' address below from the list of addresses. You may then change the selected address or add a new one if your address isn't in the list.

Please enter your billing address below then press the \\\"Next\\\" button to continue.


\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
  • {{ addr.Address1 }}
    {{ addr.Address2 }}
    {{ addr.City + ', ' + addr.StateCode + ' ' + addr.PostalCode }}
    {{ addr.CountryName != 'United States' ? addr.CountryName : '' }}
    (DEFAULT)  (COMPANY)
Address is required!
City is required!
Country is required!
State is required!
Postal Code is required!
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Please enter your Badge ID and click 'Next':

You did not enter a Badge ID!
\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"../images/business-card-48.png\");\n// Module\nvar ___HTML_LOADER_REPLACER_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"

{{ businessCardDetail.businesscard.FirstName }} {{ businessCardDetail.businesscard.LastName }}

Notes are limited to 1000 characters (you are currently using {{ form.notes.$viewValue.length }} characters).
  • = 1)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 2)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 3)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 4)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 5)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Step 1 Tap \\\"+\\\" to add more activations!

Shopping Cart

Please review your order below. If your order is correct then click the \\\"Next\\\" button to continue.

Step 2 Provide an email address to receive confirmation

Step 3 Provide a billing address

Step 4 Read the Terms and Conditions

I agree to the Terms and Conditions

Step 5 Secure Checkout

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Checkout

  • For orders that require payment, Purchase Orders are not accepted.
  • All orders are subject to a $100 cancellation fee.
  • For refund requests submitted more than 30 days prior to show opening, credits will be offered.
  • Orders canceled within 30 days of the show will not be refunded.

Credit Card Payment

When you click 'Go To SecuRemit Payment Site', you will be directed to a secure site to complete your credit card payment for the total amount shown below:

Your order has come to a total of $0.00 and no payment is required. Press 'Submit Order' to complete your order.

Terms & Conditions


By purchasing eventBit, I acknowledge:

  1. I will not receive contact information for anyone captured with eventBit hardware.
    eventBit only captures dwell time for scanned leads and aggregate demographic information.
  2. eventBit receivers may need to be centrally placed and visible within my booth to accurately capture data.
    If receivers are moved or disabled, data accuracy will be impacted.
  3. Booth size and shape impacts the number of receivers necessary to capture accurate data.

Terms of Use

I understand that upon registration for this event, all guests (foreign and domestic) agree to the Terms of Use, which include voluntarily sharing their personal information with exhibiting companies via lead retrieval. Maritz Global Events recommends and encourages all customers to seek their own expert advice for GDPR Compliance concerns.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
0\\\">

Checkout

  • For orders that require payment, Purchase Orders are not accepted.
  • All orders are subject to a $100 cancellation fee.
  • For refund requests submitted more than 30 days prior to show opening, credits will be offered.
  • Orders canceled within 30 days of the show will not be refunded.

Credit Card Payment

When you click 'Go To SecuRemit Payment Site', you will be directed to a secure site to complete your credit card payment for the total amount shown below:

0\\\">
Quantity Amount Total
Discounts: {{ checkoutonly.pendingOrder.TotalAdjustments | currency }}
Fees: {{ checkoutonly.pendingOrder.TotalFees | currency }}
Tax: {{ checkoutonly.pendingOrder.TotalSalesTax | currency }}
Total: {{ checkoutonly.pendingOrder.BalanceAmount | currency }}
{{ item.ProductName }} {{ item.Quantity }} {{ item.UnitPrice | currency}} {{ item.Price | currency}}

Terms & Conditions

By purchasing eventBit, I acknowledge:

  1. I will not receive contact information for anyone captured with eventBit hardware.
    eventBit only captures dwell time for scanned leads and aggregate demographic information.
  2. eventBit receivers may need to be centrally placed and visible within my booth to accurately capture data.
    If receivers are moved or disabled, data accuracy will be impacted.
  3. Booth size and shape impacts the number of receivers necessary to capture accurate data.
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Collateral

The email subject and body you enter here will be the default for all users.
Please note: If you copy and paste from another document - which we don't recommend - font formatting such as bullets, bold, italics, may not display for the recipient. Please consider this when creating your collateral body.

This field is required! Email Subject is limited to 500 characters (you are currently using {{ form.subject.$viewValue.length }} characters).
This field is required! Email Body is limited to 5,000 characters (you are currently using {{ form.body.$viewValue.length }} characters).
 {{ c.DisplayName }}

Collateral Tips

  • This feature requires that the default email client on the mobile device is configured: iOS devices use Apple Mail, Android devices commonly use the GMail app.
  • Rented readers - The RT2000 and Tablet - cannot use this feature.
  • For more details, go to the \\\"Resources\\\" tab and download \\\"Feature Guide - Setting Up Collateral for the Mobile App Badge Scanner\\\"
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Add/Edit Collateral

  • Collateral
  • New Item
  • 0\\\" class=unavailable>Edit Item
Either select a file to upload or enter a link here.

Enter a link here. File uploading is unavailable from inside the SWAP App's mobile browser. Please open Exhibitor Portal in your device's native browser.

Be sure the Display Name is descriptive and short enough to be easily viewed on a small (cell phone) screen. File size may not exceed 2 MB.

This field is required! Display Name is limited to 100 characters (you are currently using {{ form.name.$viewValue.length }} characters).
{{ message }}


\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"../images/order-promotional-products.png\");\n// Module\nvar ___HTML_LOADER_REPLACER_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"

Thank you for ordering!

Print

A confirmation has been sent to the email address provided.

If you have any questions regarding this order, please contact our Customer Service department at {{ confirmation.EXSConfig.CustSvcEmail }}.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

List Builder | {{ dataSales.count | number }} @ {{ (dataSales.dataSalesProduct.UnitPrice | currency) + '/each' }} = {{ (((dataSales.getCount() || dataSales.count) * dataSales.dataSalesProduct.UnitPrice)) > dataSales.dataSalesProduct.DataSalesMinOrderAmount ? ((dataSales.getCount() || dataSales.count) * dataSales.dataSalesProduct.UnitPrice) : dataSales.dataSalesProduct.DataSalesMinOrderAmount | currency | price }} ({{ (dataSales.dataSalesProduct.DataSalesMinOrderAmount - (((dataSales.getCount() || dataSales.count) * dataSales.dataSalesProduct.UnitPrice))) / dataSales.dataSalesProduct.UnitPrice | number:0 }} below minimum) 0

{{ expressionIndex = $index }}
OR

Filter Group {{expressionIndex + 1}} 1\\\" class=\\\"fa fa-trash pointer right\\\" style=color:#fff ng-click=\\\"dataSales.removeExpression(dataSales.expressions, expressionIndex)\\\">

{{ nodeIndex = $index }}
AND

{{ operandIndex = $index }}
OR

\\\">
{{ operand.detail.filterDetail.Description }}
is one of is not one of is all of is not all of
  • {{ operand.detail.filterDetail.FilterPicks[value].Description }}

{{ filter.Name }}



  • = 0\\\" ng-click=\\\"dataSales.toggleFilterPick($event, operand, filterPick.Id)\\\"/>
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Mail House Information


Company is required!
Address is required!
City/(State/Province)/Postal Code is required!
Email is required! Email format is incorrect!
Phone is required!
Attachment is required!

> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Email Review


Take a minute and review your email. Everything look good? Click \\\"Next\\\" to proceed, or click \\\"Previous\\\" to make changes.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
Subject is required!

Do not copy HTML from an email builder: It will not work as expected in this product.

tags...\\\">
Logo is required!

Your Signature Information

  • Contact Name is required!
  • Title is required!
  • Company is required!
  • Address is required!
  • Address 2 is required!
  • City/(State/Province)/Postal Code is required!
  • Phone is required!
  • Email is required! Email format is incorrect!
  • Fax is required!
  • Website is required!

Schedule Send Date/Time

Date is required!
Time is required!
Please note that the schedule date is set using your browser's timezone. Email send times are approximate. The exact time your message is sent will depend on the number of send requests in the queue for that date and time.

Email Tips

Our email templates are designed for a content width of 600px: This ensures good display on small screen devices.

  • Image width cannot exceed 600px.
  • If you add HTML content, copy only HTML between the <body> tags
  • All CSS styles must be inlined: the style blocks generated by most HTML email tools can't be added here.
  • Click the \\\"Preview Email\\\" button to see your email, and then...
  • We encourage you to test your email by using the \\\"Send Test Email\\\" button. You can test as many times as you want.
  • More tips here:  Email Specifications
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Exhibitor Resource Documents

Resources are not available at this time.
No resources for given criteria
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
  • {{ campaign.ProductName + ' - ' + campaign.Date }}

    Download List
    Canceled
    Pending Show Management Approval
    Suspended by Show Management
    Suspended by Show Management
    {{ expressionIndex = $index }}
    OR

    Filter Group {{expressionIndex + 1}}

    Include

    Exclude

    {{ nodeIndex = $index }}
    AND

    {{ operandIndex = $index }}
    OR
    \\\">
    {{ operand.detail.filterDetail.Description }}

    is one of is not one of is all of is not all of
    • {{ operand.detail.filterDetail.FilterPicks[value].Description }}
  • {{ campaign.Strategy.SubjectLine }}

    Pending Show Management Approval
    Suspended by Show Management
    • {{ campaign.Strategy.ScheduledExecutionDate | date:'short' }}
    • {{ campaign.Strategy.ExecutionDate | date:'short' }}
    • {{ campaign.ListInfo.FinalCount }}
    • {{ campaign.Strategy.StrategyStatus }}
    • {{ campaign.Strategy.FeedbackSummary.UniqueClicks }}
    • {{ campaign.Strategy.FeedbackSummary.UniqueOpens }}
    • {{ campaign.Strategy.FeedbackSummary.Unsubscribes }}
    {{ expressionIndex = $index }}
    OR

    Filter Group {{expressionIndex + 1}}

    Include

    Exclude

    {{ nodeIndex = $index }}
    AND

    {{ operandIndex = $index }}
    OR
    \\\">
    {{ operand.detail.filterDetail.Description }}

    is one of is not one of is all of is not all of
    • {{ operand.detail.filterDetail.FilterPicks[value].Description }}
  • {{ campaign.ProductName + ' - ' + campaign.Date }}

    Pending Mailhouse Action
    Complete
    Canceled
    Pending Show Management Approval
    Suspended by Show Management
    • {{ campaign.MessageConfigs.SignatureCompany }}
    • {{ campaign.MessageConfigs.SignatureAddress }}
    • {{ campaign.MessageConfigs.SignatureAddress2 }}
    • {{ campaign.MessageConfigs.SignatureAddrCSZ }}
    • {{ campaign.MessageConfigs.SignatureEmail }}
    • {{ campaign.MessageConfigs.SignaturePhone }}
    {{ expressionIndex = $index }}
    OR

    Filter Group {{expressionIndex + 1}}

    Include

    Exclude

    {{ nodeIndex = $index }}
    AND

    {{ operandIndex = $index }}
    OR
    \\\">
    {{ operand.detail.filterDetail.Description }}

    is one of is not one of is all of is not all of
    • {{ operand.detail.filterDetail.FilterPicks[value].Description }}
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
Send
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

{{ SwitchShow.currentShow.TradeShowName }} {{ SwitchShow.currentShow.TradeShowName }}  

 | 

Your data for this event is no longer available.

If you have any questions, please contact Exhibitor Services at exhibitorservices@maritz.com.

{{ SwitchShow.currentShow.TradeShowName }}

To reserve your Maritz Global Events lead management system for {{ SwitchShow.currentShow.TradeShowName }} you must place an order by {{ SwitchShow.additionalInfo.FinalDeadLine }}. Click \\\"Shop Online\\\" to begin your order. We will confirm all orders by e-mail upon processing payment.

Online Ordering Deadlines
Deadline
Lead Retrieval Products Discount {{ SwitchShow.additionalInfo.DiscountDeadline }}
Order Deadline {{ SwitchShow.additionalInfo.FinalDeadLine }}

Download Off-Line Lead Retrieval Order Form: Show Order Form
Download Off-Line Pre-Show Attendee List Order Form: Pre-Show Order Form
Download Off-Line Post-Show Attendee List Order Form: Post-Show Order Form Download Pre-Show Attendee List: Pre-Show Attendee List
Download Post-Show Attendee List: Post-Show Attendee List

Location

{{ SwitchShow.additionalInfo.FacilityName }}
{{ SwitchShow.additionalInfo.FacilityAddress1 }}
{{ SwitchShow.additionalInfo.FacilityCSZ }}


About Maritz Global Events & {{ SwitchShow.currentShow.TradeShowName }}

Maritz Global Events is the official registration and lead management provider for {{ SwitchShow.currentShow.TradeShowName }}.

{{ SwitchShow.currentShow.TradeShowName }} is allowing exhibitors access to their registered attendee list. Click the \\\"Shop Online\\\" button to see the options available. If you have any questions or need assistance, please email exhibitorservices@maritz.com.

Upon registration for this event, all guests (foreign and domestic) agreed to Terms of Use which include voluntarily sharing their personal information with exhibiting companies. Maritz Global Events recommends and encourages all customers to seek their own expert advice for GDPR Compliance concerns.

Thank you for using Maritz Global Events’s Online Order system. We appreciate your business now more than ever.

Upon registration for this event, all guests (foreign and domestic) agreed to Terms of Use which include voluntarily sharing their personal information with exhibiting companies via lead retrieval. Maritz Global Events recommends and encourages all customers to seek their own expert advice for GDPR Compliance concerns.

Maritz Global Events is the official registration and lead management provider for {{ SwitchShow.currentShow.TradeShowName }}.

Every {{ SwitchShow.currentShow.TradeShowName }} attendee will have a badge containing complete contact information (name, title, address, etc.) plus additional qualifying demographic data. When you read the badge with the Maritz Global Events system in your booth, you immediately capture the prospect's information. Maritz Global Events makes lead retrieval easy, effective and fast. It's the best way to maximize the ROI on your exhibit investment and help turn leads into sales.

Thank you for using Maritz Global Events' Online Order System! We appreciate your business.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
{{ ::lead.Source }}
{{ ::lead.Count }}
Pre-show Checklist

Make the most of your show by completing these items:


Pre-Show Actions
Onsite Actions
Post-Show Actions
Download QR Code Download Leads
About This Event

Location
{{ Landing.additionalInfo.FacilityName }}
{{ Landing.additionalInfo.FacilityAddress1 }}
{{ Landing.additionalInfo.FacilityCSZ }}

Important Order Dates
Discount Deadline: {{ Landing.additionalInfo.DiscountDeadline }}
Order Deadline: {{ Landing.additionalInfo.FinalDeadLine }}

Order Forms

Booth View Alerts
{{ label }}
Leads By Sales Person

No leads have been captured yet

{{ label }}
Leads By Day

No leads have been captured yet

Leads By Demographic Question

No leads have answered this question

{{ label }}

Salesforce Integration

Your Salesforce Access Code:
{{ ::activation.CodeFormatted }}
A SWAP, RT2000, or Tablet purchase is required!

Importing Your Leads into Salesforce

Salesforce Integration Is Currently Under Construction

Thank you for your interest!

\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"../images/spot.png\");\n// Module\nvar ___HTML_LOADER_REPLACER_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar code = \"

{{ leadDetail.lead.Contact.FirstName }} {{ leadDetail.lead.Contact.LastName }}

  • {{ leadDetail.lead.Contact.FirstName }} {{ leadDetail.lead.Contact.LastName }}
  • {{ leadDetail.lead.Contact.Company }}
  • {{ leadDetail.lead.Contact.Company2 }}
  • {{ leadDetail.lead.Contact.Title }}
  • {{ leadDetail.lead.Contact.Address.Address }}
  • {{ leadDetail.lead.Contact.Address.Address2 }}
  • {{ leadDetail.lead.Contact.Address.Address3 }}
  • {{ leadDetail.lead.Contact.Address.City }}
  • {{ leadDetail.lead.Contact.Address.StateCode }}, {{ leadDetail.lead.Contact.Address.ZipCode }}
  • {{ leadDetail.lead.Contact.Address.CountryCode }}
  • (P) {{ leadDetail.lead.Contact.Phone }} {{ leadDetail.lead.Contact.PhoneExtension ? ('x' + leadDetail.lead.Contact.PhoneExtension) : '' }}
  • (F) {{ leadDetail.lead.Contact.Fax }}
  • {{ leadDetail.lead.Contact.FirstName }} {{ leadDetail.lead.Contact.LastName }}
  • {{ leadDetail.lead.Contact.Company }}
  • {{ leadDetail.lead.Contact.Company2 }}
  • {{ leadDetail.lead.Contact.Title }}
  • {{ leadDetail.lead.Contact.Address.Address }}
  • {{ leadDetail.lead.Contact.Address.Address2 }}
  • {{ leadDetail.lead.Contact.Address.Address3 }}
  • {{ leadDetail.lead.Contact.Address.City }}
  • {{ leadDetail.lead.Contact.Address.StateCode }}, {{ leadDetail.lead.Contact.Address.ZipCode }}
  • {{ leadDetail.lead.Contact.Address.CountryCode }}
  • (P) {{ leadDetail.lead.Contact.Phone }} {{ leadDetail.lead.Contact.PhoneExtension ? ('x' + leadDetail.lead.Contact.PhoneExtension) : '' }}
  • (F) {{ leadDetail.lead.Contact.Fax }}
  • {{ ::leadDetail.getDemoAnswer(demo) }}
Notes are limited to 1000 characters (you are currently using {{ form.notes.$viewValue.length }} characters). Notes cannot include double quotes.
  • = 1)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 2)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 3)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 4)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
  • = 5)\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=true>
Area Dwell Time
{{dwellTime.Name}} {{dwellTime.TotalMinutes}} min.
  • {{ ::leadDetail.getSurveyAnswer(surveyQuestion) }}
No answers collected for this survey.
  • {{ ::captureTime | date:'short':leadDetail.lead.TimeZoneOffset }}
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

{{ ::leadDetail.lead.Contact.FirstName }} {{ ::leadDetail.lead.Contact.LastName }}

No survey answers have been configured for this question.
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

{{::surveyQuestionEdit.surveyQuestion.Text}}

{{surveyQuestionEdit.errorModalInfo.errorModalText}}
  • {{::answer.Text}}
    Survey Answers are limited to 255 characters (you are currently using {{ surveyQuestionEdit.form['surveyAnswer' + $index].$viewValue.length }} characters).
  • {{::answer.Text}}
    Survey Answers are limited to 255 characters (you are currently using {{ surveyQuestionEdit.form['surveyAnswer' + $index].$viewValue.length }} characters).
Survey Answers are limited to 255 characters (you are currently using {{ surveyQuestionEdit.form['surveyAnswer'].$viewValue.length }} characters).
No survey answers have been configured for this question!
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Email Leads

A selection is required!
You will not be able to change your follow-up time selection after the show floor has opened. The show floor opens at ***

Message

This field is required!
This field is required! Email Body is limited to 250 characters (you are currently using {{ leadFollowUp.form.body.$viewValue.length }} characters). Email Body must containt at least 20 characters (you are currently using {{ leadFollowUp.form.body.$viewValue.length }} characters).

Signature

  • This field is required!
  • This field is required!
  • This field is required!
  • This field is required!
  • This field is required!
  • This field is required!
  • This field is required!
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Scanned Barcodes

Scanned Barcodes Paste barcodes captured, one per line. These leads (minus any duplicates of already-captured leads) will be added to your portal. Please submit no more than 1,000 barcodes at a time. If you need to submit more, please divide them into separate requests.

Upload CSV

You can upload a CSV file of your leads here.


Sample CSV

Below is an example of the format for CSV files to be uploaded here.

ID,LASTNAME,FIRSTNAME,COMPANY,DATE,TIME\\r\\n1001,Attendee,Example,\\\"Example, Inc.\\\",01/01/2014,09:32:46\\r\\n1002,Attendee,Sample,\\\"Sample, an Example Company\\\",01/02/2014,14:43:59
Remember:
  1. The header row, defining the column names, is required.
  2. If any of your fields contain commas, they must be quoted.
  3. Date and time columns must match the format shown above.
  4. All date/time fields must use the timezone at which the event occured (local time).
{{leadUpload.toggleTechRequirements ? 'Hide' : 'Show'}} Full Technical Requirements
  1. File must be in Comma-Separated Values format. The standard is described by RFC4180. Some parts of the specification that are listed as optional in this RFC are required here (see below).
  2. The file must be in either US-ASCII (7-bit) or UTF-8 (Unicode) encoding.
  3. All data must be in \\\"plain text\\\" representation, i.e. not binary-encoded.
  4. A header record (defining the names of the columns) is required.
  5. All column names are case-insensitive. All required columns must appear exactly as specified (below), with no leading or trailing spaces.
  6. Each column must have a unique (case-insensitive) name, duplicate column names are not allowed.
  7. Each record must contain the same number of comma-separated fields.
  8. Fields containing a line-break, double-quote, and/or commas must be quoted (with double quotes).
  9. A (double) quote character in a field must be represented by two (double) quote characters.
  10. The column ID must be present. This column must contain the badge ID for each lead captured.
  11. The column LASTNAME must be present. This column must contain the beginning portion of the captured person's last name (minimally, the last initial, and optionally, up to the full last name).
  12. The columns FIRSTNAME and COMPANY may be present (representing the person's first name and company name, respectively), if required by a specific event.
  13. The column DATE and TIME may be present. If one is included, the other should also be included, (date/time information will not be processed unless both columns are present).
  14. The DATE column, if present, must contain the date at which a lead was captured, in MM/DD/YYYY format.
  15. The TIME column, if present, must contain the time at which a lead was captured, in HH:MM:SS (24-hour) format.
  16. All date and time columns present must be in the time zone at which the event occurred. Remember that this affects both date and time values.

{{ message }}
{{ message }}
drop file here
\";\n// Exports\nmodule.exports = code;","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"../images/business-card-24.png\");\nvar ___HTML_LOADER_IMPORT_1___ = require(\"../images/spot.png\");\n// Module\nvar ___HTML_LOADER_REPLACER_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar ___HTML_LOADER_REPLACER_1___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_1___);\nvar code = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Leads

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Download Leads\\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

Filter

\\r\\n

Clear

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

Clear

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Date\\r\\n
\\r\\n
\\r\\n Last\\r\\n
\\r\\n
\\r\\n First\\r\\n
\\r\\n
\\r\\n Company\\r\\n
\\r\\n
\\r\\n Notes\\r\\n
\\r\\n
\\r\\n Rating\\r\\n
\\r\\n
\\r\\n Dwell\\r\\n
\\r\\n
\\r\\n Collateral\\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\\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\\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\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Search
\\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 {{ leads.leadsMsg }}\\r\\n
\\r\\n
\\r\\n Filter({{leads.leadSearch.filtering}})\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Date\\r\\n
\\r\\n
\\r\\n Last\\r\\n
\\r\\n
\\r\\n First\\r\\n
\\r\\n
\\r\\n Company\\r\\n
\\r\\n
\\r\\n Notes\\r\\n
\\r\\n
\\r\\n Rating\\r\\n
\\r\\n
\\r\\n Dwell\\r\\n
\\r\\n
\\r\\n Collateral\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Card\\r\\n
\\r\\n
\\r\\n List\\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\\n \\r\\n \\r\\n {{ ::lead.Contact.FirstName }} {{ ::lead.Contact.LastName }}\\r\\n

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

    {{ ::lead.Contact.Title }}

    \\r\\n
    \\r\\n
    \\r\\n ({{ ::leads.leadCollateral[lead.Id].length }})\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.Contact.Company }}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.Contact.Email }}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.SalesPerson }}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.Contact.Address.City }}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.Contact.Address.StateCode }}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.Contact.Address.CountryCode }}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.LeadDate | date:'short':lead.TimeZoneOffset }}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n {{ ::lead.TotalDwellMinutes }} min.\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
        \\r\\n
      • \\r\\n = 1\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=\\\"true\\\">\\r\\n \\r\\n
      • \\r\\n
      • \\r\\n = 2\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=\\\"true\\\">\\r\\n \\r\\n
      • \\r\\n
      • \\r\\n = 3\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=\\\"true\\\">\\r\\n \\r\\n
      • \\r\\n
      • \\r\\n = 4\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=\\\"true\\\">\\r\\n \\r\\n
      • \\r\\n
      • \\r\\n = 5\\\" class=\\\"fas fa-star star-rating\\\" aria-hidden=\\\"true\\\">\\r\\n \\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n

    {{ ::lead.Notes }}

    \\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\\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

Salesforce Integration

\\r\\n
\\r\\n Your Salesforce Access Code:\\r\\n
\\r\\n
\\r\\n {{ ::activation.CodeFormatted }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n A SWAP, RT2000, or Tablet purchase is required!\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Importing Your Leads into Salesforce\\r\\n

\\r\\n

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

Salesforce Integration Is Currently Under Construction

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

\\r\\n Thank you for your interest!\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Welcome to Foundation TEST

We’re stoked you want to try Foundation!

To get going, this file (index.html) includes some basic styles you can modify, play around with, or totally destroy to get going.

Once you've exhausted the fun in this document, you should check out:

Foundation Documentation
Everything you need to know about using the framework.

Foundation on Github
Latest code, issue reports, feature requests and more.

@foundationzurb
Ping us on Twitter if you have questions. If you build something with this we'd love to see it (and send you a totally boss sticker).

Here’s your basic grid:

This is a twelve column section in a row. Each of these includes a div.panel element so you can see where the columns are - it's not required at all for the grid.

Six columns

Six columns

Four columns

Four columns

Four columns


We bet you’ll need a form somewhere:
.com
Try one of these buttons:

Simple Button
Radius Button
Round Button
Success Btn
Alert Btn
Secondary Btn

So many components, girl!

A whole kitchen sink of goodies comes with Foundation. Checkout the docs to see them all, along with details on making them your own.

Go to Foundation Docs
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

{{modalCtrl.title}}

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Customization Form: {{ ::moreInfo.product.ProductName }}


The product you added to your cart includes a 'custom printout'. Please use this text box to enter your customization request. You will receive a faxed confirmation of this form within two weeks. The first revision is allowed with no additional cost incurred. If you need mulitple custom printouts, please contact our Exhibitor Marketing Group.

Use the space below to custom design your form. The form is sized to show you approximately what your printout will look like.

  • Your Custom Printout:
  • Sample Custom Printout:
  • Your Custom Printout:

If you click \\\"Request Assistance,\\\" a customer service agent will contact you and will assist in configuring your printout.


Back
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Events

 
MyShows.search.pageSize\\\">

Welcome to the new and improved Exhibitor Portal!

You were the inspiration for this redesign.

Now you can retrieve your sales leads, place your orders and configure your qualification surveys in one easy-to-navigate site. We've also made the site responsive so that you can do all of these things on your computer, tablet or phone.

New navigation at the top of the page.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
  • {{ pd.prices[pd.product.ProductPriceID] | currency | price}}
  • {{pd.quantities[pd.product.ProductPriceID]}} added!
  • Add To Cart

Product Image

{{ productImage.AltText }}
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Featured Products & Packages

{{bundle.description}}

Starting at
{{ bundle.startingPrice | currency }}

{{products.quantities[bundle.selectedItem.ProductPriceID]}} added!

Add To Cart

{{ product.HTMLDescription }}

{{ products.prices[product.ProductPriceID] | currency | price}}

{{products.quantities[product.ProductPriceID]}} added!

Add To Cart

Attendee List Rental

When renting an attendee list, you are buying a license to use the data once for each quantity you purchase. Please see your exhibitor manual or contact Maritz Global Events for any additional contractual requirements regarding the use of data.

{{ product.ProductName }}

{{ product.HTMLDescription }}

{{ products.prices[product.ProductPriceID] | currency | price}}{{ product.DataSalesTierTypeCode == 'SET' ? '' : '/name' }}

products.prices[product.ProductPriceID]\\\">

Minimum Order Amount: {{ product.DataSalesMinOrderAmount | currency }}

{{ product.DataSalesTierTypeCode.startsWith('SET') ? 'Add To Cart' : 'Build Your List' }}

Lead Retrieval Products

Select your lead retrieval system by entering the quantities below and adding them to your cart.

    • {{ product.HTMLDescription }}

    • {{ products.prices[product.ProductPriceID] | currency | price}}
    • {{products.quantities[product.ProductPriceID]}} added!
    • Add To Cart

Additional Recommended Products

Based on your previous order(s), we have detected that the following additional products could further enhance your lead and revenue potential.

    • {{ product.HTMLDescription }}

    • {{ products.prices[product.ProductPriceID] | currency | price}}
    • {{products.quantities[product.ProductPriceID]}} added!
    • Add To Cart

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Recommended for You

We don't seem to have booth information for your company. Please contact a sales representative for assistance.

Enter your estimated number of booth staff and booth size to customize your recommendation.



Let's talk! Please contact a sales representative so that we can discuss your needs.

Your booth size qualifies for Booth Visitor Data! Please contact our sales representative at darel.cook@maritz.com for details.

Based on your booth size and estimated personnel, we recommend these lead retrival products for your booth.


{{ product.HTMLDescription }}

{{ recommendation.prices[product.ProductPriceID] | currency | price}}

Total: {{ recommendation.totalRecPrice | currency | price}}

We can't find any prior orders for you, for this event.

These are the lead retrival products you purchased for {{recommendation.currentEvent.PriorTradeShowName}}


{{ product.HTMLDescription }}

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
0\\\">
Quantity Amount Total
Discounts: {{ totalDiscountOther | currency }}
Voucher Voucher: {{ totalDiscountCoupon | currency }}
Voucher {{ couponName }} Voucher: {{ totalDiscountCoupon | currency }}
Fees: {{ totalFees | currency }}
Tax: {{ totalTax | currency }}
Total: {{ totalCost | currency | price }}
{{ item.getName() }} ( Printout) Edit Edit
{{ '(Created ' + (item.getData().execDate | date:'short') + ' )' }}
Fix me This item is incomplete!
{{ item.getQuantity() }}
{{ item.getData().cachedCount }} {{ item.getQuantity() }}
{{ item.getPrice() | currency}} {{ (item.getQuantity() * item.getPrice()) > (item.getData().minAmount || 0) ? (item.getQuantity() * item.getPrice()) : item.getData().minAmount | currency }} (MIN AMOUNT) {{ (item.getData().cachedCount * item.getPrice()) > (item.getData().minAmount || 0) ? (item.getData().cachedCount * item.getPrice()) : item.getData().minAmount | currency }} (MIN AMOUNT) {{ item.getPrice() | currency }}


    • {{ item.getName() }}( Printout)
    • Quantity: {{ item.getQuantity() }}
    • Amount: {{ item.getPrice() | currency }}
    • Total: {{ item.getQuantity() * item.getPrice() | currency }}
    • {{ couponName }}

  • Discounts: {{ totalDiscountOther | currency }}

    Voucher: {{ totalDiscountCoupon | currency }}

    Fees: {{ totalFees | currency }}

    Tax: {{ totalTax | currency }}

    Total: {{ totalCost | currency | price }}

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
{{ ngCart.totalItems() }}
{{ totalCost | currency }}
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \" \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Event Details

To reserve your Maritz Global Events lead management system for {{ shop.currentEvent.TradeShowName }} you must place an order by {{ shop.deadline }}. Click \\\"Shop Online\\\" to begin your order. We will confirm all orders by e-mail upon processing payment.

Online Ordering Deadlines
Deadline
Lead Retrieval Products Discount {{ shop.discountDeadline }}
Order Deadline {{ shop.deadline }}

Download Off-Line Lead Retrieval Order Form: Show Order Form
Download Off-Line Pre-Show Attendee List Order Form: Pre-Show Order Form
Download Off-Line Post-Show Attendee List Order Form: Post-Show Order Form Download Pre-Show Attendee List: Pre-Show Attendee List
Download Post-Show Attendee List: Post-Show Attendee List

{{ shop.currentEvent.TradeShowName }} Location

{{ shop.additionalInfo.FacilityName }}
{{ shop.additionalInfo.FacilityAddress1 }}
{{ shop.additionalInfo.FacilityCSZ }}


About Maritz Global Events & {{ shop.currentEvent.TradeShowName }}

Maritz Global Events is the official registration and lead management provider for {{ shop.currentEvent.TradeShowName }}.

{{ shop.currentEvent.TradeShowName }} is allowing exhibitors access to their registered attendee list. Click the \\\"Shop Online\\\" button to see the options available. If you have any questions or need assistance, please email exhibitorservices@maritz.com.

Upon registration for this event, all guests (foreign and domestic) agreed to Terms of Use which include voluntarily sharing their personal information with exhibiting companies. Maritz Global Events recommends and encourages all customers to seek their own expert advice for GDPR Compliance concerns.

Thank you for using Maritz Global Events’s Online Order system. We appreciate your business now more than ever.

Upon registration for this event, all guests (foreign and domestic) agreed to Terms of Use which include voluntarily sharing their personal information with exhibiting companies via lead retrieval. Maritz Global Events recommends and encourages all customers to seek their own expert advice for GDPR Compliance concerns.

Maritz Global Events is the official registration and lead management provider for {{ shop.currentEvent.TradeShowName }}.

Every {{ shop.currentEvent.TradeShowName }} attendee will have a badge containing complete contact information (name, title, address, etc.) plus additional qualifying demographic data. When you read the badge with the Maritz Global Events system in your booth, you immediately capture the prospect's information. Maritz Global Events makes lead retrieval easy, effective and fast. It's the best way to maximize the ROI on your exhibit investment and help turn leads into sales.

Thank you for using Maritz Global Events' Online Order System! We appreciate your business.

The shop for this show is under construction. Please contact {{ detail.EXSConfig.CustSvcEmail }} for immediate assistance or check back here later.
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
Any changes made here will not appear in the SWAP app until the data is synced (Account - Sync All).
Survey name must be unique! Survey Names are limited to 40 characters (you are currently using {{ form.name.$viewValue.length }} characters).
0\\\">

Survey Questions

Active questions are shown below. To see both active and deleted questions, or to re-order questions, click \\\"Manage Questions.\\\"

{{ question.Text }} Deleted
Choose One
Choose Many
Open Text Response

Question {{survey.deleteModalQuestion}} cannot be deleted because it has been branched to by the following question(s):

{{q.Text}}
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Copy Survey(s)

No Surveys Found To Copy
{{ ::survey.TradeShowName }} {{ ::survey.BeginDate | date }} - {{ ::survey.SurveyName }}
\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"
You did not enter a name. Survey Question Names are limited to 150 characters (you are currently using {{ surveyQuestion.form.questionName.$viewValue.length }} characters). A survey question with this name already exists.
Choose One
Choose Many
Text
Only one answer can be chosen.
Multiple answers can be selected.
A free-form, open text answer can be entered.
Standard
Important
Required
This question can be skipped.
You will receive a warning if you attempt to skip this question, but can continue to other questions.
You will be unable to proceed to other questions until this question is answered.

Active answers are shown below. To see both active and deleted answers, or to re-order answers, click \\\"Manage Answers.\\\"

To manually dictate the flow of the survey by specifying a next question for an answer, click the button next to the answer
Survey Question Answers are limited to 150 characters (you are currently using {{ surveyQuestion.form['answer' + $index].$viewValue.length }} characters).
Deleted
You must supply answers for this question type.
You did not enter 'Other' text. Survey Answers are limited to 255 characters (you are currently using {{ surveyQuestion.form.otherAnswerText.$viewValue.length }} characters).

This question must be required as it has children that are required.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Surveys

Active surveys are shown below. To see both active and deleted surveys, or to re-order surveys, click \\\"Manage Surveys.\\\"

{{ survey.Name }} Deleted
{{ survey.SurveyQuestions.length }} Question(s)

Activating Your Survey

In the SWAP app, go to \\\"Settings\\\". The survey currently active on your device will be shown.

iOS users - to switch to another survey, tap the survey you wish to use from the list displayed.

Android users - to switch to another survey, tap \\\"Surveys\\\" and select the survey you wish to use from the list displayed.

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Additional Recommended Products

Based on your current order(s), we have detected that the following additional products could further enhance your lead and revenue potential. You may choose to order any of the additional recommended products by entering the quantities below and adding them to your cart. When you are finished, click 'Next' to continue.

    • {{ product.HTMLDescription }}

    • {{ upsell.prices[product.ProductPriceID] | currency}}
    • {{upsell.quantities[product.ProductPriceID]}} added!
    • Add To Cart

\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"

Lead Retrieval Videos

  • {{::config.title}}

    {{::config.title}}

\";\n// Exports\nmodule.exports = code;","/*! @vimeo/player v2.25.1 | (c) 2025 Vimeo | MIT License | https://github.com/vimeo/player.js */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _regeneratorRuntime() {\n _regeneratorRuntime = function () {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function (obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == typeof value && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function (skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function () {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function (exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function (type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function (record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function (finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n catch: function (tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function (iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\n/**\n * @module lib/functions\n */\n\n/**\n * Check to see this is a node environment.\n * @type {Boolean}\n */\n/* global global */\nvar isNode = typeof global !== 'undefined' && {}.toString.call(global) === '[object global]';\n\n/**\n * Get the name of the method for a given getter or setter.\n *\n * @param {string} prop The name of the property.\n * @param {string} type Either “get” or “set”.\n * @return {string}\n */\nfunction getMethodName(prop, type) {\n if (prop.indexOf(type.toLowerCase()) === 0) {\n return prop;\n }\n return \"\".concat(type.toLowerCase()).concat(prop.substr(0, 1).toUpperCase()).concat(prop.substr(1));\n}\n\n/**\n * Check to see if the object is a DOM Element.\n *\n * @param {*} element The object to check.\n * @return {boolean}\n */\nfunction isDomElement(element) {\n return Boolean(element && element.nodeType === 1 && 'nodeName' in element && element.ownerDocument && element.ownerDocument.defaultView);\n}\n\n/**\n * Check to see whether the value is a number.\n *\n * @see http://dl.dropboxusercontent.com/u/35146/js/tests/isNumber.html\n * @param {*} value The value to check.\n * @param {boolean} integer Check if the value is an integer.\n * @return {boolean}\n */\nfunction isInteger(value) {\n // eslint-disable-next-line eqeqeq\n return !isNaN(parseFloat(value)) && isFinite(value) && Math.floor(value) == value;\n}\n\n/**\n * Check to see if the URL is a Vimeo url.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\nfunction isVimeoUrl(url) {\n return /^(https?:)?\\/\\/((((player|www)\\.)?vimeo\\.com)|((player\\.)?[a-zA-Z0-9-]+\\.(videoji\\.(hk|cn)|vimeo\\.work)))(?=$|\\/)/.test(url);\n}\n\n/**\n * Check to see if the URL is for a Vimeo embed.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\nfunction isVimeoEmbed(url) {\n var expr = /^https:\\/\\/player\\.((vimeo\\.com)|([a-zA-Z0-9-]+\\.(videoji\\.(hk|cn)|vimeo\\.work)))\\/video\\/\\d+/;\n return expr.test(url);\n}\nfunction getOembedDomain(url) {\n var match = (url || '').match(/^(?:https?:)?(?:\\/\\/)?([^/?]+)/);\n var domain = (match && match[1] || '').replace('player.', '');\n var customDomains = ['.videoji.hk', '.vimeo.work', '.videoji.cn'];\n for (var _i = 0, _customDomains = customDomains; _i < _customDomains.length; _i++) {\n var customDomain = _customDomains[_i];\n if (domain.endsWith(customDomain)) {\n return domain;\n }\n }\n return 'vimeo.com';\n}\n\n/**\n * Get the Vimeo URL from an element.\n * The element must have either a data-vimeo-id or data-vimeo-url attribute.\n *\n * @param {object} oEmbedParameters The oEmbed parameters.\n * @return {string}\n */\nfunction getVimeoUrl() {\n var oEmbedParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var id = oEmbedParameters.id;\n var url = oEmbedParameters.url;\n var idOrUrl = id || url;\n if (!idOrUrl) {\n throw new Error('An id or url must be passed, either in an options object or as a data-vimeo-id or data-vimeo-url attribute.');\n }\n if (isInteger(idOrUrl)) {\n return \"https://vimeo.com/\".concat(idOrUrl);\n }\n if (isVimeoUrl(idOrUrl)) {\n return idOrUrl.replace('http:', 'https:');\n }\n if (id) {\n throw new TypeError(\"\\u201C\".concat(id, \"\\u201D is not a valid video id.\"));\n }\n throw new TypeError(\"\\u201C\".concat(idOrUrl, \"\\u201D is not a vimeo.com url.\"));\n}\n\n/* eslint-disable max-params */\n/**\n * A utility method for attaching and detaching event handlers\n *\n * @param {EventTarget} target\n * @param {string | string[]} eventName\n * @param {function} callback\n * @param {'addEventListener' | 'on'} onName\n * @param {'removeEventListener' | 'off'} offName\n * @return {{cancel: (function(): void)}}\n */\nvar subscribe = function subscribe(target, eventName, callback) {\n var onName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'addEventListener';\n var offName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'removeEventListener';\n var eventNames = typeof eventName === 'string' ? [eventName] : eventName;\n eventNames.forEach(function (evName) {\n target[onName](evName, callback);\n });\n return {\n cancel: function cancel() {\n return eventNames.forEach(function (evName) {\n return target[offName](evName, callback);\n });\n }\n };\n};\n\nvar arrayIndexOfSupport = typeof Array.prototype.indexOf !== 'undefined';\nvar postMessageSupport = typeof window !== 'undefined' && typeof window.postMessage !== 'undefined';\nif (!isNode && (!arrayIndexOfSupport || !postMessageSupport)) {\n throw new Error('Sorry, the Vimeo Player API is not available in this browser.');\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\n/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n\n(function (self) {\n\n if (self.WeakMap) {\n return;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var hasDefine = Object.defineProperty && function () {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', {\n value: 1\n }).x === 1;\n } catch (e) {}\n }();\n var defineProperty = function (object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n self.WeakMap = function () {\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n defineProperty(this, '_id', genId('_WeakMap'));\n\n // ECMA-262 23.3.1.1 WeakMap([iterable])\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n }\n\n // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n defineProperty(WeakMap.prototype, 'delete', function (key) {\n checkInstance(this, 'delete');\n if (!isObject(key)) {\n return false;\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n return false;\n });\n\n // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n defineProperty(WeakMap.prototype, 'get', function (key) {\n checkInstance(this, 'get');\n if (!isObject(key)) {\n return void 0;\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return entry[1];\n }\n return void 0;\n });\n\n // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n defineProperty(WeakMap.prototype, 'has', function (key) {\n checkInstance(this, 'has');\n if (!isObject(key)) {\n return false;\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n return true;\n }\n return false;\n });\n\n // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n defineProperty(WeakMap.prototype, 'set', function (key, value) {\n checkInstance(this, 'set');\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n var entry = key[this._id];\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(methodName + ' method called on incompatible receiver ' + typeof x);\n }\n }\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n function rand() {\n return Math.random().toString().substring(2);\n }\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n }();\n function isObject(x) {\n return Object(x) === x;\n }\n})(typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : commonjsGlobal);\n\nvar npo_src = createCommonjsModule(function (module) {\n/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n\n(function UMD(name, context, definition) {\n // special form of UMD for polyfilling across evironments\n context[name] = context[name] || definition();\n if ( module.exports) {\n module.exports = context[name];\n }\n})(\"Promise\", typeof commonjsGlobal != \"undefined\" ? commonjsGlobal : commonjsGlobal, function DEF() {\n\n var builtInProp,\n cycle,\n scheduling_queue,\n ToString = Object.prototype.toString,\n timer = typeof setImmediate != \"undefined\" ? function timer(fn) {\n return setImmediate(fn);\n } : setTimeout;\n\n // dammit, IE8.\n try {\n Object.defineProperty({}, \"x\", {});\n builtInProp = function builtInProp(obj, name, val, config) {\n return Object.defineProperty(obj, name, {\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n } catch (err) {\n builtInProp = function builtInProp(obj, name, val) {\n obj[name] = val;\n return obj;\n };\n }\n\n // Note: using a queue instead of array for efficiency\n scheduling_queue = function Queue() {\n var first, last, item;\n function Item(fn, self) {\n this.fn = fn;\n this.self = self;\n this.next = void 0;\n }\n return {\n add: function add(fn, self) {\n item = new Item(fn, self);\n if (last) {\n last.next = item;\n } else {\n first = item;\n }\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n }();\n function schedule(fn, self) {\n scheduling_queue.add(fn, self);\n if (!cycle) {\n cycle = timer(scheduling_queue.drain);\n }\n }\n\n // promise duck typing\n function isThenable(o) {\n var _then,\n o_type = typeof o;\n if (o != null && (o_type == \"object\" || o_type == \"function\")) {\n _then = o.then;\n }\n return typeof _then == \"function\" ? _then : false;\n }\n function notify() {\n for (var i = 0; i < this.chain.length; i++) {\n notifyIsolated(this, this.state === 1 ? this.chain[i].success : this.chain[i].failure, this.chain[i]);\n }\n this.chain.length = 0;\n }\n\n // NOTE: This is a separate function to isolate\n // the `try..catch` so that other code can be\n // optimized better\n function notifyIsolated(self, cb, chain) {\n var ret, _then;\n try {\n if (cb === false) {\n chain.reject(self.msg);\n } else {\n if (cb === true) {\n ret = self.msg;\n } else {\n ret = cb.call(void 0, self.msg);\n }\n if (ret === chain.promise) {\n chain.reject(TypeError(\"Promise-chain cycle\"));\n } else if (_then = isThenable(ret)) {\n _then.call(ret, chain.resolve, chain.reject);\n } else {\n chain.resolve(ret);\n }\n }\n } catch (err) {\n chain.reject(err);\n }\n }\n function resolve(msg) {\n var _then,\n self = this;\n\n // already triggered?\n if (self.triggered) {\n return;\n }\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n try {\n if (_then = isThenable(msg)) {\n schedule(function () {\n var def_wrapper = new MakeDefWrapper(self);\n try {\n _then.call(msg, function $resolve$() {\n resolve.apply(def_wrapper, arguments);\n }, function $reject$() {\n reject.apply(def_wrapper, arguments);\n });\n } catch (err) {\n reject.call(def_wrapper, err);\n }\n });\n } else {\n self.msg = msg;\n self.state = 1;\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n } catch (err) {\n reject.call(new MakeDefWrapper(self), err);\n }\n }\n function reject(msg) {\n var self = this;\n\n // already triggered?\n if (self.triggered) {\n return;\n }\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n self.msg = msg;\n self.state = 2;\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n function iteratePromises(Constructor, arr, resolver, rejecter) {\n for (var idx = 0; idx < arr.length; idx++) {\n (function IIFE(idx) {\n Constructor.resolve(arr[idx]).then(function $resolver$(msg) {\n resolver(idx, msg);\n }, rejecter);\n })(idx);\n }\n }\n function MakeDefWrapper(self) {\n this.def = self;\n this.triggered = false;\n }\n function MakeDef(self) {\n this.promise = self;\n this.state = 0;\n this.triggered = false;\n this.chain = [];\n this.msg = void 0;\n }\n function Promise(executor) {\n if (typeof executor != \"function\") {\n throw TypeError(\"Not a function\");\n }\n if (this.__NPO__ !== 0) {\n throw TypeError(\"Not a promise\");\n }\n\n // instance shadowing the inherited \"brand\"\n // to signal an already \"initialized\" promise\n this.__NPO__ = 1;\n var def = new MakeDef(this);\n this[\"then\"] = function then(success, failure) {\n var o = {\n success: typeof success == \"function\" ? success : true,\n failure: typeof failure == \"function\" ? failure : false\n };\n // Note: `then(..)` itself can be borrowed to be used against\n // a different promise constructor for making the chained promise,\n // by substituting a different `this` binding.\n o.promise = new this.constructor(function extractChain(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n o.resolve = resolve;\n o.reject = reject;\n });\n def.chain.push(o);\n if (def.state !== 0) {\n schedule(notify, def);\n }\n return o.promise;\n };\n this[\"catch\"] = function $catch$(failure) {\n return this.then(void 0, failure);\n };\n try {\n executor.call(void 0, function publicResolve(msg) {\n resolve.call(def, msg);\n }, function publicReject(msg) {\n reject.call(def, msg);\n });\n } catch (err) {\n reject.call(def, err);\n }\n }\n var PromisePrototype = builtInProp({}, \"constructor\", Promise, /*configurable=*/false);\n\n // Note: Android 4 cannot use `Object.defineProperty(..)` here\n Promise.prototype = PromisePrototype;\n\n // built-in \"brand\" to signal an \"uninitialized\" promise\n builtInProp(PromisePrototype, \"__NPO__\", 0, /*configurable=*/false);\n builtInProp(Promise, \"resolve\", function Promise$resolve(msg) {\n var Constructor = this;\n\n // spec mandated checks\n // note: best \"isPromise\" check that's practical for now\n if (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n return msg;\n }\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n resolve(msg);\n });\n });\n builtInProp(Promise, \"reject\", function Promise$reject(msg) {\n return new this(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n reject(msg);\n });\n });\n builtInProp(Promise, \"all\", function Promise$all(arr) {\n var Constructor = this;\n\n // spec mandated checks\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n if (arr.length === 0) {\n return Constructor.resolve([]);\n }\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n var len = arr.length,\n msgs = Array(len),\n count = 0;\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n msgs[idx] = msg;\n if (++count === len) {\n resolve(msgs);\n }\n }, reject);\n });\n });\n builtInProp(Promise, \"race\", function Promise$race(arr) {\n var Constructor = this;\n\n // spec mandated checks\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n resolve(msg);\n }, reject);\n });\n });\n return Promise;\n});\n});\n\n/**\n * @module lib/callbacks\n */\n\nvar callbackMap = new WeakMap();\n\n/**\n * Store a callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @param {(function(this:Player, *): void|{resolve: function, reject: function})} callback\n * The callback to call or an object with resolve and reject functions for a promise.\n * @return {void}\n */\nfunction storeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n if (!(name in playerCallbacks)) {\n playerCallbacks[name] = [];\n }\n playerCallbacks[name].push(callback);\n callbackMap.set(player.element, playerCallbacks);\n}\n\n/**\n * Get the callbacks for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @return {function[]}\n */\nfunction getCallbacks(player, name) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n return playerCallbacks[name] || [];\n}\n\n/**\n * Remove a stored callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @param {function} [callback] The specific callback to remove.\n * @return {boolean} Was this the last callback?\n */\nfunction removeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n if (!playerCallbacks[name]) {\n return true;\n }\n\n // If no callback is passed, remove all callbacks for the event\n if (!callback) {\n playerCallbacks[name] = [];\n callbackMap.set(player.element, playerCallbacks);\n return true;\n }\n var index = playerCallbacks[name].indexOf(callback);\n if (index !== -1) {\n playerCallbacks[name].splice(index, 1);\n }\n callbackMap.set(player.element, playerCallbacks);\n return playerCallbacks[name] && playerCallbacks[name].length === 0;\n}\n\n/**\n * Return the first stored callback for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @return {function} The callback, or false if there were none\n */\nfunction shiftCallbacks(player, name) {\n var playerCallbacks = getCallbacks(player, name);\n if (playerCallbacks.length < 1) {\n return false;\n }\n var callback = playerCallbacks.shift();\n removeCallback(player, name, callback);\n return callback;\n}\n\n/**\n * Move callbacks associated with an element to another element.\n *\n * @param {HTMLElement} oldElement The old element.\n * @param {HTMLElement} newElement The new element.\n * @return {void}\n */\nfunction swapCallbacks(oldElement, newElement) {\n var playerCallbacks = callbackMap.get(oldElement);\n callbackMap.set(newElement, playerCallbacks);\n callbackMap.delete(oldElement);\n}\n\n/**\n * @module lib/postmessage\n */\n\n/**\n * Parse a message received from postMessage.\n *\n * @param {*} data The data received from postMessage.\n * @return {object}\n */\nfunction parseMessageData(data) {\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (error) {\n // If the message cannot be parsed, throw the error as a warning\n console.warn(error);\n return {};\n }\n }\n return data;\n}\n\n/**\n * Post a message to the specified target.\n *\n * @param {Player} player The player object to use.\n * @param {string} method The API method to call.\n * @param {object} params The parameters to send to the player.\n * @return {void}\n */\nfunction postMessage(player, method, params) {\n if (!player.element.contentWindow || !player.element.contentWindow.postMessage) {\n return;\n }\n var message = {\n method: method\n };\n if (params !== undefined) {\n message.value = params;\n }\n\n // IE 8 and 9 do not support passing messages, so stringify them\n var ieVersion = parseFloat(navigator.userAgent.toLowerCase().replace(/^.*msie (\\d+).*$/, '$1'));\n if (ieVersion >= 8 && ieVersion < 10) {\n message = JSON.stringify(message);\n }\n player.element.contentWindow.postMessage(message, player.origin);\n}\n\n/**\n * Parse the data received from a message event.\n *\n * @param {Player} player The player that received the message.\n * @param {(Object|string)} data The message data. Strings will be parsed into JSON.\n * @return {void}\n */\nfunction processData(player, data) {\n data = parseMessageData(data);\n var callbacks = [];\n var param;\n if (data.event) {\n if (data.event === 'error') {\n var promises = getCallbacks(player, data.data.method);\n promises.forEach(function (promise) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n promise.reject(error);\n removeCallback(player, data.data.method, promise);\n });\n }\n callbacks = getCallbacks(player, \"event:\".concat(data.event));\n param = data.data;\n } else if (data.method) {\n var callback = shiftCallbacks(player, data.method);\n if (callback) {\n callbacks.push(callback);\n param = data.value;\n }\n }\n callbacks.forEach(function (callback) {\n try {\n if (typeof callback === 'function') {\n callback.call(player, param);\n return;\n }\n callback.resolve(param);\n } catch (e) {\n // empty\n }\n });\n}\n\n/**\n * @module lib/embed\n */\nvar oEmbedParameters = ['airplay', 'audio_tracks', 'audiotrack', 'autopause', 'autoplay', 'background', 'byline', 'cc', 'chapter_id', 'chapters', 'chromecast', 'color', 'colors', 'controls', 'dnt', 'end_time', 'fullscreen', 'height', 'id', 'interactive_params', 'keyboard', 'loop', 'maxheight', 'maxwidth', 'muted', 'play_button_position', 'playsinline', 'portrait', 'progress_bar', 'quality_selector', 'responsive', 'speed', 'start_time', 'texttrack', 'title', 'transcript', 'transparent', 'unmute_button', 'url', 'vimeo_logo', 'volume', 'watch_full_video', 'width'];\n\n/**\n * Get the 'data-vimeo'-prefixed attributes from an element as an object.\n *\n * @param {HTMLElement} element The element.\n * @param {Object} [defaults={}] The default values to use.\n * @return {Object}\n */\nfunction getOEmbedParameters(element) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return oEmbedParameters.reduce(function (params, param) {\n var value = element.getAttribute(\"data-vimeo-\".concat(param));\n if (value || value === '') {\n params[param] = value === '' ? 1 : value;\n }\n return params;\n }, defaults);\n}\n\n/**\n * Create an embed from oEmbed data inside an element.\n *\n * @param {object} data The oEmbed data.\n * @param {HTMLElement} element The element to put the iframe in.\n * @return {HTMLIFrameElement} The iframe embed.\n */\nfunction createEmbed(_ref, element) {\n var html = _ref.html;\n if (!element) {\n throw new TypeError('An element must be provided');\n }\n if (element.getAttribute('data-vimeo-initialized') !== null) {\n return element.querySelector('iframe');\n }\n var div = document.createElement('div');\n div.innerHTML = html;\n element.appendChild(div.firstChild);\n element.setAttribute('data-vimeo-initialized', 'true');\n return element.querySelector('iframe');\n}\n\n/**\n * Make an oEmbed call for the specified URL.\n *\n * @param {string} videoUrl The vimeo.com url for the video.\n * @param {Object} [params] Parameters to pass to oEmbed.\n * @param {HTMLElement} element The element.\n * @return {Promise}\n */\nfunction getOEmbedData(videoUrl) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var element = arguments.length > 2 ? arguments[2] : undefined;\n return new Promise(function (resolve, reject) {\n if (!isVimeoUrl(videoUrl)) {\n throw new TypeError(\"\\u201C\".concat(videoUrl, \"\\u201D is not a vimeo.com url.\"));\n }\n var domain = getOembedDomain(videoUrl);\n var url = \"https://\".concat(domain, \"/api/oembed.json?url=\").concat(encodeURIComponent(videoUrl));\n for (var param in params) {\n if (params.hasOwnProperty(param)) {\n url += \"&\".concat(param, \"=\").concat(encodeURIComponent(params[param]));\n }\n }\n var xhr = 'XDomainRequest' in window ? new XDomainRequest() : new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onload = function () {\n if (xhr.status === 404) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D was not found.\")));\n return;\n }\n if (xhr.status === 403) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n try {\n var json = JSON.parse(xhr.responseText);\n // Check api response for 403 on oembed\n if (json.domain_status_code === 403) {\n // We still want to create the embed to give users visual feedback\n createEmbed(json, element);\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n xhr.onerror = function () {\n var status = xhr.status ? \" (\".concat(xhr.status, \")\") : '';\n reject(new Error(\"There was an error fetching the embed code from Vimeo\".concat(status, \".\")));\n };\n xhr.send();\n });\n}\n\n/**\n * Initialize all embeds within a specific element\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction initializeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var elements = [].slice.call(parent.querySelectorAll('[data-vimeo-id], [data-vimeo-url]'));\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error(\"There was an error creating an embed: \".concat(error));\n }\n };\n elements.forEach(function (element) {\n try {\n // Skip any that have data-vimeo-defer\n if (element.getAttribute('data-vimeo-defer') !== null) {\n return;\n }\n var params = getOEmbedParameters(element);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n return createEmbed(data, element);\n }).catch(handleError);\n } catch (error) {\n handleError(error);\n }\n });\n}\n\n/**\n * Resize embeds when messaged by the player.\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction resizeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoPlayerResizeEmbeds_) {\n return;\n }\n window.VimeoPlayerResizeEmbeds_ = true;\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n\n // 'spacechange' is fired only on embeds with cards\n if (!event.data || event.data.event !== 'spacechange') {\n return;\n }\n var iframes = parent.querySelectorAll('iframe');\n for (var i = 0; i < iframes.length; i++) {\n if (iframes[i].contentWindow !== event.source) {\n continue;\n }\n\n // Change padding-bottom of the enclosing div to accommodate\n // card carousel without distorting aspect ratio\n var space = iframes[i].parentElement;\n space.style.paddingBottom = \"\".concat(event.data.data[0].bottom, \"px\");\n break;\n }\n };\n window.addEventListener('message', onMessage);\n}\n\n/**\n * Add chapters to existing metadata for Google SEO\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction initAppendVideoMetadata() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoSeoMetadataAppended) {\n return;\n }\n window.VimeoSeoMetadataAppended = true;\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n var data = parseMessageData(event.data);\n if (!data || data.event !== 'ready') {\n return;\n }\n var iframes = parent.querySelectorAll('iframe');\n for (var i = 0; i < iframes.length; i++) {\n var iframe = iframes[i];\n\n // Initiate appendVideoMetadata if iframe is a Vimeo embed\n var isValidMessageSource = iframe.contentWindow === event.source;\n if (isVimeoEmbed(iframe.src) && isValidMessageSource) {\n var player = new Player(iframe);\n player.callMethod('appendVideoMetadata', window.location.href);\n }\n }\n };\n window.addEventListener('message', onMessage);\n}\n\n/**\n * Seek to time indicated by vimeo_t query parameter if present in URL\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction checkUrlTimeParam() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoCheckedUrlTimeParam) {\n return;\n }\n window.VimeoCheckedUrlTimeParam = true;\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error(\"There was an error getting video Id: \".concat(error));\n }\n };\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n var data = parseMessageData(event.data);\n if (!data || data.event !== 'ready') {\n return;\n }\n var iframes = parent.querySelectorAll('iframe');\n var _loop = function _loop() {\n var iframe = iframes[i];\n var isValidMessageSource = iframe.contentWindow === event.source;\n if (isVimeoEmbed(iframe.src) && isValidMessageSource) {\n var player = new Player(iframe);\n player.getVideoId().then(function (videoId) {\n var matches = new RegExp(\"[?&]vimeo_t_\".concat(videoId, \"=([^&#]*)\")).exec(window.location.href);\n if (matches && matches[1]) {\n var sec = decodeURI(matches[1]);\n player.setCurrentTime(sec);\n }\n return;\n }).catch(handleError);\n }\n };\n for (var i = 0; i < iframes.length; i++) {\n _loop();\n }\n };\n window.addEventListener('message', onMessage);\n}\n\n/* MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nTerms */\n\nfunction initializeScreenfull() {\n var fn = function () {\n var val;\n var fnMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],\n // New WebKit\n ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],\n // Old WebKit\n ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'], ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'], ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\n var i = 0;\n var l = fnMap.length;\n var ret = {};\n for (; i < l; i++) {\n val = fnMap[i];\n if (val && val[1] in document) {\n for (i = 0; i < val.length; i++) {\n ret[fnMap[0][i]] = val[i];\n }\n return ret;\n }\n }\n return false;\n }();\n var eventNameMap = {\n fullscreenchange: fn.fullscreenchange,\n fullscreenerror: fn.fullscreenerror\n };\n var screenfull = {\n request: function request(element) {\n return new Promise(function (resolve, reject) {\n var onFullScreenEntered = function onFullScreenEntered() {\n screenfull.off('fullscreenchange', onFullScreenEntered);\n resolve();\n };\n screenfull.on('fullscreenchange', onFullScreenEntered);\n element = element || document.documentElement;\n var returnPromise = element[fn.requestFullscreen]();\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit: function exit() {\n return new Promise(function (resolve, reject) {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n var onFullScreenExit = function onFullScreenExit() {\n screenfull.off('fullscreenchange', onFullScreenExit);\n resolve();\n };\n screenfull.on('fullscreenchange', onFullScreenExit);\n var returnPromise = document[fn.exitFullscreen]();\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n on: function on(event, callback) {\n var eventName = eventNameMap[event];\n if (eventName) {\n document.addEventListener(eventName, callback);\n }\n },\n off: function off(event, callback) {\n var eventName = eventNameMap[event];\n if (eventName) {\n document.removeEventListener(eventName, callback);\n }\n }\n };\n Object.defineProperties(screenfull, {\n isFullscreen: {\n get: function get() {\n return Boolean(document[fn.fullscreenElement]);\n }\n },\n element: {\n enumerable: true,\n get: function get() {\n return document[fn.fullscreenElement];\n }\n },\n isEnabled: {\n enumerable: true,\n get: function get() {\n // Coerce to boolean in case of old WebKit\n return Boolean(document[fn.fullscreenEnabled]);\n }\n }\n });\n return screenfull;\n}\n\n/** @typedef {import('./timing-src-connector.types').PlayerControls} PlayerControls */\n/** @typedef {import('./timing-object.types').TimingObject} TimingObject */\n/** @typedef {import('./timing-src-connector.types').TimingSrcConnectorOptions} TimingSrcConnectorOptions */\n/** @typedef {(msg: string) => any} Logger */\n/** @typedef {import('timing-object.types').TConnectionState} TConnectionState */\n\n/**\n * @type {TimingSrcConnectorOptions}\n *\n * For details on these properties and their effects, see the typescript definition referenced above.\n */\nvar defaultOptions = {\n role: 'viewer',\n autoPlayMuted: true,\n allowedDrift: 0.3,\n maxAllowedDrift: 1,\n minCheckInterval: 0.1,\n maxRateAdjustment: 0.2,\n maxTimeToCatchUp: 1\n};\n\n/**\n * There's a proposed W3C spec for the Timing Object which would introduce a new set of APIs that would simplify time-synchronization tasks for browser applications.\n *\n * Proposed spec: https://webtiming.github.io/timingobject/\n * V3 Spec: https://timingsrc.readthedocs.io/en/latest/\n * Demuxed talk: https://www.youtube.com/watch?v=cZSjDaGDmX8\n *\n * This class makes it easy to connect Vimeo.Player to a provided TimingObject via Vimeo.Player.setTimingSrc(myTimingObject, options) and the synchronization will be handled automatically.\n *\n * There are 5 general responsibilities in TimingSrcConnector:\n *\n * 1. `updatePlayer()` which sets the player's currentTime, playbackRate and pause/play state based on current state of the TimingObject.\n * 2. `updateTimingObject()` which sets the TimingObject's position and velocity from the player's state.\n * 3. `playerUpdater` which listens for change events on the TimingObject and will respond by calling updatePlayer.\n * 4. `timingObjectUpdater` which listens to the player events of seeked, play and pause and will respond by calling `updateTimingObject()`.\n * 5. `maintainPlaybackPosition` this is code that constantly monitors the player to make sure it's always in sync with the TimingObject. This is needed because videos will generally not play with precise time accuracy and there will be some drift which becomes more noticeable over longer periods (as noted in the timing-object spec). More details on this method below.\n */\nvar TimingSrcConnector = /*#__PURE__*/function (_EventTarget) {\n _inherits(TimingSrcConnector, _EventTarget);\n var _super = _createSuper(TimingSrcConnector);\n /**\n * @param {PlayerControls} player\n * @param {TimingObject} timingObject\n * @param {TimingSrcConnectorOptions} options\n * @param {Logger} logger\n */\n function TimingSrcConnector(_player, timingObject) {\n var _this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var logger = arguments.length > 3 ? arguments[3] : undefined;\n _classCallCheck(this, TimingSrcConnector);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"logger\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"speedAdjustment\", 0);\n /**\n * @param {PlayerControls} player\n * @param {number} newAdjustment\n * @return {Promise}\n */\n _defineProperty(_assertThisInitialized(_this), \"adjustSpeed\", /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(player, newAdjustment) {\n var newPlaybackRate;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(_this.speedAdjustment === newAdjustment)) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n _context.next = 4;\n return player.getPlaybackRate();\n case 4:\n _context.t0 = _context.sent;\n _context.t1 = _this.speedAdjustment;\n _context.t2 = _context.t0 - _context.t1;\n _context.t3 = newAdjustment;\n newPlaybackRate = _context.t2 + _context.t3;\n _this.log(\"New playbackRate: \".concat(newPlaybackRate));\n _context.next = 12;\n return player.setPlaybackRate(newPlaybackRate);\n case 12:\n _this.speedAdjustment = newAdjustment;\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }());\n _this.logger = logger;\n _this.init(timingObject, _player, _objectSpread2(_objectSpread2({}, defaultOptions), options));\n return _this;\n }\n _createClass(TimingSrcConnector, [{\n key: \"disconnect\",\n value: function disconnect() {\n this.dispatchEvent(new Event('disconnect'));\n }\n\n /**\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @param {TimingSrcConnectorOptions} options\n * @return {Promise}\n */\n }, {\n key: \"init\",\n value: function () {\n var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(timingObject, player, options) {\n var _this2 = this;\n var playerUpdater, positionSync, timingObjectUpdater;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.waitForTOReadyState(timingObject, 'open');\n case 2:\n if (!(options.role === 'viewer')) {\n _context2.next = 10;\n break;\n }\n _context2.next = 5;\n return this.updatePlayer(timingObject, player, options);\n case 5:\n playerUpdater = subscribe(timingObject, 'change', function () {\n return _this2.updatePlayer(timingObject, player, options);\n });\n positionSync = this.maintainPlaybackPosition(timingObject, player, options);\n this.addEventListener('disconnect', function () {\n positionSync.cancel();\n playerUpdater.cancel();\n });\n _context2.next = 14;\n break;\n case 10:\n _context2.next = 12;\n return this.updateTimingObject(timingObject, player);\n case 12:\n timingObjectUpdater = subscribe(player, ['seeked', 'play', 'pause', 'ratechange'], function () {\n return _this2.updateTimingObject(timingObject, player);\n }, 'on', 'off');\n this.addEventListener('disconnect', function () {\n return timingObjectUpdater.cancel();\n });\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function init(_x3, _x4, _x5) {\n return _init.apply(this, arguments);\n }\n return init;\n }()\n /**\n * Sets the TimingObject's state to reflect that of the player\n *\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @return {Promise}\n */\n }, {\n key: \"updateTimingObject\",\n value: function () {\n var _updateTimingObject = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(timingObject, player) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.t0 = timingObject;\n _context3.next = 3;\n return player.getCurrentTime();\n case 3:\n _context3.t1 = _context3.sent;\n _context3.next = 6;\n return player.getPaused();\n case 6:\n if (!_context3.sent) {\n _context3.next = 10;\n break;\n }\n _context3.t2 = 0;\n _context3.next = 13;\n break;\n case 10:\n _context3.next = 12;\n return player.getPlaybackRate();\n case 12:\n _context3.t2 = _context3.sent;\n case 13:\n _context3.t3 = _context3.t2;\n _context3.t4 = {\n position: _context3.t1,\n velocity: _context3.t3\n };\n _context3.t0.update.call(_context3.t0, _context3.t4);\n case 16:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function updateTimingObject(_x6, _x7) {\n return _updateTimingObject.apply(this, arguments);\n }\n return updateTimingObject;\n }()\n /**\n * Sets the player's timing state to reflect that of the TimingObject\n *\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @param {TimingSrcConnectorOptions} options\n * @return {Promise}\n */\n }, {\n key: \"updatePlayer\",\n value: function () {\n var _updatePlayer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(timingObject, player, options) {\n var _timingObject$query, position, velocity;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _timingObject$query = timingObject.query(), position = _timingObject$query.position, velocity = _timingObject$query.velocity;\n if (typeof position === 'number') {\n player.setCurrentTime(position);\n }\n if (!(typeof velocity === 'number')) {\n _context5.next = 25;\n break;\n }\n if (!(velocity === 0)) {\n _context5.next = 11;\n break;\n }\n _context5.next = 6;\n return player.getPaused();\n case 6:\n _context5.t0 = _context5.sent;\n if (!(_context5.t0 === false)) {\n _context5.next = 9;\n break;\n }\n player.pause();\n case 9:\n _context5.next = 25;\n break;\n case 11:\n if (!(velocity > 0)) {\n _context5.next = 25;\n break;\n }\n _context5.next = 14;\n return player.getPaused();\n case 14:\n _context5.t1 = _context5.sent;\n if (!(_context5.t1 === true)) {\n _context5.next = 19;\n break;\n }\n _context5.next = 18;\n return player.play().catch( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(err) {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n if (!(err.name === 'NotAllowedError' && options.autoPlayMuted)) {\n _context4.next = 5;\n break;\n }\n _context4.next = 3;\n return player.setMuted(true);\n case 3:\n _context4.next = 5;\n return player.play().catch(function (err2) {\n return console.error('Couldn\\'t play the video from TimingSrcConnector. Error:', err2);\n });\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function (_x11) {\n return _ref2.apply(this, arguments);\n };\n }());\n case 18:\n this.updatePlayer(timingObject, player, options);\n case 19:\n _context5.next = 21;\n return player.getPlaybackRate();\n case 21:\n _context5.t2 = _context5.sent;\n _context5.t3 = velocity;\n if (!(_context5.t2 !== _context5.t3)) {\n _context5.next = 25;\n break;\n }\n player.setPlaybackRate(velocity);\n case 25:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function updatePlayer(_x8, _x9, _x10) {\n return _updatePlayer.apply(this, arguments);\n }\n return updatePlayer;\n }()\n /**\n * Since video players do not play with 100% time precision, we need to closely monitor\n * our player to be sure it remains in sync with the TimingObject.\n *\n * If out of sync, we use the current conditions and the options provided to determine\n * whether to re-sync via setting currentTime or adjusting the playbackRate\n *\n * @param {TimingObject} timingObject\n * @param {PlayerControls} player\n * @param {TimingSrcConnectorOptions} options\n * @return {{cancel: (function(): void)}}\n */\n }, {\n key: \"maintainPlaybackPosition\",\n value: function maintainPlaybackPosition(timingObject, player, options) {\n var _this3 = this;\n var allowedDrift = options.allowedDrift,\n maxAllowedDrift = options.maxAllowedDrift,\n minCheckInterval = options.minCheckInterval,\n maxRateAdjustment = options.maxRateAdjustment,\n maxTimeToCatchUp = options.maxTimeToCatchUp;\n var syncInterval = Math.min(maxTimeToCatchUp, Math.max(minCheckInterval, maxAllowedDrift)) * 1000;\n var check = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var diff, diffAbs, min, max, adjustment;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.t0 = timingObject.query().velocity === 0;\n if (_context6.t0) {\n _context6.next = 6;\n break;\n }\n _context6.next = 4;\n return player.getPaused();\n case 4:\n _context6.t1 = _context6.sent;\n _context6.t0 = _context6.t1 === true;\n case 6:\n if (!_context6.t0) {\n _context6.next = 8;\n break;\n }\n return _context6.abrupt(\"return\");\n case 8:\n _context6.t2 = timingObject.query().position;\n _context6.next = 11;\n return player.getCurrentTime();\n case 11:\n _context6.t3 = _context6.sent;\n diff = _context6.t2 - _context6.t3;\n diffAbs = Math.abs(diff);\n _this3.log(\"Drift: \".concat(diff));\n if (!(diffAbs > maxAllowedDrift)) {\n _context6.next = 22;\n break;\n }\n _context6.next = 18;\n return _this3.adjustSpeed(player, 0);\n case 18:\n player.setCurrentTime(timingObject.query().position);\n _this3.log('Resync by currentTime');\n _context6.next = 29;\n break;\n case 22:\n if (!(diffAbs > allowedDrift)) {\n _context6.next = 29;\n break;\n }\n min = diffAbs / maxTimeToCatchUp;\n max = maxRateAdjustment;\n adjustment = min < max ? (max - min) / 2 : max;\n _context6.next = 28;\n return _this3.adjustSpeed(player, adjustment * Math.sign(diff));\n case 28:\n _this3.log('Resync by playbackRate');\n case 29:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return function check() {\n return _ref3.apply(this, arguments);\n };\n }();\n var interval = setInterval(function () {\n return check();\n }, syncInterval);\n return {\n cancel: function cancel() {\n return clearInterval(interval);\n }\n };\n }\n\n /**\n * @param {string} msg\n */\n }, {\n key: \"log\",\n value: function log(msg) {\n var _this$logger;\n (_this$logger = this.logger) === null || _this$logger === void 0 ? void 0 : _this$logger.call(this, \"TimingSrcConnector: \".concat(msg));\n }\n }, {\n key: \"waitForTOReadyState\",\n value:\n /**\n * @param {TimingObject} timingObject\n * @param {TConnectionState} state\n * @return {Promise}\n */\n function waitForTOReadyState(timingObject, state) {\n return new Promise(function (resolve) {\n var check = function check() {\n if (timingObject.readyState === state) {\n resolve();\n } else {\n timingObject.addEventListener('readystatechange', check, {\n once: true\n });\n }\n };\n check();\n });\n }\n }]);\n return TimingSrcConnector;\n}( /*#__PURE__*/_wrapNativeSuper(EventTarget));\n\nvar playerMap = new WeakMap();\nvar readyMap = new WeakMap();\nvar screenfull = {};\nvar Player = /*#__PURE__*/function () {\n /**\n * Create a Player.\n *\n * @param {(HTMLIFrameElement|HTMLElement|string|jQuery)} element A reference to the Vimeo\n * player iframe, and id, or a jQuery object.\n * @param {object} [options] oEmbed parameters to use when creating an embed in the element.\n * @return {Player}\n */\n function Player(element) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Player);\n /* global jQuery */\n if (window.jQuery && element instanceof jQuery) {\n if (element.length > 1 && window.console && console.warn) {\n console.warn('A jQuery object with multiple elements was passed, using the first element.');\n }\n element = element[0];\n }\n\n // Find an element by ID\n if (typeof document !== 'undefined' && typeof element === 'string') {\n element = document.getElementById(element);\n }\n\n // Not an element!\n if (!isDomElement(element)) {\n throw new TypeError('You must pass either a valid element or a valid id.');\n }\n\n // Already initialized an embed in this div, so grab the iframe\n if (element.nodeName !== 'IFRAME') {\n var iframe = element.querySelector('iframe');\n if (iframe) {\n element = iframe;\n }\n }\n\n // iframe url is not a Vimeo url\n if (element.nodeName === 'IFRAME' && !isVimeoUrl(element.getAttribute('src') || '')) {\n throw new Error('The player element passed isn’t a Vimeo embed.');\n }\n\n // If there is already a player object in the map, return that\n if (playerMap.has(element)) {\n return playerMap.get(element);\n }\n this._window = element.ownerDocument.defaultView;\n this.element = element;\n this.origin = '*';\n var readyPromise = new npo_src(function (resolve, reject) {\n _this._onMessage = function (event) {\n if (!isVimeoUrl(event.origin) || _this.element.contentWindow !== event.source) {\n return;\n }\n if (_this.origin === '*') {\n _this.origin = event.origin;\n }\n var data = parseMessageData(event.data);\n var isError = data && data.event === 'error';\n var isReadyError = isError && data.data && data.data.method === 'ready';\n if (isReadyError) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n reject(error);\n return;\n }\n var isReadyEvent = data && data.event === 'ready';\n var isPingResponse = data && data.method === 'ping';\n if (isReadyEvent || isPingResponse) {\n _this.element.setAttribute('data-ready', 'true');\n resolve();\n return;\n }\n processData(_this, data);\n };\n _this._window.addEventListener('message', _this._onMessage);\n if (_this.element.nodeName !== 'IFRAME') {\n var params = getOEmbedParameters(element, options);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n var iframe = createEmbed(data, element);\n // Overwrite element with the new iframe,\n // but store reference to the original element\n _this.element = iframe;\n _this._originalElement = element;\n swapCallbacks(element, iframe);\n playerMap.set(_this.element, _this);\n return data;\n }).catch(reject);\n }\n });\n\n // Store a copy of this Player in the map\n readyMap.set(this, readyPromise);\n playerMap.set(this.element, this);\n\n // Send a ping to the iframe so the ready promise will be resolved if\n // the player is already ready.\n if (this.element.nodeName === 'IFRAME') {\n postMessage(this, 'ping');\n }\n if (screenfull.isEnabled) {\n var exitFullscreen = function exitFullscreen() {\n return screenfull.exit();\n };\n this.fullscreenchangeHandler = function () {\n if (screenfull.isFullscreen) {\n storeCallback(_this, 'event:exitFullscreen', exitFullscreen);\n } else {\n removeCallback(_this, 'event:exitFullscreen', exitFullscreen);\n }\n // eslint-disable-next-line\n _this.ready().then(function () {\n postMessage(_this, 'fullscreenchange', screenfull.isFullscreen);\n });\n };\n screenfull.on('fullscreenchange', this.fullscreenchangeHandler);\n }\n return this;\n }\n\n /**\n * Get a promise for a method.\n *\n * @param {string} name The API method to call.\n * @param {Object} [args={}] Arguments to send via postMessage.\n * @return {Promise}\n */\n _createClass(Player, [{\n key: \"callMethod\",\n value: function callMethod(name) {\n var _this2 = this;\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new npo_src(function (resolve, reject) {\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this2.ready().then(function () {\n storeCallback(_this2, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this2, name, args);\n }).catch(reject);\n });\n }\n\n /**\n * Get a promise for the value of a player property.\n *\n * @param {string} name The property name\n * @return {Promise}\n */\n }, {\n key: \"get\",\n value: function get(name) {\n var _this3 = this;\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'get');\n\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this3.ready().then(function () {\n storeCallback(_this3, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this3, name);\n }).catch(reject);\n });\n }\n\n /**\n * Get a promise for setting the value of a player property.\n *\n * @param {string} name The API method to call.\n * @param {mixed} value The value to set.\n * @return {Promise}\n */\n }, {\n key: \"set\",\n value: function set(name, value) {\n var _this4 = this;\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'set');\n if (value === undefined || value === null) {\n throw new TypeError('There must be a value to set.');\n }\n\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this4.ready().then(function () {\n storeCallback(_this4, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this4, name, value);\n }).catch(reject);\n });\n }\n\n /**\n * Add an event listener for the specified event. Will call the\n * callback with a single parameter, `data`, that contains the data for\n * that event.\n *\n * @param {string} eventName The name of the event.\n * @param {function(*)} callback The function to call when the event fires.\n * @return {void}\n */\n }, {\n key: \"on\",\n value: function on(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n if (!callback) {\n throw new TypeError('You must pass a callback function.');\n }\n if (typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n var callbacks = getCallbacks(this, \"event:\".concat(eventName));\n if (callbacks.length === 0) {\n this.callMethod('addEventListener', eventName).catch(function () {\n // Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n storeCallback(this, \"event:\".concat(eventName), callback);\n }\n\n /**\n * Remove an event listener for the specified event. Will remove all\n * listeners for that event if a `callback` isn’t passed, or only that\n * specific callback if it is passed.\n *\n * @param {string} eventName The name of the event.\n * @param {function} [callback] The specific callback to remove.\n * @return {void}\n */\n }, {\n key: \"off\",\n value: function off(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n if (callback && typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n var lastCallback = removeCallback(this, \"event:\".concat(eventName), callback);\n\n // If there are no callbacks left, remove the listener\n if (lastCallback) {\n this.callMethod('removeEventListener', eventName).catch(function (e) {\n // Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n }\n\n /**\n * A promise to load a new video.\n *\n * @promise LoadVideoPromise\n * @fulfill {number} The video with this id or url successfully loaded.\n * @reject {TypeError} The id was not a number.\n */\n /**\n * Load a new video into this embed. The promise will be resolved if\n * the video is successfully loaded, or it will be rejected if it could\n * not be loaded.\n *\n * @param {number|string|object} options The id of the video, the url of the video, or an object with embed options.\n * @return {LoadVideoPromise}\n */\n }, {\n key: \"loadVideo\",\n value: function loadVideo(options) {\n return this.callMethod('loadVideo', options);\n }\n\n /**\n * A promise to perform an action when the Player is ready.\n *\n * @todo document errors\n * @promise LoadVideoPromise\n * @fulfill {void}\n */\n /**\n * Trigger a function when the player iframe has initialized. You do not\n * need to wait for `ready` to trigger to begin adding event listeners\n * or calling other methods.\n *\n * @return {ReadyPromise}\n */\n }, {\n key: \"ready\",\n value: function ready() {\n var readyPromise = readyMap.get(this) || new npo_src(function (resolve, reject) {\n reject(new Error('Unknown player. Probably unloaded.'));\n });\n return npo_src.resolve(readyPromise);\n }\n\n /**\n * A promise to add a cue point to the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point to use for removeCuePoint.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Add a cue point to the player.\n *\n * @param {number} time The time for the cue point.\n * @param {object} [data] Arbitrary data to be returned with the cue point.\n * @return {AddCuePointPromise}\n */\n }, {\n key: \"addCuePoint\",\n value: function addCuePoint(time) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.callMethod('addCuePoint', {\n time: time,\n data: data\n });\n }\n\n /**\n * A promise to remove a cue point from the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point that was removed.\n * @reject {InvalidCuePoint} The cue point with the specified id was not\n * found.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Remove a cue point from the video.\n *\n * @param {string} id The id of the cue point to remove.\n * @return {RemoveCuePointPromise}\n */\n }, {\n key: \"removeCuePoint\",\n value: function removeCuePoint(id) {\n return this.callMethod('removeCuePoint', id);\n }\n\n /**\n * A representation of a text track on a video.\n *\n * @typedef {Object} VimeoTextTrack\n * @property {string} language The ISO language code.\n * @property {string} kind The kind of track it is (captions or subtitles).\n * @property {string} label The human‐readable label for the track.\n */\n /**\n * A promise to enable a text track.\n *\n * @promise EnableTextTrackPromise\n * @fulfill {VimeoTextTrack} The text track that was enabled.\n * @reject {InvalidTrackLanguageError} No track was available with the\n * specified language.\n * @reject {InvalidTrackError} No track was available with the specified\n * language and kind.\n */\n /**\n * Enable the text track with the specified language, and optionally the\n * specified kind (captions or subtitles).\n *\n * When set via the API, the track language will not change the viewer’s\n * stored preference.\n *\n * @param {string} language The two‐letter language code.\n * @param {string} [kind] The kind of track to enable (captions or subtitles).\n * @return {EnableTextTrackPromise}\n */\n }, {\n key: \"enableTextTrack\",\n value: function enableTextTrack(language, kind) {\n if (!language) {\n throw new TypeError('You must pass a language.');\n }\n return this.callMethod('enableTextTrack', {\n language: language,\n kind: kind\n });\n }\n\n /**\n * A promise to disable the active text track.\n *\n * @promise DisableTextTrackPromise\n * @fulfill {void} The track was disabled.\n */\n /**\n * Disable the currently-active text track.\n *\n * @return {DisableTextTrackPromise}\n */\n }, {\n key: \"disableTextTrack\",\n value: function disableTextTrack() {\n return this.callMethod('disableTextTrack');\n }\n\n /**\n * A promise to pause the video.\n *\n * @promise PausePromise\n * @fulfill {void} The video was paused.\n */\n /**\n * Pause the video if it’s playing.\n *\n * @return {PausePromise}\n */\n }, {\n key: \"pause\",\n value: function pause() {\n return this.callMethod('pause');\n }\n\n /**\n * A promise to play the video.\n *\n * @promise PlayPromise\n * @fulfill {void} The video was played.\n */\n /**\n * Play the video if it’s paused. **Note:** on iOS and some other\n * mobile devices, you cannot programmatically trigger play. Once the\n * viewer has tapped on the play button in the player, however, you\n * will be able to use this function.\n *\n * @return {PlayPromise}\n */\n }, {\n key: \"play\",\n value: function play() {\n return this.callMethod('play');\n }\n\n /**\n * Request that the player enters fullscreen.\n * @return {Promise}\n */\n }, {\n key: \"requestFullscreen\",\n value: function requestFullscreen() {\n if (screenfull.isEnabled) {\n return screenfull.request(this.element);\n }\n return this.callMethod('requestFullscreen');\n }\n\n /**\n * Request that the player exits fullscreen.\n * @return {Promise}\n */\n }, {\n key: \"exitFullscreen\",\n value: function exitFullscreen() {\n if (screenfull.isEnabled) {\n return screenfull.exit();\n }\n return this.callMethod('exitFullscreen');\n }\n\n /**\n * Returns true if the player is currently fullscreen.\n * @return {Promise}\n */\n }, {\n key: \"getFullscreen\",\n value: function getFullscreen() {\n if (screenfull.isEnabled) {\n return npo_src.resolve(screenfull.isFullscreen);\n }\n return this.get('fullscreen');\n }\n\n /**\n * Request that the player enters picture-in-picture.\n * @return {Promise}\n */\n }, {\n key: \"requestPictureInPicture\",\n value: function requestPictureInPicture() {\n return this.callMethod('requestPictureInPicture');\n }\n\n /**\n * Request that the player exits picture-in-picture.\n * @return {Promise}\n */\n }, {\n key: \"exitPictureInPicture\",\n value: function exitPictureInPicture() {\n return this.callMethod('exitPictureInPicture');\n }\n\n /**\n * Returns true if the player is currently picture-in-picture.\n * @return {Promise}\n */\n }, {\n key: \"getPictureInPicture\",\n value: function getPictureInPicture() {\n return this.get('pictureInPicture');\n }\n\n /**\n * A promise to prompt the viewer to initiate remote playback.\n *\n * @promise RemotePlaybackPromptPromise\n * @fulfill {void}\n * @reject {NotFoundError} No remote playback device is available.\n */\n /**\n * Request to prompt the user to initiate remote playback.\n *\n * @return {RemotePlaybackPromptPromise}\n */\n }, {\n key: \"remotePlaybackPrompt\",\n value: function remotePlaybackPrompt() {\n return this.callMethod('remotePlaybackPrompt');\n }\n\n /**\n * A promise to unload the video.\n *\n * @promise UnloadPromise\n * @fulfill {void} The video was unloaded.\n */\n /**\n * Return the player to its initial state.\n *\n * @return {UnloadPromise}\n */\n }, {\n key: \"unload\",\n value: function unload() {\n return this.callMethod('unload');\n }\n\n /**\n * Cleanup the player and remove it from the DOM\n *\n * It won't be usable and a new one should be constructed\n * in order to do any operations.\n *\n * @return {Promise}\n */\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this5 = this;\n return new npo_src(function (resolve) {\n readyMap.delete(_this5);\n playerMap.delete(_this5.element);\n if (_this5._originalElement) {\n playerMap.delete(_this5._originalElement);\n _this5._originalElement.removeAttribute('data-vimeo-initialized');\n }\n if (_this5.element && _this5.element.nodeName === 'IFRAME' && _this5.element.parentNode) {\n // If we've added an additional wrapper div, remove that from the DOM.\n // If not, just remove the iframe element.\n if (_this5.element.parentNode.parentNode && _this5._originalElement && _this5._originalElement !== _this5.element.parentNode) {\n _this5.element.parentNode.parentNode.removeChild(_this5.element.parentNode);\n } else {\n _this5.element.parentNode.removeChild(_this5.element);\n }\n }\n\n // If the clip is private there is a case where the element stays the\n // div element. Destroy should reset the div and remove the iframe child.\n if (_this5.element && _this5.element.nodeName === 'DIV' && _this5.element.parentNode) {\n _this5.element.removeAttribute('data-vimeo-initialized');\n var iframe = _this5.element.querySelector('iframe');\n if (iframe && iframe.parentNode) {\n // If we've added an additional wrapper div, remove that from the DOM.\n // If not, just remove the iframe element.\n if (iframe.parentNode.parentNode && _this5._originalElement && _this5._originalElement !== iframe.parentNode) {\n iframe.parentNode.parentNode.removeChild(iframe.parentNode);\n } else {\n iframe.parentNode.removeChild(iframe);\n }\n }\n }\n _this5._window.removeEventListener('message', _this5._onMessage);\n if (screenfull.isEnabled) {\n screenfull.off('fullscreenchange', _this5.fullscreenchangeHandler);\n }\n resolve();\n });\n }\n\n /**\n * A promise to get the autopause behavior of the video.\n *\n * @promise GetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n /**\n * Get the autopause behavior for this player.\n *\n * @return {GetAutopausePromise}\n */\n }, {\n key: \"getAutopause\",\n value: function getAutopause() {\n return this.get('autopause');\n }\n\n /**\n * A promise to set the autopause behavior of the video.\n *\n * @promise SetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n /**\n * Enable or disable the autopause behavior of this player.\n *\n * By default, when another video is played in the same browser, this\n * player will automatically pause. Unless you have a specific reason\n * for doing so, we recommend that you leave autopause set to the\n * default (`true`).\n *\n * @param {boolean} autopause\n * @return {SetAutopausePromise}\n */\n }, {\n key: \"setAutopause\",\n value: function setAutopause(autopause) {\n return this.set('autopause', autopause);\n }\n\n /**\n * A promise to get the buffered property of the video.\n *\n * @promise GetBufferedPromise\n * @fulfill {Array} Buffered Timeranges converted to an Array.\n */\n /**\n * Get the buffered property of the video.\n *\n * @return {GetBufferedPromise}\n */\n }, {\n key: \"getBuffered\",\n value: function getBuffered() {\n return this.get('buffered');\n }\n\n /**\n * @typedef {Object} CameraProperties\n * @prop {number} props.yaw - Number between 0 and 360.\n * @prop {number} props.pitch - Number between -90 and 90.\n * @prop {number} props.roll - Number between -180 and 180.\n * @prop {number} props.fov - The field of view in degrees.\n */\n /**\n * A promise to get the camera properties of the player.\n *\n * @promise GetCameraPromise\n * @fulfill {CameraProperties} The camera properties.\n */\n /**\n * For 360° videos get the camera properties for this player.\n *\n * @return {GetCameraPromise}\n */\n }, {\n key: \"getCameraProps\",\n value: function getCameraProps() {\n return this.get('cameraProps');\n }\n\n /**\n * A promise to set the camera properties of the player.\n *\n * @promise SetCameraPromise\n * @fulfill {Object} The camera was successfully set.\n * @reject {RangeError} The range was out of bounds.\n */\n /**\n * For 360° videos set the camera properties for this player.\n *\n * @param {CameraProperties} camera The camera properties\n * @return {SetCameraPromise}\n */\n }, {\n key: \"setCameraProps\",\n value: function setCameraProps(camera) {\n return this.set('cameraProps', camera);\n }\n\n /**\n * A representation of a chapter.\n *\n * @typedef {Object} VimeoChapter\n * @property {number} startTime The start time of the chapter.\n * @property {object} title The title of the chapter.\n * @property {number} index The place in the order of Chapters. Starts at 1.\n */\n /**\n * A promise to get chapters for the video.\n *\n * @promise GetChaptersPromise\n * @fulfill {VimeoChapter[]} The chapters for the video.\n */\n /**\n * Get an array of all the chapters for the video.\n *\n * @return {GetChaptersPromise}\n */\n }, {\n key: \"getChapters\",\n value: function getChapters() {\n return this.get('chapters');\n }\n\n /**\n * A promise to get the currently active chapter.\n *\n * @promise GetCurrentChaptersPromise\n * @fulfill {VimeoChapter|undefined} The current chapter for the video.\n */\n /**\n * Get the currently active chapter for the video.\n *\n * @return {GetCurrentChaptersPromise}\n */\n }, {\n key: \"getCurrentChapter\",\n value: function getCurrentChapter() {\n return this.get('currentChapter');\n }\n\n /**\n * A promise to get the accent color of the player.\n *\n * @promise GetColorPromise\n * @fulfill {string} The hex color of the player.\n */\n /**\n * Get the accent color for this player. Note this is deprecated in place of `getColorTwo`.\n *\n * @return {GetColorPromise}\n */\n }, {\n key: \"getColor\",\n value: function getColor() {\n return this.get('color');\n }\n\n /**\n * A promise to get all colors for the player in an array.\n *\n * @promise GetColorsPromise\n * @fulfill {string[]} The hex colors of the player.\n */\n /**\n * Get all the colors for this player in an array: [colorOne, colorTwo, colorThree, colorFour]\n *\n * @return {GetColorPromise}\n */\n }, {\n key: \"getColors\",\n value: function getColors() {\n return npo_src.all([this.get('colorOne'), this.get('colorTwo'), this.get('colorThree'), this.get('colorFour')]);\n }\n\n /**\n * A promise to set the accent color of the player.\n *\n * @promise SetColorPromise\n * @fulfill {string} The color was successfully set.\n * @reject {TypeError} The string was not a valid hex or rgb color.\n * @reject {ContrastError} The color was set, but the contrast is\n * outside of the acceptable range.\n * @reject {EmbedSettingsError} The owner of the player has chosen to\n * use a specific color.\n */\n /**\n * Set the accent color of this player to a hex or rgb string. Setting the\n * color may fail if the owner of the video has set their embed\n * preferences to force a specific color.\n * Note this is deprecated in place of `setColorTwo`.\n *\n * @param {string} color The hex or rgb color string to set.\n * @return {SetColorPromise}\n */\n }, {\n key: \"setColor\",\n value: function setColor(color) {\n return this.set('color', color);\n }\n\n /**\n * A promise to set all colors for the player.\n *\n * @promise SetColorsPromise\n * @fulfill {string[]} The colors were successfully set.\n * @reject {TypeError} The string was not a valid hex or rgb color.\n * @reject {ContrastError} The color was set, but the contrast is\n * outside of the acceptable range.\n * @reject {EmbedSettingsError} The owner of the player has chosen to\n * use a specific color.\n */\n /**\n * Set the colors of this player to a hex or rgb string. Setting the\n * color may fail if the owner of the video has set their embed\n * preferences to force a specific color.\n * The colors should be passed in as an array: [colorOne, colorTwo, colorThree, colorFour].\n * If a color should not be set, the index in the array can be left as null.\n *\n * @param {string[]} colors Array of the hex or rgb color strings to set.\n * @return {SetColorsPromise}\n */\n }, {\n key: \"setColors\",\n value: function setColors(colors) {\n if (!Array.isArray(colors)) {\n return new npo_src(function (resolve, reject) {\n return reject(new TypeError('Argument must be an array.'));\n });\n }\n var nullPromise = new npo_src(function (resolve) {\n return resolve(null);\n });\n var colorPromises = [colors[0] ? this.set('colorOne', colors[0]) : nullPromise, colors[1] ? this.set('colorTwo', colors[1]) : nullPromise, colors[2] ? this.set('colorThree', colors[2]) : nullPromise, colors[3] ? this.set('colorFour', colors[3]) : nullPromise];\n return npo_src.all(colorPromises);\n }\n\n /**\n * A representation of a cue point.\n *\n * @typedef {Object} VimeoCuePoint\n * @property {number} time The time of the cue point.\n * @property {object} data The data passed when adding the cue point.\n * @property {string} id The unique id for use with removeCuePoint.\n */\n /**\n * A promise to get the cue points of a video.\n *\n * @promise GetCuePointsPromise\n * @fulfill {VimeoCuePoint[]} The cue points added to the video.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Get an array of the cue points added to the video.\n *\n * @return {GetCuePointsPromise}\n */\n }, {\n key: \"getCuePoints\",\n value: function getCuePoints() {\n return this.get('cuePoints');\n }\n\n /**\n * A promise to get the current time of the video.\n *\n * @promise GetCurrentTimePromise\n * @fulfill {number} The current time in seconds.\n */\n /**\n * Get the current playback position in seconds.\n *\n * @return {GetCurrentTimePromise}\n */\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.get('currentTime');\n }\n\n /**\n * A promise to set the current time of the video.\n *\n * @promise SetCurrentTimePromise\n * @fulfill {number} The actual current time that was set.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n */\n /**\n * Set the current playback position in seconds. If the player was\n * paused, it will remain paused. Likewise, if the player was playing,\n * it will resume playing once the video has buffered.\n *\n * You can provide an accurate time and the player will attempt to seek\n * to as close to that time as possible. The exact time will be the\n * fulfilled value of the promise.\n *\n * @param {number} currentTime\n * @return {SetCurrentTimePromise}\n */\n }, {\n key: \"setCurrentTime\",\n value: function setCurrentTime(currentTime) {\n return this.set('currentTime', currentTime);\n }\n\n /**\n * A promise to get the duration of the video.\n *\n * @promise GetDurationPromise\n * @fulfill {number} The duration in seconds.\n */\n /**\n * Get the duration of the video in seconds. It will be rounded to the\n * nearest second before playback begins, and to the nearest thousandth\n * of a second after playback begins.\n *\n * @return {GetDurationPromise}\n */\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.get('duration');\n }\n\n /**\n * A promise to get the ended state of the video.\n *\n * @promise GetEndedPromise\n * @fulfill {boolean} Whether or not the video has ended.\n */\n /**\n * Get the ended state of the video. The video has ended if\n * `currentTime === duration`.\n *\n * @return {GetEndedPromise}\n */\n }, {\n key: \"getEnded\",\n value: function getEnded() {\n return this.get('ended');\n }\n\n /**\n * A promise to get the loop state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the player is set to loop.\n */\n /**\n * Get the loop state of the player.\n *\n * @return {GetLoopPromise}\n */\n }, {\n key: \"getLoop\",\n value: function getLoop() {\n return this.get('loop');\n }\n\n /**\n * A promise to set the loop state of the player.\n *\n * @promise SetLoopPromise\n * @fulfill {boolean} The loop state that was set.\n */\n /**\n * Set the loop state of the player. When set to `true`, the player\n * will start over immediately once playback ends.\n *\n * @param {boolean} loop\n * @return {SetLoopPromise}\n */\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n return this.set('loop', loop);\n }\n\n /**\n * A promise to set the muted state of the player.\n *\n * @promise SetMutedPromise\n * @fulfill {boolean} The muted state that was set.\n */\n /**\n * Set the muted state of the player. When set to `true`, the player\n * volume will be muted.\n *\n * @param {boolean} muted\n * @return {SetMutedPromise}\n */\n }, {\n key: \"setMuted\",\n value: function setMuted(muted) {\n return this.set('muted', muted);\n }\n\n /**\n * A promise to get the muted state of the player.\n *\n * @promise GetMutedPromise\n * @fulfill {boolean} Whether or not the player is muted.\n */\n /**\n * Get the muted state of the player.\n *\n * @return {GetMutedPromise}\n */\n }, {\n key: \"getMuted\",\n value: function getMuted() {\n return this.get('muted');\n }\n\n /**\n * A promise to get the paused state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the video is paused.\n */\n /**\n * Get the paused state of the player.\n *\n * @return {GetLoopPromise}\n */\n }, {\n key: \"getPaused\",\n value: function getPaused() {\n return this.get('paused');\n }\n\n /**\n * A promise to get the playback rate of the player.\n *\n * @promise GetPlaybackRatePromise\n * @fulfill {number} The playback rate of the player on a scale from 0 to 2.\n */\n /**\n * Get the playback rate of the player on a scale from `0` to `2`.\n *\n * @return {GetPlaybackRatePromise}\n */\n }, {\n key: \"getPlaybackRate\",\n value: function getPlaybackRate() {\n return this.get('playbackRate');\n }\n\n /**\n * A promise to set the playbackrate of the player.\n *\n * @promise SetPlaybackRatePromise\n * @fulfill {number} The playback rate was set.\n * @reject {RangeError} The playback rate was less than 0 or greater than 2.\n */\n /**\n * Set the playback rate of the player on a scale from `0` to `2`. When set\n * via the API, the playback rate will not be synchronized to other\n * players or stored as the viewer's preference.\n *\n * @param {number} playbackRate\n * @return {SetPlaybackRatePromise}\n */\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(playbackRate) {\n return this.set('playbackRate', playbackRate);\n }\n\n /**\n * A promise to get the played property of the video.\n *\n * @promise GetPlayedPromise\n * @fulfill {Array} Played Timeranges converted to an Array.\n */\n /**\n * Get the played property of the video.\n *\n * @return {GetPlayedPromise}\n */\n }, {\n key: \"getPlayed\",\n value: function getPlayed() {\n return this.get('played');\n }\n\n /**\n * A promise to get the qualities available of the current video.\n *\n * @promise GetQualitiesPromise\n * @fulfill {Array} The qualities of the video.\n */\n /**\n * Get the qualities of the current video.\n *\n * @return {GetQualitiesPromise}\n */\n }, {\n key: \"getQualities\",\n value: function getQualities() {\n return this.get('qualities');\n }\n\n /**\n * A promise to get the current set quality of the video.\n *\n * @promise GetQualityPromise\n * @fulfill {string} The current set quality.\n */\n /**\n * Get the current set quality of the video.\n *\n * @return {GetQualityPromise}\n */\n }, {\n key: \"getQuality\",\n value: function getQuality() {\n return this.get('quality');\n }\n\n /**\n * A promise to set the video quality.\n *\n * @promise SetQualityPromise\n * @fulfill {number} The quality was set.\n * @reject {RangeError} The quality is not available.\n */\n /**\n * Set a video quality.\n *\n * @param {string} quality\n * @return {SetQualityPromise}\n */\n }, {\n key: \"setQuality\",\n value: function setQuality(quality) {\n return this.set('quality', quality);\n }\n\n /**\n * A promise to get the remote playback availability.\n *\n * @promise RemotePlaybackAvailabilityPromise\n * @fulfill {boolean} Whether remote playback is available.\n */\n /**\n * Get the availability of remote playback.\n *\n * @return {RemotePlaybackAvailabilityPromise}\n */\n }, {\n key: \"getRemotePlaybackAvailability\",\n value: function getRemotePlaybackAvailability() {\n return this.get('remotePlaybackAvailability');\n }\n\n /**\n * A promise to get the current remote playback state.\n *\n * @promise RemotePlaybackStatePromise\n * @fulfill {string} The state of the remote playback: connecting, connected, or disconnected.\n */\n /**\n * Get the current remote playback state.\n *\n * @return {RemotePlaybackStatePromise}\n */\n }, {\n key: \"getRemotePlaybackState\",\n value: function getRemotePlaybackState() {\n return this.get('remotePlaybackState');\n }\n\n /**\n * A promise to get the seekable property of the video.\n *\n * @promise GetSeekablePromise\n * @fulfill {Array} Seekable Timeranges converted to an Array.\n */\n /**\n * Get the seekable property of the video.\n *\n * @return {GetSeekablePromise}\n */\n }, {\n key: \"getSeekable\",\n value: function getSeekable() {\n return this.get('seekable');\n }\n\n /**\n * A promise to get the seeking property of the player.\n *\n * @promise GetSeekingPromise\n * @fulfill {boolean} Whether or not the player is currently seeking.\n */\n /**\n * Get if the player is currently seeking.\n *\n * @return {GetSeekingPromise}\n */\n }, {\n key: \"getSeeking\",\n value: function getSeeking() {\n return this.get('seeking');\n }\n\n /**\n * A promise to get the text tracks of a video.\n *\n * @promise GetTextTracksPromise\n * @fulfill {VimeoTextTrack[]} The text tracks associated with the video.\n */\n /**\n * Get an array of the text tracks that exist for the video.\n *\n * @return {GetTextTracksPromise}\n */\n }, {\n key: \"getTextTracks\",\n value: function getTextTracks() {\n return this.get('textTracks');\n }\n\n /**\n * A promise to get the embed code for the video.\n *\n * @promise GetVideoEmbedCodePromise\n * @fulfill {string} The `');\n var attributes = element.prop(\"attributes\");\n // loop through element attributes and apply them on iframe\n angular.forEach(attributes, function(attr) {\n iframe.attr(attr.name, attr.value);\n });\n iframe.attr('src', iframe.attr('ta-insert-video'));\n element.replaceWith(iframe);\n }\n }\n])\n\n.value('taTranslations', {\n // moved to sub-elements\n //toggleHTML: \"Toggle HTML\",\n //insertImage: \"Please enter a image URL to insert\",\n //insertLink: \"Please enter a URL to insert\",\n //insertVideo: \"Please enter a youtube URL to embed\",\n html: {\n tooltip: 'Toggle html / Rich Text'\n },\n // tooltip for heading - might be worth splitting\n heading: {\n tooltip: 'Heading '\n },\n p: {\n tooltip: 'Paragraph'\n },\n pre: {\n tooltip: 'Preformatted text'\n },\n ul: {\n tooltip: 'Unordered List'\n },\n ol: {\n tooltip: 'Ordered List'\n },\n quote: {\n tooltip: 'Quote/unquote selection or paragraph'\n },\n undo: {\n tooltip: 'Undo'\n },\n redo: {\n tooltip: 'Redo'\n },\n bold: {\n tooltip: 'Bold'\n },\n italic: {\n tooltip: 'Italic'\n },\n underline: {\n tooltip: 'Underline'\n },\n strikeThrough:{\n tooltip: 'Strikethrough'\n },\n justifyLeft: {\n tooltip: 'Align text left'\n },\n justifyRight: {\n tooltip: 'Align text right'\n },\n justifyFull: {\n tooltip: 'Justify text'\n },\n justifyCenter: {\n tooltip: 'Center'\n },\n indent: {\n tooltip: 'Increase indent'\n },\n outdent: {\n tooltip: 'Decrease indent'\n },\n clear: {\n tooltip: 'Clear formatting'\n },\n insertImage: {\n dialogPrompt: 'Please enter an image URL to insert',\n tooltip: 'Insert image',\n hotkey: 'the - possibly language dependent hotkey ... for some future implementation'\n },\n insertVideo: {\n tooltip: 'Insert video',\n dialogPrompt: 'Please enter a youtube URL to embed'\n },\n insertLink: {\n tooltip: 'Insert / edit link',\n dialogPrompt: \"Please enter a URL to insert\"\n },\n editLink: {\n reLinkButton: {\n tooltip: \"Relink\"\n },\n unLinkButton: {\n tooltip: \"Unlink\"\n },\n targetToggle: {\n buttontext: \"Open in New Window\"\n }\n },\n wordcount: {\n tooltip: 'Display words Count'\n },\n charcount: {\n tooltip: 'Display characters Count'\n }\n})\n.factory('taToolFunctions', ['$window','taTranslations', function($window, taTranslations) {\n return {\n imgOnSelectAction: function(event, $element, editorScope){\n // setup the editor toolbar\n // Credit to the work at http://hackerwins.github.io/summernote/ for this editbar logic/display\n var finishEdit = function(){\n editorScope.updateTaBindtaTextElement();\n editorScope.hidePopover();\n };\n event.preventDefault();\n editorScope.displayElements.popover.css('width', '375px');\n var container = editorScope.displayElements.popoverContainer;\n container.empty();\n var buttonGroup = angular.element('
');\n var fullButton = angular.element('');\n fullButton.on('click', function(event){\n event.preventDefault();\n $element.css({\n 'width': '100%',\n 'height': ''\n });\n finishEdit();\n });\n var halfButton = angular.element('');\n halfButton.on('click', function(event){\n event.preventDefault();\n $element.css({\n 'width': '50%',\n 'height': ''\n });\n finishEdit();\n });\n var quartButton = angular.element('');\n quartButton.on('click', function(event){\n event.preventDefault();\n $element.css({\n 'width': '25%',\n 'height': ''\n });\n finishEdit();\n });\n var resetButton = angular.element('');\n resetButton.on('click', function(event){\n event.preventDefault();\n $element.css({\n width: '',\n height: ''\n });\n finishEdit();\n });\n buttonGroup.append(fullButton);\n buttonGroup.append(halfButton);\n buttonGroup.append(quartButton);\n buttonGroup.append(resetButton);\n container.append(buttonGroup);\n\n buttonGroup = angular.element('
');\n var floatLeft = angular.element('');\n floatLeft.on('click', function(event){\n event.preventDefault();\n // webkit\n $element.css('float', 'left');\n // firefox\n $element.css('cssFloat', 'left');\n // IE < 8\n $element.css('styleFloat', 'left');\n finishEdit();\n });\n var floatRight = angular.element('');\n floatRight.on('click', function(event){\n event.preventDefault();\n // webkit\n $element.css('float', 'right');\n // firefox\n $element.css('cssFloat', 'right');\n // IE < 8\n $element.css('styleFloat', 'right');\n finishEdit();\n });\n var floatNone = angular.element('');\n floatNone.on('click', function(event){\n event.preventDefault();\n // webkit\n $element.css('float', '');\n // firefox\n $element.css('cssFloat', '');\n // IE < 8\n $element.css('styleFloat', '');\n finishEdit();\n });\n buttonGroup.append(floatLeft);\n buttonGroup.append(floatNone);\n buttonGroup.append(floatRight);\n container.append(buttonGroup);\n\n buttonGroup = angular.element('
');\n var remove = angular.element('');\n remove.on('click', function(event){\n event.preventDefault();\n $element.remove();\n finishEdit();\n });\n buttonGroup.append(remove);\n container.append(buttonGroup);\n\n editorScope.showPopover($element);\n editorScope.showResizeOverlay($element);\n },\n aOnSelectAction: function(event, $element, editorScope){\n // setup the editor toolbar\n // Credit to the work at http://hackerwins.github.io/summernote/ for this editbar logic\n event.preventDefault();\n editorScope.displayElements.popover.css('width', '436px');\n var container = editorScope.displayElements.popoverContainer;\n container.empty();\n container.css('line-height', '28px');\n var link = angular.element('' + $element.attr('href') + '');\n link.css({\n 'display': 'inline-block',\n 'max-width': '200px',\n 'overflow': 'hidden',\n 'text-overflow': 'ellipsis',\n 'white-space': 'nowrap',\n 'vertical-align': 'middle'\n });\n container.append(link);\n var buttonGroup = angular.element('
');\n var reLinkButton = angular.element('');\n reLinkButton.on('click', function(event){\n event.preventDefault();\n var urlLink = $window.prompt(taTranslations.insertLink.dialogPrompt, $element.attr('href'));\n if(urlLink && urlLink !== '' && urlLink !== 'http://'){\n $element.attr('href', urlLink);\n editorScope.updateTaBindtaTextElement();\n }\n editorScope.hidePopover();\n });\n buttonGroup.append(reLinkButton);\n var unLinkButton = angular.element('');\n // directly before this click event is fired a digest is fired off whereby the reference to $element is orphaned off\n unLinkButton.on('click', function(event){\n event.preventDefault();\n $element.replaceWith($element.contents());\n editorScope.updateTaBindtaTextElement();\n editorScope.hidePopover();\n });\n buttonGroup.append(unLinkButton);\n var targetToggle = angular.element('');\n if($element.attr('target') === '_blank'){\n targetToggle.addClass('active');\n }\n targetToggle.on('click', function(event){\n event.preventDefault();\n $element.attr('target', ($element.attr('target') === '_blank') ? '' : '_blank');\n targetToggle.toggleClass('active');\n editorScope.updateTaBindtaTextElement();\n });\n buttonGroup.append(targetToggle);\n container.append(buttonGroup);\n editorScope.showPopover($element);\n },\n extractYoutubeVideoId: function(url) {\n var re = /(?:youtube(?:-nocookie)?\\.com\\/(?:[^\\/\\n\\s]+\\/\\S+\\/|(?:v|e(?:mbed)?)\\/|\\S*?[?&]v=)|youtu\\.be\\/)([a-zA-Z0-9_-]{11})/i;\n var match = url.match(re);\n return (match && match[1]) || null;\n }\n };\n}])\n.run(['taRegisterTool', '$window', 'taTranslations', 'taSelection', 'taToolFunctions', '$sanitize', 'taOptions', '$log',\n function(taRegisterTool, $window, taTranslations, taSelection, taToolFunctions, $sanitize, taOptions, $log){\n // test for the version of $sanitize that is in use\n // You can disable this check by setting taOptions.textAngularSanitize == false\n var gv = {}; $sanitize('', gv);\n /* istanbul ignore next, throws error */\n if ((taOptions.forceTextAngularSanitize===true) && (gv.version !== 'taSanitize')) {\n throw angular.$$minErr('textAngular')(\"textAngularSetup\", \"The textAngular-sanitize provider has been replaced by another -- have you included angular-sanitize by mistake?\");\n }\n taRegisterTool(\"html\", {\n iconclass: 'fa fa-code',\n tooltiptext: taTranslations.html.tooltip,\n action: function(){\n this.$editor().switchView();\n },\n activeState: function(){\n return this.$editor().showHtml;\n }\n });\n // add the Header tools\n // convenience functions so that the loop works correctly\n var _retActiveStateFunction = function(q){\n return function(){ return this.$editor().queryFormatBlockState(q); };\n };\n var headerAction = function(){\n return this.$editor().wrapSelection(\"formatBlock\", \"<\" + this.name.toUpperCase() +\">\");\n };\n angular.forEach(['h1','h2','h3','h4','h5','h6'], function(h){\n taRegisterTool(h.toLowerCase(), {\n buttontext: h.toUpperCase(),\n tooltiptext: taTranslations.heading.tooltip + h.charAt(1),\n action: headerAction,\n activeState: _retActiveStateFunction(h.toLowerCase())\n });\n });\n taRegisterTool('p', {\n buttontext: 'P',\n tooltiptext: taTranslations.p.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"formatBlock\", \"

\");\n },\n activeState: function(){ return this.$editor().queryFormatBlockState('p'); }\n });\n // key: pre -> taTranslations[key].tooltip, taTranslations[key].buttontext\n taRegisterTool('pre', {\n buttontext: 'pre',\n tooltiptext: taTranslations.pre.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"formatBlock\", \"

\");\n        },\n        activeState: function(){ return this.$editor().queryFormatBlockState('pre'); }\n    });\n    taRegisterTool('ul', {\n        iconclass: 'fa fa-list-ul',\n        tooltiptext: taTranslations.ul.tooltip,\n        action: function(){\n            return this.$editor().wrapSelection(\"insertUnorderedList\", null);\n        },\n        activeState: function(){ return this.$editor().queryCommandState('insertUnorderedList'); }\n    });\n    taRegisterTool('ol', {\n        iconclass: 'fa fa-list-ol',\n        tooltiptext: taTranslations.ol.tooltip,\n        action: function(){\n            return this.$editor().wrapSelection(\"insertOrderedList\", null);\n        },\n        activeState: function(){ return this.$editor().queryCommandState('insertOrderedList'); }\n    });\n    taRegisterTool('quote', {\n        iconclass: 'fa fa-quote-right',\n        tooltiptext: taTranslations.quote.tooltip,\n        action: function(){\n            return this.$editor().wrapSelection(\"formatBlock\", \"
\");\n },\n activeState: function(){ return this.$editor().queryFormatBlockState('blockquote'); }\n });\n taRegisterTool('undo', {\n iconclass: 'fa fa-undo',\n tooltiptext: taTranslations.undo.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"undo\", null);\n }\n });\n taRegisterTool('redo', {\n iconclass: 'fa fa-repeat',\n tooltiptext: taTranslations.redo.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"redo\", null);\n }\n });\n taRegisterTool('bold', {\n iconclass: 'fa fa-bold',\n tooltiptext: taTranslations.bold.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"bold\", null);\n },\n activeState: function(){\n return this.$editor().queryCommandState('bold');\n },\n commandKeyCode: 98\n });\n taRegisterTool('justifyLeft', {\n iconclass: 'fa fa-align-left',\n tooltiptext: taTranslations.justifyLeft.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"justifyLeft\", null);\n },\n activeState: function(commonElement){\n /* istanbul ignore next: */\n if (commonElement && commonElement.nodeName === '#document') return false;\n var result = false;\n if (commonElement) {\n // commonELement.css('text-align') can throw an error 'Cannot read property 'defaultView' of null' in rare conditions\n // so we do try catch here...\n try {\n result =\n commonElement.css('text-align') === 'left' ||\n commonElement.attr('align') === 'left' ||\n (\n commonElement.css('text-align') !== 'right' &&\n commonElement.css('text-align') !== 'center' &&\n commonElement.css('text-align') !== 'justify' && !this.$editor().queryCommandState('justifyRight') && !this.$editor().queryCommandState('justifyCenter')\n ) && !this.$editor().queryCommandState('justifyFull');\n } catch(e) {\n /* istanbul ignore next: error handler */\n //console.log(e);\n result = false;\n }\n }\n result = result || this.$editor().queryCommandState('justifyLeft');\n return result;\n }\n });\n taRegisterTool('justifyRight', {\n iconclass: 'fa fa-align-right',\n tooltiptext: taTranslations.justifyRight.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"justifyRight\", null);\n },\n activeState: function(commonElement){\n /* istanbul ignore next: */\n if (commonElement && commonElement.nodeName === '#document') return false;\n var result = false;\n if(commonElement) {\n // commonELement.css('text-align') can throw an error 'Cannot read property 'defaultView' of null' in rare conditions\n // so we do try catch here...\n try {\n result = commonElement.css('text-align') === 'right';\n } catch(e) {\n /* istanbul ignore next: error handler */\n //console.log(e);\n result = false;\n }\n }\n result = result || this.$editor().queryCommandState('justifyRight');\n return result;\n }\n });\n taRegisterTool('justifyFull', {\n iconclass: 'fa fa-align-justify',\n tooltiptext: taTranslations.justifyFull.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"justifyFull\", null);\n },\n activeState: function(commonElement){\n var result = false;\n if(commonElement) {\n // commonELement.css('text-align') can throw an error 'Cannot read property 'defaultView' of null' in rare conditions\n // so we do try catch here...\n try {\n result = commonElement.css('text-align') === 'justify';\n } catch(e) {\n /* istanbul ignore next: error handler */\n //console.log(e);\n result = false;\n }\n }\n result = result || this.$editor().queryCommandState('justifyFull');\n return result;\n }\n });\n taRegisterTool('justifyCenter', {\n iconclass: 'fa fa-align-center',\n tooltiptext: taTranslations.justifyCenter.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"justifyCenter\", null);\n },\n activeState: function(commonElement){\n /* istanbul ignore next: */\n if (commonElement && commonElement.nodeName === '#document') return false;\n var result = false;\n if(commonElement) {\n // commonELement.css('text-align') can throw an error 'Cannot read property 'defaultView' of null' in rare conditions\n // so we do try catch here...\n try {\n result = commonElement.css('text-align') === 'center';\n } catch(e) {\n /* istanbul ignore next: error handler */\n //console.log(e);\n result = false;\n }\n\n }\n result = result || this.$editor().queryCommandState('justifyCenter');\n return result;\n }\n });\n taRegisterTool('indent', {\n iconclass: 'fa fa-indent',\n tooltiptext: taTranslations.indent.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"indent\", null);\n },\n activeState: function(){\n return this.$editor().queryFormatBlockState('blockquote');\n },\n commandKeyCode: 'TabKey'\n });\n taRegisterTool('outdent', {\n iconclass: 'fa fa-outdent',\n tooltiptext: taTranslations.outdent.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"outdent\", null);\n },\n activeState: function(){\n return false;\n },\n commandKeyCode: 'ShiftTabKey'\n });\n taRegisterTool('italics', {\n iconclass: 'fa fa-italic',\n tooltiptext: taTranslations.italic.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"italic\", null);\n },\n activeState: function(){\n return this.$editor().queryCommandState('italic');\n },\n commandKeyCode: 105\n });\n taRegisterTool('underline', {\n iconclass: 'fa fa-underline',\n tooltiptext: taTranslations.underline.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"underline\", null);\n },\n activeState: function(){\n return this.$editor().queryCommandState('underline');\n },\n commandKeyCode: 117\n });\n taRegisterTool('strikeThrough', {\n iconclass: 'fa fa-strikethrough',\n tooltiptext: taTranslations.strikeThrough.tooltip,\n action: function(){\n return this.$editor().wrapSelection(\"strikeThrough\", null);\n },\n activeState: function(){\n return document.queryCommandState('strikeThrough');\n }\n });\n taRegisterTool('clear', {\n iconclass: 'fa fa-ban',\n tooltiptext: taTranslations.clear.tooltip,\n action: function(deferred, restoreSelection){\n var i, selectedElements, elementsSeen;\n\n this.$editor().wrapSelection(\"removeFormat\", null);\n var possibleNodes = angular.element(taSelection.getSelectionElement());\n selectedElements = taSelection.getAllSelectedElements();\n //$log.log('selectedElements:', selectedElements);\n // remove lists\n var removeListElements = function(list, pe){\n list = angular.element(list);\n var prevElement = pe;\n if (!pe) {\n prevElement = list;\n }\n angular.forEach(list.children(), function(liElem){\n if (liElem.tagName.toLowerCase() === 'ul' ||\n liElem.tagName.toLowerCase() === 'ol') {\n prevElement = removeListElements(liElem, prevElement);\n } else {\n var newElem = angular.element('

');\n newElem.html(angular.element(liElem).html());\n prevElement.after(newElem);\n prevElement = newElem;\n }\n });\n list.remove();\n return prevElement;\n };\n\n angular.forEach(selectedElements, function(element) {\n if (element.nodeName.toLowerCase() === 'ul' ||\n element.nodeName.toLowerCase() === 'ol') {\n //console.log('removeListElements', element);\n removeListElements(element);\n }\n });\n\n angular.forEach(possibleNodes.find(\"ul\"), removeListElements);\n angular.forEach(possibleNodes.find(\"ol\"), removeListElements);\n\n // clear out all class attributes. These do not seem to be cleared via removeFormat\n var $editor = this.$editor();\n var recursiveRemoveClass = function(node){\n node = angular.element(node);\n /* istanbul ignore next: this is not triggered in tests any longer since we now never select the whole displayELement */\n if(node[0] !== $editor.displayElements.text[0]) {\n node.removeAttr('class');\n }\n angular.forEach(node.children(), recursiveRemoveClass);\n };\n angular.forEach(possibleNodes, recursiveRemoveClass);\n // check if in list. If not in list then use formatBlock option\n if(possibleNodes[0] && possibleNodes[0].tagName.toLowerCase() !== 'li' &&\n possibleNodes[0].tagName.toLowerCase() !== 'ol' &&\n possibleNodes[0].tagName.toLowerCase() !== 'ul' &&\n possibleNodes[0].getAttribute(\"contenteditable\") !== \"true\") {\n this.$editor().wrapSelection(\"formatBlock\", \"default\");\n }\n restoreSelection();\n }\n });\n\n /* jshint -W099 */\n /****************************\n // we don't use this code - since the previous way CLEAR is expected to work does not clear partially selected
  • \n\n var removeListElement = function(listE){\n console.log(listE);\n var _list = listE.parentNode.childNodes;\n console.log('_list', _list);\n var _preLis = [], _postLis = [], _found = false;\n for (i = 0; i < _list.length; i++) {\n if (_list[i] === listE) {\n _found = true;\n } else if (!_found) _preLis.push(_list[i]);\n else _postLis.push(_list[i]);\n }\n var _parent = angular.element(listE.parentNode);\n var newElem = angular.element('

    ');\n newElem.html(angular.element(listE).html());\n if (_preLis.length === 0 || _postLis.length === 0) {\n if (_postLis.length === 0) _parent.after(newElem);\n else _parent[0].parentNode.insertBefore(newElem[0], _parent[0]);\n\n if (_preLis.length === 0 && _postLis.length === 0) _parent.remove();\n else angular.element(listE).remove();\n } else {\n var _firstList = angular.element('<' + _parent[0].tagName + '>');\n var _secondList = angular.element('<' + _parent[0].tagName + '>');\n for (i = 0; i < _preLis.length; i++) _firstList.append(angular.element(_preLis[i]));\n for (i = 0; i < _postLis.length; i++) _secondList.append(angular.element(_postLis[i]));\n _parent.after(_secondList);\n _parent.after(newElem);\n _parent.after(_firstList);\n _parent.remove();\n }\n taSelection.setSelectionToElementEnd(newElem[0]);\n };\n\n elementsSeen = [];\n if (selectedElements.length !==0) console.log(selectedElements);\n angular.forEach(selectedElements, function (element) {\n if (elementsSeen.indexOf(element) !== -1 || elementsSeen.indexOf(element.parentElement) !== -1) {\n return;\n }\n elementsSeen.push(element);\n if (element.nodeName.toLowerCase() === 'li') {\n console.log('removeListElement', element);\n removeListElement(element);\n }\n else if (element.parentElement && element.parentElement.nodeName.toLowerCase() === 'li') {\n console.log('removeListElement', element.parentElement);\n elementsSeen.push(element.parentElement);\n removeListElement(element.parentElement);\n }\n });\n **********************/\n\n /**********************\n if(possibleNodes[0].tagName.toLowerCase() === 'li'){\n var _list = possibleNodes[0].parentNode.childNodes;\n var _preLis = [], _postLis = [], _found = false;\n for(i = 0; i < _list.length; i++){\n if(_list[i] === possibleNodes[0]){\n _found = true;\n }else if(!_found) _preLis.push(_list[i]);\n else _postLis.push(_list[i]);\n }\n var _parent = angular.element(possibleNodes[0].parentNode);\n var newElem = angular.element('

    ');\n newElem.html(angular.element(possibleNodes[0]).html());\n if(_preLis.length === 0 || _postLis.length === 0){\n if(_postLis.length === 0) _parent.after(newElem);\n else _parent[0].parentNode.insertBefore(newElem[0], _parent[0]);\n\n if(_preLis.length === 0 && _postLis.length === 0) _parent.remove();\n else angular.element(possibleNodes[0]).remove();\n }else{\n var _firstList = angular.element('<'+_parent[0].tagName+'>');\n var _secondList = angular.element('<'+_parent[0].tagName+'>');\n for(i = 0; i < _preLis.length; i++) _firstList.append(angular.element(_preLis[i]));\n for(i = 0; i < _postLis.length; i++) _secondList.append(angular.element(_postLis[i]));\n _parent.after(_secondList);\n _parent.after(newElem);\n _parent.after(_firstList);\n _parent.remove();\n }\n taSelection.setSelectionToElementEnd(newElem[0]);\n }\n *******************/\n\n\n /* istanbul ignore next: if it's javascript don't worry - though probably should show some kind of error message */\n var blockJavascript = function (link) {\n if (link.toLowerCase().indexOf('javascript')!==-1) {\n return true;\n }\n return false;\n };\n\n taRegisterTool('insertImage', {\n iconclass: 'fa fa-picture-o',\n tooltiptext: taTranslations.insertImage.tooltip,\n action: function(){\n var imageLink;\n imageLink = $window.prompt(taTranslations.insertImage.dialogPrompt, 'http://');\n if(imageLink && imageLink !== '' && imageLink !== 'http://'){\n /* istanbul ignore next: don't know how to test this... since it needs a dialogPrompt */\n // block javascript here\n if (!blockJavascript(imageLink)) {\n if (taSelection.getSelectionElement().tagName && taSelection.getSelectionElement().tagName.toLowerCase() === 'a') {\n // due to differences in implementation between FireFox and Chrome, we must move the\n // insertion point past the element, otherwise FireFox inserts inside the \n // With this change, both FireFox and Chrome behave the same way!\n taSelection.setSelectionAfterElement(taSelection.getSelectionElement());\n }\n // In the past we used the simple statement:\n //return this.$editor().wrapSelection('insertImage', imageLink, true);\n //\n // However on Firefox only, when the content is empty this is a problem\n // See Issue #1201\n // Investigation reveals that Firefox only inserts a

    only!!!!\n // So now we use insertHTML here and all is fine.\n // NOTE: this is what 'insertImage' is supposed to do anyway!\n var embed = '';\n return this.$editor().wrapSelection('insertHTML', embed, true);\n }\n }\n },\n onElementSelect: {\n element: 'img',\n action: taToolFunctions.imgOnSelectAction\n }\n });\n taRegisterTool('insertVideo', {\n iconclass: 'fa fa-youtube-play',\n tooltiptext: taTranslations.insertVideo.tooltip,\n action: function(){\n var urlPrompt;\n urlPrompt = $window.prompt(taTranslations.insertVideo.dialogPrompt, 'https://');\n // block javascript here\n /* istanbul ignore else: if it's javascript don't worry - though probably should show some kind of error message */\n if (!blockJavascript(urlPrompt)) {\n\n if (urlPrompt && urlPrompt !== '' && urlPrompt !== 'https://') {\n\n videoId = taToolFunctions.extractYoutubeVideoId(urlPrompt);\n\n /* istanbul ignore else: if it's invalid don't worry - though probably should show some kind of error message */\n if (videoId) {\n // create the embed link\n var urlLink = \"https://www.youtube.com/embed/\" + videoId;\n // create the HTML\n // for all options see: http://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumbnail-from-the-youtube-api\n // maxresdefault.jpg seems to be undefined on some.\n var embed = '';\n /* istanbul ignore next: don't know how to test this... since it needs a dialogPrompt */\n if (taSelection.getSelectionElement().tagName && taSelection.getSelectionElement().tagName.toLowerCase() === 'a') {\n // due to differences in implementation between FireFox and Chrome, we must move the\n // insertion point past the element, otherwise FireFox inserts inside the \n // With this change, both FireFox and Chrome behave the same way!\n taSelection.setSelectionAfterElement(taSelection.getSelectionElement());\n }\n // insert\n return this.$editor().wrapSelection('insertHTML', embed, true);\n }\n }\n }\n },\n onElementSelect: {\n element: 'img',\n onlyWithAttrs: ['ta-insert-video'],\n action: taToolFunctions.imgOnSelectAction\n }\n });\n taRegisterTool('insertLink', {\n tooltiptext: taTranslations.insertLink.tooltip,\n iconclass: 'fa fa-link',\n action: function(){\n var urlLink;\n // if this link has already been set, we need to just edit the existing link\n /* istanbul ignore if: we do not test this */\n if (taSelection.getSelectionElement().tagName && taSelection.getSelectionElement().tagName.toLowerCase() === 'a') {\n urlLink = $window.prompt(taTranslations.insertLink.dialogPrompt, taSelection.getSelectionElement().href);\n } else {\n urlLink = $window.prompt(taTranslations.insertLink.dialogPrompt, 'http://');\n }\n if(urlLink && urlLink !== '' && urlLink !== 'http://'){\n // block javascript here\n /* istanbul ignore else: if it's javascript don't worry - though probably should show some kind of error message */\n if (!blockJavascript(urlLink)) {\n return this.$editor().wrapSelection('createLink', urlLink, true);\n }\n }\n },\n activeState: function(commonElement){\n if(commonElement) return commonElement[0].tagName === 'A';\n return false;\n },\n onElementSelect: {\n element: 'a',\n action: taToolFunctions.aOnSelectAction\n }\n });\n taRegisterTool('wordcount', {\n display: '

    ',\n disabled: true,\n wordcount: 0,\n activeState: function(){ // this fires on keyup\n var textElement = this.$editor().displayElements.text;\n /* istanbul ignore next: will default to '' when undefined */\n var workingHTML = textElement[0].innerHTML || '';\n var noOfWords = 0;\n\n /* istanbul ignore if: will default to '' when undefined */\n if (workingHTML.replace(/\\s*<[^>]*?>\\s*/g, '') !== '') {\n if (workingHTML.trim() !== '') {\n noOfWords = workingHTML.replace(/<\\/?(b|i|em|strong|span|u|strikethrough|a|img|small|sub|sup|label)( [^>*?])?>/gi, '') // remove inline tags without adding spaces\n .replace(/(<[^>]*?>\\s*<[^>]*?>)/ig, ' ') // replace adjacent tags with possible space between with a space\n .replace(/(<[^>]*?>)/ig, '') // remove any singular tags\n .replace(/\\s+/ig, ' ') // condense spacing\n .match(/\\S+/g).length; // count remaining non-space strings\n }\n }\n\n //Set current scope\n this.wordcount = noOfWords;\n //Set editor scope\n this.$editor().wordcount = noOfWords;\n\n return false;\n }\n });\n taRegisterTool('charcount', {\n display: '
    Characters:
    ',\n disabled: true,\n charcount: 0,\n activeState: function(){ // this fires on keyup\n var textElement = this.$editor().displayElements.text;\n var sourceText = textElement[0].innerText || textElement[0].textContent; // to cover the non-jquery use case.\n\n // Caculate number of chars\n var noOfChars = sourceText.replace(/(\\r\\n|\\n|\\r)/gm,\"\").replace(/^\\s+/g,' ').replace(/\\s+$/g, ' ').length;\n //Set current scope\n this.charcount = noOfChars;\n //Set editor scope\n this.$editor().charcount = noOfChars;\n return false;\n }\n });\n}]);\n\n/*\n@license textAngular\nAuthor : Austin Anderson\nLicense : 2013 MIT\nVersion 2.1.2\n\nSee README.md or https://github.com/fraywing/textAngular/wiki for requirements and use.\n*/\n\n/*\nCommonjs package manager support (eg componentjs).\n*/\n\n\n\"use strict\";// NOTE: textAngularVersion must match the Gruntfile.js 'setVersion' task.... and have format v/d+./d+./d+\nvar textAngularVersion = 'v2.1.2'; // This is automatically updated during the build process to the current release!\n\n\n// IE version detection - http://stackoverflow.com/questions/4169160/javascript-ie-detection-why-not-use-simple-conditional-comments\n// We need this as IE sometimes plays funny tricks with the contenteditable.\n// ----------------------------------------------------------\n// If you're not in IE (or IE version is less than 5) then:\n// ie === undefined\n// If you're in IE (>=5) then you can determine which version:\n// ie === 7; // IE7\n// Thus, to detect IE:\n// if (ie) {}\n// And to detect the version:\n// ie === 6 // IE6\n// ie > 7 // IE8, IE9, IE10 ...\n// ie < 9 // Anything less than IE9\n// ----------------------------------------------------------\n/* istanbul ignore next: untestable browser check */\nvar _browserDetect = {\n\tie: (function(){\n\t\tvar undef,\n\t\t\tv = 3,\n\t\t\tdiv = document.createElement('div'),\n\t\t\tall = div.getElementsByTagName('i');\n\n\t\twhile (\n\t\t\tdiv.innerHTML = '',\n\t\t\tall[0]\n\t\t);\n\n\t\treturn v > 4 ? v : undef;\n\t}()),\n\twebkit: /AppleWebKit\\/([\\d.]+)/i.test(navigator.userAgent),\n\tisFirefox: navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n};\n\n// Global to textAngular to measure performance where needed\n/* istanbul ignore next: untestable browser check */\nvar performance = performance || {};\n/* istanbul ignore next: untestable browser check */\nperformance.now = (function() {\n\treturn performance.now ||\n\t\tperformance.mozNow ||\n\t\tperformance.msNow ||\n\t\tperformance.oNow ||\n\t\tperformance.webkitNow ||\n\t\tfunction() { return new Date().getTime(); };\n})();\n// usage is:\n// var t0 = performance.now();\n// doSomething();\n// var t1 = performance.now();\n// console.log('Took', (t1 - t0).toFixed(4), 'milliseconds to do something!');\n//\n\n// turn html into pure text that shows visiblity\nfunction stripHtmlToText(html)\n{\n\tvar tmp = document.createElement(\"DIV\");\n\ttmp.innerHTML = html;\n\tvar res = tmp.textContent || tmp.innerText || '';\n\tres.replace('\\u200B', ''); // zero width space\n\tres = res.trim();\n\treturn res;\n}\n// get html\nfunction getDomFromHtml(html)\n{\n\tvar tmp = document.createElement(\"DIV\");\n\ttmp.innerHTML = html;\n\treturn tmp;\n}\n\n\n// Global to textAngular REGEXP vars for block and list elements.\n\nvar BLOCKELEMENTS = /^(address|article|aside|audio|blockquote|canvas|center|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/i;\nvar LISTELEMENTS = /^(ul|li|ol)$/i;\n// updated VALIDELEMENTS to include #text and span so that we can use nodeName instead of tagName\nvar VALIDELEMENTS = /^(#text|span|address|article|aside|audio|blockquote|canvas|center|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/i;\n\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Compatibility\n/* istanbul ignore next: trim shim for older browsers */\nif (!String.prototype.trim) {\n\tString.prototype.trim = function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, '');\n\t};\n}\n\n/*\n\tCustom stylesheet for the placeholders rules.\n\tCredit to: http://davidwalsh.name/add-rules-stylesheets\n*/\nvar sheet, addCSSRule, removeCSSRule, _addCSSRule, _removeCSSRule, _getRuleIndex;\n/* istanbul ignore else: IE <8 test*/\nif(_browserDetect.ie > 8 || _browserDetect.ie === undefined){\n\tvar _sheets = document.styleSheets;\n\t/* istanbul ignore next: preference for stylesheet loaded externally */\n\tfor(var i = 0; i < _sheets.length; i++){\n\t\tif(_sheets[i].media.length === 0 || _sheets[i].media.mediaText.match(/(all|screen)/ig)){\n\t\t\tif(_sheets[i].href){\n\t\t\t\tif(_sheets[i].href.match(/textangular\\.(min\\.|)css/ig)){\n\t\t\t\t\tsheet = _sheets[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t/* istanbul ignore next: preference for stylesheet loaded externally */\n\tif(!sheet){\n\t\t// this sheet is used for the placeholders later on.\n\t\tsheet = (function() {\n\t\t\t// Create the