{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/iframe-resizer/index.js","webpack:///./node_modules/iframe-resizer/js/index.js","webpack:///./node_modules/iframe-resizer/js/iframeResizer.js","webpack:///./node_modules/iframe-resizer/js/iframeResizer.contentWindow.js","webpack:///./app/javascript/packs/blutspendech/iframe_resizer.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","iframeResize","iframeResizer","iframeResizerContentWindow","_typeof","iterator","obj","constructor","undefined","window","$","count","logEnabled","hiddenCheckEnabled","msgHeaderLen","length","msgId","msgIdLen","pagePosition","requestAnimationFrame","resetRequiredMethods","max","scroll","bodyScroll","documentElementScroll","settings","timer","defaults","autoResize","bodyBackground","bodyMargin","bodyMarginV1","bodyPadding","checkOrigin","inPageLinks","enablePublicMethods","heightCalculationMethod","id","interval","log","maxHeight","Infinity","maxWidth","minHeight","minWidth","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClose","onClosed","onInit","onMessage","warn","onResized","onScroll","frameTimer","jQuery","fn","iFrameResize","options","this","filter","each","index","element","setupIFrame","end","info","factory","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","addEventListener","el","evt","func","removeEventListener","formatLogHeader","iframeId","retStr","top","self","parentIFrame","getId","getMyID","isLogEnabled","msg","output","type","enabled","console","iFrameListener","event","resizeIFrame","ensureInRange","syncResize","setSize","messageData","setPagePosition","on","getPaddingEnds","compStyle","boxSizing","paddingTop","parseInt","paddingBottom","getBorderEnds","borderTopWidth","borderBottomWidth","Dimension","Number","min","dimension","toLowerCase","size","getMsgBody","offset","substr","indexOf","sendPageInfoToIframe","iframe","time","frameId","bodyPosition","iFramePosition","trigger","document","body","getBoundingClientRect","JSON","stringify","iframeHeight","height","iframeWidth","width","clientHeight","Math","documentElement","innerHeight","clientWidth","innerWidth","offsetTop","offsetLeft","left","scrollTop","pageYOffset","scrollLeft","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","setTimeout","getElementPosition","target","getPagePosition","x","floor","y","scrollRequestFromChild","addOffset","newPosition","scrollTo","unsetPagePosition","funcName","val","chkEvent","retBool","retCode","data","createOutgoingMsg","iFrameReadyMsgReceived","split","getComputedStyle","loaded","hasSettings","remoteHost","origin","Array","checkList","Error","isMessageFromIFrame","firstRun","closeIFrame","msgBody","message","parse","setListener","sendPageInfo","stop","forEach","stopPageInfo","startPageInfoMonitor","location","jumpPosition","hash","hashData","decodeURIComponent","getElementById","getElementsByName","moveToAnchor","findTarget","resetIFrame","actionMsg","retVal","TypeError","removeIframeListeners","parentNode","removeChild","error","chkZero","checkIFrames","keys","settingId","chkDimension","style","offsetParent","checkIFrame","mutationObserved","mutations","debouce","querySelector","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","fixHiddenIFrames","processDimension","setDimension","doNotSync","jasmine","calleeMsg","noResponseWarning","errorShown","contentWindow","targetOrigin","postMessage","msgTimeout","depricate","splitName","charAt","toUpperCase","slice","src","ensureHasId","join","checkOptions","option","copyOptions","match","processOptions","overflow","setScrolling","addStyle","chkMinMax","setLimits","mutation","removedNodes","removedNode","createDestroyObserver","resetRequertMethod","iFrameResizer","close","removeListeners","resize","anchor","sendMessage","tabVisible","visibilityState","sendTriggerMsg","eventName","isIFrameResizeEnabled","setupEventListeners","init","tagName","chkType","iFrames","push","vendors","setupRequestAnimationFrame","warnDeprecatedOptions","querySelectorAll","base","bodyMarginStr","bodyObserver","calculateWidth","doubleEventList","click","eventCancelTimer","heightCalcModeDefault","heightCalcMode","initLock","initMsg","intervalTimer","logging","msgID","myID","sendPermit","parent","targetOriginDefault","triggerLocked","triggerLockedTimer","throttledTimer","widthCalcModeDefault","widthCalcMode","win","onReady","onPageInfo","customCalcMethods","offsetHeight","scrollWidth","eventHandlersByName","passiveSupported","passive","noop","context","args","result","timeout","previous","later","getNow","Date","now","getTime","getHeight","bodyOffset","scrollHeight","custom","documentElementOffset","apply","getAllMeasurements","grow","lowestElement","getMaxElement","getAllElements","taggedElement","getTaggedElements","getWidth","offsetWidth","rightMostElement","sizeIFrameThrottled","sizeIFrame","remaining","arguments","clearTimeout","processRequestFromParent","source","reset","triggerReset","sendSize","getData","inPageLink","pageInfo","getMessageType","isInitMsg","callFromParent","messageType","chkLateLoaded","capitalizeFirstLetter","string","formatLogMsg","clearFix","strBool","str","enable","readDataFromParent","href","setupCustomCalcMethods","calcMode","calcFunc","readDataFromPage","setBodyStyle","attr","chkCSS","setMargin","createElement","clear","display","appendChild","checkHeightMode","checkWidthMode","startEventListeners","manageEventListeners","disconnect","clearInterval","sendMsg","getPageInfo","callback","scrollToOffset","setHeightCalculationMethod","setWidthCalculationMethod","setTargetOrigin","customHeight","customWidth","elPosition","jumpToTarget","checkLocationHash","getAttribute","e","preventDefault","setupInPageLinks","manageTriggerEvent","listener","add","handleEvent","eventType","remove","eventNames","map","method","checkCalcMode","calcModeDefault","modes","forceIntervalTimer","initInterval","addImageLoadListners","addImageLoadListener","complete","imageLoaded","imageError","elements","attributeName","removeImageLoadListener","splice","removeFromArray","imageEventTriggered","typeDesc","observer","createMutationObserver","setupBodyMutationObserver","setInterval","abs","prop","defaultView","side","elementsLength","elVal","maxVal","Side","chkEventThottle","dimention","tag","triggerEvent","triggerEventDesc","currentHeight","currentWidth","checkTolarance","a","b","isSizeChangeDetected","lockTrigger","resetPage","hcm","readyState","require"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,2CAIjBlC,EAAoBA,EAAoBmC,EAAI,I,qBClFrDhC,EAAOD,QAAU,EAAQ,K,mBCAzB,IAAIkC,EAAe,EAAQ,IAE3BlC,EAAQkC,aAAeA,EACvBlC,EAAQmC,cAAgBD,EAExBlC,EAAQoC,2BAA6B,EAAQ,K,mBCL7C,wBAAyU,OAAtOC,EAArD,oBAAXpB,QAAoD,kBAApBA,OAAOqB,SAAmC,SAAiBC,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXtB,QAAyBsB,EAAIC,cAAgBvB,QAAUsB,IAAQtB,OAAOa,UAAY,gBAAkBS,IAAyBA,IAcxV,SAAWE,GACT,GAAsB,qBAAXC,OAAX,CAEA,IAmkCkCC,EAnkC9BC,EAAQ,EACRC,GAAa,EACbC,GAAqB,EAErBC,EADY,UACaC,OACzBC,EAAQ,gBAEZC,EAAWD,EAAMD,OACbG,EAAe,KACfC,EAAwBV,OAAOU,sBAC/BC,EAAuB,CACzBC,IAAK,EACLC,OAAQ,EACRC,WAAY,EACZC,sBAAuB,GAErBC,EAAW,GACXC,EAAQ,KACRC,EAAW,CACbC,YAAY,EACZC,eAAgB,KAChBC,WAAY,KACZC,aAAc,EACdC,YAAa,KACbC,aAAa,EACbC,aAAa,EACbC,qBAAqB,EACrBC,wBAAyB,aACzBC,GAAI,gBACJC,SAAU,GACVC,KAAK,EACLC,UAAWC,IACXC,SAAUD,IACVE,UAAW,EACXC,SAAU,EACVC,WAAY,SACZC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,eAAgB,IAChBC,UAAW,EACXC,uBAAwB,SACxBC,QAAS,WACP,OAAO,GAETC,SAAU,aACVC,OAAQ,aACRC,UAAW,WACTC,EAAK,mCAEPC,UAAW,aACXC,SAAU,WACR,OAAO,IAq3BPC,EAAa,GAwKblD,OAAOmD,UAduBlD,EAePD,OAAOmD,QAdzBC,GAEKnD,EAAEmD,GAAGC,eACfpD,EAAEmD,GAAGC,aAAe,SAAwBC,GAK1C,OAAOC,KAAKC,OAAO,UAAUC,MAJ7B,SAAcC,EAAOC,GACnBC,EAAYD,EAASL,MAGiBO,QAP1CC,EAAK,GAAI,sDAiBX,EAAO,IAAW,sBAAP,EAAF,GAAS,mCAMpB9D,OAAOqD,aAAerD,OAAOqD,cAAgBU,IApiC7C,SAASC,IACP,OAAOhE,OAAOiE,kBAAoBjE,OAAOkE,wBAA0BlE,OAAOmE,oBAG5E,SAASC,EAAiBC,EAAIC,EAAKC,GACjCF,EAAGD,iBAAiBE,EAAKC,GAAM,GAGjC,SAASC,EAAoBH,EAAIC,EAAKC,GACpCF,EAAGG,oBAAoBF,EAAKC,GAAM,GAmCpC,SAASE,EAAgBC,GACvB,OAAOnE,EAAQ,IAfjB,SAAiBmE,GACf,IAAIC,EAAS,cAAgBD,EAU7B,OARI1E,OAAO4E,MAAQ5E,OAAO6E,OAEtBF,EADE3E,OAAO8E,cAAgB9E,OAAO8E,aAAaC,MACpC/E,OAAO8E,aAAaC,QAAU,KAAOL,EAErC,qBAAuBA,GAI7BC,EAIcK,CAAQN,GAAY,IAG3C,SAASO,EAAaP,GACpB,OAAO1D,EAAS0D,GAAY1D,EAAS0D,GAAU5C,IAAM3B,EAGvD,SAAS2B,EAAI4C,EAAUQ,GACrBC,EAAO,MAAOT,EAAUQ,EAAKD,EAAaP,IAG5C,SAASZ,EAAKY,EAAUQ,GACtBC,EAAO,OAAQT,EAAUQ,EAAKD,EAAaP,IAG7C,SAAS3B,EAAK2B,EAAUQ,GACtBC,EAAO,OAAQT,EAAUQ,GAAK,GAGhC,SAASC,EAAOC,EAAMV,EAAUQ,EAAKG,IAC/B,IAASA,GAAW,WAAa1F,EAAQK,OAAOsF,UAElDA,QAAQF,GAAMX,EAAgBC,GAAWQ,GAI7C,SAASK,EAAeC,GACtB,SAASC,IAOPC,EAAc,UACdA,EAAc,SACdC,GARA,WACEC,EAAQC,GACRC,EAAgBpB,GAChBqB,EAAG,YAAaF,KAKCA,EAAa,QAiBlC,SAASG,EAAeC,GACtB,MAA4B,eAAxBA,EAAUC,UACL,GAGCD,EAAUE,WAAaC,SAASH,EAAUE,WAAY,IAAM,IAC5DF,EAAUI,cAAgBD,SAASH,EAAUI,cAAe,IAAM,GAI9E,SAASC,EAAcL,GACrB,MAA4B,eAAxBA,EAAUC,UACL,GAGCD,EAAUM,eAAiBH,SAASH,EAAUM,eAAgB,IAAM,IACpEN,EAAUO,kBAAoBJ,SAASH,EAAUO,kBAAmB,IAAM,GAItF,SAASd,EAAce,GACrB,IAAI7F,EAAM8F,OAAO1F,EAAS0D,GAAU,MAAQ+B,IACxCE,EAAMD,OAAO1F,EAAS0D,GAAU,MAAQ+B,IACxCG,EAAYH,EAAUI,cACtBC,EAAOJ,OAAOb,EAAYe,IAC9B9E,EAAI4C,EAAU,YAAckC,EAAY,gBAAkBD,EAAM,IAAM/F,GAElEkG,EAAOH,IACTG,EAAOH,EACP7E,EAAI4C,EAAU,OAASkC,EAAY,kBAGjCE,EAAOlG,IACTkG,EAAOlG,EACPkB,EAAI4C,EAAU,OAASkC,EAAY,kBAGrCf,EAAYe,GAAa,GAAKE,EA2DhC,SAASC,EAAWC,GAClB,OAAO9B,EAAI+B,OAAO/B,EAAIgC,QAAQ,KAAO7G,EAAe2G,GA+BtD,SAASG,EAAqBC,EAAQ1C,GAipBxC,IAA6BtB,EAAIiE,EAAMC,EAAVlE,EAhpBzB,WApBF,IACMmE,EACAC,EAmBFC,EAAQ,iBAAkB,aApBxBF,EAAeG,SAASC,KAAKC,wBAC7BJ,EAAiB3B,EAAYuB,OAAOQ,wBACjCC,KAAKC,UAAU,CACpBC,aAAcP,EAAeQ,OAC7BC,YAAaT,EAAeU,MAC5BC,aAAcC,KAAKxH,IAAI8G,SAASW,gBAAgBF,aAAcnI,OAAOsI,aAAe,GACpFC,YAAaH,KAAKxH,IAAI8G,SAASW,gBAAgBE,YAAavI,OAAOwI,YAAc,GACjFC,UAAWrC,SAASoB,EAAe5C,IAAM2C,EAAa3C,IAAK,IAC3D8D,WAAYtC,SAASoB,EAAemB,KAAOpB,EAAaoB,KAAM,IAC9DC,UAAW5I,OAAO6I,YAClBC,WAAY9I,OAAO+I,YACnBC,eAAgBtB,SAASW,gBAAgBF,aACzCc,cAAevB,SAASW,gBAAgBE,YACxCW,aAAclJ,OAAOsI,YACrBa,YAAanJ,OAAOwI,cAMmCpB,EAAQ1C,IA+oBpC2C,EA5oBS,GA6oBnCnE,EADgCoE,EA5oBO5C,KA8oB1CxB,EAAWoE,GAAW8B,YAAW,WAC/BlG,EAAWoE,GAAW,KACtBlE,MACCiE,IA1lBL,SAASgC,EAAmBC,GAC1B,IAAI9B,EAAiB8B,EAAO1B,wBAE5B,OADA2B,EAAgB7E,GACT,CACL8E,EAAGpB,KAAKqB,MAAM/C,OAAOc,EAAemB,MAAQjC,OAAOjG,EAAa+I,IAChEE,EAAGtB,KAAKqB,MAAM/C,OAAOc,EAAe5C,KAAO8B,OAAOjG,EAAaiJ,KAInE,SAASC,EAAuBC,GAwB9B,IAAI5C,EAAS4C,EAAYP,EAAmBxD,EAAYuB,QAAU,CAChEoC,EAAG,EACHE,EAAG,GAEDG,EAlBK,CACLL,EAAG9C,OAAOb,EAAYqC,OAASlB,EAAOwC,EACtCE,EAAGhD,OAAOb,EAAYmC,QAAUhB,EAAO0C,GAiB3C5H,EAAI4C,EAAU,8CAAgDsC,EAAOwC,EAAI,MAAQxC,EAAO0C,EAAI,KAExF1J,OAAO4E,MAAQ5E,OAAO6E,KAdpB7E,OAAO8E,aACT9E,OAAO8E,aAAa,YAAc8E,EAAY,SAAW,KAAKC,EAAYL,EAAGK,EAAYH,GAEzF3G,EAAK2B,EAAU,0EAhBjBjE,EAAeoJ,EACfC,IACAhI,EAAI4C,EAAU,OAgClB,SAASoF,KACH,IAAU/D,EAAG,WAAYtF,GAC3BqF,EAAgBpB,GAEhBqF,IAqCJ,SAAShE,EAAGiE,EAAUC,GACpB,OAAOC,EAASxF,EAAUsF,EAAUC,GA8EtC,IAjLME,EA/FAC,EAhGAC,EACArC,EACAZ,EACAnB,EA6WFf,EAAMM,EAAM6E,KACZxE,EAAc,GACdnB,EAAW,KAEX,8BAAgCQ,EAjBpC,WAEE,IAAK,IAAIR,KAAY1D,EACnByG,EAAQ,wBAAyB6C,EAAkB5F,GAAW1D,EAAS0D,GAAU0C,OAAQ1C,GAe3F6F,GA3ROhK,KAAW,GAAK2E,GAAK+B,OAAO,EAAGzG,IAAa0E,EAAI+B,OAAOzG,GAAUgK,MAAM,KAAK,KAAMxJ,GA1FrFqJ,EAAOnF,EAAI+B,OAAOzG,GAAUgK,MAAM,KAClCxC,EAASqC,EAAK,GAAKjE,SAASiE,EAAK,GAAI,IAAM,EAC3CjD,EAASpG,EAASqJ,EAAK,KAAOrJ,EAASqJ,EAAK,IAAIjD,OAChDnB,EAAYwE,iBAAiBrD,GAoXjCvB,EAnXO,CACLuB,OAAQA,EACRxF,GAAIyI,EAAK,GACTrC,OAAQA,EAAShC,EAAeC,GAAaK,EAAcL,GAC3DiC,MAAOmC,EAAK,GACZjF,KAAMiF,EAAK,IA+Wb3F,EAAWmB,EAAYjE,GAEnBZ,EAAS0D,KACX1D,EAAS0D,GAAUgG,QAAS,IA3R1BN,EAAUvE,EAAYT,OAAQ,CAChC,KAAQ,EACR,MAAS,EACTrF,UAAW,KAIX+B,EAAI4C,EAAU,gDAGT0F,GA8OT,SAAqB1F,GACnB,IAAIyF,GAAU,EAOd,OALKnJ,EAAS0D,KACZyF,GAAU,EACVpH,EAAK8C,EAAYT,KAAO,oBAAsBV,EAAW,kBAAoBQ,IAGxEiF,EA8B2BQ,CAAYjG,KAC5C5C,EAAI4C,EAAU,aAAeQ,GAhM3BiF,GAAU,EAEV,OAAStE,EAAYuB,SACvBrE,EAAK2B,EAAU,WAAamB,EAAYjE,GAAK,eAC7CuI,GAAU,GAGLA,GAjJT,WA0BE,IARQS,EAQJC,EAASrF,EAAMqF,OACfrJ,EAAcR,EAAS0D,IAAa1D,EAAS0D,GAAUlD,YAE3D,GAAIA,GAAe,GAAKqJ,IAAW,UAN1BrJ,EAAY1B,cAAgBgL,MArBnC,WACE,IAAItN,EAAI,EACJ4M,GAAU,EAGd,IAFAtI,EAAI4C,EAAU,wDAA0DlD,GAEjEhE,EAAIgE,EAAYlB,OAAQ9C,IAC7B,GAAIgE,EAAYhE,KAAOqN,EAAQ,CAC7BT,GAAU,EACV,MAIJ,OAAOA,EASkCW,IALrCH,EAAa5J,EAAS0D,IAAa1D,EAAS0D,GAAUkG,WAC1D9I,EAAI4C,EAAU,gCAAkCkG,GACzCC,IAAWD,IAUpB,MAAM,IAAII,MAAM,qCAAuCH,EAAS,QAAUhF,EAAYuB,OAAOxF,GAAK,kBAAoB4D,EAAM6E,KAAO,sHAGrI,OAAO,EA2SsBY,IA5F/B,WAGE,OAFIjK,EAAS0D,IAAa1D,EAAS0D,GAAUwG,UAqEzClK,EAAS0D,KACX1D,EAAS0D,GAAUwG,UAAW,GApExBrF,EAAYT,MAClB,IAAK,QACH+F,EAAYtF,EAAYuB,QACxB,MAEF,IAAK,UA5LqBgE,EA6LHrE,EAAW,GA5LpCjF,EAAI4C,EAAU,8BAAgCmB,EAAYuB,OAAOxF,GAAK,cAAgBwJ,EAAU,KAChGrF,EAAG,YAAa,CACdqB,OAAQvB,EAAYuB,OACpBiE,QAASxD,KAAKyD,MAAMF,KAEtBtJ,EAAI4C,EAAU,MAwLV,MAEF,IAAK,aACH1D,EAAS0D,GAAUvD,WAAa0G,KAAKyD,MAAMvE,EAAW,IACtD,MAEF,IAAK,WACH4C,GAAuB,GACvB,MAEF,IAAK,iBACHA,GAAuB,GACvB,MAEF,IAAK,WACHxC,EAAqBnG,EAAS0D,IAAa1D,EAAS0D,GAAU0C,OAAQ1C,GAzK5E,WACE,SAAS6G,EAAYnG,EAAMb,GACzB,SAASiH,IACHxK,EAASY,GACXuF,EAAqBnG,EAASY,GAAIwF,OAAQxF,GAE1C6J,IAKJ,CAAC,SAAU,UAAUC,SAAQ,SAAUpH,GACrCxC,EAAIF,EAAIwD,EAAOd,EAAM,8BACrBC,EAAKvE,OAAQsE,EAAKkH,MAItB,SAASC,IACPF,EAAY,UAAW/G,GAOzB,IAAI5C,EAAK8C,EAHP6G,EAAY,OAAQnH,GAOlBpD,EAASY,KACXZ,EAASY,GAAI+J,aAAeF,GA4I1BG,GACA,MAEF,IAAK,eA1IH5K,EAAS0D,IAAa1D,EAAS0D,GAAUiH,eAC3C3K,EAAS0D,GAAUiH,sBACZ3K,EAAS0D,GAAUiH,cA0IxB,MAEF,IAAK,cAtET,SAAoBE,GAoBlB,IAlBMC,EAkBFC,EAAOF,EAASrB,MAAM,KAAK,IAAM,GACjCwB,EAAWC,mBAAmBF,GAC9BzC,EAAS5B,SAASwE,eAAeF,IAAatE,SAASyE,kBAAkBH,GAAU,GAEnF1C,GAtBEwC,EAAezC,EAAmBC,GACtCxH,EAAI4C,EAAU,4BAA8BqH,EAAO,WAAaD,EAAatC,EAAI,OAASsC,EAAapC,GACvGjJ,EAAe,CACb+I,EAAGsC,EAAatC,EAChBE,EAAGoC,EAAapC,GAElBI,IACAhI,EAAI4C,EAAU,OAiBL1E,OAAO4E,MAAQ5E,OAAO6E,KAb3B7E,OAAO8E,aACT9E,OAAO8E,aAAasH,aAAaL,GAEjCjK,EAAI4C,EAAU,iBAAmBqH,EAAO,gDAa1CjK,EAAI4C,EAAU,iBAAmBqH,EAAO,cA0CtCM,CAAWtF,EAAW,IACtB,MAEF,IAAK,QACHuF,EAAYzG,GACZ,MAEF,IAAK,OACHJ,IACAM,EAAG,SAAUF,EAAYuB,QACzB,MAEF,QACE3B,IAnON,IAA8B2F,EAiRxBmB,KAIJzI,EAAKY,EAAU,YAAcQ,GAIjC,SAASgF,EAASxF,EAAUsF,EAAUC,GACpC,IAAI1F,EAAO,KACPiI,EAAS,KAEb,GAAIxL,EAAS0D,GAAW,CAGtB,GAAI,oBAFJH,EAAOvD,EAAS0D,GAAUsF,IAKxB,MAAM,IAAIyC,UAAUzC,EAAW,cAAgBtF,EAAW,uBAF1D8H,EAASjI,EAAK0F,GAMlB,OAAOuC,EAGT,SAASE,EAAsBtF,GAC7B,IAAI1C,EAAW0C,EAAOxF,UACfZ,EAAS0D,GAGlB,SAASyG,EAAY/D,GACnB,IAAI1C,EAAW0C,EAAOxF,GAEtB,IAAgD,IAA5CsI,EAASxF,EAAU,UAAWA,GAAlC,CAKA5C,EAAI4C,EAAU,oBAAsBA,GAEpC,IAEM0C,EAAOuF,YACTvF,EAAOuF,WAAWC,YAAYxF,GAEhC,MAAOyF,GACP9J,EAAK8J,GAGP3C,EAASxF,EAAU,WAAYA,GAC/B5C,EAAI4C,EAAU,MACdgI,EAAsBtF,QAjBpBtF,EAAI4C,EAAU,2CAoBlB,SAAS6E,EAAgB7E,GACnB,OAASjE,GAKXqB,EAAI4C,EAAU,uBAJdjE,EAAe,CACb+I,EAAGxJ,OAAO+I,cAAgBhJ,EAAYC,OAAO+I,YAAcrB,SAASW,gBAAgBS,WACpFY,EAAG1J,OAAO6I,cAAgB9I,EAAYC,OAAO6I,YAAcnB,SAASW,gBAAgBO,YAEnCY,EAAI,IAAM/I,EAAaiJ,GAI9E,SAAS5D,EAAgBpB,GACnB,OAASjE,IACXT,OAAO8J,SAASrJ,EAAa+I,EAAG/I,EAAaiJ,GAC7C5H,EAAI4C,EAAU,sBAAwBjE,EAAa+I,EAAI,IAAM/I,EAAaiJ,GAC1EK,KAIJ,SAASA,IACPtJ,EAAe,KAGjB,SAAS6L,EAAYzG,GAMnB/D,EAAI+D,EAAYjE,GAAI,4BAA8B,SAAWiE,EAAYT,KAAO,YAAc,WAC9FmE,EAAgB1D,EAAYjE,IAC5B+D,GAPA,WACEC,EAAQC,GACR4B,EAAQ,QAAS,QAAS5B,EAAYuB,OAAQvB,EAAYjE,MAK1CiE,EAAa,SAGjC,SAASD,EAAQC,GAWf,SAASiH,EAAQlG,GAOVxG,GAAsB,MAAQyF,EAAYe,KAC7CxG,GAAqB,EACrB0B,EAAI4C,EAAU,wDA6TpB,WACE,SAASqI,IAeP7O,OAAO8O,KAAKhM,GAAU0K,SAAQ,SAAU3M,IAdxC,SAAqBkO,GACnB,SAASC,EAAatG,GACpB,MAAO,SAAW5F,EAASiM,IAAcjM,EAASiM,GAAW7F,OAAO+F,MAAMvG,IAOxE5F,EAASiM,IAHJ,OAG4BjM,EAASiM,GAAW7F,OAHpCgG,eAGgDF,EAAa,WAAaA,EAAa,WAC1GzF,EAAQ,oBAAqB,SAAUzG,EAASiM,GAAW7F,OAAQ6F,GAKrEI,CAAYtO,MAIhB,SAASuO,EAAiBC,GACxBzL,EAAI,SAAU,sBAAwByL,EAAU,GAAGjE,OAAS,IAAMiE,EAAU,GAAGnI,MAC/EoI,EAAQT,EAAc,IAiBxB,IAAI9I,EAAmBD,IAEnBC,IAfEqF,EAAS5B,SAAS+F,cAAc,QASrB,IAAIxJ,EAAiBqJ,GAC3BI,QAAQpE,EATJ,CACXqE,YAAY,EACZC,mBAAmB,EACnBC,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,KARb,IACM1E,EAvVF2E,IAIJ,SAASC,EAAiBtH,IAxB1B,SAAsBA,GACff,EAAYjE,IAKjBiE,EAAYuB,OAAO+F,MAAMvG,GAAaf,EAAYe,GAAa,KAC/D9E,EAAI+D,EAAYjE,GAAI,WAAa8C,EAAW,KAAOkC,EAAY,WAAaf,EAAYe,GAAa,OALnG9E,EAAI,YAAa,0BAuBnBqM,CAAavH,GACbkG,EAAQlG,GAGV,IAAIlC,EAAWmB,EAAYuB,OAAOxF,GAE9BZ,EAAS0D,KACP1D,EAAS0D,GAAUpC,YACrB4L,EAAiB,UAGflN,EAAS0D,GAAUnC,WACrB2L,EAAiB,UAKvB,SAASvI,EAAWpB,EAAMsB,EAAauI,GAGjCA,IAAcvI,EAAYT,MAAQ1E,IACrCV,OAAOqO,SACNvM,EAAI+D,EAAYjE,GAAI,8BACpBlB,EAAsB6D,IAEtBA,IAIJ,SAASkD,EAAQ6G,EAAWpJ,EAAKkC,EAAQxF,EAAI2M,GAiC3C,IA/BMjF,EA+BFkF,GAAa,EACjB5M,EAAKA,GAAMwF,EAAOxF,GAEdZ,EAASY,KAxBPwF,GAAU,kBAAmBA,GAAU,OAASA,EAAOqH,eAVvDnF,EAAStI,EAASY,IAAOZ,EAASY,GAAI8M,aAC1C5M,EAAIF,EAAI,IAAM0M,EAAY,2BAA6B1M,EAAK,MAAQsD,EAAM,mBAAqBoE,GAC/FlC,EAAOqH,cAAcE,YAAYpO,EAAQ2E,EAAKoE,IAI9CvG,EAAKnB,EAAI,IAAM0M,EAAY,YAAc1M,EAAK,eAoBxC2M,GAAqBvN,EAASY,IAASZ,EAASY,GAAIY,iBACxDxB,EAASY,GAAIgN,WAAaxF,YAR5B,YACMpI,EAASY,IAAQZ,EAASY,GAAI8I,QAAW8D,IAC3CA,GAAa,EACbzL,EAAKnB,EAAI,mCAAqCZ,EAASY,GAAIY,eAAiB,IAAO,mOAKvCxB,EAASY,GAAIY,kBAajE,SAAS8H,EAAkB5F,GACzB,OAAOA,EAAW,IAAM1D,EAAS0D,GAAUpD,aAAe,IAAMN,EAAS0D,GAAUnC,UAAY,IAAMvB,EAAS0D,GAAU5C,IAAM,IAAMd,EAAS0D,GAAU7C,SAAW,IAAMb,EAAS0D,GAAUhD,oBAAsB,IAAMV,EAAS0D,GAAUvD,WAAa,IAAMH,EAAS0D,GAAUrD,WAAa,IAAML,EAAS0D,GAAU/C,wBAA0B,IAAMX,EAAS0D,GAAUtD,eAAiB,IAAMJ,EAAS0D,GAAUnD,YAAc,IAAMP,EAAS0D,GAAUjC,UAAY,IAAMzB,EAAS0D,GAAUjD,YAAc,IAAMT,EAAS0D,GAAUtC,WAAa,IAAMpB,EAAS0D,GAAUhC,uBAG9iB,SAASkB,EAAYwD,EAAQ9D,GAwK3B,SAASuL,EAAU9P,GACjB,IAAI+P,EAAY/P,EAAIyL,MAAM,YAE1B,GAAyB,IAArBsE,EAAUxO,OAAc,CAC1B,IAAIvC,EAAO,KAAO+Q,EAAU,GAAGC,OAAO,GAAGC,cAAgBF,EAAU,GAAGG,MAAM,GAC5E1L,KAAKxF,GAAQwF,KAAKxE,UACXwE,KAAKxE,GACZgE,EAAK2B,EAAU,gBAAkB3F,EAAM,uBAAyBhB,EAAO,iEAwB3E,IAvFcmH,EA2BRjB,EA4DFS,EAtKJ,SAAqBA,GAVrB,IACM9C,EAiBJ,MAPI,KAAO8C,IAET0C,EAAOxF,IAZLA,EAAK0B,GAAWA,EAAQ1B,IAAMV,EAASU,GAAK1B,IAE5C,OAASwH,SAASwE,eAAetK,KACnCA,GAAM1B,KASMwE,EANP9C,GAOLzB,GAAcmD,GAAW,IAAIxB,IAC7BA,EAAI4C,EAAU,4BAA8BA,EAAW,KAAO0C,EAAO8H,IAAM,MAGtExK,EA8JMyK,CAAY/H,EAAOxF,IAHzB8C,KAAY1D,GAAY,kBAAmBoG,EAalDrE,EAAK2B,EAAU,oCA9BjB,SAAwBpB,GAfxB,IAAyBsH,EAgBvBtH,EAAUA,GAAW,GACrBtC,EAAS0D,GAAY,CACnBwG,UAAU,EACV9D,OAAQA,EACRwD,WAAYxD,EAAO8H,KAAO9H,EAAO8H,IAAI1E,MAAM,KAAKyE,MAAM,EAAG,GAAGG,KAAK,MAnCrE,SAAsB9L,GACpB,GAAI,WAAa3D,EAAQ2D,GACvB,MAAM,IAAImJ,UAAU,4BAmCtB4C,CAAa/L,GACbpF,OAAO8O,KAAK1J,GAASoI,QAAQmD,EAAWvL,GAhC1C,SAAqBA,GAEnB,IAAK,IAAIgM,KAAUpO,EACbhD,OAAOkB,UAAUC,eAAe1B,KAAKuD,EAAUoO,KACjDtO,EAAS0D,GAAU4K,GAAUpR,OAAOkB,UAAUC,eAAe1B,KAAK2F,EAASgM,GAAUhM,EAAQgM,GAAUpO,EAASoO,IA6BpHC,CAAYjM,GAERtC,EAAS0D,KACX1D,EAAS0D,GAAUgK,cAAe,IAAS1N,EAAS0D,GAAUlD,YA1BzD,MADgBoJ,EA2BuE5J,EAAS0D,GAAUkG,aA1BrF,OAASA,EAAW4E,MAAM,wCAA0C,IAAM5E,EA0ByB,KAW/H6E,CAAenM,GA9JjB,WAIE,OAHAxB,EAAI4C,EAAU,qBAAuB1D,EAAS0D,IAAa1D,EAAS0D,GAAUrC,UAAY,UAAY,YAAc,QAAUqC,GAC9H0C,EAAO+F,MAAMuC,UAAW,KAAW1O,EAAS0D,IAAa1D,EAAS0D,GAAUrC,WAAa,SAAW,OAE5FrB,EAAS0D,IAAa1D,EAAS0D,GAAUrC,WAC/C,IAAK,OACH,MAEF,KAAK,EACH+E,EAAO/E,UAAY,MACnB,MAEF,KAAK,EACH+E,EAAO/E,UAAY,KACnB,MAEF,QACE+E,EAAO/E,UAAYrB,EAAS0D,GAAY1D,EAAS0D,GAAUrC,UAAY,MA8I3EsN,GA1MF,WACE,SAASC,EAASzC,GACZnL,MAAahB,EAAS0D,GAAUyI,IAAU,IAAMnM,EAAS0D,GAAUyI,KACrE/F,EAAO+F,MAAMA,GAASnM,EAAS0D,GAAUyI,GAAS,KAClDrL,EAAI4C,EAAU,OAASyI,EAAQ,MAAQnM,EAAS0D,GAAUyI,GAAS,OAIvE,SAAS0C,EAAUjJ,GACjB,GAAI5F,EAAS0D,GAAU,MAAQkC,GAAa5F,EAAS0D,GAAU,MAAQkC,GACrE,MAAM,IAAIoE,MAAM,gBAAkBpE,EAAY,+BAAiCA,GAInFiJ,EAAU,UACVA,EAAU,SACVD,EAAS,aACTA,EAAS,aACTA,EAAS,YACTA,EAAS,YAwLTE,GAvII,kBAAqB9O,EAAS0D,IAAa1D,EAAS0D,GAAUrD,aAAe,OAASL,EAAS0D,IAAa1D,EAAS0D,GAAUrD,cACjIL,EAAS0D,GAAUpD,aAAeN,EAAS0D,GAAUrD,WACrDL,EAAS0D,GAAUrD,WAAkBL,EAAS0D,GAAUrD,WAAa,MAyC3D6D,EA8FPoF,EAAkB5F,IAnEnBT,EAAmBD,MArBvB,SAA+BC,GACxBmD,EAAOuF,YAIU,IAAI1I,GAAiB,SAAUsJ,GACnDA,EAAU7B,SAAQ,SAAUqE,GACPjF,MAAM1L,UAAU6P,MAAMtR,KAAKoS,EAASC,cAE1CtE,SAAQ,SAAUuE,GACzBA,IAAgB7I,GAClB+D,EAAY/D,YAKJsG,QAAQtG,EAAOuF,WAAY,CACzCoB,WAAW,IAObmC,CAAsBjM,GAGxBG,EAAiBgD,EAAQ,QAhCzB,WAtCF,IAIM8D,EACAiF,EAkCF1I,EAAQ,gBAAiBvC,EAAKkC,EAAQrH,GAAW,GAnC/CmL,EAAWlK,EAAS0D,IAAa1D,EAAS0D,GAAUwG,SACpDiF,EAAqBnP,EAAS0D,IAAa1D,EAAS0D,GAAU/C,2BAA2BhB,GAExFuK,GAAYiF,GACf7D,EAAY,CACVlF,OAAQA,EACRY,OAAQ,EACRE,MAAO,EACP9C,KAAM,YA2DVqC,EAAQ,OAAQvC,EAAKkC,EAAQrH,GAAW,GArDpCiB,EAAS0D,KACX1D,EAAS0D,GAAU0C,OAAOgJ,cAAgB,CACxCC,MAAOlF,EAAYnM,KAAK,KAAMgC,EAAS0D,GAAU0C,QACjDkJ,gBAAiB5D,EAAsB1N,KAAK,KAAMgC,EAAS0D,GAAU0C,QACrEmJ,OAAQ9I,EAAQzI,KAAK,KAAM,gBAAiB,SAAUgC,EAAS0D,GAAU0C,QACzEgF,aAAc,SAAsBoE,GAClC/I,EAAQ,iBAAkB,gBAAkB+I,EAAQxP,EAAS0D,GAAU0C,OAAQ1C,IAEjF+L,YAAa,SAAqBpF,GAEhC5D,EAAQ,eAAgB,YADxB4D,EAAUxD,KAAKC,UAAUuD,IACqBrK,EAAS0D,GAAU0C,OAAQ1C,OA8GnF,SAAS8I,EAAQpK,EAAIiE,GACf,OAASpG,IACXA,EAAQmI,YAAW,WACjBnI,EAAQ,KACRmC,MACCiE,IA6EP,SAASqJ,IAKH,WAAahJ,SAASiJ,kBACxB7O,EAAI,WAAY,mCAChB0L,GANF,WACEoD,EAAe,cAAe,YAKd,KAIpB,SAASA,EAAeC,EAAWrL,GAKjCtH,OAAO8O,KAAKhM,GAAU0K,SAAQ,SAAUhH,IAJxC,SAA+BA,GAC7B,OAAO1D,EAAS0D,IAAa,WAAa1D,EAAS0D,GAAUtC,YAAcpB,EAAS0D,GAAUvD,aAAeH,EAAS0D,GAAUwG,UAI5H4F,CAAsBpM,IACxB+C,EAAQoJ,EAAWrL,EAAOxE,EAAS0D,GAAU0C,OAAQ1C,MAK3D,SAASqM,IACP3M,EAAiBpE,OAAQ,UAAWuF,GACpCnB,EAAiBpE,OAAQ,UAAU,WArCrC,IAAuBwF,EAKrB1D,EAAI,SAAU,mBALO0D,EAsCL,WAhChBgI,GALA,WACEoD,EAAe,UAAYpL,EAAO,YAIpB,OAkChBpB,EAAiBsD,SAAU,mBAAoBgJ,GAC/CtM,EAAiBsD,SAAU,2BAA4BgJ,GAGzD,SAAS3M,IACP,SAASiN,EAAK1N,EAASK,GASjBA,KARJ,WACE,IAAKA,EAAQsN,QACX,MAAM,IAAIxE,UAAU,qCACf,GAAI,WAAa9I,EAAQsN,QAAQjC,cACtC,MAAM,IAAIvC,UAAU,iCAAmC9I,EAAQsN,QAAU,KAK3EC,GACAtN,EAAYD,EAASL,GACrB6N,EAAQC,KAAKzN,IAUjB,IAAIwN,EAGJ,OAx+BF,WACE,IACI3H,EADA6H,EAAU,CAAC,MAAO,SAAU,IAAK,MAGrC,IAAK7H,EAAI,EAAGA,EAAI6H,EAAQ/Q,SAAWI,EAAuB8I,GAAK,EAC7D9I,EAAwBV,OAAOqR,EAAQ7H,GAAK,yBAGzC9I,EAMHA,EAAwBA,EAAsB1B,KAAKgB,QALnD8B,EAAI,QAAS,uCA69BfwP,GACAP,IACO,SAAuBzN,EAASgG,GAKrC,OAJA6H,EAAU,GAVZ,SAA+B7N,GACzBA,GAAWA,EAAQ5B,qBACrBqB,EAAK,sGAUPwO,CAAsBjO,GAEd3D,EAAQ2J,IACd,IAAK,YACL,IAAK,SACHwB,MAAM1L,UAAUsM,QAAQ/N,KAAK+J,SAAS8J,iBAAiBlI,GAAU,UAAW0H,EAAKhS,KAAKe,EAAWuD,IACjG,MAEF,IAAK,SACH0N,EAAK1N,EAASgG,GACd,MAEF,QACE,MAAM,IAAImD,UAAU,yBAA2B9M,EAAQ2J,GAAU,KAGrE,OAAO6H,IAlkCb,I,mBCdA,SAASxR,EAAQE,GAAwT,OAAtOF,EAArD,oBAAXpB,QAAoD,kBAApBA,OAAOqB,SAAmC,SAAiBC,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXtB,QAAyBsB,EAAIC,cAAgBvB,QAAUsB,IAAQtB,OAAOa,UAAY,gBAAkBS,IAAyBA,IAcxV,SAAWE,GACT,GAAsB,qBAAXC,OAAX,CAEA,IAAImB,GAAa,EACbsQ,EAAO,GACPrQ,EAAiB,GACjBC,EAAa,EACbqQ,EAAgB,GAChBC,EAAe,KACfpQ,EAAc,GACdqQ,GAAiB,EACjBC,EAAkB,CACpBtB,OAAQ,EACRuB,MAAO,GAELC,EAAmB,IACnB7G,GAAW,EACXlD,EAAS,EACTgK,EAAwB,aACxBC,EAAiBD,EACjBE,GAAW,EACXC,EAAU,GACV1Q,EAAc,GACdI,EAAW,GACXuQ,EAAgB,KAChBC,GAAU,EACVC,EAAQ,gBAEZ9R,EAAW8R,EAAMhS,OACbiS,EAAO,GACP5R,EAAuB,CACzBC,IAAK,EACL+F,IAAK,EACL7F,WAAY,EACZC,sBAAuB,GAErBqB,EAAa,QACboQ,GAAa,EACblJ,EAAStJ,OAAOyS,OAChBC,EAAsB,IACtBjQ,EAAY,EACZkQ,GAAgB,EAChBC,EAAqB,KACrBC,EAAiB,GACjB3K,EAAQ,EACR4K,EAAuB,SACvBC,EAAgBD,EAChBE,EAAMhT,OACN8C,EAAY,WACdC,GAAK,mCAEHkQ,EAAU,aACVC,EAAa,aACbC,EAAoB,CACtBnL,OAAQ,WAEN,OADAjF,GAAK,kDACE2E,SAASW,gBAAgB+K,cAElClL,MAAO,WAEL,OADAnF,GAAK,iDACE2E,SAASC,KAAK0L,cAGrBC,EAAsB,GACtBC,GAAmB,EAIvB,IACE,IAAIjQ,EAAUpF,OAAOY,OAAO,GAAI,CAC9B0U,QAAS,CACPnV,IAAK,WACHkV,GAAmB,MAIzBvT,OAAOoE,iBAAiB,OAAQqP,GAAMnQ,GACtCtD,OAAOwE,oBAAoB,OAAQiP,GAAMnQ,GACzC,MAAOuJ,KAkET,IAjDkBtI,EACZmP,EACAC,EACAC,EACAC,EACAC,EACAC,EA2CFC,EAASC,KAAKC,KAAO,WAGvB,OAAO,IAAID,MAAOE,WAioBhBC,GAAY,CACdC,WAAY,WACV,OAAO3M,SAASC,KAAKyL,aAAe3I,GAAiB,aAAeA,GAAiB,iBAEvFzD,OAAQ,WACN,OAAOoN,GAAUC,cAEnBvT,WAAY,WACV,OAAO4G,SAASC,KAAK2M,cAEvBC,OAAQ,WACN,OAAOpB,EAAkBnL,UAE3BwM,sBAAuB,WACrB,OAAO9M,SAASW,gBAAgB+K,cAElCrS,sBAAuB,WACrB,OAAO2G,SAASW,gBAAgBiM,cAElC1T,IAAK,WACH,OAAOwH,KAAKxH,IAAI6T,MAAM,KAAMC,GAAmBN,MAEjDzN,IAAK,WACH,OAAOyB,KAAKzB,IAAI8N,MAAM,KAAMC,GAAmBN,MAEjDO,KAAM,WACJ,OAAOP,GAAUxT,OAEnBgU,cAAe,WACb,OAAOxM,KAAKxH,IAAIwT,GAAUC,cAAgBD,GAAUI,wBAAyBK,GAAc,SAAUC,QAEvGC,cAAe,WACb,OAAOC,GAAkB,SAAU,wBAGnCC,GAAW,CACbnU,WAAY,WACV,OAAO4G,SAASC,KAAK0L,aAEvBgB,WAAY,WACV,OAAO3M,SAASC,KAAKuN,aAEvBX,OAAQ,WACN,OAAOpB,EAAkBjL,SAE3BnH,sBAAuB,WACrB,OAAO2G,SAASW,gBAAgBgL,aAElCmB,sBAAuB,WACrB,OAAO9M,SAASW,gBAAgB6M,aAElCrU,OAAQ,WACN,OAAOuH,KAAKxH,IAAIqU,GAASnU,aAAcmU,GAASlU,0BAElDH,IAAK,WACH,OAAOwH,KAAKxH,IAAI6T,MAAM,KAAMC,GAAmBO,MAEjDtO,IAAK,WACH,OAAOyB,KAAKzB,IAAI8N,MAAM,KAAMC,GAAmBO,MAEjDE,iBAAkB,WAChB,OAAON,GAAc,QAASC,OAEhCC,cAAe,WACb,OAAOC,GAAkB,QAAS,uBA0DlCI,IA/yBc7Q,EA+yBiB8Q,GA3yB7BxB,EAAU,KACVC,EAAW,EACXC,EAAQ,WACVD,EAAWE,IACXH,EAAU,KACVD,EAASrP,EAAKkQ,MAAMf,EAASC,GAExBE,IAEHH,EAAUC,EAAO,OAId,WACL,IAAIO,EAAMF,IAELF,IACHA,EAAWI,GAGb,IAAIoB,EAAYzC,GAAkBqB,EAAMJ,GAqBxC,OApBAJ,EAAUnQ,KACVoQ,EAAO4B,UAEHD,GAAa,GAAKA,EAAYzC,GAC5BgB,IACF2B,aAAa3B,GACbA,EAAU,MAGZC,EAAWI,EACXN,EAASrP,EAAKkQ,MAAMf,EAASC,GAExBE,IAEHH,EAAUC,EAAO,OAETE,IACVA,EAAUzK,WAAW2K,EAAOuB,IAGvB1B,IAy7BXxP,GAAiBpE,OAAQ,WAtGzB,SAAkBwF,GAChB,IAAIiQ,EAA2B,CAC7BzE,KAAM,WACJmB,EAAU3M,EAAM6E,KAChBf,EAAS9D,EAAMkQ,OACf1E,KACA9F,GAAW,EACX9B,YAAW,WACT8I,GAAW,IACVH,IAEL4D,MAAO,WACAzD,EAIHpQ,GAAI,+BAHJA,GAAI,gCACJ8T,GAAa,eAKjBrF,OAAQ,WACNsF,GAAS,eAAgB,uCAE3BzJ,aAAc,WACZ3K,EAAY4K,WAAWyJ,MAEzBC,WAAY,WACVxS,KAAK6I,gBAGP4J,SAAU,WACR,IAAI5K,EAAU0K,IACdhU,GAAI,0CAA4CsJ,GAChD8H,EAAWrL,KAAKyD,MAAMF,IACtBtJ,GAAI,QAENuJ,QAAS,WACP,IAAID,EAAU0K,IACdhU,GAAI,iCAAmCsJ,GAEvCtI,EAAU+E,KAAKyD,MAAMF,IACrBtJ,GAAI,SAQR,SAASmU,IACP,OAAOzQ,EAAM6E,KAAKG,MAAM,KAAK,GAAGA,MAAM,KAAK,GAG7C,SAASsL,IACP,OAAOtQ,EAAM6E,KAAKpD,OAAOzB,EAAM6E,KAAKnD,QAAQ,KAAO,GAOrD,SAASgP,IAGP,OAAO1Q,EAAM6E,KAAKG,MAAM,KAAK,IAAM,CACjC,KAAQ,EACR,MAAS,GAIb,SAAS2L,IACP,IAAIC,EAAcH,IAEdG,KAAeX,EACjBA,EAAyBW,MAhBe7Y,EAAOD,SAAY,iBAAkB0C,QAAU,WAAYA,QAAU,iBAAkBA,OAAOmD,OAAO/D,WAiBhH8W,KAC7BnT,GAAK,uBAAyByC,EAAM6E,KAAO,KA9BtCiI,KAAW,GAAK9M,EAAM6E,MAAMpD,OAAO,EAAGzG,MAmCzC,IAAU0K,EACZiL,IACSD,IACTT,EAAyBzE,OAEzBlP,GAAI,4BAA8BmU,IAAmB,0CAkB3D7R,GAAiBpE,OAAQ,mBAAoBqW,IAC7CA,KArgCA,SAAS5C,MAgBT,SAASrP,GAAiBC,EAAIC,EAAKC,EAAMjB,GACvCe,EAAGD,iBAAiBE,EAAKC,IAAMgP,IAAmBjQ,GAAW,KAO/D,SAASgT,GAAsBC,GAC7B,OAAOA,EAAOxH,OAAO,GAAGC,cAAgBuH,EAAOtH,MAAM,GA2DvD,SAASuH,GAAatR,GACpB,OAAOoN,EAAQ,IAAMC,EAAO,KAAOrN,EAGrC,SAASpD,GAAIoD,GACPmN,GAAW,WAAa1S,EAAQK,OAAOsF,UAEzCA,QAAQxD,IAAI0U,GAAatR,IAI7B,SAASnC,GAAKmC,GACR,WAAavF,EAAQK,OAAOsF,UAE9BA,QAAQvC,KAAKyT,GAAatR,IAI9B,SAAS8L,KA8RT,IACMyF,GA7QN,WACE,SAASC,EAAQC,GACf,MAAO,SAAWA,EAGpB,IAAItM,EAAO8H,EAAQlL,OAAOzG,GAAUgK,MAAM,KAC1C+H,EAAOlI,EAAK,GACZhJ,EAAatB,IAAcsK,EAAK,GAAK3D,OAAO2D,EAAK,IAAMhJ,EAEvDuQ,EAAiB7R,IAAcsK,EAAK,GAAKqM,EAAQrM,EAAK,IAAMuH,EAC5DS,EAAUtS,IAAcsK,EAAK,GAAKqM,EAAQrM,EAAK,IAAMgI,EACrDxQ,EAAW9B,IAAcsK,EAAK,GAAK3D,OAAO2D,EAAK,IAAMxI,EACrDV,EAAapB,IAAcsK,EAAK,GAAKqM,EAAQrM,EAAK,IAAMlJ,EACxDuQ,EAAgBrH,EAAK,GACrB4H,EAAiBlS,IAAcsK,EAAK,GAAKA,EAAK,GAAK4H,EACnD7Q,EAAiBiJ,EAAK,GACtB9I,EAAc8I,EAAK,IACnB5H,EAAY1C,IAAcsK,EAAK,IAAM3D,OAAO2D,EAAK,KAAO5H,EACxDhB,EAAYmV,OAAS7W,IAAcsK,EAAK,KAAMqM,EAAQrM,EAAK,KAC3DjI,EAAarC,IAAcsK,EAAK,IAAMA,EAAK,IAAMjI,EACjD2Q,EAAgBhT,IAAcsK,EAAK,IAAMA,EAAK,IAAM0I,EArCpD8D,GACA/U,GAAI,wBAA0B+J,SAASiL,KAAO,KAkDhD,WAYE,SAASC,EAAuBC,EAAUC,GAOxC,MANI,oBAAsBD,IACxBlV,GAAI,gBAAkBmV,EAAW,cACjC9D,EAAkB8D,GAAYD,EAC9BA,EAAW,UAGNA,EAGL,kBAAmBhX,QAAU9B,SAAW8B,OAAOoQ,cAActQ,cApB3DuK,EAAOrK,OAAOoQ,cAClBtO,GAAI,2BAA6B+F,KAAKC,UAAUuC,IAChDnM,OAAO8O,KAAK3C,GAAMqB,QAAQmD,GAAWxE,GACrCvH,EAAY,cAAeuH,EAAOA,EAAKvH,UAAYA,EACnDmQ,EAAU,YAAa5I,EAAOA,EAAK4I,QAAUA,EAC7CP,EAAsB,iBAAkBrI,EAAOA,EAAKqE,aAAegE,EACnET,EAAiB,4BAA6B5H,EAAOA,EAAK1I,wBAA0BsQ,EACpFc,EAAgB,2BAA4B1I,EAAOA,EAAK3H,uBAAyBqQ,EAejFd,EAAiB8E,EAAuB9E,EAAgB,UACxDc,EAAgBgE,EAAuBhE,EAAe,UAxBxD,IACM1I,EA0BNvI,GAAI,mCAAqC4Q,GA7EzCwE,GAgGF,WAEMnX,IAAc2R,IAChBA,EAAgBrQ,EAAa,MAG/B8V,GAAa,SAtBf,SAAgBC,EAAM3Y,IACf,IAAMA,EAAMyI,QAAQ,OACvBnE,GAAK,kCAAoCqU,GACzC3Y,EAAQ,IAGV,OAAOA,EAgBgB4Y,CAAO,SAAU3F,IArGxC4F,GACAH,GAAa,aAAc/V,GAC3B+V,GAAa,UAAW5V,IAyRpBkV,EAAW/O,SAAS6P,cAAc,QAC7BpK,MAAMqK,MAAQ,OAEvBf,EAAStJ,MAAMsK,QAAU,QACzBhB,EAAStJ,MAAMnF,OAAS,IACxBN,SAASC,KAAK+P,YAAYjB,GA5R1BkB,KACAC,KAoGAlQ,SAASW,gBAAgB8E,MAAMnF,OAAS,GACxCN,SAASC,KAAKwF,MAAMnF,OAAS,GAC7BlG,GAAI,oCAsRJA,GAAI,yBACJkR,EAAIlO,aAAe,CACjB3D,WAAY,SAAqBoP,GAU/B,OATI,IAASA,IAAU,IAAUpP,GAC/BA,GAAa,EACb0W,OACS,IAAUtH,IAAU,IAASpP,IACtCA,GAAa,EAxHnB2W,GAAqB,UARjB,OAASnG,GAGXA,EAAaoG,aAOfC,cAAc5F,IA0HV6F,GAAQ,EAAG,EAAG,aAAcpQ,KAAKC,UAAU3G,IACpCA,GAETkP,MAAO,WACL4H,GAAQ,EAAG,EAAG,UAEhBlT,MAAO,WACL,OAAOwN,GAET2F,YAAa,SAAsBC,GAC7B,oBAAsBA,GACxBjF,EAAaiF,EACbF,GAAQ,EAAG,EAAG,cAEd/E,EAAa,aAEb+E,GAAQ,EAAG,EAAG,kBAGlB7L,aAAc,SAAuBL,GACnCtK,EAAY4K,WAAWN,IAEzB4J,MAAO,WACLrJ,GAAY,uBAEdxC,SAAU,SAAmBN,EAAGE,GAC9BuO,GAAQvO,EAAGF,EAAG,aAEhB4O,eAAgB,SAAmB5O,EAAGE,GACpCuO,GAAQvO,EAAGF,EAAG,mBAEhBiH,YAAa,SAAsBvL,EAAKwJ,GACtCuJ,GAAQ,EAAG,EAAG,UAAWpQ,KAAKC,UAAU5C,GAAMwJ,IAEhD2J,2BAA4B,SAAqC1W,GAC/DsQ,EAAiBtQ,EACjBgW,MAEFW,0BAA2B,SAAoC5V,GAC7DqQ,EAAgBrQ,EAChBkV,MAEFW,gBAAiB,SAA0B7J,GACzC5M,GAAI,qBAAuB4M,GAC3BgE,EAAsBhE,GAExB5H,KAAM,SAAe0R,EAAcC,GAEjC5C,GAAS,OAAQ,sBADK2C,GAAgB,KAAOC,EAAc,IAAMA,EAAc,IAC3B,IAAKD,EAAcC,KApb3EZ,KACApW,EA0RF,WAQE,SAAS4H,EAAmBhF,GAC1B,IAAIqU,EAAarU,EAAGuD,wBAChBnH,EARG,CACL+I,EAAGxJ,OAAO+I,cAAgBhJ,EAAYC,OAAO+I,YAAcrB,SAASW,gBAAgBS,WACpFY,EAAG1J,OAAO6I,cAAgB9I,EAAYC,OAAO6I,YAAcnB,SAASW,gBAAgBO,WAOtF,MAAO,CACLY,EAAGpD,SAASsS,EAAW/P,KAAM,IAAMvC,SAAS3F,EAAa+I,EAAG,IAC5DE,EAAGtD,SAASsS,EAAW9T,IAAK,IAAMwB,SAAS3F,EAAaiJ,EAAG,KAI/D,SAAS2C,EAAWR,GAOlB,IAAIE,EAAOF,EAASrB,MAAM,KAAK,IAAMqB,EAErCG,EAAWC,mBAAmBF,GAC1BzC,EAAS5B,SAASwE,eAAeF,IAAatE,SAASyE,kBAAkBH,GAAU,GAEnFjM,IAAcuJ,EAXlB,SAAsBA,GACpB,IAAIwC,EAAezC,EAAmBC,GACtCxH,GAAI,4BAA8BiK,EAAO,WAAaD,EAAatC,EAAI,OAASsC,EAAapC,GAC7FuO,GAAQnM,EAAapC,EAAGoC,EAAatC,EAAG,kBASxCmP,CAAarP,IAEbxH,GAAI,kBAAoBiK,EAAO,+CAC/BkM,GAAQ,EAAG,EAAG,aAAc,IAAMlM,IAItC,SAAS6M,IACH,KAAO/M,SAASE,MAAQ,MAAQF,SAASE,MAC3CM,EAAWR,SAASiL,MA2CpBrV,EAAYmV,OAVV9L,MAAM1L,UAAUsM,SAAWhE,SAAS8J,kBACtC1P,GAAI,qCAhBNgJ,MAAM1L,UAAUsM,QAAQ/N,KAAK+J,SAAS8J,iBAAiB,iBAbvD,SAAmBnN,GAQb,MAAQA,EAAGwU,aAAa,SAC1BzU,GAAiBC,EAAI,SARvB,SAAqByU,GACnBA,EAAEC,iBAGF1M,EAAW9I,KAAKsV,aAAa,eAYjCzU,GAAiBpE,OAAQ,aAAc4Y,GAKvCxP,WAAWwP,EAAmB7G,IAY5BhP,GAAK,2FAOPjB,GAAI,+BAGN,MAAO,CACLuK,WAAYA,GAnXA2M,GACdnD,GAAS,OAAQ,+BACjB5C,IA0BF,SAASpE,GAAU9P,GACjB,IAAI+P,EAAY/P,EAAIyL,MAAM,YAE1B,GAAyB,IAArBsE,EAAUxO,OAAc,CAC1B,IAAIvC,EAAO,KAAO+Q,EAAU,GAAGC,OAAO,GAAGC,cAAgBF,EAAU,GAAGG,MAAM,GAC5E1L,KAAKxF,GAAQwF,KAAKxE,UACXwE,KAAKxE,GACZgE,GAAK,gBAAkBhE,EAAM,uBAAyBhB,EAAO,iEA4CjE,SAASoZ,GAAaC,EAAM3Y,GACtBsB,IAActB,GAAS,KAAOA,GAAS,SAAWA,IACpDiJ,SAASC,KAAKwF,MAAMiK,GAAQ3Y,EAC5BqD,GAAI,QAAUsV,EAAO,YAAc3Y,EAAQ,MAmB/C,SAASwa,GAAmB3V,GAC1B,IAAI4V,EAAW,CACbC,IAAK,SAAatI,GAChB,SAASuI,IACPvD,GAASvS,EAAQuN,UAAWvN,EAAQ+V,WAGtC/F,EAAoBzC,GAAauI,EACjChV,GAAiBpE,OAAQ6Q,EAAWuI,EAAa,CAC/C5F,SAAS,KAGb8F,OAAQ,SAAgBzI,GACtB,IAjNuBxM,EAAIC,EAAKC,EAiN5B6U,EAAc9F,EAAoBzC,UAC/ByC,EAAoBzC,GAlNJxM,EAmNHrE,OAnNOsE,EAmNCuM,EAnNItM,EAmNO6U,EAlN3C/U,EAAGG,oBAAoBF,EAAKC,GAAM,KAsN9BjB,EAAQiW,YAAczO,MAAM1L,UAAUoa,KACxClW,EAAQuN,UAAYvN,EAAQiW,WAAW,GACvCjW,EAAQiW,WAAWC,IAAIN,EAAS5V,EAAQmW,UAExCP,EAAS5V,EAAQmW,QAAQnW,EAAQuN,WAGnC/O,GAAIwU,GAAsBhT,EAAQmW,QAAU,oBAAsBnW,EAAQ+V,WAG5E,SAASvB,GAAqB2B,GAC5BR,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,kBACXE,WAAY,CAAC,iBAAkB,0BAEjCN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,sBACXE,WAAY,CAAC,qBAAsB,8BAErCN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,gBACXE,WAAY,CAAC,eAAgB,wBAE/BN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,QACXxI,UAAW,UAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,WACXxI,UAAW,YAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,aACXxI,UAAW,cAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,qBACXxI,UAAW,sBAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,QACXxI,UAAW,CAAC,aAAc,iBAE5BoI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,qBACXxI,UAAW,qBAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,cACXxI,UAAW,eAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,YACXxI,UAAW,aAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,eACXxI,UAAW,gBAEboI,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,mBACXE,WAAY,CAAC,kBAAmB,wBAAyB,oBAAqB,mBAAoB,sBAEpGN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,uBACXE,WAAY,CAAC,sBAAuB,4BAA6B,wBAAyB,uBAAwB,0BAEpHN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,iBACXE,WAAY,CAAC,gBAAiB,sBAAuB,kBAAmB,iBAAkB,oBAGxF,UAAYnX,GACd6W,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,iBACXxI,UAAW,WAKjB,SAAS6I,GAAc1C,EAAU2C,EAAiBC,EAAOxU,GAUvD,OATIuU,IAAoB3C,IAChBA,KAAY4C,IAChB7W,GAAKiU,EAAW,8BAAgC5R,EAAO,sBACvD4R,EAAW2C,GAGb7X,GAAIsD,EAAO,+BAAiC4R,EAAW,MAGlDA,EAGT,SAASW,KACP1F,EAAiByH,GAAczH,EAAgBD,EAAuBoC,GAAW,UAGnF,SAASwD,KACP7E,EAAgB2G,GAAc3G,EAAeD,EAAsBmC,GAAU,SAG/E,SAAS4C,KAqST,IACMgC,GArSA,IAAS1Y,GACX2W,GAAqB,OAoSnB+B,EAAqB,EAAIhY,EAIzB7B,OAAOiE,kBAAoBjE,OAAOkE,uBAChC2V,EACFC,KAEAnI,EAvFN,WACE,SAASoI,EAAqBhK,GAC5B,SAASiK,EAAqBrW,IACxB,IAAUA,EAAQsW,WACpBnY,GAAI,uBAAyB6B,EAAQuL,KACrCvL,EAAQS,iBAAiB,OAAQ8V,GAAa,GAC9CvW,EAAQS,iBAAiB,QAAS+V,GAAY,GAC9CC,EAAShJ,KAAKzN,IAII,eAAlBoM,EAAS3K,MAAoD,QAA3B2K,EAASsK,cAC7CL,EAAqBjK,EAASzG,QACH,cAAlByG,EAAS3K,MAClB0F,MAAM1L,UAAUsM,QAAQ/N,KAAKoS,EAASzG,OAAOkI,iBAAiB,OAAQwI,GAQ1E,SAASM,EAAwB3W,GAC/B7B,GAAI,yBAA2B6B,EAAQuL,KACvCvL,EAAQa,oBAAoB,OAAQ0V,GAAa,GACjDvW,EAAQa,oBAAoB,QAAS2V,GAAY,GAPnD,SAAyBxW,GACvByW,EAASG,OAAOH,EAASlT,QAAQvD,GAAU,GAO3C6W,CAAgB7W,GAGlB,SAAS8W,EAAoBjV,EAAOJ,EAAMsV,GACxCJ,EAAwB9U,EAAM8D,QAC9BuM,GAASzQ,EAAMsV,EAAW,KAAOlV,EAAM8D,OAAO4F,IAAKnP,EAAWA,GAGhE,SAASma,EAAY1U,GACnBiV,EAAoBjV,EAAO,YAAa,gBAG1C,SAAS2U,EAAW3U,GAClBiV,EAAoBjV,EAAO,kBAAmB,qBAGhD,SAAS8H,EAAiBC,GACxBsI,GAAS,mBAAoB,qBAAuBtI,EAAU,GAAGjE,OAAS,IAAMiE,EAAU,GAAGnI,MAE7FmI,EAAU7B,QAAQqO,GAmBpB,IAAIK,EAAW,GACXnW,EAAmBjE,OAAOiE,kBAAoBjE,OAAOkE,uBACrDyW,EAlBJ,WACE,IAAIrR,EAAS5B,SAAS+F,cAAc,QAYpC,OAHAkN,EAAW,IAAI1W,EAAiBqJ,GAChCxL,GAAI,gCACJ6Y,EAASjN,QAAQpE,EAVJ,CACXqE,YAAY,EACZC,mBAAmB,EACnBC,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,IAKJ2M,EAKMC,GACf,MAAO,CACL7C,WAAY,WACN,eAAgB4C,IAClB7Y,GAAI,oCACJ6Y,EAAS5C,aACTqC,EAAS1O,QAAQ4O,MAeJO,IAGjB/Y,GAAI,mDACJgY,OA7SAhY,GAAI,wBAsMR,SAASgY,KACH,IAAMjY,IACRC,GAAI,gBAAkBD,EAAW,MACjCuQ,EAAgB0I,aAAY,WAC1BjF,GAAS,WAAY,gBAAkBhU,KACtCuG,KAAK2S,IAAIlZ,KAwGhB,SAAS4I,GAAiBuQ,EAAM3W,GAC9B,IAAImI,EAAS,EAKb,OAJAnI,EAAKA,GAAMqD,SAASC,KAGpB6E,EAAS,QADTA,EAAS9E,SAASuT,YAAYxQ,iBAAiBpG,EAAI,OACxBmI,EAAOwO,GAAQ,EACnC5U,SAASoG,EAAQiF,GAW1B,SAASoD,GAAcqG,EAAMd,GAO3B,IANA,IAAIe,EAAiBf,EAAS9Z,OAC1B8a,EAAQ,EACRC,EAAS,EACTC,EAAOhF,GAAsB4E,GAC7Bja,EAAQ+S,IAEHxW,EAAI,EAAGA,EAAI2d,EAAgB3d,KAClC4d,EAAQhB,EAAS5c,GAAGoK,wBAAwBsT,GAAQzQ,GAAiB,SAAW6Q,EAAMlB,EAAS5c,KAEnF6d,IACVA,EAASD,GAQb,OAJAna,EAAQ+S,IAAW/S,EACnBa,GAAI,UAAYqZ,EAAiB,kBACjCrZ,GAAI,kCAAoCb,EAAQ,MAzBlD,SAAyBA,GACnBA,EAAQ4R,EAAiB,GAE3B/Q,GAAI,gCADJ+Q,EAAiB,EAAI5R,GACiC,MAuBxDsa,CAAgBta,GACToa,EAGT,SAAS3G,GAAmB8G,GAC1B,MAAO,CAACA,EAAUnH,aAAcmH,EAAU1a,aAAc0a,EAAUhH,wBAAyBgH,EAAUza,yBAGvG,SAASiU,GAAkBkG,EAAMO,GAM/B,IAAIrB,EAAW1S,SAAS8J,iBAAiB,IAAMiK,EAAM,KAErD,OADI,IAAMrB,EAAS9Z,SALjByC,GAAK,uBAAyB0Y,EAAM,mBAC7B/T,SAAS8J,iBAAiB,WAK5BqD,GAAcqG,EAAMd,GAG7B,SAAStF,KACP,OAAOpN,SAAS8J,iBAAiB,UAuEnC,SAAS6D,GAAWqG,EAAcC,EAAkBnD,EAAcC,GA4ChE,IAAImD,EAAeC,GArCnB,WACE,SAASC,EAAeC,EAAGC,GAEzB,QADa5T,KAAK2S,IAAIgB,EAAIC,IAAMvZ,GAMlC,OAFAmZ,EAAgB7b,IAAcyY,EAAeA,EAAepE,GAAUnC,KACtE4J,EAAe9b,IAAc0Y,EAAcA,EAAcxD,GAASlC,KAC3D+I,EAAe9T,EAAQ4T,IAAkBhK,GAAkBkK,EAAe5T,EAAO2T,GA+BtFI,IAA0B,SAAWP,EA3B9BA,IAAgB,CACvB1K,KAAM,EACNnP,SAAU,EACViF,KAAM,MAKDmL,KAAkBtR,GAAwBiR,GAAkBmB,KAAiBpS,GAUvE+a,IAAgB,CAC3B7Z,SAAU,IAPZC,GAAI,8BAKFwK,GAAYqP,IAWdO,KA3CAjE,GAFAjQ,EAAS4T,EACT1T,EAAQ2T,EACeH,IAoD3B,SAAS7F,GAAS6F,EAAcC,EAAkBnD,EAAcC,GAYrD9F,GAAiB+I,KAAgB7J,EAYxC/P,GAAI,4BAA8B4Z,IAtB5BA,IAAgB,CACpB/F,MAAO,EACPwG,UAAW,EACXnL,KAAM,IAENlP,GAAI,kBAAoB6Z,GAWL,SAAjBD,EACFrG,GAAWqG,EAAcC,EAAkBnD,EAAcC,GAEzDrD,GAAoBsG,EAAcC,EAAkBnD,EAAcC,IAOxE,SAASyD,KACFvJ,IACHA,GAAgB,EAChB7Q,GAAI,0BAGN0T,aAAa5C,GACbA,EAAqBxJ,YAAW,WAC9BuJ,GAAgB,EAChB7Q,GAAI,0BACJA,GAAI,QACHiQ,GAGL,SAAS6D,GAAa8F,GACpB1T,EAASoM,GAAUnC,KACnB/J,EAAQ+M,GAASlC,KACjBkF,GAAQjQ,EAAQE,EAAOwT,GAGzB,SAASpP,GAAYqP,GACnB,IAAIS,EAAMnK,EACVA,EAAiBD,EACjBlQ,GAAI,wBAA0B6Z,GAC9BO,KACAtG,GAAa,SACb3D,EAAiBmK,EAGnB,SAASnE,GAAQjQ,EAAQE,EAAOwT,EAAcxW,EAAKwJ,GASjD,IAEMrD,GAKF,IAASmH,IAdPzS,IAAc2O,EAChBA,EAAegE,EAEf5Q,GAAI,yBAA2B4M,GAOjC5M,GAAI,kCADAuJ,EAAUkH,EAAO,IADVvK,EAAS,IAAME,EACQ,IAAMwT,GAAgB3b,IAAcmF,EAAM,IAAMA,EAAM,KACvC,KACjDoE,EAAOqF,YAAY2D,EAAQjH,EAASqD,IAyGxC,SAAS2H,KACH,YAAc3O,SAAS2U,YACzBrc,OAAOyS,OAAO9D,YAAY,4BAA6B,MAjkC7D,I,mBCdA2N,EAAQ","file":"blutspendech/iframe_resizer.398333b49e484bcc8212.js","sourcesContent":[" \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 = \"https://assets-tort.blutspende.ch/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n","module.exports = require('./js');","var iframeResize = require('./iframeResizer');\n\nexports.iframeResize = iframeResize;\nexports.iframeResizer = iframeResize; // Backwards compatability\n\nexports.iframeResizerContentWindow = require('./iframeResizer.contentWindow');","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\n * File: iframeResizer.js\n * Desc: Force iframes to size to content.\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n * Contributor: Jure Mav - jure.mav@gmail.com\n * Contributor: Reed Dadoune - reed@dadoune.com\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n;\n\n(function (undefined) {\n if (typeof window === 'undefined') return; // don't run for server side render\n\n var count = 0,\n logEnabled = false,\n hiddenCheckEnabled = false,\n msgHeader = 'message',\n msgHeaderLen = msgHeader.length,\n msgId = '[iFrameSizer]',\n // Must match iframe msg ID\n msgIdLen = msgId.length,\n pagePosition = null,\n requestAnimationFrame = window.requestAnimationFrame,\n resetRequiredMethods = {\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n },\n settings = {},\n timer = null,\n defaults = {\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyMarginV1: 8,\n bodyPadding: null,\n checkOrigin: true,\n inPageLinks: false,\n enablePublicMethods: true,\n heightCalculationMethod: 'bodyOffset',\n id: 'iFrameResizer',\n interval: 32,\n log: false,\n maxHeight: Infinity,\n maxWidth: Infinity,\n minHeight: 0,\n minWidth: 0,\n resizeFrom: 'parent',\n scrolling: false,\n sizeHeight: true,\n sizeWidth: false,\n warningTimeout: 5000,\n tolerance: 0,\n widthCalculationMethod: 'scroll',\n onClose: function onClose() {\n return true;\n },\n onClosed: function onClosed() {},\n onInit: function onInit() {},\n onMessage: function onMessage() {\n warn('onMessage function not defined');\n },\n onResized: function onResized() {},\n onScroll: function onScroll() {\n return true;\n }\n };\n\n function getMutationObserver() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n }\n\n function addEventListener(el, evt, func) {\n el.addEventListener(evt, func, false);\n }\n\n function removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false);\n }\n\n function setupRequestAnimationFrame() {\n var vendors = ['moz', 'webkit', 'o', 'ms'];\n var x; // Remove vendor prefixing if prefixed and break early if not\n\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n }\n\n if (!requestAnimationFrame) {\n log('setup', 'RequestAnimationFrame not supported');\n } else {\n // Firefox extension content-scripts have a globalThis object that is not the same as window.\n // Binding `requestAnimationFrame` to window allows the function to work and prevents errors\n // being thrown when run in that context, and should be a no-op in every other context.\n requestAnimationFrame = requestAnimationFrame.bind(window);\n }\n }\n\n function getMyID(iframeId) {\n var retStr = 'Host page: ' + iframeId;\n\n if (window.top !== window.self) {\n if (window.parentIFrame && window.parentIFrame.getId) {\n retStr = window.parentIFrame.getId() + ': ' + iframeId;\n } else {\n retStr = 'Nested host page: ' + iframeId;\n }\n }\n\n return retStr;\n }\n\n function formatLogHeader(iframeId) {\n return msgId + '[' + getMyID(iframeId) + ']';\n }\n\n function isLogEnabled(iframeId) {\n return settings[iframeId] ? settings[iframeId].log : logEnabled;\n }\n\n function log(iframeId, msg) {\n output('log', iframeId, msg, isLogEnabled(iframeId));\n }\n\n function info(iframeId, msg) {\n output('info', iframeId, msg, isLogEnabled(iframeId));\n }\n\n function warn(iframeId, msg) {\n output('warn', iframeId, msg, true);\n }\n\n function output(type, iframeId, msg, enabled) {\n if (true === enabled && 'object' === _typeof(window.console)) {\n // eslint-disable-next-line no-console\n console[type](formatLogHeader(iframeId), msg);\n }\n }\n\n function iFrameListener(event) {\n function resizeIFrame() {\n function resize() {\n setSize(messageData);\n setPagePosition(iframeId);\n on('onResized', messageData);\n }\n\n ensureInRange('Height');\n ensureInRange('Width');\n syncResize(resize, messageData, 'init');\n }\n\n function processMsg() {\n var data = msg.substr(msgIdLen).split(':');\n var height = data[1] ? parseInt(data[1], 10) : 0;\n var iframe = settings[data[0]] && settings[data[0]].iframe;\n var compStyle = getComputedStyle(iframe);\n return {\n iframe: iframe,\n id: data[0],\n height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),\n width: data[2],\n type: data[3]\n };\n }\n\n function getPaddingEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0;\n }\n\n var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0;\n var bot = compStyle.paddingBottom ? parseInt(compStyle.paddingBottom, 10) : 0;\n return top + bot;\n }\n\n function getBorderEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0;\n }\n\n var top = compStyle.borderTopWidth ? parseInt(compStyle.borderTopWidth, 10) : 0;\n var bot = compStyle.borderBottomWidth ? parseInt(compStyle.borderBottomWidth, 10) : 0;\n return top + bot;\n }\n\n function ensureInRange(Dimension) {\n var max = Number(settings[iframeId]['max' + Dimension]),\n min = Number(settings[iframeId]['min' + Dimension]),\n dimension = Dimension.toLowerCase(),\n size = Number(messageData[dimension]);\n log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max);\n\n if (size < min) {\n size = min;\n log(iframeId, 'Set ' + dimension + ' to min value');\n }\n\n if (size > max) {\n size = max;\n log(iframeId, 'Set ' + dimension + ' to max value');\n }\n\n messageData[dimension] = '' + size;\n }\n\n function isMessageFromIFrame() {\n function checkAllowedOrigin() {\n function checkList() {\n var i = 0,\n retCode = false;\n log(iframeId, 'Checking connection is from allowed list of origins: ' + checkOrigin);\n\n for (; i < checkOrigin.length; i++) {\n if (checkOrigin[i] === origin) {\n retCode = true;\n break;\n }\n }\n\n return retCode;\n }\n\n function checkSingle() {\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost;\n log(iframeId, 'Checking connection is from: ' + remoteHost);\n return origin === remoteHost;\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle();\n }\n\n var origin = event.origin,\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin;\n\n if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\n throw new Error('Unexpected message received from: ' + origin + ' for ' + messageData.iframe.id + '. Message was: ' + event.data + '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.');\n }\n\n return true;\n }\n\n function isMessageForUs() {\n return msgId === ('' + msg).substr(0, msgIdLen) && msg.substr(msgIdLen).split(':')[0] in settings; // ''+Protects against non-string msg\n }\n\n function isMessageFromMetaParent() {\n // Test if this message is from a parent above us. This is an ugly test, however, updating\n // the message format would break backwards compatibity.\n var retCode = messageData.type in {\n \"true\": 1,\n \"false\": 1,\n undefined: 1\n };\n\n if (retCode) {\n log(iframeId, 'Ignoring init message from meta parent page');\n }\n\n return retCode;\n }\n\n function getMsgBody(offset) {\n return msg.substr(msg.indexOf(':') + msgHeaderLen + offset);\n }\n\n function forwardMsgFromIFrame(msgBody) {\n log(iframeId, 'onMessage passed: {iframe: ' + messageData.iframe.id + ', message: ' + msgBody + '}');\n on('onMessage', {\n iframe: messageData.iframe,\n message: JSON.parse(msgBody)\n });\n log(iframeId, '--');\n }\n\n function getPageInfo() {\n var bodyPosition = document.body.getBoundingClientRect(),\n iFramePosition = messageData.iframe.getBoundingClientRect();\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\n clientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\n scrollTop: window.pageYOffset,\n scrollLeft: window.pageXOffset,\n documentHeight: document.documentElement.clientHeight,\n documentWidth: document.documentElement.clientWidth,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth\n });\n }\n\n function sendPageInfoToIframe(iframe, iframeId) {\n function debouncedTrigger() {\n trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId);\n }\n\n debounceFrameEvents(debouncedTrigger, 32, iframeId);\n }\n\n function startPageInfoMonitor() {\n function setListener(type, func) {\n function sendPageInfo() {\n if (settings[id]) {\n sendPageInfoToIframe(settings[id].iframe, id);\n } else {\n stop();\n }\n }\n\n ;\n ['scroll', 'resize'].forEach(function (evt) {\n log(id, type + evt + ' listener for sendPageInfo');\n func(window, evt, sendPageInfo);\n });\n }\n\n function stop() {\n setListener('Remove ', removeEventListener);\n }\n\n function start() {\n setListener('Add ', addEventListener);\n }\n\n var id = iframeId; // Create locally scoped copy of iFrame ID\n\n start();\n\n if (settings[id]) {\n settings[id].stopPageInfo = stop;\n }\n }\n\n function stopPageInfoMonitor() {\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\n settings[iframeId].stopPageInfo();\n delete settings[iframeId].stopPageInfo;\n }\n }\n\n function checkIFrameExists() {\n var retBool = true;\n\n if (null === messageData.iframe) {\n warn(iframeId, 'IFrame (' + messageData.id + ') not found');\n retBool = false;\n }\n\n return retBool;\n }\n\n function getElementPosition(target) {\n var iFramePosition = target.getBoundingClientRect();\n getPagePosition(iframeId);\n return {\n x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\n y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))\n };\n }\n\n function scrollRequestFromChild(addOffset) {\n /* istanbul ignore next */\n // Not testable in Karma\n function reposition() {\n pagePosition = newPosition;\n scrollTo();\n log(iframeId, '--');\n }\n\n function calcOffset() {\n return {\n x: Number(messageData.width) + offset.x,\n y: Number(messageData.height) + offset.y\n };\n }\n\n function scrollParent() {\n if (window.parentIFrame) {\n window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](newPosition.x, newPosition.y);\n } else {\n warn(iframeId, 'Unable to scroll to requested position, window.parentIFrame not found');\n }\n }\n\n var offset = addOffset ? getElementPosition(messageData.iframe) : {\n x: 0,\n y: 0\n },\n newPosition = calcOffset();\n log(iframeId, 'Reposition requested from iFrame (offset x:' + offset.x + ' y:' + offset.y + ')');\n\n if (window.top !== window.self) {\n scrollParent();\n } else {\n reposition();\n }\n }\n\n function scrollTo() {\n if (false !== on('onScroll', pagePosition)) {\n setPagePosition(iframeId);\n } else {\n unsetPagePosition();\n }\n }\n\n function findTarget(location) {\n function jumpToTarget() {\n var jumpPosition = getElementPosition(target);\n log(iframeId, 'Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);\n pagePosition = {\n x: jumpPosition.x,\n y: jumpPosition.y\n };\n scrollTo();\n log(iframeId, '--');\n }\n\n function jumpToParent() {\n if (window.parentIFrame) {\n window.parentIFrame.moveToAnchor(hash);\n } else {\n log(iframeId, 'In page link #' + hash + ' not found and window.parentIFrame not found');\n }\n }\n\n var hash = location.split('#')[1] || '',\n hashData = decodeURIComponent(hash),\n target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];\n\n if (target) {\n jumpToTarget();\n } else if (window.top !== window.self) {\n jumpToParent();\n } else {\n log(iframeId, 'In page link #' + hash + ' not found');\n }\n }\n\n function on(funcName, val) {\n return chkEvent(iframeId, funcName, val);\n }\n\n function actionMsg() {\n if (settings[iframeId] && settings[iframeId].firstRun) firstRun();\n\n switch (messageData.type) {\n case 'close':\n closeIFrame(messageData.iframe);\n break;\n\n case 'message':\n forwardMsgFromIFrame(getMsgBody(6));\n break;\n\n case 'autoResize':\n settings[iframeId].autoResize = JSON.parse(getMsgBody(9));\n break;\n\n case 'scrollTo':\n scrollRequestFromChild(false);\n break;\n\n case 'scrollToOffset':\n scrollRequestFromChild(true);\n break;\n\n case 'pageInfo':\n sendPageInfoToIframe(settings[iframeId] && settings[iframeId].iframe, iframeId);\n startPageInfoMonitor();\n break;\n\n case 'pageInfoStop':\n stopPageInfoMonitor();\n break;\n\n case 'inPageLink':\n findTarget(getMsgBody(9));\n break;\n\n case 'reset':\n resetIFrame(messageData);\n break;\n\n case 'init':\n resizeIFrame();\n on('onInit', messageData.iframe);\n break;\n\n default:\n resizeIFrame();\n }\n }\n\n function hasSettings(iframeId) {\n var retBool = true;\n\n if (!settings[iframeId]) {\n retBool = false;\n warn(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);\n }\n\n return retBool;\n }\n\n function iFrameReadyMsgReceived() {\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (var iframeId in settings) {\n trigger('iFrame requested init', createOutgoingMsg(iframeId), settings[iframeId].iframe, iframeId);\n }\n }\n\n function firstRun() {\n if (settings[iframeId]) {\n settings[iframeId].firstRun = false;\n }\n }\n\n var msg = event.data,\n messageData = {},\n iframeId = null;\n\n if ('[iFrameResizerChild]Ready' === msg) {\n iFrameReadyMsgReceived();\n } else if (isMessageForUs()) {\n messageData = processMsg();\n iframeId = messageData.id;\n\n if (settings[iframeId]) {\n settings[iframeId].loaded = true;\n }\n\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\n log(iframeId, 'Received: ' + msg);\n\n if (checkIFrameExists() && isMessageFromIFrame()) {\n actionMsg();\n }\n }\n } else {\n info(iframeId, 'Ignored: ' + msg);\n }\n }\n\n function chkEvent(iframeId, funcName, val) {\n var func = null,\n retVal = null;\n\n if (settings[iframeId]) {\n func = settings[iframeId][funcName];\n\n if ('function' === typeof func) {\n retVal = func(val);\n } else {\n throw new TypeError(funcName + ' on iFrame[' + iframeId + '] is not a function');\n }\n }\n\n return retVal;\n }\n\n function removeIframeListeners(iframe) {\n var iframeId = iframe.id;\n delete settings[iframeId];\n }\n\n function closeIFrame(iframe) {\n var iframeId = iframe.id;\n\n if (chkEvent(iframeId, 'onClose', iframeId) === false) {\n log(iframeId, 'Close iframe cancelled by onClose event');\n return;\n }\n\n log(iframeId, 'Removing iFrame: ' + iframeId);\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.parentNode.removeChild(iframe);\n }\n } catch (error) {\n warn(error);\n }\n\n chkEvent(iframeId, 'onClosed', iframeId);\n log(iframeId, '--');\n removeIframeListeners(iframe);\n }\n\n function getPagePosition(iframeId) {\n if (null === pagePosition) {\n pagePosition = {\n x: window.pageXOffset !== undefined ? window.pageXOffset : document.documentElement.scrollLeft,\n y: window.pageYOffset !== undefined ? window.pageYOffset : document.documentElement.scrollTop\n };\n log(iframeId, 'Get page position: ' + pagePosition.x + ',' + pagePosition.y);\n }\n }\n\n function setPagePosition(iframeId) {\n if (null !== pagePosition) {\n window.scrollTo(pagePosition.x, pagePosition.y);\n log(iframeId, 'Set page position: ' + pagePosition.x + ',' + pagePosition.y);\n unsetPagePosition();\n }\n }\n\n function unsetPagePosition() {\n pagePosition = null;\n }\n\n function resetIFrame(messageData) {\n function reset() {\n setSize(messageData);\n trigger('reset', 'reset', messageData.iframe, messageData.id);\n }\n\n log(messageData.id, 'Size reset requested by ' + ('init' === messageData.type ? 'host page' : 'iFrame'));\n getPagePosition(messageData.id);\n syncResize(reset, messageData, 'reset');\n }\n\n function setSize(messageData) {\n function setDimension(dimension) {\n if (!messageData.id) {\n log('undefined', 'messageData id not set');\n return;\n }\n\n messageData.iframe.style[dimension] = messageData[dimension] + 'px';\n log(messageData.id, 'IFrame (' + iframeId + ') ' + dimension + ' set to ' + messageData[dimension] + 'px');\n }\n\n function chkZero(dimension) {\n // FireFox sets dimension of hidden iFrames to zero.\n // So if we detect that set up an event to check for\n // when iFrame becomes visible.\n\n /* istanbul ignore next */\n // Not testable in PhantomJS\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\n hiddenCheckEnabled = true;\n log(iframeId, 'Hidden iFrame detected, creating visibility listener');\n fixHiddenIFrames();\n }\n }\n\n function processDimension(dimension) {\n setDimension(dimension);\n chkZero(dimension);\n }\n\n var iframeId = messageData.iframe.id;\n\n if (settings[iframeId]) {\n if (settings[iframeId].sizeHeight) {\n processDimension('height');\n }\n\n if (settings[iframeId].sizeWidth) {\n processDimension('width');\n }\n }\n }\n\n function syncResize(func, messageData, doNotSync) {\n /* istanbul ignore if */\n // Not testable in PhantomJS\n if (doNotSync !== messageData.type && requestAnimationFrame && // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame\n !window.jasmine) {\n log(messageData.id, 'Requesting animation frame');\n requestAnimationFrame(func);\n } else {\n func();\n }\n }\n\n function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {\n function postMessageToIFrame() {\n var target = settings[id] && settings[id].targetOrigin;\n log(id, '[' + calleeMsg + '] Sending msg to iframe[' + id + '] (' + msg + ') targetOrigin: ' + target);\n iframe.contentWindow.postMessage(msgId + msg, target);\n }\n\n function iFrameNotFound() {\n warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found');\n }\n\n function chkAndSend() {\n if (iframe && 'contentWindow' in iframe && null !== iframe.contentWindow) {\n // Null test for PhantomJS\n postMessageToIFrame();\n } else {\n iFrameNotFound();\n }\n }\n\n function warnOnNoResponse() {\n function warning() {\n if (settings[id] && !settings[id].loaded && !errorShown) {\n errorShown = true;\n warn(id, 'IFrame has not responded within ' + settings[id].warningTimeout / 1000 + ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.');\n }\n }\n\n if (!!noResponseWarning && settings[id] && !!settings[id].warningTimeout) {\n settings[id].msgTimeout = setTimeout(warning, settings[id].warningTimeout);\n }\n }\n\n var errorShown = false;\n id = id || iframe.id;\n\n if (settings[id]) {\n chkAndSend();\n warnOnNoResponse();\n }\n }\n\n function createOutgoingMsg(iframeId) {\n return iframeId + ':' + settings[iframeId].bodyMarginV1 + ':' + settings[iframeId].sizeWidth + ':' + settings[iframeId].log + ':' + settings[iframeId].interval + ':' + settings[iframeId].enablePublicMethods + ':' + settings[iframeId].autoResize + ':' + settings[iframeId].bodyMargin + ':' + settings[iframeId].heightCalculationMethod + ':' + settings[iframeId].bodyBackground + ':' + settings[iframeId].bodyPadding + ':' + settings[iframeId].tolerance + ':' + settings[iframeId].inPageLinks + ':' + settings[iframeId].resizeFrom + ':' + settings[iframeId].widthCalculationMethod;\n }\n\n function setupIFrame(iframe, options) {\n function setLimits() {\n function addStyle(style) {\n if (Infinity !== settings[iframeId][style] && 0 !== settings[iframeId][style]) {\n iframe.style[style] = settings[iframeId][style] + 'px';\n log(iframeId, 'Set ' + style + ' = ' + settings[iframeId][style] + 'px');\n }\n }\n\n function chkMinMax(dimension) {\n if (settings[iframeId]['min' + dimension] > settings[iframeId]['max' + dimension]) {\n throw new Error('Value for min' + dimension + ' can not be greater than max' + dimension);\n }\n }\n\n chkMinMax('Height');\n chkMinMax('Width');\n addStyle('maxHeight');\n addStyle('minHeight');\n addStyle('maxWidth');\n addStyle('minWidth');\n }\n\n function newId() {\n var id = options && options.id || defaults.id + count++;\n\n if (null !== document.getElementById(id)) {\n id += count++;\n }\n\n return id;\n }\n\n function ensureHasId(iframeId) {\n if ('' === iframeId) {\n // eslint-disable-next-line no-multi-assign\n iframe.id = iframeId = newId();\n logEnabled = (options || {}).log;\n log(iframeId, 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')');\n }\n\n return iframeId;\n }\n\n function setScrolling() {\n log(iframeId, 'IFrame scrolling ' + (settings[iframeId] && settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId);\n iframe.style.overflow = false === (settings[iframeId] && settings[iframeId].scrolling) ? 'hidden' : 'auto';\n\n switch (settings[iframeId] && settings[iframeId].scrolling) {\n case 'omit':\n break;\n\n case true:\n iframe.scrolling = 'yes';\n break;\n\n case false:\n iframe.scrolling = 'no';\n break;\n\n default:\n iframe.scrolling = settings[iframeId] ? settings[iframeId].scrolling : 'no';\n }\n } // The V1 iFrame script expects an int, where as in V2 expects a CSS\n // string value such as '1px 3em', so if we have an int for V2, set V1=V2\n // and then convert V2 to a string PX value.\n\n\n function setupBodyMarginValues() {\n if ('number' === typeof (settings[iframeId] && settings[iframeId].bodyMargin) || '0' === (settings[iframeId] && settings[iframeId].bodyMargin)) {\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;\n settings[iframeId].bodyMargin = '' + settings[iframeId].bodyMargin + 'px';\n }\n }\n\n function checkReset() {\n // Reduce scope of firstRun to function, because IE8's JS execution\n // context stack is borked and this value gets externally\n // changed midway through running this function!!!\n var firstRun = settings[iframeId] && settings[iframeId].firstRun,\n resetRequertMethod = settings[iframeId] && settings[iframeId].heightCalculationMethod in resetRequiredMethods;\n\n if (!firstRun && resetRequertMethod) {\n resetIFrame({\n iframe: iframe,\n height: 0,\n width: 0,\n type: 'init'\n });\n }\n }\n\n function setupIFrameObject() {\n if (settings[iframeId]) {\n settings[iframeId].iframe.iFrameResizer = {\n close: closeIFrame.bind(null, settings[iframeId].iframe),\n removeListeners: removeIframeListeners.bind(null, settings[iframeId].iframe),\n resize: trigger.bind(null, 'Window resize', 'resize', settings[iframeId].iframe),\n moveToAnchor: function moveToAnchor(anchor) {\n trigger('Move to anchor', 'moveToAnchor:' + anchor, settings[iframeId].iframe, iframeId);\n },\n sendMessage: function sendMessage(message) {\n message = JSON.stringify(message);\n trigger('Send Message', 'message:' + message, settings[iframeId].iframe, iframeId);\n }\n };\n }\n } // We have to call trigger twice, as we can not be sure if all\n // iframes have completed loading when this code runs. The\n // event listener also catches the page changing in the iFrame.\n\n\n function init(msg) {\n function iFrameLoaded() {\n trigger('iFrame.onload', msg, iframe, undefined, true);\n checkReset();\n }\n\n function createDestroyObserver(MutationObserver) {\n if (!iframe.parentNode) {\n return;\n }\n\n var destroyObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n var removedNodes = Array.prototype.slice.call(mutation.removedNodes); // Transform NodeList into an Array\n\n removedNodes.forEach(function (removedNode) {\n if (removedNode === iframe) {\n closeIFrame(iframe);\n }\n });\n });\n });\n destroyObserver.observe(iframe.parentNode, {\n childList: true\n });\n }\n\n var MutationObserver = getMutationObserver();\n\n if (MutationObserver) {\n createDestroyObserver(MutationObserver);\n }\n\n addEventListener(iframe, 'load', iFrameLoaded);\n trigger('init', msg, iframe, undefined, true);\n }\n\n function checkOptions(options) {\n if ('object' !== _typeof(options)) {\n throw new TypeError('Options is not an object');\n }\n }\n\n function copyOptions(options) {\n // eslint-disable-next-line no-restricted-syntax\n for (var option in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, option)) {\n settings[iframeId][option] = Object.prototype.hasOwnProperty.call(options, option) ? options[option] : defaults[option];\n }\n }\n }\n\n function getTargetOrigin(remoteHost) {\n return '' === remoteHost || null !== remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/) ? '*' : remoteHost;\n }\n\n function depricate(key) {\n var splitName = key.split('Callback');\n\n if (splitName.length === 2) {\n var name = 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);\n this[name] = this[key];\n delete this[key];\n warn(iframeId, \"Deprecated: '\" + key + \"' has been renamed '\" + name + \"'. The old method will be removed in the next major version.\");\n }\n }\n\n function processOptions(options) {\n options = options || {};\n settings[iframeId] = {\n firstRun: true,\n iframe: iframe,\n remoteHost: iframe.src && iframe.src.split('/').slice(0, 3).join('/')\n };\n checkOptions(options);\n Object.keys(options).forEach(depricate, options);\n copyOptions(options);\n\n if (settings[iframeId]) {\n settings[iframeId].targetOrigin = true === settings[iframeId].checkOrigin ? getTargetOrigin(settings[iframeId].remoteHost) : '*';\n }\n }\n\n function beenHere() {\n return iframeId in settings && 'iFrameResizer' in iframe;\n }\n\n var iframeId = ensureHasId(iframe.id);\n\n if (!beenHere()) {\n processOptions(options);\n setScrolling();\n setLimits();\n setupBodyMarginValues();\n init(createOutgoingMsg(iframeId));\n setupIFrameObject();\n } else {\n warn(iframeId, 'Ignored iFrame, already setup.');\n }\n }\n\n function debouce(fn, time) {\n if (null === timer) {\n timer = setTimeout(function () {\n timer = null;\n fn();\n }, time);\n }\n }\n\n var frameTimer = {};\n\n function debounceFrameEvents(fn, time, frameId) {\n if (!frameTimer[frameId]) {\n frameTimer[frameId] = setTimeout(function () {\n frameTimer[frameId] = null;\n fn();\n }, time);\n }\n } // Not testable in PhantomJS\n\n /* istanbul ignore next */\n\n\n function fixHiddenIFrames() {\n function checkIFrames() {\n function checkIFrame(settingId) {\n function chkDimension(dimension) {\n return '0px' === (settings[settingId] && settings[settingId].iframe.style[dimension]);\n }\n\n function isVisible(el) {\n return null !== el.offsetParent;\n }\n\n if (settings[settingId] && isVisible(settings[settingId].iframe) && (chkDimension('height') || chkDimension('width'))) {\n trigger('Visibility change', 'resize', settings[settingId].iframe, settingId);\n }\n }\n\n Object.keys(settings).forEach(function (key) {\n checkIFrame(key);\n });\n }\n\n function mutationObserved(mutations) {\n log('window', 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type);\n debouce(checkIFrames, 16);\n }\n\n function createMutationObserver() {\n var target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n },\n observer = new MutationObserver(mutationObserved);\n observer.observe(target, config);\n }\n\n var MutationObserver = getMutationObserver();\n\n if (MutationObserver) {\n createMutationObserver();\n }\n }\n\n function resizeIFrames(event) {\n function resize() {\n sendTriggerMsg('Window ' + event, 'resize');\n }\n\n log('window', 'Trigger event: ' + event);\n debouce(resize, 16);\n } // Not testable in PhantomJS\n\n /* istanbul ignore next */\n\n\n function tabVisible() {\n function resize() {\n sendTriggerMsg('Tab Visable', 'resize');\n }\n\n if ('hidden' !== document.visibilityState) {\n log('document', 'Trigger event: Visiblity change');\n debouce(resize, 16);\n }\n }\n\n function sendTriggerMsg(eventName, event) {\n function isIFrameResizeEnabled(iframeId) {\n return settings[iframeId] && 'parent' === settings[iframeId].resizeFrom && settings[iframeId].autoResize && !settings[iframeId].firstRun;\n }\n\n Object.keys(settings).forEach(function (iframeId) {\n if (isIFrameResizeEnabled(iframeId)) {\n trigger(eventName, event, settings[iframeId].iframe, iframeId);\n }\n });\n }\n\n function setupEventListeners() {\n addEventListener(window, 'message', iFrameListener);\n addEventListener(window, 'resize', function () {\n resizeIFrames('resize');\n });\n addEventListener(document, 'visibilitychange', tabVisible);\n addEventListener(document, '-webkit-visibilitychange', tabVisible);\n }\n\n function factory() {\n function init(options, element) {\n function chkType() {\n if (!element.tagName) {\n throw new TypeError('Object is not a valid DOM element');\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\n throw new TypeError('Expected