{"version":3,"sources":["webpack:///./src/requests/query/void.js","webpack:///./src/requests/mutation/calculator-contact.js","webpack:///./node_modules/core-js/modules/es6.number.is-nan.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./src/requests/mutation/calculator-data.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./src/reducers/calculator.js","webpack:///./src/contexts/calculator.js","webpack:///./node_modules/graphql/jsutils/devAssert.mjs","webpack:///./node_modules/graphql/jsutils/defineToJSON.mjs","webpack:///./node_modules/graphql/jsutils/isObjectLike.mjs","webpack:///./node_modules/graphql/language/location.mjs","webpack:///./node_modules/graphql/language/printLocation.mjs","webpack:///./node_modules/graphql/error/GraphQLError.mjs","webpack:///./node_modules/graphql/error/syntaxError.mjs","webpack:///./node_modules/graphql/language/kinds.mjs","webpack:///./node_modules/graphql/language/source.mjs","webpack:///./node_modules/graphql/jsutils/defineToStringTag.mjs","webpack:///./node_modules/graphql/language/tokenKind.mjs","webpack:///./node_modules/graphql/language/lexer.mjs","webpack:///./node_modules/graphql/language/directiveLocation.mjs","webpack:///./node_modules/graphql/language/parser.mjs","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./src/requests/mutation/calculator-catch-request.js","webpack:///./src/components/_hooks/useCalculator.js","webpack:///./src/helpers/gql.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./src/assets/img/notification-error.png","webpack:///./src/helpers/number.js","webpack:///./src/requests/mutation/calculator-init.js","webpack:///./node_modules/query-string/node_modules/strict-uri-encode/index.js","webpack:///./src/helpers/form.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@essentials/request-timeout/dist/es/index.js","webpack:///./node_modules/@react-hook/throttle/dist/es/index.js","webpack:///./node_modules/@react-hook/window-scroll/dist/es/index.js","webpack:///./src/components/calculator/calculator-notification.js","webpack:///./src/components/calculator/calculator-modal-decision.js","webpack:///./src/components/_hooks/useForm.js","webpack:///./src/components/_hoc/AsyncComponent.js","webpack:///./src/components/forms/loader.js","webpack:///./src/components/calculator/calculator-steps.js","webpack:///./src/components/calculator/calculator-bottom.js","webpack:///./src/requests/mutation/calculator-submit.js","webpack:///./src/components/_hooks/useAnalytics.js","webpack:///./src/components/calculator/calculator.js","webpack:///./src/components/calculator/calculator-layout.js","webpack:///./src/requests/query/blog/single.js","webpack:///./src/components/blog/post.js","webpack:///./src/components/footer/footer.js","webpack:///./src/pages/index.js","webpack:///./node_modules/core-js/modules/es6.object.define-properties.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./src/components/form/button.js","webpack:///./src/assets/img/notification-ok.png","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/graphql-tag/src/index.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./src/assets/img/powered-by-mk.svg","webpack:///./src/components/_hooks/useGa.js","webpack:///./node_modules/@apollo/react-hooks/lib/react-hooks.esm.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/raf/index.js"],"names":["request","validation","name","gql","schema","givenname","required","validator","surname","email","regEx","error","lng","telephone","agreement_terms1","agreement_terms2","$export","S","isNaN","number","singleMatcher","RegExp","multiMatcher","decodeComponents","components","split","decodeURIComponent","join","err","length","left","slice","right","Array","prototype","concat","call","decode","input","tokens","match","i","module","exports","encodedURI","TypeError","replace","replaceMap","exec","result","entries","Object","keys","key","customDecodeURIComponent","string","separator","separatorIndex","indexOf","monthly_income","children_cnt","dependents","family","credit_time","is_candidate_bs","notificationDefault","visible","type","submitBtnDefault","text","icon","reducer","state","action","submittedStep","step","submitCnt","payload","submitBtn","submitLocked","data","instanceId","defaultValues","notification","monthlyInstallment","onConfirm","onCancel","modal","CalculatorContext","createContext","CalculatorProvider","children","location","useLocation","paramsViaURL","search","queryString","parse","useReducer","steps","amount","repayment_period","bank","dispatch","Provider","value","useStore","useContext","devAssert","condition","message","Boolean","Error","defineToJSON","classObject","fn","arguments","undefined","toString","toJSON","inspect","nodejsCustomInspectSymbol","_typeof","obj","Symbol","iterator","constructor","getLocation","source","position","lineRegexp","line","column","body","index","printLocation","printSourceLocation","start","sourceLocation","firstLineColumnOffset","locationOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","lines","locationLine","sublineIndex","Math","floor","sublineColumnNum","sublines","push","printPrefixedLines","map","subline","existingLines","filter","_ref","padLen","max","apply","_ref2","_ref3","str","prefix","len","GraphQLError","nodes","positions","path","originalError","extensions","_nodes","isArray","_source","node","loc","_locations","_positions","reduce","list","pos","_extensions","originalExtensions","defineProperties","this","enumerable","writable","locations","stack","defineProperty","configurable","captureStackTrace","syntaxError","description","create","output","_i2","_error$nodes2","_i4","_error$locations2","printError","Kind","freeze","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","FRAGMENT_SPREAD","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","FIELD_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","toStringTag","get","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","advanceLexer","lastToken","token","lookahead","kind","next","readToken","Tok","end","prev","printCharCode","code","JSON","stringify","String","fromCharCode","toUpperCase","lexer","bodyLength","startPosition","charCodeAt","lineStart","positionAfterWhitespace","col","readComment","readName","firstCode","isFloat","readDigits","readNumber","chunkStart","rawValue","readBlockString","charCode","a","b","c","d","char2hex","invalidSequence","readString","unexpectedCharacterMessage","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","options","parseDocument","parseValue","parser","expectToken","parseValueLiteral","parseType","parseTypeReference","Parser","sourceObj","_lexer","startOfFileToken","advance","createLexer","_options","_proto","parseName","definitions","many","parseDefinition","peek","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","operation","variableDefinitions","directives","selectionSet","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","variable","parseVariable","defaultValue","expectOptionalToken","selections","parseSelection","parseFragment","parseField","alias","nameOrAlias","parseArguments","isConst","item","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","typeCondition","parseNamedType","expectKeyword","experimentalFragmentVariables","parseList","parseObject","parseStringLiteral","block","_this","values","any","_this2","fields","parseObjectField","parseDirective","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","operationTypes","parseOperationTypeDefinition","interfaces","parseImplementsInterfaces","parseFieldsDefinition","types","allowLegacySDLImplementsInterfaces","allowLegacySDLEmptyFields","parseFieldDefinition","args","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","repeatable","parseDirectiveLocations","parseDirectiveLocation","startToken","noLocation","Loc","getTokenDesc","atToken","openKind","parseFn","closeKind","endToken","iter","from","useCalculator","gqlRequestCatchMutation","useMutation","requestCatchRequest","calculatorStore","prepareData","r","k","calculateMonthlyInstallment","remoteData","round","abs","ratePerPeriod","numberOfPayments","presentValue","q","pmt","interestRate","isBSCandidate","returnResult","isF","adultCnt","Number","childrenCnt","byFamily","EnostarÅ¡evska","factor","zNo","DvostarÅ¡evska","familyRelatedPart","status","catchRequest","variables","context","setContext","errorPolicy","gqlValidation","graphQLErrors","potError","gqlError","errorData","setHeaders","requestName","headers","arr","arr2","arrayWithHoles","iterableToArrayLimit","nonIterableRest","replaceAll","find","Regex","formatPrice","v","numberFormat","decimals","decPoint","thousandsSep","n","p","no","num","isFinite","prec","sep","dec","s","toFixed","collector","encodeURIComponent","x","scrollToFirstError","fieldName","refs","target","current","focus","window","scrollTo","top","getBoundingClientRect","pageYOffset","behavior","arrayWithoutHoles","iterableToArray","nonIterableSpread","_slicedToArray","_arr","_n","_d","_e","_s","_i","done","handle","delay","loop","useEffect","useCallback","useState","useRef","callback","fps","leading","nextTimeout","tailTimeout","calledLeading","wait","_len","_key","self","useThrottle","initialState","_ref_0","setState","emptyArr","getScrollY","scrollY","_useThrottle","_useThrottle2","setThrottledScroll","handleScroll","addEventListener","removeEventListener","CalculatorNotification","React","memo","variation","calculatorData","className","styles","src","notificationOk","notificationError","alt","title","dangerouslySetInnerHTML","__html","desc","textAdditional","lighter","showData","cellSpacing","cellPadding","border","redoBtn","ariaLabel","classes","onClick","CalculatorModalDecision","onStepSuccess","sendEvent","useGa","recalculated","setRecalculated","changed","setChanged","isVisible","setIsVisible","onSubmit","repayment_period_changed","amount_changed","console","log","h","repaymentPeriod","elementInArray","align","loading","boxes","success","useForm","formState","formSchema","fName","fieldValue","disabled","setDisabled","validateState","some","isInputFieldRequired","stateValue","stateError","validateForm","applyErrorsToState","errors","isValid","validateField","setError","errorMessage","test","handleOnChange","e","checked","isCollector","newValue","toLowerCase","splice","prevState","findFirstErrorFieldName","handleOnSubmit","additionalStateData","preventDefault","resultState","firstErrorFieldName","returnFirst","updateChanged","requestValidation","handleFocus","updateState","modifiedData","row","asyncComponent","importComponent","component","componentDidMount","then","cmp","default","render","C","props","Component","FormLoader","id","placeholders","onSuccess","initState","fieldsRefs","formSettings","formQuery","AsyncComponent","require","loadFormSettings","createRef","getFormSettings","section","settings","handleOnSuccess","isQuery","query","validationRules","gqlSchema","gqlMutation","useQuery","skip","fetchPolicy","queryLoading","queryData","refetch","onChange","onFocus","onBlur","defaultProps","CalculatorSteps","onMounted","stepWidth","style","transform","CalculatorBottom","calculatorBottom","stepButton","progress","width","amountBottom","calculatorSubmit","dots","selected","useAnalytics","debug","fbEvent","fbq","gaEvent","gtag","eventAction","event_category","eventCategory","event_label","Calculator","generateRequestId","random","substring","requestId","setRequestId","mounted","setMounted","setStepWidth","isMobile","testMobile","requestLoading","requestData","requestError","refElem","setNotification","getData","request_id","sendInquiry","content_name","setTimeout","dta","base","ref","initializing","CalculatorLayout","scroll","setScroll","useWindowScroll","document","scrollCheck","appHidden","zIndex","hero","calculator","BlogPost","post","setPost","content_id","blogPost","tag","more","share","href","rel","Footer","disclaimer","logoMojikvadrati","legal","Index","bgWrapper","bg","F","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","process","hr","uptime","Date","getTime","Button","size","aria-label","_toConsumableArray","strictUriEncode","decodeComponent","splitOnFirst","validateArrayFormatSeparator","encode","strict","removeHash","hashStart","extract","queryStart","parseNumbers","trim","parseBooleans","assign","sort","arrayFormat","arrayFormatSeparator","formatter","accumulator","parserForArrayFormat","ret","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","param","_splitOnFirst","_splitOnFirst2","includes","_Object$keys","_value","_Object$keys2","keysSorter","object","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","_i3","_Object$keys3","parseUrl","url","stringifyUrl","queryFromUrl","parsedQueryFromUrl","hash","getHash","normalize","docCache","fragmentSourceMap","printFragmentWarnings","doc","cacheKey","parsed","stripLoc","removeLocAtThisLevel","docType","valueType","hasOwnProperty","ast","astFragmentMap","fragmentDefinition","fragmentName","sourceKey","warn","processFragments","literals","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","isReady","sendPageView","page","page_location","category","label","eventLabel","eventValue","OperationData","isMounted","previousOptions","getOptions","setOptions","newOptions","storePrevious","unmount","refreshClient","client","isNew","cleanup","verifyDocumentType","QueryData","_super","_a","forceUpdate","previousData","currentObservable","runLazy","runLazyQuery","lazyOptions","getExecuteResult","getQueryResult","startQuerySubscription","obsRefetch","obsFetchMore","fetchMoreOptions","fetchMore","obsUpdateQuery","mapFn","updateQuery","obsStartPolling","pollInterval","startPolling","obsStopPolling","stopPolling","obsSubscribeToMore","subscribeToMore","execute","removeQuerySubscription","updateObservableQuery","getExecuteSsrResult","executeLazy","networkStatus","ready","called","fetchData","ssr","obs","getCurrentResult","afterExecute","_b","lazy","handleErrorOrCompleted","resetQueryStoreErrors","bind","treeRenderingInitiated","renderPromises","ssrDisabled","fetchDisabled","disableNetworkFetches","ssrLoading","addQueryPromise","prepareObservableQueryOptions","Query","displayName","metadata","reactComponent","initializeObservableQuery","getSSRObservable","observableQueryOptions","watchQuery","registerSSRObservable","newObservableQueryOptions","subscription","obsQuery","subscribe","previousResult","_error","resubscribeToQuery","lastError","getLastError","lastResult","getLastResult","resetLastResults","observableQueryFields","currentResult","partial","partialRefetch","onCompleted","onError","unsubscribe","useBaseQuery","tick","updatedOptions","queryDataRef","memoFn","queryResult","MutationData","setResult","runMutation","mutationFunctionOptions","onMutationStart","mutationId","generateNewMutationId","mutate","response","onMutationCompleted","onMutationError","mutation","Mutation","mostRecentMutationId","optimisticResponse","update","mutationContext","_c","awaitRefetchQueries","mutateOptions","mutateVariables","refetchQueries","ignoreResults","updateResult","isMostRecentMutation","mutationDataRef","mutationData","SubscriptionData","initialize","getLoadingResult","shouldResubscribe","startSubscription","endSubscription","updateCurrentData","updateError","complete","completeSubscription","onSubscriptionData","subscriptionData","onSubscriptionComplete","RenderPromises","queryPromises","Map","queryInfoTrie","observable","lookupQueryInfo","queryInstance","finish","seen","set","Promise","resolve","hasPromises","consumeAndAwaitPromises","promises","forEach","promise","clear","all","varMap","has","variablesString","info","root","global","vendors","suffix","raf","caf","last","queue","_now","cp","cancelled","cancel","polyfill","requestAnimationFrame","cancelAnimationFrame"],"mappings":"6SAEA,IAAMA,EAAU,CACfC,WAAY,KAEZD,QAAS,CACRE,KAAM,QAGPC,IAAK,CACJC,O,MAAQD,GAAF,OAUOH,a,oCCpBf,uBAEMA,EAAU,CACfC,WAAY,CAEXI,UAAW,CACVC,UAAU,EACVC,UAAW,MASZC,QAAS,CACRF,UAAU,EACVC,UAAW,MAGZE,MAAO,CACNH,UAAU,EACVC,UAAW,CAEVG,MAAO,kKACPC,MAAOC,YAAI,qBAIbC,UAAW,CACVP,UAAU,EACVC,UAAW,MAUZO,iBAAkB,CACjBR,UAAU,EACVC,UAAW,MAGZQ,iBAAkB,CACjBT,UAAU,EACVC,UAAW,OAIbJ,IAAK,CACJC,OAAQ,OAIKJ,a,uBCzDf,IAAIgB,EAAU,EAAQ,QAEtBA,EAAQA,EAAQC,EAAG,SAAU,CAC3BC,MAAO,SAAeC,GAEpB,OAAOA,GAAUA,M,oCCJrB,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IACIC,EAAgB,IAAIC,OADZ,eAC0B,MAClCC,EAAe,IAAID,OAAO,kBAAoB,MAElD,SAASE,EAAiBC,EAAYC,GACpC,IAEE,OAAOC,mBAAmBF,EAAWG,KAAK,KAC1C,MAAOC,IAGT,GAA0B,IAAtBJ,EAAWK,OACb,OAAOL,EAGTC,EAAQA,GAAS,EAEjB,IAAIK,EAAON,EAAWO,MAAM,EAAGN,GAC3BO,EAAQR,EAAWO,MAAMN,GAC7B,OAAOQ,MAAMC,UAAUC,OAAOC,KAAK,GAAIb,EAAiBO,GAAOP,EAAiBS,IAGlF,SAASK,EAAOC,GACd,IACE,OAAOZ,mBAAmBY,GAC1B,MAAOV,GAGP,IAFA,IAAIW,EAASD,EAAME,MAAMpB,GAEhBqB,EAAI,EAAGA,EAAIF,EAAOV,OAAQY,IAEjCF,GADAD,EAAQf,EAAiBgB,EAAQE,GAAGd,KAAK,KAC1Ba,MAAMpB,GAGvB,OAAOkB,GAwCXI,EAAOC,QAAU,SAAUC,GACzB,GAA0B,iBAAfA,EACT,MAAM,IAAIC,UAAU,6DAA+DD,EAAa,KAGlG,IAGE,OAFAA,EAAaA,EAAWE,QAAQ,MAAO,KAEhCpB,mBAAmBkB,GAC1B,MAAOhB,GAEP,OA/CJ,SAAkCU,GAQhC,IANA,IAAIS,EAAa,CACf,SAAU,KACV,SAAU,MAERP,EAAQlB,EAAa0B,KAAKV,GAEvBE,GAAO,CACZ,IAEEO,EAAWP,EAAM,IAAMd,mBAAmBc,EAAM,IAChD,MAAOZ,GACP,IAAIqB,EAASZ,EAAOG,EAAM,IAEtBS,IAAWT,EAAM,KACnBO,EAAWP,EAAM,IAAMS,GAI3BT,EAAQlB,EAAa0B,KAAKV,GAI5BS,EAAW,OAAS,IAGpB,IAFA,IAAIG,EAAUC,OAAOC,KAAKL,GAEjBN,EAAI,EAAGA,EAAIS,EAAQrB,OAAQY,IAAK,CAEvC,IAAIY,EAAMH,EAAQT,GAClBH,EAAQA,EAAMQ,QAAQ,IAAIzB,OAAOgC,EAAK,KAAMN,EAAWM,IAGzD,OAAOf,EAcEgB,CAAyBV,M,oCClGpC,EAAQ,QAERF,EAAOC,QAAU,SAAUY,EAAQC,GACjC,GAAwB,iBAAXD,GAA4C,iBAAdC,EACzC,MAAM,IAAIX,UAAU,iDAGtB,GAAkB,KAAdW,EACF,MAAO,CAACD,GAGV,IAAIE,EAAiBF,EAAOG,QAAQF,GAEpC,OAAwB,IAApBC,EACK,CAACF,GAGH,CAACA,EAAOxB,MAAM,EAAG0B,GAAiBF,EAAOxB,MAAM0B,EAAiBD,EAAU3B,W,oCCnBnF,OAsCe7B,UApCC,CACfC,WAAY,CACX0D,eAAgB,CACfrD,UAAU,EACVC,UAAW,MAGZqD,aAAc,CACbtD,UAAU,EACVC,UAAW,MAGZsD,WAAY,CACXvD,UAAU,EACVC,UAAW,MAGZuD,OAAQ,CACPxD,UAAU,EACVC,UAAW,MAGZwD,YAAa,CACZzD,UAAU,EACVC,UAAW,MAGZyD,gBAAiB,CAChB1D,UAAU,EACVC,UAAW,OAIbJ,IAAK,O,mBC/BNuC,EAAOC,QAJP,WACE,MAAM,IAAIE,UAAU,qD,gLCChBoB,EAAsB,CAAEC,SAAS,EAAOC,KAAM,SAC9CC,EAAmB,CAAEC,KAAMzD,YAAI,mBAAoB0D,KAAM,MA+EhDC,EA7EC,SAACC,EAAOC,GACvB,OAAQA,EAAON,MAGf,IAAK,eACJ,OAAO,OAAP,UAAYK,EAAZ,CAAmBE,cAAe,OAGnC,IAAK,cACJ,OAAO,OAAP,UAAYF,EAAZ,CAAmBE,cAAeF,EAAMG,KAAMC,UAAWJ,EAAMI,UAAY,IAG5E,IAAK,oBAAsB,IAClBC,EAAYJ,EAAZI,QACR,OAAO,OAAP,UAAYL,EAAZ,CAAmBM,UAAWD,IAG/B,IAAK,sBACJ,OAAO,OAAP,UAAYL,EAAZ,CAAmBM,UAAWV,IAG/B,IAAK,qBACJ,OAAO,OAAP,UAAYI,EAAZ,CAAmBO,cAAeP,EAAMO,eAKzC,IAAK,cAAgB,IAEZC,EADYP,EAAZI,QACAG,KACR,OAAO,OAAP,UAAYR,EAAZ,CAAmBQ,KAAK,OAAD,UAAOR,EAAMQ,KAAb,GAAsBA,KAK9C,IAAK,mBACJ,OAAO,OAAP,UAAYR,EAAZ,CAAmBG,KAAM,EAAGD,cAAe,KAAMO,WAAYT,EAAMS,WAAa,EAAGD,KAAMR,EAAMU,cAAeC,aAAclB,EAAqBa,UAAWV,EAAkBW,cAAc,IAG7L,IAAK,YAAc,IACVJ,EAASH,EAATG,KACR,OAAO,OAAP,UAAYH,EAAZ,CAAmBG,KAAMA,EAAO,IAGjC,IAAK,YAAc,IACVA,EAASH,EAATG,KACR,OAAO,OAAP,UAAYH,EAAZ,CAAmBG,KAAMA,EAAO,IAGjC,IAAK,0BAA4B,IACxBE,EAAYJ,EAAZI,QACR,OAAO,OAAP,UAAYL,EAAZ,CAAmBY,mBAAoBP,IAKxC,IAAK,mBAAqB,IACjBA,EAAYJ,EAAZI,QACR,OAAO,OAAP,UAAYL,EAAZ,CAAmBW,aAAcN,IAGlC,IAAK,qBACJ,OAAO,OAAP,UAAYL,EAAZ,CAAmBW,aAAclB,IAKlC,IAAK,QAAU,IAAD,EAC+CQ,EAApDI,QAAWX,EADN,EACMA,QAASc,EADf,EACeA,KAAMK,EADrB,EACqBA,UAAWC,EADhC,EACgCA,SAC7C,OAAO,OAAP,UAAYd,EAAZ,CAAmBe,MAAO,CAAErB,QAASA,IAAoB,EAAOc,KAAMA,GAAQ,GAAIK,YAAWC,cAG9F,QACC,OAAOd,I,oECvET,IAAMgB,EAAoBC,0BAGnB,SAASC,EAAT,GAA2C,IAAbC,EAAY,EAAZA,SAC9BC,EAAWC,wBAGXC,EAAeF,EAASG,OAASC,IAAYC,MAAML,EAASG,QAAU,GAJ5B,EAMvBG,qBAAW3B,EAAS,CAC5CU,WAAY,EACZG,mBAAoB,EACpBJ,KAAM,GACNmB,MAAO,CAAC,EAAG,EAAG,GACdxB,KAAM,EACNG,UAAW,GACXF,UAAW,EACXF,cAAe,KACfK,cAAc,EACde,aAAc3C,OAAOC,KAAK0C,GAAcjE,OAAS,EAAIiE,EAAe,KACpEZ,cAAe,CACdkB,OAAQN,EAAaM,QAAU,IAC/BC,iBAAkBP,EAAaO,kBAAoB,GACnDC,KAAMR,EAAaQ,KAAOR,EAAaQ,KAAK7E,MAAM,KAAO,GACzDkC,eAAgB,KAChBG,OAAQ,2BAETqB,aAAc,CACbjB,SAAS,GAEVqB,MAAO,CACNrB,SAAS,EACTc,KAAM,GACNK,UAAW,KACXC,SAAU,QAzBLN,EANyC,KAMnCuB,EANmC,KAmChD,OAAQ,kBAACf,EAAkBgB,SAAnB,CAA4BC,MAAO,CAAEzB,OAAMuB,aAAaZ,GAO1D,IAAMe,EAAW,kBAAMC,qBAAWnB,K,yDCpD1B,SAASoB,EAAUC,EAAWC,GAG3C,IAFuBC,QAAQF,GAG7B,MAAM,IAAIG,MAAMF,G,wDCML,SAASG,EAAaC,GACnC,IAAIC,EAAKC,UAAUvF,OAAS,QAAsBwF,IAAjBD,UAAU,GAAmBA,UAAU,GAAKF,EAAYhF,UAAUoF,SACnGJ,EAAYhF,UAAUqF,OAASJ,EAC/BD,EAAYhF,UAAUsF,QAAUL,EAE5BM,EAAA,IACFP,EAAYhF,UAAUuF,EAAA,GAA6BN,G,gFCbvD,SAASO,EAAQC,GAWf,OATED,EADoB,mBAAXE,QAAoD,iBAApBA,OAAOC,SACtC,SAAiBF,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAO1F,UAAY,gBAAkByF,IAI9GA,GCNV,SAASI,EAAYC,EAAQC,GAMlC,IALA,IAGIzF,EAHA0F,EAAa,eACbC,EAAO,EACPC,EAASH,EAAW,GAGhBzF,EAAQ0F,EAAWlF,KAAKgF,EAAOK,QAAU7F,EAAM8F,MAAQL,GAC7DE,GAAQ,EACRC,EAASH,EAAW,GAAKzF,EAAM8F,MAAQ9F,EAAM,GAAGX,QAGlD,MAAO,CACLsG,KAAMA,EACNC,OAAQA,G,8BCZL,SAASG,EAAc3C,GAC5B,OAAO4C,EAAoB5C,EAASoC,OAAQD,EAAYnC,EAASoC,OAAQpC,EAAS6C,QAM7E,SAASD,EAAoBR,EAAQU,GAC1C,IAAIC,EAAwBX,EAAOY,eAAeR,OAAS,EACvDC,EAAOQ,EAAWF,GAAyBX,EAAOK,KAClDS,EAAYJ,EAAeP,KAAO,EAClCY,EAAaf,EAAOY,eAAeT,KAAO,EAC1Ca,EAAUN,EAAeP,KAAOY,EAChCE,EAAuC,IAAxBP,EAAeP,KAAaQ,EAAwB,EACnEO,EAAYR,EAAeN,OAASa,EACpCE,EAAc,GAAGhH,OAAO6F,EAAO9H,KAAM,KAAKiC,OAAO6G,EAAS,KAAK7G,OAAO+G,EAAW,MACjFE,EAAQf,EAAK5G,MAAM,gBACnB4H,EAAeD,EAAMN,GAEzB,GAAIO,EAAaxH,OAAS,IAAK,CAK7B,IAJA,IAAIyH,EAAeC,KAAKC,MAAMN,EAAY,IACtCO,EAAmBP,EAAY,GAC/BQ,EAAW,GAENjH,EAAI,EAAGA,EAAI4G,EAAaxH,OAAQY,GAAK,GAC5CiH,EAASC,KAAKN,EAAatH,MAAMU,EAAGA,EAAI,KAG1C,OAAO0G,EAAcS,EAAmB,CAAC,CAAC,GAAGzH,OAAO6G,GAAUU,EAAS,KAAKvH,OAAOuH,EAAS3H,MAAM,EAAGuH,EAAe,GAAGO,KAAI,SAAUC,GACnI,MAAO,CAAC,GAAIA,MACV,CAAC,CAAC,IAAKjB,EAAWY,EAAmB,GAAK,KAAM,CAAC,GAAIC,EAASJ,EAAe,OAGnF,OAAOH,EAAcS,EAAmB,CACxC,CAAC,GAAGzH,OAAO6G,EAAU,GAAII,EAAMN,EAAY,IAAK,CAAC,GAAG3G,OAAO6G,GAAUK,GAAe,CAAC,GAAIR,EAAWK,EAAY,GAAK,KAAM,CAAC,GAAG/G,OAAO6G,EAAU,GAAII,EAAMN,EAAY,MAGxK,SAASc,EAAmBR,GAC1B,IAAIW,EAAgBX,EAAMY,QAAO,SAAUC,GACjCA,EAAK,GAEb,YAAgB5C,IADL4C,EAAK,MAGdC,EAASX,KAAKY,IAAIC,MAAMb,KAAMQ,EAAcF,KAAI,SAAUQ,GAE5D,OADaA,EAAM,GACLxI,WAEhB,OAAOkI,EAAcF,KAAI,SAAUS,GACjC,IAUeC,EAVXC,EAASF,EAAM,GACfnC,EAAOmC,EAAM,GACjB,OASKzB,EATOqB,GAQGK,EARKC,GASM3I,QAAU0I,GATLpC,EAAO,MAAQA,EAAO,SACpDxG,KAAK,MAGV,SAASkH,EAAW4B,GAClB,OAAOxI,MAAMwI,EAAM,GAAG9I,KAAK,KChDtB,SAAS+I,EAChB5D,EAAS6D,EAAO3C,EAAQ4C,EAAWC,EAAMC,EAAeC,GAEtD,IAAIC,EAAS/I,MAAMgJ,QAAQN,GAA0B,IAAjBA,EAAM9I,OAAe8I,OAAQtD,EAAYsD,EAAQ,CAACA,QAAStD,EAG3F6D,EAAUlD,EAEd,IAAKkD,GAAWF,EAAQ,CACtB,IAAIG,EAAOH,EAAO,GAClBE,EAAUC,GAAQA,EAAKC,KAAOD,EAAKC,IAAIpD,OAGzC,IAgBIqD,EAhBAC,EAAaV,GAEZU,GAAcN,IACjBM,EAAaN,EAAOO,QAAO,SAAUC,EAAML,GAKzC,OAJIA,EAAKC,KACPI,EAAK7B,KAAKwB,EAAKC,IAAI3C,OAGd+C,IACN,KAGDF,GAAoC,IAAtBA,EAAWzJ,SAC3ByJ,OAAajE,GAKXuD,GAAa5C,EACfqD,EAAaT,EAAUf,KAAI,SAAU4B,GACnC,OAAO1D,EAAYC,EAAQyD,MAEpBT,IACTK,EAAaL,EAAOO,QAAO,SAAUC,EAAML,GAKzC,OAJIA,EAAKC,KACPI,EAAK7B,KAAK5B,EAAYoD,EAAKC,IAAIpD,OAAQmD,EAAKC,IAAI3C,QAG3C+C,IACN,KAGL,IHvCmC/E,EGuC/BiF,EAAcX,EAElB,GAAmB,MAAfW,GAAwC,MAAjBZ,EAAuB,CAChD,IAAIa,EAAqBb,EAAcC,WHzChB,UAAlBrD,EAD4BjB,EG4ChBkF,IH3C4B,OAAVlF,IG4CjCiF,EAAcC,GAIlBxI,OAAOyI,iBAAiBC,KAAM,CAC5B/E,QAAS,CACPL,MAAOK,EAIPgF,YAAY,EACZC,UAAU,GAEZC,UAAW,CAGTvF,MAAO4E,QAAchE,EAIrByE,WAAY/E,QAAQsE,IAEtBR,KAAM,CAGJpE,MAAOoE,QAAQxD,EAIfyE,WAAY/E,QAAQ8D,IAEtBF,MAAO,CACLlE,MAAOuE,QAAU3D,GAEnBW,OAAQ,CACNvB,MAAOyE,QAAW7D,GAEpBuD,UAAW,CACTnE,MAAO6E,QAAcjE,GAEvByD,cAAe,CACbrE,MAAOqE,GAETC,WAAY,CAGVtE,MAAOiF,QAAerE,EAItByE,WAAY/E,QAAQ2E,MAIpBZ,GAAiBA,EAAcmB,MACjC9I,OAAO+I,eAAeL,KAAM,QAAS,CACnCpF,MAAOqE,EAAcmB,MACrBF,UAAU,EACVI,cAAc,IAEPnF,MAAMoF,kBACfpF,MAAMoF,kBAAkBP,KAAMnB,GAE9BvH,OAAO+I,eAAeL,KAAM,QAAS,CACnCpF,MAAOO,QAAQiF,MACfF,UAAU,EACVI,cAAc,IC/Hb,SAASE,EAAYrE,EAAQC,EAAUqE,GAC5C,OAAO,IAAI5B,EAAa,iBAAiBvI,OAAOmK,QAAcjF,EAAWW,EAAQ,CAACC,IDkIpFyC,EAAaxI,UAAYiB,OAAOoJ,OAAOvF,MAAM9E,UAAW,CACtD4F,YAAa,CACXrB,MAAOiE,GAETxK,KAAM,CACJuG,MAAO,gBAETa,SAAU,CACRb,MAAO,WACL,OASC,SAAoB9F,GACzB,IAAI6L,EAAS7L,EAAMmG,QAEnB,GAAInG,EAAMgK,MACR,IAAK,IAAI8B,EAAM,EAAGC,EAAgB/L,EAAMgK,MAAO8B,EAAMC,EAAc7K,OAAQ4K,IAAO,CAChF,IAAItB,EAAOuB,EAAcD,GAErBtB,EAAKC,MACPoB,GAAU,OAASjE,EAAc4C,EAAKC,WAGrC,GAAIzK,EAAMqH,QAAUrH,EAAMqL,UAC/B,IAAK,IAAIW,EAAM,EAAGC,EAAoBjM,EAAMqL,UAAWW,EAAMC,EAAkB/K,OAAQ8K,IAAO,CAC5F,IAAI/G,EAAWgH,EAAkBD,GACjCH,GAAU,OAAShE,EAAoB7H,EAAMqH,OAAQpC,GAIzD,OAAO4G,EA3BIK,CAAWhB,U,cE7IbiB,EAAO3J,OAAO4J,OAAO,CAE9BC,KAAM,OAENC,SAAU,WACVC,qBAAsB,sBACtBC,oBAAqB,qBACrBC,cAAe,eACfC,MAAO,QACPC,SAAU,WAEVC,gBAAiB,iBACjBC,gBAAiB,iBACjBC,oBAAqB,qBAErBC,SAAU,WACVC,IAAK,WACLC,MAAO,aACPC,OAAQ,cACRC,QAAS,eACTC,KAAM,YACNC,KAAM,YACNC,KAAM,YACNC,OAAQ,cACRC,aAAc,cAEdC,UAAW,YAEXC,WAAY,YACZC,UAAW,WACXC,cAAe,cAEfC,kBAAmB,mBACnBC,0BAA2B,0BAE3BC,uBAAwB,uBACxBC,uBAAwB,uBACxBC,iBAAkB,kBAClBC,uBAAwB,uBACxBC,0BAA2B,0BAC3BC,sBAAuB,sBACvBC,qBAAsB,qBACtBC,sBAAuB,sBACvBC,6BAA8B,4BAE9BC,qBAAsB,sBAEtBC,iBAAkB,kBAElBC,sBAAuB,sBACvBC,sBAAuB,sBACvBC,yBAA0B,yBAC1BC,qBAAsB,qBACtBC,oBAAqB,oBACrBC,4BAA6B,6BC/CxB,ICMmCxI,EDN/B,EAAS,SAAgBmB,EAAMnI,EAAM0I,GAC9CiD,KAAKxD,KAAOA,EACZwD,KAAK3L,KAAOA,GAAQ,kBACpB2L,KAAKjD,eAAiBA,GAAkB,CACtCT,KAAM,EACNC,OAAQ,GAEVyD,KAAKjD,eAAeT,KAAO,GAAKvB,EAAU,EAAG,4DAC7CiF,KAAKjD,eAAeR,OAAS,GAAKxB,EAAU,EAAG,+DCFPM,EDKxB,ECJM,mBAAXU,QAAyBA,OAAO+H,aACzCxM,OAAO+I,eAAehF,EAAYhF,UAAW0F,OAAO+H,YAAa,CAC/DC,IAAK,WACH,OAAO/D,KAAK/D,YAAY5H,Q,gBChBrB2P,EAAY1M,OAAO4J,OAAO,CACnC+C,IAAK,QACLC,IAAK,QACLC,KAAM,IACNC,OAAQ,IACRC,IAAK,IACLC,QAAS,IACTC,QAAS,IACTC,OAAQ,MACRC,MAAO,IACPC,OAAQ,IACRC,GAAI,IACJC,UAAW,IACXC,UAAW,IACXC,QAAS,IACTC,KAAM,IACNC,QAAS,IACT7D,KAAM,OACNW,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRiD,aAAc,cACdC,QAAS,YCGX,SAASC,IAGP,OAFAnF,KAAKoF,UAAYpF,KAAKqF,MACVrF,KAAKqF,MAAQrF,KAAKsF,YAIhC,SAASA,IACP,IAAID,EAAQrF,KAAKqF,MAEjB,GAAIA,EAAME,OAASvB,EAAUE,IAC3B,GAEEmB,EAAQA,EAAMG,OAASH,EAAMG,KAAOC,EAAUzF,KAAMqF,UAC7CA,EAAME,OAASvB,EAAUkB,SAGpC,OAAOG,EAgBT,SAASK,EAAIH,EAAM3I,EAAO+I,EAAKrJ,EAAMC,EAAQqJ,EAAMhL,GACjDoF,KAAKuF,KAAOA,EACZvF,KAAKpD,MAAQA,EACboD,KAAK2F,IAAMA,EACX3F,KAAK1D,KAAOA,EACZ0D,KAAKzD,OAASA,EACdyD,KAAKpF,MAAQA,EACboF,KAAK4F,KAAOA,EACZ5F,KAAKwF,KAAO,KAad,SAASK,EAAcC,GACrB,OACEzQ,MAAMyQ,GAAQ9B,EAAUE,IACxB4B,EAAO,IAASC,KAAKC,UAAUC,OAAOC,aAAaJ,IACnD,OAAQxP,QAAQ,KAAOwP,EAAKrK,SAAS,IAAI0K,eAAejQ,OAAO,GAAI,KAYvE,SAASuP,EAAUW,EAAOR,GACxB,IAAIzJ,EAASiK,EAAMjK,OACfK,EAAOL,EAAOK,KACd6J,EAAa7J,EAAKxG,OAClB4J,EAmLN,SAAiCpD,EAAM8J,EAAeF,GACpD,IAAIC,EAAa7J,EAAKxG,OAClBoG,EAAWkK,EAEf,KAAOlK,EAAWiK,GAAY,CAC5B,IAAIP,EAAOtJ,EAAK+J,WAAWnK,GAE3B,GAAa,IAAT0J,GAAuB,KAATA,GAAwB,KAATA,GAAwB,QAATA,IAC5C1J,OACG,GAAa,KAAT0J,IAEP1J,IACAgK,EAAM9J,KACR8J,EAAMI,UAAYpK,MACb,IAAa,KAAT0J,EAWT,MATsC,KAAlCtJ,EAAK+J,WAAWnK,EAAW,GAC7BA,GAAY,IAEVA,IAGFgK,EAAM9J,KACR8J,EAAMI,UAAYpK,GAMtB,OAAOA,EAhNGqK,CAAwBjK,EAAMoJ,EAAKD,IAAKS,GAC9C9J,EAAO8J,EAAM9J,KACboK,EAAM,EAAI9G,EAAMwG,EAAMI,UAE1B,GAAI5G,GAAOyG,EACT,OAAO,IAAIX,EAAI1B,EAAUE,IAAKmC,EAAYA,EAAY/J,EAAMoK,EAAKd,GAGnE,IAAIE,EAAOtJ,EAAK+J,WAAW3G,GAE3B,OAAQkG,GAEN,KAAK,GACH,OAAO,IAAIJ,EAAI1B,EAAUG,KAAMvE,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG1D,KAAK,GACH,OAwMN,SAAqBzJ,EAAQS,EAAON,EAAMoK,EAAKd,GAC7C,IACIE,EADAtJ,EAAOL,EAAOK,KAEdJ,EAAWQ,EAEf,GACEkJ,EAAOtJ,EAAK+J,aAAanK,UACjB/G,MAAMyQ,KAChBA,EAAO,IAAmB,IAATA,IAEjB,OAAO,IAAIJ,EAAI1B,EAAUkB,QAAStI,EAAOR,EAAUE,EAAMoK,EAAKd,EAAMpJ,EAAKtG,MAAM0G,EAAQ,EAAGR,IAlN/EuK,CAAYxK,EAAQyD,EAAKtD,EAAMoK,EAAKd,GAG7C,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUI,OAAQxE,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG5D,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUK,IAAKzE,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAGzD,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUM,QAAS1E,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG7D,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUO,QAAS3E,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG7D,KAAK,GACH,GAAiC,KAA7BpJ,EAAK+J,WAAW3G,EAAM,IAA0C,KAA7BpD,EAAK+J,WAAW3G,EAAM,GAC3D,OAAO,IAAI8F,EAAI1B,EAAUQ,OAAQ5E,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG5D,MAGF,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUS,MAAO7E,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG3D,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUU,OAAQ9E,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG5D,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUW,GAAI/E,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAGxD,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUY,UAAWhF,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG/D,KAAK,GACH,OAAO,IAAIF,EAAI1B,EAAUa,UAAWjF,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG/D,KAAK,IACH,OAAO,IAAIF,EAAI1B,EAAUc,QAASlF,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG7D,KAAK,IACH,OAAO,IAAIF,EAAI1B,EAAUe,KAAMnF,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG1D,KAAK,IACH,OAAO,IAAIF,EAAI1B,EAAUgB,QAASpF,EAAKA,EAAM,EAAGtD,EAAMoK,EAAKd,GAG7D,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACH,OA+WN,SAAkBzJ,EAAQS,EAAON,EAAMoK,EAAKd,GAC1C,IAAIpJ,EAAOL,EAAOK,KACd6J,EAAa7J,EAAKxG,OAClBoG,EAAWQ,EAAQ,EACnBkJ,EAAO,EAEX,KAAO1J,IAAaiK,IAAehR,MAAMyQ,EAAOtJ,EAAK+J,WAAWnK,MAAwB,KAAT0J,GAC/EA,GAAQ,IAAMA,GAAQ,IACtBA,GAAQ,IAAMA,GAAQ,IACtBA,GAAQ,IAAMA,GAAQ,QAElB1J,EAGJ,OAAO,IAAIsJ,EAAI1B,EAAU7C,KAAMvE,EAAOR,EAAUE,EAAMoK,EAAKd,EAAMpJ,EAAKtG,MAAM0G,EAAOR,IA7XxEwK,CAASzK,EAAQyD,EAAKtD,EAAMoK,EAAKd,GAG1C,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACH,OA+FN,SAAoBzJ,EAAQS,EAAOiK,EAAWvK,EAAMoK,EAAKd,GACvD,IAAIpJ,EAAOL,EAAOK,KACdsJ,EAAOe,EACPzK,EAAWQ,EACXkK,GAAU,EAED,KAAThB,IAEFA,EAAOtJ,EAAK+J,aAAanK,IAG3B,GAAa,KAAT0J,GAIF,IAFAA,EAAOtJ,EAAK+J,aAAanK,KAEb,IAAM0J,GAAQ,GACxB,MAAMtF,EAAYrE,EAAQC,EAAU,6CAA6C9F,OAAOuP,EAAcC,GAAO,WAG/G1J,EAAW2K,EAAW5K,EAAQC,EAAU0J,GACxCA,EAAOtJ,EAAK+J,WAAWnK,GAGZ,KAAT0J,IAEFgB,GAAU,EACVhB,EAAOtJ,EAAK+J,aAAanK,GACzBA,EAAW2K,EAAW5K,EAAQC,EAAU0J,GACxCA,EAAOtJ,EAAK+J,WAAWnK,IAGZ,KAAT0J,GAAwB,MAATA,IAEjBgB,GAAU,EAGG,MAFbhB,EAAOtJ,EAAK+J,aAAanK,KAEG,KAAT0J,IAEjBA,EAAOtJ,EAAK+J,aAAanK,IAG3BA,EAAW2K,EAAW5K,EAAQC,EAAU0J,GACxCA,EAAOtJ,EAAK+J,WAAWnK,IAIzB,GAAa,KAAT0J,GAAwB,KAATA,GAAwB,MAATA,EAChC,MAAMtF,EAAYrE,EAAQC,EAAU,2CAA2C9F,OAAOuP,EAAcC,GAAO,MAG7G,OAAO,IAAIJ,EAAIoB,EAAU9C,EAAUjC,MAAQiC,EAAUlC,IAAKlF,EAAOR,EAAUE,EAAMoK,EAAKd,EAAMpJ,EAAKtG,MAAM0G,EAAOR,IAjJnG4K,CAAW7K,EAAQyD,EAAKkG,EAAMxJ,EAAMoK,EAAKd,GAGlD,KAAK,GACH,OAAiC,KAA7BpJ,EAAK+J,WAAW3G,EAAM,IAA0C,KAA7BpD,EAAK+J,WAAW3G,EAAM,GAyQnE,SAAyBzD,EAAQS,EAAON,EAAMoK,EAAKd,EAAMQ,GACvD,IAAI5J,EAAOL,EAAOK,KACdJ,EAAWQ,EAAQ,EACnBqK,EAAa7K,EACb0J,EAAO,EACPoB,EAAW,GAEf,KAAO9K,EAAWI,EAAKxG,SAAWX,MAAMyQ,EAAOtJ,EAAK+J,WAAWnK,KAAY,CAEzE,GAAa,KAAT0J,GAAiD,KAAlCtJ,EAAK+J,WAAWnK,EAAW,IAA+C,KAAlCI,EAAK+J,WAAWnK,EAAW,GAEpF,OADA8K,GAAY1K,EAAKtG,MAAM+Q,EAAY7K,GAC5B,IAAIsJ,EAAI1B,EAAUiB,aAAcrI,EAAOR,EAAW,EAAGE,EAAMoK,EAAKd,EAAM,YAAuBsB,IAItG,GAAIpB,EAAO,IAAmB,IAATA,GAA4B,KAATA,GAA4B,KAATA,EACzD,MAAMtF,EAAYrE,EAAQC,EAAU,oCAAoC9F,OAAOuP,EAAcC,GAAO,MAGzF,KAATA,KAEA1J,IACAgK,EAAM9J,KACR8J,EAAMI,UAAYpK,GACA,KAAT0J,GAE6B,KAAlCtJ,EAAK+J,WAAWnK,EAAW,GAC7BA,GAAY,IAEVA,IAGFgK,EAAM9J,KACR8J,EAAMI,UAAYpK,GAEX,KAAT0J,GAAiD,KAAlCtJ,EAAK+J,WAAWnK,EAAW,IAA+C,KAAlCI,EAAK+J,WAAWnK,EAAW,IAA+C,KAAlCI,EAAK+J,WAAWnK,EAAW,IACxH8K,GAAY1K,EAAKtG,MAAM+Q,EAAY7K,GAAY,MAE/C6K,EADA7K,GAAY,KAGVA,EAIN,MAAMoE,EAAYrE,EAAQC,EAAU,wBApTvB+K,CAAgBhL,EAAQyD,EAAKtD,EAAMoK,EAAKd,EAAMQ,GA2K7D,SAAoBjK,EAAQS,EAAON,EAAMoK,EAAKd,GAC5C,IAAIpJ,EAAOL,EAAOK,KACdJ,EAAWQ,EAAQ,EACnBqK,EAAa7K,EACb0J,EAAO,EACPlL,EAAQ,GAEZ,KAAOwB,EAAWI,EAAKxG,SAAWX,MAAMyQ,EAAOtJ,EAAK+J,WAAWnK,KACtD,KAAT0J,GAA4B,KAATA,GAAiB,CAElC,GAAa,KAATA,EAEF,OADAlL,GAAS4B,EAAKtG,MAAM+Q,EAAY7K,GACzB,IAAIsJ,EAAI1B,EAAUhC,OAAQpF,EAAOR,EAAW,EAAGE,EAAMoK,EAAKd,EAAMhL,GAIzE,GAAIkL,EAAO,IAAmB,IAATA,EACnB,MAAMtF,EAAYrE,EAAQC,EAAU,oCAAoC9F,OAAOuP,EAAcC,GAAO,MAKtG,KAFE1J,EAEW,KAAT0J,EAAa,CAKf,OAHAlL,GAAS4B,EAAKtG,MAAM+Q,EAAY7K,EAAW,GAC3C0J,EAAOtJ,EAAK+J,WAAWnK,IAGrB,KAAK,GACHxB,GAAS,IACT,MAEF,KAAK,GACHA,GAAS,IACT,MAEF,KAAK,GACHA,GAAS,KACT,MAEF,KAAK,GACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IAGD,IAAIwM,GAwFKC,EAxFkB7K,EAAK+J,WAAWnK,EAAW,GAwF1CkL,EAxF8C9K,EAAK+J,WAAWnK,EAAW,GAwFtEmL,EAxF0E/K,EAAK+J,WAAWnK,EAAW,GAwFlGoL,EAxFsGhL,EAAK+J,WAAWnK,EAAW,GAyFtJqL,EAASJ,IAAM,GAAKI,EAASH,IAAM,EAAIG,EAASF,IAAM,EAAIE,EAASD,IAvFhE,GAAIJ,EAAW,EAAG,CAChB,IAAIM,EAAkBlL,EAAKtG,MAAMkG,EAAW,EAAGA,EAAW,GAC1D,MAAMoE,EAAYrE,EAAQC,EAAU,yCAAyC9F,OAAOoR,EAAiB,MAGvG9M,GAASqL,OAAOC,aAAakB,GAC7BhL,GAAY,EACZ,MAGJ,QACE,MAAMoE,EAAYrE,EAAQC,EAAU,wCAAwC9F,OAAO2P,OAAOC,aAAaJ,GAAO,QAGhH1J,EACF6K,EAAa7K,GAuEnB,IAAqBiL,EAAGC,EAAGC,EAAGC,EAnE5B,MAAMhH,EAAYrE,EAAQC,EAAU,wBA5PzBuL,CAAWxL,EAAQyD,EAAKtD,EAAMoK,EAAKd,GAG9C,MAAMpF,EAAYrE,EAAQyD,EAO5B,SAAoCkG,GAClC,GAAIA,EAAO,IAAmB,IAATA,GAA4B,KAATA,GAA4B,KAATA,EACzD,MAAO,wCAAwCxP,OAAOuP,EAAcC,GAAO,KAG7E,GAAa,KAATA,EAEF,MAAO,kFAGT,MAAO,yCAAyCxP,OAAOuP,EAAcC,GAAO,KAjB7C8B,CAA2B9B,IA6I5D,SAASiB,EAAW5K,EAAQS,EAAOiK,GACjC,IAAIrK,EAAOL,EAAOK,KACdJ,EAAWQ,EACXkJ,EAAOe,EAEX,GAAIf,GAAQ,IAAMA,GAAQ,GAAI,CAE5B,GACEA,EAAOtJ,EAAK+J,aAAanK,SAClB0J,GAAQ,IAAMA,GAAQ,IAG/B,OAAO1J,EAGT,MAAMoE,EAAYrE,EAAQC,EAAU,2CAA2C9F,OAAOuP,EAAcC,GAAO,MA6K7G,SAAS2B,EAASJ,GAChB,OAAOA,GAAK,IAAMA,GAAK,GAAKA,EAAI,GAC9BA,GAAK,IAAMA,GAAK,GAAKA,EAAI,GACzBA,GAAK,IAAMA,GAAK,IAAMA,EAAI,IACzB,EApgBLjM,EAAasK,GAAK,WAChB,MAAO,CACLH,KAAMvF,KAAKuF,KACX3K,MAAOoF,KAAKpF,MACZ0B,KAAM0D,KAAK1D,KACXC,OAAQyD,KAAKzD,WC3EV,IAAIsL,EAAoBvQ,OAAO4J,OAAO,CAE3C4G,MAAO,QACPC,SAAU,WACVC,aAAc,eACdxG,MAAO,QACPI,oBAAqB,sBACrBF,gBAAiB,kBACjBC,gBAAiB,kBACjBL,oBAAqB,sBAErB2G,OAAQ,SACRC,OAAQ,SACR7F,OAAQ,SACRU,iBAAkB,mBAClBoF,oBAAqB,sBACrBC,UAAW,YACXC,MAAO,QACPlG,KAAM,OACNmG,WAAY,aACZC,aAAc,eACdC,uBAAwB,2BCZnB,SAASpO,EAAM+B,EAAQsM,GAE5B,OADa,IAAI,EAAOtM,EAAQsM,GAClBC,gBAaT,SAASC,EAAWxM,EAAQsM,GACjC,IAAIG,EAAS,IAAI,EAAOzM,EAAQsM,GAChCG,EAAOC,YAAY7E,EAAUC,KAC7B,IAAIrJ,EAAQgO,EAAOE,mBAAkB,GAErC,OADAF,EAAOC,YAAY7E,EAAUE,KACtBtJ,EAaF,SAASmO,EAAU5M,EAAQsM,GAChC,IAAIG,EAAS,IAAI,EAAOzM,EAAQsM,GAChCG,EAAOC,YAAY7E,EAAUC,KAC7B,IAAI3L,EAAOsQ,EAAOI,qBAElB,OADAJ,EAAOC,YAAY7E,EAAUE,KACtB5L,EApDT,2HAuDA,IAAI,EAEJ,WACE,SAAS2Q,EAAO9M,EAAQsM,GACtB,IAAIS,EAA8B,iBAAX/M,EAAsB,IAAI,EAAOA,GAAUA,EAClE+M,aAAqB,GAAUnO,EAAU,EAAG,kCAAkCzE,OAAO,OAAAqF,EAAA,GAAQuN,KAC7FlJ,KAAKmJ,OF7CF,SAAqBhN,EAAQsM,GAClC,IAAIW,EAAmB,IAAI1D,EAAI1B,EAAUC,IAAK,EAAG,EAAG,EAAG,EAAG,MAW1D,MAVY,CACV9H,OAAQA,EACRsM,QAASA,EACTrD,UAAWgE,EACX/D,MAAO+D,EACP9M,KAAM,EACNkK,UAAW,EACX6C,QAASlE,EACTG,UAAWA,GEmCGgE,CAAYJ,GAC1BlJ,KAAKuJ,SAAWd,GAAW,GAO7B,IAAIe,EAASP,EAAO5S,UAy5CpB,OAv5CAmT,EAAOC,UAAY,WACjB,IAAIpE,EAAQrF,KAAK6I,YAAY7E,EAAU7C,MACvC,MAAO,CACLoE,KAAMtE,EAAKE,KACXvG,MAAOyK,EAAMzK,MACb2E,IAAKS,KAAKT,IAAI8F,KASlBmE,EAAOd,cAAgB,WACrB,IAAI9L,EAAQoD,KAAKmJ,OAAO9D,MACxB,MAAO,CACLE,KAAMtE,EAAKG,SACXsI,YAAa1J,KAAK2J,KAAK3F,EAAUC,IAAKjE,KAAK4J,gBAAiB5F,EAAUE,KACtE3E,IAAKS,KAAKT,IAAI3C,KAelB4M,EAAOI,gBAAkB,WACvB,GAAI5J,KAAK6J,KAAK7F,EAAU7C,MACtB,OAAQnB,KAAKmJ,OAAO9D,MAAMzK,OACxB,IAAK,QACL,IAAK,WACL,IAAK,eACH,OAAOoF,KAAK8J,2BAEd,IAAK,WACH,OAAO9J,KAAK+J,0BAEd,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,YACH,OAAO/J,KAAKgK,4BAEd,IAAK,SACH,OAAOhK,KAAKiK,+BAEX,IAAIjK,KAAK6J,KAAK7F,EAAUc,SAC7B,OAAO9E,KAAK8J,2BACP,GAAI9J,KAAKkK,kBACd,OAAOlK,KAAKgK,4BAGd,MAAMhK,KAAKmK,cAUbX,EAAOM,yBAA2B,WAChC,IAAIlN,EAAQoD,KAAKmJ,OAAO9D,MAExB,GAAIrF,KAAK6J,KAAK7F,EAAUc,SACtB,MAAO,CACLS,KAAMtE,EAAKI,qBACX+I,UAAW,QACX/V,UAAMmH,EACN6O,oBAAqB,GACrBC,WAAY,GACZC,aAAcvK,KAAKwK,oBACnBjL,IAAKS,KAAKT,IAAI3C,IAIlB,IACIvI,EADA+V,EAAYpK,KAAKyK,qBAOrB,OAJIzK,KAAK6J,KAAK7F,EAAU7C,QACtB9M,EAAO2L,KAAKyJ,aAGP,CACLlE,KAAMtE,EAAKI,qBACX+I,UAAWA,EACX/V,KAAMA,EACNgW,oBAAqBrK,KAAK0K,2BAC1BJ,WAAYtK,KAAK2K,iBAAgB,GACjCJ,aAAcvK,KAAKwK,oBACnBjL,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOiB,mBAAqB,WAC1B,IAAIG,EAAiB5K,KAAK6I,YAAY7E,EAAU7C,MAEhD,OAAQyJ,EAAehQ,OACrB,IAAK,QACH,MAAO,QAET,IAAK,WACH,MAAO,WAET,IAAK,eACH,MAAO,eAGX,MAAMoF,KAAKmK,WAAWS,IAOxBpB,EAAOkB,yBAA2B,WAChC,OAAO1K,KAAK6K,aAAa7G,EAAUM,QAAStE,KAAK8K,wBAAyB9G,EAAUO,UAOtFiF,EAAOsB,wBAA0B,WAC/B,IAAIlO,EAAQoD,KAAKmJ,OAAO9D,MACxB,MAAO,CACLE,KAAMtE,EAAKK,oBACXyJ,SAAU/K,KAAKgL,gBACf1S,MAAO0H,KAAK6I,YAAY7E,EAAUS,OAAQzE,KAAKgJ,sBAC/CiC,aAAcjL,KAAKkL,oBAAoBlH,EAAUU,QAAU1E,KAAK8I,mBAAkB,QAAQtN,EAC1F8O,WAAYtK,KAAK2K,iBAAgB,GACjCpL,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOwB,cAAgB,WACrB,IAAIpO,EAAQoD,KAAKmJ,OAAO9D,MAExB,OADArF,KAAK6I,YAAY7E,EAAUI,QACpB,CACLmB,KAAMtE,EAAKY,SACXxN,KAAM2L,KAAKyJ,YACXlK,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOgB,kBAAoB,WACzB,IAAI5N,EAAQoD,KAAKmJ,OAAO9D,MACxB,MAAO,CACLE,KAAMtE,EAAKM,cACX4J,WAAYnL,KAAK2J,KAAK3F,EAAUc,QAAS9E,KAAKoL,eAAgBpH,EAAUgB,SACxEzF,IAAKS,KAAKT,IAAI3C,KAWlB4M,EAAO4B,eAAiB,WACtB,OAAOpL,KAAK6J,KAAK7F,EAAUQ,QAAUxE,KAAKqL,gBAAkBrL,KAAKsL,cASnE9B,EAAO8B,WAAa,WAClB,IAEIC,EACAlX,EAHAuI,EAAQoD,KAAKmJ,OAAO9D,MACpBmG,EAAcxL,KAAKyJ,YAWvB,OAPIzJ,KAAKkL,oBAAoBlH,EAAUS,QACrC8G,EAAQC,EACRnX,EAAO2L,KAAKyJ,aAEZpV,EAAOmX,EAGF,CACLjG,KAAMtE,EAAKO,MACX+J,MAAOA,EACPlX,KAAMA,EACNkH,UAAWyE,KAAKyL,gBAAe,GAC/BnB,WAAYtK,KAAK2K,iBAAgB,GACjCJ,aAAcvK,KAAK6J,KAAK7F,EAAUc,SAAW9E,KAAKwK,yBAAsBhP,EACxE+D,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOiC,eAAiB,SAAwBC,GAC9C,IAAIC,EAAOD,EAAU1L,KAAK4L,mBAAqB5L,KAAK6L,cACpD,OAAO7L,KAAK6K,aAAa7G,EAAUM,QAASqH,EAAM3H,EAAUO,UAO9DiF,EAAOqC,cAAgB,WACrB,IAAIjP,EAAQoD,KAAKmJ,OAAO9D,MACpBhR,EAAO2L,KAAKyJ,YAEhB,OADAzJ,KAAK6I,YAAY7E,EAAUS,OACpB,CACLc,KAAMtE,EAAKQ,SACXpN,KAAMA,EACNuG,MAAOoF,KAAK8I,mBAAkB,GAC9BvJ,IAAKS,KAAKT,IAAI3C,KAIlB4M,EAAOoC,mBAAqB,WAC1B,IAAIhP,EAAQoD,KAAKmJ,OAAO9D,MACxB,MAAO,CACLE,KAAMtE,EAAKQ,SACXpN,KAAM2L,KAAKyJ,YACX7O,OAAQoF,KAAK6I,YAAY7E,EAAUS,OAAQzE,KAAK8I,mBAAkB,IAClEvJ,IAAKS,KAAKT,IAAI3C,KAalB4M,EAAO6B,cAAgB,WACrB,IAAIzO,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAK6I,YAAY7E,EAAUQ,QAC3B,IAAIsH,EAAmB9L,KAAK+L,sBAAsB,MAElD,OAAKD,GAAoB9L,KAAK6J,KAAK7F,EAAU7C,MACpC,CACLoE,KAAMtE,EAAKS,gBACXrN,KAAM2L,KAAKgM,oBACX1B,WAAYtK,KAAK2K,iBAAgB,GACjCpL,IAAKS,KAAKT,IAAI3C,IAIX,CACL2I,KAAMtE,EAAKU,gBACXsK,cAAeH,EAAmB9L,KAAKkM,sBAAmB1Q,EAC1D8O,WAAYtK,KAAK2K,iBAAgB,GACjCJ,aAAcvK,KAAKwK,oBACnBjL,IAAKS,KAAKT,IAAI3C,KAWlB4M,EAAOO,wBAA0B,WAC/B,IAAInN,EAAQoD,KAAKmJ,OAAO9D,MAKxB,OAJArF,KAAKmM,cAAc,YAIfnM,KAAKuJ,SAAS6C,8BACT,CACL7G,KAAMtE,EAAKW,oBACXvN,KAAM2L,KAAKgM,oBACX3B,oBAAqBrK,KAAK0K,2BAC1BuB,eAAgBjM,KAAKmM,cAAc,MAAOnM,KAAKkM,kBAC/C5B,WAAYtK,KAAK2K,iBAAgB,GACjCJ,aAAcvK,KAAKwK,oBACnBjL,IAAKS,KAAKT,IAAI3C,IAIX,CACL2I,KAAMtE,EAAKW,oBACXvN,KAAM2L,KAAKgM,oBACXC,eAAgBjM,KAAKmM,cAAc,MAAOnM,KAAKkM,kBAC/C5B,WAAYtK,KAAK2K,iBAAgB,GACjCJ,aAAcvK,KAAKwK,oBACnBjL,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOwC,kBAAoB,WACzB,GAAgC,OAA5BhM,KAAKmJ,OAAO9D,MAAMzK,MACpB,MAAMoF,KAAKmK,aAGb,OAAOnK,KAAKyJ,aAuBdD,EAAOV,kBAAoB,SAA2B4C,GACpD,IAAIrG,EAAQrF,KAAKmJ,OAAO9D,MAExB,OAAQA,EAAME,MACZ,KAAKvB,EAAUY,UACb,OAAO5E,KAAKqM,UAAUX,GAExB,KAAK1H,EAAUc,QACb,OAAO9E,KAAKsM,YAAYZ,GAE1B,KAAK1H,EAAUlC,IAGb,OAFA9B,KAAKmJ,OAAOE,UAEL,CACL9D,KAAMtE,EAAKa,IACXlH,MAAOyK,EAAMzK,MACb2E,IAAKS,KAAKT,IAAI8F,IAGlB,KAAKrB,EAAUjC,MAGb,OAFA/B,KAAKmJ,OAAOE,UAEL,CACL9D,KAAMtE,EAAKc,MACXnH,MAAOyK,EAAMzK,MACb2E,IAAKS,KAAKT,IAAI8F,IAGlB,KAAKrB,EAAUhC,OACf,KAAKgC,EAAUiB,aACb,OAAOjF,KAAKuM,qBAEd,KAAKvI,EAAU7C,KACb,MAAoB,SAAhBkE,EAAMzK,OAAoC,UAAhByK,EAAMzK,OAClCoF,KAAKmJ,OAAOE,UAEL,CACL9D,KAAMtE,EAAKgB,QACXrH,MAAuB,SAAhByK,EAAMzK,MACb2E,IAAKS,KAAKT,IAAI8F,KAES,SAAhBA,EAAMzK,OACfoF,KAAKmJ,OAAOE,UAEL,CACL9D,KAAMtE,EAAKiB,KACX3C,IAAKS,KAAKT,IAAI8F,MAIlBrF,KAAKmJ,OAAOE,UAEL,CACL9D,KAAMtE,EAAKkB,KACXvH,MAAOyK,EAAMzK,MACb2E,IAAKS,KAAKT,IAAI8F,KAGlB,KAAKrB,EAAUI,OACb,IAAKsH,EACH,OAAO1L,KAAKgL,gBAMlB,MAAMhL,KAAKmK,cAGbX,EAAO+C,mBAAqB,WAC1B,IAAIlH,EAAQrF,KAAKmJ,OAAO9D,MAIxB,OAFArF,KAAKmJ,OAAOE,UAEL,CACL9D,KAAMtE,EAAKe,OACXpH,MAAOyK,EAAMzK,MACb4R,MAAOnH,EAAME,OAASvB,EAAUiB,aAChC1F,IAAKS,KAAKT,IAAI8F,KAUlBmE,EAAO6C,UAAY,SAAmBX,GACpC,IAAIe,EAAQzM,KAERpD,EAAQoD,KAAKmJ,OAAO9D,MAMxB,MAAO,CACLE,KAAMtE,EAAKmB,KACXsK,OAAQ1M,KAAK2M,IAAI3I,EAAUY,WANlB,WACT,OAAO6H,EAAM3D,kBAAkB4C,KAKa1H,EAAUa,WACtDtF,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAO8C,YAAc,SAAqBZ,GACxC,IAAIkB,EAAS5M,KAETpD,EAAQoD,KAAKmJ,OAAO9D,MAMxB,MAAO,CACLE,KAAMtE,EAAKoB,OACXwK,OAAQ7M,KAAK2M,IAAI3I,EAAUc,SANlB,WACT,OAAO8H,EAAOE,iBAAiBpB,KAKW1H,EAAUgB,SACpDzF,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOsD,iBAAmB,SAA0BpB,GAClD,IAAI9O,EAAQoD,KAAKmJ,OAAO9D,MACpBhR,EAAO2L,KAAKyJ,YAEhB,OADAzJ,KAAK6I,YAAY7E,EAAUS,OACpB,CACLc,KAAMtE,EAAKqB,aACXjO,KAAMA,EACNuG,MAAOoF,KAAK8I,kBAAkB4C,GAC9BnM,IAAKS,KAAKT,IAAI3C,KASlB4M,EAAOmB,gBAAkB,SAAyBe,GAGhD,IAFA,IAAIpB,EAAa,GAEVtK,KAAK6J,KAAK7F,EAAUW,KACzB2F,EAAWxM,KAAKkC,KAAK+M,eAAerB,IAGtC,OAAOpB,GAOTd,EAAOuD,eAAiB,SAAwBrB,GAC9C,IAAI9O,EAAQoD,KAAKmJ,OAAO9D,MAExB,OADArF,KAAK6I,YAAY7E,EAAUW,IACpB,CACLY,KAAMtE,EAAKsB,UACXlO,KAAM2L,KAAKyJ,YACXlO,UAAWyE,KAAKyL,eAAeC,GAC/BnM,IAAKS,KAAKT,IAAI3C,KAYlB4M,EAAOR,mBAAqB,WAC1B,IACI1Q,EADAsE,EAAQoD,KAAKmJ,OAAO9D,MAexB,OAZIrF,KAAKkL,oBAAoBlH,EAAUY,YACrCtM,EAAO0H,KAAKgJ,qBACZhJ,KAAK6I,YAAY7E,EAAUa,WAC3BvM,EAAO,CACLiN,KAAMtE,EAAKwB,UACXnK,KAAMA,EACNiH,IAAKS,KAAKT,IAAI3C,KAGhBtE,EAAO0H,KAAKkM,iBAGVlM,KAAKkL,oBAAoBlH,EAAUG,MAC9B,CACLoB,KAAMtE,EAAKyB,cACXpK,KAAMA,EACNiH,IAAKS,KAAKT,IAAI3C,IAIXtE,GAOTkR,EAAO0C,eAAiB,WACtB,IAAItP,EAAQoD,KAAKmJ,OAAO9D,MACxB,MAAO,CACLE,KAAMtE,EAAKuB,WACXnO,KAAM2L,KAAKyJ,YACXlK,IAAKS,KAAKT,IAAI3C,KAoBlB4M,EAAOQ,0BAA4B,WAEjC,IAAIgD,EAAehN,KAAKkK,kBAAoBlK,KAAKmJ,OAAO7D,YAActF,KAAKmJ,OAAO9D,MAElF,GAAI2H,EAAazH,OAASvB,EAAU7C,KAClC,OAAQ6L,EAAapS,OACnB,IAAK,SACH,OAAOoF,KAAKiN,wBAEd,IAAK,SACH,OAAOjN,KAAKkN,4BAEd,IAAK,OACH,OAAOlN,KAAKmN,4BAEd,IAAK,YACH,OAAOnN,KAAKoN,+BAEd,IAAK,QACH,OAAOpN,KAAKqN,2BAEd,IAAK,OACH,OAAOrN,KAAKsN,0BAEd,IAAK,QACH,OAAOtN,KAAKuN,iCAEd,IAAK,YACH,OAAOvN,KAAKwN,2BAIlB,MAAMxN,KAAKmK,WAAW6C,IAGxBxD,EAAOU,gBAAkB,WACvB,OAAOlK,KAAK6J,KAAK7F,EAAUhC,SAAWhC,KAAK6J,KAAK7F,EAAUiB,eAO5DuE,EAAOiE,iBAAmB,WACxB,GAAIzN,KAAKkK,kBACP,OAAOlK,KAAKuM,sBAQhB/C,EAAOyD,sBAAwB,WAC7B,IAAIrQ,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnB,IAAI7B,EAAatK,KAAK2K,iBAAgB,GAClC+C,EAAiB1N,KAAK2J,KAAK3F,EAAUc,QAAS9E,KAAK2N,6BAA8B3J,EAAUgB,SAC/F,MAAO,CACLO,KAAMtE,EAAK0B,kBACX2H,WAAYA,EACZoD,eAAgBA,EAChBnO,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOmE,6BAA+B,WACpC,IAAI/Q,EAAQoD,KAAKmJ,OAAO9D,MACpB+E,EAAYpK,KAAKyK,qBACrBzK,KAAK6I,YAAY7E,EAAUS,OAC3B,IAAInM,EAAO0H,KAAKkM,iBAChB,MAAO,CACL3G,KAAMtE,EAAK2B,0BACXwH,UAAWA,EACX9R,KAAMA,EACNiH,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAO0D,0BAA4B,WACjC,IAAItQ,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACvBzN,KAAKmM,cAAc,UACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GACtC,MAAO,CACLpF,KAAMtE,EAAK4B,uBACXpC,YAAaA,EACbpM,KAAMA,EACNiW,WAAYA,EACZ/K,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAO2D,0BAA4B,WACjC,IAAIvQ,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACvBzN,KAAKmM,cAAc,QACnB,IAAI9X,EAAO2L,KAAKyJ,YACZmE,EAAa5N,KAAK6N,4BAClBvD,EAAatK,KAAK2K,iBAAgB,GAClCkC,EAAS7M,KAAK8N,wBAClB,MAAO,CACLvI,KAAMtE,EAAK6B,uBACXrC,YAAaA,EACbpM,KAAMA,EACNuZ,WAAYA,EACZtD,WAAYA,EACZuC,OAAQA,EACRtN,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAOqE,0BAA4B,WACjC,IAAIE,EAAQ,GAEZ,GAAI/N,KAAK+L,sBAAsB,cAAe,CAE5C/L,KAAKkL,oBAAoBlH,EAAUK,KAEnC,GACE0J,EAAMjQ,KAAKkC,KAAKkM,wBACTlM,KAAKkL,oBAAoBlH,EAAUK,MAC5CrE,KAAKuJ,SAASyE,oCAAsChO,KAAK6J,KAAK7F,EAAU7C,OAG1E,OAAO4M,GAOTvE,EAAOsE,sBAAwB,WAE7B,OAAI9N,KAAKuJ,SAAS0E,2BAA6BjO,KAAK6J,KAAK7F,EAAUc,UAAY9E,KAAKmJ,OAAO7D,YAAYC,OAASvB,EAAUgB,SACxHhF,KAAKmJ,OAAOE,UAEZrJ,KAAKmJ,OAAOE,UAEL,IAGFrJ,KAAK6K,aAAa7G,EAAUc,QAAS9E,KAAKkO,qBAAsBlK,EAAUgB,UAQnFwE,EAAO0E,qBAAuB,WAC5B,IAAItR,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACnBpZ,EAAO2L,KAAKyJ,YACZ0E,EAAOnO,KAAKoO,oBAChBpO,KAAK6I,YAAY7E,EAAUS,OAC3B,IAAInM,EAAO0H,KAAKgJ,qBACZsB,EAAatK,KAAK2K,iBAAgB,GACtC,MAAO,CACLpF,KAAMtE,EAAK8B,iBACXtC,YAAaA,EACbpM,KAAMA,EACNkH,UAAW4S,EACX7V,KAAMA,EACNgS,WAAYA,EACZ/K,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAO4E,kBAAoB,WACzB,OAAOpO,KAAK6K,aAAa7G,EAAUM,QAAStE,KAAKqO,mBAAoBrK,EAAUO,UAQjFiF,EAAO6E,mBAAqB,WAC1B,IAAIzR,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACnBpZ,EAAO2L,KAAKyJ,YAChBzJ,KAAK6I,YAAY7E,EAAUS,OAC3B,IACIwG,EADA3S,EAAO0H,KAAKgJ,qBAGZhJ,KAAKkL,oBAAoBlH,EAAUU,UACrCuG,EAAejL,KAAK8I,mBAAkB,IAGxC,IAAIwB,EAAatK,KAAK2K,iBAAgB,GACtC,MAAO,CACLpF,KAAMtE,EAAK+B,uBACXvC,YAAaA,EACbpM,KAAMA,EACNiE,KAAMA,EACN2S,aAAcA,EACdX,WAAYA,EACZ/K,IAAKS,KAAKT,IAAI3C,KASlB4M,EAAO4D,6BAA+B,WACpC,IAAIxQ,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACvBzN,KAAKmM,cAAc,aACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClCkC,EAAS7M,KAAK8N,wBAClB,MAAO,CACLvI,KAAMtE,EAAKgC,0BACXxC,YAAaA,EACbpM,KAAMA,EACNiW,WAAYA,EACZuC,OAAQA,EACRtN,IAAKS,KAAKT,IAAI3C,KASlB4M,EAAO6D,yBAA2B,WAChC,IAAIzQ,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACvBzN,KAAKmM,cAAc,SACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClCoD,EAAQ/N,KAAKsO,wBACjB,MAAO,CACL/I,KAAMtE,EAAKiC,sBACXzC,YAAaA,EACbpM,KAAMA,EACNiW,WAAYA,EACZyD,MAAOA,EACPxO,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAO8E,sBAAwB,WAC7B,IAAIP,EAAQ,GAEZ,GAAI/N,KAAKkL,oBAAoBlH,EAAUU,QAAS,CAE9C1E,KAAKkL,oBAAoBlH,EAAUe,MAEnC,GACEgJ,EAAMjQ,KAAKkC,KAAKkM,wBACTlM,KAAKkL,oBAAoBlH,EAAUe,OAG9C,OAAOgJ,GAQTvE,EAAO8D,wBAA0B,WAC/B,IAAI1Q,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACvBzN,KAAKmM,cAAc,QACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClC+B,EAAS1M,KAAKuO,4BAClB,MAAO,CACLhJ,KAAMtE,EAAKkC,qBACX1C,YAAaA,EACbpM,KAAMA,EACNiW,WAAYA,EACZoC,OAAQA,EACRnN,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAO+E,0BAA4B,WACjC,OAAOvO,KAAK6K,aAAa7G,EAAUc,QAAS9E,KAAKwO,yBAA0BxK,EAAUgB,UASvFwE,EAAOgF,yBAA2B,WAChC,IAAI5R,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACnBpZ,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GACtC,MAAO,CACLpF,KAAMtE,EAAKmC,sBACX3C,YAAaA,EACbpM,KAAMA,EACNiW,WAAYA,EACZ/K,IAAKS,KAAKT,IAAI3C,KASlB4M,EAAO+D,+BAAiC,WACtC,IAAI3Q,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACvBzN,KAAKmM,cAAc,SACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClCkC,EAAS7M,KAAKyO,6BAClB,MAAO,CACLlJ,KAAMtE,EAAKoC,6BACX5C,YAAaA,EACbpM,KAAMA,EACNiW,WAAYA,EACZuC,OAAQA,EACRtN,IAAKS,KAAKT,IAAI3C,KAQlB4M,EAAOiF,2BAA6B,WAClC,OAAOzO,KAAK6K,aAAa7G,EAAUc,QAAS9E,KAAKqO,mBAAoBrK,EAAUgB,UAiBjFwE,EAAOS,yBAA2B,WAChC,IAAI+C,EAAehN,KAAKmJ,OAAO7D,YAE/B,GAAI0H,EAAazH,OAASvB,EAAU7C,KAClC,OAAQ6L,EAAapS,OACnB,IAAK,SACH,OAAOoF,KAAK0O,uBAEd,IAAK,SACH,OAAO1O,KAAK2O,2BAEd,IAAK,OACH,OAAO3O,KAAK4O,2BAEd,IAAK,YACH,OAAO5O,KAAK6O,8BAEd,IAAK,QACH,OAAO7O,KAAK8O,0BAEd,IAAK,OACH,OAAO9O,KAAK+O,yBAEd,IAAK,QACH,OAAO/O,KAAKgP,gCAIlB,MAAMhP,KAAKmK,WAAW6C,IASxBxD,EAAOkF,qBAAuB,WAC5B,IAAI9R,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnBnM,KAAKmM,cAAc,UACnB,IAAI7B,EAAatK,KAAK2K,iBAAgB,GAClC+C,EAAiB1N,KAAK6K,aAAa7G,EAAUc,QAAS9E,KAAK2N,6BAA8B3J,EAAUgB,SAEvG,GAA0B,IAAtBsF,EAAWtU,QAA0C,IAA1B0X,EAAe1X,OAC5C,MAAMgK,KAAKmK,aAGb,MAAO,CACL5E,KAAMtE,EAAKsC,iBACX+G,WAAYA,EACZoD,eAAgBA,EAChBnO,IAAKS,KAAKT,IAAI3C,KASlB4M,EAAOmF,yBAA2B,WAChC,IAAI/R,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnBnM,KAAKmM,cAAc,UACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAEtC,GAA0B,IAAtBL,EAAWtU,OACb,MAAMgK,KAAKmK,aAGb,MAAO,CACL5E,KAAMtE,EAAKuC,sBACXnP,KAAMA,EACNiW,WAAYA,EACZ/K,IAAKS,KAAKT,IAAI3C,KAWlB4M,EAAOoF,yBAA2B,WAChC,IAAIhS,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnBnM,KAAKmM,cAAc,QACnB,IAAI9X,EAAO2L,KAAKyJ,YACZmE,EAAa5N,KAAK6N,4BAClBvD,EAAatK,KAAK2K,iBAAgB,GAClCkC,EAAS7M,KAAK8N,wBAElB,GAA0B,IAAtBF,EAAW5X,QAAsC,IAAtBsU,EAAWtU,QAAkC,IAAlB6W,EAAO7W,OAC/D,MAAMgK,KAAKmK,aAGb,MAAO,CACL5E,KAAMtE,EAAKwC,sBACXpP,KAAMA,EACNuZ,WAAYA,EACZtD,WAAYA,EACZuC,OAAQA,EACRtN,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAOqF,4BAA8B,WACnC,IAAIjS,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnBnM,KAAKmM,cAAc,aACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClCkC,EAAS7M,KAAK8N,wBAElB,GAA0B,IAAtBxD,EAAWtU,QAAkC,IAAlB6W,EAAO7W,OACpC,MAAMgK,KAAKmK,aAGb,MAAO,CACL5E,KAAMtE,EAAKyC,yBACXrP,KAAMA,EACNiW,WAAYA,EACZuC,OAAQA,EACRtN,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAOsF,wBAA0B,WAC/B,IAAIlS,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnBnM,KAAKmM,cAAc,SACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClCoD,EAAQ/N,KAAKsO,wBAEjB,GAA0B,IAAtBhE,EAAWtU,QAAiC,IAAjB+X,EAAM/X,OACnC,MAAMgK,KAAKmK,aAGb,MAAO,CACL5E,KAAMtE,EAAK0C,qBACXtP,KAAMA,EACNiW,WAAYA,EACZyD,MAAOA,EACPxO,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAOuF,uBAAyB,WAC9B,IAAInS,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnBnM,KAAKmM,cAAc,QACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClC+B,EAAS1M,KAAKuO,4BAElB,GAA0B,IAAtBjE,EAAWtU,QAAkC,IAAlB0W,EAAO1W,OACpC,MAAMgK,KAAKmK,aAGb,MAAO,CACL5E,KAAMtE,EAAK2C,oBACXvP,KAAMA,EACNiW,WAAYA,EACZoC,OAAQA,EACRnN,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAOwF,8BAAgC,WACrC,IAAIpS,EAAQoD,KAAKmJ,OAAO9D,MACxBrF,KAAKmM,cAAc,UACnBnM,KAAKmM,cAAc,SACnB,IAAI9X,EAAO2L,KAAKyJ,YACZa,EAAatK,KAAK2K,iBAAgB,GAClCkC,EAAS7M,KAAKyO,6BAElB,GAA0B,IAAtBnE,EAAWtU,QAAkC,IAAlB6W,EAAO7W,OACpC,MAAMgK,KAAKmK,aAGb,MAAO,CACL5E,KAAMtE,EAAK4C,4BACXxP,KAAMA,EACNiW,WAAYA,EACZuC,OAAQA,EACRtN,IAAKS,KAAKT,IAAI3C,KASlB4M,EAAOgE,yBAA2B,WAChC,IAAI5Q,EAAQoD,KAAKmJ,OAAO9D,MACpB5E,EAAcT,KAAKyN,mBACvBzN,KAAKmM,cAAc,aACnBnM,KAAK6I,YAAY7E,EAAUW,IAC3B,IAAItQ,EAAO2L,KAAKyJ,YACZ0E,EAAOnO,KAAKoO,oBACZa,EAAajP,KAAK+L,sBAAsB,cAC5C/L,KAAKmM,cAAc,MACnB,IAAIhM,EAAYH,KAAKkP,0BACrB,MAAO,CACL3J,KAAMtE,EAAKqC,qBACX7C,YAAaA,EACbpM,KAAMA,EACNkH,UAAW4S,EACXc,WAAYA,EACZ9O,UAAWA,EACXZ,IAAKS,KAAKT,IAAI3C,KAUlB4M,EAAO0F,wBAA0B,WAE/BlP,KAAKkL,oBAAoBlH,EAAUe,MACnC,IAAI5E,EAAY,GAEhB,GACEA,EAAUrC,KAAKkC,KAAKmP,gCACbnP,KAAKkL,oBAAoBlH,EAAUe,OAE5C,OAAO5E,GA+BTqJ,EAAO2F,uBAAyB,WAC9B,IAAIvS,EAAQoD,KAAKmJ,OAAO9D,MACpBhR,EAAO2L,KAAKyJ,YAEhB,QAAsCjO,IAAlCqM,EAAkBxT,EAAKuG,OACzB,OAAOvG,EAGT,MAAM2L,KAAKmK,WAAWvN,IASxB4M,EAAOjK,IAAM,SAAa6P,GACxB,IAAKpP,KAAKuJ,SAAS8F,WACjB,OAAO,IAAIC,EAAIF,EAAYpP,KAAKmJ,OAAO/D,UAAWpF,KAAKmJ,OAAOhN,SAQlEqN,EAAOK,KAAO,SAActE,GAC1B,OAAOvF,KAAKmJ,OAAO9D,MAAME,OAASA,GAQpCiE,EAAOX,YAAc,SAAqBtD,GACxC,IAAIF,EAAQrF,KAAKmJ,OAAO9D,MAExB,GAAIA,EAAME,OAASA,EAGjB,OAFAvF,KAAKmJ,OAAOE,UAELhE,EAGT,MAAM7E,EAAYR,KAAKmJ,OAAOhN,OAAQkJ,EAAMzI,MAAO,YAAYtG,OAAOiP,EAAM,YAAYjP,OAAOiZ,EAAalK,MAQ9GmE,EAAO0B,oBAAsB,SAA6B3F,GACxD,IAAIF,EAAQrF,KAAKmJ,OAAO9D,MAExB,GAAIA,EAAME,OAASA,EAGjB,OAFAvF,KAAKmJ,OAAOE,UAELhE,GAWXmE,EAAO2C,cAAgB,SAAuBvR,GAC5C,IAAIyK,EAAQrF,KAAKmJ,OAAO9D,MAExB,GAAIA,EAAME,OAASvB,EAAU7C,MAAQkE,EAAMzK,QAAUA,EAGnD,MAAM4F,EAAYR,KAAKmJ,OAAOhN,OAAQkJ,EAAMzI,MAAO,aAActG,OAAOsE,EAAO,aAActE,OAAOiZ,EAAalK,KAFjHrF,KAAKmJ,OAAOE,WAWhBG,EAAOuC,sBAAwB,SAA+BnR,GAC5D,IAAIyK,EAAQrF,KAAKmJ,OAAO9D,MAExB,OAAIA,EAAME,OAASvB,EAAU7C,MAAQkE,EAAMzK,QAAUA,IACnDoF,KAAKmJ,OAAOE,WAEL,IAWXG,EAAOW,WAAa,SAAoBqF,GACtC,IAAInK,EAAQmK,GAAWxP,KAAKmJ,OAAO9D,MACnC,OAAO7E,EAAYR,KAAKmJ,OAAOhN,OAAQkJ,EAAMzI,MAAO,cAActG,OAAOiZ,EAAalK,MAUxFmE,EAAOmD,IAAM,SAAa8C,EAAUC,EAASC,GAC3C3P,KAAK6I,YAAY4G,GAGjB,IAFA,IAAI3Q,EAAQ,IAEJkB,KAAKkL,oBAAoByE,IAC/B7Q,EAAMhB,KAAK4R,EAAQnZ,KAAKyJ,OAG1B,OAAOlB,GAWT0K,EAAOqB,aAAe,SAAsB4E,EAAUC,EAASC,GAC7D,GAAI3P,KAAKkL,oBAAoBuE,GAAW,CACtC,IAAI3Q,EAAQ,GAEZ,GACEA,EAAMhB,KAAK4R,EAAQnZ,KAAKyJ,cAChBA,KAAKkL,oBAAoByE,IAEnC,OAAO7Q,EAGT,MAAO,IAUT0K,EAAOG,KAAO,SAAc8F,EAAUC,EAASC,GAC7C3P,KAAK6I,YAAY4G,GACjB,IAAI3Q,EAAQ,GAEZ,GACEA,EAAMhB,KAAK4R,EAAQnZ,KAAKyJ,cAChBA,KAAKkL,oBAAoByE,IAEnC,OAAO7Q,GAGFmK,EAr6CT,GAw6CA,SAASqG,EAAIF,EAAYQ,EAAUzT,GACjC6D,KAAKpD,MAAQwS,EAAWxS,MACxBoD,KAAK2F,IAAMiK,EAASjK,IACpB3F,KAAKoP,WAAaA,EAClBpP,KAAK4P,SAAWA,EAChB5P,KAAK7D,OAASA,EAchB,SAASoT,EAAalK,GACpB,IAAIzK,EAAQyK,EAAMzK,MAClB,OAAOA,EAAQ,GAAGtE,OAAO+O,EAAME,KAAM,MAAOjP,OAAOsE,EAAO,KAAQyK,EAAME,KAZ1EnK,EAAakU,GAAK,WAChB,MAAO,CACL1S,MAAOoD,KAAKpD,MACZ+I,IAAK3F,KAAK2F,S,mBCz+Cd9O,EAAOC,QAJP,SAA0B+Y,GACxB,GAAI9T,OAAOC,YAAY1E,OAAOuY,IAAkD,uBAAzCvY,OAAOjB,UAAUoF,SAASlF,KAAKsZ,GAAgC,OAAOzZ,MAAM0Z,KAAKD,K,oyCCC1H,IA+Ce1b,EA/CC,CACfC,WAAY,GAEZE,IAAK,CAEJC,O,MAAQD,GAAF,OC8FOyb,IA/FO,WAAO,IACrBC,EAA2BC,YAAYC,EAAoB5b,IAAIC,QAD3C,GAInB4E,EADyBgX,cAAzBhX,KACAA,KAsBFiX,EAAc,SAAC5I,GACpB,IAAM6I,EAAI,GACJ1Q,EAAO6H,EAAIlQ,OAAOC,KAAKiQ,GAAK,GASlC,OAPI7H,EAAK3J,OAAS,GACjB2J,EAAK3B,KAAI,SAACsS,GAET,OADAD,EAAEC,GAAsB,iBAAT9I,EAAE8I,IAAmB9I,EAAE8I,GAAO9I,EAAE8I,GAAG1V,OAAS,KAAQ4M,EAAE8I,IAC9D,KAIFD,GAGFE,EAA8B,SAACC,GACpC,IAAMhJ,EAAI4I,EAAYI,IAAerX,EAGrC,OAAOuE,KAAK+S,MAAsF,IAA/E/S,KAAKgT,IA9Bb,SAACC,EAAeC,EAAkBC,GAI7C,GAAsB,IAAlBF,EAAuB,CAC1B,IAAMG,EAAC,SAAI,EAAIH,EAAkBC,GACjC,OAASD,GALU,EAKsBG,EAAID,MAAqB,EAAIC,IAAM,EAJhE,EAIoEH,IAGjF,OAAO,EAqBqBI,CAAKC,KAAsB,GAAyB,GAArBxJ,EAAEhN,iBAAuBgN,EAAEjN,UAAmB,KAgD1G,MAAO,CAAEgW,8BAA6BU,cA7ChB,SAACT,EAAYU,QAAyB,IAAzBA,OAAe,GACjD,IAAM1J,EAAIgJ,EAAU,iBAAQrX,EAAR,GAAiBiX,EAAYI,IAAgBrX,EAEjE,GAAIqO,EAAE1P,eAAgB,CACrB,IAAMqZ,EAAO3J,EAAEzP,aAAe,GAAwB,QAAnByP,EAAEzP,cAA0ByP,EAAExP,WAAa,GAAsB,QAAjBwP,EAAExP,WAc/EoZ,EAA4B,QAAjB5J,EAAExP,WAAuBqZ,OAAO7J,EAAExP,YAAc,EAC3DsZ,EAAiC,QAAnB9J,EAAEzP,aAAyBsZ,OAAO7J,EAAEzP,cAAgB,EAClEwZ,EAbS,CACdC,gBAAe,CACdC,OAAQ,EACRC,IAAK,KAENC,gBAAe,CACdF,OAAQ,EACRC,IAAK,MAMiBlK,EAAEvP,SAAW,GAE/B2Z,EAAoBT,GAAQG,EAAcF,GAAYG,EAASE,OAAUF,EAASG,IAAM,EAIxFnX,EAASiN,EAAE1P,gBArBD,IAqB6B8Z,GACvCrY,EAAqBgX,EAA4B/I,GAIjDqK,EAAStY,GAAsBgB,EAGrC,OAAqB,IAAjB2W,EACI,CAAEW,SAAQtY,qBAAoBgB,UAI/BsX,EAGR,OAAO,GAG6CzB,cAAa0B,aAtF7C,SAACC,GACrB/B,EAAwB,CACvB+B,YACAC,QAASC,YAAW,iBACpBC,YAAa,Y,gHCZT,SAASC,EAAcrd,GAC7B,IAAMiB,EALA,SAAkBjB,GACxB,SAAQA,IAASA,EAAMsd,cAAc,GAAGC,WAAYvd,EAAMsd,cAAc,GAAGC,SAI/DC,CAASxd,GAErB,OAAIiB,GAAOA,EAAIwc,UACPxc,EAAIwc,UAAUne,WAGf,KAGD,IAIMoe,EAAa,SAACC,EAAaC,GACvC,YADwD,IAAjBA,MAAU,IAC1C,OAAP,QAAS,eAAgBD,GAAgBC,IAG7BT,EAAa,SAACQ,EAAaT,GACvC,YADwD,IAAjBA,MAAU,IAC1C,OAAP,QAASU,QAASF,EAAWC,IAAiBT,K,mBCb/Cnb,EAAOC,QAVP,SAA4B6b,GAC1B,GAAIvc,MAAMgJ,QAAQuT,GAAM,CACtB,IAAK,IAAI/b,EAAI,EAAGgc,EAAO,IAAIxc,MAAMuc,EAAI3c,QAASY,EAAI+b,EAAI3c,OAAQY,IAC5Dgc,EAAKhc,GAAK+b,EAAI/b,GAGhB,OAAOgc,K,qBCNX,IAAIC,EAAiB,EAAQ,QAEzBC,EAAuB,EAAQ,QAE/BC,EAAkB,EAAQ,QAM9Blc,EAAOC,QAJP,SAAwB6b,EAAK/b,GAC3B,OAAOic,EAAeF,IAAQG,EAAqBH,EAAK/b,IAAMmc,M,qBCPhElc,EAAOC,QAAU,IAA0B,kE,4JCA9Bkc,EAAa,SAACC,EAAMhc,EAASyH,GACzC,IAAMwU,EAAkB,MAATD,EAAgB,MAAQ,IAAIzd,OAAOyd,EAAM,KACxD,OAAOvU,EAAIzH,QAAQic,EAAOjc,IAGdkc,EAAc,SAACC,GAC3B,QAAU5X,IAAN4X,GAAyB,MAANA,GAAmB,KAANA,EAAU,CAC7C,IAAIxY,EAAQwY,EAAE3X,WASd,OAN4B,IAAxBb,EAAM/C,QAAQ,OACjB+C,EAAQoY,EAAW,IAAK,GAAIpY,IAIXyY,EAAazY,EAAO,EAAG,IAAK,KAI/C,OAAO,GAQKyY,EAAe,SAAC/d,EAAQge,EAAUC,EAAUC,GACxD,IAN0BC,EAAGC,EACvBpD,EAKAqD,EAAKre,EAAO2B,QAAQ,gBAAiB,IAErC2c,EAAOC,UAAUF,IAAWA,EAAL,EACvBG,EAAQD,UAAUP,GAAgB5V,KAAKgT,IAAI4C,GAAb,EAC9BS,OAA+B,IAAjBP,EAAgC,IAAMA,EACpDQ,OAA2B,IAAbT,EAA4B,IAAMA,EAIhDU,GADIH,GAdgBL,EAcEG,EAdCF,EAcII,EAb3BxD,EAAC,SAAG,GAAMoD,IACRhW,KAAK+S,MAAMgD,EAAInD,GAAKA,GAAG4D,QAAQR,IAYEhW,KAAK+S,MAAMmD,IACxCnY,WAAW7F,MAAM,KAW7B,OATIqe,EAAE,GAAGje,OAAS,IACjBie,EAAE,GAAKA,EAAE,GAAGhd,QAAQ,0BAA2B8c,KAG3CE,EAAE,IAAM,IAAIje,OAAS8d,IACzBG,EAAE,GAAKA,EAAE,IAAM,GACfA,EAAE,IAAM,IAAI7d,MAAM0d,EAAOG,EAAE,GAAGje,OAAS,GAAGF,KAAK,MAGzCme,EAAEne,KAAKke,K,oCChDf,OAwBe7f,UAtBC,CACfC,WAAY,CACXmG,OAAQ,CACP9F,UAAU,EACVC,UAAW,MAGZ8F,iBAAkB,CACjB/F,UAAU,EACVC,UAAW,MAGZ+F,KAAM,CACLhG,UAAU,EACVC,UAAW,KACXyf,WAAW,IAIb7f,IAAK,O,kCCnBN,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAERuC,EAAOC,QAAU,SAAU4H,GACzB,OAAO0V,mBAAmB1V,GAAKzH,QAAQ,YAAY,SAAUod,GAC3D,MAAO,IAAI/d,OAAO+d,EAAE9N,WAAW,GAAG9K,SAAS,IAAI0K,oB,kCCZnD,kCAAO,IAAMmO,EAAqB,SAACC,EAAWC,GAC7C,GAAID,GAAaC,EAAKD,GAAY,CACjC,IAAME,EAASD,EAAKD,GAAWG,QAE3BD,IACHA,EAAOE,QACPC,OAAOC,SAAS,CAAEC,IAAOL,EAAOM,wBAAwBD,IAAMF,OAAOI,YAAe,GAAKC,SAAU,e,qBCNtG,IAAIC,EAAoB,EAAQ,QAE5BC,EAAkB,EAAQ,QAE1BC,EAAoB,EAAQ,QAMhCve,EAAOC,QAJP,SAA4B6b,GAC1B,OAAOuC,EAAkBvC,IAAQwC,EAAgBxC,IAAQyC,M,0FCJ5C,SAASC,EAAe1C,EAAK/b,GAC1C,OCJa,SAAyB+b,GACtC,GAAIvc,MAAMgJ,QAAQuT,GAAM,OAAOA,EDGxB,CAAeA,IEJT,SAA+BA,EAAK/b,GACjD,GAAMmF,OAAOC,YAAY1E,OAAOqb,IAAgD,uBAAxCrb,OAAOjB,UAAUoF,SAASlF,KAAKoc,GAAvE,CAIA,IAAI2C,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKja,EAET,IACE,IAAK,IAAiCka,EAA7BC,EAAKhD,EAAI5W,OAAOC,cAAmBuZ,GAAMG,EAAKC,EAAGnQ,QAAQoQ,QAChEN,EAAKxX,KAAK4X,EAAG9a,QAEThE,GAAK0e,EAAKtf,SAAWY,GAH8C2e,GAAK,IAK9E,MAAOxf,GACPyf,GAAK,EACLC,EAAK1f,EACL,QACA,IACOwf,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,GFvBuB,CAAqB3C,EAAK/b,IGJ3C,WACb,MAAM,IAAII,UAAU,wDHG0C,G,8CIGrD,EAAsB,SAA6B6e,GAC5D,iBAAOA,EAAOjb,QAEL,EAAiB,SAAwBU,EAAIwa,GACtD,IAAIlZ,EAAQ,MACRiZ,EAAS,GAOb,OADAA,EAAOjb,MAAQ,KAJJ,SAASmb,IAClB,MAAQnZ,GAASkZ,EAAQxa,EAAG/E,KAAK,MAAQsf,EAAOjb,MAAQ,IAAImb,MAIvDF,GClBLG,EAAY,IAAMA,UAClBC,EAAc,IAAMA,YACpBC,EAAW,IAAMA,SACjBC,EAAS,IAAMA,OAER,EAAsB,SAA6BC,GAC5D,IAAIC,EAAM9a,UAAUvF,OAAS,QAAsBwF,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC1E+a,EAAU/a,UAAUvF,OAAS,QAAsBwF,IAAjBD,UAAU,IAAmBA,UAAU,GACzEgb,EAAcJ,EAAO,MACrBK,EAAcL,EAAO,MACrBM,EAAgBN,GAAO,GACvBO,EAAO,IAAOL,EAElB,SAASjY,IACqB,OAAxBmY,EAAY7B,UACd,EAAoB6B,EAAY7B,SAChC6B,EAAY7B,QAAU,MAGI,OAAxB8B,EAAY9B,UACd,EAAoB8B,EAAY9B,SAChC8B,EAAY9B,QAAU,MAGxB+B,EAAc/B,SAAU,EAM1B,OAHAsB,GAAU,WACR,OAAO5X,IACN,CAACgY,EAAUC,IACPJ,GAAY,WACjB,IAAK,IAAIU,EAAOpb,UAAUvF,OAAQmY,EAAO,IAAI/X,MAAMugB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EzI,EAAKyI,GAAQrb,UAAUqb,GAIzB,IAAIC,EAAO7W,KAEX,SAASxB,IACP+X,EAAY7B,QAAU,KACE,OAAxB8B,EAAY9B,UAAqB+B,EAAc/B,SAAU,GACzD0B,EAAS7X,MAAMsY,EAAM1I,GAGvB,SAAS1P,IACP+X,EAAY9B,QAAU,KACtB+B,EAAc/B,SAAU,EACA,OAAxB6B,EAAY7B,SAAoB0B,EAAS7X,MAAMsY,EAAM1I,GAGvD,GAA4B,OAAxBoI,EAAY7B,QAAkB,CAChC,IAAIlP,EAAOhH,EAEP8X,IAAYG,EAAc/B,SAE5BlP,IACAiR,EAAc/B,SAAU,GAGxB6B,EAAY7B,QAAU,EAAelP,EAAMkR,QAIrB,OAAxBF,EAAY9B,SAAoB,EAAoB8B,EAAY9B,SAChE8B,EAAY9B,QAAU,EAAejW,EAAOiY,KAE7C,CAACN,EAAUC,KAELS,EAAc,SAAqBC,EAAcV,EAAKC,GAC/D,IAAIU,EAASd,EAASa,GAElBE,EAAWD,EAAO,GAEtB,MAAO,CADKA,EAAO,GACJ,EAAoBC,EAAUZ,EAAKC,KCxEhD,EAAY,IAAMN,UAElBkB,EAAW,GAEXC,EAAa,WACf,YAA0B,IAAnBvC,OAAOwC,QAAqBxC,OAAOwC,aAAiC,IAAvBxC,OAAOI,YAAyB,EAAIJ,OAAOI,aAwBlF,EArBc,WAC3B,IAAIqB,EAAM9a,UAAUvF,OAAS,QAAsBwF,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAE1E8b,EAAeP,EAA8B,oBAAXlC,OAAyB,EAAIuC,EAAYd,GAAK,GAChFiB,EAAgBjC,EAAegC,EAAc,GAC7CD,EAAUE,EAAc,GACxBC,EAAqBD,EAAc,GAEvC,SAASlZ,IACP,OAAOmZ,EAAmBJ,KAU5B,OAPA,GAAU,WACR,IAAIK,EAAepZ,EAEnB,OADAwW,OAAO6C,iBAAiB,SAAUD,GAC3B,WACL5C,OAAO8C,oBAAoB,SAAUF,MAEtCN,GACIE,G,uKCmBMO,EAtCgBC,IAAMC,MAAK,YAAoB,IAAjBC,EAAgB,EAAhBA,UAAgB,EACjB3H,cAA7B4H,EAD8C,EACpD5e,KAAsBuB,EAD8B,EAC9BA,SACtBvB,EAAuB4e,EAAvB5e,KAAMG,EAAiBye,EAAjBze,aACNjB,EAAYiB,EAAZjB,QAER,OACC,yBAAK2f,UAAcC,IAAO3e,aAAZ,IAA4B2e,IAAO5f,EAAU,UAAY,UAAzD,IAAsE4f,IAAOH,IAC1F,yBAAKI,IAA2B,OAAtB5e,EAAahB,KAAgB6f,IAAiBC,IAAmBC,IAAI,iBAC9E/e,EAAagf,OAAS,4BAAKhf,EAAagf,OACxChf,EAAad,MAAQ,yBAAK+f,wBAAyB,CAAEC,OAAQlf,EAAad,MAAQwf,UAAWC,IAAOQ,OACpGnf,EAAaof,gBAAkB,uBAAGH,wBAAyB,CAAEC,OAAQlf,EAAaof,gBAAkBV,UAAW,CAACC,IAAOU,QAASV,IAAOQ,MAAM3iB,KAAK,OAClJwD,EAAasf,SACb,2BAAOC,YAAY,IAAIC,YAAY,IAAIC,OAAO,KAC7C,+BACC,4BACC,4BAAKhkB,YAAI,cACT,4BAAKoE,EAAK3E,UAAV,IAAsB2E,EAAKxE,UAE5B,4BACC,4BAAKI,YAAI,eACT,4BAAKoE,EAAKvE,QAEX,4BACC,4BAAKG,YAAI,eACT,4BAAKoE,EAAKnE,cAIV,KACHsE,EAAa0f,SAAW,kBAAC,IAAD,CAAQC,UAAU,4BAA4BC,QAAS,CAAC,UAAW5f,EAAa0f,QAAQvgB,KAAO,YAAc,WAAW3C,KAAK,KAAMqjB,QAAS,kBAAMze,EAAS,CAAEpC,KAAM,uBAAwBgB,EAAa0f,QAAQxgB,KAAhN,IAAuNc,EAAa0f,QAAQvgB,KAAO,uBAAGuf,UAAS,QAAU1e,EAAa0f,QAAQvgB,OAAa,U,6aC5BvU,IAoKe2gB,EApKiBxB,IAAMC,MAAK,YAAuB,EAApBwB,cAAqB,IAC1DC,EAAcC,cAAdD,UACArI,EAAkBlB,cAAlBkB,cAFyD,EAGtBd,cAA7B4H,EAHmD,EAGzD5e,KAAsBuB,EAHmC,EAGnCA,SACtBvB,EAAkD4e,EAAlD5e,KAJyD,EAIP4e,EAA5Cre,MAASrB,EAJ0C,EAI1CA,QAASmB,EAJiC,EAIjCA,UAAWC,EAJsB,EAItBA,SAJsB,EAMzByc,mBAAS,IAA1CsD,EAN0D,KAM5CC,EAN4C,OAOnCvD,mBAAS,IAAhCwD,EAP0D,KAOjDC,EAPiD,OAS/BzD,oBAAS,GAApC0D,EAT0D,KAS/CC,EAT+C,KAwB3DC,EAAW,SAACxhB,GACjBghB,EAAU,KAAM,KAAP,sBAAmChhB,GAG5CoC,EAAS,CACRpC,KAAM,QACNU,QAAS,CAAEX,SAAS,EAAOc,KAAM,MAIlC,IAAMqO,EAAIrO,EAEG,YAATb,IACHkP,EAAErP,gBAAkB,KAEhBqhB,EAAaO,2BAChBvS,EAAEhN,iBAAmBgf,EAAaO,0BAG/BP,EAAaQ,iBAChBxS,EAAEjN,OAASif,EAAaQ,iBAItBxgB,EAAWA,EAAUgO,GACpByS,QAAQC,IAAI1S,IAgFlB,OA7EAwO,qBAAU,WACT,GAAI3d,EAAS,CACZihB,EAAU,KAAM,KAAP,2BAET,IAGMjJ,EAAI,CACT7V,iBAAkBrB,EAAKqB,iBACvBuf,yBAA0B,KAC1Bxf,OAAQpB,EAAKoB,OAEbyf,eAAgB,MAIXG,EAAI,CACT3f,kBAAkB,EAClBD,QAAQ,GAGT,GAAI8V,EAAE7V,kBAAoB6V,EAAE7V,iBAjBD,GAiBwC,CAClE,IAAI4f,EAAkB/J,EAAE7V,iBACxB,EAAIpE,MAnBsB,GAmBKia,EAAE7V,mBAAmBwD,KAAI,SAACqc,EAAgBzjB,GASxE,OARKyZ,EAAE7V,mBACN4f,GAAmB,EACfnJ,EAAc,OAAD,UAAM9X,EAAN,CAAYqB,iBAAkB4f,OAC9C/J,EAAE0J,yBAA2BK,EAC7BD,EAAE3f,kBAAmB,KAIhB,MAKkB,IAAvB2f,EAAE3f,mBACL6V,EAAE0J,yBAlCwB,GAoC1B,EAAI3jB,MAAMia,EAAE9V,OAAS,MAAOyD,KAAI,SAACqc,EAAgBzjB,GAChD,IAAKyZ,EAAE2J,eAAgB,CACtB,IAAM3S,EAAIgJ,EAAE9V,OAAc,IAAJ3D,EAClBqa,EAAc,OAAD,UAAM9X,EAAN,CAAYoB,OAAQ8M,OACpCgJ,EAAE2J,eAAiB3J,EAAE9V,OAAc,IAAJ3D,GAIjC,OAAO,MAKJyZ,EAAE0J,0BAA6B1J,EAAE2J,iBAAkBvgB,GAWvDogB,GAAa,GACbJ,EAAgBpJ,KAXhB5W,IAEA6f,EAAU,KAAM,KAAM,uCAGtB5e,EAAS,CACRpC,KAAM,QACNU,QAAS,CAAEX,SAAS,EAAOc,KAAM,UAOlC,CAACd,IAEJ2d,qBAAU,WACT2D,EAAW,CACVnf,iBAAmBgf,EAAaO,0BAA4BP,EAAahf,mBAAqBgf,EAAaO,yBAC3Gxf,OAASif,EAAaQ,gBAAkBR,EAAajf,SAAWif,EAAaQ,mBAE5E,CAACR,IAGH,yBAAKxB,UAAcC,IAAOve,MAAZ,IAAqBue,IAAO2B,EAAY,UAAY,WACjE,yBAAK5B,UAAWC,IAAOqC,OACtB,gCACC,4BAAKvlB,YAAI,sBAAsB,0BAAMijB,UAAWC,IAAOsC,WACvD,4BAAKxlB,YAAI,0BACT,2BAAIA,YAAI,uBAGT,yBAAKijB,UAAWC,IAAOuC,OACtB,yBAAKxC,UAAW0B,EAAQnf,OAAS0d,IAAOwC,QAAU,IACjD,8BAAO1lB,YAAI,gCACX,gCAASoe,YAAYqG,EAAaQ,gBAAkB7gB,EAAKoB,QAAzD,MACCmf,EAAQnf,QAAU,2BAAIxF,YAAI,oCAAR,KAA+Coe,YAAYha,EAAKoB,QAAhE,OAEpB,yBAAKyd,UAAW0B,EAAQlf,iBAAmByd,IAAOwC,QAAU,IAC3D,8BAAO1lB,YAAI,gCACX,gCAASykB,EAAaO,0BAA4B5gB,EAAKqB,iBAAvD,QACCkf,EAAQlf,kBAAoB,2BAAIzF,YAAI,oCAAR,KAA+CoE,EAAKqB,iBAApD,UAI/B,gCACC,kBAAC,IAAD,CAAQye,UAAU,kCAAkCC,QAAQ,OAAOC,QAAS,kBAAMW,EAAS,eAAe/kB,YAAI,2BAC9G,kBAAC,IAAD,CAAQkkB,UAAU,uBAAuBC,QAAQ,aAAaC,QAAS,kBAAMW,EAAS,aAAa/kB,YAAI,6B,mXCoH7F2lB,MApRf,SAAiB9hB,EAAmB+hB,EAAgBC,EAAiBxE,QAAU,IAA9Dxd,MAAS,eAAqD,IAA3C+hB,MAAY,SAA+B,IAA3BC,MAAa,IAEhE,IAAM7D,EAAe,GAEjB6D,GACHtjB,OAAOC,KAAKqjB,GAAY5c,KAAI,SAAC6c,GAC5B,IAAI5P,EAAe,IAGiB,IAAhC2P,EAAWC,GAAO1G,YACrBlJ,EAAe,IAGhB,IAAI6P,EAAaH,EAAUE,IAAU5P,EAMrC,OALI6P,GAAoC,iBAAfA,GAA2B1kB,MAAMgJ,QAAQ0b,KACjEA,EAAU,EAAOA,IAGlB/D,EAAa8D,GAAS,CAAEjgB,MAAOkgB,EAAYhmB,MAAO,OAC3C,KAnBqE,MAuBpDohB,mBAASa,GAA5Bpe,EAvBuE,KAuBhEse,EAvBgE,OAwB9Cf,oBAAS,GAAlC6E,EAxBuE,KAwB7DC,EAxB6D,OAyBhD9E,oBAAS,GAAhCwD,EAzBuE,KAyB9DC,EAzB8D,KA+BxEsB,EAAgBhF,uBAAY,WAcjC,OAbwB3e,OAAOC,KAAKqjB,GAAYM,MAAK,SAAC1jB,GACrD,IAAM2jB,EAAuBP,EAAWpjB,GAAK/C,SACzC2mB,EAAaziB,EAAMnB,GAAKoD,OAAS,GAC/BygB,EAAa1iB,EAAMnB,GAAK1C,OAAS,GAOvC,OAJkC,IAA9B8lB,EAAWpjB,GAAK2c,YACnBiH,EAAcziB,EAAMnB,GAAKoD,MAAM5E,OAAS,GAGjCmlB,IAAyBC,GAAeC,OAI/C,CAAC1iB,EAAOiiB,IAGLU,EAAe,SAACC,QAA+B,IAA/BA,OAAqB,GAC1C,IAAMC,EAAS,GACXC,GAAU,EAiBd,OAfAnkB,OAAOC,KAAKqjB,GAAY5c,KAAI,SAACxG,GAC5B,IAAMpD,EAAasnB,EAAclkB,EAAKmB,EAAMnB,GAAKoD,OAAS,IAO1D,OANA4gB,EAAOhkB,GAAOpD,EAAWU,OAAS,MAElB,IAAZ2mB,GAAoC,OAAhBD,EAAOhkB,KAC9BikB,GAAU,IAGJ,MAGmB,IAAvBF,GACHI,EAASH,KAGHC,GAAiBD,GAGnBE,EAAgB,SAACrnB,EAAMuG,GAC5B,IAAIwY,EAAIxY,EAER,GAAIggB,EAAWvmB,GAAO,CAAC,IAAD,EACWumB,EAAWvmB,GAAnCI,EADa,EACbA,SAAUC,EADG,EACHA,WAGiB,IAA/BkmB,EAAWvmB,GAAM8f,YACpBf,EAAKza,EAAMtE,GAAMuG,MAAM5E,OAAS,GAGjC,IAAI4lB,EAAe,GAOnB,GANInnB,IACE2e,IACJwI,EAAe7mB,YAAI,wBAIH,OAAdL,GAA2C,iBAAdA,EAChC,GAAIkG,IAAUlG,EAAUG,MAAMgnB,KAAKzI,GAElCwI,EADkBlnB,EAAVI,MAKV,MAAO,CACN8F,MAAOwY,EACPte,MAAO8mB,GAAgB,MAIzB,MAAO,CACNhhB,MAAOwY,EACPte,MAAO,OAKHgnB,EAAiB7F,uBAAY,SAAC8F,EAAGtT,QAAiB,IAAjBA,MAAU,IAAO,IAC/CgM,EAAWsH,EAAXtH,OACApgB,EAA+BogB,EAA/BpgB,KAAMuG,EAAyB6Z,EAAzB7Z,MAAOtC,EAAkBmc,EAAlBnc,KAAM0jB,EAAYvH,EAAZuH,QAErBC,GAAqC,IAAtBxT,EAAQ0L,UACzB+H,EAAqB,aAAT5jB,GAAwB2jB,EAAyBrhB,EAAVohB,EASvD,GANIE,GAAgC,iBAAbA,IACS,SAA3BA,EAASC,cAA0BD,GAAW,EACd,UAA3BA,EAASC,gBAA2BD,GAAW,IAIrDD,EAAa,CAChB,IAAM7I,EAAI8I,EACVA,EAAY9lB,MAAMgJ,QAAQzG,EAAMtE,GAAMuG,OAAUjC,EAAMtE,GAAMuG,MAAQ,GAEhEohB,EACHE,EAASpe,KAAKsV,GAEd8I,EAASE,OAAOF,EAASrkB,QAAQub,GAAI,GAIvC,IAAMhf,EAAasnB,EAAcrnB,EAAM6nB,GAEvCjF,GAAS,SAAAoF,GAAS,8BACZA,IADY,MACAhoB,GAAO,CAAEuG,MAAOshB,EAAUpnB,MAAOV,EAAWU,OAD5C,QAIF,IAAZ4kB,GACHC,GAAW,KAGV,IAEG2C,EAA0B,SAACd,GAEhC,OADkBlkB,OAAOC,KAAKikB,GAAQrd,QAAO,SAAA3G,GAAG,OAAoB,OAAhBgkB,EAAOhkB,MAC1C,IAAM,MAGlB+kB,EAAiBtG,uBAAY,SAAC8F,EAAGS,GAClCT,GAAiC,mBAArBA,EAAEU,gBACjBV,EAAEU,iBAGH,IAAIC,EAAc,GACZlB,EAASF,IAEO,iBAAXE,GACVG,EAASH,GACTkB,EAAc,CACbC,oBAAqBL,EAAwBd,GAC7C7iB,QACA6iB,YAGDkB,EAAc,GAEdplB,OAAOC,KAAKoB,GAAOqF,KAAI,SAAC6c,GAEvB,OADA6B,EAAY7B,GAASliB,EAAMkiB,GAAOjgB,OAAS,MACpC,KAGJ4hB,GACHllB,OAAOC,KAAKilB,GAAqBxe,KAAI,SAAC6c,GAErC,OADA6B,EAAY7B,GAAS2B,EAAoB3B,IAClC,MAKVzE,EAASsG,KAGP,CAAC/jB,EAAOyd,EAAU6E,IAEfU,EAAW1F,uBAAY,SAACuF,EAAQoB,GAQrC,YAR6D,IAAxBA,OAAc,GACnDtlB,OAAOC,KAAKikB,GAAQxd,KAAI,SAAC6c,GAIxB,OAHA5D,GAAS,SAAAoF,GAAS,8BACZA,IADY,MACAxB,GAAQ,CAAEjgB,MAAOyhB,EAAUxB,GAAOjgB,MAAO9F,MAAO0mB,EAAOX,IADvD,QAGX,MAGY,IAAhB+B,GACIN,EAAwBd,KAK9B,CAAC7iB,IAEEkkB,EAAgB5G,uBAAY,SAACpE,GAClC,GAAI6H,IAAY7H,IACf8H,EAAW9H,IAGI,IAAXA,GAAiB,CACpB,IAAMiL,EAAoB7B,IACtB6B,IAAsB/B,GACzBC,EAAY8B,OAMVC,EAAc9G,uBAAY,SAAC8F,GAAO,IAC/BtH,EAAiBsH,EAAjBtH,OAAQnc,EAASyjB,EAATzjB,KACRjE,EAASogB,EAATpgB,KAER4iB,GAAS,SAAAoF,GAAS,8BACZA,IADY,MACAhoB,GADA,iBACYgoB,EAAUhoB,GADtB,CAC6BsgB,MAAgB,UAATrc,IADpC,UAKb0kB,EAAc/G,uBAAY,SAAC9c,GAwBhC,OAvBA7B,OAAOC,KAAK4B,GAAM6E,KAAI,SAAC6c,GACtB,IAAIoC,EAAe9jB,EAAK0hB,IAAU,GAmBlC,OAhBIzkB,MAAMgJ,QAAQjG,EAAK0hB,MACtBoC,EAAe,GAEf9jB,EAAK0hB,GAAO7c,KAAI,SAACkf,GAMhB,OALIA,EAAG,mBACCA,EAAG,WAGXD,EAAanf,KAAKof,IACX,MAITjG,GAAS,SAAAoF,GAAS,8BACZA,IADY,MACAxB,GAAQ,CAAEjgB,MAAOqiB,GAAgB,GAAInoB,MAAO,MAD5C,QAGX,MAGD,IAEL,CAAC6D,IAqBJ,OAjBAqd,qBAAU,WACT,IAAgB,IAAZ0D,EAAkB,CACrB,IAAMoD,EAAoB7B,IAEtB6B,IAAsB/B,GACzBC,EAAY8B,MAGZ,CAACnkB,EAAOoiB,EAAUE,IAGrBjF,qBAAU,WACM,WAAXpd,GAAuBqiB,KAC1BD,GAAY,KAEX,IAEI,CAAEriB,QAAOoiB,WAAUgC,cAAajB,iBAAgBS,iBAAgBjB,eAAcgB,0BAAyBX,WAAUqB,cAAaH,kB,YCnRtI,IAsBeM,EAtBQ,SAACC,GACvB,mB,QAAA,wIACCzkB,MAAQ,CACP0kB,UAAW,MAFb,E,EAAA,G,EAAA,G,6EAAA,2BAKCC,kBAAA,WAAqB,IAAD,OACnBF,IACEG,MAAK,SAACC,GACN,EAAKvG,SAAS,CAAEoG,UAAWG,EAAIC,cARnC,EAYCC,OAAA,WAAU,IAGHC,EAFgB3d,KAAKrH,MAAnB0kB,UAGR,OAAOM,EAAI,kBAACA,EAAM3d,KAAK4d,OAAY,MAhBrC,GAAqBC,cCchBC,EAAalG,IAAMC,MAAK,YAA0D,IAAvDxjB,EAAsD,EAAtDA,KAAM0pB,EAAgD,EAAhDA,GAAIhH,EAA4C,EAA5CA,aAAciH,EAA8B,EAA9BA,aAAcC,EAAgB,EAAhBA,UAChEC,EAAYnH,EADoE,EAI9Cb,mBAAS,MAA1C5c,EAJ+E,KAMhF6kB,GANgF,KAMnEhI,iBAAO,KACpBiI,EAAejI,iBAAO,MACtBkI,EAAYlI,iBAAO,MACnB0H,EAAY1H,iBAAO,MAGC,OAAtB0H,EAAUnJ,UACbmJ,EAAUnJ,QAAU4J,GAAe,WAClC,OAAQjqB,GACR,IAAK,kBAAsB,OAAO,wDAClC,IAAK,kBAAsB,OAAO,uDAClC,IAAK,qBAAuB,OAAO,uDACnC,QAAS,OAAO,UAsBW,OAAzB+pB,EAAa1J,UAChB0J,EAAa1J,QAjBW,WACxB,OAAQrgB,GACR,IAAK,kBAAuB,OAAOkqB,EAAQ,QAA8Cd,QACzF,IAAK,kBAAuB,OAAOc,EAAQ,QAA8Cd,QACzF,IAAK,qBAAyB,OAAOc,EAAQ,QAAiDd,QAC9F,QAAS,OAAO,MAYOe,GACvBH,EAAU3J,QANkB6J,EAAQ,QAAgCd,QAShEW,EAAa1J,SAAW0J,EAAa1J,QAAQtgB,YAChDkD,OAAOC,KAAK6mB,EAAa1J,QAAQtgB,YAAY4J,KAAI,SAAC6c,GAEjD,OADAsD,EAAWzJ,QAAQmG,GAASjD,IAAM6G,aAC3B,MAKV,IAAMC,EAAkB,SAACC,EAASnnB,GACjC,GAAI4mB,EAAa1J,QAAS,CACzB,IAAMkK,EAAWR,EAAa1J,QAAQiK,IAAYP,EAAa1J,QAC/D,OAAIld,EAAYonB,EAASpnB,IAAQ,KAC1BonB,EAGR,OAAO,MAsBFC,EAAkB,SAAC1lB,GAIxB,cAF6B8kB,GAG7B,QACCA,EAAU9kB,GACV,MAED,IAAK,SACJ,GAAI8kB,EAAUrlB,OACb,OAAQqlB,EAAUrlB,QAElB,IAAK,oBACJqhB,QAAQC,IAAI,qCACZ,MAED,QACCD,QAAQC,IAAI,iCAWV4E,EAAWf,GAAyC,SAAnCM,EAAU3J,QAAQvgB,QAAQE,KAC3C0qB,EAAQV,EAAU3J,QAElBsK,EAAkBN,EAAgB,cAClCO,EAAYP,EAAgB,MAAO,UAnH6C,EAsHgEhE,EAAQoE,EAAU,SAAW,SAAUZ,EAAWc,GAtDnL,SAACrmB,IACJ,IAAboiB,EAECmE,EACHA,EAAY,CACXnN,UAAWpZ,EACXqZ,QAASC,YAAW5d,KAIrBwqB,EAAgBlmB,GAIjB2b,YAAmB3b,EAAMgkB,oBAAqBwB,EAAWzJ,YAwCnD/b,EAtH8E,EAsH9EA,MAAOokB,EAtHuE,EAsHvEA,YAAajB,EAtH0D,EAsH1DA,eAAgBS,EAtH0C,EAsH1CA,eAAgBjB,EAtH0B,EAsH1BA,aAAcgB,EAtHY,EAsHZA,wBAAyBX,EAtHb,EAsHaA,SAAUqB,EAtHvB,EAsHuBA,YAAaH,EAtHpC,EAsHoCA,cAAe9B,EAtHnD,EAsHmDA,SAGrImE,EAAc,KACd3E,GAAU,EACVphB,EAAO,KACPrE,EAAQ,KAEZ,GAAImqB,EAAW,CAAC,IAAD,EAC4BhP,YAAYgP,GAArDC,EADa,gBACE3E,EADF,EACEA,QAASphB,EADX,EACWA,KAAMrE,EADjB,EACiBA,MA/HsD,MAmI1BqqB,YAASJ,EAAMzqB,IAAIC,OAAQ,CACtFwd,UAAW,CAAEgM,MACb/L,QAAS,CAAEU,QAAS,CAAE,eAAgBqM,EAAM5qB,QAAQE,OACpD+qB,MAAON,EACPO,YAAa,iBAJGC,EAnIqE,EAmI9E/E,QAA6BgF,EAnIiD,EAmIvDpmB,KAAiBqmB,EAnIsC,EAmItCA,QA6BhD,OArBAxJ,qBAAU,WACT,IAAMjgB,EAAMoc,YAAcrd,GACtBiB,EACHue,YAAmBqH,EAAS5lB,GAAK,GAAOooB,EAAWzJ,SACzCuJ,GAAa9kB,GACvB0lB,EAAgB1lB,EAAKhF,WAGpB,CAACW,EAAOqE,IAGX6c,qBAAU,WACL8I,IACHU,KAEqB,IAAjBF,GAA0BC,GAC7BvC,EAAYuC,EAAUprB,YAGtB,CAAC4pB,EAAIwB,EAAWD,KAEE,IAAjBA,EAA8B,cAE3B,kBAACzB,EAAUnJ,QAAX,CAAmBje,MAAO,CAAEkC,QAAOqlB,eAAcyB,SAAU3D,EAAgB4D,QAAS3C,EAAa4C,OAAQ5C,GAAeoB,WAAYA,EAAWzJ,SAAW,GAAI6H,eAAgBA,EAAgBjB,aAAcA,EAAcgB,wBAAyBA,EAAyBvB,SAAUA,EAAUR,QAASA,EAASjhB,aAAcA,EAAcujB,cAAeA,EAAeG,YAAaA,OAGjYc,EAAW8B,aAAe,CACzB7B,GAAI,KACJhH,aAAc,GACdiH,aAAc,GACdC,UAAW,MAiBGH,QCrKA+B,EA/BS,SAAC,GAA6C,IAA3CC,EAA0C,EAA1CA,UAAWC,EAA+B,EAA/BA,UAAW1G,EAAoB,EAApBA,cAClCtB,EAAmB5H,cAAzBhX,KACAL,EAAwBif,EAAxBjf,KAAMO,EAAkB0e,EAAlB1e,cAMd,OAJA2c,qBAAU,WACT8J,MACE,IAGF,yBAAK9H,UAAWC,IAAO3d,MAAO0lB,MAAO,CAAEC,UAAU,eAAgBnnB,EAAO,GAAKinB,EAA7B,cAC/C,yBAAK/H,UAAcC,IAAOnf,KAAZ,IAAoBmf,IAAgB,IAATnf,EAAa,UAAY,WACjE,kBAAC,EAAD,CAAYzE,KAAK,kBAAkB0iB,aAAc,CAAExc,OAAQlB,EAAckB,OAAQC,iBAAkBnB,EAAcmB,iBAAkBC,KAAMpB,EAAcoB,MAAQwjB,UAAW,SAAAzW,GAAC,OAAI6R,EAAc,EAAG7R,OAGjM,yBAAKwQ,UAAcC,IAAOnf,KAAZ,IAAoBmf,IAAgB,IAATnf,EAAa,UAAY,WACjE,kBAAC,EAAD,CAAYzE,KAAK,kBAAkB0iB,aAAc,CAAEjf,eAAgBuB,EAAcvB,eAAgBG,OAAQoB,EAAcpB,QAAUgmB,UAAW,SAAAzW,GAAC,OAAI6R,EAAc,EAAG7R,OAGnK,yBAAKwQ,UAAcC,IAAOnf,KAAZ,IAAoBmf,IAAgB,IAATnf,EAAa,UAAY,WACjE,kBAAC,EAAD,CAAYzE,KAAK,qBAAqB4pB,UAAW,SAAAzW,GAAC,OAAI6R,EAAc,EAAG7R,SClBrE0Y,EAAmB,SAAC,GAA4B,IAA1B9I,EAAyB,EAAzBA,QAASU,EAAgB,EAAhBA,UAAgB,EACT3H,cAA7B4H,EADsC,EAC5C5e,KAAsBuB,EADsB,EACtBA,SACtBJ,EAA6Dyd,EAA7Dzd,MAAOxB,EAAsDif,EAAtDjf,KAAMS,EAAgDwe,EAAhDxe,mBAAoBN,EAA4B8e,EAA5B9e,UAAWC,EAAiB6e,EAAjB7e,aAEpD,OACC,yBAAK8e,UAAcC,IAAOkI,iBAAZ,IAAgClI,IAAOH,IACpD,yBAAKE,UAAcC,IAAOmI,WAAZ,IAA0BnI,IAAOb,EAAU,GAAKte,EAAO,EAAI,WAAa,YACrF,yBAAKkf,UAAWC,IAAOoI,UAAU,0BAAML,MAAO,CAAEM,MAAY,KAAOxnB,EAAO,GAAMwB,EAAMtE,OAAjC,QACrD,yBAAKgiB,UAAWC,IAAOsI,cAAc,8BAAOxrB,YAAI,0BAAgC,gCAASwE,EAAT,SAChF,kBAAC,IAAD,CAAQ0f,UAAU,WAAWC,QAAS,CAACjB,IAAOuI,iBAAkB,UAAWvnB,EAAUR,KAAO,aAAe,UAAWS,EAAe,WAAa,IAAIpD,KAAK,KAAMilB,SAAU7hB,EAAcigB,QAAS,kBAAMze,EAAS,CAAEpC,KAAM,kBAAmBW,EAAUT,KAAtP,IAA6PS,EAAUR,KAAO,uBAAGuf,UAAS,QAAU/e,EAAUR,OAAa,OAE5T,yBAAKuf,UAAWC,IAAOwI,MACrBnmB,EAAM0D,KAAI,SAACkf,EAAKzgB,GAAN,OAAgB,0BAAMjF,IAAK0lB,EAAKlF,UAAYvb,EAAQ,IAAO3D,EAAOmf,IAAOyI,SAAW,WAMnGR,EAAiBN,aAAe,CAC/BxI,QAAS,GAQK8I,Q,mqCCjCf,IA+Ce/rB,GA/CC,CACfC,WAAY,GAEZE,IAAK,CAEJC,OAAQD,IAAF,OCmDOqsB,GAxDM,WAAO,IACpBC,EAAS1K,oBAAS,GADC,GAqD1B,MAAO,CAAE2K,QA/CO,SAACxsB,EAAMupB,GACtB,GAAsB,oBAAXhJ,QAA0BvgB,EACpC,GAAkB,MAAdugB,OAAOkM,IACV,OAAQzsB,GAER,QACA,IAAK,WACL,IAAK,YACL,IAAK,mBACL,IAAK,WACL,IAAK,YACL,IAAK,OACJugB,OAAOkM,IAAI,QAASzsB,EAAMupB,GAC1B,MAGD,IAAK,iBACL,IAAK,YACJhJ,OAAOkM,IAAI,cAAezsB,EAAMupB,QAIjC3D,QAAQC,IAAI,+BAyBG6G,QAhBF,SAAC1sB,EAAMupB,GACtB,GAJwC,oBAAXhJ,aAAiD,IAAhBA,OAAOoM,KAItD,CACd,IAAMpoB,EAASglB,EAAMqD,aAAe,QAC9BnlB,EAAM,CACXolB,eAAgBtD,EAAMuD,eAAiB,YACvCC,YAAa/sB,EACbuG,MAAOgjB,EAAMhjB,OAGdga,OAAOoM,KAAK,QAASpoB,EAAQkD,GAGzB8kB,GAAO3G,QAAQC,IAAI7lB,EAAMuE,EAAQkD,OC2HzBulB,GA7JI,WAClB,IAAMC,EAAoB,kBAAM5jB,KAAK6jB,SAAS9lB,SAAS,IAAI+lB,UAAU,EAAG,IAAM9jB,KAAK6jB,SAAS9lB,SAAS,IAAI+lB,UAAU,EAAG,KAD9F,EAEUtL,mBAASoL,KAApCG,EAFiB,KAENC,EAFM,KAGhBb,EAAYF,KAAZE,QAHgB,EAKM3K,oBAAS,GAAhCyL,EALiB,KAKRC,EALQ,OAMU1L,mBAAS,GAApC6J,EANiB,KAMN8B,EANM,KAOjBC,EAAY5L,mBAAS6L,eAPJ,KAQmB5R,cAA7B4H,EARU,EAQhB5e,KAAsBuB,EARN,EAQMA,SACtBvB,EAAyC4e,EAAzC5e,KAAMC,EAAmC2e,EAAnC3e,WAAYN,EAAuBif,EAAvBjf,KAAMQ,EAAiBye,EAAjBze,aATR,EAUmE2W,YAAY9b,GAAQG,IAAIC,QAA5G2qB,EAViB,YAUO8C,EAVP,EAUFzH,QAA+B0H,EAV7B,EAUuB9oB,KAA0B+oB,EAVjD,EAU0CptB,MAC1DwkB,EAAcC,cAAdD,UAXgB,EAYgBvJ,cAAhCkB,EAZgB,EAYhBA,cAAea,EAZC,EAYDA,aAEjBqQ,EAAUhM,iBAAO,GAEjB2J,EAAY,WACjB8B,GAAW,IAGNQ,EAAkB,SAACppB,IACK,IAAzBM,EAAajB,SAChBqC,EAAS,CACRpC,KAAM,mBACNU,QAAQ,OAAD,QAAIX,SAAS,GAASW,MAK1BqpB,EAAU,SAAC7a,GAChB,OAAO,OAAP,UAAYrO,EAAZ,GAAqBqO,EAArB,CAAwB8a,WAAYb,EAAWtlB,OAAQ,wBAGlDomB,EAAc,SAAC/a,GAEpB9M,EAAS,CAAEpC,KAAM,uBAGjBghB,EAAU,KAAM,KAAP,gBAA8BvT,KAAKC,UAAL,iBAAoB7M,EAApB,GAA6BqO,EAA7B,CAAgCrL,OAAQ,yBAE/E+iB,EAAY,CACXnN,UAAWsQ,EAAQ7a,GACnBwK,QAASC,YAAW,aACpBC,YAAa,QAId2O,EAAQ,OAAQ,CAAE2B,aAAc,uBAEhC9nB,EAAS,CAAEpC,KAAM,kBAGZ+gB,EAAgB,SAACpF,EAAGzM,GAWzB,OAVA8R,EAAU,KAAM,KAAP,cAA2BrF,EAA3B,qBAAkDlO,KAAKC,UAAU7M,IAG1EspB,YAAW,WACV7N,OAAOC,SAAS,GAAgB,IAAbiN,EAAqB,EAAI,OAC1C,KAEHpnB,EAAS,CAAEpC,KAAM,cAAeU,QAAS,CAAEG,KAAMqO,KACjD9M,EAAS,CAAEpC,KAAM,oBAAqBU,QAAS,CAAER,KAAMzD,YAAI,WAAY0D,KAAM,uBAErEK,GACR,KAAK,EAEJ4oB,EAAaJ,KACb5mB,EAAS,CAAEpC,KAAM,cACjB,MAED,KAAK,EACC2Y,EAAc,OAAD,UAAM9X,EAAN,GAAeqO,IAchC+a,EAAY/a,IAZZsK,EAAauQ,EAAQ7a,IAGrB9M,EAAS,CACRpC,KAAM,QACNU,QAAS,CACRX,SAAS,EACTmB,UAAW,SAAAkpB,GAAG,OAAIH,EAAYG,IAC9BjpB,SAAU,kBAAM8oB,EAAY/a,QAM/B,MAED,QACC9M,EAAS,CAAEpC,KAAM,gBAwDnB,OAnDA0d,qBAAU,WACTtb,EAAS,CAAEpC,KAAM,wBAGjBupB,EAAaM,EAAQzN,QAAQK,wBAAwBuL,MAAQ,IAE7DR,MAQE,IAGH9J,qBAAU,WACLiM,IAAkC,IAAnBD,IAEdE,GACH5I,EAAU,KAAM,KAAP,sBAAoC4I,EAAa9P,cAAc,GAAGC,SAASpX,SAEpFmnB,EAAgB,CACf9pB,KAAM,QACNggB,MAAO,YACP9f,KAAM0pB,EAAa9P,cAAc,GAAGC,SAASpX,QAC7C+d,QAAS,CACRvgB,KAAM,KACND,KAAMzD,YAAI,kBAIZukB,EAAU,KAAM,KAAP,yBAET8I,EAAgB,CACf9pB,KAAM,KACNggB,MAAOvjB,YAAI,4BACXyD,KAAMzD,YAAI,2BACV6jB,UAAU,QAUX,CAACqJ,EAAaD,EAAgBE,IAGhC,yBAAKlK,UAAWC,IAAO0K,KAAMC,IAAKT,GACjC,kBAAC,EAAD,CAAwBrK,UAAU,YAClC,kBAAC,EAAD,CAAyBuB,cAAeA,KAC3B,IAAZsI,GAAqB,4BAAQ3J,UAAWC,IAAO4K,cAAe9tB,YAAI,cACnE,kBAAC,EAAD,CAAiBskB,cAAeA,EAAeyG,UAAWA,EAAWC,UAAWA,EAAWvoB,IAAK4B,KACnF,IAAZuoB,EAAmB,kBAAC,EAAD,CAAkB7J,UAAU,YAAe,OC1HnDgL,GApCU,WAAO,IAAD,EACF5M,mBAAS,GAA9B6M,EADuB,KACfC,EADe,KAEhBjL,EAAmB5H,cAAzBhX,KACAG,EAAqCye,EAArCze,aAAuBjB,EAAc0f,EAAvBre,MAASrB,QACxBypB,EAAY5L,mBAAS6L,eAJE,GAKxB3K,EAAU6L,EAAgB,IAYhC,OAVAjN,qBAAU,WAELpB,QAAUkN,GACboB,SAASzL,iBAAiB,UAAU,WACnC,IAAM0L,EAAcvO,OAAOwC,QAAU,IACjC+L,IAAgBJ,GAAQC,EAAUG,SAMxC,oCACC,kBAAC,EAAD,CAAwBrL,UAAU,WAChCzf,GAAW,kBAAC,EAAD,CAAkB+e,QAASA,EAASU,UAAU,UAC3D,yBAAKE,UAAS,0BAA4B1e,EAAajB,QAAW4f,IAAOmL,UAAY,IAAMpD,MAAO,CAAE5jB,SAAU,WAAYinB,OAAQ,IACjI,yBAAKrL,UAAU,OACd,yBAAKA,UAAS,6BAA+BC,IAAOqL,KAAtC,KAA8CP,EAAS,eAAiB,iBACrF,4BAAKhuB,YAAI,cACT,2BAAIA,YAAI,qBAET,yBAAKijB,UAAS,mBAAqBC,IAAOsL,YACzC,kBAAC,GAAD,W,wRCrCN,IAqBepvB,GArBC,CACfC,WAAY,KAEZD,QAAS,CACRE,KAAM,eAGPC,IAAK,CACJC,OAAQD,IAAF,QC+COkvB,GA9CE,WAAO,IAAD,EACEtN,mBAAS,MAA1BuN,EADe,KACTC,EADS,OAGIvE,YAAShrB,GAAQG,IAAIC,OAAQ,CACtDyd,QAASC,YAAW,iBADbsI,EAHc,EAGdA,QAASphB,EAHK,EAGLA,KAUjB,OANA6c,qBAAU,YACO,IAAZuE,GAA8B,OAATkJ,GAAiBtqB,GAAQA,EAAKhF,QAAQwvB,YAC9DD,EAAQvqB,EAAKhF,WAEZ,CAAComB,EAASphB,IAERsqB,EAUJ,yBAAKzL,UAAWC,KAAO0K,MACtB,yBAAK3K,UAAU,mBACd,yBAAKA,UAAU,iCACd,yBAAKA,UAAU,mBACd,6BAASA,UAAWC,KAAO2L,UAC1B,wBAAI5L,UAAWC,KAAO4L,KAAM9uB,YAAI,iBAChC,4BAAK0uB,EAAKnL,OACV,yBAAKN,UAAWC,KAAO6L,MACtB,yBAAK9L,UAAWC,KAAO8L,OACtB,uBAAGC,KAAK,kCAAkCvP,OAAO,SAASwP,IAAI,uBAAsB,uBAAGjM,UAAU,eACjG,uBAAGgM,KAAK,iCAAiCvP,OAAO,SAASwP,IAAI,uBAAsB,uBAAGjM,UAAU,eAChG,uBAAGgM,KAAK,mCAAkC,uBAAGhM,UAAU,iBAGzD,yBAAKA,UAAWC,KAAOzb,KAAM+b,wBAAyB,CAAEC,OAAQiL,EAAKjrB,aAxBzD,M,gDCMJ0rB,GAxBA,WACd,OACC,oCACC,yBAAKlM,UAAWC,KAAOkM,YACtB,yBAAKnM,UAAU,mBACd,yBAAKA,UAAU,iCACd,yBAAKA,UAAU,mBACd,iCAAUjjB,YAAI,yBAKlB,4BAAQijB,UAAWC,KAAO0K,MACzB,uBAAGqB,KAAK,4BAA4BvP,OAAO,SAASwP,IAAI,uBAAsB,yBAAK/L,IAAKkM,KAAkB/L,IAAI,wBAAwBC,MAAM,sBAC5I,yBAAKN,UAAWC,KAAOoM,OACtB,uBAAGL,KAAK,0DAA0DvP,OAAO,SAASwP,IAAI,uBAAuBlvB,YAAI,eACjH,uBAAGivB,KAAK,6EAA6EvP,OAAO,SAASwP,IAAI,uBAAuBlvB,YAAI,eACpI,uBAAGivB,KAAK,oDAAoDvP,OAAO,SAASwP,IAAI,uBAAuBlvB,YAAI,mB,wBCGjGuvB,UAhBD,WACb,OACC,oCACC,yBAAKtM,UAAWC,KAAOsM,WAAW,yBAAKvM,UAAWC,KAAOuM,MACzD,kBAAC,IAAD,KACC,kBAAC,IAAD,KACC,kBAAC,IAAD,CAAKlM,MAAM,aAAa7X,YAAY,KACpC,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,W,qBCnBL,IAAItL,EAAU,EAAQ,QAEtBA,EAAQA,EAAQC,EAAID,EAAQsvB,GAAK,EAAQ,QAAmB,SAAU,CAAE1kB,iBAAkB,EAAQ,W,sBCFlG,cAAQ,QAGR,WACE,IAAI2kB,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAEzC,oBAAhBC,aAA+C,OAAhBA,aAAwBA,YAAYC,IAC5EpuB,EAAOC,QAAU,WACf,OAAOkuB,YAAYC,OAEZ,MAAOC,GAA+CA,EAAQP,QACvE9tB,EAAOC,QAAU,WACf,OAAQ4tB,IAAmBI,GAAgB,KAG7CH,EAASO,EAAQP,OAQjBE,GANAH,EAAiB,WACf,IAAIS,EAEJ,OAAe,KADfA,EAAKR,KACK,GAAWQ,EAAG,OAI1BJ,EAA4B,IAAnBG,EAAQE,SACjBN,EAAeD,EAAiBE,GACvBM,KAAKJ,KACdpuB,EAAOC,QAAU,WACf,OAAOuuB,KAAKJ,MAAQL,GAGtBA,EAAWS,KAAKJ,QAEhBpuB,EAAOC,QAAU,WACf,OAAO,IAAIuuB,MAAOC,UAAYV,GAGhCA,GAAW,IAAIS,MAAOC,YAEvB/uB,KAAKyJ,Q,wDCvCR,yBAGMulB,EAAS,SAAC,GAAqE,IAAnEzrB,EAAkE,EAAlEA,SAAUxB,EAAwD,EAAxDA,KAAM4gB,EAAkD,EAAlDA,QAASsM,EAAyC,EAAzCA,KAAMrM,EAAmC,EAAnCA,QAAS4B,EAA0B,EAA1BA,SAAU9B,EAAgB,EAAhBA,UACnE,OAAO,4BAAQjB,UAAS,OAASkB,EAAT,IAAoBsM,EAAQltB,KAAMA,EAAM6gB,QAASA,EAAS4B,SAAUA,EAAU0K,aAAYxM,GAAa,OAAQnf,IAGxIyrB,EAAO3F,aAAe,CACrBtnB,KAAM,SACN4gB,QAAS,UACTsM,KAAM,GACNrM,QAAS,KACT4B,UAAU,EACV9B,UAAW,MAaGsM,O,qBC1Bf1uB,EAAOC,QAAU,IAA0B,+D,oCCE3C,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAIue,EAAiB,EAAQ,QAE7B,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAAIqQ,EAAqB,EAAQ,QAE7BC,EAAkB,EAAQ,QAE1BC,EAAkB,EAAQ,QAE1BC,EAAe,EAAQ,QAsI3B,SAASC,EAA6BlrB,GACpC,GAAqB,iBAAVA,GAAuC,IAAjBA,EAAM5E,OACrC,MAAM,IAAIgB,UAAU,wDAIxB,SAAS+uB,EAAOnrB,EAAO6N,GACrB,OAAIA,EAAQsd,OACHtd,EAAQud,OAASL,EAAgB/qB,GAASwZ,mBAAmBxZ,GAG/DA,EAGT,SAASpE,EAAOoE,EAAO6N,GACrB,OAAIA,EAAQjS,OACHovB,EAAgBhrB,GAGlBA,EAmBT,SAASqrB,EAAWxvB,GAClB,IAAIyvB,EAAYzvB,EAAMoB,QAAQ,KAM9B,OAJmB,IAAfquB,IACFzvB,EAAQA,EAAMP,MAAM,EAAGgwB,IAGlBzvB,EAcT,SAAS0vB,EAAQ1vB,GAEf,IAAI2vB,GADJ3vB,EAAQwvB,EAAWxvB,IACIoB,QAAQ,KAE/B,OAAoB,IAAhBuuB,EACK,GAGF3vB,EAAMP,MAAMkwB,EAAa,GAGlC,SAASzd,EAAW/N,EAAO6N,GAOzB,OANIA,EAAQ4d,eAAiBhV,OAAOhc,MAAMgc,OAAOzW,KAA4B,iBAAVA,GAAuC,KAAjBA,EAAM0rB,OAC7F1rB,EAAQyW,OAAOzW,IACN6N,EAAQ8d,eAA2B,OAAV3rB,GAA2C,SAAxBA,EAAMuhB,eAAoD,UAAxBvhB,EAAMuhB,gBAC7FvhB,EAAgC,SAAxBA,EAAMuhB,eAGTvhB,EAGT,SAASR,EAAM3D,EAAOgS,GASpBqd,GARArd,EAAUnR,OAAOkvB,OAAO,CACtBhwB,QAAQ,EACRiwB,MAAM,EACNC,YAAa,OACbC,qBAAsB,IACtBN,cAAc,EACdE,eAAe,GACd9d,IACkCke,sBACrC,IAAIC,EAvJN,SAA8Bne,GAC5B,IAAIrR,EAEJ,OAAQqR,EAAQie,aACd,IAAK,QACH,OAAO,SAAUlvB,EAAKoD,EAAOisB,GAC3BzvB,EAAS,aAAaD,KAAKK,GAC3BA,EAAMA,EAAIP,QAAQ,WAAY,IAEzBG,QAKoBoE,IAArBqrB,EAAYrvB,KACdqvB,EAAYrvB,GAAO,IAGrBqvB,EAAYrvB,GAAKJ,EAAO,IAAMwD,GAR5BisB,EAAYrvB,GAAOoD,GAWzB,IAAK,UACH,OAAO,SAAUpD,EAAKoD,EAAOisB,GAC3BzvB,EAAS,UAAUD,KAAKK,GACxBA,EAAMA,EAAIP,QAAQ,QAAS,IAEtBG,OAKoBoE,IAArBqrB,EAAYrvB,GAKhBqvB,EAAYrvB,GAAO,GAAGlB,OAAOuwB,EAAYrvB,GAAMoD,GAJ7CisB,EAAYrvB,GAAO,CAACoD,GALpBisB,EAAYrvB,GAAOoD,GAYzB,IAAK,QACL,IAAK,YACH,OAAO,SAAUpD,EAAKoD,EAAOisB,GAC3B,IACI3K,EAD2B,iBAAVthB,GAAsBA,EAAMhF,MAAM,IAAIiC,QAAQ4Q,EAAQke,uBAAyB,EAC3E/rB,EAAMhF,MAAM6S,EAAQke,sBAAsB3oB,KAAI,SAAU2N,GAC/E,OAAOnV,EAAOmV,EAAMlD,MACP,OAAV7N,EAAiBA,EAAQpE,EAAOoE,EAAO6N,GAC5Coe,EAAYrvB,GAAO0kB,GAGvB,QACE,OAAO,SAAU1kB,EAAKoD,EAAOisB,QACFrrB,IAArBqrB,EAAYrvB,GAKhBqvB,EAAYrvB,GAAO,GAAGlB,OAAOuwB,EAAYrvB,GAAMoD,GAJ7CisB,EAAYrvB,GAAOoD,IAmGXksB,CAAqBre,GAEjCse,EAAMzvB,OAAOoJ,OAAO,MAExB,GAAqB,iBAAVjK,EACT,OAAOswB,EAKT,KAFAtwB,EAAQA,EAAM6vB,OAAOrvB,QAAQ,SAAU,KAGrC,OAAO8vB,EAGT,IAAIC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB1rB,EAErB,IACE,IAAK,IAAqD2rB,EAAjDC,EAAY3wB,EAAMb,MAAM,KAAKmG,OAAOC,cAAsBgrB,GAA6BG,EAAQC,EAAU5hB,QAAQoQ,MAAOoR,GAA4B,EAAM,CACjK,IAAIK,EAAQF,EAAMvsB,MAEd0sB,EAAgBzB,EAAapd,EAAQjS,OAAS6wB,EAAMpwB,QAAQ,MAAO,KAAOowB,EAAO,KACjFE,EAAiBlS,EAAeiS,EAAe,GAC/C9vB,EAAM+vB,EAAe,GACrB3sB,EAAQ2sB,EAAe,GAI3B3sB,OAAkBY,IAAVZ,EAAsB,KAAO,CAAC,QAAS,aAAa4sB,SAAS/e,EAAQie,aAAe9rB,EAAQpE,EAAOoE,EAAO6N,GAClHme,EAAUpwB,EAAOgB,EAAKiR,GAAU7N,EAAOmsB,IAEzC,MAAOhxB,GACPkxB,GAAoB,EACpBC,EAAiBnxB,EACjB,QACA,IACOixB,GAAoD,MAAvBI,EAAkB,QAClDA,EAAkB,SAEpB,QACA,GAAIH,EACF,MAAMC,GAKZ,IAAK,IAAIvR,EAAK,EAAG8R,EAAenwB,OAAOC,KAAKwvB,GAAMpR,EAAK8R,EAAazxB,OAAQ2f,IAAM,CAChF,IAAIiB,EAAO6Q,EAAa9R,GACpB+R,EAASX,EAAInQ,GAEjB,GAAsB,iBAAX8Q,GAAkC,OAAXA,EAChC,IAAK,IAAI9mB,EAAM,EAAG+mB,EAAgBrwB,OAAOC,KAAKmwB,GAAS9mB,EAAM+mB,EAAc3xB,OAAQ4K,IAAO,CACxF,IAAI0P,EAAIqX,EAAc/mB,GACtB8mB,EAAOpX,GAAK3H,EAAW+e,EAAOpX,GAAI7H,QAGpCse,EAAInQ,GAAQjO,EAAW+e,EAAQjf,GAInC,OAAqB,IAAjBA,EAAQge,KACHM,IAGgB,IAAjBte,EAAQge,KAAgBnvB,OAAOC,KAAKwvB,GAAKN,OAASnvB,OAAOC,KAAKwvB,GAAKN,KAAKhe,EAAQge,OAAO/mB,QAAO,SAAUtI,EAAQI,GACtH,IAAIoD,EAAQmsB,EAAIvvB,GAShB,OAPI0D,QAAQN,IAA2B,iBAAVA,IAAuBxE,MAAMgJ,QAAQxE,GAEhExD,EAAOI,GA1Ib,SAASowB,EAAWnxB,GAClB,OAAIL,MAAMgJ,QAAQ3I,GACTA,EAAMgwB,OAGM,iBAAVhwB,EACFmxB,EAAWtwB,OAAOC,KAAKd,IAAQgwB,MAAK,SAAUpf,EAAGC,GACtD,OAAO+J,OAAOhK,GAAKgK,OAAO/J,MACzBtJ,KAAI,SAAUxG,GACf,OAAOf,EAAMe,MAIVf,EA6HWmxB,CAAWhtB,GAEzBxD,EAAOI,GAAOoD,EAGTxD,IACNE,OAAOoJ,OAAO,OAGnB5J,EAAQqvB,QAAUA,EAClBrvB,EAAQsD,MAAQA,EAEhBtD,EAAQkP,UAAY,SAAU6hB,EAAQpf,GACpC,IAAKof,EACH,MAAO,GAST/B,GANArd,EAAUnR,OAAOkvB,OAAO,CACtBT,QAAQ,EACRC,QAAQ,EACRU,YAAa,OACbC,qBAAsB,KACrBle,IACkCke,sBASrC,IAPA,IAAImB,EAAe,SAAsBtwB,GACvC,OAAOiR,EAAQsf,UA7TVntB,MA6TwCitB,EAAOrwB,IAASiR,EAAQuf,iBAAmC,KAAhBH,EAAOrwB,IAG7FovB,EA7TN,SAA+Bne,GAC7B,OAAQA,EAAQie,aACd,IAAK,QACH,OAAO,SAAUlvB,GACf,OAAO,SAAUJ,EAAQwD,GACvB,IAAI6B,EAAQrF,EAAOpB,OAEnB,YAAcwF,IAAVZ,GAAuB6N,EAAQsf,UAAsB,OAAVntB,GAAkB6N,EAAQuf,iBAA6B,KAAVptB,EACnFxD,EAIA,GAAGd,OAAOovB,EAAmBtuB,GADxB,OAAVwD,EAC2C,CAAC,CAACmrB,EAAOvuB,EAAKiR,GAAU,IAAKhM,EAAO,KAAK3G,KAAK,KAGhD,CAAC,CAACiwB,EAAOvuB,EAAKiR,GAAU,IAAKsd,EAAOtpB,EAAOgM,GAAU,KAAMsd,EAAOnrB,EAAO6N,IAAU3S,KAAK,QAI3I,IAAK,UACH,OAAO,SAAU0B,GACf,OAAO,SAAUJ,EAAQwD,GACvB,YAAcY,IAAVZ,GAAuB6N,EAAQsf,UAAsB,OAAVntB,GAAkB6N,EAAQuf,iBAA6B,KAAVptB,EACnFxD,EAIA,GAAGd,OAAOovB,EAAmBtuB,GADxB,OAAVwD,EAC2C,CAAC,CAACmrB,EAAOvuB,EAAKiR,GAAU,MAAM3S,KAAK,KAGrC,CAAC,CAACiwB,EAAOvuB,EAAKiR,GAAU,MAAOsd,EAAOnrB,EAAO6N,IAAU3S,KAAK,QAI/G,IAAK,QACL,IAAK,YACH,OAAO,SAAU0B,GACf,OAAO,SAAUJ,EAAQwD,GACvB,OAAIA,SAA0D,IAAjBA,EAAM5E,OAC1CoB,EAGa,IAAlBA,EAAOpB,OACF,CAAC,CAAC+vB,EAAOvuB,EAAKiR,GAAU,IAAKsd,EAAOnrB,EAAO6N,IAAU3S,KAAK,KAG5D,CAAC,CAACsB,EAAQ2uB,EAAOnrB,EAAO6N,IAAU3S,KAAK2S,EAAQke,yBAI5D,QACE,OAAO,SAAUnvB,GACf,OAAO,SAAUJ,EAAQwD,GACvB,YAAcY,IAAVZ,GAAuB6N,EAAQsf,UAAsB,OAAVntB,GAAkB6N,EAAQuf,iBAA6B,KAAVptB,EACnFxD,EAIA,GAAGd,OAAOovB,EAAmBtuB,GADxB,OAAVwD,EAC2C,CAACmrB,EAAOvuB,EAAKiR,IAGf,CAAC,CAACsd,EAAOvuB,EAAKiR,GAAU,IAAKsd,EAAOnrB,EAAO6N,IAAU3S,KAAK,SAgQ/FmyB,CAAsBxf,GAClCyf,EAAa,GAERC,EAAM,EAAGC,EAAgB9wB,OAAOC,KAAKswB,GAASM,EAAMC,EAAcpyB,OAAQmyB,IAAO,CACxF,IAAI3wB,EAAM4wB,EAAcD,GAEnBL,EAAatwB,KAChB0wB,EAAW1wB,GAAOqwB,EAAOrwB,IAI7B,IAAID,EAAOD,OAAOC,KAAK2wB,GAMvB,OAJqB,IAAjBzf,EAAQge,MACVlvB,EAAKkvB,KAAKhe,EAAQge,MAGblvB,EAAKyG,KAAI,SAAUxG,GACxB,IAAIoD,EAAQitB,EAAOrwB,GAEnB,YAAcgE,IAAVZ,EACK,GAGK,OAAVA,EACKmrB,EAAOvuB,EAAKiR,GAGjBrS,MAAMgJ,QAAQxE,GACTA,EAAM8E,OAAOknB,EAAUpvB,GAAM,IAAI1B,KAAK,KAGxCiwB,EAAOvuB,EAAKiR,GAAW,IAAMsd,EAAOnrB,EAAO6N,MACjDtK,QAAO,SAAUkW,GAClB,OAAOA,EAAEre,OAAS,KACjBF,KAAK,MAGVgB,EAAQuxB,SAAW,SAAU5xB,EAAOgS,GAClC,MAAO,CACL6f,IAAKrC,EAAWxvB,GAAOb,MAAM,KAAK,IAAM,GACxCmpB,MAAO3kB,EAAM+rB,EAAQ1vB,GAAQgS,KAIjC3R,EAAQyxB,aAAe,SAAU9xB,EAAOgS,GACtC,IAAI6f,EAAMrC,EAAWxvB,EAAM6xB,KAAK1yB,MAAM,KAAK,IAAM,GAC7C4yB,EAAe1xB,EAAQqvB,QAAQ1vB,EAAM6xB,KACrCG,EAAqB3xB,EAAQsD,MAAMouB,GACnCE,EA9LN,SAAiBJ,GACf,IAAII,EAAO,GACPxC,EAAYoC,EAAIzwB,QAAQ,KAM5B,OAJmB,IAAfquB,IACFwC,EAAOJ,EAAIpyB,MAAMgwB,IAGZwC,EAsLIC,CAAQlyB,EAAM6xB,KACrBvJ,EAAQznB,OAAOkvB,OAAOiC,EAAoBhyB,EAAMsoB,OAChD5kB,EAAcrD,EAAQkP,UAAU+Y,EAAOtW,GAM3C,OAJItO,IACFA,EAAc,IAAI7D,OAAO6D,IAGpB,GAAG7D,OAAOgyB,GAAKhyB,OAAO6D,GAAa7D,OAAOoyB,K,qBChbnD,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,EAAQ,QAER,IAEItuB,EAFS,EAAQ,QAEFA,MAGnB,SAASwuB,EAAUlxB,GACjB,OAAOA,EAAOT,QAAQ,UAAW,KAAKqvB,OAIxC,IAAIuC,EAAW,GAEXC,EAAoB,GAexB,IAAIC,GAAwB,EAuF5B,IAAI3c,GAAgC,EAEpC,SAAS1D,EAAcsgB,GACrB,IAAIC,EAAWL,EAAUI,GAEzB,GAAIH,EAASI,GACX,OAAOJ,EAASI,GAGlB,IAAIC,EAAS9uB,EAAM4uB,EAAK,CACtB5c,8BAA+BA,IAGjC,IAAK8c,GAA0B,aAAhBA,EAAO3jB,KACpB,MAAM,IAAIpK,MAAM,iCAQlB,OAFA+tB,EAhEF,SAASC,EAASH,EAAKI,GACrB,IAAIC,EAAU/xB,OAAOjB,UAAUoF,SAASlF,KAAKyyB,GAE7C,GAAgB,mBAAZK,EACF,OAAOL,EAAIhrB,KAAI,SAAUwJ,GACvB,OAAO2hB,EAAS3hB,EAAG4hB,MAIvB,GAAgB,oBAAZC,EACF,MAAM,IAAIluB,MAAM,qBAKdiuB,GAAwBJ,EAAIzpB,YACvBypB,EAAIzpB,IAITypB,EAAIzpB,aACCypB,EAAIzpB,IAAI6P,kBACR4Z,EAAIzpB,IAAIqQ,UAGjB,IACIpY,EACAoD,EACA0uB,EAHA/xB,EAAOD,OAAOC,KAAKyxB,GAKvB,IAAKxxB,KAAOD,EACNA,EAAKgyB,eAAe/xB,KACtBoD,EAAQouB,EAAIzxB,EAAKC,IAGC,qBAFlB8xB,EAAYhyB,OAAOjB,UAAUoF,SAASlF,KAAKqE,KAEU,mBAAd0uB,IACrCN,EAAIzxB,EAAKC,IAAQ2xB,EAASvuB,GAAO,KAKvC,OAAOouB,EAuBEG,CADTD,EAxGF,SAA0BM,GAIxB,IAHA,IAhBuBjqB,EAgBnBkqB,EAAiB,GACjB/f,EAAc,GAET9S,EAAI,EAAGA,EAAI4yB,EAAI9f,YAAY1T,OAAQY,IAAK,CAC/C,IAAI8yB,EAAqBF,EAAI9f,YAAY9S,GAEzC,GAAgC,uBAA5B8yB,EAAmBnkB,KAA+B,CACpD,IAAIokB,EAAeD,EAAmBr1B,KAAKuG,MACvCgvB,EAvBDhB,GADgBrpB,EAwBamqB,EAAmBnqB,KAvBlCpD,OAAOK,KAAKglB,UAAUjiB,EAAI3C,MAAO2C,EAAIoG,MAyBlDmjB,EAAkBS,eAAeI,KAAkBb,EAAkBa,GAAcC,IAGjFb,GACF9O,QAAQ4P,KAAK,+BAAiCF,EAAe,iMAG/Db,EAAkBa,GAAcC,IAAa,GACnCd,EAAkBS,eAAeI,KAC3Cb,EAAkBa,GAAgB,GAClCb,EAAkBa,GAAcC,IAAa,GAG1CH,EAAeG,KAClBH,EAAeG,IAAa,EAC5BlgB,EAAY5L,KAAK4rB,SAGnBhgB,EAAY5L,KAAK4rB,GAKrB,OADAF,EAAI9f,YAAcA,EACX8f,EAsEEM,CAAiBZ,IACA,GAC1BL,EAASI,GAAYC,EACdA,EAYT,SAAS50B,IAQP,IALA,IAAI6Z,EAAO/X,MAAMC,UAAUH,MAAMK,KAAKgF,WAClCwuB,EAAW5b,EAAK,GAEhB/W,EAA6B,iBAAb2yB,EAAwBA,EAAWA,EAAS,GAEvDnzB,EAAI,EAAGA,EAAIuX,EAAKnY,OAAQY,IAC3BuX,EAAKvX,IAAMuX,EAAKvX,GAAG2O,MAAyB,aAAjB4I,EAAKvX,GAAG2O,KACrCnO,GAAU+W,EAAKvX,GAAG2I,IAAIpD,OAAOK,KAE7BpF,GAAU+W,EAAKvX,GAGjBQ,GAAU2yB,EAASnzB,GAGrB,OAAO8R,EAActR,GAIvB9C,EAAa,QAAIA,EACjBA,EAAI01B,YAxJJ,WACEnB,EAAW,GACXC,EAAoB,IAuJtBx0B,EAAI21B,wBA1GJ,WACElB,GAAwB,GA0G1Bz0B,EAAI41B,oCAlCJ,WACE9d,GAAgC,GAkClC9X,EAAI61B,qCA/BJ,WACE/d,GAAgC,GA+BlCvV,EAAOC,QAAUxC,G,mBCrKjBuC,EAAOC,QA9BP,SAA+B6b,EAAK/b,GAClC,GAAMmF,OAAOC,YAAY1E,OAAOqb,IAAgD,uBAAxCrb,OAAOjB,UAAUoF,SAASlF,KAAKoc,GAAvE,CAIA,IAAI2C,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKja,EAET,IACE,IAAK,IAAiCka,EAA7BC,EAAKhD,EAAI5W,OAAOC,cAAmBuZ,GAAMG,EAAKC,EAAGnQ,QAAQoQ,QAChEN,EAAKxX,KAAK4X,EAAG9a,QAEThE,GAAK0e,EAAKtf,SAAWY,GAH8C2e,GAAK,IAK9E,MAAOxf,GACPyf,GAAK,EACLC,EAAK1f,EACL,QACA,IACOwf,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,K,mBC3BTze,EAAOC,QAAU,sha,kCC8CFyiB,IA9Cf,WACC,IAIM6Q,EAAU,WACf,MAA0B,oBAAXxV,aAAiD,IAAhBA,OAAOoM,MAqCxD,MAAO,CAAEqJ,aAlCY,SAACC,GACjBF,MAEHxV,OAAOoM,KAAK,SAVN,kBAUiC,CAEtCuJ,cAAeD,GAAQ,IAIxBrQ,QAAQC,IAAI,iBAAkBoQ,GAAQ,KAyBjBhR,UArBL,SAACkR,EAAU5xB,EAAQ6xB,EAAO7vB,GAC3C,GAAIwvB,IAAW,CACd,IAAM3hB,EAAU,CACf0Y,cAAgBqJ,QAA+CA,EAAW,SAC1EvJ,YAAcroB,QAA2CA,EAAS,QAClE8xB,WAAaD,QAAyCA,EAAQ,GAC9DE,WAAa/vB,QAAyCA,EAAQ,IAI/Dga,OAAOoM,KAAK,QAASvY,EAAQwY,YAAa,CACzCC,eAAgBzY,EAAQ0Y,cACxBC,YAAa3Y,EAAQiiB,WACrB9vB,MAAO6N,EAAQkiB,aAIhB1Q,QAAQC,IAAIzR,EAAQ0Y,cAAe1Y,EAAQwY,YAAaxY,EAAQiiB,WAAYjiB,EAAQkiB,iB,kCCvCvF,oPAkBIC,EAAgB,WAClB,SAASA,EAAcniB,EAASuJ,GAC9BhS,KAAK6qB,WAAY,EACjB7qB,KAAK8qB,gBAAkB,GACvB9qB,KAAKgS,QAAU,GACfhS,KAAKyI,QAAU,GACfzI,KAAKyI,QAAUA,GAAW,GAC1BzI,KAAKgS,QAAUA,GAAW,GA+C5B,OA5CA4Y,EAAcv0B,UAAU00B,WAAa,WACnC,OAAO/qB,KAAKyI,SAGdmiB,EAAcv0B,UAAU20B,WAAa,SAAUC,EAAYC,QACnC,IAAlBA,IACFA,GAAgB,GAGdA,IAAkB,YAAMlrB,KAAKyI,QAASwiB,KACxCjrB,KAAK8qB,gBAAkB9qB,KAAKyI,SAG9BzI,KAAKyI,QAAUwiB,GAGjBL,EAAcv0B,UAAU80B,QAAU,WAChCnrB,KAAK6qB,WAAY,GAGnBD,EAAcv0B,UAAU+0B,cAAgB,WACtC,IAAIC,EAASrrB,KAAKyI,SAAWzI,KAAKyI,QAAQ4iB,QAAUrrB,KAAKgS,SAAWhS,KAAKgS,QAAQqZ,OACzC,cAAYA,EAAQ,GAC5D,IAAIC,GAAQ,EAQZ,OANID,IAAWrrB,KAAKqrB,SAClBC,GAAQ,EACRtrB,KAAKqrB,OAASA,EACdrrB,KAAKurB,WAGA,CACLF,OAAQrrB,KAAKqrB,OACbC,MAAOA,IAIXV,EAAcv0B,UAAUm1B,mBAAqB,SAAUtI,EAAU5qB,GAC/D,IAAI8R,EAAY,YAAO8Y,GACK,YAAc5qB,GAClB,YAAc8R,EAAU9R,MACR,YAAU8R,EAAU9R,OAASA,EAAM,IAGtEsyB,EAtDW,GAyDhBa,EAAY,SAAUC,GAGxB,SAASD,EAAUE,GACjB,IAAIljB,EAAUkjB,EAAGljB,QACbuJ,EAAU2Z,EAAG3Z,QACb4Z,EAAcD,EAAGC,YAEjBnf,EAAQif,EAAOn1B,KAAKyJ,KAAMyI,EAASuJ,IAAYhS,KAgDnD,OA9CAyM,EAAMof,aAAe,GACrBpf,EAAMqf,kBAAoB,GAC1Brf,EAAMsf,SAAU,EAEhBtf,EAAMuf,aAAe,SAAUvjB,GAC7BgE,EAAM8e,UAEN9e,EAAMsf,SAAU,EAChBtf,EAAMwf,YAAcxjB,EAEpBgE,EAAMmf,eAGRnf,EAAMyf,iBAAmB,WACvB,IAAI90B,EAASqV,EAAM0f,iBAInB,OAFA1f,EAAM2f,yBAECh1B,GAGTqV,EAAM4f,WAAa,SAAUta,GAC3B,OAAOtF,EAAMqf,kBAAkB/M,MAAMS,QAAQzN,IAG/CtF,EAAM6f,aAAe,SAAUC,GAC7B,OAAO9f,EAAMqf,kBAAkB/M,MAAMyN,UAAUD,IAGjD9f,EAAMggB,eAAiB,SAAUC,GAC/B,OAAOjgB,EAAMqf,kBAAkB/M,MAAM4N,YAAYD,IAGnDjgB,EAAMmgB,gBAAkB,SAAUC,GAChCpgB,EAAMqf,mBAAqBrf,EAAMqf,kBAAkB/M,OAAStS,EAAMqf,kBAAkB/M,MAAM+N,aAAaD,IAGzGpgB,EAAMsgB,eAAiB,WACrBtgB,EAAMqf,mBAAqBrf,EAAMqf,kBAAkB/M,OAAStS,EAAMqf,kBAAkB/M,MAAMiO,eAG5FvgB,EAAMwgB,mBAAqB,SAAUxkB,GACnC,OAAOgE,EAAMqf,kBAAkB/M,MAAMmO,gBAAgBzkB,IAGvDgE,EAAMmf,YAAcA,EACbnf,EAsTT,OA7WA,YAAUgf,EAAWC,GA0DrBD,EAAUp1B,UAAU82B,QAAU,WAC5BntB,KAAKorB,gBAEL,IAAIO,EAAK3rB,KAAK+qB,aACV3L,EAAOuM,EAAGvM,KACVL,EAAQ4M,EAAG5M,MASf,OAPIK,GAAQL,IAAU/e,KAAK6rB,aAAa9M,SACtC/e,KAAKotB,0BACLptB,KAAK6rB,aAAa9M,MAAQA,GAG5B/e,KAAKqtB,wBACDrtB,KAAK6qB,WAAW7qB,KAAKosB,yBAClBpsB,KAAKstB,uBAAyBttB,KAAKksB,oBAG5CT,EAAUp1B,UAAUk3B,YAAc,WAChC,OAAQvtB,KAAK+rB,QAKR,CAAC/rB,KAAKgsB,aAAchsB,KAAKmtB,WALP,CAACntB,KAAKgsB,aAAc,CACzCzR,SAAS,EACTiT,cAAe,IAAcC,MAC7BC,QAAQ,EACRv0B,UAAMqC,KAIViwB,EAAUp1B,UAAUs3B,UAAY,WAC9B,IAAIllB,EAAUzI,KAAK+qB,aACnB,GAAItiB,EAAQ2W,OAAwB,IAAhB3W,EAAQmlB,IAAe,OAAO,EAClD,IAAIC,EAAM7tB,KAAK8rB,kBAAkB/M,MAEjC,QADoB8O,EAAIC,mBACHvT,SAAUsT,EAAIz2B,UAGrCq0B,EAAUp1B,UAAU03B,aAAe,SAAUpC,GAC3C,IAAIlf,EAAQzM,KAERguB,QAAa,IAAPrC,EAAgB,GAAKA,GAAIsC,KAC/BA,OAAc,IAAPD,GAAwBA,EAWnC,OAVAhuB,KAAK6qB,WAAY,EAEZoD,IAAQjuB,KAAK+rB,UAChB/rB,KAAKkuB,yBACLzL,YAAW,WACThW,EAAMqf,kBAAkB/M,OAAStS,EAAMqf,kBAAkB/M,MAAMoP,4BAInEnuB,KAAK8qB,gBAAkB9qB,KAAK+qB,aACrB/qB,KAAKmrB,QAAQiD,KAAKpuB,OAG3ByrB,EAAUp1B,UAAUk1B,QAAU,WAC5BvrB,KAAKotB,iCACEptB,KAAK8rB,kBAAkB/M,aACvB/e,KAAK6rB,aAAaz0B,QAG3Bq0B,EAAUp1B,UAAU00B,WAAa,WAC/B,IAAItiB,EAAUijB,EAAOr1B,UAAU00B,WAAWx0B,KAAKyJ,MAW/C,OATIA,KAAKisB,cACPxjB,EAAQsJ,UAAY,YAAS,YAAS,GAAItJ,EAAQsJ,WAAY/R,KAAKisB,YAAYla,WAC/EtJ,EAAQuJ,QAAU,YAAS,YAAS,GAAIvJ,EAAQuJ,SAAUhS,KAAKisB,YAAYja,UAGzEhS,KAAK+rB,gBACAtjB,EAAQ2W,KAGV3W,GAGTgjB,EAAUp1B,UAAUi3B,oBAAsB,WACxC,IAcIl2B,EAdAi3B,EAAyBruB,KAAKgS,SAAWhS,KAAKgS,QAAQsc,eACtDC,GAAwC,IAA1BvuB,KAAK+qB,aAAa6C,IAChCY,EAAgBxuB,KAAKorB,gBAAgBC,OAAOoD,sBAC5CC,EAAa,CACfnU,SAAS,EACTiT,cAAe,IAAcjT,QAC7BmT,QAAQ,EACRv0B,UAAMqC,GAGR,OAAI+yB,IAAgBF,GAA0BG,GACrCE,GAKLL,IACFj3B,EAAS4I,KAAKgS,QAAQsc,eAAeK,gBAAgB3uB,KAAMA,KAAKksB,mBAAqBwC,GAGhFt3B,IAGTq0B,EAAUp1B,UAAUu4B,8BAAgC,WAClD,IAAInmB,EAAUzI,KAAK+qB,aACnB/qB,KAAKwrB,mBAAmB/iB,EAAQsW,MAAO,IAAa8P,OACpD,IAAIC,EAAcrmB,EAAQqmB,aAAe,QAMzC,OAJI9uB,KAAKgS,SAAWhS,KAAKgS,QAAQsc,iBAA2C,iBAAxB7lB,EAAQ4W,aAA0D,sBAAxB5W,EAAQ4W,eACpG5W,EAAQ4W,YAAc,eAGjB,YAAS,YAAS,GAAI5W,GAAU,CACrCqmB,YAAaA,EACb9c,QAASvJ,EAAQuJ,QACjB+c,SAAU,CACRC,eAAgB,CACdF,YAAaA,OAMrBrD,EAAUp1B,UAAU44B,0BAA4B,WAK9C,GAJIjvB,KAAKgS,SAAWhS,KAAKgS,QAAQsc,iBAC/BtuB,KAAK8rB,kBAAkB/M,MAAQ/e,KAAKgS,QAAQsc,eAAeY,iBAAiBlvB,KAAK+qB,gBAG9E/qB,KAAK8rB,kBAAkB/M,MAAO,CACjC,IAAIoQ,EAAyBnvB,KAAK4uB,gCAClC5uB,KAAK6rB,aAAasD,uBAAyB,YAAS,YAAS,GAAIA,GAAyB,CACxFr1B,SAAU,OAEZkG,KAAK8rB,kBAAkB/M,MAAQ/e,KAAKorB,gBAAgBC,OAAO+D,WAAW,YAAS,GAAID,IAE/EnvB,KAAKgS,SAAWhS,KAAKgS,QAAQsc,gBAC/BtuB,KAAKgS,QAAQsc,eAAee,sBAAsBrvB,KAAK8rB,kBAAkB/M,MAAOoQ,KAKtF1D,EAAUp1B,UAAUg3B,sBAAwB,WAC1C,GAAKrtB,KAAK8rB,kBAAkB/M,MAA5B,CAKA,IAAIuQ,EAA4B,YAAS,YAAS,GAAItvB,KAAK4uB,iCAAkC,CAC3F90B,SAAU,OAGP,YAAMw1B,EAA2BtvB,KAAK6rB,aAAasD,0BACtDnvB,KAAK6rB,aAAasD,uBAAyBG,EAC3CtvB,KAAK8rB,kBAAkB/M,MAAMiM,WAAWsE,GAAkC,OAAE,qBAV5EtvB,KAAKivB,6BAcTxD,EAAUp1B,UAAU+1B,uBAAyB,WAC3C,IAAI3f,EAAQzM,KAEZ,IAAIA,KAAK8rB,kBAAkByD,eAAgBvvB,KAAK+qB,aAAa3L,KAA7D,CACA,IAAIoQ,EAAWxvB,KAAK8rB,kBAAkB/M,MACtC/e,KAAK8rB,kBAAkByD,aAAeC,EAASC,UAAU,CACvDjqB,KAAM,SAAcmmB,GAClB,IAAIpR,EAAUoR,EAAGpR,QACbiT,EAAgB7B,EAAG6B,cACnBr0B,EAAOwyB,EAAGxyB,KACVu2B,EAAiBjjB,EAAMof,aAAaz0B,OAEpCs4B,GAAkBA,EAAenV,UAAYA,GAAWmV,EAAelC,gBAAkBA,GAAiB,YAAMkC,EAAev2B,KAAMA,IAIzIsT,EAAMmf,eAER92B,MAAO,SAAe66B,GAGpB,GAFAljB,EAAMmjB,sBAEDD,EAAOpG,eAAe,iBAAkB,MAAMoG,EACnD,IAAID,EAAiBjjB,EAAMof,aAAaz0B,QAEpCs4B,GAAkBA,EAAenV,UAAY,YAAMoV,EAAQljB,EAAMof,aAAa/2B,UAChF2X,EAAMof,aAAa/2B,MAAQ66B,EAE3BljB,EAAMmf,oBAMdH,EAAUp1B,UAAUu5B,mBAAqB,WACvC5vB,KAAKotB,0BACL,IAAIyC,EAAY7vB,KAAK8rB,kBAAkB/M,MAAM+Q,eACzCC,EAAa/vB,KAAK8rB,kBAAkB/M,MAAMiR,gBAC9ChwB,KAAK8rB,kBAAkB/M,MAAMkR,mBAC7BjwB,KAAKosB,yBACL90B,OAAOkvB,OAAOxmB,KAAK8rB,kBAAkB/M,MAAO,CAC1C8Q,UAAWA,EACXE,WAAYA,KAIhBtE,EAAUp1B,UAAU81B,eAAiB,WACnC,IAAI/0B,EAAS4I,KAAKkwB,wBACdznB,EAAUzI,KAAK+qB,aAEnB,GAAItiB,EAAQ2W,KACVhoB,EAAS,YAAS,YAAS,GAAIA,GAAS,CACtC+B,UAAMqC,EACN1G,WAAO0G,EACP+e,SAAS,EACTmT,QAAQ,QAEL,CACL,IAAIyC,EAAgBnwB,KAAK8rB,kBAAkB/M,MAAM+O,mBAC7CvT,EAAU4V,EAAc5V,QACxB6V,EAAUD,EAAcC,QACxB5C,EAAgB2C,EAAc3C,cAC9BhS,EAAS2U,EAAc3U,OACvB1mB,EAAQq7B,EAAcr7B,MACtBqE,EAAOg3B,EAAch3B,KAezB,GAbIqiB,GAAUA,EAAOxlB,OAAS,IAC5BlB,EAAQ,IAAI,IAAY,CACtBsd,cAAeoJ,KAInBpkB,EAAS,YAAS,YAAS,GAAIA,GAAS,CACtCmjB,QAASA,EACTiT,cAAeA,EACf14B,MAAOA,EACP44B,QAAQ,IAGNnT,EAAS,CACX,IAAIsR,EAAe7rB,KAAK6rB,aAAaz0B,QAAU4I,KAAK6rB,aAAaz0B,OAAO+B,KACxE/B,EAAO+B,KAAO0yB,GAAgB1yB,EAAO,YAAS,YAAS,GAAI0yB,GAAe1yB,GAAQ0yB,GAAgB1yB,OAC7F,GAAIrE,EACTwC,OAAOkvB,OAAOpvB,EAAQ,CACpB+B,MAAO6G,KAAK8rB,kBAAkB/M,MAAMiR,iBAAmB,IAAI72B,WAExD,CACL,IAAIkmB,EAAcrf,KAAK8rB,kBAAkB/M,MAAMtW,QAAQ4W,YAGvD,GAFqB5W,EAAQ4nB,iBAENl3B,GAAQi3B,GAA2B,eAAhB/Q,EAMxC,OALA/nB,OAAOkvB,OAAOpvB,EAAQ,CACpBmjB,SAAS,EACTiT,cAAe,IAAcjT,UAE/BnjB,EAAOooB,UACApoB,EAGTA,EAAO+B,KAAOA,GAOlB,OAHA/B,EAAOi0B,OAASrrB,KAAKqrB,OACrBrrB,KAAK6rB,aAAatR,QAAUva,KAAK6rB,aAAaz0B,QAAU4I,KAAK6rB,aAAaz0B,OAAOmjB,UAAW,EAC5Fva,KAAK6rB,aAAaz0B,OAASA,EACpBA,GAGTq0B,EAAUp1B,UAAU63B,uBAAyB,WAC3C,IAAIsB,EAAWxvB,KAAK8rB,kBAAkB/M,MACtC,GAAKyQ,EAAL,CAEA,IAAI7D,EAAK6D,EAAS1B,mBACd30B,EAAOwyB,EAAGxyB,KACVohB,EAAUoR,EAAGpR,QACbzlB,EAAQ62B,EAAG72B,MAEf,IAAKylB,EAAS,CACZ,IAAIyT,EAAKhuB,KAAK+qB,aACVhM,EAAQiP,EAAGjP,MACXhN,EAAYic,EAAGjc,UACfue,EAActC,EAAGsC,YACjBC,EAAUvC,EAAGuC,QAEjB,GAAIvwB,KAAK8qB,kBAAoB9qB,KAAK6rB,aAAatR,SAAW,YAAMva,KAAK8qB,gBAAgB/L,MAAOA,IAAU,YAAM/e,KAAK8qB,gBAAgB/Y,UAAWA,GAC1I,OAGEue,IAAgBx7B,EAClBw7B,EAAYn3B,GACHo3B,GAAWz7B,GACpBy7B,EAAQz7B,MAKd22B,EAAUp1B,UAAU+2B,wBAA0B,WACxCptB,KAAK8rB,kBAAkByD,eACzBvvB,KAAK8rB,kBAAkByD,aAAaiB,qBAC7BxwB,KAAK8rB,kBAAkByD,eAIlC9D,EAAUp1B,UAAU65B,sBAAwB,WAE1C,MAAO,CACLne,UAFe/R,KAAK8rB,kBAAkB/M,MAEhBhN,UACtByN,QAASxf,KAAKqsB,WACdG,UAAWxsB,KAAKssB,aAChBK,YAAa3sB,KAAKysB,eAClBK,aAAc9sB,KAAK4sB,gBACnBI,YAAahtB,KAAK+sB,eAClBG,gBAAiBltB,KAAKitB,qBAInBxB,EA9WO,CA+Wdb,GAeF,SAAS6F,EAAa1R,EAAOtW,EAASwlB,QACvB,IAATA,IACFA,GAAO,GAGT,IAAIjc,EAAU,qBAAW,eAErB2Z,EAAK,sBAAW,SAAUtX,GAC5B,OAAOA,EAAI,IACV,GACCqc,EAAO/E,EAAG,GACVC,EAAcD,EAAG,GAEjBgF,EAAiBloB,EAAU,YAAS,YAAS,GAAIA,GAAU,CAC7DsW,MAAOA,IACJ,CACHA,MAAOA,GAEL6R,EAAe,mBAEdA,EAAalc,UAChBkc,EAAalc,QAAU,IAAI+W,EAAU,CACnChjB,QAASkoB,EACT3e,QAASA,EACT4Z,YAAaA,KAIjB,IAAIrM,EAAYqR,EAAalc,QAC7B6K,EAAUyL,WAAW2F,GACrBpR,EAAUvN,QAAUA,EACpB,IA5CmB6e,EAAQr5B,EACvBorB,EA2CA/K,EAAO,CACTpP,QAAS,YAAS,YAAS,GAAIkoB,GAAiB,CAC9CJ,aAAS/0B,EACT80B,iBAAa90B,IAEfwW,QAASA,EACT0e,KAAMA,GAEJt5B,GApDey5B,EAoDM,WACvB,OAAO5C,EAAO1O,EAAUgO,cAAgBhO,EAAU4N,WArDzB31B,EAsDxBqgB,GArDC+K,EAAM,oBAEDlO,SAAY,YAAMld,EAAKorB,EAAIlO,QAAQld,OAC1CorB,EAAIlO,QAAU,CACZld,IAAKA,EACLoD,MAAOi2B,MAIJjO,EAAIlO,QAAQ9Z,OA6Cfk2B,EAAc7C,EAAO72B,EAAO,GAAKA,EAWrC,OAVA,qBAAU,WACR,OAAOmoB,EAAUwO,aAAa,CAC5BE,KAAMA,MAEP,CAAC6C,EAAYvW,QAASuW,EAAYtD,cAAesD,EAAYh8B,MAAOg8B,EAAY33B,OACnF,qBAAU,WACR,OAAO,WACL,OAAOomB,EAAUgM,aAElB,IACIn0B,EAGT,SAAS+nB,EAASJ,EAAOtW,GACvB,OAAOgoB,EAAa1R,EAAOtW,GAAS,GAOtC,IAAIsoB,EAAe,SAAUrF,GAG3B,SAASqF,EAAapF,GACpB,IAAIljB,EAAUkjB,EAAGljB,QACbuJ,EAAU2Z,EAAG3Z,QACb5a,EAASu0B,EAAGv0B,OACZ45B,EAAYrF,EAAGqF,UAEfvkB,EAAQif,EAAOn1B,KAAKyJ,KAAMyI,EAASuJ,IAAYhS,KA2BnD,OAzBAyM,EAAMwkB,YAAc,SAAUC,QACI,IAA5BA,IACFA,EAA0B,IAG5BzkB,EAAM0kB,kBAEN,IAAIC,EAAa3kB,EAAM4kB,wBAEvB,OAAO5kB,EAAM6kB,OAAOJ,GAAyB3T,MAAK,SAAUgU,GAG1D,OAFA9kB,EAAM+kB,oBAAoBD,EAAUH,GAE7BG,KACC,OAAE,SAAUz8B,GAGpB,GAFA2X,EAAMglB,gBAAgB38B,EAAOs8B,IAExB3kB,EAAMse,aAAawF,QAAS,MAAMz7B,MAI3C2X,EAAM+e,mBAAmB/iB,EAAQipB,SAAU,IAAaC,UAExDllB,EAAMrV,OAASA,EACfqV,EAAMukB,UAAYA,EAClBvkB,EAAMmlB,qBAAuB,EACtBnlB,EAmHT,OAtJA,YAAUskB,EAAcrF,GAsCxBqF,EAAa16B,UAAU82B,QAAU,SAAU/1B,GAIzC,OAHA4I,KAAK6qB,WAAY,EACjB7qB,KAAKwrB,mBAAmBxrB,KAAK+qB,aAAa2G,SAAU,IAAaC,UACjEv6B,EAAOi0B,OAASrrB,KAAKorB,gBAAgBC,OAC9B,CAACrrB,KAAKixB,YAAa75B,IAG5B25B,EAAa16B,UAAU03B,aAAe,WAEpC,OADA/tB,KAAK6qB,WAAY,EACV7qB,KAAKmrB,QAAQiD,KAAKpuB,OAG3B+wB,EAAa16B,UAAUk1B,QAAU,aAEjCwF,EAAa16B,UAAUi7B,OAAS,SAAUJ,GACxC,IAAIvF,EAAK3rB,KAAK+qB,aACV2G,EAAW/F,EAAG+F,SACd3f,EAAY4Z,EAAG5Z,UACf8f,EAAqBlG,EAAGkG,mBACxBC,EAASnG,EAAGmG,OACZ9D,EAAKrC,EAAG3Z,QACR+f,OAAyB,IAAP/D,EAAgB,GAAKA,EACvCgE,EAAKrG,EAAGsG,oBACRA,OAA6B,IAAPD,GAAwBA,EAC9C3S,EAAcsM,EAAGtM,YAEjB6S,EAAgB,YAAS,GAAIhB,GAE7BiB,EAAkB76B,OAAOkvB,OAAO,GAAIzU,EAAWmgB,EAAcngB,WAEjE,cADOmgB,EAAcngB,UACd/R,KAAKorB,gBAAgBC,OAAOiG,OAAO,YAAS,CACjDI,SAAUA,EACVG,mBAAoBA,EACpBO,eAAgBF,EAAcE,gBAAkBpyB,KAAK+qB,aAAaqH,eAClEH,oBAAqBA,EACrBH,OAAQA,EACR9f,QAAS+f,EACT1S,YAAaA,EACbtN,UAAWogB,GACVD,KAGLnB,EAAa16B,UAAU86B,gBAAkB,WAClCnxB,KAAK5I,OAAOmjB,SAAYva,KAAK+qB,aAAasH,eAC7CryB,KAAKsyB,aAAa,CAChB/X,SAAS,EACTzlB,WAAO0G,EACPrC,UAAMqC,EACNkyB,QAAQ,KAKdqD,EAAa16B,UAAUm7B,oBAAsB,SAAUD,EAAUH,GAC/D,IAAIzF,EAAK3rB,KAAK+qB,aACVuF,EAAc3E,EAAG2E,YACjB+B,EAAgB1G,EAAG0G,cAEnBl5B,EAAOo4B,EAASp4B,KAChBqiB,EAAS+V,EAAS/V,OAClB1mB,EAAQ0mB,GAAUA,EAAOxlB,OAAS,EAAI,IAAI,IAAY,CACxDoc,cAAeoJ,SACZhgB,EAMDwE,KAAKuyB,qBAAqBnB,KAAgBiB,GAC5CryB,KAAKsyB,aAAa,CAChB5E,QAAQ,EACRnT,SAAS,EACTphB,KAAMA,EACNrE,MAAOA,IARFw7B,GAAcA,EAAYn3B,IAerC43B,EAAa16B,UAAUo7B,gBAAkB,SAAU38B,EAAOs8B,GACxD,IAAIb,EAAUvwB,KAAK+qB,aAAawF,QAE5BvwB,KAAKuyB,qBAAqBnB,IAC5BpxB,KAAKsyB,aAAa,CAChB/X,SAAS,EACTzlB,MAAOA,EACPqE,UAAMqC,EACNkyB,QAAQ,IAIR6C,GACFA,EAAQz7B,IAIZi8B,EAAa16B,UAAUg7B,sBAAwB,WAC7C,QAASrxB,KAAK4xB,sBAGhBb,EAAa16B,UAAUk8B,qBAAuB,SAAUnB,GACtD,OAAOpxB,KAAK4xB,uBAAyBR,GAGvCL,EAAa16B,UAAUi8B,aAAe,SAAUl7B,IAC1C4I,KAAK6qB,WAAe7qB,KAAK0vB,gBAAmB,YAAM1vB,KAAK0vB,eAAgBt4B,KACzE4I,KAAKgxB,UAAU55B,GACf4I,KAAK0vB,eAAiBt4B,IAInB25B,EAvJU,CAwJjBnG,GAEF,SAAS3a,EAAYyhB,EAAUjpB,GAC7B,IAAIuJ,EAAU,qBAAW,eAErB2Z,EAAK,mBAAS,CAChB+B,QAAQ,EACRnT,SAAS,IAEPnjB,EAASu0B,EAAG,GACZqF,EAAYrF,EAAG,GAEfgF,EAAiBloB,EAAU,YAAS,YAAS,GAAIA,GAAU,CAC7DipB,SAAUA,IACP,CACHA,SAAUA,GAERc,EAAkB,mBAetB,IAAIC,GAZGD,EAAgB9d,UACnB8d,EAAgB9d,QAAU,IAAIqc,EAAa,CACzCtoB,QAASkoB,EACT3e,QAASA,EACT5a,OAAQA,EACR45B,UAAWA,KAIRwB,EAAgB9d,SASzB,OALA+d,EAAazH,WAAW2F,GACxB8B,EAAazgB,QAAUA,EACvB,qBAAU,WACR,OAAOygB,EAAa1E,kBAEf0E,EAAatF,QAAQ/1B,IAGP,SAAUs0B,GAG/B,SAASgH,EAAiB/G,GACxB,IAAIljB,EAAUkjB,EAAGljB,QACbuJ,EAAU2Z,EAAG3Z,QACbgf,EAAYrF,EAAGqF,UAEfvkB,EAAQif,EAAOn1B,KAAKyJ,KAAMyI,EAASuJ,IAAYhS,KAOnD,OALAyM,EAAMqf,kBAAoB,GAC1Brf,EAAMukB,UAAYA,EAElBvkB,EAAMkmB,WAAWlqB,GAEVgE,EAdT,YAAUimB,EAAkBhH,GAiB5BgH,EAAiBr8B,UAAU82B,QAAU,SAAU/1B,GAC7C,IAA+B,IAA3B4I,KAAK+qB,aAAa3L,KAEpB,OADApf,KAAKurB,UACE,CACLhR,SAAS,EACTzlB,WAAO0G,EACPrC,UAAMqC,EACNuW,UAAW/R,KAAK+qB,aAAahZ,WAIjC,IAAIoe,EAAgB/4B,EAEhB4I,KAAKorB,gBAAgBE,QACvB6E,EAAgBnwB,KAAK4yB,oBAGvB,IAAIC,EAAoB7yB,KAAK+qB,aAAa8H,kBAc1C,MAZiC,mBAAtBA,IACTA,IAAsBA,EAAkB7yB,KAAK+qB,gBAGrB,IAAtB8H,GAA+B7yB,KAAK8qB,iBAAmBxzB,OAAOC,KAAKyI,KAAK8qB,iBAAiB90B,OAAS,IAAMgK,KAAK8qB,gBAAgByE,eAAiBvvB,KAAK+qB,aAAawE,eAAiB,YAAMvvB,KAAK8qB,gBAAgB/Y,UAAW/R,KAAK+qB,aAAahZ,YAAc/R,KAAK8qB,gBAAgB1L,OAASpf,KAAK+qB,aAAa3L,QACzSpf,KAAKurB,UACL4E,EAAgBnwB,KAAK4yB,oBAGvB5yB,KAAK2yB,WAAW3yB,KAAK+qB,cACrB/qB,KAAK8yB,oBACL9yB,KAAK8qB,gBAAkB9qB,KAAK+qB,aACrB,YAAS,YAAS,GAAIoF,GAAgB,CAC3Cpe,UAAW/R,KAAK+qB,aAAahZ,aAIjC2gB,EAAiBr8B,UAAU03B,aAAe,WACxC/tB,KAAK6qB,WAAY,GAGnB6H,EAAiBr8B,UAAUk1B,QAAU,WACnCvrB,KAAK+yB,yBACE/yB,KAAK8rB,kBAAkB/M,OAGhC2T,EAAiBr8B,UAAUs8B,WAAa,SAAUlqB,GAC5CzI,KAAK8rB,kBAAkB/M,QAAoC,IAA3B/e,KAAK+qB,aAAa3L,OACtDpf,KAAK8rB,kBAAkB/M,MAAQ/e,KAAKorB,gBAAgBC,OAAOoE,UAAU,CACnE1Q,MAAOtW,EAAQ8mB,aACfxd,UAAWtJ,EAAQsJ,UACnBsN,YAAa5W,EAAQ4W,gBAIzBqT,EAAiBr8B,UAAUy8B,kBAAoB,WACzC9yB,KAAK8rB,kBAAkByD,eAC3BvvB,KAAK8rB,kBAAkByD,aAAevvB,KAAK8rB,kBAAkB/M,MAAM0Q,UAAU,CAC3EjqB,KAAMxF,KAAKgzB,kBAAkB5E,KAAKpuB,MAClClL,MAAOkL,KAAKizB,YAAY7E,KAAKpuB,MAC7BkzB,SAAUlzB,KAAKmzB,qBAAqB/E,KAAKpuB,UAI7C0yB,EAAiBr8B,UAAUu8B,iBAAmB,WAC5C,MAAO,CACLrY,SAAS,EACTzlB,WAAO0G,EACPrC,UAAMqC,IAIVk3B,EAAiBr8B,UAAUi8B,aAAe,SAAUl7B,GAC9C4I,KAAK6qB,WACP7qB,KAAKgxB,UAAU55B,IAInBs7B,EAAiBr8B,UAAU28B,kBAAoB,SAAU57B,GACvD,IAAIg8B,EAAqBpzB,KAAK+qB,aAAaqI,mBAC3CpzB,KAAKsyB,aAAa,CAChBn5B,KAAM/B,EAAO+B,KACbohB,SAAS,EACTzlB,WAAO0G,IAGL43B,GACFA,EAAmB,CACjB/H,OAAQrrB,KAAKorB,gBAAgBC,OAC7BgI,iBAAkBj8B,KAKxBs7B,EAAiBr8B,UAAU48B,YAAc,SAAUn+B,GACjDkL,KAAKsyB,aAAa,CAChBx9B,MAAOA,EACPylB,SAAS,KAIbmY,EAAiBr8B,UAAU88B,qBAAuB,WAChD,IAAIG,EAAyBtzB,KAAK+qB,aAAauI,uBAC3CA,GAAwBA,IAC5BtzB,KAAK+yB,mBAGPL,EAAiBr8B,UAAU08B,gBAAkB,WACvC/yB,KAAK8rB,kBAAkByD,eACzBvvB,KAAK8rB,kBAAkByD,aAAaiB,qBAC7BxwB,KAAK8rB,kBAAkByD,eA/Hb,CAoIrB3E,IAyDmB,WACnB,SAAS2I,IACPvzB,KAAKwzB,cAAgB,IAAIC,IACzBzzB,KAAK0zB,cAAgB,IAAID,IAG3BF,EAAel9B,UAAUg5B,sBAAwB,SAAUsE,EAAY/V,GACrE5d,KAAK4zB,gBAAgBhW,GAAO+V,WAAaA,GAG3CJ,EAAel9B,UAAU64B,iBAAmB,SAAUtR,GACpD,OAAO5d,KAAK4zB,gBAAgBhW,GAAO+V,YAGrCJ,EAAel9B,UAAUs4B,gBAAkB,SAAUkF,EAAeC,GAGlE,OAFW9zB,KAAK4zB,gBAAgBC,EAAc9I,cAEpCgJ,KAOHD,KANL9zB,KAAKwzB,cAAcQ,IAAIH,EAAc9I,aAAc,IAAIkJ,SAAQ,SAAUC,GACvEA,EAAQL,EAAclG,iBAEjB,OAMX4F,EAAel9B,UAAU89B,YAAc,WACrC,OAAOn0B,KAAKwzB,cAAchO,KAAO,GAGnC+N,EAAel9B,UAAU+9B,wBAA0B,WACjD,IAAI3nB,EAAQzM,KAERq0B,EAAW,GAMf,OALAr0B,KAAKwzB,cAAcc,SAAQ,SAAUC,EAASV,GAC5CpnB,EAAMmnB,gBAAgBC,GAAeE,MAAO,EAC5CM,EAASv2B,KAAKy2B,MAEhBv0B,KAAKwzB,cAAcgB,QACZP,QAAQQ,IAAIJ,IAGrBd,EAAel9B,UAAUu9B,gBAAkB,SAAUhW,GACnD,IAAI8V,EAAgB1zB,KAAK0zB,cACrB3U,EAAQnB,EAAMmB,MACdhN,EAAY6L,EAAM7L,UAClB2iB,EAAShB,EAAc3vB,IAAIgb,IAAU,IAAI0U,IACxCC,EAAciB,IAAI5V,IAAQ2U,EAAcM,IAAIjV,EAAO2V,GACxD,IAAIE,EAAkB7uB,KAAKC,UAAU+L,GACjC8iB,EAAOH,EAAO3wB,IAAI6wB,IAxDjB,CACLb,MAAM,EACNJ,WAAY,MAwDZ,OADKe,EAAOC,IAAIC,IAAkBF,EAAOV,IAAIY,EAAiBC,GACvDA,GApDU,I,mBCn4BrBh+B,EAAOC,QAJP,SAAyB6b,GACvB,GAAIvc,MAAMgJ,QAAQuT,GAAM,OAAOA,I,mBCGjC9b,EAAOC,QAJP,WACE,MAAM,IAAIE,UAAU,0D,sBCDtB,YAOA,IAPA,MAAU,EAAQ,QACd89B,EAAyB,oBAAXlgB,OAAyBmgB,EAASngB,OAChDogB,EAAU,CAAC,MAAO,UAClBC,EAAS,iBACTC,EAAMJ,EAAK,UAAYG,GACvBE,EAAML,EAAK,SAAWG,IAAWH,EAAK,gBAAkBG,GAEnDr+B,EAAI,GAAIs+B,GAAOt+B,EAAIo+B,EAAQh/B,OAAQY,IAC1Cs+B,EAAMJ,EAAKE,EAAQp+B,GAAK,UAAYq+B,GACpCE,EAAML,EAAKE,EAAQp+B,GAAK,SAAWq+B,IAAWH,EAAKE,EAAQp+B,GAAK,gBAAkBq+B,GAIpF,IAAKC,IAAQC,EAAK,CAChB,IAAIC,EAAO,EACPrX,EAAK,EACLsX,EAAQ,GAGZH,EAAM,SAAa9e,GACjB,GAAqB,IAAjBif,EAAMr/B,OAAc,CACtB,IAAIs/B,EAAOrQ,IACPzf,EAAO9H,KAAKY,IAAI,EALJ,IAAO,IAKiBg3B,EAAOF,IAE/CA,EAAO5vB,EAAO8vB,EACd7S,YAAW,WACT,IAAI8S,EAAKF,EAAMn/B,MAAM,GAIrBm/B,EAAMr/B,OAAS,EAEf,IAAK,IAAIY,EAAI,EAAGA,EAAI2+B,EAAGv/B,OAAQY,IAC7B,IAAK2+B,EAAG3+B,GAAG4+B,UACT,IACED,EAAG3+B,GAAGwf,SAASgf,GACf,MAAOrZ,GACP0G,YAAW,WACT,MAAM1G,IACL,MAIRre,KAAK+S,MAAMjL,IAQhB,OALA6vB,EAAMv3B,KAAK,CACT+X,SAAUkI,EACV3H,SAAUA,EACVof,WAAW,IAENzX,GAGToX,EAAM,SAAatf,GACjB,IAAK,IAAIjf,EAAI,EAAGA,EAAIy+B,EAAMr/B,OAAQY,IAC5By+B,EAAMz+B,GAAGif,SAAWA,IACtBwf,EAAMz+B,GAAG4+B,WAAY,IAM7B3+B,EAAOC,QAAU,SAAUwE,GAIzB,OAAO45B,EAAI3+B,KAAKu+B,EAAMx5B,IAGxBzE,EAAOC,QAAQ2+B,OAAS,WACtBN,EAAI52B,MAAMu2B,EAAMv5B,YAGlB1E,EAAOC,QAAQ4+B,SAAW,SAAU7N,GAC7BA,IACHA,EAASiN,GAGXjN,EAAO8N,sBAAwBT,EAC/BrN,EAAO+N,qBAAuBT,K","file":"component---src-pages-index-js-91f3914d5e95599be673.js","sourcesContent":["import gql from 'graphql-tag';\n\nconst request = {\n\tvalidation: null,\n\n\trequest: {\n\t\tname: 'void'\n\t},\n\n\tgql: {\n\t\tschema: gql`\n\t\t\tquery {\n\t\t\t request {\n\t\t\t\t\trow_id\n\t\t\t }\n\t\t\t}\n\t\t`\n\t}\n};\n\nexport default request;\n","import { lng } from '../../config/language';\n\nconst request = {\n\tvalidation: {\n\n\t\tgivenname: {\n\t\t\trequired: true,\n\t\t\tvalidator: null\n\t\t\t/*\n\t\t\tvalidator: {\n\t\t\t\tregEx: /^[a-zA-Z0-9]+$/,\n\t\t\t\terror: lng('validationGivenname')\n\t\t\t}\n\t\t\t*/\n\t\t},\n\n\t\tsurname: {\n\t\t\trequired: true,\n\t\t\tvalidator: null\n\t\t},\n\n\t\temail: {\n\t\t\trequired: true,\n\t\t\tvalidator: {\n\t\t\t\t// regEx: /^(?!\\.)(?!.*\\.\\.)[a-zA-Z0-9!#$%&‘.*+/=?^_`{|}~-]+(? {\n\tswitch (action.type) {\n\t// == Remote submit & submit button\n\n\tcase 'RESET_SUBMIT': {\n\t\treturn { ...state, submittedStep: null };\n\t}\n\n\tcase 'SUBMIT_STEP': {\n\t\treturn { ...state, submittedStep: state.step, submitCnt: state.submitCnt + 1 };\n\t}\n\n\tcase 'SET_SUBMIT_BUTTON': {\n\t\tconst { payload } = action;\n\t\treturn { ...state, submitBtn: payload };\n\t}\n\n\tcase 'RESET_SUBMIT_BUTTON': {\n\t\treturn { ...state, submitBtn: submitBtnDefault };\n\t}\n\n\tcase 'TOGGLE_SUBMIT_LOCK': {\n\t\treturn { ...state, submitLocked: !state.submitLocked };\n\t}\n\n\t// == Data\n\n\tcase 'UPDATE_DATA': {\n\t\tconst { payload } = action;\n\t\tconst { data } = payload;\n\t\treturn { ...state, data: { ...state.data, ...data } };\n\t}\n\n\t// == Moving/reset calculator\n\n\tcase 'RESET_CALCULATOR': {\n\t\treturn { ...state, step: 1, submittedStep: null, instanceId: state.instanceId + 1, data: state.defaultValues, notification: notificationDefault, submitBtn: submitBtnDefault, submitLocked: false };\n\t}\n\n\tcase 'STEP_PREV': {\n\t\tconst { step } = state;\n\t\treturn { ...state, step: step - 1 };\n\t}\n\n\tcase 'STEP_NEXT': {\n\t\tconst { step } = state;\n\t\treturn { ...state, step: step + 1 };\n\t}\n\n\tcase 'SET_MONTHLY_INSTALLMENT': {\n\t\tconst { payload } = action;\n\t\treturn { ...state, monthlyInstallment: payload };\n\t}\n\n\t// == Notification\n\n\tcase 'SET_NOTIFICATION': {\n\t\tconst { payload } = action;\n\t\treturn { ...state, notification: payload };\n\t}\n\n\tcase 'RESET_NOTIFICATION': {\n\t\treturn { ...state, notification: notificationDefault };\n\t}\n\n\t// == Modal\n\n\tcase 'MODAL': {\n\t\tconst { payload: { visible, data, onConfirm, onCancel } } = action;\n\t\treturn { ...state, modal: { visible: visible || false || false, data: data || {}, onConfirm, onCancel } };\n\t}\n\n\tdefault:\n\t\treturn state;\n\t}\n};\n\nexport default reducer;\n","import React, { createContext, useContext, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation } from '@reach/router';\nimport queryString from 'query-string';\n\nimport reducer from '../reducers/calculator';\n\nconst CalculatorContext = createContext();\nexport default CalculatorContext;\n\nexport function CalculatorProvider({ children }) {\n\tconst location = useLocation();\n\n\t// Check, if any parameters are predefined via url\n\tconst paramsViaURL = location.search ? queryString.parse(location.search) : {};\n\n\tconst [data, dispatch] = useReducer(reducer, {\n\t\tinstanceId: 1, // to reset calculator component\n\t\tmonthlyInstallment: 0,\n\t\tdata: {},\n\t\tsteps: [1, 2, 3],\n\t\tstep: 1,\n\t\tsubmitBtn: {},\n\t\tsubmitCnt: 0,\n\t\tsubmittedStep: null,\n\t\tsubmitLocked: false,\n\t\tparamsViaURL: Object.keys(paramsViaURL).length > 0 ? paramsViaURL : null,\n\t\tdefaultValues: {\n\t\t\tamount: paramsViaURL.amount || 50000,\n\t\t\trepayment_period: paramsViaURL.repayment_period || 20,\n\t\t\tbank: paramsViaURL.bank ? paramsViaURL.bank.split(',') : [],\n\t\t\tmonthly_income: 1500,\n\t\t\tfamily: 'Brez vzdrÅŸevanih članov'\n\t\t},\n\t\tnotification: {\n\t\t\tvisible: false // check \"component/calculator-data.js\" how object should look like\n\t\t},\n\t\tmodal: {\n\t\t\tvisible: false,\n\t\t\tdata: {},\n\t\t\tonConfirm: null,\n\t\t\tonCancel: null\n\t\t}\n\t});\n\n\treturn ({children});\n}\n\nCalculatorProvider.propTypes = {\n\tchildren: PropTypes.node.isRequired\n};\n\nexport const useStore = () => useContext(CalculatorContext);\n","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}","import \"core-js/modules/es6.date.to-json\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';\n/**\n * The `defineToJSON()` function defines toJSON() and inspect() prototype\n * methods, if no function provided they become aliases for toString().\n */\n\nexport default function defineToJSON(classObject) {\n var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;\n classObject.prototype.toJSON = fn;\n classObject.prototype.inspect = fn;\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\n\n\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}","import \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.function.name\";\nimport { getLocation } from '../language/location';\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var sublineIndex = Math.floor(columnNum / 80);\n var sublineColumnNum = columnNum % 80;\n var sublines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n sublines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), sublines[0]]].concat(sublines.slice(1, sublineIndex + 1).map(function (subline) {\n return ['', subline];\n }), [[' ', whitespace(sublineColumnNum - 1) + '^'], ['', sublines[sublineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return lpad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction lpad(len, str) {\n return whitespace(len - str.length) + str;\n}","import \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.object.define-properties\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.array.is-array\";\nimport isObjectLike from '../jsutils/isObjectLike';\nimport { getLocation } from '../language/location';\nimport { printLocation, printSourceLocation } from '../language/printLocation';\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport function GraphQLError( // eslint-disable-line no-redeclare\nmessage, nodes, source, positions, path, originalError, extensions) {\n // Compute list of blame nodes.\n var _nodes = Array.isArray(nodes) ? nodes.length !== 0 ? nodes : undefined : nodes ? [nodes] : undefined; // Compute locations in the source for the given nodes/positions.\n\n\n var _source = source;\n\n if (!_source && _nodes) {\n var node = _nodes[0];\n _source = node && node.loc && node.loc.source;\n }\n\n var _positions = positions;\n\n if (!_positions && _nodes) {\n _positions = _nodes.reduce(function (list, node) {\n if (node.loc) {\n list.push(node.loc.start);\n }\n\n return list;\n }, []);\n }\n\n if (_positions && _positions.length === 0) {\n _positions = undefined;\n }\n\n var _locations;\n\n if (positions && source) {\n _locations = positions.map(function (pos) {\n return getLocation(source, pos);\n });\n } else if (_nodes) {\n _locations = _nodes.reduce(function (list, node) {\n if (node.loc) {\n list.push(getLocation(node.loc.source, node.loc.start));\n }\n\n return list;\n }, []);\n }\n\n var _extensions = extensions;\n\n if (_extensions == null && originalError != null) {\n var originalExtensions = originalError.extensions;\n\n if (isObjectLike(originalExtensions)) {\n _extensions = originalExtensions;\n }\n }\n\n Object.defineProperties(this, {\n message: {\n value: message,\n // By being enumerable, JSON.stringify will include `message` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true,\n writable: true\n },\n locations: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: _locations || undefined,\n // By being enumerable, JSON.stringify will include `locations` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: Boolean(_locations)\n },\n path: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: path || undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: Boolean(path)\n },\n nodes: {\n value: _nodes || undefined\n },\n source: {\n value: _source || undefined\n },\n positions: {\n value: _positions || undefined\n },\n originalError: {\n value: originalError\n },\n extensions: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: _extensions || undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: Boolean(_extensions)\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError && originalError.stack) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n}\nGraphQLError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: GraphQLError\n },\n name: {\n value: 'GraphQLError'\n },\n toString: {\n value: function toString() {\n return printError(this);\n }\n }\n});\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i2 = 0, _error$nodes2 = error.nodes; _i2 < _error$nodes2.length; _i2++) {\n var node = _error$nodes2[_i2];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i4 = 0, _error$locations2 = error.locations; _i4 < _error$locations2.length; _i4++) {\n var location = _error$locations2[_i4];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}","import { GraphQLError } from './GraphQLError';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}","import \"core-js/modules/es6.object.freeze\";\n\n/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */","import \"core-js/modules/es6.function.name\";\nimport devAssert from '../jsutils/devAssert';\nimport defineToStringTag from '../jsutils/defineToStringTag';\n/**\n * A representation of source input to GraphQL.\n * `name` and `locationOffset` are optional. They are useful for clients who\n * store GraphQL documents in source files; for example, if the GraphQL input\n * starts at line 40 in a file named Foo.graphql, it might be useful for name to\n * be \"Foo.graphql\" and location to be `{ line: 40, column: 0 }`.\n * line and column in locationOffset are 1-indexed\n */\n\nexport var Source = function Source(body, name, locationOffset) {\n this.body = body;\n this.name = name || 'GraphQL request';\n this.locationOffset = locationOffset || {\n line: 1,\n column: 1\n };\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive');\n}; // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported\n\ndefineToStringTag(Source);","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\n\n/**\n * The `defineToStringTag()` function checks first to see if the runtime\n * supports the `Symbol` class and then if the `Symbol.toStringTag` constant\n * is defined as a `Symbol` instance. If both conditions are met, the\n * Symbol.toStringTag property is defined as a getter that returns the\n * supplied class constructor's name.\n *\n * @method defineToStringTag\n *\n * @param {Class} classObject a class such as Object, String, Number but\n * typically one of your own creation through the class keyword; `class A {}`,\n * for example.\n */\nexport default function defineToStringTag(classObject) {\n if (typeof Symbol === 'function' && Symbol.toStringTag) {\n Object.defineProperty(classObject.prototype, Symbol.toStringTag, {\n get: function get() {\n return this.constructor.name;\n }\n });\n }\n}","import \"core-js/modules/es6.object.freeze\";\n\n/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '',\n EOF: '',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport defineToJSON from '../jsutils/defineToJSON';\nimport { syntaxError } from '../error/syntaxError';\nimport { dedentBlockStringValue } from './blockString';\nimport { TokenKind } from './tokenKind';\n/**\n * Given a Source object, this returns a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport function createLexer(source, options) {\n var startOfFileToken = new Tok(TokenKind.SOF, 0, 0, 0, 0, null);\n var lexer = {\n source: source,\n options: options,\n lastToken: startOfFileToken,\n token: startOfFileToken,\n line: 1,\n lineStart: 0,\n advance: advanceLexer,\n lookahead: lookahead\n };\n return lexer;\n}\n\nfunction advanceLexer() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n}\n\nfunction lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = token.next || (token.next = readToken(this, token));\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n}\n/**\n * The return type of createLexer.\n */\n// @internal\n\n\nexport function isPunctuatorToken(token) {\n var kind = token.kind;\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n/**\n * Helper function for constructing the Token object.\n */\n\nfunction Tok(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n} // Print a simplified form when appearing in JSON/util.inspect.\n\n\ndefineToJSON(Tok, function () {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n});\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = positionAfterWhitespace(body, prev.end, lexer);\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n\n if (pos >= bodyLength) {\n return new Tok(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n }\n\n var code = body.charCodeAt(pos); // SourceCharacter\n\n switch (code) {\n // !\n case 33:\n return new Tok(TokenKind.BANG, pos, pos + 1, line, col, prev);\n // #\n\n case 35:\n return readComment(source, pos, line, col, prev);\n // $\n\n case 36:\n return new Tok(TokenKind.DOLLAR, pos, pos + 1, line, col, prev);\n // &\n\n case 38:\n return new Tok(TokenKind.AMP, pos, pos + 1, line, col, prev);\n // (\n\n case 40:\n return new Tok(TokenKind.PAREN_L, pos, pos + 1, line, col, prev);\n // )\n\n case 41:\n return new Tok(TokenKind.PAREN_R, pos, pos + 1, line, col, prev);\n // .\n\n case 46:\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Tok(TokenKind.SPREAD, pos, pos + 3, line, col, prev);\n }\n\n break;\n // :\n\n case 58:\n return new Tok(TokenKind.COLON, pos, pos + 1, line, col, prev);\n // =\n\n case 61:\n return new Tok(TokenKind.EQUALS, pos, pos + 1, line, col, prev);\n // @\n\n case 64:\n return new Tok(TokenKind.AT, pos, pos + 1, line, col, prev);\n // [\n\n case 91:\n return new Tok(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev);\n // ]\n\n case 93:\n return new Tok(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev);\n // {\n\n case 123:\n return new Tok(TokenKind.BRACE_L, pos, pos + 1, line, col, prev);\n // |\n\n case 124:\n return new Tok(TokenKind.PIPE, pos, pos + 1, line, col, prev);\n // }\n\n case 125:\n return new Tok(TokenKind.BRACE_R, pos, pos + 1, line, col, prev);\n // A-Z _ a-z\n\n case 65:\n case 66:\n case 67:\n case 68:\n case 69:\n case 70:\n case 71:\n case 72:\n case 73:\n case 74:\n case 75:\n case 76:\n case 77:\n case 78:\n case 79:\n case 80:\n case 81:\n case 82:\n case 83:\n case 84:\n case 85:\n case 86:\n case 87:\n case 88:\n case 89:\n case 90:\n case 95:\n case 97:\n case 98:\n case 99:\n case 100:\n case 101:\n case 102:\n case 103:\n case 104:\n case 105:\n case 106:\n case 107:\n case 108:\n case 109:\n case 110:\n case 111:\n case 112:\n case 113:\n case 114:\n case 115:\n case 116:\n case 117:\n case 118:\n case 119:\n case 120:\n case 121:\n case 122:\n return readName(source, pos, line, col, prev);\n // - 0-9\n\n case 45:\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n return readNumber(source, pos, code, line, col, prev);\n // \"\n\n case 34:\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, line, col, prev, lexer);\n }\n\n return readString(source, pos, line, col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads from body starting at startPosition until it finds a non-whitespace\n * character, then returns the position of that character for lexing.\n */\n\n\nfunction positionAfterWhitespace(body, startPosition, lexer) {\n var bodyLength = body.length;\n var position = startPosition;\n\n while (position < bodyLength) {\n var code = body.charCodeAt(position); // tab | space | comma | BOM\n\n if (code === 9 || code === 32 || code === 44 || code === 0xfeff) {\n ++position;\n } else if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else {\n break;\n }\n }\n\n return position;\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Tok(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or e\n\n\n if (code === 46 || code === 69 || code === 101) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Tok(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Tok(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Tok(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Tok(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n}","import \"core-js/modules/es6.object.freeze\";\n\n/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */","import inspect from '../jsutils/inspect';\nimport devAssert from '../jsutils/devAssert';\nimport defineToJSON from '../jsutils/defineToJSON';\nimport { syntaxError } from '../error/syntaxError';\nimport { Kind } from './kinds';\nimport { Source } from './source';\nimport { createLexer } from './lexer';\nimport { DirectiveLocation } from './directiveLocation';\nimport { TokenKind } from './tokenKind';\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\n\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n\nvar Parser =\n/*#__PURE__*/\nfunction () {\n function Parser(source, options) {\n var sourceObj = typeof source === 'string' ? new Source(source) : source;\n sourceObj instanceof Source || devAssert(0, \"Must provide Source. Received: \".concat(inspect(sourceObj)));\n this._lexer = createLexer(sourceObj);\n this._options = options || {};\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (this._options.experimentalFragmentVariables) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n if (token.value === 'true' || token.value === 'false') {\n this._lexer.advance();\n\n return {\n kind: Kind.BOOLEAN,\n value: token.value === 'true',\n loc: this.loc(token)\n };\n } else if (token.value === 'null') {\n this._lexer.advance();\n\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n }\n\n this._lexer.advance();\n\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var types = [];\n\n if (this.expectOptionalKeyword('implements')) {\n // Optional leading ampersand\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || // Legacy support for the SDL?\n this._options.allowLegacySDLImplementsInterfaces && this.peek(TokenKind.NAME));\n }\n\n return types;\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n // Legacy support for the SDL?\n if (this._options.allowLegacySDLEmptyFields && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n var types = [];\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n // Optional leading pipe\n this.expectOptionalToken(TokenKind.PIPE);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.PIPE));\n }\n\n return types;\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name Directives[Const]? FieldsDefinition\n * - extend interface Name Directives[Const]\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n // Optional leading pipe\n this.expectOptionalToken(TokenKind.PIPE);\n var locations = [];\n\n do {\n locations.push(this.parseDirectiveLocation());\n } while (this.expectOptionalToken(TokenKind.PIPE));\n\n return locations;\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in\n * the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n if (!this._options.noLocation) {\n return new Loc(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing\n * the lexer. Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(kind, \", found \").concat(getTokenDesc(token)));\n }\n /**\n * If the next token is of the given kind, return that token after advancing\n * the lexer. Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token)));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing\n * the lexer. Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token\n * is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken || this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token)));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by\n * the parseFn. This list begins with a lex token of openKind\n * and ends with a lex token of closeKind. Advances the parser\n * to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always\n * return non-empty list that begins with a lex token of openKind and ends\n * with a lex token of closeKind. Advances the parser to the next lex token\n * after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by\n * the parseFn. This list begins with a lex token of openKind\n * and ends with a lex token of closeKind. Advances the parser\n * to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n\nfunction Loc(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n} // Print a simplified form when appearing in JSON/util.inspect.\n\n\ndefineToJSON(Loc, function () {\n return {\n start: this.start,\n end: this.end\n };\n});\n/**\n * A helper function to describe a token as a string for debugging\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return value ? \"\".concat(token.kind, \" \\\"\").concat(value, \"\\\"\") : token.kind;\n}","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","import gql from 'graphql-tag';\n\nconst request = {\n\tvalidation: {},\n\n\tgql: {\n\t\t// Any change here, update calculator-submit.js\n\t\tschema: gql`\n\t\t\tmutation CatchRequest(\n\t\t\t\t$source: String,\n\t\t\t\t$request_id: String,\n\t\t\t\t$amount: Int,\n\t\t\t\t$repayment_period: Int,\n\t\t\t\t$bank: [String],\n\t\t\t\t$monthly_income: Int,\n\t\t\t\t$children_cnt: String,\n\t\t\t\t$dependents: String,\n\t\t\t\t$family: String,\n\t\t\t\t$credit_time: String,\n\t\t\t\t$givenname: String,\n\t\t\t\t$surname: String,\n\t\t\t\t$email: String,\n\t\t\t\t$telephone: String,\n\t\t\t\t$is_candidate_bs: String\n\t\t\t) {\n\t\t\t\trequest(\n\t\t\t\t\tsource: $source,\n\t\t\t\t\trequest_id: $request_id,\n\t\t\t\t\tamount: $amount,\n\t\t\t\t\trepayment_period: $repayment_period,\n\t\t\t\t\tbank: $bank,\n\t\t\t\t\tmonthly_income: $monthly_income,\n\t\t\t\t\tchildren_cnt: $children_cnt,\n\t\t\t\t\tdependents: $dependents,\n\t\t\t\t\tfamily: $family,\n\t\t\t\t\tcredit_time: $credit_time,\n\t\t\t\t\tgivenname: $givenname,\n\t\t\t\t\tsurname: $surname,\n\t\t\t\t\temail: $email,\n\t\t\t\t\ttelephone: $telephone,\n\t\t\t\t\tis_candidate_bs: $is_candidate_bs\n\t\t\t\t) {\n\t\t\t\t\tid\n\t\t\t\t}\n\t\t\t}\n\t\t`\n\t}\n};\n\nexport default request;\n","import { useMutation } from '@apollo/react-hooks';\n\nimport { useStore as calculatorStore } from '../../contexts/calculator';\nimport { setContext } from '../../helpers/gql';\nimport requestCatchRequest from '../../requests/mutation/calculator-catch-request';\n\nconst useCalculator = () => {\n\tconst [gqlRequestCatchMutation] = useMutation(requestCatchRequest.gql.schema);\n\n\tconst { data: calculatorData } = calculatorStore();\n\tconst { data } = calculatorData;\n\n\tconst catchRequest = (variables) => {\n\t\tgqlRequestCatchMutation({\n\t\t\tvariables, // combine all saved data till now and from last form\n\t\t\tcontext: setContext('catch_request'), // use same \"request\" as submit, but another request name (same structure of data)\n\t\t\terrorPolicy: 'all'\n\t\t});\n\t};\n\n\tconst pmt = (ratePerPeriod, numberOfPayments, presentValue) => {\n\t\tconst futureValue = 0;\n\t\tconst type = 0;\n\n\t\tif (ratePerPeriod !== 0.0) {\n\t\t\tconst q = (1 + ratePerPeriod) ** numberOfPayments; // new version Math.pow(1 + ratePerPeriod, numberOfPayments)\n\t\t\treturn -(ratePerPeriod * (futureValue + (q * presentValue))) / ((-1 + q) * (1 + ratePerPeriod * (type)));\n\t\t}\n\n\t\treturn 0;\n\t};\n\n\tconst prepareData = (d) => {\n\t\tconst r = {};\n\t\tconst list = d ? Object.keys(d) : [];\n\n\t\tif (list.length > 0) {\n\t\t\tlist.map((k) => {\n\t\t\t\tr[k] = (typeof d[k] === 'object' && d[k]) ? (d[k].value || null) : d[k];\n\t\t\t\treturn true;\n\t\t\t});\n\t\t}\n\n\t\treturn r;\n\t};\n\n\tconst calculateMonthlyInstallment = (remoteData) => {\n\t\tconst d = prepareData(remoteData) || data;\n\t\tconst interestRate = 3.8; // %\n\n\t\treturn Math.round((Math.abs(pmt((interestRate / 100) / 12, d.repayment_period * 12, d.amount))) * 100) / 100;\n\t};\n\n\tconst isBSCandidate = (remoteData, returnResult = false) => {\n\t\tconst d = remoteData ? { ...data, ...prepareData(remoteData) } : data;\n\n\t\tif (d.monthly_income) {\n\t\t\tconst isF = (d.children_cnt > 0 || d.children_cnt === 'Več' || d.dependents > 0 || d.dependents === 'Več');\n\t\t\tconst minWage = 745;\n\n\t\t\tconst family = {\n\t\t\t\tEnostarÅ¡evska: {\n\t\t\t\t\tfactor: 1,\n\t\t\t\t\tzNo: 274\n\t\t\t\t},\n\t\t\t\tDvostarÅ¡evska: {\n\t\t\t\t\tfactor: 2,\n\t\t\t\t\tzNo: 274\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst adultCnt = d.dependents !== 'Več' ? Number(d.dependents) : 5;\n\t\t\tconst childrenCnt = d.children_cnt !== 'Več' ? Number(d.children_cnt) : 5;\n\t\t\tconst byFamily = family[d.family] || {};\n\n\t\t\tconst familyRelatedPart = isF ? ((childrenCnt + adultCnt) / byFamily.factor) * byFamily.zNo : 0;\n\n\t\t\t// (PRIHODEK - (MP + (Å t.Otrok + Å t.Odraslih)/(factor * ZnO))\n\t\t\t// setStepAmount(d.monthly_income - (minWage + ((childrenCnt + adultCnt) / byFamily.factor) * byFamily.zNo));\n\t\t\tconst amount = d.monthly_income - (minWage + familyRelatedPart);\n\t\t\tconst monthlyInstallment = calculateMonthlyInstallment(d);\n\n\t\t\t// console.log(monthlyInstallment, amount, monthlyInstallment <= amount);\n\n\t\t\tconst status = monthlyInstallment <= amount;\n\n\t\t\t// Optional: return calculated values + status as result\n\t\t\tif (returnResult === true) {\n\t\t\t\treturn { status, monthlyInstallment, amount };\n\t\t\t}\n\n\t\t\t// Default = just status\n\t\t\treturn status;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\treturn { calculateMonthlyInstallment, isBSCandidate, prepareData, catchRequest };\n};\n\nexport default useCalculator;\n","export function gqlError(error) {\n\treturn (error && error.graphQLErrors[0].potError) ? error.graphQLErrors[0].potError : false;\n}\n\nexport function gqlValidation(error) {\n\tconst err = gqlError(error);\n\n\tif (err && err.errorData) {\n\t\treturn err.errorData.validation;\n\t}\n\n\treturn null;\n}\n\nexport const gqlData = (data) => {\n\treturn data || false;\n};\n\nexport const setHeaders = (requestName, headers = {}) => {\n\treturn { 'Request-Name': requestName, ...headers };\n};\n\nexport const setContext = (requestName, context = {}) => {\n\treturn { headers: setHeaders(requestName), ...context };\n};\n","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","module.exports = __webpack_public_path__ + \"static/notification-error-4cd50a39a79702723f1560bad2f92b1e.png\";","export const replaceAll = (find, replace, str) => {\n\tconst Regex = (find === '.') ? /\\./g : new RegExp(find, 'g');\n\treturn str.replace(Regex, replace);\n};\n\nexport const formatPrice = (v) => {\n\tif (v !== undefined && v !== '0' && v !== '') {\n\t\tlet value = v.toString();\n\n\t\t// Set string, replace separator\n\t\tif (value.indexOf('.') !== -1) {\n\t\t\tvalue = replaceAll('.', '', value);\n\t\t}\n\n\t\t// Format and update in element\n\t\tconst Formatted = numberFormat(value, 0, '.', '.');\n\t\treturn Formatted;\n\t}\n\n\treturn 0;\n};\n\nexport const toFixedFix = (n, p) => {\n\tconst k = 10 ** p;\n\treturn (Math.round(n * k) / k).toFixed(p);\n};\n\nexport const numberFormat = (number, decimals, decPoint, thousandsSep) => {\n\tconst no = number.replace(/[^0-9+\\-Ee.]/g, '');\n\n\tconst num = !isFinite(+no) ? 0 : +no;\n\tconst prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);\n\tconst sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep;\n\tconst dec = (typeof decPoint === 'undefined') ? '.' : decPoint;\n\n\t// Fix for IE parseFloat(0.55).toFixed(0) = 0;\n\tconst x = prec ? toFixedFix(num, prec) : Math.round(num);\n\tconst s = x.toString().split('.');\n\n\tif (s[0].length > 3) {\n\t\ts[0] = s[0].replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, sep);\n\t}\n\n\tif ((s[1] || '').length < prec) {\n\t\ts[1] = s[1] || '';\n\t\ts[1] += new Array(prec - s[1].length + 1).join('0');\n\t}\n\n\treturn s.join(dec);\n};\n","// import gql from 'graphql-tag';\n\nconst request = {\n\tvalidation: {\n\t\tamount: {\n\t\t\trequired: true,\n\t\t\tvalidator: null\n\t\t},\n\n\t\trepayment_period: {\n\t\t\trequired: true,\n\t\t\tvalidator: null\n\t\t},\n\n\t\tbank: {\n\t\t\trequired: true,\n\t\t\tvalidator: null,\n\t\t\tcollector: true // array of checkbox values\n\t\t}\n\t},\n\n\tgql: null\n};\n\nexport default request;\n","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nmodule.exports = function (str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (x) {\n return \"%\".concat(x.charCodeAt(0).toString(16).toUpperCase());\n });\n};","export const scrollToFirstError = (fieldName, refs) => {\n\tif (fieldName && refs[fieldName]) {\n\t\tconst target = refs[fieldName].current;\n\n\t\tif (target) {\n\t\t\ttarget.focus();\n\t\t\twindow.scrollTo({ top: ((target.getBoundingClientRect().top + window.pageYOffset) - 50), behavior: 'smooth' });\n\t\t}\n\t}\n};\n\nexport const test = () => {};\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import raf, { cancel } from 'raf';\nimport now from 'performance-now';\n/** Copyright 2011, Joe Lambert.\n ** Free to use under the MIT license.\n ** http://www.opensource.org/licenses/mit-license.php\n **/\n\nexport var clearRequestTimeout = function clearRequestTimeout(handle) {\n cancel(handle.value);\n};\nexport var requestTimeout = function requestTimeout(fn, delay) {\n var start = now(),\n handle = {};\n\n var loop = function loop() {\n now() - start >= delay ? fn.call(null) : handle.value = raf(loop);\n };\n\n handle.value = raf(loop);\n return handle;\n};\nexport default requestTimeout;","import React from 'react';\nvar useEffect = React.useEffect,\n useCallback = React.useCallback,\n useState = React.useState,\n useRef = React.useRef;\nimport { requestTimeout, clearRequestTimeout } from '@essentials/request-timeout';\nexport var useThrottleCallback = function useThrottleCallback(callback) {\n var fps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 30;\n var leading = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var nextTimeout = useRef(null),\n tailTimeout = useRef(null),\n calledLeading = useRef(false),\n wait = 1000 / fps; // cleans up pending timeouts when the function changes\n\n function _ref() {\n if (nextTimeout.current !== null) {\n clearRequestTimeout(nextTimeout.current);\n nextTimeout.current = null;\n }\n\n if (tailTimeout.current !== null) {\n clearRequestTimeout(tailTimeout.current);\n tailTimeout.current = null;\n }\n\n calledLeading.current = false;\n }\n\n useEffect(function () {\n return _ref;\n }, [callback, fps]);\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n\n function _ref2() {\n nextTimeout.current = null;\n tailTimeout.current === null && (calledLeading.current = false);\n callback.apply(self, args);\n }\n\n function _ref3() {\n tailTimeout.current = null;\n calledLeading.current = false;\n nextTimeout.current === null && callback.apply(self, args);\n }\n\n if (nextTimeout.current === null) {\n var next = _ref2;\n\n if (leading && !calledLeading.current) {\n // leading\n next();\n calledLeading.current = true;\n } else {\n // head\n nextTimeout.current = requestTimeout(next, wait);\n }\n } else {\n // tail\n tailTimeout.current !== null && clearRequestTimeout(tailTimeout.current);\n tailTimeout.current = requestTimeout(_ref3, wait);\n }\n }, [callback, fps]);\n};\nexport var useThrottle = function useThrottle(initialState, fps, leading) {\n var _ref_0 = useState(initialState);\n\n var setState = _ref_0[1];\n var state = _ref_0[0];\n return [state, useThrottleCallback(setState, fps, leading)];\n};\nexport default useThrottle;","import _slicedToArray from \"/Users/user/Desktop/100kvadratov/krediti/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport React from 'react';\nvar useEffect = React.useEffect;\nimport { useThrottle } from '@react-hook/throttle';\nvar emptyArr = [];\n\nvar getScrollY = function getScrollY() {\n return window.scrollY !== void 0 ? window.scrollY : window.pageYOffset === void 0 ? 0 : window.pageYOffset;\n};\n\nexport var useWindowScroll = function useWindowScroll() {\n var fps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 30;\n\n var _useThrottle = useThrottle(typeof window === 'undefined' ? 0 : getScrollY, fps, true),\n _useThrottle2 = _slicedToArray(_useThrottle, 2),\n scrollY = _useThrottle2[0],\n setThrottledScroll = _useThrottle2[1];\n\n function _ref() {\n return setThrottledScroll(getScrollY());\n }\n\n useEffect(function () {\n var handleScroll = _ref;\n window.addEventListener('scroll', handleScroll);\n return function () {\n window.removeEventListener('scroll', handleScroll);\n };\n }, emptyArr);\n return scrollY;\n};\nexport default useWindowScroll;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport notificationOk from '../../assets/img/notification-ok.png';\nimport notificationError from '../../assets/img/notification-error.png';\nimport styles from './calculator.module.scss';\nimport { lng } from '../../config/language';\nimport Button from '../form/button';\nimport { useStore as calculatorStore } from '../../contexts/calculator';\n\nconst CalculatorNotification = React.memo(({ variation }) => {\n\tconst { data: calculatorData, dispatch } = calculatorStore();\n\tconst { data, notification } = calculatorData;\n\tconst { visible } = notification;\n\n\treturn (\n\t\t
\n\t\t\t\"notification\"\n\t\t\t{notification.title &&

{notification.title}

}\n\t\t\t{notification.text &&
}\n\t\t\t{notification.textAdditional &&

}\n\t\t\t{notification.showData ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
{lng('labelName')}{data.givenname} {data.surname}
{lng('labelEmail')}{data.email}
{lng('labelPhone')}{data.telephone}
\n\t\t\t) : null}\n\t\t\t{notification.redoBtn && }\n\t\t

