{"version":3,"file":"vendor.js","mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,oBAAoB,OAAO,4CAA4C,4BAA4B,qBAAqB,OAAO,uBAAuB,4BAA4B,oBAAoB;AACzc;AACA,iCAAiC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,+DAA+D,yDAAyD,qEAAqE,6DAA6D,wBAAwB;AACjjB;AACA,kDAAkD,aAAa,yFAAyF;AACxJ;AACA,2CAA2C,+DAA+D,uGAAuG,yEAAyE,eAAe,0EAA0E,GAAG;AACtX;AACA,kDAAkD,0CAA0C;AAC5F;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT,OAAO;AACP,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA,GAAG;AACH;AACA;AACA,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,mCAAE;AACf;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AAAA,kGAAC;AACN;AACA;AACA;AACA;AACA,OAAO,EAUA;AACP,CAAC,SAAS,qBAAM,gBAAgB,qBAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA,+BAA+B;AAC/B;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oEAAoE;AACpE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP,KAAK;AACL;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,mCAAmC;AACnC,QAAQ;AACR;AACA;AACA;AACA,uCAAuC;AACvC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,6BAA6B;AAC1C,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA,EAAE;AACF;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI,IAA0C;AAC9C,EAAE,iCAAY,EAAE,mCAAE;AAClB;AACA,GAAG;AAAA,kGAAC;AACJ;AACA;AACA,EAAE,KAAK,EAKN;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,6BAA6B;AAC7B;AACA,GAAG;AACH,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,uFAAuF;AACvF,EAAE;AACF,kFAAkF,qBAAM,YAAY,qBAAM,GAAG,qBAAM;AACnH,EAAE,yCAAyC;AAC3C;AACA,sCAAsC;AACtC,EAAE,2BAA2B;AAC7B;AACA;AACA;AACA,uBAAuB,uCAAuC,8EAA8E,wFAAwF;AACpO;AACA,OAAO,EAAE;AACT,EAAE;AACF,YAAY;AACZ,4BAA4B,0BAA0B,IAAI;AAC1D,GAAG;AACH;AACA;AACA,+BAA+B,MAAM,UAAU;AAC/C;AACA,IAAI;AACJ,EAAE,oCAAoC;AACtC,+BAA+B,iCAAiC;AAChE,YAAY;AACZ;AACA,oBAAoB,SAAS;AAC7B,OAAO;AACP,iBAAiB;AACjB,QAAQ;AACR,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA,uBAAuB,iBAAiB,YAAY,kBAAkB;AACtE,mBAAmB,oBAAoB,EAAE;AACzC,KAAK,oBAAoB,SAAS,SAAS,sDAAsD,0CAA0C;AAC3I;AACA,EAAE;AACF;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC,qBAAqB;AACtB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,MAAM;AACN,GAAG;AACH,6FAA6F,OAAO;AACpG;AACA,qBAAqB;AACrB;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,gCAAgC;AAChC,GAAG;AACH;AACA;AACA,KAAK;AACL,GAAG;AACH,cAAc;AACd,UAAU;AACV;AACA,KAAK;AACL,GAAG;AACH;AACA,UAAU;AACV;AACA,KAAK;AACL,GAAG;AACH;AACA,UAAU;AACV;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE;AACtD,2BAA2B;AAC3B,+BAA+B;AAC/B,GAAG;AACH;AACA,wBAAwB,aAAa;AACrC,KAAK,4HAA4H,yBAAyB;AAC1J;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL,GAAG;AACH;AACA,GAAG;AACH,wEAAwE;AACxE,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH,gDAAgD,4EAA4E,2DAA2D;AACvL,GAAG;AACH;AACA,gDAAgD,sBAAsB,iBAAiB,wDAAwD,cAAc;AAC7J;AACA,KAAK;AACL;AACA,KAAK,EAAE;AACP,GAAG;AACH,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,kCAAkC;AAClC,GAAG;AACH,oCAAoC,iBAAiB,kBAAkB,kBAAkB,oCAAoC,kBAAkB;AAC/I,yBAAyB;AACzB,yBAAyB;AACzB;AACA,GAAG;AACH;AACA,GAAG;AACH,iBAAiB,0BAA0B,qBAAqB;AAChE,2BAA2B,wBAAwB;AACnD,KAAK;AACL,GAAG;AACH,oDAAoD,kCAAkC;AACtF,iDAAiD;AACjD,0EAA0E;AAC1E,mBAAmB,kDAAkD,IAAI,kDAAkD,EAAE;AAC7H,oBAAoB;AACpB,yBAAyB;AACzB,GAAG;AACH;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA,iBAAiB,qBAAqB;AACtC,mBAAmB;AACnB;AACA;AACA;AACA,GAAG;AACH;AACA,UAAU,iCAAiC;AAC3C;AACA,0DAA0D;AAC1D,QAAQ;AACR,MAAM,gGAAgG,QAAQ,SAAS;AACvH,GAAG;AACH,+CAA+C;AAC/C;AACA,KAAK;AACL,GAAG;AACH,iBAAiB;AACjB,eAAe;AACf,KAAK;AACL,GAAG;AACH,iBAAiB;AACjB,uBAAuB,oFAAoF;AAC3G,KAAK;AACL,0BAA0B,kCAAkC,WAAW,gCAAgC;AACvG,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH,cAAc;AACd,UAAU;AACV,yBAAyB;AACzB;AACA,OAAO,iCAAiC;AACxC,KAAK,oCAAoC,8BAA8B;AACvE,GAAG;AACH;AACA,GAAG;AACH,UAAU;AACV,mBAAmB;AACnB;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB,eAAe,+BAA+B,uCAAuC,wBAAwB,sEAAsE,oBAAoB,mCAAmC,2BAA2B;AACzT,KAAK;AACL,GAAG;AACH;AACA;AACA,oCAAoC;AACpC,2BAA2B,MAAM;AACjC,UAAU,gBAAgB;AAC1B,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH,0BAA0B;AAC1B;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,yDAAyD,gDAAgD;AACzG,KAAK,aAAa,cAAc,2GAA2G;AAC3I,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL,4BAA4B,kCAAkC,MAAM;AACpE;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,SAAS,WAAW,qNAAqN,OAAO;AAChP;AACA;AACA;AACA,iEAAiE,yDAAyD;AAC1H,SAAS,wCAAwC,OAAO;AACxD;AACA,UAAU,cAAc,6CAA6C,mBAAmB;AACxF,OAAO,2CAA2C,OAAO;AACzD;AACA,OAAO,kBAAkB;AACzB,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,gDAAgD,OAAO;AACvD;AACA,UAAU,YAAY,IAAI;AAC1B;AACA;AACA,OAAO,kEAAkE,yBAAyB,wFAAwF,YAAY;AACtM,KAAK,sBAAsB,IAAI;AAC/B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,qBAAqB,kBAAkB,eAAe,cAAc,aAAa,iBAAiB,6BAA6B,mDAAmD,KAAK,4BAA4B,IAAI;AACvN;AACA;AACA,MAAM;AACN,YAAY,aAAa;AACzB,MAAM;AACN;AACA,MAAM;AACN,2BAA2B,yBAAyB;AACpD,MAAM;AACN;AACA,MAAM;AACN,+BAA+B,MAAM;AACrC,MAAM;AACN;AACA,gBAAgB;AAChB,MAAM,eAAe,UAAU,uBAAuB;AACtD,GAAG,WAAW,qHAAqH;AACnI,YAAY,8EAA8E;AAC1F;AACA;AACA,YAAY;AACZ;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL,2BAA2B,EAAE,eAAe,EAAE;AAC9C;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,qCAAqC,wCAAwC,QAAQ;AACrF;AACA,SAAS;AACT,2CAA2C,sBAAsB,sBAAsB,uBAAuB,uBAAuB;AACrI;AACA,WAAW,IAAI;AACf,oFAAoF;AACpF,wBAAwB,OAAO;AAC/B,oFAAoF,mBAAmB;AACvG;AACA,aAAa;AACb,YAAY,wBAAwB;AACpC;AACA;AACA,sBAAsB;AACtB;AACA,cAAc,uCAAuC;AACrD,WAAW;AACX;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,cAAc;AACd;AACA,OAAO;AACP;AACA,OAAO,GAAG;AACV,cAAc,+BAA+B;AAC7C,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA,OAAO,YAAY;AACnB,KAAK;AACL,GAAG;AACH,aAAa;AACb;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL,0BAA0B;AAC1B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uBAAuB;AACvB,wBAAwB,MAAM;AAC9B;AACA,SAAS;AACT,QAAQ;AACR,KAAK;AACL,GAAG,GAAG,oBAAoB,YAAY,cAAc;AACpD,aAAa,uBAAuB,IAAI;AACxC,yDAAyD,IAAI;AAC7D;AACA;AACA;AACA,IAAI,eAAe;AACnB;AACA,qBAAqB;AACrB,eAAe;AACf;AACA,IAAI;AACJ,iBAAiB,sCAAsC;AACvD,IAAI,aAAa,cAAc;AAC/B,iBAAiB,UAAU,eAAe;AAC1C;AACA,qBAAqB;AACrB,OAAO,EAAE;AACT,iCAAiC,GAAG,mCAAmC,eAAe,iBAAiB,gBAAgB,0BAA0B,kCAAkC,aAAa,iBAAiB,iBAAiB,SAAS,aAAa,iBAAiB,4CAA4C;AACrT,OAAO,EAAE,UAAU,UAAU,0BAA0B;AACvD,MAAM;AACN,IAAI;AACJ;AACA,IAAI;AACJ,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA,kCAAkC;AAClC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;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,WAAW;AACX,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;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;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,UAAU;AAC7B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;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;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,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA,mCAAmC;AACnC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;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,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;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;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA,mCAAmC;AACnC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;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,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uCAAuC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,kBAAkB,qBAAqB;AACvC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,GAAG;AACN,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;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;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA,0BAA0B,kBAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,kBAAkB;AAClB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;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,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;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,KAAK;AACL,GAAG;AACH,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;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,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI,GAAG,IAAI,GAAG,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY;AACZ;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,SAAS;AACT;AACA;AACA,6BAA6B;AAC7B,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,+bAA+b;AAC/b;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB;AACvB;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+GAA+G;AAC/G;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,UAAU;AACV,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,kBAAkB,OAAO;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;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;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,UAAU;AAC3B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,UAAU;AAC3B;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;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,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wIAAwI;AACxI,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6LAA6L;AAC7L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,mDAAmD;AACnD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2DAA2D;AAC3D,yDAAyD;AACzD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC53YD;AACA;AACA;AACA,IAAI,KAAyB;AAC7B;AACA;AACA,CAAC;AACD,iBAAiB;AACjB;AACA;AACA,cAAc,4DAA4D;AAC1E;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,uBAAuB;AACvB;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,gBAAgB;AAChB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,oBAAoB;AACpB,uBAAuB;AACvB,0BAA0B;AAC1B,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C,IAAI;AACJ;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB,oBAAoB;AACpB,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;;AAElD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,UAAU,WAAW;;AAErB,yDAAyD;;AAEzD,sGAAsG,gCAAgC;;AAEtI;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,2BAA2B,SAAS;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;;AAEH;AACA;AACA,mBAAmB;AACnB;AACA;AACA,wBAAwB;AACxB;;AAEA;;AAEA;AACA;AACA;;AAEA,iMAAiM;;AAEjM;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA,uEAAuE,kDAAkD;AACzH,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,kBAAkB;AAClB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,mDAAmD,mCAAmC;;AAEtF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,UAAU,SAAS;AACnB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC7yBA;;;;;;;;;;;ACAA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO,kBAAkB,cAAc,UAAU,YAAY,cAAc,UAAU,gBAAgB;AACzI,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,uBAAuB;AACvB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,gBAAgB,UAAU;AAC1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,WAAW;AACX;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qCAAqC,SAAS;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,qCAAqC;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,gBAAgB,wBAAwB;AACxC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,wBAAwB,gBAAgB,MAAM;;AAE9C;AACA;AACA,MAAM;;AAEN;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB,gBAAgB,MAAM;;AAE9C;AACA;AACA,MAAM;;AAEN;AACA,kBAAkB;;AAElB;AACA;AACA;AACA,wBAAwB,gBAAgB,MAAM;;AAE9C;AACA,MAAM,MAAM;AACZ,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb,aAAa;AACb,aAAa;AACb,yBAAyB;AACzB,4BAA4B;AAC5B;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;;AAEL;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA,MAAM;AACN,uDAAuD;AACvD;AACA;AACA;AACA;AACA,OAAO;AACP,gBAAgB;AAChB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE;AACjE,8BAA8B;AAC9B;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,6BAA6B;AAC3C;;AAEA;AACA;;AAEA,4DAA4D;AAC5D;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,2BAA2B;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,KAA0B;AAChC;AACA;AACA,GAAG,UAAU,IAA0C;AACvD;AACA,EAAE,mCAAuB,aAAa,qBAAqB;AAAA,kGAAE;AAC7D;;AAEA;AACA;AACA,2EAA2E;AAC3E;;AAEA,EAAE","sources":["webpack:///./node_modules/@materializecss/materialize/dist/js/materialize.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/@materializecss/materialize/dist/css/materialize.css?2848","webpack:///./node_modules/picturefill/dist/picturefill.js"],"sourcesContent":["/*!\r\n * Materialize v1.1.0 (https://materializecss.github.io/materialize)\r\n * Copyright 2014-2021 Materialize\r\n * MIT License (https://raw.githubusercontent.com/materializecss/materialize/master/LICENSE)\r\n */\r\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\r\n\r\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\r\n\r\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\r\n\r\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\n/*! cash-dom 1.3.5, https://github.com/kenwheeler/cash @license MIT */\r\n(function (factory) {\r\n window.cash = factory();\r\n})(function () {\r\n var doc = document,\r\n win = window,\r\n ArrayProto = Array.prototype,\r\n slice = ArrayProto.slice,\r\n filter = ArrayProto.filter,\r\n push = ArrayProto.push;\r\n\r\n var noop = function () {},\r\n isFunction = function (item) {\r\n // @see https://crbug.com/568448\r\n return typeof item === typeof noop && item.call;\r\n },\r\n isString = function (item) {\r\n return typeof item === typeof \"\";\r\n };\r\n\r\n var idMatch = /^#[\\w-]*$/,\r\n classMatch = /^\\.[\\w-]*$/,\r\n htmlMatch = /<.+>/,\r\n singlet = /^\\w+$/;\r\n\r\n function find(selector, context) {\r\n context = context || doc;\r\n var elems = classMatch.test(selector) ? context.getElementsByClassName(selector.slice(1)) : singlet.test(selector) ? context.getElementsByTagName(selector) : context.querySelectorAll(selector);\r\n return elems;\r\n }\r\n\r\n var frag;\r\n function parseHTML(str) {\r\n if (!frag) {\r\n frag = doc.implementation.createHTMLDocument(null);\r\n var base = frag.createElement(\"base\");\r\n base.href = doc.location.href;\r\n frag.head.appendChild(base);\r\n }\r\n\r\n frag.body.innerHTML = str;\r\n\r\n return frag.body.childNodes;\r\n }\r\n\r\n function onReady(fn) {\r\n if (doc.readyState !== \"loading\") {\r\n fn();\r\n } else {\r\n doc.addEventListener(\"DOMContentLoaded\", fn);\r\n }\r\n }\r\n\r\n function Init(selector, context) {\r\n if (!selector) {\r\n return this;\r\n }\r\n\r\n // If already a cash collection, don't do any further processing\r\n if (selector.cash && selector !== win) {\r\n return selector;\r\n }\r\n\r\n var elems = selector,\r\n i = 0,\r\n length;\r\n\r\n if (isString(selector)) {\r\n elems = idMatch.test(selector) ?\r\n // If an ID use the faster getElementById check\r\n doc.getElementById(selector.slice(1)) : htmlMatch.test(selector) ?\r\n // If HTML, parse it into real elements\r\n parseHTML(selector) :\r\n // else use `find`\r\n find(selector, context);\r\n\r\n // If function, use as shortcut for DOM ready\r\n } else if (isFunction(selector)) {\r\n onReady(selector);return this;\r\n }\r\n\r\n if (!elems) {\r\n return this;\r\n }\r\n\r\n // If a single DOM element is passed in or received via ID, return the single element\r\n if (elems.nodeType || elems === win) {\r\n this[0] = elems;\r\n this.length = 1;\r\n } else {\r\n // Treat like an array and loop through each item.\r\n length = this.length = elems.length;\r\n for (; i < length; i++) {\r\n this[i] = elems[i];\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function cash(selector, context) {\r\n return new Init(selector, context);\r\n }\r\n\r\n var fn = cash.fn = cash.prototype = Init.prototype = { // jshint ignore:line\r\n cash: true,\r\n length: 0,\r\n push: push,\r\n splice: ArrayProto.splice,\r\n map: ArrayProto.map,\r\n init: Init\r\n };\r\n\r\n Object.defineProperty(fn, \"constructor\", { value: cash });\r\n\r\n cash.parseHTML = parseHTML;\r\n cash.noop = noop;\r\n cash.isFunction = isFunction;\r\n cash.isString = isString;\r\n\r\n cash.extend = fn.extend = function (target) {\r\n target = target || {};\r\n\r\n var args = slice.call(arguments),\r\n length = args.length,\r\n i = 1;\r\n\r\n if (args.length === 1) {\r\n target = this;\r\n i = 0;\r\n }\r\n\r\n for (; i < length; i++) {\r\n if (!args[i]) {\r\n continue;\r\n }\r\n for (var key in args[i]) {\r\n if (args[i].hasOwnProperty(key)) {\r\n target[key] = args[i][key];\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n };\r\n\r\n function each(collection, callback) {\r\n var l = collection.length,\r\n i = 0;\r\n\r\n for (; i < l; i++) {\r\n if (callback.call(collection[i], collection[i], i, collection) === false) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n function matches(el, selector) {\r\n var m = el && (el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector);\r\n return !!m && m.call(el, selector);\r\n }\r\n\r\n function getCompareFunction(selector) {\r\n return (\r\n /* Use browser's `matches` function if string */\r\n isString(selector) ? matches :\r\n /* Match a cash element */\r\n selector.cash ? function (el) {\r\n return selector.is(el);\r\n } :\r\n /* Direct comparison */\r\n function (el, selector) {\r\n return el === selector;\r\n }\r\n );\r\n }\r\n\r\n function unique(collection) {\r\n return cash(slice.call(collection).filter(function (item, index, self) {\r\n return self.indexOf(item) === index;\r\n }));\r\n }\r\n\r\n cash.extend({\r\n merge: function (first, second) {\r\n var len = +second.length,\r\n i = first.length,\r\n j = 0;\r\n\r\n for (; j < len; i++, j++) {\r\n first[i] = second[j];\r\n }\r\n\r\n first.length = i;\r\n return first;\r\n },\r\n\r\n each: each,\r\n matches: matches,\r\n unique: unique,\r\n isArray: Array.isArray,\r\n isNumeric: function (n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n\r\n });\r\n\r\n var uid = cash.uid = \"_cash\" + Date.now();\r\n\r\n function getDataCache(node) {\r\n return node[uid] = node[uid] || {};\r\n }\r\n\r\n function setData(node, key, value) {\r\n return getDataCache(node)[key] = value;\r\n }\r\n\r\n function getData(node, key) {\r\n var c = getDataCache(node);\r\n if (c[key] === undefined) {\r\n c[key] = node.dataset ? node.dataset[key] : cash(node).attr(\"data-\" + key);\r\n }\r\n return c[key];\r\n }\r\n\r\n function removeData(node, key) {\r\n var c = getDataCache(node);\r\n if (c) {\r\n delete c[key];\r\n } else if (node.dataset) {\r\n delete node.dataset[key];\r\n } else {\r\n cash(node).removeAttr(\"data-\" + name);\r\n }\r\n }\r\n\r\n fn.extend({\r\n data: function (name, value) {\r\n if (isString(name)) {\r\n return value === undefined ? getData(this[0], name) : this.each(function (v) {\r\n return setData(v, name, value);\r\n });\r\n }\r\n\r\n for (var key in name) {\r\n this.data(key, name[key]);\r\n }\r\n\r\n return this;\r\n },\r\n\r\n removeData: function (key) {\r\n return this.each(function (v) {\r\n return removeData(v, key);\r\n });\r\n }\r\n\r\n });\r\n\r\n var notWhiteMatch = /\\S+/g;\r\n\r\n function getClasses(c) {\r\n return isString(c) && c.match(notWhiteMatch);\r\n }\r\n\r\n function hasClass(v, c) {\r\n return v.classList ? v.classList.contains(c) : new RegExp(\"(^| )\" + c + \"( |$)\", \"gi\").test(v.className);\r\n }\r\n\r\n function addClass(v, c, spacedName) {\r\n if (v.classList) {\r\n v.classList.add(c);\r\n } else if (spacedName.indexOf(\" \" + c + \" \")) {\r\n v.className += \" \" + c;\r\n }\r\n }\r\n\r\n function removeClass(v, c) {\r\n if (v.classList) {\r\n v.classList.remove(c);\r\n } else {\r\n v.className = v.className.replace(c, \"\");\r\n }\r\n }\r\n\r\n fn.extend({\r\n addClass: function (c) {\r\n var classes = getClasses(c);\r\n\r\n return classes ? this.each(function (v) {\r\n var spacedName = \" \" + v.className + \" \";\r\n each(classes, function (c) {\r\n addClass(v, c, spacedName);\r\n });\r\n }) : this;\r\n },\r\n\r\n attr: function (name, value) {\r\n if (!name) {\r\n return undefined;\r\n }\r\n\r\n if (isString(name)) {\r\n if (value === undefined) {\r\n return this[0] ? this[0].getAttribute ? this[0].getAttribute(name) : this[0][name] : undefined;\r\n }\r\n\r\n return this.each(function (v) {\r\n if (v.setAttribute) {\r\n v.setAttribute(name, value);\r\n } else {\r\n v[name] = value;\r\n }\r\n });\r\n }\r\n\r\n for (var key in name) {\r\n this.attr(key, name[key]);\r\n }\r\n\r\n return this;\r\n },\r\n\r\n hasClass: function (c) {\r\n var check = false,\r\n classes = getClasses(c);\r\n if (classes && classes.length) {\r\n this.each(function (v) {\r\n check = hasClass(v, classes[0]);\r\n return !check;\r\n });\r\n }\r\n return check;\r\n },\r\n\r\n prop: function (name, value) {\r\n if (isString(name)) {\r\n return value === undefined ? this[0][name] : this.each(function (v) {\r\n v[name] = value;\r\n });\r\n }\r\n\r\n for (var key in name) {\r\n this.prop(key, name[key]);\r\n }\r\n\r\n return this;\r\n },\r\n\r\n removeAttr: function (name) {\r\n return this.each(function (v) {\r\n if (v.removeAttribute) {\r\n v.removeAttribute(name);\r\n } else {\r\n delete v[name];\r\n }\r\n });\r\n },\r\n\r\n removeClass: function (c) {\r\n if (!arguments.length) {\r\n return this.attr(\"class\", \"\");\r\n }\r\n var classes = getClasses(c);\r\n return classes ? this.each(function (v) {\r\n each(classes, function (c) {\r\n removeClass(v, c);\r\n });\r\n }) : this;\r\n },\r\n\r\n removeProp: function (name) {\r\n return this.each(function (v) {\r\n delete v[name];\r\n });\r\n },\r\n\r\n toggleClass: function (c, state) {\r\n if (state !== undefined) {\r\n return this[state ? \"addClass\" : \"removeClass\"](c);\r\n }\r\n var classes = getClasses(c);\r\n return classes ? this.each(function (v) {\r\n var spacedName = \" \" + v.className + \" \";\r\n each(classes, function (c) {\r\n if (hasClass(v, c)) {\r\n removeClass(v, c);\r\n } else {\r\n addClass(v, c, spacedName);\r\n }\r\n });\r\n }) : this;\r\n } });\r\n\r\n fn.extend({\r\n add: function (selector, context) {\r\n return unique(cash.merge(this, cash(selector, context)));\r\n },\r\n\r\n each: function (callback) {\r\n each(this, callback);\r\n return this;\r\n },\r\n\r\n eq: function (index) {\r\n return cash(this.get(index));\r\n },\r\n\r\n filter: function (selector) {\r\n if (!selector) {\r\n return this;\r\n }\r\n\r\n var comparator = isFunction(selector) ? selector : getCompareFunction(selector);\r\n\r\n return cash(filter.call(this, function (e) {\r\n return comparator(e, selector);\r\n }));\r\n },\r\n\r\n first: function () {\r\n return this.eq(0);\r\n },\r\n\r\n get: function (index) {\r\n if (index === undefined) {\r\n return slice.call(this);\r\n }\r\n return index < 0 ? this[index + this.length] : this[index];\r\n },\r\n\r\n index: function (elem) {\r\n var child = elem ? cash(elem)[0] : this[0],\r\n collection = elem ? this : cash(child).parent().children();\r\n return slice.call(collection).indexOf(child);\r\n },\r\n\r\n last: function () {\r\n return this.eq(-1);\r\n }\r\n\r\n });\r\n\r\n var camelCase = function () {\r\n var camelRegex = /(?:^\\w|[A-Z]|\\b\\w)/g,\r\n whiteSpace = /[\\s-_]+/g;\r\n return function (str) {\r\n return str.replace(camelRegex, function (letter, index) {\r\n return letter[index === 0 ? \"toLowerCase\" : \"toUpperCase\"]();\r\n }).replace(whiteSpace, \"\");\r\n };\r\n }();\r\n\r\n var getPrefixedProp = function () {\r\n var cache = {},\r\n doc = document,\r\n div = doc.createElement(\"div\"),\r\n style = div.style;\r\n\r\n return function (prop) {\r\n prop = camelCase(prop);\r\n if (cache[prop]) {\r\n return cache[prop];\r\n }\r\n\r\n var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\r\n prefixes = [\"webkit\", \"moz\", \"ms\", \"o\"],\r\n props = (prop + \" \" + prefixes.join(ucProp + \" \") + ucProp).split(\" \");\r\n\r\n each(props, function (p) {\r\n if (p in style) {\r\n cache[p] = prop = cache[prop] = p;\r\n return false;\r\n }\r\n });\r\n\r\n return cache[prop];\r\n };\r\n }();\r\n\r\n cash.prefixedProp = getPrefixedProp;\r\n cash.camelCase = camelCase;\r\n\r\n fn.extend({\r\n css: function (prop, value) {\r\n if (isString(prop)) {\r\n prop = getPrefixedProp(prop);\r\n return arguments.length > 1 ? this.each(function (v) {\r\n return v.style[prop] = value;\r\n }) : win.getComputedStyle(this[0])[prop];\r\n }\r\n\r\n for (var key in prop) {\r\n this.css(key, prop[key]);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n });\r\n\r\n function compute(el, prop) {\r\n return parseInt(win.getComputedStyle(el[0], null)[prop], 10) || 0;\r\n }\r\n\r\n each([\"Width\", \"Height\"], function (v) {\r\n var lower = v.toLowerCase();\r\n\r\n fn[lower] = function () {\r\n return this[0].getBoundingClientRect()[lower];\r\n };\r\n\r\n fn[\"inner\" + v] = function () {\r\n return this[0][\"client\" + v];\r\n };\r\n\r\n fn[\"outer\" + v] = function (margins) {\r\n return this[0][\"offset\" + v] + (margins ? compute(this, \"margin\" + (v === \"Width\" ? \"Left\" : \"Top\")) + compute(this, \"margin\" + (v === \"Width\" ? \"Right\" : \"Bottom\")) : 0);\r\n };\r\n });\r\n\r\n function registerEvent(node, eventName, callback) {\r\n var eventCache = getData(node, \"_cashEvents\") || setData(node, \"_cashEvents\", {});\r\n eventCache[eventName] = eventCache[eventName] || [];\r\n eventCache[eventName].push(callback);\r\n node.addEventListener(eventName, callback);\r\n }\r\n\r\n function removeEvent(node, eventName, callback) {\r\n var events = getData(node, \"_cashEvents\"),\r\n eventCache = events && events[eventName],\r\n index;\r\n\r\n if (!eventCache) {\r\n return;\r\n }\r\n\r\n if (callback) {\r\n node.removeEventListener(eventName, callback);\r\n index = eventCache.indexOf(callback);\r\n if (index >= 0) {\r\n eventCache.splice(index, 1);\r\n }\r\n } else {\r\n each(eventCache, function (event) {\r\n node.removeEventListener(eventName, event);\r\n });\r\n eventCache = [];\r\n }\r\n }\r\n\r\n fn.extend({\r\n off: function (eventName, callback) {\r\n return this.each(function (v) {\r\n return removeEvent(v, eventName, callback);\r\n });\r\n },\r\n\r\n on: function (eventName, delegate, callback, runOnce) {\r\n // jshint ignore:line\r\n var originalCallback;\r\n if (!isString(eventName)) {\r\n for (var key in eventName) {\r\n this.on(key, delegate, eventName[key]);\r\n }\r\n return this;\r\n }\r\n\r\n if (isFunction(delegate)) {\r\n callback = delegate;\r\n delegate = null;\r\n }\r\n\r\n if (eventName === \"ready\") {\r\n onReady(callback);\r\n return this;\r\n }\r\n\r\n if (delegate) {\r\n originalCallback = callback;\r\n callback = function (e) {\r\n var t = e.target;\r\n while (!matches(t, delegate)) {\r\n if (t === this || t === null) {\r\n return t = false;\r\n }\r\n\r\n t = t.parentNode;\r\n }\r\n\r\n if (t) {\r\n originalCallback.call(t, e);\r\n }\r\n };\r\n }\r\n\r\n return this.each(function (v) {\r\n var finalCallback = callback;\r\n if (runOnce) {\r\n finalCallback = function () {\r\n callback.apply(this, arguments);\r\n removeEvent(v, eventName, finalCallback);\r\n };\r\n }\r\n registerEvent(v, eventName, finalCallback);\r\n });\r\n },\r\n\r\n one: function (eventName, delegate, callback) {\r\n return this.on(eventName, delegate, callback, true);\r\n },\r\n\r\n ready: onReady,\r\n\r\n /**\r\n * Modified\r\n * Triggers browser event\r\n * @param String eventName\r\n * @param Object data - Add properties to event object\r\n */\r\n trigger: function (eventName, data) {\r\n if (document.createEvent) {\r\n var evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(eventName, true, false);\r\n evt = this.extend(evt, data);\r\n return this.each(function (v) {\r\n return v.dispatchEvent(evt);\r\n });\r\n }\r\n }\r\n\r\n });\r\n\r\n function encode(name, value) {\r\n return \"&\" + encodeURIComponent(name) + \"=\" + encodeURIComponent(value).replace(/%20/g, \"+\");\r\n }\r\n\r\n function getSelectMultiple_(el) {\r\n var values = [];\r\n each(el.options, function (o) {\r\n if (o.selected) {\r\n values.push(o.value);\r\n }\r\n });\r\n return values.length ? values : null;\r\n }\r\n\r\n function getSelectSingle_(el) {\r\n var selectedIndex = el.selectedIndex;\r\n return selectedIndex >= 0 ? el.options[selectedIndex].value : null;\r\n }\r\n\r\n function getValue(el) {\r\n var type = el.type;\r\n if (!type) {\r\n return null;\r\n }\r\n switch (type.toLowerCase()) {\r\n case \"select-one\":\r\n return getSelectSingle_(el);\r\n case \"select-multiple\":\r\n return getSelectMultiple_(el);\r\n case \"radio\":\r\n return el.checked ? el.value : null;\r\n case \"checkbox\":\r\n return el.checked ? el.value : null;\r\n default:\r\n return el.value ? el.value : null;\r\n }\r\n }\r\n\r\n fn.extend({\r\n serialize: function () {\r\n var query = \"\";\r\n\r\n each(this[0].elements || this, function (el) {\r\n if (el.disabled || el.tagName === \"FIELDSET\") {\r\n return;\r\n }\r\n var name = el.name;\r\n switch (el.type.toLowerCase()) {\r\n case \"file\":\r\n case \"reset\":\r\n case \"submit\":\r\n case \"button\":\r\n break;\r\n case \"select-multiple\":\r\n var values = getValue(el);\r\n if (values !== null) {\r\n each(values, function (value) {\r\n query += encode(name, value);\r\n });\r\n }\r\n break;\r\n default:\r\n var value = getValue(el);\r\n if (value !== null) {\r\n query += encode(name, value);\r\n }\r\n }\r\n });\r\n\r\n return query.substr(1);\r\n },\r\n\r\n val: function (value) {\r\n if (value === undefined) {\r\n return getValue(this[0]);\r\n }\r\n\r\n return this.each(function (v) {\r\n return v.value = value;\r\n });\r\n }\r\n\r\n });\r\n\r\n function insertElement(el, child, prepend) {\r\n if (prepend) {\r\n var first = el.childNodes[0];\r\n el.insertBefore(child, first);\r\n } else {\r\n el.appendChild(child);\r\n }\r\n }\r\n\r\n function insertContent(parent, child, prepend) {\r\n var str = isString(child);\r\n\r\n if (!str && child.length) {\r\n each(child, function (v) {\r\n return insertContent(parent, v, prepend);\r\n });\r\n return;\r\n }\r\n\r\n each(parent, str ? function (v) {\r\n return v.insertAdjacentHTML(prepend ? \"afterbegin\" : \"beforeend\", child);\r\n } : function (v, i) {\r\n return insertElement(v, i === 0 ? child : child.cloneNode(true), prepend);\r\n });\r\n }\r\n\r\n fn.extend({\r\n after: function (selector) {\r\n cash(selector).insertAfter(this);\r\n return this;\r\n },\r\n\r\n append: function (content) {\r\n insertContent(this, content);\r\n return this;\r\n },\r\n\r\n appendTo: function (parent) {\r\n insertContent(cash(parent), this);\r\n return this;\r\n },\r\n\r\n before: function (selector) {\r\n cash(selector).insertBefore(this);\r\n return this;\r\n },\r\n\r\n clone: function () {\r\n return cash(this.map(function (v) {\r\n return v.cloneNode(true);\r\n }));\r\n },\r\n\r\n empty: function () {\r\n this.html(\"\");\r\n return this;\r\n },\r\n\r\n html: function (content) {\r\n if (content === undefined) {\r\n return this[0].innerHTML;\r\n }\r\n var source = content.nodeType ? content[0].outerHTML : content;\r\n return this.each(function (v) {\r\n return v.innerHTML = source;\r\n });\r\n },\r\n\r\n insertAfter: function (selector) {\r\n var _this = this;\r\n\r\n cash(selector).each(function (el, i) {\r\n var parent = el.parentNode,\r\n sibling = el.nextSibling;\r\n _this.each(function (v) {\r\n parent.insertBefore(i === 0 ? v : v.cloneNode(true), sibling);\r\n });\r\n });\r\n\r\n return this;\r\n },\r\n\r\n insertBefore: function (selector) {\r\n var _this2 = this;\r\n cash(selector).each(function (el, i) {\r\n var parent = el.parentNode;\r\n _this2.each(function (v) {\r\n parent.insertBefore(i === 0 ? v : v.cloneNode(true), el);\r\n });\r\n });\r\n return this;\r\n },\r\n\r\n prepend: function (content) {\r\n insertContent(this, content, true);\r\n return this;\r\n },\r\n\r\n prependTo: function (parent) {\r\n insertContent(cash(parent), this, true);\r\n return this;\r\n },\r\n\r\n remove: function () {\r\n return this.each(function (v) {\r\n if (!!v.parentNode) {\r\n return v.parentNode.removeChild(v);\r\n }\r\n });\r\n },\r\n\r\n text: function (content) {\r\n if (content === undefined) {\r\n return this[0].textContent;\r\n }\r\n return this.each(function (v) {\r\n return v.textContent = content;\r\n });\r\n }\r\n\r\n });\r\n\r\n var docEl = doc.documentElement;\r\n\r\n fn.extend({\r\n position: function () {\r\n var el = this[0];\r\n return {\r\n left: el.offsetLeft,\r\n top: el.offsetTop\r\n };\r\n },\r\n\r\n offset: function () {\r\n var rect = this[0].getBoundingClientRect();\r\n return {\r\n top: rect.top + win.pageYOffset - docEl.clientTop,\r\n left: rect.left + win.pageXOffset - docEl.clientLeft\r\n };\r\n },\r\n\r\n offsetParent: function () {\r\n return cash(this[0].offsetParent);\r\n }\r\n\r\n });\r\n\r\n fn.extend({\r\n children: function (selector) {\r\n var elems = [];\r\n this.each(function (el) {\r\n push.apply(elems, el.children);\r\n });\r\n elems = unique(elems);\r\n\r\n return !selector ? elems : elems.filter(function (v) {\r\n return matches(v, selector);\r\n });\r\n },\r\n\r\n closest: function (selector) {\r\n if (!selector || this.length < 1) {\r\n return cash();\r\n }\r\n if (this.is(selector)) {\r\n return this.filter(selector);\r\n }\r\n return this.parent().closest(selector);\r\n },\r\n\r\n is: function (selector) {\r\n if (!selector) {\r\n return false;\r\n }\r\n\r\n var match = false,\r\n comparator = getCompareFunction(selector);\r\n\r\n this.each(function (el) {\r\n match = comparator(el, selector);\r\n return !match;\r\n });\r\n\r\n return match;\r\n },\r\n\r\n find: function (selector) {\r\n if (!selector || selector.nodeType) {\r\n return cash(selector && this.has(selector).length ? selector : null);\r\n }\r\n\r\n var elems = [];\r\n this.each(function (el) {\r\n push.apply(elems, find(selector, el));\r\n });\r\n\r\n return unique(elems);\r\n },\r\n\r\n has: function (selector) {\r\n var comparator = isString(selector) ? function (el) {\r\n return find(selector, el).length !== 0;\r\n } : function (el) {\r\n return el.contains(selector);\r\n };\r\n\r\n return this.filter(comparator);\r\n },\r\n\r\n next: function () {\r\n return cash(this[0].nextElementSibling);\r\n },\r\n\r\n not: function (selector) {\r\n if (!selector) {\r\n return this;\r\n }\r\n\r\n var comparator = getCompareFunction(selector);\r\n\r\n return this.filter(function (el) {\r\n return !comparator(el, selector);\r\n });\r\n },\r\n\r\n parent: function () {\r\n var result = [];\r\n\r\n this.each(function (item) {\r\n if (item && item.parentNode) {\r\n result.push(item.parentNode);\r\n }\r\n });\r\n\r\n return unique(result);\r\n },\r\n\r\n parents: function (selector) {\r\n var last,\r\n result = [];\r\n\r\n this.each(function (item) {\r\n last = item;\r\n\r\n while (last && last.parentNode && last !== doc.body.parentNode) {\r\n last = last.parentNode;\r\n\r\n if (!selector || selector && matches(last, selector)) {\r\n result.push(last);\r\n }\r\n }\r\n });\r\n\r\n return unique(result);\r\n },\r\n\r\n prev: function () {\r\n return cash(this[0].previousElementSibling);\r\n },\r\n\r\n siblings: function (selector) {\r\n var collection = this.parent().children(selector),\r\n el = this[0];\r\n\r\n return collection.filter(function (i) {\r\n return i !== el;\r\n });\r\n }\r\n\r\n });\r\n\r\n return cash;\r\n});\r\n; /*!\r\n * Waves v0.7.6\r\n * http://fian.my.id/Waves\r\n *\r\n * Copyright 2014-2018 Alfiana E. Sibuea and other contributors\r\n * Released under the MIT license\r\n * https://github.com/fians/Waves/blob/master/LICENSE\r\n */\r\n\r\n;(function (window, factory) {\r\n 'use strict';\r\n\r\n // AMD. Register as an anonymous module. Wrap in function so we have access\r\n // to root via `this`.\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define([], function () {\r\n window.Waves = factory.call(window);\r\n document.addEventListener('DOMContentLoaded', function () {\r\n window.Waves.init();\r\n }, false);\r\n return window.Waves;\r\n });\r\n }\r\n\r\n // Node. Does not work with strict CommonJS, but only CommonJS-like\r\n // environments that support module.exports, like Node.\r\n else if (typeof exports === 'object') {\r\n module.exports = factory.call(window);\r\n }\r\n\r\n // Browser globals.\r\n else {\r\n window.Waves = factory.call(window);\r\n document.addEventListener('DOMContentLoaded', function () {\r\n window.Waves.init();\r\n }, false);\r\n }\r\n})(typeof global === 'object' ? global : this, function () {\r\n 'use strict';\r\n\r\n var Waves = Waves || {};\r\n var $$ = document.querySelectorAll.bind(document);\r\n var toString = Object.prototype.toString;\r\n var isTouchAvailable = 'ontouchstart' in window;\r\n\r\n /* Feature detection */\r\n var passiveIfSupported = false;\r\n try {\r\n window.addEventListener(\"test\", null, Object.defineProperty({}, \"passive\", {\r\n get: function () {\r\n passiveIfSupported = { passive: false };\r\n }\r\n }));\r\n } catch (err) {}\r\n\r\n // Find exact position of element\r\n function isWindow(obj) {\r\n return obj !== null && obj === obj.window;\r\n }\r\n\r\n function getWindow(elem) {\r\n return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\r\n }\r\n\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || type === 'object' && !!value;\r\n }\r\n\r\n function isDOMNode(obj) {\r\n return isObject(obj) && obj.nodeType > 0;\r\n }\r\n\r\n function getWavesElements(nodes) {\r\n var stringRepr = toString.call(nodes);\r\n\r\n if (stringRepr === '[object String]') {\r\n return $$(nodes);\r\n } else if (isObject(nodes) && /^\\[object (Array|HTMLCollection|NodeList|Object)\\]$/.test(stringRepr) && nodes.hasOwnProperty('length')) {\r\n return nodes;\r\n } else if (isDOMNode(nodes)) {\r\n return [nodes];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n function offset(elem) {\r\n var docElem,\r\n win,\r\n box = { top: 0, left: 0 },\r\n doc = elem && elem.ownerDocument;\r\n\r\n docElem = doc.documentElement;\r\n\r\n if (typeof elem.getBoundingClientRect !== typeof undefined) {\r\n box = elem.getBoundingClientRect();\r\n }\r\n win = getWindow(doc);\r\n return {\r\n top: box.top + win.pageYOffset - docElem.clientTop,\r\n left: box.left + win.pageXOffset - docElem.clientLeft\r\n };\r\n }\r\n\r\n function convertStyle(styleObj) {\r\n var style = '';\r\n\r\n for (var prop in styleObj) {\r\n if (styleObj.hasOwnProperty(prop)) {\r\n style += prop + ':' + styleObj[prop] + ';';\r\n }\r\n }\r\n\r\n return style;\r\n }\r\n\r\n var Effect = {\r\n\r\n // Effect duration\r\n duration: 750,\r\n\r\n // Effect delay (check for scroll before showing effect)\r\n delay: 200,\r\n\r\n show: function (e, element, velocity) {\r\n\r\n // Disable right click\r\n if (e.button === 2) {\r\n return false;\r\n }\r\n\r\n element = element || this;\r\n\r\n // Create ripple\r\n var ripple = document.createElement('div');\r\n ripple.className = 'waves-ripple waves-rippling';\r\n element.appendChild(ripple);\r\n\r\n // Get click coordinate and element width\r\n var pos = offset(element);\r\n var relativeY = 0;\r\n var relativeX = 0;\r\n // Support for touch devices\r\n if ('touches' in e && e.touches.length) {\r\n relativeY = e.touches[0].pageY - pos.top;\r\n relativeX = e.touches[0].pageX - pos.left;\r\n }\r\n //Normal case\r\n else {\r\n relativeY = e.pageY - pos.top;\r\n relativeX = e.pageX - pos.left;\r\n }\r\n // Support for synthetic events\r\n relativeX = relativeX >= 0 ? relativeX : 0;\r\n relativeY = relativeY >= 0 ? relativeY : 0;\r\n\r\n var scale = 'scale(' + element.clientWidth / 100 * 3 + ')';\r\n var translate = 'translate(0,0)';\r\n\r\n if (velocity) {\r\n translate = 'translate(' + velocity.x + 'px, ' + velocity.y + 'px)';\r\n }\r\n\r\n // Attach data to element\r\n ripple.setAttribute('data-hold', Date.now());\r\n ripple.setAttribute('data-x', relativeX);\r\n ripple.setAttribute('data-y', relativeY);\r\n ripple.setAttribute('data-scale', scale);\r\n ripple.setAttribute('data-translate', translate);\r\n\r\n // Set ripple position\r\n var rippleStyle = {\r\n top: relativeY + 'px',\r\n left: relativeX + 'px'\r\n };\r\n\r\n ripple.classList.add('waves-notransition');\r\n ripple.setAttribute('style', convertStyle(rippleStyle));\r\n ripple.classList.remove('waves-notransition');\r\n\r\n // Scale the ripple\r\n rippleStyle['-webkit-transform'] = scale + ' ' + translate;\r\n rippleStyle['-moz-transform'] = scale + ' ' + translate;\r\n rippleStyle['-ms-transform'] = scale + ' ' + translate;\r\n rippleStyle['-o-transform'] = scale + ' ' + translate;\r\n rippleStyle.transform = scale + ' ' + translate;\r\n rippleStyle.opacity = '1';\r\n\r\n var duration = e.type === 'mousemove' ? 2500 : Effect.duration;\r\n rippleStyle['-webkit-transition-duration'] = duration + 'ms';\r\n rippleStyle['-moz-transition-duration'] = duration + 'ms';\r\n rippleStyle['-o-transition-duration'] = duration + 'ms';\r\n rippleStyle['transition-duration'] = duration + 'ms';\r\n\r\n ripple.setAttribute('style', convertStyle(rippleStyle));\r\n },\r\n\r\n hide: function (e, element) {\r\n element = element || this;\r\n\r\n var ripples = element.getElementsByClassName('waves-rippling');\r\n\r\n for (var i = 0, len = ripples.length; i < len; i++) {\r\n removeRipple(e, element, ripples[i]);\r\n }\r\n\r\n if (isTouchAvailable) {\r\n element.removeEventListener('touchend', Effect.hide);\r\n element.removeEventListener('touchcancel', Effect.hide);\r\n }\r\n\r\n element.removeEventListener('mouseup', Effect.hide);\r\n element.removeEventListener('mouseleave', Effect.hide);\r\n }\r\n };\r\n\r\n /**\r\n * Collection of wrapper for HTML element that only have single tag\r\n * like and \r\n */\r\n var TagWrapper = {\r\n\r\n // Wrap tag so it can perform the effect\r\n input: function (element) {\r\n\r\n var parent = element.parentNode;\r\n\r\n // If input already have parent just pass through\r\n if (parent.tagName.toLowerCase() === 'i' && parent.classList.contains('waves-effect')) {\r\n return;\r\n }\r\n\r\n // Put element class and style to the specified parent\r\n var wrapper = document.createElement('i');\r\n wrapper.className = element.className + ' waves-input-wrapper';\r\n element.className = 'waves-button-input';\r\n\r\n // Put element as child\r\n parent.replaceChild(wrapper, element);\r\n wrapper.appendChild(element);\r\n\r\n // Apply element color and background color to wrapper\r\n var elementStyle = window.getComputedStyle(element, null);\r\n var color = elementStyle.color;\r\n var backgroundColor = elementStyle.backgroundColor;\r\n\r\n wrapper.setAttribute('style', 'color:' + color + ';background:' + backgroundColor);\r\n element.setAttribute('style', 'background-color:rgba(0,0,0,0);');\r\n },\r\n\r\n // Wrap tag so it can perform the effect\r\n img: function (element) {\r\n\r\n var parent = element.parentNode;\r\n\r\n // If input already have parent just pass through\r\n if (parent.tagName.toLowerCase() === 'i' && parent.classList.contains('waves-effect')) {\r\n return;\r\n }\r\n\r\n // Put element as child\r\n var wrapper = document.createElement('i');\r\n parent.replaceChild(wrapper, element);\r\n wrapper.appendChild(element);\r\n }\r\n };\r\n\r\n /**\r\n * Hide the effect and remove the ripple. Must be\r\n * a separate function to pass the JSLint...\r\n */\r\n function removeRipple(e, el, ripple) {\r\n\r\n // Check if the ripple still exist\r\n if (!ripple) {\r\n return;\r\n }\r\n\r\n ripple.classList.remove('waves-rippling');\r\n\r\n var relativeX = ripple.getAttribute('data-x');\r\n var relativeY = ripple.getAttribute('data-y');\r\n var scale = ripple.getAttribute('data-scale');\r\n var translate = ripple.getAttribute('data-translate');\r\n\r\n // Get delay beetween mousedown and mouse leave\r\n var diff = Date.now() - Number(ripple.getAttribute('data-hold'));\r\n var delay = 350 - diff;\r\n\r\n if (delay < 0) {\r\n delay = 0;\r\n }\r\n\r\n if (e.type === 'mousemove') {\r\n delay = 150;\r\n }\r\n\r\n // Fade out ripple after delay\r\n var duration = e.type === 'mousemove' ? 2500 : Effect.duration;\r\n\r\n setTimeout(function () {\r\n\r\n var style = {\r\n top: relativeY + 'px',\r\n left: relativeX + 'px',\r\n opacity: '0',\r\n\r\n // Duration\r\n '-webkit-transition-duration': duration + 'ms',\r\n '-moz-transition-duration': duration + 'ms',\r\n '-o-transition-duration': duration + 'ms',\r\n 'transition-duration': duration + 'ms',\r\n '-webkit-transform': scale + ' ' + translate,\r\n '-moz-transform': scale + ' ' + translate,\r\n '-ms-transform': scale + ' ' + translate,\r\n '-o-transform': scale + ' ' + translate,\r\n 'transform': scale + ' ' + translate\r\n };\r\n\r\n ripple.setAttribute('style', convertStyle(style));\r\n\r\n setTimeout(function () {\r\n try {\r\n el.removeChild(ripple);\r\n } catch (e) {\r\n return false;\r\n }\r\n }, duration);\r\n }, delay);\r\n }\r\n\r\n /**\r\n * Disable mousedown event for 500ms during and after touch\r\n */\r\n var TouchHandler = {\r\n\r\n /* uses an integer rather than bool so there's no issues with\r\n * needing to clear timeouts if another touch event occurred\r\n * within the 500ms. Cannot mouseup between touchstart and\r\n * touchend, nor in the 500ms after touchend. */\r\n touches: 0,\r\n\r\n allowEvent: function (e) {\r\n\r\n var allow = true;\r\n\r\n if (/^(mousedown|mousemove)$/.test(e.type) && TouchHandler.touches) {\r\n allow = false;\r\n }\r\n\r\n return allow;\r\n },\r\n registerEvent: function (e) {\r\n var eType = e.type;\r\n\r\n if (eType === 'touchstart') {\r\n\r\n TouchHandler.touches += 1; // push\r\n } else if (/^(touchend|touchcancel)$/.test(eType)) {\r\n\r\n setTimeout(function () {\r\n if (TouchHandler.touches) {\r\n TouchHandler.touches -= 1; // pop after 500ms\r\n }\r\n }, 500);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Delegated click handler for .waves-effect element.\r\n * returns null when .waves-effect element not in \"click tree\"\r\n */\r\n function getWavesEffectElement(e) {\r\n\r\n if (TouchHandler.allowEvent(e) === false) {\r\n return null;\r\n }\r\n\r\n var element = null;\r\n var target = e.target || e.srcElement;\r\n\r\n while (target.parentElement) {\r\n if (!(target instanceof SVGElement) && target.classList.contains('waves-effect')) {\r\n element = target;\r\n break;\r\n }\r\n target = target.parentElement;\r\n }\r\n\r\n return element;\r\n }\r\n\r\n /**\r\n * Bubble the click and show effect if .waves-effect elem was found\r\n */\r\n function showEffect(e) {\r\n\r\n // Disable effect if element has \"disabled\" property on it\r\n // In some cases, the event is not triggered by the current element\r\n // if (e.target.getAttribute('disabled') !== null) {\r\n // return;\r\n // }\r\n\r\n var element = getWavesEffectElement(e);\r\n\r\n if (element !== null) {\r\n\r\n // Make it sure the element has either disabled property, disabled attribute or 'disabled' class\r\n if (element.disabled || element.getAttribute('disabled') || element.classList.contains('disabled')) {\r\n return;\r\n }\r\n\r\n TouchHandler.registerEvent(e);\r\n\r\n if (e.type === 'touchstart' && Effect.delay) {\r\n\r\n var hidden = false;\r\n\r\n var timer = setTimeout(function () {\r\n timer = null;\r\n Effect.show(e, element);\r\n }, Effect.delay);\r\n\r\n var hideEffect = function (hideEvent) {\r\n\r\n // if touch hasn't moved, and effect not yet started: start effect now\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n Effect.show(e, element);\r\n }\r\n if (!hidden) {\r\n hidden = true;\r\n Effect.hide(hideEvent, element);\r\n }\r\n\r\n removeListeners();\r\n };\r\n\r\n var touchMove = function (moveEvent) {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n hideEffect(moveEvent);\r\n\r\n removeListeners();\r\n };\r\n\r\n element.addEventListener('touchmove', touchMove, passiveIfSupported);\r\n element.addEventListener('touchend', hideEffect, passiveIfSupported);\r\n element.addEventListener('touchcancel', hideEffect, passiveIfSupported);\r\n\r\n var removeListeners = function () {\r\n element.removeEventListener('touchmove', touchMove);\r\n element.removeEventListener('touchend', hideEffect);\r\n element.removeEventListener('touchcancel', hideEffect);\r\n };\r\n } else {\r\n\r\n Effect.show(e, element);\r\n\r\n if (isTouchAvailable) {\r\n element.addEventListener('touchend', Effect.hide, passiveIfSupported);\r\n element.addEventListener('touchcancel', Effect.hide, passiveIfSupported);\r\n }\r\n\r\n element.addEventListener('mouseup', Effect.hide, passiveIfSupported);\r\n element.addEventListener('mouseleave', Effect.hide, passiveIfSupported);\r\n }\r\n }\r\n }\r\n\r\n Waves.init = function (options) {\r\n var body = document.body;\r\n\r\n options = options || {};\r\n\r\n if ('duration' in options) {\r\n Effect.duration = options.duration;\r\n }\r\n\r\n if ('delay' in options) {\r\n Effect.delay = options.delay;\r\n }\r\n\r\n if (isTouchAvailable) {\r\n body.addEventListener('touchstart', showEffect, passiveIfSupported);\r\n body.addEventListener('touchcancel', TouchHandler.registerEvent, passiveIfSupported);\r\n body.addEventListener('touchend', TouchHandler.registerEvent, passiveIfSupported);\r\n }\r\n\r\n body.addEventListener('mousedown', showEffect, passiveIfSupported);\r\n };\r\n\r\n /**\r\n * Attach Waves to dynamically loaded inputs, or add .waves-effect and other\r\n * waves classes to a set of elements. Set drag to true if the ripple mouseover\r\n * or skimming effect should be applied to the elements.\r\n */\r\n Waves.attach = function (elements, classes) {\r\n\r\n elements = getWavesElements(elements);\r\n\r\n if (toString.call(classes) === '[object Array]') {\r\n classes = classes.join(' ');\r\n }\r\n\r\n classes = classes ? ' ' + classes : '';\r\n\r\n var element, tagName;\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n\r\n element = elements[i];\r\n tagName = element.tagName.toLowerCase();\r\n\r\n if (['input', 'img'].indexOf(tagName) !== -1) {\r\n TagWrapper[tagName](element);\r\n element = element.parentElement;\r\n }\r\n\r\n if (element.className.indexOf('waves-effect') === -1) {\r\n element.className += ' waves-effect' + classes;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Cause a ripple to appear in an element via code.\r\n */\r\n Waves.ripple = function (elements, options) {\r\n elements = getWavesElements(elements);\r\n var elementsLen = elements.length;\r\n\r\n options = options || {};\r\n options.wait = options.wait || 0;\r\n options.position = options.position || null; // default = centre of element\r\n\r\n\r\n if (elementsLen) {\r\n var element,\r\n pos,\r\n off,\r\n centre = {},\r\n i = 0;\r\n var mousedown = {\r\n type: 'mousedown',\r\n button: 1\r\n };\r\n var hideRipple = function (mouseup, element) {\r\n return function () {\r\n Effect.hide(mouseup, element);\r\n };\r\n };\r\n\r\n for (; i < elementsLen; i++) {\r\n element = elements[i];\r\n pos = options.position || {\r\n x: element.clientWidth / 2,\r\n y: element.clientHeight / 2\r\n };\r\n\r\n off = offset(element);\r\n centre.x = off.left + pos.x;\r\n centre.y = off.top + pos.y;\r\n\r\n mousedown.pageX = centre.x;\r\n mousedown.pageY = centre.y;\r\n\r\n Effect.show(mousedown, element);\r\n\r\n if (options.wait >= 0 && options.wait !== null) {\r\n var mouseup = {\r\n type: 'mouseup',\r\n button: 1\r\n };\r\n\r\n setTimeout(hideRipple(mouseup, element), options.wait);\r\n }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Remove all ripples from an element.\r\n */\r\n Waves.calm = function (elements) {\r\n elements = getWavesElements(elements);\r\n var mouseup = {\r\n type: 'mouseup',\r\n button: 1\r\n };\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n Effect.hide(mouseup, elements[i]);\r\n }\r\n };\r\n\r\n /**\r\n * Deprecated API fallback\r\n */\r\n Waves.displayEffect = function (options) {\r\n console.error('Waves.displayEffect() has been deprecated and will be removed in future version. Please use Waves.init() to initialize Waves effect');\r\n Waves.init(options);\r\n };\r\n\r\n return Waves;\r\n});;\r\nvar Component = function () {\r\n /**\r\n * Generic constructor for all components\r\n * @constructor\r\n * @param {Element} el\r\n * @param {Object} options\r\n */\r\n function Component(classDef, el, options) {\r\n _classCallCheck(this, Component);\r\n\r\n // Display error if el is valid HTML Element\r\n if (!(el instanceof Element)) {\r\n console.error(Error(el + ' is not an HTML Element'));\r\n }\r\n\r\n // If exists, destroy and reinitialize in child\r\n var ins = classDef.getInstance(el);\r\n if (!!ins) {\r\n ins.destroy();\r\n }\r\n\r\n this.el = el;\r\n this.$el = cash(el);\r\n }\r\n\r\n /**\r\n * Initializes components\r\n * @param {class} classDef\r\n * @param {Element | NodeList | jQuery} els\r\n * @param {Object} options\r\n */\r\n\r\n\r\n _createClass(Component, null, [{\r\n key: \"init\",\r\n value: function init(classDef, els, options) {\r\n var instances = null;\r\n if (els instanceof Element) {\r\n instances = new classDef(els, options);\r\n } else if (!!els && (els.jquery || els.cash || els instanceof NodeList)) {\r\n var instancesArr = [];\r\n for (var i = 0; i < els.length; i++) {\r\n instancesArr.push(new classDef(els[i], options));\r\n }\r\n instances = instancesArr;\r\n }\r\n\r\n return instances;\r\n }\r\n }]);\r\n\r\n return Component;\r\n}();\r\n\r\n; // Required for Meteor package, the use of window prevents export by Meteor\r\n(function (window) {\r\n if (window.Package) {\r\n M = {};\r\n } else {\r\n window.M = {};\r\n }\r\n\r\n // Check for jQuery\r\n M.jQueryLoaded = !!window.jQuery;\r\n})(window);\r\n\r\n// AMD\r\nif (typeof define === 'function' && define.amd) {\r\n define('M', [], function () {\r\n return M;\r\n });\r\n\r\n // Common JS\r\n} else if (typeof exports !== 'undefined' && !exports.nodeType) {\r\n if (typeof module !== 'undefined' && !module.nodeType && module.exports) {\r\n exports = module.exports = M;\r\n }\r\n exports.default = M;\r\n}\r\n\r\nM.version = '1.0.0';\r\n\r\nM.keys = {\r\n TAB: 9,\r\n ENTER: 13,\r\n ESC: 27,\r\n ARROW_UP: 38,\r\n ARROW_DOWN: 40\r\n};\r\n\r\n/**\r\n * TabPress Keydown handler\r\n */\r\nM.tabPressed = false;\r\nM.keyDown = false;\r\nvar docHandleKeydown = function (e) {\r\n M.keyDown = true;\r\n if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) {\r\n M.tabPressed = true;\r\n }\r\n};\r\nvar docHandleKeyup = function (e) {\r\n M.keyDown = false;\r\n if (e.which === M.keys.TAB || e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) {\r\n M.tabPressed = false;\r\n }\r\n};\r\nvar docHandleFocus = function (e) {\r\n if (M.keyDown) {\r\n document.body.classList.add('keyboard-focused');\r\n }\r\n};\r\nvar docHandleBlur = function (e) {\r\n document.body.classList.remove('keyboard-focused');\r\n};\r\ndocument.addEventListener('keydown', docHandleKeydown, true);\r\ndocument.addEventListener('keyup', docHandleKeyup, true);\r\ndocument.addEventListener('focus', docHandleFocus, true);\r\ndocument.addEventListener('blur', docHandleBlur, true);\r\n\r\n/**\r\n * Initialize jQuery wrapper for plugin\r\n * @param {Class} plugin javascript class\r\n * @param {string} pluginName jQuery plugin name\r\n * @param {string} classRef Class reference name\r\n */\r\nM.initializeJqueryWrapper = function (plugin, pluginName, classRef) {\r\n jQuery.fn[pluginName] = function (methodOrOptions) {\r\n // Call plugin method if valid method name is passed in\r\n if (plugin.prototype[methodOrOptions]) {\r\n var params = Array.prototype.slice.call(arguments, 1);\r\n\r\n // Getter methods\r\n if (methodOrOptions.slice(0, 3) === 'get') {\r\n var instance = this.first()[0][classRef];\r\n return instance[methodOrOptions].apply(instance, params);\r\n }\r\n\r\n // Void methods\r\n return this.each(function () {\r\n var instance = this[classRef];\r\n instance[methodOrOptions].apply(instance, params);\r\n });\r\n\r\n // Initialize plugin if options or no argument is passed in\r\n } else if (typeof methodOrOptions === 'object' || !methodOrOptions) {\r\n plugin.init(this, arguments[0]);\r\n return this;\r\n }\r\n\r\n // Return error if an unrecognized method name is passed in\r\n jQuery.error(\"Method \" + methodOrOptions + \" does not exist on jQuery.\" + pluginName);\r\n };\r\n};\r\n\r\n/**\r\n * Automatically initialize components\r\n * @param {Element} context DOM Element to search within for components\r\n */\r\nM.AutoInit = function (context) {\r\n // Use document.body if no context is given\r\n var root = !!context ? context : document.body;\r\n\r\n var registry = {\r\n Autocomplete: root.querySelectorAll('.autocomplete:not(.no-autoinit)'),\r\n Carousel: root.querySelectorAll('.carousel:not(.no-autoinit)'),\r\n Chips: root.querySelectorAll('.chips:not(.no-autoinit)'),\r\n Collapsible: root.querySelectorAll('.collapsible:not(.no-autoinit)'),\r\n Datepicker: root.querySelectorAll('.datepicker:not(.no-autoinit)'),\r\n Dropdown: root.querySelectorAll('.dropdown-trigger:not(.no-autoinit)'),\r\n Materialbox: root.querySelectorAll('.materialboxed:not(.no-autoinit)'),\r\n Modal: root.querySelectorAll('.modal:not(.no-autoinit)'),\r\n Parallax: root.querySelectorAll('.parallax:not(.no-autoinit)'),\r\n Pushpin: root.querySelectorAll('.pushpin:not(.no-autoinit)'),\r\n ScrollSpy: root.querySelectorAll('.scrollspy:not(.no-autoinit)'),\r\n FormSelect: root.querySelectorAll('select:not(.no-autoinit)'),\r\n Sidenav: root.querySelectorAll('.sidenav:not(.no-autoinit)'),\r\n Tabs: root.querySelectorAll('.tabs:not(.no-autoinit)'),\r\n TapTarget: root.querySelectorAll('.tap-target:not(.no-autoinit)'),\r\n Timepicker: root.querySelectorAll('.timepicker:not(.no-autoinit)'),\r\n Tooltip: root.querySelectorAll('.tooltipped:not(.no-autoinit)'),\r\n FloatingActionButton: root.querySelectorAll('.fixed-action-btn:not(.no-autoinit)')\r\n };\r\n\r\n for (var pluginName in registry) {\r\n var plugin = M[pluginName];\r\n plugin.init(registry[pluginName]);\r\n }\r\n};\r\n\r\n/**\r\n * Generate approximated selector string for a jQuery object\r\n * @param {jQuery} obj jQuery object to be parsed\r\n * @returns {string}\r\n */\r\nM.objectSelectorString = function (obj) {\r\n var tagStr = obj.prop('tagName') || '';\r\n var idStr = obj.attr('id') || '';\r\n var classStr = obj.attr('class') || '';\r\n return (tagStr + idStr + classStr).replace(/\\s/g, '');\r\n};\r\n\r\n// Unique Random ID\r\nM.guid = function () {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\r\n }\r\n return function () {\r\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\r\n };\r\n}();\r\n\r\n/**\r\n * Escapes hash from special characters\r\n * @param {string} hash String returned from this.hash\r\n * @returns {string}\r\n */\r\nM.escapeHash = function (hash) {\r\n return hash.replace(/(:|\\.|\\[|\\]|,|=|\\/)/g, '\\\\$1');\r\n};\r\n\r\n/**\r\n * @typedef {Object} Edges\r\n * @property {Boolean} top If the top edge was exceeded\r\n * @property {Boolean} right If the right edge was exceeded\r\n * @property {Boolean} bottom If the bottom edge was exceeded\r\n * @property {Boolean} left If the left edge was exceeded\r\n */\r\n\r\n/**\r\n * @typedef {Object} Bounding\r\n * @property {Number} left left offset coordinate\r\n * @property {Number} top top offset coordinate\r\n * @property {Number} width\r\n * @property {Number} height\r\n */\r\n\r\n/**\r\n * Escapes hash from special characters\r\n * @param {Element} container Container element that acts as the boundary\r\n * @param {Bounding} bounding element bounding that is being checked\r\n * @param {Number} offset offset from edge that counts as exceeding\r\n * @returns {Edges}\r\n */\r\nM.checkWithinContainer = function (container, bounding, offset) {\r\n var edges = {\r\n top: false,\r\n right: false,\r\n bottom: false,\r\n left: false\r\n };\r\n\r\n var containerRect = container.getBoundingClientRect();\r\n // If body element is smaller than viewport, use viewport height instead.\r\n var containerBottom = container === document.body ? Math.max(containerRect.bottom, window.innerHeight) : containerRect.bottom;\r\n\r\n var scrollLeft = container.scrollLeft;\r\n var scrollTop = container.scrollTop;\r\n\r\n var scrolledX = bounding.left - scrollLeft;\r\n var scrolledY = bounding.top - scrollTop;\r\n\r\n // Check for container and viewport for each edge\r\n if (scrolledX < containerRect.left + offset || scrolledX < offset) {\r\n edges.left = true;\r\n }\r\n\r\n if (scrolledX + bounding.width > containerRect.right - offset || scrolledX + bounding.width > window.innerWidth - offset) {\r\n edges.right = true;\r\n }\r\n\r\n if (scrolledY < containerRect.top + offset || scrolledY < offset) {\r\n edges.top = true;\r\n }\r\n\r\n if (scrolledY + bounding.height > containerBottom - offset || scrolledY + bounding.height > window.innerHeight - offset) {\r\n edges.bottom = true;\r\n }\r\n\r\n return edges;\r\n};\r\n\r\nM.checkPossibleAlignments = function (el, container, bounding, offset) {\r\n var canAlign = {\r\n top: true,\r\n right: true,\r\n bottom: true,\r\n left: true,\r\n spaceOnTop: null,\r\n spaceOnRight: null,\r\n spaceOnBottom: null,\r\n spaceOnLeft: null\r\n };\r\n\r\n var containerAllowsOverflow = getComputedStyle(container).overflow === 'visible';\r\n var containerRect = container.getBoundingClientRect();\r\n var containerHeight = Math.min(containerRect.height, window.innerHeight);\r\n var containerWidth = Math.min(containerRect.width, window.innerWidth);\r\n var elOffsetRect = el.getBoundingClientRect();\r\n\r\n var scrollLeft = container.scrollLeft;\r\n var scrollTop = container.scrollTop;\r\n\r\n var scrolledX = bounding.left - scrollLeft;\r\n var scrolledYTopEdge = bounding.top - scrollTop;\r\n var scrolledYBottomEdge = bounding.top + elOffsetRect.height - scrollTop;\r\n\r\n // Check for container and viewport for left\r\n canAlign.spaceOnRight = !containerAllowsOverflow ? containerWidth - (scrolledX + bounding.width) : window.innerWidth - (elOffsetRect.left + bounding.width);\r\n if (canAlign.spaceOnRight < 0) {\r\n canAlign.left = false;\r\n }\r\n\r\n // Check for container and viewport for Right\r\n canAlign.spaceOnLeft = !containerAllowsOverflow ? scrolledX - bounding.width + elOffsetRect.width : elOffsetRect.right - bounding.width;\r\n if (canAlign.spaceOnLeft < 0) {\r\n canAlign.right = false;\r\n }\r\n\r\n // Check for container and viewport for Top\r\n canAlign.spaceOnBottom = !containerAllowsOverflow ? containerHeight - (scrolledYTopEdge + bounding.height + offset) : window.innerHeight - (elOffsetRect.top + bounding.height + offset);\r\n if (canAlign.spaceOnBottom < 0) {\r\n canAlign.top = false;\r\n }\r\n\r\n // Check for container and viewport for Bottom\r\n canAlign.spaceOnTop = !containerAllowsOverflow ? scrolledYBottomEdge - (bounding.height - offset) : elOffsetRect.bottom - (bounding.height + offset);\r\n if (canAlign.spaceOnTop < 0) {\r\n canAlign.bottom = false;\r\n }\r\n\r\n return canAlign;\r\n};\r\n\r\nM.getOverflowParent = function (element) {\r\n if (element == null) {\r\n return null;\r\n }\r\n\r\n if (element === document.body || getComputedStyle(element).overflow !== 'visible') {\r\n return element;\r\n }\r\n\r\n return M.getOverflowParent(element.parentElement);\r\n};\r\n\r\n/**\r\n * Gets id of component from a trigger\r\n * @param {Element} trigger trigger\r\n * @returns {string}\r\n */\r\nM.getIdFromTrigger = function (trigger) {\r\n var id = trigger.getAttribute('data-target');\r\n if (!id) {\r\n id = trigger.getAttribute('href');\r\n if (id) {\r\n id = id.slice(1);\r\n } else {\r\n id = '';\r\n }\r\n }\r\n return id;\r\n};\r\n\r\n/**\r\n * Multi browser support for document scroll top\r\n * @returns {Number}\r\n */\r\nM.getDocumentScrollTop = function () {\r\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n};\r\n\r\n/**\r\n * Multi browser support for document scroll left\r\n * @returns {Number}\r\n */\r\nM.getDocumentScrollLeft = function () {\r\n return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\r\n};\r\n\r\n/**\r\n * @typedef {Object} Edges\r\n * @property {Boolean} top If the top edge was exceeded\r\n * @property {Boolean} right If the right edge was exceeded\r\n * @property {Boolean} bottom If the bottom edge was exceeded\r\n * @property {Boolean} left If the left edge was exceeded\r\n */\r\n\r\n/**\r\n * @typedef {Object} Bounding\r\n * @property {Number} left left offset coordinate\r\n * @property {Number} top top offset coordinate\r\n * @property {Number} width\r\n * @property {Number} height\r\n */\r\n\r\n/**\r\n * Get time in ms\r\n * @license https://raw.github.com/jashkenas/underscore/master/LICENSE\r\n * @type {function}\r\n * @return {number}\r\n */\r\nvar getTime = Date.now || function () {\r\n return new Date().getTime();\r\n};\r\n\r\n/**\r\n * Returns a function, that, when invoked, will only be triggered at most once\r\n * during a given window of time. Normally, the throttled function will run\r\n * as much as it can, without ever going more than once per `wait` duration;\r\n * but if you'd like to disable the execution on the leading edge, pass\r\n * `{leading: false}`. To disable execution on the trailing edge, ditto.\r\n * @license https://raw.github.com/jashkenas/underscore/master/LICENSE\r\n * @param {function} func\r\n * @param {number} wait\r\n * @param {Object=} options\r\n * @returns {Function}\r\n */\r\nM.throttle = function (func, wait, options) {\r\n var context = void 0,\r\n args = void 0,\r\n result = void 0;\r\n var timeout = null;\r\n var previous = 0;\r\n options || (options = {});\r\n var later = function () {\r\n previous = options.leading === false ? 0 : getTime();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n context = args = null;\r\n };\r\n return function () {\r\n var now = getTime();\r\n if (!previous && options.leading === false) previous = now;\r\n var remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n if (remaining <= 0) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n previous = now;\r\n result = func.apply(context, args);\r\n context = args = null;\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n};\r\n\r\n/* Feature detection */\r\nvar passiveIfSupported = false;\r\ntry {\r\n window.addEventListener(\"test\", null, Object.defineProperty({}, \"passive\", {\r\n get: function () {\r\n passiveIfSupported = { passive: false };\r\n }\r\n }));\r\n} catch (err) {}\r\n; /*\r\n v2.2.0\r\n 2017 Julian Garnier\r\n Released under the MIT license\r\n */\r\nvar $jscomp = { scope: {} };$jscomp.defineProperty = \"function\" == typeof Object.defineProperties ? Object.defineProperty : function (e, r, p) {\r\n if (p.get || p.set) throw new TypeError(\"ES3 does not support getters and setters.\");e != Array.prototype && e != Object.prototype && (e[r] = p.value);\r\n};$jscomp.getGlobal = function (e) {\r\n return \"undefined\" != typeof window && window === e ? e : \"undefined\" != typeof global && null != global ? global : e;\r\n};$jscomp.global = $jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX = \"jscomp_symbol_\";\r\n$jscomp.initSymbol = function () {\r\n $jscomp.initSymbol = function () {};$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol);\r\n};$jscomp.symbolCounter_ = 0;$jscomp.Symbol = function (e) {\r\n return $jscomp.SYMBOL_PREFIX + (e || \"\") + $jscomp.symbolCounter_++;\r\n};\r\n$jscomp.initSymbolIterator = function () {\r\n $jscomp.initSymbol();var e = $jscomp.global.Symbol.iterator;e || (e = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol(\"iterator\"));\"function\" != typeof Array.prototype[e] && $jscomp.defineProperty(Array.prototype, e, { configurable: !0, writable: !0, value: function () {\r\n return $jscomp.arrayIterator(this);\r\n } });$jscomp.initSymbolIterator = function () {};\r\n};$jscomp.arrayIterator = function (e) {\r\n var r = 0;return $jscomp.iteratorPrototype(function () {\r\n return r < e.length ? { done: !1, value: e[r++] } : { done: !0 };\r\n });\r\n};\r\n$jscomp.iteratorPrototype = function (e) {\r\n $jscomp.initSymbolIterator();e = { next: e };e[$jscomp.global.Symbol.iterator] = function () {\r\n return this;\r\n };return e;\r\n};$jscomp.array = $jscomp.array || {};$jscomp.iteratorFromArray = function (e, r) {\r\n $jscomp.initSymbolIterator();e instanceof String && (e += \"\");var p = 0,\r\n m = { next: function () {\r\n if (p < e.length) {\r\n var u = p++;return { value: r(u, e[u]), done: !1 };\r\n }m.next = function () {\r\n return { done: !0, value: void 0 };\r\n };return m.next();\r\n } };m[Symbol.iterator] = function () {\r\n return m;\r\n };return m;\r\n};\r\n$jscomp.polyfill = function (e, r, p, m) {\r\n if (r) {\r\n p = $jscomp.global;e = e.split(\".\");for (m = 0; m < e.length - 1; m++) {\r\n var u = e[m];u in p || (p[u] = {});p = p[u];\r\n }e = e[e.length - 1];m = p[e];r = r(m);r != m && null != r && $jscomp.defineProperty(p, e, { configurable: !0, writable: !0, value: r });\r\n }\r\n};$jscomp.polyfill(\"Array.prototype.keys\", function (e) {\r\n return e ? e : function () {\r\n return $jscomp.iteratorFromArray(this, function (e) {\r\n return e;\r\n });\r\n };\r\n}, \"es6-impl\", \"es3\");var $jscomp$this = this;\r\n(function (r) {\r\n M.anime = r();\r\n})(function () {\r\n function e(a) {\r\n if (!h.col(a)) try {\r\n return document.querySelectorAll(a);\r\n } catch (c) {}\r\n }function r(a, c) {\r\n for (var d = a.length, b = 2 <= arguments.length ? arguments[1] : void 0, f = [], n = 0; n < d; n++) {\r\n if (n in a) {\r\n var k = a[n];c.call(b, k, n, a) && f.push(k);\r\n }\r\n }return f;\r\n }function p(a) {\r\n return a.reduce(function (a, d) {\r\n return a.concat(h.arr(d) ? p(d) : d);\r\n }, []);\r\n }function m(a) {\r\n if (h.arr(a)) return a;\r\n h.str(a) && (a = e(a) || a);return a instanceof NodeList || a instanceof HTMLCollection ? [].slice.call(a) : [a];\r\n }function u(a, c) {\r\n return a.some(function (a) {\r\n return a === c;\r\n });\r\n }function C(a) {\r\n var c = {},\r\n d;for (d in a) {\r\n c[d] = a[d];\r\n }return c;\r\n }function D(a, c) {\r\n var d = C(a),\r\n b;for (b in a) {\r\n d[b] = c.hasOwnProperty(b) ? c[b] : a[b];\r\n }return d;\r\n }function z(a, c) {\r\n var d = C(a),\r\n b;for (b in c) {\r\n d[b] = h.und(a[b]) ? c[b] : a[b];\r\n }return d;\r\n }function T(a) {\r\n a = a.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, function (a, c, d, k) {\r\n return c + c + d + d + k + k;\r\n });var c = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(a);\r\n a = parseInt(c[1], 16);var d = parseInt(c[2], 16),\r\n c = parseInt(c[3], 16);return \"rgba(\" + a + \",\" + d + \",\" + c + \",1)\";\r\n }function U(a) {\r\n function c(a, c, b) {\r\n 0 > b && (b += 1);1 < b && --b;return b < 1 / 6 ? a + 6 * (c - a) * b : .5 > b ? c : b < 2 / 3 ? a + (c - a) * (2 / 3 - b) * 6 : a;\r\n }var d = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(a) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(a);a = parseInt(d[1]) / 360;var b = parseInt(d[2]) / 100,\r\n f = parseInt(d[3]) / 100,\r\n d = d[4] || 1;if (0 == b) f = b = a = f;else {\r\n var n = .5 > f ? f * (1 + b) : f + b - f * b,\r\n k = 2 * f - n,\r\n f = c(k, n, a + 1 / 3),\r\n b = c(k, n, a);a = c(k, n, a - 1 / 3);\r\n }return \"rgba(\" + 255 * f + \",\" + 255 * b + \",\" + 255 * a + \",\" + d + \")\";\r\n }function y(a) {\r\n if (a = /([\\+\\-]?[0-9#\\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a)) return a[2];\r\n }function V(a) {\r\n if (-1 < a.indexOf(\"translate\") || \"perspective\" === a) return \"px\";if (-1 < a.indexOf(\"rotate\") || -1 < a.indexOf(\"skew\")) return \"deg\";\r\n }function I(a, c) {\r\n return h.fnc(a) ? a(c.target, c.id, c.total) : a;\r\n }function E(a, c) {\r\n if (c in a.style) return getComputedStyle(a).getPropertyValue(c.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase()) || \"0\";\r\n }function J(a, c) {\r\n if (h.dom(a) && u(W, c)) return \"transform\";if (h.dom(a) && (a.getAttribute(c) || h.svg(a) && a[c])) return \"attribute\";if (h.dom(a) && \"transform\" !== c && E(a, c)) return \"css\";if (null != a[c]) return \"object\";\r\n }function X(a, c) {\r\n var d = V(c),\r\n d = -1 < c.indexOf(\"scale\") ? 1 : 0 + d;a = a.style.transform;if (!a) return d;for (var b = [], f = [], n = [], k = /(\\w+)\\((.+?)\\)/g; b = k.exec(a);) {\r\n f.push(b[1]), n.push(b[2]);\r\n }a = r(n, function (a, b) {\r\n return f[b] === c;\r\n });return a.length ? a[0] : d;\r\n }function K(a, c) {\r\n switch (J(a, c)) {case \"transform\":\r\n return X(a, c);case \"css\":\r\n return E(a, c);case \"attribute\":\r\n return a.getAttribute(c);}return a[c] || 0;\r\n }function L(a, c) {\r\n var d = /^(\\*=|\\+=|-=)/.exec(a);if (!d) return a;var b = y(a) || 0;c = parseFloat(c);a = parseFloat(a.replace(d[0], \"\"));switch (d[0][0]) {case \"+\":\r\n return c + a + b;case \"-\":\r\n return c - a + b;case \"*\":\r\n return c * a + b;}\r\n }function F(a, c) {\r\n return Math.sqrt(Math.pow(c.x - a.x, 2) + Math.pow(c.y - a.y, 2));\r\n }function M(a) {\r\n a = a.points;for (var c = 0, d, b = 0; b < a.numberOfItems; b++) {\r\n var f = a.getItem(b);0 < b && (c += F(d, f));d = f;\r\n }return c;\r\n }function N(a) {\r\n if (a.getTotalLength) return a.getTotalLength();switch (a.tagName.toLowerCase()) {case \"circle\":\r\n return 2 * Math.PI * a.getAttribute(\"r\");case \"rect\":\r\n return 2 * a.getAttribute(\"width\") + 2 * a.getAttribute(\"height\");case \"line\":\r\n return F({ x: a.getAttribute(\"x1\"), y: a.getAttribute(\"y1\") }, { x: a.getAttribute(\"x2\"), y: a.getAttribute(\"y2\") });case \"polyline\":\r\n return M(a);case \"polygon\":\r\n var c = a.points;return M(a) + F(c.getItem(c.numberOfItems - 1), c.getItem(0));}\r\n }function Y(a, c) {\r\n function d(b) {\r\n b = void 0 === b ? 0 : b;return a.el.getPointAtLength(1 <= c + b ? c + b : 0);\r\n }var b = d(),\r\n f = d(-1),\r\n n = d(1);switch (a.property) {case \"x\":\r\n return b.x;case \"y\":\r\n return b.y;\r\n case \"angle\":\r\n return 180 * Math.atan2(n.y - f.y, n.x - f.x) / Math.PI;}\r\n }function O(a, c) {\r\n var d = /-?\\d*\\.?\\d+/g,\r\n b;b = h.pth(a) ? a.totalLength : a;if (h.col(b)) {\r\n if (h.rgb(b)) {\r\n var f = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(b);b = f ? \"rgba(\" + f[1] + \",1)\" : b;\r\n } else b = h.hex(b) ? T(b) : h.hsl(b) ? U(b) : void 0;\r\n } else f = (f = y(b)) ? b.substr(0, b.length - f.length) : b, b = c && !/\\s/g.test(b) ? f + c : f;b += \"\";return { original: b, numbers: b.match(d) ? b.match(d).map(Number) : [0], strings: h.str(a) || c ? b.split(d) : [] };\r\n }function P(a) {\r\n a = a ? p(h.arr(a) ? a.map(m) : m(a)) : [];return r(a, function (a, d, b) {\r\n return b.indexOf(a) === d;\r\n });\r\n }function Z(a) {\r\n var c = P(a);return c.map(function (a, b) {\r\n return { target: a, id: b, total: c.length };\r\n });\r\n }function aa(a, c) {\r\n var d = C(c);if (h.arr(a)) {\r\n var b = a.length;2 !== b || h.obj(a[0]) ? h.fnc(c.duration) || (d.duration = c.duration / b) : a = { value: a };\r\n }return m(a).map(function (a, b) {\r\n b = b ? 0 : c.delay;a = h.obj(a) && !h.pth(a) ? a : { value: a };h.und(a.delay) && (a.delay = b);return a;\r\n }).map(function (a) {\r\n return z(a, d);\r\n });\r\n }function ba(a, c) {\r\n var d = {},\r\n b;for (b in a) {\r\n var f = I(a[b], c);h.arr(f) && (f = f.map(function (a) {\r\n return I(a, c);\r\n }), 1 === f.length && (f = f[0]));d[b] = f;\r\n }d.duration = parseFloat(d.duration);d.delay = parseFloat(d.delay);return d;\r\n }function ca(a) {\r\n return h.arr(a) ? A.apply(this, a) : Q[a];\r\n }function da(a, c) {\r\n var d;return a.tweens.map(function (b) {\r\n b = ba(b, c);var f = b.value,\r\n e = K(c.target, a.name),\r\n k = d ? d.to.original : e,\r\n k = h.arr(f) ? f[0] : k,\r\n w = L(h.arr(f) ? f[1] : f, k),\r\n e = y(w) || y(k) || y(e);b.from = O(k, e);b.to = O(w, e);b.start = d ? d.end : a.offset;b.end = b.start + b.delay + b.duration;b.easing = ca(b.easing);b.elasticity = (1E3 - Math.min(Math.max(b.elasticity, 1), 999)) / 1E3;b.isPath = h.pth(f);b.isColor = h.col(b.from.original);b.isColor && (b.round = 1);return d = b;\r\n });\r\n }function ea(a, c) {\r\n return r(p(a.map(function (a) {\r\n return c.map(function (b) {\r\n var c = J(a.target, b.name);if (c) {\r\n var d = da(b, a);b = { type: c, property: b.name, animatable: a, tweens: d, duration: d[d.length - 1].end, delay: d[0].delay };\r\n } else b = void 0;return b;\r\n });\r\n })), function (a) {\r\n return !h.und(a);\r\n });\r\n }function R(a, c, d, b) {\r\n var f = \"delay\" === a;return c.length ? (f ? Math.min : Math.max).apply(Math, c.map(function (b) {\r\n return b[a];\r\n })) : f ? b.delay : d.offset + b.delay + b.duration;\r\n }function fa(a) {\r\n var c = D(ga, a),\r\n d = D(S, a),\r\n b = Z(a.targets),\r\n f = [],\r\n e = z(c, d),\r\n k;for (k in a) {\r\n e.hasOwnProperty(k) || \"targets\" === k || f.push({ name: k, offset: e.offset, tweens: aa(a[k], d) });\r\n }a = ea(b, f);return z(c, { children: [], animatables: b, animations: a, duration: R(\"duration\", a, c, d), delay: R(\"delay\", a, c, d) });\r\n }function q(a) {\r\n function c() {\r\n return window.Promise && new Promise(function (a) {\r\n return p = a;\r\n });\r\n }function d(a) {\r\n return g.reversed ? g.duration - a : a;\r\n }function b(a) {\r\n for (var b = 0, c = {}, d = g.animations, f = d.length; b < f;) {\r\n var e = d[b],\r\n k = e.animatable,\r\n h = e.tweens,\r\n n = h.length - 1,\r\n l = h[n];n && (l = r(h, function (b) {\r\n return a < b.end;\r\n })[0] || l);for (var h = Math.min(Math.max(a - l.start - l.delay, 0), l.duration) / l.duration, w = isNaN(h) ? 1 : l.easing(h, l.elasticity), h = l.to.strings, p = l.round, n = [], m = void 0, m = l.to.numbers.length, t = 0; t < m; t++) {\r\n var x = void 0,\r\n x = l.to.numbers[t],\r\n q = l.from.numbers[t],\r\n x = l.isPath ? Y(l.value, w * x) : q + w * (x - q);p && (l.isColor && 2 < t || (x = Math.round(x * p) / p));n.push(x);\r\n }if (l = h.length) for (m = h[0], w = 0; w < l; w++) {\r\n p = h[w + 1], t = n[w], isNaN(t) || (m = p ? m + (t + p) : m + (t + \" \"));\r\n } else m = n[0];ha[e.type](k.target, e.property, m, c, k.id);e.currentValue = m;b++;\r\n }if (b = Object.keys(c).length) for (d = 0; d < b; d++) {\r\n H || (H = E(document.body, \"transform\") ? \"transform\" : \"-webkit-transform\"), g.animatables[d].target.style[H] = c[d].join(\" \");\r\n }g.currentTime = a;g.progress = a / g.duration * 100;\r\n }function f(a) {\r\n if (g[a]) g[a](g);\r\n }function e() {\r\n g.remaining && !0 !== g.remaining && g.remaining--;\r\n }function k(a) {\r\n var k = g.duration,\r\n n = g.offset,\r\n w = n + g.delay,\r\n r = g.currentTime,\r\n x = g.reversed,\r\n q = d(a);if (g.children.length) {\r\n var u = g.children,\r\n v = u.length;\r\n if (q >= g.currentTime) for (var G = 0; G < v; G++) {\r\n u[G].seek(q);\r\n } else for (; v--;) {\r\n u[v].seek(q);\r\n }\r\n }if (q >= w || !k) g.began || (g.began = !0, f(\"begin\")), f(\"run\");if (q > n && q < k) b(q);else if (q <= n && 0 !== r && (b(0), x && e()), q >= k && r !== k || !k) b(k), x || e();f(\"update\");a >= k && (g.remaining ? (t = h, \"alternate\" === g.direction && (g.reversed = !g.reversed)) : (g.pause(), g.completed || (g.completed = !0, f(\"complete\"), \"Promise\" in window && (p(), m = c()))), l = 0);\r\n }a = void 0 === a ? {} : a;var h,\r\n t,\r\n l = 0,\r\n p = null,\r\n m = c(),\r\n g = fa(a);g.reset = function () {\r\n var a = g.direction,\r\n c = g.loop;g.currentTime = 0;g.progress = 0;g.paused = !0;g.began = !1;g.completed = !1;g.reversed = \"reverse\" === a;g.remaining = \"alternate\" === a && 1 === c ? 2 : c;b(0);for (a = g.children.length; a--;) {\r\n g.children[a].reset();\r\n }\r\n };g.tick = function (a) {\r\n h = a;t || (t = h);k((l + h - t) * q.speed);\r\n };g.seek = function (a) {\r\n k(d(a));\r\n };g.pause = function () {\r\n var a = v.indexOf(g);-1 < a && v.splice(a, 1);g.paused = !0;\r\n };g.play = function () {\r\n g.paused && (g.paused = !1, t = 0, l = d(g.currentTime), v.push(g), B || ia());\r\n };g.reverse = function () {\r\n g.reversed = !g.reversed;t = 0;l = d(g.currentTime);\r\n };g.restart = function () {\r\n g.pause();\r\n g.reset();g.play();\r\n };g.finished = m;g.reset();g.autoplay && g.play();return g;\r\n }var ga = { update: void 0, begin: void 0, run: void 0, complete: void 0, loop: 1, direction: \"normal\", autoplay: !0, offset: 0 },\r\n S = { duration: 1E3, delay: 0, easing: \"easeOutElastic\", elasticity: 500, round: 0 },\r\n W = \"translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective\".split(\" \"),\r\n H,\r\n h = { arr: function (a) {\r\n return Array.isArray(a);\r\n }, obj: function (a) {\r\n return -1 < Object.prototype.toString.call(a).indexOf(\"Object\");\r\n },\r\n pth: function (a) {\r\n return h.obj(a) && a.hasOwnProperty(\"totalLength\");\r\n }, svg: function (a) {\r\n return a instanceof SVGElement;\r\n }, dom: function (a) {\r\n return a.nodeType || h.svg(a);\r\n }, str: function (a) {\r\n return \"string\" === typeof a;\r\n }, fnc: function (a) {\r\n return \"function\" === typeof a;\r\n }, und: function (a) {\r\n return \"undefined\" === typeof a;\r\n }, hex: function (a) {\r\n return (/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)\r\n );\r\n }, rgb: function (a) {\r\n return (/^rgb/.test(a)\r\n );\r\n }, hsl: function (a) {\r\n return (/^hsl/.test(a)\r\n );\r\n }, col: function (a) {\r\n return h.hex(a) || h.rgb(a) || h.hsl(a);\r\n } },\r\n A = function () {\r\n function a(a, d, b) {\r\n return (((1 - 3 * b + 3 * d) * a + (3 * b - 6 * d)) * a + 3 * d) * a;\r\n }return function (c, d, b, f) {\r\n if (0 <= c && 1 >= c && 0 <= b && 1 >= b) {\r\n var e = new Float32Array(11);if (c !== d || b !== f) for (var k = 0; 11 > k; ++k) {\r\n e[k] = a(.1 * k, c, b);\r\n }return function (k) {\r\n if (c === d && b === f) return k;if (0 === k) return 0;if (1 === k) return 1;for (var h = 0, l = 1; 10 !== l && e[l] <= k; ++l) {\r\n h += .1;\r\n }--l;var l = h + (k - e[l]) / (e[l + 1] - e[l]) * .1,\r\n n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (.001 <= n) {\r\n for (h = 0; 4 > h; ++h) {\r\n n = 3 * (1 - 3 * b + 3 * c) * l * l + 2 * (3 * b - 6 * c) * l + 3 * c;if (0 === n) break;var m = a(l, c, b) - k,\r\n l = l - m / n;\r\n }k = l;\r\n } else if (0 === n) k = l;else {\r\n var l = h,\r\n h = h + .1,\r\n g = 0;do {\r\n m = l + (h - l) / 2, n = a(m, c, b) - k, 0 < n ? h = m : l = m;\r\n } while (1e-7 < Math.abs(n) && 10 > ++g);k = m;\r\n }return a(k, d, f);\r\n };\r\n }\r\n };\r\n }(),\r\n Q = function () {\r\n function a(a, b) {\r\n return 0 === a || 1 === a ? a : -Math.pow(2, 10 * (a - 1)) * Math.sin(2 * (a - 1 - b / (2 * Math.PI) * Math.asin(1)) * Math.PI / b);\r\n }var c = \"Quad Cubic Quart Quint Sine Expo Circ Back Elastic\".split(\" \"),\r\n d = { In: [[.55, .085, .68, .53], [.55, .055, .675, .19], [.895, .03, .685, .22], [.755, .05, .855, .06], [.47, 0, .745, .715], [.95, .05, .795, .035], [.6, .04, .98, .335], [.6, -.28, .735, .045], a], Out: [[.25, .46, .45, .94], [.215, .61, .355, 1], [.165, .84, .44, 1], [.23, 1, .32, 1], [.39, .575, .565, 1], [.19, 1, .22, 1], [.075, .82, .165, 1], [.175, .885, .32, 1.275], function (b, c) {\r\n return 1 - a(1 - b, c);\r\n }], InOut: [[.455, .03, .515, .955], [.645, .045, .355, 1], [.77, 0, .175, 1], [.86, 0, .07, 1], [.445, .05, .55, .95], [1, 0, 0, 1], [.785, .135, .15, .86], [.68, -.55, .265, 1.55], function (b, c) {\r\n return .5 > b ? a(2 * b, c) / 2 : 1 - a(-2 * b + 2, c) / 2;\r\n }] },\r\n b = { linear: A(.25, .25, .75, .75) },\r\n f = {},\r\n e;for (e in d) {\r\n f.type = e, d[f.type].forEach(function (a) {\r\n return function (d, f) {\r\n b[\"ease\" + a.type + c[f]] = h.fnc(d) ? d : A.apply($jscomp$this, d);\r\n };\r\n }(f)), f = { type: f.type };\r\n }return b;\r\n }(),\r\n ha = { css: function (a, c, d) {\r\n return a.style[c] = d;\r\n }, attribute: function (a, c, d) {\r\n return a.setAttribute(c, d);\r\n }, object: function (a, c, d) {\r\n return a[c] = d;\r\n }, transform: function (a, c, d, b, f) {\r\n b[f] || (b[f] = []);b[f].push(c + \"(\" + d + \")\");\r\n } },\r\n v = [],\r\n B = 0,\r\n ia = function () {\r\n function a() {\r\n B = requestAnimationFrame(c);\r\n }function c(c) {\r\n var b = v.length;if (b) {\r\n for (var d = 0; d < b;) {\r\n v[d] && v[d].tick(c), d++;\r\n }a();\r\n } else cancelAnimationFrame(B), B = 0;\r\n }return a;\r\n }();q.version = \"2.2.0\";q.speed = 1;q.running = v;q.remove = function (a) {\r\n a = P(a);for (var c = v.length; c--;) {\r\n for (var d = v[c], b = d.animations, f = b.length; f--;) {\r\n u(a, b[f].animatable.target) && (b.splice(f, 1), b.length || d.pause());\r\n }\r\n }\r\n };q.getValue = K;q.path = function (a, c) {\r\n var d = h.str(a) ? e(a)[0] : a,\r\n b = c || 100;return function (a) {\r\n return { el: d, property: a, totalLength: N(d) * (b / 100) };\r\n };\r\n };q.setDashoffset = function (a) {\r\n var c = N(a);a.setAttribute(\"stroke-dasharray\", c);return c;\r\n };q.bezier = A;q.easings = Q;q.timeline = function (a) {\r\n var c = q(a);c.pause();c.duration = 0;c.add = function (d) {\r\n c.children.forEach(function (a) {\r\n a.began = !0;a.completed = !0;\r\n });m(d).forEach(function (b) {\r\n var d = z(b, D(S, a || {}));d.targets = d.targets || a.targets;b = c.duration;var e = d.offset;d.autoplay = !1;d.direction = c.direction;d.offset = h.und(e) ? b : L(e, b);c.began = !0;c.completed = !0;c.seek(d.offset);d = q(d);d.began = !0;d.completed = !0;d.duration > b && (c.duration = d.duration);c.children.push(d);\r\n });c.seek(0);c.reset();c.autoplay && c.restart();return c;\r\n };return c;\r\n };q.random = function (a, c) {\r\n return Math.floor(Math.random() * (c - a + 1)) + a;\r\n };return q;\r\n});\r\n;(function ($, anim) {\r\n 'use strict';\r\n\r\n var _defaults = {\r\n accordion: true,\r\n onOpenStart: undefined,\r\n onOpenEnd: undefined,\r\n onCloseStart: undefined,\r\n onCloseEnd: undefined,\r\n inDuration: 300,\r\n outDuration: 300\r\n };\r\n\r\n /**\r\n * @class\r\n *\r\n */\r\n\r\n var Collapsible = function (_Component) {\r\n _inherits(Collapsible, _Component);\r\n\r\n /**\r\n * Construct Collapsible instance\r\n * @constructor\r\n * @param {Element} el\r\n * @param {Object} options\r\n */\r\n function Collapsible(el, options) {\r\n _classCallCheck(this, Collapsible);\r\n\r\n var _this3 = _possibleConstructorReturn(this, (Collapsible.__proto__ || Object.getPrototypeOf(Collapsible)).call(this, Collapsible, el, options));\r\n\r\n _this3.el.M_Collapsible = _this3;\r\n\r\n /**\r\n * Options for the collapsible\r\n * @member Collapsible#options\r\n * @prop {Boolean} [accordion=false] - Type of the collapsible\r\n * @prop {Function} onOpenStart - Callback function called before collapsible is opened\r\n * @prop {Function} onOpenEnd - Callback function called after collapsible is opened\r\n * @prop {Function} onCloseStart - Callback function called before collapsible is closed\r\n * @prop {Function} onCloseEnd - Callback function called after collapsible is closed\r\n * @prop {Number} inDuration - Transition in duration in milliseconds.\r\n * @prop {Number} outDuration - Transition duration in milliseconds.\r\n */\r\n _this3.options = $.extend({}, Collapsible.defaults, options);\r\n\r\n // Setup tab indices\r\n _this3.$headers = _this3.$el.children('li').children('.collapsible-header');\r\n _this3.$headers.attr('tabindex', 0);\r\n\r\n _this3._setupEventHandlers();\r\n\r\n // Open first active\r\n var $activeBodies = _this3.$el.children('li.active').children('.collapsible-body');\r\n if (_this3.options.accordion) {\r\n // Handle Accordion\r\n $activeBodies.first().css('display', 'block');\r\n } else {\r\n // Handle Expandables\r\n $activeBodies.css('display', 'block');\r\n }\r\n return _this3;\r\n }\r\n\r\n _createClass(Collapsible, [{\r\n key: \"destroy\",\r\n\r\n\r\n /**\r\n * Teardown component\r\n */\r\n value: function destroy() {\r\n this._removeEventHandlers();\r\n this.el.M_Collapsible = undefined;\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n var _this4 = this;\r\n\r\n this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind(this);\r\n this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind(this);\r\n this.el.addEventListener('click', this._handleCollapsibleClickBound);\r\n this.$headers.each(function (header) {\r\n header.addEventListener('keydown', _this4._handleCollapsibleKeydownBound);\r\n });\r\n }\r\n\r\n /**\r\n * Remove Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n var _this5 = this;\r\n\r\n this.el.removeEventListener('click', this._handleCollapsibleClickBound);\r\n this.$headers.each(function (header) {\r\n header.removeEventListener('keydown', _this5._handleCollapsibleKeydownBound);\r\n });\r\n }\r\n\r\n /**\r\n * Handle Collapsible Click\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleCollapsibleClick\",\r\n value: function _handleCollapsibleClick(e) {\r\n var $header = $(e.target).closest('.collapsible-header');\r\n if (e.target && $header.length) {\r\n var $collapsible = $header.closest('.collapsible');\r\n if ($collapsible[0] === this.el) {\r\n var $collapsibleLi = $header.closest('li');\r\n var $collapsibleLis = $collapsible.children('li');\r\n var isActive = $collapsibleLi[0].classList.contains('active');\r\n var index = $collapsibleLis.index($collapsibleLi);\r\n\r\n if (isActive) {\r\n this.close(index);\r\n } else {\r\n this.open(index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Handle Collapsible Keydown\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleCollapsibleKeydown\",\r\n value: function _handleCollapsibleKeydown(e) {\r\n if (e.keyCode === 13) {\r\n this._handleCollapsibleClickBound(e);\r\n }\r\n }\r\n\r\n /**\r\n * Animate in collapsible slide\r\n * @param {Number} index - 0th index of slide\r\n */\r\n\r\n }, {\r\n key: \"_animateIn\",\r\n value: function _animateIn(index) {\r\n var _this6 = this;\r\n\r\n var $collapsibleLi = this.$el.children('li').eq(index);\r\n if ($collapsibleLi.length) {\r\n var $body = $collapsibleLi.children('.collapsible-body');\r\n\r\n anim.remove($body[0]);\r\n $body.css({\r\n display: 'block',\r\n overflow: 'hidden',\r\n height: 0,\r\n paddingTop: '',\r\n paddingBottom: ''\r\n });\r\n\r\n var pTop = $body.css('padding-top');\r\n var pBottom = $body.css('padding-bottom');\r\n var finalHeight = $body[0].scrollHeight;\r\n $body.css({\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n });\r\n\r\n anim({\r\n targets: $body[0],\r\n height: finalHeight,\r\n paddingTop: pTop,\r\n paddingBottom: pBottom,\r\n duration: this.options.inDuration,\r\n easing: 'easeInOutCubic',\r\n complete: function (anim) {\r\n $body.css({\r\n overflow: '',\r\n paddingTop: '',\r\n paddingBottom: '',\r\n height: ''\r\n });\r\n\r\n // onOpenEnd callback\r\n if (typeof _this6.options.onOpenEnd === 'function') {\r\n _this6.options.onOpenEnd.call(_this6, $collapsibleLi[0]);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Animate out collapsible slide\r\n * @param {Number} index - 0th index of slide to open\r\n */\r\n\r\n }, {\r\n key: \"_animateOut\",\r\n value: function _animateOut(index) {\r\n var _this7 = this;\r\n\r\n var $collapsibleLi = this.$el.children('li').eq(index);\r\n if ($collapsibleLi.length) {\r\n var $body = $collapsibleLi.children('.collapsible-body');\r\n anim.remove($body[0]);\r\n $body.css('overflow', 'hidden');\r\n anim({\r\n targets: $body[0],\r\n height: 0,\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n duration: this.options.outDuration,\r\n easing: 'easeInOutCubic',\r\n complete: function () {\r\n $body.css({\r\n height: '',\r\n overflow: '',\r\n padding: '',\r\n display: ''\r\n });\r\n\r\n // onCloseEnd callback\r\n if (typeof _this7.options.onCloseEnd === 'function') {\r\n _this7.options.onCloseEnd.call(_this7, $collapsibleLi[0]);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Open Collapsible\r\n * @param {Number} index - 0th index of slide\r\n */\r\n\r\n }, {\r\n key: \"open\",\r\n value: function open(index) {\r\n var _this8 = this;\r\n\r\n var $collapsibleLi = this.$el.children('li').eq(index);\r\n if ($collapsibleLi.length && !$collapsibleLi[0].classList.contains('active')) {\r\n // onOpenStart callback\r\n if (typeof this.options.onOpenStart === 'function') {\r\n this.options.onOpenStart.call(this, $collapsibleLi[0]);\r\n }\r\n\r\n // Handle accordion behavior\r\n if (this.options.accordion) {\r\n var $collapsibleLis = this.$el.children('li');\r\n var $activeLis = this.$el.children('li.active');\r\n $activeLis.each(function (el) {\r\n var index = $collapsibleLis.index($(el));\r\n _this8.close(index);\r\n });\r\n }\r\n\r\n // Animate in\r\n $collapsibleLi[0].classList.add('active');\r\n this._animateIn(index);\r\n }\r\n }\r\n\r\n /**\r\n * Close Collapsible\r\n * @param {Number} index - 0th index of slide\r\n */\r\n\r\n }, {\r\n key: \"close\",\r\n value: function close(index) {\r\n var $collapsibleLi = this.$el.children('li').eq(index);\r\n if ($collapsibleLi.length && $collapsibleLi[0].classList.contains('active')) {\r\n // onCloseStart callback\r\n if (typeof this.options.onCloseStart === 'function') {\r\n this.options.onCloseStart.call(this, $collapsibleLi[0]);\r\n }\r\n\r\n // Animate out\r\n $collapsibleLi[0].classList.remove('active');\r\n this._animateOut(index);\r\n }\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(Collapsible.__proto__ || Object.getPrototypeOf(Collapsible), \"init\", this).call(this, this, els, options);\r\n }\r\n\r\n /**\r\n * Get Instance\r\n */\r\n\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_Collapsible;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return Collapsible;\r\n }(Component);\r\n\r\n M.Collapsible = Collapsible;\r\n\r\n if (M.jQueryLoaded) {\r\n M.initializeJqueryWrapper(Collapsible, 'collapsible', 'M_Collapsible');\r\n }\r\n})(cash, M.anime);\r\n;(function ($, anim) {\r\n 'use strict';\r\n\r\n var _defaults = {\r\n alignment: 'left',\r\n autoFocus: true,\r\n constrainWidth: true,\r\n container: null,\r\n coverTrigger: true,\r\n closeOnClick: true,\r\n hover: false,\r\n inDuration: 150,\r\n outDuration: 250,\r\n onOpenStart: null,\r\n onOpenEnd: null,\r\n onCloseStart: null,\r\n onCloseEnd: null,\r\n onItemClick: null\r\n };\r\n\r\n /**\r\n * @class\r\n */\r\n\r\n var Dropdown = function (_Component2) {\r\n _inherits(Dropdown, _Component2);\r\n\r\n function Dropdown(el, options) {\r\n _classCallCheck(this, Dropdown);\r\n\r\n var _this9 = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, Dropdown, el, options));\r\n\r\n _this9.el.M_Dropdown = _this9;\r\n Dropdown._dropdowns.push(_this9);\r\n\r\n _this9.id = M.getIdFromTrigger(el);\r\n _this9.dropdownEl = document.getElementById(_this9.id);\r\n _this9.$dropdownEl = $(_this9.dropdownEl);\r\n\r\n /**\r\n * Options for the dropdown\r\n * @member Dropdown#options\r\n * @prop {String} [alignment='left'] - Edge which the dropdown is aligned to\r\n * @prop {Boolean} [autoFocus=true] - Automatically focus dropdown el for keyboard\r\n * @prop {Boolean} [constrainWidth=true] - Constrain width to width of the button\r\n * @prop {Element} container - Container element to attach dropdown to (optional)\r\n * @prop {Boolean} [coverTrigger=true] - Place dropdown over trigger\r\n * @prop {Boolean} [closeOnClick=true] - Close on click of dropdown item\r\n * @prop {Boolean} [hover=false] - Open dropdown on hover\r\n * @prop {Number} [inDuration=150] - Duration of open animation in ms\r\n * @prop {Number} [outDuration=250] - Duration of close animation in ms\r\n * @prop {Function} onOpenStart - Function called when dropdown starts opening\r\n * @prop {Function} onOpenEnd - Function called when dropdown finishes opening\r\n * @prop {Function} onCloseStart - Function called when dropdown starts closing\r\n * @prop {Function} onCloseEnd - Function called when dropdown finishes closing\r\n */\r\n _this9.options = $.extend({}, Dropdown.defaults, options);\r\n\r\n /**\r\n * Describes open/close state of dropdown\r\n * @type {Boolean}\r\n */\r\n _this9.isOpen = false;\r\n\r\n /**\r\n * Describes if dropdown content is scrollable\r\n * @type {Boolean}\r\n */\r\n _this9.isScrollable = false;\r\n\r\n /**\r\n * Describes if touch moving on dropdown content\r\n * @type {Boolean}\r\n */\r\n _this9.isTouchMoving = false;\r\n\r\n _this9.focusedIndex = -1;\r\n _this9.filterQuery = [];\r\n\r\n // Move dropdown-content after dropdown-trigger\r\n _this9._moveDropdown();\r\n\r\n _this9._makeDropdownFocusable();\r\n _this9._resetFilterQueryBound = _this9._resetFilterQuery.bind(_this9);\r\n _this9._handleDocumentClickBound = _this9._handleDocumentClick.bind(_this9);\r\n _this9._handleDocumentTouchmoveBound = _this9._handleDocumentTouchmove.bind(_this9);\r\n _this9._handleDropdownClickBound = _this9._handleDropdownClick.bind(_this9);\r\n _this9._handleDropdownKeydownBound = _this9._handleDropdownKeydown.bind(_this9);\r\n _this9._handleTriggerKeydownBound = _this9._handleTriggerKeydown.bind(_this9);\r\n _this9._setupEventHandlers();\r\n return _this9;\r\n }\r\n\r\n _createClass(Dropdown, [{\r\n key: \"destroy\",\r\n\r\n\r\n /**\r\n * Teardown component\r\n */\r\n value: function destroy() {\r\n this._resetDropdownStyles();\r\n this._removeEventHandlers();\r\n Dropdown._dropdowns.splice(Dropdown._dropdowns.indexOf(this), 1);\r\n this.el.M_Dropdown = undefined;\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n // Trigger keydown handler\r\n this.el.addEventListener('keydown', this._handleTriggerKeydownBound);\r\n\r\n // Item click handler\r\n this.dropdownEl.addEventListener('click', this._handleDropdownClickBound);\r\n\r\n // Hover event handlers\r\n if (this.options.hover) {\r\n this._handleMouseEnterBound = this._handleMouseEnter.bind(this);\r\n this.el.addEventListener('mouseenter', this._handleMouseEnterBound);\r\n this._handleMouseLeaveBound = this._handleMouseLeave.bind(this);\r\n this.el.addEventListener('mouseleave', this._handleMouseLeaveBound);\r\n this.dropdownEl.addEventListener('mouseleave', this._handleMouseLeaveBound);\r\n\r\n // Click event handlers\r\n } else {\r\n this._handleClickBound = this._handleClick.bind(this);\r\n this.el.addEventListener('click', this._handleClickBound);\r\n }\r\n }\r\n\r\n /**\r\n * Remove Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n this.el.removeEventListener('keydown', this._handleTriggerKeydownBound);\r\n this.dropdownEl.removeEventListener('click', this._handleDropdownClickBound);\r\n\r\n if (this.options.hover) {\r\n this.el.removeEventListener('mouseenter', this._handleMouseEnterBound);\r\n this.el.removeEventListener('mouseleave', this._handleMouseLeaveBound);\r\n this.dropdownEl.removeEventListener('mouseleave', this._handleMouseLeaveBound);\r\n } else {\r\n this.el.removeEventListener('click', this._handleClickBound);\r\n }\r\n }\r\n }, {\r\n key: \"_setupTemporaryEventHandlers\",\r\n value: function _setupTemporaryEventHandlers() {\r\n // Use capture phase event handler to prevent click\r\n document.body.addEventListener('click', this._handleDocumentClickBound, true);\r\n document.body.addEventListener('touchmove', this._handleDocumentTouchmoveBound);\r\n this.dropdownEl.addEventListener('keydown', this._handleDropdownKeydownBound);\r\n }\r\n }, {\r\n key: \"_removeTemporaryEventHandlers\",\r\n value: function _removeTemporaryEventHandlers() {\r\n // Use capture phase event handler to prevent click\r\n document.body.removeEventListener('click', this._handleDocumentClickBound, true);\r\n document.body.removeEventListener('touchmove', this._handleDocumentTouchmoveBound);\r\n this.dropdownEl.removeEventListener('keydown', this._handleDropdownKeydownBound);\r\n }\r\n }, {\r\n key: \"_handleClick\",\r\n value: function _handleClick(e) {\r\n e.preventDefault();\r\n this.open();\r\n }\r\n }, {\r\n key: \"_handleMouseEnter\",\r\n value: function _handleMouseEnter() {\r\n this.open();\r\n }\r\n }, {\r\n key: \"_handleMouseLeave\",\r\n value: function _handleMouseLeave(e) {\r\n var toEl = e.toElement || e.relatedTarget;\r\n var leaveToDropdownContent = !!$(toEl).closest('.dropdown-content').length;\r\n var leaveToActiveDropdownTrigger = false;\r\n\r\n var $closestTrigger = $(toEl).closest('.dropdown-trigger');\r\n if ($closestTrigger.length && !!$closestTrigger[0].M_Dropdown && $closestTrigger[0].M_Dropdown.isOpen) {\r\n leaveToActiveDropdownTrigger = true;\r\n }\r\n\r\n // Close hover dropdown if mouse did not leave to either active dropdown-trigger or dropdown-content\r\n if (!leaveToActiveDropdownTrigger && !leaveToDropdownContent) {\r\n this.close();\r\n }\r\n }\r\n }, {\r\n key: \"_handleDocumentClick\",\r\n value: function _handleDocumentClick(e) {\r\n var _this10 = this;\r\n\r\n var $target = $(e.target);\r\n if (this.options.closeOnClick && $target.closest('.dropdown-content').length && !this.isTouchMoving) {\r\n // isTouchMoving to check if scrolling on mobile.\r\n setTimeout(function () {\r\n _this10.close();\r\n }, 0);\r\n } else if ($target.closest('.dropdown-trigger').length || !$target.closest('.dropdown-content').length) {\r\n setTimeout(function () {\r\n _this10.close();\r\n }, 0);\r\n }\r\n this.isTouchMoving = false;\r\n }\r\n }, {\r\n key: \"_handleTriggerKeydown\",\r\n value: function _handleTriggerKeydown(e) {\r\n // ARROW DOWN OR ENTER WHEN SELECT IS CLOSED - open Dropdown\r\n if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ENTER) && !this.isOpen) {\r\n e.preventDefault();\r\n this.open();\r\n }\r\n }\r\n\r\n /**\r\n * Handle Document Touchmove\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleDocumentTouchmove\",\r\n value: function _handleDocumentTouchmove(e) {\r\n var $target = $(e.target);\r\n if ($target.closest('.dropdown-content').length) {\r\n this.isTouchMoving = true;\r\n }\r\n }\r\n\r\n /**\r\n * Handle Dropdown Click\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleDropdownClick\",\r\n value: function _handleDropdownClick(e) {\r\n // onItemClick callback\r\n if (typeof this.options.onItemClick === 'function') {\r\n var itemEl = $(e.target).closest('li')[0];\r\n this.options.onItemClick.call(this, itemEl);\r\n }\r\n }\r\n\r\n /**\r\n * Handle Dropdown Keydown\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleDropdownKeydown\",\r\n value: function _handleDropdownKeydown(e) {\r\n if (e.which === M.keys.TAB) {\r\n e.preventDefault();\r\n this.close();\r\n\r\n // Navigate down dropdown list\r\n } else if ((e.which === M.keys.ARROW_DOWN || e.which === M.keys.ARROW_UP) && this.isOpen) {\r\n e.preventDefault();\r\n var direction = e.which === M.keys.ARROW_DOWN ? 1 : -1;\r\n var newFocusedIndex = this.focusedIndex;\r\n var foundNewIndex = false;\r\n do {\r\n newFocusedIndex = newFocusedIndex + direction;\r\n\r\n if (!!this.dropdownEl.children[newFocusedIndex] && this.dropdownEl.children[newFocusedIndex].tabIndex !== -1) {\r\n foundNewIndex = true;\r\n break;\r\n }\r\n } while (newFocusedIndex < this.dropdownEl.children.length && newFocusedIndex >= 0);\r\n\r\n if (foundNewIndex) {\r\n // Remove active class from old element\r\n if (this.focusedIndex >= 0) this.dropdownEl.children[this.focusedIndex].classList.remove('active');\r\n this.focusedIndex = newFocusedIndex;\r\n this._focusFocusedItem();\r\n }\r\n\r\n // ENTER selects choice on focused item\r\n } else if (e.which === M.keys.ENTER && this.isOpen) {\r\n // Search for and \") + '';\r\n }\r\n }, {\r\n key: \"renderRow\",\r\n value: function renderRow(days, isRTL, isRowSelected) {\r\n return '' + (isRTL ? days.reverse() : days).join('') + '';\r\n }\r\n }, {\r\n key: \"renderTable\",\r\n value: function renderTable(opts, data, randId) {\r\n return '
' + this.renderHead(opts) + this.renderBody(data) + '
';\r\n }\r\n }, {\r\n key: \"renderHead\",\r\n value: function renderHead(opts) {\r\n var i = void 0,\r\n arr = [];\r\n for (i = 0; i < 7; i++) {\r\n arr.push(\"\" + this.renderDayName(opts, i, true) + \"\");\r\n }\r\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + '';\r\n }\r\n }, {\r\n key: \"renderBody\",\r\n value: function renderBody(rows) {\r\n return '' + rows.join('') + '';\r\n }\r\n }, {\r\n key: \"renderTitle\",\r\n value: function renderTitle(instance, c, year, month, refYear, randId) {\r\n var i = void 0,\r\n j = void 0,\r\n arr = void 0,\r\n opts = this.options,\r\n isMinYear = year === opts.minYear,\r\n isMaxYear = year === opts.maxYear,\r\n html = '
',\r\n monthHtml = void 0,\r\n yearHtml = void 0,\r\n prev = true,\r\n next = true;\r\n\r\n for (arr = [], i = 0; i < 12; i++) {\r\n arr.push('');\r\n }\r\n\r\n monthHtml = '';\r\n\r\n if ($.isArray(opts.yearRange)) {\r\n i = opts.yearRange[0];\r\n j = opts.yearRange[1] + 1;\r\n } else {\r\n i = year - opts.yearRange;\r\n j = 1 + year + opts.yearRange;\r\n }\r\n\r\n for (arr = []; i < j && i <= opts.maxYear; i++) {\r\n if (i >= opts.minYear) {\r\n arr.push(\"\");\r\n }\r\n }\r\n if (opts.yearRangeReverse) {\r\n arr.reverse();\r\n }\r\n\r\n yearHtml = \"\";\r\n\r\n var leftArrow = '';\r\n html += \"\";\r\n\r\n html += '
';\r\n if (opts.showMonthAfterYear) {\r\n html += yearHtml + monthHtml;\r\n } else {\r\n html += monthHtml + yearHtml;\r\n }\r\n html += '
';\r\n\r\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\r\n prev = false;\r\n }\r\n\r\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\r\n next = false;\r\n }\r\n\r\n var rightArrow = '';\r\n html += \"\";\r\n\r\n return html += '
';\r\n }\r\n\r\n /**\r\n * refresh the HTML\r\n */\r\n\r\n }, {\r\n key: \"draw\",\r\n value: function draw(force) {\r\n if (!this.isOpen && !force) {\r\n return;\r\n }\r\n var opts = this.options,\r\n minYear = opts.minYear,\r\n maxYear = opts.maxYear,\r\n minMonth = opts.minMonth,\r\n maxMonth = opts.maxMonth,\r\n html = '',\r\n randId = void 0;\r\n\r\n if (this._y <= minYear) {\r\n this._y = minYear;\r\n if (!isNaN(minMonth) && this._m < minMonth) {\r\n this._m = minMonth;\r\n }\r\n }\r\n if (this._y >= maxYear) {\r\n this._y = maxYear;\r\n if (!isNaN(maxMonth) && this._m > maxMonth) {\r\n this._m = maxMonth;\r\n }\r\n }\r\n\r\n randId = 'datepicker-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\r\n\r\n for (var c = 0; c < 1; c++) {\r\n this._renderDateDisplay();\r\n html += this.renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId);\r\n }\r\n\r\n this.destroySelects();\r\n\r\n this.calendarEl.innerHTML = html;\r\n\r\n // Init Materialize Select\r\n var yearSelect = this.calendarEl.querySelector('.orig-select-year');\r\n var monthSelect = this.calendarEl.querySelector('.orig-select-month');\r\n M.FormSelect.init(yearSelect, {\r\n classes: 'select-year',\r\n dropdownOptions: { container: document.body, constrainWidth: false }\r\n });\r\n M.FormSelect.init(monthSelect, {\r\n classes: 'select-month',\r\n dropdownOptions: { container: document.body, constrainWidth: false }\r\n });\r\n\r\n // Add change handlers for select\r\n yearSelect.addEventListener('change', this._handleYearChange.bind(this));\r\n monthSelect.addEventListener('change', this._handleMonthChange.bind(this));\r\n\r\n if (typeof this.options.onDraw === 'function') {\r\n this.options.onDraw(this);\r\n }\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n this._handleInputKeydownBound = this._handleInputKeydown.bind(this);\r\n this._handleInputClickBound = this._handleInputClick.bind(this);\r\n this._handleInputChangeBound = this._handleInputChange.bind(this);\r\n this._handleCalendarClickBound = this._handleCalendarClick.bind(this);\r\n this._finishSelectionBound = this._finishSelection.bind(this);\r\n this._handleMonthChange = this._handleMonthChange.bind(this);\r\n this._closeBound = this.close.bind(this);\r\n\r\n this.el.addEventListener('click', this._handleInputClickBound);\r\n this.el.addEventListener('keydown', this._handleInputKeydownBound);\r\n this.el.addEventListener('change', this._handleInputChangeBound);\r\n this.calendarEl.addEventListener('click', this._handleCalendarClickBound);\r\n this.doneBtn.addEventListener('click', this._finishSelectionBound);\r\n this.cancelBtn.addEventListener('click', this._closeBound);\r\n\r\n if (this.options.showClearBtn) {\r\n this._handleClearClickBound = this._handleClearClick.bind(this);\r\n this.clearBtn.addEventListener('click', this._handleClearClickBound);\r\n }\r\n }\r\n }, {\r\n key: \"_setupVariables\",\r\n value: function _setupVariables() {\r\n var _this56 = this;\r\n\r\n this.$modalEl = $(Datepicker._template);\r\n this.modalEl = this.$modalEl[0];\r\n\r\n this.calendarEl = this.modalEl.querySelector('.datepicker-calendar');\r\n\r\n this.yearTextEl = this.modalEl.querySelector('.year-text');\r\n this.dateTextEl = this.modalEl.querySelector('.date-text');\r\n if (this.options.showClearBtn) {\r\n this.clearBtn = this.modalEl.querySelector('.datepicker-clear');\r\n }\r\n this.doneBtn = this.modalEl.querySelector('.datepicker-done');\r\n this.cancelBtn = this.modalEl.querySelector('.datepicker-cancel');\r\n\r\n this.formats = {\r\n d: function () {\r\n return _this56.date.getDate();\r\n },\r\n dd: function () {\r\n var d = _this56.date.getDate();\r\n return (d < 10 ? '0' : '') + d;\r\n },\r\n ddd: function () {\r\n return _this56.options.i18n.weekdaysShort[_this56.date.getDay()];\r\n },\r\n dddd: function () {\r\n return _this56.options.i18n.weekdays[_this56.date.getDay()];\r\n },\r\n m: function () {\r\n return _this56.date.getMonth() + 1;\r\n },\r\n mm: function () {\r\n var m = _this56.date.getMonth() + 1;\r\n return (m < 10 ? '0' : '') + m;\r\n },\r\n mmm: function () {\r\n return _this56.options.i18n.monthsShort[_this56.date.getMonth()];\r\n },\r\n mmmm: function () {\r\n return _this56.options.i18n.months[_this56.date.getMonth()];\r\n },\r\n yy: function () {\r\n return ('' + _this56.date.getFullYear()).slice(2);\r\n },\r\n yyyy: function () {\r\n return _this56.date.getFullYear();\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Remove Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n this.el.removeEventListener('click', this._handleInputClickBound);\r\n this.el.removeEventListener('keydown', this._handleInputKeydownBound);\r\n this.el.removeEventListener('change', this._handleInputChangeBound);\r\n this.calendarEl.removeEventListener('click', this._handleCalendarClickBound);\r\n }\r\n }, {\r\n key: \"_handleInputClick\",\r\n value: function _handleInputClick() {\r\n this.open();\r\n }\r\n }, {\r\n key: \"_handleInputKeydown\",\r\n value: function _handleInputKeydown(e) {\r\n if (e.which === M.keys.ENTER) {\r\n e.preventDefault();\r\n this.open();\r\n }\r\n }\r\n }, {\r\n key: \"_handleCalendarClick\",\r\n value: function _handleCalendarClick(e) {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n var $target = $(e.target);\r\n if (!$target.hasClass('is-disabled')) {\r\n if ($target.hasClass('datepicker-day-button') && !$target.hasClass('is-empty') && !$target.parent().hasClass('is-disabled')) {\r\n this.setDate(new Date(e.target.getAttribute('data-year'), e.target.getAttribute('data-month'), e.target.getAttribute('data-day')));\r\n if (this.options.autoClose) {\r\n this._finishSelection();\r\n }\r\n } else if ($target.closest('.month-prev').length) {\r\n this.prevMonth();\r\n } else if ($target.closest('.month-next').length) {\r\n this.nextMonth();\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_handleClearClick\",\r\n value: function _handleClearClick() {\r\n this.date = null;\r\n this.setInputValue();\r\n this.close();\r\n }\r\n }, {\r\n key: \"_handleMonthChange\",\r\n value: function _handleMonthChange(e) {\r\n this.gotoMonth(e.target.value);\r\n }\r\n }, {\r\n key: \"_handleYearChange\",\r\n value: function _handleYearChange(e) {\r\n this.gotoYear(e.target.value);\r\n }\r\n\r\n /**\r\n * change view to a specific month (zero-index, e.g. 0: January)\r\n */\r\n\r\n }, {\r\n key: \"gotoMonth\",\r\n value: function gotoMonth(month) {\r\n if (!isNaN(month)) {\r\n this.calendars[0].month = parseInt(month, 10);\r\n this.adjustCalendars();\r\n }\r\n }\r\n\r\n /**\r\n * change view to a specific full year (e.g. \"2012\")\r\n */\r\n\r\n }, {\r\n key: \"gotoYear\",\r\n value: function gotoYear(year) {\r\n if (!isNaN(year)) {\r\n this.calendars[0].year = parseInt(year, 10);\r\n this.adjustCalendars();\r\n }\r\n }\r\n }, {\r\n key: \"_handleInputChange\",\r\n value: function _handleInputChange(e) {\r\n var date = void 0;\r\n\r\n // Prevent change event from being fired when triggered by the plugin\r\n if (e.firedBy === this) {\r\n return;\r\n }\r\n if (this.options.parse) {\r\n date = this.options.parse(this.el.value, this.options.format);\r\n } else {\r\n date = new Date(Date.parse(this.el.value));\r\n }\r\n\r\n if (Datepicker._isDate(date)) {\r\n this.setDate(date);\r\n }\r\n }\r\n }, {\r\n key: \"renderDayName\",\r\n value: function renderDayName(opts, day, abbr) {\r\n day += opts.firstDay;\r\n while (day >= 7) {\r\n day -= 7;\r\n }\r\n return abbr ? opts.i18n.weekdaysAbbrev[day] : opts.i18n.weekdays[day];\r\n }\r\n\r\n /**\r\n * Set input value to the selected date and close Datepicker\r\n */\r\n\r\n }, {\r\n key: \"_finishSelection\",\r\n value: function _finishSelection() {\r\n this.setInputValue();\r\n this.close();\r\n }\r\n\r\n /**\r\n * Open Datepicker\r\n */\r\n\r\n }, {\r\n key: \"open\",\r\n value: function open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n\r\n this.isOpen = true;\r\n if (typeof this.options.onOpen === 'function') {\r\n this.options.onOpen.call(this);\r\n }\r\n this.draw();\r\n this.modal.open();\r\n return this;\r\n }\r\n\r\n /**\r\n * Close Datepicker\r\n */\r\n\r\n }, {\r\n key: \"close\",\r\n value: function close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n this.isOpen = false;\r\n if (typeof this.options.onClose === 'function') {\r\n this.options.onClose.call(this);\r\n }\r\n this.modal.close();\r\n return this;\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(Datepicker.__proto__ || Object.getPrototypeOf(Datepicker), \"init\", this).call(this, this, els, options);\r\n }\r\n }, {\r\n key: \"_isDate\",\r\n value: function _isDate(obj) {\r\n return (/Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime())\r\n );\r\n }\r\n }, {\r\n key: \"_isWeekend\",\r\n value: function _isWeekend(date) {\r\n var day = date.getDay();\r\n return day === 0 || day === 6;\r\n }\r\n }, {\r\n key: \"_setToStartOfDay\",\r\n value: function _setToStartOfDay(date) {\r\n if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);\r\n }\r\n }, {\r\n key: \"_getDaysInMonth\",\r\n value: function _getDaysInMonth(year, month) {\r\n return [31, Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\r\n }\r\n }, {\r\n key: \"_isLeapYear\",\r\n value: function _isLeapYear(year) {\r\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\r\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\r\n }\r\n }, {\r\n key: \"_compareDates\",\r\n value: function _compareDates(a, b) {\r\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\r\n return a.getTime() === b.getTime();\r\n }\r\n }, {\r\n key: \"_setToStartOfDay\",\r\n value: function _setToStartOfDay(date) {\r\n if (Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);\r\n }\r\n\r\n /**\r\n * Get Instance\r\n */\r\n\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_Datepicker;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return Datepicker;\r\n }(Component);\r\n\r\n Datepicker._template = ['
', '
', '
', '', '', '
', '
', '
', '
', '', '
', '', '', '
', '
', '
', '
', '
'].join('');\r\n\r\n M.Datepicker = Datepicker;\r\n\r\n if (M.jQueryLoaded) {\r\n M.initializeJqueryWrapper(Datepicker, 'datepicker', 'M_Datepicker');\r\n }\r\n})(cash);\r\n;(function ($) {\r\n 'use strict';\r\n\r\n var _defaults = {\r\n dialRadius: 135,\r\n outerRadius: 105,\r\n innerRadius: 70,\r\n tickRadius: 20,\r\n duration: 350,\r\n container: null,\r\n defaultTime: 'now', // default time, 'now' or '13:14' e.g.\r\n fromNow: 0, // Millisecond offset from the defaultTime\r\n showClearBtn: false,\r\n\r\n // internationalization\r\n i18n: {\r\n cancel: 'Cancel',\r\n clear: 'Clear',\r\n done: 'Ok'\r\n },\r\n\r\n autoClose: false, // auto close when minute is selected\r\n twelveHour: true, // change to 12 hour AM/PM clock from 24 hour\r\n vibrate: true, // vibrate the device when dragging clock hand\r\n\r\n // Callbacks\r\n onOpenStart: null,\r\n onOpenEnd: null,\r\n onCloseStart: null,\r\n onCloseEnd: null,\r\n onSelect: null\r\n };\r\n\r\n /**\r\n * @class\r\n *\r\n */\r\n\r\n var Timepicker = function (_Component16) {\r\n _inherits(Timepicker, _Component16);\r\n\r\n function Timepicker(el, options) {\r\n _classCallCheck(this, Timepicker);\r\n\r\n var _this57 = _possibleConstructorReturn(this, (Timepicker.__proto__ || Object.getPrototypeOf(Timepicker)).call(this, Timepicker, el, options));\r\n\r\n _this57.el.M_Timepicker = _this57;\r\n\r\n _this57.options = $.extend({}, Timepicker.defaults, options);\r\n\r\n _this57.id = M.guid();\r\n _this57._insertHTMLIntoDOM();\r\n _this57._setupModal();\r\n _this57._setupVariables();\r\n _this57._setupEventHandlers();\r\n\r\n _this57._clockSetup();\r\n _this57._pickerSetup();\r\n return _this57;\r\n }\r\n\r\n _createClass(Timepicker, [{\r\n key: \"destroy\",\r\n\r\n\r\n /**\r\n * Teardown component\r\n */\r\n value: function destroy() {\r\n this._removeEventHandlers();\r\n this.modal.destroy();\r\n $(this.modalEl).remove();\r\n this.el.M_Timepicker = undefined;\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n this._handleInputKeydownBound = this._handleInputKeydown.bind(this);\r\n this._handleInputClickBound = this._handleInputClick.bind(this);\r\n this._handleClockClickStartBound = this._handleClockClickStart.bind(this);\r\n this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind(this);\r\n this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind(this);\r\n\r\n this.el.addEventListener('click', this._handleInputClickBound);\r\n this.el.addEventListener('keydown', this._handleInputKeydownBound);\r\n this.plate.addEventListener('mousedown', this._handleClockClickStartBound);\r\n this.plate.addEventListener('touchstart', this._handleClockClickStartBound);\r\n\r\n $(this.spanHours).on('click', this.showView.bind(this, 'hours'));\r\n $(this.spanMinutes).on('click', this.showView.bind(this, 'minutes'));\r\n }\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n this.el.removeEventListener('click', this._handleInputClickBound);\r\n this.el.removeEventListener('keydown', this._handleInputKeydownBound);\r\n }\r\n }, {\r\n key: \"_handleInputClick\",\r\n value: function _handleInputClick() {\r\n this.open();\r\n }\r\n }, {\r\n key: \"_handleInputKeydown\",\r\n value: function _handleInputKeydown(e) {\r\n if (e.which === M.keys.ENTER) {\r\n e.preventDefault();\r\n this.open();\r\n }\r\n }\r\n }, {\r\n key: \"_handleClockClickStart\",\r\n value: function _handleClockClickStart(e) {\r\n e.preventDefault();\r\n var clockPlateBR = this.plate.getBoundingClientRect();\r\n var offset = { x: clockPlateBR.left, y: clockPlateBR.top };\r\n\r\n this.x0 = offset.x + this.options.dialRadius;\r\n this.y0 = offset.y + this.options.dialRadius;\r\n this.moved = false;\r\n var clickPos = Timepicker._Pos(e);\r\n this.dx = clickPos.x - this.x0;\r\n this.dy = clickPos.y - this.y0;\r\n\r\n // Set clock hands\r\n this.setHand(this.dx, this.dy, false);\r\n\r\n // Mousemove on document\r\n document.addEventListener('mousemove', this._handleDocumentClickMoveBound);\r\n document.addEventListener('touchmove', this._handleDocumentClickMoveBound);\r\n\r\n // Mouseup on document\r\n document.addEventListener('mouseup', this._handleDocumentClickEndBound);\r\n document.addEventListener('touchend', this._handleDocumentClickEndBound);\r\n }\r\n }, {\r\n key: \"_handleDocumentClickMove\",\r\n value: function _handleDocumentClickMove(e) {\r\n e.preventDefault();\r\n var clickPos = Timepicker._Pos(e);\r\n var x = clickPos.x - this.x0;\r\n var y = clickPos.y - this.y0;\r\n this.moved = true;\r\n this.setHand(x, y, false, true);\r\n }\r\n }, {\r\n key: \"_handleDocumentClickEnd\",\r\n value: function _handleDocumentClickEnd(e) {\r\n var _this58 = this;\r\n\r\n e.preventDefault();\r\n document.removeEventListener('mouseup', this._handleDocumentClickEndBound);\r\n document.removeEventListener('touchend', this._handleDocumentClickEndBound);\r\n var clickPos = Timepicker._Pos(e);\r\n var x = clickPos.x - this.x0;\r\n var y = clickPos.y - this.y0;\r\n if (this.moved && x === this.dx && y === this.dy) {\r\n this.setHand(x, y);\r\n }\r\n\r\n if (this.currentView === 'hours') {\r\n this.showView('minutes', this.options.duration / 2);\r\n } else if (this.options.autoClose) {\r\n $(this.minutesView).addClass('timepicker-dial-out');\r\n setTimeout(function () {\r\n _this58.done();\r\n }, this.options.duration / 2);\r\n }\r\n\r\n if (typeof this.options.onSelect === 'function') {\r\n this.options.onSelect.call(this, this.hours, this.minutes);\r\n }\r\n\r\n // Unbind mousemove event\r\n document.removeEventListener('mousemove', this._handleDocumentClickMoveBound);\r\n document.removeEventListener('touchmove', this._handleDocumentClickMoveBound);\r\n }\r\n }, {\r\n key: \"_insertHTMLIntoDOM\",\r\n value: function _insertHTMLIntoDOM() {\r\n this.$modalEl = $(Timepicker._template);\r\n this.modalEl = this.$modalEl[0];\r\n this.modalEl.id = 'modal-' + this.id;\r\n\r\n // Append popover to input by default\r\n var optEl = this.options.container;\r\n var containerEl = optEl instanceof HTMLElement ? optEl : document.querySelector(optEl);\r\n if (this.options.container && !!containerEl) {\r\n this.$modalEl.appendTo(containerEl);\r\n } else {\r\n this.$modalEl.insertBefore(this.el);\r\n }\r\n }\r\n }, {\r\n key: \"_setupModal\",\r\n value: function _setupModal() {\r\n var _this59 = this;\r\n\r\n this.modal = M.Modal.init(this.modalEl, {\r\n onOpenStart: this.options.onOpenStart,\r\n onOpenEnd: this.options.onOpenEnd,\r\n onCloseStart: this.options.onCloseStart,\r\n onCloseEnd: function () {\r\n if (typeof _this59.options.onCloseEnd === 'function') {\r\n _this59.options.onCloseEnd.call(_this59);\r\n }\r\n _this59.isOpen = false;\r\n }\r\n });\r\n }\r\n }, {\r\n key: \"_setupVariables\",\r\n value: function _setupVariables() {\r\n this.currentView = 'hours';\r\n this.vibrate = navigator.vibrate ? 'vibrate' : navigator.webkitVibrate ? 'webkitVibrate' : null;\r\n\r\n this._canvas = this.modalEl.querySelector('.timepicker-canvas');\r\n this.plate = this.modalEl.querySelector('.timepicker-plate');\r\n\r\n this.hoursView = this.modalEl.querySelector('.timepicker-hours');\r\n this.minutesView = this.modalEl.querySelector('.timepicker-minutes');\r\n this.spanHours = this.modalEl.querySelector('.timepicker-span-hours');\r\n this.spanMinutes = this.modalEl.querySelector('.timepicker-span-minutes');\r\n this.spanAmPm = this.modalEl.querySelector('.timepicker-span-am-pm');\r\n this.footer = this.modalEl.querySelector('.timepicker-footer');\r\n this.amOrPm = 'PM';\r\n }\r\n }, {\r\n key: \"_pickerSetup\",\r\n value: function _pickerSetup() {\r\n var $clearBtn = $(\"\").appendTo(this.footer).on('click', this.clear.bind(this));\r\n if (this.options.showClearBtn) {\r\n $clearBtn.css({ visibility: '' });\r\n }\r\n\r\n var confirmationBtnsContainer = $('
');\r\n $('').appendTo(confirmationBtnsContainer).on('click', this.close.bind(this));\r\n $('').appendTo(confirmationBtnsContainer).on('click', this.done.bind(this));\r\n confirmationBtnsContainer.appendTo(this.footer);\r\n }\r\n }, {\r\n key: \"_clockSetup\",\r\n value: function _clockSetup() {\r\n if (this.options.twelveHour) {\r\n this.$amBtn = $('
AM
');\r\n this.$pmBtn = $('
PM
');\r\n this.$amBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm);\r\n this.$pmBtn.on('click', this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm);\r\n }\r\n\r\n this._buildHoursView();\r\n this._buildMinutesView();\r\n this._buildSVGClock();\r\n }\r\n }, {\r\n key: \"_buildSVGClock\",\r\n value: function _buildSVGClock() {\r\n // Draw clock hands and others\r\n var dialRadius = this.options.dialRadius;\r\n var tickRadius = this.options.tickRadius;\r\n var diameter = dialRadius * 2;\r\n\r\n var svg = Timepicker._createSVGEl('svg');\r\n svg.setAttribute('class', 'timepicker-svg');\r\n svg.setAttribute('width', diameter);\r\n svg.setAttribute('height', diameter);\r\n var g = Timepicker._createSVGEl('g');\r\n g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')');\r\n var bearing = Timepicker._createSVGEl('circle');\r\n bearing.setAttribute('class', 'timepicker-canvas-bearing');\r\n bearing.setAttribute('cx', 0);\r\n bearing.setAttribute('cy', 0);\r\n bearing.setAttribute('r', 4);\r\n var hand = Timepicker._createSVGEl('line');\r\n hand.setAttribute('x1', 0);\r\n hand.setAttribute('y1', 0);\r\n var bg = Timepicker._createSVGEl('circle');\r\n bg.setAttribute('class', 'timepicker-canvas-bg');\r\n bg.setAttribute('r', tickRadius);\r\n g.appendChild(hand);\r\n g.appendChild(bg);\r\n g.appendChild(bearing);\r\n svg.appendChild(g);\r\n this._canvas.appendChild(svg);\r\n\r\n this.hand = hand;\r\n this.bg = bg;\r\n this.bearing = bearing;\r\n this.g = g;\r\n }\r\n }, {\r\n key: \"_buildHoursView\",\r\n value: function _buildHoursView() {\r\n var $tick = $('
');\r\n // Hours view\r\n if (this.options.twelveHour) {\r\n for (var i = 1; i < 13; i += 1) {\r\n var tick = $tick.clone();\r\n var radian = i / 6 * Math.PI;\r\n var radius = this.options.outerRadius;\r\n tick.css({\r\n left: this.options.dialRadius + Math.sin(radian) * radius - this.options.tickRadius + 'px',\r\n top: this.options.dialRadius - Math.cos(radian) * radius - this.options.tickRadius + 'px'\r\n });\r\n tick.html(i === 0 ? '00' : i);\r\n this.hoursView.appendChild(tick[0]);\r\n // tick.on(mousedownEvent, mousedown);\r\n }\r\n } else {\r\n for (var _i2 = 0; _i2 < 24; _i2 += 1) {\r\n var _tick = $tick.clone();\r\n var _radian = _i2 / 6 * Math.PI;\r\n var inner = _i2 > 0 && _i2 < 13;\r\n var _radius = inner ? this.options.innerRadius : this.options.outerRadius;\r\n _tick.css({\r\n left: this.options.dialRadius + Math.sin(_radian) * _radius - this.options.tickRadius + 'px',\r\n top: this.options.dialRadius - Math.cos(_radian) * _radius - this.options.tickRadius + 'px'\r\n });\r\n _tick.html(_i2 === 0 ? '00' : _i2);\r\n this.hoursView.appendChild(_tick[0]);\r\n // tick.on(mousedownEvent, mousedown);\r\n }\r\n }\r\n }\r\n }, {\r\n key: \"_buildMinutesView\",\r\n value: function _buildMinutesView() {\r\n var $tick = $('
');\r\n // Minutes view\r\n for (var i = 0; i < 60; i += 5) {\r\n var tick = $tick.clone();\r\n var radian = i / 30 * Math.PI;\r\n tick.css({\r\n left: this.options.dialRadius + Math.sin(radian) * this.options.outerRadius - this.options.tickRadius + 'px',\r\n top: this.options.dialRadius - Math.cos(radian) * this.options.outerRadius - this.options.tickRadius + 'px'\r\n });\r\n tick.html(Timepicker._addLeadingZero(i));\r\n this.minutesView.appendChild(tick[0]);\r\n }\r\n }\r\n }, {\r\n key: \"_handleAmPmClick\",\r\n value: function _handleAmPmClick(e) {\r\n var $btnClicked = $(e.target);\r\n this.amOrPm = $btnClicked.hasClass('am-btn') ? 'AM' : 'PM';\r\n this._updateAmPmView();\r\n }\r\n }, {\r\n key: \"_updateAmPmView\",\r\n value: function _updateAmPmView() {\r\n if (this.options.twelveHour) {\r\n this.$amBtn.toggleClass('text-primary', this.amOrPm === 'AM');\r\n this.$pmBtn.toggleClass('text-primary', this.amOrPm === 'PM');\r\n }\r\n }\r\n }, {\r\n key: \"_updateTimeFromInput\",\r\n value: function _updateTimeFromInput() {\r\n // Get the time\r\n var value = ((this.el.value || this.options.defaultTime || '') + '').split(':');\r\n if (this.options.twelveHour && !(typeof value[1] === 'undefined')) {\r\n if (value[1].toUpperCase().indexOf('AM') > 0) {\r\n this.amOrPm = 'AM';\r\n } else {\r\n this.amOrPm = 'PM';\r\n }\r\n value[1] = value[1].replace('AM', '').replace('PM', '');\r\n }\r\n if (value[0] === 'now') {\r\n var now = new Date(+new Date() + this.options.fromNow);\r\n value = [now.getHours(), now.getMinutes()];\r\n if (this.options.twelveHour) {\r\n this.amOrPm = value[0] >= 12 && value[0] < 24 ? 'PM' : 'AM';\r\n }\r\n }\r\n this.hours = +value[0] || 0;\r\n this.minutes = +value[1] || 0;\r\n this.spanHours.innerHTML = this.hours;\r\n this.spanMinutes.innerHTML = Timepicker._addLeadingZero(this.minutes);\r\n\r\n this._updateAmPmView();\r\n }\r\n }, {\r\n key: \"showView\",\r\n value: function showView(view, delay) {\r\n if (view === 'minutes' && $(this.hoursView).css('visibility') === 'visible') {\r\n // raiseCallback(this.options.beforeHourSelect);\r\n }\r\n var isHours = view === 'hours',\r\n nextView = isHours ? this.hoursView : this.minutesView,\r\n hideView = isHours ? this.minutesView : this.hoursView;\r\n this.currentView = view;\r\n\r\n $(this.spanHours).toggleClass('text-primary', isHours);\r\n $(this.spanMinutes).toggleClass('text-primary', !isHours);\r\n\r\n // Transition view\r\n hideView.classList.add('timepicker-dial-out');\r\n $(nextView).css('visibility', 'visible').removeClass('timepicker-dial-out');\r\n\r\n // Reset clock hand\r\n this.resetClock(delay);\r\n\r\n // After transitions ended\r\n clearTimeout(this.toggleViewTimer);\r\n this.toggleViewTimer = setTimeout(function () {\r\n $(hideView).css('visibility', 'hidden');\r\n }, this.options.duration);\r\n }\r\n }, {\r\n key: \"resetClock\",\r\n value: function resetClock(delay) {\r\n var view = this.currentView,\r\n value = this[view],\r\n isHours = view === 'hours',\r\n unit = Math.PI / (isHours ? 6 : 30),\r\n radian = value * unit,\r\n radius = isHours && value > 0 && value < 13 ? this.options.innerRadius : this.options.outerRadius,\r\n x = Math.sin(radian) * radius,\r\n y = -Math.cos(radian) * radius,\r\n self = this;\r\n\r\n if (delay) {\r\n $(this.canvas).addClass('timepicker-canvas-out');\r\n setTimeout(function () {\r\n $(self.canvas).removeClass('timepicker-canvas-out');\r\n self.setHand(x, y);\r\n }, delay);\r\n } else {\r\n this.setHand(x, y);\r\n }\r\n }\r\n }, {\r\n key: \"setHand\",\r\n value: function setHand(x, y, roundBy5) {\r\n var _this60 = this;\r\n\r\n var radian = Math.atan2(x, -y),\r\n isHours = this.currentView === 'hours',\r\n unit = Math.PI / (isHours || roundBy5 ? 6 : 30),\r\n z = Math.sqrt(x * x + y * y),\r\n inner = isHours && z < (this.options.outerRadius + this.options.innerRadius) / 2,\r\n radius = inner ? this.options.innerRadius : this.options.outerRadius;\r\n\r\n if (this.options.twelveHour) {\r\n radius = this.options.outerRadius;\r\n }\r\n\r\n // Radian should in range [0, 2PI]\r\n if (radian < 0) {\r\n radian = Math.PI * 2 + radian;\r\n }\r\n\r\n // Get the round value\r\n var value = Math.round(radian / unit);\r\n\r\n // Get the round radian\r\n radian = value * unit;\r\n\r\n // Correct the hours or minutes\r\n if (this.options.twelveHour) {\r\n if (isHours) {\r\n if (value === 0) value = 12;\r\n } else {\r\n if (roundBy5) value *= 5;\r\n if (value === 60) value = 0;\r\n }\r\n } else {\r\n if (isHours) {\r\n if (value === 12) {\r\n value = 0;\r\n }\r\n value = inner ? value === 0 ? 12 : value : value === 0 ? 0 : value + 12;\r\n } else {\r\n if (roundBy5) {\r\n value *= 5;\r\n }\r\n if (value === 60) {\r\n value = 0;\r\n }\r\n }\r\n }\r\n\r\n // Once hours or minutes changed, vibrate the device\r\n if (this[this.currentView] !== value) {\r\n if (this.vibrate && this.options.vibrate) {\r\n // Do not vibrate too frequently\r\n if (!this.vibrateTimer) {\r\n navigator[this.vibrate](10);\r\n this.vibrateTimer = setTimeout(function () {\r\n _this60.vibrateTimer = null;\r\n }, 100);\r\n }\r\n }\r\n }\r\n\r\n this[this.currentView] = value;\r\n if (isHours) {\r\n this['spanHours'].innerHTML = value;\r\n } else {\r\n this['spanMinutes'].innerHTML = Timepicker._addLeadingZero(value);\r\n }\r\n\r\n // Set clock hand and others' position\r\n var cx1 = Math.sin(radian) * (radius - this.options.tickRadius),\r\n cy1 = -Math.cos(radian) * (radius - this.options.tickRadius),\r\n cx2 = Math.sin(radian) * radius,\r\n cy2 = -Math.cos(radian) * radius;\r\n this.hand.setAttribute('x2', cx1);\r\n this.hand.setAttribute('y2', cy1);\r\n this.bg.setAttribute('cx', cx2);\r\n this.bg.setAttribute('cy', cy2);\r\n }\r\n }, {\r\n key: \"open\",\r\n value: function open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n\r\n this.isOpen = true;\r\n this._updateTimeFromInput();\r\n this.showView('hours');\r\n\r\n this.modal.open();\r\n }\r\n }, {\r\n key: \"close\",\r\n value: function close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n this.isOpen = false;\r\n this.modal.close();\r\n }\r\n\r\n /**\r\n * Finish timepicker selection.\r\n */\r\n\r\n }, {\r\n key: \"done\",\r\n value: function done(e, clearValue) {\r\n // Set input value\r\n var last = this.el.value;\r\n var value = clearValue ? '' : Timepicker._addLeadingZero(this.hours) + ':' + Timepicker._addLeadingZero(this.minutes);\r\n this.time = value;\r\n if (!clearValue && this.options.twelveHour) {\r\n value = value + \" \" + this.amOrPm;\r\n }\r\n this.el.value = value;\r\n\r\n // Trigger change event\r\n if (value !== last) {\r\n this.$el.trigger('change');\r\n }\r\n\r\n this.close();\r\n this.el.focus();\r\n }\r\n }, {\r\n key: \"clear\",\r\n value: function clear() {\r\n this.done(null, true);\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(Timepicker.__proto__ || Object.getPrototypeOf(Timepicker), \"init\", this).call(this, this, els, options);\r\n }\r\n }, {\r\n key: \"_addLeadingZero\",\r\n value: function _addLeadingZero(num) {\r\n return (num < 10 ? '0' : '') + num;\r\n }\r\n }, {\r\n key: \"_createSVGEl\",\r\n value: function _createSVGEl(name) {\r\n var svgNS = 'http://www.w3.org/2000/svg';\r\n return document.createElementNS(svgNS, name);\r\n }\r\n\r\n /**\r\n * @typedef {Object} Point\r\n * @property {number} x The X Coordinate\r\n * @property {number} y The Y Coordinate\r\n */\r\n\r\n /**\r\n * Get x position of mouse or touch event\r\n * @param {Event} e\r\n * @return {Point} x and y location\r\n */\r\n\r\n }, {\r\n key: \"_Pos\",\r\n value: function _Pos(e) {\r\n if (e.targetTouches && e.targetTouches.length >= 1) {\r\n return { x: e.targetTouches[0].clientX, y: e.targetTouches[0].clientY };\r\n }\r\n // mouse event\r\n return { x: e.clientX, y: e.clientY };\r\n }\r\n\r\n /**\r\n * Get Instance\r\n */\r\n\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_Timepicker;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return Timepicker;\r\n }(Component);\r\n\r\n Timepicker._template = ['
', '
', '
', '
', '
', '', ':', '', '
', '
', '
', '
', '
', '
', '
', '
', '
', '
', '
', '
', '
', '
', '
', '
'].join('');\r\n\r\n M.Timepicker = Timepicker;\r\n\r\n if (M.jQueryLoaded) {\r\n M.initializeJqueryWrapper(Timepicker, 'timepicker', 'M_Timepicker');\r\n }\r\n})(cash);\r\n;(function ($) {\r\n 'use strict';\r\n\r\n var _defaults = {};\r\n\r\n /**\r\n * @class\r\n *\r\n */\r\n\r\n var CharacterCounter = function (_Component17) {\r\n _inherits(CharacterCounter, _Component17);\r\n\r\n /**\r\n * Construct CharacterCounter instance\r\n * @constructor\r\n * @param {Element} el\r\n * @param {Object} options\r\n */\r\n function CharacterCounter(el, options) {\r\n _classCallCheck(this, CharacterCounter);\r\n\r\n var _this61 = _possibleConstructorReturn(this, (CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter)).call(this, CharacterCounter, el, options));\r\n\r\n _this61.el.M_CharacterCounter = _this61;\r\n\r\n /**\r\n * Options for the character counter\r\n */\r\n _this61.options = $.extend({}, CharacterCounter.defaults, options);\r\n\r\n _this61.isInvalid = false;\r\n _this61.isValidLength = false;\r\n _this61._setupCounter();\r\n _this61._setupEventHandlers();\r\n return _this61;\r\n }\r\n\r\n _createClass(CharacterCounter, [{\r\n key: \"destroy\",\r\n\r\n\r\n /**\r\n * Teardown component\r\n */\r\n value: function destroy() {\r\n this._removeEventHandlers();\r\n this.el.CharacterCounter = undefined;\r\n this._removeCounter();\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n this._handleUpdateCounterBound = this.updateCounter.bind(this);\r\n\r\n this.el.addEventListener('focus', this._handleUpdateCounterBound, true);\r\n this.el.addEventListener('input', this._handleUpdateCounterBound, true);\r\n }\r\n\r\n /**\r\n * Remove Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n this.el.removeEventListener('focus', this._handleUpdateCounterBound, true);\r\n this.el.removeEventListener('input', this._handleUpdateCounterBound, true);\r\n }\r\n\r\n /**\r\n * Setup counter element\r\n */\r\n\r\n }, {\r\n key: \"_setupCounter\",\r\n value: function _setupCounter() {\r\n this.counterEl = document.createElement('span');\r\n $(this.counterEl).addClass('character-counter').css({\r\n float: 'right',\r\n 'font-size': '12px',\r\n height: 1\r\n });\r\n\r\n this.$el.parent().append(this.counterEl);\r\n }\r\n\r\n /**\r\n * Remove counter element\r\n */\r\n\r\n }, {\r\n key: \"_removeCounter\",\r\n value: function _removeCounter() {\r\n $(this.counterEl).remove();\r\n }\r\n\r\n /**\r\n * Update counter\r\n */\r\n\r\n }, {\r\n key: \"updateCounter\",\r\n value: function updateCounter() {\r\n var maxLength = +this.$el.attr('data-length'),\r\n actualLength = this.el.value.length;\r\n this.isValidLength = actualLength <= maxLength;\r\n var counterString = actualLength;\r\n\r\n if (maxLength) {\r\n counterString += '/' + maxLength;\r\n this._validateInput();\r\n }\r\n\r\n $(this.counterEl).html(counterString);\r\n }\r\n\r\n /**\r\n * Add validation classes\r\n */\r\n\r\n }, {\r\n key: \"_validateInput\",\r\n value: function _validateInput() {\r\n if (this.isValidLength && this.isInvalid) {\r\n this.isInvalid = false;\r\n this.$el.removeClass('invalid');\r\n } else if (!this.isValidLength && !this.isInvalid) {\r\n this.isInvalid = true;\r\n this.$el.removeClass('valid');\r\n this.$el.addClass('invalid');\r\n }\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(CharacterCounter.__proto__ || Object.getPrototypeOf(CharacterCounter), \"init\", this).call(this, this, els, options);\r\n }\r\n\r\n /**\r\n * Get Instance\r\n */\r\n\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_CharacterCounter;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return CharacterCounter;\r\n }(Component);\r\n\r\n M.CharacterCounter = CharacterCounter;\r\n\r\n if (M.jQueryLoaded) {\r\n M.initializeJqueryWrapper(CharacterCounter, 'characterCounter', 'M_CharacterCounter');\r\n }\r\n})(cash);\r\n;(function ($) {\r\n 'use strict';\r\n\r\n var _defaults = {\r\n duration: 200, // ms\r\n dist: -100, // zoom scale TODO: make this more intuitive as an option\r\n shift: 0, // spacing for center image\r\n padding: 0, // Padding between non center items\r\n numVisible: 5, // Number of visible items in carousel\r\n fullWidth: false, // Change to full width styles\r\n indicators: false, // Toggle indicators\r\n noWrap: false, // Don't wrap around and cycle through items.\r\n onCycleTo: null // Callback for when a new slide is cycled to.\r\n };\r\n\r\n /**\r\n * @class\r\n *\r\n */\r\n\r\n var Carousel = function (_Component18) {\r\n _inherits(Carousel, _Component18);\r\n\r\n /**\r\n * Construct Carousel instance\r\n * @constructor\r\n * @param {Element} el\r\n * @param {Object} options\r\n */\r\n function Carousel(el, options) {\r\n _classCallCheck(this, Carousel);\r\n\r\n var _this62 = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, Carousel, el, options));\r\n\r\n _this62.el.M_Carousel = _this62;\r\n\r\n /**\r\n * Options for the carousel\r\n * @member Carousel#options\r\n * @prop {Number} duration\r\n * @prop {Number} dist\r\n * @prop {Number} shift\r\n * @prop {Number} padding\r\n * @prop {Number} numVisible\r\n * @prop {Boolean} fullWidth\r\n * @prop {Boolean} indicators\r\n * @prop {Boolean} noWrap\r\n * @prop {Function} onCycleTo\r\n */\r\n _this62.options = $.extend({}, Carousel.defaults, options);\r\n\r\n // Setup\r\n _this62.hasMultipleSlides = _this62.$el.find('.carousel-item').length > 1;\r\n _this62.showIndicators = _this62.options.indicators && _this62.hasMultipleSlides;\r\n _this62.noWrap = _this62.options.noWrap || !_this62.hasMultipleSlides;\r\n _this62.pressed = false;\r\n _this62.dragged = false;\r\n _this62.offset = _this62.target = 0;\r\n _this62.images = [];\r\n _this62.itemWidth = _this62.$el.find('.carousel-item').first().innerWidth();\r\n _this62.itemHeight = _this62.$el.find('.carousel-item').first().innerHeight();\r\n _this62.dim = _this62.itemWidth * 2 + _this62.options.padding || 1; // Make sure dim is non zero for divisions.\r\n _this62._autoScrollBound = _this62._autoScroll.bind(_this62);\r\n _this62._trackBound = _this62._track.bind(_this62);\r\n\r\n // Full Width carousel setup\r\n if (_this62.options.fullWidth) {\r\n _this62.options.dist = 0;\r\n _this62._setCarouselHeight();\r\n\r\n // Offset fixed items when indicators.\r\n if (_this62.showIndicators) {\r\n _this62.$el.find('.carousel-fixed-item').addClass('with-indicators');\r\n }\r\n }\r\n\r\n // Iterate through slides\r\n _this62.$indicators = $('');\r\n _this62.$el.find('.carousel-item').each(function (el, i) {\r\n _this62.images.push(el);\r\n if (_this62.showIndicators) {\r\n var $indicator = $('
  • ');\r\n\r\n // Add active to first by default.\r\n if (i === 0) {\r\n $indicator[0].classList.add('active');\r\n }\r\n\r\n _this62.$indicators.append($indicator);\r\n }\r\n });\r\n if (_this62.showIndicators) {\r\n _this62.$el.append(_this62.$indicators);\r\n }\r\n _this62.count = _this62.images.length;\r\n\r\n // Cap numVisible at count\r\n _this62.options.numVisible = Math.min(_this62.count, _this62.options.numVisible);\r\n\r\n // Setup cross browser string\r\n _this62.xform = 'transform';\r\n ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) {\r\n var e = prefix + 'Transform';\r\n if (typeof document.body.style[e] !== 'undefined') {\r\n _this62.xform = e;\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n _this62._setupEventHandlers();\r\n _this62._scroll(_this62.offset);\r\n return _this62;\r\n }\r\n\r\n _createClass(Carousel, [{\r\n key: \"destroy\",\r\n\r\n\r\n /**\r\n * Teardown component\r\n */\r\n value: function destroy() {\r\n this._removeEventHandlers();\r\n this.el.M_Carousel = undefined;\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n var _this63 = this;\r\n\r\n this._handleCarouselTapBound = this._handleCarouselTap.bind(this);\r\n this._handleCarouselDragBound = this._handleCarouselDrag.bind(this);\r\n this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(this);\r\n this._handleCarouselClickBound = this._handleCarouselClick.bind(this);\r\n\r\n if (typeof window.ontouchstart !== 'undefined') {\r\n this.el.addEventListener('touchstart', this._handleCarouselTapBound);\r\n this.el.addEventListener('touchmove', this._handleCarouselDragBound);\r\n this.el.addEventListener('touchend', this._handleCarouselReleaseBound);\r\n }\r\n\r\n this.el.addEventListener('mousedown', this._handleCarouselTapBound);\r\n this.el.addEventListener('mousemove', this._handleCarouselDragBound);\r\n this.el.addEventListener('mouseup', this._handleCarouselReleaseBound);\r\n this.el.addEventListener('mouseleave', this._handleCarouselReleaseBound);\r\n this.el.addEventListener('click', this._handleCarouselClickBound);\r\n\r\n if (this.showIndicators && this.$indicators) {\r\n this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this);\r\n this.$indicators.find('.indicator-item').each(function (el, i) {\r\n el.addEventListener('click', _this63._handleIndicatorClickBound);\r\n });\r\n }\r\n\r\n // Resize\r\n var throttledResize = M.throttle(this._handleResize, 200);\r\n this._handleThrottledResizeBound = throttledResize.bind(this);\r\n\r\n window.addEventListener('resize', this._handleThrottledResizeBound);\r\n }\r\n\r\n /**\r\n * Remove Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n var _this64 = this;\r\n\r\n if (typeof window.ontouchstart !== 'undefined') {\r\n this.el.removeEventListener('touchstart', this._handleCarouselTapBound);\r\n this.el.removeEventListener('touchmove', this._handleCarouselDragBound);\r\n this.el.removeEventListener('touchend', this._handleCarouselReleaseBound);\r\n }\r\n this.el.removeEventListener('mousedown', this._handleCarouselTapBound);\r\n this.el.removeEventListener('mousemove', this._handleCarouselDragBound);\r\n this.el.removeEventListener('mouseup', this._handleCarouselReleaseBound);\r\n this.el.removeEventListener('mouseleave', this._handleCarouselReleaseBound);\r\n this.el.removeEventListener('click', this._handleCarouselClickBound);\r\n\r\n if (this.showIndicators && this.$indicators) {\r\n this.$indicators.find('.indicator-item').each(function (el, i) {\r\n el.removeEventListener('click', _this64._handleIndicatorClickBound);\r\n });\r\n }\r\n\r\n window.removeEventListener('resize', this._handleThrottledResizeBound);\r\n }\r\n\r\n /**\r\n * Handle Carousel Tap\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleCarouselTap\",\r\n value: function _handleCarouselTap(e) {\r\n // Fixes firefox draggable image bug\r\n if (e.type === 'mousedown' && $(e.target).is('img')) {\r\n e.preventDefault();\r\n }\r\n this.pressed = true;\r\n this.dragged = false;\r\n this.verticalDragged = false;\r\n this.reference = this._xpos(e);\r\n this.referenceY = this._ypos(e);\r\n\r\n this.velocity = this.amplitude = 0;\r\n this.frame = this.offset;\r\n this.timestamp = Date.now();\r\n clearInterval(this.ticker);\r\n this.ticker = setInterval(this._trackBound, 100);\r\n }\r\n\r\n /**\r\n * Handle Carousel Drag\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleCarouselDrag\",\r\n value: function _handleCarouselDrag(e) {\r\n var x = void 0,\r\n y = void 0,\r\n delta = void 0,\r\n deltaY = void 0;\r\n if (this.pressed) {\r\n x = this._xpos(e);\r\n y = this._ypos(e);\r\n delta = this.reference - x;\r\n deltaY = Math.abs(this.referenceY - y);\r\n if (deltaY < 30 && !this.verticalDragged) {\r\n // If vertical scrolling don't allow dragging.\r\n if (delta > 2 || delta < -2) {\r\n this.dragged = true;\r\n this.reference = x;\r\n this._scroll(this.offset + delta);\r\n }\r\n } else if (this.dragged) {\r\n // If dragging don't allow vertical scroll.\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n } else {\r\n // Vertical scrolling.\r\n this.verticalDragged = true;\r\n }\r\n }\r\n\r\n if (this.dragged) {\r\n // If dragging don't allow vertical scroll.\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Handle Carousel Release\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleCarouselRelease\",\r\n value: function _handleCarouselRelease(e) {\r\n if (this.pressed) {\r\n this.pressed = false;\r\n } else {\r\n return;\r\n }\r\n\r\n clearInterval(this.ticker);\r\n this.target = this.offset;\r\n if (this.velocity > 10 || this.velocity < -10) {\r\n this.amplitude = 0.9 * this.velocity;\r\n this.target = this.offset + this.amplitude;\r\n }\r\n this.target = Math.round(this.target / this.dim) * this.dim;\r\n\r\n // No wrap of items.\r\n if (this.noWrap) {\r\n if (this.target >= this.dim * (this.count - 1)) {\r\n this.target = this.dim * (this.count - 1);\r\n } else if (this.target < 0) {\r\n this.target = 0;\r\n }\r\n }\r\n this.amplitude = this.target - this.offset;\r\n this.timestamp = Date.now();\r\n requestAnimationFrame(this._autoScrollBound);\r\n\r\n if (this.dragged) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Handle Carousel Click\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleCarouselClick\",\r\n value: function _handleCarouselClick(e) {\r\n // Disable clicks if carousel was dragged.\r\n if (this.dragged) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n } else if (!this.options.fullWidth) {\r\n var clickedIndex = $(e.target).closest('.carousel-item').index();\r\n var diff = this._wrap(this.center) - clickedIndex;\r\n\r\n // Disable clicks if carousel was shifted by click\r\n if (diff !== 0) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n // fixes https://github.com/materializecss/materialize/issues/180\r\n if (clickedIndex < 0) {\r\n // relative X position > center of carousel = clicked at the right part of the carousel\r\n if (e.clientX - e.target.getBoundingClientRect().left > this.el.clientWidth / 2) {\r\n this.next();\r\n } else {\r\n this.prev();\r\n }\r\n } else {\r\n this._cycleTo(clickedIndex);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Handle Indicator CLick\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleIndicatorClick\",\r\n value: function _handleIndicatorClick(e) {\r\n e.stopPropagation();\r\n\r\n var indicator = $(e.target).closest('.indicator-item');\r\n if (indicator.length) {\r\n this._cycleTo(indicator.index());\r\n }\r\n }\r\n\r\n /**\r\n * Handle Throttle Resize\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleResize\",\r\n value: function _handleResize(e) {\r\n if (this.options.fullWidth) {\r\n this.itemWidth = this.$el.find('.carousel-item').first().innerWidth();\r\n this.imageHeight = this.$el.find('.carousel-item.active').height();\r\n this.dim = this.itemWidth * 2 + this.options.padding;\r\n this.offset = this.center * 2 * this.itemWidth;\r\n this.target = this.offset;\r\n this._setCarouselHeight(true);\r\n } else {\r\n this._scroll();\r\n }\r\n }\r\n\r\n /**\r\n * Set carousel height based on first slide\r\n * @param {Booleam} imageOnly - true for image slides\r\n */\r\n\r\n }, {\r\n key: \"_setCarouselHeight\",\r\n value: function _setCarouselHeight(imageOnly) {\r\n var _this65 = this;\r\n\r\n var firstSlide = this.$el.find('.carousel-item.active').length ? this.$el.find('.carousel-item.active').first() : this.$el.find('.carousel-item').first();\r\n var firstImage = firstSlide.find('img').first();\r\n if (firstImage.length) {\r\n if (firstImage[0].complete) {\r\n // If image won't trigger the load event\r\n var imageHeight = firstImage.height();\r\n if (imageHeight > 0) {\r\n this.$el.css('height', imageHeight + 'px');\r\n } else {\r\n // If image still has no height, use the natural dimensions to calculate\r\n var naturalWidth = firstImage[0].naturalWidth;\r\n var naturalHeight = firstImage[0].naturalHeight;\r\n var adjustedHeight = this.$el.width() / naturalWidth * naturalHeight;\r\n this.$el.css('height', adjustedHeight + 'px');\r\n }\r\n } else {\r\n // Get height when image is loaded normally\r\n firstImage.one('load', function (el, i) {\r\n _this65.$el.css('height', el.offsetHeight + 'px');\r\n });\r\n }\r\n } else if (!imageOnly) {\r\n var slideHeight = firstSlide.height();\r\n this.$el.css('height', slideHeight + 'px');\r\n }\r\n }\r\n\r\n /**\r\n * Get x position from event\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_xpos\",\r\n value: function _xpos(e) {\r\n // touch event\r\n if (e.targetTouches && e.targetTouches.length >= 1) {\r\n return e.targetTouches[0].clientX;\r\n }\r\n\r\n // mouse event\r\n return e.clientX;\r\n }\r\n\r\n /**\r\n * Get y position from event\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_ypos\",\r\n value: function _ypos(e) {\r\n // touch event\r\n if (e.targetTouches && e.targetTouches.length >= 1) {\r\n return e.targetTouches[0].clientY;\r\n }\r\n\r\n // mouse event\r\n return e.clientY;\r\n }\r\n\r\n /**\r\n * Wrap index\r\n * @param {Number} x\r\n */\r\n\r\n }, {\r\n key: \"_wrap\",\r\n value: function _wrap(x) {\r\n return x >= this.count ? x % this.count : x < 0 ? this._wrap(this.count + x % this.count) : x;\r\n }\r\n\r\n /**\r\n * Tracks scrolling information\r\n */\r\n\r\n }, {\r\n key: \"_track\",\r\n value: function _track() {\r\n var now = void 0,\r\n elapsed = void 0,\r\n delta = void 0,\r\n v = void 0;\r\n\r\n now = Date.now();\r\n elapsed = now - this.timestamp;\r\n this.timestamp = now;\r\n delta = this.offset - this.frame;\r\n this.frame = this.offset;\r\n\r\n v = 1000 * delta / (1 + elapsed);\r\n this.velocity = 0.8 * v + 0.2 * this.velocity;\r\n }\r\n\r\n /**\r\n * Auto scrolls to nearest carousel item.\r\n */\r\n\r\n }, {\r\n key: \"_autoScroll\",\r\n value: function _autoScroll() {\r\n var elapsed = void 0,\r\n delta = void 0;\r\n\r\n if (this.amplitude) {\r\n elapsed = Date.now() - this.timestamp;\r\n delta = this.amplitude * Math.exp(-elapsed / this.options.duration);\r\n if (delta > 2 || delta < -2) {\r\n this._scroll(this.target - delta);\r\n requestAnimationFrame(this._autoScrollBound);\r\n } else {\r\n this._scroll(this.target);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Scroll to target\r\n * @param {Number} x\r\n */\r\n\r\n }, {\r\n key: \"_scroll\",\r\n value: function _scroll(x) {\r\n var _this66 = this;\r\n\r\n // Track scrolling state\r\n if (!this.$el.hasClass('scrolling')) {\r\n this.el.classList.add('scrolling');\r\n }\r\n if (this.scrollingTimeout != null) {\r\n window.clearTimeout(this.scrollingTimeout);\r\n }\r\n this.scrollingTimeout = window.setTimeout(function () {\r\n _this66.$el.removeClass('scrolling');\r\n }, this.options.duration);\r\n\r\n // Start actual scroll\r\n var i = void 0,\r\n half = void 0,\r\n delta = void 0,\r\n dir = void 0,\r\n tween = void 0,\r\n el = void 0,\r\n alignment = void 0,\r\n zTranslation = void 0,\r\n tweenedOpacity = void 0,\r\n centerTweenedOpacity = void 0;\r\n var lastCenter = this.center;\r\n var numVisibleOffset = 1 / this.options.numVisible;\r\n\r\n this.offset = typeof x === 'number' ? x : this.offset;\r\n this.center = Math.floor((this.offset + this.dim / 2) / this.dim);\r\n delta = this.offset - this.center * this.dim;\r\n dir = delta < 0 ? 1 : -1;\r\n tween = -dir * delta * 2 / this.dim;\r\n half = this.count >> 1;\r\n\r\n if (this.options.fullWidth) {\r\n alignment = 'translateX(0)';\r\n centerTweenedOpacity = 1;\r\n } else {\r\n alignment = 'translateX(' + (this.el.clientWidth - this.itemWidth) / 2 + 'px) ';\r\n alignment += 'translateY(' + (this.el.clientHeight - this.itemHeight) / 2 + 'px)';\r\n centerTweenedOpacity = 1 - numVisibleOffset * tween;\r\n }\r\n\r\n // Set indicator active\r\n if (this.showIndicators) {\r\n var diff = this.center % this.count;\r\n var activeIndicator = this.$indicators.find('.indicator-item.active');\r\n if (activeIndicator.index() !== diff) {\r\n activeIndicator.removeClass('active');\r\n this.$indicators.find('.indicator-item').eq(diff)[0].classList.add('active');\r\n }\r\n }\r\n\r\n // center\r\n // Don't show wrapped items.\r\n if (!this.noWrap || this.center >= 0 && this.center < this.count) {\r\n el = this.images[this._wrap(this.center)];\r\n\r\n // Add active class to center item.\r\n if (!$(el).hasClass('active')) {\r\n this.$el.find('.carousel-item').removeClass('active');\r\n el.classList.add('active');\r\n }\r\n var transformString = alignment + \" translateX(\" + -delta / 2 + \"px) translateX(\" + dir * this.options.shift * tween * i + \"px) translateZ(\" + this.options.dist * tween + \"px)\";\r\n this._updateItemStyle(el, centerTweenedOpacity, 0, transformString);\r\n }\r\n\r\n for (i = 1; i <= half; ++i) {\r\n // right side\r\n if (this.options.fullWidth) {\r\n zTranslation = this.options.dist;\r\n tweenedOpacity = i === half && delta < 0 ? 1 - tween : 1;\r\n } else {\r\n zTranslation = this.options.dist * (i * 2 + tween * dir);\r\n tweenedOpacity = 1 - numVisibleOffset * (i * 2 + tween * dir);\r\n }\r\n // Don't show wrapped items.\r\n if (!this.noWrap || this.center + i < this.count) {\r\n el = this.images[this._wrap(this.center + i)];\r\n var _transformString = alignment + \" translateX(\" + (this.options.shift + (this.dim * i - delta) / 2) + \"px) translateZ(\" + zTranslation + \"px)\";\r\n this._updateItemStyle(el, tweenedOpacity, -i, _transformString);\r\n }\r\n\r\n // left side\r\n if (this.options.fullWidth) {\r\n zTranslation = this.options.dist;\r\n tweenedOpacity = i === half && delta > 0 ? 1 - tween : 1;\r\n } else {\r\n zTranslation = this.options.dist * (i * 2 - tween * dir);\r\n tweenedOpacity = 1 - numVisibleOffset * (i * 2 - tween * dir);\r\n }\r\n // Don't show wrapped items.\r\n if (!this.noWrap || this.center - i >= 0) {\r\n el = this.images[this._wrap(this.center - i)];\r\n var _transformString2 = alignment + \" translateX(\" + (-this.options.shift + (-this.dim * i - delta) / 2) + \"px) translateZ(\" + zTranslation + \"px)\";\r\n this._updateItemStyle(el, tweenedOpacity, -i, _transformString2);\r\n }\r\n }\r\n\r\n // center\r\n // Don't show wrapped items.\r\n if (!this.noWrap || this.center >= 0 && this.center < this.count) {\r\n el = this.images[this._wrap(this.center)];\r\n var _transformString3 = alignment + \" translateX(\" + -delta / 2 + \"px) translateX(\" + dir * this.options.shift * tween + \"px) translateZ(\" + this.options.dist * tween + \"px)\";\r\n this._updateItemStyle(el, centerTweenedOpacity, 0, _transformString3);\r\n }\r\n\r\n // onCycleTo callback\r\n var $currItem = this.$el.find('.carousel-item').eq(this._wrap(this.center));\r\n if (lastCenter !== this.center && typeof this.options.onCycleTo === 'function') {\r\n this.options.onCycleTo.call(this, $currItem[0], this.dragged);\r\n }\r\n\r\n // One time callback\r\n if (typeof this.oneTimeCallback === 'function') {\r\n this.oneTimeCallback.call(this, $currItem[0], this.dragged);\r\n this.oneTimeCallback = null;\r\n }\r\n }\r\n\r\n /**\r\n * Cycle to target\r\n * @param {Element} el\r\n * @param {Number} opacity\r\n * @param {Number} zIndex\r\n * @param {String} transform\r\n */\r\n\r\n }, {\r\n key: \"_updateItemStyle\",\r\n value: function _updateItemStyle(el, opacity, zIndex, transform) {\r\n el.style[this.xform] = transform;\r\n el.style.zIndex = zIndex;\r\n el.style.opacity = opacity;\r\n el.style.visibility = 'visible';\r\n }\r\n\r\n /**\r\n * Cycle to target\r\n * @param {Number} n\r\n * @param {Function} callback\r\n */\r\n\r\n }, {\r\n key: \"_cycleTo\",\r\n value: function _cycleTo(n, callback) {\r\n var diff = this.center % this.count - n;\r\n\r\n // Account for wraparound.\r\n if (!this.noWrap) {\r\n if (diff < 0) {\r\n if (Math.abs(diff + this.count) < Math.abs(diff)) {\r\n diff += this.count;\r\n }\r\n } else if (diff > 0) {\r\n if (Math.abs(diff - this.count) < diff) {\r\n diff -= this.count;\r\n }\r\n }\r\n }\r\n\r\n this.target = this.dim * Math.round(this.offset / this.dim);\r\n // Next\r\n if (diff < 0) {\r\n this.target += this.dim * Math.abs(diff);\r\n\r\n // Prev\r\n } else if (diff > 0) {\r\n this.target -= this.dim * diff;\r\n }\r\n\r\n // Set one time callback\r\n if (typeof callback === 'function') {\r\n this.oneTimeCallback = callback;\r\n }\r\n\r\n // Scroll\r\n if (this.offset !== this.target) {\r\n this.amplitude = this.target - this.offset;\r\n this.timestamp = Date.now();\r\n requestAnimationFrame(this._autoScrollBound);\r\n }\r\n }\r\n\r\n /**\r\n * Cycle to next item\r\n * @param {Number} [n]\r\n */\r\n\r\n }, {\r\n key: \"next\",\r\n value: function next(n) {\r\n if (n === undefined || isNaN(n)) {\r\n n = 1;\r\n }\r\n\r\n var index = this.center + n;\r\n if (index >= this.count || index < 0) {\r\n if (this.noWrap) {\r\n return;\r\n }\r\n\r\n index = this._wrap(index);\r\n }\r\n this._cycleTo(index);\r\n }\r\n\r\n /**\r\n * Cycle to previous item\r\n * @param {Number} [n]\r\n */\r\n\r\n }, {\r\n key: \"prev\",\r\n value: function prev(n) {\r\n if (n === undefined || isNaN(n)) {\r\n n = 1;\r\n }\r\n\r\n var index = this.center - n;\r\n if (index >= this.count || index < 0) {\r\n if (this.noWrap) {\r\n return;\r\n }\r\n\r\n index = this._wrap(index);\r\n }\r\n\r\n this._cycleTo(index);\r\n }\r\n\r\n /**\r\n * Cycle to nth item\r\n * @param {Number} [n]\r\n * @param {Function} callback\r\n */\r\n\r\n }, {\r\n key: \"set\",\r\n value: function set(n, callback) {\r\n if (n === undefined || isNaN(n)) {\r\n n = 0;\r\n }\r\n\r\n if (n > this.count || n < 0) {\r\n if (this.noWrap) {\r\n return;\r\n }\r\n\r\n n = this._wrap(n);\r\n }\r\n\r\n this._cycleTo(n, callback);\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(Carousel.__proto__ || Object.getPrototypeOf(Carousel), \"init\", this).call(this, this, els, options);\r\n }\r\n\r\n /**\r\n * Get Instance\r\n */\r\n\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_Carousel;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return Carousel;\r\n }(Component);\r\n\r\n M.Carousel = Carousel;\r\n\r\n if (M.jQueryLoaded) {\r\n M.initializeJqueryWrapper(Carousel, 'carousel', 'M_Carousel');\r\n }\r\n})(cash);\r\n;(function ($) {\r\n 'use strict';\r\n\r\n var _defaults = {\r\n onOpen: undefined,\r\n onClose: undefined\r\n };\r\n\r\n /**\r\n * @class\r\n *\r\n */\r\n\r\n var TapTarget = function (_Component19) {\r\n _inherits(TapTarget, _Component19);\r\n\r\n /**\r\n * Construct TapTarget instance\r\n * @constructor\r\n * @param {Element} el\r\n * @param {Object} options\r\n */\r\n function TapTarget(el, options) {\r\n _classCallCheck(this, TapTarget);\r\n\r\n var _this67 = _possibleConstructorReturn(this, (TapTarget.__proto__ || Object.getPrototypeOf(TapTarget)).call(this, TapTarget, el, options));\r\n\r\n _this67.el.M_TapTarget = _this67;\r\n\r\n /**\r\n * Options for the select\r\n * @member TapTarget#options\r\n * @prop {Function} onOpen - Callback function called when feature discovery is opened\r\n * @prop {Function} onClose - Callback function called when feature discovery is closed\r\n */\r\n _this67.options = $.extend({}, TapTarget.defaults, options);\r\n\r\n _this67.isOpen = false;\r\n\r\n // setup\r\n _this67.$origin = $('#' + _this67.$el.attr('data-target'));\r\n _this67._setup();\r\n\r\n _this67._calculatePositioning();\r\n _this67._setupEventHandlers();\r\n return _this67;\r\n }\r\n\r\n _createClass(TapTarget, [{\r\n key: \"destroy\",\r\n\r\n\r\n /**\r\n * Teardown component\r\n */\r\n value: function destroy() {\r\n this._removeEventHandlers();\r\n this.el.TapTarget = undefined;\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n this._handleDocumentClickBound = this._handleDocumentClick.bind(this);\r\n this._handleTargetClickBound = this._handleTargetClick.bind(this);\r\n this._handleOriginClickBound = this._handleOriginClick.bind(this);\r\n\r\n this.el.addEventListener('click', this._handleTargetClickBound);\r\n this.originEl.addEventListener('click', this._handleOriginClickBound);\r\n\r\n // Resize\r\n var throttledResize = M.throttle(this._handleResize, 200);\r\n this._handleThrottledResizeBound = throttledResize.bind(this);\r\n\r\n window.addEventListener('resize', this._handleThrottledResizeBound);\r\n }\r\n\r\n /**\r\n * Remove Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n this.el.removeEventListener('click', this._handleTargetClickBound);\r\n this.originEl.removeEventListener('click', this._handleOriginClickBound);\r\n window.removeEventListener('resize', this._handleThrottledResizeBound);\r\n }\r\n\r\n /**\r\n * Handle Target Click\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleTargetClick\",\r\n value: function _handleTargetClick(e) {\r\n this.open();\r\n }\r\n\r\n /**\r\n * Handle Origin Click\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleOriginClick\",\r\n value: function _handleOriginClick(e) {\r\n this.close();\r\n }\r\n\r\n /**\r\n * Handle Resize\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleResize\",\r\n value: function _handleResize(e) {\r\n this._calculatePositioning();\r\n }\r\n\r\n /**\r\n * Handle Resize\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleDocumentClick\",\r\n value: function _handleDocumentClick(e) {\r\n if (!$(e.target).closest('.tap-target-wrapper').length) {\r\n this.close();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n /**\r\n * Setup Tap Target\r\n */\r\n\r\n }, {\r\n key: \"_setup\",\r\n value: function _setup() {\r\n // Creating tap target\r\n this.wrapper = this.$el.parent()[0];\r\n this.waveEl = $(this.wrapper).find('.tap-target-wave')[0];\r\n this.originEl = $(this.wrapper).find('.tap-target-origin')[0];\r\n this.contentEl = this.$el.find('.tap-target-content')[0];\r\n\r\n // Creating wrapper\r\n if (!$(this.wrapper).hasClass('.tap-target-wrapper')) {\r\n this.wrapper = document.createElement('div');\r\n this.wrapper.classList.add('tap-target-wrapper');\r\n this.$el.before($(this.wrapper));\r\n this.wrapper.append(this.el);\r\n }\r\n\r\n // Creating content\r\n if (!this.contentEl) {\r\n this.contentEl = document.createElement('div');\r\n this.contentEl.classList.add('tap-target-content');\r\n this.$el.append(this.contentEl);\r\n }\r\n\r\n // Creating foreground wave\r\n if (!this.waveEl) {\r\n this.waveEl = document.createElement('div');\r\n this.waveEl.classList.add('tap-target-wave');\r\n\r\n // Creating origin\r\n if (!this.originEl) {\r\n this.originEl = this.$origin.clone(true, true);\r\n this.originEl.addClass('tap-target-origin');\r\n this.originEl.removeAttr('id');\r\n this.originEl.removeAttr('style');\r\n this.originEl = this.originEl[0];\r\n this.waveEl.append(this.originEl);\r\n }\r\n\r\n this.wrapper.append(this.waveEl);\r\n }\r\n }\r\n\r\n /**\r\n * Calculate positioning\r\n */\r\n\r\n }, {\r\n key: \"_calculatePositioning\",\r\n value: function _calculatePositioning() {\r\n // Element or parent is fixed position?\r\n var isFixed = this.$origin.css('position') === 'fixed';\r\n if (!isFixed) {\r\n var parents = this.$origin.parents();\r\n for (var i = 0; i < parents.length; i++) {\r\n isFixed = $(parents[i]).css('position') == 'fixed';\r\n if (isFixed) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Calculating origin\r\n var originWidth = this.$origin.outerWidth();\r\n var originHeight = this.$origin.outerHeight();\r\n var originTop = isFixed ? this.$origin.offset().top - M.getDocumentScrollTop() : this.$origin.offset().top;\r\n var originLeft = isFixed ? this.$origin.offset().left - M.getDocumentScrollLeft() : this.$origin.offset().left;\r\n\r\n // Calculating screen\r\n var windowWidth = window.innerWidth;\r\n var windowHeight = window.innerHeight;\r\n var scrollBarWidth = windowWidth - document.documentElement.clientWidth;\r\n var centerX = windowWidth / 2;\r\n var centerY = windowHeight / 2;\r\n var isLeft = originLeft <= centerX;\r\n var isRight = originLeft > centerX;\r\n var isTop = originTop <= centerY;\r\n var isBottom = originTop > centerY;\r\n var isCenterX = originLeft >= windowWidth * 0.25 && originLeft <= windowWidth * 0.75;\r\n\r\n // Calculating tap target\r\n var tapTargetWidth = this.$el.outerWidth();\r\n var tapTargetHeight = this.$el.outerHeight();\r\n var tapTargetTop = originTop + originHeight / 2 - tapTargetHeight / 2;\r\n var tapTargetLeft = originLeft + originWidth / 2 - tapTargetWidth / 2;\r\n var tapTargetPosition = isFixed ? 'fixed' : 'absolute';\r\n\r\n // Calculating content\r\n var tapTargetTextWidth = isCenterX ? tapTargetWidth : tapTargetWidth / 2 + originWidth;\r\n var tapTargetTextHeight = tapTargetHeight / 2;\r\n var tapTargetTextTop = isTop ? tapTargetHeight / 2 : 0;\r\n var tapTargetTextBottom = 0;\r\n var tapTargetTextLeft = isLeft && !isCenterX ? tapTargetWidth / 2 - originWidth : 0;\r\n var tapTargetTextRight = 0;\r\n var tapTargetTextPadding = originWidth;\r\n var tapTargetTextAlign = isBottom ? 'bottom' : 'top';\r\n\r\n // Calculating wave\r\n var tapTargetWaveWidth = originWidth > originHeight ? originWidth * 2 : originWidth * 2;\r\n var tapTargetWaveHeight = tapTargetWaveWidth;\r\n var tapTargetWaveTop = tapTargetHeight / 2 - tapTargetWaveHeight / 2;\r\n var tapTargetWaveLeft = tapTargetWidth / 2 - tapTargetWaveWidth / 2;\r\n\r\n // Setting tap target\r\n var tapTargetWrapperCssObj = {};\r\n tapTargetWrapperCssObj.top = isTop ? tapTargetTop + 'px' : '';\r\n tapTargetWrapperCssObj.right = isRight ? windowWidth - tapTargetLeft - tapTargetWidth - scrollBarWidth + 'px' : '';\r\n tapTargetWrapperCssObj.bottom = isBottom ? windowHeight - tapTargetTop - tapTargetHeight + 'px' : '';\r\n tapTargetWrapperCssObj.left = isLeft ? tapTargetLeft + 'px' : '';\r\n tapTargetWrapperCssObj.position = tapTargetPosition;\r\n $(this.wrapper).css(tapTargetWrapperCssObj);\r\n\r\n // Setting content\r\n $(this.contentEl).css({\r\n width: tapTargetTextWidth + 'px',\r\n height: tapTargetTextHeight + 'px',\r\n top: tapTargetTextTop + 'px',\r\n right: tapTargetTextRight + 'px',\r\n bottom: tapTargetTextBottom + 'px',\r\n left: tapTargetTextLeft + 'px',\r\n padding: tapTargetTextPadding + 'px',\r\n verticalAlign: tapTargetTextAlign\r\n });\r\n\r\n // Setting wave\r\n $(this.waveEl).css({\r\n top: tapTargetWaveTop + 'px',\r\n left: tapTargetWaveLeft + 'px',\r\n width: tapTargetWaveWidth + 'px',\r\n height: tapTargetWaveHeight + 'px'\r\n });\r\n }\r\n\r\n /**\r\n * Open TapTarget\r\n */\r\n\r\n }, {\r\n key: \"open\",\r\n value: function open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n\r\n // onOpen callback\r\n if (typeof this.options.onOpen === 'function') {\r\n this.options.onOpen.call(this, this.$origin[0]);\r\n }\r\n\r\n this.isOpen = true;\r\n this.wrapper.classList.add('open');\r\n\r\n document.body.addEventListener('click', this._handleDocumentClickBound, true);\r\n document.body.addEventListener('touchend', this._handleDocumentClickBound);\r\n }\r\n\r\n /**\r\n * Close Tap Target\r\n */\r\n\r\n }, {\r\n key: \"close\",\r\n value: function close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n // onClose callback\r\n if (typeof this.options.onClose === 'function') {\r\n this.options.onClose.call(this, this.$origin[0]);\r\n }\r\n\r\n this.isOpen = false;\r\n this.wrapper.classList.remove('open');\r\n\r\n document.body.removeEventListener('click', this._handleDocumentClickBound, true);\r\n document.body.removeEventListener('touchend', this._handleDocumentClickBound);\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(TapTarget.__proto__ || Object.getPrototypeOf(TapTarget), \"init\", this).call(this, this, els, options);\r\n }\r\n\r\n /**\r\n * Get Instance\r\n */\r\n\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_TapTarget;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return TapTarget;\r\n }(Component);\r\n\r\n M.TapTarget = TapTarget;\r\n\r\n if (M.jQueryLoaded) {\r\n M.initializeJqueryWrapper(TapTarget, 'tapTarget', 'M_TapTarget');\r\n }\r\n})(cash);\r\n;(function ($) {\r\n 'use strict';\r\n\r\n var _defaults = {\r\n classes: '',\r\n dropdownOptions: {}\r\n };\r\n\r\n var FormSelect = function (_Component20) {\r\n _inherits(FormSelect, _Component20);\r\n\r\n function FormSelect(el, options) {\r\n _classCallCheck(this, FormSelect);\r\n\r\n var _this68 = _possibleConstructorReturn(this, (FormSelect.__proto__ || Object.getPrototypeOf(FormSelect)).call(this, FormSelect, el, options));\r\n\r\n if (_this68.$el.hasClass('browser-default')) return _possibleConstructorReturn(_this68);\r\n _this68.el.M_FormSelect = _this68;\r\n _this68.options = $.extend({}, FormSelect.defaults, options);\r\n _this68.isMultiple = _this68.$el.prop('multiple');\r\n _this68.el.tabIndex = -1;\r\n _this68._values = [];\r\n _this68._setupDropdown();\r\n _this68._setupEventHandlers();\r\n return _this68;\r\n }\r\n\r\n _createClass(FormSelect, [{\r\n key: \"destroy\",\r\n value: function destroy() {\r\n this._removeEventHandlers();\r\n this._removeDropdown();\r\n this.el.M_FormSelect = undefined;\r\n }\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n var _this69 = this;\r\n\r\n this._handleSelectChangeBound = this._handleSelectChange.bind(this);\r\n this._handleOptionClickBound = this._handleOptionClick.bind(this);\r\n this._handleInputClickBound = this._handleInputClick.bind(this);\r\n $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) {\r\n el.addEventListener('click', _this69._handleOptionClickBound);\r\n });\r\n this.el.addEventListener('change', this._handleSelectChangeBound);\r\n this.input.addEventListener('click', this._handleInputClickBound);\r\n }\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n var _this70 = this;\r\n\r\n $(this.dropdownOptions).find('li:not(.optgroup)').each(function (el) {\r\n el.removeEventListener('click', _this70._handleOptionClickBound);\r\n });\r\n this.el.removeEventListener('change', this._handleSelectChangeBound);\r\n this.input.removeEventListener('click', this._handleInputClickBound);\r\n }\r\n }, {\r\n key: \"_handleSelectChange\",\r\n value: function _handleSelectChange(e) {\r\n this._setValueToInput();\r\n }\r\n }, {\r\n key: \"_handleOptionClick\",\r\n value: function _handleOptionClick(e) {\r\n e.preventDefault();\r\n var virtualOption = $(e.target).closest('li')[0];\r\n this._selectOptionElement(virtualOption);\r\n e.stopPropagation();\r\n }\r\n }, {\r\n key: \"_arraysEqual\",\r\n value: function _arraysEqual(a, b) {\r\n if (a === b) return true;\r\n if (a == null || b == null) return false;\r\n if (a.length !== b.length) return false;\r\n for (var i = 0; i < a.length; ++i) {\r\n if (a[i] !== b[i]) return false;\r\n }return true;\r\n }\r\n }, {\r\n key: \"_selectOptionElement\",\r\n value: function _selectOptionElement(virtualOption) {\r\n if (!$(virtualOption).hasClass('disabled') && !$(virtualOption).hasClass('optgroup')) {\r\n var value = this._values.filter(function (value) {\r\n return value.optionEl === virtualOption;\r\n })[0];\r\n var previousSelectedValues = this.getSelectedValues();\r\n if (this.isMultiple) {\r\n // Multi-Select\r\n this._toggleEntryFromArray(value);\r\n } else {\r\n // Single-Select\r\n this._deselectAll();\r\n this._selectValue(value);\r\n }\r\n // Refresh Input-Text\r\n this._setValueToInput();\r\n // Trigger Change-Event only when data is different\r\n var actualSelectedValues = this.getSelectedValues();\r\n var selectionHasChanged = !this._arraysEqual(previousSelectedValues, actualSelectedValues);\r\n if (selectionHasChanged) this.$el.trigger('change');\r\n }\r\n if (!this.isMultiple) this.dropdown.close();\r\n }\r\n }, {\r\n key: \"_handleInputClick\",\r\n value: function _handleInputClick() {\r\n if (this.dropdown && this.dropdown.isOpen) {\r\n this._setValueToInput();\r\n this._setSelectedStates();\r\n }\r\n }\r\n }, {\r\n key: \"_setupDropdown\",\r\n value: function _setupDropdown() {\r\n var _this71 = this;\r\n\r\n this.wrapper = document.createElement('div');\r\n $(this.wrapper).addClass('select-wrapper ' + this.options.classes);\r\n this.$el.before($(this.wrapper));\r\n\r\n // Move actual select element into overflow hidden wrapper\r\n var $hideSelect = $('
    ');\r\n $(this.wrapper).append($hideSelect);\r\n $hideSelect[0].appendChild(this.el);\r\n\r\n if (this.el.disabled) this.wrapper.classList.add('disabled');\r\n\r\n // Create dropdown\r\n this.$selectOptions = this.$el.children('option, optgroup');\r\n this.dropdownOptions = document.createElement('ul');\r\n this.dropdownOptions.id = \"select-options-\" + M.guid();\r\n $(this.dropdownOptions).addClass('dropdown-content select-dropdown ' + (this.isMultiple ? 'multiple-select-dropdown' : ''));\r\n\r\n // Create dropdown structure\r\n if (this.$selectOptions.length) {\r\n this.$selectOptions.each(function (realOption) {\r\n if ($(realOption).is('option')) {\r\n // Option\r\n var virtualOption = _this71._createAndAppendOptionWithIcon(realOption, _this71.isMultiple ? 'multiple' : undefined);\r\n _this71._addOptionToValues(realOption, virtualOption);\r\n } else if ($(realOption).is('optgroup')) {\r\n // Optgroup\r\n var selectOptions = $(realOption).children('option');\r\n $(_this71.dropdownOptions).append($('
  • ' + realOption.getAttribute('label') + '
  • ')[0]);\r\n selectOptions.each(function (realOption) {\r\n var virtualOption = _this71._createAndAppendOptionWithIcon(realOption, 'optgroup-option');\r\n _this71._addOptionToValues(realOption, virtualOption);\r\n });\r\n }\r\n });\r\n }\r\n $(this.wrapper).append(this.dropdownOptions);\r\n\r\n // Add input dropdown\r\n this.input = document.createElement('input');\r\n $(this.input).addClass('select-dropdown dropdown-trigger');\r\n this.input.setAttribute('type', 'text');\r\n this.input.setAttribute('readonly', 'true');\r\n this.input.setAttribute('data-target', this.dropdownOptions.id);\r\n if (this.el.disabled) $(this.input).prop('disabled', 'true');\r\n\r\n $(this.wrapper).prepend(this.input);\r\n this._setValueToInput();\r\n\r\n // Add caret\r\n var dropdownIcon = $('');\r\n $(this.wrapper).prepend(dropdownIcon[0]);\r\n // Initialize dropdown\r\n if (!this.el.disabled) {\r\n var dropdownOptions = $.extend({}, this.options.dropdownOptions);\r\n dropdownOptions.coverTrigger = false;\r\n var userOnOpenEnd = dropdownOptions.onOpenEnd;\r\n // Add callback for centering selected option when dropdown content is scrollable\r\n dropdownOptions.onOpenEnd = function (el) {\r\n var selectedOption = $(_this71.dropdownOptions).find('.selected').first();\r\n if (selectedOption.length) {\r\n // Focus selected option in dropdown\r\n M.keyDown = true;\r\n _this71.dropdown.focusedIndex = selectedOption.index();\r\n _this71.dropdown._focusFocusedItem();\r\n M.keyDown = false;\r\n // Handle scrolling to selected option\r\n if (_this71.dropdown.isScrollable) {\r\n var scrollOffset = selectedOption[0].getBoundingClientRect().top - _this71.dropdownOptions.getBoundingClientRect().top; // scroll to selected option\r\n scrollOffset -= _this71.dropdownOptions.clientHeight / 2; // center in dropdown\r\n _this71.dropdownOptions.scrollTop = scrollOffset;\r\n }\r\n }\r\n // Handle user declared onOpenEnd if needed\r\n if (userOnOpenEnd && typeof userOnOpenEnd === 'function') userOnOpenEnd.call(_this71.dropdown, _this71.el);\r\n };\r\n // Prevent dropdown from closing too early\r\n dropdownOptions.closeOnClick = false;\r\n this.dropdown = M.Dropdown.init(this.input, dropdownOptions);\r\n }\r\n // Add initial selections\r\n this._setSelectedStates();\r\n }\r\n }, {\r\n key: \"_addOptionToValues\",\r\n value: function _addOptionToValues(realOption, virtualOption) {\r\n this._values.push({ el: realOption, optionEl: virtualOption });\r\n }\r\n }, {\r\n key: \"_removeDropdown\",\r\n value: function _removeDropdown() {\r\n $(this.wrapper).find('.caret').remove();\r\n $(this.input).remove();\r\n $(this.dropdownOptions).remove();\r\n $(this.wrapper).before(this.$el);\r\n $(this.wrapper).remove();\r\n }\r\n }, {\r\n key: \"_createAndAppendOptionWithIcon\",\r\n value: function _createAndAppendOptionWithIcon(realOption, type) {\r\n var li = document.createElement('li');\r\n if (realOption.disabled) li.classList.add('disabled');\r\n if (type === 'optgroup-option') li.classList.add(type);\r\n // Text / Checkbox\r\n var span = document.createElement('span');\r\n if (this.isMultiple) span.innerHTML = \"\";else span.innerHTML = realOption.innerHTML;\r\n li.appendChild(span);\r\n // add Icon\r\n var iconUrl = realOption.getAttribute('data-icon');\r\n var classes = realOption.getAttribute('class');\r\n if (iconUrl) {\r\n var img = $(\"\\\"\\\"\");\r\n li.prepend(img[0]);\r\n }\r\n // Check for multiple type\r\n $(this.dropdownOptions).append(li);\r\n return li;\r\n }\r\n }, {\r\n key: \"_selectValue\",\r\n value: function _selectValue(value) {\r\n value.el.selected = true;\r\n value.optionEl.classList.add('selected');\r\n var checkbox = value.optionEl.querySelector('input[type=\"checkbox\"]');\r\n if (checkbox) checkbox.checked = true;\r\n }\r\n }, {\r\n key: \"_deselectValue\",\r\n value: function _deselectValue(value) {\r\n value.el.selected = false;\r\n value.optionEl.classList.remove('selected');\r\n var checkbox = value.optionEl.querySelector('input[type=\"checkbox\"]');\r\n if (checkbox) checkbox.checked = false;\r\n }\r\n }, {\r\n key: \"_deselectAll\",\r\n value: function _deselectAll() {\r\n var _this72 = this;\r\n\r\n this._values.forEach(function (value) {\r\n _this72._deselectValue(value);\r\n });\r\n }\r\n }, {\r\n key: \"_isValueSelected\",\r\n value: function _isValueSelected(value) {\r\n var realValues = this.getSelectedValues();\r\n return realValues.some(function (realValue) {\r\n return realValue === value.el.value;\r\n });\r\n }\r\n }, {\r\n key: \"_toggleEntryFromArray\",\r\n value: function _toggleEntryFromArray(value) {\r\n var isSelected = this._isValueSelected(value);\r\n if (isSelected) this._deselectValue(value);else this._selectValue(value);\r\n }\r\n }, {\r\n key: \"_getSelectedOptions\",\r\n value: function _getSelectedOptions() {\r\n return Array.prototype.filter.call(this.el.selectedOptions, function (realOption) {\r\n return realOption;\r\n });\r\n }\r\n }, {\r\n key: \"_setValueToInput\",\r\n value: function _setValueToInput() {\r\n var realOptions = this._getSelectedOptions();\r\n var values = this._values.filter(function (value) {\r\n return realOptions.indexOf(value.el) >= 0;\r\n });\r\n var texts = values.map(function (value) {\r\n return value.optionEl.querySelector('span').innerText.trim();\r\n });\r\n // Set input-text to first Option with empty value which indicates a description like \"choose your option\"\r\n if (texts.length === 0) {\r\n var firstDisabledOption = this.$el.find('option:disabled').eq(0);\r\n if (firstDisabledOption.length > 0 && firstDisabledOption[0].value === '') {\r\n this.input.value = firstDisabledOption.text();\r\n return;\r\n }\r\n }\r\n this.input.value = texts.join(', ');\r\n }\r\n }, {\r\n key: \"_setSelectedStates\",\r\n value: function _setSelectedStates() {\r\n var _this73 = this;\r\n\r\n this._values.forEach(function (value) {\r\n var optionIsSelected = $(value.el).prop('selected');\r\n $(value.optionEl).find('input[type=\"checkbox\"]').prop('checked', optionIsSelected);\r\n if (optionIsSelected) {\r\n _this73._activateOption($(_this73.dropdownOptions), $(value.optionEl));\r\n } else $(value.optionEl).removeClass('selected');\r\n });\r\n }\r\n }, {\r\n key: \"_activateOption\",\r\n value: function _activateOption(ul, li) {\r\n if (!li) return;\r\n if (!this.isMultiple) ul.find('li.selected').removeClass('selected');\r\n $(li).addClass('selected');\r\n }\r\n }, {\r\n key: \"getSelectedValues\",\r\n value: function getSelectedValues() {\r\n return this._getSelectedOptions().map(function (realOption) {\r\n return realOption.value;\r\n });\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(FormSelect.__proto__ || Object.getPrototypeOf(FormSelect), \"init\", this).call(this, this, els, options);\r\n }\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_FormSelect;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return FormSelect;\r\n }(Component);\r\n\r\n M.FormSelect = FormSelect;\r\n\r\n if (M.jQueryLoaded) M.initializeJqueryWrapper(FormSelect, 'formSelect', 'M_FormSelect');\r\n})(cash);\r\n;(function ($, anim) {\r\n 'use strict';\r\n\r\n var _defaults = {};\r\n\r\n /**\r\n * @class\r\n *\r\n */\r\n\r\n var Range = function (_Component21) {\r\n _inherits(Range, _Component21);\r\n\r\n /**\r\n * Construct Range instance\r\n * @constructor\r\n * @param {Element} el\r\n * @param {Object} options\r\n */\r\n function Range(el, options) {\r\n _classCallCheck(this, Range);\r\n\r\n var _this74 = _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).call(this, Range, el, options));\r\n\r\n _this74.el.M_Range = _this74;\r\n\r\n /**\r\n * Options for the range\r\n * @member Range#options\r\n */\r\n _this74.options = $.extend({}, Range.defaults, options);\r\n\r\n _this74._mousedown = false;\r\n\r\n // Setup\r\n _this74._setupThumb();\r\n\r\n _this74._setupEventHandlers();\r\n return _this74;\r\n }\r\n\r\n _createClass(Range, [{\r\n key: \"destroy\",\r\n\r\n\r\n /**\r\n * Teardown component\r\n */\r\n value: function destroy() {\r\n this._removeEventHandlers();\r\n this._removeThumb();\r\n this.el.M_Range = undefined;\r\n }\r\n\r\n /**\r\n * Setup Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_setupEventHandlers\",\r\n value: function _setupEventHandlers() {\r\n this._handleRangeChangeBound = this._handleRangeChange.bind(this);\r\n this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(this);\r\n this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(this);\r\n this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(this);\r\n this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(this);\r\n\r\n this.el.addEventListener('change', this._handleRangeChangeBound);\r\n\r\n this.el.addEventListener('mousedown', this._handleRangeMousedownTouchstartBound);\r\n this.el.addEventListener('touchstart', this._handleRangeMousedownTouchstartBound);\r\n\r\n this.el.addEventListener('input', this._handleRangeInputMousemoveTouchmoveBound);\r\n this.el.addEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound);\r\n this.el.addEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound);\r\n\r\n this.el.addEventListener('mouseup', this._handleRangeMouseupTouchendBound);\r\n this.el.addEventListener('touchend', this._handleRangeMouseupTouchendBound);\r\n\r\n this.el.addEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound);\r\n this.el.addEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound);\r\n this.el.addEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound);\r\n }\r\n\r\n /**\r\n * Remove Event Handlers\r\n */\r\n\r\n }, {\r\n key: \"_removeEventHandlers\",\r\n value: function _removeEventHandlers() {\r\n this.el.removeEventListener('change', this._handleRangeChangeBound);\r\n\r\n this.el.removeEventListener('mousedown', this._handleRangeMousedownTouchstartBound);\r\n this.el.removeEventListener('touchstart', this._handleRangeMousedownTouchstartBound);\r\n\r\n this.el.removeEventListener('input', this._handleRangeInputMousemoveTouchmoveBound);\r\n this.el.removeEventListener('mousemove', this._handleRangeInputMousemoveTouchmoveBound);\r\n this.el.removeEventListener('touchmove', this._handleRangeInputMousemoveTouchmoveBound);\r\n\r\n this.el.removeEventListener('mouseup', this._handleRangeMouseupTouchendBound);\r\n this.el.removeEventListener('touchend', this._handleRangeMouseupTouchendBound);\r\n\r\n this.el.removeEventListener('blur', this._handleRangeBlurMouseoutTouchleaveBound);\r\n this.el.removeEventListener('mouseout', this._handleRangeBlurMouseoutTouchleaveBound);\r\n this.el.removeEventListener('touchleave', this._handleRangeBlurMouseoutTouchleaveBound);\r\n }\r\n\r\n /**\r\n * Handle Range Change\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleRangeChange\",\r\n value: function _handleRangeChange() {\r\n $(this.value).html(this.$el.val());\r\n\r\n if (!$(this.thumb).hasClass('active')) {\r\n this._showRangeBubble();\r\n }\r\n\r\n var offsetLeft = this._calcRangeOffset();\r\n $(this.thumb).addClass('active').css('left', offsetLeft + 'px');\r\n }\r\n\r\n /**\r\n * Handle Range Mousedown and Touchstart\r\n * @param {Event} e\r\n */\r\n\r\n }, {\r\n key: \"_handleRangeMousedownTouchstart\",\r\n value: function _handleRangeMousedownTouchstart(e) {\r\n // Set indicator value\r\n $(this.value).html(this.$el.val());\r\n\r\n this._mousedown = true;\r\n this.$el.addClass('active');\r\n\r\n if (!$(this.thumb).hasClass('active')) {\r\n this._showRangeBubble();\r\n }\r\n\r\n if (e.type !== 'input') {\r\n var offsetLeft = this._calcRangeOffset();\r\n $(this.thumb).addClass('active').css('left', offsetLeft + 'px');\r\n }\r\n }\r\n\r\n /**\r\n * Handle Range Input, Mousemove and Touchmove\r\n */\r\n\r\n }, {\r\n key: \"_handleRangeInputMousemoveTouchmove\",\r\n value: function _handleRangeInputMousemoveTouchmove() {\r\n if (this._mousedown) {\r\n if (!$(this.thumb).hasClass('active')) {\r\n this._showRangeBubble();\r\n }\r\n\r\n var offsetLeft = this._calcRangeOffset();\r\n $(this.thumb).addClass('active').css('left', offsetLeft + 'px');\r\n $(this.value).html(this.$el.val());\r\n }\r\n }\r\n\r\n /**\r\n * Handle Range Mouseup and Touchend\r\n */\r\n\r\n }, {\r\n key: \"_handleRangeMouseupTouchend\",\r\n value: function _handleRangeMouseupTouchend() {\r\n this._mousedown = false;\r\n this.$el.removeClass('active');\r\n }\r\n\r\n /**\r\n * Handle Range Blur, Mouseout and Touchleave\r\n */\r\n\r\n }, {\r\n key: \"_handleRangeBlurMouseoutTouchleave\",\r\n value: function _handleRangeBlurMouseoutTouchleave() {\r\n if (!this._mousedown) {\r\n var paddingLeft = parseInt(this.$el.css('padding-left'));\r\n var marginLeft = 7 + paddingLeft + 'px';\r\n\r\n if ($(this.thumb).hasClass('active')) {\r\n anim.remove(this.thumb);\r\n anim({\r\n targets: this.thumb,\r\n height: 0,\r\n width: 0,\r\n top: 10,\r\n easing: 'easeOutQuad',\r\n marginLeft: marginLeft,\r\n duration: 100\r\n });\r\n }\r\n $(this.thumb).removeClass('active');\r\n }\r\n }\r\n\r\n /**\r\n * Setup dropdown\r\n */\r\n\r\n }, {\r\n key: \"_setupThumb\",\r\n value: function _setupThumb() {\r\n this.thumb = document.createElement('span');\r\n this.value = document.createElement('span');\r\n $(this.thumb).addClass('thumb');\r\n $(this.value).addClass('value');\r\n $(this.thumb).append(this.value);\r\n this.$el.after(this.thumb);\r\n }\r\n\r\n /**\r\n * Remove dropdown\r\n */\r\n\r\n }, {\r\n key: \"_removeThumb\",\r\n value: function _removeThumb() {\r\n $(this.thumb).remove();\r\n }\r\n\r\n /**\r\n * morph thumb into bubble\r\n */\r\n\r\n }, {\r\n key: \"_showRangeBubble\",\r\n value: function _showRangeBubble() {\r\n var paddingLeft = parseInt($(this.thumb).parent().css('padding-left'));\r\n var marginLeft = -7 + paddingLeft + 'px'; // TODO: fix magic number?\r\n anim.remove(this.thumb);\r\n anim({\r\n targets: this.thumb,\r\n height: 30,\r\n width: 30,\r\n top: -30,\r\n marginLeft: marginLeft,\r\n duration: 300,\r\n easing: 'easeOutQuint'\r\n });\r\n }\r\n\r\n /**\r\n * Calculate the offset of the thumb\r\n * @return {Number} offset in pixels\r\n */\r\n\r\n }, {\r\n key: \"_calcRangeOffset\",\r\n value: function _calcRangeOffset() {\r\n var width = this.$el.width() - 15;\r\n var max = parseFloat(this.$el.attr('max')) || 100; // Range default max\r\n var min = parseFloat(this.$el.attr('min')) || 0; // Range default min\r\n var percent = (parseFloat(this.$el.val()) - min) / (max - min);\r\n return percent * width;\r\n }\r\n }], [{\r\n key: \"init\",\r\n value: function init(els, options) {\r\n return _get(Range.__proto__ || Object.getPrototypeOf(Range), \"init\", this).call(this, this, els, options);\r\n }\r\n\r\n /**\r\n * Get Instance\r\n */\r\n\r\n }, {\r\n key: \"getInstance\",\r\n value: function getInstance(el) {\r\n var domElem = !!el.jquery ? el[0] : el;\r\n return domElem.M_Range;\r\n }\r\n }, {\r\n key: \"defaults\",\r\n get: function () {\r\n return _defaults;\r\n }\r\n }]);\r\n\r\n return Range;\r\n }(Component);\r\n\r\n M.Range = Range;\r\n\r\n if (M.jQueryLoaded) {\r\n M.initializeJqueryWrapper(Range, 'range', 'M_Range');\r\n }\r\n\r\n Range.init($('input[type=range]'));\r\n})(cash, M.anime);\r\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","// extracted by mini-css-extract-plugin\nexport {};","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n"],"names":[],"sourceRoot":""}