{"version":3,"file":"./index.bundle.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;;;;;;;;;;;;;;;;;ACF+C;AAC/C;AACA,kBAAkB,cAAc;AAChC;AACA,wHAAwH,6DAAa;AACrI;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACJiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG,QAAQ,8DAAc;AACzB;;;;;;;;;;;;;;;;;;ACZkC;AAC6B;AAC/D;AACA,wBAAwB,sDAAO;AAC/B;AACA,SAAS,qEAAqB;AAC9B;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACJkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;;;;;ACRA,cAAc,sGAAiC;AAC/C;AACA,gBAAgB;AAChB;AACA;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;AACL,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa;AACb,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;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;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,sCAAsC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;AC/SjG;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,0BAA0B,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACTrF;;AAEA,cAAc,mBAAO,CAAC,kGAA+B;AACrD;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AChCA,cAAc,mBAAO,CAAC,yDAAW;;AAEjC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;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FAAkB;;AAE/C;;AAEA,mBAAmB,mBAAO,CAAC,qFAAgB;;AAE3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,cAAc;;;;;;;;;;;;ACvD5C;;AAEb,kBAAkB;;AAElB,aAAa,mBAAO,CAAC,wEAAU;;AAE/B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA,2CAA2C,cAAc;;;;;;;;;;;;ACtC5C;;AAEb,kBAAkB;AAClB;;AAEA,uCAAuC,uCAAuC;;AAE9E,aAAa,mBAAO,CAAC,wEAAU;;AAE/B,iBAAiB,mBAAO,CAAC,gFAAc;;AAEvC;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,2CAA2C,cAAc;;;;;;;;;;;;ACvG5C;;AAEb,kBAAkB;AAClB;;AAEA,uCAAuC,uCAAuC;;AAE9E,iBAAiB,mBAAO,CAAC,gFAAc;;AAEvC;;AAEA,kBAAkB;AAClB;AACA;AACA,gCAAgC,MAAM;AACtC;AACA,MAAM;AACN;AAC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,mBAAO,CAAC,uEAAS;;AAE9B;;AAEA,iBAAiB,mBAAO,CAAC,+EAAa;;AAEtC;;AAEA,YAAY,mBAAO,CAAC,qEAAQ;;AAE5B,eAAe,mBAAO,CAAC,2EAAW;;AAElC,0BAA0B,mBAAO,CAAC,mGAAuB;;AAEzD,2BAA2B,mBAAO,CAAC,uGAAyB;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA,KAAK;AACL;AACA,+BAA+B;;AAE/B;AACA;AACA;;AAEA;AACA,2EAA2E;;AAE3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yCAAyC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2EAA2E;;AAE3E;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;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,GAAG;AACH;;AAEA;AACA;AACA;AACA,0BAA0B,gCAAgC;AAC1D,GAAG;AACH;AACA,2CAA2C,cAAc;;;;;;;;;;;;ACnXzD;AACa;;AAEb,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA,2CAA2C,cAAc;;;;;;;;;;;;ACd5C;;AAEb,kBAAkB;AAClB,cAAc;AACd,eAAe;AACf,wBAAwB;AACxB,eAAe;AACf,mBAAmB;AACnB,mBAAmB;AACnB,yBAAyB;AACzB;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,kBAAkB;AACpB;AACA;AACA;AACA,kBAAkB;;AAElB;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf;;AAEA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,cAAc;;;;;;;;;;;AC3HzD;AACA;AACA,gJAAoE;;;;;;;;;;;;;;;;ACFpE;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;;AAEA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,0CAA0C;AAC1C;AACA,uEAAuE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA,oBAAoB,oBAAoB;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,6CAA6C;AAC7C,OAAO;AACP;AACA,6BAA6B;AAC7B;AACA,KAAK;AACL;AACA,oBAAoB,yCAAyC;AAC7D,mBAAmB;AACnB;AACA;AACA;;AAEA,mCAAmC,WAAW;AAC9C;;AAE0B;;;;;;;;;;;ACrI1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,KAA4D;AAC7D,CAAC,CACyB;AAC1B,CAAC,sBAAsB;;AAEvB;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;AAYA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AAQD;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qCAAqC,EAAE;AACvC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,qCAAqC,aAAa,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,wCAAwC;AACxC;AACA;AACA,SAAS;AACT,kCAAkC;AAClC;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;I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","sources":["webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://something_big_project/./node_modules/@babel/runtime/helpers/typeof.js","webpack://something_big_project/./node_modules/@babel/runtime/regenerator/index.js","webpack://something_big_project/./node_modules/delegate/src/closest.js","webpack://something_big_project/./node_modules/delegate/src/delegate.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack://something_big_project/./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack://something_big_project/./node_modules/handlebars/runtime.js","webpack://something_big_project/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://something_big_project/./node_modules/mark.js/dist/mark.js","webpack://something_big_project/./scripts/app.js","webpack://something_big_project/./scripts/controllers/avg.js","webpack://something_big_project/./scripts/controllers/header.js","webpack://something_big_project/./scripts/controllers/headerSearch.js","webpack://something_big_project/./scripts/controllers/media.js","webpack://something_big_project/./scripts/controllers/polyfill.js","webpack://something_big_project/./scripts/elements/customHTMLElement.js","webpack://something_big_project/./scripts/elements/searchSuggestion.js","webpack://something_big_project/./scripts/elements/templates/searchSuggestion.handlebars","webpack://something_big_project/./scripts/libraries/slimmage.js","webpack://something_big_project/./scripts/libraries/slimmageSettings.js","webpack://something_big_project/external var \"$\"","webpack://something_big_project/webpack/bootstrap","webpack://something_big_project/webpack/runtime/compat get default export","webpack://something_big_project/webpack/runtime/create fake namespace object","webpack://something_big_project/webpack/runtime/define property getters","webpack://something_big_project/webpack/runtime/ensure chunk","webpack://something_big_project/webpack/runtime/get javascript chunk filename","webpack://something_big_project/webpack/runtime/global","webpack://something_big_project/webpack/runtime/hasOwnProperty shorthand","webpack://something_big_project/webpack/runtime/load script","webpack://something_big_project/webpack/runtime/make namespace object","webpack://something_big_project/webpack/runtime/publicPath","webpack://something_big_project/webpack/runtime/jsonp chunk loading","webpack://something_big_project/./scripts/index.js"],"sourcesContent":["function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n","var closest = require('./closest');\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.8';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (typeof Symbol === 'function' && context[Symbol.iterator]) {\n var newContext = [];\n var iterator = context[Symbol.iterator]();\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n context = newContext;\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n });\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDbkUsWUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLFlBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBjb250ZXh0W1N5bWJvbC5pdGVyYXRvcl0pIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGV4dCA9IFtdO1xuICAgICAgICBjb25zdCBpdGVyYXRvciA9IGNvbnRleHRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBmb3IgKGxldCBpdCA9IGl0ZXJhdG9yLm5leHQoKTsgIWl0LmRvbmU7IGl0ID0gaXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgbmV3Q29udGV4dC5wdXNoKGl0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0ID0gbmV3Q29udGV4dDtcbiAgICAgICAgZm9yIChsZXQgaiA9IGNvbnRleHQubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihpLCBpLCBpID09PSBjb250ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIC8vIFdlJ3JlIHJ1bm5pbmcgdGhlIGl0ZXJhdGlvbnMgb25lIHN0ZXAgb3V0IG9mIHN5bmMgc28gd2UgY2FuIGRldGVjdFxuICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAvLyBhbiBpdGVybWVkaWF0ZSBrZXlzIGFycmF5LlxuICAgICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW9yS2V5ID0ga2V5O1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihwcmlvcktleSwgaSAtIDEsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIHJldCA9IGludmVyc2UodGhpcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n\n var defaultPropertyWhiteList = Object.create(null);\n // eslint-disable-next-line no-proto\n defaultPropertyWhiteList['__proto__'] = false;\n\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n _logger2['default'].log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMvQyxXQUFXOzs7O0FBRTlCLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFdEMsU0FBUyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUU7QUFDdkQsTUFBSSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELHdCQUFzQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUM5Qyx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQzs7QUFFbkQsTUFBSSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUVuRCwwQkFBd0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRTlDLFNBQU87QUFDTCxjQUFVLEVBQUU7QUFDVixlQUFTLEVBQUUsNkNBQ1Qsd0JBQXdCLEVBQ3hCLGNBQWMsQ0FBQyxzQkFBc0IsQ0FDdEM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQyw2QkFBNkI7S0FDM0Q7QUFDRCxXQUFPLEVBQUU7QUFDUCxlQUFTLEVBQUUsNkNBQ1Qsc0JBQXNCLEVBQ3RCLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDbkM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQywwQkFBMEI7S0FDeEQ7R0FDRixDQUFDO0NBQ0g7O0FBRU0sU0FBUyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRTtBQUN4RSxNQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtBQUNoQyxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDakUsTUFBTTtBQUNMLFdBQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztHQUNwRTtDQUNGOztBQUVELFNBQVMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLFlBQVksRUFBRTtBQUMvRCxNQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDbkUsV0FBTyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDO0dBQ25FO0FBQ0QsTUFBSSx5QkFBeUIsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO0FBQ3hELFdBQU8seUJBQXlCLENBQUMsWUFBWSxDQUFDO0dBQy9DO0FBQ0QsZ0NBQThCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDN0MsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFlBQVksRUFBRTtBQUNwRCxNQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtBQUMzQyxvQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDdEMsd0JBQU8sR0FBRyxDQUNSLE9BQU8sRUFDUCxpRUFBK0QsWUFBWSxvSUFDSCxvSEFDMkMsQ0FDcEgsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxxQkFBcUIsR0FBRztBQUN0QyxRQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsWUFBWSxFQUFJO0FBQ3BELFdBQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7R0FDdkMsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoicHJvdG8tYWNjZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTmV3TG9va3VwT2JqZWN0IH0gZnJvbSAnLi9jcmVhdGUtbmV3LWxvb2t1cC1vYmplY3QnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBsb2dnZWRQcm9wZXJ0aWVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChydW50aW1lT3B0aW9ucykge1xuICBsZXQgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ2NvbnN0cnVjdG9yJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19kZWZpbmVHZXR0ZXJfXyddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lU2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2xvb2t1cEdldHRlcl9fJ10gPSBmYWxzZTtcblxuICBsZXQgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvXG4gIGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdFsnX19wcm90b19fJ10gPSBmYWxzZTtcblxuICByZXR1cm4ge1xuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHdoaXRlbGlzdDogY3JlYXRlTmV3TG9va3VwT2JqZWN0KFxuICAgICAgICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b1Byb3BlcnRpZXNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9Qcm9wZXJ0aWVzQnlEZWZhdWx0XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCxcbiAgICAgICAgcnVudGltZU9wdGlvbnMuYWxsb3dlZFByb3RvTWV0aG9kc1xuICAgICAgKSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogcnVudGltZU9wdGlvbnMuYWxsb3dQcm90b01ldGhvZHNCeURlZmF1bHRcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXN1bHRJc0FsbG93ZWQocmVzdWx0LCBwcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkge1xuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBjaGVja1doaXRlTGlzdChwcm90b0FjY2Vzc0NvbnRyb2wubWV0aG9kcywgcHJvcGVydHlOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLnByb3BlcnRpZXMsIHByb3BlcnR5TmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZSwgcHJvcGVydHlOYW1lKSB7XG4gIGlmIChwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLndoaXRlbGlzdFtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSA9PT0gdHJ1ZTtcbiAgfVxuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLmRlZmF1bHRWYWx1ZTtcbiAgfVxuICBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKSB7XG4gIGlmIChsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gIT09IHRydWUpIHtcbiAgICBsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gPSB0cnVlO1xuICAgIGxvZ2dlci5sb2coXG4gICAgICAnZXJyb3InLFxuICAgICAgYEhhbmRsZWJhcnM6IEFjY2VzcyBoYXMgYmVlbiBkZW5pZWQgdG8gcmVzb2x2ZSB0aGUgcHJvcGVydHkgXCIke3Byb3BlcnR5TmFtZX1cIiBiZWNhdXNlIGl0IGlzIG5vdCBhbiBcIm93biBwcm9wZXJ0eVwiIG9mIGl0cyBwYXJlbnQuXFxuYCArXG4gICAgICAgIGBZb3UgY2FuIGFkZCBhIHJ1bnRpbWUgb3B0aW9uIHRvIGRpc2FibGUgdGhlIGNoZWNrIG9yIHRoaXMgd2FybmluZzpcXG5gICtcbiAgICAgICAgYFNlZSBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vYXBpLXJlZmVyZW5jZS9ydW50aW1lLW9wdGlvbnMuaHRtbCNvcHRpb25zLXRvLWNvbnRyb2wtcHJvdG90eXBlLWFjY2VzcyBmb3IgZGV0YWlsc2BcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldExvZ2dlZFByb3BlcnRpZXMoKSB7XG4gIE9iamVjdC5rZXlzKGxvZ2dlZFByb3BlcnRpZXMpLmZvckVhY2gocHJvcGVydHlOYW1lID0+IHtcbiAgICBkZWxldGUgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n var wrapper = function wrapper() /* dynamic arguments */{\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n // eslint-disable-next-line no-console\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","/* global globalThis */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n // https://mathiasbynens.be/notes/globalthis\n (function () {\n if (typeof globalThis === 'object') return;\n Object.prototype.__defineGetter__('__magic__', function () {\n return this;\n });\n __magic__.globalThis = __magic__; // eslint-disable-line no-undef\n delete Object.prototype.__magic__;\n })();\n\n var $Handlebars = globalThis.Handlebars;\n\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (globalThis.Handlebars === Handlebars) {\n globalThis.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOzs7QUFHbEMsR0FBQyxZQUFXO0FBQ1YsUUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsT0FBTztBQUMzQyxVQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxZQUFXO0FBQ3hELGFBQU8sSUFBSSxDQUFDO0tBQ2IsQ0FBQyxDQUFDO0FBQ0gsYUFBUyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDakMsV0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztHQUNuQyxDQUFBLEVBQUcsQ0FBQzs7QUFFTCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDOzs7QUFHMUMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDeEMsZ0JBQVUsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQ3JDO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGdsb2JhbFRoaXMgKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKEhhbmRsZWJhcnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2dsb2JhbHRoaXNcbiAgKGZ1bmN0aW9uKCkge1xuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybjtcbiAgICBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oJ19fbWFnaWNfXycsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSk7XG4gICAgX19tYWdpY19fLmdsb2JhbFRoaXMgPSBfX21hZ2ljX187IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5fX21hZ2ljX187XG4gIH0pKCk7XG5cbiAgY29uc3QgJEhhbmRsZWJhcnMgPSBnbG9iYWxUaGlzLkhhbmRsZWJhcnM7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgSGFuZGxlYmFycy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuSGFuZGxlYmFycyA9PT0gSGFuZGxlYmFycykge1xuICAgICAgZ2xvYmFsVGhpcy5IYW5kbGViYXJzID0gJEhhbmRsZWJhcnM7XG4gICAgfVxuICAgIHJldHVybiBIYW5kbGViYXJzO1xuICB9O1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n if (result == null) {\n return result;\n }\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({ lookupProperty: lookupProperty }, options);\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztH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QUFDbkMsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFkLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ2xELENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQ09NUElMRVJfUkVWSVNJT04sXG4gIGNyZWF0ZUZyYW1lLFxuICBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04sXG4gIFJFVklTSU9OX0NIQU5HRVNcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG1vdmVIZWxwZXJUb0hvb2tzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHdyYXBIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsL3dyYXBIZWxwZXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sLFxuICByZXN1bHRJc0FsbG93ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgY29uc3QgY29tcGlsZXJSZXZpc2lvbiA9IChjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdKSB8fCAxLFxuICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChcbiAgICBjb21waWxlclJldmlzaW9uID49IExBU1RfQ09NUEFUSUJMRV9DT01QSUxFUl9SRVZJU0lPTiAmJlxuICAgIGNvbXBpbGVyUmV2aXNpb24gPD0gQ09NUElMRVJfUkVWSVNJT05cbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04pIHtcbiAgICBjb25zdCBydW50aW1lVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2N1cnJlbnRSZXZpc2lvbl0sXG4gICAgICBjb21waWxlclZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjb21waWxlclJldmlzaW9uXTtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIHJ1bnRpbWVWZXJzaW9ucyArXG4gICAgICAgICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcnVudGltZSB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlckluZm9bMV0gK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgY29uc3QgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3ID1cbiAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXIgJiYgdGVtcGxhdGVTcGVjLmNvbXBpbGVyWzBdID09PSA3O1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFydGlhbCA9IGVudi5WTS5yZXNvbHZlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGV4dGVuZGVkT3B0aW9ucyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICBwcm90b0FjY2Vzc0NvbnRyb2w6IHRoaXMucHJvdG9BY2Nlc3NDb250cm9sXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBwYXJ0aWFsLFxuICAgICAgY29udGV4dCxcbiAgICAgIGV4dGVuZGVkT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKFxuICAgICAgICBwYXJ0aWFsLFxuICAgICAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJPcHRpb25zLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgICAnVGhlIHBhcnRpYWwgJyArXG4gICAgICAgICAgb3B0aW9ucy5uYW1lICtcbiAgICAgICAgICAnIGNvdWxkIG5vdCBiZSBjb21waWxlZCB3aGVuIHJ1bm5pbmcgaW4gcnVudGltZS1vbmx5IG1vZGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUsIGxvYykge1xuICAgICAgaWYgKCFvYmogfHwgIShuYW1lIGluIG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignXCInICsgbmFtZSArICdcIiBub3QgZGVmaW5lZCBpbiAnICsgb2JqLCB7XG4gICAgICAgICAgbG9jOiBsb2NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5KG9iaiwgbmFtZSk7XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIGxldCByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uKGRlcHRocywgbmFtZSkge1xuICAgICAgY29uc3QgbGVuID0gZGVwdGhzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRlcHRoc1tpXSAmJiBjb250YWluZXIubG9va3VwUHJvcGVydHkoZGVwdGhzW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICBmbiA9IHRoaXMuZm4oaSk7XG4gICAgICBpZiAoZGF0YSB8fCBkZXB0aHMgfHwgYmxvY2tQYXJhbXMgfHwgZGVjbGFyZWRCbG9ja1BhcmFtcykge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHdyYXBQcm9ncmFtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgaSxcbiAgICAgICAgICBmbixcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlY2xhcmVkQmxvY2tQYXJhbXMsXG4gICAgICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICAgICAgZGVwdGhzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2VJZk5lZWRlZDogZnVuY3Rpb24ocGFyYW0sIGNvbW1vbikge1xuICAgICAgbGV0IG9iaiA9IHBhcmFtIHx8IGNvbW1vbjtcblxuICAgICAgaWYgKHBhcmFtICYmIGNvbW1vbiAmJiBwYXJhbSAhPT0gY29tbW9uKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9XG4gICAgICAgICAgY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXVxuICAgICAgICAgICAgPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKVxuICAgICAgICAgICAgOiBvcHRpb25zLmRlcHRocztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHRocyA9IFtjb250ZXh0XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWluKGNvbnRleHQgLyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJycgK1xuICAgICAgICB0ZW1wbGF0ZVNwZWMubWFpbihcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtYWluID0gZXhlY3V0ZURlY29yYXRvcnMoXG4gICAgICB0ZW1wbGF0ZVNwZWMubWFpbixcbiAgICAgIG1haW4sXG4gICAgICBjb250YWluZXIsXG4gICAgICBvcHRpb25zLmRlcHRocyB8fCBbXSxcbiAgICAgIGRhdGEsXG4gICAgICBibG9ja1BhcmFtc1xuICAgICk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwpIHtcbiAgICAgIGxldCBtZXJnZWRIZWxwZXJzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuaGVscGVycywgb3B0aW9ucy5oZWxwZXJzKTtcbiAgICAgIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKTtcbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gbWVyZ2VkSGVscGVycztcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIC8vIFVzZSBtZXJnZUlmTmVlZGVkIGhlcmUgdG8gcHJldmVudCBjb21waWxpbmcgZ2xvYmFsIHBhcnRpYWxzIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZUlmTmVlZGVkKFxuICAgICAgICAgIG9wdGlvbnMucGFydGlhbHMsXG4gICAgICAgICAgZW52LnBhcnRpYWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwgfHwgdGVtcGxhdGVTcGVjLnVzZURlY29yYXRvcnMpIHtcbiAgICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBVdGlscy5leHRlbmQoXG4gICAgICAgICAge30sXG4gICAgICAgICAgZW52LmRlY29yYXRvcnMsXG4gICAgICAgICAgb3B0aW9ucy5kZWNvcmF0b3JzXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IHt9O1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChvcHRpb25zKTtcblxuICAgICAgbGV0IGtlZXBIZWxwZXJJbkhlbHBlcnMgPVxuICAgICAgICBvcHRpb25zLmFsbG93Q2FsbHNUb0hlbHBlck1pc3NpbmcgfHxcbiAgICAgICAgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3O1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnaGVscGVyTWlzc2luZycsIGtlZXBIZWxwZXJJbkhlbHBlcnMpO1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnYmxvY2tIZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wgPSBvcHRpb25zLnByb3RvQWNjZXNzQ29udHJvbDsgLy8gaW50ZXJuYWwgb3B0aW9uXG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IG9wdGlvbnMuaG9va3M7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oXG4gICAgICBjb250YWluZXIsXG4gICAgICBpLFxuICAgICAgdGVtcGxhdGVTcGVjW2ldLFxuICAgICAgZGF0YSxcbiAgICAgIDAsXG4gICAgICBibG9ja1BhcmFtcyxcbiAgICAgIGRlcHRoc1xuICAgICk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShcbiAgY29udGFpbmVyLFxuICBpLFxuICBmbixcbiAgZGF0YSxcbiAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgYmxvY2tQYXJhbXMsXG4gIGRlcHRoc1xuKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKFxuICAgICAgZGVwdGhzICYmXG4gICAgICBjb250ZXh0ICE9IGRlcHRoc1swXSAmJlxuICAgICAgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKVxuICAgICkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oXG4gICAgICBjb250YWluZXIsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGFpbmVyLmhlbHBlcnMsXG4gICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zICYmIFtvcHRpb25zLmJsb2NrUGFyYW1zXS5jb25jYXQoYmxvY2tQYXJhbXMpLFxuICAgICAgY3VycmVudERlcHRoc1xuICAgICk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBBUEksIHRoZXJlZm9yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHNob3VsZCBub3QgYmUgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKFxuICAgICAgY29udGV4dCxcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgICkge1xuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhKGNvbnRleHQsIGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8ICEoJ3Jvb3QnIGluIGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGEgPyBjcmVhdGVGcmFtZShkYXRhKSA6IHt9O1xuICAgIGRhdGEucm9vdCA9IGNvbnRleHQ7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpIHtcbiAgaWYgKGZuLmRlY29yYXRvcikge1xuICAgIGxldCBwcm9wcyA9IHt9O1xuICAgIHByb2cgPSBmbi5kZWNvcmF0b3IoXG4gICAgICBwcm9nLFxuICAgICAgcHJvcHMsXG4gICAgICBjb250YWluZXIsXG4gICAgICBkZXB0aHMgJiYgZGVwdGhzWzBdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGhlbHBlck5hbWUgPT4ge1xuICAgIGxldCBoZWxwZXIgPSBtZXJnZWRIZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV0gPSBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzc0xvb2t1cFByb3BlcnR5T3B0aW9uKGhlbHBlciwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gd3JhcEhlbHBlcihoZWxwZXIsIG9wdGlvbnMgPT4ge1xuICAgIHJldHVybiBVdGlscy5leHRlbmQoeyBsb29rdXBQcm9wZXJ0eSB9LCBvcHRpb25zKTtcbiAgfSk7XG59XG4iXX0=\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Mark = factory());\n}(this, (function () { 'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar DOMIterator = function () {\n function DOMIterator(ctx) {\n var iframes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var iframesTimeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5000;\n classCallCheck(this, DOMIterator);\n\n this.ctx = ctx;\n this.iframes = iframes;\n this.exclude = exclude;\n this.iframesTimeout = iframesTimeout;\n }\n\n createClass(DOMIterator, [{\n key: 'getContexts',\n value: function getContexts() {\n var ctx = void 0,\n filteredCtx = [];\n if (typeof this.ctx === 'undefined' || !this.ctx) {\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === 'string') {\n ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));\n } else {\n ctx = [this.ctx];\n }\n ctx.forEach(function (ctx) {\n var isDescendant = filteredCtx.filter(function (contexts) {\n return contexts.contains(ctx);\n }).length > 0;\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n }, {\n key: 'getIframeContents',\n value: function getIframeContents(ifr, successFn) {\n var errorFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n var doc = void 0;\n try {\n var ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n if (!ifrWin || !doc) {\n throw new Error('iframe inaccessible');\n }\n } catch (e) {\n errorFn();\n }\n if (doc) {\n successFn(doc);\n }\n }\n }, {\n key: 'isIframeBlank',\n value: function isIframeBlank(ifr) {\n var bl = 'about:blank',\n src = ifr.getAttribute('src').trim(),\n href = ifr.contentWindow.location.href;\n return href === bl && src !== bl && src;\n }\n }, {\n key: 'observeIframeLoad',\n value: function observeIframeLoad(ifr, successFn, errorFn) {\n var _this = this;\n\n var called = false,\n tout = null;\n var listener = function listener() {\n if (called) {\n return;\n }\n called = true;\n clearTimeout(tout);\n try {\n if (!_this.isIframeBlank(ifr)) {\n ifr.removeEventListener('load', listener);\n _this.getIframeContents(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n };\n ifr.addEventListener('load', listener);\n tout = setTimeout(listener, this.iframesTimeout);\n }\n }, {\n key: 'onIframeReady',\n value: function onIframeReady(ifr, successFn, errorFn) {\n try {\n if (ifr.contentWindow.document.readyState === 'complete') {\n if (this.isIframeBlank(ifr)) {\n this.observeIframeLoad(ifr, successFn, errorFn);\n } else {\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } else {\n this.observeIframeLoad(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n }\n }, {\n key: 'waitForIframes',\n value: function waitForIframes(ctx, done) {\n var _this2 = this;\n\n var eachCalled = 0;\n this.forEachIframe(ctx, function () {\n return true;\n }, function (ifr) {\n eachCalled++;\n _this2.waitForIframes(ifr.querySelector('html'), function () {\n if (! --eachCalled) {\n done();\n }\n });\n }, function (handled) {\n if (!handled) {\n done();\n }\n });\n }\n }, {\n key: 'forEachIframe',\n value: function forEachIframe(ctx, filter, each) {\n var _this3 = this;\n\n var end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var ifr = ctx.querySelectorAll('iframe'),\n open = ifr.length,\n handled = 0;\n ifr = Array.prototype.slice.call(ifr);\n var checkEnd = function checkEnd() {\n if (--open <= 0) {\n end(handled);\n }\n };\n if (!open) {\n checkEnd();\n }\n ifr.forEach(function (ifr) {\n if (DOMIterator.matches(ifr, _this3.exclude)) {\n checkEnd();\n } else {\n _this3.onIframeReady(ifr, function (con) {\n if (filter(ifr)) {\n handled++;\n each(con);\n }\n checkEnd();\n }, checkEnd);\n }\n });\n }\n }, {\n key: 'createIterator',\n value: function createIterator(ctx, whatToShow, filter) {\n return document.createNodeIterator(ctx, whatToShow, filter, false);\n }\n }, {\n key: 'createInstanceOnIframe',\n value: function createInstanceOnIframe(contents) {\n return new DOMIterator(contents.querySelector('html'), this.iframes);\n }\n }, {\n key: 'compareNodeIframe',\n value: function compareNodeIframe(node, prevNode, ifr) {\n var compCurr = node.compareDocumentPosition(ifr),\n prev = Node.DOCUMENT_POSITION_PRECEDING;\n if (compCurr & prev) {\n if (prevNode !== null) {\n var compPrev = prevNode.compareDocumentPosition(ifr),\n after = Node.DOCUMENT_POSITION_FOLLOWING;\n if (compPrev & after) {\n return true;\n }\n } else {\n return true;\n }\n }\n return false;\n }\n }, {\n key: 'getIteratorNode',\n value: function getIteratorNode(itr) {\n var prevNode = itr.previousNode();\n var node = void 0;\n if (prevNode === null) {\n node = itr.nextNode();\n } else {\n node = itr.nextNode() && itr.nextNode();\n }\n return {\n prevNode: prevNode,\n node: node\n };\n }\n }, {\n key: 'checkIframeFilter',\n value: function checkIframeFilter(node, prevNode, currIfr, ifr) {\n var key = false,\n handled = false;\n ifr.forEach(function (ifrDict, i) {\n if (ifrDict.val === currIfr) {\n key = i;\n handled = ifrDict.handled;\n }\n });\n if (this.compareNodeIframe(node, prevNode, currIfr)) {\n if (key === false && !handled) {\n ifr.push({\n val: currIfr,\n handled: true\n });\n } else if (key !== false && !handled) {\n ifr[key].handled = true;\n }\n return true;\n }\n if (key === false) {\n ifr.push({\n val: currIfr,\n handled: false\n });\n }\n return false;\n }\n }, {\n key: 'handleOpenIframes',\n value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) {\n var _this4 = this;\n\n ifr.forEach(function (ifrDict) {\n if (!ifrDict.handled) {\n _this4.getIframeContents(ifrDict.val, function (con) {\n _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);\n });\n }\n });\n }\n }, {\n key: 'iterateThroughNodes',\n value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {\n var _this5 = this;\n\n var itr = this.createIterator(ctx, whatToShow, filterCb);\n var ifr = [],\n elements = [],\n node = void 0,\n prevNode = void 0,\n retrieveNodes = function retrieveNodes() {\n var _getIteratorNode = _this5.getIteratorNode(itr);\n\n prevNode = _getIteratorNode.prevNode;\n node = _getIteratorNode.node;\n\n return node;\n };\n while (retrieveNodes()) {\n if (this.iframes) {\n this.forEachIframe(ctx, function (currIfr) {\n return _this5.checkIframeFilter(node, prevNode, currIfr, ifr);\n }, function (con) {\n _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function (ifrNode) {\n return elements.push(ifrNode);\n }, filterCb);\n });\n }\n elements.push(node);\n }\n elements.forEach(function (node) {\n eachCb(node);\n });\n if (this.iframes) {\n this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);\n }\n doneCb();\n }\n }, {\n key: 'forEachNode',\n value: function forEachNode(whatToShow, each, filter) {\n var _this6 = this;\n\n var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var contexts = this.getContexts();\n var open = contexts.length;\n if (!open) {\n done();\n }\n contexts.forEach(function (ctx) {\n var ready = function ready() {\n _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function () {\n if (--open <= 0) {\n done();\n }\n });\n };\n if (_this6.iframes) {\n _this6.waitForIframes(ctx, ready);\n } else {\n ready();\n }\n });\n }\n }], [{\n key: 'matches',\n value: function matches(element, selector) {\n var selectors = typeof selector === 'string' ? [selector] : selector,\n fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n if (fn) {\n var match = false;\n selectors.every(function (sel) {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n return true;\n });\n return match;\n } else {\n return false;\n }\n }\n }]);\n return DOMIterator;\n}();\n\nvar Mark$1 = function () {\n function Mark(ctx) {\n classCallCheck(this, Mark);\n\n this.ctx = ctx;\n this.ie = false;\n var ua = window.navigator.userAgent;\n if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {\n this.ie = true;\n }\n }\n\n createClass(Mark, [{\n key: 'log',\n value: function log(msg) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'debug';\n\n var log = this.opt.log;\n if (!this.opt.debug) {\n return;\n }\n if ((typeof log === 'undefined' ? 'undefined' : _typeof(log)) === 'object' && typeof log[level] === 'function') {\n log[level]('mark.js: ' + msg);\n }\n }\n }, {\n key: 'escapeStr',\n value: function escapeStr(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n }\n }, {\n key: 'createRegExp',\n value: function createRegExp(str) {\n if (this.opt.wildcards !== 'disabled') {\n str = this.setupWildcardsRegExp(str);\n }\n str = this.escapeStr(str);\n if (Object.keys(this.opt.synonyms).length) {\n str = this.createSynonymsRegExp(str);\n }\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n if (this.opt.diacritics) {\n str = this.createDiacriticsRegExp(str);\n }\n str = this.createMergedBlanksRegExp(str);\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.createJoinersRegExp(str);\n }\n if (this.opt.wildcards !== 'disabled') {\n str = this.createWildcardsRegExp(str);\n }\n str = this.createAccuracyRegExp(str);\n return str;\n }\n }, {\n key: 'createSynonymsRegExp',\n value: function createSynonymsRegExp(str) {\n var syn = this.opt.synonyms,\n sens = this.opt.caseSensitive ? '' : 'i',\n joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\\0' : '';\n for (var index in syn) {\n if (syn.hasOwnProperty(index)) {\n var value = syn[index],\n k1 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(index) : this.escapeStr(index),\n k2 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(value) : this.escapeStr(value);\n if (k1 !== '' && k2 !== '') {\n str = str.replace(new RegExp('(' + this.escapeStr(k1) + '|' + this.escapeStr(k2) + ')', 'gm' + sens), joinerPlaceholder + ('(' + this.processSynomyms(k1) + '|') + (this.processSynomyms(k2) + ')') + joinerPlaceholder);\n }\n }\n }\n return str;\n }\n }, {\n key: 'processSynomyms',\n value: function processSynomyms(str) {\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n return str;\n }\n }, {\n key: 'setupWildcardsRegExp',\n value: function setupWildcardsRegExp(str) {\n str = str.replace(/(?:\\\\)*\\?/g, function (val) {\n return val.charAt(0) === '\\\\' ? '?' : '\\x01';\n });\n return str.replace(/(?:\\\\)*\\*/g, function (val) {\n return val.charAt(0) === '\\\\' ? '*' : '\\x02';\n });\n }\n }, {\n key: 'createWildcardsRegExp',\n value: function createWildcardsRegExp(str) {\n var spaces = this.opt.wildcards === 'withSpaces';\n return str.replace(/\\u0001/g, spaces ? '[\\\\S\\\\s]?' : '\\\\S?').replace(/\\u0002/g, spaces ? '[\\\\S\\\\s]*?' : '\\\\S*');\n }\n }, {\n key: 'setupIgnoreJoinersRegExp',\n value: function setupIgnoreJoinersRegExp(str) {\n return str.replace(/[^(|)\\\\]/g, function (val, indx, original) {\n var nextChar = original.charAt(indx + 1);\n if (/[(|)\\\\]/.test(nextChar) || nextChar === '') {\n return val;\n } else {\n return val + '\\0';\n }\n });\n }\n }, {\n key: 'createJoinersRegExp',\n value: function createJoinersRegExp(str) {\n var joiner = [];\n var ignorePunctuation = this.opt.ignorePunctuation;\n if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {\n joiner.push(this.escapeStr(ignorePunctuation.join('')));\n }\n if (this.opt.ignoreJoiners) {\n joiner.push('\\\\u00ad\\\\u200b\\\\u200c\\\\u200d');\n }\n return joiner.length ? str.split(/\\u0000+/).join('[' + joiner.join('') + ']*') : str;\n }\n }, {\n key: 'createDiacriticsRegExp',\n value: function createDiacriticsRegExp(str) {\n var sens = this.opt.caseSensitive ? '' : 'i',\n dct = this.opt.caseSensitive ? ['aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ', 'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń', 'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ', 'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'] : ['aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ', 'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ', 'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ', 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'];\n var handled = [];\n str.split('').forEach(function (ch) {\n dct.every(function (dct) {\n if (dct.indexOf(ch) !== -1) {\n if (handled.indexOf(dct) > -1) {\n return false;\n }\n str = str.replace(new RegExp('[' + dct + ']', 'gm' + sens), '[' + dct + ']');\n handled.push(dct);\n }\n return true;\n });\n });\n return str;\n }\n }, {\n key: 'createMergedBlanksRegExp',\n value: function createMergedBlanksRegExp(str) {\n return str.replace(/[\\s]+/gmi, '[\\\\s]+');\n }\n }, {\n key: 'createAccuracyRegExp',\n value: function createAccuracyRegExp(str) {\n var _this = this;\n\n var chars = '!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿';\n var acc = this.opt.accuracy,\n val = typeof acc === 'string' ? acc : acc.value,\n ls = typeof acc === 'string' ? [] : acc.limiters,\n lsJoin = '';\n ls.forEach(function (limiter) {\n lsJoin += '|' + _this.escapeStr(limiter);\n });\n switch (val) {\n case 'partially':\n default:\n return '()(' + str + ')';\n case 'complementary':\n lsJoin = '\\\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));\n return '()([^' + lsJoin + ']*' + str + '[^' + lsJoin + ']*)';\n case 'exactly':\n return '(^|\\\\s' + lsJoin + ')(' + str + ')(?=$|\\\\s' + lsJoin + ')';\n }\n }\n }, {\n key: 'getSeparatedKeywords',\n value: function getSeparatedKeywords(sv) {\n var _this2 = this;\n\n var stack = [];\n sv.forEach(function (kw) {\n if (!_this2.opt.separateWordSearch) {\n if (kw.trim() && stack.indexOf(kw) === -1) {\n stack.push(kw);\n }\n } else {\n kw.split(' ').forEach(function (kwSplitted) {\n if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {\n stack.push(kwSplitted);\n }\n });\n }\n });\n return {\n 'keywords': stack.sort(function (a, b) {\n return b.length - a.length;\n }),\n 'length': stack.length\n };\n }\n }, {\n key: 'isNumeric',\n value: function isNumeric(value) {\n return Number(parseFloat(value)) == value;\n }\n }, {\n key: 'checkRanges',\n value: function checkRanges(array) {\n var _this3 = this;\n\n if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== '[object Object]') {\n this.log('markRanges() will only accept an array of objects');\n this.opt.noMatch(array);\n return [];\n }\n var stack = [];\n var last = 0;\n array.sort(function (a, b) {\n return a.start - b.start;\n }).forEach(function (item) {\n var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last),\n start = _callNoMatchOnInvalid.start,\n end = _callNoMatchOnInvalid.end,\n valid = _callNoMatchOnInvalid.valid;\n\n if (valid) {\n item.start = start;\n item.length = end - start;\n stack.push(item);\n last = end;\n }\n });\n return stack;\n }\n }, {\n key: 'callNoMatchOnInvalidRanges',\n value: function callNoMatchOnInvalidRanges(range, last) {\n var start = void 0,\n end = void 0,\n valid = false;\n if (range && typeof range.start !== 'undefined') {\n start = parseInt(range.start, 10);\n end = start + parseInt(range.length, 10);\n if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) {\n valid = true;\n } else {\n this.log('Ignoring invalid or overlapping range: ' + ('' + JSON.stringify(range)));\n this.opt.noMatch(range);\n }\n } else {\n this.log('Ignoring invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'checkWhitespaceRanges',\n value: function checkWhitespaceRanges(range, originalLength, string) {\n var end = void 0,\n valid = true,\n max = string.length,\n offset = originalLength - max,\n start = parseInt(range.start, 10) - offset;\n start = start > max ? max : start;\n end = start + parseInt(range.length, 10);\n if (end > max) {\n end = max;\n this.log('End range automatically set to the max value of ' + max);\n }\n if (start < 0 || end - start < 0 || start > max || end > max) {\n valid = false;\n this.log('Invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n } else if (string.substring(start, end).replace(/\\s+/g, '') === '') {\n valid = false;\n this.log('Skipping whitespace only range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'getTextNodes',\n value: function getTextNodes(cb) {\n var _this4 = this;\n\n var val = '',\n nodes = [];\n this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (node) {\n nodes.push({\n start: val.length,\n end: (val += node.textContent).length,\n node: node\n });\n }, function (node) {\n if (_this4.matchesExclude(node.parentNode)) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, function () {\n cb({\n value: val,\n nodes: nodes\n });\n });\n }\n }, {\n key: 'matchesExclude',\n value: function matchesExclude(el) {\n return DOMIterator.matches(el, this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']));\n }\n }, {\n key: 'wrapRangeInTextNode',\n value: function wrapRangeInTextNode(node, start, end) {\n var hEl = !this.opt.element ? 'mark' : this.opt.element,\n startNode = node.splitText(start),\n ret = startNode.splitText(end - start);\n var repl = document.createElement(hEl);\n repl.setAttribute('data-markjs', 'true');\n if (this.opt.className) {\n repl.setAttribute('class', this.opt.className);\n }\n repl.textContent = startNode.textContent;\n startNode.parentNode.replaceChild(repl, startNode);\n return ret;\n }\n }, {\n key: 'wrapRangeInMappedTextNode',\n value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {\n var _this5 = this;\n\n dict.nodes.every(function (n, i) {\n var sibl = dict.nodes[i + 1];\n if (typeof sibl === 'undefined' || sibl.start > start) {\n if (!filterCb(n.node)) {\n return false;\n }\n var s = start - n.start,\n e = (end > n.end ? n.end : end) - n.start,\n startStr = dict.value.substr(0, n.start),\n endStr = dict.value.substr(e + n.start);\n n.node = _this5.wrapRangeInTextNode(n.node, s, e);\n dict.value = startStr + endStr;\n dict.nodes.forEach(function (k, j) {\n if (j >= i) {\n if (dict.nodes[j].start > 0 && j !== i) {\n dict.nodes[j].start -= e;\n }\n dict.nodes[j].end -= e;\n }\n });\n end -= e;\n eachCb(n.node.previousSibling, n.start);\n if (end > n.end) {\n start = n.end;\n } else {\n return false;\n }\n }\n return true;\n });\n }\n }, {\n key: 'wrapMatches',\n value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this6 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n dict.nodes.forEach(function (node) {\n node = node.node;\n var match = void 0;\n while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== '') {\n if (!filterCb(match[matchIdx], node)) {\n continue;\n }\n var pos = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n pos += match[i].length;\n }\n }\n node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);\n eachCb(node.previousSibling);\n regex.lastIndex = 0;\n }\n });\n endCb();\n });\n }\n }, {\n key: 'wrapMatchesAcrossElements',\n value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this7 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n var match = void 0;\n while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== '') {\n var start = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n start += match[i].length;\n }\n }\n var end = start + match[matchIdx].length;\n _this7.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(match[matchIdx], node);\n }, function (node, lastIndex) {\n regex.lastIndex = lastIndex;\n eachCb(node);\n });\n }\n endCb();\n });\n }\n }, {\n key: 'wrapRangeFromIndex',\n value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {\n var _this8 = this;\n\n this.getTextNodes(function (dict) {\n var originalLength = dict.value.length;\n ranges.forEach(function (range, counter) {\n var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value),\n start = _checkWhitespaceRange.start,\n end = _checkWhitespaceRange.end,\n valid = _checkWhitespaceRange.valid;\n\n if (valid) {\n _this8.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(node, range, dict.value.substring(start, end), counter);\n }, function (node) {\n eachCb(node, range);\n });\n }\n });\n endCb();\n });\n }\n }, {\n key: 'unwrapMatches',\n value: function unwrapMatches(node) {\n var parent = node.parentNode;\n var docFrag = document.createDocumentFragment();\n while (node.firstChild) {\n docFrag.appendChild(node.removeChild(node.firstChild));\n }\n parent.replaceChild(docFrag, node);\n if (!this.ie) {\n parent.normalize();\n } else {\n this.normalizeTextNode(parent);\n }\n }\n }, {\n key: 'normalizeTextNode',\n value: function normalizeTextNode(node) {\n if (!node) {\n return;\n }\n if (node.nodeType === 3) {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node.nodeValue += node.nextSibling.nodeValue;\n node.parentNode.removeChild(node.nextSibling);\n }\n } else {\n this.normalizeTextNode(node.firstChild);\n }\n this.normalizeTextNode(node.nextSibling);\n }\n }, {\n key: 'markRegExp',\n value: function markRegExp(regexp, opt) {\n var _this9 = this;\n\n this.opt = opt;\n this.log('Searching with expression \"' + regexp + '\"');\n var totalMatches = 0,\n fn = 'wrapMatches';\n var eachCb = function eachCb(element) {\n totalMatches++;\n _this9.opt.each(element);\n };\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n this[fn](regexp, this.opt.ignoreGroups, function (match, node) {\n return _this9.opt.filter(node, match, totalMatches);\n }, eachCb, function () {\n if (totalMatches === 0) {\n _this9.opt.noMatch(regexp);\n }\n _this9.opt.done(totalMatches);\n });\n }\n }, {\n key: 'mark',\n value: function mark(sv, opt) {\n var _this10 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n fn = 'wrapMatches';\n\n var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),\n kwArr = _getSeparatedKeywords.keywords,\n kwArrLen = _getSeparatedKeywords.length,\n sens = this.opt.caseSensitive ? '' : 'i',\n handler = function handler(kw) {\n var regex = new RegExp(_this10.createRegExp(kw), 'gm' + sens),\n matches = 0;\n _this10.log('Searching with expression \"' + regex + '\"');\n _this10[fn](regex, 1, function (term, node) {\n return _this10.opt.filter(node, kw, totalMatches, matches);\n }, function (element) {\n matches++;\n totalMatches++;\n _this10.opt.each(element);\n }, function () {\n if (matches === 0) {\n _this10.opt.noMatch(kw);\n }\n if (kwArr[kwArrLen - 1] === kw) {\n _this10.opt.done(totalMatches);\n } else {\n handler(kwArr[kwArr.indexOf(kw) + 1]);\n }\n });\n };\n\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n if (kwArrLen === 0) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[0]);\n }\n }\n }, {\n key: 'markRanges',\n value: function markRanges(rawRanges, opt) {\n var _this11 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n ranges = this.checkRanges(rawRanges);\n if (ranges && ranges.length) {\n this.log('Starting to mark with the following ranges: ' + JSON.stringify(ranges));\n this.wrapRangeFromIndex(ranges, function (node, range, match, counter) {\n return _this11.opt.filter(node, range, match, counter);\n }, function (element, range) {\n totalMatches++;\n _this11.opt.each(element, range);\n }, function () {\n _this11.opt.done(totalMatches);\n });\n } else {\n this.opt.done(totalMatches);\n }\n }\n }, {\n key: 'unmark',\n value: function unmark(opt) {\n var _this12 = this;\n\n this.opt = opt;\n var sel = this.opt.element ? this.opt.element : '*';\n sel += '[data-markjs]';\n if (this.opt.className) {\n sel += '.' + this.opt.className;\n }\n this.log('Removal selector \"' + sel + '\"');\n this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (node) {\n _this12.unwrapMatches(node);\n }, function (node) {\n var matchesSel = DOMIterator.matches(node, sel),\n matchesExclude = _this12.matchesExclude(node);\n if (!matchesSel || matchesExclude) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, this.opt.done);\n }\n }, {\n key: 'opt',\n set: function set$$1(val) {\n this._opt = _extends({}, {\n 'element': '',\n 'className': '',\n 'exclude': [],\n 'iframes': false,\n 'iframesTimeout': 5000,\n 'separateWordSearch': true,\n 'diacritics': true,\n 'synonyms': {},\n 'accuracy': 'partially',\n 'acrossElements': false,\n 'caseSensitive': false,\n 'ignoreJoiners': false,\n 'ignoreGroups': 0,\n 'ignorePunctuation': [],\n 'wildcards': 'disabled',\n 'each': function each() {},\n 'noMatch': function noMatch() {},\n 'filter': function filter() {\n return true;\n },\n 'done': function done() {},\n 'debug': false,\n 'log': window.console\n }, val);\n },\n get: function get$$1() {\n return this._opt;\n }\n }, {\n key: 'iterator',\n get: function get$$1() {\n return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout);\n }\n }]);\n return Mark;\n}();\n\nfunction Mark(ctx) {\n var _this = this;\n\n var instance = new Mark$1(ctx);\n this.mark = function (sv, opt) {\n instance.mark(sv, opt);\n return _this;\n };\n this.markRegExp = function (sv, opt) {\n instance.markRegExp(sv, opt);\n return _this;\n };\n this.markRanges = function (sv, opt) {\n instance.markRanges(sv, opt);\n return _this;\n };\n this.unmark = function (opt) {\n instance.unmark(opt);\n return _this;\n };\n return this;\n}\n\nreturn Mark;\n\n})));\n","export default class App {\n\tconstructor() {\n\t\tthis._resizeFunctionsArr = [];\n\t\tthis._resizeFunctions = {};\n\t\tthis._resizeFunctionsCounter = 0;\n\t\tthis._resizeTimeout = null;\n\t\tthis.resizeThrottle = false;\n\n\t\tthis._scrollFunctionsArr = [];\n\t\tthis._scrollFunctions = {};\n\t\tthis._scrollFunctionsCounter = 0;\n\t\tthis._scrollTimeout = null;\n\t\tthis.scrollThrottle = false;\n\n\t\tthis._resizeAnimationPreventerTimeout = 200;\n\n\t\tthis.newPageWarning = true;\n\n\t\tthis.selectricCBs = [];\n\n\t\tthis.breakpoints = {\n\t\t\txs: {\n\t\t\t\tgutter: 40,\n\t\t\t\tsize: 0,\n\t\t\t},\n\t\t\tsm: {\n\t\t\t\tgutter: 40,\n\t\t\t\tsize: 375,\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\tgutter: 40,\n\t\t\t\tsize: 768,\n\t\t\t},\n\t\t\tml: {\n\t\t\t\tgutter: 40,\n\t\t\t\tsize: 1024,\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\tgutter: 40,\n\t\t\t\tsize: 1224,\n\t\t\t},\n\t\t\txl: {\n\t\t\t\tgutter: 30,\n\t\t\t\tsize: 1440,\n\t\t\t},\n\t\t}\n\n\t\tthis.animationDuration = 300;\n\t}\n\n\tinit() {\n\t\tthis.detectBrowser();\n\t\tthis.setEventListeners();\n\t\tthis.fullHeightListener();\n\t\tthis.resizeAnimationPreventer();\n\t\tthis.initCSSBreakpoints();\n\t\tthis.addNewWindowTitles();\n\t\tthis.addNoOpener();\n\t\tthis.addAnchorEnhancement();\n\t\tthis.initSelectric();\n\t\tthis.initTippy();\n\t\tthis.initCopy();\n\t\tthis.initScrollTo();\n\t\tthis.initScrollToTop();\n\t\tthis.initPrintListener();\n\t\tthis.initLabelClick();\n\n\t\treturn true;\n\t}\n\n\tsetEventListeners() {\n\t\twindow.addEventListener('resize', this.resize.bind(this), {\n\t\t\tpassive: true\n\t\t});\n\t\tdocument.addEventListener('scroll', this.scroll.bind(this), {\n\t\t\tpassive: true\n\t\t});\n\n\t\tdocument.querySelectorAll('main form label').forEach(label => {\n\t\t\tlabel.addEventListener('keydown', e => {\n\t\t\t\tif (e.key.toLowerCase().substr(0, 3) == 'ent') {\n\t\t\t\t\tlabel.click();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tArray.from(document.querySelectorAll('a')).filter(a => !a.hasAttribute('href')).forEach(a => {\n\t\t\tif (!a.hasAttribute('tabindex')) {\n\t\t\t\ta.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\ta.addEventListener('keydown', e => {\n\t\t\t\tif (e.key.toLowerCase().substr(0, 3) == 'ent') {\n\t\t\t\t\ta.click();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tresize() {\n\t\tconst runFunctions = () => {\n\t\t\tfor (let i = 0, length = this._resizeFunctionsArr.length; i < length; i++) {\n\t\t\t\tthis._resizeFunctionsArr[i]();\n\t\t\t}\n\t\t};\n\t\tif (this._resizeTimeout !== null) {\n\t\t\treturn;\n\t\t}\n\t\trunFunctions();\n\t\tif (this.resizeThrottle) {\n\t\t\tthis._resizeTimeout = setTimeout(() => {\n\t\t\t\tthis._resizeTimeout = null;\n\t\t\t\trunFunctions();\n\t\t\t}, this.resizeThrottle);\n\t\t}\n\t}\n\n\t/**\n\t * @param {function} func Function to be called on a resize event\n\t */\n\tregisterResizeEvent(func) {\n\t\tthis._resizeFunctions[this._resizeFunctionsCounter] = func;\n\t\tthis._resizeFunctionsCounter = this._resizeFunctionsCounter + 1;\n\n\t\t// Rebuild array of events\n\t\tthis._resizeFunctionsArr = [];\n\t\tObject.keys(this._resizeFunctions).forEach(key => {\n\t\t\tthis._resizeFunctionsArr.push(this._resizeFunctions[key]);\n\t\t});\n\n\t\treturn this._resizeFunctionsCounter - 1;\n\t}\n\n\t/**\n\t * @param {Number} func Function's ID to be removed from the resize functions\n\t */\n\tunregisterResizeEvent(func) {\n\t\tif (this._resizeFunctions[func]) {\n\t\t\t// Found\n\t\t\tdelete this._resizeFunctions[func];\n\n\t\t\t// Rebuild array of events\n\t\t\tthis._resizeFunctionsArr = [];\n\t\t\tObject.keys(this._resizeFunctions).forEach(key => {\n\t\t\t\tthis._resizeFunctionsArr.push(this._resizeFunctions[key]);\n\t\t\t});\n\n\t\t\treturn true;\n\t\t} else {\n\t\t\t// Not found\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/**\n\t * @description Fires all registered events for a scroll event in the document\n\t */\n\tscroll() {\n\t\tconst runFunctions = () => {\n\t\t\tfor (let i = 0, length = this._scrollFunctionsArr.length; i < length; i++) {\n\t\t\t\tthis._scrollFunctionsArr[i]();\n\t\t\t}\n\t\t};\n\t\tif (this._scrollTimeout !== null) {\n\t\t\treturn;\n\t\t}\n\t\trunFunctions();\n\t\tif (this.scrollThrottle) {\n\t\t\tthis._scrollTimeout = setTimeout(() => {\n\t\t\t\tthis._scrollTimeout = null;\n\t\t\t\trunFunctions();\n\t\t\t}, this.scrollThrottle);\n\t\t}\n\t}\n\n\t/**\n\t * @param {function} func Function to be called on a scroll event\n\t */\n\tregisterScrollEvent(func) {\n\t\tthis._scrollFunctions[this._scrollFunctionsCounter] = func;\n\t\tthis._scrollFunctionsCounter = this._scrollFunctionsCounter + 1;\n\n\t\t// Rebuild array of events\n\t\tthis._scrollFunctionsArr = [];\n\t\tObject.keys(this._scrollFunctions).forEach(key => {\n\t\t\tthis._scrollFunctionsArr.push(this._scrollFunctions[key]);\n\t\t});\n\n\t\treturn this._scrollFunctionsCounter - 1;\n\t}\n\n\t/**\n\t * @param {Number} func Function's ID to be removed from the scroll functions\n\t */\n\tunregisterScrollEvent(func) {\n\t\tif (this._scrollFunctions[func]) {\n\t\t\t// Found\n\t\t\tdelete this._scrollFunctions[func];\n\n\t\t\t// Rebuild array of events\n\t\t\tthis._scrollFunctionsArr = [];\n\t\t\tObject.keys(this._scrollFunctions).forEach(key => {\n\t\t\t\tthis._scrollFunctionsArr.push(this._scrollFunctions[key]);\n\t\t\t});\n\n\t\t\treturn true;\n\t\t} else {\n\t\t\t// Not found\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/**\n\t * @description Adds a 'preventAnimations' class to the html tag on resizing\n\t */\n\tresizeAnimationPreventer() {\n\t\tthis.resizeTimer = null;\n\t\tthis.windowWidth = window.innerWidth;\n\t\tthis.registerResizeEvent(() => {\n\t\t\tif (window.innerWidth !== this.windowWidth) {\n\t\t\t\tdocument.documentElement.classList.add('preventAnimations');\n\t\t\t\tclearTimeout(this.resizeTimer);\n\n\t\t\t\tthis.resizeTimer = setTimeout(() => {\n\t\t\t\t\tdocument.documentElement.classList.remove('preventAnimations');\n\t\t\t\t}, this._resizeAnimationPreventerTimeout);\n\n\t\t\t\tthis.windowWidth = window.innerWidth;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @description Adds a CSS variable '--fullHeight' to the html tag that creates an 'accurate 100vh'\n\t */\n\tfullHeightListener() {\n\t\tconst fullHeight = () => {\n\t\t\tdocument.documentElement.style.setProperty('--fullHeight', `${window.innerHeight}px`);\n\t\t};\n\t\tthis.registerResizeEvent(fullHeight);\n\t\tfullHeight();\n\t}\n\n\t/**\n\t * @description Adds a browser-specific class to the html tag\n\t */\n\tdetectBrowser() {\n\t\t// Opera 8.0+\n\t\tlet isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\n\n\t\t// Firefox 1.0+\n\t\tlet isFirefox = typeof InstallTrigger !== 'undefined';\n\n\t\tlet isIphone = window.navigator.userAgent.match(/iPhone/i);\n\n\t\tlet isIpad = window.navigator.userAgent.match(/iPad/i);\n\n\t\tlet isSafari = window.navigator.userAgent.match(/Safari/i) && (window.navigator.userAgent.match(/iPhone/i) || window.navigator.userAgent.match(/iPad/i) || window.navigator.userAgent.match(/macOS/i));\n\n\t\t// Internet Explorer 6-11\n\t\tlet isIE = /*@cc_on!@*/ false || !!document.documentMode;\n\n\t\t// Edge 20+\n\t\tlet isEdge = !isIE && !!window.StyleMedia;\n\n\t\t// Chrome\n\t\tlet isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n\n\t\t// Blink engine detection\n\t\tlet isBlink = (isChrome || isOpera) && !!window.CSS;\n\n\t\tif (isOpera) {\n\t\t\tdocument.documentElement.classList.add('opera');\n\t\t}\n\n\t\tif (isFirefox) {\n\t\t\tdocument.documentElement.classList.add('firefox');\n\t\t}\n\n\t\tif (isSafari) {\n\t\t\tdocument.documentElement.classList.add('safari');\n\t\t}\n\n\t\tif (isIphone) {\n\t\t\tdocument.documentElement.classList.add('iphone');\n\t\t}\n\n\t\tif (isIpad) {\n\t\t\tdocument.documentElement.classList.add('ipad');\n\t\t}\n\n\t\tif (isIE) {\n\t\t\tdocument.documentElement.classList.add('ie');\n\t\t}\n\n\t\tif (isEdge) {\n\t\t\tdocument.documentElement.classList.add('edge');\n\t\t}\n\n\t\tif (isChrome) {\n\t\t\tdocument.documentElement.classList.add('chrome');\n\t\t}\n\n\t\tif (isBlink) {\n\t\t\tdocument.documentElement.classList.add('blink');\n\t\t}\n\t}\n\n\t/**\n\t * @description Attempts to load bootstrap breakpoint settings from the CSS variables\n\t */\n\tinitCSSBreakpoints() {\n\t\tif (window.getComputedStyle) {\n\t\t\tconst documentStyling = getComputedStyle(document.documentElement);\n\t\t\tObject.keys(this.breakpoints).forEach(breakpoint => {\n\t\t\t\tif (documentStyling.getPropertyValue(`--breakpoint-${breakpoint}-size`) &&\n\t\t\t\t\tparseInt(documentStyling.getPropertyValue(`--breakpoint-${breakpoint}-size`)) !== NaN) {\n\t\t\t\t\tthis.breakpoints[breakpoint].size = parseInt(documentStyling.getPropertyValue(`--breakpoint-${breakpoint}-size`));\n\t\t\t\t}\n\n\t\t\t\tif (documentStyling.getPropertyValue(`--breakpoint-${breakpoint}-gutter`) &&\n\t\t\t\t\tparseInt(documentStyling.getPropertyValue(`--breakpoint-${breakpoint}-gutter`)) !== NaN) {\n\t\t\t\t\tthis.breakpoints[breakpoint].gutter = parseInt(documentStyling.getPropertyValue(`--breakpoint-${breakpoint}-gutter`));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Also check if we can save animationDuration\n\t\t\tif (documentStyling.getPropertyValue(`--animationDuration`) &&\n\t\t\t\tparseInt(documentStyling.getPropertyValue(`--animationDuration`)) !== NaN) {\n\t\t\t\tthis.animationDuration = parseInt(documentStyling.getPropertyValue(`--animationDuration`));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @description Appends text to a tags that tells the user it'll open in a new tab/window. Add a tag with `data-new-window-text` property to change the appended text\n\t */\n\taddNewWindowTitles() {\n\t\tlet text = '(opent in een nieuw scherm)';\n\t\tif (document.querySelector('[data-new-window-text]')) {\n\t\t\ttext = document.querySelector('[data-new-window-text]').dataset.newWindowText;\n\t\t}\n\n\t\tdocument.querySelectorAll('a[target=\"_blank\"]').forEach(a => {\n\t\t\ta.setAttribute('title', `${a.getAttribute('title') ? a.getAttribute('title') : ''} ${text}`.trim().replace(/ /g, \" \"));\n\t\t});\n\t}\n\n\t/**\n\t * @description Adds the attribute 'rel' set to 'noopener' on external links; This is for security reasons/best practices\n\t */\n\taddNoOpener() {\n\t\tdocument.querySelectorAll('a').forEach(a => {\n\t\t\tif (a.href && !a.hasAttribute('rel')) {\n\t\t\t\tif (a.hostname != location.hostname) {\n\t\t\t\t\ta.setAttribute('rel', 'noopener');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @description Makes sure anchored tags get a class for it, so offsetting scroll is possible. Also edit anchor links to get the [data-scroll-to] attribute\n\t */\n\taddAnchorEnhancement() {\n\t\t// Enhance anchors\n\t\tArray.from(document.querySelectorAll('a[id]')).filter(a => !a.href).forEach(a => {\n\t\t\t// Get parent element, add 'anchored' class\n\t\t\tif (a.parentElement) {\n\t\t\t\ta.parentElement.classList.add('anchored');\n\t\t\t}\n\t\t});\n\n\t\t// Enhance anchor links\n\t\tArray.from(document.querySelectorAll('a[href]')).filter(a => a.hash && a.hash != '' && a.getAttribute('href').substr(0, 1) == '#' && !a.dataset.scrollTo).forEach(a => {\n\t\t\ta.dataset.scrollTo = a.hash;\n\t\t});\n\t}\n\n\t/**\n\t * @description Scroll element into view\n\t */\n\tinitScrollTo() {\n\t\tif (window.scrollTo) {\n\t\t\tdocument.querySelectorAll('[data-scroll-to]').forEach(el => {\n\t\t\t\tel.addEventListener('click', e => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tconst target = document.querySelector(el.dataset.scrollTo);\n\n\t\t\t\t\tconst scrollPosition = this.elementCoords(target).top - (window.innerWidth > this.breakpoints.md.size ? 150 : 70);\n\t\t\t\t\twindow.scrollTo({\n\t\t\t\t\t\ttop: scrollPosition,\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\tscrollTo(selector) {\n\t\tlet target;\n\t\tif (typeof selector == 'string') {\n\t\t\ttarget = document.querySelector(selector);\n\t\t} else {\n\t\t\ttarget = selector;\n\t\t}\n\n\t\tif (target) {\n\t\t\tconst scrollPosition = this.elementCoords(target).top - (window.innerWidth > this.breakpoints.md.size ? 150 : 70);\n\t\t\twindow.scrollTo({\n\t\t\t\ttop: scrollPosition,\n\t\t\t\tbehavior: 'smooth',\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @description Basic random number generator\n\t * @param {Number} min \n\t * @param {Number} max \n\t * @returns {Number}\n\t */\n\trandom(min, max) {\n\t\treturn Math.floor(Math.random() * (max - min + 1) + min);\n\t}\n\n\t/**\n\t * @description Basic random string generator\n\t * @param {Number} length\n\t * @returns {String}\n\t */\n\trandomString(length) {\n\t\tlet result = '';\n\t\tconst characters = 'AB CDE FG HIJKLM NO PQRST UVWXYZa bcde fghi jklmnop qrstuvwx yz0 12345 6789';\n\t\tconst charactersLength = characters.length;\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\n\t\t}\n\t\treturn result.trim().replace(/\\s\\s/g, ' ');\n\t}\n\n\t/**\n\t * @description Retrieves absolute position of an element relative to the page\n\t * @param {HTMLElement} el \n\t * @returns {Object}\n\t */\n\telementCoords(el) {\n\t\tconst box = el.getBoundingClientRect();\n\n\t\tconst body = document.body;\n\t\tconst docEl = document.documentElement;\n\n\t\tconst scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n\t\tconst scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n\n\t\tconst clientTop = docEl.clientTop || body.clientTop || 0;\n\t\tconst clientLeft = docEl.clientLeft || body.clientLeft || 0;\n\n\t\tconst top = box.top + scrollTop - clientTop;\n\t\tconst left = box.left + scrollLeft - clientLeft;\n\n\t\treturn {\n\t\t\ttop: Math.round(top),\n\t\t\tleft: Math.round(left)\n\t\t};\n\t}\n\n\tinitScrollToTop() {\n\t\tthis.scrollToTopContainer = document.querySelector('.scrollToTop');\n\n\t\tif (this.scrollToTopContainer) {\n\t\t\tconst button = this.scrollToTopContainer.querySelector('button');\n\t\t\tconst scroll = () => {\n\t\t\t\tif (document.documentElement.scrollTop > 400) {\n\t\t\t\t\tthis.scrollToTopContainer.classList.add('active');\n\t\t\t\t} else {\n\t\t\t\t\tthis.scrollToTopContainer.classList.remove('active');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.registerScrollEvent(scroll.bind(this));\n\n\t\t\tbutton.addEventListener('click', () => {\n\t\t\t\tthis.scrollToTopContainer.classList.add('moving');\n\t\t\t\tbutton.blur();\n\t\t\t\twindow.scrollTo({\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t});\n\t\t\t\tsetTimeout(() => this.scrollToTopContainer.classList.remove('moving'), 1500);\n\t\t\t});\n\t\t}\n\t}\n\n\tinitSelectric() {\n\t\tif (document.querySelectorAll('select[selectric=\"true\"]').length) {\n\t\t\ttry {\n\t\t\t\timport( /* webpackChunkName: \"modules/dropdown\" */ 'selectric').then(() => {\n\t\t\t\t\tdocument.querySelectorAll('select[selectric=\"true\"]').forEach(select => {\n\t\t\t\t\t\t$(select).selectric({\n\t\t\t\t\t\t\tarrowButtonMarkup: ``\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// Add a hidden label around the selectric input for accessibility.\n\t\t\t\t\t\t$('.selectric-input').wrap('');\n\n\t\t\t\t\t\tthis.selectricCBs.forEach(cb => {\n\t\t\t\t\t\t\tcb();\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.selectricCBs = [];\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @description Tooltip library\n\t */\n\tinitTippy() {\n\t\tif (document.querySelectorAll('[data-tippy-content]').length || document.querySelectorAll('[data-tippy-source]').length) {\n\t\t\ttry {\n\t\t\t\timport( /* webpackChunkName: \"modules/tooltip\" */ 'tippy.js').then(e => {\n\t\t\t\t\tconst tippy = e.default;\n\t\t\t\t\ttippy('[data-tippy-content]');\n\n\t\t\t\t\tif (document.querySelectorAll('[data-tippy-source]').forEach(source => {\n\t\t\t\t\t\t\tconst target = document.querySelector(`[data-tippy-target=\"${source.dataset.tippySource}\"]`);\n\t\t\t\t\t\t\tif (target) {\n\t\t\t\t\t\t\t\ttippy(source, {\n\t\t\t\t\t\t\t\t\tallowHTML: true,\n\t\t\t\t\t\t\t\t\tcontent: target.innerHTML,\n\t\t\t\t\t\t\t\t\tinteractive: target.querySelectorAll('a, button').length > 0\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}));\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * @description Makes tags with the data-copy property clickable, copies its content to the clipboard\n\t */\n\tinitCopy() {\n\t\tdocument.querySelectorAll('[data-copy]').forEach(el => {\n\t\t\tel.addEventListener('click', () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst copyContent = el.dataset.copy;\n\t\t\t\t\tconst input = document.createElement('input');\n\n\t\t\t\t\tinput.type = 'text';\n\t\t\t\t\tinput.style.position = 'absolute';\n\t\t\t\t\tinput.style.height = 0;\n\t\t\t\t\tinput.style.overflow = 'hidden';\n\t\t\t\t\tinput.value = copyContent;\n\n\t\t\t\t\tdocument.body.appendChild(input);\n\t\t\t\t\tinput.select();\n\t\t\t\t\tdocument.execCommand('copy');\n\t\t\t\t\tinput.parentNode.removeChild(input);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthis.toast('Something unexpected went wrong', 'error');\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tinitPrintListener() {\n\t\tthis.printTexts = Array.from(document.querySelectorAll('[data-print]'));\n\n\t\tif (this.printTexts.length) {\n\t\t\tlet printElements = [];\n\n\t\t\twindow.addEventListener('beforeprint', e => {\n\t\t\t\tthis.printTexts.forEach(printParent => {\n\t\t\t\t\tlet span = document.createElement('span');\n\t\t\t\t\tspan.innerHTML = printParent.dataset.print;\n\t\t\t\t\tspan.classList.add('printText');\n\n\t\t\t\t\tprintElements.push(span);\n\n\t\t\t\t\tprintParent.appendChild(span);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\twindow.addEventListener('afterprint', e => {\n\t\t\t\tprintElements.forEach(printElement => {\n\t\t\t\t\tprintElement.remove();\n\t\t\t\t});\n\n\t\t\t\tprintElements = [];\n\t\t\t});\n\t\t}\n\t}\n\n\tinitLabelClick() {\n\t\tdocument.querySelectorAll('label[for]').forEach(label => {\n\t\t\tlabel.addEventListener('keydown', e => {\n\n\t\t\t\tswitch (e.key.toLowerCase()) {\n\t\t\t\t\tcase ' ':\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\tcase 'space':\n\t\t\t\t\tcase 'enter':\n\t\t\t\t\t\tlabel.click();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tgetCurrentBreakpoint() {\n\t\tconst width = window.innerWidth;\n\t\tconst breakpoints = Object.keys(this.breakpoints).reverse();\n\n\t\tlet currentBreakpoint = breakpoints[breakpoints.length - 1];\n\n\t\tbreakpoints.forEach(breakpoint => {\n\t\t\tif (width <= this.breakpoints[breakpoint].size) {\n\t\t\t\tcurrentBreakpoint = breakpoint;\n\t\t\t}\n\t\t});\n\n\t\treturn currentBreakpoint;\n\t}\n\n\ttoast(message, type = 'success') {\n\t\tif (this.ToastController) {\n\t\t\tthis.ToastController.new(message, type);\n\t\t} else {\n\t\t\tconsole.error('ToastController not available. Message below');\n\t\t\tconsole.log(`[${type}] ${message}`);\n\t\t}\n\t}\n\n\tgetParameter(name) {\n\t\tlet result = null,\n\t\t\ttmp = [];\n\t\tlet items = location.search.substr(1).split(\"&\");\n\t\tfor (let index = 0; index < items.length; index++) {\n\t\t\ttmp = items[index].split(\"=\");\n\t\t\tif (tmp[0] === name) {\n\t\t\t\tresult = decodeURIComponent(tmp[1]);\n\t\t\t}\n\t\t\tif (result === 'undefined') {\n\t\t\t\tresult = true;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tinsertTesters() {\n\t\tthis.insertBreakpointIndicator();\n\t\tthis.insertColumnTester();\n\t}\n\n\tinsertColumnTester() {\n\t\tlet tester = document.createElement('div');\n\t\ttester.classList.add('columnTester');\n\t\tlet cols = ``;\n\t\tfor (let i = 0; i < 12; i++) {\n\t\t\tcols += `
`;\n\t\t}\n\t\ttester.innerHTML = `
${cols}
`;\n\t\tdocument.body.appendChild(tester);\n\t}\n\n\tinsertBreakpointIndicator() {\n\t\tconst breakpoints = Object.keys(this.breakpoints);\n\t\tlet blocks = ``;\n\t\tbreakpoints.forEach((breakpoint, index) => {\n\t\t\tlet classes = 'col ';\n\t\t\tif (index == 0) {\n\t\t\t\tclasses += `d-${breakpoints[index + 1]}-none`;\n\t\t\t} else if (index == breakpoints.length - 1) {\n\t\t\t\tclasses += `d-none d-${breakpoint}-block`;\n\t\t\t} else {\n\t\t\t\tclasses += `d-none d-${breakpoint}-block d-${breakpoints[index + 1]}-none`;\n\t\t\t}\n\t\t\tblocks += `
${breakpoint}
`;\n\t\t});\n\n\n\t\tlet tester = document.createElement('div');\n\t\ttester.classList.add('breakpointIndicators');\n\n\t\ttester.innerHTML = `
${blocks}
`;\n\t\tdocument.body.appendChild(tester);\n\t}\n\n\t/**\n\t * @description Part of the pagecontroller, makes sure newPage methods get executed in other controllers as well\n\t */\n\tnewPage() {\n\t\t// Reset App's cache\n\t\tthis._resizeFunctionsArr = [];\n\t\tthis._resizeFunctions = {};\n\t\tthis._resizeFunctionsCounter = 0;\n\n\t\tthis._scrollFunctionsArr = [];\n\t\tthis._scrollFunctions = {};\n\t\tthis._scrollFunctionsCounter = 0;\n\n\t\t// Trigger slimmage\n\t\twindow.slimmage.cr();\n\n\t\t// Trigger newPage in controllers\n\t\tlet incompleteControllers = [];\n\t\tObject.keys(this).forEach(key => {\n\t\t\tif (this.hasOwnProperty(key) && key.indexOf('Controller') > -1) {\n\t\t\t\tconst obj = this[key];\n\t\t\t\tif (obj != null && obj.newPage && typeof obj.newPage == 'function') {\n\t\t\t\t\tobj.newPage();\n\t\t\t\t} else {\n\t\t\t\t\tif (this.newPageWarning) {\n\t\t\t\t\t\tincompleteControllers.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Warn (once) if there are controllers without a newPage method\n\t\tif (this.newPageWarning && incompleteControllers.length) {\n\t\t\tconsole.warn(`The following controllers are missing a %cnewPage`, 'color: orange;', `method:\\n\\n `, incompleteControllers.join('\\n '), `\\n\\nMake sure these can handle loading a new page`);\n\t\t\tdelete this.newPageWarning;\n\t\t}\n\t}\n\n\treset() {\n\t\t// this.initAutoplayOnHover();\n\t}\n}","import Cookies from 'js-cookie';\n\nexport default class AVGController {\n\tconstructor() {\n\t\tthis.avgPermissionsCookie = this.getAvgPermissionsCookie();\n\t\tthis.cookieBar = document.querySelector('#cookies');\n\t\tthis.topBarContainer = document.getElementById(\"topbarcontainer\");\n\n\t\tif (this.cookieBar) {\n\t\t\tthis.topBarContainer.style.marginTop = this.cookieBar.offsetHeight + \"px\";\n\t\t}\n\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\t\"event\": \"ChangeCookieChoices\",\n\t\t\t\"Analytics\": this.AcceptedAnalyticsCookies,\n\t\t\t\"Tracking\": this.AcceptedTrackingCookies\n\t\t});\n\t\tif (document.querySelector('form#cookieConfigure') !== null) {\n\t\t\tdocument.querySelector('input#Analytics').checked = this.AcceptedAnalyticsCookies;\n\t\t\tdocument.querySelector('input#Tracking').checked = this.AcceptedTrackingCookies;\n\t\t}\n\n\t\tthis.LoadAVGScripts();\n\t\tthis.CheckOpen();\n\t\tthis.SetupButtonClicks();\n\t}\n\n\tget AcceptedFunctionalCookies() {\n\t\tif (this.avgPermissionsCookie === undefined) return false;\n\n\t\treturn this.avgPermissionsCookie.Functional;\n\t}\n\n\tget AcceptedAnalyticsCookies() {\n\t\tif (this.avgPermissionsCookie === undefined) return true;\n\n\t\treturn this.avgPermissionsCookie.Analytics;\n\t}\n\n\tget AcceptedTrackingCookies() {\n\t\tif (this.avgPermissionsCookie === undefined) return false;\n\n\t\treturn this.avgPermissionsCookie.Tracking;\n\t}\n\n\tgetCookieName()\n\t{\n\t\tif (this.cookieButtonClass === \"Verwijzers\")\n\t\t{\n\t\t\treturn \"AVGVerwijzersPermissions\";\n\t\t}\n\t\telse if (this.cookieButtonClass === \"Visio\")\n\t\t{\n\t\t\treturn \"AVGVisioPermissions\";\n\t\t}\n\t\telse if (this.cookieButtonClass === \"Kennisportaal\")\n\t\t{\n\t\t\treturn \"AVGKennisportaalPermissions\";\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Invalid cookie button class specified\");\n\t\t}\n\t}\n\n\tgetAvgPermissionsCookie() {\n\t\tthis.cookieButtonClass = document.querySelector('a.button.agreeCookies')?.classList.contains('Verwijzers') ? \"Verwijzers\" :\n\t\t\tdocument.querySelector('a.button.agreeCookies')?.classList.contains('Kennisportaal') ? \"Kennisportaal\" : \"Visio\";\n\t\tconst cookieName = this.getCookieName();\n\t\treturn Cookies.get(cookieName) ? JSON.parse(Cookies.get(cookieName)) : undefined;\n\t}\n\n\tSetOrUpdatePermissionsCookie(functional, analytics, tracking) {\n\t\tthis.avgPermissionsCookie = {\n\t\t\tFunctional: functional,\n\t\t\tAnalytics: analytics,\n\t\t\tTracking: tracking\n\t\t};\n\n\t\twindow.dataLayer = window.dataLayer || [];\n\n\t\twindow.dataLayer.push({\n\t\t\t\"Analytics\": this.AcceptedAnalyticsCookies,\n\t\t\t\"Tracking\": this.AcceptedTrackingCookies,\n\t\t\t\"event\": \"ChangeCookieChoices\"\n\t\t});\n\n\t\tCookies.set(this.getCookieName(), JSON.stringify(this.avgPermissionsCookie), {\n\t\t\texpires: 99999,\n\t\t\tsameSite: 'none',\n\t\t\tsecure: true\n\t\t});\n\t\tthis.CheckOpen();\n\t}\n\n\tSetupButtonClicks() {\n\t\tif (document.querySelector('a.button.agreeCookies')) {\n\t\t\tdocument.querySelector('a.button.agreeCookies').addEventListener('click', this.AgreeCookies.bind(this));\n\t\t}\n\t}\n\n\tLoadAVGScripts() {\n\t\tdocument.querySelectorAll('noscript[data-gtm-tag]').forEach(noscript => {\n\t\t\tthis.LoadGoogleTagManager(noscript.dataset.gtmTag);\n\t\t});\n\t}\n\n\tLoadGoogleTagManager(gtmcode) {\n\t\t(function (w, d, s, l, i) {\n\t\t\tw[l] = w[l] || [];\n\t\t\tw[l].push({\n\t\t\t\t'gtm.start': new Date().getTime(),\n\t\t\t\tevent: 'gtm.js'\n\t\t\t});\n\t\t\tvar f = d.getElementsByTagName(s)[0],\n\t\t\t\tj = d.createElement(s),\n\t\t\t\tdl = l != 'dataLayer' ? '&l=' + l : '';\n\t\t\tj.async = true;\n\t\t\tj.src =\n\t\t\t\t'https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n\t\t\tf.parentNode.insertBefore(j, f);\n\t\t})\n\t\t(window, document, 'script', 'dataLayer', gtmcode);\n\t}\n\n\tAgreeCookies() {\n\t\tthis.SetOrUpdatePermissionsCookie(true, true, true);\n\t\t$('#cookies').remove();\n\t}\n\n\tCheckOpen() {\n\t\tif (this.cookieBar != null) {\n\t\t\tif (this.avgPermissionsCookie === undefined) {\n\t\t\t\tthis.cookieBar.classList.add('open');\n\t\t\t} else {\n\t\t\t\tthis.cookieBar.classList.remove('open');\n\t\t\t\tthis.topBarContainer.style.marginTop = \"0px\";\n\t\t\t}\n\t\t}\n\t}\n\n\tSavePreferences() {\n\t\tthis.SetOrUpdatePermissionsCookie(document.getElementById(\"Functional\").checked, document.getElementById(\"Analytics\").checked, document.getElementById(\"Tracking\").checked);\n\t\tlet saveConfirmation = document.querySelector('form#cookieConfigure .onSaveComplete');\n\t\tif (saveConfirmation !== null) {\n\t\t\tsaveConfirmation.classList.add('success');\n\t\t\tsetTimeout(function () {\n\t\t\t\tsaveConfirmation.classList.remove('success');\n\t\t\t}, 1500);\n\t\t}\n\t}\n\n\tLoadConfigurationForm() {\n\t\tif (this.ConfigPromise) {\n\t\t\treturn this.ConfigPromise;\n\t\t}\n\n\t\tconst target = document.querySelector('#cookies a.goConfigure').href;\n\n\t\tthis.ConfigPromise = fetch(target).then(response => {\n\t\t\treturn response.text();\n\t\t}).then(html => {\n\t\t\tconst parser = new DOMParser();\n\t\t\tconst DOM = parser.parseFromString(html, 'text/html');\n\n\t\t\tif (DOM.querySelector('header .image img')) {\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\tlet tempImg = new Image();\n\t\t\t\t\ttempImg.onload = resolve.bind(this, DOM);\n\t\t\t\t\ttempImg.onerror = resolve.bind(this, DOM);\n\t\t\t\t\ttempImg.src = DOM.querySelector('header .image img').src;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (DOM.querySelector('form#cookieConfigure')) {\n\t\t\t\treturn DOM.querySelector('form#cookieConfigure');\n\t\t\t} else {\n\t\t\t\tthrow new Error('Configuration form not found');\n\t\t\t}\n\t\t});\n\n\t\treturn this.ConfigPromise;\n\t}\n\n\tOpenConfigurationModal() {\n\t\tthis.LoadConfigurationForm().then(form => {\n\t\t\tconst modal = document.createElement('div');\n\t\t\tmodal.id = \"cookieModal\";\n\t\t\tmodal.innerHTML = `
\n\t\t\t\t
\n\t\t\t\t\t

Cookie instellingen

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

Hier kan in principe heel veel tekst staan omdat je nu aaaaalle ruimte hebt die je maar zou willen. Dit omdat het een modal is

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
`;\n\t\t\tmodal.querySelector('.formColumn').appendChild(form);\n\n\t\t\tform.addEventListener('submit', event => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.SavePreferences();\n\t\t\t\tthis.closeConfigurationModal();\n\t\t\t});\n\n\t\t\tconst closePopup = () => {\n\t\t\t\tif (document.querySelector('#cookieModal')) {\n\t\t\t\t\tdocument.querySelector('#cookieModal').remove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twindow.addEventListener('keydown', e => {\n\t\t\t\tif (e.key.toLowerCase().substr(0, 3) == 'esc') {\n\t\t\t\t\tclosePopup();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmodal.querySelector('.closeModal').addEventListener('click', e => {\n\t\t\t\te.preventDefault();\n\t\t\t\tclosePopup();\n\t\t\t});\n\n\t\t\tmodal.addEventListener('click', e => {\n\t\t\t\tif (e.target.contains(modal.querySelector('.modal'))) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tclosePopup();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (document.querySelector('main')) {\n\t\t\t\tdocument.querySelector('main').appendChild(modal);\n\t\t\t} else {\n\t\t\t\tdocument.body.appendChild(modal);\n\t\t\t}\n\t\t});\n\t}\n\n\tcloseConfigurationModal() {\n\t\tconst modal = document.getElementById('cookieModal');\n\t\tif (modal) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (modal) {\n\t\t\t\t\tmodal.classList.add('closing');\n\t\t\t\t}\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (modal && modal.parentElement) {\n\t\t\t\t\t\tmodal.parentElement.removeChild(modal);\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t}, 1000);\n\t\t}\n\t}\n}\n","import HeaderSearchController from './headerSearch';\n\nexport default class HeaderController {\n\tconstructor() {\n\t\tthis.headerElement = null;\n\t\tthis.menuButton = null;\n\n\t\tthis.previousScroll = 0;\n\t\tthis.scrollCounter = 0;\n\t\tthis.threshold = 500;\n\n\t\tthis.init();\n\t\tthis.resize();\n\n\t\tthis.headerSearchController = new HeaderSearchController();\n\t}\n\n\tinit() {\n\t\tthis.headerElement = document?.querySelector('header');\n\t\tthis.menuButton = this.headerElement?.querySelector('.menuButton');\n\t\tthis.previousScroll = window.pageYOffset;\n\n\t\t// Register events\n\t\twindow.app.registerResizeEvent(this.resize.bind(this));\n\t\twindow.app.registerScrollEvent(this.scroll.bind(this));\n\n\t\t// Click events\n\t\tthis.menuButton?.addEventListener('click', this.toggleMenu.bind(this));\n\t}\n\n\ttoggleMenu() {\n\t\tthis.headerElement.classList.toggle('mobileMenuActive');\n\t}\n\n\tresize() {\n\t\tthis.previousScroll = window.pageYOffset;\n\t\tthis.threshold = this.headerElement?.clientHeight;\n\n\t\tthis.scroll();\n\t}\n\n\tscroll() {\n\t\t// First, decide if it's up or down\n\t\tif (this.previousScroll > window.pageYOffset) {\n\t\t\t// Up\n\t\t\tif (this.scrollCounter > 0) {\n\t\t\t\tthis.scrollCounter = 0;\n\t\t\t}\n\n\t\t\tthis.scrollCounter += window.pageYOffset - this.previousScroll;\n\t\t} else if (this.previousScroll < window.pageYOffset) {\n\t\t\t// Down\n\t\t\tif (this.scrollCounter < 0) {\n\t\t\t\tthis.scrollCounter = 0;\n\t\t\t}\n\n\t\t\tthis.scrollCounter += window.pageYOffset - this.previousScroll;\n\t\t}\n\n\t\tif (window.pageYOffset < this.threshold) {\n\t\t\tthis.show();\n\t\t} else {\n\t\t\tif (this.scrollCounter > this.threshold) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\n\t\t\tif (this.scrollCounter < this.threshold * -1) {\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t}\n\n\t\tthis.previousScroll = window.pageYOffset;\n\t}\n\n\thide() {\n\t\tthis.headerElement?.classList.add('hidden');\n\t}\n\n\tshow() {\n\t\tthis.headerElement?.classList.remove('hidden');\n\t}\n}","import SearchSuggestion from './../elements/searchSuggestion';\nimport delegate from 'delegate';\nimport Mark from 'mark.js';\n\nexport default class HeaderSearchController {\n constructor() {\n this.form = null;\n this.formInput = null;\n this.searchResultsContainer = null;\n\n this.apiEndpoint = '/umbraco/api/search/GetSuggestions?filter=';\n\n this.abortController = null; // Will contain an AbortController when making a new API call\n this.waiterTime = 250; // Time in MS to wait with making a new API call\n this.changeWaiter = null; // Clearable timeout handler\n this.minInput = 4; // Minimal amount of characters before a search is triggered\n\n this.originalSearchSuggestions = [];\n this.originalSearchTitle = '';\n\n this.mark = null;\n\n if (document.querySelector('form.headerSearchForm')) {\n this.init();\n }\n }\n\n init() {\n this.form = document.querySelector('form.headerSearchForm');\n this.formInput = this.form.querySelector('input[name=\"q\"]');\n this.searchResultsContainer = document.querySelector('section.headerSearch');\n this.mark = new Mark(this.searchResultsContainer.querySelector('ul'));\n \n if ('AbortController' in window) {\n this.abortController = new AbortController();\n }\n\n // Make a copy of the search suggestions for restore ability\n this.searchResultsContainer.querySelectorAll('ul li').forEach(li => this.originalSearchSuggestions.push(li.cloneNode(true)));\n\n // Copy original title\n this.originalSearchTitle = this.searchResultsContainer.querySelector('#searchResultsTitle').innerHTML;\n\n this.setEventListeners();\n }\n\n setEventListeners() {\n // Opening\n this.formInput.addEventListener('focus', this.showSearchResults.bind(this));\n this.formInput.addEventListener('click', this.showSearchResults.bind(this));\n if (document.querySelector('body > header .searchButton')) {\n document.querySelector('body > header .searchButton').addEventListener('click', () => {\n if (document.querySelector('body > header').classList.contains('searchActive')) {\n this.hideSearchResults();\n } else {\n this.showSearchResults();\n this.formInput.focus();\n }\n });\n }\n\n // Changing\n this.formInput.addEventListener('input', this.handleInputChange.bind(this));\n\n // Submitting\n this.searchResultsContainer.querySelector('a.fullSearch').addEventListener('click', () => this.form.submit());\n this.form.addEventListener('submit', e => {\n if (!this.formInput.value.trim()) {\n e.preventDefault();\n this.formInput.focus();\n return false;\n }\n return true;\n });\n\n // Resetting\n this.form.addEventListener('reset', e => {\n this.resetResults();\n this.formInput.focus();\n });\n\n // Closing\n if (this.searchResultsContainer.querySelector('.closeButton')) {\n this.searchResultsContainer.querySelector('.closeButton').addEventListener('click', e => {\n this.hideSearchResults();\n this.formInput.blur();\n });\n }\n\n document.addEventListener('keydown', e => {\n\t\t\tif (e.key.toLowerCase().substr(0, 3) == 'esc') {\n this.hideSearchResults();\n this.formInput.blur();\n }\n });\n\n // Others\n const focusButton = this.form.querySelector('button.focus');\n if (focusButton) {\n focusButton.addEventListener('click', () => this.formInput.focus());\n }\n\n const clearButton = this.form.querySelector('button[type=\"reset\"]');\n if (clearButton) {\n clearButton.addEventListener('click', () => {\n this.resetResults();\n this.formInput.focus();\n\n if (focusButton) {\n clearButton.setAttribute('disabled', 'disabled');\n focusButton.removeAttribute('disabled');\n }\n });\n }\n\n this.formInput.addEventListener('keydown', e => {\n if (e.key.toLowerCase() == 'arrowdown') {\n e.preventDefault();\n this.searchResultsContainer.querySelector('ul li a').focus();\n }\n });\n\n delegate('section.headerSearch ul li a', 'keydown', e => {\n if (e.key.toLowerCase() == 'arrowup') {\n e.preventDefault();\n this.arrowUp(e.delegateTarget.parentNode);\n } else if (e.key.toLowerCase() == 'arrowdown') {\n e.preventDefault();\n this.arrowDown(e.delegateTarget.parentNode);\n }\n });\n\n delegate('section.headerSearch a.fullSearch', 'keydown', e => {\n if (e.key.toLowerCase() == 'arrowup') {\n e.preventDefault();\n this.arrowUp(e.delegateTarget);\n } else if (e.key.toLowerCase() == 'arrowdown') {\n e.preventDefault();\n this.arrowDown(e.delegateTarget);\n }\n });\n\n // Searchpage specific\n if (document.body.classList.contains('searchpage')) {\n if (document.querySelector('main .searchAgain')) {\n document.querySelector('main .searchAgain').addEventListener('click', e => {\n this.showSearchResults();\n this.formInput.focus();\n });\n document.querySelector('main .searchAgain').classList.remove('hidden');\n }\n }\n }\n\n /**\n * @param {HTMLElement} li \n */\n arrowDown(el) {\n if (el.nextElementSibling && el.nextElementSibling.querySelector('a')) {\n el.nextElementSibling.querySelector('a').focus();\n } else if (!this.searchResultsContainer.querySelector('a.fullSearch').classList.contains('inactive')) {\n this.searchResultsContainer.querySelector('a.fullSearch').focus();\n } else if (el == this.searchResultsContainer.querySelector('a.fullSearch')) {\n this.formInput.focus();\n }\n }\n\n /**\n * @param {HTMLElement} li \n */\n arrowUp(el) {\n if (el.previousElementSibling && el.previousElementSibling.querySelector('a')) {\n el.previousElementSibling.querySelector('a').focus();\n } else if (el == this.formInput && !this.searchResultsContainer.querySelector('a.fullSearch').classList.contains('inactive')) {\n this.searchResultsContainer.querySelector('a.fullSearch').focus();\n } else if (el == this.searchResultsContainer.querySelector('a.fullSearch')) {\n this.searchResultsContainer.querySelector('ul li:last-of-type a').focus();\n } else {\n this.formInput.focus();\n }\n }\n\n handleInputChange() {\n let query = this.formInput.value.trim();\n const clearButton = this.form.querySelector('button[type=\"reset\"]');\n const focusButton = this.form.querySelector('button.focus');\n\n if (query && query.length >= this.minInput) {\n // Update status button to show\n this.updateResults(query);\n focusButton.setAttribute('disabled', 'disabled');\n clearButton.removeAttribute('disabled');\n } else if (query) {\n // User entered less than 3 characters\n focusButton.setAttribute('disabled', 'disabled');\n clearButton.removeAttribute('disabled');\n } else {\n focusButton.removeAttribute('disabled');\n clearButton.setAttribute('disabled', 'disabled');\n this.resetResults();\n }\n }\n\n showSearchResults() {\n document.querySelector('body > header').classList.add('searchActive');\n this.searchResultsContainer.classList.add('active');\n\n this.searchResultsContainer.setAttribute('aria-expanded', true);\n this.searchResultsContainer.setAttribute('aria-hidden', false);\n\n document.documentElement.classList.add('disableScroll');\n\n // Enable tabbing on all items\n this.searchResultsContainer.querySelectorAll('a, button, input').forEach(clickable => {\n clickable.setAttribute('tabindex', '0');\n clickable.setAttribute('aria-hidden', 'false');\n });\n }\n\n hideSearchResults() {\n document.querySelector('body > header').classList.remove('searchActive');\n this.searchResultsContainer.classList.remove('active');\n\n this.searchResultsContainer.setAttribute('aria-expanded', false);\n this.searchResultsContainer.setAttribute('aria-hidden', true);\n\n document.documentElement.classList.remove('disableScroll');\n\n setTimeout(() => {\n if (!this.searchResultsContainer.classList.contains('active')) {\n this.resetResults();\n }\n }, 400);\n\n // Disable tabbing on all items\n this.searchResultsContainer.querySelectorAll('a, button, input').forEach(clickable => {\n clickable.setAttribute('tabindex', '-1');\n clickable.setAttribute('aria-hidden', 'true');\n });\n }\n\n updateResults(query) {\n // Reset waiter to prevent unnessecary calls\n if (this.changeWaiter !== null) {\n clearTimeout(this.changeWaiter);\n }\n\n this.changeWaiter = setTimeout(() => {\n this.searchResultsContainer.querySelector('ul').classList.add('loading');\n\n // If there's a call going on, abort it and create a new abortcontroller to reuse\n if ('AbortController' in window && this.abortController) {\n this.abortController.abort();\n this.abortController = new AbortController();\n }\n\n // Fetch new results\n this.fetchResults(query).then(data => {\n this.insertSearchSuggestions(data, query);\n }).catch(e => {\n console.error(e);\n }).finally(() => {\n this.searchResultsContainer.querySelector('ul').classList.remove('loading');\n });\n \n this.changeWaiter = null;\n }, this.waiterTime);\n }\n\n insertSearchSuggestions(data, query = null) {\n // Data should be an array containing nothing but keywords. So create listitems that will search for that\n let suggestions = [];\n if (data.Suggestions) {\n data.Suggestions.forEach(item => {\n let suggestion = new SearchSuggestion({\n name: item.Title,\n url: item.Url\n });\n \n suggestions.push(suggestion.generate());\n });\n } \n\n // Clear current suggestion list\n this.searchResultsContainer.querySelector('ul').innerHTML = '';\n \n // Insert the newly made suggestions\n suggestions.forEach(suggestion => this.searchResultsContainer.querySelector('ul').appendChild(suggestion));\n\n // Highlight text matching with query\n if (query) {\n this.mark.mark(query);\n }\n\n // Hide title\n this.searchResultsContainer.querySelector('.status').classList.add('d-none');\n\n // Update fullSearch button\n if (data.TotalResults) {\n this.searchResultsContainer.querySelector('a.fullSearch').classList.remove('inactive');\n\n if (data.TotalResults > 1) {\n this.searchResultsContainer.querySelector('a.fullSearch span').innerHTML = `Bekijk alle ${data.TotalResults} resultaten`;\n } else {\n this.searchResultsContainer.querySelector('a.fullSearch span').innerHTML = `Bekijk resultaat`;\n }\n } else {\n this.searchResultsContainer.querySelector('a.fullSearch').classList.add('inactive');\n this.searchResultsContainer.querySelector('.status').classList.remove('d-none');\n }\n\n // Update button text\n if (data.TotalResults > 1) {\n this.searchResultsContainer.querySelector('a.fullSearch span').innerHTML = `Bekijk alle ${data.TotalResults} resultaten`;\n } else {\n this.searchResultsContainer.querySelector('a.fullSearch span').innerHTML = `Bekijk alle resultaten`;\n }\n\n // Update title\n this.searchResultsContainer.querySelector('#searchResultsTitle').innerHTML = `${data.TotalResults == 0 ? 'Geen' : data.TotalResults} ${data.TotalResults == 1 ? 'resultaat' : 'resultaten'} gevonden`;\n }\n\n resetResults() {\n // Cancel any ongoing call\n if ('AbortController' in window && this.abortController) {\n this.abortController.abort();\n this.abortController = new AbortController();\n }\n\n // Clear input\n this.formInput.value = '';\n\n // Clear suggestion list\n this.searchResultsContainer.querySelector('ul').innerHTML = '';\n \n // Insert backed up suggestions and title\n this.originalSearchSuggestions.forEach(suggestion => this.searchResultsContainer.querySelector('ul').appendChild(suggestion));\n this.searchResultsContainer.querySelector('#searchResultsTitle').innerHTML = this.originalSearchTitle;\n this.searchResultsContainer.querySelector('.status').classList.remove('d-none');\n this.searchResultsContainer.querySelector('ul').classList.remove('loading');\n this.searchResultsContainer.querySelector('a.fullSearch').classList.add('inactive');\n }\n\n fetchResults(query) {\n let options = {};\n if ('AbortController' in window && this.abortController) {\n options.signal = this.abortController.signal;\n }\n\n return fetch(`${this.apiEndpoint}${encodeURIComponent(query)}`, options).then(response => {\n return response.json();\n });\n }\n\n newPage() {\n this.form = null;\n this.formInput = null;\n this.searchResultsContainer = null;\n\n this.abortController = null; // Will contain an AbortController when making a new API call\n this.changeWaiter = null; // Clearable timeout handler\n\n this.originalSearchSuggestions = [];\n this.originalSearchTitle = '';\n\n this.mark = null;\n\n if (document.querySelector('form.headerSearchForm')) {\n this.init();\n }\n }\n}","import Cookies from 'js-cookie';\n\nexport default class MediaController {\n\tconstructor(autoinit = true) {\n\t\tif (autoinit) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tvar youtube = false;\n\t\tvar vimeo = false;\n\t\t\n\t\tdocument.querySelectorAll('noscript').forEach(media => {\n\t\t\tswitch (media.dataset.mediatype) {\n\t\t\t\tcase 'youtube':\n\t\t\t\t\tthis.youtube(media);\n\t\t\t\t\tyoutube = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'vimeo':\n\t\t\t\t\tthis.vimeo(media);\n\t\t\t\t\tvimeo = true;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\t\tif (window.app.AVGController.AcceptedTrackingCookies) {\n\t\t\tif (youtube) {\n\t\t\t\tvar tag = document.createElement('script');\n\t\t\t\ttag.src = \"//www.youtube.com/player_api\";\n\t\t\t\tvar firstScriptTag = document.getElementsByTagName('script')[0];\n\t\t\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n\t\t\t\twindow.onYouTubeIframeAPIReady = this.YouTubeAPILoaded.bind(this);\n\t\t\t}\n\n\t\t\tif (vimeo) {\n\t\t\t\timport( /* webpackChunkName: \"modules/vimeo\" */ '@vimeo/player').then(module => {\n\t\t\t\t\tconst Player = module.default;\n\t\t\t\t\tdocument.querySelectorAll('iframe.vimeo').forEach(iframe => {\n\t\t\t\t\t\tvar player = new Player(iframe);\n\n\t\t\t\t\t\tiframe.parentNode.querySelector('div.videoPoster a').addEventListener('click', (click) => {\n\n\t\t\t\t\t\t\tif (!click.currentTarget.closest('[data-lity]')) {\n\t\t\t\t\t\t\t\tlet videoPoster = click.currentTarget.closest('div.videoPoster');\n\t\t\t\t\t\t\t\tvideoPoster.remove();\n\t\t\t\t\t\t\t\tplayer.play().catch(error => {\n\t\t\t\t\t\t\t\t\tconsole.log('Failed playing');\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tplayer.play().catch(e => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, 500);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, true);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// New youtube embed blocklist\n\t\tdocument.querySelectorAll('iframe').forEach(iframe => {\n\t\t\tif(iframe.getAttribute('src') && (iframe.getAttribute('src').includes('youtube.com') || iframe.getAttribute('src').includes('youtu.be')) || iframe.getAttribute('embedLink') && (iframe.getAttribute('embedLink').includes('youtube'))) {\n\t\t\t\tiframe.classList.add('youtubeVideo');\n\t\t\t\tconst url = iframe.hasAttribute('embedLink') ? iframe.getAttribute('embedLink') : iframe.getAttribute('src');\n\t\t\t\tconst id = url.split(\"?v=\")[1]; // Get the video ID from the URL\n\n\t\t\t\tif(iframe.hasAttribute('width')) {\n\t\t\t\t\tiframe.removeAttribute('width');\n\t\t\t\t}\n\t\t\t\tif(iframe.hasAttribute('height')) {\n\t\t\t\t\tiframe.removeAttribute('height');\n\t\t\t\t}\n\n\t\t\t\tiframe.setAttribute('src', (id ? \"https://www.youtube-nocookie.com/embed/\" + id : url));\n\t\t\t}\n\t\t});\n\t}\n\n\tYouTubeAPILoaded() {\n\t\tdocument.querySelectorAll('iframe.youtube').forEach(iframe => {\n\t\t\tnew YT.Player(iframe.id, {\n\t\t\t\tevents: {\n\t\t\t\t\t'onReady': function(event){\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tiframe.parentNode.querySelector('div.videoPoster a').addEventListener('click', (click) => {\n\t\t\t\t\n\t\t\t\t\t\t\t\tif (!iframe.closest('[data-lity]')) {\n\t\t\t\t\t\t\t\t\tclick.currentTarget.closest('div.videoPoster').remove();\n\t\t\t\t\t\t\t\t\tevent.target.playVideo();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\t}, true);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\tconsole.log(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t})\n\t}\n\n\n\tembedIframe(url, type, id, imgtag) {\n\t\t// External sites use tracking, so the tracking cookie needs to be enabled\n\t\tif (window.app.AVGController.AcceptedTrackingCookies) {\n\t\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t${imgtag}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
`;\n\t\t} else {\n\t\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Deze video heeft cookies nodig

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

U heeft aangegeven liever geen cookies van YouTube of Vimeo te krijgen. Deze cookies zijn nodig om deze video te tonen.

\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t`;\n\t\t}\n\t}\n\n\tyoutube(media) {\n\t\tconst url = `https://www.youtube-nocookie.com/embed/${media.dataset.youtube}?wmode=opaque&rel=0&enablejsapi=1&origin=${window.location.protocol}//${window.location.hostname}`;\n\n\t\tlet sourceRegex = /src='(.*?)'/;\n\t\tlet imgsrc = media.innerHTML.match(sourceRegex);\n\t\tlet imgElement = new Image();\n\t\timgElement.src = imgsrc[1];\n\t\timgElement.setAttribute('alt', 'Thumbnail van de video');\n\n\t\tconst embed = this.embedIframe(url, \"youtube\", media.dataset.youtube, imgElement.outerHTML);\n\n\t\tlet tempDiv = document.createElement('div');\n\t\ttempDiv.innerHTML = embed;\n\n\t\tmedia.before(tempDiv.firstElementChild);\n\t\tmedia.remove();\n\t}\n\n\tvimeo(media) {\n\t\tconst url = `https://player.vimeo.com/video/${media.dataset.vimeo}?title=0&byline=0&portrait=0&api=1`;\n\t\tlet sourceRegex = /src='(.*?)'/;\n\t\tlet imgsrc = media.innerHTML.match(sourceRegex);\n\t\tlet imgElement = new Image();\n\t\timgElement.src = imgsrc[1];\n\t\timgElement.setAttribute('alt', 'Thumbnail van de video');\n\n\n\t\tconst embed = this.embedIframe(url, \"vimeo\", media.dataset.vimeo, imgElement.outerHTML);\n\n\t\tlet tempDiv = document.createElement('div');\n\t\ttempDiv.innerHTML = embed;\n\n\t\tmedia.before(tempDiv.firstElementChild);\n\t\tmedia.remove();\n\t}\n\n}","export default class PolyfillController {\n constructor() {\n this.polyfills = [];\n this.loaded = [];\n }\n\n init() {\n this.loadPolyfills();\n\n return Promise.all(this.polyfills);\n }\n\n loadPolyfills() {\n this.forEach();\n this.intersectionObserver();\n this.fetch();\n this.abortController();\n this.proxy();\n this.closest();\n this.before();\n this.remove();\n this.entries();\n this.customEvent();\n }\n\n forEach() {\n if (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n this.loaded.push('forEach');\n }\n }\n\n intersectionObserver() {\n if (!('IntersectionObserver' in window)) {\n this.polyfills.push(import( /* webpackChunkName: \"polyfills/intersectionobserver\" */ 'intersection-observer'));\n this.loaded.push('intersectionObserver');\n }\n }\n\n fetch() {\n if (!window.fetch) {\n this.polyfills.push(import( /* webpackChunkName: \"polyfills/fetch\" */ 'whatwg-fetch'));\n this.loaded.push('fetch');\n }\n }\n\n abortController() {\n if (typeof AbortController == 'undefined') {\n this.polyfills.push(import( /* webpackChunkName: \"polyfills/abortController\" */ 'abortcontroller-polyfill/dist/polyfill-patch-fetch'));\n this.loaded.push('abortController');\n }\n }\n \n proxy() {\n if (!('Proxy' in window)) {\n this.polyfills.push(import( /* webpackChunkName: \"polyfills/proxy\" */ 'es6-proxy-polyfill'));\n this.loaded.push('proxy');\n }\n }\n\n closest() {\n if (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n this.loaded.push('matches');\n }\n\n if (!Element.prototype.closest) {\n Element.prototype.closest = function (s) {\n var el = this;\n do {\n if (el.matches(s)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n this.loaded.push('closest');\n }\n }\n\n before() {\n (arr => {\n arr.forEach(function (item) {\n if (item.hasOwnProperty('before')) {\n return;\n }\n Object.defineProperty(item, 'before', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function before() {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment();\n\n argArr.forEach(function (argItem) {\n var isNode = argItem instanceof Node;\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\n });\n\n this.parentNode.insertBefore(docFrag, this);\n }\n });\n });\n this.loaded.push('before');\n })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);\n }\n\n remove() {\n (arr => {\n arr.forEach(function (item) {\n if (item.hasOwnProperty('remove')) {\n return;\n }\n Object.defineProperty(item, 'remove', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function remove() {\n if (this.parentNode === null) {\n return;\n }\n this.parentNode.removeChild(this);\n }\n });\n });\n this.loaded.push('remove');\n })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);\n }\n\n entries() {\n if (!Object.entries) {\n Object.entries = function( obj ){\n var ownProps = Object.keys( obj ),\n i = ownProps.length,\n resArray = new Array(i); // preallocate the Array\n while (i--)\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n \n return resArray;\n };\n this.loaded.push('entries');\n }\n }\n\n customEvent() {\n if (typeof (Event) === 'object') {\n function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n let evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n window.Event = CustomEvent;\n this.loaded.push('Custom Event');\n }\n }\n}\n","/**\n * Class representing an HTML element\n */\n export default class CustomHTMLElement {\n /**\n * Creates the CustomHTMLElement\n * @param {object} defaultProperties - List of default element properties\n */\n\tconstructor(defaultProperties = {}) {\n\t\tif (window.HTMLID === undefined) {\n\t\t\twindow.HTMLID = 0;\n\t\t}\n\t\twindow.HTMLID++;\n\t\tthis._id = '_' + window.HTMLID;\n\t\tthis._template = null;\n\t\tthis._html = null;\n\t\tthis._object = null;\n\n\t\tthis._properties = defaultProperties;\n\t}\n\n /**\n * Either returns a generated HTMLElement or creates a new one\n * @param {boolean} [forceCreate=false] - Forces a new HTMLElement to be created\n * @returns {HTMLElement}\n */\n\t getOrCreate(forceCreate = false) {\n\t\tif (this._template === null) {\n\t\t\tthrow new Error('No template was set');\n\t\t}\n\n\t\tif (this._object !== null && !forceCreate) {\n\t\t\treturn this._object;\n\t\t} else {\n\t\t\tlet containerElement = document.createElement('div');\n\t\t\tthis._html = this._template(this._properties);\n\t\t\tcontainerElement.innerHTML = this._html;\n\t\t\tthis._object = containerElement.firstChild;\n\n\t\t\treturn this._object;\n\t\t}\n\t}\n\n\tgenerate(forceRenew = false) {\n\t\treturn this.getOrCreate(forceRenew);\n\t}\n\n /**\n * Set properties for the element\n * @param {object} properties - List of properties that can be set on creating a new element\n */\n\tsetProperties(properties) {\n\t\tif (Object.keys(properties).length > 0) {\n\t\t\tObject.keys(properties).forEach(key => {\n\t\t\t\tif ((typeof this[`set${key.charAt(0).toUpperCase()}${key.substring(1)}`]) === 'function') {\n\t\t\t\t\tthis[`set${key.charAt(0).toUpperCase()}${key.substring(1)}`](properties[key]);\n\t\t\t\t} else {\n\t\t\t\t\tthis._properties[key] = properties[key];\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n /**\n * Sets and returns one of the element's properties\n * @param {string} key - The property's name\n * @param {*} value - The property's value\n * @returns {*}\n */\n\t_property(key, value) {\n\t\tif (value === undefined) {\n\t\t\treturn this._properties[key];\n\t\t} else {\n\t\t\tthis._properties[key] = value;\n\t\t\treturn this._properties[key];\n\t\t}\n\t}\n\n\t/**\n\t * Creates getters and setters for all available properties\n\t */\n\t _createPropertyMethods() {\n\t\tObject.keys(this._properties).forEach(propertyKey => {\n\t\t\tlet setKeyMethodName = `set${propertyKey.charAt(0).toUpperCase()}${propertyKey.substring(1)}`;\n\n\t\t\t// Creates the set{Keyname} property. This one should do some basic type verification to make sure a string stays a string etc.\n\t\t\tObject.defineProperty(this, setKeyMethodName, {\n\t\t\t\tvalue: (givenValue = this._property(propertyKey)) => {\n\t\t\t\t\treturn this._property(propertyKey, this._ensureType(givenValue, typeof this._property(propertyKey)));\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t});\n\n\t\t\t// Normal getter and setter. Setter passes the value to the set{Keyname} method\n\t\t\tObject.defineProperty(this, propertyKey, {\n\t\t\t\tget: () => this._property(propertyKey),\n\t\t\t\tset: (givenValue = this._property(propertyKey)) => {\n\t\t\t\t\treturn this[setKeyMethodName](givenValue);\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t})\n\t\t});\n\t}\n\n\t/**\n\t * Ensures the property's primitive type stays the same when updating it. Strings stay strings, numbers stay numbers etc.\n\t * @param {*} value The value as received from the setter\n\t * @param {String} type The primitive the value's supposed to be\n\t * @returns {*} The value, possibly converted to the original's primitve\n\t */\n\t_ensureType(value, type) {\n\t\tswitch (type) {\n\t\t\tcase 'string':\n\t\t\t\treturn (value ? `${value}` : '');\n\t\t\tcase 'number':\n\t\t\t\treturn (isNaN(parseInt(value)) ? 0 : parseInt(value));\n\t\t\tcase 'boolean':\n\t\t\t\treturn (value.toString().toLowerCase() == 'true');\n\t\t\tdefault:\n\t\t\t\treturn value;\n\t\t}\n\t}\n}","import CustomHTMLElement from './customHTMLElement';\n\nexport default class SearchSuggestion extends CustomHTMLElement {\n /**\n * @param {Object} [properties] \n * @param {String} [properties.url]\n * @param {String} [properties.name]\n */\n\tconstructor(properties = {}) {\n\t\tsuper({\n url: '',\n name: '',\n\t\t});\n\t\tthis.setProperties(properties);\n this._createPropertyMethods();\n\n\t\tthis._template = require('./templates/searchSuggestion.handlebars');\n }\n}","var Handlebars = require(\"../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n \\n \"\n + alias2(alias1((depth0 != null ? lookupProperty(depth0,\"name\") : depth0), depth0))\n + \"\\n \\n
  • \\n\";\n},\"useData\":true});","/**\n * @preserve Slimmage 0.4.1, use with ImageResizer. MIT/Apache2 dual licensed by Imazen \n */\n\n/* We often use string instead of dot notation to keep \n Closure Compiler's advanced mode from breaking APIs */\n/*jshint sub:true*/\n\n(function (w) { //w==window\n\t// Enable strict mode\n\t\"use strict\";\n\n\tvar s = window['slimmage'] || {};\n\twindow['slimmage'] = s;\n\tif (s['verbose'] === undefined) { s['verbose'] = false; }\n\tif (s['tryWebP'] === undefined) { s['tryWebP'] = false; }\n\tif (s['maxWidth'] === undefined) { s['maxWidth'] = 2048; }\n\tif (s['widthStep'] === undefined) { s['widthStep'] = 160; }\n\tif (s['jpegQuality'] === undefined) { s['jpegQuality'] = 90; }\n\tif (s['jpegRetinaQuality'] === undefined) { s['jpegRetinaQuality'] = 80; }\n\tif (s['webpTimeout'] === undefined) { s['webpTimeout'] = 0; }\n\ts['changed'] = [];\n\n\tvar log = function () { if (s['verbose'] && w.console && w.console.log) try { w.console.log.apply(w.console, arguments); } catch (e) { } };\n\ts.beginWebPTest = function () {\n\t\tif (!s['tryWebP'] || s._testingWebP) return;\n\t\ts._testingWebP = true;\n\n\t\tvar WebP = new Image();\n\t\tWebP.onload = WebP.onerror = function () {\n\t\t\ts['webp'] = (WebP.height == 2);\n\t\t\ts._testingWebP = false;\n\t\t\tif (s.cr) { s.cr(); }\n\t\t};\n\t\tWebP.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';\n\t};\n\t//test for webp support ASAP\n\ts.beginWebPTest();\n\n\ts.setAttr = function (elem, name, value) {\n\t\tname = name.toLowerCase();\n\t\tif (name == \"class\") { elem.className = value; }\n\t\telse if (name == \"tabindex\") { elem.tabIndex = value; }\n\t\telse if (name == \"usemap\") { elem.useMap = value; }\n\t\telse {\n\t\t\telem.setAttribute(name, value);\n\t\t}\n\n\t};\n\ts['setAttribute'] = s.setAttr;\n\n\ts.is_blank = function (v) { return v === \"none\" || v === null || v === undefined || v === \"\" || v === false; };\n\ts['getCssValue'] = function (target, hyphenProp) {\n\t\t//See http://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser\n\n\t\tvar val = typeof (window.getComputedStyle) != \"undefined\" && window.getComputedStyle(target, null).getPropertyValue(hyphenProp);\n\n\t\t// Some browsers (IE8, Firefox 28) read \"none\" when not set. Others (IE6) respond with undefined. A value of\n\t\t// \"none\" is invalid and would cause an exception or be interpreted as \n\t\tif (!s.is_blank(val)) {\n\t\t\treturn val;\n\t\t}\n\n\t\tif (target.currentStyle) {\n\t\t\tval = target.currentStyle[hyphenProp.replace(/([a-z])\\-([a-z])/, function (a, b, c) { return b + c.toUpperCase(); })] || target.currentStyle[hyphenProp];\n\t\t}\n\n\t\treturn s.is_blank(val) ? null : val;\n\t};\n\n\ts['getCssPixels'] = function (target, hyphenProp) {\n\t\tvar val = s['getCssValue'](target, hyphenProp);\n\n\t\tif (val === null || val === \"0\" || val === 0) return val;\n\n\t\t//We can return pixels directly, but not other units\n\t\tif (val.slice(-2) == \"px\") return parseFloat(val.slice(0, -2));\n\n\t\t//Create a temporary sibling div to resolve units into pixels.\n\t\tvar temp = document.createElement(\"div\");\n\t\ttemp.style.overflow = temp.style.visibility = \"hidden\";\n\t\ttemp.style.cssFloat = \"none\";\n\t\ttarget.parentNode.appendChild(temp);\n\t\ttemp.style.width = val;\n\t\tvar pixels = temp.offsetWidth;\n\t\ttarget.parentNode.removeChild(temp);\n\t\treturn pixels;\n\t};\n\n\ts.nodesToArray = function (nodeList) {\n\t\tvar array = [];\n\t\t// iterate backwards ensuring that length is an UInt32\n\t\tfor (var i = nodeList.length >>> 0; i--;) {\n\t\t\tarray[i] = nodeList[i];\n\t\t}\n\t\treturn array;\n\t};\n\n\t/*\n\t No URI decoding/encoding is perfomed on keys or values. Caller's responsibility.\n\n\t vistor and mutator are applied to string.replace -> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter\n\t params:\n\t 1. entire pair, incl. (optional) & and = \n\t 2. '&' (if present)\n\t 3. key\n\t 4. value\n\n\t mutator's result is honored. Must return param 1, or provide valid replacement.\n\t \n\t injector(query) is responsible for adding additional pairs if required. \n\t It must not produce a malformatted query.\n\t*/\n\ts['mutateUrl'] = function (url, visitor, mutator, injector) {\n\t\tvar m = /^([^?#]*)?(\\?([^#]*))?(#.*)?/.exec(url);\n\t\tvar q = m[3] || '';\n\n\t\tvar qr = /(^&*|&+)([^&=]*)=?([^&]*)/g;\n\t\tq.replace(qr, visitor); //read-only, to gather data\n\n\t\tvar newq = '?' + q.replace(qr, mutator).replace(/(?:^\\?*&*)|(?:[?&]+$)/g, \"\").replace(/&&+/g, \"&\");\n\n\t\treturn (m[1] || '') + injector(newq) + (m[4] || '');\n\t};\n\n\t//Expects virtual, not device pixel width\n\ts['getImageInfo'] = function (elementWidth, previousSrc, previousPixelWidth, previousElement) {\n\t\tvar data = {\n\t\t\t'webp': s['webp'],\n\t\t\t'width': elementWidth,\n\t\t\t'dpr': window.devicePixelRatio || 1,\n\t\t\t'src': previousSrc,\n\t\t\t'element': previousElement\n\t\t};\n\t\t//Determine quality percentage\n\t\tvar high_density = s['webp'] ? 65 : s['jpegRetinaQuality'];\n\t\tvar low_density = s['webp'] ? 78 : s['jpegQuality'];\n\t\tdata['quality'] = data['dpr'] > 1.49 ? high_density : low_density;\n\n\t\t//Calculate raw pixels using devicePixelRatio. Limit size to maxWidth.\n\t\tvar idealWidth = elementWidth * data['dpr'];\n\t\t//Minimize variants for caching improvements; round up to nearest multiple of widthStep\n\t\tdata['requestedWidth'] = Math.min(s['maxWidth'], //Limit size to maxWidth\n\t\t\tMath.round( //Round in case widthStep isn't an integer\n\t\t\t\tMath.ceil(idealWidth / s['widthStep']) * s['widthStep'] //Divide, ceiling, then multiply\n\t\t\t)\n\t\t);\n\n\n\t\tvar a = s['adjustImageParameters'];\n\t\tif (a && typeof (a) === \"function\") {\n\t\t\ta(data);\n\t\t}\n\t\tvar finalWidth = data['requestedWidth'];\n\n\t\tif (finalWidth > previousPixelWidth) {\n\t\t\t//Never request a smaller image once the larger one has already started loading\n\t\t\tvar u = {}; //For storing raw pairs\n\t\t\tvar c = {}; //For storing relevant parsed info\n\t\t\tvar newSrc = s['mutateUrl'](\n\t\t\t\tpreviousSrc,\n\t\t\t\t//Visitor\n\t\t\t\tfunction (_, d, k, v) {\n\t\t\t\t\tu[k.toLowerCase()] = v;\n\t\t\t\t},\n\t\t\t\t//Mutator\n\t\t\t\tfunction (p, d, k, v) {\n\n\t\t\t\t\t//Parse existing values so we can make educated calculations for width/height\n\t\t\t\t\tif (c.zoom === undefined) {\n\t\t\t\t\t\tc.zoom = parseFloat(u.zoom || 1);\n\t\t\t\t\t\tif (isNaN(c.zoom)) { c.zoom = 1; }\n\t\t\t\t\t\tc.w = (finalWidth / c.zoom).toFixed();\n\t\t\t\t\t}\n\t\t\t\t\tif (c.ratio === undefined) {\n\t\t\t\t\t\tvar w = parseFloat(u.width || u.w || u.maxwidth);\n\t\t\t\t\t\tvar h = parseFloat(u.height || u.h || u.maxheight);\n\t\t\t\t\t\tif (!isNaN(w) && !isNaN(h) && w > 0 && h > 0) {\n\t\t\t\t\t\t\tc.ratio = w / h;\n\t\t\t\t\t\t\tc.h = (((finalWidth / c.zoom) / w) * h).toFixed();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tc.ratio = 'noclue';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (k.match(/^format$/i) && data['webp']) { return d + \"format=webp\"; }\n\t\t\t\t\tif (k.match(/^quality/i)) { return d + \"quality=\" + data['quality']; }\n\n\t\t\t\t\tif (k.match(/^(w|width|maxwidth)$/i)) { return d + k + \"=\" + c.w; }\n\t\t\t\t\tif (k.match(/^(h|height|maxheight)$/i)) { return d + k + \"=\" + c.h; }\n\n\t\t\t\t\treturn p;\n\t\t\t\t},\n\t\t\t\t//Injector\n\t\t\t\tfunction (q) { return q; });\n\n\t\t\treturn { 'src': newSrc, 'data-pixel-width': finalWidth };\n\t\t}\n\t\treturn null;\n\t};\n\ts['adjustImageSrc'] = function (img, previousSrc) {\n\t\tvar cssMaxWidth = s['getCssPixels'](img, 'max-width');\n\t\tvar result = s['getImageInfo'](cssMaxWidth,\n\t\t\tpreviousSrc,\n\t\t\timg.getAttribute('data-pixel-width') | 0,\n\t\t\timg);\n\n\t\tif (result) {\n\t\t\timg.src = result['src'];\n\t\t\ts.setAttr(img, 'data-pixel-width', result['data-pixel-width']);\n\t\t\tif (s['enforceCss']) {\n\t\t\t\tif (cssMaxWidth < result['data-pixel-width']) {\n\t\t\t\t\timg.style.width = s['getCssValue'](img, 'max-width');\n\t\t\t\t\ts.setAttr(img, 'data-width-enforced', true);\n\t\t\t\t} else {\n\t\t\t\t\timg.style.width = 'auto';\n\t\t\t\t}\n\t\t\t}\n\t\t\ts['changed'].push(img);\n\t\t\tlog(\"Slimming: updating \" + result['src']);\n\t\t} else if (s['enforceCss'] && img.getAttribute('data-width-enforced')) {\n\t\t\tvar imageWidth = parseFloat(img.getAttribute('data-pixel-width'));\n\t\t\tif (!isNaN(imageWidth) && cssMaxWidth >= imageWidth) {\n\t\t\t\timg.style.width = 'auto';\n\t\t\t\timg.removeAttribute('data-width-enforced');\n\t\t\t}\n\t\t}\n\n\t};\n\ts.cr = function (delay) {\n\t\tvar i, il, j, jl, k, kl;\n\n\t\tif (s.timeoutid > 0) w.clearTimeout(s.timeoutid);\n\t\ts.timeoutid = 0;\n\n\t\tif (s._testingWebP && s['webpTimeout'] > 0 && !s.webp_waiting) {\n\t\t\ts.webp_waiting = true;\n\t\t\tdelay = s['webpTimeout'];\n\t\t}\n\t\tif (delay && delay > 0) {\n\t\t\ts.timeoutid = w.setTimeout(s.cr, delay);\n\t\t\treturn;\n\t\t}\n\t\tvar stopwatch = new Date().getTime();\n\n\t\tvar newImages = 0;\n\t\t//1. Copy images out of noscript tags, but hide 'src' attribute as data-src\n\t\tvar n = s.nodesToArray(w.document.getElementsByTagName(\"noscript\"));\n\t\tfor (i = 0, il = n.length; i < il; i++) {\n\t\t\tvar ns = n[i];\n\t\t\tif (ns.getAttribute(\"data-slimmage\") !== null) {\n\n\t\t\t\tvar div = w.document.createElement('div');\n\t\t\t\tvar contents = (ns.textContent || ns.innerHTML);\n\t\t\t\tif (!contents || contents.replace(/[\\s\\t\\r\\n]+/, \"\").length === 0) {\n\t\t\t\t\t//IE doesn't let us touch noscript, so we have to use attributes.\n\t\t\t\t\tvar img = new Image();\n\t\t\t\t\tfor (var ai = 0; ai < ns.attributes.length; ai++) {\n\t\t\t\t\t\tvar a = ns.attributes[ai];\n\t\t\t\t\t\tif (a && a.specified && a.name.indexOf(\"data-img-\") === 0) {\n\t\t\t\t\t\t\ts.setAttr(img, a.name.slice(9 - a.name.length), a.value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdiv.appendChild(img);\n\t\t\t\t} else {\n\t\t\t\t\t//noscript isn't part of DOM, so we have to recreate it, unescaping html, src->data-src \n\t\t\t\t\tdiv.innerHTML = contents.replace(/\\s+src\\s*=\\s*(['\"])/i, \" data-src=$1\").\n\t\t\t\t\t\treplace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');\n\t\t\t\t}\n\t\t\t\t//Clear source values before we add it back to the dom, ensure data-slimmage is set.\n\t\t\t\tvar childImages = div.getElementsByTagName(\"img\");\n\t\t\t\tfor (j = 0, jl = childImages.length; j < jl; j++) {\n\t\t\t\t\tvar ci = childImages[j];\n\t\t\t\t\tif (ci.src !== null && ci.src.length > 0) {\n\t\t\t\t\t\ts.setAttr(ci, \"data-src\", ci.src);\n\t\t\t\t\t\tci.src = \"\";\n\t\t\t\t\t}\n\t\t\t\t\ts.setAttr(ci, \"data-slimmage\", true);\n\t\t\t\t\tns.parentNode.insertBefore(ci, ns);\n\t\t\t\t\tnewImages++;\n\t\t\t\t}\n\t\t\t\t//2. Remove old noscript tags\n\t\t\t\tns.parentNode.removeChild(ns);\n\t\t\t}\n\t\t}\n\n\t\t//3. Let plugins inject custom behavior\n\t\tif ('function' === typeof s['beforeAdjustSrc']) {\n\t\t\ts['beforeAdjustSrc']();\n\t\t}\n\n\t\t//4. Find images with data-slimmage and run adjustImageSrc.\n\t\tvar totalImages = 0;\n\t\tvar images = s.nodesToArray(w.document.getElementsByTagName(\"img\"));\n\t\tfor (k = 0, kl = images.length; k < kl; k++) {\n\t\t\tif (images[k].getAttribute(\"data-slimmage\") !== null) {\n\t\t\t\tvar previousSrc = images[k].getAttribute(\"data-src\") || images[k].src;\n\t\t\t\ts['adjustImageSrc'](images[k], previousSrc);\n\t\t\t\ttotalImages++;\n\t\t\t}\n\t\t}\n\n\t\tdocument.querySelectorAll('.imageHolderUrh [data-slimmage=\"true\"]').forEach(image => {\n\t\t\tlog(\"updating ratio\");\n\t\t\tif (image.getAttribute('src') != null) {\n\t\t\t\tlet containerWidth = image.closest('.imageHolderUrh').clientWidth;\n\t\t\t\tlet steppedWidth = Math.min(s['maxWidth'],\n\t\t\t\t\tMath.round(\n\t\t\t\t\t\tMath.ceil(containerWidth / s['widthStep']) * s['widthStep']\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t// let increase = (steppedWidth - containerWidth) / containerWidth * 1 + 1;\n\t\t\t\tlet containerHeight = image.closest('.imageHolderUrh').clientHeight;\n\t\t\t\t// let steppedHeight = Math.round(containerHeight * increase);\n\t\t\t\tlet newSrc = image.getAttribute('src').replace(/width=([^&]*)/, `width=${steppedWidth}`);\n\t\t\t\tnewSrc = newSrc.replace(/height=([^&]*)/, `height=${containerHeight}`);\n\n\t\t\t\timage.setAttribute('src', newSrc);\n\t\t\t\timage.setAttribute('data-src', newSrc);\n\t\t\t}\n\t\t});\n\n\t\t/* $('.imageHolderUrh [data-slimmage=\"true\"]').each(function () {\n\t\t\tconsole.log(\"updating ratio\");\n\t\t\tif ($(this).attr('src') != null) {\n\t\t\t\tvar newSrc = $(this).attr('src').replace(/width=([^&]*)/, \"width=\" + $(this).parents('.imageHolderUrh').width());\n\t\t\t\tnewSrc = newSrc.replace(/height=([^&]*)/, \"height=\" + $(this).parents('.imageHolderUrh').height());\n\n\t\t\t\t$(this).attr('src', newSrc).attr('data-src', newSrc);\n\t\t\t}\n\t\t}); */\n\n\t\tvar changed = s['changed'].slice();\n\t\ts['changed'].length = 0;\n\n\t\t//5. Callback when ready\n\t\tif ((changed.length > 0 || !s.readyCalled) && 'function' === typeof s['readyCallback']) {\n\t\t\ts['readyCallback'](changed);\n\t\t\ts.readyCalled = true;\n\t\t}\n\n\t\tlog(\"Slimmage: restored \" + newImages + \" images from noscript tags, checked \" + totalImages + \" images, changed \" + changed.length + \". \" + (new Date().getTime() - stopwatch) + \"ms\");\n\t};\n\n\ts['checkResponsiveImages'] = s.cr;\n\t// Run on resize and domready (w.load as a fallback)\n\tif (w.addEventListener) {\n\t\tw.addEventListener(\"resize\", function () { s.cr(500); }, false);\n\t\tw.addEventListener(\"DOMContentLoaded\", function () {\n\t\t\ts.cr();\n\t\t\t// Run once only\n\t\t\tw.removeEventListener(\"load\", s.cr, false);\n\t\t}, false);\n\t\tw.addEventListener(\"load\", s.cr, false);\n\t} else if (w.attachEvent) {\n\t\tw.attachEvent(\"onload\", s.cr);\n\t\tw.attachEvent(\"onresize\", function () { s.cr(500); });\n\t}\n\n}(window));\n","window.slimmage = {\n verbose: false,\n tryWebP: false,\n maxWidth: 2048,\n widthStep: 160,\n jpegQuality: 90,\n jpegRetinaQuality: 80,\n webpTimeout: 20\n};","module.exports = $;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"./\" + chunkId + \".bundle.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"something_big_project:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/scripts/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"index\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksomething_big_project\"] = self[\"webpackChunksomething_big_project\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import './libraries/slimmageSettings';\nimport './libraries/slimmage';\n\n// App\nimport App from './app';\nimport PolyfillController from './controllers/polyfill';\n\n// Controllers\nimport HeaderController from './controllers/header';\nimport MediaController from './controllers/media';\nimport AVGController from './controllers/avg';\n\n//require('./header');\n\n\n(async () => {\n document.querySelector('html').classList.remove('no-js');\n\n const polyfills = new PolyfillController();\n await polyfills.init();\n\n try {\n const app = new App();\n app.resizeThrottle = 10;\n app.scrollThrottle = 100;\n window.app = app;\n \n app.polyfillController = polyfills;\n \n app.AVGController = new AVGController();\n app.headerController = new HeaderController();\n app.mediaController = new MediaController();\n\n // Modules\n const loadModules = () => {\n if (document.querySelector('.shareContainer')) {\n import( /* webpackChunkName: \"modules/share\" */ './controllers/share/controller').then(e => {\n app.shareController = new e.default();\n });\n }\n\n if (document.querySelector('.swiper-container')) {\n import( /* webpackChunkName: \"modules/slider\" */ './controllers/slider').then(e => {\n app.sliderController = new e.default();\n });\n }\n\n if (document.querySelector('[data-gallery]')) {\n import( /* webpackChunkName: \"modules/gallery\" */ './controllers/gallery').then(e => {\n app.galleryController = new e.default();\n });\n }\n\n if (app.getParameter('debugger')) {\n import( /* webpackChunkName: \"modules/console\" */ './controllers/debugger').then(e => {\n app.debuggerController = new e.default();\n });\n }\n };\n\n loadModules();\n\n await app.init();\n } catch(e) {\n console.error(`Something went wrong initializing the app`);\n throw e;\n };\n\n console.log(`App initialized`);\n document.documentElement.classList.remove('preventAnimations');\n\n})();"],"names":["App","_classCallCheck","_resizeFunctionsArr","_resizeFunctions","_resizeFunctionsCounter","_resizeTimeout","resizeThrottle","_scrollFunctionsArr","_scrollFunctions","_scrollFunctionsCounter","_scrollTimeout","scrollThrottle","_resizeAnimationPreventerTimeout","newPageWarning","selectricCBs","breakpoints","xs","gutter","size","sm","md","ml","lg","xl","animationDuration","_createClass","key","value","init","detectBrowser","setEventListeners","fullHeightListener","resizeAnimationPreventer","initCSSBreakpoints","addNewWindowTitles","addNoOpener","addAnchorEnhancement","initSelectric","initTippy","initCopy","initScrollTo","initScrollToTop","initPrintListener","initLabelClick","window","addEventListener","resize","bind","passive","document","scroll","querySelectorAll","forEach","label","e","toLowerCase","substr","click","Array","from","filter","a","hasAttribute","setAttribute","_this","runFunctions","i","length","setTimeout","registerResizeEvent","func","_this2","Object","keys","push","unregisterResizeEvent","_this3","_this4","registerScrollEvent","_this5","unregisterScrollEvent","_this6","_this7","resizeTimer","windowWidth","innerWidth","documentElement","classList","add","clearTimeout","remove","fullHeight","style","setProperty","concat","innerHeight","isOpera","opr","addons","opera","navigator","userAgent","indexOf","isFirefox","InstallTrigger","isIphone","match","isIpad","isSafari","isIE","documentMode","isEdge","StyleMedia","isChrome","test","vendor","isBlink","CSS","_this8","getComputedStyle","documentStyling","breakpoint","getPropertyValue","parseInt","NaN","text","querySelector","dataset","newWindowText","getAttribute","trim","replace","href","hostname","location","parentElement","hash","scrollTo","_this9","el","preventDefault","target","scrollPosition","elementCoords","top","behavior","selector","random","min","max","Math","floor","randomString","result","characters","charactersLength","charAt","box","getBoundingClientRect","body","docEl","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","left","round","_this10","scrollToTopContainer","button","blur","_this11","then","select","$","selectric","arrowButtonMarkup","wrap","cb","console","error","tippy","source","tippySource","allowHTML","content","innerHTML","interactive","_this12","copyContent","copy","input","createElement","type","position","height","overflow","appendChild","execCommand","parentNode","removeChild","toast","_this13","printTexts","printElements","printParent","span","print","printElement","getCurrentBreakpoint","_this14","width","reverse","currentBreakpoint","message","arguments","undefined","ToastController","log","getParameter","name","tmp","items","search","split","index","decodeURIComponent","insertTesters","insertBreakpointIndicator","insertColumnTester","tester","cols","blocks","classes","newPage","_this15","slimmage","cr","incompleteControllers","hasOwnProperty","obj","warn","join","reset","default","Cookies","AVGController","avgPermissionsCookie","getAvgPermissionsCookie","cookieBar","topBarContainer","getElementById","marginTop","offsetHeight","dataLayer","AcceptedAnalyticsCookies","AcceptedTrackingCookies","checked","LoadAVGScripts","CheckOpen","SetupButtonClicks","get","Functional","Analytics","Tracking","getCookieName","cookieButtonClass","Error","_document$querySelect","_document$querySelect2","contains","cookieName","JSON","parse","SetOrUpdatePermissionsCookie","functional","analytics","tracking","set","stringify","expires","sameSite","secure","AgreeCookies","noscript","LoadGoogleTagManager","gtmTag","gtmcode","w","d","s","l","Date","getTime","event","f","getElementsByTagName","j","dl","async","src","insertBefore","SavePreferences","saveConfirmation","LoadConfigurationForm","ConfigPromise","fetch","response","html","parser","DOMParser","DOM","parseFromString","Promise","resolve","tempImg","Image","onload","onerror","OpenConfigurationModal","form","modal","id","closeConfigurationModal","closePopup","HeaderSearchController","HeaderController","headerElement","menuButton","previousScroll","scrollCounter","threshold","headerSearchController","_document","_this$headerElement","_this$menuButton","app","toggleMenu","toggle","_this$headerElement2","clientHeight","show","hide","_this$headerElement3","_this$headerElement4","SearchSuggestion","delegate","Mark","formInput","searchResultsContainer","apiEndpoint","abortController","waiterTime","changeWaiter","minInput","originalSearchSuggestions","originalSearchTitle","mark","AbortController","li","cloneNode","showSearchResults","hideSearchResults","focus","handleInputChange","submit","resetResults","focusButton","clearButton","removeAttribute","arrowUp","delegateTarget","arrowDown","nextElementSibling","previousElementSibling","query","updateResults","clickable","abort","fetchResults","data","insertSearchSuggestions","suggestions","Suggestions","item","suggestion","Title","url","Url","generate","TotalResults","options","signal","encodeURIComponent","json","MediaController","autoinit","youtube","vimeo","media","mediatype","tag","firstScriptTag","onYouTubeIframeAPIReady","YouTubeAPILoaded","module","Player","iframe","player","currentTarget","closest","videoPoster","play","includes","YT","events","onReady","playVideo","embedIframe","imgtag","protocol","sourceRegex","imgsrc","imgElement","embed","outerHTML","tempDiv","before","firstElementChild","PolyfillController","polyfills","loaded","loadPolyfills","all","intersectionObserver","proxy","entries","customEvent","NodeList","prototype","Element","matches","msMatchesSelector","webkitMatchesSelector","nodeType","arr","defineProperty","configurable","enumerable","writable","argArr","slice","call","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","String","CharacterData","DocumentType","ownProps","resArray","Event","_typeof","CustomEvent","params","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","CustomHTMLElement","defaultProperties","HTMLID","_id","_template","_html","_object","_properties","getOrCreate","forceCreate","containerElement","firstChild","forceRenew","setProperties","properties","toUpperCase","substring","_property","_createPropertyMethods","propertyKey","setKeyMethodName","givenValue","_ensureType","isNaN","toString","_CustomHTMLElement","_callSuper","require","_inherits","apply","beginWebPTest","_testingWebP","WebP","setAttr","elem","className","tabIndex","useMap","is_blank","v","hyphenProp","val","currentStyle","b","c","parseFloat","temp","visibility","cssFloat","pixels","offsetWidth","nodesToArray","nodeList","array","visitor","mutator","injector","m","exec","q","qr","newq","elementWidth","previousSrc","previousPixelWidth","previousElement","devicePixelRatio","high_density","low_density","idealWidth","ceil","finalWidth","u","newSrc","_","k","p","zoom","toFixed","ratio","maxwidth","h","maxheight","img","cssMaxWidth","imageWidth","delay","il","jl","kl","timeoutid","webp_waiting","stopwatch","newImages","n","ns","div","contents","textContent","ai","attributes","specified","childImages","ci","totalImages","images","image","containerWidth","clientWidth","steppedWidth","containerHeight","changed","readyCalled","removeEventListener","attachEvent","verbose","tryWebP","maxWidth","widthStep","jpegQuality","jpegRetinaQuality","webpTimeout","_asyncToGenerator","_regeneratorRuntime","_callee","loadModules","_callee$","_context","prev","next","polyfillController","headerController","mediaController","shareController","sliderController","galleryController","debuggerController","t0","stop"],"sourceRoot":""}