\n\t);\n});\n\nCalculatorNotification.propTypes = {\n\tvariation: PropTypes.string.isRequired\n};\n\nexport default CalculatorNotification;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { formatPrice } from '../../helpers/number';\nimport styles from './calculator.module.scss';\nimport { lng } from '../../config/language';\nimport Button from '../form/button';\nimport { useStore as calculatorStore } from '../../contexts/calculator';\nimport useCalculator from '../_hooks/useCalculator';\nimport useGa from '../_hooks/useGa';\n\nconst CalculatorModalDecision = React.memo(({ onStepSuccess }) => {\n\tconst { sendEvent } = useGa();\n\tconst { isBSCandidate } = useCalculator();\n\tconst { data: calculatorData, dispatch } = calculatorStore();\n\tconst { data, modal: { visible, onConfirm, onCancel } } = calculatorData;\n\n\tconst [recalculated, setRecalculated] = useState({});\n\tconst [changed, setChanged] = useState({});\n\n\tconst [isVisible, setIsVisible] = useState(false);\n\n\t/*\n\t\n\tconst close = () => {\n\t\tsendEvent(null, null, 'BS DECISION MODAL: closed');\n\n\t\t// Hide modal\n\t\tdispatch({\n\t\t\ttype: 'MODAL',\n\t\t\tpayload: { visible: false, data: {} }\n\t\t});\n\t};\n\t*/\n\n\tconst onSubmit = (type) => {\n\t\tsendEvent(null, null, `BS DECISION MODAL: ${type}`);\n\n\t\t// Hide modal\n\t\tdispatch({\n\t\t\ttype: 'MODAL',\n\t\t\tpayload: { visible: false, data: {} }\n\t\t});\n\n\t\t// Changed data or not\n\t\tconst d = data;\n\n\t\tif (type === 'changed') {\n\t\t\td.is_candidate_bs = 'da';\n\n\t\t\tif (recalculated.repayment_period_changed) {\n\t\t\t\td.repayment_period = recalculated.repayment_period_changed;\n\t\t\t}\n\n\t\t\tif (recalculated.amount_changed) {\n\t\t\t\td.amount = recalculated.amount_changed;\n\t\t\t}\n\t\t}\n\n\t\tif (onConfirm) onConfirm(d);\n\t\telse console.log(d);\n\t};\n\n\tuseEffect(() => {\n\t\tif (visible) {\n\t\t\tsendEvent(null, null, `BS DECISION MODAL: open`);\n\n\t\t\tconst repaymentPeriodMax = 30;\n\n\t\t\t// Change\n\t\t\tconst r = {\n\t\t\t\trepayment_period: data.repayment_period,\n\t\t\t\trepayment_period_changed: null,\n\t\t\t\tamount: data.amount,\n\t\t\t\t// amount: 50000,\n\t\t\t\tamount_changed: null\n\t\t\t};\n\n\t\t\t// Handled\n\t\t\tconst h = {\n\t\t\t\trepayment_period: false,\n\t\t\t\tamount: false\n\t\t\t};\n\n\t\t\tif (r.repayment_period && r.repayment_period < repaymentPeriodMax) {\n\t\t\t\tlet repaymentPeriod = r.repayment_period;\n\t\t\t\t[...Array(repaymentPeriodMax - r.repayment_period)].map((elementInArray, i) => {\n\t\t\t\t\tif (!r.repayment_period) {\n\t\t\t\t\t\trepaymentPeriod += 1;\n\t\t\t\t\t\tif (isBSCandidate({ ...data, repayment_period: repaymentPeriod })) {\n\t\t\t\t\t\t\tr.repayment_period_changed = repaymentPeriod;\n\t\t\t\t\t\t\th.repayment_period = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Try to dec amount, to become compliant with BS (if handle repayment period was not enought)\n\t\t\tif (h.repayment_period === false) {\n\t\t\t\tr.repayment_period_changed = repaymentPeriodMax; // take max. repayment method and try to lower price\n\n\t\t\t\t[...Array(r.amount / 1000)].map((elementInArray, i) => {\n\t\t\t\t\tif (!r.amount_changed) {\n\t\t\t\t\t\tconst a = r.amount - (i * 1000);\n\t\t\t\t\t\tif (isBSCandidate({ ...data, amount: a })) {\n\t\t\t\t\t\t\tr.amount_changed = r.amount - (i * 1000);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Not canddiate at all!\n\t\t\tif (!r.repayment_period_changed && !r.amount_changed && onCancel) {\n\t\t\t\tonCancel();\n\n\t\t\t\tsendEvent(null, null, 'BS DECISION MODAL: unable to modify');\n\n\t\t\t\t// Hide modal\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: 'MODAL',\n\t\t\t\t\tpayload: { visible: false, data: {} }\n\t\t\t\t});\n\t\t\t} else { // Have new data - open/show popup!\n\t\t\t\tsetIsVisible(true);\n\t\t\t\tsetRecalculated(r);\n\t\t\t}\n\t\t}\n\t}, [visible]);\n\n\tuseEffect(() => {\n\t\tsetChanged({\n\t\t\trepayment_period: (recalculated.repayment_period_changed && recalculated.repayment_period !== recalculated.repayment_period_changed),\n\t\t\tamount: (recalculated.amount_changed && recalculated.amount !== recalculated.amount_changed)\n\t\t});\n\t}, [recalculated]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

{lng('modalBSModifyTitle')}

\n\t\t\t\t\t

{lng('modalBSModifySubtitle')}

\n\t\t\t\t\t

{lng('modalBSModifyText')}

\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{lng('modalBSModifyBoxAmountTitle')}\n\t\t\t\t\t\t{formatPrice(recalculated.amount_changed || data.amount)} €\n\t\t\t\t\t\t{changed.amount &&

{lng('modalBSModifyBoxAmountDisclaimer')}: {formatPrice(data.amount)} €

}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{lng('modalBSModifyBoxPeriodTitle')}\n\t\t\t\t\t\t{recalculated.repayment_period_changed || data.repayment_period} let\n\t\t\t\t\t\t{changed.repayment_period &&

{lng('modalBSModifyBoxPeriodDisclaimer')}: {data.repayment_period} let

}\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n});\n\nCalculatorModalDecision.propTypes = {\n\tonStepSuccess: PropTypes.func.isRequired\n};\n\nexport default CalculatorModalDecision;\n","import { useState, useEffect, useCallback } from 'react';\n\nimport { lng } from '../../config/language';\n\nfunction useForm(action = 'insert', formState = {}, formSchema = {}, callback) {\n\t// Create initial state of form\n\tconst initialState = {};\n\n\tif (formSchema) {\n\t\tObject.keys(formSchema).map((fName) => {\n\t\t\tlet defaultValue = '';\n\n\t\t\t// Change default value from empty string to array\n\t\t\tif (formSchema[fName].collector === true) {\n\t\t\t\tdefaultValue = [];\n\t\t\t}\n\n\t\t\tlet fieldValue = formState[fName] || defaultValue;\n\t\t\tif (fieldValue && typeof fieldValue === 'object' && Array.isArray(fieldValue)) {\n\t\t\t\tfieldValue = [...fieldValue]; // Create totaly unlinked copy of array with its parent!!!! Default by reference!!\n\t\t\t}\n\n\t\t\tinitialState[fName] = { value: fieldValue, error: null };\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tconst [state, setState] = useState(initialState);\n\tconst [disabled, setDisabled] = useState(true);\n\tconst [changed, setChanged] = useState(false);\n\n\t// Used to disable submit button if there's an error in state\n\t// or the required field in state has no value.\n\t// Wrapped in useCallback to cached the function to avoid intensive memory leaked\n\t// in every re-render in component\n\tconst validateState = useCallback(() => {\n\t\tconst hasErrorInState = Object.keys(formSchema).some((key) => {\n\t\t\tconst isInputFieldRequired = formSchema[key].required;\n\t\t\tlet stateValue = state[key].value || ''; // state value\n\t\t\tconst stateError = state[key].error || ''; // state error\n\n\t\t\t// Handle required in case of collector (array of values)\n\t\t\tif (formSchema[key].collector === true) {\n\t\t\t\tstateValue = (state[key].value.length > 0);\n\t\t\t}\n\n\t\t\treturn (isInputFieldRequired && !stateValue) || stateError;\n\t\t});\n\n\t\treturn hasErrorInState; // if return TRUE, then form is not valid - if return FALSE, then form is valid\n\t}, [state, formSchema]);\n\n\t// Validate complete for, to get all errors (in client - when client is valid, request go to server and second layer of validation is triggered)\n\tconst validateForm = (applyErrorsToState = false) => {\n\t\tconst errors = {};\n\t\tlet isValid = true;\n\n\t\tObject.keys(formSchema).map((key) => {\n\t\t\tconst validation = validateField(key, state[key].value || '');\n\t\t\terrors[key] = validation.error || null;\n\n\t\t\tif (isValid === true && errors[key] !== null) {\n\t\t\t\tisValid = false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\n\t\tif (applyErrorsToState === true) {\n\t\t\tsetError(errors);\n\t\t}\n\n\t\treturn isValid ? true : errors;\n\t};\n\n\tconst validateField = (name, value) => {\n\t\tlet v = value;\n\n\t\tif (formSchema[name]) {\n\t\t\tconst { required, validator } = formSchema[name];\n\n\t\t\t// Handle required in case of collector (array of values)\n\t\t\tif (formSchema[name].collector === true) {\n\t\t\t\tv = (state[name].value.length > 0);\n\t\t\t}\n\n\t\t\tlet errorMessage = '';\n\t\t\tif (required) {\n\t\t\t\tif (!v) {\n\t\t\t\t\terrorMessage = lng('validationRequired');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (validator !== null && typeof validator === 'object') {\n\t\t\t\tif (value && !validator.regEx.test(v)) {\n\t\t\t\t\tconst { error } = validator;\n\t\t\t\t\terrorMessage = error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tvalue: v,\n\t\t\t\terror: errorMessage || null\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tvalue: v,\n\t\t\terror: null\n\t\t};\n\t};\n\n\t// Used to handle every changes in every input\n\tconst handleOnChange = useCallback((e, options = {}) => {\n\t\tconst { target } = e;\n\t\tconst { name, value, type, checked } = target;\n\n\t\tconst isCollector = (options.collector === true); // ex checkbox group for same name (bank: [nkbm, nlb])\n\t\tlet newValue = (type === 'checkbox' && !isCollector) ? checked : value;\n\n\t\t// Handle string values \"true/false\" as boolena (case: radio buttons)\n\t\tif (newValue && typeof newValue === 'string') {\n\t\t\tif (newValue.toLowerCase() === 'true') newValue = true;\n\t\t\telse if (newValue.toLowerCase() === 'false') newValue = false;\n\t\t}\n\n\t\t// Ex. array of checkboxes with same name\n\t\tif (isCollector) {\n\t\t\tconst v = newValue;\n\t\t\tnewValue = (Array.isArray(state[name].value)) ? state[name].value : [];\n\n\t\t\tif (checked) {\n\t\t\t\tnewValue.push(v);\n\t\t\t} else {\n\t\t\t\tnewValue.splice(newValue.indexOf(v), 1);\n\t\t\t}\n\t\t}\n\n\t\tconst validation = validateField(name, newValue);\n\n\t\tsetState(prevState => (\n\t\t\t{ ...prevState, [name]: { value: newValue, error: validation.error } }\n\t\t));\n\n\t\tif (changed === false) {\n\t\t\tsetChanged(true);\n\t\t}\n\t// eslint-disable-next-line\n\t}, []);\n\n\tconst findFirstErrorFieldName = (errors) => { // errors:{key:value} => fname => error message/null\n\t\tconst fieldName = Object.keys(errors).filter(key => errors[key] !== null);\n\t\treturn fieldName[0] || null;\n\t};\n\n\tconst handleOnSubmit = useCallback((e, additionalStateData) => {\n\t\tif (e && typeof e.preventDefault === 'function') {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tlet resultState = {};\n\t\tconst errors = validateForm();\n\n\t\tif (typeof errors === 'object') {\n\t\t\tsetError(errors);\n\t\t\tresultState = {\n\t\t\t\tfirstErrorFieldName: findFirstErrorFieldName(errors),\n\t\t\t\tstate,\n\t\t\t\terrors\n\t\t\t};\n\t\t} else {\n\t\t\tresultState = {};\n\t\t\t// Clear state, to return only field_name:value pairs\n\t\t\tObject.keys(state).map((fName) => {\n\t\t\t\tresultState[fName] = state[fName].value || null;\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\tif (additionalStateData) {\n\t\t\t\tObject.keys(additionalStateData).map((fName) => {\n\t\t\t\t\tresultState[fName] = additionalStateData[fName];\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tcallback(resultState);\n\n\t// eslint-disable-next-line\n\t}, [state, callback, validateState]);\n\n\tconst setError = useCallback((errors, returnFirst = false) => {\n\t\tObject.keys(errors).map((fName) => {\n\t\t\tsetState(prevState => (\n\t\t\t\t{ ...prevState, [fName]: { value: prevState[fName].value, error: errors[fName] } }\n\t\t\t));\n\t\t\treturn true;\n\t\t});\n\n\t\tif (returnFirst === true) {\n\t\t\treturn findFirstErrorFieldName(errors);\n\t\t}\n\n\t\treturn true;\n\t// eslint-disable-next-line\n\t}, [state]);\n\n\tconst updateChanged = useCallback((status) => {\n\t\tif (changed !== status) {\n\t\t\tsetChanged(status);\n\n\t\t\t// Enable, if form is valid and remote changed is triggered\n\t\t\tif (status === true) {\n\t\t\t\tconst requestValidation = validateState();\n\t\t\t\tif (requestValidation !== disabled) {\n\t\t\t\t\tsetDisabled(requestValidation);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tconst handleFocus = useCallback((e) => {\n\t\tconst { target, type } = e;\n\t\tconst { name } = target;\n\n\t\tsetState(prevState => (\n\t\t\t{ ...prevState, [name]: { ...prevState[name], focus: type === 'focus' } }\n\t\t));\n\t});\n\n\tconst updateState = useCallback((data) => {\n\t\tObject.keys(data).map((fName) => {\n\t\t\tlet modifiedData = data[fName] || ''; // value must be empty string, not null! (in case, if not exist)\n\n\t\t\t// If array, check if children nodes does not have key \"__typename\"\n\t\t\tif (Array.isArray(data[fName])) {\n\t\t\t\tmodifiedData = [];\n\n\t\t\t\tdata[fName].map((row) => {\n\t\t\t\t\tif (row['__typename']) {\n\t\t\t\t\t\tdelete row['__typename'];\n\t\t\t\t\t}\n\n\t\t\t\t\tmodifiedData.push(row);\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetState(prevState => (\n\t\t\t\t{ ...prevState, [fName]: { value: modifiedData || '', error: null } }\n\t\t\t));\n\t\t\treturn true;\n\t\t});\n\n\t\treturn true;\n\t// eslint-disable-next-line\n\t}, [state]);\n\n\t// For every changed in our state this will be fired\n\t// To be able to disable the button\n\tuseEffect(() => {\n\t\tif (changed === true) {\n\t\t\tconst requestValidation = validateState();\n\t\t\t// console.log('STATE HAS ERRORS', requestValidation, 'DISABLED', disabled);\n\t\t\tif (requestValidation !== disabled) { // ex. disabled = true & validationResult = false \\ DO NOTHING, ok!\n\t\t\t\tsetDisabled(requestValidation);\n\t\t\t}\n\t\t}\n\t}, [state, disabled, validateState]);\n\n\t// On mount - if valid (on update), disabled = false\n\tuseEffect(() => {\n\t\tif (action === 'update' && validateState()) {\n\t\t\tsetDisabled(false);\n\t\t}\n\t}, []);\n\n\treturn { state, disabled, handleFocus, handleOnChange, handleOnSubmit, validateForm, findFirstErrorFieldName, setError, updateState, updateChanged };\n}\n\nexport default useForm;\n","import React, { Component } from 'react';\n\nconst asyncComponent = (importComponent) => {\n\treturn class extends Component {\n\t\tstate = {\n\t\t\tcomponent: null\n\t\t}\n\n\t\tcomponentDidMount() {\n\t\t\timportComponent()\n\t\t\t\t.then((cmp) => {\n\t\t\t\t\tthis.setState({ component: cmp.default });\n\t\t\t\t});\n\t\t}\n\n\t\trender() {\n\t\t\tconst { component } = this.state;\n\n\t\t\tconst C = component;\n\t\t\treturn C ? : null;\n\t\t}\n\t};\n};\n\nexport default asyncComponent;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery, useMutation } from '@apollo/react-hooks';\n\nimport useForm from '../_hooks/useForm';\nimport { scrollToFirstError } from '../../helpers/form';\nimport { gqlValidation, setContext } from '../../helpers/gql';\n\nimport AsyncComponent from '../_hoc/AsyncComponent';\n\n/*\nHOW TO:\n- create src/forms/.js (settings config: validation, gql schema, ...)\n- FormLoader>getFormSettings add case by name\n- FormLoader>loadFormQuery add case by name (in case query is needed, to prefill form - ex. on edit)\n*/\n\nconst FormLoader = React.memo(({ name, id, initialState, placeholders, onSuccess }) => {\n\tconst initState = initialState; // reassign, so it can be appended, if needed\n\n\t// General form notification (ex. on success action)\n\tconst [notification, setNotification] = useState(null);\n\n\tconst fieldsRefs = useRef({});\n\tconst formSettings = useRef(null);\n\tconst formQuery = useRef(null);\n\tconst Component = useRef(null);\n\n\t// Form component\n\tif (Component.current === null) {\n\t\tComponent.current = AsyncComponent(() => {\n\t\t\tswitch (name) {\n\t\t\tcase 'calculator-init':\t\t\t\treturn import('../forms/calculator-init');\n\t\t\tcase 'calculator-data':\t\t\t\treturn import('../forms/calculator-data');\n\t\t\tcase 'calculator-contact':\t\treturn import('../forms/calculator-contact');\n\t\t\tdefault: return null;\n\t\t\t}\n\t\t});\n\t}\n\n\t// Form settings\n\tconst loadFormSettings = () => {\n\t\tswitch (name) {\n\t\tcase 'calculator-init': \t\t\t\treturn require('../../requests/mutation/calculator-init.js').default;\n\t\tcase 'calculator-data': \t\t\t\treturn require('../../requests/mutation/calculator-data.js').default;\n\t\tcase 'calculator-contact': \t\t\treturn require('../../requests/mutation/calculator-contact.js').default;\n\t\tdefault: return null;\n\t\t}\n\t};\n\n\t// Form query\n\tconst loadFormQuery = () => {\n\t\tswitch (name) {\n\t\tdefault: \t\t\t\t\t\t\t\t\t\t\t\treturn require('../../requests/query/void.js').default;\n\t\t}\n\t};\n\n\tif (formSettings.current === null) {\n\t\tformSettings.current = loadFormSettings();\n\t\tformQuery.current = loadFormQuery();\n\n\t\t// Generate refs for all fields, which has validation (to manipulate after submit validation error - ex. scroll to field)\n\t\tif (formSettings.current && formSettings.current.validation) {\n\t\t\tObject.keys(formSettings.current.validation).map((fName) => {\n\t\t\t\tfieldsRefs.current[fName] = React.createRef();\n\t\t\t\treturn true;\n\t\t\t});\n\t\t}\n\t}\n\n\tconst getFormSettings = (section, key) => {\n\t\tif (formSettings.current) {\n\t\t\tconst settings = formSettings.current[section] || formSettings.current;\n\t\t\tif (key) return settings[key] || null;\n\t\t\treturn settings;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\t// Form submit handle\n\tconst onSubmitForm = (state) => {\n\t\tif (disabled === false) {\n\t\t\t// Request to server only, if graphql scheme exist\n\t\t\tif (gqlMutation) {\n\t\t\t\tgqlMutation({\n\t\t\t\t\tvariables: state,\n\t\t\t\t\tcontext: setContext(name)\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// If server request is not set, then just return data to parent\n\t\t\t\thandleOnSuccess(state);\n\t\t\t}\n\t\t} else {\n\t\t\t// Find first error and scroll to field + focus\n\t\t\tscrollToFirstError(state.firstErrorFieldName, fieldsRefs.current);\n\t\t}\n\t};\n\n\tconst handleOnSuccess = (data) => {\n\t\t// Handle callback\n\t\tconst onSuccessType = typeof onSuccess;\n\n\t\tswitch (onSuccessType) {\n\t\tdefault: // function\n\t\t\tonSuccess(data);\n\t\t\tbreak;\n\n\t\tcase 'object': {\n\t\t\tif (onSuccess.action) {\n\t\t\t\tswitch (onSuccess.action) {\n\n\t\t\t\tcase 'FORM_NOTIFICATION':\n\t\t\t\t\tconsole.log('Success!! Show form notification!');\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.log('DO NOT KNOW, WHAT TO DO ;)');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\t\t}\n\t};\n\n\t// Load form data (init)\n\tconst isQuery = (id && formQuery.current.request.name !== 'void');\n\tconst query = formQuery.current;\n\n\tconst validationRules = getFormSettings('validation');\n\tconst gqlSchema = getFormSettings('gql', 'schema');\n\n\t// Init form handler\n\tconst { state, handleFocus, handleOnChange, handleOnSubmit, validateForm, findFirstErrorFieldName, setError, updateState, updateChanged, disabled } = useForm(isQuery ? 'update' : 'insert', initState, validationRules, onSubmitForm);\n\n\t// Init mutation, if graphql scheme isset\n\tlet gqlMutation = null;\n\tlet loading = false;\n\tlet data = null;\n\tlet error = null;\n\n\tif (gqlSchema) {\n\t\t[gqlMutation, { loading, data, error }] = useMutation(gqlSchema);\n\t}\n\n\t// Load form data (run)\n\tconst { loading: queryLoading, data: queryData, refetch } = useQuery(query.gql.schema, {\n\t\tvariables: { id },\n\t\tcontext: { headers: { 'Request-Name': query.request.name } },\n\t\tskip: !isQuery,\n\t\tfetchPolicy: 'network-only' // no cache!\n\t});\n\n\t// In case of server submit - this side effect is triggered\n\tuseEffect(() => {\n\t\tconst err = gqlValidation(error);\n\t\tif (err) {\n\t\t\tscrollToFirstError(setError(err, true), fieldsRefs.current);\n\t\t} else if (onSuccess && data) {\n\t\t\thandleOnSuccess(data.request);\n\t\t}\n\t\t// eslint-disable-next-line\n\t}, [error, data]);\n\n\t// In case of query - prefill form, when data arrives\n\tuseEffect(() => {\n\t\tif (isQuery) {\n\t\t\trefetch();\n\n\t\t\tif (queryLoading === false && queryData) {\n\t\t\t\tupdateState(queryData.request);\n\t\t\t}\n\t\t}\n\t}, [id, queryData, queryLoading]);\n\n\tif (queryLoading === true) return 'Loading ...';\n\n\treturn ;\n});\n\nFormLoader.defaultProps = {\n\tid: null,\n\tinitialState: {},\n\tplaceholders: {},\n\tonSuccess: null\n};\n\nFormLoader.propTypes = {\n\tname: PropTypes.string.isRequired,\n\tid: PropTypes.oneOfType([\n\t\tPropTypes.string,\n\t\tPropTypes.number\n\t]),\n\tinitialState: PropTypes.shape({}),\n\tplaceholders: PropTypes.shape({}),\n\tonSuccess: PropTypes.oneOfType([\n\t\tPropTypes.func,\n\t\tPropTypes.shape({})\n\t])\n};\n\nexport default FormLoader;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './calculator.module.scss';\nimport FormLoader from '../forms/loader';\nimport { useStore as calculatorStore } from '../../contexts/calculator';\n\nconst CalculatorSteps = ({ onMounted, stepWidth, onStepSuccess }) => {\n\tconst { data: calculatorData } = calculatorStore();\n\tconst { step, defaultValues } = calculatorData;\n\n\tuseEffect(() => {\n\t\tonMounted();\n\t}, []);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t onStepSuccess(1, d)} />\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t onStepSuccess(2, d)} />\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t onStepSuccess(3, d)} />\n\t\t\t
\n\t\t
\n\t);\n};\n\nCalculatorSteps.propTypes = {\n\tonMounted: PropTypes.func.isRequired,\n\tonStepSuccess: PropTypes.func.isRequired,\n\tstepWidth: PropTypes.number.isRequired\n};\n\nexport default CalculatorSteps;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './calculator.module.scss';\nimport { lng } from '../../config/language';\nimport Button from '../form/button';\nimport { useStore as calculatorStore } from '../../contexts/calculator';\n\nconst CalculatorBottom = ({ scrollY, variation }) => {\n\tconst { data: calculatorData, dispatch } = calculatorStore();\n\tconst { steps, step, monthlyInstallment, submitBtn, submitLocked } = calculatorData;\n\n\treturn (\n\t\t
\n\t\t\t
0 || step > 1 ? 'scrolled' : 'default']}`}>\n\t\t\t\t
\n\t\t\t\t
{lng('calcCreditBottomTitle')}{monthlyInstallment} €/m
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t{steps.map((row, index) => )}\n\t\t\t
\n\t\t
\n\t);\n};\n\nCalculatorBottom.defaultProps = {\n\tscrollY: 0\n};\n\nCalculatorBottom.propTypes = {\n\tscrollY: PropTypes.number,\n\tvariation: PropTypes.string.isRequired\n};\n\nexport default CalculatorBottom;\n","import gql from 'graphql-tag';\n\nconst request = {\n\tvalidation: {},\n\n\tgql: {\n\t\t// Any change here, update calculator-catch-request.js\n\t\tschema: gql`\n\t\t\tmutation SendMail(\n\t\t\t\t$source: String,\n\t\t\t\t$request_id: String,\n\t\t\t\t$amount: Int,\n\t\t\t\t$repayment_period: Int,\n\t\t\t\t$bank: [String],\n\t\t\t\t$monthly_income: Int,\n\t\t\t\t$children_cnt: String,\n\t\t\t\t$dependents: String,\n\t\t\t\t$family: String,\n\t\t\t\t$credit_time: String,\n\t\t\t\t$givenname: String,\n\t\t\t\t$surname: String,\n\t\t\t\t$email: String,\n\t\t\t\t$telephone: String,\n\t\t\t\t$is_candidate_bs: String\n\t\t\t) {\n\t\t\t\trequest(\n\t\t\t\t\tsource: $source,\n\t\t\t\t\trequest_id: $request_id,\n\t\t\t\t\tamount: $amount,\n\t\t\t\t\trepayment_period: $repayment_period,\n\t\t\t\t\tbank: $bank,\n\t\t\t\t\tmonthly_income: $monthly_income,\n\t\t\t\t\tchildren_cnt: $children_cnt,\n\t\t\t\t\tdependents: $dependents,\n\t\t\t\t\tfamily: $family,\n\t\t\t\t\tcredit_time: $credit_time,\n\t\t\t\t\tgivenname: $givenname,\n\t\t\t\t\tsurname: $surname,\n\t\t\t\t\temail: $email,\n\t\t\t\t\ttelephone: $telephone,\n\t\t\t\t\tis_candidate_bs: $is_candidate_bs\n\t\t\t\t) {\n\t\t\t\t\tid\n\t\t\t\t}\n\t\t\t}\n\t\t`\n\t}\n};\n\nexport default request;\n","import { useState } from 'react';\n\nconst useAnalytics = () => {\n\tconst [debug] = useState(false);\n\n\t// Facebook Pixel\n\t// https://developers.facebook.com/docs/facebook-pixel/implementation/conversion-tracking\n\t// https://developers.facebook.com/docs/facebook-pixel/reference#standard-events\n\tconst fbEvent = (name, props) => {\n\t\tif (typeof window !== 'undefined' && name) {\n\t\t\tif (window.fbq != null) {\n\t\t\t\tswitch (name) {\n\t\t\t\t// Standard events\n\t\t\t\tdefault:\n\t\t\t\tcase 'Purchase':\n\t\t\t\tcase 'AddToCart':\n\t\t\t\tcase 'InitiateCheckout':\n\t\t\t\tcase 'PageView':\n\t\t\t\tcase 'Subscribe':\n\t\t\t\tcase 'Lead':\n\t\t\t\t\twindow.fbq('track', name, props);\n\t\t\t\t\tbreak;\n\n\t\t\t\t// Custom events (not exist yet)\n\t\t\t\tcase 'AddToCartFirst':\n\t\t\t\tcase 'ClearCart':\n\t\t\t\t\twindow.fbq('trackCustom', name, props);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.log('window.fbq is not defined.');\n\t\t\t}\n\t\t}\n\t};\n\n\t// Google Analytics\n\tconst isReady = () => (typeof window !== 'undefined' && typeof window.gtag !== 'undefined');\n\n\t// https://developers.google.com/analytics/devguides/collection/gtagjs/events\n\tconst gaEvent = (name, props) => {\n\t\tif (isReady()) {\n\t\t\tconst action = props.eventAction || 'click';\n\t\t\tconst obj = {\n\t\t\t\tevent_category: props.eventCategory || 'ecommerce',\n\t\t\t\tevent_label: name,\n\t\t\t\tvalue: props.value // string!\n\t\t\t};\n\n\t\t\twindow.gtag('event', action, obj);\n\n\t\t\t// Debug\n\t\t\tif (debug) console.log(name, action, obj);\n\t\t}\n\t};\n\n\treturn { fbEvent, gaEvent };\n};\n\nexport default useAnalytics;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useMutation } from '@apollo/react-hooks';\n\nimport { setContext } from '../../helpers/gql';\nimport { testMobile } from '../../helpers/common';\nimport styles from './calculator.module.scss';\nimport { lng } from '../../config/language';\nimport CalculatorNotification from './calculator-notification';\nimport CalculatorModalDecision from './calculator-modal-decision';\nimport CalculatorSteps from './calculator-steps';\nimport CalculatorBottom from './calculator-bottom';\nimport { useStore as calculatorStore } from '../../contexts/calculator';\nimport request from '../../requests/mutation/calculator-submit';\nimport useGa from '../_hooks/useGa';\nimport useCalculator from '../_hooks/useCalculator';\nimport useAnalytics from '../_hooks/useAnalytics';\n\nconst Calculator = () => {\n\tconst generateRequestId = () => Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n\tconst [requestId, setRequestId] = useState(generateRequestId());\n\tconst { fbEvent } = useAnalytics();\n\n\tconst [mounted, setMounted] = useState(false);\n\tconst [stepWidth, setStepWidth] = useState(0);\n\tconst [isMobile] = useState(testMobile());\n\tconst { data: calculatorData, dispatch } = calculatorStore();\n\tconst { data, instanceId, step, notification } = calculatorData;\n\tconst [gqlMutation, { loading: requestLoading, data: requestData, error: requestError }] = useMutation(request.gql.schema);\n\tconst { sendEvent } = useGa();\n\tconst { isBSCandidate, catchRequest } = useCalculator();\n\n\tconst refElem = useRef(0); // to calculate step width\n\n\tconst onMounted = () => {\n\t\tsetMounted(true);\n\t};\n\n\tconst setNotification = (payload) => {\n\t\tif (notification.visible === false) {\n\t\t\tdispatch({\n\t\t\t\ttype: 'SET_NOTIFICATION',\n\t\t\t\tpayload: { visible: true, ...payload }\n\t\t\t});\n\t\t}\n\t};\n\n\tconst getData = (d) => {\n\t\treturn { ...data, ...d, request_id: requestId, source: 'izracun-kredita.si' };\n\t};\n\n\tconst sendInquiry = (d) => {\n\t\t// Lock submit / disable\n\t\tdispatch({ type: 'TOGGLE_SUBMIT_LOCK' });\n\n\t\t// Send data to server\n\t\tsendEvent(null, null, `SUBMIT: START`, JSON.stringify({ ...data, ...d, source: 'izracun-kredita.si' }));\n\n\t\tgqlMutation({\n\t\t\tvariables: getData(d), // combine all saved data till now and from last form\n\t\t\tcontext: setContext('send_mail'),\n\t\t\terrorPolicy: 'all'\n\t\t});\n\n\t\t// Send event to fb\n\t\tfbEvent('Lead', { content_name: 'izracun-kredita.si' });\n\n\t\tdispatch({ type: 'RESET_SUBMIT' });\n\t};\n\n\tconst onStepSuccess = (s, d) => {\n\t\tsendEvent(null, null, `NEXT STEP [${s}] / SUBMIT CLICKED`, JSON.stringify(data));\n\n\t\t// Scroll back top\n\t\tsetTimeout(() => {\n\t\t\twindow.scrollTo(0, isMobile === false ? 0 : 400); // 400 = mobile css style for index.module.scss/.calculator\n\t\t}, 400);\n\n\t\tdispatch({ type: 'UPDATE_DATA', payload: { data: d } });\n\t\tdispatch({ type: 'SET_SUBMIT_BUTTON', payload: { text: lng('btnNext'), icon: 'arrow-right-white' } });\n\n\t\tswitch (step) {\n\t\tcase 2:\n\t\t\t// Set new request id\n\t\t\tsetRequestId(generateRequestId());\n\t\t\tdispatch({ type: 'STEP_NEXT' });\n\t\t\tbreak;\n\n\t\tcase 3:\n\t\t\tif (!isBSCandidate({ ...data, ...d })) {\n\t\t\t\t// Send request to catch request in case, user close app before submit (from modal)\n\t\t\t\tcatchRequest(getData(d));\n\n\t\t\t\t// Show modal\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: 'MODAL', // decision modal BS\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tonConfirm: dta => sendInquiry(dta),\n\t\t\t\t\t\tonCancel: () => sendInquiry(d) // not candidate at all! not possible to modify values, to fit\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsendInquiry(d); // BS candidate = yes -> submit\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tdispatch({ type: 'STEP_NEXT' });\n\t\t\tbreak;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tdispatch({ type: 'RESET_SUBMIT_BUTTON' });\n\n\t\t// Calculate step width\n\t\tsetStepWidth(refElem.current.getBoundingClientRect().width - 50);\n\n\t\tonMounted();\n\n\t\t// Scroll down to calculator\n\t\t/*\n\t\tif (isMobile && paramsViaURL !== null) {\n\t\t\twindow.scrollTo(0, 400);\n\t\t}\n\t\t*/\n\t}, []);\n\n\t// Show notification, after server response\n\tuseEffect(() => {\n\t\tif (requestData && requestLoading === false) {\n\t\t\t// Handle server request - error or success notification\n\t\t\tif (requestError) {\n\t\t\t\tsendEvent(null, null, `SUBMIT: END - ERROR`, requestError.graphQLErrors[0].potError.message);\n\n\t\t\t\tsetNotification({\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\ttitle: 'Napaka :/',\n\t\t\t\t\ttext: requestError.graphQLErrors[0].potError.message,\n\t\t\t\t\tredoBtn: {\n\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\ttext: lng('btnRepeat')\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsendEvent(null, null, `SUBMIT: END - SUCCESS`);\n\n\t\t\t\tsetNotification({\n\t\t\t\t\ttype: 'ok',\n\t\t\t\t\ttitle: lng('notificationSuccessTitle'),\n\t\t\t\t\ttext: lng('notificationSuccessText'),\n\t\t\t\t\tshowData: true\n\t\t\t\t\t/*\n\t\t\t\t\tredoBtn: { // izključeno 20.12.2021 - gumb: Ponovi na zahvalnem screenu\n\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\ttext: lng('btnRepeat')\n\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, [requestData, requestLoading, requestError]);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t{mounted === false && {lng('labelInit')}}\n\t\t\t\n\t\t\t{mounted === true ? : null}\n\t\t
\n\t);\n};\n\nexport default Calculator;\n","import React, { useState, useEffect } from 'react';\nimport useWindowScroll from '@react-hook/window-scroll';\n\nimport styles from './calculator.module.scss';\nimport { lng } from '../../config/language';\nimport Calculator from './calculator';\nimport CalculatorNotification from './calculator-notification';\nimport CalculatorBottom from './calculator-bottom';\nimport { useStore as calculatorStore } from '../../contexts/calculator';\nimport { testMobile } from '../../helpers/common';\n\nconst CalculatorLayout = () => {\n\tconst [scroll, setScroll] = useState(0);\n\tconst { data: calculatorData } = calculatorStore();\n\tconst { notification, modal: { visible } } = calculatorData; // visible = CalculatorModalDecision modal is visible on last step\n\tconst [isMobile] = useState(testMobile());\n\tconst scrollY = useWindowScroll(60);\n\n\tuseEffect(() => {\n\t\t// REÅ I PREKO CONTEXT!!\n\t\tif (window && isMobile) {\n\t\t\tdocument.addEventListener('scroll', () => {\n\t\t\t\tconst scrollCheck = window.scrollY > 350;\n\t\t\t\tif (scrollCheck !== scroll) setScroll(scrollCheck);\n\t\t\t});\n\t\t}\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t{!visible && }\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

{lng('heroTitle')}

\n\t\t\t\t\t\t

{lng('heroDescription')}

\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default CalculatorLayout;\n","import gql from 'graphql-tag';\n\nconst request = {\n\tvalidation: null,\n\n\trequest: {\n\t\tname: 'blog>single'\n\t},\n\n\tgql: {\n\t\tschema: gql`\n\t\t\tquery BlogPost {\n\t\t\t request {\n\t\t\t\t\tcontent_id\n\t\t\t title\n\t\t\t text\n\t\t\t content_dtm\n\t\t\t }\n\t\t\t}\n\t\t`\n\t}\n};\n\nexport default request;\n","import React, { useState, useEffect } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport styles from './blog.module.scss';\nimport { setContext } from '../../helpers/gql';\nimport request from '../../requests/query/blog/single';\nimport { lng } from '../../config/language';\n\n// import banner1 from '../../assets/img/banner/mk-banner-poweredby.png';\n// import banner2 from '../../assets/img/banner/nepnet-banner-poweredby.png';\n\nconst BlogPost = () => {\n\tconst [post, setPost] = useState(null);\n\n\tconst { loading, data } = useQuery(request.gql.schema, {\n\t\tcontext: setContext('blog>single')\n\t});\n\n\tuseEffect(() => {\n\t\tif (loading === false && post === null && data && data.request.content_id) {\n\t\t\tsetPost(data.request);\n\t\t}\n\t}, [loading, data]);\n\n\tif (!post) return null;\n\t/*\n\t
\n\t\t\"Powered\n\t\t\"Powered\n\t
\n\n\t BEFORE
\n\t*/\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{lng('tagPayedPost')}\n\t\t\t\t\t\t\t

{post.title}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default BlogPost;\n","import React from 'react';\n\nimport styles from './footer.module.scss';\nimport logoMojikvadrati from '../../assets/img/powered-by-mk.svg';\nimport { lng } from '../../config/language';\n\nconst Footer = () => {\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{lng('footerDisclaimer')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Footer;\n","import React from 'react';\n\nimport SEO from '../components/seo';\nimport Layout from '../components/layout/layout';\nimport CalculatorLayout from '../components/calculator/calculator-layout';\nimport BlogPost from '../components/blog/post';\nimport Footer from '../components/footer/footer';\nimport styles from './index.module.scss';\nimport { CalculatorProvider } from '../contexts/calculator';\n\nconst Index = () => {\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t