{"version":3,"sources":["webpack://HlsDemo/webpack/universalModuleDefinition","webpack://HlsDemo/webpack/bootstrap","webpack://HlsDemo/./demo/chart/chartjs-horizontal-bar.ts","webpack://HlsDemo/./demo/chart/timeline-chart.ts","webpack://HlsDemo/./demo/demo-utils.js","webpack://HlsDemo/./demo/main.js","webpack://HlsDemo/./node_modules/chart.js/dist/Chart.js","webpack://HlsDemo/./node_modules/jsonpack/main.js","webpack://HlsDemo/./node_modules/moment/locale sync ^\\.\\/.*$","webpack://HlsDemo/./node_modules/moment/locale/af.js","webpack://HlsDemo/./node_modules/moment/locale/ar-dz.js","webpack://HlsDemo/./node_modules/moment/locale/ar-kw.js","webpack://HlsDemo/./node_modules/moment/locale/ar-ly.js","webpack://HlsDemo/./node_modules/moment/locale/ar-ma.js","webpack://HlsDemo/./node_modules/moment/locale/ar-sa.js","webpack://HlsDemo/./node_modules/moment/locale/ar-tn.js","webpack://HlsDemo/./node_modules/moment/locale/ar.js","webpack://HlsDemo/./node_modules/moment/locale/az.js","webpack://HlsDemo/./node_modules/moment/locale/be.js","webpack://HlsDemo/./node_modules/moment/locale/bg.js","webpack://HlsDemo/./node_modules/moment/locale/bm.js","webpack://HlsDemo/./node_modules/moment/locale/bn-bd.js","webpack://HlsDemo/./node_modules/moment/locale/bn.js","webpack://HlsDemo/./node_modules/moment/locale/bo.js","webpack://HlsDemo/./node_modules/moment/locale/br.js","webpack://HlsDemo/./node_modules/moment/locale/bs.js","webpack://HlsDemo/./node_modules/moment/locale/ca.js","webpack://HlsDemo/./node_modules/moment/locale/cs.js","webpack://HlsDemo/./node_modules/moment/locale/cv.js","webpack://HlsDemo/./node_modules/moment/locale/cy.js","webpack://HlsDemo/./node_modules/moment/locale/da.js","webpack://HlsDemo/./node_modules/moment/locale/de-at.js","webpack://HlsDemo/./node_modules/moment/locale/de-ch.js","webpack://HlsDemo/./node_modules/moment/locale/de.js","webpack://HlsDemo/./node_modules/moment/locale/dv.js","webpack://HlsDemo/./node_modules/moment/locale/el.js","webpack://HlsDemo/./node_modules/moment/locale/en-au.js","webpack://HlsDemo/./node_modules/moment/locale/en-ca.js","webpack://HlsDemo/./node_modules/moment/locale/en-gb.js","webpack://HlsDemo/./node_modules/moment/locale/en-ie.js","webpack://HlsDemo/./node_modules/moment/locale/en-il.js","webpack://HlsDemo/./node_modules/moment/locale/en-in.js","webpack://HlsDemo/./node_modules/moment/locale/en-nz.js","webpack://HlsDemo/./node_modules/moment/locale/en-sg.js","webpack://HlsDemo/./node_modules/moment/locale/eo.js","webpack://HlsDemo/./node_modules/moment/locale/es-do.js","webpack://HlsDemo/./node_modules/moment/locale/es-mx.js","webpack://HlsDemo/./node_modules/moment/locale/es-us.js","webpack://HlsDemo/./node_modules/moment/locale/es.js","webpack://HlsDemo/./node_modules/moment/locale/et.js","webpack://HlsDemo/./node_modules/moment/locale/eu.js","webpack://HlsDemo/./node_modules/moment/locale/fa.js","webpack://HlsDemo/./node_modules/moment/locale/fi.js","webpack://HlsDemo/./node_modules/moment/locale/fil.js","webpack://HlsDemo/./node_modules/moment/locale/fo.js","webpack://HlsDemo/./node_modules/moment/locale/fr-ca.js","webpack://HlsDemo/./node_modules/moment/locale/fr-ch.js","webpack://HlsDemo/./node_modules/moment/locale/fr.js","webpack://HlsDemo/./node_modules/moment/locale/fy.js","webpack://HlsDemo/./node_modules/moment/locale/ga.js","webpack://HlsDemo/./node_modules/moment/locale/gd.js","webpack://HlsDemo/./node_modules/moment/locale/gl.js","webpack://HlsDemo/./node_modules/moment/locale/gom-deva.js","webpack://HlsDemo/./node_modules/moment/locale/gom-latn.js","webpack://HlsDemo/./node_modules/moment/locale/gu.js","webpack://HlsDemo/./node_modules/moment/locale/he.js","webpack://HlsDemo/./node_modules/moment/locale/hi.js","webpack://HlsDemo/./node_modules/moment/locale/hr.js","webpack://HlsDemo/./node_modules/moment/locale/hu.js","webpack://HlsDemo/./node_modules/moment/locale/hy-am.js","webpack://HlsDemo/./node_modules/moment/locale/id.js","webpack://HlsDemo/./node_modules/moment/locale/is.js","webpack://HlsDemo/./node_modules/moment/locale/it-ch.js","webpack://HlsDemo/./node_modules/moment/locale/it.js","webpack://HlsDemo/./node_modules/moment/locale/ja.js","webpack://HlsDemo/./node_modules/moment/locale/jv.js","webpack://HlsDemo/./node_modules/moment/locale/ka.js","webpack://HlsDemo/./node_modules/moment/locale/kk.js","webpack://HlsDemo/./node_modules/moment/locale/km.js","webpack://HlsDemo/./node_modules/moment/locale/kn.js","webpack://HlsDemo/./node_modules/moment/locale/ko.js","webpack://HlsDemo/./node_modules/moment/locale/ku.js","webpack://HlsDemo/./node_modules/moment/locale/ky.js","webpack://HlsDemo/./node_modules/moment/locale/lb.js","webpack://HlsDemo/./node_modules/moment/locale/lo.js","webpack://HlsDemo/./node_modules/moment/locale/lt.js","webpack://HlsDemo/./node_modules/moment/locale/lv.js","webpack://HlsDemo/./node_modules/moment/locale/me.js","webpack://HlsDemo/./node_modules/moment/locale/mi.js","webpack://HlsDemo/./node_modules/moment/locale/mk.js","webpack://HlsDemo/./node_modules/moment/locale/ml.js","webpack://HlsDemo/./node_modules/moment/locale/mn.js","webpack://HlsDemo/./node_modules/moment/locale/mr.js","webpack://HlsDemo/./node_modules/moment/locale/ms-my.js","webpack://HlsDemo/./node_modules/moment/locale/ms.js","webpack://HlsDemo/./node_modules/moment/locale/mt.js","webpack://HlsDemo/./node_modules/moment/locale/my.js","webpack://HlsDemo/./node_modules/moment/locale/nb.js","webpack://HlsDemo/./node_modules/moment/locale/ne.js","webpack://HlsDemo/./node_modules/moment/locale/nl-be.js","webpack://HlsDemo/./node_modules/moment/locale/nl.js","webpack://HlsDemo/./node_modules/moment/locale/nn.js","webpack://HlsDemo/./node_modules/moment/locale/oc-lnc.js","webpack://HlsDemo/./node_modules/moment/locale/pa-in.js","webpack://HlsDemo/./node_modules/moment/locale/pl.js","webpack://HlsDemo/./node_modules/moment/locale/pt-br.js","webpack://HlsDemo/./node_modules/moment/locale/pt.js","webpack://HlsDemo/./node_modules/moment/locale/ro.js","webpack://HlsDemo/./node_modules/moment/locale/ru.js","webpack://HlsDemo/./node_modules/moment/locale/sd.js","webpack://HlsDemo/./node_modules/moment/locale/se.js","webpack://HlsDemo/./node_modules/moment/locale/si.js","webpack://HlsDemo/./node_modules/moment/locale/sk.js","webpack://HlsDemo/./node_modules/moment/locale/sl.js","webpack://HlsDemo/./node_modules/moment/locale/sq.js","webpack://HlsDemo/./node_modules/moment/locale/sr-cyrl.js","webpack://HlsDemo/./node_modules/moment/locale/sr.js","webpack://HlsDemo/./node_modules/moment/locale/ss.js","webpack://HlsDemo/./node_modules/moment/locale/sv.js","webpack://HlsDemo/./node_modules/moment/locale/sw.js","webpack://HlsDemo/./node_modules/moment/locale/ta.js","webpack://HlsDemo/./node_modules/moment/locale/te.js","webpack://HlsDemo/./node_modules/moment/locale/tet.js","webpack://HlsDemo/./node_modules/moment/locale/tg.js","webpack://HlsDemo/./node_modules/moment/locale/th.js","webpack://HlsDemo/./node_modules/moment/locale/tk.js","webpack://HlsDemo/./node_modules/moment/locale/tl-ph.js","webpack://HlsDemo/./node_modules/moment/locale/tlh.js","webpack://HlsDemo/./node_modules/moment/locale/tr.js","webpack://HlsDemo/./node_modules/moment/locale/tzl.js","webpack://HlsDemo/./node_modules/moment/locale/tzm-latn.js","webpack://HlsDemo/./node_modules/moment/locale/tzm.js","webpack://HlsDemo/./node_modules/moment/locale/ug-cn.js","webpack://HlsDemo/./node_modules/moment/locale/uk.js","webpack://HlsDemo/./node_modules/moment/locale/ur.js","webpack://HlsDemo/./node_modules/moment/locale/uz-latn.js","webpack://HlsDemo/./node_modules/moment/locale/uz.js","webpack://HlsDemo/./node_modules/moment/locale/vi.js","webpack://HlsDemo/./node_modules/moment/locale/x-pseudo.js","webpack://HlsDemo/./node_modules/moment/locale/yo.js","webpack://HlsDemo/./node_modules/moment/locale/zh-cn.js","webpack://HlsDemo/./node_modules/moment/locale/zh-hk.js","webpack://HlsDemo/./node_modules/moment/locale/zh-mo.js","webpack://HlsDemo/./node_modules/moment/locale/zh-tw.js","webpack://HlsDemo/./node_modules/moment/moment.js","webpack://HlsDemo/./node_modules/promise-polyfill/src/allSettled.js","webpack://HlsDemo/./node_modules/promise-polyfill/src/finally.js","webpack://HlsDemo/./node_modules/promise-polyfill/src/index.js","webpack://HlsDemo/./node_modules/promise-polyfill/src/polyfill.js","webpack://HlsDemo/(webpack)/buildin/amd-define.js","webpack://HlsDemo/(webpack)/buildin/module.js","webpack://HlsDemo/./tests/test-streams.js"],"names":["Chart","controllers","horizontalBar","prototype","calculateBarValuePixels","datasetIndex","index","options","chart","scale","_getValueScale","datasets","data","Error","_parseValue","scaleParseValue","obj","value","start","undefined","max","min","length","end","base","getPixelForValue","head","size","center","calculateBarIndexPixels","ruler","rowHeight","barThickness","categoryPercentage","draw","rects","getMeta","len","dataset","getDataset","ctx","chartArea","helpers","canvas","clipArea","lineHeight","Math","ceil","measureText","actualBoundingBoxAscent","range","i","rect","view","_view","intersects","x","left","right","val","isNaN","dataType","stats","isPart","isFragmentHint","isFragment","isCue","y","height","bounds","boundingRects","drawText","w","borderWidth","borderSkipped","getValueForPixel","backgroundColor","fillStyle","fillRect","h","aborted","loaded","total","active","snBounds","cc","ccLabel","ccWidth","width","fillText","snLabel","sn","textWidth","strLength","content","substr","float","fixedDigits","floor","startString","hhmmss","unclipArea","applyChartInstanceOverrides","Object","keys","scales","forEach","axis","console","warn","Array","isArray","getRightValue","duration","x1","x2","x3","x4","vm","half","top","bottom","m","s","pad","toFixed","replace","str","X_AXIS_SECONDS","TimelineChart","chartJsOptions","rafDebounceRequestId","imageDataBuffer","media","tracksChangeHandler","cuesChangeHandler","hidden","zoom100","getContext","self","type","labels","getChartOptions","plugins","afterRender","drawCurrentTime","ondblclick","event","element","getElementAtEvent","pos","getRelativePosition","chartScales","amount","getModifierState","zoom","ticks","update","onwheel","deltaMode","deltaY","direction","abs","normal","ease","deltaX","pan","preventDefault","moved","gestureScale","onpointerdown","downEvent","isPrimary","startX","clientX","xToVal","setPointerCapture","pointerId","onpointermove","moveEvent","movedX","movedValue","onpointerup","onpointercancel","upEvent","releasePointerCapture","click","ongesturestart","ongestureend","ongesturechange","_datasetIndex","_index","log","hls","currentTime","updateOnRepaint","diff","minPercent","maxPercent","minDelta","maxDelta","reset","resize","cancelAnimationFrame","lazy","requestAnimationFrame","reduce","container","parentElement","style","show","hide","updateLevels","levels","levelSwitched","loadLevel","nextLoadLevel","nextAutoLevel","currentLevel","level","id","push","getLevelName","borderColor","datasetWithDefaults","url","urlId","trackType","details","updateLevelOrTrack","updateAudioTracks","audioTracks","audioTrack","track","getAudioTrackName","updateSubtitleTracks","subtitles","subtitleTrack","getSubtitlesName","removeType","splice","targetduration","totalduration","levelDataSet","arrayFind","stripDeliveryDirectives","fragments","fragment","chartFragment","loader","partList","part","chartPart","fragOffset","fragmentHint","getPlaylistStart","maxZoom","updateFragment","frag","baseurl","fragData","relurl","updateSourceBuffers","tracks","trackTypes","sort","mediaBufferData","removeSourceBuffers","sourceBuffer","buffer","video","audio","audiovideo","unshift","addEventListener","replaceTimeRangeTuples","buffered","error","onprogress","ontimeupdate","textTracks","e","setTextTracks","currentTarget","removeEventListener","toString","indexOf","call","textTrack","name","label","kind","mode","updateTextTrackCues","_data","activeCues","cues","activeLength","activeMin","Infinity","activeMax","cue","item","startTime","endTime","getCueLabel","some","activeCue","cuesMatch","restore","save","drawLineX","getCurrentTimeColor","readyState","ended","seeking","paused","devicePixelRatio","getImageData","putImageData","lineWidth","strokeStyle","beginPath","moveTo","lineTo","stroke","currentZoom","newZoom","webUrl","URL","searchParams","delete","href","xAxisID","attrs","BANDWIDTH","getMainLevelAttribute","RESOLUTION","CODECS","AUDIO","lang","groupId","timeRanges","cue1","cue2","text","JSON","stringify","result","parseDataCue","info","collection","key","animation","elements","rectangle","events","hover","animationDuration","legend","display","maintainAspectRatio","responsiveAnimationDuration","xAxes","beginAtZero","sampleSize","maxRotation","callback","tickValue","yAxes","gridLines","tooltips","enabled","array","predicate","TypeError","thisArg","arguments","k","kValue","sortObject","temp","copyTextToClipboard","textArea","document","createElement","body","appendChild","select","successful","execCommand","msg","err","removeChild","NETLIFY","__NETLIFY__","STORAGE_KEYS","Editor_Persistence","Hls_Config","volume","demo_tabs","testStreams","require","defaultTestStreamUrl","sourceURL","decodeURIComponent","getURLParam","demoConfig","parse","atob","hlsjsDefaults","debug","enableWorker","lowLatencyMode","backBufferLength","enableStreaming","getDemoConfigPropOrDefault","autoRecoverError","levelCapping","limitMetrics","dumpfMP4","stopOnStall","bufferingIdx","selectedTestStream","querySelector","Date","now","lastSeekingIdx","lastStartPosition","lastDuration","lastAudioTrackSwitchingIdx","fmp4Data","configPersistenceEnabled","configEditor","resizeAsyncCallbackId","setTimeout","clearTimeout","resizeHandlers","handler","onresize","screen","orientation","onchange","playerResize","getBoundingClientRect","$","html","round","videoWidth","videoHeight","ready","setupConfigEditor","setupTimelineChart","stream","option","Option","description","append","selectedIndex","each","change","streamUrl","loadSelectedStream","checkBuffer","checked","onDemoConfigChanged","toggle","prop","getVersionLink","version","alphaRegex","test","encodeURIComponent","reviewID","branch","Hls","$a","attr","volumeSettings","localStorage","getItem","muted","windowSliding","tabIndexesCSV","split","indexString","toggleTab","parseInt","window","on","location","reload","setupGlobals","t0","performance","load","bitrate","recoverDecodingErrorDate","recoverSwapAudioCodecDate","onClickBufferedRange","updateLevelInfo","createfMP4","goToMetricsPermaLink","toggleTabClick","applyConfigEditorValue","trimArray","target","limit","shift","trimEventHistory","empty","isSupported","handleUnsupported","hideCanvas","destroy","clearInterval","bufferTimer","logStatus","hlsConfig","extend","getEditorValue","config","updateConfigEditorValue","expiredTracks","filter","kinds","map","join","videoWithExpiredTextTracks","cloneNode","removeAttribute","parentNode","insertBefore","addChartEventListeners","addVideoEventListeners","loadSource","autoLevelCapping","attachMedia","Events","MEDIA_ATTACHED","time","MEDIA_DETACHED","DESTROYING","BUFFER_RESET","FRAG_PARSING_INIT_SEGMENT","eventName","showCanvas","FRAG_PARSING_METADATA","LEVEL_SWITCHING","MANIFEST_PARSED","loading","latency","first","refreshCanvas","levelNb","levelParsed","AUDIO_TRACKS_UPDATED","updateAudioTrackInfo","AUDIO_TRACK_SWITCHING","AUDIO_TRACK_SWITCHED","LEVEL_LOADED","isLive","live","startSN","endSN","parsing","parsingDuration","sumLevelParsingMs","levelParsingUs","AUDIO_TRACK_LOADED","FRAG_BUFFERED","id2","id3","buffering","bw","setInterval","process","fragBuffered","fragMinLatency","fragMaxLatency","fragMinProcess","fragMaxProcess","fragMinKbps","fragMaxKbps","autoLevelCappingMin","autoLevelCappingMax","fragBufferedBytes","sumLatency","sumKbps","sumProcess","sumParsing","fraglastLatency","fragAvgLatency","fragLastProcess","fragAvgProcess","fragLastKbps","fragAvgKbps","fragparsingKbps","fragparsingMs","autoLevelCappingLast","LEVEL_SWITCHED","FRAG_CHANGED","tagList","autoLevel","autoLevelEnabled","levelStart","fragProgramDateTime","programDateTime","fragStart","fragChangedAuto","autoLevelMin","autoLevelMax","levelLastAuto","autoLevelLast","autoLevelSwitch","sumAutoLevel","autoLevelAvg","fragChangedManual","manualLevelMin","manualLevelMax","manualLevelLast","manualLevelSwitch","FRAG_LOAD_EMERGENCY_ABORTED","fragLoadEmergencyAborted","FRAG_DECRYPTED","fragDecrypted","totalDecryptTime","fragAvgDecryptTime","tdecrypt","tstart","ERROR","ErrorDetails","MANIFEST_LOAD_ERROR","context","response","code","MANIFEST_LOAD_TIMEOUT","logError","MANIFEST_PARSING_ERROR","reason","LEVEL_EMPTY_ERROR","LEVEL_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","LEVEL_SWITCH_ERROR","FRAG_LOAD_ERROR","FRAG_LOAD_TIMEOUT","FRAG_LOOP_LOADING_ERROR","FRAG_DECRYPT_ERROR","FRAG_PARSING_ERROR","KEY_LOAD_ERROR","decryptdata","uri","KEY_LOAD_TIMEOUT","BUFFER_APPEND_ERROR","BUFFER_ADD_CODEC_ERROR","mimeType","message","BUFFER_APPENDING_ERROR","BUFFER_STALLED_ERROR","stopLoad","pause","fatal","ErrorTypes","MEDIA_ERROR","handleMediaError","NETWORK_ERROR","fatalError","BUFFER_CREATED","BUFFER_APPENDING","FPS_DROP","currentDropped","currentDecoded","fpsDropEvent","fpsTotalDroppedFrames","totalDroppedFrames","handleVideoEvent","handleVolumeEvent","navigator","userAgent","toLowerCase","evt","errorTxt","mediaError","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","setItem","handleLevelError","levelObj","removeLevel","recoverMediaError","swapAudioCodec","timeRangesToString","r","seekableEnd","getSeekableEnd","bufferingDuration","clientWidth","bufferLen","bufEvents","bufEventLen","event0","event1","slopeBuf0","slopeBuf1","slopePos0","slopePos1","pop","is","seekable","played","videoPlaybackQuality","getVideoPlaybackQuality","Function","droppedVideoFrames","corruptedVideoFrames","webkitDroppedFrameCount","bandwidthEstimate","maxLatency","targetLatency","drift","latencyController","edgeStalled","playbackRate","currentPDT","toISOString","pdtLatency","showMetrics","hideMetrics","getMetrics","json","jsonpacked","pack","btoa","copyMetricsToClipBoard","goToMetrics","lastIndexOf","open","b64","offsetLeft","isFinite","getLevelButtonHtml","onclickReplace","autoEnabled","onclickAuto","codecs","uniqueCodecs","levelCodecs","codecs2label","onclick","level2label","htmlCurrentLevel","htmlNextLevel","htmlLoadLevel","htmlCapLevel","buttonTemplate","buttonEnabled","buttonDisabled","html1","audioTrackId","manifestCodecs","levelNameInfo","codecInfo","propName","defaultVal","sParam","defaultValue","sPageURL","search","substring","sURLVariables","sParameterName","firstLoad","persistEditorValue","serializedDemoConfig","baseURL","streamURL","permalinkURL","history","pushState","onConfigPersistenceChanged","removeItem","session","getValue","getPersistedHlsConfig","ace","edit","setTheme","setMode","contents","shouldRestorePersisted","elPersistence","responsive","retry","trequest","tfirst","tload","updateChart","MANIFEST_LOADING","LEVELS_UPDATED","LEVEL_LOADING","LEVEL_UPDATED","SUBTITLE_TRACKS_UPDATED","subtitleTracks","SUBTITLE_TRACK_SWITCH","SUBTITLE_TRACK_LOADED","LEVEL_PTS_UPDATED","FRAG_LOADED","FRAG_PARSED","BUFFER_APPENDED","BUFFER_FLUSHED","setValue","blob","Blob","arrayConcat","filename","saveAs","inputArray","totalLength","prev","cur","Uint8Array","offset","set","hideAllTabs","css","btn","tabIndexes","toArray","el","dontHideOpenTabs","tabElId","modifierPressed","metaKey","shiftKey","appendLog","textElId","logText","timestamp","newMessage","scrollTop","scrollHeight","clientHeight","createTestStream","abr","skip_ua","createTestStreamWithConfig","testStream","module","exports","bbb","fdr","bigBuckBunny480p","arte","deltatreDAI","issue666","closedCaptions","customIvBadDts","oceansAES","tracksWithAES","mp3Audio","mpegAudioOnly","fmp4","fmp4Bitmovin","fmp4BitmovinHevc","skipFunctionalTests","offset_pts","angelOneShakaWidevine","widevineLicenseUrl","emeEnabled","audioOnlyMultipleLevels","pdtDuplicate","pdtLargeGap","pdtBadValues","pdtOneValue","noTrackIntersection","avBufferOffset","altAudioAndTracks","vendor","altAudioAudioOnly","allowedBufferedRangesInSeekTest","altAudioMultiAudioOnly","muxedFmp4","altAudioWithPdtAndStartGap","startSeek","AppleAdvancedHevcAvcHls","MuxLowLatencyHls","groupIds","redundantLevelsWithTrackGroups"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;;;;;CChFA;;AACAA,+CAAK,CAACC,WAAN,CAAkBC,aAAlB,CAAgCC,SAAhC,CAA0CC,uBAA1C,GAAoE,UAClEC,YADkE,EAElEC,KAFkE,EAGlEC,OAHkE,EAIlE;AACA,MAAMC,KAAK,GAAG,KAAKA,KAAnB;;AACA,MAAMC,KAAK,GAAG,KAAKC,cAAL,EAAd;;AACA,MAAMC,QAAQ,GAAGH,KAAK,CAACI,IAAN,CAAWD,QAA5B;;AACA,MAAI,CAACA,QAAL,EAAe;AACb,UAAM,IAAIE,KAAJ,yBAAgCF,QAAhC,CAAN;AACD;;AACDF,OAAK,CAACK,WAAN,GAAoBC,eAApB;AACA,MAAMC,GAAG,GAAGL,QAAQ,CAACN,YAAD,CAAR,CAAuBO,IAAvB,CAA4BN,KAA5B,CAAZ;;AACA,MAAMW,KAAK,GAAGR,KAAK,CAACK,WAAN,CAAkBE,GAAlB,CAAd;;AACA,MAAME,KAAK,GACTD,KAAK,CAACC,KAAN,KAAgBC,SAAhB,GACI,CADJ,GAEIF,KAAK,CAACG,GAAN,IAAa,CAAb,IAAkBH,KAAK,CAACI,GAAN,IAAa,CAA/B,GACAJ,KAAK,CAACI,GADN,GAEAJ,KAAK,CAACG,GALZ;AAMA,MAAME,MAAM,GACVL,KAAK,CAACC,KAAN,KAAgBC,SAAhB,GACIF,KAAK,CAACM,GADV,GAEIN,KAAK,CAACG,GAAN,IAAa,CAAb,IAAkBH,KAAK,CAACI,GAAN,IAAa,CAA/B,GACAJ,KAAK,CAACG,GAAN,GAAYH,KAAK,CAACI,GADlB,GAEAJ,KAAK,CAACI,GAAN,GAAYJ,KAAK,CAACG,GALxB;AAMA,MAAMI,IAAI,GAAGf,KAAK,CAACgB,gBAAN,CAAuBP,KAAvB,CAAb;AACA,MAAMQ,IAAI,GAAGjB,KAAK,CAACgB,gBAAN,CAAuBP,KAAK,GAAGI,MAA/B,CAAb;AACA,MAAMK,IAAI,GAAGD,IAAI,GAAGF,IAApB;AAEA,SAAO;AACLG,QAAI,EAAEA,IADD;AAELH,QAAI,EAAEA,IAFD;AAGLE,QAAI,EAAEA,IAHD;AAILE,UAAM,EAAEF,IAAI,GAAGC,IAAI,GAAG;AAJjB,GAAP;AAMD,CApCD;;AAsCA3B,+CAAK,CAACC,WAAN,CAAkBC,aAAlB,CAAgCC,SAAhC,CAA0C0B,uBAA1C,GAAoE,UAClExB,YADkE,EAElEC,KAFkE,EAGlEwB,KAHkE,EAIlEvB,OAJkE,EAKlE;AACA,MAAMwB,SAAS,GAAGxB,OAAO,CAACyB,YAA1B;AACA,MAAML,IAAI,GAAGI,SAAS,GAAGxB,OAAO,CAAC0B,kBAAjC;AACA,MAAML,MAAM,GAAGE,KAAK,CAACZ,KAAN,IAAeb,YAAY,GAAG0B,SAAf,GAA2BA,SAAS,GAAG,CAAtD,CAAf;AACA,SAAO;AACLP,QAAI,EAAEI,MAAM,GAAGD,IAAI,GAAG,CADjB;AAELD,QAAI,EAAEE,MAAM,GAAGD,IAAI,GAAG,CAFjB;AAGLC,UAAM,EAANA,MAHK;AAILD,QAAI,EAAJA;AAJK,GAAP;AAMD,CAfD;;AAiBA3B,+CAAK,CAACC,WAAN,CAAkBC,aAAlB,CAAgCC,SAAhC,CAA0C+B,IAA1C,GAAiD,YAAY;AAC3D,MAAMC,KAAK,GAAG,KAAKC,OAAL,GAAexB,IAA7B;AACA,MAAMyB,GAAG,GAAGF,KAAK,CAACb,MAAlB;AACA,MAAMgB,OAAO,GAAG,KAAKC,UAAL,EAAhB;;AACA,MAAIF,GAAG,KAAKC,OAAO,CAAC1B,IAAR,CAAaU,MAAzB,EAAiC;AAC/B;AACA;AACD;;AACD,MAAMd,KAAK,GAAG,KAAKA,KAAnB;;AACA,MAAMC,KAAK,GAAG,KAAKC,cAAL,EAAd;;AACAD,OAAK,CAACK,WAAN,GAAoBC,eAApB;AACA,MAAMyB,GAA6B,GAAGhC,KAAK,CAACgC,GAA5C;AACA,MAAMC,SAAuC,GAAGjC,KAAK,CAACiC,SAAtD;AACAzC,iDAAK,CAAC0C,OAAN,CAAcC,MAAd,CAAqBC,QAArB,CAA8BJ,GAA9B,EAAmCC,SAAnC;;AACA,MAAI,CAAC,KAAKI,UAAV,EAAsB;AACpB,SAAKA,UAAL,GACEC,IAAI,CAACC,IAAL,CAAUP,GAAG,CAACQ,WAAJ,CAAgB,GAAhB,EAAqBC,uBAA/B,IAA0D,CAD5D;AAED;;AACD,MAAMJ,UAAU,GAAG,KAAKA,UAAxB;AACA,MAAIK,KAAK,GAAG,CAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,GAApB,EAAyB,EAAEc,CAA3B,EAA8B;AAC5B,QAAMC,IAAI,GAAGjB,KAAK,CAACgB,CAAD,CAAlB;AACA,QAAME,IAAI,GAAGD,IAAI,CAACE,KAAlB;;AACA,QAAI,CAACC,UAAU,CAACF,IAAI,CAAC7B,IAAN,EAAY6B,IAAI,CAACG,CAAjB,EAAoBf,SAAS,CAACgB,IAA9B,EAAoChB,SAAS,CAACiB,KAA9C,CAAf,EAAqE;AACnE;AACA;AACD;;AACD,QAAM1C,GAAG,GAAGsB,OAAO,CAAC1B,IAAR,CAAauC,CAAb,CAAZ;;AACA,QAAMQ,GAAG,GAAGlD,KAAK,CAACK,WAAN,CAAkBE,GAAlB,CAAZ;;AACA,QAAI,CAAC4C,KAAK,CAACD,GAAG,CAACtC,GAAL,CAAN,IAAmB,CAACuC,KAAK,CAACD,GAAG,CAACvC,GAAL,CAA7B,EAAwC;AACtC,UAAQyC,QAAR,GAAqB7C,GAArB,CAAQ6C,QAAR;AACA,UAAMC,KAAN,GAAgB9C,GAAhB,CAAM8C,KAAN;AACA,UAAMC,MAAM,GAAGF,QAAQ,KAAK,MAA5B;AACA,UAAMG,cAAc,GAAGH,QAAQ,KAAK,cAApC;AACA,UAAMI,UAAU,GAAGJ,QAAQ,KAAK,UAAb,IAA2BE,MAA3B,IAAqCC,cAAxD;AACA,UAAME,KAAK,GAAGL,QAAQ,KAAK,KAA3B;;AACA,UAAIK,KAAJ,EAAW;AACTb,YAAI,CAACc,CAAL,IAAUd,IAAI,CAACe,MAAL,GAAc,GAAd,IAAqBjB,CAAC,GAAG,CAAzB,IAA8BE,IAAI,CAACe,MAAL,GAAc,IAAtD;AACD,OAFD,MAEO,IAAIL,MAAJ,EAAY;AACjBV,YAAI,CAACe,MAAL,IAAe,EAAf;AACD;;AACD,UAAMC,MAAM,GAAGC,aAAa,CAACjB,IAAD,CAA5B;AACA,UAAMkB,QAAQ,GAAGF,MAAM,CAACG,CAAP,GAAW3B,UAAU,GAAG,GAAxB,IAA+B,CAACmB,cAAjD;;AACA,UAAIC,UAAU,IAAIC,KAAlB,EAAyB;AACvB,YAAIK,QAAJ,EAAc;AACZlB,cAAI,CAACoB,WAAL,GAAmB,CAAnB;;AACA,cAAItB,CAAC,KAAK,CAAV,EAAa;AACXE,gBAAI,CAACqB,aAAL,GAAqB,KAArB;AACD;AACF,SALD,MAKO;AACLxB,eAAK,GACHA,KAAK,IACLzC,KAAK,CAACkE,gBAAN,CAAuBlC,SAAS,CAACiB,KAAjC,IACEjD,KAAK,CAACkE,gBAAN,CAAuBlC,SAAS,CAACgB,IAAjC,CAHJ;;AAIA,cAAIP,KAAK,GAAG,GAAR,IAAegB,KAAnB,EAA0B;AACxBb,gBAAI,CAACoB,WAAL,GAAmB,CAAnB;AACD;AACF;;AACD,YAAIT,cAAJ,EAAoB;AAClBX,cAAI,CAACoB,WAAL,GAAmB,CAAnB;AACApB,cAAI,CAACuB,eAAL,GAAuB,oBAAvB;AACD,SAHD,MAGO;AACLvB,cAAI,CAACuB,eAAL,uBAAwC,OAAQzB,CAAC,GAAG,CAAL,GAAU,EAAzD;AACD;AACF;;AACDC,UAAI,CAAClB,IAAL;;AACA,UAAI+B,UAAJ,EAAgB;AACd,YAAI,CAACH,KAAL,EAAY;AACVA,eAAK,GAAG,EAAR;AACD;;AACD,YAAIC,MAAJ,EAAY;AACVvB,aAAG,CAACqC,SAAJ,GAAgB,0BAAhB;AACArC,aAAG,CAACsC,QAAJ,CAAaT,MAAM,CAACb,CAApB,EAAuBa,MAAM,CAACF,CAA9B,EAAiCE,MAAM,CAACG,CAAxC,EAA2CH,MAAM,CAACU,CAAlD;AACD;;AACD,YAAIjB,KAAK,CAACkB,OAAV,EAAmB;AACjBxC,aAAG,CAACqC,SAAJ,GAAgB,sBAAhB;AACArC,aAAG,CAACsC,QAAJ,CAAaT,MAAM,CAACb,CAApB,EAAuBa,MAAM,CAACF,CAA9B,EAAiCE,MAAM,CAACG,CAAxC,EAA2CH,MAAM,CAACU,CAAlD;AACD;;AACD,YAAIjB,KAAK,CAACmB,MAAN,IAAgBnB,KAAK,CAACoB,KAA1B,EAAiC;AAC/B1C,aAAG,CAACqC,SAAJ,GAAgB,wBAAhB;AACArC,aAAG,CAACsC,QAAJ,CACET,MAAM,CAACb,CADT,EAEEa,MAAM,CAACF,CAFT,EAGGE,MAAM,CAACG,CAAP,GAAWV,KAAK,CAACmB,MAAlB,GAA4BnB,KAAK,CAACoB,KAHpC,EAIEb,MAAM,CAACU,CAJT;AAMD;AACF,OArBD,MAqBO,IAAIb,KAAJ,EAAW;AAChB,YAAIlD,GAAG,CAACmE,MAAR,EAAgB;AACd3C,aAAG,CAACqC,SAAJ,GAAgB,yBAAhB;AACArC,aAAG,CAACsC,QAAJ,CAAaT,MAAM,CAACb,CAApB,EAAuBa,MAAM,CAACF,CAA9B,EAAiCE,MAAM,CAACG,CAAxC,EAA2CH,MAAM,CAACU,CAAlD;AACD;AACF;;AACD,UAAIR,QAAJ,EAAc;AACZ,YAAMrD,KAAK,GAAGyC,GAAG,CAACzC,KAAlB,CADY,CACa;;AACzBsB,WAAG,CAACqC,SAAJ,GAAgB,cAAhB;;AACA,YAAIf,KAAJ,EAAW;AACT,cAAMsB,QAAQ,GAAG,SAAc,EAAd,EAAkBf,MAAlB,CAAjB;;AACA,cAAIrD,GAAG,CAACqE,EAAR,EAAY;AACV,gBAAMC,OAAO,WAAStE,GAAG,CAACqE,EAA1B;AACA,gBAAME,OAAO,GAAGzC,IAAI,CAACzB,GAAL,CACdmB,GAAG,CAACQ,WAAJ,CAAgBsC,OAAhB,EAAyBE,KAAzB,GAAiC,CADnB,EAEdJ,QAAQ,CAACZ,CAAT,GAAa,CAAb,GAAiB,CAFH,CAAhB;;AAIA,gBAAIe,OAAJ,EAAa;AACX/C,iBAAG,CAACiD,QAAJ,CACEH,OADF,EAEEF,QAAQ,CAAC5B,CAAT,GAAa,CAFf,EAGE4B,QAAQ,CAACjB,CAAT,GAAatB,UAHf,EAIEuC,QAAQ,CAACZ,CAAT,GAAa,CAAb,GAAiB,CAJnB;AAMAY,sBAAQ,CAAC5B,CAAT,IAAc+B,OAAd;AACAH,sBAAQ,CAACZ,CAAT,IAAce,OAAd;AACD;AACF;;AACD,cAAMG,OAAO,GAAG3B,MAAM,cAAY/C,GAAG,CAACV,KAAhB,YAAiCU,GAAG,CAAC2E,EAA3D;AACA,cAAMC,SAAS,GAAG9C,IAAI,CAACzB,GAAL,CAChBmB,GAAG,CAACQ,WAAJ,CAAgB0C,OAAhB,EAAyBF,KAAzB,GAAiC,CADjB,EAEhBJ,QAAQ,CAACZ,CAAT,GAAa,CAFG,CAAlB;AAIAhC,aAAG,CAACiD,QAAJ,CACEC,OADF,EAEEN,QAAQ,CAAC5B,CAAT,GAAa4B,QAAQ,CAACZ,CAAtB,GAA0BoB,SAF5B,EAGER,QAAQ,CAACjB,CAAT,GAAatB,UAHf,EAIEuC,QAAQ,CAACZ,CAAT,GAAa,CAJf;AAMD;;AACD,YAAIN,KAAJ,EAAW;AACT,cAAM2B,SAAS,GAAG/C,IAAI,CAACzB,GAAL,CAChB,EADgB,EAEhByB,IAAI,CAACC,IAAL,CAAUsB,MAAM,CAACG,CAAP,IAAY3B,UAAU,GAAG,CAAzB,CAAV,CAFgB,CAAlB;AAIAL,aAAG,CAACiD,QAAJ,CACE,CAAC,KAAKzE,GAAG,CAAC8E,OAAV,EAAmBC,MAAnB,CAA0B,CAA1B,EAA6BF,SAA7B,CADF,EAEExB,MAAM,CAACb,CAAP,GAAW,CAFb,EAGEa,MAAM,CAACF,CAAP,GAAWE,MAAM,CAACU,CAAlB,GAAsB,CAHxB,EAIEV,MAAM,CAACG,CAAP,GAAW,CAJb;AAMD,SAXD,MAWO,IAAI,CAACT,MAAL,EAAa;AAClB,cAAMiC,MAAK,GAAG9E,KAAK,MAAMA,KAAK,GAAG,CAAd,CAAnB;;AACA,cAAM+E,WAAW,GAAGD,MAAK,GACrBlD,IAAI,CAACzB,GAAL,CAAS,CAAT,EAAYyB,IAAI,CAAC1B,GAAL,CAAS,CAAT,EAAY0B,IAAI,CAACoD,KAAL,CAAW7B,MAAM,CAACG,CAAP,GAAW,EAAX,GAAgB,CAA3B,CAAZ,CAAZ,CADqB,GAErB,CAFJ;AAGA,cAAM2B,WAAW,GAAGC,MAAM,CAAClF,KAAD,EAAQ+E,WAAR,CAA1B;AACAzD,aAAG,CAACiD,QAAJ,CACEU,WADF,EAEE9B,MAAM,CAACb,CAAP,GAAW,CAFb,EAGEa,MAAM,CAACF,CAAP,GAAWE,MAAM,CAACU,CAAlB,GAAsB,CAHxB,EAIEV,MAAM,CAACG,CAAP,GAAW,CAJb;AAMD;AACF;AACF;AACF;;AAEDxE,iDAAK,CAAC0C,OAAN,CAAcC,MAAd,CAAqB0D,UAArB,CAAgC7F,KAAK,CAACgC,GAAtC;AACD,CA5JD;;AA8JO,SAAS8D,2BAAT,CAAqC9F,KAArC,EAA4C;AACjD+F,QAAM,CAACC,IAAP,CAAYhG,KAAK,CAACiG,MAAlB,EAA0BC,OAA1B,CAAkC,UAACC,IAAD,EAAU;AAC1C,QAAMlG,KAAK,GAAGD,KAAK,CAACiG,MAAN,CAAcE,IAAd,CAAd;AACAlG,SAAK,CAACK,WAAN,GAAoBC,eAApB;AACD,GAHD;AAID;;AAED,SAASA,eAAT,CAAyBE,KAAzB,EAAgD;AAC9C,MAAIA,KAAK,KAAKE,SAAd,EAAyB;AACvByF,WAAO,CAACC,IAAR,CAAa,uCAAb;AACA,WAAO,EAAP;AACD;;AAED,MAAI3F,KAAJ;AACA,MAAIK,GAAJ;AACA,MAAIF,GAAJ;AACA,MAAID,GAAJ;;AAEA,MAAI0F,KAAK,CAACC,OAAN,CAAc9F,KAAd,CAAJ,EAA0B;AACxBC,SAAK,GAAG,CAAC,KAAK8F,aAAL,CAAmB/F,KAAK,CAAC,CAAD,CAAxB,CAAT;AACAM,OAAG,GAAG,CAAC,KAAKyF,aAAL,CAAmB/F,KAAK,CAAC,CAAD,CAAxB,CAAP;AACAI,OAAG,GAAGyB,IAAI,CAACzB,GAAL,CAASH,KAAT,EAAgBK,GAAhB,CAAN;AACAH,OAAG,GAAG0B,IAAI,CAAC1B,GAAL,CAASF,KAAT,EAAgBK,GAAhB,CAAN;AACD,GALD,MAKO;AACLL,SAAK,GAAG,CAAC,KAAK8F,aAAL,CAAmB/F,KAAK,CAACC,KAAzB,CAAT;;AACA,QAAI,SAASD,KAAb,EAAoB;AAClBM,SAAG,GAAG,CAAC,KAAKyF,aAAL,CAAmB/F,KAAK,CAACM,GAAzB,CAAP;AACD,KAFD,MAEO;AACLA,SAAG,GAAG,CAAC,KAAKyF,aAAL,CAAmB/F,KAAK,CAACC,KAAN,GAAcD,KAAK,CAACgG,QAAvC,CAAP;AACD;;AACD5F,OAAG,GAAGyB,IAAI,CAACzB,GAAL,CAASH,KAAT,EAAgBK,GAAhB,CAAN;AACAH,OAAG,GAAG0B,IAAI,CAAC1B,GAAL,CAASF,KAAT,EAAgBK,GAAhB,CAAN;AACD;;AAED,SAAO;AACLF,OAAG,EAAHA,GADK;AAELD,OAAG,EAAHA,GAFK;AAGLF,SAAK,EAALA,KAHK;AAILK,OAAG,EAAHA;AAJK,GAAP;AAMD;;AAED,SAASgC,UAAT,CAAoB2D,EAApB,EAAwBC,EAAxB,EAA4BC,EAA5B,EAAgCC,EAAhC,EAAoC;AAClC,SAAOF,EAAE,GAAGC,EAAL,IAAWF,EAAE,GAAGG,EAAvB;AACD;;AAED,SAAS/C,aAAT,CAAuBgD,EAAvB,EAA2B;AACzB,MAAMC,IAAI,GAAGD,EAAE,CAAClD,MAAH,GAAY,CAAzB;AACA,MAAMX,IAAI,GAAGX,IAAI,CAACzB,GAAL,CAASiG,EAAE,CAAC9D,CAAZ,EAAe8D,EAAE,CAAC9F,IAAlB,CAAb;AACA,MAAMkC,KAAK,GAAGZ,IAAI,CAAC1B,GAAL,CAASkG,EAAE,CAAC9D,CAAZ,EAAe8D,EAAE,CAAC9F,IAAlB,CAAd;AACA,MAAMgG,GAAG,GAAGF,EAAE,CAACnD,CAAH,GAAOoD,IAAnB;AACA,MAAME,MAAM,GAAGH,EAAE,CAACnD,CAAH,GAAOoD,IAAtB;AACA,SAAO;AACL/D,KAAC,EAAEC,IADE;AAELU,KAAC,EAAEqD,GAFE;AAGLhD,KAAC,EAAEd,KAAK,GAAGD,IAHN;AAILsB,KAAC,EAAE0C,MAAM,GAAGD;AAJP,GAAP;AAMD;;AAEM,SAASpB,MAAT,CAAgBnF,KAAhB,EAAuBgF,WAAvB,EAAoC;AACzC,MAAMlB,CAAC,GAAI9D,KAAK,GAAG,IAAT,GAAiB,CAA3B;AACA,MAAMyG,CAAC,GAAG,CAAEzG,KAAK,GAAG,EAAT,GAAe,CAAhB,IAAqB,EAA/B;AACA,MAAM0G,CAAC,GAAG1G,KAAK,GAAG,EAAlB;AACA,SAAO,CAAG8D,CAAH,SAAQ6C,GAAG,CAACF,CAAD,EAAI,CAAJ,CAAX,SAAqBE,GAAG,CAC7BD,CAAC,CAACE,OAAF,CAAU5B,WAAV,CAD6B,EAE7BA,WAAW,GAAGA,WAAW,GAAG,CAAjB,GAAqB,CAFH,CAAxB,EAGH6B,OAHG,CAGK,6BAHL,EAGoC,IAHpC,CAAP;AAID;;AAED,SAASF,GAAT,CAAaG,GAAb,EAAkBzG,MAAlB,EAA0B;AACxByG,KAAG,GAAG,KAAKA,GAAX;;AACA,SAAOA,GAAG,CAACzG,MAAJ,GAAaA,MAApB,EAA4B;AAC1ByG,OAAG,GAAG,MAAMA,GAAZ;AACD;;AACD,SAAOA,GAAP;AACD,C;;;;;;;;;;;;;;;;;;;;;;;ACpSD;AACA;AAoBA,IAAMC,cAAc,GAAG,gBAAvB;AAoBO,IAAMC,aAAb;AAUE,yBAAYtF,MAAZ,EAAuCuF,cAAvC,EAA6D;AAAA;;AAAA,SAT5C1H,KAS4C;AAAA,SARrD2H,oBAQqD,GARtB,CAAC,CAQqB;AAAA,SAPrDC,eAOqD,GAPjB,IAOiB;AAAA,SANrDC,KAMqD,GANpB,IAMoB;AAAA,SALrDC,mBAKqD;AAAA,SAJrDC,iBAIqD;AAAA,SAHrDC,MAGqD,GAHnC,IAGmC;AAAA,SAFrDC,OAEqD,GAFnC,EAEmC;AAC3D,QAAMjG,GAAG,GAAGG,MAAM,CAAC+F,UAAP,CAAkB,IAAlB,CAAZ;;AACA,QAAI,CAAClG,GAAL,EAAU;AACR,YAAM,IAAI3B,KAAJ,0DACmD8B,MADnD,CAAN;AAGD;;AACD,QAAMnC,KAAK,GACR,KAAKA,KAAL,GACDmI,IAAI,CAACnI,KAAL,GACE,IAAIR,+CAAJ,CAAUwC,GAAV,EAAe;AACboG,UAAI,EAAE,eADO;AAEbhI,UAAI,EAAE;AACJiI,cAAM,EAAE,EADJ;AAEJlI,gBAAQ,EAAE;AAFN,OAFO;AAMbJ,aAAO,EAAE,SAAcuI,eAAe,EAA7B,EAAiCZ,cAAjC,CANI;AAOba,aAAO,EAAE,CACP;AACEC,mBAAW,EAAE,qBAACxI,KAAD,EAAW;AACtB,eAAI,CAAC4H,eAAL,GAAuB,IAAvB;;AACA,eAAI,CAACa,eAAL;AACD;AAJH,OADO;AAPI,KAAf,CAHJ;AAoBA3C,+FAA2B,CAAC9F,KAAD,CAA3B;;AAEAmC,UAAM,CAACuG,UAAP,GAAoB,UAACC,KAAD,EAAuB;AACzC,UAAM3I,KAAK,GAAG,KAAI,CAACA,KAAnB;AACA,UAAMiC,SAAuC,GAAGjC,KAAK,CAACiC,SAAtD;AACA,UAAM2G,OAAO,GAAG5I,KAAK,CAAC6I,iBAAN,CAAwBF,KAAxB,CAAhB;AACA,UAAMG,GAAG,GAAGtJ,+CAAK,CAAC0C,OAAN,CAAc6G,mBAAd,CAAkCJ,KAAlC,EAAyC3I,KAAzC,CAAZ;AACA,UAAMC,KAAK,GAAG,KAAI,CAAC+I,WAAL,CAAiBxB,cAAjB,CAAd,CALyC,CAMzC;;AACA,UAAIoB,OAAO,CAAC9H,MAAR,IAAkBgI,GAAG,CAAC9F,CAAJ,GAAQf,SAAS,CAACgB,IAAxC,EAA8C;AAC5C,YAAMgG,MAAM,GAAGN,KAAK,CAACO,gBAAN,CAAuB,OAAvB,IAAkC,CAAC,GAAnC,GAAyC,GAAxD;;AACA,aAAI,CAACC,IAAL,CAAUlJ,KAAV,EAAiB6I,GAAjB,EAAsBG,MAAtB;AACD,OAHD,MAGO;AACLhJ,aAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBvI,GAApB,GAA0B,CAA1B;AACAZ,aAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBxI,GAApB,GAA0B,KAAI,CAACqH,OAA/B;AACD;;AACD,WAAI,CAACoB,MAAL;AACD,KAfD;;AAiBAlH,UAAM,CAACmH,OAAP,GAAiB,UAACX,KAAD,EAAuB;AACtC,UAAIA,KAAK,CAACY,SAAV,EAAqB;AACnB;AACA;AACD;;AACD,UAAMvJ,KAAK,GAAG,KAAI,CAACA,KAAnB;AACA,UAAMiC,SAAuC,GAAGjC,KAAK,CAACiC,SAAtD;AACA,UAAM6G,GAAG,GAAGtJ,+CAAK,CAAC0C,OAAN,CAAc6G,mBAAd,CAAkCJ,KAAlC,EAAyC3I,KAAzC,CAAZ,CAPsC,CAQtC;;AACA,UAAI8I,GAAG,CAAC9F,CAAJ,GAAQf,SAAS,CAACgB,IAAV,GAAiB,EAA7B,EAAiC;AAC/B,YAAMhD,KAAK,GAAG,KAAI,CAAC+I,WAAL,CAAiBxB,cAAjB,CAAd;;AACA,YAAImB,KAAK,CAACa,MAAV,EAAkB;AAChB,cAAMC,SAAS,GAAG,CAACd,KAAK,CAACa,MAAP,GAAgBlH,IAAI,CAACoH,GAAL,CAASf,KAAK,CAACa,MAAf,CAAlC;AACA,cAAMG,MAAM,GAAGrH,IAAI,CAACzB,GAAL,CAAS,GAAT,EAAcyB,IAAI,CAACoH,GAAL,CAASf,KAAK,CAACa,MAAf,CAAd,IAAwC,IAAvD;AACA,cAAMI,IAAI,GAAG,IAAI,CAAC,IAAID,MAAL,KAAgB,IAAIA,MAApB,CAAjB;;AACA,eAAI,CAACR,IAAL,CAAUlJ,KAAV,EAAiB6I,GAAjB,EAAsBc,IAAI,GAAGH,SAA7B;AACD,SALD,MAKO,IAAId,KAAK,CAACkB,MAAV,EAAkB;AACvB,eAAI,CAACC,GAAL,CAAS7J,KAAT,EAAgB0I,KAAK,CAACkB,MAAN,GAAe,EAA/B,EAAmC5J,KAAK,CAACY,GAAzC,EAA8CZ,KAAK,CAACW,GAApD;AACD;;AACD+H,aAAK,CAACoB,cAAN;AACD;AACF,KArBD;;AAuBA,QAAIC,KAAK,GAAG,KAAZ;AACA,QAAIC,YAAY,GAAG,CAAnB;;AACA9H,UAAM,CAAC+H,aAAP,GAAuB,UAACC,SAAD,EAA6B;AAClD,UAAI,CAACA,SAAS,CAACC,SAAX,IAAwBH,YAAY,KAAK,CAA7C,EAAgD;AAC9C;AACD;;AACD,UAAMjK,KAAK,GAAG,KAAI,CAACA,KAAnB;AACA,UAAMiC,SAAuC,GAAGjC,KAAK,CAACiC,SAAtD;AACA,UAAM6G,GAAG,GAAGtJ,+CAAK,CAAC0C,OAAN,CAAc6G,mBAAd,CAAkCoB,SAAlC,EAA6CnK,KAA7C,CAAZ,CANkD,CAOlD;;AACA,UAAI8I,GAAG,CAAC9F,CAAJ,GAAQf,SAAS,CAACgB,IAAtB,EAA4B;AAC1B,YAAMhD,KAAK,GAAG,KAAI,CAAC+I,WAAL,CAAiBxB,cAAjB,CAAd;AACA,YAAM6C,MAAM,GAAGF,SAAS,CAACG,OAAzB;AACA,YAAQzJ,GAAR,GAAqBZ,KAArB,CAAQY,GAAR;AAAA,YAAaD,GAAb,GAAqBX,KAArB,CAAaW,GAAb;AACA,YAAM2J,MAAM,GAAG,CAAC3J,GAAG,GAAGC,GAAP,IAAcZ,KAAK,CAAC+E,KAAnC;AACAgF,aAAK,GAAG,KAAR;AACA7H,cAAM,CAACqI,iBAAP,CAAyBL,SAAS,CAACM,SAAnC;;AACAtI,cAAM,CAACuI,aAAP,GAAuB,UAACC,SAAD,EAA6B;AAClD,cAAI,CAACR,SAAS,CAACC,SAAX,IAAwBH,YAAY,KAAK,CAA7C,EAAgD;AAC9C;AACD;;AACD,cAAMW,MAAM,GAAGP,MAAM,GAAGM,SAAS,CAACL,OAAlC;AACA,cAAMO,UAAU,GAAGD,MAAM,GAAGL,MAA5B;AACAP,eAAK,GAAGA,KAAK,IAAI1H,IAAI,CAACoH,GAAL,CAASkB,MAAT,IAAmB,CAApC;;AACA,eAAI,CAACd,GAAL,CAAS7J,KAAT,EAAgB4K,UAAhB,EAA4BhK,GAA5B,EAAiCD,GAAjC;AACD,SARD;AASD;AACF,KAzBD;;AA2BAuB,UAAM,CAAC2I,WAAP,GAAqB3I,MAAM,CAAC4I,eAAP,GAAyB,UAACC,OAAD,EAA2B;AACvE,UAAI7I,MAAM,CAACuI,aAAX,EAA0B;AACxBvI,cAAM,CAACuI,aAAP,GAAuB,IAAvB;AACAvI,cAAM,CAAC8I,qBAAP,CAA6BD,OAAO,CAACP,SAArC;AACD;;AACD,UAAI,CAACT,KAAD,IAAUgB,OAAO,CAACZ,SAAtB,EAAiC;AAC/B,aAAI,CAACc,KAAL,CAAWF,OAAX;AACD;AACF,KARD,CAlG2D,CA4G3D;AACA;;;AACA7I,UAAM,CAACgJ,cAAP,GAAwB,UAACxC,KAAD,EAAW;AACjCsB,kBAAY,GAAG,CAAf;AACAtB,WAAK,CAACoB,cAAN;AACD,KAHD,CA9G2D,CAmH3D;;;AACA5H,UAAM,CAACiJ,YAAP,GAAsB,UAACzC,KAAD,EAAW;AAC/BsB,kBAAY,GAAG,CAAf;AACD,KAFD,CApH2D,CAwH3D;;;AACA9H,UAAM,CAACkJ,eAAP,GAAyB,UAAC1C,KAAD,EAAW;AAClC,UAAM3I,KAAK,GAAG,KAAI,CAACA,KAAnB;AACA,UAAMiC,SAAuC,GAAGjC,KAAK,CAACiC,SAAtD;AACA,UAAM6G,GAAG,GAAGtJ,+CAAK,CAAC0C,OAAN,CAAc6G,mBAAd,CAAkCJ,KAAlC,EAAyC3I,KAAzC,CAAZ,CAHkC,CAIlC;;AACA,UAAI8I,GAAG,CAAC9F,CAAJ,GAAQf,SAAS,CAACgB,IAAtB,EAA4B;AAC1B,YAAMhD,KAAK,GAAG,KAAI,CAAC+I,WAAL,CAAiBxB,cAAjB,CAAd;AACA,YAAMyB,MAAM,GAAGN,KAAK,CAAC1I,KAAN,GAAcgK,YAA7B;;AACA,aAAI,CAACd,IAAL,CAAUlJ,KAAV,EAAiB6I,GAAjB,EAAsBG,MAAtB;;AACAgB,oBAAY,GAAGtB,KAAK,CAAC1I,KAArB;AACD;AACF,KAXD;AAYD;;AA/IH;;AAAA,SAiJUiL,KAjJV,GAiJE,eAAcvC,KAAd,EAAiC;AAC/B;AACA,QAAM3I,KAAK,GAAG,KAAKA,KAAnB;AACA,QAAM4I,OAAO,GAAG5I,KAAK,CAAC6I,iBAAN,CAAwBF,KAAxB,CAAhB;;AACA,QAAIC,OAAO,CAAC9H,MAAR,IAAkBd,KAAK,CAACI,IAAN,CAAWD,QAAjC,EAA2C;AAAA;;AACzC,UAAM2B,OAAO,GAAG9B,KAAK,CAACI,IAAN,CAAWD,QAAX,CAAqByI,OAAO,CAAC,CAAD,CAAR,CAAoB0C,aAAxC,CAAhB;AACA,UAAM9K,GAAG,GAAGsB,OAAO,CAAC1B,IAAR,CAAewI,OAAO,CAAC,CAAD,CAAR,CAAoB2C,MAAlC,CAAZ,CAFyC,CAGzC;;AACAnF,aAAO,CAACoF,GAAR,CAAYhL,GAAZ;;AACA,uBAAI2H,IAAI,CAACsD,GAAT,sCAAI,UAAU5D,KAAd,EAAqB;AACnB,YAAM5H,KAAK,GAAG,KAAK+I,WAAL,CAAiBxB,cAAjB,CAAd;AACA,YAAMsB,GAAG,GAAGtJ,+CAAK,CAAC0C,OAAN,CAAc6G,mBAAd,CAAkCJ,KAAlC,EAAyC3I,KAAzC,CAAZ;AACAmI,YAAI,CAACsD,GAAL,CAAS5D,KAAT,CAAe6D,WAAf,GAA6BzL,KAAK,CAACkE,gBAAN,CAAuB2E,GAAG,CAAC9F,CAA3B,CAA7B;AACD;AACF;AACF,GAhKH;;AAAA,SAkKU8G,GAlKV,GAkKE,aAAY7J,KAAZ,EAA+BgJ,MAA/B,EAA+CpI,GAA/C,EAA4DD,GAA5D,EAAyE;AACvE,QAAIqI,MAAM,KAAK,CAAf,EAAkB;AAChB;AACD;;AACD,QAAIa,GAAG,GAAGb,MAAV;;AACA,QAAIA,MAAM,GAAG,CAAb,EAAgB;AACda,SAAG,GAAGxH,IAAI,CAACzB,GAAL,CAAS,KAAKoH,OAAL,GAAe,EAAf,GAAoBrH,GAA7B,EAAkCqI,MAAlC,CAAN;AACD,KAFD,MAEO;AACLa,SAAG,GAAGxH,IAAI,CAAC1B,GAAL,CAAS,CAAC,EAAD,GAAMC,GAAf,EAAoBoI,MAApB,CAAN;AACD;;AACDhJ,SAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBvI,GAApB,GAA0BA,GAAG,GAAGiJ,GAAhC;AACA7J,SAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBxI,GAApB,GAA0BA,GAAG,GAAGkJ,GAAhC;AACA,SAAK6B,eAAL;AACD,GA/KH;;AAAA,SAiLUxC,IAjLV,GAiLE,cAAalJ,KAAb,EAAgC6I,GAAhC,EAA0CG,MAA1C,EAA0D;AACxD,QAAMvG,KAAK,GAAGzC,KAAK,CAACW,GAAN,GAAYX,KAAK,CAACY,GAAhC;AACA,QAAM+K,IAAI,GAAGlJ,KAAK,GAAGuG,MAArB;AACA,QAAM4C,UAAU,GAAG,CAAC5L,KAAK,CAACkE,gBAAN,CAAuB2E,GAAG,CAAC9F,CAA3B,IAAgC/C,KAAK,CAACY,GAAvC,IAA8C6B,KAAjE;AACA,QAAMoJ,UAAU,GAAG,IAAID,UAAvB;AACA,QAAME,QAAQ,GAAGH,IAAI,GAAGC,UAAxB;AACA,QAAMG,QAAQ,GAAGJ,IAAI,GAAGE,UAAxB;AACA7L,SAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBvI,GAApB,GAA0ByB,IAAI,CAAC1B,GAAL,CAAS,CAAC,EAAV,EAAcX,KAAK,CAACY,GAAN,GAAYkL,QAA1B,CAA1B;AACA9L,SAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBxI,GAApB,GAA0B0B,IAAI,CAACzB,GAAL,CAAS,KAAKoH,OAAL,GAAe,EAAxB,EAA4BhI,KAAK,CAACW,GAAN,GAAYoL,QAAxC,CAA1B;AACA,SAAKL,eAAL;AACD,GA3LH;;AAAA,SAiMEM,KAjMF,GAiME,iBAAQ;AACN,QAAMhM,KAAK,GAAG,KAAK+I,WAAL,CAAiBxB,cAAjB,CAAd;AACAvH,SAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBvI,GAApB,GAA0B,CAA1B;AACAZ,SAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBxI,GAApB,GAA0B,EAA1B;AACA,2BAA6B,KAAKZ,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,oBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,oBAAgBA,QAAhB;;AACA,QAAIkI,MAAM,IAAIlI,QAAd,EAAwB;AACtBkI,YAAM,CAACvH,MAAP,GAAgB,CAAhB;AACAX,cAAQ,CAACW,MAAT,GAAkB,CAAlB;AACA,WAAKoL,MAAL,CAAY/L,QAAZ;AACD;AACF,GA3MH;;AAAA,SA6MEkJ,MA7MF,GA6ME,kBAAS;AAAA;;AACP,QAAI,KAAKrB,MAAL,IAAe,qBAAC,KAAKhI,KAAL,CAAWgC,GAAZ,4CAAC,gBAAgBG,MAAhB,CAAuB6C,KAAxB,CAAnB,EAAkD;AAChD;AACD;;AACDmD,QAAI,CAACgE,oBAAL,CAA0B,KAAKxE,oBAA/B;AACA,SAAK3H,KAAL,CAAWqJ,MAAX,CAAkB;AAChB5C,cAAQ,EAAE,CADM;AAEhB2F,UAAI,EAAE;AAFU,KAAlB;AAID,GAtNH;;AAAA,SAwNET,eAxNF,GAwNE,2BAAkB;AAAA;;AAChB,QAAI,KAAK3D,MAAT,EAAiB;AACf;AACD;;AACDG,QAAI,CAACgE,oBAAL,CAA0B,KAAKxE,oBAA/B;AACA,SAAKA,oBAAL,GAA4BQ,IAAI,CAACkE,qBAAL,CAA2B;AAAA,aAAM,MAAI,CAAChD,MAAL,EAAN;AAAA,KAA3B,CAA5B;AACD,GA9NH;;AAAA,SAgOE6C,MAhOF,GAgOE,gBAAO/L,QAAP,EAAkB;AAAA;;AAChB,QAAI,KAAK6H,MAAT,EAAiB;AACf;AACD;;AACD,QAAI7H,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEW,MAAd,EAAsB;AAAA;;AACpB,UAAMb,KAAK,GAAG,KAAK+I,WAAL,CAAiBxB,cAAjB,CAAd;AACA,UAAQR,GAAR,GAAgB,KAAKhH,KAAL,CAAWiC,SAA3B,CAAQ+E,GAAR;AACA,UAAMpD,MAAM,GACVoD,GAAG,GACH7G,QAAQ,CAACmM,MAAT,CAAgB,UAACnJ,GAAD,EAAMrB,OAAN;AAAA,eAAkBqB,GAAG,GAAGrB,OAAO,CAACN,YAAhC;AAAA,OAAhB,EAA8D,CAA9D,CADA,GAEAvB,KAAK,CAAC2D,MAFN,GAGA,CAJF;AAKA,UAAM2I,SAAS,yBAAG,KAAKvM,KAAL,CAAWmC,MAAd,uDAAG,mBAAmBqK,aAArC;;AACA,UAAID,SAAJ,EAAe;AACbA,iBAAS,CAACE,KAAV,CAAgB7I,MAAhB,GAA4BA,MAA5B;AACD;AACF;;AACDuE,QAAI,CAACgE,oBAAL,CAA0B,KAAKxE,oBAA/B;AACA,SAAKA,oBAAL,GAA4BQ,IAAI,CAACkE,qBAAL,CAA2B,YAAM;AAC3D,YAAI,CAACrM,KAAL,CAAWkM,MAAX;AACD,KAF2B,CAA5B;AAGD,GArPH;;AAAA,SAuPEQ,IAvPF,GAuPE,gBAAO;AACL,SAAK1E,MAAL,GAAc,KAAd;AACD,GAzPH;;AAAA,SA2PE2E,IA3PF,GA2PE,gBAAO;AACL,SAAK3E,MAAL,GAAc,IAAd;AACD,GA7PH;;AAAA,SA+PE4E,YA/PF,GA+PE,sBAAaC,MAAb,EAA8BC,aAA9B,EAA6C;AAAA;;AAC3C,4BAA6B,KAAK9M,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,qBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,qBAAgBA,QAAhB;;AACA,QAAI,CAACkI,MAAD,IAAW,CAAClI,QAAhB,EAA0B;AACxB;AACD;;AACD,qBAAoDgI,IAAI,CAACsD,GAAzD;AAAA,QAAQsB,SAAR,cAAQA,SAAR;AAAA,QAAmBC,aAAnB,cAAmBA,aAAnB;AAAA,QAAkCC,aAAlC,cAAkCA,aAAlC,CAL2C,CAM3C;;AACA,QAAMC,YAAY,GAChBJ,aAAa,KAAKnM,SAAlB,GAA8BmM,aAA9B,GAA8C3E,IAAI,CAACsD,GAAL,CAASyB,YADzD;AAEAL,UAAM,CAAC3G,OAAP,CAAe,UAACiH,KAAD,EAAQxK,CAAR,EAAc;AAC3B,UAAM7C,KAAK,GAAGqN,KAAK,CAACC,EAAN,IAAYzK,CAA1B;AACA0F,YAAM,CAACgF,IAAP,CAAYC,YAAY,CAACH,KAAD,EAAQrN,KAAR,CAAxB;AACA,UAAIyN,WAA0B,GAAG,IAAjC;;AACA,UAAIL,YAAY,KAAKvK,CAArB,EAAwB;AACtB4K,mBAAW,GAAG,wBAAd;AACD,OAFD,MAEO,IAAIR,SAAS,KAAKpK,CAAlB,EAAqB;AAC1B4K,mBAAW,GAAG,wBAAd;AACD,OAFM,MAEA,IAAIP,aAAa,KAAKrK,CAAtB,EAAyB;AAC9B4K,mBAAW,GAAG,yBAAd;AACD,OAFM,MAEA,IAAIN,aAAa,KAAKtK,CAAtB,EAAyB;AAC9B4K,mBAAW,GAAG,wBAAd;AACD;;AACDpN,cAAQ,CAACkN,IAAT,CACEG,mBAAmB,CAAC;AAClBC,WAAG,EAAEnH,KAAK,CAACC,OAAN,CAAc4G,KAAK,CAACM,GAApB,IACDN,KAAK,CAACM,GAAN,CAAUN,KAAK,CAACO,KAAN,IAAe,CAAzB,CADC,GAEDP,KAAK,CAACM,GAHQ;AAIlBE,iBAAS,EAAE,OAJO;AAKlBJ,mBAAW,EAAXA,WALkB;AAMlBJ,aAAK,EAAErN;AANW,OAAD,CADrB;;AAUA,UAAIqN,KAAK,CAACS,OAAV,EAAmB;AACjB,cAAI,CAACC,kBAAL,CAAwBV,KAAK,CAACS,OAA9B;AACD;AACF,KA1BD;AA2BA,SAAK1B,MAAL,CAAY/L,QAAZ;AACD,GApSH;;AAAA,SAsSE2N,iBAtSF,GAsSE,2BAAkBC,WAAlB,EAAgD;AAAA;;AAC9C,4BAA6B,KAAK/N,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,qBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,qBAAgBA,QAAhB;;AACA,QAAI,CAACkI,MAAD,IAAW,CAAClI,QAAhB,EAA0B;AACxB;AACD;;AACD,QAAQ6N,UAAR,GAAuB7F,IAAI,CAACsD,GAA5B,CAAQuC,UAAR;AACAD,eAAW,CAAC7H,OAAZ,CAAoB,UAAC+H,KAAD,EAAuBtL,CAAvB,EAA6B;AAC/C0F,YAAM,CAACgF,IAAP,CAAYa,iBAAiB,CAACD,KAAD,EAAQtL,CAAR,CAA7B;AACAxC,cAAQ,CAACkN,IAAT,CACEG,mBAAmB,CAAC;AAClBC,WAAG,EAAEQ,KAAK,CAACR,GADO;AAElBE,iBAAS,EAAE,YAFO;AAGlBJ,mBAAW,EAAES,UAAU,KAAKrL,CAAf,GAAmB,wBAAnB,GAA8C,IAHzC;AAIlBqL,kBAAU,EAAErL;AAJM,OAAD,CADrB;;AAQA,UAAIsL,KAAK,CAACL,OAAV,EAAmB;AACjB,cAAI,CAACC,kBAAL,CAAwBI,KAAK,CAACL,OAA9B;AACD;AACF,KAbD;AAcA,SAAK1B,MAAL,CAAY/L,QAAZ;AACD,GA3TH;;AAAA,SA6TEgO,oBA7TF,GA6TE,8BAAqBC,SAArB,EAAiD;AAAA;;AAC/C,4BAA6B,KAAKpO,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,qBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,qBAAgBA,QAAhB;;AACA,QAAI,CAACkI,MAAD,IAAW,CAAClI,QAAhB,EAA0B;AACxB;AACD;;AACD,QAAQkO,aAAR,GAA0BlG,IAAI,CAACsD,GAA/B,CAAQ4C,aAAR;AACAD,aAAS,CAAClI,OAAV,CAAkB,UAAC+H,KAAD,EAAQtL,CAAR,EAAc;AAC9B0F,YAAM,CAACgF,IAAP,CAAYiB,gBAAgB,CAACL,KAAD,EAAQtL,CAAR,CAA5B;AACAxC,cAAQ,CAACkN,IAAT,CACEG,mBAAmB,CAAC;AAClBC,WAAG,EAAEQ,KAAK,CAACR,GADO;AAElBE,iBAAS,EAAE,eAFO;AAGlBJ,mBAAW,EAAEc,aAAa,KAAK1L,CAAlB,GAAsB,wBAAtB,GAAiD,IAH5C;AAIlB0L,qBAAa,EAAE1L;AAJG,OAAD,CADrB;;AAQA,UAAIsL,KAAK,CAACL,OAAV,EAAmB;AACjB,cAAI,CAACC,kBAAL,CAAwBI,KAAK,CAACL,OAA9B;AACD;AACF,KAbD;AAcA,SAAK1B,MAAL,CAAY/L,QAAZ;AACD,GAlVH;;AAAA,SAoVEoO,UApVF,GAoVE,oBACEZ,SADF,EAEE;AACA,4BAA6B,KAAK3N,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,qBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,qBAAgBA,QAAhB;;AACA,QAAI,CAACkI,MAAD,IAAW,CAAClI,QAAhB,EAA0B;AACxB;AACD;;AACD,QAAIwC,CAAC,GAAGxC,QAAQ,CAACW,MAAjB;;AACA,WAAO6B,CAAC,EAAR,EAAY;AACV,UAAKxC,QAAQ,CAACwC,CAAD,CAAT,CAAqBgL,SAArB,KAAmCA,SAAvC,EAAkD;AAChDxN,gBAAQ,CAACqO,MAAT,CAAgB7L,CAAhB,EAAmB,CAAnB;AACA0F,cAAM,CAACmG,MAAP,CAAc7L,CAAd,EAAiB,CAAjB;AACD;AACF;AACF,GAlWH;;AAAA,SAoWEkL,kBApWF,GAoWE,4BAAmBD,OAAnB,EAA0C;AACxC,QAAQa,cAAR,GAA+Cb,OAA/C,CAAQa,cAAR;AAAA,QAAwBC,aAAxB,GAA+Cd,OAA/C,CAAwBc,aAAxB;AAAA,QAAuCjB,GAAvC,GAA+CG,OAA/C,CAAuCH,GAAvC;AACA,QAAQtN,QAAR,GAAqB,KAAKH,KAAL,CAAWI,IAAhC,CAAQD,QAAR;AACA,QAAIwO,YAAY,GAAGC,SAAS,CAC1BzO,QAD0B,EAE1B,UAAC2B,OAAD;AAAA,aACE+M,uBAAuB,CAACpB,GAAD,CAAvB,KACAoB,uBAAuB,CAAC/M,OAAO,CAAC2L,GAAR,IAAe,EAAhB,CAFzB;AAAA,KAF0B,CAA5B;;AAMA,QAAI,CAACkB,YAAL,EAAmB;AACjBA,kBAAY,GAAGC,SAAS,CACtBzO,QADsB,EAEtB,UAAC2B,OAAD;AAAA;;AAAA,eAAa,wBAAA8L,OAAO,CAACkB,SAAR,CAAkB,CAAlB,6EAAsB3B,KAAtB,MAAgCrL,OAAO,CAACqL,KAArD;AAAA,OAFsB,CAAxB;AAID;;AACD,QAAI,CAACwB,YAAL,EAAmB;AACjB;AACD;;AACD,QAAMvO,IAAI,GAAGuO,YAAY,CAACvO,IAA1B;AACAA,QAAI,CAACU,MAAL,GAAc,CAAd;;AACA,QAAI8M,OAAO,CAACkB,SAAZ,EAAuB;AACrBlB,aAAO,CAACkB,SAAR,CAAkB5I,OAAlB,CAA0B,UAAC6I,QAAD,EAAc;AACtC;AACA;AACA,YAAMC,aAAa,GAAG,SACpB;AACE3L,kBAAQ,EAAE;AADZ,SADoB,EAIpB0L,QAJoB,EAKpB;AACA;AAAEE,gBAAM,EAAE;AAAV,SANoB,CAAtB;;AAQA7O,YAAI,CAACiN,IAAL,CAAU2B,aAAV;AACD,OAZD;AAaD;;AACD,QAAIpB,OAAO,CAACsB,QAAZ,EAAsB;AACpBtB,aAAO,CAACsB,QAAR,CAAiBhJ,OAAjB,CAAyB,UAACiJ,IAAD,EAAU;AACjC,YAAMC,SAAS,GAAG,SAChB;AACE/L,kBAAQ,EAAE,MADZ;AAEE3C,eAAK,EAAEyO,IAAI,CAACJ,QAAL,CAAcrO,KAAd,GAAsByO,IAAI,CAACE;AAFpC,SADgB,EAKhBF,IALgB,EAMhB;AACEJ,kBAAQ,EAAE,SAAc,EAAd,EAAkBI,IAAI,CAACJ,QAAvB,EAAiC;AAAEE,kBAAM,EAAE;AAAV,WAAjC;AADZ,SANgB,CAAlB;;AAUA7O,YAAI,CAACiN,IAAL,CAAU+B,SAAV;AACD,OAZD;;AAaA,UAAIxB,OAAO,CAAC0B,YAAZ,EAA0B;AACxB,YAAMN,aAAa,GAAG,SACpB;AACE3L,kBAAQ,EAAE;AADZ,SADoB,EAIpBuK,OAAO,CAAC0B,YAJY,EAKpB;AACA;AAAEL,gBAAM,EAAE;AAAV,SANoB,CAAtB;;AAQA7O,YAAI,CAACiN,IAAL,CAAU2B,aAAV;AACD;AACF;;AACD,QAAMtO,KAAK,GAAG6O,gBAAgB,CAAC3B,OAAD,CAA9B;AACA,SAAK4B,OAAL,GAAe,KAAKvH,OAAL,GAAe3F,IAAI,CAAC1B,GAAL,CAC5BF,KAAK,GAAGgO,aAAR,GAAwBD,cAAc,GAAG,CADb,EAE5B,KAAKxG,OAFuB,CAA9B;AAIA,SAAK0D,eAAL;AACD,GAvaH,CAyaE;AAzaF;;AAAA,SAqcE8D,cArcF,GAqcE,wBAAerP,IAAf,EAAwE;AACtE,QAAQD,QAAR,GAAqB,KAAKH,KAAL,CAAWI,IAAhC,CAAQD,QAAR;AACA,QAAMuP,IAAc,GAAGtP,IAAI,CAACsP,IAA5B;AACA,QAAIf,YAAY,GAAGC,SAAS,CAC1BzO,QAD0B,EAE1B,UAAC2B,OAAD;AAAA,aAAa4N,IAAI,CAACC,OAAL,KAAiB7N,OAAO,CAAC2L,GAAtC;AAAA,KAF0B,CAA5B;;AAIA,QAAI,CAACkB,YAAL,EAAmB;AACjBA,kBAAY,GAAGC,SAAS,CACtBzO,QADsB,EAEtB,UAAC2B,OAAD;AAAA,eAAa4N,IAAI,CAACvC,KAAL,KAAerL,OAAO,CAACqL,KAApC;AAAA,OAFsB,CAAxB;AAID;;AACD,QAAI,CAACwB,YAAL,EAAmB;AACjB;AACD,KAfqE,CAgBtE;;;AACA,QAAMiB,QAAQ,GAAGhB,SAAS,CACxBD,YAAY,CAACvO,IADW,EAExB,UAACwP,QAAD;AAAA,aAAcA,QAAQ,CAACC,MAAT,KAAoBH,IAAI,CAACG,MAAzB,IAAmCD,QAAQ,CAACzK,EAAT,KAAgBuK,IAAI,CAACvK,EAAtE;AAAA,KAFwB,CAA1B;;AAIA,QAAIyK,QAAQ,IAAIA,QAAQ,KAAKF,IAA7B,EAAmC;AACjC,eAAcE,QAAd,EAAwBF,IAAxB;AACD;;AACD,SAAK/D,eAAL;AACD,GA9dH;;AAAA,SAgeEmE,mBAheF,GAgeE,6BAAoBC,MAApB,EAAsClI,KAAtC,EAA+D;AAAA;;AAC7D,4BAA6B,KAAK7H,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,qBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,qBAAgBA,QAAhB;;AACA,QAAI,CAACkI,MAAD,IAAW,CAAClI,QAAhB,EAA0B;AACxB;AACD;;AACD,QAAM6P,UAAU,GAAGjK,MAAM,CAACC,IAAP,CAAY+J,MAAZ,EAAoBE,IAApB,CAAyB,UAAC7H,IAAD;AAAA,aAC1CA,IAAI,KAAK,OAAT,GAAmB,CAAnB,GAAuB,CAAC,CADkB;AAAA,KAAzB,CAAnB;AAGA,QAAM8H,eAAe,GAAG,EAAxB;AAEA,SAAKC,mBAAL;AAEA,SAAKtI,KAAL,GAAaA,KAAb;AAEAmI,cAAU,CAAC9J,OAAX,CAAmB,UAACkC,IAAD,EAAU;AAC3B,UAAM6F,KAAK,GAAG8B,MAAM,CAAC3H,IAAD,CAApB;AACA,UAAMhI,IAAI,GAAG,EAAb;AACA,UAAMgQ,YAAY,GAAGnC,KAAK,CAACoC,MAA3B;AACA,UAAMjM,eAAe,GAAG;AACtBkM,aAAK,EAAE,sBADe;AAEtBC,aAAK,EAAE,wBAFe;AAGtBC,kBAAU,EAAE;AAHU,QAItBpI,IAJsB,CAAxB;AAKAC,YAAM,CAACoI,OAAP,CAAkBrI,IAAlB,iBAAkC6F,KAAK,CAACb,EAAxC;AACAjN,cAAQ,CAACsQ,OAAT,CACEjD,mBAAmB,CAAC;AAClBpN,YAAI,EAAJA,IADkB;AAElBqB,0BAAkB,EAAE,GAFF;AAGlB2C,uBAAe,EAAfA,eAHkB;AAIlBgM,oBAAY,EAAZA;AAJkB,OAAD,CADrB;AAQAA,kBAAY,CAACM,gBAAb,CAA8B,QAA9B,EAAwC,YAAM;AAC5C,YAAI;AACFC,gCAAsB,CAACP,YAAY,CAACQ,QAAd,EAAwBxQ,IAAxB,CAAtB;AACD,SAFD,CAEE,OAAOyQ,KAAP,EAAc;AACd;AACAzK,iBAAO,CAACC,IAAR,CAAawK,KAAb;AACA;AACD;;AACDF,8BAAsB,CAAC9I,KAAK,CAAC+I,QAAP,EAAiBV,eAAjB,CAAtB;;AACA,cAAI,CAAC7G,MAAL;AACD,OAVD;AAWD,KA7BD;;AA+BA,QAAI2G,UAAU,CAAClP,MAAX,KAAsB,CAA1B,EAA6B;AAC3B+G,WAAK,CAACiJ,UAAN,GAAmB,YAAM;AACvBH,8BAAsB,CAAC9I,KAAK,CAAC+I,QAAP,EAAiBV,eAAjB,CAAtB;;AACA,cAAI,CAAC7G,MAAL;AACD,OAHD;AAID;;AAEDhB,UAAM,CAACoI,OAAP,CAAe,cAAf;AACAtQ,YAAQ,CAACsQ,OAAT,CACEjD,mBAAmB,CAAC;AAClBpN,UAAI,EAAE8P,eADY;AAElBzO,wBAAkB,EAAE,GAFF;AAGlB2C,qBAAe,EAAE,sBAHC;AAIlByD,WAAK,EAALA;AAJkB,KAAD,CADrB;;AASAA,SAAK,CAACkJ,YAAN,GAAqB;AAAA,aAAM,MAAI,CAACtI,eAAL,EAAN;AAAA,KAArB,CA9D6D,CAgE7D;;;AACA,QAAQuI,UAAR,GAAuBnJ,KAAvB,CAAQmJ,UAAR;;AACA,SAAKlJ,mBAAL,GACE,KAAKA,mBAAL,IAA6B,UAACmJ,CAAD;AAAA,aAAO,MAAI,CAACC,aAAL,CAAmBD,CAAC,CAACE,aAArB,CAAP;AAAA,KAD/B;;AAEAH,cAAU,CAACI,mBAAX,CAA+B,UAA/B,EAA2C,KAAKtJ,mBAAhD;AACAkJ,cAAU,CAACI,mBAAX,CAA+B,aAA/B,EAA8C,KAAKtJ,mBAAnD;AACAkJ,cAAU,CAACI,mBAAX,CAA+B,QAA/B,EAAyC,KAAKtJ,mBAA9C;AACAkJ,cAAU,CAACN,gBAAX,CAA4B,UAA5B,EAAwC,KAAK5I,mBAA7C;AACAkJ,cAAU,CAACN,gBAAX,CAA4B,aAA5B,EAA2C,KAAK5I,mBAAhD;AACAkJ,cAAU,CAACN,gBAAX,CAA4B,QAA5B,EAAsC,KAAK5I,mBAA3C;AACA,SAAKoJ,aAAL,CAAmBF,UAAnB;AACA,SAAK9E,MAAL,CAAY/L,QAAZ;AACD,GA5iBH;;AAAA,SA8iBEgQ,mBA9iBF,GA8iBE,+BAAsB;AACpB,4BAA6B,KAAKnQ,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,qBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,qBAAgBA,QAAhB;;AACA,QAAI,CAACkI,MAAD,IAAW,CAAClI,QAAhB,EAA0B;AACxB;AACD;;AACD,QAAIwC,CAAC,GAAGxC,QAAQ,CAACW,MAAjB;;AACA,WAAO6B,CAAC,EAAR,EAAY;AACV,UAAI,CAAC0F,MAAM,CAAC,CAAD,CAAN,IAAa,EAAd,EAAkBgJ,QAAlB,GAA6BC,OAA7B,CAAqC,QAArC,IAAiD,CAAC,CAAtD,EAAyD;AACvDnR,gBAAQ,CAACqO,MAAT,CAAgB7L,CAAhB,EAAmB,CAAnB;AACA0F,cAAM,CAACmG,MAAP,CAAc7L,CAAd,EAAiB,CAAjB;AACD;AACF;AACF,GA1jBH;;AAAA,SA4jBEuO,aA5jBF,GA4jBE,uBAAcF,UAAd,EAA0B;AAAA;;AACxB,4BAA6B,KAAKhR,KAAL,CAAWI,IAAxC;AAAA,QAAQiI,MAAR,qBAAQA,MAAR;AAAA,QAAgBlI,QAAhB,qBAAgBA,QAAhB;;AACA,QAAI,CAACkI,MAAD,IAAW,CAAClI,QAAhB,EAA0B;AACxB;AACD;;AACD,SAAKoO,UAAL,CAAgB,WAAhB;AACA,OAAGrI,OAAH,CAAWqL,IAAX,CAAgBP,UAAhB,EAA4B,UAACQ,SAAD,EAAY7O,CAAZ,EAAkB;AAC5C;AACA;AACA;AACA;AACA,UAAMvC,IAAI,GAAG,EAAb;AACAiI,YAAM,CAACgF,IAAP,EACKmE,SAAS,CAACC,IAAV,IAAkBD,SAAS,CAACE,KADjC,UAC0CF,SAAS,CAACG,IADpD,UAEIH,SAAS,CAACI,IAFd;AAKAzR,cAAQ,CAACkN,IAAT,CACEG,mBAAmB,CAAC;AAClBpN,YAAI,EAAJA,IADkB;AAElBqB,0BAAkB,EAAE,GAFF;AAGlBgM,WAAG,EAAE,EAHa;AAIlBE,iBAAS,EAAE,WAJO;AAKlBJ,mBAAW,EACRiE,SAAS,CAACI,IAAV,KAAmB,QAApB,KAAkCjP,CAAlC,GACI,wBADJ,GAEI,IARY;AASlB6O,iBAAS,EAAE7O;AATO,OAAD,CADrB;;AAaA,YAAI,CAACoF,iBAAL,GACE,MAAI,CAACA,iBAAL,IACC,UAACkJ,CAAD;AAAA,eAAO,MAAI,CAACY,mBAAL,CAAyBZ,CAAC,CAACE,aAA3B,CAAP;AAAA,OAFH;;AAGAK,eAAS,CAACM,KAAV,GAAkB1R,IAAlB;AACAoR,eAAS,CAACJ,mBAAV,CAA8B,WAA9B,EAA2C,MAAI,CAACrJ,iBAAhD;AACAyJ,eAAS,CAACd,gBAAV,CAA2B,WAA3B,EAAwC,MAAI,CAAC3I,iBAA7C;;AACA,YAAI,CAAC8J,mBAAL,CAAyBL,SAAzB;AACD,KA/BD;AAgCA,SAAKtF,MAAL,CAAY/L,QAAZ;AACD,GAnmBH;;AAAA,SAqmBE0R,mBArmBF,GAqmBE,6BAAoBL,SAApB,EAA+B;AAC7B,QAAMpR,IAAI,GAAGoR,SAAS,CAACM,KAAvB;;AACA,QAAI,CAAC1R,IAAL,EAAW;AACT;AACD;;AACD,QAAQ2R,UAAR,GAA6BP,SAA7B,CAAQO,UAAR;AAAA,QAAoBC,IAApB,GAA6BR,SAA7B,CAAoBQ,IAApB;AACA5R,QAAI,CAACU,MAAL,GAAc,CAAd;;AACA,QAAI,CAACkR,IAAL,EAAW;AACT;AACD;;AACD,QAAMlR,MAAM,GAAGkR,IAAI,CAAClR,MAApB;AAEA,QAAImR,YAAY,GAAG,CAAnB;AACA,QAAIC,SAAS,GAAGC,QAAhB;AACA,QAAIC,SAAS,GAAG,CAAhB;;AACA,QAAIL,UAAJ,EAAgB;AACdE,kBAAY,GAAGF,UAAU,CAACjR,MAA1B;;AACA,WAAK,IAAI6B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsP,YAApB,EAAkCtP,CAAC,EAAnC,EAAuC;AACrC,YAAI0P,GAAG,GAAGN,UAAU,CAACpP,CAAD,CAApB;;AACA,YAAI,CAAC0P,GAAD,IAAQN,UAAU,CAACO,IAAvB,EAA6B;AAC3BD,aAAG,GAAGN,UAAU,CAACO,IAAX,CAAgB3P,CAAhB,CAAN;AACD;;AACD,YAAI0P,GAAJ,EAAS;AACPH,mBAAS,GAAG5P,IAAI,CAACzB,GAAL,CAASqR,SAAT,EAAoBG,GAAG,CAACE,SAAxB,CAAZ;AACAH,mBAAS,GAAGC,GAAG,CAACG,OAAJ,GACRlQ,IAAI,CAAC1B,GAAL,CAASwR,SAAT,EAAoBC,GAAG,CAACG,OAAxB,CADQ,GAERJ,SAFJ;AAGD,SALD,MAKO;AACLH,sBAAY;AACb;AACF;AACF;;AA/B4B,+BAgCpBtP,EAhCoB;AAiC3B,UAAI0P,GAAG,GAAGL,IAAI,CAACrP,EAAD,CAAd;;AACA,UAAI,CAAC0P,GAAD,IAAQL,IAAI,CAACM,IAAjB,EAAuB;AACrBD,WAAG,GAAGL,IAAI,CAACM,IAAL,CAAU3P,EAAV,CAAN;AACD;;AACD,UAAI,CAAC0P,GAAL,EAAU;AACR;AACD;;AACD,UAAM3R,KAAK,GAAG2R,GAAG,CAACE,SAAlB;AACA,UAAMxR,GAAG,GAAGsR,GAAG,CAACG,OAAhB;AACA,UAAMlN,OAAO,GAAGmN,WAAW,CAACJ,GAAD,CAA3B;AACA,UAAI1N,MAAM,GAAG,KAAb;;AACA,UAAIsN,YAAY,IAAIlR,GAAG,IAAImR,SAAvB,IAAoCxR,KAAK,IAAI0R,SAAjD,EAA4D;AAC1DzN,cAAM,GAAG,GAAG+N,IAAH,CAAQnB,IAAR,CAAaQ,UAAb,EAAyB,UAACY,SAAD;AAAA,iBAChCC,SAAS,CAACD,SAAD,EAAYN,GAAZ,CADuB;AAAA,SAAzB,CAAT;AAGD;;AACDjS,UAAI,CAACiN,IAAL,CAAU;AACR3M,aAAK,EAALA,KADQ;AAERK,WAAG,EAAHA,GAFQ;AAGRuE,eAAO,EAAPA,OAHQ;AAIRX,cAAM,EAANA,MAJQ;AAKRtB,gBAAQ,EAAE;AALF,OAAV;AAjD2B;;AAgC7B,SAAK,IAAIV,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAG7B,MAApB,EAA4B6B,EAAC,EAA7B,EAAiC;AAAA,uBAAxBA,EAAwB;;AAAA,+BAM7B;AAkBH;;AACD,SAAKgJ,eAAL;AACD,GA/pBH;;AAAA,SAiqBElD,eAjqBF,GAiqBE,2BAAkB;AAAA;;AAChB,QAAMzI,KAAK,GAAG,KAAKA,KAAnB;;AACA,QAAI,cAAAmI,IAAI,CAACsD,GAAL,kDAAU5D,KAAV,IAAmB7H,KAAK,CAACI,IAAN,CAAWD,QAAX,CAAqBW,MAA5C,EAAoD;AAClD,UAAM4K,WAAW,GAAGvD,IAAI,CAACsD,GAAL,CAAS5D,KAAT,CAAe6D,WAAnC;AACA,UAAMzL,KAAK,GAAG,KAAK+I,WAAL,CAAiBxB,cAAjB,CAAd;AACA,UAAMxF,GAAG,GAAGhC,KAAK,CAACgC,GAAlB;;AACA,UAAI,KAAKgG,MAAL,IAAe,CAAChG,GAAhB,IAAuB,CAACA,GAAG,CAACG,MAAJ,CAAW6C,KAAvC,EAA8C;AAC5C;AACD;;AACD,UAAM/C,SAAuC,GAAGjC,KAAK,CAACiC,SAAtD;AACA,UAAMe,CAAC,GAAG/C,KAAK,CAACgB,gBAAN,CAAuByK,WAAvB,CAAV;AACA1J,SAAG,CAAC6Q,OAAJ;AACA7Q,SAAG,CAAC8Q,IAAJ;AACA,WAAKC,SAAL,CAAe/Q,GAAf,EAAoBgB,CAApB,EAAuBf,SAAvB;;AACA,UAAIe,CAAC,GAAGf,SAAS,CAACgB,IAAd,IAAsBD,CAAC,GAAGf,SAAS,CAACiB,KAAxC,EAA+C;AAC7ClB,WAAG,CAACqC,SAAJ,GAAgB,KAAK2O,mBAAL,CAAyB7K,IAAI,CAACsD,GAAL,CAAS5D,KAAlC,CAAhB;AACA,YAAMlE,CAAC,GAAG1B,SAAS,CAAC+E,GAAV,GAAgBhH,KAAK,CAACI,IAAN,CAAWD,QAAX,CAAqB,CAArB,EAAwBqB,YAAxC,GAAuD,CAAjE;AACAQ,WAAG,CAACiD,QAAJ,CAAaW,sEAAM,CAAC8F,WAAD,EAAc,CAAd,CAAnB,EAAqC1I,CAAC,GAAG,CAAzC,EAA4CW,CAA5C,EAA+C,GAA/C;AACD;;AACD3B,SAAG,CAAC6Q,OAAJ;AACD;AACF,GAtrBH;;AAAA,SAwrBEG,mBAxrBF,GAwrBE,6BAAoB1C,KAApB,EAAqD;AACnD,QAAI,CAACA,KAAK,CAAC2C,UAAP,IAAqB3C,KAAK,CAAC4C,KAA/B,EAAsC;AACpC,aAAO,oBAAP;AACD;;AACD,QAAI5C,KAAK,CAAC6C,OAAN,IAAiB7C,KAAK,CAAC2C,UAAN,GAAmB,CAAxC,EAA2C;AACzC,aAAO,wBAAP;AACD;;AACD,QAAI3C,KAAK,CAAC8C,MAAV,EAAkB;AAChB,aAAO,wBAAP;AACD;;AACD,WAAO,sBAAP;AACD,GAnsBH;;AAAA,SAqsBEL,SArsBF,GAqsBE,mBAAU/Q,GAAV,EAAegB,CAAf,EAA0Bf,SAA1B,EAAqC;AACnC,QAAI,CAAC,KAAK2F,eAAV,EAA2B;AACzB,UAAMyL,gBAAgB,GAAGlL,IAAI,CAACkL,gBAAL,IAAyB,CAAlD;AACA,WAAKzL,eAAL,GAAuB5F,GAAG,CAACsR,YAAJ,CACrB,CADqB,EAErB,CAFqB,EAGrBrR,SAAS,CAACiB,KAAV,GAAkBmQ,gBAHG,EAIrBpR,SAAS,CAACgF,MAAV,GAAmBoM,gBAJE,CAAvB;AAMD,KARD,MAQO;AACLrR,SAAG,CAACqC,SAAJ,GAAgB,SAAhB;AACArC,SAAG,CAACsC,QAAJ,CAAa,CAAb,EAAgB,CAAhB,EAAmBrC,SAAS,CAACiB,KAA7B,EAAoCjB,SAAS,CAACgF,MAA9C;AACAjF,SAAG,CAACuR,YAAJ,CAAiB,KAAK3L,eAAtB,EAAuC,CAAvC,EAA0C,CAA1C;AACD;;AACD,QAAI5E,CAAC,GAAGf,SAAS,CAACgB,IAAd,IAAsBD,CAAC,GAAGf,SAAS,CAACiB,KAAxC,EAA+C;AAC7ClB,SAAG,CAACwR,SAAJ,GAAgB,CAAhB;AACAxR,SAAG,CAACyR,WAAJ,GAAkB,KAAKT,mBAAL,CAAyB7K,IAAI,CAACsD,GAAL,CAAS5D,KAAlC,CAAlB,CAF6C,CAEe;;AAC5D7F,SAAG,CAAC0R,SAAJ;AACA1R,SAAG,CAAC2R,MAAJ,CAAW3Q,CAAX,EAAcf,SAAS,CAAC+E,GAAxB;AACAhF,SAAG,CAAC4R,MAAJ,CAAW5Q,CAAX,EAAcf,SAAS,CAACgF,MAAxB;AACAjF,SAAG,CAAC6R,MAAJ;AACD;AACF,GA3tBH;;AAAA;AAAA;AAAA,SA6LE,eAAoD;AAClD,aAAQ,KAAK7T,KAAN,CAAoBiG,MAA3B;AACD;AA/LH;AAAA;AAAA,SA0aE,eAAsB;AACpB,UAAMhG,KAAK,GAAG,KAAK+I,WAAL,CAAiBxB,cAAjB,CAAd;;AACA,UAAIvH,KAAJ,EAAW;AACT,eAAOA,KAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBvI,GAA3B;AACD;;AACD,aAAO,CAAP;AACD,KAhbH,CAkbE;;AAlbF;AAAA;AAAA,SAmbE,eAAsB;AACpB,UAAMZ,KAAK,GAAG,KAAK+I,WAAL,CAAiBxB,cAAjB,CAAd;;AACA,UAAIvH,KAAJ,EAAW;AACT,eAAOA,KAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBxI,GAA3B;AACD;;AACD,aAAO,KAAKqH,OAAZ;AACD,KAzbH,CA2bE;AA3bF;AAAA,SA4bE,aAAYjF,CAAZ,EAAuB;AACrB,UAAM8Q,WAAW,GAAG,KAAKtE,OAAzB;AACA,UAAMuE,OAAO,GAAGzR,IAAI,CAAC1B,GAAL,CAASoC,CAAT,EAAY8Q,WAAZ,CAAhB;;AACA,UAAIA,WAAW,KAAK,EAAhB,IAAsBC,OAAO,KAAKD,WAAtC,EAAmD;AACjD,YAAM7T,KAAK,GAAG,KAAK+I,WAAL,CAAiBxB,cAAjB,CAAd;AACAvH,aAAK,CAACF,OAAN,CAAcqJ,KAAd,CAAoBxI,GAApB,GAA0BmT,OAA1B;AACD;AACF;AAncH;;AAAA;AAAA;;AA8tBA,SAASlF,uBAAT,CAAiCpB,GAAjC,EAAsD;AACpD,MAAIA,GAAG,KAAK,EAAZ,EAAgB;AACd,WAAOA,GAAP;AACD;;AACD,MAAI;AACF,QAAMuG,MAAW,GAAG,IAAI7L,IAAI,CAAC8L,GAAT,CAAaxG,GAAb,CAApB;AACAuG,UAAM,CAACE,YAAP,CAAoBC,MAApB,CAA2B,UAA3B;AACAH,UAAM,CAACE,YAAP,CAAoBC,MAApB,CAA2B,WAA3B;AACAH,UAAM,CAACE,YAAP,CAAoBC,MAApB,CAA2B,WAA3B;AACAH,UAAM,CAACE,YAAP,CAAoBjE,IAApB;AACA,WAAO+D,MAAM,CAACI,IAAd;AACD,GAPD,CAOE,OAAOnD,CAAP,EAAU;AACV,WAAOxD,GAAG,CAACnG,OAAJ,CAAY,oCAAZ,EAAkD,EAAlD,CAAP;AACD;AACF;;AAED,SAASkG,mBAAT,CAA6BzN,OAA7B,EAAsC;AACpC,SAAO,SACL;AACEK,QAAI,EAAE,EADR;AAEEiU,WAAO,EAAE7M,cAFX;AAGEhG,gBAAY,EAAE,EAHhB;AAIEC,sBAAkB,EAAE;AAJtB,GADK,EAOL1B,OAPK,CAAP;AASD;;AAED,SAASwP,gBAAT,CAA0B3B,OAA1B,EAAyD;AAAA;;AACvD,SAAO,sBAAAA,OAAO,CAACkB,SAAR,kEAAmBhO,MAAnB,GAA4B8M,OAAO,CAACkB,SAAR,CAAkB,CAAlB,EAAqBpO,KAAjD,GAAyD,CAAhE;AACD;;AAED,SAAS4M,YAAT,CAAsBH,KAAtB,EAAoCrN,KAApC,EAAmD;AAAA;;AACjD,MAAI4R,KAAK,GAAG,iBAAZ;;AACA,sBAAIvE,KAAK,CAACmH,KAAV,yCAAI,aAAaC,SAAjB,EAA4B;AAC1B7C,SAAK,GAAM8C,qBAAqB,CAACrH,KAAD,CAA3B,SAAsCA,KAAK,CAACmH,KAAN,CAAYC,SAAvD;;AACA,QAAIpH,KAAK,CAACsE,IAAV,EAAgB;AACdC,WAAK,GAAMA,KAAN,UAAgBvE,KAAK,CAACsE,IAAtB,MAAL;AACD;AACF,GALD,MAKO,IAAItE,KAAK,CAACsE,IAAV,EAAgB;AACrBC,SAAK,GAAGvE,KAAK,CAACsE,IAAd;AACD;;AACD,SAAUC,KAAV,WAAqB5R,KAArB;AACD;;AAED,SAAS0U,qBAAT,CAA+BrH,KAA/B,EAA6C;AAC3C,SAAOA,KAAK,CAACmH,KAAN,CAAYG,UAAZ,IAA0BtH,KAAK,CAACmH,KAAN,CAAYI,MAAtC,IAAgDvH,KAAK,CAACmH,KAAN,CAAYK,KAAnE;AACD;;AAED,SAASzG,iBAAT,CAA2BD,KAA3B,EAAiDnO,KAAjD,EAAgE;AAC9D,MAAM4R,KAAK,GAAGzD,KAAK,CAAC2G,IAAN,GAAgB3G,KAAK,CAACwD,IAAtB,SAA8BxD,KAAK,CAAC2G,IAApC,GAA6C3G,KAAK,CAACwD,IAAjE;AACA,SAAUC,KAAV,WAAoBzD,KAAK,CAAC4G,OAAN,IAAiB5G,KAAK,CAACqG,KAAN,CAAY,UAAZ,CAArC,aAAmExU,KAAnE;AACD;;AAED,SAASwO,gBAAT,CAA0BL,KAA1B,EAAgDnO,KAAhD,EAA+D;AAC7D,MAAM4R,KAAK,GAAGzD,KAAK,CAAC2G,IAAN,GAAgB3G,KAAK,CAACwD,IAAtB,SAA8BxD,KAAK,CAAC2G,IAApC,GAA6C3G,KAAK,CAACwD,IAAjE;AACA,SAAUC,KAAV,WAAoBzD,KAAK,CAAC4G,OAAN,IAAiB5G,KAAK,CAACqG,KAAN,CAAY,UAAZ,CAArC,aAAmExU,KAAnE;AACD;;AAED,SAAS6Q,sBAAT,CAAgCmE,UAAhC,EAA4C1U,IAA5C,EAAkD;AAChDA,MAAI,CAACU,MAAL,GAAc,CAAd;AACA,MAAQA,MAAR,GAAmBgU,UAAnB,CAAQhU,MAAR;;AACA,OAAK,IAAI6B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7B,MAApB,EAA4B6B,CAAC,EAA7B,EAAiC;AAC/BvC,QAAI,CAACiN,IAAL,CAAU,CAACyH,UAAU,CAACpU,KAAX,CAAiBiC,CAAjB,CAAD,EAAsBmS,UAAU,CAAC/T,GAAX,CAAe4B,CAAf,CAAtB,CAAV;AACD;AACF;;AAED,SAASiQ,SAAT,CAAmBmC,IAAnB,EAAyBC,IAAzB,EAA+B;AAC7B,SACED,IAAI,CAACxC,SAAL,KAAmByC,IAAI,CAACzC,SAAxB,IACAwC,IAAI,CAACvC,OAAL,KAAiBwC,IAAI,CAACxC,OADtB,IAEAuC,IAAI,CAACE,IAAL,KAAcD,IAAI,CAACC,IAFnB,IAGAF,IAAI,CAAC3U,IAAL,KAAc4U,IAAI,CAAC5U,IAHnB,IAIA8U,IAAI,CAACC,SAAL,CAAeJ,IAAI,CAACtU,KAApB,MAA+ByU,IAAI,CAACC,SAAL,CAAeH,IAAI,CAACvU,KAApB,CALjC;AAOD;;AAED,SAASgS,WAAT,CAAqBJ,GAArB,EAA0B;AACxB,MAAIA,GAAG,CAAC4C,IAAR,EAAc;AACZ,WAAO5C,GAAG,CAAC4C,IAAX;AACD;;AACD,MAAMG,MAAM,GAAGC,YAAY,CAAChD,GAAD,CAA3B;AACA,SAAO6C,IAAI,CAACC,SAAL,CAAeC,MAAf,CAAP;AACD;;AAED,SAASC,YAAT,CAAsBhD,GAAtB,EAA2B;AACzB,MAAMjS,IAAI,GAAG,EAAb;AACA,MAAQK,KAAR,GAAkB4R,GAAlB,CAAQ5R,KAAR;;AACA,MAAIA,KAAJ,EAAW;AACT,QAAIA,KAAK,CAAC6U,IAAV,EAAgB;AACd,UAAIC,UAAU,GAAGnV,IAAI,CAACK,KAAK,CAAC+U,GAAP,CAArB;;AACA,UAAID,UAAU,KAAKxP,MAAM,CAACwP,UAAD,CAAzB,EAAuC;AACrCA,kBAAU,GAAG,EAAb;AACAnV,YAAI,CAACK,KAAK,CAAC+U,GAAP,CAAJ,GAAkBD,UAAlB;AACD;;AACDA,gBAAU,CAAC9U,KAAK,CAAC6U,IAAP,CAAV,GAAyB7U,KAAK,CAACL,IAA/B;AACD,KAPD,MAOO;AACLA,UAAI,CAACK,KAAK,CAAC+U,GAAP,CAAJ,GAAkB/U,KAAK,CAACL,IAAxB;AACD;AACF;;AACD,SAAOA,IAAP;AACD;;AAED,SAASkI,eAAT,GAA2B;AACzB,SAAO;AACLmN,aAAS,EAAE;AACThP,cAAQ,EAAE;AADD,KADN;AAILiP,YAAQ,EAAE;AACRC,eAAS,EAAE;AACT1R,mBAAW,EAAE,CADJ;AAETsJ,mBAAW,EAAE;AAFJ;AADH,KAJL;AAULqI,UAAM,EAAE,CAAC,OAAD,EAAU,YAAV,CAVH;AAWLC,SAAK,EAAE;AACLjE,UAAI,EAAE,IADD;AAELkE,uBAAiB,EAAE;AAFd,KAXF;AAeLC,UAAM,EAAE;AACNC,aAAO,EAAE;AADH,KAfH;AAkBLC,uBAAmB,EAAE,KAlBhB;AAoBLC,+BAA2B,EAAE,CApBxB;AAqBLjQ,UAAM,EAAE;AACN;AACAkQ,WAAK,EAAE,CACL;AACE/I,UAAE,EAAE5F,cADN;AAEE4B,aAAK,EAAE;AACLgN,qBAAW,EAAE,IADR;AAELC,oBAAU,EAAE,CAFP;AAGLC,qBAAW,EAAE,CAHR;AAILC,kBAAQ,EAAE,kBAACC,SAAD,EAAY7T,CAAZ,EAAeyG,KAAf,EAAyB;AACjC,gBAAIzG,CAAC,KAAK,CAAN,IAAWA,CAAC,KAAKyG,KAAK,CAACtI,MAAN,GAAe,CAApC,EAAuC;AACrC,qBAAO0V,SAAS,GAAG,EAAH,GAAQ,GAAxB;AACD,aAFD,MAEO;AACL,qBAAO5Q,sEAAM,CAAC4Q,SAAD,EAAY,CAAZ,CAAb;AACD;AACF;AAVI;AAFT,OADK,CAFD;AAmBNC,WAAK,EAAE,CACL;AACEC,iBAAS,EAAE;AACTV,iBAAO,EAAE;AADA;AADb,OADK;AAnBD,KArBH;AAgDLW,YAAQ,EAAE;AACRC,aAAO,EAAE;AADD;AAhDL,GAAP;AAoDD;;AAED,SAAShI,SAAT,CAAmBiI,KAAnB,EAA0BC,SAA1B,EAAqC;AACnC,MAAMjV,GAAG,GAAGgV,KAAK,CAAC/V,MAAN,KAAiB,CAA7B;;AACA,MAAI,OAAOgW,SAAP,KAAqB,UAAzB,EAAqC;AACnC,UAAMC,SAAS,CAAC,8BAAD,CAAf;AACD;;AACD,MAAMC,OAAO,GAAGC,SAAS,CAAC,CAAD,CAAzB;AACA,MAAIC,CAAC,GAAG,CAAR;;AACA,SAAOA,CAAC,GAAGrV,GAAX,EAAgB;AACd,QAAMsV,MAAM,GAAGN,KAAK,CAACK,CAAD,CAApB;;AACA,QAAIJ,SAAS,CAACvF,IAAV,CAAeyF,OAAf,EAAwBG,MAAxB,EAAgCD,CAAhC,EAAmCL,KAAnC,CAAJ,EAA+C;AAC7C,aAAOM,MAAP;AACD;;AACDD,KAAC;AACF,GAbkC,CAcnC;;;AACA,SAAOvW,SAAP;AACD,C;;;;;;;;;;;;ACr7BD;AAAA;AAAA;AAAO,SAASyW,UAAT,CAAoB5W,GAApB,EAAyB;AAC9B,MAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;AAC3B,WAAOA,GAAP;AACD;;AACD,MAAI6W,IAAI,GAAG,EAAX;AACA,MAAIrR,IAAI,GAAG,EAAX;;AACA,OAAK,IAAIwP,GAAT,IAAgBhV,GAAhB,EAAqB;AACnBwF,QAAI,CAACqH,IAAL,CAAUmI,GAAV;AACD;;AACDxP,MAAI,CAACiK,IAAL;;AACA,OAAK,IAAInQ,KAAT,IAAkBkG,IAAlB,EAAwB;AACtBqR,QAAI,CAACrR,IAAI,CAAClG,KAAD,CAAL,CAAJ,GAAoBsX,UAAU,CAAC5W,GAAG,CAACwF,IAAI,CAAClG,KAAD,CAAL,CAAJ,CAA9B;AACD;;AACD,SAAOuX,IAAP;AACD;AAEM,SAASC,mBAAT,CAA6BrC,IAA7B,EAAmC;AACxC,MAAIsC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,UAAvB,CAAf;AACAF,UAAQ,CAAC9W,KAAT,GAAiBwU,IAAjB;AACAuC,UAAQ,CAACE,IAAT,CAAcC,WAAd,CAA0BJ,QAA1B;AACAA,UAAQ,CAACK,MAAT;;AACA,MAAI;AACF,QAAIC,UAAU,GAAGL,QAAQ,CAACM,WAAT,CAAqB,MAArB,CAAjB;AACA,QAAIC,GAAG,GAAGF,UAAU,GAAG,YAAH,GAAkB,cAAtC;AACAzR,WAAO,CAACoF,GAAR,CAAY,8BAA8BuM,GAA1C;AACD,GAJD,CAIE,OAAOC,GAAP,EAAY;AACZ5R,WAAO,CAACoF,GAAR,CAAY,sBAAZ;AACD;;AACDgM,UAAQ,CAACE,IAAT,CAAcO,WAAd,CAA0BV,QAA1B;AACD,C;;;;;;;;;;;;AC7BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;AAEA;AACA;AACA;AACA;AAEA,IAAMW,OAAO,GAAGC,EAAhB,C,CAA6B;;AAE7B,IAAMC,YAAY,GAAG;AACnBC,oBAAkB,EAAE,6BADD;AAEnBC,YAAU,EAAE,cAFO;AAGnBC,QAAM,EAAE,cAHW;AAInBC,WAAS,EAAE;AAJQ,CAArB;;AAOA,IAAMC,WAAW,GAAGC,mBAAO,CAAC,sDAAD,CAA3B;;AACA,IAAMC,oBAAoB,GAAGF,WAAW,CAAC1S,MAAM,CAACC,IAAP,CAAYyS,WAAZ,EAAyB,CAAzB,CAAD,CAAX,CAAyChL,GAAtE;AACA,IAAMmL,SAAS,GAAGC,kBAAkB,CAACC,WAAW,CAAC,KAAD,EAAQH,oBAAR,CAAZ,CAApC;AAEA,IAAII,UAAU,GAAGD,WAAW,CAAC,YAAD,EAAe,IAAf,CAA5B;;AACA,IAAIC,UAAJ,EAAgB;AACdA,YAAU,GAAG7D,IAAI,CAAC8D,KAAL,CAAWC,IAAI,CAACF,UAAD,CAAf,CAAb;AACD,CAFD,MAEO;AACLA,YAAU,GAAG,EAAb;AACD;;AAED,IAAMG,aAAa,GAAG;AACpBC,OAAK,EAAE,IADa;AAEpBC,cAAY,EAAE,IAFM;AAGpBC,gBAAc,EAAE,IAHI;AAIpBC,kBAAgB,EAAE,KAAK;AAJH,CAAtB;AAOA,IAAIC,eAAe,GAAGC,0BAA0B,CAAC,iBAAD,EAAoB,IAApB,CAAhD;AACA,IAAIC,gBAAgB,GAAGD,0BAA0B,CAAC,kBAAD,EAAqB,IAArB,CAAjD;AACA,IAAIE,YAAY,GAAGF,0BAA0B,CAAC,cAAD,EAAiB,CAAC,CAAlB,CAA7C;AACA,IAAIG,YAAY,GAAGH,0BAA0B,CAAC,cAAD,EAAiB,CAAC,CAAlB,CAA7C;AACA,IAAII,QAAQ,GAAGJ,0BAA0B,CAAC,UAAD,EAAa,KAAb,CAAzC;AACA,IAAIK,WAAW,GAAGL,0BAA0B,CAAC,aAAD,EAAgB,KAAhB,CAA5C;AAEA,IAAIM,YAAY,GAAG,CAAC,CAApB;AACA,IAAIC,kBAAkB,GAAG,IAAzB;AAEA,IAAIzJ,KAAK,GAAGkH,QAAQ,CAACwC,aAAT,CAAuB,QAAvB,CAAZ;AACA,IAAMzH,SAAS,GAAG0H,IAAI,CAACC,GAAL,EAAlB;AAEA,IAAIC,cAAJ;AACA,IAAIC,iBAAJ;AACA,IAAIC,YAAJ;AACA,IAAIC,0BAAJ;AACA,IAAI7O,GAAJ;AACA,IAAIgC,GAAJ;AACA,IAAImI,MAAJ;AACA,IAAItS,KAAJ;AACA,IAAIyM,MAAJ;AACA,IAAIwK,QAAJ;AACA,IAAIC,wBAAwB,GAAG,KAA/B;AACA,IAAIC,YAAY,GAAG,IAAnB;AACA,IAAIza,KAAJ;AACA,IAAI0a,qBAAqB,GAAG,CAAC,CAA7B;AAEA,IAAMrO,qBAAqB,GAAGlE,IAAI,CAACkE,qBAAL,IAA8BlE,IAAI,CAACwS,UAAjE;AACA,IAAMxO,oBAAoB,GAAGhE,IAAI,CAACgE,oBAAL,IAA6BhE,IAAI,CAACyS,YAA/D;AACA,IAAMC,cAAc,GAAG,EAAvB;;AACA,IAAM3O,MAAM,GAAG,SAATA,MAAS,GAAM;AACnBC,sBAAoB,CAACuO,qBAAD,CAApB;AACAA,uBAAqB,GAAGrO,qBAAqB,CAAC,YAAM;AAClDwO,kBAAc,CAAC3U,OAAf,CAAuB,UAAC4U,OAAD,EAAa;AAClCA,aAAO;AACR,KAFD;AAGD,GAJ4C,CAA7C;AAKD,CAPD;;AASA3S,IAAI,CAAC4S,QAAL,GAAgB7O,MAAhB;;AACA,IAAI/D,IAAI,CAAC6S,MAAL,IAAe7S,IAAI,CAAC6S,MAAL,CAAYC,WAA/B,EAA4C;AAC1C9S,MAAI,CAAC6S,MAAL,CAAYC,WAAZ,CAAwBC,QAAxB,GAAmChP,MAAnC;AACD;;AAED,IAAMiP,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzB,MAAMtX,MAAM,GAAGyM,KAAK,CAAC8K,qBAAN,EAAf;AACAC,GAAC,CAAC,cAAD,CAAD,CAAkBC,IAAlB,CACKhZ,IAAI,CAACiZ,KAAL,CAAW1X,MAAM,CAACmB,KAAP,GAAe,EAA1B,IAAgC,EADrC,WAEI1C,IAAI,CAACiZ,KAAL,CAAW1X,MAAM,CAACD,MAAP,GAAgB,EAA3B,IAAiC,EAFrC;;AAKA,MAAI0M,KAAK,CAACkL,UAAN,IAAoBlL,KAAK,CAACmL,WAA9B,EAA2C;AACzCJ,KAAC,CAAC,oBAAD,CAAD,CAAwBC,IAAxB,CAAgChL,KAAK,CAACkL,UAAtC,WAAsDlL,KAAK,CAACmL,WAA5D;AACD;AACF,CAVD;;AAWAZ,cAAc,CAACxN,IAAf,CAAoB8N,YAApB;AAEAE,CAAC,CAAC7D,QAAD,CAAD,CAAYkE,KAAZ,CAAkB,YAAY;AAC5BC,mBAAiB;AAEjB3b,OAAK,GAAG4b,kBAAkB,EAA1B;AAEA7V,QAAM,CAACC,IAAP,CAAYyS,WAAZ,EAAyBvS,OAAzB,CAAiC,UAACsP,GAAD,EAAM1V,KAAN,EAAgB;AAC/C,QAAM+b,MAAM,GAAGpD,WAAW,CAACjD,GAAD,CAA1B;AACA,QAAMsG,MAAM,GAAG,IAAIC,MAAJ,CAAWF,MAAM,CAACG,WAAlB,EAA+BxG,GAA/B,CAAf;AACA6F,KAAC,CAAC,eAAD,CAAD,CAAmBY,MAAnB,CAA0BH,MAA1B;;AACA,QAAID,MAAM,CAACpO,GAAP,KAAemL,SAAnB,EAA8B;AAC5BpB,cAAQ,CAACwC,aAAT,CAAuB,eAAvB,EAAwCkC,aAAxC,GAAwDpc,KAAK,GAAG,CAAhE;AACD;AACF,GAPD;AASA,MAAM0b,UAAU,GAAGlL,KAAK,CAAC7D,KAAN,CAAYzH,KAA/B;;AACA,MAAIwW,UAAJ,EAAgB;AACdH,KAAC,CAAC,mBAAD,CAAD,CAAuBc,IAAvB,CAA4B,UAAUxZ,CAAV,EAAamZ,MAAb,EAAqB;AAC/C,UAAIA,MAAM,CAACrb,KAAP,KAAiB+a,UAArB,EAAiC;AAC/BhE,gBAAQ,CAACwC,aAAT,CAAuB,YAAvB,EAAqCkC,aAArC,GAAqDvZ,CAArD;AACA0Y,SAAC,CAAC,iBAAD,CAAD,CAAqBrW,KAArB,CAA2BwW,UAA3B;AACAtP,cAAM;AACN,eAAO,KAAP;AACD;AACF,KAPD;AAQD;;AAEDmP,GAAC,CAAC,eAAD,CAAD,CAAmBe,MAAnB,CAA0B,YAAY;AACpC,QAAM5G,GAAG,GAAG6F,CAAC,CAAC,eAAD,CAAD,CAAmBlY,GAAnB,MAA4B4C,MAAM,CAACC,IAAP,CAAYyS,WAAZ,EAAyB,CAAzB,CAAxC;AACAsB,sBAAkB,GAAGtB,WAAW,CAACjD,GAAD,CAAhC;AACA,QAAM6G,SAAS,GAAGtC,kBAAkB,CAACtM,GAArC;AACA4N,KAAC,CAAC,YAAD,CAAD,CAAgBlY,GAAhB,CAAoBkZ,SAApB;AACAC,sBAAkB;AACnB,GAND;AAQAjB,GAAC,CAAC,YAAD,CAAD,CAAgBe,MAAhB,CAAuB,YAAY;AACjCrC,sBAAkB,GAAG,IAArB;AACAuC,sBAAkB;AACnB,GAHD;AAKAjB,GAAC,CAAC,YAAD,CAAD,CAAgBe,MAAhB,CAAuB,YAAY;AACjCf,KAAC,CAAC,QAAD,CAAD,CAAYrW,KAAZ,CAAkBqW,CAAC,CAAC,YAAD,CAAD,CAAgBlY,GAAhB,EAAlB;AACAkY,KAAC,CAAC,iBAAD,CAAD,CAAqBrW,KAArB,CAA2BqW,CAAC,CAAC,YAAD,CAAD,CAAgBlY,GAAhB,EAA3B;AACAoZ,eAAW;AACXrQ,UAAM;AACP,GALD;AAOAmP,GAAC,CAAC,kBAAD,CAAD,CAAsBnQ,KAAtB,CAA4B,YAAY;AACtCqO,mBAAe,GAAG,KAAKiD,OAAvB;AACAF,sBAAkB;AACnB,GAHD;AAKAjB,GAAC,CAAC,mBAAD,CAAD,CAAuBnQ,KAAvB,CAA6B,YAAY;AACvCuO,oBAAgB,GAAG,KAAK+C,OAAxB;AACAC,uBAAmB;AACpB,GAHD;AAKApB,GAAC,CAAC,cAAD,CAAD,CAAkBnQ,KAAlB,CAAwB,YAAY;AAClC2O,eAAW,GAAG,KAAK2C,OAAnB;AACAC,uBAAmB;AACpB,GAHD;AAKApB,GAAC,CAAC,WAAD,CAAD,CAAenQ,KAAf,CAAqB,YAAY;AAC/B0O,YAAQ,GAAG,KAAK4C,OAAhB;AACAnB,KAAC,CAAC,WAAD,CAAD,CAAeqB,MAAf,CAAsB9C,QAAtB;AACA6C,uBAAmB;AACpB,GAJD;AAMApB,GAAC,CAAC,eAAD,CAAD,CAAmBe,MAAnB,CAA0B,YAAY;AACpCzC,gBAAY,GAAG,KAAKlZ,KAApB;AACAgc,uBAAmB;AACpB,GAHD;AAKApB,GAAC,CAAC,eAAD,CAAD,CAAmBe,MAAnB,CAA0B,YAAY;AACpC1C,gBAAY,GAAG,KAAKjZ,KAApB;AACAgc,uBAAmB;AACpB,GAHD;AAKApB,GAAC,CAAC,eAAD,CAAD,CAAmBlY,GAAnB,CAAuBwW,YAAvB;AACA0B,GAAC,CAAC,kBAAD,CAAD,CAAsBsB,IAAtB,CAA2B,SAA3B,EAAsCpD,eAAtC;AACA8B,GAAC,CAAC,mBAAD,CAAD,CAAuBsB,IAAvB,CAA4B,SAA5B,EAAuClD,gBAAvC;AACA4B,GAAC,CAAC,cAAD,CAAD,CAAkBsB,IAAlB,CAAuB,SAAvB,EAAkC9C,WAAlC;AACAwB,GAAC,CAAC,WAAD,CAAD,CAAesB,IAAf,CAAoB,SAApB,EAA+B/C,QAA/B;AACAyB,GAAC,CAAC,eAAD,CAAD,CAAmBlY,GAAnB,CAAuBuW,YAAvB,EAlF4B,CAoF5B;AACA;AACA;AACA;;AACA,WAASkD,cAAT,CAAwBC,OAAxB,EAAiC;AAC/B,QAAMC,UAAU,GAAG,gBAAnB;;AACA,QAAIA,UAAU,CAACC,IAAX,CAAgBF,OAAhB,CAAJ,EAA8B;AAC5B,yDAAiDG,kBAAkB,CACjEH,OADiE,CAAnE;AAGD,KAJD,MAIO,IAAI3E,OAAO,CAAC+E,QAAZ,EAAsB;AAC3B,2DAAmD/E,OAAO,CAAC+E,QAA3D;AACD,KAFM,MAEA,IAAI/E,OAAO,CAACgF,MAAZ,EAAoB;AACzB,2DAAmDF,kBAAkB,CACnE9E,OAAO,CAACgF,MAD2D,CAArE;AAGD;;AACD,kEAA4DF,kBAAkB,CAC5EH,OAD4E,CAA9E;AAGD;;AAED,MAAMA,OAAO,GAAGM,GAAG,CAACN,OAApB;;AACA,MAAIA,OAAJ,EAAa;AACX,QAAMO,EAAE,GAAG/B,CAAC,CAAC,OAAD,CAAD,CACRgC,IADQ,CACH,QADG,EACO,QADP,EAERA,IAFQ,CAEH,KAFG,EAEI,qBAFJ,EAGRA,IAHQ,CAGH,MAHG,EAGKT,cAAc,CAACC,OAAD,CAHnB,EAIR5H,IAJQ,CAIH,MAAM4H,OAJH,CAAX;AAKAxB,KAAC,CAAC,QAAD,CAAD,CAAYY,MAAZ,CAAmB,GAAnB,EAAwBA,MAAxB,CAA+BmB,EAA/B;AACD;;AAED/B,GAAC,CAAC,YAAD,CAAD,CAAgBlY,GAAhB,CAAoByV,SAApB;AAEA,MAAM0E,cAAc,GAAGpI,IAAI,CAAC8D,KAAL,CACrBuE,YAAY,CAACC,OAAb,CAAqBpF,YAAY,CAACG,MAAlC,CADqB,KAElB;AACHA,UAAM,EAAE,IADL;AAEHkF,SAAK,EAAE;AAFJ,GAFL;AAMAnN,OAAK,CAACiI,MAAN,GAAe+E,cAAc,CAAC/E,MAA9B;AACAjI,OAAK,CAACmN,KAAN,GAAcH,cAAc,CAACG,KAA7B;AAEApC,GAAC,CAAC,WAAD,CAAD,CAAeqB,MAAf,CAAsB9C,QAAtB;AACAyB,GAAC,CAAC,gBAAD,CAAD,CAAoB3O,IAApB;AAEA2O,GAAC,CAAC,sBAAD,CAAD,CAA0BqB,MAA1B,CAAiCvU,IAAI,CAACuV,aAAtC;AACArC,GAAC,CAAC,qBAAD,CAAD,CAAyBqB,MAAzB,CAAgC,CAACvU,IAAI,CAACuV,aAAtC;AAEApB,oBAAkB;AAElB,MAAIqB,aAAa,GAAGJ,YAAY,CAACC,OAAb,CAAqBpF,YAAY,CAACI,SAAlC,CAApB;;AACA,MAAImF,aAAa,KAAK,IAAtB,EAA4B;AAC1BA,iBAAa,GAAG,OAAhB;AACD;;AACD,MAAIA,aAAJ,EAAmB;AACjBA,iBAAa,CAACC,KAAd,CAAoB,GAApB,EAAyB1X,OAAzB,CAAiC,UAAC2X,WAAD,EAAiB;AAChDC,eAAS,CAACzC,CAAC,CAAC,eAAD,CAAD,CAAmB0C,QAAQ,CAACF,WAAD,CAAR,IAAyB,CAA5C,CAAD,EAAiD,IAAjD,CAAT;AACD,KAFD;AAGD;;AACDxC,GAAC,CAAC2C,MAAD,CAAD,CAAUC,EAAV,CAAa,UAAb,EAAyB,YAAY;AACnCD,UAAM,CAACE,QAAP,CAAgBC,MAAhB;AACD,GAFD;AAGD,CAnJD;;AAqJA,SAASC,YAAT,GAAwB;AACtBjW,MAAI,CAACyN,MAAL,GAAcA,MAAM,GAAG;AACrBnI,OAAG,EAAEA,GADgB;AAErB4Q,MAAE,EAAElW,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,EAFiB;AAGrBqE,QAAI,EAAE,EAHe;AAIrBlO,UAAM,EAAE,EAJa;AAKrBC,SAAK,EAAE,EALc;AAMrBnD,SAAK,EAAE,EANc;AAOrBqR,WAAO,EAAE;AAPY,GAAvB;AASAlE,4BAA0B,GAAG3Z,SAA7B;AACAwZ,gBAAc,GAAGxZ,SAAjB;AACAmZ,cAAY,GAAG,CAAC,CAAhB,CAZsB,CActB;;AACA3R,MAAI,CAACsW,wBAAL,GAAgC,IAAhC;AACAtW,MAAI,CAACuW,yBAAL,GAAiC,IAAjC;AACAvW,MAAI,CAACoS,QAAL,GAAgBA,QAAQ,GAAG;AACzBhK,SAAK,EAAE,EADkB;AAEzBD,SAAK,EAAE;AAFkB,GAA3B;AAIAnI,MAAI,CAACwW,oBAAL,GAA4BA,oBAA5B;AACAxW,MAAI,CAACyW,eAAL,GAAuBA,eAAvB;AACAzW,MAAI,CAACsU,mBAAL,GAA2BA,mBAA3B;AACAtU,MAAI,CAAC0W,UAAL,GAAkBA,UAAlB;AACA1W,MAAI,CAAC2W,oBAAL,GAA4BA,oBAA5B;AACA3W,MAAI,CAAC2V,SAAL,GAAiBA,SAAjB;AACA3V,MAAI,CAAC4W,cAAL,GAAsBA,cAAtB;AACA5W,MAAI,CAAC6W,sBAAL,GAA8BA,sBAA9B;AACD;;AAED,SAASC,SAAT,CAAmBC,MAAnB,EAA2BC,KAA3B,EAAkC;AAChC,MAAIA,KAAK,GAAG,CAAZ,EAAe;AACb;AACD;;AAED,SAAOD,MAAM,CAACpe,MAAP,GAAgBqe,KAAvB,EAA8B;AAC5BD,UAAM,CAACE,KAAP;AACD;AACF;;AAED,SAASC,gBAAT,GAA4B;AAC1B,MAAMrc,CAAC,GAAG2W,YAAV;;AAEA,MAAI3W,CAAC,GAAG,CAAR,EAAW;AACT;AACD;;AAEDic,WAAS,CAACrJ,MAAM,CAAC2I,IAAR,EAAcvb,CAAd,CAAT;AACAic,WAAS,CAACrJ,MAAM,CAACvF,MAAR,EAAgBrN,CAAhB,CAAT;AACAic,WAAS,CAACrJ,MAAM,CAACtF,KAAR,EAAetN,CAAf,CAAT;AACAic,WAAS,CAACrJ,MAAM,CAACzI,KAAR,EAAenK,CAAf,CAAT;AACAic,WAAS,CAACrJ,MAAM,CAAC4I,OAAR,EAAiBxb,CAAjB,CAAT;AACD;;AAED,SAASsZ,kBAAT,GAA8B;AAC5BjB,GAAC,CAAC,sBAAD,CAAD,CAA0BiE,KAA1B;;AAEA,MAAI,CAACnC,GAAG,CAACoC,WAAJ,EAAL,EAAwB;AACtBC,qBAAiB;AACjB;AACD;;AAED/R,KAAG,GAAG4N,CAAC,CAAC,YAAD,CAAD,CAAgBlY,GAAhB,EAAN;AAEAib,cAAY;AACZqB,YAAU;;AAEV,MAAIhU,GAAJ,EAAS;AACPA,OAAG,CAACiU,OAAJ;AACAC,iBAAa,CAAClU,GAAG,CAACmU,WAAL,CAAb;AACAnU,OAAG,GAAG,IAAN;AACD;;AAED,MAAI,CAAC8N,eAAL,EAAsB;AACpBsG,aAAS,CAAC,oBAAD,CAAT;AACA;AACD;;AAEDA,WAAS,CAAC,aAAapS,GAAd,CAAT,CAxB4B,CA0B5B;;AACA,MAAMqS,SAAS,GAAGzE,CAAC,CAAC0E,MAAF,CAChB,EADgB,EAEhB7G,aAFgB,EAGhB8G,cAAc,CAAC;AAAEhH,SAAK,EAAE;AAAT,GAAD,CAHE,CAAlB;;AAMA,MAAIe,kBAAkB,IAAIA,kBAAkB,CAACkG,MAA7C,EAAqD;AACnD7Z,WAAO,CAACkP,IAAR,CACE,yEADF,EAEEyE,kBAAkB,CAACkG,MAFrB;AAIA5E,KAAC,CAAC0E,MAAF,CAASD,SAAT,EAAoB/F,kBAAkB,CAACkG,MAAvC;AACAC,2BAAuB,CAACJ,SAAD,CAAvB;AACD;;AAEDrD,qBAAmB,CAAC,IAAD,CAAnB;AACArW,SAAO,CAACoF,GAAR,CAAY,sBAAZ,EAAoCsU,SAApC;AAEA3X,MAAI,CAACsD,GAAL,GAAWA,GAAG,GAAG,IAAI0R,GAAJ,CAAQ2C,SAAR,CAAjB;AAEAD,WAAS,CAAC,iDAAD,CAAT;AAEA,MAAMM,aAAa,GAAG,GAAGC,MAAH,CAAU7O,IAAV,CACpBjB,KAAK,CAACU,UADc,EAEpB,UAAC/C,KAAD;AAAA,WAAWA,KAAK,CAAC0D,IAAN,KAAe,UAA1B;AAAA,GAFoB,CAAtB;;AAIA,MAAIwO,aAAa,CAACrf,MAAlB,EAA0B;AACxB,QAAMuf,KAAK,GAAGF,aAAa,CACxBG,GADW,CACP,UAACrS,KAAD;AAAA,aAAWA,KAAK,CAAC0D,IAAjB;AAAA,KADO,EAEXyO,MAFW,CAEJ,UAACzO,IAAD,EAAO7R,KAAP,EAAcqI,IAAd;AAAA,aAAuBA,IAAI,CAACmJ,OAAL,CAAaK,IAAb,MAAuB7R,KAA9C;AAAA,KAFI,CAAd;AAGA+f,aAAS,wCAC8BQ,KAAK,CAACE,IAAN,CAAW,OAAX,CAD9B,kBAAT;AAGA,QAAMC,0BAA0B,GAAGlQ,KAAnC;AACAA,SAAK,GAAGkQ,0BAA0B,CAACC,SAA3B,CAAqC,KAArC,CAAR;AACAnQ,SAAK,CAACoQ,eAAN,CAAsB,KAAtB;AACApQ,SAAK,CAACiI,MAAN,GAAeiI,0BAA0B,CAACjI,MAA1C;AACAjI,SAAK,CAACmN,KAAN,GAAc+C,0BAA0B,CAAC/C,KAAzC;AACA+C,8BAA0B,CAACG,UAA3B,CAAsCC,YAAtC,CACEtQ,KADF,EAEEkQ,0BAFF;AAIAA,8BAA0B,CAACG,UAA3B,CAAsC1I,WAAtC,CACEuI,0BADF;AAGD;;AACDK,wBAAsB,CAACpV,GAAD,CAAtB;AACAqV,wBAAsB,CAACxQ,KAAD,CAAtB;AAEA7E,KAAG,CAACsV,UAAJ,CAAetT,GAAf;AACAhC,KAAG,CAACuV,gBAAJ,GAAuBtH,YAAvB;AACAjO,KAAG,CAACwV,WAAJ,CAAgB3Q,KAAhB;AAEA7E,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWC,cAAlB,EAAkC,YAAY;AAC5CtB,aAAS,CAAC,wBAAD,CAAT;AACA/F,gBAAY,GAAG,CAAC,CAAhB;AACAlE,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB;AAChB+T,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EADtB;AAEhBjW,UAAI,EAAE;AAFU,KAAlB;AAIAiX,oBAAgB;AACjB,GARD;AAUA5T,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWG,cAAlB,EAAkC,YAAY;AAC5CxB,aAAS,CAAC,wBAAD,CAAT;AACAF,iBAAa,CAAClU,GAAG,CAACmU,WAAL,CAAb;AACA9F,gBAAY,GAAG,CAAC,CAAhB;AACA/J,UAAM,GAAG,EAAT;AACA6F,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB;AAChB+T,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EADtB;AAEhBjW,UAAI,EAAE;AAFU,KAAlB;AAIAiX,oBAAgB;AACjB,GAVD;AAYA5T,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWI,UAAlB,EAA8B,YAAY;AACxC3B,iBAAa,CAAClU,GAAG,CAACmU,WAAL,CAAb;AACD,GAFD;AAGAnU,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWK,YAAlB,EAAgC,YAAY;AAC1C5B,iBAAa,CAAClU,GAAG,CAACmU,WAAL,CAAb;AACD,GAFD;AAIAnU,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWM,yBAAlB,EAA6C,UAAUC,SAAV,EAAqBrhB,IAArB,EAA2B;AACtEshB,cAAU;AACV9L,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB;AAChB+T,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EADtB;AAEhBjW,UAAI,EAAEhI,IAAI,CAACgN,EAAL,GAAU;AAFA,KAAlB;AAIAiS,oBAAgB;AACjB,GAPD;AASA5T,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWS,qBAAlB,EAAyC,UAAUF,SAAV,EAAqBrhB,IAArB,EAA2B,CAClE;AACD,GAFD;AAIAqL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWU,eAAlB,EAAmC,UAAUH,SAAV,EAAqBrhB,IAArB,EAA2B;AAC5DwV,UAAM,CAACzI,KAAP,CAAaE,IAAb,CAAkB;AAChB+T,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EADtB;AAEhBjR,QAAE,EAAEhN,IAAI,CAAC+M,KAFO;AAGhBqR,aAAO,EAAElc,IAAI,CAACiZ,KAAL,CAAW9P,GAAG,CAACoB,MAAJ,CAAWzM,IAAI,CAAC+M,KAAhB,EAAuBqR,OAAvB,GAAiC,IAA5C;AAHO,KAAlB;AAKAa,oBAAgB;AAChBT,mBAAe;AAChB,GARD;AAUAnT,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWW,eAAlB,EAAmC,UAAUJ,SAAV,EAAqBrhB,IAArB,EAA2B;AAC5DwV,UAAM,CAAC2I,IAAP,CAAYlR,IAAZ,CAAiB;AACfjF,UAAI,EAAE,UADS;AAEfqJ,UAAI,EAAE,EAFS;AAGf/Q,WAAK,EAAE,CAHQ;AAIfK,SAAG,EAAEX,IAAI,CAACyM,MAAL,CAAY/L,MAJF;AAKfsgB,UAAI,EAAEhhB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAAnB,GAA2BkV,MAAM,CAACyI,EALzB;AAMf0D,aAAO,EAAE3hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAAnB,GAA2B5hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KANxC;AAOf6d,UAAI,EAAEne,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAPnC;AAQfvb,cAAQ,EAAErG,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE;AARvC,KAAjB;AAUA3C,oBAAgB;AAChBlX,QAAI,CAAC8Z,aAAL;AACD,GAbD;AAeAxW,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWW,eAAlB,EAAmC,UAAUJ,SAAV,EAAqBrhB,IAArB,EAA2B;AAC5Dyf,aAAS,CAAIpU,GAAG,CAACoB,MAAJ,CAAW/L,MAAf,2BAAT;AACA+e,aAAS,CAAC,8BAAD,CAAT;AACAvc,SAAK,GAAG;AACN4e,aAAO,EAAE9hB,IAAI,CAACyM,MAAL,CAAY/L,MADf;AAENqhB,iBAAW,EAAE;AAFP,KAAR;AAIA9C,oBAAgB;AAChBT,mBAAe;AAChB,GATD;AAWAnT,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWkB,oBAAlB,EAAwC,UAAUX,SAAV,EAAqBrhB,IAArB,EAA2B;AACjEyf,aAAS,CAAC,+BAA+Bzf,IAAI,CAAC2N,WAAL,CAAiBjN,MAAjD,CAAT;AACAuhB,wBAAoB;AACrB,GAHD;AAKA5W,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWoB,qBAAlB,EAAyC,UAAUb,SAAV,EAAqBrhB,IAArB,EAA2B;AAClEyf,aAAS,CAAC,0BAAD,CAAT;AACAwC,wBAAoB;AACpBzM,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB;AAChB+T,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EADtB;AAEhBjW,UAAI,EAAE,iBAFU;AAGhBqJ,UAAI,EAAE,MAAMrR,IAAI,CAACgN;AAHD,KAAlB;AAKAiS,oBAAgB;AAChB/E,8BAA0B,GAAG1E,MAAM,CAACtF,KAAP,CAAaxP,MAAb,GAAsB,CAAnD;AACD,GAVD;AAYA2K,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWqB,oBAAlB,EAAwC,UAAUd,SAAV,EAAqBrhB,IAArB,EAA2B;AACjEyf,aAAS,CAAC,sBAAD,CAAT;AACAwC,wBAAoB;AACpB,QAAM1Z,KAAK,GAAG;AACZyY,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EAD1B;AAEZjW,UAAI,EAAE,gBAFM;AAGZqJ,UAAI,EAAE,MAAMrR,IAAI,CAACgN;AAHL,KAAd;;AAKA,QAAIkN,0BAA0B,KAAK3Z,SAAnC,EAA8C;AAC5CiV,YAAM,CAACtF,KAAP,CAAagK,0BAAb,EAAyC7T,QAAzC,GACEkC,KAAK,CAACyY,IAAN,GAAaxL,MAAM,CAACtF,KAAP,CAAagK,0BAAb,EAAyC8G,IADxD;AAEA9G,gCAA0B,GAAG3Z,SAA7B;AACD;;AACDiV,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB1E,KAAlB;AACA0W,oBAAgB;AACjB,GAfD;AAiBA5T,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWsB,YAAlB,EAAgC,UAAUf,SAAV,EAAqBrhB,IAArB,EAA2B;AACzDwV,UAAM,CAAC6M,MAAP,GAAgBriB,IAAI,CAACwN,OAAL,CAAa8U,IAA7B;AACA,QAAM/Z,KAAK,GAAG;AACZP,UAAI,EAAE,OADM;AAEZgF,QAAE,EAAEhN,IAAI,CAAC+M,KAFG;AAGZzM,WAAK,EAAEN,IAAI,CAACwN,OAAL,CAAa+U,OAHR;AAIZ5hB,SAAG,EAAEX,IAAI,CAACwN,OAAL,CAAagV,KAJN;AAKZxB,UAAI,EAAEhhB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAAnB,GAA2BkV,MAAM,CAACyI,EAL5B;AAMZ0D,aAAO,EAAE3hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAAnB,GAA2B5hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAN3C;AAOZ6d,UAAI,EAAEne,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAPtC;AAQZa,aAAO,EAAEziB,IAAI,CAACkD,KAAL,CAAWuf,OAAX,CAAmB9hB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GARzC;AASZ0F,cAAQ,EAAErG,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE;AAT1C,KAAd;AAYA,QAAMc,eAAe,GAAG1iB,IAAI,CAACkD,KAAL,CAAWuf,OAAX,CAAmB9hB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAApE;;AACA,QAAIuC,KAAK,CAAC6e,WAAV,EAAuB;AACrB,WAAKY,iBAAL,IAA0BD,eAA1B;AACD,KAFD,MAEO;AACL,WAAKC,iBAAL,GAAyBD,eAAzB;AACD;;AAEDxf,SAAK,CAAC6e,WAAN;AACA7e,SAAK,CAAC0f,cAAN,GAAuB1gB,IAAI,CAACiZ,KAAL,CACpB,OAAO,KAAKwH,iBAAb,GAAkCzf,KAAK,CAAC6e,WADnB,CAAvB,CAtByD,CA0BzD;;AAEAvM,UAAM,CAAC2I,IAAP,CAAYlR,IAAZ,CAAiB1E,KAAjB;AACA0W,oBAAgB;AAChBlX,QAAI,CAAC8Z,aAAL;AACD,GA/BD;AAiCAxW,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW+B,kBAAlB,EAAsC,UAAUxB,SAAV,EAAqBrhB,IAArB,EAA2B;AAC/DwV,UAAM,CAAC6M,MAAP,GAAgBriB,IAAI,CAACwN,OAAL,CAAa8U,IAA7B;AACA,QAAM/Z,KAAK,GAAG;AACZP,UAAI,EAAE,aADM;AAEZgF,QAAE,EAAEhN,IAAI,CAACgN,EAFG;AAGZ1M,WAAK,EAAEN,IAAI,CAACwN,OAAL,CAAa+U,OAHR;AAIZ5hB,SAAG,EAAEX,IAAI,CAACwN,OAAL,CAAagV,KAJN;AAKZxB,UAAI,EAAEhhB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAAnB,GAA2BkV,MAAM,CAACyI,EAL5B;AAMZ0D,aAAO,EAAE3hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAAnB,GAA2B5hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAN3C;AAOZ6d,UAAI,EAAEne,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAPtC;AAQZa,aAAO,EAAEziB,IAAI,CAACkD,KAAL,CAAWuf,OAAX,CAAmB9hB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GARzC;AASZ0F,cAAQ,EAAErG,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE;AAT1C,KAAd;AAWApM,UAAM,CAAC2I,IAAP,CAAYlR,IAAZ,CAAiB1E,KAAjB;AACA0W,oBAAgB;AAChBlX,QAAI,CAAC8Z,aAAL;AACD,GAhBD;AAkBAxW,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWgC,aAAlB,EAAiC,UAAUzB,SAAV,EAAqBrhB,IAArB,EAA2B;AAC1D,QAAMuI,KAAK,GAAG;AACZP,UAAI,EAAEhI,IAAI,CAACsP,IAAL,CAAUtH,IAAV,IAAkBhI,IAAI,CAAC+O,IAAL,GAAY,OAAZ,GAAsB,WAAxC,CADM;AAEZ/B,QAAE,EAAEhN,IAAI,CAACsP,IAAL,CAAUvC,KAFF;AAGZgW,SAAG,EAAE/iB,IAAI,CAACsP,IAAL,CAAUvK,EAHH;AAIZie,SAAG,EAAEhjB,IAAI,CAAC+O,IAAL,GAAY/O,IAAI,CAAC+O,IAAL,CAAUrP,KAAtB,GAA8Ba,SAJvB;AAKZygB,UAAI,EAAEhhB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAAnB,GAA2BkV,MAAM,CAACyI,EAL5B;AAMZ0D,aAAO,EAAE3hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAAnB,GAA2B5hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAN3C;AAOZ6d,UAAI,EAAEne,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAPtC;AAQZa,aAAO,EAAEziB,IAAI,CAACkD,KAAL,CAAWuf,OAAX,CAAmB9hB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GARzC;AASZsP,YAAM,EAAEjQ,IAAI,CAACkD,KAAL,CAAW+f,SAAX,CAAqBtiB,GAArB,GAA2BX,IAAI,CAACkD,KAAL,CAAWuf,OAAX,CAAmB9hB,GAT1C;AAUZ0F,cAAQ,EAAErG,IAAI,CAACkD,KAAL,CAAW+f,SAAX,CAAqBtiB,GAArB,GAA2BX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAV5C;AAWZsB,QAAE,EAAEhhB,IAAI,CAACiZ,KAAL,CACD,IAAInb,IAAI,CAACkD,KAAL,CAAWoB,KAAhB,IACGtE,IAAI,CAACkD,KAAL,CAAW+f,SAAX,CAAqBtiB,GAArB,GAA2BX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KADjD,CADE,CAXQ;AAeZS,UAAI,EAAEf,IAAI,CAACkD,KAAL,CAAWoB;AAfL,KAAd;AAiBAkR,UAAM,CAAC2I,IAAP,CAAYlR,IAAZ,CAAiB1E,KAAjB;AACAiN,UAAM,CAAC4I,OAAP,CAAenR,IAAf,CAAoB;AAClB+T,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EADpB;AAElBG,aAAO,EAAE7V,KAAK,CAAC2a,EAFG;AAGlB7c,cAAQ,EAAErG,IAAI,CAACsP,IAAL,CAAUjJ,QAHF;AAIlB0G,WAAK,EAAExE,KAAK,CAACyE;AAJK,KAApB;;AAMA,QAAIwI,MAAM,CAACvF,MAAP,CAAcvP,MAAd,KAAyB,CAA7B,EAAgC;AAC9B8U,YAAM,CAACvF,MAAP,CAAchD,IAAd,CAAmB;AACjB+T,YAAI,EAAE,CADW;AAEjB/Q,cAAM,EAAE,CAFS;AAGjBvH,WAAG,EAAE;AAHY,OAAnB;AAKD;;AACD6W,iBAAa,CAAClU,GAAG,CAACmU,WAAL,CAAb;AACAnU,OAAG,CAACmU,WAAJ,GAAkBzX,IAAI,CAACob,WAAL,CAAiBhH,WAAjB,EAA8B,GAA9B,CAAlB;AACA8C,oBAAgB;AAChBlX,QAAI,CAAC8Z,aAAL;AACArD,mBAAe;AAEf,QAAMmD,OAAO,GAAG3hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KAAnB,GAA2B5hB,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAA9D;AACA,QAAMmiB,OAAO,GAAGziB,IAAI,CAACkD,KAAL,CAAWuf,OAAX,CAAmB9hB,GAAnB,GAAyBX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmB/gB,GAA5D;AACA,QAAMyiB,OAAO,GAAGpjB,IAAI,CAACkD,KAAL,CAAW+f,SAAX,CAAqBtiB,GAArB,GAA2BX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBphB,KAA9D;AACA,QAAM8d,OAAO,GAAGlc,IAAI,CAACiZ,KAAL,CACb,IAAInb,IAAI,CAACkD,KAAL,CAAWoB,KAAhB,IACGtE,IAAI,CAACkD,KAAL,CAAW+f,SAAX,CAAqBtiB,GAArB,GAA2BX,IAAI,CAACkD,KAAL,CAAWwe,OAAX,CAAmBE,KADjD,CADc,CAAhB;;AAKA,QAAI1e,KAAK,CAACmgB,YAAV,EAAwB;AACtBngB,WAAK,CAACogB,cAAN,GAAuBphB,IAAI,CAACzB,GAAL,CAASyC,KAAK,CAACogB,cAAf,EAA+B3B,OAA/B,CAAvB;AACAze,WAAK,CAACqgB,cAAN,GAAuBrhB,IAAI,CAAC1B,GAAL,CAAS0C,KAAK,CAACqgB,cAAf,EAA+B5B,OAA/B,CAAvB;AACAze,WAAK,CAACsgB,cAAN,GAAuBthB,IAAI,CAACzB,GAAL,CAASyC,KAAK,CAACsgB,cAAf,EAA+BJ,OAA/B,CAAvB;AACAlgB,WAAK,CAACugB,cAAN,GAAuBvhB,IAAI,CAAC1B,GAAL,CAAS0C,KAAK,CAACugB,cAAf,EAA+BL,OAA/B,CAAvB;AACAlgB,WAAK,CAACwgB,WAAN,GAAoBxhB,IAAI,CAACzB,GAAL,CAASyC,KAAK,CAACwgB,WAAf,EAA4BtF,OAA5B,CAApB;AACAlb,WAAK,CAACygB,WAAN,GAAoBzhB,IAAI,CAAC1B,GAAL,CAAS0C,KAAK,CAACygB,WAAf,EAA4BvF,OAA5B,CAApB;AACAlb,WAAK,CAAC0gB,mBAAN,GAA4B1hB,IAAI,CAACzB,GAAL,CAC1ByC,KAAK,CAAC0gB,mBADoB,EAE1BvY,GAAG,CAACuV,gBAFsB,CAA5B;AAIA1d,WAAK,CAAC2gB,mBAAN,GAA4B3hB,IAAI,CAAC1B,GAAL,CAC1B0C,KAAK,CAAC2gB,mBADoB,EAE1BxY,GAAG,CAACuV,gBAFsB,CAA5B;AAIA1d,WAAK,CAACmgB,YAAN;AACD,KAhBD,MAgBO;AACLngB,WAAK,CAACogB,cAAN,GAAuBpgB,KAAK,CAACqgB,cAAN,GAAuB5B,OAA9C;AACAze,WAAK,CAACsgB,cAAN,GAAuBtgB,KAAK,CAACugB,cAAN,GAAuBL,OAA9C;AACAlgB,WAAK,CAACwgB,WAAN,GAAoBxgB,KAAK,CAACygB,WAAN,GAAoBvF,OAAxC;AACAlb,WAAK,CAACmgB,YAAN,GAAqB,CAArB;AACAngB,WAAK,CAAC4gB,iBAAN,GAA0B,CAA1B;AACA5gB,WAAK,CAAC0gB,mBAAN,GAA4B1gB,KAAK,CAAC2gB,mBAAN,GAC1BxY,GAAG,CAACuV,gBADN;AAEA,WAAKmD,UAAL,GAAkB,CAAlB;AACA,WAAKC,OAAL,GAAe,CAAf;AACA,WAAKC,UAAL,GAAkB,CAAlB;AACA,WAAKC,UAAL,GAAkB,CAAlB;AACD;;AACDhhB,SAAK,CAACihB,eAAN,GAAwBxC,OAAxB;AACA,SAAKoC,UAAL,IAAmBpC,OAAnB;AACAze,SAAK,CAACkhB,cAAN,GAAuBliB,IAAI,CAACiZ,KAAL,CAAW,KAAK4I,UAAL,GAAkB7gB,KAAK,CAACmgB,YAAnC,CAAvB;AACAngB,SAAK,CAACmhB,eAAN,GAAwBjB,OAAxB;AACA,SAAKa,UAAL,IAAmBb,OAAnB;AACA,SAAKc,UAAL,IAAmBzB,OAAnB;AACAvf,SAAK,CAACohB,cAAN,GAAuBpiB,IAAI,CAACiZ,KAAL,CAAW,KAAK8I,UAAL,GAAkB/gB,KAAK,CAACmgB,YAAnC,CAAvB;AACAngB,SAAK,CAACqhB,YAAN,GAAqBnG,OAArB;AACA,SAAK4F,OAAL,IAAgB5F,OAAhB;AACAlb,SAAK,CAACshB,WAAN,GAAoBtiB,IAAI,CAACiZ,KAAL,CAAW,KAAK6I,OAAL,GAAe9gB,KAAK,CAACmgB,YAAhC,CAApB;AACAngB,SAAK,CAAC4gB,iBAAN,IAA2B9jB,IAAI,CAACkD,KAAL,CAAWoB,KAAtC;AACApB,SAAK,CAACuhB,eAAN,GAAwBviB,IAAI,CAACiZ,KAAL,CACrB,IAAIjY,KAAK,CAAC4gB,iBAAX,GAAgC,KAAKI,UADf,CAAxB;AAGAhhB,SAAK,CAACwhB,aAAN,GAAsBxiB,IAAI,CAACiZ,KAAL,CAAW,KAAK+I,UAAhB,CAAtB;AACAhhB,SAAK,CAACyhB,oBAAN,GAA6BtZ,GAAG,CAACuV,gBAAjC;AACD,GA3FD;AA6FAvV,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW8D,cAAlB,EAAkC,UAAUvD,SAAV,EAAqBrhB,IAArB,EAA2B;AAC3D,QAAMuI,KAAK,GAAG;AACZyY,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EAD1B;AAEZjW,UAAI,EAAE,gBAFM;AAGZqJ,UAAI,EAAErR,IAAI,CAAC+M;AAHC,KAAd;AAKAyI,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB1E,KAAlB;AACA0W,oBAAgB;AAChBlX,QAAI,CAAC8Z,aAAL;AACArD,mBAAe;AAChB,GAVD;AAYAnT,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW+D,YAAlB,EAAgC,UAAUxD,SAAV,EAAqBrhB,IAArB,EAA2B;AACzD,QAAMuI,KAAK,GAAG;AACZyY,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EAD1B;AAEZjW,UAAI,EAAE,cAFM;AAGZqJ,UAAI,EAAErR,IAAI,CAACsP,IAAL,CAAUvK,EAAV,GAAe,KAAf,GAAuB/E,IAAI,CAACsP,IAAL,CAAUvC;AAH3B,KAAd;AAKAyI,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB1E,KAAlB;AACA0W,oBAAgB;AAChBlX,QAAI,CAAC8Z,aAAL;AACArD,mBAAe;AACftb,SAAK,CAAC4hB,OAAN,GAAgB9kB,IAAI,CAACsP,IAAL,CAAUwV,OAA1B;AAEA,QAAM/X,KAAK,GAAG/M,IAAI,CAACsP,IAAL,CAAUvC,KAAxB;AACA,QAAMgY,SAAS,GAAG1Z,GAAG,CAAC2Z,gBAAtB;;AACA,QAAI9hB,KAAK,CAAC+hB,UAAN,KAAqB1kB,SAAzB,EAAoC;AAClC2C,WAAK,CAAC+hB,UAAN,GAAmBlY,KAAnB;AACD;;AAED7J,SAAK,CAACgiB,mBAAN,GAA4BllB,IAAI,CAACsP,IAAL,CAAU6V,eAAtC;AACAjiB,SAAK,CAACkiB,SAAN,GAAkBplB,IAAI,CAACsP,IAAL,CAAUhP,KAA5B;;AAEA,QAAIykB,SAAJ,EAAe;AACb,UAAI7hB,KAAK,CAACmiB,eAAV,EAA2B;AACzBniB,aAAK,CAACoiB,YAAN,GAAqBpjB,IAAI,CAACzB,GAAL,CAASyC,KAAK,CAACoiB,YAAf,EAA6BvY,KAA7B,CAArB;AACA7J,aAAK,CAACqiB,YAAN,GAAqBrjB,IAAI,CAAC1B,GAAL,CAAS0C,KAAK,CAACqiB,YAAf,EAA6BxY,KAA7B,CAArB;AACA7J,aAAK,CAACmiB,eAAN;;AACA,YAAI,KAAKG,aAAL,IAAsBzY,KAAK,KAAK7J,KAAK,CAACuiB,aAA1C,EAAyD;AACvDviB,eAAK,CAACwiB,eAAN;AACD;AACF,OAPD,MAOO;AACLxiB,aAAK,CAACoiB,YAAN,GAAqBpiB,KAAK,CAACqiB,YAAN,GAAqBxY,KAA1C;AACA7J,aAAK,CAACwiB,eAAN,GAAwB,CAAxB;AACAxiB,aAAK,CAACmiB,eAAN,GAAwB,CAAxB;AACA,aAAKM,YAAL,GAAoB,CAApB;AACD;;AACD,WAAKA,YAAL,IAAqB5Y,KAArB;AACA7J,WAAK,CAAC0iB,YAAN,GACE1jB,IAAI,CAACiZ,KAAL,CAAY,OAAO,KAAKwK,YAAb,GAA6BziB,KAAK,CAACmiB,eAA9C,IAAiE,IADnE;AAEAniB,WAAK,CAACuiB,aAAN,GAAsB1Y,KAAtB;AACD,KAlBD,MAkBO;AACL,UAAI7J,KAAK,CAAC2iB,iBAAV,EAA6B;AAC3B3iB,aAAK,CAAC4iB,cAAN,GAAuB5jB,IAAI,CAACzB,GAAL,CAASyC,KAAK,CAAC4iB,cAAf,EAA+B/Y,KAA/B,CAAvB;AACA7J,aAAK,CAAC6iB,cAAN,GAAuB7jB,IAAI,CAAC1B,GAAL,CAAS0C,KAAK,CAAC6iB,cAAf,EAA+BhZ,KAA/B,CAAvB;AACA7J,aAAK,CAAC2iB,iBAAN;;AACA,YAAI,CAAC,KAAKL,aAAN,IAAuBzY,KAAK,KAAK7J,KAAK,CAAC8iB,eAA3C,EAA4D;AAC1D9iB,eAAK,CAAC+iB,iBAAN;AACD;AACF,OAPD,MAOO;AACL/iB,aAAK,CAAC4iB,cAAN,GAAuB5iB,KAAK,CAAC6iB,cAAN,GAAuBhZ,KAA9C;AACA7J,aAAK,CAAC+iB,iBAAN,GAA0B,CAA1B;AACA/iB,aAAK,CAAC2iB,iBAAN,GAA0B,CAA1B;AACD;;AACD3iB,WAAK,CAAC8iB,eAAN,GAAwBjZ,KAAxB;AACD;;AACD,SAAKyY,aAAL,GAAqBT,SAArB;AACD,GAvDD;AAyDA1Z,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWoF,2BAAlB,EAA+C,UAAU7E,SAAV,EAAqBrhB,IAArB,EAA2B;AACxE,QAAIkD,KAAJ,EAAW;AACT,UAAIA,KAAK,CAACijB,wBAAN,KAAmC5lB,SAAvC,EAAkD;AAChD2C,aAAK,CAACijB,wBAAN,GAAiC,CAAjC;AACD,OAFD,MAEO;AACLjjB,aAAK,CAACijB,wBAAN;AACD;AACF;AACF,GARD;AAUA9a,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWsF,cAAlB,EAAkC,UAAU/E,SAAV,EAAqBrhB,IAArB,EAA2B;AAC3D,QAAI,CAACkD,KAAK,CAACmjB,aAAX,EAA0B;AACxBnjB,WAAK,CAACmjB,aAAN,GAAsB,CAAtB;AACA,WAAKC,gBAAL,GAAwB,CAAxB;AACApjB,WAAK,CAACqjB,kBAAN,GAA2B,CAA3B;AACD;;AACDrjB,SAAK,CAACmjB,aAAN;AACA,SAAKC,gBAAL,IAAyBtmB,IAAI,CAACkD,KAAL,CAAWsjB,QAAX,GAAsBxmB,IAAI,CAACkD,KAAL,CAAWujB,MAA1D;AACAvjB,SAAK,CAACqjB,kBAAN,GAA2B,KAAKD,gBAAL,GAAwBpjB,KAAK,CAACmjB,aAAzD;AACD,GATD;AAWAhb,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW4F,KAAlB,EAAyB,UAAUrF,SAAV,EAAqBrhB,IAArB,EAA2B;AAClDgG,WAAO,CAACC,IAAR,CAAa,cAAb,EAA6BjG,IAA7B;;AACA,YAAQA,IAAI,CAACwN,OAAb;AACE,WAAKuP,GAAG,CAAC4J,YAAJ,CAAiBC,mBAAtB;AACE,YAAI;AACF3L,WAAC,CAAC,WAAD,CAAD,CAAeC,IAAf,CACE,0BACElb,IAAI,CAAC6mB,OAAL,CAAaxZ,GADf,GAEE,IAFF,GAGEA,GAHF,GAIE,6BAJF,GAKErN,IAAI,CAAC8mB,QAAL,CAAcC,IALhB,GAME,OANF,GAOE/mB,IAAI,CAAC8mB,QAAL,CAAcjS,IARlB;;AAUA,cAAI7U,IAAI,CAAC8mB,QAAL,CAAcC,IAAd,KAAuB,CAA3B,EAA8B;AAC5B9L,aAAC,CAAC,WAAD,CAAD,CAAeY,MAAf,CACE,gNADF;AAGD;AACF,SAhBD,CAgBE,OAAOjE,GAAP,EAAY;AACZqD,WAAC,CAAC,WAAD,CAAD,CAAeC,IAAf,CACE,0BACElb,IAAI,CAAC6mB,OAAL,CAAaxZ,GADf,GAEE,IAFF,GAGEA,GAHF,GAIE,yBAJF,GAKErN,IAAI,CAAC8mB,QAAL,CAAcjS,IANlB;AAQD;;AACD;;AACF,WAAKkI,GAAG,CAAC4J,YAAJ,CAAiBK,qBAAtB;AACEC,gBAAQ,CAAC,gCAAD,CAAR;AACA;;AACF,WAAKlK,GAAG,CAAC4J,YAAJ,CAAiBO,sBAAtB;AACED,gBAAQ,CAAC,kCAAkCjnB,IAAI,CAACmnB,MAAxC,CAAR;AACA;;AACF,WAAKpK,GAAG,CAAC4J,YAAJ,CAAiBS,iBAAtB;AACEH,gBAAQ,CACN,wCAAwCjnB,IAAI,CAAC+M,KAA7C,GAAqD,GAArD,GAA2D/M,IAAI,CAACqN,GAD1D,CAAR,CADF,CAIE;AACA;;AACA;;AACF,WAAK0P,GAAG,CAAC4J,YAAJ,CAAiBU,gBAAtB;AACEJ,gBAAQ,CACN,wCACEjnB,IAAI,CAAC6mB,OAAL,CAAa9Z,KADf,GAEE,GAFF,GAGE/M,IAAI,CAACqN,GAJD,CAAR,CADF,CAOE;AACA;;AACA;;AACF,WAAK0P,GAAG,CAAC4J,YAAJ,CAAiBW,kBAAtB;AACEL,gBAAQ,CACN,0CACEjnB,IAAI,CAAC6mB,OAAL,CAAa9Z,KADf,GAEE,GAFF,GAGE/M,IAAI,CAACqN,GAJD,CAAR,CADF,CAOE;AACA;;AACA;;AACF,WAAK0P,GAAG,CAAC4J,YAAJ,CAAiBY,kBAAtB;AACEN,gBAAQ,CAAC,2CAA2CjnB,IAAI,CAAC+M,KAAjD,CAAR;AACA;;AACF,WAAKgQ,GAAG,CAAC4J,YAAJ,CAAiBa,eAAtB;AACEP,gBAAQ,CAAC,kCAAkCjnB,IAAI,CAACsP,IAAL,CAAUjC,GAA7C,CAAR;AACA;;AACF,WAAK0P,GAAG,CAAC4J,YAAJ,CAAiBc,iBAAtB;AACER,gBAAQ,CAAC,oCAAoCjnB,IAAI,CAACsP,IAAL,CAAUjC,GAA/C,CAAR;AACA;;AACF,WAAK0P,GAAG,CAAC4J,YAAJ,CAAiBe,uBAAtB;AACET,gBAAQ,CAAC,6BAAD,CAAR;AACA;;AACF,WAAKlK,GAAG,CAAC4J,YAAJ,CAAiBgB,kBAAtB;AACEV,gBAAQ,CAAC,sBAAsBjnB,IAAI,CAACmnB,MAA5B,CAAR;AACA;;AACF,WAAKpK,GAAG,CAAC4J,YAAJ,CAAiBiB,kBAAtB;AACEX,gBAAQ,CAAC,mBAAmBjnB,IAAI,CAACmnB,MAAzB,CAAR;AACA;;AACF,WAAKpK,GAAG,CAAC4J,YAAJ,CAAiBkB,cAAtB;AACEZ,gBAAQ,CAAC,6BAA6BjnB,IAAI,CAACsP,IAAL,CAAUwY,WAAV,CAAsBC,GAApD,CAAR;AACA;;AACF,WAAKhL,GAAG,CAAC4J,YAAJ,CAAiBqB,gBAAtB;AACEf,gBAAQ,CAAC,+BAA+BjnB,IAAI,CAACsP,IAAL,CAAUwY,WAAV,CAAsBC,GAAtD,CAAR;AACA;;AACF,WAAKhL,GAAG,CAAC4J,YAAJ,CAAiBsB,mBAAtB;AACEhB,gBAAQ,CAAC,qBAAD,CAAR;AACA;;AACF,WAAKlK,GAAG,CAAC4J,YAAJ,CAAiBuB,sBAAtB;AACEjB,gBAAQ,CACN,gCACEjnB,IAAI,CAACmoB,QADP,GAEE,GAFF,GAGEnoB,IAAI,CAACyQ,KAAL,CAAW2X,OAJP,CAAR;AAMA;;AACF,WAAKrL,GAAG,CAAC4J,YAAJ,CAAiB0B,sBAAtB;AACEpB,gBAAQ,CAAC,wBAAD,CAAR;AACA;;AACF,WAAKlK,GAAG,CAAC4J,YAAJ,CAAiB2B,oBAAtB;AACErB,gBAAQ,CAAC,sBAAD,CAAR;;AACA,YAAIxN,WAAJ,EAAiB;AACfpO,aAAG,CAACkd,QAAJ;AACArY,eAAK,CAACsY,KAAN;AACD;;AACD;;AACF;AACE;AA5GJ;;AA+GA,QAAIxoB,IAAI,CAACyoB,KAAT,EAAgB;AACdziB,aAAO,CAACyK,KAAR,oBAA+BzQ,IAAI,CAACwN,OAApC;;AACA,cAAQxN,IAAI,CAACgI,IAAb;AACE,aAAK+U,GAAG,CAAC2L,UAAJ,CAAeC,WAApB;AACE1B,kBAAQ,8BAA4BjnB,IAAI,CAACwN,OAAjC,CAAR;AACAob,0BAAgB;AAChB;;AACF,aAAK7L,GAAG,CAAC2L,UAAJ,CAAeG,aAApB;AACE5B,kBAAQ,gCAA8BjnB,IAAI,CAACwN,OAAnC,CAAR;AACA;;AACF;AACEyZ,kBAAQ,uCAAqCjnB,IAAI,CAACwN,OAA1C,CAAR;AACAnC,aAAG,CAACiU,OAAJ;AACA;AAXJ;AAaD;;AACD,QAAI,CAACpc,KAAL,EAAY;AACVA,WAAK,GAAG,EAAR;AACD,KAnIiD,CAqIlD;;;AACA,QAAIA,KAAK,CAAClD,IAAI,CAACwN,OAAN,CAAL,KAAwBjN,SAA5B,EAAuC;AACrC2C,WAAK,CAAClD,IAAI,CAACwN,OAAN,CAAL,GAAsB,CAAtB;AACD,KAFD,MAEO;AACLtK,WAAK,CAAClD,IAAI,CAACwN,OAAN,CAAL,IAAuB,CAAvB;AACD,KA1IiD,CA4IlD;;;AACA,QAAIxN,IAAI,CAACyoB,KAAT,EAAgB;AACd,UAAIvlB,KAAK,CAAC4lB,UAAN,KAAqBvoB,SAAzB,EAAoC;AAClC2C,aAAK,CAAC4lB,UAAN,GAAmB,CAAnB;AACD,OAFD,MAEO;AACL5lB,aAAK,CAAC4lB,UAAN,IAAoB,CAApB;AACD;AACF;;AACD7N,KAAC,CAAC,gBAAD,CAAD,CAAoBpG,IAApB,CAAyBC,IAAI,CAACC,SAAL,CAAeiC,8DAAU,CAAC9T,KAAD,CAAzB,EAAkC,IAAlC,EAAwC,IAAxC,CAAzB;AACD,GArJD;AAuJAmI,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWiI,cAAlB,EAAkC,UAAU1H,SAAV,EAAqBrhB,IAArB,EAA2B;AAC3D2P,UAAM,GAAG3P,IAAI,CAAC2P,MAAd;AACD,GAFD;AAIAtE,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWkI,gBAAlB,EAAoC,UAAU3H,SAAV,EAAqBrhB,IAArB,EAA2B;AAC7D,QAAIwZ,QAAJ,EAAc;AACZW,cAAQ,CAACna,IAAI,CAACgI,IAAN,CAAR,CAAoBiF,IAApB,CAAyBjN,IAAI,CAACA,IAA9B;AACD;AACF,GAJD;AAMAqL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWmI,QAAlB,EAA4B,UAAU5H,SAAV,EAAqBrhB,IAArB,EAA2B;AACrD,QAAMuI,KAAK,GAAG;AACZyY,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EAD1B;AAEZjW,UAAI,EAAE,YAFM;AAGZqJ,UAAI,EAAErR,IAAI,CAACkpB,cAAL,GAAsB,GAAtB,GAA4BlpB,IAAI,CAACmpB;AAH3B,KAAd;AAKA3T,UAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB1E,KAAlB;AACA0W,oBAAgB;;AAChB,QAAI/b,KAAJ,EAAW;AACT,UAAIA,KAAK,CAACkmB,YAAN,KAAuB7oB,SAA3B,EAAsC;AACpC2C,aAAK,CAACkmB,YAAN,GAAqB,CAArB;AACD,OAFD,MAEO;AACLlmB,aAAK,CAACkmB,YAAN;AACD;;AAEDlmB,WAAK,CAACmmB,qBAAN,GAA8BrpB,IAAI,CAACspB,kBAAnC;AACD;AACF,GAjBD;AAkBD;;AAED,SAAS5I,sBAAT,CAAgCxQ,KAAhC,EAAuC;AACrCA,OAAK,CAACc,mBAAN,CAA0B,QAA1B,EAAoCuY,gBAApC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,SAA1B,EAAqCuY,gBAArC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,QAA1B,EAAoCuY,gBAApC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,OAA1B,EAAmCuY,gBAAnC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,MAA1B,EAAkCuY,gBAAlC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,SAA1B,EAAqCuY,gBAArC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,gBAA1B,EAA4CuY,gBAA5C;AACArZ,OAAK,CAACc,mBAAN,CAA0B,OAA1B,EAAmCuY,gBAAnC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,SAA1B,EAAqCuY,gBAArC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,OAA1B,EAAmCuY,gBAAnC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,gBAA1B,EAA4CuY,gBAA5C;AACArZ,OAAK,CAACc,mBAAN,CAA0B,YAA1B,EAAwCuY,gBAAxC;AACArZ,OAAK,CAACc,mBAAN,CAA0B,gBAA1B,EAA4CuY,gBAA5C;AACArZ,OAAK,CAACc,mBAAN,CAA0B,cAA1B,EAA0CwY,iBAA1C;AACAtZ,OAAK,CAACI,gBAAN,CAAuB,QAAvB,EAAiCiZ,gBAAjC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,SAAvB,EAAkCiZ,gBAAlC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,QAAvB,EAAiCiZ,gBAAjC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,OAAvB,EAAgCiZ,gBAAhC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,MAAvB,EAA+BiZ,gBAA/B;AACArZ,OAAK,CAACI,gBAAN,CAAuB,SAAvB,EAAkCiZ,gBAAlC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,gBAAvB,EAAyCiZ,gBAAzC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,OAAvB,EAAgCiZ,gBAAhC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,SAAvB,EAAkCiZ,gBAAlC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,OAAvB,EAAgCiZ,gBAAhC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,gBAAvB,EAAyCiZ,gBAAzC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,YAAvB,EAAqCiZ,gBAArC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,gBAAvB,EAAyCiZ,gBAAzC;AACArZ,OAAK,CAACI,gBAAN,CAAuB,cAAvB,EAAuCkZ,iBAAvC;AACD;;AAED,SAASpK,iBAAT,GAA6B;AAC3B,MAAIqK,SAAS,CAACC,SAAV,CAAoBC,WAApB,GAAkCzY,OAAlC,CAA0C,SAA1C,MAAyD,CAAC,CAA9D,EAAiE;AAC/DuO,aAAS,CACP,uQADO,CAAT;AAGD,GAJD,MAIO;AACLA,aAAS,CACP,sEADO,CAAT;AAGD;AACF;;AAED,SAAS8J,gBAAT,CAA0BK,GAA1B,EAA+B;AAC7B,MAAI5pB,IAAI,GAAG,EAAX;;AACA,UAAQ4pB,GAAG,CAAC5hB,IAAZ;AACE,SAAK,gBAAL;AACE,UAAI4hB,GAAG,CAAC9K,MAAJ,CAAWzY,QAAX,GAAsB4T,YAAtB,IAAsC,GAA1C,EAA+C;AAC7C;AACA;AACD;;AACDA,kBAAY,GAAG2P,GAAG,CAAC9K,MAAJ,CAAWzY,QAA1B;AACArG,UAAI,GAAGkC,IAAI,CAACiZ,KAAL,CAAWyO,GAAG,CAAC9K,MAAJ,CAAWzY,QAAX,GAAsB,IAAjC,CAAP;AACA;;AACF,SAAK,QAAL;AACErG,UAAI,GAAG4pB,GAAG,CAAC9K,MAAJ,CAAW1D,UAAX,GAAwB,GAAxB,GAA8BwO,GAAG,CAAC9K,MAAJ,CAAWzD,WAAhD;AACAN,kBAAY;AACZ;;AACF,SAAK,gBAAL;AACA,SAAK,YAAL;AACA,SAAK,SAAL;AACA,SAAK,gBAAL;AACA,SAAK,OAAL;AACA,SAAK,SAAL;AACA,SAAK,QAAL;AACA,SAAK,MAAL;AACA,SAAK,SAAL;AACEf,uBAAiB,GAAG4P,GAAG,CAAC9K,MAAJ,CAAWxT,WAA/B;;AACF,SAAK,OAAL;AACA,SAAK,SAAL;AACA,SAAK,SAAL;AACA,SAAK,OAAL;AACEtL,UAAI,GAAGkC,IAAI,CAACiZ,KAAL,CAAWyO,GAAG,CAAC9K,MAAJ,CAAWxT,WAAX,GAAyB,IAApC,CAAP;;AACA,UAAIse,GAAG,CAAC5hB,IAAJ,KAAa,OAAjB,EAA0B;AACxB,YAAI6hB,QAAJ;AACA,YAAMC,UAAU,GAAGF,GAAG,CAAC7Y,aAAJ,CAAkBN,KAArC;;AACA,gBAAQqZ,UAAU,CAAC/C,IAAnB;AACE,eAAK+C,UAAU,CAACC,iBAAhB;AACEF,oBAAQ,GAAG,gCAAX;AACA;;AACF,eAAKC,UAAU,CAACE,gBAAhB;AACEH,oBAAQ,GACN,4HADF;AAEAjB,4BAAgB;AAChB;;AACF,eAAKkB,UAAU,CAACG,iBAAhB;AACEJ,oBAAQ,GACN,4DADF;AAEA;;AACF,eAAKC,UAAU,CAACI,2BAAhB;AACEL,oBAAQ,GACN,mHADF;AAEA;AAhBJ;;AAmBA,YAAIC,UAAU,CAAC1B,OAAf,EAAwB;AACtByB,kBAAQ,IAAI,QAAQC,UAAU,CAAC1B,OAA/B;AACD;;AAED3I,iBAAS,CAACoK,QAAD,CAAT;AACA7jB,eAAO,CAACyK,KAAR,CAAcoZ,QAAd;AACD;;AACD;;AACF;AACE;AA3DJ;;AA8DA,MAAMthB,KAAK,GAAG;AACZyY,QAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EAD1B;AAEZjW,QAAI,EAAE4hB,GAAG,CAAC5hB,IAFE;AAGZqJ,QAAI,EAAErR;AAHM,GAAd;AAMAwV,QAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB1E,KAAlB;;AACA,MAAIqhB,GAAG,CAAC5hB,IAAJ,KAAa,SAAjB,EAA4B;AAC1B+R,kBAAc,GAAGvE,MAAM,CAACtF,KAAP,CAAaxP,MAAb,GAAsB,CAAvC;AACD;;AAED,MAAIkpB,GAAG,CAAC5hB,IAAJ,KAAa,QAAjB,EAA2B;AACzBwN,UAAM,CAACtF,KAAP,CAAa6J,cAAb,EAA6B1T,QAA7B,GACEkC,KAAK,CAACyY,IAAN,GAAaxL,MAAM,CAACtF,KAAP,CAAa6J,cAAb,EAA6BiH,IAD5C;AAED;;AAED/B,kBAAgB;AACjB;;AAED,SAASuK,iBAAT,GAA6B;AAC3BrM,cAAY,CAACgN,OAAb,CACEnS,YAAY,CAACG,MADf,EAEErD,IAAI,CAACC,SAAL,CAAe;AACbsI,SAAK,EAAEnN,KAAK,CAACmN,KADA;AAEblF,UAAM,EAAEjI,KAAK,CAACiI;AAFD,GAAf,CAFF;AAOD;;AAED,SAASiS,gBAAT,CAA0BpqB,IAA1B,EAAgC;AAC9B,MAAIqqB,QAAQ,GAAGrqB,IAAI,CAAC6mB,OAAL,IAAgB7mB,IAA/B;AACAqL,KAAG,CAACif,WAAJ,CAAgBD,QAAQ,CAACtd,KAAzB,EAAgCsd,QAAQ,CAAC/c,KAAT,IAAkB,CAAlD;;AACA,MAAI,CAACjC,GAAG,CAACoB,MAAJ,CAAW/L,MAAhB,EAAwB;AACtBumB,YAAQ,CAAC,8BAAD,CAAR;AACA5b,OAAG,CAACiU,OAAJ;AACA;AACD,GAP6B,CAQ9B;AACA;;;AACAjU,KAAG,CAACyB,YAAJ,GAAmB,CAAnB,CAV8B,CAW9B;;AACAzB,KAAG,CAACyB,YAAJ,GAAmB,CAAC,CAApB;AACD;;AAED,SAAS8b,gBAAT,GAA4B;AAC1B,MAAIvP,gBAAJ,EAAsB;AACpB,QAAMS,GAAG,GAAG/R,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,EAAZ;;AACA,QACE,CAAC/R,IAAI,CAACsW,wBAAN,IACAvE,GAAG,GAAG/R,IAAI,CAACsW,wBAAX,GAAsC,IAFxC,EAGE;AACAtW,UAAI,CAACsW,wBAAL,GAAgCtW,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,EAAhC;AACAmB,OAAC,CAAC,YAAD,CAAD,CAAgBY,MAAhB,CAAuB,kCAAvB;AACAxQ,SAAG,CAACkf,iBAAJ;AACD,KAPD,MAOO;AACL,UACE,CAACxiB,IAAI,CAACuW,yBAAN,IACAxE,GAAG,GAAG/R,IAAI,CAACuW,yBAAX,GAAuC,IAFzC,EAGE;AACAvW,YAAI,CAACuW,yBAAL,GAAiCvW,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,EAAjC;AACAmB,SAAC,CAAC,YAAD,CAAD,CAAgBY,MAAhB,CACE,uDADF;AAGAxQ,WAAG,CAACmf,cAAJ;AACAnf,WAAG,CAACkf,iBAAJ;AACD,OAVD,MAUO;AACLtP,SAAC,CAAC,YAAD,CAAD,CAAgBY,MAAhB,CACE,qDADF;AAGD;AACF;AACF;AACF;;AAED,SAAS4O,kBAAT,CAA4BC,CAA5B,EAA+B;AAC7B,MAAItf,GAAG,GAAG,EAAV;;AACA,OAAK,IAAI7I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmoB,CAAC,CAAChqB,MAAtB,EAA8B6B,CAAC,EAA/B,EAAmC;AACjC6I,OAAG,IAAI,MAAMsf,CAAC,CAACpqB,KAAF,CAAQiC,CAAR,CAAN,GAAmB,IAAnB,GAA0BmoB,CAAC,CAAC/pB,GAAF,CAAM4B,CAAN,CAA1B,GAAqC,GAA5C;AACA6I,OAAG,IAAI,GAAP;AACD;;AACD,SAAOA,GAAP;AACD;;AAED,SAAS+Q,WAAT,GAAuB;AACrB,MAAMpa,MAAM,GAAGqV,QAAQ,CAACwC,aAAT,CAAuB,iBAAvB,CAAf;AACA,MAAMhY,GAAG,GAAGG,MAAM,CAAC+F,UAAP,CAAkB,IAAlB,CAAZ;AACA,MAAM4iB,CAAC,GAAGxa,KAAK,CAACM,QAAhB;AACA,MAAMma,WAAW,GAAGC,cAAc,EAAlC;AACA,MAAIC,iBAAJ;;AACA,MAAIH,CAAJ,EAAO;AACL9oB,OAAG,CAACqC,SAAJ,GAAgB,OAAhB;;AACA,QAAI,CAAClC,MAAM,CAAC6C,KAAR,IAAiB7C,MAAM,CAAC6C,KAAP,KAAiBsL,KAAK,CAAC4a,WAA5C,EAAyD;AACvD/oB,YAAM,CAAC6C,KAAP,GAAesL,KAAK,CAAC4a,WAArB;AACD;;AACDlpB,OAAG,CAACsC,QAAJ,CAAa,CAAb,EAAgB,CAAhB,EAAmBnC,MAAM,CAAC6C,KAA1B,EAAiC7C,MAAM,CAACyB,MAAxC;AACA,QAAMkF,GAAG,GAAGwH,KAAK,CAAC5E,WAAlB;AACA,QAAIyf,SAAS,GAAG,CAAhB;AACAnpB,OAAG,CAACqC,SAAJ,GAAgB,MAAhB;;AACA,SAAK,IAAI1B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmoB,CAAC,CAAChqB,MAAtB,EAA8B6B,CAAC,EAA/B,EAAmC;AACjC,UAAMjC,KAAK,GAAIoqB,CAAC,CAACpqB,KAAF,CAAQiC,CAAR,IAAaooB,WAAd,GAA6B5oB,MAAM,CAAC6C,KAAlD;AACA,UAAMjE,GAAG,GAAI+pB,CAAC,CAAC/pB,GAAF,CAAM4B,CAAN,IAAWooB,WAAZ,GAA2B5oB,MAAM,CAAC6C,KAA9C;AACAhD,SAAG,CAACsC,QAAJ,CAAa5D,KAAb,EAAoB,CAApB,EAAuB4B,IAAI,CAAC1B,GAAL,CAAS,CAAT,EAAYG,GAAG,GAAGL,KAAlB,CAAvB,EAAiD,EAAjD;;AACA,UAAIoI,GAAG,IAAIgiB,CAAC,CAACpqB,KAAF,CAAQiC,CAAR,CAAP,IAAqBmG,GAAG,GAAGgiB,CAAC,CAAC/pB,GAAF,CAAM4B,CAAN,CAA/B,EAAyC;AACvC;AACAwoB,iBAAS,GAAGL,CAAC,CAAC/pB,GAAF,CAAM4B,CAAN,IAAWmG,GAAvB;AACD;AACF,KAjBI,CAkBL;;;AACA,QACEqiB,SAAS,IAAI,GAAb,IACA7a,KAAK,CAAC8C,MAAN,KAAiB,KADjB,IAEAtK,GAAG,GAAGsR,iBAAN,GAA0B,GAH5B,EAIE;AACA,UAAIC,YAAY,GAAGvR,GAAf,IAAsB,GAAtB,IAA6B8M,MAAM,CAAC6M,MAAP,KAAkB,KAAnD,EAA0D,CACxD;AACD,OAFD,MAEO;AACL;AACA,YAAI3I,YAAY,KAAK,CAAC,CAAtB,EAAyB;AACvBmR,2BAAiB,GACf9iB,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KACAtE,MAAM,CAACyI,EADP,GAEAzI,MAAM,CAACtF,KAAP,CAAawJ,YAAb,EAA2BsH,IAH7B;AAIAxL,gBAAM,CAACtF,KAAP,CAAawJ,YAAb,EAA2BrT,QAA3B,GAAsCwkB,iBAAtC;AACArV,gBAAM,CAACtF,KAAP,CAAawJ,YAAb,EAA2BrI,IAA3B,GAAkCwZ,iBAAlC;AACD,SAPD,MAOO;AACLrV,gBAAM,CAACtF,KAAP,CAAajD,IAAb,CAAkB;AAChBjF,gBAAI,EAAE,WADU;AAEhBgZ,gBAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI;AAFtB,WAAlB;AAIAgB,0BAAgB,GALX,CAML;;AACAvF,sBAAY,GAAGlE,MAAM,CAACtF,KAAP,CAAaxP,MAAb,GAAsB,CAArC;AACD;AACF;AACF;;AAED,QAAIqqB,SAAS,GAAG,GAAZ,IAAmBrR,YAAY,KAAK,CAAC,CAAzC,EAA4C;AAC1CmR,uBAAiB,GACf9iB,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EAAhC,GAAqCzI,MAAM,CAACtF,KAAP,CAAawJ,YAAb,EAA2BsH,IADlE;AAEAxL,YAAM,CAACtF,KAAP,CAAawJ,YAAb,EAA2BrT,QAA3B,GAAsCwkB,iBAAtC;AACArV,YAAM,CAACtF,KAAP,CAAawJ,YAAb,EAA2BrI,IAA3B,GAAkCwZ,iBAAlC,CAJ0C,CAK1C;;AACAnR,kBAAY,GAAG,CAAC,CAAhB;AACD,KAtDI,CAwDL;;;AACA,QAAMnR,KAAK,GAAG;AACZyY,UAAI,EAAEjZ,IAAI,CAACmW,WAAL,CAAiBpE,GAAjB,KAAyBtE,MAAM,CAACyI,EAD1B;AAEZhO,YAAM,EAAE/N,IAAI,CAACiZ,KAAL,CAAW4P,SAAS,GAAG,IAAvB,CAFI;AAGZriB,SAAG,EAAExG,IAAI,CAACiZ,KAAL,CAAWzS,GAAG,GAAG,IAAjB;AAHO,KAAd;AAKA,QAAMsiB,SAAS,GAAGxV,MAAM,CAACvF,MAAzB;AACA,QAAMgb,WAAW,GAAGD,SAAS,CAACtqB,MAA9B;;AACA,QAAIuqB,WAAW,GAAG,CAAlB,EAAqB;AACnB,UAAMC,MAAM,GAAGF,SAAS,CAACC,WAAW,GAAG,CAAf,CAAxB;AACA,UAAME,MAAM,GAAGH,SAAS,CAACC,WAAW,GAAG,CAAf,CAAxB;AACA,UAAMG,SAAS,GACb,CAACF,MAAM,CAACjb,MAAP,GAAgBkb,MAAM,CAAClb,MAAxB,KAAmCib,MAAM,CAAClK,IAAP,GAAcmK,MAAM,CAACnK,IAAxD,CADF;AAEA,UAAMqK,SAAS,GACb,CAACF,MAAM,CAAClb,MAAP,GAAgB1H,KAAK,CAAC0H,MAAvB,KAAkCkb,MAAM,CAACnK,IAAP,GAAczY,KAAK,CAACyY,IAAtD,CADF;AAGA,UAAMsK,SAAS,GAAG,CAACJ,MAAM,CAACxiB,GAAP,GAAayiB,MAAM,CAACziB,GAArB,KAA6BwiB,MAAM,CAAClK,IAAP,GAAcmK,MAAM,CAACnK,IAAlD,CAAlB;AACA,UAAMuK,SAAS,GAAG,CAACJ,MAAM,CAACziB,GAAP,GAAaH,KAAK,CAACG,GAApB,KAA4ByiB,MAAM,CAACnK,IAAP,GAAczY,KAAK,CAACyY,IAAhD,CAAlB,CATmB,CAUnB;;AACA,UACE,CAACoK,SAAS,KAAKC,SAAd,IACCnpB,IAAI,CAACoH,GAAL,CAAS8hB,SAAS,GAAGC,SAAZ,GAAwB,CAAjC,KAAuC,GADzC,MAECC,SAAS,KAAKC,SAAd,IAA2BrpB,IAAI,CAACoH,GAAL,CAASgiB,SAAS,GAAGC,SAAZ,GAAwB,CAAjC,KAAuC,GAFnE,CADF,EAIE;AACAP,iBAAS,CAACQ,GAAV;AACD;AACF;;AACDhW,UAAM,CAACvF,MAAP,CAAchD,IAAd,CAAmB1E,KAAnB;AACA0W,oBAAgB;AAChBlX,QAAI,CAAC8Z,aAAL;;AAEA,QAAI5G,CAAC,CAAC,kBAAD,CAAD,CAAsBwQ,EAAtB,CAAyB,UAAzB,CAAJ,EAA0C;AACxC,UAAIrgB,GAAG,kBAAgB8E,KAAK,CAAC7J,QAAtB,oBAA6CokB,kBAAkB,CACpEva,KAAK,CAACM,QAD8D,CAA/D,oBAESia,kBAAkB,CAChCva,KAAK,CAACwb,QAD0B,CAF3B,kBAIOjB,kBAAkB,CAACva,KAAK,CAACyb,MAAP,CAJzB,OAAP;;AAKA,UAAItgB,GAAG,CAAC5D,KAAR,EAAe;AACb,aAAK,IAAMO,IAAX,IAAmB2H,MAAnB,EAA2B;AACzBvE,aAAG,oBAAkBpD,IAAlB,kBAAmCyiB,kBAAkB,CACtD9a,MAAM,CAAC3H,IAAD,CAAN,CAAaiI,MAAb,CAAoBO,QADkC,CAArD,OAAH;AAGD;;AACD,YAAMob,oBAAoB,GAAG1b,KAAK,CAAC2b,uBAAnC;;AACA,YACED,oBAAoB,IACpB,OAAOA,oBAAP,KAAgC,OAAOE,QAFzC,EAGE;AACA1gB,aAAG,yBACD8E,KAAK,CAAC2b,uBAAN,GAAgCE,kBAD/B,OAAH;AAGA3gB,aAAG,2BACD8E,KAAK,CAAC2b,uBAAN,GAAgCG,oBAD/B,OAAH;AAGD,SAVD,MAUO,IAAI9b,KAAK,CAAC+b,uBAAV,EAAmC;AACxC7gB,aAAG,yBAAuB8E,KAAK,CAAC+b,uBAA7B,OAAH;AACD;AACF;;AACD7gB,SAAG,6BAA2BC,GAAG,CAAC6gB,iBAAJ,CAAsBjlB,OAAtB,CAA8B,CAA9B,CAA3B,OAAH;;AACA,UAAIuO,MAAM,CAAC6M,MAAX,EAAmB;AACjBjX,WAAG,IACD,uCACkBC,GAAG,CAAC8gB,UADtB,mCAEqB9gB,GAAG,CAAC+gB,aAAJ,CAAkBnlB,OAAlB,CAA0B,CAA1B,CAFrB,4BAGcoE,GAAG,CAACsW,OAAJ,CAAY1a,OAAZ,CAAoB,CAApB,CAHd,0BAIYoE,GAAG,CAACghB,KAAJ,CAAUplB,OAAV,CAAkB,CAAlB,CAJZ,mDAKiBoE,GAAG,CAACihB,iBAAJ,CAAsBC,WAAtB,CAAkCtlB,OAAlC,CACf,CADe,CALjB,+EAQoBiJ,KAAK,CAACsc,YAAN,CAAmBvlB,OAAnB,CAA2B,CAA3B,CARpB,QADF;;AAUA,YAAI/D,KAAK,CAACgiB,mBAAV,EAA+B;AAC7B,cAAMuH,UAAU,GACdvpB,KAAK,CAACgiB,mBAAN,GACA,CAAChV,KAAK,CAAC5E,WAAN,GAAoBpI,KAAK,CAACkiB,SAA3B,IAAwC,IAF1C;AAGAha,aAAG,8BAA4B,IAAIyO,IAAJ,CAAS4S,UAAT,EAAqBC,WAArB,EAA/B;AACA,cAAMC,UAAU,GAAG,CAAC9S,IAAI,CAACC,GAAL,KAAa2S,UAAd,IAA4B,IAA/C;;AACA,cAAIE,UAAU,GAAG,CAAjB,EAAoB;AAClBvhB,eAAG,WAASuhB,UAAU,CAAC1lB,OAAX,CAAmB,CAAnB,CAAT,kBAAH;AACD;AACF;AACF;;AAEDgU,OAAC,CAAC,cAAD,CAAD,CAAkBpG,IAAlB,CAAuBzJ,GAAvB;AACA6P,OAAC,CAAC,gBAAD,CAAD,CAAoBpG,IAApB,CAAyBC,IAAI,CAACC,SAAL,CAAeiC,8DAAU,CAAC9T,KAAD,CAAzB,EAAkC,IAAlC,EAAwC,IAAxC,CAAzB;AACD;;AAEDtB,OAAG,CAACqC,SAAJ,GAAgB,MAAhB;AACA,QAAMrB,CAAC,GAAIsN,KAAK,CAAC5E,WAAN,GAAoBqf,WAArB,GAAoC5oB,MAAM,CAAC6C,KAArD;AACAhD,OAAG,CAACsC,QAAJ,CAAatB,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,EAAtB;AACD,GAjJD,MAiJO,IAAIhB,GAAG,CAACqC,SAAJ,KAAkB,OAAtB,EAA+B;AACpCrC,OAAG,CAACqC,SAAJ,GAAgB,OAAhB;AACArC,OAAG,CAACsC,QAAJ,CAAa,CAAb,EAAgB,CAAhB,EAAmBnC,MAAM,CAAC6C,KAA1B,EAAiC7C,MAAM,CAACyB,MAAxC;AACD;AACF;;AAED,SAAS8d,UAAT,GAAsB;AACpBvZ,MAAI,CAAC6kB,WAAL;AACA3R,GAAC,CAAC,cAAD,CAAD,CAAkB3O,IAAlB;AACA2O,GAAC,CAAC,iBAAD,CAAD,CAAqB3O,IAArB;AACD;;AAED,SAAS+S,UAAT,GAAsB;AACpBtX,MAAI,CAAC8kB,WAAL;AACA5R,GAAC,CAAC,cAAD,CAAD,CAAkB1O,IAAlB;AACA0O,GAAC,CAAC,iBAAD,CAAD,CAAqB1O,IAArB;AACD;;AAED,SAASugB,UAAT,GAAsB;AACpB,MAAMC,IAAI,GAAGjY,IAAI,CAACC,SAAL,CAAeS,MAAf,CAAb;AACA,MAAMwX,UAAU,GAAGC,qDAAI,CAACF,IAAD,CAAvB,CAFoB,CAGpB;;AACA,SAAOG,IAAI,CAACF,UAAD,CAAX;AACD;;AAEDjlB,IAAI,CAAColB,sBAAL,GAA8B,YAAY;AACxCjW,yEAAmB,CAAC4V,UAAU,EAAX,CAAnB;AACD,CAFD;;AAIA/kB,IAAI,CAACqlB,WAAL,GAAmB,YAAY;AAC7B,MAAI/f,GAAG,GAAG+J,QAAQ,CAACvD,GAAnB;AACAxG,KAAG,GAAGA,GAAG,CAAClI,MAAJ,CAAW,CAAX,EAAckI,GAAG,CAACggB,WAAJ,CAAgB,GAAhB,IAAuB,CAArC,IAA0C,cAAhD;AACAtlB,MAAI,CAACulB,IAAL,CAAUjgB,GAAV,EAAe,QAAf;AACD,CAJD;;AAMA,SAASqR,oBAAT,GAAgC;AAC9B,MAAIrR,GAAG,GAAG+J,QAAQ,CAACvD,GAAnB;AACA,MAAM0Z,GAAG,GAAGT,UAAU,EAAtB;AACAzf,KAAG,GAAGA,GAAG,CAAClI,MAAJ,CAAW,CAAX,EAAckI,GAAG,CAACggB,WAAJ,CAAgB,GAAhB,IAAuB,CAArC,IAA0C,oBAA1C,GAAiEE,GAAvE;AACAxlB,MAAI,CAACulB,IAAL,CAAUjgB,GAAV,EAAe,QAAf;AACD;;AAED,SAASkR,oBAAT,CAA8BhW,KAA9B,EAAqC;AACnC,MAAMxG,MAAM,GAAGqV,QAAQ,CAACwC,aAAT,CAAuB,iBAAvB,CAAf;AACA,MAAMkF,MAAM,GACT,CAACvW,KAAK,CAAC2B,OAAN,GAAgBnI,MAAM,CAACyrB,UAAxB,IAAsCzrB,MAAM,CAAC6C,KAA9C,GAAuDgmB,cAAc,EADvE;AAEA1a,OAAK,CAAC5E,WAAN,GAAoBwT,MAApB;AACD;;AAED,SAAS8L,cAAT,GAA0B;AACxB,MAAI6C,QAAQ,CAACvd,KAAK,CAAC7J,QAAP,CAAZ,EAA8B;AAC5B,WAAO6J,KAAK,CAAC7J,QAAb;AACD;;AACD,MAAI6J,KAAK,CAACwb,QAAN,CAAehrB,MAAnB,EAA2B;AACzB,WAAOwP,KAAK,CAACwb,QAAN,CAAe/qB,GAAf,CAAmBuP,KAAK,CAACwb,QAAN,CAAehrB,MAAf,GAAwB,CAA3C,CAAP;AACD;;AACD,SAAO,CAAP;AACD;;AAED,SAASgtB,kBAAT,CAA4BtY,GAA5B,EAAiC3I,MAAjC,EAAyCkhB,cAAzC,EAAyDC,WAAzD,EAAsE;AACpE,MAAMC,WAAW,GAAG,CAAGzY,GAAH,UAAYlO,OAAZ,CAAoB,iBAApB,EAAuCymB,cAAvC,CAApB;AACA,MAAMG,MAAM,GAAGrhB,MAAM,CAACP,MAAP,CAAc,UAAC6hB,YAAD,EAAehhB,KAAf,EAAyB;AACpD,QAAMihB,WAAW,GAAGC,YAAY,CAAClhB,KAAK,CAACmH,KAAN,CAAYI,MAAb,CAAhC;;AACA,QAAI0Z,WAAW,IAAID,YAAY,CAAC7c,OAAb,CAAqB8c,WAArB,MAAsC,CAAC,CAA1D,EAA6D;AAC3DD,kBAAY,CAAC9gB,IAAb,CAAkB+gB,WAAlB;AACD;;AACD,WAAOD,YAAP;AACD,GANc,EAMZ,EANY,CAAf;AAOA,SACE,iDACEH,WAAW,GAAG,aAAH,GAAmB,aADhC,sBAEcC,WAFd,wBAGAphB,MAAM,CACHyT,GADH,CACO,UAACnT,KAAD,EAAQxK,CAAR,EAAc;AACjB,QAAMiU,OAAO,GAAGnL,GAAG,CAAC+J,GAAD,CAAH,KAAa7S,CAA7B;AACA,QAAM2rB,OAAO,GAAG,CAAG9Y,GAAH,SAAU7S,CAAV,EAAc2E,OAAd,CAAsB,eAAtB,EAAuCymB,cAAvC,CAAhB;AACA,QAAMrc,KAAK,GAAG6c,WAAW,CAAC1hB,MAAM,CAAClK,CAAD,CAAP,EAAYA,CAAZ,EAAeurB,MAAf,CAAzB;AACA,4DACEtX,OAAO,GAAG,aAAH,GAAmB,aAD5B,sBAEc0X,OAFd,WAE0B5c,KAF1B;AAGD,GARH,EASG6O,IATH,CASQ,EATR,CAJF;AAeD;;AAED,SAAS3B,eAAT,GAA2B;AACzB,MAAM/R,MAAM,GAAGpB,GAAG,CAACoB,MAAnB;;AACA,MAAI,CAACA,MAAL,EAAa;AACX;AACD;;AAED,MAAM2hB,gBAAgB,GAAGV,kBAAkB,CACzC,cADyC,EAEzCjhB,MAFyC,EAGzC,WAHyC,EAIzCpB,GAAG,CAAC2Z,gBAJqC,CAA3C;AAMA,MAAMqJ,aAAa,GAAGX,kBAAkB,CACtC,WADsC,EAEtCjhB,MAFsC,EAGtC,WAHsC,EAItCpB,GAAG,CAAC2Z,gBAJkC,CAAxC;AAMA,MAAMsJ,aAAa,GAAGZ,kBAAkB,CACtC,WADsC,EAEtCjhB,MAFsC,EAGtC,WAHsC,EAItCpB,GAAG,CAAC2Z,gBAJkC,CAAxC;AAMA,MAAMuJ,YAAY,GAAGb,kBAAkB,CACrC,kBADqC,EAErCjhB,MAFqC,EAGrC,iEAHqC,EAIrCpB,GAAG,CAACuV,gBAAJ,KAAyB,CAAC,CAJW,CAAvC;;AAOA,MAAI3F,CAAC,CAAC,sBAAD,CAAD,CAA0BC,IAA1B,OAAqCkT,gBAAzC,EAA2D;AACzDnT,KAAC,CAAC,sBAAD,CAAD,CAA0BC,IAA1B,CAA+BkT,gBAA/B;AACD;;AAED,MAAInT,CAAC,CAAC,mBAAD,CAAD,CAAuBC,IAAvB,OAAkCmT,aAAtC,EAAqD;AACnDpT,KAAC,CAAC,mBAAD,CAAD,CAAuBC,IAAvB,CAA4BmT,aAA5B;AACD;;AAED,MAAIpT,CAAC,CAAC,mBAAD,CAAD,CAAuBC,IAAvB,OAAkCoT,aAAtC,EAAqD;AACnDrT,KAAC,CAAC,mBAAD,CAAD,CAAuBC,IAAvB,CAA4BoT,aAA5B;AACD;;AAED,MAAIrT,CAAC,CAAC,sBAAD,CAAD,CAA0BC,IAA1B,OAAqCqT,YAAzC,EAAuD;AACrDtT,KAAC,CAAC,sBAAD,CAAD,CAA0BC,IAA1B,CAA+BqT,YAA/B;AACD;AACF;;AAED,SAAStM,oBAAT,GAAgC;AAC9B,MAAMuM,cAAc,GAAG,0CAAvB;AACA,MAAMC,aAAa,GAAG,eAAtB;AACA,MAAMC,cAAc,GAAG,eAAvB;AACA,MAAIC,KAAK,GAAG,EAAZ;AACA,MAAMC,YAAY,GAAGvjB,GAAG,CAACuC,UAAzB;AACA,MAAMnM,GAAG,GAAG4J,GAAG,CAACsC,WAAJ,CAAgBjN,MAA5B;AACA,MAAMmN,KAAK,GAAGxC,GAAG,CAACsC,WAAJ,CAAgBihB,YAAhB,CAAd;;AAEA,OAAK,IAAIrsB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,GAApB,EAAyBc,CAAC,EAA1B,EAA8B;AAC5BosB,SAAK,IAAIH,cAAT;;AACA,QAAII,YAAY,KAAKrsB,CAArB,EAAwB;AACtBosB,WAAK,IAAIF,aAAT;AACD,KAFD,MAEO;AACLE,WAAK,IAAID,cAAT;AACD;;AAEDC,SAAK,IACH,6BACApsB,CADA,GAEA,IAFA,GAGA8I,GAAG,CAACsC,WAAJ,CAAgBpL,CAAhB,EAAmB8O,IAHnB,GAIA,WALF;AAMD;;AAED4J,GAAC,CAAC,kBAAD,CAAD,CAAsBpG,IAAtB,CACEhH,KAAK,GAAGA,KAAK,CAAC2G,IAAN,IAAc3G,KAAK,CAACwD,IAAvB,GAA8B,eADrC;AAGA4J,GAAC,CAAC,oBAAD,CAAD,CAAwBC,IAAxB,CAA6ByT,KAA7B;AACD;;AAED,SAASV,YAAT,CAAsBD,WAAtB,EAAmC;AACjC,MAAIA,WAAJ,EAAiB;AACf,WAAOA,WAAW,CACf9mB,OADI,CACI,iBADJ,EACuB,IADvB,EAEJA,OAFI,CAEI,WAFJ,EAEiB,MAFjB,CAAP;AAGD;;AACD,SAAO,EAAP;AACD;;AAED,SAASinB,WAAT,CAAqBphB,KAArB,EAA4BxK,CAA5B,EAA+BssB,cAA/B,EAA+C;AAC7C,MAAMb,WAAW,GAAGC,YAAY,CAAClhB,KAAK,CAACmH,KAAN,CAAYI,MAAb,CAAhC;AACA,MAAMwa,aAAa,GAAG/hB,KAAK,CAACsE,IAAN,UAAiBtE,KAAK,CAACsE,IAAvB,YAAmC,EAAzD;AACA,MAAM0d,SAAS,GACbf,WAAW,IAAIa,cAAc,CAACnuB,MAAf,GAAwB,CAAvC,WAAiDstB,WAAjD,GAAiE,EADnE;;AAEA,MAAIjhB,KAAK,CAACvJ,MAAV,EAAkB;AAChB,WAAUjB,CAAV,UAAgBusB,aAAhB,GAAgC/hB,KAAK,CAACvJ,MAAtC,YAAmDtB,IAAI,CAACiZ,KAAL,CACjDpO,KAAK,CAACqR,OAAN,GAAgB,IADiC,CAAnD,UAEM2Q,SAFN;AAGD;;AACD,MAAIhiB,KAAK,CAACqR,OAAV,EAAmB;AACjB,WAAU7b,CAAV,UAAgBusB,aAAhB,GAAgC5sB,IAAI,CAACiZ,KAAL,CAC9BpO,KAAK,CAACqR,OAAN,GAAgB,IADc,CAAhC,UAEM2Q,SAFN;AAGD;;AACD,MAAIA,SAAJ,EAAe;AACb,WAAUxsB,CAAV,UAAgBusB,aAAhB,GAAgCd,WAAhC;AACD;;AACD,MAAIjhB,KAAK,CAACsE,IAAV,EAAgB;AACd,WAAU9O,CAAV,UAAgBwK,KAAK,CAACsE,IAAtB;AACD;;AACD,cAAU9O,CAAV;AACD;;AAED,SAAS6W,0BAAT,CAAoC4V,QAApC,EAA8CC,UAA9C,EAA0D;AACxD,SAAO,OAAOtW,UAAU,CAACqW,QAAD,CAAjB,KAAgC,WAAhC,GACHrW,UAAU,CAACqW,QAAD,CADP,GAEHC,UAFJ;AAGD;;AAED,SAASvW,WAAT,CAAqBwW,MAArB,EAA6BC,YAA7B,EAA2C;AACzC,MAAMC,QAAQ,GAAGrnB,IAAI,CAAC+V,QAAL,CAAcuR,MAAd,CAAqBC,SAArB,CAA+B,CAA/B,CAAjB;AACA,MAAMC,aAAa,GAAGH,QAAQ,CAAC5R,KAAT,CAAe,GAAf,CAAtB;;AACA,OAAK,IAAIjb,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgtB,aAAa,CAAC7uB,MAAlC,EAA0C6B,CAAC,EAA3C,EAA+C;AAC7C,QAAMitB,cAAc,GAAGD,aAAa,CAAChtB,CAAD,CAAb,CAAiBib,KAAjB,CAAuB,GAAvB,CAAvB;;AACA,QAAIgS,cAAc,CAAC,CAAD,CAAd,KAAsBN,MAA1B,EAAkC;AAChC,aAAOM,cAAc,CAAC,CAAD,CAAd,KAAsB,WAAtB,GACHjvB,SADG,GAEHivB,cAAc,CAAC,CAAD,CAAd,KAAsB,OAAtB,GACA,KADA,GAEAA,cAAc,CAAC,CAAD,CAJlB;AAKD;AACF;;AACD,SAAOL,YAAP;AACD;;AAED,SAAS9S,mBAAT,CAA6BoT,SAA7B,EAAwC;AACtC9W,YAAU,GAAG;AACXQ,mBAAe,EAAfA,eADW;AAEXE,oBAAgB,EAAhBA,gBAFW;AAGXI,eAAW,EAAXA,WAHW;AAIXD,YAAQ,EAARA,QAJW;AAKXF,gBAAY,EAAZA,YALW;AAMXC,gBAAY,EAAZA;AANW,GAAb;;AASA,MAAIa,wBAAJ,EAA8B;AAC5BsV,sBAAkB;AACnB;;AAED,MAAMC,oBAAoB,GAAGzC,IAAI,CAACpY,IAAI,CAACC,SAAL,CAAe4D,UAAf,CAAD,CAAjC;AACA,MAAMiX,OAAO,GAAGxY,QAAQ,CAACvD,GAAT,CAAa2J,KAAb,CAAmB,GAAnB,EAAwB,CAAxB,CAAhB;AACA,MAAMqS,SAAS,GAAG5U,CAAC,CAAC,YAAD,CAAD,CAAgBlY,GAAhB,EAAlB;AACA,MAAM+sB,YAAY,GAAMF,OAAN,aAAqBhT,kBAAkB,CACvDiT,SADuD,CAAvC,oBAEFF,oBAFhB;AAIA1U,GAAC,CAAC,kBAAD,CAAD,CAAsBC,IAAtB,gBAAuC4U,YAAvC,WAAwDA,YAAxD;;AACA,MAAI,CAACL,SAAD,IAAc7R,MAAM,CAACE,QAAP,CAAgB9J,IAAhB,KAAyB8b,YAA3C,EAAyD;AACvDlS,UAAM,CAACmS,OAAP,CAAeC,SAAf,CAAyB,IAAzB,EAA+B,IAA/B,EAAqCF,YAArC;AACD;AACF;;AAED,SAASG,0BAAT,CAAoC1nB,KAApC,EAA2C;AACzC6R,0BAAwB,GAAG7R,KAAK,CAACuW,MAAN,CAAa1C,OAAxC;AACAe,cAAY,CAACgN,OAAb,CACEnS,YAAY,CAACC,kBADf,EAEEnD,IAAI,CAACC,SAAL,CAAeqF,wBAAf,CAFF;;AAKA,MAAIA,wBAAJ,EAA8B;AAC5BsV,sBAAkB;AACnB,GAFD,MAEO;AACLvS,gBAAY,CAAC+S,UAAb,CAAwBlY,YAAY,CAACE,UAArC;AACD;AACF;;AAED,SAAS0H,cAAT,CAAwBjgB,OAAxB,EAAiC;AAC/BA,SAAO,GAAGsb,CAAC,CAAC0E,MAAF,CAAS;AAAE/G,SAAK,EAAE;AAAT,GAAT,EAA2BjZ,OAAO,IAAI,EAAtC,CAAV;AACA,MAAIU,KAAK,GAAGga,YAAY,CAAC8V,OAAb,CAAqBC,QAArB,EAAZ;;AAEA,MAAIzwB,OAAO,CAACiZ,KAAZ,EAAmB;AACjB,QAAI;AACFvY,WAAK,GAAGyU,IAAI,CAAC8D,KAAL,CAAWvY,KAAX,CAAR;AACD,KAFD,CAEE,OAAOwQ,CAAP,EAAU;AACV7K,aAAO,CAACC,IAAR,CAAa,+CAAb,EAA8D4K,CAA9D;AACAxQ,WAAK,GAAG,EAAR;AACD;AACF;;AAED,SAAOA,KAAP;AACD;;AAED,SAASgwB,qBAAT,GAAiC;AAC/B,MAAIhwB,KAAK,GAAG8c,YAAY,CAACC,OAAb,CAAqBpF,YAAY,CAACE,UAAlC,CAAZ;;AACA,MAAI7X,KAAK,KAAK,IAAd,EAAoB;AAClB,WAAOA,KAAP;AACD;;AAED,MAAI;AACFA,SAAK,GAAGyU,IAAI,CAAC8D,KAAL,CAAWvY,KAAX,CAAR;AACD,GAFD,CAEE,OAAOwQ,CAAP,EAAU;AACV7K,WAAO,CAACC,IAAR,CAAa,mDAAb,EAAkE4K,CAAlE;AACAxQ,SAAK,GAAG,EAAR;AACD;;AAED,SAAOA,KAAP;AACD;;AAED,SAASqvB,kBAAT,GAA8B;AAC5BvS,cAAY,CAACgN,OAAb,CAAqBnS,YAAY,CAACE,UAAlC,EAA8C0H,cAAc,EAA5D;AACD;;AAED,SAASrE,iBAAT,GAA6B;AAC3BlB,cAAY,GAAGtS,IAAI,CAACuoB,GAAL,CAASC,IAAT,CAAc,eAAd,CAAf;AACAlW,cAAY,CAACmW,QAAb,CAAsB,kBAAtB;AACAnW,cAAY,CAAC8V,OAAb,CAAqBM,OAArB,CAA6B,eAA7B;AAEA,MAAMC,QAAQ,GAAG5X,aAAjB;AACA,MAAM6X,sBAAsB,GAC1B7b,IAAI,CAAC8D,KAAL,CAAWuE,YAAY,CAACC,OAAb,CAAqBpF,YAAY,CAACC,kBAAlC,CAAX,MAAsE,IADxE;;AAGA,MAAI0Y,sBAAJ,EAA4B;AAC1B1V,KAAC,CAAC0E,MAAF,CAAS+Q,QAAT,EAAmBL,qBAAqB,EAAxC;AACD;;AAED,MAAMO,aAAa,GAAGxZ,QAAQ,CAACwC,aAAT,CAAuB,qBAAvB,CAAtB;AACAgX,eAAa,CAACtgB,gBAAd,CAA+B,QAA/B,EAAyC2f,0BAAzC;AACAW,eAAa,CAACxU,OAAd,GAAwBuU,sBAAxB;AACAvW,0BAAwB,GAAGuW,sBAA3B;AAEA7Q,yBAAuB,CAAC4Q,QAAD,CAAvB;AACD;;AAED,SAASlV,kBAAT,GAA8B;AAC5B,MAAMzZ,MAAM,GAAGqV,QAAQ,CAACwC,aAAT,CAAuB,iBAAvB,CAAf;AACA,MAAMha,KAAK,GAAG,IAAIyH,mEAAJ,CAAkBtF,MAAlB,EAA0B;AACtC8uB,cAAU,EAAE;AAD0B,GAA1B,CAAd;AAIApW,gBAAc,CAACxN,IAAf,CAAoB,YAAM;AACxBrN,SAAK,CAACkM,MAAN;AACD,GAFD;AAIAlM,OAAK,CAACkM,MAAN;AAEA,SAAOlM,KAAP;AACD;;AAED,SAAS6gB,sBAAT,CAAgCpV,GAAhC,EAAqC;AACnC,MAAMoC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAC4T,SAAD,EAAYrhB,IAAZ,EAAqB;AAC9CJ,SAAK,CAAC6N,kBAAN,CAAyBzN,IAAI,CAACwN,OAA9B;AACD,GAFD;;AAGA,MAAM6B,cAAc,GAAG,SAAjBA,cAAiB,CAACgS,SAAD,EAAYrhB,IAAZ,EAAqB;AAC1C,QAAIA,IAAI,CAACkD,KAAT,EAAgB;AACd;AACA,wBAA0DlD,IAAI,CAACkD,KAA/D;AAAA,UAAQ4tB,KAAR,eAAQA,KAAR;AAAA,UAAezsB,MAAf,eAAeA,MAAf;AAAA,UAAuBC,KAAvB,eAAuBA,KAAvB;AAAA,UAA8BysB,QAA9B,eAA8BA,QAA9B;AAAA,UAAwCC,MAAxC,eAAwCA,MAAxC;AAAA,UAAgDC,KAAhD,eAAgDA,KAAhD;;AACA,UAAIF,QAAQ,IAAIE,KAAhB,EAAuB;AACrBjxB,YAAI,CAACsP,IAAL,CAAUpM,KAAV,GAAkB;AAChBmB,gBAAM,EAANA,MADgB;AAEhBysB,eAAK,EAALA,KAFgB;AAGhBxsB,eAAK,EAALA,KAHgB;AAIhBod,iBAAO,EAAE;AACPphB,iBAAK,EAAEywB,QADA;AAEPnP,iBAAK,EAAEoP,MAFA;AAGPrwB,eAAG,EAAEswB;AAHE;AAJO,SAAlB;AAUD;AACF;;AACDrxB,SAAK,CAACyP,cAAN,CAAqBrP,IAArB;AACD,GAlBD;;AAmBA,MAAMkxB,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBtxB,SAAK,CAACqJ,MAAN;AACD,GAFD;;AAGAoC,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWqQ,gBADb,EAEE,YAAM;AACJvxB,SAAK,CAACiM,KAAN;AACD,GAJH,EAKEjM,KALF;AAOAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWW,eADb,EAEE,UAACJ,SAAD,EAAYrhB,IAAZ,EAAqB;AACnB,QAAQyM,MAAR,GAAmBzM,IAAnB,CAAQyM,MAAR;AACA7M,SAAK,CAACuO,UAAN,CAAiB,OAAjB;AACAvO,SAAK,CAACuO,UAAN,CAAiB,YAAjB;AACAvO,SAAK,CAACuO,UAAN,CAAiB,eAAjB;AACAvO,SAAK,CAAC4M,YAAN,CAAmBC,MAAnB;AACD,GARH,EASE7M,KATF;AAWAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWiI,cADb,EAEE,UAAC1H,SAAD,QAA2B;AAAA,QAAb1R,MAAa,QAAbA,MAAa;AACzB/P,SAAK,CAAC8P,mBAAN,CAA0BC,MAA1B,EAAkCtE,GAAG,CAAC5D,KAAtC;AACD,GAJH,EAKE7H,KALF;AAOAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWK,YADb,EAEE,YAAM;AACJvhB,SAAK,CAACmQ,mBAAN;AACD,GAJH,EAKEnQ,KALF;AAOAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWsQ,cAAlB,EAAkC,UAAC/P,SAAD,SAA2B;AAAA,QAAb5U,MAAa,SAAbA,MAAa;AAC3D7M,SAAK,CAACuO,UAAN,CAAiB,OAAjB;AACAvO,SAAK,CAAC4M,YAAN,CAAmBC,MAAnB;AACD,GAHD;AAIApB,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAW8D,cADb,EAEE,UAACvD,SAAD,SAA0B;AAAA,QAAZtU,KAAY,SAAZA,KAAY;AACxBnN,SAAK,CAACuO,UAAN,CAAiB,OAAjB;AACAvO,SAAK,CAAC4M,YAAN,CAAmBnB,GAAG,CAACoB,MAAvB,EAA+BM,KAA/B;AACD,GALH,EAMEnN,KANF;AAQAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWuQ,aADb,EAEE,YAAM;AACJ;AACA;AACAzxB,SAAK,CAACuO,UAAN,CAAiB,OAAjB;AACAvO,SAAK,CAAC4M,YAAN,CAAmBnB,GAAG,CAACoB,MAAvB;AACD,GAPH,EAQE7M,KARF;AAUAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWwQ,aADb,EAEE,UAACjQ,SAAD,SAA4B;AAAA,QAAd7T,OAAc,SAAdA,OAAc;AAC1B5N,SAAK,CAAC6N,kBAAN,CAAyBD,OAAzB;AACD,GAJH,EAKE5N,KALF;AAQAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWkB,oBADb,EAEE,UAACX,SAAD,SAAgC;AAAA,QAAlB1T,WAAkB,SAAlBA,WAAkB;AAC9B/N,SAAK,CAACuO,UAAN,CAAiB,YAAjB;AACAvO,SAAK,CAAC8N,iBAAN,CAAwBC,WAAxB;AACD,GALH,EAME/N,KANF;AAQAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWyQ,uBADb,EAEE,UAAClQ,SAAD,SAAmC;AAAA,QAArBmQ,cAAqB,SAArBA,cAAqB;AACjC5xB,SAAK,CAACuO,UAAN,CAAiB,eAAjB;AACAvO,SAAK,CAACmO,oBAAN,CAA2ByjB,cAA3B;AACD,GALH,EAME5xB,KANF;AASAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAWqB,oBADb,EAEE,UAACd,SAAD,EAAe;AACb;AACAzhB,SAAK,CAACuO,UAAN,CAAiB,YAAjB;AACAvO,SAAK,CAAC8N,iBAAN,CAAwBrC,GAAG,CAACsC,WAA5B;AACD,GANH,EAOE/N,KAPF;AASAyL,KAAG,CAACwS,EAAJ,CACEd,GAAG,CAAC+D,MAAJ,CAAW2Q,qBADb,EAEE,UAACpQ,SAAD,EAAe;AACb;AACAzhB,SAAK,CAACuO,UAAN,CAAiB,eAAjB;AACAvO,SAAK,CAACmO,oBAAN,CAA2B1C,GAAG,CAACmmB,cAA/B;AACD,GANH,EAOE5xB,KAPF;AASAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW+B,kBAAlB,EAAsCpV,kBAAtC,EAA0D7N,KAA1D;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW4Q,qBAAlB,EAAyCjkB,kBAAzC,EAA6D7N,KAA7D;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW6Q,iBAAlB,EAAqClkB,kBAArC,EAAyD7N,KAAzD;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW8Q,WAAlB,EAA+BviB,cAA/B,EAA+CzP,KAA/C;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW+Q,WAAlB,EAA+BxiB,cAA/B,EAA+CzP,KAA/C;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAW+D,YAAlB,EAAgCxV,cAAhC,EAAgDzP,KAAhD;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWkI,gBAAlB,EAAoCkI,WAApC,EAAiDtxB,KAAjD;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWgR,eAAlB,EAAmCZ,WAAnC,EAAgDtxB,KAAhD;AACAyL,KAAG,CAACwS,EAAJ,CAAOd,GAAG,CAAC+D,MAAJ,CAAWiR,cAAlB,EAAkCb,WAAlC,EAA+CtxB,KAA/C;AACD;;AAED,SAASkgB,uBAAT,CAAiC1f,GAAjC,EAAsC;AACpC,MAAM2sB,IAAI,GAAGjY,IAAI,CAACC,SAAL,CAAe3U,GAAf,EAAoB,IAApB,EAA0B,CAA1B,CAAb;AACAia,cAAY,CAAC8V,OAAb,CAAqB6B,QAArB,CAA8BjF,IAA9B;AACD;;AAED,SAASnO,sBAAT,GAAkC;AAChCvC,qBAAmB;AACnBH,oBAAkB;AACnB;;AAED,SAASuC,UAAT,CAAoBzW,IAApB,EAA0B;AACxB,MAAImS,QAAQ,CAACnS,IAAD,CAAR,CAAetH,MAAnB,EAA2B;AACzB,QAAMuxB,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACC,WAAW,CAAChY,QAAQ,CAACnS,IAAD,CAAT,CAAZ,CAAT,EAAwC;AACnDA,UAAI,EAAE;AAD6C,KAAxC,CAAb;AAGA,QAAMoqB,QAAQ,GAAGpqB,IAAI,GAAG,GAAP,GAAa,IAAI6R,IAAJ,GAAW6S,WAAX,EAAb,GAAwC,MAAzD;AACA3kB,QAAI,CAACsqB,MAAL,CAAYJ,IAAZ,EAAkBG,QAAlB,EALyB,CAMzB;AACD,GAPD,MAOO,IAAI,CAAC5Y,QAAL,EAAe;AACpBxT,WAAO,CAACyK,KAAR,CACE,sFADF;AAGD;AACF;;AAED,SAAS0hB,WAAT,CAAqBG,UAArB,EAAiC;AAC/B,MAAMC,WAAW,GAAGD,UAAU,CAACpmB,MAAX,CAAkB,UAAUsmB,IAAV,EAAgBC,GAAhB,EAAqB;AACzD,WAAOD,IAAI,GAAGC,GAAG,CAAC/xB,MAAlB;AACD,GAFmB,EAEjB,CAFiB,CAApB;AAGA,MAAMsU,MAAM,GAAG,IAAI0d,UAAJ,CAAeH,WAAf,CAAf;AACA,MAAII,MAAM,GAAG,CAAb;AACAL,YAAU,CAACxsB,OAAX,CAAmB,UAAU0C,OAAV,EAAmB;AACpCwM,UAAM,CAAC4d,GAAP,CAAWpqB,OAAX,EAAoBmqB,MAApB;AACAA,UAAM,IAAInqB,OAAO,CAAC9H,MAAlB;AACD,GAHD;AAIA,SAAOsU,MAAP;AACD;;AAED,SAAS6d,WAAT,GAAuB;AACrB5X,GAAC,CAAC,eAAD,CAAD,CAAmB6X,GAAnB,CAAuB,kBAAvB,EAA2C,EAA3C;AACA7X,GAAC,CAAC,WAAD,CAAD,CAAe1O,IAAf;AACD;;AAED,SAASoS,cAAT,CAAwBoU,GAAxB,EAA6B;AAC3BrV,WAAS,CAACqV,GAAD,CAAT;AACA,MAAMC,UAAU,GAAG/X,CAAC,CAAC,eAAD,CAAD,CAChBgY,OADgB,GAEhB/S,GAFgB,CAEZ,UAACgT,EAAD,EAAK3wB,CAAL;AAAA,WAAY0Y,CAAC,CAAC,MAAMA,CAAC,CAACiY,EAAD,CAAD,CAAMlzB,IAAN,CAAW,KAAX,CAAP,CAAD,CAA2ByrB,EAA3B,CAA8B,UAA9B,IAA4ClpB,CAA5C,GAAgD,IAA5D;AAAA,GAFY,EAGhByd,MAHgB,CAGT,UAACzd,CAAD;AAAA,WAAOA,CAAC,KAAK,IAAb;AAAA,GAHS,CAAnB;AAIA4a,cAAY,CAACgN,OAAb,CAAqBnS,YAAY,CAACI,SAAlC,EAA6C4a,UAAU,CAAC7S,IAAX,CAAgB,GAAhB,CAA7C;AACD;;AAED,SAASzC,SAAT,CAAmBqV,GAAnB,EAAwBI,gBAAxB,EAA0C;AACxC,MAAMC,OAAO,GAAGnY,CAAC,CAAC8X,GAAD,CAAD,CAAO/yB,IAAP,CAAY,KAAZ,CAAhB,CADwC,CAExC;;AACA,MAAMqzB,eAAe,GACnBF,gBAAgB,IACfprB,IAAI,CAACQ,KAAL,KAAeR,IAAI,CAACQ,KAAL,CAAW+qB,OAAX,IAAsBvrB,IAAI,CAACQ,KAAL,CAAWgrB,QAAhD,CAFH;;AAGA,MAAI,CAACF,eAAL,EAAsB;AACpBR,eAAW;AACZ;;AACD,MAAIQ,eAAJ,EAAqB;AACnBpY,KAAC,OAAKmY,OAAL,CAAD,CAAiB9W,MAAjB;AACD,GAFD,MAEO;AACLrB,KAAC,OAAKmY,OAAL,CAAD,CAAiB9mB,IAAjB;AACD;;AACD2O,GAAC,CAAC8X,GAAD,CAAD,CAAOD,GAAP,CACE,kBADF,EAEE7X,CAAC,OAAKmY,OAAL,CAAD,CAAiB3H,EAAjB,CAAoB,UAApB,IAAkC,QAAlC,GAA6C,EAF/C;;AAIA,MAAI,CAACxQ,CAAC,CAAC,kBAAD,CAAD,CAAsBwQ,EAAtB,CAAyB,UAAzB,CAAL,EAA2C;AACzC1jB,QAAI,CAAC8kB,WAAL;AACD;;AACD,MAAIxhB,GAAJ,EAAS;AACP,QAAI4P,CAAC,CAAC,cAAD,CAAD,CAAkBwQ,EAAlB,CAAqB,UAArB,CAAJ,EAAsC;AACpC7rB,WAAK,CAAC0M,IAAN;AACA1M,WAAK,CAACkM,MAAN,CAAalM,KAAK,CAACA,KAAN,CAAYI,IAAZ,GAAmBJ,KAAK,CAACA,KAAN,CAAYI,IAAZ,CAAiBD,QAApC,GAA+C,IAA5D;AACD,KAHD,MAGO;AACLH,WAAK,CAAC2M,IAAN;AACD;AACF;AACF;;AAED,SAASinB,SAAT,CAAmBC,QAAnB,EAA6BrL,OAA7B,EAAsC;AACpC,MAAM8K,EAAE,GAAGjY,CAAC,CAAC,MAAMwY,QAAP,CAAZ;AACA,MAAIC,OAAO,GAAGR,EAAE,CAACre,IAAH,EAAd;;AACA,MAAI6e,OAAO,CAAChzB,MAAZ,EAAoB;AAClBgzB,WAAO,IAAI,IAAX;AACD;;AACD,MAAMC,SAAS,GAAG,CAAC9Z,IAAI,CAACC,GAAL,KAAa3H,SAAd,IAA2B,IAA7C;AACA,MAAMyhB,UAAU,GAAGD,SAAS,GAAG,KAAZ,GAAoBvL,OAAvC;AACAsL,SAAO,IAAIE,UAAX,CARoC,CASpC;;AACAV,IAAE,CAACre,IAAH,CAAQ6e,OAAR;AACA,MAAMlrB,OAAO,GAAG0qB,EAAE,CAAC,CAAD,CAAlB;AACA1qB,SAAO,CAACqrB,SAAR,GAAoBrrB,OAAO,CAACsrB,YAAR,GAAuBtrB,OAAO,CAACurB,YAAnD;AACD;;AAED,SAAStU,SAAT,CAAmB2I,OAAnB,EAA4B;AAC1BoL,WAAS,CAAC,WAAD,EAAcpL,OAAd,CAAT;AACD;;AAED,SAASnB,QAAT,CAAkBmB,OAAlB,EAA2B;AACzBoL,WAAS,CAAC,UAAD,EAAapL,OAAb,CAAT;AACD,C;;;;;;;;;;;ACvxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAA4D,wCAAwC,MAAM,QAAQ,mBAAO,CAAC,+CAAQ,EAAE,EAAE,WAAW,EAAE,EAAE;AACrJ,SACgE;AAChE,CAAC,2BAA2B;;AAE5B;;AAEA;AACA,kBAAkB,YAAY,EAAE;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,QAAQ,4BAA4B;AACpC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,2BAA2B;AAClC,OAAO,6BAA6B;AACpC,WAAW,iCAAiC;AAC5C,UAAU,gCAAgC;AAC1C,WAAW,iCAAiC;AAC5C,OAAO,qCAAqC;AAC5C,SAAS,2CAA2C;AACpD,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,QAAQ;AAC/B,gBAAgB,OAAO,QAAQ;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,iBAAiB,OAAO,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B,gBAAgB,QAAQ,OAAO;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;;AAEtE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,EAAE,UAAU,EAAE;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa,aAAa;AACzC;AACA,eAAe,aAAa;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,SAAS;AAC9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wDAAwD,uCAAuC;AAC/F,sDAAsD,qCAAqC;;AAE3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,8BAA8B,EAAE,aAAa,EAAE;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,kBAAkB;AAClC;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF,MAAM;AACN,aAAa,kBAAkB;AAC/B;AACA;;AAEA;AACA,EAAE;AACF,MAAM;AACN;;AAEA,aAAa,kBAAkB;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,EAAE;AACd,cAAc;AACd;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,EAAE;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,EAAE;AACd,cAAc;AACd;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,EAAE;AACd,cAAc;AACd;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,EAAE;AACd,YAAY,EAAE;AACd,cAAc;AACd;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,EAAE;AACd,cAAc;AACd;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,qBAAqB;AACjC,YAAY,OAAO;AACnB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,IAAI;AACJ,eAAe,SAAS;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,UAAU;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ,kEAAkE,KAAK,KAAK;AAC5E;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,EAAE;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,UAAU;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,gBAAgB;AAC5B,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,gBAAgB;AAC5B,cAAc,OAAO;AACrB;AACA;AACA,wCAAwC,0BAA0B;AAClE,EAAE;;AAEF;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc;AACd;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,cAAc;AAC1B;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB;AACA,YAAY,OAAO;AACnB;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,EAAE;;AAEF;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB;AACzB,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,uCAAuC;AACvC;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gCAAgC,UAAU;AAC1C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,YAAY,MAAM;AAClB,YAAY,gBAAgB;AAC5B,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,UAAU;AAClB;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,UAAU;AAClB;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD,GAAG;AACH;AACA,+DAA+D;AAC/D;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,UAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;;AAEd;;AAEA;;AAEA;AACA,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA,8DAA8D;AAC9D;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;;AAEA;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA,gEAAgE,qBAAqB;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,eAAe,wBAAwB;AACvC,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,UAAU;AACV,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,UAAU;AAC5C;AACA;;AAEA,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA,kCAAkC,UAAU;AAC5C;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,OAAO;AACnB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,UAAU;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,UAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,yDAAyD,UAAU;AACnE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,UAAU;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,UAAU;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA;AACA;;AAEA;AACA,QAAQ,UAAU;AAClB;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,UAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,yDAAyD,UAAU;AACnE;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,UAAU;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA,oCAAoC,UAAU;AAC9C;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB,YAAY,eAAe;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,oBAAoB;AACjC,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,oBAAoB;AACjC,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD,GAAG;;AAEH;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,oBAAoB;AACjC,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,oBAAoB;AACjC,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,aAAa,oBAAoB;AACjC,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,UAAU,OAAO;AACjB;AACA,UAAU,OAAO;AACjB,UAAU,QAAQ;AAClB,UAAU,SAAS;AACnB,UAAU,SAAS;AACnB,UAAU,SAAS;AACnB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB,UAAU,OAAO;AACjB;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,MAAM;AAClB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,MAAM;AAClB,YAAY,YAAY;AACxB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gKAAgK,YAAY,eAAe,EAAE,UAAU,YAAY,EAAE,KAAK,iCAAiC,iDAAiD,KAAK,sMAAsM,yBAAyB,qBAAqB,cAAc,aAAa,eAAe,gBAAgB,uBAAuB,2BAA2B,yBAAyB,kBAAkB,KAAK,4CAA4C,yBAAyB,uBAAuB,wBAAwB,cAAc,aAAa,KAAK,4CAA4C,yBAAyB,kBAAkB,mBAAmB,cAAc,aAAa,KAAK;;AAE/9B;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;AACF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,cAAc;;AAEzE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,OAAO;AAClB;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH,oCAAoC;AACpC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oEAAoE;AACpE,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA;AACA,6CAA6C,uCAAuC;AACpF,YAAY,EAAE;AACd,YAAY,OAAO;AACnB,cAAc,yBAAyB;AACvC;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,cAAc,QAAQ;AACtB;AACA,8BAA8B;;AAE9B;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO,cAAc,aAAa;AAC9C,YAAY,SAAS;AACrB,SAAS,aAAa;AACtB;AACA,gCAAgC;;AAEhC;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO,cAAc,aAAa;AAC9C,YAAY,SAAS;AACrB;AACA;;AAEA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,MAAM;AAClB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,cAAc,SAAS,GAAG,kBAAkB;AAC5C;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC,0BAA0B,OAAO;AACjC,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C;AAC1C,0EAA0E;AAC1E,wDAAwD;AACxD,6CAA6C;AAC7C,iFAAiF;AACjF,uDAAuD;AACvD,8CAA8C;AAC9C,6EAA6E;;AAE7E;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA,YAAY;AACZ,cAAc;AACd,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,YAAY;AAC1B;AACA,yCAAyC;;AAEzC;AACA,iDAAiD;AACjD;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,UAAU;AACzB;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA;AACA;AACA,aAAa;AACb,KAAK;AACL;AACA,aAAa;AACb,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,UAAU;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6CAA6C,UAAU;AACvD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAiD,UAAU;AAC3D;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,IAAI;;AAEJ;AACA,GAAG;AACH;;AAEA;AACA,kCAAkC,uBAAuB;AACzD;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,uCAAuC;AACpD;AACA;;AAEA;;AAEA;AACA,QAAQ,mBAAmB;AAC3B;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA,yDAAyD,UAAU;AACnE;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,QAAQ;AACvC;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,gDAAgD,gBAAgB;AAChE,EAAE;;AAEF;AACA,oDAAoD,gBAAgB;AACpE,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA,kDAAkD,gBAAgB;AAClE,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6CAA6C,UAAU;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA,YAAY,IAAI;AAChB,YAAY,OAAO;AACnB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,KAAK;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,KAAK;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,KAAK;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,KAAK;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,mBAAmB,OAAO;AAC1B,mBAAmB,SAAS;AAC5B,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yBAAyB,gCAAgC;AACzD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,wDAAwD;AACxD;AACA;AACA,IAAI;AACJ,qBAAqB;AACrB;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAAS;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,YAAY;AACxB;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uFAAuF;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;;AAEnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,UAAU;AAC5C;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,UAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,kCAAkC,UAAU;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,UAAU;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,UAAU;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,UAAU;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,UAAU;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA;AACA;;AAEA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,gCAAgC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB,gCAAgC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,GAAG;AACH,yBAAyB,gCAAgC;AACzD;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iDAAiD,QAAQ;AACzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,yEAAyE,OAAO,MAAM,OAAO;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;;AAEA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA;;AAEA;AACA;AACA,eAAe,gCAAgC;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH,WAAW;AACX;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,cAAc;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D,UAAU;AACrE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,YAAY;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAY,UAAU;AACtB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,sEAAsE,MAAM;AAC5E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,UAAU;AACjD;AACA;;AAEA,wDAAwD,UAAU;AAClE;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,kCAAkC,UAAU;AAC5C;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC,KAAK;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,UAAU;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,+BAA+B,QAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uFAAuF;AACvF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,4BAA4B;AAC5B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;;AAEA,uFAAuF;AACvF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kGAAkG;AAClG;;AAEA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sDAAsD,QAAQ,WAAW,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AC3yfD;AACA;AACA;AACA;AACA;;AAEA,CAAC,iCAAO,EAAE,mCAAE;;AAEZ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,IAAI;;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,WAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,WAAW,4BAA4B;;AAEvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA,IAAI,4BAA4B;AAChC;AACA,IAAI,OAAO;;AAEX;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,EAAE;AAAA,oGAAC;;AAEH,CAAC,GAAG,8FAOM;;;;;;;;;;;;ACjkBV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;ACnSA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvMD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/KD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9KD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpKD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9JD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9FD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpND;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxND;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9HD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACnGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7KD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7DD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,SACyB;AAC7B,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uHAAuH,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AAClN,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,2BAA2B,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACzK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAe,IAAW,OAAO,CAAC;AAClD;AACA,aAAa;AACb;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C,EAAE,IAAI,EAAE;AACnD,wCAAwC,EAAE,IAAI,EAAE;AAChD;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,kBAAkB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;ACriLD;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,GAAG;AACH;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;AChD1B;AAAA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEe,iFAAkB,EAAC;;;;;;;;;;;;;ACtBlC;AAAA;AAAA;AAAuC;AACD;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,aAAa,SAAS;AACtB;AACA,aAAa,kBAAkB;AAC/B;AACA,aAAa,kBAAkB;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,gDAAc;;AAE7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,GAAG;AACH;;AAEA,qBAAqB,mDAAU;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AChQvB;AAAA;AAAA;AAAA;AAA8B;AACS;AACD;;AAEtC,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,wBAAwB,8CAAO;AAC/B,CAAC;AACD;AACA,4CAA4C,gDAAc;AAC1D,G;AACA;AACA,kCAAkC,mDAAU;AAC5C;AACA;;;;;;;;;;;;AClCA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4L,gBAAT,CACE3mB,GADF,EAEEu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","file":"hls-demo.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"HlsDemo\"] = factory();\n\telse\n\t\troot[\"HlsDemo\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./demo/main.js\");\n","import Chart from 'chart.js';\n\n// Modify horizontalBar so that each dataset (fragments, timeRanges) draws on the same row (level, track or buffer)\nChart.controllers.horizontalBar.prototype.calculateBarValuePixels = function (\n datasetIndex,\n index,\n options\n) {\n const chart = this.chart;\n const scale = this._getValueScale();\n const datasets = chart.data.datasets;\n if (!datasets) {\n throw new Error(`Chart datasets are ${datasets}`);\n }\n scale._parseValue = scaleParseValue;\n const obj = datasets[datasetIndex].data[index];\n const value = scale._parseValue(obj);\n const start =\n value.start === undefined\n ? 0\n : value.max >= 0 && value.min >= 0\n ? value.min\n : value.max;\n const length =\n value.start === undefined\n ? value.end\n : value.max >= 0 && value.min >= 0\n ? value.max - value.min\n : value.min - value.max;\n const base = scale.getPixelForValue(start);\n const head = scale.getPixelForValue(start + length);\n const size = head - base;\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2,\n };\n};\n\nChart.controllers.horizontalBar.prototype.calculateBarIndexPixels = function (\n datasetIndex,\n index,\n ruler,\n options\n) {\n const rowHeight = options.barThickness;\n const size = rowHeight * options.categoryPercentage;\n const center = ruler.start + (datasetIndex * rowHeight + rowHeight / 2);\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size,\n };\n};\n\nChart.controllers.horizontalBar.prototype.draw = function () {\n const rects = this.getMeta().data;\n const len = rects.length;\n const dataset = this.getDataset();\n if (len !== dataset.data.length) {\n // View does not match dataset (wait for redraw)\n return;\n }\n const chart = this.chart;\n const scale = this._getValueScale();\n scale._parseValue = scaleParseValue;\n const ctx: CanvasRenderingContext2D = chart.ctx;\n const chartArea: { left; top; right; bottom } = chart.chartArea;\n Chart.helpers.canvas.clipArea(ctx, chartArea);\n if (!this.lineHeight) {\n this.lineHeight =\n Math.ceil(ctx.measureText('0').actualBoundingBoxAscent) + 2;\n }\n const lineHeight = this.lineHeight;\n let range = 0;\n for (let i = 0; i < len; ++i) {\n const rect = rects[i];\n const view = rect._view;\n if (!intersects(view.base, view.x, chartArea.left, chartArea.right)) {\n // Do not draw elements outside of the chart's viewport\n continue;\n }\n const obj = dataset.data[i];\n const val = scale._parseValue(obj);\n if (!isNaN(val.min) && !isNaN(val.max)) {\n const { dataType } = obj;\n let { stats } = obj;\n const isPart = dataType === 'part';\n const isFragmentHint = dataType === 'fragmentHint';\n const isFragment = dataType === 'fragment' || isPart || isFragmentHint;\n const isCue = dataType === 'cue';\n if (isCue) {\n view.y += view.height * 0.5 * (i % 2) - view.height * 0.25;\n } else if (isPart) {\n view.height -= 22;\n }\n const bounds = boundingRects(view);\n const drawText = bounds.w > lineHeight * 1.5 && !isFragmentHint;\n if (isFragment || isCue) {\n if (drawText) {\n view.borderWidth = 1;\n if (i === 0) {\n view.borderSkipped = false;\n }\n } else {\n range =\n range ||\n scale.getValueForPixel(chartArea.right) -\n scale.getValueForPixel(chartArea.left);\n if (range > 300 || isCue) {\n view.borderWidth = 0;\n }\n }\n if (isFragmentHint) {\n view.borderWidth = 0;\n view.backgroundColor = 'rgba(0, 0, 0, 0.1)';\n } else {\n view.backgroundColor = `rgba(0, 0, 0, ${0.05 + (i % 2) / 12})`;\n }\n }\n rect.draw();\n if (isFragment) {\n if (!stats) {\n stats = {};\n }\n if (isPart) {\n ctx.fillStyle = 'rgba(255, 255, 255, 0.5)';\n ctx.fillRect(bounds.x, bounds.y, bounds.w, bounds.h);\n }\n if (stats.aborted) {\n ctx.fillStyle = 'rgba(100, 0, 0, 0.3)';\n ctx.fillRect(bounds.x, bounds.y, bounds.w, bounds.h);\n }\n if (stats.loaded && stats.total) {\n ctx.fillStyle = 'rgba(50, 20, 100, 0.3)';\n ctx.fillRect(\n bounds.x,\n bounds.y,\n (bounds.w * stats.loaded) / stats.total,\n bounds.h\n );\n }\n } else if (isCue) {\n if (obj.active) {\n ctx.fillStyle = 'rgba(100, 100, 10, 0.4)';\n ctx.fillRect(bounds.x, bounds.y, bounds.w, bounds.h);\n }\n }\n if (drawText) {\n const start = val.start; // obj.start;\n ctx.fillStyle = 'rgb(0, 0, 0)';\n if (stats) {\n const snBounds = Object.assign({}, bounds);\n if (obj.cc) {\n const ccLabel = `cc:${obj.cc}`;\n const ccWidth = Math.min(\n ctx.measureText(ccLabel).width + 2,\n snBounds.w / 2 - 2\n );\n if (ccWidth) {\n ctx.fillText(\n ccLabel,\n snBounds.x + 2,\n snBounds.y + lineHeight,\n snBounds.w / 2 - 4\n );\n snBounds.x += ccWidth;\n snBounds.w -= ccWidth;\n }\n }\n const snLabel = isPart ? `part: ${obj.index}` : `sn: ${obj.sn}`;\n const textWidth = Math.min(\n ctx.measureText(snLabel).width + 2,\n snBounds.w - 2\n );\n ctx.fillText(\n snLabel,\n snBounds.x + snBounds.w - textWidth,\n snBounds.y + lineHeight,\n snBounds.w - 4\n );\n }\n if (isCue) {\n const strLength = Math.min(\n 30,\n Math.ceil(bounds.w / (lineHeight / 3))\n );\n ctx.fillText(\n ('' + obj.content).substr(0, strLength),\n bounds.x + 2,\n bounds.y + bounds.h - 3,\n bounds.w - 5\n );\n } else if (!isPart) {\n const float = start !== (start | 0);\n const fixedDigits = float\n ? Math.min(5, Math.max(1, Math.floor(bounds.w / 10 - 1)))\n : 0;\n const startString = hhmmss(start, fixedDigits);\n ctx.fillText(\n startString,\n bounds.x + 2,\n bounds.y + bounds.h - 3,\n bounds.w - 5\n );\n }\n }\n }\n }\n\n Chart.helpers.canvas.unclipArea(chart.ctx);\n};\n\nexport function applyChartInstanceOverrides(chart) {\n Object.keys(chart.scales).forEach((axis) => {\n const scale = chart.scales![axis];\n scale._parseValue = scaleParseValue;\n });\n}\n\nfunction scaleParseValue(value: number[] | any) {\n if (value === undefined) {\n console.warn('Chart values undefined (update chart)');\n return {};\n }\n\n let start;\n let end;\n let min;\n let max;\n\n if (Array.isArray(value)) {\n start = +this.getRightValue(value[0]);\n end = +this.getRightValue(value[1]);\n min = Math.min(start, end);\n max = Math.max(start, end);\n } else {\n start = +this.getRightValue(value.start);\n if ('end' in value) {\n end = +this.getRightValue(value.end);\n } else {\n end = +this.getRightValue(value.start + value.duration);\n }\n min = Math.min(start, end);\n max = Math.max(start, end);\n }\n\n return {\n min,\n max,\n start,\n end,\n };\n}\n\nfunction intersects(x1, x2, x3, x4) {\n return x2 > x3 && x1 < x4;\n}\n\nfunction boundingRects(vm) {\n const half = vm.height / 2;\n const left = Math.min(vm.x, vm.base);\n const right = Math.max(vm.x, vm.base);\n const top = vm.y - half;\n const bottom = vm.y + half;\n return {\n x: left,\n y: top,\n w: right - left,\n h: bottom - top,\n };\n}\n\nexport function hhmmss(value, fixedDigits) {\n const h = (value / 3600) | 0;\n const m = ((value / 60) | 0) % 60;\n const s = value % 60;\n return `${h}:${pad(m, 2)}:${pad(\n s.toFixed(fixedDigits),\n fixedDigits ? fixedDigits + 3 : 2\n )}`.replace(/^(?:0+:?)*(\\d.*?)(?:\\.0*)?$/, '$1');\n}\n\nfunction pad(str, length) {\n str = '' + str;\n while (str.length < length) {\n str = '0' + str;\n }\n return str;\n}\n","import Chart from 'chart.js';\nimport { applyChartInstanceOverrides, hhmmss } from './chartjs-horizontal-bar';\nimport { Fragment } from '../../src/loader/fragment';\nimport type { Level } from '../../src/types/level';\nimport type { TrackSet } from '../../src/types/track';\nimport type { MediaPlaylist } from '../../src/types/media-playlist';\nimport type { LevelDetails } from '../../src/loader/level-details';\nimport {\n FragChangedData,\n FragLoadedData,\n FragParsedData,\n} from '../../src/types/events';\n\ndeclare global {\n interface Window {\n Hls: any;\n hls: any;\n chart: any;\n }\n}\n\nconst X_AXIS_SECONDS = 'x-axis-seconds';\n\ninterface ChartScale {\n width: number;\n height: number;\n min: number;\n max: number;\n options: any;\n determineDataLimits: () => void;\n buildTicks: () => void;\n getLabelForIndex: (index: number, datasetIndex: number) => string;\n getPixelForTick: (index: number) => number;\n getPixelForValue: (\n value: number,\n index?: number,\n datasetIndex?: number\n ) => number;\n getValueForPixel: (pixel: number) => number;\n}\n\nexport class TimelineChart {\n private readonly chart: Chart;\n private rafDebounceRequestId: number = -1;\n private imageDataBuffer: ImageData | null = null;\n private media: HTMLMediaElement | null = null;\n private tracksChangeHandler?: (e) => void;\n private cuesChangeHandler?: (e) => void;\n private hidden: boolean = true;\n private zoom100: number = 60;\n\n constructor(canvas: HTMLCanvasElement, chartJsOptions?: any) {\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error(\n `Could not get CanvasRenderingContext2D from canvas: ${canvas}`\n );\n }\n const chart =\n (this.chart =\n self.chart =\n new Chart(ctx, {\n type: 'horizontalBar',\n data: {\n labels: [],\n datasets: [],\n },\n options: Object.assign(getChartOptions(), chartJsOptions),\n plugins: [\n {\n afterRender: (chart) => {\n this.imageDataBuffer = null;\n this.drawCurrentTime();\n },\n },\n ],\n }));\n\n applyChartInstanceOverrides(chart);\n\n canvas.ondblclick = (event: MouseEvent) => {\n const chart = this.chart;\n const chartArea: { left; top; right; bottom } = chart.chartArea;\n const element = chart.getElementAtEvent(event);\n const pos = Chart.helpers.getRelativePosition(event, chart);\n const scale = this.chartScales[X_AXIS_SECONDS];\n // zoom in when double clicking near elements in chart area\n if (element.length || pos.x > chartArea.left) {\n const amount = event.getModifierState('Shift') ? -1.0 : 0.5;\n this.zoom(scale, pos, amount);\n } else {\n scale.options.ticks.min = 0;\n scale.options.ticks.max = this.zoom100;\n }\n this.update();\n };\n\n canvas.onwheel = (event: WheelEvent) => {\n if (event.deltaMode) {\n // exit if wheel is in page or line scrolling mode\n return;\n }\n const chart = this.chart;\n const chartArea: { left; top; right; bottom } = chart.chartArea;\n const pos = Chart.helpers.getRelativePosition(event, chart);\n // zoom when scrolling over chart elements\n if (pos.x > chartArea.left - 11) {\n const scale = this.chartScales[X_AXIS_SECONDS];\n if (event.deltaY) {\n const direction = -event.deltaY / Math.abs(event.deltaY);\n const normal = Math.min(333, Math.abs(event.deltaY)) / 1000;\n const ease = 1 - (1 - normal) * (1 - normal);\n this.zoom(scale, pos, ease * direction);\n } else if (event.deltaX) {\n this.pan(scale, event.deltaX / 10, scale.min, scale.max);\n }\n event.preventDefault();\n }\n };\n\n let moved = false;\n let gestureScale = 1;\n canvas.onpointerdown = (downEvent: PointerEvent) => {\n if (!downEvent.isPrimary || gestureScale !== 1) {\n return;\n }\n const chart = this.chart;\n const chartArea: { left; top; right; bottom } = chart.chartArea;\n const pos = Chart.helpers.getRelativePosition(downEvent, chart);\n // pan when dragging over chart elements\n if (pos.x > chartArea.left) {\n const scale = this.chartScales[X_AXIS_SECONDS];\n const startX = downEvent.clientX;\n const { min, max } = scale;\n const xToVal = (max - min) / scale.width;\n moved = false;\n canvas.setPointerCapture(downEvent.pointerId);\n canvas.onpointermove = (moveEvent: PointerEvent) => {\n if (!downEvent.isPrimary || gestureScale !== 1) {\n return;\n }\n const movedX = startX - moveEvent.clientX;\n const movedValue = movedX * xToVal;\n moved = moved || Math.abs(movedX) > 8;\n this.pan(scale, movedValue, min, max);\n };\n }\n };\n\n canvas.onpointerup = canvas.onpointercancel = (upEvent: PointerEvent) => {\n if (canvas.onpointermove) {\n canvas.onpointermove = null;\n canvas.releasePointerCapture(upEvent.pointerId);\n }\n if (!moved && upEvent.isPrimary) {\n this.click(upEvent);\n }\n };\n\n // Gesture events are for iOS and easier to implement than pinch-zoom with multiple pointers for all browsers\n // @ts-ignore\n canvas.ongesturestart = (event) => {\n gestureScale = 1;\n event.preventDefault();\n };\n\n // @ts-ignore\n canvas.ongestureend = (event) => {\n gestureScale = 1;\n };\n\n // @ts-ignore\n canvas.ongesturechange = (event) => {\n const chart = this.chart;\n const chartArea: { left; top; right; bottom } = chart.chartArea;\n const pos = Chart.helpers.getRelativePosition(event, chart);\n // zoom when scrolling over chart elements\n if (pos.x > chartArea.left) {\n const scale = this.chartScales[X_AXIS_SECONDS];\n const amount = event.scale - gestureScale;\n this.zoom(scale, pos, amount);\n gestureScale = event.scale;\n }\n };\n }\n\n private click(event: MouseEvent) {\n // Log object on click and seek to position\n const chart = this.chart;\n const element = chart.getElementAtEvent(event);\n if (element.length && chart.data.datasets) {\n const dataset = chart.data.datasets[(element[0] as any)._datasetIndex];\n const obj = dataset.data![(element[0] as any)._index];\n // eslint-disable-next-line no-console\n console.log(obj);\n if (self.hls?.media) {\n const scale = this.chartScales[X_AXIS_SECONDS];\n const pos = Chart.helpers.getRelativePosition(event, chart);\n self.hls.media.currentTime = scale.getValueForPixel(pos.x);\n }\n }\n }\n\n private pan(scale: ChartScale, amount: number, min: number, max: number) {\n if (amount === 0) {\n return;\n }\n let pan = amount;\n if (amount > 0) {\n pan = Math.min(this.zoom100 + 10 - max, amount);\n } else {\n pan = Math.max(-10 - min, amount);\n }\n scale.options.ticks.min = min + pan;\n scale.options.ticks.max = max + pan;\n this.updateOnRepaint();\n }\n\n private zoom(scale: ChartScale, pos: any, amount: number) {\n const range = scale.max - scale.min;\n const diff = range * amount;\n const minPercent = (scale.getValueForPixel(pos.x) - scale.min) / range;\n const maxPercent = 1 - minPercent;\n const minDelta = diff * minPercent;\n const maxDelta = diff * maxPercent;\n scale.options.ticks.min = Math.max(-10, scale.min + minDelta);\n scale.options.ticks.max = Math.min(this.zoom100 + 10, scale.max - maxDelta);\n this.updateOnRepaint();\n }\n\n get chartScales(): { 'x-axis-seconds': ChartScale } {\n return (this.chart as any).scales;\n }\n\n reset() {\n const scale = this.chartScales[X_AXIS_SECONDS];\n scale.options.ticks.min = 0;\n scale.options.ticks.max = 60;\n const { labels, datasets } = this.chart.data;\n if (labels && datasets) {\n labels.length = 0;\n datasets.length = 0;\n this.resize(datasets);\n }\n }\n\n update() {\n if (this.hidden || !this.chart.ctx?.canvas.width) {\n return;\n }\n self.cancelAnimationFrame(this.rafDebounceRequestId);\n this.chart.update({\n duration: 0,\n lazy: true,\n });\n }\n\n updateOnRepaint() {\n if (this.hidden) {\n return;\n }\n self.cancelAnimationFrame(this.rafDebounceRequestId);\n this.rafDebounceRequestId = self.requestAnimationFrame(() => this.update());\n }\n\n resize(datasets?) {\n if (this.hidden) {\n return;\n }\n if (datasets?.length) {\n const scale = this.chartScales[X_AXIS_SECONDS];\n const { top } = this.chart.chartArea;\n const height =\n top +\n datasets.reduce((val, dataset) => val + dataset.barThickness, 0) +\n scale.height +\n 5;\n const container = this.chart.canvas?.parentElement;\n if (container) {\n container.style.height = `${height}px`;\n }\n }\n self.cancelAnimationFrame(this.rafDebounceRequestId);\n this.rafDebounceRequestId = self.requestAnimationFrame(() => {\n this.chart.resize();\n });\n }\n\n show() {\n this.hidden = false;\n }\n\n hide() {\n this.hidden = true;\n }\n\n updateLevels(levels: Level[], levelSwitched) {\n const { labels, datasets } = this.chart.data;\n if (!labels || !datasets) {\n return;\n }\n const { loadLevel, nextLoadLevel, nextAutoLevel } = self.hls;\n // eslint-disable-next-line no-undefined\n const currentLevel =\n levelSwitched !== undefined ? levelSwitched : self.hls.currentLevel;\n levels.forEach((level, i) => {\n const index = level.id || i;\n labels.push(getLevelName(level, index));\n let borderColor: string | null = null;\n if (currentLevel === i) {\n borderColor = 'rgba(32, 32, 240, 1.0)';\n } else if (loadLevel === i) {\n borderColor = 'rgba(255, 128, 0, 1.0)';\n } else if (nextLoadLevel === i) {\n borderColor = 'rgba(200, 200, 64, 1.0)';\n } else if (nextAutoLevel === i) {\n borderColor = 'rgba(160, 0, 160, 1.0)';\n }\n datasets.push(\n datasetWithDefaults({\n url: Array.isArray(level.url)\n ? level.url[level.urlId || 0]\n : level.url,\n trackType: 'level',\n borderColor,\n level: index,\n })\n );\n if (level.details) {\n this.updateLevelOrTrack(level.details);\n }\n });\n this.resize(datasets);\n }\n\n updateAudioTracks(audioTracks: MediaPlaylist[]) {\n const { labels, datasets } = this.chart.data;\n if (!labels || !datasets) {\n return;\n }\n const { audioTrack } = self.hls;\n audioTracks.forEach((track: MediaPlaylist, i) => {\n labels.push(getAudioTrackName(track, i));\n datasets.push(\n datasetWithDefaults({\n url: track.url,\n trackType: 'audioTrack',\n borderColor: audioTrack === i ? 'rgba(32, 32, 240, 1.0)' : null,\n audioTrack: i,\n })\n );\n if (track.details) {\n this.updateLevelOrTrack(track.details);\n }\n });\n this.resize(datasets);\n }\n\n updateSubtitleTracks(subtitles: MediaPlaylist[]) {\n const { labels, datasets } = this.chart.data;\n if (!labels || !datasets) {\n return;\n }\n const { subtitleTrack } = self.hls;\n subtitles.forEach((track, i) => {\n labels.push(getSubtitlesName(track, i));\n datasets.push(\n datasetWithDefaults({\n url: track.url,\n trackType: 'subtitleTrack',\n borderColor: subtitleTrack === i ? 'rgba(32, 32, 240, 1.0)' : null,\n subtitleTrack: i,\n })\n );\n if (track.details) {\n this.updateLevelOrTrack(track.details);\n }\n });\n this.resize(datasets);\n }\n\n removeType(\n trackType: 'level' | 'audioTrack' | 'subtitleTrack' | 'textTrack'\n ) {\n const { labels, datasets } = this.chart.data;\n if (!labels || !datasets) {\n return;\n }\n let i = datasets.length;\n while (i--) {\n if ((datasets[i] as any).trackType === trackType) {\n datasets.splice(i, 1);\n labels.splice(i, 1);\n }\n }\n }\n\n updateLevelOrTrack(details: LevelDetails) {\n const { targetduration, totalduration, url } = details;\n const { datasets } = this.chart.data;\n let levelDataSet = arrayFind(\n datasets,\n (dataset) =>\n stripDeliveryDirectives(url) ===\n stripDeliveryDirectives(dataset.url || '')\n );\n if (!levelDataSet) {\n levelDataSet = arrayFind(\n datasets,\n (dataset) => details.fragments[0]?.level === dataset.level\n );\n }\n if (!levelDataSet) {\n return;\n }\n const data = levelDataSet.data;\n data.length = 0;\n if (details.fragments) {\n details.fragments.forEach((fragment) => {\n // TODO: keep track of initial playlist start and duration so that we can show drift and pts offset\n // (Make that a feature of hls.js v1.0.0 fragments)\n const chartFragment = Object.assign(\n {\n dataType: 'fragment',\n },\n fragment,\n // Remove loader references for GC\n { loader: null }\n );\n data.push(chartFragment);\n });\n }\n if (details.partList) {\n details.partList.forEach((part) => {\n const chartPart = Object.assign(\n {\n dataType: 'part',\n start: part.fragment.start + part.fragOffset,\n },\n part,\n {\n fragment: Object.assign({}, part.fragment, { loader: null }),\n }\n );\n data.push(chartPart);\n });\n if (details.fragmentHint) {\n const chartFragment = Object.assign(\n {\n dataType: 'fragmentHint',\n },\n details.fragmentHint,\n // Remove loader references for GC\n { loader: null }\n );\n data.push(chartFragment);\n }\n }\n const start = getPlaylistStart(details);\n this.maxZoom = this.zoom100 = Math.max(\n start + totalduration + targetduration * 3,\n this.zoom100\n );\n this.updateOnRepaint();\n }\n\n // @ts-ignore\n get minZoom(): number {\n const scale = this.chartScales[X_AXIS_SECONDS];\n if (scale) {\n return scale.options.ticks.min;\n }\n return 1;\n }\n\n // @ts-ignore\n get maxZoom(): number {\n const scale = this.chartScales[X_AXIS_SECONDS];\n if (scale) {\n return scale.options.ticks.max;\n }\n return this.zoom100;\n }\n\n // @ts-ignore\n set maxZoom(x: number) {\n const currentZoom = this.maxZoom;\n const newZoom = Math.max(x, currentZoom);\n if (currentZoom === 60 && newZoom !== currentZoom) {\n const scale = this.chartScales[X_AXIS_SECONDS];\n scale.options.ticks.max = newZoom;\n }\n }\n\n updateFragment(data: FragLoadedData | FragParsedData | FragChangedData) {\n const { datasets } = this.chart.data;\n const frag: Fragment = data.frag;\n let levelDataSet = arrayFind(\n datasets,\n (dataset) => frag.baseurl === dataset.url\n );\n if (!levelDataSet) {\n levelDataSet = arrayFind(\n datasets,\n (dataset) => frag.level === dataset.level\n );\n }\n if (!levelDataSet) {\n return;\n }\n // eslint-disable-next-line no-restricted-properties\n const fragData = arrayFind(\n levelDataSet.data,\n (fragData) => fragData.relurl === frag.relurl && fragData.sn === frag.sn\n );\n if (fragData && fragData !== frag) {\n Object.assign(fragData, frag);\n }\n this.updateOnRepaint();\n }\n\n updateSourceBuffers(tracks: TrackSet, media: HTMLMediaElement) {\n const { labels, datasets } = this.chart.data;\n if (!labels || !datasets) {\n return;\n }\n const trackTypes = Object.keys(tracks).sort((type) =>\n type === 'video' ? 1 : -1\n );\n const mediaBufferData = [];\n\n this.removeSourceBuffers();\n\n this.media = media;\n\n trackTypes.forEach((type) => {\n const track = tracks[type];\n const data = [];\n const sourceBuffer = track.buffer;\n const backgroundColor = {\n video: 'rgba(0, 0, 255, 0.2)',\n audio: 'rgba(128, 128, 0, 0.2)',\n audiovideo: 'rgba(128, 128, 255, 0.2)',\n }[type];\n labels.unshift(`${type} buffer (${track.id})`);\n datasets.unshift(\n datasetWithDefaults({\n data,\n categoryPercentage: 0.5,\n backgroundColor,\n sourceBuffer,\n })\n );\n sourceBuffer.addEventListener('update', () => {\n try {\n replaceTimeRangeTuples(sourceBuffer.buffered, data);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(error);\n return;\n }\n replaceTimeRangeTuples(media.buffered, mediaBufferData);\n this.update();\n });\n });\n\n if (trackTypes.length === 0) {\n media.onprogress = () => {\n replaceTimeRangeTuples(media.buffered, mediaBufferData);\n this.update();\n };\n }\n\n labels.unshift('media buffer');\n datasets.unshift(\n datasetWithDefaults({\n data: mediaBufferData,\n categoryPercentage: 0.5,\n backgroundColor: 'rgba(0, 255, 0, 0.2)',\n media,\n })\n );\n\n media.ontimeupdate = () => this.drawCurrentTime();\n\n // TextTrackList\n const { textTracks } = media;\n this.tracksChangeHandler =\n this.tracksChangeHandler || ((e) => this.setTextTracks(e.currentTarget));\n textTracks.removeEventListener('addtrack', this.tracksChangeHandler);\n textTracks.removeEventListener('removetrack', this.tracksChangeHandler);\n textTracks.removeEventListener('change', this.tracksChangeHandler);\n textTracks.addEventListener('addtrack', this.tracksChangeHandler);\n textTracks.addEventListener('removetrack', this.tracksChangeHandler);\n textTracks.addEventListener('change', this.tracksChangeHandler);\n this.setTextTracks(textTracks);\n this.resize(datasets);\n }\n\n removeSourceBuffers() {\n const { labels, datasets } = this.chart.data;\n if (!labels || !datasets) {\n return;\n }\n let i = datasets.length;\n while (i--) {\n if ((labels[0] || '').toString().indexOf('buffer') > -1) {\n datasets.splice(i, 1);\n labels.splice(i, 1);\n }\n }\n }\n\n setTextTracks(textTracks) {\n const { labels, datasets } = this.chart.data;\n if (!labels || !datasets) {\n return;\n }\n this.removeType('textTrack');\n [].forEach.call(textTracks, (textTrack, i) => {\n // Uncomment to disable rending of subtitle/caption cues in the timeline\n // if (textTrack.kind === 'subtitles' || textTrack.kind === 'captions') {\n // return;\n // }\n const data = [];\n labels.push(\n `${textTrack.name || textTrack.label} ${textTrack.kind} (${\n textTrack.mode\n })`\n );\n datasets.push(\n datasetWithDefaults({\n data,\n categoryPercentage: 0.5,\n url: '',\n trackType: 'textTrack',\n borderColor:\n (textTrack.mode !== 'hidden') === i\n ? 'rgba(32, 32, 240, 1.0)'\n : null,\n textTrack: i,\n })\n );\n this.cuesChangeHandler =\n this.cuesChangeHandler ||\n ((e) => this.updateTextTrackCues(e.currentTarget));\n textTrack._data = data;\n textTrack.removeEventListener('cuechange', this.cuesChangeHandler);\n textTrack.addEventListener('cuechange', this.cuesChangeHandler);\n this.updateTextTrackCues(textTrack);\n });\n this.resize(datasets);\n }\n\n updateTextTrackCues(textTrack) {\n const data = textTrack._data;\n if (!data) {\n return;\n }\n const { activeCues, cues } = textTrack;\n data.length = 0;\n if (!cues) {\n return;\n }\n const length = cues.length;\n\n let activeLength = 0;\n let activeMin = Infinity;\n let activeMax = 0;\n if (activeCues) {\n activeLength = activeCues.length;\n for (let i = 0; i < activeLength; i++) {\n let cue = activeCues[i];\n if (!cue && activeCues.item) {\n cue = activeCues.item(i);\n }\n if (cue) {\n activeMin = Math.min(activeMin, cue.startTime);\n activeMax = cue.endTime\n ? Math.max(activeMax, cue.endTime)\n : activeMax;\n } else {\n activeLength--;\n }\n }\n }\n for (let i = 0; i < length; i++) {\n let cue = cues[i];\n if (!cue && cues.item) {\n cue = cues.item(i);\n }\n if (!cue) {\n continue;\n }\n const start = cue.startTime;\n const end = cue.endTime;\n const content = getCueLabel(cue);\n let active = false;\n if (activeLength && end >= activeMin && start <= activeMax) {\n active = [].some.call(activeCues, (activeCue) =>\n cuesMatch(activeCue, cue)\n );\n }\n data.push({\n start,\n end,\n content,\n active,\n dataType: 'cue',\n });\n }\n this.updateOnRepaint();\n }\n\n drawCurrentTime() {\n const chart = this.chart;\n if (self.hls?.media && chart.data.datasets!.length) {\n const currentTime = self.hls.media.currentTime;\n const scale = this.chartScales[X_AXIS_SECONDS];\n const ctx = chart.ctx;\n if (this.hidden || !ctx || !ctx.canvas.width) {\n return;\n }\n const chartArea: { left; top; right; bottom } = chart.chartArea;\n const x = scale.getPixelForValue(currentTime);\n ctx.restore();\n ctx.save();\n this.drawLineX(ctx, x, chartArea);\n if (x > chartArea.left && x < chartArea.right) {\n ctx.fillStyle = this.getCurrentTimeColor(self.hls.media);\n const y = chartArea.top + chart.data.datasets![0].barThickness + 1;\n ctx.fillText(hhmmss(currentTime, 5), x + 2, y, 100);\n }\n ctx.restore();\n }\n }\n\n getCurrentTimeColor(video: HTMLMediaElement): string {\n if (!video.readyState || video.ended) {\n return 'rgba(0, 0, 0, 0.9)';\n }\n if (video.seeking || video.readyState < 3) {\n return 'rgba(255, 128, 0, 0.9)';\n }\n if (video.paused) {\n return 'rgba(128, 0, 255, 0.9)';\n }\n return 'rgba(0, 0, 255, 0.9)';\n }\n\n drawLineX(ctx, x: number, chartArea) {\n if (!this.imageDataBuffer) {\n const devicePixelRatio = self.devicePixelRatio || 1;\n this.imageDataBuffer = ctx.getImageData(\n 0,\n 0,\n chartArea.right * devicePixelRatio,\n chartArea.bottom * devicePixelRatio\n );\n } else {\n ctx.fillStyle = '#ffffff';\n ctx.fillRect(0, 0, chartArea.right, chartArea.bottom);\n ctx.putImageData(this.imageDataBuffer, 0, 0);\n }\n if (x > chartArea.left && x < chartArea.right) {\n ctx.lineWidth = 1;\n ctx.strokeStyle = this.getCurrentTimeColor(self.hls.media); // alpha '0.5'\n ctx.beginPath();\n ctx.moveTo(x, chartArea.top);\n ctx.lineTo(x, chartArea.bottom);\n ctx.stroke();\n }\n }\n}\n\nfunction stripDeliveryDirectives(url: string): string {\n if (url === '') {\n return url;\n }\n try {\n const webUrl: URL = new self.URL(url);\n webUrl.searchParams.delete('_HLS_msn');\n webUrl.searchParams.delete('_HLS_part');\n webUrl.searchParams.delete('_HLS_skip');\n webUrl.searchParams.sort();\n return webUrl.href;\n } catch (e) {\n return url.replace(/[?&]_HLS_(?:msn|part|skip)=[^?&]+/g, '');\n }\n}\n\nfunction datasetWithDefaults(options) {\n return Object.assign(\n {\n data: [],\n xAxisID: X_AXIS_SECONDS,\n barThickness: 35,\n categoryPercentage: 1,\n },\n options\n );\n}\n\nfunction getPlaylistStart(details: LevelDetails): number {\n return details.fragments?.length ? details.fragments[0].start : 0;\n}\n\nfunction getLevelName(level: Level, index: number) {\n let label = '(main playlist)';\n if (level.attrs?.BANDWIDTH) {\n label = `${getMainLevelAttribute(level)}@${level.attrs.BANDWIDTH}`;\n if (level.name) {\n label = `${label} (${level.name})`;\n }\n } else if (level.name) {\n label = level.name;\n }\n return `${label} L-${index}`;\n}\n\nfunction getMainLevelAttribute(level: Level) {\n return level.attrs.RESOLUTION || level.attrs.CODECS || level.attrs.AUDIO;\n}\n\nfunction getAudioTrackName(track: MediaPlaylist, index: number) {\n const label = track.lang ? `${track.name}/${track.lang}` : track.name;\n return `${label} (${track.groupId || track.attrs['GROUP-ID']}) A-${index}`;\n}\n\nfunction getSubtitlesName(track: MediaPlaylist, index: number) {\n const label = track.lang ? `${track.name}/${track.lang}` : track.name;\n return `${label} (${track.groupId || track.attrs['GROUP-ID']}) S-${index}`;\n}\n\nfunction replaceTimeRangeTuples(timeRanges, data) {\n data.length = 0;\n const { length } = timeRanges;\n for (let i = 0; i < length; i++) {\n data.push([timeRanges.start(i), timeRanges.end(i)]);\n }\n}\n\nfunction cuesMatch(cue1, cue2) {\n return (\n cue1.startTime === cue2.startTime &&\n cue1.endTime === cue2.endTime &&\n cue1.text === cue2.text &&\n cue1.data === cue2.data &&\n JSON.stringify(cue1.value) === JSON.stringify(cue2.value)\n );\n}\n\nfunction getCueLabel(cue) {\n if (cue.text) {\n return cue.text;\n }\n const result = parseDataCue(cue);\n return JSON.stringify(result);\n}\n\nfunction parseDataCue(cue) {\n const data = {};\n const { value } = cue;\n if (value) {\n if (value.info) {\n let collection = data[value.key];\n if (collection !== Object(collection)) {\n collection = {};\n data[value.key] = collection;\n }\n collection[value.info] = value.data;\n } else {\n data[value.key] = value.data;\n }\n }\n return data;\n}\n\nfunction getChartOptions() {\n return {\n animation: {\n duration: 0,\n },\n elements: {\n rectangle: {\n borderWidth: 1,\n borderColor: 'rgba(20, 20, 20, 1)',\n },\n },\n events: ['click', 'touchstart'],\n hover: {\n mode: null,\n animationDuration: 0,\n },\n legend: {\n display: false,\n },\n maintainAspectRatio: false,\n\n responsiveAnimationDuration: 0,\n scales: {\n // TODO: additional xAxes for PTS and PDT\n xAxes: [\n {\n id: X_AXIS_SECONDS,\n ticks: {\n beginAtZero: true,\n sampleSize: 0,\n maxRotation: 0,\n callback: (tickValue, i, ticks) => {\n if (i === 0 || i === ticks.length - 1) {\n return tickValue ? '' : '0';\n } else {\n return hhmmss(tickValue, 2);\n }\n },\n },\n },\n ],\n yAxes: [\n {\n gridLines: {\n display: false,\n },\n },\n ],\n },\n tooltips: {\n enabled: false,\n },\n };\n}\n\nfunction arrayFind(array, predicate) {\n const len = array.length >>> 0;\n if (typeof predicate !== 'function') {\n throw TypeError('predicate must be a function');\n }\n const thisArg = arguments[2];\n let k = 0;\n while (k < len) {\n const kValue = array[k];\n if (predicate.call(thisArg, kValue, k, array)) {\n return kValue;\n }\n k++;\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n}\n","export function sortObject(obj) {\n if (typeof obj !== 'object') {\n return obj;\n }\n let temp = {};\n let keys = [];\n for (let key in obj) {\n keys.push(key);\n }\n keys.sort();\n for (let index in keys) {\n temp[keys[index]] = sortObject(obj[keys[index]]);\n }\n return temp;\n}\n\nexport function copyTextToClipboard(text) {\n let textArea = document.createElement('textarea');\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n try {\n let successful = document.execCommand('copy');\n let msg = successful ? 'successful' : 'unsuccessful';\n console.log('Copying text command was ' + msg);\n } catch (err) {\n console.log('Oops, unable to copy');\n }\n document.body.removeChild(textArea);\n}\n","/* global $, Hls, __NETLIFY__ */\n/* eslint camelcase: 0 */\n\nimport { pack } from 'jsonpack';\nimport 'promise-polyfill/src/polyfill';\nimport { sortObject, copyTextToClipboard } from './demo-utils';\nimport { TimelineChart } from './chart/timeline-chart';\n\nconst NETLIFY = __NETLIFY__; // replaced in build\n\nconst STORAGE_KEYS = {\n Editor_Persistence: 'hlsjs:config-editor-persist',\n Hls_Config: 'hlsjs:config',\n volume: 'hlsjs:volume',\n demo_tabs: 'hlsjs:demo-tabs',\n};\n\nconst testStreams = require('../tests/test-streams');\nconst defaultTestStreamUrl = testStreams[Object.keys(testStreams)[0]].url;\nconst sourceURL = decodeURIComponent(getURLParam('src', defaultTestStreamUrl));\n\nlet demoConfig = getURLParam('demoConfig', null);\nif (demoConfig) {\n demoConfig = JSON.parse(atob(demoConfig));\n} else {\n demoConfig = {};\n}\n\nconst hlsjsDefaults = {\n debug: true,\n enableWorker: true,\n lowLatencyMode: true,\n backBufferLength: 60 * 1.5,\n};\n\nlet enableStreaming = getDemoConfigPropOrDefault('enableStreaming', true);\nlet autoRecoverError = getDemoConfigPropOrDefault('autoRecoverError', true);\nlet levelCapping = getDemoConfigPropOrDefault('levelCapping', -1);\nlet limitMetrics = getDemoConfigPropOrDefault('limitMetrics', -1);\nlet dumpfMP4 = getDemoConfigPropOrDefault('dumpfMP4', false);\nlet stopOnStall = getDemoConfigPropOrDefault('stopOnStall', false);\n\nlet bufferingIdx = -1;\nlet selectedTestStream = null;\n\nlet video = document.querySelector('#video');\nconst startTime = Date.now();\n\nlet lastSeekingIdx;\nlet lastStartPosition;\nlet lastDuration;\nlet lastAudioTrackSwitchingIdx;\nlet hls;\nlet url;\nlet events;\nlet stats;\nlet tracks;\nlet fmp4Data;\nlet configPersistenceEnabled = false;\nlet configEditor = null;\nlet chart;\nlet resizeAsyncCallbackId = -1;\n\nconst requestAnimationFrame = self.requestAnimationFrame || self.setTimeout;\nconst cancelAnimationFrame = self.cancelAnimationFrame || self.clearTimeout;\nconst resizeHandlers = [];\nconst resize = () => {\n cancelAnimationFrame(resizeAsyncCallbackId);\n resizeAsyncCallbackId = requestAnimationFrame(() => {\n resizeHandlers.forEach((handler) => {\n handler();\n });\n });\n};\n\nself.onresize = resize;\nif (self.screen && self.screen.orientation) {\n self.screen.orientation.onchange = resize;\n}\n\nconst playerResize = () => {\n const bounds = video.getBoundingClientRect();\n $('#currentSize').html(\n `${Math.round(bounds.width * 10) / 10} x ${\n Math.round(bounds.height * 10) / 10\n }`\n );\n if (video.videoWidth && video.videoHeight) {\n $('#currentResolution').html(`${video.videoWidth} x ${video.videoHeight}`);\n }\n};\nresizeHandlers.push(playerResize);\n\n$(document).ready(function () {\n setupConfigEditor();\n\n chart = setupTimelineChart();\n\n Object.keys(testStreams).forEach((key, index) => {\n const stream = testStreams[key];\n const option = new Option(stream.description, key);\n $('#streamSelect').append(option);\n if (stream.url === sourceURL) {\n document.querySelector('#streamSelect').selectedIndex = index + 1;\n }\n });\n\n const videoWidth = video.style.width;\n if (videoWidth) {\n $('#videoSize option').each(function (i, option) {\n if (option.value === videoWidth) {\n document.querySelector('#videoSize').selectedIndex = i;\n $('#bufferedCanvas').width(videoWidth);\n resize();\n return false;\n }\n });\n }\n\n $('#streamSelect').change(function () {\n const key = $('#streamSelect').val() || Object.keys(testStreams)[0];\n selectedTestStream = testStreams[key];\n const streamUrl = selectedTestStream.url;\n $('#streamURL').val(streamUrl);\n loadSelectedStream();\n });\n\n $('#streamURL').change(function () {\n selectedTestStream = null;\n loadSelectedStream();\n });\n\n $('#videoSize').change(function () {\n $('#video').width($('#videoSize').val());\n $('#bufferedCanvas').width($('#videoSize').val());\n checkBuffer();\n resize();\n });\n\n $('#enableStreaming').click(function () {\n enableStreaming = this.checked;\n loadSelectedStream();\n });\n\n $('#autoRecoverError').click(function () {\n autoRecoverError = this.checked;\n onDemoConfigChanged();\n });\n\n $('#stopOnStall').click(function () {\n stopOnStall = this.checked;\n onDemoConfigChanged();\n });\n\n $('#dumpfMP4').click(function () {\n dumpfMP4 = this.checked;\n $('.btn-dump').toggle(dumpfMP4);\n onDemoConfigChanged();\n });\n\n $('#limitMetrics').change(function () {\n limitMetrics = this.value;\n onDemoConfigChanged();\n });\n\n $('#levelCapping').change(function () {\n levelCapping = this.value;\n onDemoConfigChanged();\n });\n\n $('#limitMetrics').val(limitMetrics);\n $('#enableStreaming').prop('checked', enableStreaming);\n $('#autoRecoverError').prop('checked', autoRecoverError);\n $('#stopOnStall').prop('checked', stopOnStall);\n $('#dumpfMP4').prop('checked', dumpfMP4);\n $('#levelCapping').val(levelCapping);\n\n // link to version on npm if canary\n // github branch for a branch version\n // github tag for a normal tag\n // github PR for a pr\n function getVersionLink(version) {\n const alphaRegex = /[-.]0\\.alpha\\./;\n if (alphaRegex.test(version)) {\n return `https://www.npmjs.com/package/hls.js/v/${encodeURIComponent(\n version\n )}`;\n } else if (NETLIFY.reviewID) {\n return `https://github.com/video-dev/hls.js/pull/${NETLIFY.reviewID}`;\n } else if (NETLIFY.branch) {\n return `https://github.com/video-dev/hls.js/tree/${encodeURIComponent(\n NETLIFY.branch\n )}`;\n }\n return `https://github.com/video-dev/hls.js/releases/tag/v${encodeURIComponent(\n version\n )}`;\n }\n\n const version = Hls.version;\n if (version) {\n const $a = $('')\n .attr('target', '_blank')\n .attr('rel', 'noopener noreferrer')\n .attr('href', getVersionLink(version))\n .text('v' + version);\n $('.title').append(' ').append($a);\n }\n\n $('#streamURL').val(sourceURL);\n\n const volumeSettings = JSON.parse(\n localStorage.getItem(STORAGE_KEYS.volume)\n ) || {\n volume: 0.05,\n muted: false,\n };\n video.volume = volumeSettings.volume;\n video.muted = volumeSettings.muted;\n\n $('.btn-dump').toggle(dumpfMP4);\n $('#toggleButtons').show();\n\n $('#metricsButtonWindow').toggle(self.windowSliding);\n $('#metricsButtonFixed').toggle(!self.windowSliding);\n\n loadSelectedStream();\n\n let tabIndexesCSV = localStorage.getItem(STORAGE_KEYS.demo_tabs);\n if (tabIndexesCSV === null) {\n tabIndexesCSV = '0,1,2';\n }\n if (tabIndexesCSV) {\n tabIndexesCSV.split(',').forEach((indexString) => {\n toggleTab($('.demo-tab-btn')[parseInt(indexString) || 0], true);\n });\n }\n $(window).on('popstate', function () {\n window.location.reload();\n });\n});\n\nfunction setupGlobals() {\n self.events = events = {\n url: url,\n t0: self.performance.now(),\n load: [],\n buffer: [],\n video: [],\n level: [],\n bitrate: [],\n };\n lastAudioTrackSwitchingIdx = undefined;\n lastSeekingIdx = undefined;\n bufferingIdx = -1;\n\n // actual values, only on window\n self.recoverDecodingErrorDate = null;\n self.recoverSwapAudioCodecDate = null;\n self.fmp4Data = fmp4Data = {\n audio: [],\n video: [],\n };\n self.onClickBufferedRange = onClickBufferedRange;\n self.updateLevelInfo = updateLevelInfo;\n self.onDemoConfigChanged = onDemoConfigChanged;\n self.createfMP4 = createfMP4;\n self.goToMetricsPermaLink = goToMetricsPermaLink;\n self.toggleTab = toggleTab;\n self.toggleTabClick = toggleTabClick;\n self.applyConfigEditorValue = applyConfigEditorValue;\n}\n\nfunction trimArray(target, limit) {\n if (limit < 0) {\n return;\n }\n\n while (target.length > limit) {\n target.shift();\n }\n}\n\nfunction trimEventHistory() {\n const x = limitMetrics;\n\n if (x < 0) {\n return;\n }\n\n trimArray(events.load, x);\n trimArray(events.buffer, x);\n trimArray(events.video, x);\n trimArray(events.level, x);\n trimArray(events.bitrate, x);\n}\n\nfunction loadSelectedStream() {\n $('#statusOut,#errorOut').empty();\n\n if (!Hls.isSupported()) {\n handleUnsupported();\n return;\n }\n\n url = $('#streamURL').val();\n\n setupGlobals();\n hideCanvas();\n\n if (hls) {\n hls.destroy();\n clearInterval(hls.bufferTimer);\n hls = null;\n }\n\n if (!enableStreaming) {\n logStatus('Streaming disabled');\n return;\n }\n\n logStatus('Loading ' + url);\n\n // Extending both a demo-specific config and the user config which can override all\n const hlsConfig = $.extend(\n {},\n hlsjsDefaults,\n getEditorValue({ parse: true })\n );\n\n if (selectedTestStream && selectedTestStream.config) {\n console.info(\n '[loadSelectedStream] extending hls config with stream-specific config: ',\n selectedTestStream.config\n );\n $.extend(hlsConfig, selectedTestStream.config);\n updateConfigEditorValue(hlsConfig);\n }\n\n onDemoConfigChanged(true);\n console.log('Using Hls.js config:', hlsConfig);\n\n self.hls = hls = new Hls(hlsConfig);\n\n logStatus('Loading manifest and attaching video element...');\n\n const expiredTracks = [].filter.call(\n video.textTracks,\n (track) => track.kind !== 'metadata'\n );\n if (expiredTracks.length) {\n const kinds = expiredTracks\n .map((track) => track.kind)\n .filter((kind, index, self) => self.indexOf(kind) === index);\n logStatus(\n `Replacing video element to remove ${kinds.join(' and ')} text tracks`\n );\n const videoWithExpiredTextTracks = video;\n video = videoWithExpiredTextTracks.cloneNode(false);\n video.removeAttribute('src');\n video.volume = videoWithExpiredTextTracks.volume;\n video.muted = videoWithExpiredTextTracks.muted;\n videoWithExpiredTextTracks.parentNode.insertBefore(\n video,\n videoWithExpiredTextTracks\n );\n videoWithExpiredTextTracks.parentNode.removeChild(\n videoWithExpiredTextTracks\n );\n }\n addChartEventListeners(hls);\n addVideoEventListeners(video);\n\n hls.loadSource(url);\n hls.autoLevelCapping = levelCapping;\n hls.attachMedia(video);\n\n hls.on(Hls.Events.MEDIA_ATTACHED, function () {\n logStatus('Media element attached');\n bufferingIdx = -1;\n events.video.push({\n time: self.performance.now() - events.t0,\n type: 'Media attached',\n });\n trimEventHistory();\n });\n\n hls.on(Hls.Events.MEDIA_DETACHED, function () {\n logStatus('Media element detached');\n clearInterval(hls.bufferTimer);\n bufferingIdx = -1;\n tracks = [];\n events.video.push({\n time: self.performance.now() - events.t0,\n type: 'Media detached',\n });\n trimEventHistory();\n });\n\n hls.on(Hls.Events.DESTROYING, function () {\n clearInterval(hls.bufferTimer);\n });\n hls.on(Hls.Events.BUFFER_RESET, function () {\n clearInterval(hls.bufferTimer);\n });\n\n hls.on(Hls.Events.FRAG_PARSING_INIT_SEGMENT, function (eventName, data) {\n showCanvas();\n events.video.push({\n time: self.performance.now() - events.t0,\n type: data.id + ' init segment',\n });\n trimEventHistory();\n });\n\n hls.on(Hls.Events.FRAG_PARSING_METADATA, function (eventName, data) {\n // console.log(\"Id3 samples \", data.samples);\n });\n\n hls.on(Hls.Events.LEVEL_SWITCHING, function (eventName, data) {\n events.level.push({\n time: self.performance.now() - events.t0,\n id: data.level,\n bitrate: Math.round(hls.levels[data.level].bitrate / 1000),\n });\n trimEventHistory();\n updateLevelInfo();\n });\n\n hls.on(Hls.Events.MANIFEST_PARSED, function (eventName, data) {\n events.load.push({\n type: 'manifest',\n name: '',\n start: 0,\n end: data.levels.length,\n time: data.stats.loading.start - events.t0,\n latency: data.stats.loading.first - data.stats.loading.start,\n load: data.stats.loading.end - data.stats.loading.first,\n duration: data.stats.loading.end - data.stats.loading.first,\n });\n trimEventHistory();\n self.refreshCanvas();\n });\n\n hls.on(Hls.Events.MANIFEST_PARSED, function (eventName, data) {\n logStatus(`${hls.levels.length} quality levels found`);\n logStatus('Manifest successfully loaded');\n stats = {\n levelNb: data.levels.length,\n levelParsed: 0,\n };\n trimEventHistory();\n updateLevelInfo();\n });\n\n hls.on(Hls.Events.AUDIO_TRACKS_UPDATED, function (eventName, data) {\n logStatus('No of audio tracks found: ' + data.audioTracks.length);\n updateAudioTrackInfo();\n });\n\n hls.on(Hls.Events.AUDIO_TRACK_SWITCHING, function (eventName, data) {\n logStatus('Audio track switching...');\n updateAudioTrackInfo();\n events.video.push({\n time: self.performance.now() - events.t0,\n type: 'audio switching',\n name: '@' + data.id,\n });\n trimEventHistory();\n lastAudioTrackSwitchingIdx = events.video.length - 1;\n });\n\n hls.on(Hls.Events.AUDIO_TRACK_SWITCHED, function (eventName, data) {\n logStatus('Audio track switched');\n updateAudioTrackInfo();\n const event = {\n time: self.performance.now() - events.t0,\n type: 'audio switched',\n name: '@' + data.id,\n };\n if (lastAudioTrackSwitchingIdx !== undefined) {\n events.video[lastAudioTrackSwitchingIdx].duration =\n event.time - events.video[lastAudioTrackSwitchingIdx].time;\n lastAudioTrackSwitchingIdx = undefined;\n }\n events.video.push(event);\n trimEventHistory();\n });\n\n hls.on(Hls.Events.LEVEL_LOADED, function (eventName, data) {\n events.isLive = data.details.live;\n const event = {\n type: 'level',\n id: data.level,\n start: data.details.startSN,\n end: data.details.endSN,\n time: data.stats.loading.start - events.t0,\n latency: data.stats.loading.first - data.stats.loading.start,\n load: data.stats.loading.end - data.stats.loading.first,\n parsing: data.stats.parsing.end - data.stats.loading.end,\n duration: data.stats.loading.end - data.stats.loading.first,\n };\n\n const parsingDuration = data.stats.parsing.end - data.stats.loading.end;\n if (stats.levelParsed) {\n this.sumLevelParsingMs += parsingDuration;\n } else {\n this.sumLevelParsingMs = parsingDuration;\n }\n\n stats.levelParsed++;\n stats.levelParsingUs = Math.round(\n (1000 * this.sumLevelParsingMs) / stats.levelParsed\n );\n\n // console.log('parsing level duration :' + stats.levelParsingUs + 'us,count:' + stats.levelParsed);\n\n events.load.push(event);\n trimEventHistory();\n self.refreshCanvas();\n });\n\n hls.on(Hls.Events.AUDIO_TRACK_LOADED, function (eventName, data) {\n events.isLive = data.details.live;\n const event = {\n type: 'audio track',\n id: data.id,\n start: data.details.startSN,\n end: data.details.endSN,\n time: data.stats.loading.start - events.t0,\n latency: data.stats.loading.first - data.stats.loading.start,\n load: data.stats.loading.end - data.stats.loading.first,\n parsing: data.stats.parsing.end - data.stats.loading.end,\n duration: data.stats.loading.end - data.stats.loading.first,\n };\n events.load.push(event);\n trimEventHistory();\n self.refreshCanvas();\n });\n\n hls.on(Hls.Events.FRAG_BUFFERED, function (eventName, data) {\n const event = {\n type: data.frag.type + (data.part ? ' part' : ' fragment'),\n id: data.frag.level,\n id2: data.frag.sn,\n id3: data.part ? data.part.index : undefined,\n time: data.stats.loading.start - events.t0,\n latency: data.stats.loading.first - data.stats.loading.start,\n load: data.stats.loading.end - data.stats.loading.first,\n parsing: data.stats.parsing.end - data.stats.loading.end,\n buffer: data.stats.buffering.end - data.stats.parsing.end,\n duration: data.stats.buffering.end - data.stats.loading.first,\n bw: Math.round(\n (8 * data.stats.total) /\n (data.stats.buffering.end - data.stats.loading.start)\n ),\n size: data.stats.total,\n };\n events.load.push(event);\n events.bitrate.push({\n time: self.performance.now() - events.t0,\n bitrate: event.bw,\n duration: data.frag.duration,\n level: event.id,\n });\n if (events.buffer.length === 0) {\n events.buffer.push({\n time: 0,\n buffer: 0,\n pos: 0,\n });\n }\n clearInterval(hls.bufferTimer);\n hls.bufferTimer = self.setInterval(checkBuffer, 100);\n trimEventHistory();\n self.refreshCanvas();\n updateLevelInfo();\n\n const latency = data.stats.loading.first - data.stats.loading.start;\n const parsing = data.stats.parsing.end - data.stats.loading.end;\n const process = data.stats.buffering.end - data.stats.loading.start;\n const bitrate = Math.round(\n (8 * data.stats.total) /\n (data.stats.buffering.end - data.stats.loading.first)\n );\n\n if (stats.fragBuffered) {\n stats.fragMinLatency = Math.min(stats.fragMinLatency, latency);\n stats.fragMaxLatency = Math.max(stats.fragMaxLatency, latency);\n stats.fragMinProcess = Math.min(stats.fragMinProcess, process);\n stats.fragMaxProcess = Math.max(stats.fragMaxProcess, process);\n stats.fragMinKbps = Math.min(stats.fragMinKbps, bitrate);\n stats.fragMaxKbps = Math.max(stats.fragMaxKbps, bitrate);\n stats.autoLevelCappingMin = Math.min(\n stats.autoLevelCappingMin,\n hls.autoLevelCapping\n );\n stats.autoLevelCappingMax = Math.max(\n stats.autoLevelCappingMax,\n hls.autoLevelCapping\n );\n stats.fragBuffered++;\n } else {\n stats.fragMinLatency = stats.fragMaxLatency = latency;\n stats.fragMinProcess = stats.fragMaxProcess = process;\n stats.fragMinKbps = stats.fragMaxKbps = bitrate;\n stats.fragBuffered = 1;\n stats.fragBufferedBytes = 0;\n stats.autoLevelCappingMin = stats.autoLevelCappingMax =\n hls.autoLevelCapping;\n this.sumLatency = 0;\n this.sumKbps = 0;\n this.sumProcess = 0;\n this.sumParsing = 0;\n }\n stats.fraglastLatency = latency;\n this.sumLatency += latency;\n stats.fragAvgLatency = Math.round(this.sumLatency / stats.fragBuffered);\n stats.fragLastProcess = process;\n this.sumProcess += process;\n this.sumParsing += parsing;\n stats.fragAvgProcess = Math.round(this.sumProcess / stats.fragBuffered);\n stats.fragLastKbps = bitrate;\n this.sumKbps += bitrate;\n stats.fragAvgKbps = Math.round(this.sumKbps / stats.fragBuffered);\n stats.fragBufferedBytes += data.stats.total;\n stats.fragparsingKbps = Math.round(\n (8 * stats.fragBufferedBytes) / this.sumParsing\n );\n stats.fragparsingMs = Math.round(this.sumParsing);\n stats.autoLevelCappingLast = hls.autoLevelCapping;\n });\n\n hls.on(Hls.Events.LEVEL_SWITCHED, function (eventName, data) {\n const event = {\n time: self.performance.now() - events.t0,\n type: 'level switched',\n name: data.level,\n };\n events.video.push(event);\n trimEventHistory();\n self.refreshCanvas();\n updateLevelInfo();\n });\n\n hls.on(Hls.Events.FRAG_CHANGED, function (eventName, data) {\n const event = {\n time: self.performance.now() - events.t0,\n type: 'frag changed',\n name: data.frag.sn + ' @ ' + data.frag.level,\n };\n events.video.push(event);\n trimEventHistory();\n self.refreshCanvas();\n updateLevelInfo();\n stats.tagList = data.frag.tagList;\n\n const level = data.frag.level;\n const autoLevel = hls.autoLevelEnabled;\n if (stats.levelStart === undefined) {\n stats.levelStart = level;\n }\n\n stats.fragProgramDateTime = data.frag.programDateTime;\n stats.fragStart = data.frag.start;\n\n if (autoLevel) {\n if (stats.fragChangedAuto) {\n stats.autoLevelMin = Math.min(stats.autoLevelMin, level);\n stats.autoLevelMax = Math.max(stats.autoLevelMax, level);\n stats.fragChangedAuto++;\n if (this.levelLastAuto && level !== stats.autoLevelLast) {\n stats.autoLevelSwitch++;\n }\n } else {\n stats.autoLevelMin = stats.autoLevelMax = level;\n stats.autoLevelSwitch = 0;\n stats.fragChangedAuto = 1;\n this.sumAutoLevel = 0;\n }\n this.sumAutoLevel += level;\n stats.autoLevelAvg =\n Math.round((1000 * this.sumAutoLevel) / stats.fragChangedAuto) / 1000;\n stats.autoLevelLast = level;\n } else {\n if (stats.fragChangedManual) {\n stats.manualLevelMin = Math.min(stats.manualLevelMin, level);\n stats.manualLevelMax = Math.max(stats.manualLevelMax, level);\n stats.fragChangedManual++;\n if (!this.levelLastAuto && level !== stats.manualLevelLast) {\n stats.manualLevelSwitch++;\n }\n } else {\n stats.manualLevelMin = stats.manualLevelMax = level;\n stats.manualLevelSwitch = 0;\n stats.fragChangedManual = 1;\n }\n stats.manualLevelLast = level;\n }\n this.levelLastAuto = autoLevel;\n });\n\n hls.on(Hls.Events.FRAG_LOAD_EMERGENCY_ABORTED, function (eventName, data) {\n if (stats) {\n if (stats.fragLoadEmergencyAborted === undefined) {\n stats.fragLoadEmergencyAborted = 1;\n } else {\n stats.fragLoadEmergencyAborted++;\n }\n }\n });\n\n hls.on(Hls.Events.FRAG_DECRYPTED, function (eventName, data) {\n if (!stats.fragDecrypted) {\n stats.fragDecrypted = 0;\n this.totalDecryptTime = 0;\n stats.fragAvgDecryptTime = 0;\n }\n stats.fragDecrypted++;\n this.totalDecryptTime += data.stats.tdecrypt - data.stats.tstart;\n stats.fragAvgDecryptTime = this.totalDecryptTime / stats.fragDecrypted;\n });\n\n hls.on(Hls.Events.ERROR, function (eventName, data) {\n console.warn('Error event:', data);\n switch (data.details) {\n case Hls.ErrorDetails.MANIFEST_LOAD_ERROR:\n try {\n $('#errorOut').html(\n 'Cannot load ' +\n url +\n '
HTTP response code:' +\n data.response.code +\n '
' +\n data.response.text\n );\n if (data.response.code === 0) {\n $('#errorOut').append(\n 'This might be a CORS issue, consider installing Allow-Control-Allow-Origin Chrome Extension'\n );\n }\n } catch (err) {\n $('#errorOut').html(\n 'Cannot load ' +\n url +\n '
Response body: ' +\n data.response.text\n );\n }\n break;\n case Hls.ErrorDetails.MANIFEST_LOAD_TIMEOUT:\n logError('Timeout while loading manifest');\n break;\n case Hls.ErrorDetails.MANIFEST_PARSING_ERROR:\n logError('Error while parsing manifest:' + data.reason);\n break;\n case Hls.ErrorDetails.LEVEL_EMPTY_ERROR:\n logError(\n 'Loaded level contains no fragments ' + data.level + ' ' + data.url\n );\n // handleLevelError demonstrates how to remove a level that errors followed by a downswitch\n // handleLevelError(data);\n break;\n case Hls.ErrorDetails.LEVEL_LOAD_ERROR:\n logError(\n 'Error while loading level playlist ' +\n data.context.level +\n ' ' +\n data.url\n );\n // handleLevelError demonstrates how to remove a level that errors followed by a downswitch\n // handleLevelError(data);\n break;\n case Hls.ErrorDetails.LEVEL_LOAD_TIMEOUT:\n logError(\n 'Timeout while loading level playlist ' +\n data.context.level +\n ' ' +\n data.url\n );\n // handleLevelError demonstrates how to remove a level that errors followed by a downswitch\n // handleLevelError(data);\n break;\n case Hls.ErrorDetails.LEVEL_SWITCH_ERROR:\n logError('Error while trying to switch to level ' + data.level);\n break;\n case Hls.ErrorDetails.FRAG_LOAD_ERROR:\n logError('Error while loading fragment ' + data.frag.url);\n break;\n case Hls.ErrorDetails.FRAG_LOAD_TIMEOUT:\n logError('Timeout while loading fragment ' + data.frag.url);\n break;\n case Hls.ErrorDetails.FRAG_LOOP_LOADING_ERROR:\n logError('Fragment-loop loading error');\n break;\n case Hls.ErrorDetails.FRAG_DECRYPT_ERROR:\n logError('Decrypting error:' + data.reason);\n break;\n case Hls.ErrorDetails.FRAG_PARSING_ERROR:\n logError('Parsing error:' + data.reason);\n break;\n case Hls.ErrorDetails.KEY_LOAD_ERROR:\n logError('Error while loading key ' + data.frag.decryptdata.uri);\n break;\n case Hls.ErrorDetails.KEY_LOAD_TIMEOUT:\n logError('Timeout while loading key ' + data.frag.decryptdata.uri);\n break;\n case Hls.ErrorDetails.BUFFER_APPEND_ERROR:\n logError('Buffer append error');\n break;\n case Hls.ErrorDetails.BUFFER_ADD_CODEC_ERROR:\n logError(\n 'Buffer add codec error for ' +\n data.mimeType +\n ':' +\n data.error.message\n );\n break;\n case Hls.ErrorDetails.BUFFER_APPENDING_ERROR:\n logError('Buffer appending error');\n break;\n case Hls.ErrorDetails.BUFFER_STALLED_ERROR:\n logError('Buffer stalled error');\n if (stopOnStall) {\n hls.stopLoad();\n video.pause();\n }\n break;\n default:\n break;\n }\n\n if (data.fatal) {\n console.error(`Fatal error : ${data.details}`);\n switch (data.type) {\n case Hls.ErrorTypes.MEDIA_ERROR:\n logError(`A media error occurred: ${data.details}`);\n handleMediaError();\n break;\n case Hls.ErrorTypes.NETWORK_ERROR:\n logError(`A network error occurred: ${data.details}`);\n break;\n default:\n logError(`An unrecoverable error occurred: ${data.details}`);\n hls.destroy();\n break;\n }\n }\n if (!stats) {\n stats = {};\n }\n\n // track all errors independently\n if (stats[data.details] === undefined) {\n stats[data.details] = 1;\n } else {\n stats[data.details] += 1;\n }\n\n // track fatal error\n if (data.fatal) {\n if (stats.fatalError === undefined) {\n stats.fatalError = 1;\n } else {\n stats.fatalError += 1;\n }\n }\n $('#statisticsOut').text(JSON.stringify(sortObject(stats), null, '\\t'));\n });\n\n hls.on(Hls.Events.BUFFER_CREATED, function (eventName, data) {\n tracks = data.tracks;\n });\n\n hls.on(Hls.Events.BUFFER_APPENDING, function (eventName, data) {\n if (dumpfMP4) {\n fmp4Data[data.type].push(data.data);\n }\n });\n\n hls.on(Hls.Events.FPS_DROP, function (eventName, data) {\n const event = {\n time: self.performance.now() - events.t0,\n type: 'frame drop',\n name: data.currentDropped + '/' + data.currentDecoded,\n };\n events.video.push(event);\n trimEventHistory();\n if (stats) {\n if (stats.fpsDropEvent === undefined) {\n stats.fpsDropEvent = 1;\n } else {\n stats.fpsDropEvent++;\n }\n\n stats.fpsTotalDroppedFrames = data.totalDroppedFrames;\n }\n });\n}\n\nfunction addVideoEventListeners(video) {\n video.removeEventListener('resize', handleVideoEvent);\n video.removeEventListener('seeking', handleVideoEvent);\n video.removeEventListener('seeked', handleVideoEvent);\n video.removeEventListener('pause', handleVideoEvent);\n video.removeEventListener('play', handleVideoEvent);\n video.removeEventListener('canplay', handleVideoEvent);\n video.removeEventListener('canplaythrough', handleVideoEvent);\n video.removeEventListener('ended', handleVideoEvent);\n video.removeEventListener('playing', handleVideoEvent);\n video.removeEventListener('error', handleVideoEvent);\n video.removeEventListener('loadedmetadata', handleVideoEvent);\n video.removeEventListener('loadeddata', handleVideoEvent);\n video.removeEventListener('durationchange', handleVideoEvent);\n video.removeEventListener('volumechange', handleVolumeEvent);\n video.addEventListener('resize', handleVideoEvent);\n video.addEventListener('seeking', handleVideoEvent);\n video.addEventListener('seeked', handleVideoEvent);\n video.addEventListener('pause', handleVideoEvent);\n video.addEventListener('play', handleVideoEvent);\n video.addEventListener('canplay', handleVideoEvent);\n video.addEventListener('canplaythrough', handleVideoEvent);\n video.addEventListener('ended', handleVideoEvent);\n video.addEventListener('playing', handleVideoEvent);\n video.addEventListener('error', handleVideoEvent);\n video.addEventListener('loadedmetadata', handleVideoEvent);\n video.addEventListener('loadeddata', handleVideoEvent);\n video.addEventListener('durationchange', handleVideoEvent);\n video.addEventListener('volumechange', handleVolumeEvent);\n}\n\nfunction handleUnsupported() {\n if (navigator.userAgent.toLowerCase().indexOf('firefox') !== -1) {\n logStatus(\n 'You are using Firefox, it looks like MediaSource is not enabled,
please ensure the following keys are set appropriately in about:config
media.mediasource.enabled=true
media.mediasource.mp4.enabled=true
media.mediasource.whitelist=false'\n );\n } else {\n logStatus(\n 'Your Browser does not support MediaSourceExtension / MP4 mediasource'\n );\n }\n}\n\nfunction handleVideoEvent(evt) {\n let data = '';\n switch (evt.type) {\n case 'durationchange':\n if (evt.target.duration - lastDuration <= 0.5) {\n // some browsers report several duration change events with almost the same value ... avoid spamming video events\n return;\n }\n lastDuration = evt.target.duration;\n data = Math.round(evt.target.duration * 1000);\n break;\n case 'resize':\n data = evt.target.videoWidth + '/' + evt.target.videoHeight;\n playerResize();\n break;\n case 'loadedmetadata':\n case 'loadeddata':\n case 'canplay':\n case 'canplaythrough':\n case 'ended':\n case 'seeking':\n case 'seeked':\n case 'play':\n case 'playing':\n lastStartPosition = evt.target.currentTime;\n case 'pause':\n case 'waiting':\n case 'stalled':\n case 'error':\n data = Math.round(evt.target.currentTime * 1000);\n if (evt.type === 'error') {\n let errorTxt;\n const mediaError = evt.currentTarget.error;\n switch (mediaError.code) {\n case mediaError.MEDIA_ERR_ABORTED:\n errorTxt = 'You aborted the video playback';\n break;\n case mediaError.MEDIA_ERR_DECODE:\n errorTxt =\n 'The video playback was aborted due to a corruption problem or because the video used features your browser did not support';\n handleMediaError();\n break;\n case mediaError.MEDIA_ERR_NETWORK:\n errorTxt =\n 'A network error caused the video download to fail part-way';\n break;\n case mediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:\n errorTxt =\n 'The video could not be loaded, either because the server or network failed or because the format is not supported';\n break;\n }\n\n if (mediaError.message) {\n errorTxt += ' - ' + mediaError.message;\n }\n\n logStatus(errorTxt);\n console.error(errorTxt);\n }\n break;\n default:\n break;\n }\n\n const event = {\n time: self.performance.now() - events.t0,\n type: evt.type,\n name: data,\n };\n\n events.video.push(event);\n if (evt.type === 'seeking') {\n lastSeekingIdx = events.video.length - 1;\n }\n\n if (evt.type === 'seeked') {\n events.video[lastSeekingIdx].duration =\n event.time - events.video[lastSeekingIdx].time;\n }\n\n trimEventHistory();\n}\n\nfunction handleVolumeEvent() {\n localStorage.setItem(\n STORAGE_KEYS.volume,\n JSON.stringify({\n muted: video.muted,\n volume: video.volume,\n })\n );\n}\n\nfunction handleLevelError(data) {\n var levelObj = data.context || data;\n hls.removeLevel(levelObj.level, levelObj.urlId || 0);\n if (!hls.levels.length) {\n logError('All levels have been removed');\n hls.destroy();\n return;\n }\n // Trigger an immediate downswitch to the first level\n // This is to handle the case where we start at an empty level, where switching to auto causes hlsjs to stall\n hls.currentLevel = 0;\n // Set the quality back to auto so that we return to optimal quality\n hls.currentLevel = -1;\n}\n\nfunction handleMediaError() {\n if (autoRecoverError) {\n const now = self.performance.now();\n if (\n !self.recoverDecodingErrorDate ||\n now - self.recoverDecodingErrorDate > 3000\n ) {\n self.recoverDecodingErrorDate = self.performance.now();\n $('#statusOut').append(', trying to recover media error.');\n hls.recoverMediaError();\n } else {\n if (\n !self.recoverSwapAudioCodecDate ||\n now - self.recoverSwapAudioCodecDate > 3000\n ) {\n self.recoverSwapAudioCodecDate = self.performance.now();\n $('#statusOut').append(\n ', trying to swap audio codec and recover media error.'\n );\n hls.swapAudioCodec();\n hls.recoverMediaError();\n } else {\n $('#statusOut').append(\n ', cannot recover. Last media error recovery failed.'\n );\n }\n }\n }\n}\n\nfunction timeRangesToString(r) {\n let log = '';\n for (let i = 0; i < r.length; i++) {\n log += '[' + r.start(i) + ', ' + r.end(i) + ']';\n log += ' ';\n }\n return log;\n}\n\nfunction checkBuffer() {\n const canvas = document.querySelector('#bufferedCanvas');\n const ctx = canvas.getContext('2d');\n const r = video.buffered;\n const seekableEnd = getSeekableEnd();\n let bufferingDuration;\n if (r) {\n ctx.fillStyle = 'black';\n if (!canvas.width || canvas.width !== video.clientWidth) {\n canvas.width = video.clientWidth;\n }\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const pos = video.currentTime;\n let bufferLen = 0;\n ctx.fillStyle = 'gray';\n for (let i = 0; i < r.length; i++) {\n const start = (r.start(i) / seekableEnd) * canvas.width;\n const end = (r.end(i) / seekableEnd) * canvas.width;\n ctx.fillRect(start, 2, Math.max(2, end - start), 11);\n if (pos >= r.start(i) && pos < r.end(i)) {\n // play position is inside this buffer TimeRange, retrieve end of buffer position and buffer length\n bufferLen = r.end(i) - pos;\n }\n }\n // check if we are in buffering / or playback ended state\n if (\n bufferLen <= 0.1 &&\n video.paused === false &&\n pos - lastStartPosition > 0.5\n ) {\n if (lastDuration - pos <= 0.5 && events.isLive === false) {\n // don't create buffering event if we are at the end of the playlist, don't report ended for live playlist\n } else {\n // we are not at the end of the playlist ... real buffering\n if (bufferingIdx !== -1) {\n bufferingDuration =\n self.performance.now() -\n events.t0 -\n events.video[bufferingIdx].time;\n events.video[bufferingIdx].duration = bufferingDuration;\n events.video[bufferingIdx].name = bufferingDuration;\n } else {\n events.video.push({\n type: 'buffering',\n time: self.performance.now() - events.t0,\n });\n trimEventHistory();\n // we are in buffering state\n bufferingIdx = events.video.length - 1;\n }\n }\n }\n\n if (bufferLen > 0.1 && bufferingIdx !== -1) {\n bufferingDuration =\n self.performance.now() - events.t0 - events.video[bufferingIdx].time;\n events.video[bufferingIdx].duration = bufferingDuration;\n events.video[bufferingIdx].name = bufferingDuration;\n // we are out of buffering state\n bufferingIdx = -1;\n }\n\n // update buffer/position for current Time\n const event = {\n time: self.performance.now() - events.t0,\n buffer: Math.round(bufferLen * 1000),\n pos: Math.round(pos * 1000),\n };\n const bufEvents = events.buffer;\n const bufEventLen = bufEvents.length;\n if (bufEventLen > 1) {\n const event0 = bufEvents[bufEventLen - 2];\n const event1 = bufEvents[bufEventLen - 1];\n const slopeBuf0 =\n (event0.buffer - event1.buffer) / (event0.time - event1.time);\n const slopeBuf1 =\n (event1.buffer - event.buffer) / (event1.time - event.time);\n\n const slopePos0 = (event0.pos - event1.pos) / (event0.time - event1.time);\n const slopePos1 = (event1.pos - event.pos) / (event1.time - event.time);\n // compute slopes. if less than 30% difference, remove event1\n if (\n (slopeBuf0 === slopeBuf1 ||\n Math.abs(slopeBuf0 / slopeBuf1 - 1) <= 0.3) &&\n (slopePos0 === slopePos1 || Math.abs(slopePos0 / slopePos1 - 1) <= 0.3)\n ) {\n bufEvents.pop();\n }\n }\n events.buffer.push(event);\n trimEventHistory();\n self.refreshCanvas();\n\n if ($('#statsDisplayTab').is(':visible')) {\n let log = `Duration: ${video.duration}\\nBuffered: ${timeRangesToString(\n video.buffered\n )}\\nSeekable: ${timeRangesToString(\n video.seekable\n )}\\nPlayed: ${timeRangesToString(video.played)}\\n`;\n if (hls.media) {\n for (const type in tracks) {\n log += `Buffer for ${type} contains:${timeRangesToString(\n tracks[type].buffer.buffered\n )}\\n`;\n }\n const videoPlaybackQuality = video.getVideoPlaybackQuality;\n if (\n videoPlaybackQuality &&\n typeof videoPlaybackQuality === typeof Function\n ) {\n log += `Dropped frames: ${\n video.getVideoPlaybackQuality().droppedVideoFrames\n }\\n`;\n log += `Corrupted frames: ${\n video.getVideoPlaybackQuality().corruptedVideoFrames\n }\\n`;\n } else if (video.webkitDroppedFrameCount) {\n log += `Dropped frames: ${video.webkitDroppedFrameCount}\\n`;\n }\n }\n log += `Bandwidth Estimate: ${hls.bandwidthEstimate.toFixed(3)}\\n`;\n if (events.isLive) {\n log +=\n 'Live Stats:\\n' +\n ` Max Latency: ${hls.maxLatency}\\n` +\n ` Target Latency: ${hls.targetLatency.toFixed(3)}\\n` +\n ` Latency: ${hls.latency.toFixed(3)}\\n` +\n ` Drift: ${hls.drift.toFixed(3)} (edge advance rate)\\n` +\n ` Edge Stall: ${hls.latencyController.edgeStalled.toFixed(\n 3\n )} (playlist refresh over target duration/part)\\n` +\n ` Playback rate: ${video.playbackRate.toFixed(2)}\\n`;\n if (stats.fragProgramDateTime) {\n const currentPDT =\n stats.fragProgramDateTime +\n (video.currentTime - stats.fragStart) * 1000;\n log += ` Program Date Time: ${new Date(currentPDT).toISOString()}`;\n const pdtLatency = (Date.now() - currentPDT) / 1000;\n if (pdtLatency > 0) {\n log += ` (${pdtLatency.toFixed(3)} seconds ago)`;\n }\n }\n }\n\n $('#bufferedOut').text(log);\n $('#statisticsOut').text(JSON.stringify(sortObject(stats), null, '\\t'));\n }\n\n ctx.fillStyle = 'blue';\n const x = (video.currentTime / seekableEnd) * canvas.width;\n ctx.fillRect(x, 0, 2, 15);\n } else if (ctx.fillStyle !== 'black') {\n ctx.fillStyle = 'black';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n}\n\nfunction showCanvas() {\n self.showMetrics();\n $('#bufferedOut').show();\n $('#bufferedCanvas').show();\n}\n\nfunction hideCanvas() {\n self.hideMetrics();\n $('#bufferedOut').hide();\n $('#bufferedCanvas').hide();\n}\n\nfunction getMetrics() {\n const json = JSON.stringify(events);\n const jsonpacked = pack(json);\n // console.log('packing JSON from ' + json.length + ' to ' + jsonpacked.length + ' bytes');\n return btoa(jsonpacked);\n}\n\nself.copyMetricsToClipBoard = function () {\n copyTextToClipboard(getMetrics());\n};\n\nself.goToMetrics = function () {\n let url = document.URL;\n url = url.substr(0, url.lastIndexOf('/') + 1) + 'metrics.html';\n self.open(url, '_blank');\n};\n\nfunction goToMetricsPermaLink() {\n let url = document.URL;\n const b64 = getMetrics();\n url = url.substr(0, url.lastIndexOf('/') + 1) + 'metrics.html#data=' + b64;\n self.open(url, '_blank');\n}\n\nfunction onClickBufferedRange(event) {\n const canvas = document.querySelector('#bufferedCanvas');\n const target =\n ((event.clientX - canvas.offsetLeft) / canvas.width) * getSeekableEnd();\n video.currentTime = target;\n}\n\nfunction getSeekableEnd() {\n if (isFinite(video.duration)) {\n return video.duration;\n }\n if (video.seekable.length) {\n return video.seekable.end(video.seekable.length - 1);\n }\n return 0;\n}\n\nfunction getLevelButtonHtml(key, levels, onclickReplace, autoEnabled) {\n const onclickAuto = `${key}=-1`.replace(/^(\\w+)=([^=]+)$/, onclickReplace);\n const codecs = levels.reduce((uniqueCodecs, level) => {\n const levelCodecs = codecs2label(level.attrs.CODECS);\n if (levelCodecs && uniqueCodecs.indexOf(levelCodecs) === -1) {\n uniqueCodecs.push(levelCodecs);\n }\n return uniqueCodecs;\n }, []);\n return (\n `` +\n levels\n .map((level, i) => {\n const enabled = hls[key] === i;\n const onclick = `${key}=${i}`.replace(/^(\\w+)=(\\w+)$/, onclickReplace);\n const label = level2label(levels[i], i, codecs);\n return ``;\n })\n .join('')\n );\n}\n\nfunction updateLevelInfo() {\n const levels = hls.levels;\n if (!levels) {\n return;\n }\n\n const htmlCurrentLevel = getLevelButtonHtml(\n 'currentLevel',\n levels,\n 'hls.$1=$2',\n hls.autoLevelEnabled\n );\n const htmlNextLevel = getLevelButtonHtml(\n 'nextLevel',\n levels,\n 'hls.$1=$2',\n hls.autoLevelEnabled\n );\n const htmlLoadLevel = getLevelButtonHtml(\n 'loadLevel',\n levels,\n 'hls.$1=$2',\n hls.autoLevelEnabled\n );\n const htmlCapLevel = getLevelButtonHtml(\n 'autoLevelCapping',\n levels,\n 'levelCapping=hls.$1=$2;updateLevelInfo();onDemoConfigChanged();',\n hls.autoLevelCapping === -1\n );\n\n if ($('#currentLevelControl').html() !== htmlCurrentLevel) {\n $('#currentLevelControl').html(htmlCurrentLevel);\n }\n\n if ($('#nextLevelControl').html() !== htmlNextLevel) {\n $('#nextLevelControl').html(htmlNextLevel);\n }\n\n if ($('#loadLevelControl').html() !== htmlLoadLevel) {\n $('#loadLevelControl').html(htmlLoadLevel);\n }\n\n if ($('#levelCappingControl').html() !== htmlCapLevel) {\n $('#levelCappingControl').html(htmlCapLevel);\n }\n}\n\nfunction updateAudioTrackInfo() {\n const buttonTemplate = '';\n }\n\n $('#audioTrackLabel').text(\n track ? track.lang || track.name : 'None selected'\n );\n $('#audioTrackControl').html(html1);\n}\n\nfunction codecs2label(levelCodecs) {\n if (levelCodecs) {\n return levelCodecs\n .replace(/([ah]vc.)[^,;]+/, '$1')\n .replace('mp4a.40.2', 'mp4a');\n }\n return '';\n}\n\nfunction level2label(level, i, manifestCodecs) {\n const levelCodecs = codecs2label(level.attrs.CODECS);\n const levelNameInfo = level.name ? `\"${level.name}\": ` : '';\n const codecInfo =\n levelCodecs && manifestCodecs.length > 1 ? ` / ${levelCodecs}` : '';\n if (level.height) {\n return `${i} (${levelNameInfo}${level.height}p / ${Math.round(\n level.bitrate / 1024\n )}kb${codecInfo})`;\n }\n if (level.bitrate) {\n return `${i} (${levelNameInfo}${Math.round(\n level.bitrate / 1024\n )}kb${codecInfo})`;\n }\n if (codecInfo) {\n return `${i} (${levelNameInfo}${levelCodecs})`;\n }\n if (level.name) {\n return `${i} (${level.name})`;\n }\n return `${i}`;\n}\n\nfunction getDemoConfigPropOrDefault(propName, defaultVal) {\n return typeof demoConfig[propName] !== 'undefined'\n ? demoConfig[propName]\n : defaultVal;\n}\n\nfunction getURLParam(sParam, defaultValue) {\n const sPageURL = self.location.search.substring(1);\n const sURLVariables = sPageURL.split('&');\n for (let i = 0; i < sURLVariables.length; i++) {\n const sParameterName = sURLVariables[i].split('=');\n if (sParameterName[0] === sParam) {\n return sParameterName[1] === 'undefined'\n ? undefined\n : sParameterName[1] === 'false'\n ? false\n : sParameterName[1];\n }\n }\n return defaultValue;\n}\n\nfunction onDemoConfigChanged(firstLoad) {\n demoConfig = {\n enableStreaming,\n autoRecoverError,\n stopOnStall,\n dumpfMP4,\n levelCapping,\n limitMetrics,\n };\n\n if (configPersistenceEnabled) {\n persistEditorValue();\n }\n\n const serializedDemoConfig = btoa(JSON.stringify(demoConfig));\n const baseURL = document.URL.split('?')[0];\n const streamURL = $('#streamURL').val();\n const permalinkURL = `${baseURL}?src=${encodeURIComponent(\n streamURL\n )}&demoConfig=${serializedDemoConfig}`;\n\n $('#StreamPermalink').html(`${permalinkURL}`);\n if (!firstLoad && window.location.href !== permalinkURL) {\n window.history.pushState(null, null, permalinkURL);\n }\n}\n\nfunction onConfigPersistenceChanged(event) {\n configPersistenceEnabled = event.target.checked;\n localStorage.setItem(\n STORAGE_KEYS.Editor_Persistence,\n JSON.stringify(configPersistenceEnabled)\n );\n\n if (configPersistenceEnabled) {\n persistEditorValue();\n } else {\n localStorage.removeItem(STORAGE_KEYS.Hls_Config);\n }\n}\n\nfunction getEditorValue(options) {\n options = $.extend({ parse: false }, options || {});\n let value = configEditor.session.getValue();\n\n if (options.parse) {\n try {\n value = JSON.parse(value);\n } catch (e) {\n console.warn('[getEditorValue] could not parse editor value', e);\n value = {};\n }\n }\n\n return value;\n}\n\nfunction getPersistedHlsConfig() {\n let value = localStorage.getItem(STORAGE_KEYS.Hls_Config);\n if (value === null) {\n return value;\n }\n\n try {\n value = JSON.parse(value);\n } catch (e) {\n console.warn('[getPersistedHlsConfig] could not hls config json', e);\n value = {};\n }\n\n return value;\n}\n\nfunction persistEditorValue() {\n localStorage.setItem(STORAGE_KEYS.Hls_Config, getEditorValue());\n}\n\nfunction setupConfigEditor() {\n configEditor = self.ace.edit('config-editor');\n configEditor.setTheme('ace/theme/github');\n configEditor.session.setMode('ace/mode/json');\n\n const contents = hlsjsDefaults;\n const shouldRestorePersisted =\n JSON.parse(localStorage.getItem(STORAGE_KEYS.Editor_Persistence)) === true;\n\n if (shouldRestorePersisted) {\n $.extend(contents, getPersistedHlsConfig());\n }\n\n const elPersistence = document.querySelector('#config-persistence');\n elPersistence.addEventListener('change', onConfigPersistenceChanged);\n elPersistence.checked = shouldRestorePersisted;\n configPersistenceEnabled = shouldRestorePersisted;\n\n updateConfigEditorValue(contents);\n}\n\nfunction setupTimelineChart() {\n const canvas = document.querySelector('#timeline-chart');\n const chart = new TimelineChart(canvas, {\n responsive: false,\n });\n\n resizeHandlers.push(() => {\n chart.resize();\n });\n\n chart.resize();\n\n return chart;\n}\n\nfunction addChartEventListeners(hls) {\n const updateLevelOrTrack = (eventName, data) => {\n chart.updateLevelOrTrack(data.details);\n };\n const updateFragment = (eventName, data) => {\n if (data.stats) {\n // Convert 0.x stats to partial v1 stats\n const { retry, loaded, total, trequest, tfirst, tload } = data.stats;\n if (trequest && tload) {\n data.frag.stats = {\n loaded,\n retry,\n total,\n loading: {\n start: trequest,\n first: tfirst,\n end: tload,\n },\n };\n }\n }\n chart.updateFragment(data);\n };\n const updateChart = () => {\n chart.update();\n };\n hls.on(\n Hls.Events.MANIFEST_LOADING,\n () => {\n chart.reset();\n },\n chart\n );\n hls.on(\n Hls.Events.MANIFEST_PARSED,\n (eventName, data) => {\n const { levels } = data;\n chart.removeType('level');\n chart.removeType('audioTrack');\n chart.removeType('subtitleTrack');\n chart.updateLevels(levels);\n },\n chart\n );\n hls.on(\n Hls.Events.BUFFER_CREATED,\n (eventName, { tracks }) => {\n chart.updateSourceBuffers(tracks, hls.media);\n },\n chart\n );\n hls.on(\n Hls.Events.BUFFER_RESET,\n () => {\n chart.removeSourceBuffers();\n },\n chart\n );\n hls.on(Hls.Events.LEVELS_UPDATED, (eventName, { levels }) => {\n chart.removeType('level');\n chart.updateLevels(levels);\n });\n hls.on(\n Hls.Events.LEVEL_SWITCHED,\n (eventName, { level }) => {\n chart.removeType('level');\n chart.updateLevels(hls.levels, level);\n },\n chart\n );\n hls.on(\n Hls.Events.LEVEL_LOADING,\n () => {\n // TODO: mutate level datasets\n // Update loadLevel\n chart.removeType('level');\n chart.updateLevels(hls.levels);\n },\n chart\n );\n hls.on(\n Hls.Events.LEVEL_UPDATED,\n (eventName, { details }) => {\n chart.updateLevelOrTrack(details);\n },\n chart\n );\n\n hls.on(\n Hls.Events.AUDIO_TRACKS_UPDATED,\n (eventName, { audioTracks }) => {\n chart.removeType('audioTrack');\n chart.updateAudioTracks(audioTracks);\n },\n chart\n );\n hls.on(\n Hls.Events.SUBTITLE_TRACKS_UPDATED,\n (eventName, { subtitleTracks }) => {\n chart.removeType('subtitleTrack');\n chart.updateSubtitleTracks(subtitleTracks);\n },\n chart\n );\n\n hls.on(\n Hls.Events.AUDIO_TRACK_SWITCHED,\n (eventName) => {\n // TODO: mutate level datasets\n chart.removeType('audioTrack');\n chart.updateAudioTracks(hls.audioTracks);\n },\n chart\n );\n hls.on(\n Hls.Events.SUBTITLE_TRACK_SWITCH,\n (eventName) => {\n // TODO: mutate level datasets\n chart.removeType('subtitleTrack');\n chart.updateSubtitleTracks(hls.subtitleTracks);\n },\n chart\n );\n hls.on(Hls.Events.AUDIO_TRACK_LOADED, updateLevelOrTrack, chart);\n hls.on(Hls.Events.SUBTITLE_TRACK_LOADED, updateLevelOrTrack, chart);\n hls.on(Hls.Events.LEVEL_PTS_UPDATED, updateLevelOrTrack, chart);\n hls.on(Hls.Events.FRAG_LOADED, updateFragment, chart);\n hls.on(Hls.Events.FRAG_PARSED, updateFragment, chart);\n hls.on(Hls.Events.FRAG_CHANGED, updateFragment, chart);\n hls.on(Hls.Events.BUFFER_APPENDING, updateChart, chart);\n hls.on(Hls.Events.BUFFER_APPENDED, updateChart, chart);\n hls.on(Hls.Events.BUFFER_FLUSHED, updateChart, chart);\n}\n\nfunction updateConfigEditorValue(obj) {\n const json = JSON.stringify(obj, null, 2);\n configEditor.session.setValue(json);\n}\n\nfunction applyConfigEditorValue() {\n onDemoConfigChanged();\n loadSelectedStream();\n}\n\nfunction createfMP4(type) {\n if (fmp4Data[type].length) {\n const blob = new Blob([arrayConcat(fmp4Data[type])], {\n type: 'application/octet-stream',\n });\n const filename = type + '-' + new Date().toISOString() + '.mp4';\n self.saveAs(blob, filename);\n // $('body').append('Download ' + filename + ' track
');\n } else if (!dumpfMP4) {\n console.error(\n 'Check \"Dump transmuxed fMP4 data\" first to make appended media available for saving.'\n );\n }\n}\n\nfunction arrayConcat(inputArray) {\n const totalLength = inputArray.reduce(function (prev, cur) {\n return prev + cur.length;\n }, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n inputArray.forEach(function (element) {\n result.set(element, offset);\n offset += element.length;\n });\n return result;\n}\n\nfunction hideAllTabs() {\n $('.demo-tab-btn').css('background-color', '');\n $('.demo-tab').hide();\n}\n\nfunction toggleTabClick(btn) {\n toggleTab(btn);\n const tabIndexes = $('.demo-tab-btn')\n .toArray()\n .map((el, i) => ($('#' + $(el).data('tab')).is(':visible') ? i : null))\n .filter((i) => i !== null);\n localStorage.setItem(STORAGE_KEYS.demo_tabs, tabIndexes.join(','));\n}\n\nfunction toggleTab(btn, dontHideOpenTabs) {\n const tabElId = $(btn).data('tab');\n // eslint-disable-next-line no-restricted-globals\n const modifierPressed =\n dontHideOpenTabs ||\n (self.event && (self.event.metaKey || self.event.shiftKey));\n if (!modifierPressed) {\n hideAllTabs();\n }\n if (modifierPressed) {\n $(`#${tabElId}`).toggle();\n } else {\n $(`#${tabElId}`).show();\n }\n $(btn).css(\n 'background-color',\n $(`#${tabElId}`).is(':visible') ? 'orange' : ''\n );\n if (!$('#statsDisplayTab').is(':visible')) {\n self.hideMetrics();\n }\n if (hls) {\n if ($('#timelineTab').is(':visible')) {\n chart.show();\n chart.resize(chart.chart.data ? chart.chart.data.datasets : null);\n } else {\n chart.hide();\n }\n }\n}\n\nfunction appendLog(textElId, message) {\n const el = $('#' + textElId);\n let logText = el.text();\n if (logText.length) {\n logText += '\\n';\n }\n const timestamp = (Date.now() - startTime) / 1000;\n const newMessage = timestamp + ' | ' + message;\n logText += newMessage;\n // update\n el.text(logText);\n const element = el[0];\n element.scrollTop = element.scrollHeight - element.clientHeight;\n}\n\nfunction logStatus(message) {\n appendLog('statusOut', message);\n}\n\nfunction logError(message) {\n appendLog('errorOut', message);\n}\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the