PKKw\ ߫{D{D d3-brush.jsnu[// https://d3js.org/d3-brush/ v1.0.6 Copyright 2018 Mike Bostock (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-selection'), require('d3-dispatch'), require('d3-drag'), require('d3-interpolate'), require('d3-transition')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-dispatch', 'd3-drag', 'd3-interpolate', 'd3-transition'], factory) : (factory((global.d3 = global.d3 || {}),global.d3,global.d3,global.d3,global.d3,global.d3)); }(this, (function (exports,d3Selection,d3Dispatch,d3Drag,d3Interpolate,d3Transition) { 'use strict'; function constant(x) { return function() { return x; }; } function BrushEvent(target, type, selection) { this.target = target; this.type = type; this.selection = selection; } function nopropagation() { d3Selection.event.stopImmediatePropagation(); } function noevent() { d3Selection.event.preventDefault(); d3Selection.event.stopImmediatePropagation(); } var MODE_DRAG = {name: "drag"}, MODE_SPACE = {name: "space"}, MODE_HANDLE = {name: "handle"}, MODE_CENTER = {name: "center"}; var X = { name: "x", handles: ["e", "w"].map(type), input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; }, output: function(xy) { return xy && [xy[0][0], xy[1][0]]; } }; var Y = { name: "y", handles: ["n", "s"].map(type), input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; }, output: function(xy) { return xy && [xy[0][1], xy[1][1]]; } }; var XY = { name: "xy", handles: ["n", "e", "s", "w", "nw", "ne", "se", "sw"].map(type), input: function(xy) { return xy; }, output: function(xy) { return xy; } }; var cursors = { overlay: "crosshair", selection: "move", n: "ns-resize", e: "ew-resize", s: "ns-resize", w: "ew-resize", nw: "nwse-resize", ne: "nesw-resize", se: "nwse-resize", sw: "nesw-resize" }; var flipX = { e: "w", w: "e", nw: "ne", ne: "nw", se: "sw", sw: "se" }; var flipY = { n: "s", s: "n", nw: "sw", ne: "se", se: "ne", sw: "nw" }; var signsX = { overlay: +1, selection: +1, n: null, e: +1, s: null, w: -1, nw: -1, ne: +1, se: +1, sw: -1 }; var signsY = { overlay: +1, selection: +1, n: -1, e: null, s: +1, w: null, nw: -1, ne: -1, se: +1, sw: +1 }; function type(t) { return {type: t}; } // Ignore right-click, since that should open the context menu. function defaultFilter() { return !d3Selection.event.button; } function defaultExtent() { var svg = this.ownerSVGElement || this; return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; } // Like d3.local, but with the name “__brush” rather than auto-generated. function local(node) { while (!node.__brush) if (!(node = node.parentNode)) return; return node.__brush; } function empty(extent) { return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1]; } function brushSelection(node) { var state = node.__brush; return state ? state.dim.output(state.selection) : null; } function brushX() { return brush$1(X); } function brushY() { return brush$1(Y); } function brush() { return brush$1(XY); } function brush$1(dim) { var extent = defaultExtent, filter = defaultFilter, listeners = d3Dispatch.dispatch(brush, "start", "brush", "end"), handleSize = 6, touchending; function brush(group) { var overlay = group .property("__brush", initialize) .selectAll(".overlay") .data([type("overlay")]); overlay.enter().append("rect") .attr("class", "overlay") .attr("pointer-events", "all") .attr("cursor", cursors.overlay) .merge(overlay) .each(function() { var extent = local(this).extent; d3Selection.select(this) .attr("x", extent[0][0]) .attr("y", extent[0][1]) .attr("width", extent[1][0] - extent[0][0]) .attr("height", extent[1][1] - extent[0][1]); }); group.selectAll(".selection") .data([type("selection")]) .enter().append("rect") .attr("class", "selection") .attr("cursor", cursors.selection) .attr("fill", "#777") .attr("fill-opacity", 0.3) .attr("stroke", "#fff") .attr("shape-rendering", "crispEdges"); var handle = group.selectAll(".handle") .data(dim.handles, function(d) { return d.type; }); handle.exit().remove(); handle.enter().append("rect") .attr("class", function(d) { return "handle handle--" + d.type; }) .attr("cursor", function(d) { return cursors[d.type]; }); group .each(redraw) .attr("fill", "none") .attr("pointer-events", "all") .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") .on("mousedown.brush touchstart.brush", started); } brush.move = function(group, selection) { if (group.selection) { group .on("start.brush", function() { emitter(this, arguments).beforestart().start(); }) .on("interrupt.brush end.brush", function() { emitter(this, arguments).end(); }) .tween("brush", function() { var that = this, state = that.__brush, emit = emitter(that, arguments), selection0 = state.selection, selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), i = d3Interpolate.interpolate(selection0, selection1); function tween(t) { state.selection = t === 1 && empty(selection1) ? null : i(t); redraw.call(that); emit.brush(); } return selection0 && selection1 ? tween : tween(1); }); } else { group .each(function() { var that = this, args = arguments, state = that.__brush, selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), emit = emitter(that, args).beforestart(); d3Transition.interrupt(that); state.selection = selection1 == null || empty(selection1) ? null : selection1; redraw.call(that); emit.start().brush().end(); }); } }; function redraw() { var group = d3Selection.select(this), selection = local(this).selection; if (selection) { group.selectAll(".selection") .style("display", null) .attr("x", selection[0][0]) .attr("y", selection[0][1]) .attr("width", selection[1][0] - selection[0][0]) .attr("height", selection[1][1] - selection[0][1]); group.selectAll(".handle") .style("display", null) .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; }) .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; }) .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; }) .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; }); } else { group.selectAll(".selection,.handle") .style("display", "none") .attr("x", null) .attr("y", null) .attr("width", null) .attr("height", null); } } function emitter(that, args) { return that.__brush.emitter || new Emitter(that, args); } function Emitter(that, args) { this.that = that; this.args = args; this.state = that.__brush; this.active = 0; } Emitter.prototype = { beforestart: function() { if (++this.active === 1) this.state.emitter = this, this.starting = true; return this; }, start: function() { if (this.starting) this.starting = false, this.emit("start"); return this; }, brush: function() { this.emit("brush"); return this; }, end: function() { if (--this.active === 0) delete this.state.emitter, this.emit("end"); return this; }, emit: function(type) { d3Selection.customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]); } }; function started() { if (d3Selection.event.touches) { if (d3Selection.event.changedTouches.length < d3Selection.event.touches.length) return noevent(); } else if (touchending) return; if (!filter.apply(this, arguments)) return; var that = this, type = d3Selection.event.target.__data__.type, mode = (d3Selection.event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (d3Selection.event.altKey ? MODE_CENTER : MODE_HANDLE), signX = dim === Y ? null : signsX[type], signY = dim === X ? null : signsY[type], state = local(that), extent = state.extent, selection = state.selection, W = extent[0][0], w0, w1, N = extent[0][1], n0, n1, E = extent[1][0], e0, e1, S = extent[1][1], s0, s1, dx, dy, moving, shifting = signX && signY && d3Selection.event.shiftKey, lockX, lockY, point0 = d3Selection.mouse(that), point = point0, emit = emitter(that, arguments).beforestart(); if (type === "overlay") { state.selection = selection = [ [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]], [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0] ]; } else { w0 = selection[0][0]; n0 = selection[0][1]; e0 = selection[1][0]; s0 = selection[1][1]; } w1 = w0; n1 = n0; e1 = e0; s1 = s0; var group = d3Selection.select(that) .attr("pointer-events", "none"); var overlay = group.selectAll(".overlay") .attr("cursor", cursors[type]); if (d3Selection.event.touches) { group .on("touchmove.brush", moved, true) .on("touchend.brush touchcancel.brush", ended, true); } else { var view = d3Selection.select(d3Selection.event.view) .on("keydown.brush", keydowned, true) .on("keyup.brush", keyupped, true) .on("mousemove.brush", moved, true) .on("mouseup.brush", ended, true); d3Drag.dragDisable(d3Selection.event.view); } nopropagation(); d3Transition.interrupt(that); redraw.call(that); emit.start(); function moved() { var point1 = d3Selection.mouse(that); if (shifting && !lockX && !lockY) { if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true; else lockX = true; } point = point1; moving = true; noevent(); move(); } function move() { var t; dx = point[0] - point0[0]; dy = point[1] - point0[1]; switch (mode) { case MODE_SPACE: case MODE_DRAG: { if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; break; } case MODE_HANDLE: { if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0; else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx; if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0; else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy; break; } case MODE_CENTER: { if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX)); if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY)); break; } } if (e1 < w1) { signX *= -1; t = w0, w0 = e0, e0 = t; t = w1, w1 = e1, e1 = t; if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]); } if (s1 < n1) { signY *= -1; t = n0, n0 = s0, s0 = t; t = n1, n1 = s1, s1 = t; if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]); } if (state.selection) selection = state.selection; // May be set by brush.move! if (lockX) w1 = selection[0][0], e1 = selection[1][0]; if (lockY) n1 = selection[0][1], s1 = selection[1][1]; if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) { state.selection = [[w1, n1], [e1, s1]]; redraw.call(that); emit.brush(); } } function ended() { nopropagation(); if (d3Selection.event.touches) { if (d3Selection.event.touches.length) return; if (touchending) clearTimeout(touchending); touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed! group.on("touchmove.brush touchend.brush touchcancel.brush", null); } else { d3Drag.dragEnable(d3Selection.event.view, moving); view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); } group.attr("pointer-events", "all"); overlay.attr("cursor", cursors.overlay); if (state.selection) selection = state.selection; // May be set by brush.move (on start)! if (empty(selection)) state.selection = null, redraw.call(that); emit.end(); } function keydowned() { switch (d3Selection.event.keyCode) { case 16: { // SHIFT shifting = signX && signY; break; } case 18: { // ALT if (mode === MODE_HANDLE) { if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; mode = MODE_CENTER; move(); } break; } case 32: { // SPACE; takes priority over ALT if (mode === MODE_HANDLE || mode === MODE_CENTER) { if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx; if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy; mode = MODE_SPACE; overlay.attr("cursor", cursors.selection); move(); } break; } default: return; } noevent(); } function keyupped() { switch (d3Selection.event.keyCode) { case 16: { // SHIFT if (shifting) { lockX = lockY = shifting = false; move(); } break; } case 18: { // ALT if (mode === MODE_CENTER) { if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; mode = MODE_HANDLE; move(); } break; } case 32: { // SPACE if (mode === MODE_SPACE) { if (d3Selection.event.altKey) { if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX; if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY; mode = MODE_CENTER; } else { if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1; if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1; mode = MODE_HANDLE; } overlay.attr("cursor", cursors[type]); move(); } break; } default: return; } noevent(); } } function initialize() { var state = this.__brush || {selection: null}; state.extent = extent.apply(this, arguments); state.dim = dim; return state; } brush.extent = function(_) { return arguments.length ? (extent = typeof _ === "function" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent; }; brush.filter = function(_) { return arguments.length ? (filter = typeof _ === "function" ? _ : constant(!!_), brush) : filter; }; brush.handleSize = function(_) { return arguments.length ? (handleSize = +_, brush) : handleSize; }; brush.on = function() { var value = listeners.on.apply(listeners, arguments); return value === listeners ? brush : value; }; return brush; } exports.brush = brush; exports.brushX = brushX; exports.brushY = brushY; exports.brushSelection = brushSelection; Object.defineProperty(exports, '__esModule', { value: true }); }))); PKKw\3l!!d3-brush.min.jsnu[// https://d3js.org/d3-brush/ v1.0.6 Copyright 2018 Mike Bostock !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3-selection"),require("d3-dispatch"),require("d3-drag"),require("d3-interpolate"),require("d3-transition")):"function"==typeof define&&define.amd?define(["exports","d3-selection","d3-dispatch","d3-drag","d3-interpolate","d3-transition"],e):e(t.d3=t.d3||{},t.d3,t.d3,t.d3,t.d3,t.d3)}(this,function(t,e,n,r,s,i){"use strict";function a(t){return function(){return t}}function u(t,e,n){this.target=t,this.type=e,this.selection=n}function o(){e.event.stopImmediatePropagation()}function l(){e.event.preventDefault(),e.event.stopImmediatePropagation()}var c={name:"drag"},h={name:"space"},f={name:"handle"},p={name:"center"},d={name:"x",handles:["e","w"].map(_),input:function(t,e){return t&&[[t[0],e[0][1]],[t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},v={name:"y",handles:["n","s"].map(_),input:function(t,e){return t&&[[e[0][0],t[0]],[e[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},m={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(_),input:function(t){return t},output:function(t){return t}},y={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},b={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},w={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},g={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},x={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function _(t){return{type:t}}function M(){return!e.event.button}function k(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function z(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function A(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function q(t){var m,q=k,E=M,K=n.dispatch(S,"start","brush","end"),P=6;function S(n){var r=n.property("__brush",D).selectAll(".overlay").data([_("overlay")]);r.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",y.overlay).merge(r).each(function(){var t=z(this).extent;e.select(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),n.selectAll(".selection").data([_("selection")]).enter().append("rect").attr("class","selection").attr("cursor",y.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var s=n.selectAll(".handle").data(t.handles,function(t){return t.type});s.exit().remove(),s.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return y[t.type]}),n.each(T).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",C)}function T(){var t=e.select(this),n=z(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-P/2:n[0][0]-P/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-P/2:n[0][1]-P/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+P:P}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+P:P})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function V(t,e){return t.__brush.emitter||new j(t,e)}function j(t,e){this.that=t,this.args=e,this.state=t.__brush,this.active=0}function C(){if(e.event.touches){if(e.event.changedTouches.length0&&(n=s-K),O<0?k=q-P:O>0&&(a=u-P),G=h,$.attr("cursor",y.selection),nt());break;default:return}l()},!0).on("keyup.brush",function(){switch(e.event.keyCode){case 16:Q&&(j=C=Q=!1,nt());break;case 18:G===p&&(N<0?_=M:N>0&&(n=s),O<0?k=q:O>0&&(a=u),G=f,nt());break;case 32:G===h&&(e.event.altKey?(N&&(_=M-K*N,n=s+K*N),O&&(k=q-P*O,a=u+P*O),G=p):(N<0?_=M:N>0&&(n=s),O<0?k=q:O>0&&(a=u),G=f),$.attr("cursor",y[I]),nt());break;default:return}l()},!0).on("mousemove.brush",et,!0).on("mouseup.brush",rt,!0);r.dragDisable(e.event.view)}o(),i.interrupt(D),T.call(D),W.start()}function et(){var t=e.mouse(D);!Q||j||C||(Math.abs(t[0]-U[0])>Math.abs(t[1]-U[1])?C=!0:j=!0),U=t,S=!0,l(),nt()}function nt(){var t;switch(K=U[0]-R[0],P=U[1]-R[1],G){case h:case c:N&&(K=Math.max(F-n,Math.min(J-_,K)),s=n+K,M=_+K),O&&(P=Math.max(H-a,Math.min(L-k,P)),u=a+P,q=k+P);break;case f:N<0?(K=Math.max(F-n,Math.min(J-n,K)),s=n+K,M=_):N>0&&(K=Math.max(F-_,Math.min(J-_,K)),s=n,M=_+K),O<0?(P=Math.max(H-a,Math.min(L-a,P)),u=a+P,q=k):O>0&&(P=Math.max(H-k,Math.min(L-k,P)),u=a,q=k+P);break;case p:N&&(s=Math.max(F,Math.min(J,n-K*N)),M=Math.max(F,Math.min(J,_+K*N))),O&&(u=Math.max(H,Math.min(L,a-P*O)),q=Math.max(H,Math.min(L,k+P*O)))}M}ԁ[_+Hwꢞ$*Y % n<.7.TG=0Թ|ÉOvtߴ-˃0F/eawfYqQϷ9"9c Ԃ*stl23s8EJNTK`()4?U`zNCw?BL+3]c)rBZZu-'vauuXZZ{Dpyy?Zl"{Qo93X BJtCdGPt+_ssN\:1<#:nj22kiBK9%zteͻ BHr!!-ɘa25 8q8 UEk[[:v5.6ӊ)[׵?k83{bU`7v%`ГsV -b xR|޽uCP  5A)8ۼX ܀7r@I 3AafI ;ڲ;4ƒ,WvmV*lCp( A8҆iϖyqJ(ؙEmpTSNnMػlpQ/:sB  'b'!tlxҪ~U c/3nDODo׷;`% dG@GAbAUQh!.PC^s.CEkʔ*q3kO8DYGXmYW6v30&KޞZ;c;\"" Sd"ِM2H.a 83 3 lln{j6Ha{FsVMaSM E4H &W`I@<:IP inZ+]z/$<.x@^YiX\ARG ; {nZ Zs/|>t!"""B8?]ę^JA%J~l+l/`;Jx@w㈚X+bH;o'aN:|3]?u^U^o4sGG$Tm|LAL3zBj;i26Xpo޾8DaqxD |REc^ckIsX*R]ZMbاY(#k}]٣δ;~*fwnڮi^kX5Ŋ`8A2,;|Zo{t\_VpS?ۺ8M]EIؖi蚪Ȓ( s,CS~6C/c(:k"KM8n7|6nj6L:4]2 Yz>i^o-3-b {*?-Na; =$z'{35~yQY$M>j抓Id-٨em>/&IZؔ]GO9 2.c(?A 1R5"f6 "+\AZM]g+T߭옎zڈz-4(րgP[l!~ۑn` ŠM%' 轟`UhR5 <3B,ra >ذ}ɧH!' y 'O^kqQ3`͞!F<7"PoЭ-N~:y5ꄪl?Xc^>LV/X orYQ0&^R><7ZK@WD˦)h%'/cpekDKU?ȱVHT]D+x|<*K\7"Y4 ^غugo*NU{&\r[J¬v;b+Bp#YC%?P8I|*6jyܓyCMbێ0a,uh6nq5E*|@faVZjADArJ=E`\ -KP06mؠ.>wZa D.cgcy&\,jԅ8g#u7z%"FCwc}_f}2lF/!_rmVCkHGt@KqWzng&3{>wU nп|="7b :vf&R`͝-OyÀ݇Spۼ3sN08؅sg 2) {|0kBU7PK ZkhE5bog&]JS/N|gm RU>}dֶ}FYM淳xlS;㱫p%/V&qj쉿0)hI *KfRh*REZ(n3c6ބl/=7pM̲6pbxZPiPUyCofo}%QRE\ڀ"Rhg@yb!4ñ[(>@Um^[a]ps_=NEXHAn*CshF:T{"fUn]PȄ&bBJƀR y쨢%piR'YZw=;qr@1d^`+b'1z1n&_١PLB9VŃ!R`cbmh#{ QƤ4o`# X &IJGoqX;8[l>Wb]wd-4d;1P´7Ŕ+J%`5BQ-Eݍ ZD[AR$jؼkRmX1b$2@ā&ޛ%W:o5u :l@/N8VRUlS\c/ڊмUN:SfS'npZf!>Aknc66"ų7;Q\G_GGfgYDV$S d4c 3eϑr?CzyBUL!ʧ©y7YAʿ=iM XVS\XEi+l(cJb[l)"g/5M,kb{[XJ^w~-6b#Ʋu]ZńY´fH K `X usEcڜC!ȼNcܸdejQcЁr`UoMd }Y[^]>*Cv`:Hy<“*،zM%)qr**~Uс?t5E?q}Y} qd]5BQ]R4T˪H$E]X{cSnǘn~Є{cHgP #).9Wz5ΚȀ |{Azkik+W/)b,JƊL pj<N~|bBq9G&5*QtVa&ABp/rqg5DR 6YUciZ-Gz0F/$-kY9tiЊ!*X2zZU‹ɭXV<8qy䡲XJ&K\,InVN@(mMTPTtdE Z`*@E#0r_ jCJ}g@#v JӪxQzw {Z:prh6Ŋ.eXZII+YmZ[q}P^hnv"u~ Z1ٹ15fWNݝM> 1ḡ`~;gu0RZ͜]u^h^.m"둻̨II^>RVluJzO(d&Pܛnc5)~eJ"8ӻN1ؾN.EGjY'٠_g_-Å%z~moUT8+|^PR]0f,X* 4o9IcͪVUD ;dDA$Nd< )ꥬ:R!ESHJ+GNIuDN#n(XQrOanS5Zا̧ڼt1H/@UOo=G7di @'L t*bz%RU*[Lz/nPaKpeܰ:;!(#lBKS ;v4{ӮNh4;rf|-Z24rBwP^$ iBUMY!xw&-_є~{z?/$Rk`kIaʣ]څRns%,EYHKMT[i1dhS}b8 9QW2v>"qMѢebHBxc$#gbw. drLR_FvF Puwh3#ǁ`(.V1ʹ`5jڻUںjŠ綶r l,QEv>wArϐvɫLU)B`\)愙.4w@GyM-޶Lbvu4=m :K*܄b9)lݘeq[_ܙ_ {,y$[ehrzaݝ)_\m}lЩ]ضڤvbOΈ8I B]G}_2; U:ǀ꾯|k6zTΣ;Wnts -C^}Ո.Z$x0Z+n,µʼni2 sPh[K˯L `ctE"Tg~#if$' C3LJ-+HQ2f愞^l>R>ߢC:8FTAa²eN0L F&K7I,5I&plV*(T)ufu:Pt\b&y,(Ve 7ߣ-)LaALq$'򥲃I˾DtT#dBHT?H͞H H^s% ^k.4z ^ iQ'<l^1Gvqa1'B$ZB'{gDǗbRt\SXܩkujUoXzan{s[΁pV0oOvW=i~Ax;b6h[?[Pj? [Кe>Bm'焇je1\zaL)}C7 72mT c=zjg#;TAj1K!+(F Dz8*SevOŲ\_H|Ma;Ak|W~[=AHz)OHVi!k"j]G`INo*6Vh< tpkE?x3^)vN̊1u@(~|k]b=<ܾ69 PϮ RᇵS]ttРUIjف~n`4Pگeъc nrM&|cbl}C48F|Oϱ% Hh/sR_Z V(NwŸ̗]ߍN(-5M`9u(~r0d)ڻ;l*dVn0?U9S^4>3DƕRnxVE#WK߁#=KE3_cNPt6e+7f` DQ)gZFE'kJ-K/>B𴰂=vˏqA;+Hkhvx pGS0i8Ldhz)0IDsoڒ)ܐymMU4ƮrFٽu`2Ug(D ]jy=NW]qGc Q Wz_*=/jN@J+Lb%؃!U? @jP3a#{Lx=QpҍquɱMXe59xxtd_%Զ t٣!DhLo|Cݸ* 5@49)7T!Iә*ɣ8QY=%p+ |Qm* ǘ'Jݳe 3N : Su&F1ih PBxl]e!gu/63ˊ hVyTn C>ΙDו6^.ZLǘd{7b KڇH% +Rr9%/?7}C ><2pk{ɚeQu7i<4$q*f/vI^kqX31%KU7P1Ȃz+VvGCR)P z6)cI^EeE7 Ҷgv@Cff;SZ$+*k˥ DVܿqmW7Ov, d`/)Ջ {Wq'_?FZ=I105(rerv`K .d \Q43hůhK. gѫ3U|_щT_q^Kjg9_=6&K^կRz-KldcRbgņ DP4p̼tIM{dŋZ{R0Iӭw9תc ̶Q$ KH㵗sln86ɣ.D "B  x_{w Y]]w2Px'L7 1Q4 05Oca)Q# ؃HW,sT#4C2)IMvFvjӆ$mSN$(9#a"jeTLwsL g*LHIv~>7w$̧:N8堥ėOቋ5:c<3T0PV<25S {v?8 gyASo_!zMA,V|H9jRJQmH1!$OP2%SlK*wjëcM3SMY8h IK}u$N's_/ʆUF,˞W6I?ʝsh$NqNinWϐ.]&9c m-RVҵ3q8ZTЏ:B<&^a{oN[ac>^Lky/_Cʕ?V]TM;3jގŪyyz-0ެ2&!a&{Ts*[Q'>b$_~RX>('n\U n]8"Q|:QE!ېcxx<ßǔոl]m"-mBpL(H-iB,LA%J WMvfBWE)ph1xq43jCUrM=JƎ_Ďä}KĎUH VϧYC΅mYHT ]\ ]dGFDǵ(620_"e9ЪT*SJJStc-]smV]Xz\P5xtYF':twp)/VVTkG8OqݮnΪe{0eM;Q$'Wa^' j@}!)>B^7,LUNW;vc?%TԼ` 3ؚ14+D+MHJqwkIV(|oVyi1oUա Uo1\1k3ɲ9ǒ=8_5}w{~ɦ EC>!D8{(i^鬶j7m'`5֢ xدۍ $}\L\?X̺1 l*5{mk xÕkB)t+?oMD!J#Tة1)ϯ=L#^'鵩70hE&ȏd  ָB3L5q `o;SH?u|GqkD Q>?#.9 ރfuHeN,qPf  .oRI__T򯼂y N*yJ0H >S0cܪPr^`.ZV 6u$BH;aɉ ]MޞoNbn~ ۦT̿0?;U)EeoxepAKC2K,ڻH 'DexE:x'gihS7sʳO^{w-.ݛnZA?4׎ޒ[hoH)yJ4 z[XDWi1HqHX(*撟FC_ R+#n0:; :FK SЌK@pcG`sȡ~“?k:R|}IW3Cah qg).>GRc$.lu[B9qj>9l٪,ep\!THPwNޚ)<a:mLB&JLYXAO;VD y1~&[sL=H!Ƌat|x;Џh_q'5,Hs0!`v!)## E9fUw5 G4f7Bp / ?raFl,_d c1nU2VαEEZHZFzpg32V;4U\auf}$yik eմiaaO%]qSz$0Nj6ų7}[b;c>PըE &mQK8%x1LHƞ3RI`BeUinaZa >\*Fr&E F{Xn%LgD& AwezT9>k "}!YRWaIE4Wf'sr9xE&FjSA z\ ;>MEf+M4Ȣ9 x,H⟹ K#v`\4نe'=fO 7qv їŷ:?fVhb(! '#!<=KY}(C@N8C UZ-[q%/z푿kZ䠾4=>{\ĥ7sȬ ί2@^#wD_GrIMtJ|_mc+PC35 ogܺR;R f -3 /LXq6Ƹo,-NJ:ToHsDhb$HuOkI[UW[CM{myPJU )M6z@-0c7Si7-=3-W2LMKQJttB4)75}ʍ^aag\*i5!u{.sSkF2Ss/E#:&DJ4OՏy:m(ʿc3n26=;nl4QQrYC| gKrZY6U9X%+t,$!sC9I\|lsj&VC\&-6gqhe( 4O ,F-خ27GvJo>);)Yˡ!U|'4/sO)yoӳfwt o,K% ~a8:2ګo} ۣNK)y o96>׹_:̤1$~ll3 >{KVQi]Pc=sTUg?fJ ;(LhV-xKrڎb r0)'IHu|ඦ)ꌸ։ږAyy`U T 5d(ΝA]r>b&Oo-9]%2wemh/ )d׉oeok:>2 4yrr6gS-n!;ڼs`34fєMeT) =';!(X<ةCԞ+g=A4OjĆ5xmT`_rS|v4ޥWpF%bK Kʰ:/)Ȅv%xE_t%|t#{ӻ4(™FB $D-e 8QIR~9(lt<z~ 7*Mrcp #R ֧D_PLߓ*K Qν6\GK]08#B+hze?] (ʹPkYŖ;2nQS_PGr߂9YԌ1&O7lN8y2)E&V_B,?=2ڶ^gdS;ɖ^y C}."D͢Fimm]\S0fy(lMu^'AL[!Q}J Dzos zNR;t]-FO7OgG+O#/K9IgzoQDrAWЇ _+` S |o/_~0(\2@a2V($y!?RRN^՞$OwCxɸ`R}q1wuDҽl|Xv!.v $YiuBq"_U[CL<靪9(4_cWK?Fr <{)D:v%~-;tBxf2X&vU&jP2$2σtu}Dwx`zv +7zս`>xbԮ7XE\ntܾBF))/BUkBI<zxc"ꊒFIq}Z#g?cD?Fjlpvԕ|b(ؖu;/8?[!|$%{=_ǕZ2Ywb&[kS+3+=qϥ7 $.AޖɌ`>]P?XS{(tsqUDxxkF;u ͽۄvrOO׃"o"$h `a.EaEm  p+`Nkm;c 銋H/uLךV:d҃E^Nc)n`RYhG-#Q%/S2x q#jtCS68eP15PRQk­Yݱ], Ȝ3̊n jy*,SApTh,vG`&w[L%fb19󫊯7G4\1s lDpH})b.CCY& iSgrR"$yE3p@dY4u|a 33ݙUV3!9Pc}cOrŭ&2JWLnbU![\n6 {}dgRQ~JI19c[WP(1YAP~ջԷo0 !^, b3#D0A3yI|\71nTta3X/U ?jQ,C,i, ,+@4BziSz g UY/xz)z ZM$ZcDEW(yxؒFinR<+ e7!fV<. }XVmq!|0zFu@.m|tAt lhϦ琲7jl &J-{PV:WfX)7ed;yl@ِ&Ϥ [wrgZY^K< hxN?s 0 X+?'',W,2/P!RVjZuvT/'+I3c9ez|y#cX'@ܟ$5&[9mO+ΓBQ3; 9fK`#A~/Όʶ|zѓXJN{Ak~ϊ!f 6"ь" hA0_ &khnuO6 H.3|`HWVխo/Wj7{k˹i:l%Z=쭛%HL\B_=Rj$A-hAƏz:H{Ukk5Ж| ֿ0/%|Cl@yͳtMY6=:5Gh <2hErƹiu#sI#B$Ccn&S3Q J}t [agaxzjU/_^Gnns vc)@E]s Ж?[GMh밉ĦnSBM3pqze3K Xsyݥ1#W:^wFZkިgHqI4hI7˯ V-4ig :Y.QAybf*ʇ2_e^PpEQO +TupVmaKLi03~FPw1@weH &+~2(dB֒: 39LQЈ>Q#EVroTO?9ZHHͷ&dbk,q,,l_6'th ~xa>ZoP ~[p5%=۹[o:=Y$ qT 76[[k}}_;Fn@D.xMA3M= o7FcC~:{>^񾢚$[>{kު1]KfsYOs@R:b?vIgkp$9saז,Ӭ${T0벳dˁ@Fl8:5uANi(9-'g\z5.~=!|޼r P tjQ6=˗j4y ?Jt [Rj- N5s%(Wk`M?b|ؒfNo͐s/3ހl+28y6HHAF7Q 9vDxg%hfᛠ ƑG4ɹkª skjukYiGTsGffΔr} eM{Hr~[30xo}!y! aE'D!YN_Q}QqUsy {E@"Oj dn"I Tw)o{=9P5bmk}]skb{XszrXN'fZv/PX;3bY@TqB5jJ3\w(x$F"=v %E4w24҃-iX/b-k}!䧥t?zH=6iy *^EЀ8G,K#G? XfKJ} X,%} 2bZF{' Yia1R2z{7rFaY-;T*-83Z P C3e`YoE-G=/F,˞ Ju+L/@xZ18ڟ 1"!v{FlԾ`!oqkʮJᶈO+ dK}z@ F"W[ll01q_ a/KBhp.*D2r}"V AFi|/UәF*EI=@΀KwSYXZVO,j}յۀSuա4#qX!=46Y6 j2Hd'!Ng9% %֊4hym ul2q__;{ PܿjL5ofcPB1h0I0 ;efy\P`kjD38%ڌ#3vg `V/ $s& TSZ Yh Lȁ ?Ua_?ރ|*Ef&nJ>a}8* r("yW6U>Z#rR þXo%X%n03bPL䇡:lglGvYCQ^? Wp̜KxK#kb{͔>o?wÉβ '].}hKOW̮hA2xu P"'b[lU &]AL]y]vl^:j;vuӠ*E~x˴ڽj:]H-tStp' ]p%ßlXg"4y#.:*JlRDPk*P2UD}l'O6spu{~@{ƍsT& kWLJjF>L(sM)[maui,YG*t)?XJtRD\v8ENm`TJ:H(ۈJ4DT$hCYACMkhLiccPAGl"y~Yg$RzMN#2U4HmWhʹFCs.$:6eBWc0{rB0,7H"ލ3o| JWbsf f4flD^yHL-C+O`t6-1-uPc`7 wu4lrqFh!j߼/,+@byJYV Af%?^q$]N}/XP8ФzFa bh~- "0ְdqqRYIJ_,B*vq }RybT w?وnFѱXnCmBȁ*@5HmjG<@n,,A$ 4}]]cyo ? q?OI13ڳ39礆zK z|7v=OKa(BPR2QRwBP\Ã^$I2> \oibAnX_s:~'!ٶdK- <O1D71Ŭk [<FjQx(VE`f 5= ]P !M|%P0=HAcJ J woѵqcZd?e1fQ하//UmNux.L&iVJ=xyu$W|7Cl5hIC3rիAgM0c&iDI.@i(~3}en EFnfVOo&3ppvD5@a'(gʋbsS$q.7ޖmRr"| LQJ_$T2 )L3̈́B<`ENU+UAb6C*honyITBbˢ`8%ۦNL7I^FQUl |3T|AO8Jo:ʾ6,eN7wLq3:NBo CbYNXDqď}/&|i'MJb?1NjBb#R ~؋ Uu[S7Ӝ>,F>r9#'m'W] zMs3hxZ8cbm c{TJޥ1!?ūe8!ck=&,As"\On!dl$Psst3g5JGR&9^^yU[oa 6/늨-+n/ynL+4eiuT ldWbMZ/TtoNƑV@&CK=^umOX|ozaޞD =Ak ]{8v4y<CiaYiKŹU`܁{_ li} &ʅ~2pz@Gپ! 1cY~QX<(z@^k_>ѹ֬&$  dCfYVvLy`4_K6)>++^w~  ۴5n}bE= ȧ!u?Z"XO,wXWڻW9^ |y~rnWkmDy R }qlm0J/2H$ 8Fָ%: x|4TpNjTr,zWvz=1>g*CSmf~"wy 6əO>K8W'a% E^Z0;YVփ婢0Lh)8-DA'ȉ#Pš0C;UuűbUJ΁_lS9xDv!慴6/XD$CBfbxDRJǦ&WrnϙGl<2ȝPX)P߲6u$ "N@I0̦H}@r4}#$.^h # 5߸) ɌO7jHmV{7;Dfބ2XYp ;VэH1⟅ږ~ T1/jTF{ LODwE,p٫"fu9m1*Z2j\QGzN/# "_ܾ0^"Š|{80W̵yS88dbk%6t ?CSY]^O}Cz2h_kFw5b(y8'U(DM:U[@6/ KSH.Wj%颠ޚ]xœa8PWpm։ۢ.Rg.mh/wk!4cW{;@g'U*^+MECof..[ikIM;1ԍĄm|34 5>PcsA%1.}휈-Ryr#į8rɏ7wD~|8XQwsjUF2-gJ78q%xSDOSbXS0C}T %/1yn!sbbڠE+/G  q6V z72OVF`KṵJZo~_qʶ̴%6SSkoKWi}JE-(2Qc05HFȚ@7r-=mXyⰟ~~^JˊqcVIח'f/Όb5Xzxe,b B)oh)kkݕ+,0AІ#nDx<|)4L:;Ra19<9a,cr&=}f1D;`L),DƏ4c&N~l䄡& qsdg0<]5 䜥S@OLٟt}![;HiUiU;ȅ MHqM&5~ŵ=/"PUe:5G+M!̪W\軝R^ŤiϋmLiY3bW!E-\VS®'Gא)ΎcE1;V2Vv!Vum V$&Ĉ>oKL*a?P0Nɉ/v*oǏ =` vk_P4 אCO ҕOoSJ09U؃{xaGu fQTڭ=g: wI~Pp3̗/U3o[(A$989ĹF"lmLdsn$.ofe|X\k}C`rv:04JF)$)=p ڊ o!_dy`ă K Y6sQAg8TjYb Db' B RH_f;ye&~H;o2=NX8(krk`ߤ/35Օ;.B-^̜q}PEJ7 hm׋[ټ-ۈd[`+'f 梐\Bxyj9gWOZX[0=d|71J5XxFơ1wY {L ks}acMJ_|uA3ԉٗw5xX4 ){ /n7D@M*/2~jV-UF>7#)^y`YB] 32I4Eԑπ3Ah f9Tri`vÚ}{Q󠱱Y>aڐjmL|Usk@K wK@w,H:H)xǟ"Xdiv?3~w&<[b"l9aK؎halƖ* !ȇ'OHt31o}a_O(Wl+ͫuv3%GQv7r]0@7ubR-ԯ^8_0A,.-zKnɒ6+(+<\ޕs |Y@) cSOg0ƼO9^e5̥R4H0h7i18ID(n8RʔoxܶKe/~4gxNQS 8|xn.^>"O&*c Mؿ²5ľj1!z!(D.|F+tz[8=X? oWD eLs  gՇR :1HTU*۽lݽyiQ7~eZح&Fj.cy  z2&ZjP;cSEBzNmy9%rW#8Q 8^KlHϗ 2A^Z] )124׃y;v&Ǔñ4gqorT$Ju?DP|M:k|?~7#jߥ,Dٙ&oKМ֫J\01ſ_o56hhˎ,J?r/8o2q1e=VĽpa 7??pcgXJ[1 Y.f.Ķ ĴؤA@WVżH4aZs /5 ܢAt:BԜ%0.6A1w%LGEm2:yXm؆x<s#1b2UCy@PU<9HM-q3[u'0g"nK4O-1o 677\ Nx igCХ0+ U<^ 'QV{HL'e%G{ {$K|" 6D,APK3yؾa(B =QORKG-B܄` yG!+*$q%y-.01l=9MW62ԥN0[T̬NI9.Mxdxݡ0J’<(2?NQ <"_f Z~~ Y®mET{eV ڙp)Js>TӵP!6<0^Q#?gQ K\D&"됥-}5ki~Ca,_\\iϘ^CI}ij-X6mKݎ@2K }ɘC:/؞N*I49>NΡCCj󴇐z`]i=|Xj0big ˃YQz%A;#6*-,qJ:ADžrR4B,zOʡ&_M.-^.Г:큔#&L ? cY3%N(:P ~VF8i:hg9[{ii1Gmʣ}}#1쫽U`ؖ-i,6!5p l)_Ϝ7e*Ff@&JT_<]E|B$TA(33w/m}/4)z}BQœ r˖>[$M-|)`>xPF,Uwrr{~܄İ8ؚc$V3)Hv&id$ï{=ȟ⼷Zət$% K԰ev址$ .>b<un\o.A]3i)AC^qR7|bwłl_%;NDA`SqNbK~<P?1׽?ʦ1m}L9_=e Nm.F(Qu=oxPwٴQ< -ع9ʼizb ()  /X0fbtFSlnw`` c)(ۦ$kߒVR Re?ɞR[nAv O3&!.wbj&=i1|XnyFSikKliAѼpvW @%%c+Έ)bRҪ3hLRrxc u(ԡj*|*h_Ɗ^qcq5dQ-b !(&t҃!WWLÌF[``@m?aytN) >%&bƀv/|NBtŽ"j` FJw0U 7g^v:S)%(If(h-Y*rny" xS\Tɖ hH]zWVE;m.0tH0;qnВG k6^c!ug O 6^^Uwd4׾*1LmѢG^ήѵTVLRz W%Qz/ %zK:{A 0}{F$w#HI#mmm| y8{M ) bN˶D'uRIΉNGIMC"{5[>nFed5jHEu~86LVy34Y էU~ rx3: m=kYo]C<ϵ́{^'cf!S:~dP"Rsg$ȭՏ|aѥ+%fLc~.wi~g -M.jWr ˲,ju0]PHD\Ħ&"a}/5p>!Kg,8HN?k|R7Wx""9{)FK()!Dgg%:ՎRm|>l"FvD5yiF Ȓ!3EHFxԲTRg ;R[s%Fe<,}tx9gw5s'|sSBJKJlL.mwƍGQ1AG]ջO{;7<;3o=4xr,Ըuh2]$/nn 0΀+7|.kz ]3v~hV`**gז Qs쓊kL-V#_"NύYo~0{ON4މU=2ݶ!z2Kq zg\Ma!c>{nBC,X$`lK0G⅖6. ԛ-N4Pbي=i2T|b(\rٮl6N묺A6!n,m*GB7% 3C:΄oۨWx-L)븑UB"6Xyј&4+R}B|i~}r5w36-y5%wVn9Qȍo3Gky*૸zaS=ꫫ =6)h.}!:Ey"\wi}q޿lƨL[Q\_hz* A 69%ZF/zbљ)rG-xb=˘2.f :)kg0sn̙uPκsO՘E ]MY5V̮k{i E=~{|k5Fcy Ɩ>Z.jDs(e:="Lha #(M;"7˴%I%ַaFP*[mlA,T4}s*u#/?q:<]X瘘 ܘ_>awmB|a]oFTz`1Zakvw;֜쎍,uNUkW!뀤o#64Z,vzߓ'}CztJ(0f#XIE$]IvXEG9V\Ѕ*s?+տI?z6J̀ 2ql5koo}K U~ȁ2ɀ0*XT\TPh w盵ֿgea aߖv+cy"79א>йaoأ0,FϢPܷ:ސ%(I>'(s#iL[㨥r=*Z}_Kc |>ZZv. c\XT7HCTm`^c7>=I4f!$+U=Lx#} C@K0QJܭrpކ8GdN^09Oi#Nrgi=}Z_1)Ajw8?oPs/4s Tc|IK,h-f7Q ({(RPbǻ%d6TcƤ7k}R,XIH51RWY } hSn6ujO&W-GGMӤ+F)~>rk-n@9K^rsf(jL:] C ~h?[F! ;>numZN,TwWp'ٓE`ck) MKwGiʣ3ˍyV^ #Eу7?fcD(?̂YXT>TqE埈W# E$@K>PQ5JZJGP8`<<ԖX^h(͘ϏJ3ddCC_UEl6ɼA[gb3~fHjd^h &@0ہCf!ҍl8clJZ3r \9^z7i`#O~RXU>[]9.¿>iZiH J)}w ƒHhR ,[t#ʂ>k^UW W<(9XMlb|(dU= ?/)5Juq v=Eڏ%uT3Z%.*Q &2;nw*fj]=rpKbK4`Yg{-u/+Z$!鲗łϯ`Xyi=d9v4g½=f($bWyN(u% H}Q&Qxk) My%[%s++ 2WX36K>]9s#&E䋷'0;N'j"'uN' ɯ[o3}|҈W Drh)ܞ8n5s7JrнdBpe'-+ hI΅K]'yt2U))P>BS̉Lq?XoEԳVHвp=hge%ya {"1L,"]k2V?eHTXWpErڭe2Ԃv_N>jU1ۣ^ǥQ8JKPrﺟTҮHN(5/̓(+Ia[l3ϰmw .M¬mmBNH{WNٮ2ĥo A#2eV+L-0TQY-&Hmsm7x[M =BLt!wQ_9-164CfV![\eXC(=JZ~^;|1%Ι"f\N%f 6ŸT8NTL<2_Ca7/ pC] z0r7@gH fjr&}f1Bq1/&,G}_ƾ=0Y.S?"q;-[_'SQ ZbKenAyCX #8&9 XĈ(t)+m MՓkY1w*j+Y"YA7?֌~68bl1E1s2֖/J |/Q @/QHJ 8g5f { 2ripjăWY=i'?^?)B]ZQ.%Un, ;'v >yMޮ =~CWV==`]i 4҈PfHtϿ",JOs)l##9麧hu'e%Tg"ޘQ*Q:(JW>6q,|hxY܇y[̌M(t)aA^q].M1tV y;ThuBJ^&[0zt3E`S}+sPqnn2XVRla/eZ[s*pHZpX ӂ%`|du%D)anK%En-1<$&FY3839m!n=Y+%+VUp LJ9O!ޗ@ߎiiy;FH`jʠzOeiC05SOi-)@$9 @Ӫ!^FIW9=fN-c`)Ec+Ň\ƭ+vu 8PMt`k_Fҟ{[s4uRU0u'6iĽSOk WDv?ݲ8dg|ip] ) 1c #0F0*Xnf*WmDv!bqla뎠an/鋳gBϑiQ5+x!N v@6gGuHu 3SP٬6Z`5{*Vrq~;Pwʶ(IsZ(2A*D*K{m, ӟ a_؟n=ܹD!h4ZxG0%ΎiQPzK!j߭$8=0n؍#h7)0flQØX{pz˸NWi9t][t⼹n`{Dz 7~]M4jB?~5HXcDfҡL'íg_?xpмgểKar忑N%IInu=ONzmxg-qtCliBP6ڭ2Uj;fiٿ5-\:!8= s3DP7Wa G]~n<Db9_glPEg]a0'Xg,1^- K@Lnx@"U2yB^`{HpKs;)D-f_'omQ Q|UCC۳`ƋϏ\6i?Fc}k\*$fi]_8uwq?`mA<iyT(CB,sdDИ|o/Nz lGkR l'7gMvݑ{QҠKX/%v8wɞ9;XU";鍤݌;e˃5e@12!^Č,"g-\zF߿M㋯ܬ.M#k.1|B`9x \%WA>\ :p.ȒvXMRgXa!r* GɾʮNgUXt8ԝޗc^(< V{((fC`4GꞬ.?TTg>x* 򃶝( 'h/Ti=4xsԟw z޻9=SGW?V7d́BT#B8{ "NӹƇu|/L4㙚x˕^`!>#L (YxLb#v=` g4ބoܥgy&Il5O6wĞ NɷW̿qI󢚧*d3!]M#Rk*5^4y]H"zK7uT*T8({<z@1bS}97Ef*2v:؋eAϹ7[o̗6F䣳_wTTS@(3: cl/JL/Q?^ޚ EGsv+6LižRI:7h7d,n>} ulSHER GtGϲOtc9v(_k>gfZK%dy)BKxpJ VI8fnj`X3ixP.j" ɡ>*Zq;t.IFu{:M8C2[h 1.->V.焃 0 ,<11]ʤH*G/v$1pQBg\gscїAulU{l{3RR(*SdlZyw@:8eP;sqs1sK)$Zݾ__Ү>:r. Á*J.ЪڤxբWΪHAԭ/}Yz5#x?1ja?8ꨎ[C@"%.|Ͱ]Y=6/g W?VO"& Ĥ@M-+W@=O]ax+,{\W_QZ}Ԓ.F|/i\02iuč8$0WI;ϺmMs\ϸV|;0{B\\__rv` icQ7xƛ~ns!:?Qv݆tlaNv*VS&KE @OsO3"\7nh&x)ٰѧmxp,}UdG!&v'\~܅T6]}A)亅$ݳ)9@sOix9iЉ5rICs1=1 m(\ΖQMBD',҂ĉLe|ZnJK}7[Nmq6uvQ]*Z'A.KC85J$C֋Ca禌I!-(/G孞3ۑbDmR.  q'|K)MPqI:6Ho=k3djRIc'}ޯWNi{g\ Sqk\t>6l톳kF1hJ*- !33P,-DI~!_):ʣegt|JUۯtتUՠ(C-)S=u`R~ke;siЃ#mDR]ꕥc٣sM niعx>OϺrp6O\c쏓! !|#+"H{% Tg/iӓ*P#YƊEKcp3`9/Mo--A.2xJg9sAz(CXd-؀Ͳ>QX>ƹ8Vѓ00dZGW2&]D'MDjP$R좏yeSRtp4QeqR΄ c7Hǰ͛쩾ɖq:wUJVHyw&R2u5P5$[ Eu#={t)>6@މ%n{Zvwjwgg~˦2sbիVtC^B,SWƞl70O 4 mI#w4}MXO Fu:2sf&Qe2 5>SOC#NW{V; FuYwA)S)H][tbA„oeт- <K X QSbU֞Ԡ4y#N^{/ kԑWROOK}kJ.BGa(ɴX"٢"dCx@f `Wfy `Ahc^ܙȏ 0K=9xu=5cU=oFcKѥ}o|*gb7ł9+{WW9):۲Ac1s {phKc?b;([y8aKĺ[™DhMOfjjQ ־bك*z" ^s{h~蜹tMJEN>A83N]O`.wr3ҢO{ 4ݣeʤ]dp3S|ӇA [fWV=I1t*@%8oZ*OYP 翣݀YW(@ {󓸬%5 lڹmfimՆrQqdj6)/?2I"\p +BKx3v#jRLuƭiR ȴyc(4ot[n;/QJ(1VӾID0<0{rɞ$)(|;wuO+Dh,eW*1ԛ4 W5?Y:8ep,_.-\4ހ\I[#Y! k(F95abçq**ҡ~/ Сo+Kxbg" |afzx?>ƎP "/>d酳}LɄʰo>VL@8kɃHiЦ iSrpTCHL80:•qi9ґ RF x"Z:qoC3ڽj#dz8w}}.eV{:Dg|ޔNf sҜ$qX[D=Ǐ\jVvQyPؿj5]fTb7Pu_'P ] {ً0aaĸ(`Xr33!@! gqd'ʤHiDy N3i|s O|(b1Udq7x(˳wyGy"]|*E>\g>ү_9mi= BSJcK8z|MRT@S&1R,ZQN`'5fj?2 $f+k(fyyyy~F53i/6%&Z C˃oBWK.d` Lv.aO{WB dXuQjb"9tj@'#/ӉU}FGFOdLm8ӆF9p&#a3-N0׋b)p˾i,,ݰbS'F+6\KҾ< qE"n)޻c/(J{-d6uJɥIV^Z!`[#Aa]*L!%O!GU($:dA29P8y*r=6ݏ|=R+y 9tAҋoq%MWɄ':> >mtA ȢYSdI^  @%R>IuUtIЊ14TL@ҝ(|OɅ+ r(tࣟUgv)k^S t:mC8#h7 LN%.akm'7 TO'WrUkY[<lLuUr,'PC6G^UҌ~:4*#B <*tuoQHTL &,Ih__EżV`ى]7P G5~$9|9!=䖁θm9w!Uhf /uqd0/f10Glsmfܹ+ +Ϣi4*}NAP"cdk_4i,?:N"qa3Ok"e l2úOMGSR-3qq3՜ٰ-TN3!,) ʲUO,ۧAkqn>,^CU=,Cne܇#?n`R%o? -p/ttquV776)4g.[=%EG| VK|vf~#? 4y*:ߢ*;=Fsӹ I[C-b}";Va%qT,#4u."S-'X|Oژ?4zVL ǟjAso6__,)>+ڂ[0 LӺB1pC1y-Ʊ-<mm=GMyx*Ȁ,9t`j~omnIO"8/(fp i5ŖO\$ju%/>sl4U>?6rșTj}n:pșJbZ6 Sا}l_KBW{o5z v@:;> /FsmCZۤ)dk|c8=C~ |p| Tr:ȱ6B(:֓]$vtlO}.8$ֹ7op몥 =?%8ύsx,I[Œ0HC| 3k8eČؠ{9>`ezƽfL/9h$F{NJƼg%`SE^F!,xU0l- U/^FD$q:)p` \0/)qrpJx.M^XfLgA2^uрʽyBL&guq ʫ«v9Cli^?RH =Y6dkZ?%MoسٓW{QCH/_d. G13"N^Xch I`qKM/ypS[L9mp4%X7բ˨qg76f@m1Z1/ `GHӏhvپy`G -!l3j9g>:j{nT!46d˫{ASݑ}2ٱ>chnqMluYٸfE:V{CZX="~8Nd\+Y16eėnz Two GhCtu,xb_Ƿd.Ȥ+bk#5#6օ#; N6=Ik",-[Y.{NCC~gʍL@}v-y&H[|egW"Kgd op릆Đ(>7 8 ~])18w+$0Q2:^U<伴@q/56v:җ!xQ"70_8۳v!uƂ‡нw31.AM֢.Ё\YH$01ˣ[ ;U-M?j-7C{'j,2[P&;%`"$4y^m: `A/sg`zc<̧#C>;VkOO084&&聈yЌJY9-0e'"{gU5^.ISr֥9\HqYoXyW"VS[<ڐ'iFHYєM5ڣŜ )#&ۜE tSE'.kua |OkPW<+'1"+j~qr"QwǠjn Ÿ 9'ʳs`W{l36j;`Fn9cfbF gA,h:&`xaŹxg3]K2\3/E4A_߹Ckvs4޿+i\Lξ~YiBŔE1**ⴒsէXŮerivY^PlPPlڰ{aעT CTqj9cz=!1% Mj\}j֯)K&"'5{#+$&xKUY_lKBWNݐ=cc,xZ!`= /e*-Gmq~K`O@OcGCQr<=il&<$JV`ثBr)荋9J.TzҴ'<%3gO ^}>nl\y }p@ GyD8I9Dp!1.Al$T̍2N%&A "8҆Ы`"Z;xz %>9~8 -:]ՓEC1jlW #Tc\ۦov7}256@89_ܛ@T{ eVsc%9+]q,Ozux8<ַ5󫨑:ua\mJ~Mjv'Opkf.ʗz]6[ur+J]OHMc#9Ƶ~e%^R0' i衮#"ە%ktG]8V4hYL0K9F#Ԥl~ňPb"߱n%sRqʸ}1Oo"n*8¯Sqζ^Qp f,G~1ER}hm&q>+ѭ4$=oHYgDm+׉rs4t{Ens^ =Pػf6qrlW$^.nl 6Co5Lߧx2bDFwK1 ޴8g%n'F\>'B֤,FRYۘ mtcU:}E]E :BͪCD*BXˊ(NE_DʠyEE]-UIE4kVO& GP|}ZcX \ ^"W#V[m!m-g }Y%P8cE~~QFtˠЁ$ 4uC .!h܂?Fz-409\%\5-=<#<3ÓDPitpy|P$HerRhuz$%-#+'o`hdlbjfnaiemc H DBLك!PD1X@$)Td9\_ %R\T5Z`4-Vtqus`qx"Id Fg0YlEbT&W(UjV7Mffw8-;.  M7Lv\hckgI"S4:bs<@(K2BRk:hWPTRVQUS70426153$ "L &( @,O *`./LPNo0p'q # ! C>BRic˨1c1c @!B!B)RJ)Rc1c19s9s.B!B!RJ)&_rL&L6 t[1at;„2!6G>&LnD0.DŽq!! i` ?yu(RnJ(tvK$I$I$I$I$I RJ)R)RJ)RJFZkI1c1c6ZkZsι$IW |VBRic| 2.v| q!61ʸJM@RicS>ʸ(.myKnp{LP=#L(Ӎ  Ll&ĕngRn - V1atk";PK}w\v5fonts/ionicons.svgnu[ Created by FontForge 20160407 at Thu Jun 14 08:50:34 2018 By Adam Bradley Copyright (c) 2018, Adam Bradley PK}w\0(0XXfonts/ionicons.ttfnu[ PFFTMp<OS/2@`tX`cmap Jcvt Dgasp4glyf1lThead6hheaz$hmtx& locaF$xmaxpq8 name`postY2Xh/]*_< H#)H#*.@@.LfGLfPfEd.A \   @(@`@h`0@@ LU@ @@ P@@ @`` @@@@`@`@@@@@ @@@@VVV`L`LV  `@@*P@@` @@@@@0@@`@`@@l``@ @@@`@@`` @@`@@@`PP(@@ )a`@@D(FF #%+NPRTV[]_adfikmo4OT  %')+-/1357?CFHJMPT\_ahlnprxz|~ !%'-PRTVX]_acfhkmoq6TV  %')+-/1357?CFHJMPT\^ahknprxz|~|{xwvutsrnkihgfedcb_^]\XWVUTSRQPOHECBA?=:321+)('&!     D***^ HPvf Dx,v8 B ~ 2 l  B 4 0 X 2P RZJX*dP$n^0v&Xt>b  ~ !!4!d!!"^""##<#d##$$$$$%%|%&R&'(:(\(()*)P))*|*+N+,,,-R-t-.4..//6//0 0T00122223d3334.55^556.6l667,7^788T889099::v:;;<> >N>>?j?@"@b@@AnAAB$B|BBCCCCD D&DDDE(EZEFFTF~FFG8GZG|HHHINIIJvJK KBKtKLPLM*M\MNTN~NOODOxOPPQRQQQR R\RRSST>TU2UV\VWX8XY~YYZZBZ[[\\B\x\]F]]^^t^_r__`D````a2aPaab:bpbbbbccc6cBcZcfc~ccccdd:dNdee0erfFf~ffg$gDgh\hhi2iTijj.jfjjjk kdkkl l4lllmnooFoppBpppqq:qbqqqqrrrrssrstt:tdttuu,uXurvv:vdvvww|wwx xވ JzȈ6PȊ:Ȋ0Bx 8d,(JԏLjґ4ZҒ 2hД"Jbn” bt4.'5&+"543!2+"3';26'.=4>76&+"N !#"" @ !#""    )  .BB.  .BB." $  7  7 &2"&474"25264&"zzzz"  zzz sQ   `Ai!!%4'&'&"27676/3#"'&'&'&5476767632#54&#"325/3#"'&'&'&5476767632#54&#"325@/ /1##1P.%   ". .%   "- `& 11 &,11+%  &#  %  &#  ir{.'76'&#"'76'4"5&"'76/&"'76'4"5&"'&272?272?272?72?6/"'7#2&7436j_jq       F0% 0% pj_j_     GIGI2+"&=463264&"264&" (88((88(((((8((88((8(((( ")AJQX73/&6'46#"'2/632&547+64?6;2+"/&5%#"&7&576&ʳ'@7R/*Y0*~nM(,2G22G2%m&9MN;M:7$mw/M;22F22K/*'AM@N( "3DGKt%53!537#"'&"'&'#.54632227'27654&'&'&"'&'&#"'53'#54'&+"'&7'&'&5463"2;2#4'&+"&7>'432HR0z5?]#!4?]#!\7- 1)  2)   6-"B(     6& 0000i>]  i>]  -70PG-61Q ""000[    % $9"/&4?62?6"/&4?6%"/&4?6?6s $ = $ d# $ #5 $ ll6CCD -CCXCC1 1U7'7'77&'&676>'&'7>.'.'.32?32?327>/73276/@@@%C|||&%C|||-      @       @  >>>>W||&%C|||&%C  >       >  ! ! 3H2"&47&+"327654/&+?6'&'&#";254+'3276/zzzz | 6%   5-!)1  zzz  6 >    ZR%. @@W%+"'&'&'&'&##"&'&'.54;227676'&'&'&5676322767676;25  >2  B     ' J  (1  &6B" ",( 1- , +5 '!"=463!22#!"&54326'&+"3h`  d  H    %#"5'53+75'32cgchQaQ;`h>76/462"&"26V QQ ^ _dzzzhhhh QO ^ _hzzzhhhh !11!517'1'3'75#UUUUUUUU{UU{{UUUUGUHH#"/&?&2"&464&" QO ^ _hzzzhhhh: QQ ^ _dzzzhhhh2"&46/&7zzzz$zzzZS6#"'&?'&462"264&" _ ^ PRzzzZhhh,_ ^ QQ zzzhhhr+32#!"&=46354&#!"3!26'2#!"=432+"43x x  " &r  6&?6/"&462264&"r_ ^ QQzzzhhh_ ^ OQzzzZhhh[ %32+/.54?_ < <  RR% ==  SS0P6#"&/&765427 SS == RR = <[ %6'&?#"4;' RR = < SS ==0P6/"='&?>32 == SS < = RR=2+"'&=47632#"&=43226=4'&#";26=4 "* , !"$$" ", !-%%$# 0 d(9L#"/#"=4;76321#"'&76514'&6#"'&76514'&61#"'&76514'&6 A55AA :: A?. ((3. 4P5p[A 8SS8 A0 (::( ) **  ""  `22+"./&4767>3'76&'&?6[()  H+  44  55  4-  55 `(*L  - 55  44  5.  44 P0(#"/#"=4;76321"'&76514'&76 A55AO  . 4P4' )*  #"   !%)E%5353#53%'3753353'3"353753#5372#54+"#'&6;5463!2dC1- hBhh-0hhh HH 0JLLJ788JLL^XXXX888JLLLL DD ``P0%172#!"&=46354&#!"3!2672#'2#!"=437#73|`  L 0  P --0  {!$!s h h t=+=P0%2#!"&=46354&#!"3!2672#|`  L 0  0  {!$!P0%12#!"&=46354&#!"3!2672#'2#!"=43|`  L 0  P 0  {!$!s h h  37'#%5'5>4&'UkkU 5@UU@/;;/pp@0 1ll-RfR%2+"&54&'4>3!!=47#!"}%&    '&  "$G<62"7'&?654'&zzzQQ _ ^jzzzOQ _ ^ -5R\#"&546=4&=463276327632;2'&+"2#!"432++"'&76=4;254&+3260     "  4   ` 3  `   `  '/R7"27654'.2"&4$"&462"2654.2"&472+".'"=4.'&54?632]&6AL88L7.#(6&&AL77L8K9 1    H  6&8L77L(4&&8L77L}  4 ZB   E <'27#"=&'&?'&65432'"?6'?6/& t U lm V t X ?B??s x J [\  I y Lw5A52"&4'76&3276zzzzOQ _ ^ zzzQQ _ ^048Z%#&'#"'"47>?27"&/+&'#'&54?624"24"7/"5'&+"#&?6;76;232($$A<$%+j 7 007 ;Xh  "9#     Un,,,ua VV a/<62"732?6/&zzzzO ^ _ jzzzQ ^ _ !"./:G\ju7"&54657632"'&/&762'72/#&7631&54;26&76?.7>'2#"'6?6767'&7>'6 %S- <? 9: <+ -"3- (+G<! &   #aK  O >+3  ="1 "!/"35< )L (  "&462'7654/&7&zzzQ ^ _ zzzzO ^ _ 46;2/&5uup\\ #7#"'&76'32''76#"&77&  5h?3*V5h>3*V   Y ɶHqY ɶHq0P)@%+./6764/67632#"&5463272#"&'67=4/&/7>   N M! P BK"3    "PW98XAAX89W;    A p 37'#%5UkkU pp@0 1.72#"'&76546%'&54&'"'&?6312?632v): L I .d-3$5  ;+@ !!'8  4$/+C:S72#"'&6323276767+"&7>54676=463122'&'&54'&'.3&'    .! !/ % - %%  3  / @D  D@ / 8998  By#"'&'62&'&?67&'"#'&'&6;76367&'&'&'&'&7>2'&'"&#2'&76'&'5>76?&762W%56% /B'8, $        T  $ +9'B     A%%?V#.4  +.  !   m /+  3."    ! (2"&42674"&'&63?64/&"zzzz2J>*,@@-II5KKzzzD1 )9?,-A*/ 5%KjK*26#"'&#""&47676'&767323276'& * $ /"-/  =! $  71 -/  x4%2+'"+"?4#'"+"?6/&;23725'&;237x (( Aa  2y&%z2  aA .DE- (;CK+"=4?6&#"+"=4/&"+"5&'.'&5462"4;2#'"4;2#(    YvY$8L&*  ^ * 3__3 *_ *&:SS,p!G$2"&=4#!""&=4623!254%"=463!2+"=4+"+"=4+"#     d(bb   ^^    @ -7CMYa7:3+"'466+"5:>2+"&546;676&72=4+"3676&754+";2'24+"3 7&7  Wb -bbe  OtN  _tR. '08AI2+"&46354+54+"#";;2=322654#"264&#"6264&#"2654"Q.AA..AA.9#$##p  >   6 &.>^@@^>y##$#  5  &S  6 p &/%2#!"543++"&'&'&'4763!2>54'&'B!$," < /  & ,   0'+!.9O & J-DYg1#"'&547654'&5476321#"'&4764'&5462'#"'&5147632#"'&5147622"=&54h88//3## //884## 5(""5IJ5->?,1!00! L,~,5JI5 .L !00! $  $(%'&'9&'&76?6762u AI42+$   -,  *S %)41L@ (  -, %%'&647&'&631326;1   Be76;2"!4&#264&"4+";264&"+"537+"p022*:x:'$ppJU0`V),L L"\9 8 F#+2#43&53+"&5426=4&"462"    t(& L$  $ 7   ` #!5463!25!#!"&7";24+";24#@@ @00>#-5=E463!2#!"&57676&7676&7676&24+"3724+"3724+"3ZY     m1  i  i  hh p'/7?GO%2#!"432#!"432#!"&=46324+"3724+"3264&"24+"3724+"3462"\\/$$$B//B/$$$,,\0D/B//B;X,,(X5A462"27#!"&=462?632?6276/&?'"/63!@((lK  K!$K  K/7Q0 ((nP PP P0B"R H%#/&#"#"&547>32#267#"/"""'&764'&54?32769 Gd `>Hfs 0H!8 4dG:dE 9LbE/+N 8 <%-A.   Ed/2#!"&54634#!"3!2'#"/&?62762`D888,z@88-{"2#!"&54636/&"'&"27` z,8@{-8##"/&?62762&"264$2"&4;8,zjjjzzz8-{cjjjzzz2"&46/&"'&"27zzzz:z,8zzz{-8&.C&?"&#"/&54&5&767667>2264&"6676726 >2 P   Q 8$2*""o + ,2$9 Q P 2> #  C  ` $.f4;2+"52+"=4;4767632676&72#!"546;2+"+";254+"=&+"5&'&63<-     L ?        1 8X % )"$%/&?&'&6766"264$2"&4  55  4.  55  43jjjzzz  44  5/  44  5jjjzzz2"&46/76&'&?zzzz  44  55 44 5zzz  55  44  55  4/72#!"&54634&#!"3!262+"&=463'"4;2#D####(<   d###H#|H  412"&46462"3"&4632'&#"2654/76?N88N8$$GzzzV1.!(Fddd  8N88NI$$++Vzzz dddF# #,5%#&'.6?>766'66'&264&#"264&#"#5476724363676;272##"#?>37437&547&+##6'"'&7##3;#"&#"'"'&=_?4Z  _@9`  [        >'&'&#"2754#"32632326 @  F0F  A $"/."(   ''   (|(   ($  } "]-0>  ) 0 4 y I  W  `)%#!"&5467>326326/&"'&"27 +6%%6$* -N9VEz,84"&88&4 ,AM'{-8M3)C"/&4?'&4?62"/&4?62"/&463254276323 rr```rr>>''1mm \\ s\ mm a 99 #jj#M3)19A%"/&4?'&4?62"/&4?62462"&462"6462"~r```rr  M  s  m \\ q\ mm e      M3)"/&4?'&4?62"/&4?62 rr``~``rr1mm \\ \\ mm  %##5#53533&"264&2"&4;V*VV*V'bbbzzzVV*VVbbbzzz*#""/.?'&4627'&#""&5476 rU2(/02  -(-J o~T1(01116%''5755754620PP0p0rr0(hq  qh!)19A%+"'&47632$264&"264&"6264&"264&"6264&"n  ??C[M3## RT((:d  4778<-W  (( @`2#!"&546354+";2$   `    7&?6&2"&476&#7b1>zzzQQ1bzzzQ ` #7'#'737hXXNX3NXXNX3`]]6C{'#&7632'&?&'&#""/&?6376&76767632"'&'7#"'&#"#"&4767>767>7636'&767326'&li#2 $ !?"!078:/A$*  w  F9 ."5 3  / $ #@" ! 6B=3:!   $ A6  8053 @@6"&46272#5!#335,,)###**H(33x2"&4654&#"6767654'&'&'.5&7&'&7>'726765&'./".#&47>3675'&7>7632zzzz_ lJG65"#0   -    zzz (Lh45K0,    '  1  X    %8K7'&762542+"43"=4276232#"'&?#"4;2"=6"=4;2+"/xt  upu  tM  tMpupMt  uu tMppMt u upMtpu tM 2"&464&#zzzzjjJzzzjj1 A6+"=47%/&?632?6#!"&=46;;2t   "##&j   ##"&"264&2"&4''7'77bbbzzz8KKKKKKKfbbbzzzKKKKKKK7''.547'632632\ -4.;H9%%90Bs\ )0,D5- M@M,,B )/&4?6&=4?6%46/&5d> ^^ Qb]]_%'5#5'7'53H@l@ Xk0(h+48H^g7#"'&4763276767>765?22654&"624"&'&547634#2#"'&'&'&'?62654&"      r  =| 0C i/&&  $  ":     Z t [A<*:*" !  c ` ?!#53#7?0@+**---zz@vvJ@...!%1%+"54376?32#!"&5463!24"72=4#!"3@\r p   x v    '"264&2"&4535#4>54&"#462bbbzzz**")1D1>fbbbzzz**?"11"72"&4264&"&2"&4264&"L44L4J  .zzz^CC^C4L44LN  zzzC^CC^"264&2"&4#535#53bbbzzz****fbbbzzz})*0 "&=432#';+"&546;  L `% H? P`B ,7'7632#"/&?632%#"/&?632762CBL @$?2EE.OAFA4 462"27#!"&5463!'P&4&&44e&4&&4&  Cu+u,8HU[+"/&7632%2+"'&?632+"&=4632#!"=43%2#!"&=46354&#!"3!22#4     hh0FFF % %04  2"&47'zzzz}}zzz^^@ 2"&54ndnWWZ[dd[Z"264&2"&4#53bbbzzz;fbbbzzzk* `!'46;2+"&=3?>54/&+3#"4`/  EE  /SSS 8k0  FF  0%8K"/"=4;2#72"="'&?#"43232+"=4272+"4;'&76250u  upu  uNm  uNpupNu  udu uNppNu u upNupu uN 9A7276/&/&&5'47/#"&//4?4>?&264&"   C C 0  !k  3    3  p - - p1,P2& )1P,4 .6=D'&667#".'&767%'676&"'632&7'.7'327''6;8d  +(*.T1) 668668(+))pl O "~ @ | d ,).. :6(8R;6(8 ,  P" +/:"'&?'&7627&547676762#"'"/264&#"  -%  %2( H4 $>02%  %-{)TtTT:; -% %20>$ 4H (2% %-W);:TTtT -Dj#"'&54654'&'&762%"'&767632#"'&#"#"'&547632%+&76'.#"#'#&56'&'&7632+&'&7654'&'&#"#"&767632'+"&56'&76322+&?43'#"&5.#"+&76'&7632+"'&56'&'&7632    5DG< 4>:/I 3-)  D-?L   -/J9: " -     ~               '" $  &1 +!"0 /+N; 39$:DW  V;4:R6$*2 ,)'C02+"  !(*0   "!$p> ;j/!   #$N EN bV  Q_&8;:: -A: '32#!"&5463254#!"374;2+"54;2+"5U&"jkb"72&?#"&?64l4  t2+#5#"&=4635!fent((!546;2;2!32#!"'&'&3 `  I)I  O `'/7?GO62"#"'.+"#"'.7>76322632264&"264&"264&"6264&"264&"T&&^)!;; +' :6: '    8    8  &BY 4 4 YBFF  FU""  8  L  8  463!2/&=4/ v  7_   k L08@H2"&547675&'&5462676767.54&264&"4&"26264&":) %4#):)):)1- "";""""`)'$ %)))) &4"""""":F%2+"'&'#"4;676264&"M$&l&$MM$&l&$Y>>X>>3!$$!33!$$!3x>X>>X>+3_g7#"'&?#"'&=&'&5462;'&462&264&""&5476754'&+"/&54?63232264&";9 (Z3 ):) Y) ""m):) Y) ;9 (Z3 ""x; : (-*))(( ""))'( ; : (-*"",4<D%2#"&'"'&'"&547675&'&54623>4&"2264&"264&":))& D-):)):)-+D '""""" ""):)  ?))))1D  ""4""""1;CM2"&54675'&=&'&546275&'&543264&#"4&"2264&#":* u*:* u*:)jj  i*'9<,**',<9**'+77+ """"2""DLT\%"&5476754'&+"/"&547675&'&546327632324&"2264&"264&"I):) M) 8 ):))%7 (N3 """"" ""j))'( 8 )))7 (-*"",""""3#"3!2#!"&546#32 @ `@4       $*05:@GNTY^dk2+"&463&'#5&'#6?67'3&'7&'6&'6''6367&67&'&'7567&'67&'767#VzzVUzzU!u>>==m! *2." D!MF # *4-" B!Mzzzz6+ "*>&&>>&&8   5JI6D  #(*7*"m8) "*v   6JH5D  "+6*"2#!"&=46376!"467d#### ####_  _7"=4;2#'463!2#!"&5%24+"=4"+"=4"+";2+";22=4;22=4;24+"=43d@J8d8888d88dd8888d8888dU 3#"&546!2+ V j N7/&76?67"/&?6'4"'&#"/&76'&'&#"#"7676322762  8? ' _%' 8"     (1!  8L ' Q%' 7"    ! %17;#!"&5463!2#"4;2+"57>76&4*M  k,&  @82+"&/.'&547654622=4622=4622=4" +#: % +      K )4 #'" &     m$,5>2#!"=46;&54632632'"3264&#";44;#"&5%2+hT%!!%+""p"x8##L@@#2"&4"264&"2642676&+"zzzz"B4  zzz(!373#!"&'5463! X}" 9 q` `pA2"54'&""54+"#"=4&"#"&+"&=46;2=4632;L48 .. >X> .. N89&'D8  L. .,>>,. .&8N('7&\$ %753%!!#5#75#35335#35!5#353353rr9q9999rrrVVrrrVVVV$,2"&4%7."67'7&'6264&"67'6zzzz Y>>Y  Y>D8((8(Y )zzzVY )>>) YY )>Z(8((8c* Y&/"264$2"&472#5&7654&#"#>4632"jjjzzz## $#  tjjjzzz    '2"&42654#"7654&#"3632354zzzz  >##$ #zzz  U  (07>2#!"&=46;&546327632&"264&"26435'75#'z.%" #%1    }2",k,"2:'%+    JE==E   &1?K[kx74&53/&?6'6&5/4366&5'/#&75767/&?676/&476&?6#"&/7&?632'76#"'&"'&#"&54766/&7>276m = g%  'C**)*)'&&< %E +'H N   =T>  * ?-%2    i,    )66(4&'&54671326;654'&+"#"'&'&+"60/A0Pd<0A/=""=**#  "2*/[[B.E@$MHR@E.B44::$   2#::?II %5A7"&?62#7&?62+"'7&7>7672#!"&546354#!"3!2A_`>5  G]J: X  w`+&'&54671326;654'&+"760/A0Pd<0A/=""=**#  TB.E@$MHR@E.B44::$ ")E 9HX7#'"?6#/&?67"&76327'%.?&'&67%6?>'4#"%4#/"325F\l.-  9    )  r4{FN1#  _   )  C 5, 462"3#"264$2"&4   &&]jjjzzz   jjjzzz 2"&45#6264&"zzzz&   zzz  -2'.54632667654&#"'&#"7.0B;.44.;B09%%_(0"++"0(_ B15D,00,D51B,,X"2*#0  0#*2"X 2'.54632667654&#".0B;.44.;B09%%%i(0"*B15D,00,D51B,,a&2*#0!@ +7CO[gs"&46;2#2+"=4+"+"&5&546354+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";22     X X  NPPp     (( , HHHHHHHHH  !%1593!35#75#75#75#5#75#75#75#5#3#3#7#5#5`Հ**************++++{++++**U++U++V****U++U++V**+*++***U++''7'?'767>7y$4 !05<Rf)")fR<50! 4$m  *62+"&=43#!"&546;2;2=4;254+";2   <HHB@PP``3;%2"&547'&6'&'&#.'46'&#"&546'&'&'.'&76326264&")2EFbF      "  #GfII3    " 0P#*%3#!"'&535463!2&"2"3!2=4#25#300 ^ \ hP    #!"&5463264&"75#+U{4&&4&U*&4&&4UU#%'&'&'&'&7665&'& *6Y#I $fc+- ( lVaE   CV'#l5 $Hc@@ %1?%#"=4;25462"&72+"=43"&=4622+"&=463@   R     F    R X p *p X %'''7''7'7'7777--JJ,-JJ-,JJ-,JJ AI%4'565"2"=4#"#.'4;254+"5>722=43+"3264&"[@kK Kk22kKKk2  :)):) Kk22kK Kk22kK  8):)):@'/2+"&=46;546654&325754&"9P7R  6(8(0(98(/}  E0((0p#:2#!"&5423!2654&#!""54637#"4;'&762#"'&p   W@A  TR p  @@ TR p#:62+"&546;2"54&+";2657#"'&?!"43!'&762   KTR @A  L  TR @@  $%/&'&"/&54632?'9:)R<;)h:*9);0ZKTtTTtlKZ0>$ 4H ([ tTTtT 91"&462"&5##"'&=476;2#"'&=#"&'5#r& ,  z   U& {i  zz  i )746/&54?6&56&547'46/&5FEi>> Ed>>x32 $%v2<%%  &45=QY32#'&=4'4;2##'"574;2"5%463!2#!"5462"7"&5472654'2"&4~h4j82~h`d8!.!!.v!KjK!3(2D2(C.!!.!Dv<|~<&C.!!.!&/5KK50&/"22"/!.!!.|'&'"547>32%#"'.#"#"&'&7>76.'&5467939313131;267632654'&#"326*"3 ),h  !   2 , Z    )/ ( $.-$ "(  d6.  ,+ \P0!"43!2!"43!2!"43!2p``` ` `  Yn7";2+";2#!"'&54;24+"4;24+"4;24+"5>762=422=422=4+";2#&;2""&=4#& I I MM I I I I M(  (M I /.#9 $ ) 9 9 ) $ 8$"))62"&4&2"&4$2"&4    J         P`"&462"&4626"&462P      H    `  :%&?#76/&65#/&?635&?6/3'&6O  77 O O  77  O O  77  O O 77   O  77 O O  77  O O  77  O O 77  C!;"&53#"'&76;2+"&7>547+676=462.`   (    !. t|   / /   D@ /C("&537+"&7>54676=462.`l  .!!. K  / @D  D@ //72"&4327'&7674;54'&''&#"/32&462"zzzzx)/0)2!d5335d!!.!!.zzzV'J5 WX 5J'0.!!.!&6?#!"&=463!26"=&'7#"4;  : 9C a  b C9 :p/76232+"'#"4376232+"'#"4376232+"'#"43 6 KK 6 K 6  6 K 6 KK 6 H      r+72+"'.467632=4+"32=4&"372=4+"37,54--45,(oor^l]]l^oow)  (QQ%6/&&576?6'"'&/&/&47R c& 5Dp H-N  [m )6Rd2"=+"4;7'&7632"7"'#&?622#"'&?%2+"&5467=6767632263.54632# I       A&77&,'5 (>!+% 7x 3  1    8L9.- >3&(, =BX%+"767>367654/&'4'&'.7476'&5&62272+#"=#"4;5432A8 8 ) 1T1)=    > -  !11!  -X  P0 $(463!2#!"&572=4"4#"32'!!642}  -U   @ qV ,2+"&5463";24#254&#"7254+"3   @ o} f 1I 2.54264&"TxTH$$2&|((N8./0ICQ8q(('4E#"'&'4#'&7676326'&'&+"7676'&#"27676'&'"232:kh=u  % R  (   z ,_0   @@9N%#"'&'&7632'&'&676326'&'&?6#"'&57547272?N;9 <    &4"%"* #3#$0$`  Q+10     !#4'!     #$1  ` "54;2+"532+42+"=43``pw`88 ."&5476322654'&54632"&=4632>  0>> 66 -/ '/- %'    {   R   ; CC CYXC ;; /?B/ %86/A@/ %n% +  *+,+   '  %2+"436"264$2"&4*jjjzzz jjjzzz2"&424+"3zzzz*zzzf  72+"&543  ` =!%5!%5!```887J!D"&54?#""=46;'&5476362+#/&54?62326=$ . u.  "$ "$ . x . " #`p2"=32+"=42#"43RLnLpnLnL  '52"=&546#3"=&546?3257325&2"=&54 M  &  9>bk!  ! @hhhhO1!  !1Z&!?62!276=42#!#"/&54< ). (:; ( 00 .( : Z& %#"'&4?!"&=423!'&462z9( .)  : (. 00(  -A7.'&6'7>76&276"/&+"&?676+""/574365LN74MN;&/!'/ + 'PL,LP' "-L47NM47M(!/&!0E^A//AJa )2"&47676&6326'."7676&zzzz  '&I  0:0   zzz  !!h   1746/&5&=4?66#"=4&/&47@ K^LS^L^1 lv 6"/&?6&/&47t A  ch 8 `%&=4#&7672=432} U( AkB@(2+"&=46;32=#5&?>32'k 0  FF   TTT/  EE  -=&=4&+"=4&/&7676322632&2654&"".">>D' " 'D.   @-==-@DD%   @`76/+"54;2OGG\8 @`4;2+"=&546GG\.%#"/"1"'47'"'&'"&="'&547675#"'&76'#"'&?'&763227'##"'&767'&7632>'5&7325&'&547625462>?627&563237632#"'".'>3632y   `     !`   !   ``    !   `"     `   !   ``    f   $8c & &c8$    88     $8d & &c8"    88    @`%!"&5463!2$       ` #/3"54;2+"=4;2#3"=4;2#4;2+"5h000(00p8@'3M2+"&=463";24#264&"264&"754+";2"/#"'&?63'&76&&&&(pD    2    &&&&``  0  #]'$&?#"4;'&6/&546?632+n / /  EE EE  / / 00  FF FF  00#/76462"72+"&463264&"6462""&46;2#6"2646""(88((88(4&&4&""(88((88(4&&4&?""8P88P8&4&&4""68P88P8&4&&41d%"/&76326'&'&'&"#"'&'&767676327632"'&'&'&7#"'&?62"/276767632 *+   H  (%(O;H ; %$R$&"   *+   <"L   ** "%)  6Bc S"1$(  ++ T<  `63!2#!"&5244"'!!   p  `R  `(4IS\753++"'&=#"&=#"562"&=4$2"&=47#67'4?63272254&#"3264&#"@   1 4{  g  LLZ4  44  4 `  `  `  ` e ' @ H    ?''3 373***..8((zYYP``82"&45&"3267##"&462zzzz@!!\BB.&:  +"22D-zzzHb!!B\B-#2D2-@'2+"&#"+"'.76323267+&76) $ ## " 0- , !&'@< 852p0Z 8m76"&54?676?36;2;#'&'&'+32?63#"#"&#&'1&'&76;676?654&"#.?6 BV>E  "  D,@{>E  %   D,:@ @kA>+-D   D,@%>+-D    D,??B59=ER$#5##5#732>=4'&'&+5353353'3535#76764'&654'&'&'2762#( )W  W) (    H    &! @@@@0 0@@@@  cJJZvB   R'?&4?62"'"/&4767627676"/&4767627676{y#{y RR R QQ  <;u RR ;:P0#6;#"&46;#"5372+53264&+5+)XX.BB.XX,.BB.XX))X8)+B\B+[,,B\B+)8)+ .C6462"7#"'157654'3&'27&'&54767'5676323&'##"'8''8bL  f N>.C gr&4%&6]   18''8'iOz&   .A_0(,) 0*)  +.6PZ]7&'76''&'77&='./67>7662"&454'.'&7>76'6547>7'7>''"] D]((''skS QQ RO&]=5):>36?  Q 8  6 P6 8  >37!'%7#3#31/##yp650bm3m--D132@(N `'3#'32654/3'35+532@f?#*%(@$((/5fvʝ-%kccS,Y,8@2"&4%6&'"67&327&6767&'"&27&'&'767&pppp:<86 6-@A8z(&T FBBF>J?GBBDD@%73#327#"=#535#535432&#"3#|u!.%8 37222273 8%-"0 " A u000 u A 0$2+537#546;5&#"#3#"&5463k k29 # '"-..  8$4)$)8 V J<2+"'&5463>'6&+"7676;274676&+"&=4;271 Hs / F @  R ` 9mR  |Rm  T -   !6'.7675'#"&/3326?''>./"'67676=&'.'&476?.7>7>7654&/66'&667>54&        . '    -1 (.$ ! 6  M;   (   %  ,         "  * A ;- &#?2#"54654'>54'6'#"&"&+#"'&'"327+.54VC .9 "6" 8.     DU_Kx +/<$  $*+CK0-.0F<00",+0[9)99) F+.2/BE.0)0*+ @)99)99 !!?#'#3@-&(/B(xTTxH!'7#3/#?#'# 560cbm--2@'N3'/7#";26=4&'2+"&=463"&462"264&2"&4 00 00 .BB..BB.f4&&4&hP88P8`0 00 0 B..BB..Bp&4&&4F8P88Pp +#"'7326=72&#"#"'73254&'&546y1$ #$UDA7$&+4]EhՃ>&@ F.<?& "D,:02#!"&54635#62654&"54&#"5#3547632a  V7#77  A   d%&a %^ `"2#!"&54635#'#35737#5##8**88**F*8*`DD`66````<g"/&76762?6=4/&6=4;2#"/&=4?67"&54;23254&'.4632+"5&#"#5 '() -'/$#$'"K,)#( *%  \^^    _ _  ^{" 23  Nk72#"'&547632#"&54767##'"'&'&'&'&'&547&767632676?654'&'&#"&#"&#";2    ~"  $@  " ,D() B* *2 )%VT     t&:. *;%'/ '=$  %>B2#"'6?32654&#"74676'&54632#"&7>54&#".54]"'6CP>JV. =1,2( VC4MW5C ,?/&2E " ! hnD] Ac%#"'=4&+"'3276?#'.'&767676?%567676'&'&#"567632   P/?    )+- o> \)  a--"      f   * %/;0 1  &/QZ7#"&'&=46;5#5467632+3"7254#"+3'&=476;263>=32"3254"&`"!h '`.3.1!h!  +' (79" y ` (5!!6! "&#  >FOjs%462"&'462"&%#"&547&546326737632#"&5'632&"26467&#"6=&'&'.'&#"327654&#"#"'73267BtRSt7JV EJ7?  Q2 6LM6 26MLt u /0 )     3 9QP9  &b&M&  "1  %%   1"% n   62"&452#44#4&#!.!!.!iP`PPp!.!!.iP`ៀu%'&76'&'&'&7&''&7>76'&''&7&'&7&'&767.'&7>&'&6337676'&>76726>7>7667676616'767676&766'76'6  "&  !        <4< P^&%IK  D 7hT0      <%t+ hQMw      $ *  . (1%# , 5+,   32) -% `8 m%#"'#"&547&54632632654&'&'&'&/&'&5463232654'&'&'&#"#"'&'&'.#"3276u >,Lk>, LkY     !     '#,= jK ,=iK?          nv%"###"'"&#&#""'.'&#""##"'&'5"'".#&'&=767654'&'.'&7>32&'&76267632$"2646&"'&26264&"   %D%    '$    %''%   $&  X 2 B  X    "  ;+--+:   "@  5K5(2CV"&462&2##"&/#"&46326323747"264&"327'.7>&"#'&'3264&,:()C  +F&f     !))0N*O>(   p  #727#"'&'&'&=#567676733#!"0 >`` 4A : +p@e& @#!"&5463!"224"7!2   p   i `2#"'"&767.54zzzV 3=bb  P0F(7"&5476=4622654&'&=4#"*8P8*(G0"2(88(2#I6'41'&76763232#"#"'&76765&"'&76'&5476/4'&54 @"1@ #  1   >"   E     +# #7      I%1#"'&'&#"=43276767>76767>7632727676o @"1@ #  1   ?#   ;     +# #7      %4<HP"/#"'&?63'&762.=46;4;2264&"754+";2462"    2    %H$$ "'`T((~  0  h%  %((@@mV^"=762#"/"'&?'#"&547'"'&?'#"=4;2+7632627#"54;24&"2 I5     0HC^5  % ]<% )Z)K< ]JNpNNp 1"514&"654&3257P9(8(R  /(89(((0}  EP0#"/#"=4;7632 A55A. 4P4 (6@"'&67#"/#"=43'6514'&6'6514'&6#'76F 3( A5p5 *:B?( /C0   | )E| 4P8Q>5DS8 BZ/&:( 1BR ):C75#"'&547.>#"/4/&=#"&=4?6;27/5I. F *\   D%9* FW[/43  .h^L: A xDn  F5 62#!"&?#3264&" $ $  pzB  1GHd#"'&'&'&547632327676=4'&'&'&7632&=6;327632#"'2#"'&=476763232+"'543>'&'"&76;2'&#&'&6 ,@' 7'.#5% " '  & ? D56' "\        %-)'% )%   </0B,-%$%,5R3       @#"'&'&=6767626=4&@^BW/ ?+050);=.ZU;TA SX<$*7'>`$/ '&'&"/&7&7632'&"'2/&7`^!/2l2-"N=RQ=,v,OF55`X  ^77''55*9;2+"4;2=4'.'&=476;25&'4+";'99'  x `V'-ss-'V o#..#.6"&=##"'&=#7##"'&?>73#"/##"&462 ,, b --#$$0 xx  xZ h i Zx x&&2"&45#5##335zzzz;V*VV*zzzk*VV*VV @` %##5#53533@*** '7'7'5&2"&42654&"baaUe;qqq|XX|XC!R! S!So2=UpppW>=XXz#"&5463!2#!2+"#"&546k       2"&45#75#zzzz000zzz((X)W 1567&%5$2"'=5##5##5#35335335++++<<< 0 0 0 0 5&&55&&b%M F%%F Mb @327#!"&=73272654'&"5463!2'654&"&#"'54[ := :& &(j)( W < '99 ! _ &P  "%)/2"&464&"#6#7''6323&54'3'7#"0pppp8fH!81N*7Z~*7V>Z~ @` #5353#53'5335373+535353P(PPPP(P(PPxP(PPPPPPPPPxPPPPPPPxPPxPP !6'3462&"347'zh=V=H@.(_`+==+N. UT#!"&54?63!27#5##'!'!  !  Q\Q =\ ! ' ..Vk%!'7Vwx*xxVk7'7xxkxw 2"&47#zzzz`zzz`! "&4625zzz`zzz`@@'@ "&4627'&zzz``zzz ``@@@ "&462'zzz ``zzz``57Vk=!'7'7wx*xx`f%2+"/&4?62A  S   SO    OLp7&4625462762"'  OO    S  S  `f7"&4?#"&46;'&462  S  S  #  OO   Lp%"/"&="&4?62C  OO    S  S  Vk7#'7'*xxwxV7223#"'&7676&2"&46&#"32767'#"'&7>32#"'&57#3&'&#"32673276  QzzzP@;<%$"!=  /6-/.    'B  zzzP 88  883::::- ++      ++      "<=       <=       $%32#!"/&546;76323'2654&"Jb 3  3 bY Nz="   Y %,373&'653#&'6#57#676&'3&'#67&'30>3;V1:3^0;11=3:S1n n1 n21n (@lV>(T@'(?)6H$!"G6$G76G"%2+"&546;537#53   %ZCY-Y-s  W --{2+"&546;53#   %Zs  W --32+"&546;53   %Zs  W --%-+"&54&'4>3!32265#33+"5 && /^   &&4 p@ ,B2++"&="&=&5462632632632=##"'#"'"&#'2767676327676323276546;2654&#"#&'&#"#"'.5&'&#""'&#"354&+326!@&&&4&0#( 0     7        P  4'`D! &&7&&41 ! 6@        ?e` *2:"&4622"&4264&"/#5'&4?63232"&4264&"9L77L8C6&&6'+' = H  ";L88L7B6''6&=8L77Lg&6''6-- pV&  E < %8L77Lg&6''6 #5'7'7537'aag ~~ g** ``g }} gVT**T"';7'&76?546;7332#"'#"'#753#"'"'+26?243 &@`@& 3/''./&&0++9$2(Z(2$5'\#  b55b  ++**T))T$ 2"&4##5###5!  +*+  x+  ,-9H\g7"&54657632"/&762'7/1&761#&54?66"&4767"&5472654&'264'(^5 ED ?> A. 539?Z?,* &*&aY  ] #B/7 Abh;-??-E4 &6 "r6'&=465#5'z&&&p    2'463@@X $2+654'#+"&546;5#7U&p8$*" *  `!37#"&=46;2'#"&54632%2#"&'6=4'>(  ( ojjjj (  ( GGG0G3#!"&53546;25#0ppp(p0((((2#!"&54635!P  62#"'2654'762Y:*8':$A)&6.?/#3#3#"&'#53&=#53547#5367'76272002CCNCC2002D'"4&4"' 000!''!000'"44"'%/&'.77'6/#LZ=X$U2/S%X>XM#  753+"&2+"&=&54P X xT> | = tN8G(+ +(G8`'/7;=4>2+"&=#+"&=.264&"264&"75!58P85     B@`##  '  '  ijj15!2++"&=!35#p(/!!/% ((00P@!//!p@@ @#'+/32+"&54635#75#75#5#75#75#5#75#75#800000000000000@00X00X0000X00X0000`00%#57332#!"&546;5335!0`@00Hа``  %2#"&546;276k K  /0]/'u K ԗ )$ /]0/  #6462"72#!"&546;73264&"%4%%4X \BB\B4%%4% B\BB\Sv?%2#"&'&#"#"&'.546'&767676&67&7>7>76'&546326'.'&*37&7647636&'7./505656&'.76&'&'563233654&#"&6'.7&'&767>76'76'&'&=>'7676656654'.546/+"'"7>j  ('%"    !"B&    w             .  0   V    4    #!'#E ! -,  @     T !*.             #     !&  !##5#5!373'53#53 pP@@`pP@` 00p@@0@@P*#"'327.'327.=3&547&5462676}PDC52  !-+ Mz8R !R i,*%5# 5_)8#@EP_%#5"'&'.'35'.'&'&54767676753#&'&''5654'&'&'67676;  @E  @ E        ##2 x  !! j O\   k  `!)-+"&=!+"&=76;2264&"264&"'!'#S-   -* Kv vYUp2#!"&54635!%5!ffp̄,,$,62"&43!2+;#"&54?'#2"&4i""PD4 K J*5""F""_*  ( 3"" `!!7&47##2%5"&5#3465!@ @&P&@ Pt` &t&&P0P&&t& 2+5#"&=432+'#732=XZ9 9Z' YY? YY'73+46;2'#"&=463U : 7LP : @577'53#!"&546;#iB` +B`*+2#!"&54637''UjL*M77'3"&4632&#"26{@]*zzzV(& Eaaa@] Vzzz aaa 2"&47''zzzzLzzzM.R?'7z z lz%2#!"&546;>2*264##5#UW#,#5  ((p:  @HH!(.59=DKRV"&4676'&246'&76&776&35'6'&24"24"6'&6'&6'&&24"&zzzz   , P_ 8 h  P  zzzzrV u ^ v/{9    U 2"&4'7''7zzzz8KKKKKKKKzzzKKKKKKKK+*U ''7'77*wwwwwwww7wwwwwwww2"&4264&+4&#"#"3zzzz. 1"-&%zzz,#0#&2% `%#!"&5467>327'''6;)2F>-G+6Ro,9();F2.D%,Eƍo-4'&'&'&'&'&'767676767654&'&67>  2#" ,    R     (9"N.3*-E ! &'7O G&i  &+  6  @2#"'7&546'&'.'&'&'&'&?676'4.'&+"7>[73z( I       $ 'u5<[     `%#!"&5467>32#7#5#'6;)2F>-G+6RDddD@9();F2.D%,EgddL `&%#!"&5467>32264&+54&#"#"3'6;)2F>-G+6R##@.&: !//!9();F2.D%,E#2# .@-#/B/ `%#!"&5467>323'33'6;)2F>-G+6RhDddD@9();F2.D%,EoddL `%#!"&5467>32'6;)2F>-G+6R9();F2.D%,E,43+"&54676323&'&'632'5467&#"'327&[ */!(8," 1  .8+C SA  " $!  x/ !/9(#5#"'7$Di!% k +*V3+"&54676323&'&'632[ $36'.B3( %: ! #8$A3L $6%'7B.)>*!%#-@@@37'7'77'7*-``--bbb ~-``,Dbbbb@@ 7'77'7'537#553bbb((P(^bbbbl((((((((@@ 7'77'7bbb^bbbb;CLRZ`i%#''#5&''7&''7&'#5367'767'76753773*2647&='767527'"'77&'654'#  8@8  ##  8@8  # /F9 WD & b/ 9S/ 8  ##  8@8  ##  8e& 0m 2 2&& 2 '0  7'7'"&5467h6fg49".!r gg=!!.'#57'77627'zC)e)C*HC)e)C*%-52+"#"&46264&"6264&"264&"264&"Oq?,&  Ppp2S}SdG,>  ppCh '75353753''7'77'53$%%%4E!0/o///:A#%?DDDDu%%a000000[%%62"&4&2"&47CUUքU B%//.?'&'.77'67/&?'&'7&/5276) r` +iD N5LJ5 :7#  9-)2$"7) qp+i IK5K 5D :98" %9/ "  2"&46"265427."zzzz2%$4$-UNUzzz<%%%C$$ "57!>72&2"&4267#&'67327'&'632#"'673267!- -!>JV??V?Q2( " C 2 9+??+ ( h ;##; >X>>X}j( L;1>X>  =3#=3#553#3#5333MM3M3MM3̀3M33 2"&464&#zzzz^^Bzzz^^P(7++"&546;546335#"5#";275+=+";2ЀxS# 0` H -S 8 ` 57#'76PPz(P(3PP*(P(3%5#532!##5#"&=#535300J&JJ&&!&PP&J)<2#"&=47376'"/&546?63#"/5&=4632   - \\2baQ\ (049#'#"&546327'#"&54632264&"264&"624"73'C54%&44&55&44&%4l&&&&C-"5&44&%4554%&44&&&&&-2+#57#"&54635!**j0 02"&4264&"62"&4zzzzN77N7V  zzz7N77N<  @ +"&54633'ppPp-S '73'7'7|z\ z4{[<{@ %'353!!@[@-#75!72#!"5435!73#7'3'53P@`9 F 90@@ `@@ ` 2"&54yny__Z[dd[Z ?#53'72#!"&=3!!#546378kk+*+s8*8kk+UU*UU %53#5#53#%#533#53M3MM33MM33M33MM33-3"'632'654&'7/#"&'67'327'#"&54?32,'*Kz0;<j< .+Kz3 B <*  #8#/,TD8(;*;7; TD>' A*; #/#)W 2"&'6264&"62"&4zzzT<32'.'.#"'"'&'&7632'&'&#"7"'.5&7676#"'1&#"1#"547343632 =M8"" .#9A0 (. $  s   @67#"'&#"+=763232,  8D 7"2>m 5 @%%#"'&'&'&=>76'676'67) -J  E!.  :'.E%3 #*S"/(0E~+((335#@@@%#!"&'4?5#53#3'#u #% d ^%%`00`p0)1%#"'"&57#"&547&54632'462632264&"U+,,>,,++,,>,,>,,>,.+ ++ +..+ ++ +._+>++> `2#!"&=46;54#!3!2+ j 00  `32#!"&=463+`0#02"&437'367'?&''753273637'#zzzzO,:9,'000=.+= ZzzzD&*"C`$(&Cu6'!/4(64/680P 753!!5!`@P 000 0y22@*2:B"&5475&546267676=&5462&"264264&"6264&"@ 7":&4& &4& . &4&  8     $ @# &&$$&&$ $&&N      @@%#"&'#53>2264&"d EXD ee DXE B//B.@*66*@*66*p/B//B 8@755#"'&=&54623"264"&54754&+'732264&"``7 &4& :  8 &4& ``80  B>``@$B$&&$- F  $&&$-@``>#B  $,4<%2#"'"'&'"&5475&546236$264&"4&"26264&"@&&$?. &4& &4&$3.  8   &4& u$&&$$&& =      $,4<"&5475'5&546275&5462$"264264&"264&" &4& &4& `` &4&  H    `$]@5$&&$5@]$&&$5005$&&    (   4<D%"&54754'&+'732264&"2"&5475&54264&"264&"` &4& ``70  4& &4& 0    G$&&$- A``=$B  &$$&&$$~  (  p1##"&=&#"#"&/#5;  *).31/**  01)'33''30(}2"&4>4'&'.7676'.'&'&'.74'767'&'&4'.'.'263&'/>76636.'&#66zzzz  *4+#    ,     ) $!   6zzz      0DJ4++#/ &           #'+/32#!"&54635#75#75#5#75#75#5#75#75#ZMMMMMMLLLLLMMMMM4MMtLLsMMMMtLLsMMMMtLLsMM(%'&"/&?67&7676763/ $;% &$6+ 2/   $;%  & $7%#"&'5'45'&>65'&>235462?>?6`-7)@ : "  *g"0%  X     *%2"&4264&"6"&462"&462"&'3zzzzaaaNH9 zzzaaaZ'!!2+5354&"3#"&=4pp&@UW|WU@&sR'+@YY@+'R3'.546326324.;B09%%90B;.40,D51B,,B15D,0'/2"&4>7'>7"2646&'77.'zzzz . ( n. ( K4&&4&H.  (.  (zzz .   .  ,&4&&4@. (  . (   2"&45#74654&"3462zzzz**>1D1)"zzz**?7"11"3#53'#4>54&"#462BB@&4&@KjK$A!*%&5KJ5,( 3#5#7##5#b>>b`@"7!#!"&547&54632>?632 ,  /(8? , &8(%#!"&5463!2!'*J*`J+*``)5='%.?&/&67%6>3'#5&#"77#4#%"776"&462    (  U   zE&.4  .   6  f  ǃQ"` !*"/#"'&47632264&"'76327'&"27'7 )0<?X n,$,n X?<0) 7's X(73##5##"&4632264&"+Eg 6!+<;*!8d@@@)=V=)a @!)19AIQ62"&42#"&42"&42"&4$"&4622"&462"&462"&4&2"&462"&4  `     (        _    2"""b""b""""""""""""""#%3#!"&53"&5463!2!264&"KAAKjj   5  @%#5.54>?@+&@&+!//7*#*; 11 ;*/W9- 07X2#!"&54635#75#75#XȠ000X00X00`h =!%5!%5!5!@` x00`00`0000'2"&43##5.'#53>753264&"B//B/!!`C*C`!!`C*C`|WW|W/B//B *C`!!`C*C`!!`W|WW|@'2+"&=46;5462264&"754&";R;t  f$4$();;)(  ($$(&2#"'&/3264&"#767653'7'7VzzVB54. 0``0 .47-``,zz&%; 0``0 ;%&*-``- $753'7'727#"&4632&#"%'-``,~D0 7@VzzVA6 0DE``*-``-0 &zz%0```,17'"&'&74>7654'&"./&54762'367'00  2  J  '  01   ]1VD0F$  %, -2**)6V 48T?}}?T>>T?}}?T#3#!"&53546;2#355#5##3350pppp808800(((088088p"'64'7'64'#'##/57373^""E44**V `0P ` 1"^"DC44*x*> h@pP@@ =!%5!%!!@++k**+!+13%''#5.53327'#"&='7''5462'65'<:::"_!.9P'H1 )o )8)\R"]:::!_RRX92C!(n M((.&!@ 6"&=46273#5.53268))8)4'P9.9P'HbH(((#:WRRW:2BB+#3#3#3+#5#"&=35#535#535#546;2888888 V  P%+%+%*MM*%+%+%327#"&5467pP("pIVzZECOqEZzVIp# %'5#'5%#5#5$ٶb7"#"'"'23"&'.'&54%"?6=.#"'726&##'"33'726&#+676325   ]0?n9+'   >- &?" 9]#"2#IU5 %,'* 0OAq!  :Jq H . %5#3'35#'735#7#35``@``@````@``@``@````@``@````@ 3#"&4632U3F22#U#22F3 !"&46325#"&463275#` ):(( ):(( '%8%z'%8%55@''@@l "&53'!57547'7'675462"R' $)?%-;L $)s!@^   I`%+#?=4676&2!57546754"&5",  ,"-;));-H"H9$r  r$9H  I/r**r/I  `"&537!5754675462"R^));--;d**r/I    I/%3'#"'.5347'6320>4GF4>&G6;=4I(=ez ze=-}|%#"&547563237'775   m*D1 %    8)8%53#!"&546;#3#5'7#U++W+*+UW '+/;=!353"&=462%5335!"&=462'5!353"&=462`P`P``P` `P `P `!.@2+"&=46354&+";26554&";2754&+";265R.@@..@@.!   z" *g   B//BB//Bf e  f e  5%''7hhJIEs`hhQ '159=E2#!"&=46;543#367#"=4"32%#326'535353+26=0"#3f-*:& 2Ƞ"02$ P ? 2 88@ @ ">'72&54675353'7'7+"&54676323&'&'632t/  0) A */!(8+#  1  .8+C8'"0))u7.!/8(#4$ '7@133#kjkk/EU#"'.7>32#"'&767632.'&76732#"'&+"#"'&547&'&7>73 &   & 9# fX   "&(!(&#!% -s=#   #= %! #0P &%"&4632#"&46322!54%2#54&'61$$$$$$$$FZd12]#2##2##2##2#,& 66 66$"&4622!5453##5#5353HP88P8x@@ @@ 8P88Ph5+00+ @@ @6"&4622!54P88P8x8P88Ph5+00+0P%#!"&=463!2!5!n Y 2+"&5463#n (%#!"&5463!2!'2+=4&+5463` B XB  ``@  74&546323#&'35#"zV -)@2NzVc Vz 2@)?cVz@2.54264&"^^P((7*#0!!0!\A4/.HDV!Ay!.!!. !+"&'%7!+ SS &57&5474'./6?%&62&&"'767>?_2-M. &9-2' *3M)88+ +BB,49IF=JfC" !CJ=FI. 2CI ''48JJ66/ %@27&"5'277! , , `` |ի3#3##5#535'#53'37p0IXXPXXJ0pPpp00``00#"'"&5&5474636;227'+MM+*Ia aI+ґ+6j6"//"65#H"//bc "9'&7632264&"264&"6264&"7#"&#&#"#"/47632WCTSXX  KUSM  Sba>@ fi    !|D676.'&'&'>'&''.7.76&'#&3'&'6h28>E  3".:8L r@-H  !9?+! @ @ @ =333353  #5"&5472654'.IzzI!<__<2>`VzzV`>!2KC__CM0 #"/&54?676&#"`  {  {  g!#"'7'#"/&54?676&#"&  :  | U% |  g 2#!5#54635#!5`&PP& &UU&`PP&%2#"'#"/+&'+53762763236# 8(6J:3 7"* ,((܈ Q!  +#546;#"%2#54+553+532!3#"&=300#CD 4#0 CP0#DD DC$0DDD#00#DD 0CC#11$CC  ` ?#5337#53 -M32R2 aaaa2"&4264&"zzzzaaazzzaaa2"&462"&4264&"V==V=zzzaaa(=V==Vzzzaaa!%32#!"&54264&"%5!353V4&&4&@-2n#H&4&&4VV//  +G7"&546?"&5467"&546?"&546?+"&54676323&'&'632k  S  S  S  $39'.?3( %: ! #8$A3L0 '  ' 6%';E/)>*!%#-@` #2+"&4623&54264&"264&"P88((88P9O4##4#4##4# 8P88P88(""(e#4##4##4##4` 5>327#7&#"wLV@PP1?9\oFW8LM)A5`p72673#"&46327#7&#"*C.]SS>S}>SS> 3'#57A@A@A@7'&47''67&67>t[V!0 M0 @YE0> 0K0P 3!'7!/U!!U78V""V0P 3!'7'7!/7U!!U8`V""V+2#!"&546;735&"3267##"&4632X !!\BB.';  *"22"!-` c!!B\B-$2D2-.R7'77 .$2"&4264&"327'#77#'?67jKKjK_B//B/  00`KK`0 KjKKj/B//Br 8jPPF16 17&'.'>?"#"&54'2%&'&'67>3:%&< >% 46,,>+"G77 G ""G77 G ":*>**> `%5"675Oi()ȓX49U$$2"&547'#"&46327&5462#"'&4$$4$&%&4&&h$4$$X&4&W &&4&W X '!5726M M%&% ``  '7;''7#7'"|"ڄ1"-)K11K"|"1"-K11K7%!3k@ !3@@A%'/'#5'75'7'7'77''7'7'75'7537?7'79:9>@*0*@=:99X??X99:=@*0*@>9:9X<*!%#-@ `2"&4264&"7'5zzzzaaa^mzzzaaam8A}"*26462"32"&5475'2654&'#"&462462"   VzzzS!}%__P;.  B [zzzVh>!}-9C__C=[,j  !  `#'+52##'##57"&=4>2654&"75#;5#2654&"8E3- !,,S,1! -67Knnnn? (%-! ,, !-$  WWW  2:3#53##5#535.547''7'#53#76327#264&"@#X 4'??*??'4 (#?% !-$Q?z4&&4&EX)=.(88(.=)(E#% Q&4&&4@ 75!+"&!5373  Pj+F 3@ %#7''7773mZ Z333nZ Y43@ 3'''77:3Z Zm@3Z Zn)3=3;!53275&'&'&53<=!&'.5#67#6XH*g EEC%*G 1  WM2'900!%.Q  q#> $$ =$0%"#&#"#"&=332=.#"#&#"#5467632#&j  (!+    gNL9;  w$"vPt:=P` 2.#"#56Lw4\9?1PP@ XE5A)ML8@%2+"&=46;54&"#462264&"$4$&;R;t  ($$);;)(  .R%7'#!"&=463!2```  . bbV   p37'#UkkUpp  '%4&'5'6'''567''#537'7'5V``D@Pp&E( '5#75#000`@00P``@ #'&4?3264&"@===FdFFd 0ss00ssKdFFdF` #"'&4?,443IJ344}666666562"&4'654&".5462&2'>54&".54""#)1D1)#IhIӬz9/&-aa-&/9""!9$0"00"0$9!3IIyU8^$L-DaaD-K$^8U 7'5!3!5337!kkK+ꫪ++((*%->73&/##&=#&=#7#&76"&4620  .+ *- +  h  `  `   #>J+"/&5476346732+"'&#"/"'"'&?&5462'54"#";2='Z'ZF# "0~0#  #*ggDR)PE)P$ #((# $2@IggI@>tf#2#!"&=463%!"43!2'!"=43!2fd- & 8   %2"&47676767>5632&'&"zzzz 25jzzzV' +E25jh7"/&?62:VP ?62/&462h7'&462"&47`P*7"&4?6"'4=%#"&'##"&5463235332654&#"3276#"&546323264&"1))%--$)'VEDXYK [mlWSj,7B$6,*4 /'>MZFHV  hXVj^G8 !6  `2:BJRZ72+"54;2+"32+"&54;254+"'5'&632"="=42&2"=&2"=2"=J86(n9()(\F<  $ PL#5.532"&'"&?6'&'&'.'&?6'#&'&'&?6/&'&'&?6'5&&'&'&?6'&#"&=232?6?6?63?6?676354&'4?6'5&'&'&?6'5&'&'&?6'&'&'&?6'&'&'&?6'#&#&'#>7?63?6?6?67Vz     Vz             gH       fH          vzV        zV         Hf          Hg           (2:BK7&'&'677&'&'&'67&&=7&'&'6767&'67&'#"'6!,+1`L OD5G"= 72-*+x$20/6M F:I;#":")1A S>4#1)*L `+! (:'0 1/=SE(8I,%%";\C ,L7MBNL,*;7462"2+&/&+"'.?576'&'#"&463((  b      b  \(( '  x x  ' .21"'.'&+"546!2+"'&"51546b+9+2+9)9-0,9+')(" (('+12+"'&4&'&+"&546;232546;?x! l    l j ) !    " : -53"&=!#2!546;54;23546;2354;2#54+" ` x hp@((  %46;2+"&546;2+"=4&+"5] P (#+3;CKS_2+"&54634&"265<&"24&"264&"264&"24&"264&"264&"2';2=4+"BB"`  P  ^^^^h0-5=2#!"&546;;2=3;2=54#!"3!26#54;2#54;2x(0 8  `Դ L0P)596462"72#!"&=46;54;23276;23>76&624""0""0  &U &g!/4&!/4u0!!0! ++.!%6.!&546462"2"&462#;2+"'&/&5&'&"43232X  8 ( )E /t/    +2+"/&+"&=463'"#"&=46;2z ?= 2:d  An##"/&?627628,z8-{#,5DMW_gpy"&46676&6.>'&6'&66'.2=4/&676&676&6'&6'&6'&656'.676&&zzzzPH,!"1[ BzzzzQ $ E=zz ?Q  . SZ&7/'&54?'&547676vD DE DD ED D DD DD DD .+54"#"&5467>326325376#"/&6 +6%%6$* -N9V0  FF  4"&8 8&4 ,AMTT/  EE   `(?"/&#"3!27654'&/&/&'&'2#!"&5467>326 ?%    J "#/9V +6%%6$* -D5   . M94"&88&4 ,A(.+56/&#"?#"&5467>3263253" +6%0  FF  0%6$* -N9V4"&8/  EE  /8&4 ,AMss  `%#!"&5467>32632 +6%%6$* -N9V4"&88&4 ,AM;72+"&54675463232724654'&'&'&+>72672326-, # 6&!1 "5$ *>- ./?-@,%$ &5( ' *.F !@+- `2;2#!"&54674&5462A +??+#2- L`;,AX@4$!4 5N!%2#/&/&/&"/&#""&#"/&=4'.#&/&?6'.'&/&?6'.'&/&?6'&54/"=43765476/&?67>76/&?67>76/&?67>365'4?6;2?6?6?6?676/.676&+"326'26'.#"3             88,- o83N  N38                waa*|*J a>` 0>a+3FOYbu%#"'#"&54767&54762&"326;6543.'67&547&'&'32767&'&+654'+767#"2654'&'J34#%23J%$%h%$&yR; 4#%2 d)  ;)! J < +);  "+4J##J4+"  5$%%$5  :* ## * "&  "*: +l  x +:*"  &"   $,4BQa%/&?66/&"=422"=64;2+&+"4;7'&7632#"2#"&54?67"'&54?632~ Z |* , I%  ` ` @2#1"&'&47>3654&"67654'&'&'&756'&7673VzzVQvvQ,jj,4 '' 3zzkOOk2DJjjJD2          1"&=432#';+"&546;;#!"&546;   M `M H@ Pt`-2"=;2+"&=422+"43$43!2"54#!@    @!'2+"&=46;'&32?6&=#542k0  FF  00/  EE  /SSS 0P/2#".'&7>>76&7327'.'&6;pl $;A".T1) >e="28(#18$ )"&P #/).. DA2"(82"(8&")?A%&=&=46546 xszzs%-52#!"&546354#!";2;276;2'!"43!2!"43!2x\W H W20  d@ p'3?GS_kw2#!"&546354+";2=4+";2=4+";2=4+";224+"354+";2=4+";2=4+";2=4+";2800000000 (00000000p 00X00X00X00d00X00X00X00@!6#"'&#"'&57632327267 %#4A   3!0<!o    b %#".54>654&/2lPi%3' ,3&&#B (<0K+@  >'%;&'9 , /) 1%#!"&'4?=4#"=4;2#"326/&=#v #% t =I=^%%N   Nf NN f Sao|%2#"'#"'&'"547&'#"'&767&'#"43267&'&763267&542676326#"'654''&'&7632&#"'&7327>7632&"67#"'&7664'6;&7632&#"#"'&'&'2QOO&038)4)830&OO"418) 4)814! q  7'  '   +  0, &4 7)34"OO"41)7 47)30&OO"43)70!  0!  V  $+&$, \  Q  %'&#!"=46;23!2543!2#!"&T `  @ I*J  -@Rd2"&4%&'"?2575&75'&+"32724#'#3?6532?5'4#'&3727674/&"zzzzO&&8:[X:C&(:9 .4. $4zzz) ?0) +**+: )/V3-,9-39` -%2+"&54&""'&'#"4;676326267632L7  7L$!  !&8( (8&'&54671326;0/A0Pd<0A/=""=B.E@$MHR@E.B44` 2#5&7654&#"#>4632"A## $#      5+"=4+"+"=4?6"/"&4?54;2762Ӝl\l  +<RX}}e#\*CX(;"/&#"32?6#"'&4763232764'&#"/&?632 Z}.--.}.- +* {8V{:\)$ 462"3#   ''    #+3=EO%2"&546"2"&4'2"&46$2"&4&2"&4&2"&4$2#"&54&2"&4&2#"&4K.,,V...k,,m..4.k,,m.k....,,,,,,....(X'/<62"&462"462"%2+"432+"435"4;2#_ | g5/&+"=4/&?6/&?6=4;2?6_cc c!b bb b!c  999ss9 999rr9!=2#!"&546;546;2'354+"24+=4"+";2=3Txp     @         &A"'&76''>325#"&7'6=422732+"4;5.=42  5x"&K& n $d$)70  |  &A&&E44>*EE"0 +6"&=4626232+"4;5.=4226=4&&4&7)$d$)70D0p&&&jE*>44>*EE"00"E`%276#"&54676763A9XOoJ; jJ^ DqP@e''Lj 6#"'.5476767651476 ]  @   K ! '  @46#.54767676=4#"&#.54767676=472>6 @   @  dg! '   ! '   2"&473zzzz`zzz`3B%/&#"&5476766/&76766/&?6327'7676' ,5%i (   OX\90<  !' M *2@) Od/lO% (08463%2#!"&546;25";24#";24#24+"3724+"3L BTT0p  "l ` 7#"54;23#"54;2H@@@@ 00p :HX+.7>;9#"'.76312#"&"#"&547>7>2'"&'&6732#"&'&67632y  !j AN(NB .fW  p+#+"Y..0&  &$.#+#+P.-.R;b%+467>76?&/"&'.563&54620#''#467676?'>&76;23&'>&76312+#&'&'&767>"<# P   )* ** P q !  ##  / ))  )) ;%#!"767>36764'5&/"'.746;&'&620#2 8 )1T1 ) 8  &#!11!   ,!2#!"&=463'"#"&5463!2`0!43&'&?65'4>72"'.'SuyVAj1W8|yTVyI;00$E>'2) #+"&54654&5476;2'#3&'#$  $  /V$<   =#T0P$ $a 46&5X 2"/&4?63676& uL {up*2/&4?63>76&7"/65s pH r   |ql = v )%#"'#"/+"'+"4;76327623>! 3 2  3% H;5 4-& / 4 Ŝ UA#"'&54?##"'&'&?##"'&54?##"'&'&?.54767676323d<"E 7#%#C 8#%  -"$21  ,8)%_K2 \K2 2"!2!"R.&2#!"&463123&54634&"2 264&"r.@@..@@..@ i!@.N.@..@@..@..@\@@\@@\ !-.@@..@..@..@s=47672=4=4##9:i017(%e:;SQ;'%2#"&54672=46&=4#32676q oKPpnN``B\_C@] JepONo. CC 2]BC^V> 0P!Ef2#!"&=46;54;23276;236&#"#"'&'32436/&#";327676'+&'&#"327632+7b  &U &7 "< !  ++  **I  +?A?676//&4xszzsx @*2"&547676766'7./>7&'67@"OO]$:/ 2B1 >5?\$#3(BM4C@3Q2  ^S4      %"/#"&462264&"| j*7@YYY!dFFdF k"Z~ZZ?6)FdFFd3;$&#"&"&'6'&#"&'64'673276'6727327264&"`   D     D  B//B/D   D   ~/B//B8H(F%"&4?#"/+"4;7'#"4;23'&462/&?6;'&462"&4?#"V$" T55rk55kr|K { (T "$ K&$ ! CCBB 1 3 " # /%.<EM2#"'&"#"/&5472=4"24+"376/&6'&76?6&24+"38 55 8$X    K  W   N$]T@88@T]U$$i    / n   _#82#"/#"'&?'&=4;7626&+"/&"6/&7 x. vv .y--daN V TT U #X 8X #H2#"/#"'&?'&=4;76276'&+"/&"+"?626/& x. vv .y--OacQNN V TT U \9YY9 X78X#2#"/#"'&?'&=4;762 x. vv .y-- V TT U  )9'&?6%'&?67"&546754;264'54"25`    H`pp`H 0    D lIPppPIl *cc*  #/<JXem62"&=42"&=4+"&46;2!2+"&4632"&4?67"&54?62'#"/&462"/&7632&2"&4 t / /M /   !   !  ! !  P88P8= / /\ / / g !   !  ;!    ! 8P88P ().'632327654&#">7&547#'RvL45yViIyVgHjTy vS45KvVyHhVyHg jK wT$*2+76+76+";#"&54675463273&V,>=4T6<VCw#2, K53A /E28,.@UJp34$!45E4*kn2"&454"#";2zzzzR`zzzh,"&547622654&'"=432%'&/&76v=4ccX@ Rvc  GvRV:2GEccEA`?PvG c #3+"&573'#5#37#2!4;76;2 &MFA$@@  -s%#"'&'&'&'"/&?63'810i:95%:QS;:@@!32+"/&=4?6#"&=46;2 VV& 7L7 Bu$Be @ c ~ H     SCopyright (c) 2018, Adam BradleyCopyright (c) 2018, Adam BradleyIoniconsIoniconsRegularRegularFontForge 2.0 : Ionicons : 14-6-2018FontForge 2.0 : Ionicons : 14-6-2018IoniconsIoniconsVersion 001.000 Version 001.000 IoniconsIonicons      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uniF100uniF101uniF102uniF103uniF104uniF105uniF106uniF107uniF108uniF109uniF10AuniF10BuniF10CuniF10DuniF10EuniF10FuniF110uniF111uniF112uniF113uniF114uniF115uniF116uniF117uniF118uniF119uniF11AuniF11BuniF11CuniF11DuniF11EuniF11FuniF120uniF121uniF122uniF123uniF124uniF125uniF126uniF127uniF128uniF129uniF12AuniF12BuniF12CuniF12DuniF12EuniF12FuniF130uniF131uniF132uniF133uniF134uniF135uniF136uniF137uniF138uniF139uniF13AuniF13BuniF13CuniF13DuniF13EuniF13FuniF140uniF141uniF142uniF143uniF144uniF145uniF146uniF147uniF148uniF149uniF14AuniF14BuniF14CuniF14DuniF14EuniF14FuniF150uniF151uniF152uniF153uniF154uniF155uniF156uniF157uniF158uniF159uniF15AuniF15BuniF15CuniF15DuniF15EuniF15FuniF160uniF161uniF162uniF163uniF164uniF165uniF166uniF167uniF168uniF169uniF16AuniF16BuniF16CuniF16DuniF16EuniF16FuniF170uniF171uniF172uniF173uniF174uniF175uniF176uniF177uniF178uniF179uniF17AuniF17BuniF17CuniF17DuniF17EuniF17FuniF180uniF181uniF182uniF183uniF184uniF185uniF186uniF187uniF188uniF189uniF18AuniF18BuniF18CuniF18DuniF18EuniF18FuniF190uniF191uniF192uniF193uniF194uniF195uniF196uniF197uniF198uniF199uniF19AuniF19BuniF19CuniF19DuniF19EuniF19FuniF1A0uniF1A1uniF1A2uniF1A3uniF1A4uniF1A5uniF1A6uniF1A7uniF1A8uniF1A9uniF1AAuniF1ABuniF1ACuniF1AEuniF1B0uniF1B1uniF1B2uniF1B4uniF1B6uniF1B8uniF1B9uniF1BBuniF1BDuniF1BFuniF1C1uniF1C3uniF1C6uniF1C8uniF1C9uniF1CBuniF1D1uniF1D3uniF1D5uniF1D7uniF1D9uniF1DBuniF1DDuniF1DFuniF1E1uniF1E2uniF1E3uniF1E5uniF1E7uniF1EBuniF1EDuniF1EFuniF1F1uniF1F3uniF1F5uniF1F6uniF1F7uniF1F9uniF1FAuniF1FBuniF1FCuniF1FDuniF1FEuniF1FFuniF201uniF202uniF203uniF205uniF207uniF209uniF20CuniF20FuniF211uniF213uniF215uniF217uniF218uniF21AuniF21CuniF21EuniF21FuniF221uniF222uniF223uniF225uniF227uniF228uniF229uniF22AuniF22BuniF22DuniF22EuniF22FuniF230uniF231uniF232uniF233uniF234uniF235uniF236uniF237uniF238uniF239uniF23AuniF23BuniF23CuniF23DuniF23EuniF23FuniF240uniF241uniF242uniF243uniF244uniF245uniF246uniF247uniF248uniF249uniF24AuniF24BuniF24CuniF24DuniF24EuniF250uniF252uniF254uniF256uniF258uniF259uniF25AuniF25BuniF25DuniF25FuniF261uniF263uniF264uniF266uniF268uniF269uniF26BuniF26DuniF26FuniF271uniF272uniF273uniF274uniF275uniF276uniF277uniF278uniF279uniF27AuniF27BuniF27CuniF27DuniF27EuniF27FuniF280uniF281uniF282uniF283uniF284uniF285uniF286uniF287uniF288uniF289uniF28AuniF28BuniF28CuniF28DuniF28EuniF28FuniF290uniF291uniF292uniF293uniF294uniF295uniF296uniF297uniF298uniF299uniF29AuniF29BuniF29CuniF29DuniF29EuniF29FuniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2AFuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2BFuniF2C0uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2CFuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2DFuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7uniF2E8uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EEuniF2EFuniF2F0uniF2F1uniF2F2uniF2F3uniF2F4uniF2F5uniF2F6uniF2F7uniF2FAuniF2FBuniF2FCuniF2FDuniF2FEuniF2FFuniF300uniF301uniF302uniF303uniF304uniF305uniF306uniF308uniF309uniF30AuniF30BuniF30CuniF30DuniF30EuniF30FuniF310uniF311uniF312uniF315uniF316uniF317uniF318uniF319uniF31AuniF31BuniF31CuniF31DuniF31EuniF31FuniF320uniF321uniF322uniF323uniF324uniF325uniF326uniF327uniF328uniF329uniF32AuniF32BuniF32CuniF32DuniF32EuniF32FuniF330uniF331uniF332uniF333uniF334uniF336uniF337uniF338uniF339uniF33AuniF33BuniF33CuniF33DuniF33EuniF33FuniF340uniF341uniF342uniF343uniF344uniF345uniF346uniF347uniF348uniF349uniF34AuniF34BuniF34CuniF34DuniF34EuniF34FuniF354uniF356uniF357uniF358uniF359uniF35AuniF35BuniF35CuniF35DuniF35EuniF35FuniF360uniF361uniF362uniF363uniF364uniF365uniF366uniF367uniF368uniF369uniF36AuniF36BuniF36CuniF36DuniF36EuniF36FuniF370uniF371uniF372uniF373uniF374uniF375uniF376uniF377uniF378uniF379uniF37AuniF37BuniF37CuniF37DuniF37EuniF37FuniF380uniF381uniF382uniF383uniF384uniF385uniF386uniF387uniF388uniF389uniF38AuniF38BuniF38CuniF38DuniF38EuniF38FuniF390uniF391uniF392uniF393uniF394uniF395uniF396uniF397uniF398uniF399uniF39AuniF39BuniF39CuniF39DuniF39EuniF39FuniF3A1uniF3A2uniF3A4uniF3A5uniF3A6uniF3A7uniF3A8uniF3A9uniF3AAuniF3C8uniF3CAuniF3CEuniF3CFuniF3D0uniF3D1uniF3D8uniF3DAuniF3DCuniF3DEuniF3E0uniF3E4uniF3E8uniF3EAuniF3EEuniF3F0uniF3F2uniF3F4uniF3F6uniF3F8uniF3FAuniF3FFuniF403uniF406uniF408uniF409uniF40BuniF40CuniF40EuniF410uniF412uniF414uniF416uniF41AuniF41CuniF41EuniF420uniF425uniF427uniF429uniF42BuniF42DuniF42FuniF431uniF433uniF435uniF437uniF43FuniF443uniF446uniF448uniF44AuniF44DuniF450uniF454uniF45CuniF45EuniF45FuniF461uniF468uniF46BuniF46CuniF46EuniF470uniF472uniF478uniF47AuniF47CuniF47EuniF482uniF484uniF486uniF488uniF48DuniF48FuniF493uniF495uniF497uniF499uniF49CuniF49FuniF4A1uniF4A3uniF4A5uniF4A7uniF4A9uniF4B0uniF4B1uniF4B2uniF4B3uniF4B5uniF4B7uniF4BBuniF4BDuniF4BFuniF4C1uniF4C5uniF4C7uniF4CD,*HH#)H#*PK}w\]b  fonts/ionicons.eotnu[ XLP*]/hIoniconsRegular Version 001.000 Ionicons PFFTMp<OS/2@`tX`cmap Jcvt Dgasp4glyf1lThead6hheaz$hmtx& locaF$xmaxpq8 name`postY2Xh/]*_< H#)H#*.@@.LfGLfPfEd.A \   @(@`@h`0@@ LU@ @@ P@@ @`` @@@@`@`@@@@@ @@@@VVV`L`LV  `@@*P@@` @@@@@0@@`@`@@l``@ @@@`@@`` @@`@@@`PP(@@ )a`@@D(FF #%+NPRTV[]_adfikmo4OT  %')+-/1357?CFHJMPT\_ahlnprxz|~ !%'-PRTVX]_acfhkmoq6TV  %')+-/1357?CFHJMPT\^ahknprxz|~|{xwvutsrnkihgfedcb_^]\XWVUTSRQPOHECBA?=:321+)('&!     D***^ HPvf Dx,v8 B ~ 2 l  B 4 0 X 2P RZJX*dP$n^0v&Xt>b  ~ !!4!d!!"^""##<#d##$$$$$%%|%&R&'(:(\(()*)P))*|*+N+,,,-R-t-.4..//6//0 0T00122223d3334.55^556.6l667,7^788T889099::v:;;<> >N>>?j?@"@b@@AnAAB$B|BBCCCCD D&DDDE(EZEFFTF~FFG8GZG|HHHINIIJvJK KBKtKLPLM*M\MNTN~NOODOxOPPQRQQQR R\RRSST>TU2UV\VWX8XY~YYZZBZ[[\\B\x\]F]]^^t^_r__`D````a2aPaab:bpbbbbccc6cBcZcfc~ccccdd:dNdee0erfFf~ffg$gDgh\hhi2iTijj.jfjjjk kdkkl l4lllmnooFoppBpppqq:qbqqqqrrrrssrstt:tdttuu,uXurvv:vdvvww|wwx xވ JzȈ6PȊ:Ȋ0Bx 8d,(JԏLjґ4ZҒ 2hД"Jbn” bt4.'5&+"543!2+"3';26'.=4>76&+"N !#"" @ !#""    )  .BB.  .BB." $  7  7 &2"&474"25264&"zzzz"  zzz sQ   `Ai!!%4'&'&"27676/3#"'&'&'&5476767632#54&#"325/3#"'&'&'&5476767632#54&#"325@/ /1##1P.%   ". .%   "- `& 11 &,11+%  &#  %  &#  ir{.'76'&#"'76'4"5&"'76/&"'76'4"5&"'&272?272?272?72?6/"'7#2&7436j_jq       F0% 0% pj_j_     GIGI2+"&=463264&"264&" (88((88(((((8((88((8(((( ")AJQX73/&6'46#"'2/632&547+64?6;2+"/&5%#"&7&576&ʳ'@7R/*Y0*~nM(,2G22G2%m&9MN;M:7$mw/M;22F22K/*'AM@N( "3DGKt%53!537#"'&"'&'#.54632227'27654&'&'&"'&'&#"'53'#54'&+"'&7'&'&5463"2;2#4'&+"&7>'432HR0z5?]#!4?]#!\7- 1)  2)   6-"B(     6& 0000i>]  i>]  -70PG-61Q ""000[    % $9"/&4?62?6"/&4?6%"/&4?6?6s $ = $ d# $ #5 $ ll6CCD -CCXCC1 1U7'7'77&'&676>'&'7>.'.'.32?32?327>/73276/@@@%C|||&%C|||-      @       @  >>>>W||&%C|||&%C  >       >  ! ! 3H2"&47&+"327654/&+?6'&'&#";254+'3276/zzzz | 6%   5-!)1  zzz  6 >    ZR%. @@W%+"'&'&'&'&##"&'&'.54;227676'&'&'&5676322767676;25  >2  B     ' J  (1  &6B" ",( 1- , +5 '!"=463!22#!"&54326'&+"3h`  d  H    %#"5'53+75'32cgchQaQ;`h>76/462"&"26V QQ ^ _dzzzhhhh QO ^ _hzzzhhhh !11!517'1'3'75#UUUUUUUU{UU{{UUUUGUHH#"/&?&2"&464&" QO ^ _hzzzhhhh: QQ ^ _dzzzhhhh2"&46/&7zzzz$zzzZS6#"'&?'&462"264&" _ ^ PRzzzZhhh,_ ^ QQ zzzhhhr+32#!"&=46354&#!"3!26'2#!"=432+"43x x  " &r  6&?6/"&462264&"r_ ^ QQzzzhhh_ ^ OQzzzZhhh[ %32+/.54?_ < <  RR% ==  SS0P6#"&/&765427 SS == RR = <[ %6'&?#"4;' RR = < SS ==0P6/"='&?>32 == SS < = RR=2+"'&=47632#"&=43226=4'&#";26=4 "* , !"$$" ", !-%%$# 0 d(9L#"/#"=4;76321#"'&76514'&6#"'&76514'&61#"'&76514'&6 A55AA :: A?. ((3. 4P5p[A 8SS8 A0 (::( ) **  ""  `22+"./&4767>3'76&'&?6[()  H+  44  55  4-  55 `(*L  - 55  44  5.  44 P0(#"/#"=4;76321"'&76514'&76 A55AO  . 4P4' )*  #"   !%)E%5353#53%'3753353'3"353753#5372#54+"#'&6;5463!2dC1- hBhh-0hhh HH 0JLLJ788JLL^XXXX888JLLLL DD ``P0%172#!"&=46354&#!"3!2672#'2#!"=437#73|`  L 0  P --0  {!$!s h h t=+=P0%2#!"&=46354&#!"3!2672#|`  L 0  0  {!$!P0%12#!"&=46354&#!"3!2672#'2#!"=43|`  L 0  P 0  {!$!s h h  37'#%5'5>4&'UkkU 5@UU@/;;/pp@0 1ll-RfR%2+"&54&'4>3!!=47#!"}%&    '&  "$G<62"7'&?654'&zzzQQ _ ^jzzzOQ _ ^ -5R\#"&546=4&=463276327632;2'&+"2#!"432++"'&76=4;254&+3260     "  4   ` 3  `   `  '/R7"27654'.2"&4$"&462"2654.2"&472+".'"=4.'&54?632]&6AL88L7.#(6&&AL77L8K9 1    H  6&8L77L(4&&8L77L}  4 ZB   E <'27#"=&'&?'&65432'"?6'?6/& t U lm V t X ?B??s x J [\  I y Lw5A52"&4'76&3276zzzzOQ _ ^ zzzQQ _ ^048Z%#&'#"'"47>?27"&/+&'#'&54?624"24"7/"5'&+"#&?6;76;232($$A<$%+j 7 007 ;Xh  "9#     Un,,,ua VV a/<62"732?6/&zzzzO ^ _ jzzzQ ^ _ !"./:G\ju7"&54657632"'&/&762'72/#&7631&54;26&76?.7>'2#"'6?6767'&7>'6 %S- <? 9: <+ -"3- (+G<! &   #aK  O >+3  ="1 "!/"35< )L (  "&462'7654/&7&zzzQ ^ _ zzzzO ^ _ 46;2/&5uup\\ #7#"'&76'32''76#"&77&  5h?3*V5h>3*V   Y ɶHqY ɶHq0P)@%+./6764/67632#"&5463272#"&'67=4/&/7>   N M! P BK"3    "PW98XAAX89W;    A p 37'#%5UkkU pp@0 1.72#"'&76546%'&54&'"'&?6312?632v): L I .d-3$5  ;+@ !!'8  4$/+C:S72#"'&6323276767+"&7>54676=463122'&'&54'&'.3&'    .! !/ % - %%  3  / @D  D@ / 8998  By#"'&'62&'&?67&'"#'&'&6;76367&'&'&'&'&7>2'&'"&#2'&76'&'5>76?&762W%56% /B'8, $        T  $ +9'B     A%%?V#.4  +.  !   m /+  3."    ! (2"&42674"&'&63?64/&"zzzz2J>*,@@-II5KKzzzD1 )9?,-A*/ 5%KjK*26#"'&#""&47676'&767323276'& * $ /"-/  =! $  71 -/  x4%2+'"+"?4#'"+"?6/&;23725'&;237x (( Aa  2y&%z2  aA .DE- (;CK+"=4?6&#"+"=4/&"+"5&'.'&5462"4;2#'"4;2#(    YvY$8L&*  ^ * 3__3 *_ *&:SS,p!G$2"&=4#!""&=4623!254%"=463!2+"=4+"+"=4+"#     d(bb   ^^    @ -7CMYa7:3+"'466+"5:>2+"&546;676&72=4+"3676&754+";2'24+"3 7&7  Wb -bbe  OtN  _tR. '08AI2+"&46354+54+"#";;2=322654#"264&#"6264&#"2654"Q.AA..AA.9#$##p  >   6 &.>^@@^>y##$#  5  &S  6 p &/%2#!"543++"&'&'&'4763!2>54'&'B!$," < /  & ,   0'+!.9O & J-DYg1#"'&547654'&5476321#"'&4764'&5462'#"'&5147632#"'&5147622"=&54h88//3## //884## 5(""5IJ5->?,1!00! L,~,5JI5 .L !00! $  $(%'&'9&'&76?6762u AI42+$   -,  *S %)41L@ (  -, %%'&647&'&631326;1   Be76;2"!4&#264&"4+";264&"+"537+"p022*:x:'$ppJU0`V),L L"\9 8 F#+2#43&53+"&5426=4&"462"    t(& L$  $ 7   ` #!5463!25!#!"&7";24+";24#@@ @00>#-5=E463!2#!"&57676&7676&7676&24+"3724+"3724+"3ZY     m1  i  i  hh p'/7?GO%2#!"432#!"432#!"&=46324+"3724+"3264&"24+"3724+"3462"\\/$$$B//B/$$$,,\0D/B//B;X,,(X5A462"27#!"&=462?632?6276/&?'"/63!@((lK  K!$K  K/7Q0 ((nP PP P0B"R H%#/&#"#"&547>32#267#"/"""'&764'&54?32769 Gd `>Hfs 0H!8 4dG:dE 9LbE/+N 8 <%-A.   Ed/2#!"&54634#!"3!2'#"/&?62762`D888,z@88-{"2#!"&54636/&"'&"27` z,8@{-8##"/&?62762&"264$2"&4;8,zjjjzzz8-{cjjjzzz2"&46/&"'&"27zzzz:z,8zzz{-8&.C&?"&#"/&54&5&767667>2264&"6676726 >2 P   Q 8$2*""o + ,2$9 Q P 2> #  C  ` $.f4;2+"52+"=4;4767632676&72#!"546;2+"+";254+"=&+"5&'&63<-     L ?        1 8X % )"$%/&?&'&6766"264$2"&4  55  4.  55  43jjjzzz  44  5/  44  5jjjzzz2"&46/76&'&?zzzz  44  55 44 5zzz  55  44  55  4/72#!"&54634&#!"3!262+"&=463'"4;2#D####(<   d###H#|H  412"&46462"3"&4632'&#"2654/76?N88N8$$GzzzV1.!(Fddd  8N88NI$$++Vzzz dddF# #,5%#&'.6?>766'66'&264&#"264&#"#5476724363676;272##"#?>37437&547&+##6'"'&7##3;#"&#"'"'&=_?4Z  _@9`  [        >'&'&#"2754#"32632326 @  F0F  A $"/."(   ''   (|(   ($  } "]-0>  ) 0 4 y I  W  `)%#!"&5467>326326/&"'&"27 +6%%6$* -N9VEz,84"&88&4 ,AM'{-8M3)C"/&4?'&4?62"/&4?62"/&463254276323 rr```rr>>''1mm \\ s\ mm a 99 #jj#M3)19A%"/&4?'&4?62"/&4?62462"&462"6462"~r```rr  M  s  m \\ q\ mm e      M3)"/&4?'&4?62"/&4?62 rr``~``rr1mm \\ \\ mm  %##5#53533&"264&2"&4;V*VV*V'bbbzzzVV*VVbbbzzz*#""/.?'&4627'&#""&5476 rU2(/02  -(-J o~T1(01116%''5755754620PP0p0rr0(hq  qh!)19A%+"'&47632$264&"264&"6264&"264&"6264&"n  ??C[M3## RT((:d  4778<-W  (( @`2#!"&546354+";2$   `    7&?6&2"&476&#7b1>zzzQQ1bzzzQ ` #7'#'737hXXNX3NXXNX3`]]6C{'#&7632'&?&'&#""/&?6376&76767632"'&'7#"'&#"#"&4767>767>7636'&767326'&li#2 $ !?"!078:/A$*  w  F9 ."5 3  / $ #@" ! 6B=3:!   $ A6  8053 @@6"&46272#5!#335,,)###**H(33x2"&4654&#"6767654'&'&'.5&7&'&7>'726765&'./".#&47>3675'&7>7632zzzz_ lJG65"#0   -    zzz (Lh45K0,    '  1  X    %8K7'&762542+"43"=4276232#"'&?#"4;2"=6"=4;2+"/xt  upu  tM  tMpupMt  uu tMppMt u upMtpu tM 2"&464&#zzzzjjJzzzjj1 A6+"=47%/&?632?6#!"&=46;;2t   "##&j   ##"&"264&2"&4''7'77bbbzzz8KKKKKKKfbbbzzzKKKKKKK7''.547'632632\ -4.;H9%%90Bs\ )0,D5- M@M,,B )/&4?6&=4?6%46/&5d> ^^ Qb]]_%'5#5'7'53H@l@ Xk0(h+48H^g7#"'&4763276767>765?22654&"624"&'&547634#2#"'&'&'&'?62654&"      r  =| 0C i/&&  $  ":     Z t [A<*:*" !  c ` ?!#53#7?0@+**---zz@vvJ@...!%1%+"54376?32#!"&5463!24"72=4#!"3@\r p   x v    '"264&2"&4535#4>54&"#462bbbzzz**")1D1>fbbbzzz**?"11"72"&4264&"&2"&4264&"L44L4J  .zzz^CC^C4L44LN  zzzC^CC^"264&2"&4#535#53bbbzzz****fbbbzzz})*0 "&=432#';+"&546;  L `% H? P`B ,7'7632#"/&?632%#"/&?632762CBL @$?2EE.OAFA4 462"27#!"&5463!'P&4&&44e&4&&4&  Cu+u,8HU[+"/&7632%2+"'&?632+"&=4632#!"=43%2#!"&=46354&#!"3!22#4     hh0FFF % %04  2"&47'zzzz}}zzz^^@ 2"&54ndnWWZ[dd[Z"264&2"&4#53bbbzzz;fbbbzzzk* `!'46;2+"&=3?>54/&+3#"4`/  EE  /SSS 8k0  FF  0%8K"/"=4;2#72"="'&?#"43232+"=4272+"4;'&76250u  upu  uNm  uNpupNu  udu uNppNu u upNupu uN 9A7276/&/&&5'47/#"&//4?4>?&264&"   C C 0  !k  3    3  p - - p1,P2& )1P,4 .6=D'&667#".'&767%'676&"'632&7'.7'327''6;8d  +(*.T1) 668668(+))pl O "~ @ | d ,).. :6(8R;6(8 ,  P" +/:"'&?'&7627&547676762#"'"/264&#"  -%  %2( H4 $>02%  %-{)TtTT:; -% %20>$ 4H (2% %-W);:TTtT -Dj#"'&54654'&'&762%"'&767632#"'&#"#"'&547632%+&76'.#"#'#&56'&'&7632+&'&7654'&'&#"#"&767632'+"&56'&76322+&?43'#"&5.#"+&76'&7632+"'&56'&'&7632    5DG< 4>:/I 3-)  D-?L   -/J9: " -     ~               '" $  &1 +!"0 /+N; 39$:DW  V;4:R6$*2 ,)'C02+"  !(*0   "!$p> ;j/!   #$N EN bV  Q_&8;:: -A: '32#!"&5463254#!"374;2+"54;2+"5U&"jkb"72&?#"&?64l4  t2+#5#"&=4635!fent((!546;2;2!32#!"'&'&3 `  I)I  O `'/7?GO62"#"'.+"#"'.7>76322632264&"264&"264&"6264&"264&"T&&^)!;; +' :6: '    8    8  &BY 4 4 YBFF  FU""  8  L  8  463!2/&=4/ v  7_   k L08@H2"&547675&'&5462676767.54&264&"4&"26264&":) %4#):)):)1- "";""""`)'$ %)))) &4"""""":F%2+"'&'#"4;676264&"M$&l&$MM$&l&$Y>>X>>3!$$!33!$$!3x>X>>X>+3_g7#"'&?#"'&=&'&5462;'&462&264&""&5476754'&+"/&54?63232264&";9 (Z3 ):) Y) ""m):) Y) ;9 (Z3 ""x; : (-*))(( ""))'( ; : (-*"",4<D%2#"&'"'&'"&547675&'&54623>4&"2264&"264&":))& D-):)):)-+D '""""" ""):)  ?))))1D  ""4""""1;CM2"&54675'&=&'&546275&'&543264&#"4&"2264&#":* u*:* u*:)jj  i*'9<,**',<9**'+77+ """"2""DLT\%"&5476754'&+"/"&547675&'&546327632324&"2264&"264&"I):) M) 8 ):))%7 (N3 """"" ""j))'( 8 )))7 (-*"",""""3#"3!2#!"&546#32 @ `@4       $*05:@GNTY^dk2+"&463&'#5&'#6?67'3&'7&'6&'6''6367&67&'&'7567&'67&'767#VzzVUzzU!u>>==m! *2." D!MF # *4-" B!Mzzzz6+ "*>&&>>&&8   5JI6D  #(*7*"m8) "*v   6JH5D  "+6*"2#!"&=46376!"467d#### ####_  _7"=4;2#'463!2#!"&5%24+"=4"+"=4"+";2+";22=4;22=4;24+"=43d@J8d8888d88dd8888d8888dU 3#"&546!2+ V j N7/&76?67"/&?6'4"'&#"/&76'&'&#"#"7676322762  8? ' _%' 8"     (1!  8L ' Q%' 7"    ! %17;#!"&5463!2#"4;2+"57>76&4*M  k,&  @82+"&/.'&547654622=4622=4622=4" +#: % +      K )4 #'" &     m$,5>2#!"=46;&54632632'"3264&#";44;#"&5%2+hT%!!%+""p"x8##L@@#2"&4"264&"2642676&+"zzzz"B4  zzz(!373#!"&'5463! X}" 9 q` `pA2"54'&""54+"#"=4&"#"&+"&=46;2=4632;L48 .. >X> .. N89&'D8  L. .,>>,. .&8N('7&\$ %753%!!#5#75#35335#35!5#353353rr9q9999rrrVVrrrVVVV$,2"&4%7."67'7&'6264&"67'6zzzz Y>>Y  Y>D8((8(Y )zzzVY )>>) YY )>Z(8((8c* Y&/"264$2"&472#5&7654&#"#>4632"jjjzzz## $#  tjjjzzz    '2"&42654#"7654&#"3632354zzzz  >##$ #zzz  U  (07>2#!"&=46;&546327632&"264&"26435'75#'z.%" #%1    }2",k,"2:'%+    JE==E   &1?K[kx74&53/&?6'6&5/4366&5'/#&75767/&?676/&476&?6#"&/7&?632'76#"'&"'&#"&54766/&7>276m = g%  'C**)*)'&&< %E +'H N   =T>  * ?-%2    i,    )66(4&'&54671326;654'&+"#"'&'&+"60/A0Pd<0A/=""=**#  "2*/[[B.E@$MHR@E.B44::$   2#::?II %5A7"&?62#7&?62+"'7&7>7672#!"&546354#!"3!2A_`>5  G]J: X  w`+&'&54671326;654'&+"760/A0Pd<0A/=""=**#  TB.E@$MHR@E.B44::$ ")E 9HX7#'"?6#/&?67"&76327'%.?&'&67%6?>'4#"%4#/"325F\l.-  9    )  r4{FN1#  _   )  C 5, 462"3#"264$2"&4   &&]jjjzzz   jjjzzz 2"&45#6264&"zzzz&   zzz  -2'.54632667654&#"'&#"7.0B;.44.;B09%%_(0"++"0(_ B15D,00,D51B,,X"2*#0  0#*2"X 2'.54632667654&#".0B;.44.;B09%%%i(0"*B15D,00,D51B,,a&2*#0!@ +7CO[gs"&46;2#2+"=4+"+"&5&546354+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";254+";2=4+";2=4+";2=4+";22     X X  NPPp     (( , HHHHHHHHH  !%1593!35#75#75#75#5#75#75#75#5#3#3#7#5#5`Հ**************++++{++++**U++U++V****U++U++V**+*++***U++''7'?'767>7y$4 !05<Rf)")fR<50! 4$m  *62+"&=43#!"&546;2;2=4;254+";2   <HHB@PP``3;%2"&547'&6'&'&#.'46'&#"&546'&'&'.'&76326264&")2EFbF      "  #GfII3    " 0P#*%3#!"'&535463!2&"2"3!2=4#25#300 ^ \ hP    #!"&5463264&"75#+U{4&&4&U*&4&&4UU#%'&'&'&'&7665&'& *6Y#I $fc+- ( lVaE   CV'#l5 $Hc@@ %1?%#"=4;25462"&72+"=43"&=4622+"&=463@   R     F    R X p *p X %'''7''7'7'7777--JJ,-JJ-,JJ-,JJ AI%4'565"2"=4#"#.'4;254+"5>722=43+"3264&"[@kK Kk22kKKk2  :)):) Kk22kK Kk22kK  8):)):@'/2+"&=46;546654&325754&"9P7R  6(8(0(98(/}  E0((0p#:2#!"&5423!2654&#!""54637#"4;'&762#"'&p   W@A  TR p  @@ TR p#:62+"&546;2"54&+";2657#"'&?!"43!'&762   KTR @A  L  TR @@  $%/&'&"/&54632?'9:)R<;)h:*9);0ZKTtTTtlKZ0>$ 4H ([ tTTtT 91"&462"&5##"'&=476;2#"'&=#"&'5#r& ,  z   U& {i  zz  i )746/&54?6&56&547'46/&5FEi>> Ed>>x32 $%v2<%%  &45=QY32#'&=4'4;2##'"574;2"5%463!2#!"5462"7"&5472654'2"&4~h4j82~h`d8!.!!.v!KjK!3(2D2(C.!!.!Dv<|~<&C.!!.!&/5KK50&/"22"/!.!!.|'&'"547>32%#"'.#"#"&'&7>76.'&5467939313131;267632654'&#"326*"3 ),h  !   2 , Z    )/ ( $.-$ "(  d6.  ,+ \P0!"43!2!"43!2!"43!2p``` ` `  Yn7";2+";2#!"'&54;24+"4;24+"4;24+"5>762=422=422=4+";2#&;2""&=4#& I I MM I I I I M(  (M I /.#9 $ ) 9 9 ) $ 8$"))62"&4&2"&4$2"&4    J         P`"&462"&4626"&462P      H    `  :%&?#76/&65#/&?635&?6/3'&6O  77 O O  77  O O  77  O O 77   O  77 O O  77  O O  77  O O 77  C!;"&53#"'&76;2+"&7>547+676=462.`   (    !. t|   / /   D@ /C("&537+"&7>54676=462.`l  .!!. K  / @D  D@ //72"&4327'&7674;54'&''&#"/32&462"zzzzx)/0)2!d5335d!!.!!.zzzV'J5 WX 5J'0.!!.!&6?#!"&=463!26"=&'7#"4;  : 9C a  b C9 :p/76232+"'#"4376232+"'#"4376232+"'#"43 6 KK 6 K 6  6 K 6 KK 6 H      r+72+"'.467632=4+"32=4&"372=4+"37,54--45,(oor^l]]l^oow)  (QQ%6/&&576?6'"'&/&/&47R c& 5Dp H-N  [m )6Rd2"=+"4;7'&7632"7"'#&?622#"'&?%2+"&5467=6767632263.54632# I       A&77&,'5 (>!+% 7x 3  1    8L9.- >3&(, =BX%+"767>367654/&'4'&'.7476'&5&62272+#"=#"4;5432A8 8 ) 1T1)=    > -  !11!  -X  P0 $(463!2#!"&572=4"4#"32'!!642}  -U   @ qV ,2+"&5463";24#254&#"7254+"3   @ o} f 1I 2.54264&"TxTH$$2&|((N8./0ICQ8q(('4E#"'&'4#'&7676326'&'&+"7676'&#"27676'&'"232:kh=u  % R  (   z ,_0   @@9N%#"'&'&7632'&'&676326'&'&?6#"'&57547272?N;9 <    &4"%"* #3#$0$`  Q+10     !#4'!     #$1  ` "54;2+"532+42+"=43``pw`88 ."&5476322654'&54632"&=4632>  0>> 66 -/ '/- %'    {   R   ; CC CYXC ;; /?B/ %86/A@/ %n% +  *+,+   '  %2+"436"264$2"&4*jjjzzz jjjzzz2"&424+"3zzzz*zzzf  72+"&543  ` =!%5!%5!```887J!D"&54?#""=46;'&5476362+#/&54?62326=$ . u.  "$ "$ . x . " #`p2"=32+"=42#"43RLnLpnLnL  '52"=&546#3"=&546?3257325&2"=&54 M  &  9>bk!  ! @hhhhO1!  !1Z&!?62!276=42#!#"/&54< ). (:; ( 00 .( : Z& %#"'&4?!"&=423!'&462z9( .)  : (. 00(  -A7.'&6'7>76&276"/&+"&?676+""/574365LN74MN;&/!'/ + 'PL,LP' "-L47NM47M(!/&!0E^A//AJa )2"&47676&6326'."7676&zzzz  '&I  0:0   zzz  !!h   1746/&5&=4?66#"=4&/&47@ K^LS^L^1 lv 6"/&?6&/&47t A  ch 8 `%&=4#&7672=432} U( AkB@(2+"&=46;32=#5&?>32'k 0  FF   TTT/  EE  -=&=4&+"=4&/&7676322632&2654&"".">>D' " 'D.   @-==-@DD%   @`76/+"54;2OGG\8 @`4;2+"=&546GG\.%#"/"1"'47'"'&'"&="'&547675#"'&76'#"'&?'&763227'##"'&767'&7632>'5&7325&'&547625462>?627&563237632#"'".'>3632y   `     !`   !   ``    !   `"     `   !   ``    f   $8c & &c8$    88     $8d & &c8"    88    @`%!"&5463!2$       ` #/3"54;2+"=4;2#3"=4;2#4;2+"5h000(00p8@'3M2+"&=463";24#264&"264&"754+";2"/#"'&?63'&76&&&&(pD    2    &&&&``  0  #]'$&?#"4;'&6/&546?632+n / /  EE EE  / / 00  FF FF  00#/76462"72+"&463264&"6462""&46;2#6"2646""(88((88(4&&4&""(88((88(4&&4&?""8P88P8&4&&4""68P88P8&4&&41d%"/&76326'&'&'&"#"'&'&767676327632"'&'&'&7#"'&?62"/276767632 *+   H  (%(O;H ; %$R$&"   *+   <"L   ** "%)  6Bc S"1$(  ++ T<  `63!2#!"&5244"'!!   p  `R  `(4IS\753++"'&=#"&=#"562"&=4$2"&=47#67'4?63272254&#"3264&#"@   1 4{  g  LLZ4  44  4 `  `  `  ` e ' @ H    ?''3 373***..8((zYYP``82"&45&"3267##"&462zzzz@!!\BB.&:  +"22D-zzzHb!!B\B-#2D2-@'2+"&#"+"'.76323267+&76) $ ## " 0- , !&'@< 852p0Z 8m76"&54?676?36;2;#'&'&'+32?63#"#"&#&'1&'&76;676?654&"#.?6 BV>E  "  D,@{>E  %   D,:@ @kA>+-D   D,@%>+-D    D,??B59=ER$#5##5#732>=4'&'&+5353353'3535#76764'&654'&'&'2762#( )W  W) (    H    &! @@@@0 0@@@@  cJJZvB   R'?&4?62"'"/&4767627676"/&4767627676{y#{y RR R QQ  <;u RR ;:P0#6;#"&46;#"5372+53264&+5+)XX.BB.XX,.BB.XX))X8)+B\B+[,,B\B+)8)+ .C6462"7#"'157654'3&'27&'&54767'5676323&'##"'8''8bL  f N>.C gr&4%&6]   18''8'iOz&   .A_0(,) 0*)  +.6PZ]7&'76''&'77&='./67>7662"&454'.'&7>76'6547>7'7>''"] D]((''skS QQ RO&]=5):>36?  Q 8  6 P6 8  >37!'%7#3#31/##yp650bm3m--D132@(N `'3#'32654/3'35+532@f?#*%(@$((/5fvʝ-%kccS,Y,8@2"&4%6&'"67&327&6767&'"&27&'&'767&pppp:<86 6-@A8z(&T FBBF>J?GBBDD@%73#327#"=#535#535432&#"3#|u!.%8 37222273 8%-"0 " A u000 u A 0$2+537#546;5&#"#3#"&5463k k29 # '"-..  8$4)$)8 V J<2+"'&5463>'6&+"7676;274676&+"&=4;271 Hs / F @  R ` 9mR  |Rm  T -   !6'.7675'#"&/3326?''>./"'67676=&'.'&476?.7>7>7654&/66'&667>54&        . '    -1 (.$ ! 6  M;   (   %  ,         "  * A ;- &#?2#"54654'>54'6'#"&"&+#"'&'"327+.54VC .9 "6" 8.     DU_Kx +/<$  $*+CK0-.0F<00",+0[9)99) F+.2/BE.0)0*+ @)99)99 !!?#'#3@-&(/B(xTTxH!'7#3/#?#'# 560cbm--2@'N3'/7#";26=4&'2+"&=463"&462"264&2"&4 00 00 .BB..BB.f4&&4&hP88P8`0 00 0 B..BB..Bp&4&&4F8P88Pp +#"'7326=72&#"#"'73254&'&546y1$ #$UDA7$&+4]EhՃ>&@ F.<?& "D,:02#!"&54635#62654&"54&#"5#3547632a  V7#77  A   d%&a %^ `"2#!"&54635#'#35737#5##8**88**F*8*`DD`66````<g"/&76762?6=4/&6=4;2#"/&=4?67"&54;23254&'.4632+"5&#"#5 '() -'/$#$'"K,)#( *%  \^^    _ _  ^{" 23  Nk72#"'&547632#"&54767##'"'&'&'&'&'&547&767632676?654'&'&#"&#"&#";2    ~"  $@  " ,D() B* *2 )%VT     t&:. *;%'/ '=$  %>B2#"'6?32654&#"74676'&54632#"&7>54&#".54]"'6CP>JV. =1,2( VC4MW5C ,?/&2E " ! hnD] Ac%#"'=4&+"'3276?#'.'&767676?%567676'&'&#"567632   P/?    )+- o> \)  a--"      f   * %/;0 1  &/QZ7#"&'&=46;5#5467632+3"7254#"+3'&=476;263>=32"3254"&`"!h '`.3.1!h!  +' (79" y ` (5!!6! "&#  >FOjs%462"&'462"&%#"&547&546326737632#"&5'632&"26467&#"6=&'&'.'&#"327654&#"#"'73267BtRSt7JV EJ7?  Q2 6LM6 26MLt u /0 )     3 9QP9  &b&M&  "1  %%   1"% n   62"&452#44#4&#!.!!.!iP`PPp!.!!.iP`ៀu%'&76'&'&'&7&''&7>76'&''&7&'&7&'&767.'&7>&'&6337676'&>76726>7>7667676616'767676&766'76'6  "&  !        <4< P^&%IK  D 7hT0      <%t+ hQMw      $ *  . (1%# , 5+,   32) -% `8 m%#"'#"&547&54632632654&'&'&'&/&'&5463232654'&'&'&#"#"'&'&'.#"3276u >,Lk>, LkY     !     '#,= jK ,=iK?          nv%"###"'"&#&#""'.'&#""##"'&'5"'".#&'&=767654'&'.'&7>32&'&76267632$"2646&"'&26264&"   %D%    '$    %''%   $&  X 2 B  X    "  ;+--+:   "@  5K5(2CV"&462&2##"&/#"&46326323747"264&"327'.7>&"#'&'3264&,:()C  +F&f     !))0N*O>(   p  #727#"'&'&'&=#567676733#!"0 >`` 4A : +p@e& @#!"&5463!"224"7!2   p   i `2#"'"&767.54zzzV 3=bb  P0F(7"&5476=4622654&'&=4#"*8P8*(G0"2(88(2#I6'41'&76763232#"#"'&76765&"'&76'&5476/4'&54 @"1@ #  1   >"   E     +# #7      I%1#"'&'&#"=43276767>76767>7632727676o @"1@ #  1   ?#   ;     +# #7      %4<HP"/#"'&?63'&762.=46;4;2264&"754+";2462"    2    %H$$ "'`T((~  0  h%  %((@@mV^"=762#"/"'&?'#"&547'"'&?'#"=4;2+7632627#"54;24&"2 I5     0HC^5  % ]<% )Z)K< ]JNpNNp 1"514&"654&3257P9(8(R  /(89(((0}  EP0#"/#"=4;7632 A55A. 4P4 (6@"'&67#"/#"=43'6514'&6'6514'&6#'76F 3( A5p5 *:B?( /C0   | )E| 4P8Q>5DS8 BZ/&:( 1BR ):C75#"'&547.>#"/4/&=#"&=4?6;27/5I. F *\   D%9* FW[/43  .h^L: A xDn  F5 62#!"&?#3264&" $ $  pzB  1GHd#"'&'&'&547632327676=4'&'&'&7632&=6;327632#"'2#"'&=476763232+"'543>'&'"&76;2'&#&'&6 ,@' 7'.#5% " '  & ? D56' "\        %-)'% )%   </0B,-%$%,5R3       @#"'&'&=6767626=4&@^BW/ ?+050);=.ZU;TA SX<$*7'>`$/ '&'&"/&7&7632'&"'2/&7`^!/2l2-"N=RQ=,v,OF55`X  ^77''55*9;2+"4;2=4'.'&=476;25&'4+";'99'  x `V'-ss-'V o#..#.6"&=##"'&=#7##"'&?>73#"/##"&462 ,, b --#$$0 xx  xZ h i Zx x&&2"&45#5##335zzzz;V*VV*zzzk*VV*VV @` %##5#53533@*** '7'7'5&2"&42654&"baaUe;qqq|XX|XC!R! S!So2=UpppW>=XXz#"&5463!2#!2+"#"&546k       2"&45#75#zzzz000zzz((X)W 1567&%5$2"'=5##5##5#35335335++++<<< 0 0 0 0 5&&55&&b%M F%%F Mb @327#!"&=73272654'&"5463!2'654&"&#"'54[ := :& &(j)( W < '99 ! _ &P  "%)/2"&464&"#6#7''6323&54'3'7#"0pppp8fH!81N*7Z~*7V>Z~ @` #5353#53'5335373+535353P(PPPP(P(PPxP(PPPPPPPPPxPPPPPPPxPPxPP !6'3462&"347'zh=V=H@.(_`+==+N. UT#!"&54?63!27#5##'!'!  !  Q\Q =\ ! ' ..Vk%!'7Vwx*xxVk7'7xxkxw 2"&47#zzzz`zzz`! "&4625zzz`zzz`@@'@ "&4627'&zzz``zzz ``@@@ "&462'zzz ``zzz``57Vk=!'7'7wx*xx`f%2+"/&4?62A  S   SO    OLp7&4625462762"'  OO    S  S  `f7"&4?#"&46;'&462  S  S  #  OO   Lp%"/"&="&4?62C  OO    S  S  Vk7#'7'*xxwxV7223#"'&7676&2"&46&#"32767'#"'&7>32#"'&57#3&'&#"32673276  QzzzP@;<%$"!=  /6-/.    'B  zzzP 88  883::::- ++      ++      "<=       <=       $%32#!"/&546;76323'2654&"Jb 3  3 bY Nz="   Y %,373&'653#&'6#57#676&'3&'#67&'30>3;V1:3^0;11=3:S1n n1 n21n (@lV>(T@'(?)6H$!"G6$G76G"%2+"&546;537#53   %ZCY-Y-s  W --{2+"&546;53#   %Zs  W --32+"&546;53   %Zs  W --%-+"&54&'4>3!32265#33+"5 && /^   &&4 p@ ,B2++"&="&=&5462632632632=##"'#"'"&#'2767676327676323276546;2654&#"#&'&#"#"'.5&'&#""'&#"354&+326!@&&&4&0#( 0     7        P  4'`D! &&7&&41 ! 6@        ?e` *2:"&4622"&4264&"/#5'&4?63232"&4264&"9L77L8C6&&6'+' = H  ";L88L7B6''6&=8L77Lg&6''6-- pV&  E < %8L77Lg&6''6 #5'7'7537'aag ~~ g** ``g }} gVT**T"';7'&76?546;7332#"'#"'#753#"'"'+26?243 &@`@& 3/''./&&0++9$2(Z(2$5'\#  b55b  ++**T))T$ 2"&4##5###5!  +*+  x+  ,-9H\g7"&54657632"/&762'7/1&761#&54?66"&4767"&5472654&'264'(^5 ED ?> A. 539?Z?,* &*&aY  ] #B/7 Abh;-??-E4 &6 "r6'&=465#5'z&&&p    2'463@@X $2+654'#+"&546;5#7U&p8$*" *  `!37#"&=46;2'#"&54632%2#"&'6=4'>(  ( ojjjj (  ( GGG0G3#!"&53546;25#0ppp(p0((((2#!"&54635!P  62#"'2654'762Y:*8':$A)&6.?/#3#3#"&'#53&=#53547#5367'76272002CCNCC2002D'"4&4"' 000!''!000'"44"'%/&'.77'6/#LZ=X$U2/S%X>XM#  753+"&2+"&=&54P X xT> | = tN8G(+ +(G8`'/7;=4>2+"&=#+"&=.264&"264&"75!58P85     B@`##  '  '  ijj15!2++"&=!35#p(/!!/% ((00P@!//!p@@ @#'+/32+"&54635#75#75#5#75#75#5#75#75#800000000000000@00X00X0000X00X0000`00%#57332#!"&546;5335!0`@00Hа``  %2#"&546;276k K  /0]/'u K ԗ )$ /]0/  #6462"72#!"&546;73264&"%4%%4X \BB\B4%%4% B\BB\Sv?%2#"&'&#"#"&'.546'&767676&67&7>7>76'&546326'.'&*37&7647636&'7./505656&'.76&'&'563233654&#"&6'.7&'&767>76'76'&'&=>'7676656654'.546/+"'"7>j  ('%"    !"B&    w             .  0   V    4    #!'#E ! -,  @     T !*.             #     !&  !##5#5!373'53#53 pP@@`pP@` 00p@@0@@P*#"'327.'327.=3&547&5462676}PDC52  !-+ Mz8R !R i,*%5# 5_)8#@EP_%#5"'&'.'35'.'&'&54767676753#&'&''5654'&'&'67676;  @E  @ E        ##2 x  !! j O\   k  `!)-+"&=!+"&=76;2264&"264&"'!'#S-   -* Kv vYUp2#!"&54635!%5!ffp̄,,$,62"&43!2+;#"&54?'#2"&4i""PD4 K J*5""F""_*  ( 3"" `!!7&47##2%5"&5#3465!@ @&P&@ Pt` &t&&P0P&&t& 2+5#"&=432+'#732=XZ9 9Z' YY? YY'73+46;2'#"&=463U : 7LP : @577'53#!"&546;#iB` +B`*+2#!"&54637''UjL*M77'3"&4632&#"26{@]*zzzV(& Eaaa@] Vzzz aaa 2"&47''zzzzLzzzM.R?'7z z lz%2#!"&546;>2*264##5#UW#,#5  ((p:  @HH!(.59=DKRV"&4676'&246'&76&776&35'6'&24"24"6'&6'&6'&&24"&zzzz   , P_ 8 h  P  zzzzrV u ^ v/{9    U 2"&4'7''7zzzz8KKKKKKKKzzzKKKKKKKK+*U ''7'77*wwwwwwww7wwwwwwww2"&4264&+4&#"#"3zzzz. 1"-&%zzz,#0#&2% `%#!"&5467>327'''6;)2F>-G+6Ro,9();F2.D%,Eƍo-4'&'&'&'&'&'767676767654&'&67>  2#" ,    R     (9"N.3*-E ! &'7O G&i  &+  6  @2#"'7&546'&'.'&'&'&'&?676'4.'&+"7>[73z( I       $ 'u5<[     `%#!"&5467>32#7#5#'6;)2F>-G+6RDddD@9();F2.D%,EgddL `&%#!"&5467>32264&+54&#"#"3'6;)2F>-G+6R##@.&: !//!9();F2.D%,E#2# .@-#/B/ `%#!"&5467>323'33'6;)2F>-G+6RhDddD@9();F2.D%,EoddL `%#!"&5467>32'6;)2F>-G+6R9();F2.D%,E,43+"&54676323&'&'632'5467&#"'327&[ */!(8," 1  .8+C SA  " $!  x/ !/9(#5#"'7$Di!% k +*V3+"&54676323&'&'632[ $36'.B3( %: ! #8$A3L $6%'7B.)>*!%#-@@@37'7'77'7*-``--bbb ~-``,Dbbbb@@ 7'77'7'537#553bbb((P(^bbbbl((((((((@@ 7'77'7bbb^bbbb;CLRZ`i%#''#5&''7&''7&'#5367'767'76753773*2647&='767527'"'77&'654'#  8@8  ##  8@8  # /F9 WD & b/ 9S/ 8  ##  8@8  ##  8e& 0m 2 2&& 2 '0  7'7'"&5467h6fg49".!r gg=!!.'#57'77627'zC)e)C*HC)e)C*%-52+"#"&46264&"6264&"264&"264&"Oq?,&  Ppp2S}SdG,>  ppCh '75353753''7'77'53$%%%4E!0/o///:A#%?DDDDu%%a000000[%%62"&4&2"&47CUUքU B%//.?'&'.77'67/&?'&'7&/5276) r` +iD N5LJ5 :7#  9-)2$"7) qp+i IK5K 5D :98" %9/ "  2"&46"265427."zzzz2%$4$-UNUzzz<%%%C$$ "57!>72&2"&4267#&'67327'&'632#"'673267!- -!>JV??V?Q2( " C 2 9+??+ ( h ;##; >X>>X}j( L;1>X>  =3#=3#553#3#5333MM3M3MM3̀3M33 2"&464&#zzzz^^Bzzz^^P(7++"&546;546335#"5#";275+=+";2ЀxS# 0` H -S 8 ` 57#'76PPz(P(3PP*(P(3%5#532!##5#"&=#535300J&JJ&&!&PP&J)<2#"&=47376'"/&546?63#"/5&=4632   - \\2baQ\ (049#'#"&546327'#"&54632264&"264&"624"73'C54%&44&55&44&%4l&&&&C-"5&44&%4554%&44&&&&&-2+#57#"&54635!**j0 02"&4264&"62"&4zzzzN77N7V  zzz7N77N<  @ +"&54633'ppPp-S '73'7'7|z\ z4{[<{@ %'353!!@[@-#75!72#!"5435!73#7'3'53P@`9 F 90@@ `@@ ` 2"&54yny__Z[dd[Z ?#53'72#!"&=3!!#546378kk+*+s8*8kk+UU*UU %53#5#53#%#533#53M3MM33MM33M33MM33-3"'632'654&'7/#"&'67'327'#"&54?32,'*Kz0;<j< .+Kz3 B <*  #8#/,TD8(;*;7; TD>' A*; #/#)W 2"&'6264&"62"&4zzzT<32'.'.#"'"'&'&7632'&'&#"7"'.5&7676#"'1&#"1#"547343632 =M8"" .#9A0 (. $  s   @67#"'&#"+=763232,  8D 7"2>m 5 @%%#"'&'&'&=>76'676'67) -J  E!.  :'.E%3 #*S"/(0E~+((335#@@@%#!"&'4?5#53#3'#u #% d ^%%`00`p0)1%#"'"&57#"&547&54632'462632264&"U+,,>,,++,,>,,>,,>,.+ ++ +..+ ++ +._+>++> `2#!"&=46;54#!3!2+ j 00  `32#!"&=463+`0#02"&437'367'?&''753273637'#zzzzO,:9,'000=.+= ZzzzD&*"C`$(&Cu6'!/4(64/680P 753!!5!`@P 000 0y22@*2:B"&5475&546267676=&5462&"264264&"6264&"@ 7":&4& &4& . &4&  8     $ @# &&$$&&$ $&&N      @@%#"&'#53>2264&"d EXD ee DXE B//B.@*66*@*66*p/B//B 8@755#"'&=&54623"264"&54754&+'732264&"``7 &4& :  8 &4& ``80  B>``@$B$&&$- F  $&&$-@``>#B  $,4<%2#"'"'&'"&5475&546236$264&"4&"26264&"@&&$?. &4& &4&$3.  8   &4& u$&&$$&& =      $,4<"&5475'5&546275&5462$"264264&"264&" &4& &4& `` &4&  H    `$]@5$&&$5@]$&&$5005$&&    (   4<D%"&54754'&+'732264&"2"&5475&54264&"264&"` &4& ``70  4& &4& 0    G$&&$- A``=$B  &$$&&$$~  (  p1##"&=&#"#"&/#5;  *).31/**  01)'33''30(}2"&4>4'&'.7676'.'&'&'.74'767'&'&4'.'.'263&'/>76636.'&#66zzzz  *4+#    ,     ) $!   6zzz      0DJ4++#/ &           #'+/32#!"&54635#75#75#5#75#75#5#75#75#ZMMMMMMLLLLLMMMMM4MMtLLsMMMMtLLsMMMMtLLsMM(%'&"/&?67&7676763/ $;% &$6+ 2/   $;%  & $7%#"&'5'45'&>65'&>235462?>?6`-7)@ : "  *g"0%  X     *%2"&4264&"6"&462"&462"&'3zzzzaaaNH9 zzzaaaZ'!!2+5354&"3#"&=4pp&@UW|WU@&sR'+@YY@+'R3'.546326324.;B09%%90B;.40,D51B,,B15D,0'/2"&4>7'>7"2646&'77.'zzzz . ( n. ( K4&&4&H.  (.  (zzz .   .  ,&4&&4@. (  . (   2"&45#74654&"3462zzzz**>1D1)"zzz**?7"11"3#53'#4>54&"#462BB@&4&@KjK$A!*%&5KJ5,( 3#5#7##5#b>>b`@"7!#!"&547&54632>?632 ,  /(8? , &8(%#!"&5463!2!'*J*`J+*``)5='%.?&/&67%6>3'#5&#"77#4#%"776"&462    (  U   zE&.4  .   6  f  ǃQ"` !*"/#"'&47632264&"'76327'&"27'7 )0<?X n,$,n X?<0) 7's X(73##5##"&4632264&"+Eg 6!+<;*!8d@@@)=V=)a @!)19AIQ62"&42#"&42"&42"&4$"&4622"&462"&462"&4&2"&462"&4  `     (        _    2"""b""b""""""""""""""#%3#!"&53"&5463!2!264&"KAAKjj   5  @%#5.54>?@+&@&+!//7*#*; 11 ;*/W9- 07X2#!"&54635#75#75#XȠ000X00X00`h =!%5!%5!5!@` x00`00`0000'2"&43##5.'#53>753264&"B//B/!!`C*C`!!`C*C`|WW|W/B//B *C`!!`C*C`!!`W|WW|@'2+"&=46;5462264&"754&";R;t  f$4$();;)(  ($$(&2#"'&/3264&"#767653'7'7VzzVB54. 0``0 .47-``,zz&%; 0``0 ;%&*-``- $753'7'727#"&4632&#"%'-``,~D0 7@VzzVA6 0DE``*-``-0 &zz%0```,17'"&'&74>7654'&"./&54762'367'00  2  J  '  01   ]1VD0F$  %, -2**)6V 48T?}}?T>>T?}}?T#3#!"&53546;2#355#5##3350pppp808800(((088088p"'64'7'64'#'##/57373^""E44**V `0P ` 1"^"DC44*x*> h@pP@@ =!%5!%!!@++k**+!+13%''#5.53327'#"&='7''5462'65'<:::"_!.9P'H1 )o )8)\R"]:::!_RRX92C!(n M((.&!@ 6"&=46273#5.53268))8)4'P9.9P'HbH(((#:WRRW:2BB+#3#3#3+#5#"&=35#535#535#546;2888888 V  P%+%+%*MM*%+%+%327#"&5467pP("pIVzZECOqEZzVIp# %'5#'5%#5#5$ٶb7"#"'"'23"&'.'&54%"?6=.#"'726&##'"33'726&#+676325   ]0?n9+'   >- &?" 9]#"2#IU5 %,'* 0OAq!  :Jq H . %5#3'35#'735#7#35``@``@````@``@``@````@``@````@ 3#"&4632U3F22#U#22F3 !"&46325#"&463275#` ):(( ):(( '%8%z'%8%55@''@@l "&53'!57547'7'675462"R' $)?%-;L $)s!@^   I`%+#?=4676&2!57546754"&5",  ,"-;));-H"H9$r  r$9H  I/r**r/I  `"&537!5754675462"R^));--;d**r/I    I/%3'#"'.5347'6320>4GF4>&G6;=4I(=ez ze=-}|%#"&547563237'775   m*D1 %    8)8%53#!"&546;#3#5'7#U++W+*+UW '+/;=!353"&=462%5335!"&=462'5!353"&=462`P`P``P` `P `P `!.@2+"&=46354&+";26554&";2754&+";265R.@@..@@.!   z" *g   B//BB//Bf e  f e  5%''7hhJIEs`hhQ '159=E2#!"&=46;543#367#"=4"32%#326'535353+26=0"#3f-*:& 2Ƞ"02$ P ? 2 88@ @ ">'72&54675353'7'7+"&54676323&'&'632t/  0) A */!(8+#  1  .8+C8'"0))u7.!/8(#4$ '7@133#kjkk/EU#"'.7>32#"'&767632.'&76732#"'&+"#"'&547&'&7>73 &   & 9# fX   "&(!(&#!% -s=#   #= %! #0P &%"&4632#"&46322!54%2#54&'61$$$$$$$$FZd12]#2##2##2##2#,& 66 66$"&4622!5453##5#5353HP88P8x@@ @@ 8P88Ph5+00+ @@ @6"&4622!54P88P8x8P88Ph5+00+0P%#!"&=463!2!5!n Y 2+"&5463#n (%#!"&5463!2!'2+=4&+5463` B XB  ``@  74&546323#&'35#"zV -)@2NzVc Vz 2@)?cVz@2.54264&"^^P((7*#0!!0!\A4/.HDV!Ay!.!!. !+"&'%7!+ SS &57&5474'./6?%&62&&"'767>?_2-M. &9-2' *3M)88+ +BB,49IF=JfC" !CJ=FI. 2CI ''48JJ66/ %@27&"5'277! , , `` |ի3#3##5#535'#53'37p0IXXPXXJ0pPpp00``00#"'"&5&5474636;227'+MM+*Ia aI+ґ+6j6"//"65#H"//bc "9'&7632264&"264&"6264&"7#"&#&#"#"/47632WCTSXX  KUSM  Sba>@ fi    !|D676.'&'&'>'&''.7.76&'#&3'&'6h28>E  3".:8L r@-H  !9?+! @ @ @ =333353  #5"&5472654'.IzzI!<__<2>`VzzV`>!2KC__CM0 #"/&54?676&#"`  {  {  g!#"'7'#"/&54?676&#"&  :  | U% |  g 2#!5#54635#!5`&PP& &UU&`PP&%2#"'#"/+&'+53762763236# 8(6J:3 7"* ,((܈ Q!  +#546;#"%2#54+553+532!3#"&=300#CD 4#0 CP0#DD DC$0DDD#00#DD 0CC#11$CC  ` ?#5337#53 -M32R2 aaaa2"&4264&"zzzzaaazzzaaa2"&462"&4264&"V==V=zzzaaa(=V==Vzzzaaa!%32#!"&54264&"%5!353V4&&4&@-2n#H&4&&4VV//  +G7"&546?"&5467"&546?"&546?+"&54676323&'&'632k  S  S  S  $39'.?3( %: ! #8$A3L0 '  ' 6%';E/)>*!%#-@` #2+"&4623&54264&"264&"P88((88P9O4##4#4##4# 8P88P88(""(e#4##4##4##4` 5>327#7&#"wLV@PP1?9\oFW8LM)A5`p72673#"&46327#7&#"*C.]SS>S}>SS> 3'#57A@A@A@7'&47''67&67>t[V!0 M0 @YE0> 0K0P 3!'7!/U!!U78V""V0P 3!'7'7!/7U!!U8`V""V+2#!"&546;735&"3267##"&4632X !!\BB.';  *"22"!-` c!!B\B-$2D2-.R7'77 .$2"&4264&"327'#77#'?67jKKjK_B//B/  00`KK`0 KjKKj/B//Br 8jPPF16 17&'.'>?"#"&54'2%&'&'67>3:%&< >% 46,,>+"G77 G ""G77 G ":*>**> `%5"675Oi()ȓX49U$$2"&547'#"&46327&5462#"'&4$$4$&%&4&&h$4$$X&4&W &&4&W X '!5726M M%&% ``  '7;''7#7'"|"ڄ1"-)K11K"|"1"-K11K7%!3k@ !3@@A%'/'#5'75'7'7'77''7'7'75'7537?7'79:9>@*0*@=:99X??X99:=@*0*@>9:9X<*!%#-@ `2"&4264&"7'5zzzzaaa^mzzzaaam8A}"*26462"32"&5475'2654&'#"&462462"   VzzzS!}%__P;.  B [zzzVh>!}-9C__C=[,j  !  `#'+52##'##57"&=4>2654&"75#;5#2654&"8E3- !,,S,1! -67Knnnn? (%-! ,, !-$  WWW  2:3#53##5#535.547''7'#53#76327#264&"@#X 4'??*??'4 (#?% !-$Q?z4&&4&EX)=.(88(.=)(E#% Q&4&&4@ 75!+"&!5373  Pj+F 3@ %#7''7773mZ Z333nZ Y43@ 3'''77:3Z Zm@3Z Zn)3=3;!53275&'&'&53<=!&'.5#67#6XH*g EEC%*G 1  WM2'900!%.Q  q#> $$ =$0%"#&#"#"&=332=.#"#&#"#5467632#&j  (!+    gNL9;  w$"vPt:=P` 2.#"#56Lw4\9?1PP@ XE5A)ML8@%2+"&=46;54&"#462264&"$4$&;R;t  ($$);;)(  .R%7'#!"&=463!2```  . bbV   p37'#UkkUpp  '%4&'5'6'''567''#537'7'5V``D@Pp&E( '5#75#000`@00P``@ #'&4?3264&"@===FdFFd 0ss00ssKdFFdF` #"'&4?,443IJ344}666666562"&4'654&".5462&2'>54&".54""#)1D1)#IhIӬz9/&-aa-&/9""!9$0"00"0$9!3IIyU8^$L-DaaD-K$^8U 7'5!3!5337!kkK+ꫪ++((*%->73&/##&=#&=#7#&76"&4620  .+ *- +  h  `  `   #>J+"/&5476346732+"'&#"/"'"'&?&5462'54"#";2='Z'ZF# "0~0#  #*ggDR)PE)P$ #((# $2@IggI@>tf#2#!"&=463%!"43!2'!"=43!2fd- & 8   %2"&47676767>5632&'&"zzzz 25jzzzV' +E25jh7"/&?62:VP ?62/&462h7'&462"&47`P*7"&4?6"'4=%#"&'##"&5463235332654&#"3276#"&546323264&"1))%--$)'VEDXYK [mlWSj,7B$6,*4 /'>MZFHV  hXVj^G8 !6  `2:BJRZ72+"54;2+"32+"&54;254+"'5'&632"="=42&2"=&2"=2"=J86(n9()(\F<  $ PL#5.532"&'"&?6'&'&'.'&?6'#&'&'&?6/&'&'&?6'5&&'&'&?6'&#"&=232?6?6?63?6?676354&'4?6'5&'&'&?6'5&'&'&?6'&'&'&?6'&'&'&?6'#&#&'#>7?63?6?6?67Vz     Vz             gH       fH          vzV        zV         Hf          Hg           (2:BK7&'&'677&'&'&'67&&=7&'&'6767&'67&'#"'6!,+1`L OD5G"= 72-*+x$20/6M F:I;#":")1A S>4#1)*L `+! (:'0 1/=SE(8I,%%";\C ,L7MBNL,*;7462"2+&/&+"'.?576'&'#"&463((  b      b  \(( '  x x  ' .21"'.'&+"546!2+"'&"51546b+9+2+9)9-0,9+')(" (('+12+"'&4&'&+"&546;232546;?x! l    l j ) !    " : -53"&=!#2!546;54;23546;2354;2#54+" ` x hp@((  %46;2+"&546;2+"=4&+"5] P (#+3;CKS_2+"&54634&"265<&"24&"264&"264&"24&"264&"264&"2';2=4+"BB"`  P  ^^^^h0-5=2#!"&546;;2=3;2=54#!"3!26#54;2#54;2x(0 8  `Դ L0P)596462"72#!"&=46;54;23276;23>76&624""0""0  &U &g!/4&!/4u0!!0! ++.!%6.!&546462"2"&462#;2+"'&/&5&'&"43232X  8 ( )E /t/    +2+"/&+"&=463'"#"&=46;2z ?= 2:d  An##"/&?627628,z8-{#,5DMW_gpy"&46676&6.>'&6'&66'.2=4/&676&676&6'&6'&6'&656'.676&&zzzzPH,!"1[ BzzzzQ $ E=zz ?Q  . SZ&7/'&54?'&547676vD DE DD ED D DD DD DD .+54"#"&5467>326325376#"/&6 +6%%6$* -N9V0  FF  4"&8 8&4 ,AMTT/  EE   `(?"/&#"3!27654'&/&/&'&'2#!"&5467>326 ?%    J "#/9V +6%%6$* -D5   . M94"&88&4 ,A(.+56/&#"?#"&5467>3263253" +6%0  FF  0%6$* -N9V4"&8/  EE  /8&4 ,AMss  `%#!"&5467>32632 +6%%6$* -N9V4"&88&4 ,AM;72+"&54675463232724654'&'&'&+>72672326-, # 6&!1 "5$ *>- ./?-@,%$ &5( ' *.F !@+- `2;2#!"&54674&5462A +??+#2- L`;,AX@4$!4 5N!%2#/&/&/&"/&#""&#"/&=4'.#&/&?6'.'&/&?6'.'&/&?6'&54/"=43765476/&?67>76/&?67>76/&?67>365'4?6;2?6?6?6?676/.676&+"326'26'.#"3             88,- o83N  N38                waa*|*J a>` 0>a+3FOYbu%#"'#"&54767&54762&"326;6543.'67&547&'&'32767&'&+654'+767#"2654'&'J34#%23J%$%h%$&yR; 4#%2 d)  ;)! J < +);  "+4J##J4+"  5$%%$5  :* ## * "&  "*: +l  x +:*"  &"   $,4BQa%/&?66/&"=422"=64;2+&+"4;7'&7632#"2#"&54?67"'&54?632~ Z |* , I%  ` ` @2#1"&'&47>3654&"67654'&'&'&756'&7673VzzVQvvQ,jj,4 '' 3zzkOOk2DJjjJD2          1"&=432#';+"&546;;#!"&546;   M `M H@ Pt`-2"=;2+"&=422+"43$43!2"54#!@    @!'2+"&=46;'&32?6&=#542k0  FF  00/  EE  /SSS 0P/2#".'&7>>76&7327'.'&6;pl $;A".T1) >e="28(#18$ )"&P #/).. DA2"(82"(8&")?A%&=&=46546 xszzs%-52#!"&546354#!";2;276;2'!"43!2!"43!2x\W H W20  d@ p'3?GS_kw2#!"&546354+";2=4+";2=4+";2=4+";224+"354+";2=4+";2=4+";2=4+";2800000000 (00000000p 00X00X00X00d00X00X00X00@!6#"'&#"'&57632327267 %#4A   3!0<!o    b %#".54>654&/2lPi%3' ,3&&#B (<0K+@  >'%;&'9 , /) 1%#!"&'4?=4#"=4;2#"326/&=#v #% t =I=^%%N   Nf NN f Sao|%2#"'#"'&'"547&'#"'&767&'#"43267&'&763267&542676326#"'654''&'&7632&#"'&7327>7632&"67#"'&7664'6;&7632&#"#"'&'&'2QOO&038)4)830&OO"418) 4)814! q  7'  '   +  0, &4 7)34"OO"41)7 47)30&OO"43)70!  0!  V  $+&$, \  Q  %'&#!"=46;23!2543!2#!"&T `  @ I*J  -@Rd2"&4%&'"?2575&75'&+"32724#'#3?6532?5'4#'&3727674/&"zzzzO&&8:[X:C&(:9 .4. $4zzz) ?0) +**+: )/V3-,9-39` -%2+"&54&""'&'#"4;676326267632L7  7L$!  !&8( (8&'&54671326;0/A0Pd<0A/=""=B.E@$MHR@E.B44` 2#5&7654&#"#>4632"A## $#      5+"=4+"+"=4?6"/"&4?54;2762Ӝl\l  +<RX}}e#\*CX(;"/&#"32?6#"'&4763232764'&#"/&?632 Z}.--.}.- +* {8V{:\)$ 462"3#   ''    #+3=EO%2"&546"2"&4'2"&46$2"&4&2"&4&2"&4$2#"&54&2"&4&2#"&4K.,,V...k,,m..4.k,,m.k....,,,,,,....(X'/<62"&462"462"%2+"432+"435"4;2#_ | g5/&+"=4/&?6/&?6=4;2?6_cc c!b bb b!c  999ss9 999rr9!=2#!"&546;546;2'354+"24+=4"+";2=3Txp     @         &A"'&76''>325#"&7'6=422732+"4;5.=42  5x"&K& n $d$)70  |  &A&&E44>*EE"0 +6"&=4626232+"4;5.=4226=4&&4&7)$d$)70D0p&&&jE*>44>*EE"00"E`%276#"&54676763A9XOoJ; jJ^ DqP@e''Lj 6#"'.5476767651476 ]  @   K ! '  @46#.54767676=4#"&#.54767676=472>6 @   @  dg! '   ! '   2"&473zzzz`zzz`3B%/&#"&5476766/&76766/&?6327'7676' ,5%i (   OX\90<  !' M *2@) Od/lO% (08463%2#!"&546;25";24#";24#24+"3724+"3L BTT0p  "l ` 7#"54;23#"54;2H@@@@ 00p :HX+.7>;9#"'.76312#"&"#"&547>7>2'"&'&6732#"&'&67632y  !j AN(NB .fW  p+#+"Y..0&  &$.#+#+P.-.R;b%+467>76?&/"&'.563&54620#''#467676?'>&76;23&'>&76312+#&'&'&767>"<# P   )* ** P q !  ##  / ))  )) ;%#!"767>36764'5&/"'.746;&'&620#2 8 )1T1 ) 8  &#!11!   ,!2#!"&=463'"#"&5463!2`0!43&'&?65'4>72"'.'SuyVAj1W8|yTVyI;00$E>'2) #+"&54654&5476;2'#3&'#$  $  /V$<   =#T0P$ $a 46&5X 2"/&4?63676& uL {up*2/&4?63>76&7"/65s pH r   |ql = v )%#"'#"/+"'+"4;76327623>! 3 2  3% H;5 4-& / 4 Ŝ UA#"'&54?##"'&'&?##"'&54?##"'&'&?.54767676323d<"E 7#%#C 8#%  -"$21  ,8)%_K2 \K2 2"!2!"R.&2#!"&463123&54634&"2 264&"r.@@..@@..@ i!@.N.@..@@..@..@\@@\@@\ !-.@@..@..@..@s=47672=4=4##9:i017(%e:;SQ;'%2#"&54672=46&=4#32676q oKPpnN``B\_C@] JepONo. CC 2]BC^V> 0P!Ef2#!"&=46;54;23276;236&#"#"'&'32436/&#";327676'+&'&#"327632+7b  &U &7 "< !  ++  **I  +?A?676//&4xszzsx @*2"&547676766'7./>7&'67@"OO]$:/ 2B1 >5?\$#3(BM4C@3Q2  ^S4      %"/#"&462264&"| j*7@YYY!dFFdF k"Z~ZZ?6)FdFFd3;$&#"&"&'6'&#"&'64'673276'6727327264&"`   D     D  B//B/D   D   ~/B//B8H(F%"&4?#"/+"4;7'#"4;23'&462/&?6;'&462"&4?#"V$" T55rk55kr|K { (T "$ K&$ ! CCBB 1 3 " # /%.<EM2#"'&"#"/&5472=4"24+"376/&6'&76?6&24+"38 55 8$X    K  W   N$]T@88@T]U$$i    / n   _#82#"/#"'&?'&=4;7626&+"/&"6/&7 x. vv .y--daN V TT U #X 8X #H2#"/#"'&?'&=4;76276'&+"/&"+"?626/& x. vv .y--OacQNN V TT U \9YY9 X78X#2#"/#"'&?'&=4;762 x. vv .y-- V TT U  )9'&?6%'&?67"&546754;264'54"25`    H`pp`H 0    D lIPppPIl *cc*  #/<JXem62"&=42"&=4+"&46;2!2+"&4632"&4?67"&54?62'#"/&462"/&7632&2"&4 t / /M /   !   !  ! !  P88P8= / /\ / / g !   !  ;!    ! 8P88P ().'632327654&#">7&547#'RvL45yViIyVgHjTy vS45KvVyHhVyHg jK wT$*2+76+76+";#"&54675463273&V,>=4T6<VCw#2, K53A /E28,.@UJp34$!45E4*kn2"&454"#";2zzzzR`zzzh,"&547622654&'"=432%'&/&76v=4ccX@ Rvc  GvRV:2GEccEA`?PvG c #3+"&573'#5#37#2!4;76;2 &MFA$@@  -s%#"'&'&'&'"/&?63'810i:95%:QS;:@@!32+"/&=4?6#"&=46;2 VV& 7L7 Bu$Be @ c ~ H     SCopyright (c) 2018, Adam BradleyCopyright (c) 2018, Adam BradleyIoniconsIoniconsRegularRegularFontForge 2.0 : Ionicons : 14-6-2018FontForge 2.0 : Ionicons : 14-6-2018IoniconsIoniconsVersion 001.000 Version 001.000 IoniconsIonicons      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uniF100uniF101uniF102uniF103uniF104uniF105uniF106uniF107uniF108uniF109uniF10AuniF10BuniF10CuniF10DuniF10EuniF10FuniF110uniF111uniF112uniF113uniF114uniF115uniF116uniF117uniF118uniF119uniF11AuniF11BuniF11CuniF11DuniF11EuniF11FuniF120uniF121uniF122uniF123uniF124uniF125uniF126uniF127uniF128uniF129uniF12AuniF12BuniF12CuniF12DuniF12EuniF12FuniF130uniF131uniF132uniF133uniF134uniF135uniF136uniF137uniF138uniF139uniF13AuniF13BuniF13CuniF13DuniF13EuniF13FuniF140uniF141uniF142uniF143uniF144uniF145uniF146uniF147uniF148uniF149uniF14AuniF14BuniF14CuniF14DuniF14EuniF14FuniF150uniF151uniF152uniF153uniF154uniF155uniF156uniF157uniF158uniF159uniF15AuniF15BuniF15CuniF15DuniF15EuniF15FuniF160uniF161uniF162uniF163uniF164uniF165uniF166uniF167uniF168uniF169uniF16AuniF16BuniF16CuniF16DuniF16EuniF16FuniF170uniF171uniF172uniF173uniF174uniF175uniF176uniF177uniF178uniF179uniF17AuniF17BuniF17CuniF17DuniF17EuniF17FuniF180uniF181uniF182uniF183uniF184uniF185uniF186uniF187uniF188uniF189uniF18AuniF18BuniF18CuniF18DuniF18EuniF18FuniF190uniF191uniF192uniF193uniF194uniF195uniF196uniF197uniF198uniF199uniF19AuniF19BuniF19CuniF19DuniF19EuniF19FuniF1A0uniF1A1uniF1A2uniF1A3uniF1A4uniF1A5uniF1A6uniF1A7uniF1A8uniF1A9uniF1AAuniF1ABuniF1ACuniF1AEuniF1B0uniF1B1uniF1B2uniF1B4uniF1B6uniF1B8uniF1B9uniF1BBuniF1BDuniF1BFuniF1C1uniF1C3uniF1C6uniF1C8uniF1C9uniF1CBuniF1D1uniF1D3uniF1D5uniF1D7uniF1D9uniF1DBuniF1DDuniF1DFuniF1E1uniF1E2uniF1E3uniF1E5uniF1E7uniF1EBuniF1EDuniF1EFuniF1F1uniF1F3uniF1F5uniF1F6uniF1F7uniF1F9uniF1FAuniF1FBuniF1FCuniF1FDuniF1FEuniF1FFuniF201uniF202uniF203uniF205uniF207uniF209uniF20CuniF20FuniF211uniF213uniF215uniF217uniF218uniF21AuniF21CuniF21EuniF21FuniF221uniF222uniF223uniF225uniF227uniF228uniF229uniF22AuniF22BuniF22DuniF22EuniF22FuniF230uniF231uniF232uniF233uniF234uniF235uniF236uniF237uniF238uniF239uniF23AuniF23BuniF23CuniF23DuniF23EuniF23FuniF240uniF241uniF242uniF243uniF244uniF245uniF246uniF247uniF248uniF249uniF24AuniF24BuniF24CuniF24DuniF24EuniF250uniF252uniF254uniF256uniF258uniF259uniF25AuniF25BuniF25DuniF25FuniF261uniF263uniF264uniF266uniF268uniF269uniF26BuniF26DuniF26FuniF271uniF272uniF273uniF274uniF275uniF276uniF277uniF278uniF279uniF27AuniF27BuniF27CuniF27DuniF27EuniF27FuniF280uniF281uniF282uniF283uniF284uniF285uniF286uniF287uniF288uniF289uniF28AuniF28BuniF28CuniF28DuniF28EuniF28FuniF290uniF291uniF292uniF293uniF294uniF295uniF296uniF297uniF298uniF299uniF29AuniF29BuniF29CuniF29DuniF29EuniF29FuniF2A0uniF2A1uniF2A2uniF2A3uniF2A4uniF2A5uniF2A6uniF2A7uniF2A8uniF2A9uniF2AAuniF2ABuniF2ACuniF2ADuniF2AEuniF2AFuniF2B0uniF2B1uniF2B2uniF2B3uniF2B4uniF2B5uniF2B6uniF2B7uniF2B8uniF2B9uniF2BAuniF2BBuniF2BCuniF2BDuniF2BEuniF2BFuniF2C0uniF2C2uniF2C3uniF2C4uniF2C5uniF2C6uniF2C7uniF2C8uniF2C9uniF2CAuniF2CBuniF2CCuniF2CDuniF2CEuniF2CFuniF2D0uniF2D1uniF2D2uniF2D3uniF2D4uniF2D5uniF2D6uniF2D7uniF2D8uniF2D9uniF2DAuniF2DBuniF2DCuniF2DDuniF2DEuniF2DFuniF2E0uniF2E1uniF2E2uniF2E3uniF2E4uniF2E5uniF2E6uniF2E7uniF2E8uniF2E9uniF2EAuniF2EBuniF2ECuniF2EDuniF2EEuniF2EFuniF2F0uniF2F1uniF2F2uniF2F3uniF2F4uniF2F5uniF2F6uniF2F7uniF2FAuniF2FBuniF2FCuniF2FDuniF2FEuniF2FFuniF300uniF301uniF302uniF303uniF304uniF305uniF306uniF308uniF309uniF30AuniF30BuniF30CuniF30DuniF30EuniF30FuniF310uniF311uniF312uniF315uniF316uniF317uniF318uniF319uniF31AuniF31BuniF31CuniF31DuniF31EuniF31FuniF320uniF321uniF322uniF323uniF324uniF325uniF326uniF327uniF328uniF329uniF32AuniF32BuniF32CuniF32DuniF32EuniF32FuniF330uniF331uniF332uniF333uniF334uniF336uniF337uniF338uniF339uniF33AuniF33BuniF33CuniF33DuniF33EuniF33FuniF340uniF341uniF342uniF343uniF344uniF345uniF346uniF347uniF348uniF349uniF34AuniF34BuniF34CuniF34DuniF34EuniF34FuniF354uniF356uniF357uniF358uniF359uniF35AuniF35BuniF35CuniF35DuniF35EuniF35FuniF360uniF361uniF362uniF363uniF364uniF365uniF366uniF367uniF368uniF369uniF36AuniF36BuniF36CuniF36DuniF36EuniF36FuniF370uniF371uniF372uniF373uniF374uniF375uniF376uniF377uniF378uniF379uniF37AuniF37BuniF37CuniF37DuniF37EuniF37FuniF380uniF381uniF382uniF383uniF384uniF385uniF386uniF387uniF388uniF389uniF38AuniF38BuniF38CuniF38DuniF38EuniF38FuniF390uniF391uniF392uniF393uniF394uniF395uniF396uniF397uniF398uniF399uniF39AuniF39BuniF39CuniF39DuniF39EuniF39FuniF3A1uniF3A2uniF3A4uniF3A5uniF3A6uniF3A7uniF3A8uniF3A9uniF3AAuniF3C8uniF3CAuniF3CEuniF3CFuniF3D0uniF3D1uniF3D8uniF3DAuniF3DCuniF3DEuniF3E0uniF3E4uniF3E8uniF3EAuniF3EEuniF3F0uniF3F2uniF3F4uniF3F6uniF3F8uniF3FAuniF3FFuniF403uniF406uniF408uniF409uniF40BuniF40CuniF40EuniF410uniF412uniF414uniF416uniF41AuniF41CuniF41EuniF420uniF425uniF427uniF429uniF42BuniF42DuniF42FuniF431uniF433uniF435uniF437uniF43FuniF443uniF446uniF448uniF44AuniF44DuniF450uniF454uniF45CuniF45EuniF45FuniF461uniF468uniF46BuniF46CuniF46EuniF470uniF472uniF478uniF47AuniF47CuniF47EuniF482uniF484uniF486uniF488uniF48DuniF48FuniF493uniF495uniF497uniF499uniF49CuniF49FuniF4A1uniF4A3uniF4A5uniF4A7uniF4A9uniF4B0uniF4B1uniF4B2uniF4B3uniF4B5uniF4B7uniF4BBuniF4BDuniF4BFuniF4C1uniF4C5uniF4C7uniF4CD,*HH#)H#*PK}w\]0Uxxfonts/ionicons.woffnu[wOFFx XFFTM\pOS/2J`@`tcmapJcvt DgaspTglyf OT1head016hhead!$zhmtx &locaxxF$maxp qnamep-`post XY2xc`d`` Xx~ L pCYJk?+A ,  #xc`d``<? L @d d@@.xc`alcØ2H2000123Y01dp 3")Q``P xڍVn1 @F[< 5Ja: ! ((N-(" &o @ )\=};8iz~f|Q#*3}W9"<$vbGW&C8,&*A52}=Ob5ܰk#Q;v?LWĶ7g N8(oJ,-os!TO&b#8\8WSlb/uo5wP~K܉=/[~9B1wey\qZ7+٧`"(ֳ #Íso͝=y\]FK2#tu¯ Ěk=+zy]fڠ5&~; N-5N:s3WoUx}qV=G?tqm~љ~~x扛>鿘kFGk4·D{Ը{U:A `nRɑ'>'=$ݒCCq|t]d1>}vbp"lxjܗ93ŷYg;;x zI_WN׆/AKۙ:Լ7x^y uʝ1s  Ucυ e흄sG3'eCDC/Zpc׽%<ӻS }øc631l}x{hu߳{?%mNf!e ek ^l.RR`&QDD]le9SZ&]s7ԧG2_t|(K[%ܓnL30e'>:ku6Vkvnk;mf,ٞy^]ݯrUh4IzL3fjzUk[z[]-">ZSԨ ڤmTYv8c5_x='^bv,W^vvzaiʰ(|q;N8mk9&YD2"E.p蠝6Z9Ns~$'81 G >b'߳h[a;la3Mlb#X:XM=_Q*Ve,X§^c>0Kf O3̠T(xLa2ULd*y b4R(Fr/#ΝPna b % }C17R JLK|8\O"7JG}?7D***^ HPvf Dx,v8 B ~ 2 l  B 4 0 X 2P RZJX*dP$n^0v&Xt>b  ~ !!4!d!!"^""##<#d##$$$$$%%|%&R&'(:(\(()*)P))*|*+N+,,,-R-t-.4..//6//0 0T00122223d3334.55^556.6l667,7^788T889099::v:;;<> >N>>?j?@"@b@@AnAAB$B|BBCCCCD D&DDDE(EZEFFTF~FFG8GZG|HHHINIIJvJK KBKtKLPLM*M\MNTN~NOODOxOPPQRQQQR R\RRSST>TU2UV\VWX8XY~YYZZBZ[[\\B\x\]F]]^^t^_r__`D````a2aPaab:bpbbbbccc6cBcZcfc~ccccdd:dNdee0erfFf~ffg$gDgh\hhi2iTijj.jfjjjk kdkkl l4lllmnooFoppBpppqq:qbqqqqrrrrssrstt:tdttuu,uXurvv:vdvvww|wwx xވ JzȈ6PȊ:Ȋ0Bx 8d,(JԏLjґ4ZҒ 2hД"Jbn” btBHAH 3蝪;J,}ouuuuw-Sj$,$:,If?͏*TO% Oy C?(M֛nŽ7܀&H٧tZJJ#RE  T)6vG2F5|VФ)N|?p(>ow'OHxE*IIn<|-&fc O=2UtZ (Tޣ#IZҒԍP)kv"uSǘ+>Y<_|Lg19&j*)][^Q* iz6 Y{SR6 8L:7:YVPsȷ:`۽'lH.UFFe̶ѪmZ ɢFLbrd¶ KA3f"%amH(ˆ!YUEUZYOZnm]_+RB z*Bf5LrcyO$.yS E:oHۤ%-j^ S0ht;j ][ F#4gT_\t<}@8s"Ixr` {KL."NF(@ I; <uw"^e' +I Vkd}Cՠ!qsWO=w}~8=6>_PBbDU7kK~{:@%!x^ l] ^ &1B ^VECq{<Oe; m+Rv C2 F700 nXF x  yLxc?LCxOAz1N3Uݣ@Фa%T`xAC3lo}*%DPAAw  ZlL,{?/owGQGIZSdYk:)v[#Ld܌߸1m뽼@"_8Y$Ű(v ]YZ pm *L[XqNX%Ҙ'.Nr! AuO<=߲^g|a ĎUWEݜ c\Ო;fqJ]%kp/쟡 ZJJaDTÀ.(+9\AγF"gqY3DΡo*?ZqwD8DIFu%Q$}R12dԐ=t +)+!IpkN%zQϐX14J.&^ JRHx#kġϢ*[uSh+)\fpt4ڀz$}$GLw#dSu<ŴMW,Su3 ;_zXTwDa*a"@ J`)8X+Aۇ&Y+h=xr 11 P`\F xGm&s)YXF@ 1Lr%(Oӷ[ %<@igEdVvd18¯_HA1a.3]xF:Y`rb2 oS(f 3A051!r<.πls!^* T2Ji\%ndDo흠^Z8o1 an۞g4~cҙ GB֤z*v@vHij ?'%K6ç:H[ $XvBhx9ZAR,_K.lƮk zAp<.زkLO['HK8^uK%\9Э/u%լwە> ;|a8 >|޽|e@sʩpN$Ũ_P0|nz?*QttpЍ1^AăJJ/ń"V$9+N$$72̻,Z˼[CWRin0f?W_`mUt+|kTGKe"KeQz N)&VΏ٬߻ͺڻCuݯe4QͶ :ϭY <g?1}+;_uj4{)4(o÷[sC5]Q7E5ŗk]] 2FDd+6òp!!T--py)DJOy pfuR jgC /4]QE~]Y=^TYo.Jn|%}4{tMCGWP &Q8SдDyҚ.X6;Ζx=74u>&R,f~R)]vv2rg{Iہ8n|63?!t88`}PRDp݄DQb$ۘ ڎFmT -/km문RUOm Y?SL[AMN] Dx饋nK7/[^dU Ps8::/55Y2s+r3Ű+PU{4]5EwT׶ZF`f8Ob%}&OSE93JxtxhQ;5cw};2J.ҡ@uբDAo~6%>2HdKihT_$P eZopnŸ 2~կ B}I B;Ήމהh.;qoߜp{AeM% [dW?d{sXz18@)fִP XNcLzkY0'o.$X]E`nFj*qpݎB&.@=)DO.4#CR|Y bl'DZjqs5HBwOTљ*| $auy Ր~]g۽XQZB뀪^TMT8+j5Uס4Ui^jMgs9s1?LUz'}jTM<4ajK]s~ .9c7cp (&popKX˳0Y­\0?+'k'[\E9y츟ju:Βyl$03,(J?[yǟx ^;E/.%'Lvl =,f&l,쏠q a!jȆJTWĉԏM6*lX7bh A;ڊvnEu5N㪫yE-腐B W94=Ѓ#ɚ+wc9OZҢt%I 0ꮠzZ(91e q*H++h׍|C8;6mX (/Q̫輪Ώs]Mt(b3XF6ZJz)J!6Aem[ =%@6d|!~ 1~a rqnNMUI"6 vҍq':Tfa,K8)tUF&G+?`C AF \7n nlbevWHeksu]p@ bK0oFjl \fM)"`]Tfj*̅\.\) vϹ,\ȖZ(K񊪨m&d)̕#wlι.c42&)mܡ#U̹E͏3:LLj2"T LCnΖ[mV3 N%ҦiZDVlYYt 3\qu 10RHݹZs39ťBH=Cq]z띆R@aV笓B۳ ZP9yZ 2$k99Od3!INX8 \MU۝jR;⴬RYwY*4x>F L.9%¾ra@&SK.LKCӆmmAZM$-:R,Bo$-T`0  [ ,WhnaH#-cJ juHz~7>$A%hSvP:"EꓕUVgTzCm\0%Nl2nY=7;ۓB/;8NX!Io60@/Wd ¤ZO˖(lF/i,(T,ʎV0B yQ4CF4 0T-3,%VԪb$ɣfHEfQ/zuTu/&+.>!>f"W 7@bb2N. 0Wʃo6$B^R (Vfd(w @5`?3/ȁ`f MS%&#)B5rJ.\+kch@U Ik5ud굔^BD'Eb$l|饽r,'GHc#TPk([a~TAaxX<,;C-8Q=۞Pz*ç-1Ͳ4F)gqcEQZc(C\Ìԅ^/]!]QM "B&LkAR RckR.=e TBF2t%,gOXcrJwzH$H}N: z \Lm΁Aµ9<|R(m.Ma[#EB)^-ۅ&W:9W~':|qmfƒ%9FxT>I\54r5+/ "Oۀ $$8NIT$D\jh#M%>彂 eh 返+Y\47s""|fE`빑If.L]7Ƶlҳ=Rdϊqk'P֯y;x ׭hX׹_ ~ȓS 잰gó")9 4+`\SQL!RLrj{'?,z9{[ 8D\ou4}s@'#t?;BTwZu"{s6ϡ[ӹKShKn[ 2Itµz֭JZ-}Bqo!YZpm]=j۽ϯsoDkm5$չ|.vG3|!{k.wz?Iď}t4%1ZF4O{Y{}йˠ 7K o6uy nFhkۋ).5m/Bsr7{Ib>6@| r%s>bx6 +;<^Nr33܏ʹV)Gp >OY_ >cXVnۊn>Uq .` #]xVvߐET\Q!$GThHLqw;ާ/'+L^$3}'AUlL@kEe|]& փPA[W)Lw]F0jh\DG9OS4TհGxhYSFz:c!ѷ51,̥ϲA9LLϱAu;LCt]}yar%ˆюAaZpӔm 54oǥ\<뼑K9VHsd@ޙT2gxơLAp$83#"Lw7-XG a?sB|ڄ2M4"kNX~?Ɍe2c&ysY6):~®N"yϗ:[5Ĵv ]AA$3NͦAЕ̤Y5@"|Bޑ/b^ (B*b%CfN sWFhR|Pm5\զS*"%T[DziUnAHߓӊ}֕#V-˴]]:N9d-f0*>)DL 6O1h j :@-Aw°C+d!J-Na.F'MTٺ:M9 g̍5W8bi&C!U8-㳠+V"J2rDn͆hDU7Z!Q[r_vVedŻwa1BC9B `)J(c8q$f,)>ny1TUC2Ra+x!-Y _L A& m3W~Â6>:Ȅ2Uw@habQ³Iɭ Bsr) 6 h)$A˖Xr `a <&U %1a$i[T9pqS=^dpf,\E*k-0Ͷ 8< iB`p7.ʺN4$eI[1cxaTtk7^*0ȪBzΈ p ܼc NW_ НLy%TId"qBZ˂y>T@/XsjS&"|✚[KzG@TR,&wl"wlyNyS:v۟"3۸Χ;Xg8ܛvX-}G c$x7ﹰΨ.2*MhD*52#sD\-Tn@Iy D `B٫d}t|߉V{4U&s BME>R@ e,PW@s@6ÚrTYqB2XGc;g` Zre_@1mń҉L !RwܦԤSQ;w;\mmg)HȰ?L{ ox2ʹn5u*nܓٓ'-!da<ڻK\*n>x1gCVM1V!8]BHzcYpc?ór R*r]hvSAoJ?{4{bL?p7e:3\2<{kg Je0,<.GRJA3J(!":AoIJmL$=/99@Sc( 4-m۷.wFRo Z6pf$d}̠ QE'Rh._7 A[ȧ֛7+?(ۊW+D/ZxvSs5W[mE5LUVLwIgW|Ka͙s/@{Vlx@ w~/5`5@kncD2 ]h2ڶ;-RYj0)cb9TPi4}4|zZ SAC?SL,\XY7Barrk8jɸ充HwÚx`/kmZ}=t_};ف-~@yJ|S;$Js5[WM¿uOLF4W6zJ9'UC1}|6y̳6ėVխ-d@=IvT\J0"xV{BBuxnONˎv.Z}}ƫ 6F,;[ w.>Ef/E[F!Z8IUE*)`."O{PsZ{x(c'#Hܨ Eel>ۥh7{PoΑKWVWjE/M?Lɡ5/c|?zЍtljep+-zK,iT{譗1ZA'y[VPaR"R**HRG|od|A-G7J}xm|=}ch56^Bܱ"Ͻљ߽ǯr9ۍT6}?GkJ?$Yo%|Q,)\:&t_Q`80 Xqۇ}K??@tFw5wmt;)E 7pյ]oA7H\\w+*T-恧9@~tژRc?kۡ$Oroz^hb LMHX>e_fFMU1ppJ'|OB,['(EN 쳢|BPe[9]\t5zq]_Igj|r v@uYDRwS7k/!z0s5Dw:p<{Oae:91;ka'_<):cm::)圮%锜$8/|īt9E9 3 %&K%&>'*>&6-#vFZeL02߈o5qm]ɡ6SnGW LgolưtĦ}|BvR:-[opl-qjN*pCʁMtR^VrMTDjŒ_) /`ڝ蝑jca"A/Ugz9`<}Ј[ͺM([v-rMi8bz/´w^d&tV@X'&Ud"p6U7sf>+dKU<3giYs5Č5.>܉_If&^˜TC0ĂA&0GaL~΅ =S\w44-@AAҐ^/3<2Vբ(e4]&S%r<@ԁM^ͥ块:|326CȎLʹ*H5%Z1u\ +0Y c$|?Z/nZ^6ef-g,{4c3?Iwh#>/B޿p1?tf/NzM]Ng`\X1=e蹇ރb4BxFGYn)#yJOB>姾lr[rKRn:znAtnOû,^BD~q+;rฮ$&:`8+!ЭB5ItE  4InB~ַ,=&:e&]~lM}W=Y f Z/VPF-nPqSD1VXp p\xN^(]|7N&tl"cj~b"]"t+r-oz]WbwL&R]Ƅ0 Bw,/nעW]Y\46VjƧ;xѕ~q=dvx3J&{k>pg!A)2c X^ޤ(K_LjFT5@snx(2ޱITe6>N?ҿ5 ǩ>&Z˲;tL[t?`'NK-i3LD"ֳS+>N| b1-ቖ35+ ofvuAQr8}}J941ſiac=j@[}=T apcQIFr˓4=Lx2/@#5]GNE_Pl8~̧ }nwLw>6q;$Z l pTqB#lU}]j;5~21{q|=) oL^^JݯK7qU-|`VV[[on 0cGDЁ.+y2 vĵt_;<y˥LZŷB`%,ݲ[FK ÙtsAc$ge,6ሊS ϒIrn̔GG.cOt,G^/cۋ89ȣQ88KgnAB0zXѿRM[nt{G:i%3na7Gg m+ŊA&lXb ЌoWMn2"c*pfEHPťZhbѶGNo#]7[4镕تn `qO(ZJNQ\\5S_͝jn}իn]?%$)=tܭ9rt4Ԇ6pЯUÀR%˅fo Cּ^ybž Xtsq||qG+?2]]9γ>{tZ+C Hm°$ xqþ ɦ#P[Z FmCz.qmGUsЬLg)mgYhm\0BV8)Z2+h '%=75#aXZvrP-&);F:|v@) Aw܈θ-'uݫdt3= QMZx?i2l;W*)2cvAz~%}<"zd mJWzCz/Pq+HY$݃ |֞ ;\("6>хpN c>'{iwL@ <_%+Xs wWPނB15 \T!]ǸNipI@4AH!57"[:WT1/@ǘBI0)YsoFeN;@v.WtiDrيBtDDX!4S8nxE2 yd+iBfb8!i~to YY?IMo<&˦!L;>_ft wg Z@b6Ctn7[֢ o*tܶ#Er''ә +iNB5|?ʍɹBO^0Z_[^Kg õ,4]4T3\tQnAȻCmk0%Y@Mf'1uˇB;^hYjqF{efLeB%2~-/}&2OI3ݷq%%,^(MjR67>_IGk)ܾo}OO(|P(W&TxP/+y_q?K_W-ڔ%bD&=_GzF]J5PP`~!gCɃ 7'Uݱ*Dԣ7)u:ah;{F}NtI2!gc6пKnw繆'C_}=g]zC?9yxj #gu|X}B$Vוn}+?åξHk4nf&<$ NyfۜmϗSo1MkkS:^ձ" 0^: NCdTUhvQt{'ۛ3^u*vi%sЁ) )1o6MZ@zM&Xe8Dǩz4/L4.u.MG*_nAT(Q lkljb}ج_.j\&*Ar:+4T5(xܦ ۍehSgU`{ZY3} Fw`c+! Q2 'T Ջ#P{]Il,2գpp?E+ֆ+_Gզp$]'DQ)3|aϣ{ t>__!U[wE@N%v]N/{F qI |L]ߨ,P蚯Ta8_M{e+AޤІm75n| T+Vk7îsb# ca S~+ J|K<䰟:#)ѩHHNWQ7U=7|_mm 2E9$&P)Smud ]a H7017no+ O[3-34f:`"3'2>0<5!;pqftQU3 ,JFUEE)&80 N\X>ffJnVtN/J 'YEUllƼ)Z`]J']~Z͠:D Cz—$-)={sqDB_<Ǚ"woO$"[y_h-?“pbARPg@Xuzǚae {j,Fq#pLq큏Gfz&Sϐ36S*7wwS鼉m~h;X%h- `w"iw;f;,=#Ly' LyZAn_t{?)a|h"V3UadZ',VM}eIc(3;M U0/ *Ob+dC!rs.4YRHMFC tCKk,9<43/0F+bYF*p6劵r5b]H t[*# FHzCgq%Ix #T4RpRe6()3Jt-L22q)fD_n~C0"e C3Mْ6$X<%I".BޜЩs>dg!,"H!fQ P#q̰'{ >ȋ7,RRUITUĕN]ybO]ru+yI0>-ےN66CnaY0 Ka,4gt6,Ҟ`a"g,4TVw G!wt Fej"X4[p8^A!lTzF"H0 MYYMCD^*ͬfhpz>.abCHIQ逅$ߐhݭ;Ycl>j k^=]Tu; [Ŕ!m+@Ǯ{y5K gXS>?53 ;rDa@5F݆&i|f_ --C$ˤ#+˝~r&Q^NO{@y^8+˾&Cc|Cᐥu 渽q{͉<̇?G~^^xUu>:geT_RUd~\|rc&sxCP!U? v̲~ײ>2%0Fe(eE ǭ( ΡD,_C{Ab`$!HJnFl۴9y.G`)S?Jy0 ̓ȍGؔBߩIZOlA>gXpOP8| 0@91aeAV cgxT$N=a#x% r vd@EjLp CLt*/"&nˇumg4 *sdXAR,AGj98&jZ:y[ȲH++t;Z>5>1ZP%:Ĩ!,`>aP۽^[xrwԽa4Su{vCݣlU0CU {꽟͓BToS/J]pGc¡w5ZhC=ZGMZf9%`,Ǵ>@ȡAXgk 3]:2+qe]9M|`ï\'ʓLl!gN4Բ2@\r#$<7=ro=9w3]b;:$.zzwFI{1nv,sZcwG}3Ap!Kd>Hyo`VGNRwE9.$}STpx 687^!3<=(~ϿQ>rC5?r0[7^q ^GyN\Bt$ ѺsƝ-`8ZR@{EMH ޶pU$x%-z-dU8gPĞ&)AQ$kaW`˃iYȀ%5EғnFؑ4M…4c'ҾPIG{]  E9g>pFC}LtFځ>Ftwo3?'ٳ)a}n~WijhE9XR۳I$*م<}Kdm*NWԂ6:"Fx?us+_IFQX8jt1?_L;tn$j<&|uH-_4SA9fԸ*gdRدpSdsbZ㊄E.țfg:w1M¡i3#u7e 圣 )CJ)6+D9YnJv Q6Y9!3 7}w>…1 lW[TZ+Qh6۝@AyƯtOL8n{껉jB#ayn!l)2Wܬgݺg66 IvK/ܭPV +SjNO͵dD?Y*^:Ys͵fj2}=y Yv7O*V{^ E"ri4pSУONlY(8t&&ބQ8·~܇lM-Df9Ɋ#\=y -ݪ?" ^GnK6[un(,#x]p^z~Mrr"!߬OQOO7Zl=5N1cn@ ,hSN߬ s/m?bzu~g0pR;Ej1J<$!Rn/R!`X V0 5:HD=`e//'w#,W%$)qNHWrlV/gXuӄ.[jfYNC K(BX웮8}NctȲHD bAݰ%e݊g ] dklVyļr^͝;m!|1i^<9Vs4뇲} J @n+aHfJr~u2f:2xN۷zdw]/xf⚁~30LPmn - 4J6T=k~sW7NN= ٝZĹ勝}+ԞܽQC\C4p_Qx8_WL6jFwxwySg"-N^Z8q|L +eW+T;< Sv#e+m+_vˮwvW/]~Ҿ}KR^/rO_)@jw]k{JS9H>m)sCO4rNޣݓi4=9cr$.#Kw |kS]w5]]QB65n0fёѹCm&C{b CL(v ²KL[㐍j]8& CzOE4ү2O Òl 9~a^t($kT_, ,0GUc&9t[ >;0&!J<G:"N0Š#[H-=I >$h@zECSah:?xH@I0\E5px'B+0ӬefS켫0ܹjpnYb\0Fxz*e= KG i FMi"c0uKXU1Fpܞ#yq!¦ RRZau&fEʊhR+,78,ЈgIһ`h3X~{D[Z>zFэlINt^pf!GH`^ e"[>-ڏxxԽ%ER&oKXQbQ+$)z+yNd#b V(&MJ=QH,6%Xht=3F6v`>=BR2dof$^ȱ=6>p KKB Z7ef%06Ҹ_d'VA<|Bbh3r3m鉸qkmXH']FJdɦvQdn?ۚnۺ-Z6 8D kyZf頵۰3766#q!FQa}!l߶&-nCH<*۳@Rg (T[] 7UE`~$-Ȅ]~a` ԝiFmp)N3t|288vc"_^d'9r#H/$)ړ∯2U\PWc PzH֥1/^@MGP;eKm7g&q*ZPCR,yEk){|{ 8Z󒔣Ӳ(dnwKn@aؤ~^Bm#+;#4j&5+GDwv&%݉)B{na8AK+LUeYu4O&'gő.eh_?`Sȧ7Oz?YeCSE~ݩ7VΈk`pG QQ` %o 0_1Ž]/#u&PǢѵBbVrTyQ@#E&tw봖"Ke-gsWZ N6/LIog%Ѷ% 91ac55n>48S莳A^7Hk\?*e6~J +uJErVDmRcT!Cq bbWhj o<؃gFե@sa:BdQ_e#s 4LJW8xߟ:]:Y'?njWL>q-ON]3-{YtT!W5 ' /0;+sPptMJߣy=9ų8m[`w] kI;ӎqXxJ,ȂrP'ժ4A)W߯؆#/y- ;/j("JK-Jw[8A%T C N(*^/#V!ˆ|BЄx3kU ST(.adDhsD Q0f,ZH㓓=&d|L#N`w(wkc]^:FHG[4\-~C):l܏‡Zn@j>|-A10zx$ͻn~bw}4%YU-\t}LnEmT}5*5EVp6v sKh#IڇXwRL=-i/bpblNlb (ͮ;ГSEmHu[ˆ?(ˆܤa BuMU668Vf{L6[w[V^Xa|N#=.&'MQ~|>-30mxrݑUw D6-T5[GUK%3Ch-͓o=ɤUr17E]lbQ1kx^ p0냫gv|L36ʮ-&o5Ѭ㥧@)靕dc`yEjVQ`t4hDcc?bY+֋j{-vc7§ÀQ8[o2nǡ }SIXu"АH*2@/k9_7RryrVcvWuø0Y#赣W, N:t$s*7߰D^d,=,[,P4xSe#{y}0a-Yx5Z}8${q+kpB~Ľ(ǽ0Oe`A G^pp"3$]pȊ,w㎾V{};\EV ? FVRa3/Ɔ(2)҂ʪFTC wтR\V cZ7U h@cyBLH@<]r'0r d.]%v P„ KT|2%KW4u9lΨOKnDx: @2 u"%$<Sn?'JZXas-Igb%9t뿻+,KoN3VBAZ";(gBo"\a55]cv `D z,iP>maƾ,e`)NR8֭YyIS`Ck[Dt!АŶh dx1tc@_BC( ꃇ nɒV}Өˎ44I[`hHsW-y#s2\tt-/K<a8)F>L}kwE})DD·b޼҇?zNeSOFGå678Ř|Y\㸪x]wuӳВE x4ngyM@ǕuzMb^"@vMuhjꭡ=J~!ScF8`uo߻J8c%3KaD!Z/n .    Z^\ܡ_bz )2u[ߧ";!&5=1pQE0ZN]ud%aJ9&xʨ!2/{h-ZY8T:5 JЛYg?mTs볆永"hҢ (_˱DQfFF"Iz >Ce8|!=X$BNPh&-łeLbWXp5< D~EIYPE=jHlի ϷZ_{lLe#'FXv݀qgXβk-"EZ⢾į^( ! 拚eCxE? ^r_L@m /](ۥ{Al!*DtcbcSCikd''>_E@<4O>Ur ]."Vd6S$mL8/gY#lnpq2ET4лp'bPSY7MZ'ӂ>dc"GEĉ !%td|?܉a=h4jr~bsWjؓrVĶ7s܋ځ/?[mw|<\Xxp|tծ}AW݃':ڂg Nhtabןv=kCuo@IS?T˱0p(DkÑݵKK@Яoe]%})QJEPlt9%Iv&^.*sJ^ƆFF;ʱ}b[+bDAX2Tןs\>^_'{s>߃]\݊Muիۯ~fŒ(6ע"Pן u}p>XM5`vC-4,I>OIâ|@bBcAI& fbEfn%I !\Rtɵz'5a|\q Eމ_PjY!@J9FVS- B 30"ARDfS8PJB=y5?编цʇv٨; CoP⋭@֑OJiɅ޳E45]T1#M= Ko? SK餰]2mj_M`|t8-u+_i>~ Ip; gK3֍ ~~bk%,BGHh zޒK!گf`WD{X%,WlqdhW~5ٗ )bL73 #G(rpRdWXɲz0FE!jدq2F28RiZ~WV5n"=6= r)׷3M?ځ!&(ߎr\t-c(JY*XZ"kfv:LIkV#KJݕeۤka #$j,'S1Y=UuW%UmM'#Np"[|7,X"!a VI& ði8! aL `'5g[@bmX+v߆m 㛛㢷uGkk[Vp}-,pI;n:4 -ѣgDw$eetŲbS ֥'(ӛc㛘b=s v W(4avyd*SCP=4A1 Nlfb9GcxbH@Gf]bYQ|k\BXwe?*dI="C$Eۄ=Kbwv-_f\{&ه,5uRnP4|5nꙚ`=>l|-EǜwE'M`{{/gM..@ +W8R=t6򹃕Ԟ7F)'ht0ZoGKZI_L8i.Zj~Oq"By0.1<-`K X9-%7Ӟ[kgxAg5ٕtXk.4b_ʅƟg*8V2.yyF ;sXGΆJ3px_;xR DtLiTzQ`JKOߡ簴/Np{*/x8 6mnϑ3h_8A';>ư-1K+V!vv0J“A/kl4Gq{8W$,{_7}NTNF?3G C57LFp=xrtDohL˜3ffaзl:DqWW_};EU<F:H@`fu * rPti !\w!)RRP [;3<ȰqW^v欤WxYKV.KR\6IS0.21#PJ ܘ9DFRr 3f^;0QS^Rt]"3j$ӂj DEր"< 2Dtj#A861IY0j>HX)10X;Ym"qYG:ˡLNURɮq r3/bxͷK6jKHSש rwn}e8 g{LO=~m Ƒ1)rS$,Go,uk]hʚXIJ@g='1R1;D˶SMhx%2$yGz)-;!Fgà- /2UgI]/M.1 Τs$`$ WS%kY˶$I2+o`}A2t=RDjiEObiV3:HM/.s'>W^ALW?$x<U!Ve)6J%$T<أz"r!(rdf}YI!dx<_t}2V>gqQU\}{~8XآqAByPx:*ɭ_Si,bIfb"?66F0z@ߗm a"[PE('ZB׼BM}eQ".#mDNKK4IwW { Mj=Gzj^ \a΅ǨHo[9[,҉,YOVlXȅXZM4aZ"{L9 ڡKe hkw0Z]v]+Ȧ|5,^N]~/Ev9ѯDP_vۺ']=&n'+ks1.&/c772F,Ig{ ɘ=5TI\/Vr / ˹s+y?Ƃz߄ă;wIQ[z%/n~zӐGU m>a=)>_*ͭo=S~њcPbg_B?-wϩy)>Amj`|e·MsлޟmL0k#deV Gu)VMEZk+bH#h TzH$ژIsl/NszP8 R ۆ$}HK)+J9aHz&GC0ـc5!(eI/b 25il1׼eŋD*…υ'Ko+~5c_h3l|殸"_h>'c0- {K^|!ݡOS,Jʊ!`S^>3Ȧjt(O+J֬F09w;})GvЙoi2~xgޖD]}ͩ5:qɟ@dF!";-Ro |+~جG1}^aeQɺN +Z:QwwYerh56yIZdн҈2;KS 586.C@v$jۘ(Lh^.z4,+|| b* `x'Bzjcnĩd«%"_jkxqI֕w/O$;SM [.X놄+Ξڢu7NvBŝ=Y56,}Ũy֮V闦ӰLC*Z^[{՛,/j57[<0̈́s<}c610mO{{bEDi S4A|`Xҍ _6MڡG!'5^մmH;Z*[ i} )v59)8xS1.җh_aj{q\+;)lj2팝d,ԧ:5/BBb럛Ցّ$#PMTHvEuhQRq:o 9dݭz{~4r8!h_&wRnǗj%]6u-&>7ƗM[ ˷+ʼb=tbirwg]|J|vRyK~U%&eEEG(鮸6"mZhyf`k`:H<vD:7޸UOn|FdEvC[:Cypm=NI<m&-)G*O%ol0W$S"ݙA P{jhkțڔ8d^ TQQ9|a8^ȧE!|w>+;2Ǥ?i"7I8,{3/*?/Ez"O" y@7W q+6 0 `(-wa 'Gl6;[svqp:Z*}l#A=.MCN> #j9 Z1 \Y!gqXY)F;nPxaM/yMru˭$F+"-j1dC?Ŗp]wX=5_>7d :v;3V=JY:>q^mӆ0P7zxe '% D 8`߷ v'`{3^c^\Iܙ^!!ՒWՅ1+rṟ 'ksy;16M~5=/;GזyͫRIt%ȃ9ӧJŭ7Wv~_8pVwrή@kwwkw,1).GG5i8Rc%GO}bF}l4U텣Gsrg3 tiw)<)Bn BkD["0F<?g~bLV*m&5puX\/:Sf8+}ȶV-E*}&;gb&< :]}J5cw(@ 5;{C콱'ie#@M9ۉpDYꓷ ăp i;,[SL5|p7( L2# |B5я Ε}))-9}rj qDלjْ%^M[ln#$ ߔ Wy/ڧz4Zde㥽 ac0 ClF61K`XC0IDepoI{@?C KBi;U#ɹI=N:|t NHsd!k:' Y*ef3A&0z5N ,k"yƧ1\@O ^]drrTtѫb(Dz<ᐒ*!Tv1;4xNgYV}O9S^3$b,ћX]|&qz4<)^My n ԰֖y5& "I>w8ڝ1zI TWu273Kߌ\Ce 1?>揞iWQ=[q7s܆DQB"3Qu;dHNMKb%}IOz}|ш+N.KZH*ѐ/qe&jWx>o8^65 ;Ġb8Zi,W!O,ORS[o qjӵ8R @[Ir:M2>?NL;9^ݺqnXɪ&$դUE7UyPmppIM[f#]wSƩn(7)B |F3ŕ9u%ZgOnVDz#׻qtN;ԡ0,E. @X\`twY_5·4ƋZ0^xlr,Xa4]3]jPɌJ{`zP6Ssi'fZVg[7E3^j=N"RwUCVAC#m)d?&d(U MISla49$V^%?J7tDvDݴУaܸMY>~tlYũJ]),qԷ }E 6Dq| KɸO(۱_/v, zꌅ{6g љxFK{n.0)΃hPщ@כ漆nwb.)Xsɋ@\4NS c+Fsdk M>g{w~TpG":K?J7k _~߉#7ZuHw-Z餽n&ir}7 Sv3Rry~~ΐ/^3oyyo1BN?qz¿FNw~WlvۑrvL[з >N[.A dCJyDTs)bBb#dHj!W/<lΈyA2𠈽5,h`-N@ P⢉oj7PsHGo@)b.|>z>:Np/1)wUC&!$h!浙ay_ A,|g Sˣ甐(O19]y9|&|,[iS]m(^zN@  M3}m 5:?=]LGױFvKCetzt!=z;bsv犱wlkt6>E>*kD'dW%Adx 5aHKGb9*m,&n4JVATyE0l۲WSD yE{LQ:e]ʥccq_)#P.yWlH?+.IyA(O񪠟)0>(S44 mX@k\kۣ 1{z87~{L\nNGSu2h{ɑu\yj:#.ߩsmhvM,uکN{f=;={=65 Ճ9.l_-\˽T$7 ܔ*<.!>33Ϩj%b:l1kgH 1f3T"%Tj"әRxW]2τR!xwm ief n+sb^ Jաiiȯb{~m@wd&QE}۶mMٕd4o_fk7gbÙt wtlKO󥱱G§༃X4vv"=(O#M9rggH2K=kƲۮk;qH?jZ8P?O  ;4Sd%_PDBwh9>'~FIނsJE[Ϟ^)enGv] ugVgGpRk{,li㱧>;Fm Os zlvf=+X5cjR5 3" 17I)z@ \&MM%%T o4LXyxBNq šFFu?or,r^odxul0R'#0{;hKŊlԮ2 X# ԶIdYQ"^I`-8Ixlωz.0T\p07z.ۍ T70wsl܎ҹ';&lcڠE=#R Vp;Q׃=ZȧϽ4M ՏxEߐZ|lYzag%3Km~տM5Շ$#GׯR):29#sjʴg)\GʊK#Fox@Wz.#GX\{#s'LR\ً"T;'jn pEGnwUɆL% tLUwR’J3HCLv"DWHžu0?,FzvG$Ǐ'wǟ*_7`p'O<9<_qN0|OsMyp \٠04Snd4\ݲ(xŀ,KIC_r@ ]|h$g,ˇ|J|Pw bAl7 gP l"$|!$JXdmVH%-D)Gt4ojdYCdYЌuF54!P*%9ccʕWNiHf M#\"/?O7Rv*OۖZ輋c3 ڴrk=m{}Mo2l[Z0ṯX}QoV2zs@~փʙӭ4O |"9ϒT07G|Al ࿍O/oDҥoIa4*wC6yQE"[hMz [Qt핑s3|a}[zD]pQp-U}qQZqTRGkt-M֯|bjRYZM| VP4KAF |'m*6a{Æe#G61#U #F }7E+ODv.P5c "PnOdIU-ىz(+{c3cU-&JW_._޻{Ǿ;v)i]vzR@ BK~>ݎL)J~+#Z*"逶&~p3_un@C2sDEaaw^߱c+ǎjWN&ՒZW'k}Czxcҷ AV@6 :A(~c=w?Y|Wo Hh:"ŵkZ6kI%HZe#KKj٥]\,--ASVn׮hvz:ٵKv<ԏIM\o~w1vRQ;-Vmii_TˇVwX>FvO:ZAO0o[^yQϐ'Y86A꧲{ {ߣNM mCo #Q,q:ڗ+] ~LM\n5f?\ɚ&cDa.ro[Vl:nz$E,9q8pEbC@֕_n6tU=l%IQgbL,-ۃB%;VWXfΖGNSt:Cb3tK4nؾ;i6߹<}0'ĂS/ʖX; 7u*=?m!O`9G|=?:?r{K0hjAM@hx\<0sf$.ߊ +@?>W]#g?N۔|PjTD4A4y|ΣK%2sv5slfpLOsvd783 RI N`7{H @h/.N䄷ttB>sk:xD.+wH}cg"‼'DʁTB6Zo?zn Bd}?0U)߭13'VBWvOzzTcS16P^gqToK&Sخ(1'5ۏZWT7+,ەTWqB2x¡7k7\0ZnQ<[lxmbbg'?\l[ώӍ}mYb1hSÇ>L&מyk[dQG*s ΚLS闉ܑ#dw޶[OȎW]}\bV[<N'HG?jH';Bhq(,JEqyof {ȞI1G?NM \EbG@Zm![>%+LFXu$#,{ϰ/vmW*u$c`Y[ꥥ|mǚ=Y?ђs< A2&f.1O#B> 6308rQA:kd>Zp2|l;8t.ң`:(:fvpM@ 41z(Vݔ8 2aHtV{2gt2Q?~A[qZ2i Opf[d,<<8`!k8':aw ]5T (ڃ BDao Ƣ48AjLfgdx*;郒Y1iv6͗wIJǞ2ҕ4dsWtʮJhY"]N\8KW2c+v**v1,\KY{.Dǃ2OtIƋYX-q@gKYrT|$sw<@]+L$Ln:5-ƍZ\@]4 Ŀsfu/^zꠀ]Xz1rQ=8.}8ζ mI aҞ&|m)X X6IгƤ7/@7jp)'iӡM iNJWFrA8>ݵns 㑵˜dW‘Jfneg+#coh\sDcN;;J~D\yhÝ7* -Vh$G'0UuеOvO7՘aĪo4_rzgKS?JYW-$&8__TI($ k8~nSPЇ#Q!8 s0&'w)PXͭF?[zO@>n[{QJq‰ DS#94aSKgg P²Ӣ((8)>=+((~IguEqQ}G}SxcdLb:YrkoW&{v>0F\iɨ7s*ferVuZ֡#+q).ߊybx0Q>tdii֦ɸgK0!7!s]"L_ݹ=3n牰OtNn[ĮM~8^Ͼp>~\<;bGz #>IkD|7uGOL.9Vҗё#P88: t[Hɪdlxl;P^$ɳs5 #`0DuMlך^xfg0a̳a(3px(H£AzCS@ 1Py}j^Rh4J҈NI|(KsV@:}R{Cs$ɴܮ;; Uc]uhQѹmf";=+;DgC25dXpM35{oz䦕kEL4 z|NYx4~V5 Qqla`ap#lhXrnf1JN&ڝ5OzS 4K*sɉ2>'s頦5\;F@`¡)HalǾݵ1Y\X,,J09,e8w Z8Hז#$IiG9/e󩱤/iR(6 bPG E`ltvx$XU ~n'.#Tv2Y$6¡n1Lk!/B9X/&l<^x:?yHPeE'Hb,geMfGܔ_P,R@w$Lq5葬;Qabe Dk*ñt8S7VCw^~윩>^ӃeWh4ʭRm;V`E( ?~HwE"4z>ɤ-߲1شa" IͰ>M\4g ҡr7N!+-zK$]ctK#Awb:u?Zm{Zm sVx`)i {\w߶{mD{g{j4.Iqs%fcFk ~pDO$Bjmz ٦ v( NgC_@Pffxv_ؙ)0D{Osv-SϦ{5GgnK7߼4?8st+O4 3 褟y=sj|Z胥a |pFG;^puRe15#čFU'FeB>JB RUBXqENz9dNSLMa-si iE;x;(C. q-4f % sØq.{e ;++(kkY^9[;_@2ro2 9[xu$WR)Uz WCz_yVJ7f/ABiә&Lf1fs߿Sux44$x|Fc4]@䵫@އg=,VP8@X; ֓'\j5`,STnjb $<t\h rAi'贸unÔA;}MtCKcv=x~'A{mnPl#[RpY!z t-w-Oe5qu;1۲(a ࢵ]4׎A̵6]X('&re+Fұk'"/y]9ƿY4xft8{VyTV<~lčW̤픋<:a#ft8XlPsHGpZXh78K9쩐/my7%W8rh,򄑤Y,owyN St#9F!] ??xA`쀣 >L"" .:f}܁޶Sl{Xِ5 \K~ܵc4ߠ; 2z &2԰f4mizgm^<_c cqd121ID #"E ND,ép篞aUc"33^E%A.,EeY˰C Ff""!jT ';@IpgТ18 YFڡ@%-V4xaX'LYư>ڞ\BuP,*+ɫܙU @+! DN5B*XL$^$"Z@E${x+eUx+3Ʈ8G0 ޘ,(\%&@OA->x{ DN" gp>܁$ V}XdMZ9ijp{|pJ _޳71Nwa+?Hlj&c7]80tp(4=:d@xuZ`{iW%:ԊįF3)שOTrTww@0|se|2iag;2|,kYtrÃkD5bJۊ558=̕왽5'^Nq@7Gde.L︺@` Rp &U>FGTx%EGx63^ܢ%ETÇ_& N0,Iw٩}iazm<>TazaAlSaρ\7B{ >USq# iP) #Szt=tIJI~CtZ pF7Jz@Խa8CSI n٧a#/qDq]z%3 Zh;hS4xF0$1.BEᖑ~ >08q΀9XL=AGKKF qIw\rnnJ{mo~`[rޫ!m_MꟓTHjdHX_kO`nkFV`n)Sш[1N١NBV?e2h~MTĉ|A?xE{ѷSszi*ef2o3Zg-<# JhfiL/gjA #'jc͟f cYu-UaK@d)LWU9Nd}%?x׼Dg'c7tYE[/cAd]`!:VBwS$.-aBH-}H3Mm'SyNyI4F6wlT}I4f[dOѧ\TcFkހw7nĻ!GB3Syelʉqa)802lXp/=^2wN g 3D>$E" UA Dɾh 󛊗!|&;5*#?d ]DC4H8`b@Ve24|ϖwY.O0Fޫq%}u_]7u_cn걑{\['.C EuZ}th[[P?`^6ѫ3uvZήwT)zC9Y_&'SdSvs_ʹX,̋QɩDw< oUJʬE|e,Ƃ:0L0V'g7q|vl}'C?![H77XK7bZWR]޿йH-f"%{oen j0M"xa4MiۃZ;~=Gt8^*9d uȝ0FU *!5u]GinC"egձ)Wg̊Y ,Q /1 ̭iqU+(aaa9Ƙ΢"q l>hQdG$2l#9/]ΔkW3 3#K/aWƕ3ʕPP_@$"bȕC{<-BV03Bgb=x"HDx/p +PN/a4*Lx+0h2(#F7y+p:FyI{T]GC sZ-{7]v7)jMhts΢@١渊SMmǙ\j3&E5|/ɓ\x>G 9`UTd-?_AR`/XVSؤ reAffpce.qo 9ap,ixB( :_HT$&^[] w@0hJ9"VBfAʉ#Kp"~ ؃Žn2ḁaй>`C`j^A(Mj`qt'6،Y7p6тdo2>YZf_h~<stssۦEPDvl[Vg#S( (y8Lł{$TEāUK`i / 9Fτ]L+2 "$: _ Ier{X2d051eN?_e+ Sa(mlT\SҘ gg0&CD0I Ck_yB$$ R[[J塵N1T] Eu:.wDm^\ڶr\Zv; GgJ,h8AD# 9;=Jm٩EE)RôȐZl%m{mٍّ0@9WMzw3OiV*9,"9a~0or;KyYsR&7h(9GY V(B>L%K<,+ %ddbr"L&&&cJ* Ӵf,LleDr5IKmf)F{$k}TjD2TP^њ!6Un$*ʸcX8.ls.HSk1N7'U;L$ɓeXFPGPd)Lӱ6oLSF~<8<%xc[3l'[qwwݶ2;C?r'鑷G4H*u*M@r'!)va͆}r_n|iCE~ B oOUH@f9vV:d{|{Dwmw}C\Nk8cEH2*Av:`7)U3*wI5H4AH1pf׆g ۡWcpڙ" pc)-$F m5d5IуWj%\OX~N ST'9]MsNf!Ul_#5R h^fnM~˙ڐm Fit]!ޣG GndvƐIred-<StG4sCP#vwUdg@bX"IǮz9]gXFa'QWto'~BG`uAOC{ ͤB](<#, $>a1 00~w%m6kwjaN}6'bЪ3x@#m0IoOE=2Y̅×e|\YOBl[1D]9ˤ3,'r~{STðހ$+\ y̱4*6.q "rw,͆5U <<X8qJG |rheHxT/p\8B$%hq>*YKA?C~9I`QPF| qaϪDKtF Tfcg#k?+3⌷[e_@Ә㠄8 SȲ2&(\K#Ng$.y83|y*K_ 0PJAsGDJ!S1qΜ]gPdfErJE5;Osp9c_sk;15"rE@$uV/ky(Tątդ9Bg>3#Q[~ZcOj@3{um%9ӎf\iMj2֖ĽO"8yFצn;3iyPs"ҽKN8Ä!!8Cوf0c@ 8hlC]:{?|:-I {d?6ǘw:O-y ˑur=^%?b gab(HDML#svBۂB̴P8ΪDcyVcs-Vטf |DR}U#O_Zޭ(G}-x5hnAWuDTv f/*ݤX( m3Ff;<'8\8f떥&BէSqE3|bLI`ьv&.q_dL=z2 g~$բtegސjn\nn䕓I2ٽKd1ZH "{'Rj :N`L!;Mզ;%'}ۜX1N:1Vd.C|דPzHFO;jEs\ &DxӧRO{[]x^q 7){]|KrcnXu6"p7qϗZ/]PzP9B hQDP'h/"h:v0h3#~7acS 5k!;7vN`,ފbg9 784ϑԥ%V14G!B d/ϥLGx 20L\i!"chQ R9Kcdׇum}3x1>bSZCe=<$WU7mS)"[%JyE%+KŃVsWqG4#M_ԧ .B-?i&u,qrRoӡz9db\XeJZ..7M-"e&?Hgbh7.c̰Dy!8[Q 9 Cqxu!9Qtpp1S:I~Yv7:ݟZ&!%3ј%C K;n%4ecQ17{Q}q<+|N;Ur&Nxwvl+p |{|n詧uKݰSx{S +-;p>]X3 ءf=hĘcD^"CGPpk{8"2H2|$,%YiS_lU"#_)x5LZa|y 5cxɱU.72,亚Odzqf-w;J%m#_4w,l%ZǑZnoRDxmcF36*=ڪ7Զ"ej&m۶m۾v=?> Ҿ־~~%X[hx_hBM5&d\ShJM5 M5fL5fl]shNͥ5|_ hA-!(*jja-EZR-QW=2ZVC ZQ+ieUVZSkimuPicmM6R[i6ViQ;igUiw=>Wi:P`Cu:RGhcu :Q'd1:Ut3u9:W|] u.%Tr]+u5Vzݠun-Uvݡ;u=W~=#zTq='3zVy^+zUu7;zW}}>'Ts}/7V{~/Uw?psX>}\ |B'I|R')|Jʧi|Z>3`gY}69}.y}>}!O/^׽M_E}1_ܗ%mx{|i_Ɨ/+koo[}ַ᾽;N#|Ww=|O}|_|~!~~G1~ ~')>Ot?l?|/b/r¯jƯzofe!CX+Zc6X-6kcVWWWWWWWWWWWWWWW~?~?'~O ?'~O ?~_~_~_~_WWWWWWWWWWWWWWWW77777777777777777777777777777777y~yn9|y;ﰿ|suy|ׅc9=9=c}ss}y^gy~бcAǂ~ z)QС?Aw :%JЕ'AO #GЏA7nt#FЍA7nt#FЍA7nt#FЍA7nt#FЍA7n:!BЃAx?}^|x>|ޏ6|t :p;pBt҇сK' D>].|]t&Mtӝ§?хO= z=t)zSӭ_уOǢE>]>|-[еkAׂ] iIߒ%}K洤sɜgI,ϒ%Y2%=L泤|t1ǒ>&}L汤<2ǒn&L汤I?~&XdKz4iӤ'}N9sI>'}N9sI>'}N9sI>'}N9sI>'}N9sI>'}N9rI'=Nz8qҫw8(Qң/IW$It"Aҁ'^O|}/<\p[nقO -͂ >,x࿂ +x¼PZOSM3PB w<soc_W\SI|A/~\_[xo ½p/, =p+ |_o@0&&/(\/|\.)/.test(t)?t:null}class s{constructor(){this.isVisible=!1,this.lazy=!1}componentWillLoad(){this.waitUntilVisible(this.el,"50px",()=>{this.isVisible=!0,this.loadIcon()})}componentDidUnload(){this.io&&(this.io.disconnect(),this.io=void 0)}waitUntilVisible(t,e,i){if(this.lazy&&this.win&&this.win.IntersectionObserver){const s=this.io=new this.win.IntersectionObserver(t=>{t[0].isIntersecting&&(s.disconnect(),this.io=void 0,i())},{rootMargin:e});s.observe(t)}else i()}loadIcon(){if(!this.isServer&&this.isVisible){const t=this.getUrl();t&&function(t,e,i){let s=n.get(e);return s||(s=fetch(e,{cache:"force-cache"}).then(t=>t.ok?t.text():Promise.resolve(null)).then(e=>(function(t,e,i){if(e){const i=t.createDocumentFragment(),s=t.createElement("div");s.innerHTML=e,i.appendChild(s);for(let t=s.childNodes.length-1;t>=0;t--)"svg"!==s.childNodes[t].nodeName.toLowerCase()&&s.removeChild(s.childNodes[t]);const n=s.firstElementChild;if(n&&"svg"===n.nodeName.toLowerCase()&&(n.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(let t=0;tthis.svgContent=t)}if(!this.ariaLabel){const t=e(this.name,this.mode,this.ios,this.md);t&&(this.ariaLabel=t.replace("ios-","").replace("md-","").replace(/\-/g," "))}}getUrl(){let t=i(this.src);return t||((t=e(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=i(this.icon))?t:(t=e(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)}getNamedUrl(t){return`${this.resourcesUrl}svg/${t}.svg`}hostData(){return{role:"img",class:Object.assign({},(t=this.color,t?{"ion-color":!0,[`ion-color-${t}`]:!0}:null),{[`icon-${this.size}`]:!!this.size})};var t}render(){return t("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})}static get is(){return"ion-icon"}static get encapsulation(){return"shadow"}static get properties(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}}static get style(){return".sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.ion-color.sc-ion-icon-h{color:var(--ion-color-base)!important}.icon-small.sc-ion-icon-h{font-size:var(--ion-icon-size-small,18px)!important}.icon-large.sc-ion-icon-h{font-size:var(--ion-icon-size-large,32px)!important}.icon-inner.sc-ion-icon, svg.sc-ion-icon{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}"}}const n=new Map;export{s as IonIcon};PK}w\jionicons/ionicons.z9r2cndl.jsnu[/*! document-register-element, 1.7.0 https://github.com/WebReflection/document-register-element (C) Andrea Giammarchi - @WebReflection - Mit Style License */ if (!window['s-ce1']) { window['s-ce1'] = true; (function(e,t){"use strict";function Ht(){var e=wt.splice(0,wt.length);Et=0;while(e.length)e.shift().call(null,e.shift())}function Bt(e,t){for(var n=0,r=e.length;n1)&&Zt(this)}}}),ot(u,h,{value:function(e){-1<_.call(a,e)&&o[h].apply(this,arguments)}}),o[d]&&ot(u,p,{value:o[d]}),o[v]&&ot(u,g,{value:o[v]}),i&&(f[c]=i),e=e.toUpperCase(),G[e]={constructor:t,create:i?[i,et(e)]:[e]},Z.set(t,e),n[s](e.toLowerCase(),f),en(e),Y[e].r()}function Gt(e){var t=G[e.toUpperCase()];return t&&t.constructor}function Yt(e){return typeof e=="string"?e:e&&e.is||""}function Zt(e){var t=e[h],n=t?e.attributes:j,r=n.length,i;while(r--)i=n[r],t.call(e,i.name||i.nodeName,null,i.value||i.nodeValue)}function en(e){return e=e.toUpperCase(),e in Y||(Y[e]={},Y[e].p=new K(function(t){Y[e].r=t})),Y[e].p}function tn(){X&&delete e.customElements,B(e,"customElements",{configurable:!0,value:new Kt}),B(e,"CustomElementRegistry",{configurable:!0,value:Kt});for(var t=function(t){var r=e[t];if(r){e[t]=function(t){var i,s;return t||(t=this),t[W]||(Q=!0,i=G[Z.get(t.constructor)],s=V&&i.create.length===1,t=s?Reflect.construct(r,j,i.constructor):n.createElement.apply(n,i.create),t[W]=!0,Q=!1,s||Zt(t)),t},e[t].prototype=r.prototype;try{r.prototype.constructor=e[t]}catch(i){z=!0,B(r,W,{value:e[t]})}}},r=i.get(/^HTML[A-Z]*[a-z]/),o=r.length;o--;t(r[o]));n.createElement=function(e,t){var n=Yt(t);return n?gt.call(this,e,et(n)):gt.call(this,e)},St||(Tt=!0,n[s](""))}var n=e.document,r=e.Object,i=function(e){var t=/^[A-Z]+[a-z]/,n=function(e){var t=[],n;for(n in s)e.test(n)&&t.push(n);return t},i=function(e,t){t=t.toLowerCase(),t in s||(s[e]=(s[e]||[]).concat(t),s[t]=s[t.toUpperCase()]=e)},s=(r.create||r)(null),o={},u,a,f,l;for(a in e)for(l in e[a]){f=e[a][l],s[l]=f;for(u=0;u>0),u="addEventListener",a="attached",f="Callback",l="detached",c="extends",h="attributeChanged"+f,p=a+f,d="connected"+f,v="disconnected"+f,m="created"+f,g=l+f,y="ADDITION",b="MODIFICATION",w="REMOVAL",E="DOMAttrModified",S="DOMContentLoaded",x="DOMSubtreeModified",T="<",N="=",C=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,k=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],L=[],A=[],O="",M=n.documentElement,_=L.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},D=r.prototype,P=D.hasOwnProperty,H=D.isPrototypeOf,B=r.defineProperty,j=[],F=r.getOwnPropertyDescriptor,I=r.getOwnPropertyNames,q=r.getPrototypeOf,R=r.setPrototypeOf,U=!!r.__proto__,z=!1,W="__dreCEv1",X=e.customElements,V=!/^force/.test(t.type)&&!!(X&&X.define&&X.get&&X.whenDefined),$=r.create||r,J=e.Map||function(){var t=[],n=[],r;return{get:function(e){return n[_.call(t,e)]},set:function(e,i){r=_.call(t,e),r<0?n[t.push(e)-1]=i:n[r]=i}}},K=e.Promise||function(e){function i(e){n=!0;while(t.length)t.shift()(e)}var t=[],n=!1,r={"catch":function(){return r},then:function(e){return t.push(e),n&&setTimeout(i,1),r}};return e(i),r},Q=!1,G=$(null),Y=$(null),Z=new J,et=function(e){return e.toLowerCase()},tt=r.create||function sn(e){return e?(sn.prototype=e,new sn):this},nt=R||(U?function(e,t){return e.__proto__=t,e}:I&&F?function(){function e(e,t){for(var n,r=I(t),i=0,s=r.length;i>>0;if("function"!==typeof c)throw new TypeError("predicate must be a function");for(var a=0;a>>0;if(0===n)return!1;var i,o,a=0|e,u=Math.max(0<=a?a:n-Math.abs(a),0);for(;uthis.length)a=this.length;return this.substring(a-b.length,a)===b}}); /*! String.prototype.includes */ String.prototype.includes||(String.prototype.includes=function(b,a){"number"!==typeof a&&(a=0);return a+b.length>this.length?!1:-1!==this.indexOf(b,a)}); /*! String.prototype.startsWith */ String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{writable:!0,configurable:!0,value:function(b,a){return this.substr(!a||0>a?0:+a,b.length)===b}}); /*! es6-promise - a tiny implementation of Promises/A+. Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) Licensed under MIT license See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE v4.2.4+314e4831 */ (window.ES6Promise=function(){function t(){var t=setTimeout;return function(){return t(r,1)}}function r(){for(var t=0;tthis.status;this.statusText="statusText"in b?b.statusText:"OK";this.headers=new d(b.headers);this.url=b.url||"";this._initBody(a)}if(!e.fetch){var D="Symbol"in e&&"iterator"in Symbol,m;if(m="FileReader"in e&&"Blob"in e)try{new Blob,m=!0}catch(a){m=!1}var g={searchParams:"URLSearchParams"in e,iterable:D, blob:m,formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(g.arrayBuffer){var E="[object Int8Array];[object Uint8Array];[object Uint8ClampedArray];[object Int16Array];[object Uint16Array];[object Int32Array];[object Uint32Array];[object Float32Array];[object Float64Array]".split(";");var y=function(a){return a&&DataView.prototype.isPrototypeOf(a)};var z=ArrayBuffer.isView||function(a){return a&&-11?o(r[1]):"")}}}else if(e instanceof t){var a=this;e.forEach(function(e,t){a.append(e,t)})}};var a=t.prototype;a.append=function(e,t){if(e in this._entries){this._entries[e].push(t.toString())}else{this._entries[e]=[t.toString()]}};a.delete=function(e){delete this._entries[e]};a.get=function(e){return e in this._entries?this._entries[e][0]:null};a.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]};a.has=function(e){return e in this._entries};a.set=function(e,t){this._entries[e]=[t.toString()]};a.forEach=function(e,t){var n;for(var r in this._entries){if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var i=0;i0&&u[u.length-1])&&(6===r[0]||2===r[0])){f=0;continue}if(3===r[0]&&(!u||r[1]>u[0]&&r[1]=0;u--)(o=a[u])["s-hn"]!==d&&o["s-ol"]&&(t.D(o),t.I(c(o),o,f(o)),t.D(o["s-ol"]),o["s-ol"]=null,v=!0),i&&e(o,i);n.L=!1}function i(n,e,i,u,o,c,a,s){var l=n["s-cr"];for((a=l&&t.U(l)||n).shadowRoot&&t.q(a)===d&&(a=a.shadowRoot);o<=c;++o)u[o]&&(s=Z(u[o].vtext)?t.S(u[o].vtext):r(null,i,o,n))&&(u[o].M=s,t.I(a,s,f(e)))}function u(n,r,i,u){for(;r<=i;++r)Z(n[r])&&(u=n[r].M,l=!0,u["s-ol"]?t.D(u["s-ol"]):e(u,!0),t.D(u))}function o(n,t){return n.vtag===t.vtag&&n.vkey===t.vkey&&("slot"!==n.vtag||n.vname===t.vname)}function f(n){return n&&n["s-ol"]?n["s-ol"]:n}function c(n){return t.U(n["s-ol"]?n["s-ol"]:n)}var a,s,l,v,h,d,m,y=[];return function b(g,w,k,M,$,j,E,O,x,C,S,W){if(m=g,d=t.q(m),h=m["s-cr"],a=M,s=m["s-sc"],v=l=!1,function a(s,l,v){var h=l.M=s.M,d=s.vchildren,m=l.vchildren;Q=l.M&&Z(t.B(l.M))&&void 0!==l.M.ownerSVGElement,Q="svg"===l.vtag||"foreignObject"!==l.vtag&&Q,Z(l.vtext)?(v=h["s-cr"])?t._(t.U(v),l.vtext):s.vtext!==l.vtext&&t._(h,l.vtext):("slot"!==l.vtag&&p(n,s,l,Q),Z(d)&&Z(m)?function y(n,s,l,v,p,h,d,m){for(var y=0,b=0,g=s.length-1,w=s[0],k=s[g],M=v.length-1,$=v[0],j=v[M];y<=g&&b<=M;)if(null==w)w=s[++y];else if(null==k)k=s[--g];else if(null==$)$=v[++b];else if(null==j)j=v[--M];else if(o(w,$))a(w,$),w=s[++y],$=v[++b];else if(o(k,j))a(k,j),k=s[--g],j=v[--M];else if(o(w,j))"slot"!==w.vtag&&"slot"!==j.vtag||e(t.U(w.M)),a(w,j),t.I(n,w.M,t.F(k.M)),w=s[++y],j=v[--M];else if(o(k,$))"slot"!==w.vtag&&"slot"!==j.vtag||e(t.U(k.M)),a(k,$),t.I(n,k.M,w.M),k=s[--g],$=v[++b];else{for(p=null,h=y;h<=g;++h)if(s[h]&&Z(s[h].vkey)&&s[h].vkey===$.vkey){p=h;break}Z(p)?((m=s[p]).vtag!==$.vtag?d=r(s&&s[b],l,p,n):(a(m,$),s[p]=void 0,d=m.M),$=v[++b]):(d=r(s&&s[b],l,b,n),$=v[++b]),d&&t.I(c(w.M),d,f(w.M))}y>g?i(n,null==v[M+1]?null:v[M+1].M,l,v,b,M):b>M&&u(s,y,g)}(h,d,l,m):Z(m)?(Z(s.vtext)&&t._(h,""),i(h,null,l,m,0,m.length-1)):Z(d)&&u(d,0,d.length-1)),Q&&"svg"===l.vtag&&(Q=!1)}(w,k),v){for(function n(r,e,i,u,o,f,c,a,s,v){for(o=0,f=(e=t.P(r)).length;o=0;c--)(u=a[c])["s-cn"]||u["s-nr"]||u["s-hn"]===i["s-hn"]||((3===(v=t.H(u))||8===v)&&""===s||1===v&&null===t.Y(u,"slot")&&""===s||1===v&&t.Y(u,"slot")===s)&&(y.some(function(n){return n.Z===u})||(l=!0,u["s-sn"]=s,y.push({z:i,Z:u})));1===t.H(i)&&n(i)}}(k.M),E=0;E2;)X.push(arguments[f]);for(;X.length>0;){var c=X.pop();if(c&&void 0!==c.pop)for(f=c.length;f--;)X.push(c[f]);else"boolean"==typeof c&&(c=null),(o="function"!=typeof n)&&(null==c?c="":"number"==typeof c?c=String(c):"string"!=typeof c&&(o=!1)),o&&u?i[i.length-1].vtext+=c:null===i?i=[o?{vtext:c}:c]:i.push(o?{vtext:c}:c),u=o}if(null!=t){if(t.className&&(t.class=t.className),"object"==typeof t.class){for(f in t.class)t.class[f]&&X.push(f);t.class=X.join(" "),X.length=0}null!=t.key&&(r=t.key),null!=t.name&&(e=t.name)}return"function"==typeof n?n(t,i||[],J):{vtag:n,vchildren:i,vtext:void 0,vattrs:t,vkey:r,vname:e,M:void 0,j:!1}}function b(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}function g(n){return{Q:n[0],X:n[1],J:!!n[2],V:!!n[3],nn:!!n[4]}}function w(n,t){if(Z(t)&&"object"!=typeof t&&"function"!=typeof t){if(n===Boolean||4===n)return"false"!==t&&(""===t||!!t);if(n===Number||8===n)return parseFloat(t);if(n===String||2===n)return t.toString()}return t}function k(n,t){n.tn.add(t),n.rn.has(t)||(n.rn.set(t,!0),n.en?n.queue.write(function(){return M(n,t)}):n.queue.tick(function(){return M(n,t)}))}function M(r,e,i,u,o){return n(this,void 0,void 0,function(){var n,i;return t(this,function(t){switch(t.u){case 0:if(r.rn.delete(e),r.in.has(e))return[3,12];if(u=r.un.get(e))return[3,6];if((o=r.on.get(e))&&!o["s-rn"])return(o["s-rc"]=o["s-rc"]||[]).push(function(){M(r,e)}),[2];if(!(u=function c(n,t,r,e,i,u,o){try{e=new(i=n.l(t).fn),function f(n,t,r,e,i){n.cn.set(e,r),n.an.has(r)||n.an.set(r,{}),Object.entries(Object.assign({color:{type:String}},t.properties,{mode:{type:String}})).forEach(function(t){var u=t[0],o=t[1];(function f(n,t,r,e,i,u,o,c){if(t.type||t.state){var a=n.an.get(r);t.state||(!t.attr||void 0!==a[i]&&""!==a[i]||(o=u&&u.sn)&&Z(c=o[t.attr])&&(a[i]=w(t.type,c)),r.hasOwnProperty(i)&&(void 0===a[i]&&(a[i]=w(t.type,r[i])),"mode"!==i&&delete r[i])),e.hasOwnProperty(i)&&void 0===a[i]&&(a[i]=e[i]),t.watchCallbacks&&(a[V+i]=t.watchCallbacks.slice()),E(e,i,function s(t){return(t=n.an.get(n.cn.get(this)))&&t[i]},function l(r,e){(e=n.cn.get(this))&&(t.state||t.mutable)&&$(n,e,i,r)})}else if(t.elementRef)j(e,i,r);else if(t.context){var v=n.ln(t.context);void 0!==v&&j(e,i,v.vn&&v.vn(r)||v)}})(n,o,r,e,u,i)})}(n,i,t,e,r)}catch(r){e={},n.pn(r,7,t,!0)}return n.un.set(t,e),e}(r,e,r.hn.get(e))))return[3,5];t.u=1;case 1:return t.f.push([1,4,,5]),u.componentWillLoad?[4,u.componentWillLoad()]:[3,3];case 2:t.c(),t.u=3;case 3:return[3,5];case 4:return n=t.c(),r.pn(n,3,e),[3,5];case 5:return[3,11];case 6:if(!u)return[3,11];t.u=7;case 7:return t.f.push([7,10,,11]),u.componentWillUpdate?[4,u.componentWillUpdate()]:[3,9];case 8:t.c(),t.u=9;case 9:return[3,11];case 10:return i=t.c(),r.pn(i,5,e),[3,11];case 11:(function a(n,t,r,e){try{var i,u=t.fn.host,o=t.fn.encapsulation,c="shadow"===o&&n.b.dn,a=r;if(i=function s(n,t,r){return n&&Object.keys(n).forEach(function(e){n[e].reflectToAttr&&((r=r||{})[e]=t[e])}),r}(t.fn.properties,e),c&&(a=r.shadowRoot),!r["s-rn"]){n.mn(n,n.b,t,r);var l=r["s-sc"];l&&(n.b.O(r,f(l,!0)),"scoped"===o&&n.b.O(r,f(l)))}if(e.render||e.hostData||u||i){n.yn=!0;var v=e.render&&e.render(),p=void 0;p=e.hostData&&e.hostData(),i&&(p=p?Object.assign(p,i):i),n.yn=!1;var h=n.bn.get(r)||{};h.M=a;var d=y(null,p,v);d.j=!0,n.bn.set(r,n.render(r,h,d,c,o))}n.gn&&n.gn.wn(r),r["s-rn"]=!0,r["s-rc"]&&(r["s-rc"].forEach(function(n){return n()}),r["s-rc"]=null)}catch(t){n.yn=!1,n.pn(t,8,r,!0)}})(r,r.l(e),e,u),e["s-init"](),t.u=12;case 12:return[2]}})})}function $(n,t,r,e,i){var u=n.an.get(t);u||n.an.set(t,u={});var o=u[r];if(e!==o&&(u[r]=e,i=n.un.get(t))){var f=u[V+r];if(f)for(var c=0;c-1&&e.splice(r,1),e.length||i["s-init"]&&i["s-init"]()),n.on.delete(t)),n.kn.length&&!n.tn.size)for(;u=n.kn.shift();)u()}function x(n,t,r,e){if(r.connectedCallback=function(){(function r(n,t,e){n.in.delete(e),n.Mn.has(e)||(n.tn.add(e),n.Mn.set(e,!0),e["s-id"]||(e["s-id"]=n.$n()),function i(n,t,r){for(r=t;r=n.b.B(r);)if(n.R(r)){n.N.has(t)||(n.on.set(t,r),(r["s-ld"]=r["s-ld"]||[]).push(t));break}}(n,e),n.queue.tick(function(){n.hn.set(e,function r(n,t,e,i,u){return e.mode||(e.mode=n.jn(e)),e["s-cr"]||n.Y(e,B)||n.dn&&1===t.En||(e["s-cr"]=n.S(""),e["s-cr"]["s-cn"]=!0,n.I(e,e["s-cr"],n.P(e)[0])),n.dn||1!==t.En||(e.shadowRoot=e),1===t.En&&n.dn&&!e.shadowRoot&&n.On(e,{mode:"open"}),i={xn:e["s-id"],sn:{}},t.v&&Object.keys(t.v).forEach(function(r){(u=t.v[r].d)&&(i.sn[u]=n.Y(e,u))}),i}(n.b,t,e)),n.Cn(t,e)}))})(n,t,this)},r.disconnectedCallback=function(){(function t(n,r){if(!n.L&&function e(n,t){for(;t;){if(!n.U(t))return 9!==n.H(t);t=n.U(t)}}(n.b,r)){n.in.set(r,!0),O(n,r),d(n.bn.get(r),!0),n.b.k(r),n.Sn.delete(r);var i=n.un.get(r);i&&i.componentDidUnload&&i.componentDidUnload(),n.gn&&n.gn.Wn(r),[n.on,n.An,n.hn].forEach(function(n){return n.delete(r)})}})(n,this)},r["s-init"]=function(){(function t(n,r,e,i,u,o){if(function n(t,r){for(var e=0;e0?f.join(",").trim():void 0}}(n,r);if(!e)return t.push(n.substring(r,n.length)),n.length;var u=e.Ln,o=null!=e.Pn?N(e.Pn):void 0;return t.push(n.substring(r,e.start),function(n){return function t(n,r,e){return n[r]?n[r]:e?A(e,n):""}(n,u,o)}),e.end}function A(n,t){for(var r="",e=0;e0&&n.parsedSelector.split(",").forEach(function(n){n=n.trim(),r.push({selector:n,Dn:e,Xn:1,Jn:t})}),t++}),r}(t),Vn:e.length>1}}function I(n,t){var r=D(t.innerHTML);r.nt=t,n.push(r)}function U(n,t,r){return function e(n,t,r){return n.replace(new RegExp(t,"g"),r)}(n,"\\."+t,"."+r)}function q(n,t,r){var e=r.href;return fetch(e).then(function(n){return n.text()}).then(function(i){if(function u(n){return n.indexOf("var(")>-1||mn.test(n)}(i)&&r.parentNode){(function o(n){return yn.lastIndex=0,yn.test(n)})(i)&&(i=function f(n,t){var r=t.replace(/[^\/]*$/,"");return n.replace(yn,function(n,t){var e=r+t;return n.replace(t,e)})}(i,e));var c=n.createElement("style");c.innerHTML=i,I(t,c),r.parentNode.insertBefore(c,r),r.remove()}}).catch(function(n){})}var B="ssrv",_="ssrc",F="$",H={},Y={enter:13,escape:27,space:32,tab:9,left:37,up:38,right:39,down:40},Z=function(n){return null!=n},z=function(n){return n.toLowerCase()},G=function(){},K="http://www.w3.org/1999/xlink",Q=!1,X=[],J={forEach:function(n,t){n.forEach(function(n,r,e){return t(b(n),r,e)})},map:function(n,t){return n.map(function(n,r,e){return function i(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}(t(b(n),r,e))})}},V="wc-",nn=function nn(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector=""},tn={Zn:1,Hn:7,_n:4,Yn:1e3},rn="{",en="}",un={zn:/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,Gn:/@import[^;]*;/gim,tt:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,rt:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,et:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,it:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,Fn:/^@[^\s]*keyframes/,Bn:/\s+/g},on="--",fn="@media",cn="@",an=/\bvar\(/,sn=/\B--[\w-]+\s*:/,ln=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,vn=/^[\t ]+\n/gm,pn=/[^{}]*{\s*}/gm,hn="!important",dn=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm,mn=/[\s;{]--[-a-zA-Z0-9]+\s*:/m,yn=/url[\s]*\([\s]*['"]?(?![http|\/])([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim,bn=function(){function n(n,t){this.ut=n,this.ot=t,this.ft=0,this.ct=new WeakMap,this.at=new WeakMap,this.st=[],this.lt=new Map}return n.prototype.vt=function(){var n=this;return new Promise(function(t){n.ut.requestAnimationFrame(function(){(function r(n,t){return function r(n,t){for(var r=[],e=n.querySelectorAll('link[rel="stylesheet"][href]'),i=0;i=0;n--){var t=$[n],r=t[0],e=t[1],i=t[2];e.every(l)&&!l(r)&&($.splice(n,1),v(r,e,i))}}()}function b(n,t){var r=!W.dn;w(i+n+(r?".sc":"")+".es5.entry.js")}function w(n){function t(){clearTimeout(r),e.onerror=e.onload=null,W.D(e),E.delete(n)}var r,e;E.has(n)||(E.add(n),(e=W.A("script")).charset="utf-8",e.async=!0,e.src=n,r=setTimeout(t,12e4),e.onerror=e.onload=t,W.T(W.Tn.head,e))}var M={html:{}},$=[],j=new Map,E=new Set,O={},S=r[n]=r[n]||{},W=function A(n,t,r){n.ael||(n.ael=function(n,t,r,e){return n.addEventListener(t,r,e)},n.rel=function(n,t,r,e){return n.removeEventListener(t,r,e)});var e=new WeakMap;"function"!=typeof t.CustomEvent&&(t.CustomEvent=function(n,t,e){return(e=r.createEvent("CustomEvent")).initCustomEvent(n,t.bubbles,t.cancelable,t.detail),e},t.CustomEvent.prototype=t.Event.prototype);var i={Tn:r,dn:!!r.documentElement.attachShadow,gt:!1,H:function(n){return n.nodeType},A:function(n){return r.createElement(n)},W:function(n,t){return r.createElementNS(n,t)},S:function(n){return r.createTextNode(n)},wt:function(n){return r.createComment(n)},I:function(n,t,r){return n.insertBefore(t,r)},D:function(n){return n.remove()},T:function(n,t){return n.appendChild(t)},O:function(n,t){if(n.classList)n.classList.add(t);else if("svg"===n.nodeName.toLowerCase()){var r=n.getAttribute("class")||"";r.split(" ").includes(t)||(r+=" "+t),n.setAttribute("class",r.trim())}},P:function(n){return n.childNodes},U:function(n){return n.parentNode},F:function(n){return n.nextSibling},G:function(n){return n.previousSibling},q:function(n){return z(n.nodeName)},K:function(n){return n.textContent},_:function(n,t){return n.textContent=t},Y:function(n,t){return n.getAttribute(t)},kt:function(n,t,r){return n.setAttribute(t,r)},Mt:function(n,t,r,e){return n.setAttributeNS(t,r,e)},y:function(n,t){return n.removeAttribute(t)},g:function(n,t){return n.hasAttribute(t)},jn:function(t){return t.getAttribute("mode")||(n.Context||{}).mode},$t:function(n,e){return"child"===e?n.firstElementChild:"parent"===e?i.B(n):"body"===e?r.body:"document"===e?r:"window"===e?t:n},w:function(t,r,u,o,f,c,a,s){var l=r,v=t,p=e.get(t);if(p&&p[l]&&p[l](),"string"==typeof c?v=i.$t(t,c):"object"==typeof c?v=c:(s=r.split(":")).length>1&&(v=i.$t(t,s[0]),r=s[1]),v){var h=u;(s=r.split(".")).length>1&&(r=s[0],h=function(n){n.keyCode===Y[s[1]]&&u(n)}),a=i.gt?{capture:!!o,passive:!!f}:!!o,n.ael(v,r,h,a),p||e.set(t,p={}),p[l]=function(){v&&n.rel(v,r,h,a),p[l]=null}}},k:function(n,t){var r=e.get(n);r&&(t?r[t]&&r[t]():Object.keys(r).forEach(function(n){r[n]&&r[n]()}))},jt:function(n,r,e){return n&&n.dispatchEvent(new t.CustomEvent(r,e))},B:function(n,t){return(t=i.U(n))&&11===i.H(t)?t.host:t},On:function(n,t){return n.attachShadow(t)}};return i}(S,r,e);t.isServer=t.isPrerender=!(t.isClient=!0),t.window=r,t.location=r.location,t.document=e,t.resourcesUrl=t.publicPath=i,S.h=y,S.Context=t;var R=r["s-defined"]=r["s-defined"]||{},N=0,T={b:W,Et:a,Ot:t.emit,gn:f,l:function(n){return M[W.q(n)]},ln:function(n){return t[n]},isClient:!0,R:function(n){return!(!R[W.q(n)]&&!T.l(n))},pn:function(n,t,r){},$n:function(){return n+N++},xt:function(n){return function t(n,r,e){return{create:C(n,r,e,"create"),componentOnReady:C(n,r,e,"componentOnReady")}}(W,O,n)},queue:t.queue=function L(n,t){function r(t){return function(r){t.push(r),p||(p=!0,n.raf(u))}}function e(n){for(var t=0;t0&&(l.push.apply(l,s),s.length=0),(p=a.length+s.length+l.length>0)?n.raf(u):v=0}var o=function(){return t.performance.now()},f=Promise.resolve(),c=[],a=[],s=[],l=[],v=0,p=!1;return n.raf||(n.raf=t.requestAnimationFrame.bind(t)),{tick:function(n){c.push(n),1===c.length&&f.then(function(){return e(c)})},read:r(a),write:r(s)}}(S,r),Cn:function P(n,t,r){var e="string"==typeof n.Ct?n.Ct:n.Ct[t.mode];s(e)?k(T,t):($.push([void 0,[e],function(){k(T,t)}]),f&&U?U.push(function(){return b(e)}):b(e))},en:!1,yn:!1,L:!1,on:new WeakMap,St:new WeakMap,Mn:new WeakMap,Sn:new WeakMap,Rn:new WeakMap,N:new WeakMap,cn:new WeakMap,hn:new WeakMap,un:new WeakMap,in:new WeakMap,rn:new WeakMap,An:new WeakMap,Wt:new WeakMap,bn:new WeakMap,an:new WeakMap,tn:new Set,kn:[]};S.onReady=function(){return new Promise(function(n){return T.queue.write(function(){return T.tn.size?T.kn.push(n):n()})})},T.render=h(T,W);var D=W.Tn.documentElement;D["s-ld"]=[],D["s-rn"]=!0,D["s-init"]=function(){T.N.set(D,S.loaded=T.en=!0),W.jt(r,"appload",{detail:{namespace:n}})},function I(n,t,r){var e,i,u,o,f,c,a=r.querySelectorAll("["+B+"]"),s=a.length;if(s>0)for(n.N.set(r,!0),o=0;o=0;u--)t.componentOnReady(i[u][0],i[u][1])&&i.splice(u,1);for(u=0;u0&&/(\/|\.)/.test(t)?t:null}class s{constructor(){this.isVisible=!1,this.lazy=!1}componentWillLoad(){this.waitUntilVisible(this.el,"50px",()=>{this.isVisible=!0,this.loadIcon()})}componentDidUnload(){this.io&&(this.io.disconnect(),this.io=void 0)}waitUntilVisible(t,e,i){if(this.lazy&&this.win&&this.win.IntersectionObserver){const s=this.io=new this.win.IntersectionObserver(t=>{t[0].isIntersecting&&(s.disconnect(),this.io=void 0,i())},{rootMargin:e});s.observe(t)}else i()}loadIcon(){if(!this.isServer&&this.isVisible){const t=this.getUrl();t&&function(t,e,i){let s=n.get(e);return s||(s=fetch(e,{cache:"force-cache"}).then(t=>t.ok?t.text():Promise.resolve(null)).then(e=>(function(t,e,i){if(e){const i=t.createDocumentFragment(),s=t.createElement("div");s.innerHTML=e,i.appendChild(s);for(let t=s.childNodes.length-1;t>=0;t--)"svg"!==s.childNodes[t].nodeName.toLowerCase()&&s.removeChild(s.childNodes[t]);const n=s.firstElementChild;if(n&&"svg"===n.nodeName.toLowerCase()&&(n.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(let t=0;tthis.svgContent=t)}if(!this.ariaLabel){const t=e(this.name,this.mode,this.ios,this.md);t&&(this.ariaLabel=t.replace("ios-","").replace("md-","").replace(/\-/g," "))}}getUrl(){let t=i(this.src);return t||((t=e(this.name,this.mode,this.ios,this.md))?this.getNamedUrl(t):(t=i(this.icon))?t:(t=e(this.icon,this.mode,this.ios,this.md))?this.getNamedUrl(t):null)}getNamedUrl(t){return`${this.resourcesUrl}svg/${t}.svg`}hostData(){return{role:"img",class:Object.assign({},(t=this.color,t?{"ion-color":!0,[`ion-color-${t}`]:!0}:null),{[`icon-${this.size}`]:!!this.size})};var t}render(){return t("div",!this.isServer&&this.svgContent?{class:"icon-inner",innerHTML:this.svgContent}:{class:"icon-inner"})}static get is(){return"ion-icon"}static get encapsulation(){return"shadow"}static get properties(){return{ariaLabel:{type:String,attr:"aria-label",reflectToAttr:!0,mutable:!0},color:{type:String,attr:"color"},doc:{context:"document"},el:{elementRef:!0},icon:{type:String,attr:"icon",watchCallbacks:["loadIcon"]},ios:{type:String,attr:"ios"},isServer:{context:"isServer"},isVisible:{state:!0},lazy:{type:Boolean,attr:"lazy"},md:{type:String,attr:"md"},mode:{type:String,attr:"mode"},name:{type:String,attr:"name",watchCallbacks:["loadIcon"]},resourcesUrl:{context:"resourcesUrl"},size:{type:String,attr:"size"},src:{type:String,attr:"src",watchCallbacks:["loadIcon"]},svgContent:{state:!0},win:{context:"window"}}}static get style(){return":host{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}:host(.ion-color){color:var(--ion-color-base)!important}:host(.icon-small){font-size:var(--ion-icon-size-small,18px)!important}:host(.icon-large){font-size:var(--ion-icon-size-large,32px)!important}.icon-inner,svg{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}"}}const n=new Map;export{s as IonIcon};PK}w\)?e?eionicons/data.jsonnu[{"icons":[{"icons":["ios-add-circle-outline","md-add-circle-outline"],"tags":["circle"]},{"icons":["ios-add-circle","md-add-circle"],"tags":["add","circle"]},{"icons":["ios-add","md-add"],"tags":["add","include","invite","plus"]},{"icons":["ios-airplane","md-airplane"],"tags":["airplane","plane"]},{"icons":["ios-alarm","md-alarm"],"tags":["alarm"]},{"icons":["ios-albums","md-albums"],"tags":["albums","boxes","slides","square"]},{"icons":["ios-alert","md-alert"],"tags":["!","alert","attention","exclamation","notice","warning"]},{"icons":["ios-american-football","md-american-football"],"tags":["american","football"]},{"icons":["ios-analytics","md-analytics"],"tags":["analytics","data","metrics","track"]},{"icons":["ios-aperture","md-aperture"],"tags":["aperture","dark","images","levels","light","settings"]},{"icons":["ios-apps","md-apps"],"tags":["apps","applications"]},{"icons":["ios-appstore","md-appstore"],"tags":["appstore","store"]},{"icons":["ios-archive","md-archive"],"tags":["archive","email"]},{"icons":["ios-arrow-back","md-arrow-back"],"tags":["arrow","back","chevron","navigation"]},{"icons":["ios-arrow-down","md-arrow-down"],"tags":["arrow","chevron","down"]},{"icons":["ios-arrow-dropdown-circle","md-arrow-dropdown-circle"],"tags":["arrow","circle","dropdown"]},{"icons":["ios-arrow-dropdown","md-arrow-dropdown"],"tags":["arrow","dropdown"]},{"icons":["ios-arrow-dropleft-circle","md-arrow-dropleft-circle"],"tags":["arrow","circle","dropleft"]},{"icons":["ios-arrow-dropleft","md-arrow-dropleft"],"tags":["arrow","dropleft"]},{"icons":["ios-arrow-dropright-circle","md-arrow-dropright-circle"],"tags":["arrow","circle","dropright"]},{"icons":["ios-arrow-dropright","md-arrow-dropright"],"tags":["arrow","dropright"]},{"icons":["ios-arrow-dropup-circle","md-arrow-dropup-circle"],"tags":["arrow","circle","dropup"]},{"icons":["ios-arrow-dropup","md-arrow-dropup"],"tags":["arrow","dropup"]},{"icons":["ios-arrow-forward","md-arrow-forward"],"tags":["arrow","chevron","forward","navigation"]},{"icons":["ios-arrow-round-back","md-arrow-round-back"],"tags":["arrow","back","round"]},{"icons":["ios-arrow-round-down","md-arrow-round-down"],"tags":["arrow","down","round"]},{"icons":["ios-arrow-round-forward","md-arrow-round-forward"],"tags":["arrow","forward","round"]},{"icons":["ios-arrow-round-up","md-arrow-round-up"],"tags":["arrow","round","up"]},{"icons":["ios-arrow-up","md-arrow-up"],"tags":["arrow","chevron","up"]},{"icons":["ios-at","md-at"],"tags":["@","at"]},{"icons":["ios-attach","md-attach"],"tags":["attach"]},{"icons":["ios-backspace","md-backspace"],"tags":["backspace"]},{"icons":["ios-barcode","md-barcode"],"tags":["barcode","camera","reader"]},{"icons":["ios-baseball","md-baseball"],"tags":["baseball"]},{"icons":["ios-basket","md-basket"],"tags":["basket"]},{"icons":["ios-basketball","md-basketball"],"tags":["basketball"]},{"icons":["ios-battery-charging","md-battery-charging"],"tags":["battery","charging"]},{"icons":["ios-battery-dead","md-battery-dead"],"tags":["battery","dead"]},{"icons":["ios-battery-full","md-battery-full"],"tags":["battery","full"]},{"icons":["ios-beaker","md-beaker"],"tags":["beaker","flask","mixture","potion"]},{"icons":["ios-bed","md-bed"],"tags":["bed","sleep"]},{"icons":["ios-beer","md-beer"],"tags":["beer","drink","eat","food"]},{"icons":["ios-bicycle","md-bicycle"],"tags":["bicycle"]},{"icons":["ios-bluetooth","md-bluetooth"],"tags":["bluetooth","cloud","connection"]},{"icons":["ios-boat","md-boat"],"tags":["boat"]},{"icons":["ios-body","md-body"],"tags":["body"]},{"icons":["ios-bonfire","md-bonfire"],"tags":["bonfire","heat","hot"]},{"icons":["ios-book","md-book"],"tags":["book","read"]},{"icons":["ios-bookmark","md-bookmark"],"tags":["bookmark","favorite","save","tag"]},{"icons":["ios-bookmarks","md-bookmarks"],"tags":["bookmarks","favorite"]},{"icons":["ios-bowtie","md-bowtie"],"tags":["bowtie"]},{"icons":["ios-briefcase","md-briefcase"],"tags":["briefcase","folder","organize"]},{"icons":["ios-browsers","md-browsers"],"tags":["browsers","square"]},{"icons":["ios-brush","md-brush"],"tags":["brush"]},{"icons":["ios-bug","md-bug"],"tags":["bug","develop","error","hacker","program"]},{"icons":["ios-build","md-build"],"tags":["build"]},{"icons":["ios-bulb","md-bulb"],"tags":["bulb"]},{"icons":["ios-bus","md-bus"],"tags":["bus"]},{"icons":["ios-business","md-business"],"tags":["business"]},{"icons":["ios-cafe","md-cafe"],"tags":["cafe"]},{"icons":["ios-calculator","md-calculator"],"tags":["arithmatic","calculator","math"]},{"icons":["ios-calendar","md-calendar"],"tags":["calendar","date","month","week"]},{"icons":["ios-call","md-call"],"tags":["call","telephone"]},{"icons":["ios-camera","md-camera"],"tags":["camera","image","photo"]},{"icons":["ios-car","md-car"],"tags":["car"]},{"icons":["ios-card","md-card"],"tags":["$","card","cash","credit","debit","dollars","money","price","shopping"]},{"icons":["ios-cart","md-cart"],"tags":["cart"]},{"icons":["ios-cash","md-cash"],"tags":["$","cash","credit","debit","dollars","money","price","shopping"]},{"icons":["ios-cellular","md-cellular"],"tags":["cellular"]},{"icons":["ios-chatboxes","md-chatboxes"],"tags":["chatboxes","talk"]},{"icons":["ios-chatbubbles","md-chatbubbles"],"tags":["chatbubbles","talk"]},{"icons":["ios-checkbox-outline","md-checkbox-outline"],"tags":["checkbox"]},{"icons":["ios-checkbox","md-checkbox"],"tags":["checkbox"]},{"icons":["ios-checkmark-circle-outline","md-checkmark-circle-outline"],"tags":["checkmark"]},{"icons":["ios-checkmark-circle","md-checkmark-circle"],"tags":["checkmark","circle"]},{"icons":["ios-checkmark","md-checkmark"],"tags":["checkmark"]},{"icons":["ios-clipboard","md-clipboard"],"tags":["clipboard","write"]},{"icons":["ios-clock","md-clock"],"tags":["clock","time"]},{"icons":["ios-close-circle-outline","md-close-circle-outline"],"tags":["close","cicle"]},{"icons":["ios-close-circle","md-close-circle"],"tags":["circle","close"]},{"icons":["ios-close","md-close"],"tags":["close","delete","remove"]},{"icons":["ios-cloud-circle","md-cloud-circle"],"tags":["circle","cloud"]},{"icons":["ios-cloud-done","md-cloud-done"],"tags":["cloud","done"]},{"icons":["ios-cloud-download","md-cloud-download"],"tags":["cloud","download","storage"]},{"icons":["ios-cloud-outline","md-cloud-outline"],"tags":["cloud"]},{"icons":["ios-cloud-upload","md-cloud-upload"],"tags":["cloud","storage","upload"]},{"icons":["ios-cloud","md-cloud"],"tags":["cloud","storage","weather","whether"]},{"icons":["ios-cloudy-night","md-cloudy-night"],"tags":["cloudy","night","overcast","weather","whether"]},{"icons":["ios-cloudy","md-cloudy"],"tags":["cloudy","overcast","weather","whether"]},{"icons":["ios-code-download","md-code-download"],"tags":["code","develop","download","hacker","program"]},{"icons":["ios-code-working","md-code-working"],"tags":["code","develop","hacker","program","working"]},{"icons":["ios-code","md-code"],"tags":["code","develop","hacker","program"]},{"icons":["ios-cog","md-cog"],"tags":["cog","gear","options","settings"]},{"icons":["ios-color-fill","md-color-fill"],"tags":["color","fill"]},{"icons":["ios-color-filter","md-color-filter"],"tags":["color","filter"]},{"icons":["ios-color-palette","md-color-palette"],"tags":["color","palette"]},{"icons":["ios-color-wand","md-color-wand"],"tags":["color","wand"]},{"icons":["ios-compass","md-compass"],"tags":["compass","directions","location","navigation"]},{"icons":["ios-construct","md-construct"],"tags":["construct"]},{"icons":["ios-contact","md-contact"],"tags":["contact","people","users"]},{"icons":["ios-contacts","md-contacts"],"tags":["contacts","people","users"]},{"icons":["ios-contract","md-contract"],"tags":["contract"]},{"icons":["ios-contrast","md-contrast"],"tags":["contrast","dark","images","levels","light","settings"]},{"icons":["ios-copy","md-copy"],"tags":["copy","duplicate","paper"]},{"icons":["ios-create","md-create"],"tags":["create"]},{"icons":["ios-crop","md-crop"],"tags":["crop"]},{"icons":["ios-cube","md-cube"],"tags":["box","container","cube","square"]},{"icons":["ios-cut","md-cut"],"tags":["cut"]},{"icons":["ios-desktop","md-desktop"],"tags":["desktop"]},{"icons":["ios-disc","md-disc"],"tags":["cd","disc","vinyl"]},{"icons":["ios-document","md-document"],"tags":["document","file","paper"]},{"icons":["ios-done-all","md-done-all"],"tags":["all","done"]},{"icons":["ios-download","md-download"],"tags":["download","export"]},{"icons":["ios-easel","md-easel"],"tags":["easel"]},{"icons":["ios-egg","md-egg"],"tags":["baby","bird","birth","egg","twitter"]},{"icons":["ios-exit","md-exit"],"tags":["exit"]},{"icons":["ios-expand","md-expand"],"tags":["expand"]},{"icons":["ios-eye-off","md-eye-off"],"tags":["eye","off"]},{"icons":["ios-eye","md-eye"],"tags":["exposed","eye","look","see","view"]},{"icons":["ios-fastforward","md-fastforward"],"tags":["fastforward","jump","next","skip"]},{"icons":["ios-female","md-female"],"tags":["dudette","female","girl","lady"]},{"icons":["ios-filing","md-filing"],"tags":["archive","filing"]},{"icons":["ios-film","md-film"],"tags":["film"]},{"icons":["ios-finger-print","md-finger-print"],"tags":["finger","print"]},{"icons":["ios-fitness","md-fitness"],"tags":["fitness"]},{"icons":["ios-flag","md-flag"],"tags":["favorite","flag","marker"]},{"icons":["ios-flame","md-flame"],"tags":["fire","flame","heat","hot"]},{"icons":["ios-flash-off","md-flash-off"],"tags":["flash"]},{"icons":["ios-flash","md-flash"],"tags":["flash","lightning","weather","whether"]},{"icons":["ios-flashlight","md-flashlight"],"tags":["flashlight"]},{"icons":["ios-flask","md-flask"],"tags":["bubbles","flask","mixture","potion"]},{"icons":["ios-flower","md-flower"],"tags":["flower"]},{"icons":["ios-folder-open","md-folder-open"],"tags":["folder","open"]},{"icons":["ios-folder","md-folder"],"tags":["file","folder"]},{"icons":["ios-football","md-football"],"tags":["football","soccer"]},{"icons":["ios-funnel","md-funnel"],"tags":["funnel","sort"]},{"icons":["ios-gift","md-gift"],"tags":["gift"]},{"icons":["ios-git-branch","md-git-branch"],"tags":["branch","git"]},{"icons":["ios-git-commit","md-git-commit"],"tags":["commit","git"]},{"icons":["ios-git-compare","md-git-compare"],"tags":["compare","git"]},{"icons":["ios-git-merge","md-git-merge"],"tags":["git","merge"]},{"icons":["ios-git-network","md-git-network"],"tags":["git","network"]},{"icons":["ios-git-pull-request","md-git-pull-request"],"tags":["git","pull","request"]},{"icons":["ios-glasses","md-glasses"],"tags":["glasses","look","reading","see","steve"]},{"icons":["ios-globe","md-globe"],"tags":["globe"]},{"icons":["ios-grid","md-grid"],"tags":["grid","menu"]},{"icons":["ios-hammer","md-hammer"],"tags":["hammer","options","settings","tools"]},{"icons":["ios-hand","md-hand"],"tags":["hand","stop"]},{"icons":["ios-happy","md-happy"],"tags":["fun","good","happy","like","yes"]},{"icons":["ios-headset","md-headset"],"tags":["headset"]},{"icons":["ios-heart","md-heart"],"tags":["heart","love"]},{"icons":["ios-heart-dislike","md-heart-dislike"],"tags":["dislike","heart","love"]},{"icons":["ios-heart-empty","md-heart-empty"],"tags":["empty","heart","love"]},{"icons":["ios-heart-half","md-heart-half"],"tags":["half","heart","love"]},{"icons":["ios-help-buoy","md-help-buoy"],"tags":["?","buoy","help","question"]},{"icons":["ios-help-circle-outline","md-help-circle-outline"],"tags":["help"]},{"icons":["ios-help-circle","md-help-circle"],"tags":["circle","help"]},{"icons":["ios-help","md-help"],"tags":["?","help","information","question"]},{"icons":["ios-home","md-home"],"tags":["home","house"]},{"icons":["ios-hourglass","md-hourglass"],"tags":["hourglass"]},{"icons":["ios-ice-cream","md-ice-cream"],"tags":["cream","ice"]},{"icons":["ios-image","md-image"],"tags":["camera","image","photo"]},{"icons":["ios-images","md-images"],"tags":["images","photo"]},{"icons":["ios-infinite","md-infinite"],"tags":["forever","infinite","loop"]},{"icons":["ios-information-circle-outline","md-information-circle-outline"],"tags":["information"]},{"icons":["ios-information-circle","md-information-circle"],"tags":["circle","information"]},{"icons":["ios-information","md-information"],"tags":["help","information","knowledge"]},{"icons":["ios-jet","md-jet"],"tags":["fly","jet","plane"]},{"icons":["ios-journal","md-journal"],"tags":["journal"]},{"icons":["ios-key","md-key"],"tags":["access","key"]},{"icons":["ios-keypad","md-keypad"],"tags":["keypad","type"]},{"icons":["ios-laptop","md-laptop"],"tags":["apple","laptop","macbook","osx"]},{"icons":["ios-leaf","md-leaf"],"tags":["green","leaf","nature","plant","recycle"]},{"icons":["ios-link","md-link"],"tags":["anchor","attach","chain","href","link"]},{"icons":["ios-list-box","md-list-box"],"tags":["box","list"]},{"icons":["ios-list","md-list"],"tags":["list"]},{"icons":["ios-locate","md-locate"],"tags":["gps","locate","maps","navigate"]},{"icons":["ios-lock","md-lock"],"tags":["lock"]},{"icons":["ios-log-in","md-log-in"],"tags":["in","log","signin"]},{"icons":["ios-log-out","md-log-out"],"tags":["log","out","signout"]},{"icons":["ios-magnet","md-magnet"],"tags":["attraction","magnet","sticky"]},{"icons":["ios-mail-open","md-mail-open"],"tags":["mail","open"]},{"icons":["ios-mail-unread","md-mail-unread"],"tags":["mail","unread"]},{"icons":["ios-mail","md-mail"],"tags":["email","mail"]},{"icons":["ios-male","md-male"],"tags":["boy","dude","guy","male","male"]},{"icons":["ios-man","md-man"],"tags":["boy","dude","guy","male","man"]},{"icons":["ios-map","md-map"],"tags":["gps","map","navigation","pin"]},{"icons":["ios-medal","md-medal"],"tags":["medal"]},{"icons":["ios-medical","md-medical"],"tags":["medical"]},{"icons":["ios-medkit","md-medkit"],"tags":["case","disease","firstaid","health","medkit","sick"]},{"icons":["ios-megaphone","md-megaphone"],"tags":["megaphone"]},{"icons":["ios-menu","md-menu"],"tags":["menu"]},{"icons":["ios-mic-off","md-mic-off"],"tags":["mic","noise","off","sound","speaker","talk"]},{"icons":["ios-mic","md-mic"],"tags":["mic","noise","sound","speaker","talk"]},{"icons":["ios-microphone","md-microphone"],"tags":["microphone","music","noise","recorde","sound","speak"]},{"icons":["ios-moon","md-moon"],"tags":["dark","moon","night","sky"]},{"icons":["ios-more","md-more"],"tags":["more","options"]},{"icons":["ios-move","md-move"],"tags":["move"]},{"icons":["ios-musical-note","md-musical-note"],"tags":["listening","musical","noise","note","play","sound"]},{"icons":["ios-musical-notes","md-musical-notes"],"tags":["listening","musical","noise","notes","play","sound"]},{"icons":["ios-navigate","md-navigate"],"tags":["gps","location","map","navigate","pin"]},{"icons":["ios-notifications-off","md-notifications-off"],"tags":["notifications","off"]},{"icons":["ios-notifications-outline","md-notifications-outline"],"tags":["notifications"]},{"icons":["ios-notifications","md-notifications"],"tags":["notifications"]},{"icons":["ios-nuclear","md-nuclear"],"tags":["danger","hazard","nuclear","warning"]},{"icons":["ios-nutrition","md-nutrition"],"tags":["nutrition"]},{"icons":["ios-open","md-open"],"tags":["open"]},{"icons":["ios-options","md-options"],"tags":["options"]},{"icons":["ios-outlet","md-outlet"],"tags":["computer","digital","electricity","outlet"]},{"icons":["ios-paper-plane","md-paper-plane"],"tags":["paper","plane"]},{"icons":["ios-paper","md-paper"],"tags":["feed","paper","paper"]},{"icons":["ios-partly-sunny","md-partly-sunny"],"tags":["partly","sunny"]},{"icons":["ios-pause","md-pause"],"tags":["break","freeze","hold","music","pause"]},{"icons":["ios-paw","md-paw"],"tags":["paw"]},{"icons":["ios-people","md-people"],"tags":["head","human","people","person","stalker","users"]},{"icons":["ios-person-add","md-person-add"],"tags":["add","head","human","member","new","person","staff","users"]},{"icons":["ios-person","md-person"],"tags":["head","human","person","staff","users"]},{"icons":["ios-phone-landscape","md-phone-landscape"],"tags":["landscape","phone"]},{"icons":["ios-phone-portrait","md-phone-portrait"],"tags":["phone","portrait"]},{"icons":["ios-photos","md-photos"],"tags":["images","photos","square","stills"]},{"icons":["ios-pie","md-pie"],"tags":["cog","options","pie","settings"]},{"icons":["ios-pin","md-pin"],"tags":["gps","navigation","pin"]},{"icons":["ios-pint","md-pint"],"tags":["pint"]},{"icons":["ios-pizza","md-pizza"],"tags":["drink","eat","food","pizza"]},{"icons":["ios-planet","md-planet"],"tags":["globe","home","nature","planet","planet","space"]},{"icons":["ios-play-circle","md-play-circle"],"tags":["play"]},{"icons":["ios-play","md-play"],"tags":["arrow","music","play","right","watch"]},{"icons":["ios-podium","md-podium"],"tags":["award","compete","competition","lose","podium","win"]},{"icons":["ios-power","md-power"],"tags":["off","on","power"]},{"icons":["ios-pricetag","md-pricetag"],"tags":["$","commerce","items","money","pricetag","shopping"]},{"icons":["ios-pricetags","md-pricetags"],"tags":["$","commerce","items","money","pricetags","shopping"]},{"icons":["ios-print","md-print"],"tags":["print"]},{"icons":["ios-pulse","md-pulse"],"tags":["hot","live","pulse","rate"]},{"icons":["ios-qr-scanner","md-qr-scanner"],"tags":["qr","reader","scanner"]},{"icons":["ios-quote","md-quote"],"tags":["chat","quotation","quote"]},{"icons":["ios-radio-button-off","md-radio-button-off"],"tags":["button","off","radio"]},{"icons":["ios-radio-button-on","md-radio-button-on"],"tags":["button","on","radio"]},{"icons":["ios-radio","md-radio"],"tags":["radio"]},{"icons":["ios-rainy","md-rainy"],"tags":["cloud","rainy","water","weather","whether"]},{"icons":["ios-recording","md-recording"],"tags":["film","recording","tape","voicemail"]},{"icons":["ios-redo","md-redo"],"tags":["forward","redo"]},{"icons":["ios-refresh-circle","md-refresh-circle"],"tags":["circle","refresh"]},{"icons":["ios-refresh","md-refresh"],"tags":["refresh","reload","renew","reset"]},{"icons":["ios-remove-circle-outline","md-remove-circle-outline"],"tags":["remove"]},{"icons":["ios-remove-circle","md-remove-circle"],"tags":["circle","remove"]},{"icons":["ios-remove","md-remove"],"tags":["minus","remove","subtract"]},{"icons":["ios-reorder","md-reorder"],"tags":["reorder"]},{"icons":["ios-repeat","md-repeat"],"tags":["repeat"]},{"icons":["ios-resize","md-resize"],"tags":["resize"]},{"icons":["ios-restaurant","md-restaurant"],"tags":["restaurant"]},{"icons":["ios-return-left","md-return-left"],"tags":["left","return"]},{"icons":["ios-return-right","md-return-right"],"tags":["return","right"]},{"icons":["ios-reverse-camera","md-reverse-camera"],"tags":["camera","picture","reverse"]},{"icons":["ios-rewind","md-rewind"],"tags":["back","music","previous","rewind"]},{"icons":["ios-ribbon","md-ribbon"],"tags":["ribbon"]},{"icons":["ios-rocket","md-rocket"],"tags":["rocket"]},{"icons":["ios-rose","md-rose"],"tags":["rose"]},{"icons":["ios-sad","md-sad"],"tags":["bad","cry","no","sad"]},{"icons":["ios-save","md-save"],"tags":["save"]},{"icons":["ios-school","md-school"],"tags":["school"]},{"icons":["ios-search","md-search"],"tags":["magnifyingglass","search"]},{"icons":["ios-send","md-send"],"tags":["email","paper","send"]},{"icons":["ios-settings","md-settings"],"tags":["options","settings"]},{"icons":["ios-share-alt","md-share-alt"],"tags":["alt","share"]},{"icons":["ios-share","md-share"],"tags":["share"]},{"icons":["ios-shirt","md-shirt"],"tags":["shirt"]},{"icons":["ios-shuffle","md-shuffle"],"tags":["random","shuffle"]},{"icons":["ios-skip-backward","md-skip-backward"],"tags":["backward","music","previous","skip"]},{"icons":["ios-skip-forward","md-skip-forward"],"tags":["forward","music","next","skip"]},{"icons":["ios-snow","md-snow"],"tags":["snow"]},{"icons":["ios-speedometer","md-speedometer"],"tags":["drive","level","speed","speedometer"]},{"icons":["ios-square-outline","md-square-outline"],"tags":["square"]},{"icons":["ios-square","md-square"],"tags":["square"]},{"icons":["ios-star-half","md-star-half"],"tags":["favorite","half","rate","star"]},{"icons":["ios-star-outline","md-star-outline"],"tags":["star"]},{"icons":["ios-star","md-star"],"tags":["favorite","star"]},{"icons":["ios-stats","md-stats"],"tags":["stats"]},{"icons":["ios-stopwatch","md-stopwatch"],"tags":["stopwatch"]},{"icons":["ios-subway","md-subway"],"tags":["subway"]},{"icons":["ios-sunny","md-sunny"],"tags":["light","sky","sunny","weather","whether"]},{"icons":["ios-swap","md-swap"],"tags":["swap"]},{"icons":["ios-switch","md-switch"],"tags":["switch"]},{"icons":["ios-sync","md-sync"],"tags":["sync"]},{"icons":["ios-tablet-landscape","md-tablet-landscape"],"tags":["landscape","tablet"]},{"icons":["ios-tablet-portrait","md-tablet-portrait"],"tags":["portrait","tablet"]},{"icons":["ios-tennisball","md-tennisball"],"tags":["tennisball"]},{"icons":["ios-text","md-text"],"tags":["text"]},{"icons":["ios-thermometer","md-thermometer"],"tags":["cold","heat","hot","mercury","temperature","thermometer"]},{"icons":["ios-thumbs-down","md-thumbs-down"],"tags":["down","thumbs"]},{"icons":["ios-thumbs-up","md-thumbs-up"],"tags":["thumbs","up"]},{"icons":["ios-thunderstorm","md-thunderstorm"],"tags":["cloudy","lightning","overcast","rain","sky","storm","thunderstorm","weather","whether"]},{"icons":["ios-time","md-time"],"tags":["clock","hour","minute","second","time","watch"]},{"icons":["ios-timer","md-timer"],"tags":["clock","timer"]},{"icons":["ios-today","md-today"],"tags":["today"]},{"icons":["ios-train","md-train"],"tags":["train"]},{"icons":["ios-transgender","md-transgender"],"tags":["transgender"]},{"icons":["ios-trash","md-trash"],"tags":["close","delete","remove","trash"]},{"icons":["ios-trending-down","md-trending-down"],"tags":["down","trending"]},{"icons":["ios-trending-up","md-trending-up"],"tags":["trending","up"]},{"icons":["ios-trophy","md-trophy"],"tags":["award","compete","competition","lose","trophy","win"]},{"icons":["ios-tv","md-tv"],"tags":["television","tv"]},{"icons":["ios-umbrella","md-umbrella"],"tags":["dry","rain","shelter","umbrella","wet"]},{"icons":["ios-undo","md-undo"],"tags":["reply","undo"]},{"icons":["ios-unlock","md-unlock"],"tags":["unlock"]},{"icons":["ios-videocam","md-videocam"],"tags":["camera","film","movie","videocam"]},{"icons":["ios-volume-high","md-volume-high"],"tags":["volume"]},{"icons":["ios-volume-low","md-volume-low"],"tags":["volume"]},{"icons":["ios-volume-mute","md-volume-mute"],"tags":["mute","sound","volume"]},{"icons":["ios-volume-off","md-volume-off"],"tags":["off","volume"]},{"icons":["ios-wallet","md-wallet"],"tags":["cash","money","wallet"]},{"icons":["ios-walk","md-walk"],"tags":["walk"]},{"icons":["ios-warning","md-warning"],"tags":["warning"]},{"icons":["ios-watch","md-watch"],"tags":["watch"]},{"icons":["ios-water","md-water"],"tags":["water"]},{"icons":["ios-wifi","md-wifi"],"tags":["bars","connection","internet","wifi"]},{"icons":["ios-wine","md-wine"],"tags":["wine"]},{"icons":["ios-woman","md-woman"],"tags":["dudette","female","girl","lady","woman"]},{"icons":["logo-android"],"tags":["android"]},{"icons":["logo-angular"],"tags":["angular"]},{"icons":["logo-apple"],"tags":["apple"]},{"icons":["logo-bitbucket"],"tags":["bitbucket"]},{"icons":["logo-bitcoin"],"tags":["bitcoin"]},{"icons":["logo-buffer"],"tags":["buffer"]},{"icons":["logo-chrome"],"tags":["chrome"]},{"icons":["logo-closed-captioning"],"tags":["closed-captioning"]},{"icons":["logo-codepen"],"tags":["codepen"]},{"icons":["logo-css3"],"tags":["css3"]},{"icons":["logo-designernews"],"tags":["designernews"]},{"icons":["logo-dribbble"],"tags":["dribbble"]},{"icons":["logo-dropbox"],"tags":["dropbox"]},{"icons":["logo-euro"],"tags":["euro"]},{"icons":["logo-facebook"],"tags":["facebook"]},{"icons":["logo-flickr"],"tags":["flickr"]},{"icons":["logo-foursquare"],"tags":["foursquare"]},{"icons":["logo-freebsd-devil"],"tags":["freebsd-devil"]},{"icons":["logo-game-controller-a"],"tags":["controller","game"]},{"icons":["logo-game-controller-b"],"tags":["controller","game"]},{"icons":["logo-github"],"tags":["github"]},{"icons":["logo-google"],"tags":["google"]},{"icons":["logo-googleplus"],"tags":["googleplus"]},{"icons":["logo-hackernews"],"tags":["hackernews"]},{"icons":["logo-html5"],"tags":["html5"]},{"icons":["logo-instagram"],"tags":["instagram"]},{"icons":["logo-ionic"],"tags":["ionic"]},{"icons":["logo-ionitron"],"tags":["ionitron"]},{"icons":["logo-javascript"],"tags":["javascript"]},{"icons":["logo-linkedin"],"tags":["linkedin"]},{"icons":["logo-markdown"],"tags":["markdown"]},{"icons":["logo-model-s"],"tags":["model-s"]},{"icons":["logo-no-smoking"],"tags":["no-smoking"]},{"icons":["logo-nodejs"],"tags":["nodejs"]},{"icons":["logo-npm"],"tags":["npm"]},{"icons":["logo-octocat"],"tags":["octocat"]},{"icons":["logo-pinterest"],"tags":["pinterest"]},{"icons":["logo-playstation"],"tags":["playstation"]},{"icons":["logo-polymer"],"tags":["polymer"]},{"icons":["logo-python"],"tags":["python"]},{"icons":["logo-reddit"],"tags":["reddit"]},{"icons":["logo-rss"],"tags":["rss"]},{"icons":["logo-sass"],"tags":["sass"]},{"icons":["logo-skype"],"tags":["skype"]},{"icons":["logo-slack"],"tags":["slack"]},{"icons":["logo-snapchat"],"tags":["snapchat"]},{"icons":["logo-steam"],"tags":["steam"]},{"icons":["logo-tumblr"],"tags":["tumblr"]},{"icons":["logo-tux"],"tags":["tux"]},{"icons":["logo-twitch"],"tags":["twitch"]},{"icons":["logo-twitter"],"tags":["twitter"]},{"icons":["logo-usd"],"tags":["usd"]},{"icons":["logo-vimeo"],"tags":["vimeo"]},{"icons":["logo-vk"],"tags":["vk"]},{"icons":["logo-whatsapp"],"tags":["whatsapp"]},{"icons":["logo-windows"],"tags":["windows"]},{"icons":["logo-wordpress"],"tags":["wordpress"]},{"icons":["logo-xbox"],"tags":["xbox"]},{"icons":["logo-xing"],"tags":["xing"]},{"icons":["logo-yahoo"],"tags":["yahoo"]},{"icons":["logo-yen"],"tags":["yen"]},{"icons":["logo-youtube"],"tags":["youtube"]}],"version":"4.4.5"}PK}w\ӵoDoDionicons/ionicons.uhp57gzi.jsnu[/*! Built with http://stenciljs.com */ (function(Context,namespace,hydratedCssClass,resourcesUrl,s){"use strict"; s=document.querySelector("script[data-namespace='ionicons']");if(s){resourcesUrl=s.getAttribute('data-resources-url');} (function(t,e,n,o){"use strict";function i(t,e){return"sc-"+t.t+(e&&e!==N?"-"+e:"")}function c(t,e){return t+(e?"-h":"-s")}function f(t,e,n,o){let c=n.t+o.mode,f=n[c];if((2===n.e||1===n.e&&!t.o.n)&&(o["s-sc"]=f?i(n,o.mode):i(n)),f||(f=n[c=n.t+N]),f){let i=e.i.head;if(e.n)if(1===n.e)i=o.shadowRoot;else{let t=o;for(;t=e.c(t);)if(t.host&&t.host.shadowRoot){i=t.host.shadowRoot;break}}let r=t.f.get(i);if(r||t.f.set(i,r={}),!r[c]){let t;{t=f.content.cloneNode(!0),r[c]=!0;const n=i.querySelectorAll("[data-styles]");e.r(i,t,n.length&&n[n.length-1].nextSibling||i.firstChild)}}}}function r(t,e,n,o="boolean"==typeof n){const i=e!==(e=e.replace(/^xlink\:?/,""));null==n||o&&(!n||"false"===n)?i?t.removeAttributeNS(D,T(e)):t.removeAttribute(e):"function"!=typeof n&&(n=o?"":n.toString(),i?t.setAttributeNS(D,T(e),n):t.setAttribute(e,n))}function s(t,e,n,o,i,c,f){if("class"!==n||c)if("style"===n){for(const t in o)i&&null!=i[t]||(/-/.test(t)?e.style.s(t):e.style[t]="");for(const t in i)o&&i[t]===o[t]||(/-/.test(t)?e.style.setProperty(t,i[t]):e.style[t]=i[t])}else if("o"!==n[0]||"n"!==n[1]||!/[A-Z]/.test(n[2])||n in e)if("list"!==n&&"type"!==n&&!c&&(n in e||-1!==["object","function"].indexOf(typeof i)&&null!==i)){const o=t.l(e);o&&o.u&&o.u[n]?(u(e,n,i),f&&o.u[n].a&&r(e,o.u[n].p,i,4===o.u[n].d)):"ref"!==n&&(u(e,n,null==i?"":i),null!=i&&!1!==i||t.o.v(e,n))}else null!=i&&"key"!==n?r(e,n,i):(c||t.o.m(e,n)&&(null==i||!1===i))&&t.o.v(e,n);else n=T(n)in e?T(n.substring(2)):T(n[2])+n.substring(3),i?i!==o&&t.o.b(e,n,i):t.o.y(e,n);else if(o!==i){const t=l(o),n=l(i),c=t.filter(t=>!n.includes(t)),f=l(e.className).filter(t=>!c.includes(t)),r=n.filter(e=>!t.includes(e)&&!f.includes(e));f.push(...r),e.className=f.join(" ")}}function l(t){return null==t||""===t?[]:t.trim().split(/\s+/)}function u(t,e,n){try{t[e]=n}catch(t){}}function a(t,e,n,o,i){const c=11===n.w.nodeType&&n.w.host?n.w.host:n.w,f=e&&e.vattrs||S,r=n.vattrs||S;for(i in f)r&&null!=r[i]||null==f[i]||s(t,c,i,f[i],void 0,o,n.g);for(i in r)i in f&&r[i]===("value"===i||"checked"===i?c[i]:f[i])||s(t,c,i,f[i],r[i],o,n.g)}function p(t,e){function n(i,c,f,r,s,p,y,h,w){if(h=c.vchildren[f],l||(d=!0,"slot"===h.vtag&&(u&&e.M(r,u+"-s"),h.vchildren?h.k=!0:h.C=!0)),R(h.vtext))h.w=e.j(h.vtext);else if(h.C)h.w=e.j("");else{if(p=h.w=P||"svg"===h.vtag?e.O("http://www.w3.org/2000/svg",h.vtag):e.x(h.k?"slot-fb":h.vtag),t.W(p)&&t.N.delete(b),P="svg"===h.vtag||"foreignObject"!==h.vtag&&P,a(t,null,h,P),R(u)&&p["s-si"]!==u&&e.M(p,p["s-si"]=u),h.vchildren)for(s=0;s=0;c--)(f=l[c])["s-hn"]!==m&&f["s-ol"]&&(e.T(f),e.r(s(f),f,r(f)),e.T(f["s-ol"]),f["s-ol"]=null,d=!0),i&&o(f,i);t.A=!1}function i(t,o,i,c,f,s,l,u){const a=t["s-cr"];for((l=a&&e.c(a)||t).shadowRoot&&e.L(l)===m&&(l=l.shadowRoot);f<=s;++f)c[f]&&(u=R(c[f].vtext)?e.j(c[f].vtext):n(null,i,f,t))&&(c[f].w=u,e.r(l,u,r(o)))}function c(t,n,i,c){for(;n<=i;++n)R(t[n])&&(c=t[n].w,p=!0,c["s-ol"]?e.T(c["s-ol"]):o(c,!0),e.T(c))}function f(t,e){return t.vtag===e.vtag&&t.vkey===e.vkey&&("slot"!==t.vtag||t.vname===e.vname)}function r(t){return t&&t["s-ol"]?t["s-ol"]:t}function s(t){return e.c(t["s-ol"]?t["s-ol"]:t)}let l,u,p,d,v,m,b;const y=[];return function h(w,$,g,M,k,C,j,O,x,W,E,N){if(b=w,m=e.L(b),v=b["s-cr"],l=M,u=b["s-sc"],d=p=!1,function l(u,p,d){const v=p.w=u.w,m=u.vchildren,b=p.vchildren;P=p.w&&R(e.D(p.w))&&void 0!==p.w.ownerSVGElement,P="svg"===p.vtag||"foreignObject"!==p.vtag&&P,R(p.vtext)?(d=v["s-cr"])?e.P(e.c(d),p.vtext):u.vtext!==p.vtext&&e.P(v,p.vtext):("slot"!==p.vtag&&a(t,u,p,P),R(m)&&R(b)?function y(t,u,a,p,d,v,m,b){let y=0,h=0,w=u.length-1,$=u[0],g=u[w],M=p.length-1,k=p[0],C=p[M];for(;y<=w&&h<=M;)if(null==$)$=u[++y];else if(null==g)g=u[--w];else if(null==k)k=p[++h];else if(null==C)C=p[--M];else if(f($,k))l($,k),$=u[++y],k=p[++h];else if(f(g,C))l(g,C),g=u[--w],C=p[--M];else if(f($,C))"slot"!==$.vtag&&"slot"!==C.vtag||o(e.c($.w)),l($,C),e.r(t,$.w,e.q(g.w)),$=u[++y],C=p[--M];else if(f(g,k))"slot"!==$.vtag&&"slot"!==C.vtag||o(e.c(g.w)),l(g,k),e.r(t,g.w,$.w),g=u[--w],k=p[++h];else{for(d=null,v=y;v<=w;++v)if(u[v]&&R(u[v].vkey)&&u[v].vkey===k.vkey){d=v;break}R(d)?((b=u[d]).vtag!==k.vtag?m=n(u&&u[h],a,d,t):(l(b,k),u[d]=void 0,m=b.w),k=p[++h]):(m=n(u&&u[h],a,h,t),k=p[++h]),m&&e.r(s($.w),m,r($.w))}y>w?i(t,null==p[M+1]?null:p[M+1].w,a,p,h,M):h>M&&c(u,y,w)}(v,m,p,b):R(b)?(R(u.vtext)&&e.P(v,""),i(v,null,p,b,0,b.length-1)):R(m)&&c(m,0,m.length-1)),P&&"svg"===p.vtag&&(P=!1)}($,g),d){for(function t(n,o,i,c,f,r,s,l,u,a){for(f=0,r=(o=e.R(n)).length;f=0;s--)(c=l[s])["s-cn"]||c["s-nr"]||c["s-hn"]===i["s-hn"]||((3===(a=e.B(c))||8===a)&&""===u||1===a&&null===e.I(c,"slot")&&""===u||1===a&&e.I(c,"slot")===u)&&(y.some(t=>t.F===c)||(p=!0,c["s-sn"]=u,y.push({H:i,F:c})));1===e.B(i)&&t(i)}}(g.w),j=0;j{d(t,e)}))}function v(t,e,n,o,i){const c=t.B(e);let f,r,s,l;if(i&&1===c){(r=t.I(e,E))&&(s=r.split("."))[0]===o&&((l={}).vtag=t.L(l.w=e),n.vchildren||(n.vchildren=[]),n.vchildren[s[1]]=l,n=l,i=""!==s[2]);for(let c=0;c2;)q.push(arguments[r]);for(;q.length>0;){let e=q.pop();if(e&&void 0!==e.pop)for(r=e.length;r--;)q.push(e[r]);else"boolean"==typeof e&&(e=null),(f="function"!=typeof t)&&(null==e?e="":"number"==typeof e?e=String(e):"string"!=typeof e&&(f=!1)),f&&c?i[i.length-1].vtext+=e:null===i?i=[f?{vtext:e}:e]:i.push(f?{vtext:e}:e),c=f}if(null!=e){if(e.className&&(e.class=e.className),"object"==typeof e.class){for(r in e.class)e.class[r]&&q.push(r);e.class=q.join(" "),q.length=0}null!=e.key&&(n=e.key),null!=e.name&&(o=e.name)}return"function"==typeof t?t(e,i||[],B):{vtag:t,vchildren:i,vtext:void 0,vattrs:e,vkey:n,vname:o,w:void 0,g:!1}}function b(t){return{vtag:t.vtag,vchildren:t.vchildren,vtext:t.vtext,vattrs:t.vattrs,vkey:t.vkey,vname:t.vname}}function y(t){const[e,n,,o,i,c]=t,f={color:{p:"color"}};if(o)for(let t=0;tg(t,e)):t.queue.tick(()=>g(t,e)))}async function g(t,e,n,o,i){if(t.tt.delete(e),!t.nt.has(e)){if(o=t.ot.get(e)){if(o)try{o.componentWillUpdate&&await o.componentWillUpdate()}catch(n){t.it(n,5,e)}}else{if((i=t.ct.get(e))&&!i["s-rn"])return void(i["s-rc"]=i["s-rc"]||[]).push(()=>{g(t,e)});if(o=function f(t,e,n,o,i,c,r){try{o=new(i=t.l(e).ft),function s(t,e,n,o,i){t.rt.set(o,n),t.st.has(n)||t.st.set(n,{}),Object.entries(Object.assign({color:{type:String}},e.properties,{mode:{type:String}})).forEach(([e,c])=>{(function f(t,e,n,o,i,c,r,s){if(e.type||e.state){const f=t.st.get(n);e.state||(!e.attr||void 0!==f[i]&&""!==f[i]||(r=c&&c.lt)&&R(s=r[e.attr])&&(f[i]=w(e.type,s)),n.hasOwnProperty(i)&&(void 0===f[i]&&(f[i]=w(e.type,n[i])),"mode"!==i&&delete n[i])),o.hasOwnProperty(i)&&void 0===f[i]&&(f[i]=o[i]),e.watchCallbacks&&(f[I+i]=e.watchCallbacks.slice()),C(o,i,function l(e){return(e=t.st.get(t.rt.get(this)))&&e[i]},function u(n,o){(o=t.rt.get(this))&&(e.state||e.mutable)&&M(t,o,i,n)})}else if(e.elementRef)k(o,i,n);else if(e.context){const c=t.ut(e.context);void 0!==c&&k(o,i,c.at&&c.at(n)||c)}})(t,c,n,o,e,i)})}(t,i,e,o,n)}catch(n){o={},t.it(n,7,e,!0)}return t.ot.set(e,o),o}(t,e,t.pt.get(e)))try{o.componentWillLoad&&await o.componentWillLoad()}catch(n){t.it(n,3,e)}}(function r(t,e,n,o){try{const i=e.ft.host,f=e.ft.encapsulation,r="shadow"===f&&t.o.n;let s,l=n;if(s=function i(t,e,n){return t&&Object.keys(t).forEach(o=>{t[o].reflectToAttr&&((n=n||{})[o]=e[o])}),n}(e.ft.properties,o),r&&(l=n.shadowRoot),!n["s-rn"]){t.dt(t,t.o,e,n);const o=n["s-sc"];o&&(t.o.M(n,c(o,!0)),"scoped"===f&&t.o.M(n,c(o)))}if(o.render||o.hostData||i||s){t.vt=!0;const e=o.render&&o.render();let i;i=o.hostData&&o.hostData(),s&&(i=i?Object.assign(i,s):s),t.vt=!1;const c=t.mt.get(n)||{};c.w=l;const u=m(null,i,e);u.g=!0,t.mt.set(n,t.render(n,c,u,r,f))}n["s-rn"]=!0,n["s-rc"]&&(n["s-rc"].forEach(t=>t()),n["s-rc"]=null)}catch(e){t.vt=!1,t.it(e,8,n,!0)}})(t,t.l(e),e,o),e["s-init"]()}}function M(t,e,n,o,i){let c=t.st.get(e);c||t.st.set(e,c={});const f=c[n];if(o!==f&&(c[n]=o,i=t.ot.get(e))){{const t=c[I+n];if(t)for(let e=0;e-1&&o.splice(n,1),o.length||i["s-init"]&&i["s-init"]()),t.ct.delete(e)),t.bt.length&&!t._.size)for(;c=t.bt.shift();)c()}function O(t,e,n,o){if(n.connectedCallback=function(){(function n(t,e,o){t.nt.delete(o),t.yt.has(o)||(t._.add(o),t.yt.set(o,!0),o["s-id"]||(o["s-id"]=t.ht()),function i(t,e,n){for(n=e;n=t.o.D(n);)if(t.W(n)){t.N.has(e)||(t.ct.set(e,n),(n["s-ld"]=n["s-ld"]||[]).push(e));break}}(t,o),t.queue.tick(()=>{t.pt.set(o,function n(t,e,o,i,c){return o.mode||(o.mode=t.wt(o)),o["s-cr"]||t.I(o,W)||t.n&&1===e.e||(o["s-cr"]=t.j(""),o["s-cr"]["s-cn"]=!0,t.r(o,o["s-cr"],t.R(o)[0])),t.n||1!==e.e||(o.shadowRoot=o),1===e.e&&t.n&&!o.shadowRoot&&t.$t(o,{mode:"open"}),i={gt:o["s-id"],lt:{}},e.u&&Object.keys(e.u).forEach(n=>{(c=e.u[n].p)&&(i.lt[c]=t.I(o,c))}),i}(t.o,e,o)),t.Mt(e,o)}))})(t,e,this)},n.disconnectedCallback=function(){(function e(t,n){if(!t.A&&function o(t,e){for(;e;){if(!t.c(e))return 9!==t.B(e);e=t.c(e)}}(t.o,n)){t.nt.set(n,!0),j(t,n),d(t.mt.get(n),!0),t.o.y(n),t.kt.delete(n);{const e=t.ot.get(n);e&&e.componentDidUnload&&e.componentDidUnload()}[t.ct,t.Ct,t.pt].forEach(t=>t.delete(n))}})(t,this)},n["s-init"]=function(){(function e(t,n,o,i,c,f){if(t.ot.get(n)&&!t.nt.has(n)&&(!n["s-ld"]||!n["s-ld"].length)){t.N.set(n,!0),t.jt.has(n)||(t.jt.set(n,!0),n["s-ld"]=void 0,t.o.M(n,o));try{d(t.mt.get(n)),(c=t.Ct.get(n))&&(c.forEach(t=>t(n)),t.Ct.delete(n))}catch(e){t.it(e,4,n)}j(t,n)}})(t,this,o)},n.forceUpdate=function(){$(t,this)},e.u){const o=Object.entries(e.u);{let t={};o.forEach(([e,{p:n}])=>{n&&(t[n]=e)}),t=Object.assign({},t),n.attributeChangedCallback=function(e,n,o){(function i(t,e,n,o){const i=t[T(n)];i&&(e[i]=o)})(t,this,e,o)}}(function i(t,e,n){e.forEach(([e,o])=>{const i=o.Z;3&i?C(n,e,function n(){return(t.st.get(this)||{})[e]},function n(i){M(t,this,e,w(o.d,i))}):32===i&&k(n,e,L)})})(t,o,n)}}function x(t,e,n,o){return function(){const i=arguments;return function c(t,e,n){let o=e[n];const i=t.i.body;return i?(o||(o=i.querySelector(n)),o||(o=e[n]=t.x(n),t.S(i,o)),o.componentOnReady()):Promise.resolve()}(t,e,n).then(t=>t[o].apply(t,i))}}const W="ssrv",E="ssrc",N="$",S={},A={enter:13,escape:27,space:32,tab:9,left:37,up:38,right:39,down:40},R=t=>null!=t,T=t=>t.toLowerCase(),L=()=>{},D="http://www.w3.org/1999/xlink";let P=!1;const q=[],B={forEach:(t,e)=>{t.forEach((t,n,o)=>e(b(t),n,o))},map:(t,e)=>t.map((t,n,o)=>(function i(t){return{vtag:t.vtag,vchildren:t.vchildren,vtext:t.vtext,vattrs:t.vattrs,vkey:t.vkey,vname:t.vname}})(e(b(t),n,o)))},I="wc-";(function F(t,e,n,o,i,c){function r(t,e){const o=t.t;n.customElements.get(o)||(O(w,s[o]=t,e.prototype,c),e.observedAttributes=Object.values(t.u).map(t=>t.p).filter(t=>!!t),n.customElements.define(t.t,e))}const s={html:{}},l={},u=n[t]=n[t]||{},a=function d(t,e,n){t.ael||(t.ael=((t,e,n,o)=>t.addEventListener(e,n,o)),t.rel=((t,e,n,o)=>t.removeEventListener(e,n,o)));const o=new WeakMap,i={i:n,n:!!n.documentElement.attachShadow,Ot:!1,B:t=>t.nodeType,x:t=>n.createElement(t),O:(t,e)=>n.createElementNS(t,e),j:t=>n.createTextNode(t),xt:t=>n.createComment(t),r:(t,e,n)=>t.insertBefore(e,n),T:t=>t.remove(),S:(t,e)=>t.appendChild(e),M:(t,e)=>{t.classList.add(e)},R:t=>t.childNodes,c:t=>t.parentNode,q:t=>t.nextSibling,U:t=>t.previousSibling,L:t=>T(t.nodeName),Q:t=>t.textContent,P:(t,e)=>t.textContent=e,I:(t,e)=>t.getAttribute(e),Wt:(t,e,n)=>t.setAttribute(e,n),Et:(t,e,n,o)=>t.setAttributeNS(e,n,o),v:(t,e)=>t.removeAttribute(e),m:(t,e)=>t.hasAttribute(e),wt:e=>e.getAttribute("mode")||(t.Context||{}).mode,Nt:(t,o)=>"child"===o?t.firstElementChild:"parent"===o?i.D(t):"body"===o?n.body:"document"===o?n:"window"===o?e:t,b:(e,n,c,f,r,s,l,u)=>{const a=n;let p=e,d=o.get(e);if(d&&d[a]&&d[a](),"string"==typeof s?p=i.Nt(e,s):"object"==typeof s?p=s:(u=n.split(":")).length>1&&(p=i.Nt(e,u[0]),n=u[1]),!p)return;let v=c;(u=n.split(".")).length>1&&(n=u[0],v=(t=>{t.keyCode===A[u[1]]&&c(t)})),l=i.Ot?{capture:!!f,passive:!!r}:!!f,t.ael(p,n,v,l),d||o.set(e,d={}),d[a]=(()=>{p&&t.rel(p,n,v,l),d[a]=null})},y:(t,e)=>{const n=o.get(t);n&&(e?n[e]&&n[e]():Object.keys(n).forEach(t=>{n[t]&&n[t]()}))},St:(t,n,o)=>t&&t.dispatchEvent(new e.CustomEvent(n,o)),D:(t,e)=>(e=i.c(t))&&11===i.B(e)?e.host:e,$t:(t,e)=>t.attachShadow(e)};return i}(u,n,o);e.isServer=e.isPrerender=!(e.isClient=!0),e.window=n,e.location=n.location,e.document=o,e.resourcesUrl=e.publicPath=i,u.h=m,u.Context=e;const b=n["s-defined"]=n["s-defined"]||{};let h=0;const w={o:a,At:r,Rt:e.emit,l:t=>s[a.L(t)],ut:t=>e[t],isClient:!0,W:t=>!(!b[a.L(t)]&&!w.l(t)),ht:()=>t+h++,it:(t,e,n)=>void 0,Tt:t=>(function e(t,n,o){return{create:x(t,n,o,"create"),componentOnReady:x(t,n,o,"componentOnReady")}})(a,l,t),queue:e.queue=function g(t,e){function n(e){return n=>{e.push(n),d||(d=!0,t.raf(c))}}function o(t){for(let e=0;e0&&(a.push(...u),u.length=0),(d=l.length+u.length+a.length>0)?t.raf(c):p=0}const f=()=>e.performance.now(),r=Promise.resolve(),s=[],l=[],u=[],a=[];let p=0,d=!1;return t.raf||(t.raf=e.requestAnimationFrame.bind(e)),{tick(t){s.push(t),1===s.length&&r.then(()=>o(s))},read:n(l),write:n(u)}}(u,n),Mt:function M(t,e,n){if(t.ft)$(w,e);else{const n="string"==typeof t.z?t.z:t.z[e.mode],o=!a.n;import(i+n+(o?".sc":"")+".entry.js").then(n=>{try{t.ft=n[(t=>T(t).split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(""))(t.t)],function o(t,e,n,i,c){if(i){const n=e.t+(c||N);if(!e[n]){const o=t.x("template");e[n]=o,o.innerHTML=``,t.S(t.i.head,o)}}}(a,t,t.e,t.ft.style,t.ft.styleMode),$(w,e)}catch(e){t.ft=class{}}},t=>void 0)}},vt:!1,et:!1,A:!1,dt:f,ct:new WeakMap,f:new WeakMap,yt:new WeakMap,kt:new WeakMap,jt:new WeakMap,N:new WeakMap,rt:new WeakMap,pt:new WeakMap,ot:new WeakMap,nt:new WeakMap,tt:new WeakMap,Ct:new WeakMap,Lt:new WeakMap,mt:new WeakMap,st:new WeakMap,_:new Set,bt:[]};u.onReady=(()=>new Promise(t=>w.queue.write(()=>w._.size?w.bt.push(t):t()))),w.render=p(w,a);const k=a.i.documentElement;k["s-ld"]=[],k["s-rn"]=!0,k["s-init"]=(()=>{w.N.set(k,u.loaded=w.et=!0),a.St(n,"appload",{detail:{namespace:t}})}),function C(t,e,n){const o=n.querySelectorAll(`[${W}]`),i=o.length;let c,f,r,s,l,u;if(i>0)for(t.N.set(n,!0),s=0;sr(t,class extends HTMLElement{})),function j(t,e,n,o,i,c){if(e.componentOnReady=((e,n)=>{if(!e.nodeName.includes("-"))return n(null),!1;const o=t.l(e);if(o)if(t.N.has(e))n(e);else{const o=t.Ct.get(e)||[];o.push(n),t.Ct.set(e,o)}return!!o}),i){for(c=i.length-1;c>=0;c--)e.componentOnReady(i[c][0],i[c][1])&&i.splice(c,1);for(c=0;c0&&/(\/|\.)/.test(t)?t:null}var r=function(){function t(){this.isVisible=!1,this.lazy=!1}return t.prototype.componentWillLoad=function(){var t=this;this.waitUntilVisible(this.el,"50px",function(){t.isVisible=!0,t.loadIcon()})},t.prototype.componentDidUnload=function(){this.io&&(this.io.disconnect(),this.io=void 0)},t.prototype.waitUntilVisible=function(t,e,i){var n=this;if(this.lazy&&this.win&&this.win.IntersectionObserver){var r=this.io=new this.win.IntersectionObserver(function(t){t[0].isIntersecting&&(r.disconnect(),n.io=void 0,i())},{rootMargin:e});r.observe(t)}else i()},t.prototype.loadIcon=function(){var t=this;if(!this.isServer&&this.isVisible){var e=this.getUrl();e&&function(t,e,i){var n=o.get(e);return n||(n=fetch(e,{cache:"force-cache"}).then(function(t){return t.ok?t.text():Promise.resolve(null)}).then(function(e){return function(t,e,i){if(e){var n=t.createDocumentFragment(),r=t.createElement("div");r.innerHTML=e,n.appendChild(r);for(var o=r.childNodes.length-1;o>=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(s.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(var i=0;i0&&/(\/|\.)/.test(t)?t:null}var r=function(){function t(){this.isVisible=!1,this.lazy=!1}return t.prototype.componentWillLoad=function(){var t=this;this.waitUntilVisible(this.el,"50px",function(){t.isVisible=!0,t.loadIcon()})},t.prototype.componentDidUnload=function(){this.io&&(this.io.disconnect(),this.io=void 0)},t.prototype.waitUntilVisible=function(t,e,i){var n=this;if(this.lazy&&this.win&&this.win.IntersectionObserver){var r=this.io=new this.win.IntersectionObserver(function(t){t[0].isIntersecting&&(r.disconnect(),n.io=void 0,i())},{rootMargin:e});r.observe(t)}else i()},t.prototype.loadIcon=function(){var t=this;if(!this.isServer&&this.isVisible){var e=this.getUrl();e&&function(t,e,i){var n=o.get(e);return n||(n=fetch(e,{cache:"force-cache"}).then(function(t){return t.ok?t.text():Promise.resolve(null)}).then(function(e){return function(t,e,i){if(e){var n=t.createDocumentFragment(),r=t.createElement("div");r.innerHTML=e,n.appendChild(r);for(var o=r.childNodes.length-1;o>=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(s.setAttribute("class","s-ion-icon"),function t(e){if(1===e.nodeType){if("script"===e.nodeName.toLowerCase())return!1;for(var i=0;iPK}w\p<*ionicons/svg/ios-archive.svgnu[PK}w\1Jppionicons/svg/md-refresh.svgnu[PK}w\@@ionicons/svg/md-brush.svgnu[PK}w\%pp'ionicons/svg/logo-game-controller-a.svgnu[PK}w\qqionicons/svg/md-umbrella.svgnu[PK}w\crionicons/svg/md-hourglass.svgnu[PK}w\ ionicons/svg/md-flashlight.svgnu[PK}w\L;@@ionicons/svg/md-attach.svgnu[PK}w\QOionicons/svg/md-search.svgnu[PK}w\O6ionicons/svg/md-thermometer.svgnu[PK}w\Z@@ionicons/svg/ios-attach.svgnu[PK}w\&?ionicons/svg/ios-time.svgnu[PK}w\Vionicons/svg/ios-flag.svgnu[PK}w\.]ionicons/svg/ios-log-in.svgnu[PK}w\#*ionicons/svg/ios-remove-circle-outline.svgnu[PK}w\zBnV22ionicons/svg/md-contacts.svgnu[PK}w\P#LLionicons/svg/md-baseball.svgnu[PK}w\Uionicons/svg/md-shirt.svgnu[PK}w\𵄜ionicons/svg/ios-beaker.svgnu[PK}w\^ionicons/svg/md-business.svgnu[PK}w\JD66ionicons/svg/ios-analytics.svgnu[PK}w\{!ionicons/svg/logo-playstation.svgnu[PK}w\ZzUUionicons/svg/ios-bicycle.svgnu[PK}w\}aionicons/svg/md-heart-half.svgnu[PK}w\tionicons/svg/md-play-circle.svgnu[PK}w\BDDionicons/svg/ios-cut.svgnu[PK}w\Wii"ionicons/svg/md-arrow-dropleft.svgnu[PK}w\Ȕionicons/svg/ios-pie.svgnu[PK}w\/wwionicons/svg/md-time.svgnu[PK}w\$ionicons/svg/md-exit.svgnu[PK}w\i ionicons/svg/ios-thermometer.svgnu[PK}w\ll'ionicons/svg/logo-closed-captioning.svgnu[PK}w\@c eeionicons/svg/logo-github.svgnu[PK}w\jjionicons/svg/md-stopwatch.svgnu[PK}w\Dionicons/svg/md-git-merge.svgnu[PK}w\+Gionicons/svg/md-stats.svgnu[PK}w\}L==ionicons/svg/ios-photos.svgnu[PK}w\Lionicons/svg/ios-flashlight.svgnu[PK}w\yionicons/svg/md-bicycle.svgnu[PK}w\Yionicons/svg/ios-wifi.svgnu[PK}w\ionicons/svg/md-card.svgnu[PK}w\~3==ionicons/svg/md-thumbs-down.svgnu[PK}w\4vZffionicons/svg/ios-hand.svgnu[PK}w\.+_""ionicons/svg/ios-hammer.svgnu[PK}w\W0ionicons/svg/ios-apps.svgnu[PK}w\_;\ccionicons/svg/md-camera.svgnu[PK}w\Z:::ionicons/svg/ios-backspace.svgnu[PK}w\9Lionicons/svg/md-pizza.svgnu[PK}w\fionicons/svg/md-volume-high.svgnu[PK}w\hm$ionicons/svg/ios-tablet-portrait.svgnu[PK}w\  ionicons/svg/md-battery-dead.svgnu[PK}w\eionicons/svg/logo-reddit.svgnu[PK}w\90ionicons/svg/md-add-circle.svgnu[PK}w\zޢ ionicons/svg/md-cloudy-night.svgnu[PK}w\D!Cionicons/svg/md-create.svgnu[PK}w\& %ionicons/svg/ios-egg.svgnu[PK}w\׽wwionicons/svg/md-information.svgnu[PK}w\>&ll ionicons/svg/md-finger-print.svgnu[PK}w\)5-DDionicons/svg/md-male.svgnu[PK}w\:99ionicons/svg/md-thumbs-up.svgnu[PK}w\ ˘&ionicons/svg/ios-notifications-off.svgnu[PK}w\L;ionicons/svg/ios-train.svgnu[PK}w\U#ionicons/svg/logo-freebsd-devil.svgnu[PK}w\#E&ionicons/svg/md-add-circle-outline.svgnu[PK}w\ Gionicons/svg/md-grid.svgnu[PK}w\UKionicons/svg/ios-airplane.svgnu[PK}w\?L7ionicons/svg/ios-basket.svgnu[PK}w\vk;ionicons/svg/ios-medical.svgnu[PK}w\G "ionicons/svg/ios-notifications.svgnu[PK}w\ Ċionicons/svg/md-sad.svgnu[PK}w\2Wionicons/svg/ios-cellular.svgnu[PK}w\29$qionicons/svg/md-at.svgnu[PK}w\Xionicons/svg/md-crop.svgnu[PK}w\ƛ>9ionicons/svg/md-hand.svgnu[PK}w\C$$ ionicons/svg/md-code-working.svgnu[PK}w\ xLLionicons/svg/md-desktop.svgnu[PK}w\&ionicons/svg/ios-sync.svgnu[PK}w\=j ionicons/svg/ios-help-circle.svgnu[PK}w\ui22ionicons/svg/md-construct.svgnu[PK}w\Iionicons/svg/ios-woman.svgnu[PK}w\\4ionicons/svg/md-paper.svgnu[PK}w\<X(("ionicons/svg/ios-cloud-outline.svgnu[PK}w\xionicons/svg/ios-alarm.svgnu[PK}w\s.ccionicons/svg/logo-buffer.svgnu[PK}w\ ionicons/svg/logo-javascript.svgnu[PK}w\**ionicons/svg/ios-swap.svgnu[PK}w\;Mʫ  ionicons/svg/md-copy.svgnu[PK}w\QQionicons/svg/ios-contract.svgnu[PK}w\ -Cccionicons/svg/md-car.svgnu[PK}w\+A??$ionicons/svg/ios-arrow-dropright.svgnu[PK}w\499ionicons/svg/ios-list-box.svgnu[PK}w\SFF$ionicons/svg/md-arrow-round-down.svgnu[PK}w\9ionicons/svg/md-rainy.svgnu[PK}w\ IIionicons/svg/ios-funnel.svgnu[PK}w\b.ionicons/svg/md-information-circle-outline.svgnu[PK}w\0FFionicons/svg/ios-body.svgnu[PK}w\CCionicons/svg/ios-subway.svgnu[PK}w\Vionicons/svg/ios-bus.svgnu[PK}w\\{{ionicons/svg/md-albums.svgnu[PK}w\w%PP%ionicons/svg/ios-radio-button-off.svgnu[PK}w\Hc22$ionicons/svg/md-tablet-landscape.svgnu[PK}w\4i`55ionicons/svg/ios-images.svgnu[PK}w\**ionicons/svg/md-medkit.svgnu[PK}w\%/bbionicons/svg/md-remove.svgnu[PK}w\[ ~ionicons/svg/ios-code.svgnu[PK}w\ZJqionicons/svg/md-fastforward.svgnu[PK}w\e ionicons/svg/ios-paper-plane.svgnu[PK}w\/ionicons/svg/logo-steam.svgnu[PK}w\,ionicons/svg/ios-moon.svgnu[PK}w\rm!ionicons/svg/md-color-palette.svgnu[PK}w\-Jv ionicons/svg/ios-folder-open.svgnu[PK}w\_ionicons/svg/md-cog.svgnu[PK}w\0KB4ionicons/svg/md-apps.svgnu[PK}w\| ionicons/svg/md-star-outline.svgnu[PK}w\Q?ionicons/svg/md-warning.svgnu[PK}w\ץzionicons/svg/md-bowtie.svgnu[PK}w\!%XKKionicons/svg/md-jet.svgnu[PK}w\~-$$ionicons/svg/md-female.svgnu[PK}w\Eionicons/svg/ios-trophy.svgnu[PK}w\Vionicons/svg/md-megaphone.svgnu[PK}w\kionicons/svg/ios-chatboxes.svgnu[PK}w\~ionicons/svg/md-cut.svgnu[PK}w\dɝ~~ionicons/svg/ios-pizza.svgnu[PK}w\CU//ionicons/svg/logo-vk.svgnu[PK}w\%HqDDionicons/svg/ios-magnet.svgnu[PK}w\2:F.  ionicons/svg/ios-crop.svgnu[PK}w\2$ionicons/svg/logo-nodejs.svgnu[PK}w\1ionicons/svg/ios-arrow-down.svgnu[PK}w\Ia||ionicons/svg/md-nutrition.svgnu[PK}w\o999ionicons/svg/ios-bulb.svgnu[PK}w\spqqionicons/svg/md-fitness.svgnu[PK}w\ionicons/svg/ios-pin.svgnu[PK}w\?$ionicons/svg/md-images.svgnu[PK}w\r  ionicons/svg/logo-linkedin.svgnu[PK}w\/66 ionicons/svg/md-color-filter.svgnu[PK}w\l߮F)ionicons/svg/md-arrow-dropdown-circle.svgnu[PK}w\˗ionicons/svg/md-switch.svgnu[PK}w\J>ionicons/svg/md-volume-low.svgnu[PK}w\#ionicons/svg/ios-outlet.svgnu[PK}w\ 2ionicons/svg/md-trending-up.svgnu[PK}w\kLwionicons/svg/md-cloud-done.svgnu[PK}w\*ionicons/svg/md-arrow-dropright-circle.svgnu[PK}w\By:?**ionicons/svg/ios-tv.svgnu[PK}w\Os~~ ionicons/svg/md-skip-forward.svgnu[PK}w\* ionicons/svg/md-battery-full.svgnu[PK}w\`-ionicons/svg/md-paper-plane.svgnu[PK}w\Y++'ionicons/svg/md-help-circle-outline.svgnu[PK}w\uionicons/svg/ios-square.svgnu[PK}w\NU??ionicons/svg/ios-text.svgnu[PK}w\4L=ionicons/svg/ios-ribbon.svgnu[PK}w\ ddionicons/svg/md-cash.svgnu[PK}w\NHEEionicons/svg/md-more.svgnu[PK}w\ Xionicons/svg/logo-snapchat.svgnu[PK}w\}ionicons/svg/md-gift.svgnu[PK}w\L  ionicons/svg/ios-aperture.svgnu[PK}w\x1LLionicons/svg/ios-paper.svgnu[PK}w\o|[[+ionicons/svg/ios-arrow-dropright-circle.svgnu[PK}w\xUY   ionicons/svg/ios-fastforward.svgnu[PK}w\7G^^ionicons/svg/md-checkbox.svgnu[PK}w\s ,66ionicons/svg/logo-dropbox.svgnu[PK}w\zpionicons/svg/logo-xbox.svgnu[PK}w\vфionicons/svg/ios-medkit.svgnu[PK}w\XMMionicons/svg/logo-flickr.svgnu[PK}w\C,T%ionicons/svg/md-american-football.svgnu[PK}w\ލ(ionicons/svg/ios-car.svgnu[PK}w\./ionicons/svg/ios-print.svgnu[PK}w\k!ionicons/svg/md-arrow-forward.svgnu[PK}w\,iionicons/svg/ios-radio.svgnu[PK}w\"%ionicons/svg/md-star.svgnu[PK}w\+rionicons/svg/md-unlock.svgnu[PK}w\20LLionicons/svg/logo-model-s.svgnu[PK}w\~ionicons/svg/ios-key.svgnu[PK}w\id``ionicons/svg/md-backspace.svgnu[PK}w\ }ionicons/svg/ios-cube.svgnu[PK}w\Kionicons/svg/ios-copy.svgnu[PK}w\LL!ionicons/svg/ios-battery-dead.svgnu[PK}w\rܹionicons/svg/ios-leaf.svgnu[PK}w\p9gVVionicons/svg/ios-snow.svgnu[PK}w\ fxxionicons/svg/md-watch.svgnu[PK}w\gaLLionicons/svg/ios-send.svgnu[PK}w\C9   ionicons/svg/ios-play-circle.svgnu[PK}w\L9qqionicons/svg/ios-options.svgnu[PK}w\B}nnionicons/svg/md-heart-empty.svgnu[PK}w\V8 8 ionicons/svg/ios-baseball.svgnu[PK}w\OOOionicons/svg/md-journal.svgnu[PK}w\=6FFionicons/svg/ios-people.svgnu[PK}w\]cionicons/svg/ios-list.svgnu[PK}w\&p ionicons/svg/md-thunderstorm.svgnu[PK}w\)ionicons/svg/md-volume-mute.svgnu[PK}w\ #ionicons/svg/ios-reverse-camera.svgnu[PK}w\9yionicons/svg/ios-help.svgnu[PK}w\ r0zzionicons/svg/md-flash.svgnu[PK}w\ionicons/svg/ios-bookmarks.svgnu[PK}w\cionicons/svg/ios-basketball.svgnu[PK}w\oiiionicons/svg/md-nuclear.svgnu[PK}w\DQPPionicons/svg/md-pie.svgnu[PK}w\}ionicons/svg/md-walk.svgnu[PK}w\uuionicons/svg/md-contact.svgnu[PK}w\4C++ionicons/svg/md-calendar.svgnu[PK}w\h"ionicons/svg/ios-heart-dislike.svgnu[PK}w\Ss&ionicons/svg/md-shuffle.svgnu[PK}w\OV}FFionicons/svg/logo-bitbucket.svgnu[PK}w\ionicons/svg/md-podium.svgnu[PK}w\cK!ionicons/svg/ios-close-circle.svgnu[PK}w\7_ionicons/svg/md-ice-cream.svgnu[PK}w\Kionicons/svg/ios-restaurant.svgnu[PK}w\Msionicons/svg/ios-color-wand.svgnu[PK}w\ƫ33ionicons/svg/ios-cloud-done.svgnu[PK}w\e+bb*ionicons/svg/ios-arrow-dropdown-circle.svgnu[PK}w\Zionicons/svg/md-funnel.svgnu[PK}w\cionicons/svg/md-code.svgnu[PK}w\Nionicons/svg/ios-pricetag.svgnu[PK}w\PK}w\:8ooionicons/svg/ios-done-all.svgnu[PK}w\5744ionicons/svg/md-magnet.svgnu[PK}w\ ionicons/svg/ios-watch.svgnu[PK}w\//ionicons/svg/ios-cloudy.svgnu[PK}w\6 d<<ionicons/svg/ios-timer.svgnu[PK}w\a⮙ionicons/svg/md-timer.svgnu[PK}w\ ionicons/svg/logo-apple.svgnu[PK}w\zz)ionicons/svg/ios-close-circle-outline.svgnu[PK}w\f_ionicons/svg/logo-wordpress.svgnu[PK}w\_ionicons/svg/ios-heart-half.svgnu[PK}w\H@)ionicons/svg/ios-close.svgnu[PK}w\-eCionicons/svg/md-cloudy.svgnu[PK}w\ionicons/svg/md-help.svgnu[PK}w\x DD$ionicons/svg/md-arrow-round-back.svgnu[PK}w\Ia22!ionicons/svg/ios-cloud-upload.svgnu[PK}w\̨dionicons/svg/ios-mic-off.svgnu[PK}w\Eionicons/svg/ios-play.svgnu[PK}w\XGionicons/svg/md-headset.svgnu[PK}w\Bz__ionicons/svg/ios-move.svgnu[PK}w\  ionicons/svg/logo-yahoo.svgnu[PK}w\&ionicons/svg/ios-stopwatch.svgnu[PK}w\K!ionicons/svg/md-cloud-outline.svgnu[PK}w\5?2ionicons/svg/logo-octocat.svgnu[PK}w\wЬ&&ionicons/svg/ios-pause.svgnu[PK}w\Eionicons/svg/ios-bookmark.svgnu[PK}w\;QG̩ionicons/svg/ios-resize.svgnu[PK}w\s'EEionicons/svg/md-pin.svgnu[PK}w\oiionicons/svg/md-infinite.svgnu[PK}w\[EY>>ionicons/svg/logo-xing.svgnu[PK}w\o\ionicons/svg/md-cube.svgnu[PK}w\kF8ffionicons/svg/md-cellular.svgnu[PK}w\z3P'ionicons/svg/md-wifi.svgnu[PK}w\7<.ҳionicons/svg/md-arrow-up.svgnu[PK}w\j==ionicons/svg/md-build.svgnu[PK}w\"˫[[ionicons/svg/ios-camera.svgnu[PK}w\z(ionicons/svg/ios-mail.svgnu[PK}w\d)N""'ionicons/svg/ios-information-circle.svgnu[PK}w\Jionicons/svg/logo-pinterest.svgnu[PK}w\&6PP(ionicons/svg/ios-arrow-round-forward.svgnu[PK}w\f[ionicons/svg/md-bug.svgnu[PK}w\HT ionicons/svg/md-redo.svgnu[PK}w\Ȓ ionicons/svg/ios-speedometer.svgnu[PK}w\,ionicons/svg/md-resize.svgnu[PK}w\P((!ionicons/svg/md-code-download.svgnu[PK}w\)ionicons/svg/md-sunny.svgnu[PK}w\}l ionicons/svg/md-git-compare.svgnu[PK}w\Xggionicons/svg/ios-gift.svgnu[PK}w\Lkionicons/svg/ios-navigate.svgnu[PK}w\-VFllionicons/svg/md-locate.svgnu[PK}w\ionicons/svg/md-document.svgnu[PK}w\7++$ionicons/svg/md-radio-button-off.svgnu[PK}w\ Q ionicons/svg/logo-foursquare.svgnu[PK}w\$ionicons/svg/md-expand.svgnu[PK}w\xr ,ionicons/svg/md-checkmark-circle-outline.svgnu[PK}w\ՈF*ionicons/svg/ios-notifications-outline.svgnu[PK}w\{Fionicons/svg/ios-rose.svgnu[PK}w\ionicons/svg/md-body.svgnu[PK}w\0XXionicons/svg/logo-whatsapp.svgnu[PK}w\(PK}w\D*JJionicons/svg/ios-add.svgnu[PK}w\ gww"ionicons/svg/ios-musical-notes.svgnu[PK}w\'ionicons/svg/logo-dribbble.svgnu[PK}w\C{z ionicons/svg/ios-volume-high.svgnu[PK}w\01ionicons/svg/ios-at.svgnu[PK}w\$ ionicons/svg/ios-eye-off.svgnu[PK}w\$KIIionicons/svg/md-keypad.svgnu[PK}w\R:9ionicons/svg/ios-share.svgnu[PK}w\`+ionicons/svg/md-trash.svgnu[PK}w\,1GGionicons/svg/md-color-wand.svgnu[PK}w\vAGGionicons/svg/ios-bonfire.svgnu[PK}w\Ok+ionicons/svg/md-football.svgnu[PK}w\vjOOionicons/svg/ios-male.svgnu[PK}w\WPHH!ionicons/svg/ios-star-outline.svgnu[PK}w\<ionicons/svg/md-briefcase.svgnu[PK}w\)x33ionicons/svg/ios-cash.svgnu[PK}w\;ZWW-ionicons/svg/ios-checkmark-circle-outline.svgnu[PK}w\aaionicons/svg/md-disc.svgnu[PK}w\Uionicons/svg/ios-log-out.svgnu[PK}w\ionicons/svg/ios-clipboard.svgnu[PK}w\=Dionicons/svg/md-flask.svgnu[PK}w\@YYionicons/svg/index.jsnu[ require.context('!!file-loader?name=[name].[ext]&outputPath=svg!./', false, /.svg$/); PK}w\@ionicons/svg/ios-nuclear.svgnu[PK}w\,^ionicons/svg/ios-remove.svgnu[PK}w\}kkionicons/svg/ios-share-alt.svgnu[PK}w\ionicons/svg/md-train.svgnu[PK}w\nYYionicons/svg/ios-walk.svgnu[PK}w\oionicons/svg/ios-today.svgnu[PK}w\<94ionicons/svg/ios-beer.svgnu[PK}w\yDkkionicons/svg/ios-desktop.svgnu[PK}w\k"ionicons/svg/ios-color-palette.svgnu[PK}w\)Uʫ$ionicons/svg/md-battery-charging.svgnu[PK}w\5Pf""ionicons/svg/ios-pricetags.svgnu[PK}w\4ionicons/svg/ios-pint.svgnu[PK}w\Y]* ??#ionicons/svg/ios-arrow-dropdown.svgnu[PK}w\ e''ionicons/svg/md-git-commit.svgnu[PK}w\O6ionicons/svg/logo-yen.svgnu[PK}w\7ionicons/svg/ios-person-add.svgnu[PK}w\rtionicons/svg/ios-heart.svgnu[PK}w\pionicons/svg/ios-mic.svgnu[PK}w\&W!ionicons/svg/md-notifications.svgnu[PK}w\t7Yionicons/svg/ios-stats.svgnu[PK}w\I@ionicons/svg/md-medical.svgnu[PK}w\5aԎionicons/svg/md-navigate.svgnu[PK}w\wNionicons/svg/md-flash-off.svgnu[PK}w\ionicons/svg/md-analytics.svgnu[PK}w\RNionicons/svg/md-close.svgnu[PK}w\{ionicons/svg/md-recording.svgnu[PK}w\.$1  ionicons/svg/ios-git-merge.svgnu[PK}w\llionicons/svg/logo-instagram.svgnu[PK}w\I n԰ionicons/svg/md-map.svgnu[PK}w\u ionicons/svg/md-person.svgnu[PK}w\ zionicons/svg/md-sync.svgnu[PK}w\@#i i ionicons/svg/logo-sass.svgnu[PK}w\fo88ionicons/svg/ios-filing.svgnu[PK}w\5VVionicons/svg/ios-rainy.svgnu[PK}w\1~VVionicons/svg/ios-eye.svgnu[PK}w\Y  ionicons/svg/ios-rewind.svgnu[PK}w\Bionicons/svg/md-list.svgnu[PK}w\ionicons/svg/md-share.svgnu[PK}w\Ͷgionicons/svg/ios-umbrella.svgnu[PK}w\o$I99ionicons/svg/ios-cloud.svgnu[PK}w\LNN"ionicons/svg/md-cloud-download.svgnu[PK}w\+jionicons/svg/ios-hourglass.svgnu[PK}w\Yionicons/svg/ios-checkbox.svgnu[PK}w\n%Tionicons/svg/md-folder-open.svgnu[PK}w\`/ionicons/svg/md-tennisball.svgnu[PK}w\o&mKKionicons/svg/ios-checkmark.svgnu[PK}w\[h((%ionicons/svg/md-notifications-off.svgnu[PK}w\ss#ionicons/svg/md-radio-button-on.svgnu[PK}w\XXionicons/svg/ios-call.svgnu[PK}w\^ionicons/svg/md-egg.svgnu[PK}w\uuionicons/svg/ios-card.svgnu[PK}w\[ionicons/svg/md-pint.svgnu[PK}w\iKLbggionicons/svg/ios-volume-off.svgnu[PK}w\gionicons/svg/logo-polymer.svgnu[PK}w\=1ionicons/svg/md-bus.svgnu[PK}w\܇ionicons/svg/logo-windows.svgnu[PK}w\^1s s ionicons/svg/logo-tux.svgnu[PK}w\:(xionicons/svg/md-bonfire.svgnu[PK}w\Gionicons/svg/md-rocket.svgnu[PK}w\d%ionicons/svg/md-aperture.svgnu[PK}w\۷ionicons/svg/md-man.svgnu[PK}w\bjionicons/svg/md-barcode.svgnu[PK}w\ ionicons/svg/ios-fitness.svgnu[PK}w\Vionicons/svg/md-undo.svgnu[PK}w\ށionicons/svg/md-tv.svgnu[PK}w\ٸ||ionicons/svg/ios-sunny.svgnu[PK}w\//ionicons/svg/ios-information-circle-outline.svgnu[PK}w\eionicons/svg/md-bookmark.svgnu[PK}w\E!ionicons/svg/ios-code-working.svgnu[PK}w\9Aionicons/svg/md-ribbon.svgnu[PK}w\*ZCionicons/svg/ios-disc.svgnu[PK}w\y!ionicons/svg/md-skip-backward.svgnu[PK}w\ꫢNN%ionicons/svg/ios-arrow-round-back.svgnu[PK}w\nٝ+ionicons/svg/md-airplane.svgnu[PK}w\ CA_ionicons/svg/md-list-box.svgnu[PK}w\f"ionicons/svg/md-people.svgnu[PK}w\ionicons/svg/ios-lock.svgnu[PK}w\` ionicons/svg/ios-thumbs-down.svgnu[PK}w\jionicons/svg/md-square.svgnu[PK}w\GOO'ionicons/svg/md-arrow-round-forward.svgnu[PK}w\Q!ionicons/svg/ios-return-right.svgnu[PK}w\u2ionicons/svg/logo-tumblr.svgnu[PK}w\[iiionicons/svg/md-options.svgnu[PK}w\q6]](ionicons/svg/ios-arrow-dropup-circle.svgnu[PK}w\, *aa*ionicons/svg/ios-arrow-dropleft-circle.svgnu[PK}w\Srionicons/svg/ios-megaphone.svgnu[PK}w\*ionicons/svg/ios-refresh.svgnu[PK}w\`”>ionicons/svg/ios-happy.svgnu[PK}w\PIIionicons/svg/ios-flask.svgnu[PK}w\w;;ionicons/svg/ios-sad.svgnu[PK}w\%5Jɴionicons/svg/md-lock.svgnu[PK}w\GKionicons/svg/ios-thumbs-up.svgnu[PK}w\e5`$ionicons/svg/ios-phone-landscape.svgnu[PK}w\,0R#ionicons/svg/ios-phone-portrait.svgnu[PK}w\oxionicons/svg/logo-markdown.svgnu[PK}w\l˩ionicons/svg/ios-build.svgnu[PK}w\X@7ionicons/svg/ios-create.svgnu[PK}w\92"ionicons/svg/ios-arrow-forward.svgnu[PK}w\Y%ionicons/svg/ios-tablet-landscape.svgnu[PK}w\sDddionicons/svg/logo-facebook.svgnu[PK}w\4QQionicons/svg/ios-jet.svgnu[PK}w\9:)ionicons/svg/md-arrow-dropleft-circle.svgnu[PK}w\@v5ionicons/svg/ios-arrow-up.svgnu[PK}w\_aionicons/svg/ios-videocam.svgnu[PK}w\k${{ionicons/svg/md-mail-unread.svgnu[PK}w\LbGggionicons/svg/ios-calculator.svgnu[PK}w\3Lmmionicons/svg/ios-rocket.svgnu[PK}w\LU$ionicons/svg/md-checkmark-circle.svgnu[PK}w\Rusionicons/svg/md-clock.svgnu[PK}w\PK}w\E]MMionicons/svg/md-mail-open.svgnu[PK}w\@~Sionicons/svg/ios-laptop.svgnu[PK}w\%CWWionicons/svg/ios-document.svgnu[PK}w\>Ossionicons/svg/ios-appstore.svgnu[PK}w\uionicons/svg/md-move.svgnu[PK}w\ionicons/svg/ios-contacts.svgnu[PK}w\ץionicons/svg/md-photos.svgnu[PK}w\jionicons/svg/ios-arrow-back.svgnu[PK}w\eggionicons/svg/ios-medal.svgnu[PK}w\qeaionicons/svg/ios-image.svgnu[PK}w\Sionicons/svg/md-text.svgnu[PK}w\o ionicons/svg/ios-return-left.svgnu[PK}w\U+ionicons/svg/ios-cafe.svgnu[PK}w\ĥ7ionicons/svg/md-basket.svgnu[PK}w\.ionicons/svg/md-pricetags.svgnu[PK}w\JdoSSionicons/svg/md-flower.svgnu[PK}w\-!ionicons/svg/ios-thunderstorm.svgnu[PK}w\5ionicons/svg/ios-paw.svgnu[PK}w\+]]'ionicons/svg/logo-game-controller-b.svgnu[PK}w\%Hionicons/svg/ios-search.svgnu[PK}w\*ionicons/svg/logo-euro.svgnu[PK}w\|Lrrionicons/svg/md-git-network.svgnu[PK}w\y#ionicons/svg/md-phone-landscape.svgnu[PK}w\}fiiionicons/svg/md-play.svgnu[PK}w\ Hionicons/svg/ios-school.svgnu[PK}w\  ionicons/svg/logo-vimeo.svgnu[PK}w\kNNionicons/svg/ios-expand.svgnu[PK}w\3{凧ionicons/svg/ios-podium.svgnu[PK}w\J!!ionicons/svg/ios-save.svgnu[PK}w\J[{{ionicons/svg/ios-mail-open.svgnu[PK}w\S3Ӭionicons/svg/ios-glasses.svgnu[PK}w\m_ionicons/svg/ios-man.svgnu[PK}w\ LLionicons/svg/md-appstore.svgnu[PK}w\mionicons/svg/ios-film.svgnu[PK}w\44ionicons/svg/logo-usd.svgnu[PK}w\p{!!ionicons/svg/md-contrast.svgnu[PK}w\(O"ionicons/svg/ios-skip-backward.svgnu[PK}w\@ionicons/svg/ios-water.svgnu[PK}w\KXg\\ionicons/svg/md-power.svgnu[PK}w\P`ionicons/svg/md-pause.svgnu[PK}w\,Cx%ionicons/svg/ios-battery-charging.svgnu[PK}w\ǭҨionicons/svg/ios-redo.svgnu[PK}w\T쀧  ionicons/svg/ios-quote.svgnu[PK}w\b7WWionicons/svg/ios-flame.svgnu[PK}w\5ZZionicons/svg/md-pricetag.svgnu[PK}w\pFnn"ionicons/svg/logo-designernews.svgnu[PK}w\(z44#ionicons/svg/ios-cloud-download.svgnu[PK}w\ LL%ionicons/svg/ios-arrow-round-down.svgnu[PK}w\kWb44ionicons/svg/ios-football.svgnu[PK}w\p [ddionicons/svg/md-film.svgnu[PK}w\ϩionicons/svg/md-leaf.svgnu[PK}w\v/)ionicons/svg/md-remove-circle-outline.svgnu[PK}w\ionicons/svg/ios-link.svgnu[PK}w\wkqionicons/svg/md-beaker.svgnu[PK}w\cFionicons/svg/md-globe.svgnu[PK}w\2yyionicons/svg/md-settings.svgnu[PK}w\ionicons/svg/md-contract.svgnu[PK}w\lMionicons/svg/md-water.svgnu[PK}w\fyZ ionicons/svg/md-cloud-circle.svgnu[PK}w\ ionicons/svg/md-download.svgnu[PK}w\8O""ionicons/svg/ios-ice-cream.svgnu[PK}w\="ionicons/svg/md-reverse-camera.svgnu[PK}w\ +ionicons/svg/md-paw.svgnu[PK}w\DDionicons/svg/ios-git-branch.svgnu[PK}w\E%~ ionicons/svg/md-musical-note.svgnu[PK}w\?aionicons/svg/md-laptop.svgnu[PK}w\t"KKionicons/svg/md-log-in.svgnu[PK}w\=Fionicons/svg/ios-bed.svgnu[PK}w\!Aionicons/svg/md-checkmark.svgnu[PK}w\ionicons/svg/ios-flash-off.svgnu[PK}w\ ionicons/svg/ios-cog.svgnu[PK}w\%اionicons/svg/ios-keypad.svgnu[PK}w\@ionicons/svg/ios-briefcase.svgnu[PK}w\Nionicons/svg/md-glasses.svgnu[PK}w\+ ionicons/svg/ios-information.svgnu[PK}w\|}EE$ionicons/svg/ios-radio-button-on.svgnu[PK}w\vionicons/svg/md-woman.svgnu[PK}w\]?ffionicons/svg/md-filing.svgnu[PK}w\E %%ionicons/svg/md-cloud.svgnu[PK}w\N'ionicons/svg/ios-git-commit.svgnu[PK}w\cE&&ionicons/svg/ios-grid.svgnu[PK}w\66ionicons/svg/md-done-all.svgnu[PK}w\E̊!ionicons/svg/ios-cloud-circle.svgnu[PK}w\qYYionicons/svg/md-help-circle.svgnu[PK}w\vionicons/svg/logo-youtube.svgnu[PK}w\1Xionicons/svg/md-boat.svgnu[PK}w\"笴ionicons/svg/md-wallet.svgnu[PK}w\2ionicons/svg/md-clipboard.svgnu[PK}w\3rNionicons/svg/md-bluetooth.svgnu[PK}w\:`pionicons/svg/md-print.svgnu[PK}w\P"ionicons/svg/ios-code-download.svgnu[PK}w\!ionicons/svg/md-remove-circle.svgnu[PK}w\4~7&&ionicons/svg/md-mic-off.svgnu[PK}w\$K~ionicons/svg/md-arrow-down.svgnu[PK}w\+pionicons/svg/ios-trash.svgnu[PK}w\F}y  &ionicons/svg/ios-american-football.svgnu[PK}w\'Zvionicons/svg/logo-ionitron.svgnu[PK}w\[##ionicons/svg/ios-headset.svgnu[PK}w\ENN!ionicons/svg/ios-partly-sunny.svgnu[PK}w\  'ionicons/svg/ios-add-circle-outline.svgnu[PK}w\ Ҫionicons/svg/md-cafe.svgnu[PK}w\mQK(SSionicons/svg/ios-map.svgnu[PK}w\lyyionicons/svg/md-calculator.svgnu[PK}w\zsh:ionicons/svg/md-reorder.svgnu[PK}w\>ionicons/svg/ios-flash.svgnu[PK}w\pii ionicons/svg/md-arrow-dropup.svgnu[PK}w\*qionicons/svg/logo-bitcoin.svgnu[PK}w\BFmionicons/svg/ios-more.svgnu[PK}w\U ionicons/svg/ios-trending-up.svgnu[PK}w\99ionicons/svg/md-key.svgnu[PK}w\!ionicons/svg/md-heart-dislike.svgnu[PK}w\ionicons/svg/ios-unlock.svgnu[PK}w\ddionicons/svg/md-alarm.svgnu[PK}w\zionicons/svg/md-planet.svgnu[PK}w\ (Μionicons/svg/ios-compass.svgnu[PK}w\a"ionicons/svg/md-refresh-circle.svgnu[PK}w\.!ionicons/svg/md-cart.svgnu[PK}w\``ionicons/svg/ios-tennisball.svgnu[PK}w\;MM#ionicons/svg/ios-arrow-round-up.svgnu[PK}w\|ionicons/svg/md-flame.svgnu[PK}w\Hionicons/svg/ios-nutrition.svgnu[PK}w\. ionicons/svg/logo-hackernews.svgnu[PK}w\.Nl33 ionicons/svg/ios-volume-mute.svgnu[PK}w\Ѣɐionicons/svg/md-menu.svgnu[PK}w\5NM||ionicons/svg/logo-rss.svgnu[PK}w\u"ionicons/svg/md-phone-portrait.svgnu[PK}w\??ionicons/svg/md-mail.svgnu[PK}w\ۅQ)ionicons/svg/ios-contrast.svgnu[PK}w\~ionicons/svg/md-speedometer.svgnu[PK}w\  ionicons/svg/ios-planet.svgnu[PK}w\7$-::ionicons/svg/md-log-out.svgnu[PK}w\F",ionicons/svg/ios-bug.svgnu[PK}w\k  ionicons/svg/logo-skype.svgnu[PK}w\crionicons/svg/md-pulse.svgnu[PK}w\k3$ ionicons/svg/ios-heart-empty.svgnu[PK}w\Zionicons/svg/md-mic.svgnu[PK}w\Pcionicons/svg/ios-download.svgnu[PK}w\!ionicons/svg/md-trending-down.svgnu[PK}w\KyV V !ionicons/svg/ios-finger-print.svgnu[PK}w\1UFFionicons/svg/md-bulb.svgnu[PK}w\8iGG"ionicons/svg/md-arrow-round-up.svgnu[PK}w\&^ionicons/svg/ios-settings.svgnu[PK}w\&ionicons/svg/md-information-circle.svgnu[PK}w\sztionicons/svg/md-home.svgnu[PK}w\U%ionicons/svg/md-folder.svgnu[PK}w\4 fionicons/svg/ios-infinite.svgnu[PK}w\eʵW%%ionicons/svg/md-help-buoy.svgnu[PK}w\v7Tionicons/svg/md-wine.svgnu[PK}w\G00ionicons/svg/md-color-fill.svgnu[PK}w\:$y  ionicons/svg/md-subway.svgnu[PK}w\Rionicons/svg/ios-brush.svgnu[PK}w\f=ionicons/svg/ios-undo.svgnu[PK}w\᜻#ionicons/svg/ios-square-outline.svgnu[PK}w\eionicons/svg/ios-open.svgnu[PK}w\Flionicons/svg/md-repeat.svgnu[PK}w\x{ ionicons/svg/ios-mail-unread.svgnu[PK}w\ukMionicons/svg/md-arrow-back.svgnu[PK}w\Xionicons/svg/ios-female.svgnu[PK}w\aionicons/svg/ios-construct.svgnu[PK}w\İUionicons/svg/md-send.svgnu[PK}w\ X ionicons/svg/ios-transgender.svgnu[PK}w\Qo'ionicons/svg/md-arrow-dropup-circle.svgnu[PK}w\PK}w\&`=ionicons/svg/md-swap.svgnu[PK}w\P``ionicons/svg/md-medal.svgnu[PK}w\vvionicons/svg/md-radio.svgnu[PK}w\믣ionicons/svg/ios-star.svgnu[PK}w\3'ionicons/svg/ios-pulse.svgnu[PK}w\Bbb!ionicons/svg/md-musical-notes.svgnu[PK}w\_IIionicons/svg/md-rose.svgnu[PK}w\ʏ ionicons/svg/md-partly-sunny.svgnu[PK}w\Cc;ionicons/svg/ios-add-circle.svgnu[PK}w\kY&ionicons/svg/md-moon.svgnu[PK}w\ DD%ionicons/svg/ios-git-pull-request.svgnu[PK}w\PK}w\G!ZZionicons/svg/logo-css3.svgnu[PK}w\".3ionicons/svg/logo-android.svgnu[PK}w\`%ionicons/svg/ios-qr-scanner.svgnu[PK}w\0ionicons/svg/ios-book.svgnu[PK}w\ ionicons/svg/md-happy.svgnu[PK}w\Jjionicons/svg/md-videocam.svgnu[PK}w\[%  ionicons/svg/ios-cart.svgnu[PK}w\IIionicons/svg/ios-journal.svgnu[PK}w\=gPii#ionicons/svg/md-arrow-dropright.svgnu[PK}w\Tionicons/svg/logo-google.svgnu[PK}w\* ionicons/svg/ios-repeat.svgnu[PK}w\wRionicons/svg/md-browsers.svgnu[PK}w\ionicons/svg/md-share-alt.svgnu[PK}w\Xzionicons/svg/ios-recording.svgnu[PK}w\Aw̧ionicons/svg/md-rewind.svgnu[PK}w\ionicons/svg/ios-switch.svgnu[PK}w\1 ionicons/svg/ios-git-network.svgnu[PK}w\ionicons/svg/md-alert.svgnu[PK}w\ionicons/svg/ios-globe.svgnu[PK}w\Bc҉ ionicons/svg/ios-chatbubbles.svgnu[PK}w\-^oionicons/svg/logo-slack.svgnu[PK}w\1ionicons/svg/md-eye.svgnu[PK}w\ ionicons/svg/ios-flower.svgnu[PK}w\j"ionicons/svg/ios-remove-circle.svgnu[PK}w\ B'PVVionicons/svg/ios-microphone.svgnu[PK}w\;+U ionicons/svg/logo-googleplus.svgnu[PK}w\О%ionicons/svg/ios-checkmark-circle.svgnu[PK}w\nj*ڨionicons/svg/ios-exit.svgnu[PK}w\sa2Lionicons/svg/md-return-left.svgnu[PK}w\|"ddionicons/svg/ios-color-fill.svgnu[PK}w\i  !ionicons/svg/ios-cloudy-night.svgnu[PK}w\.Dionicons/svg/md-call.svgnu[PK}w\P-55ionicons/svg/logo-codepen.svgnu[PK}w\蟤hhionicons/svg/md-flag.svgnu[PK}w\Ө&ffionicons/svg/md-trophy.svgnu[PK}w\u&&Dii"ionicons/svg/md-arrow-dropdown.svgnu[PK}w\mL""ionicons/svg/md-square-outline.svgnu[PK}w\ۺCC#ionicons/svg/ios-arrow-dropleft.svgnu[PK}w\$> ionicons/svg/md-return-right.svgnu[PK}w\ǁQQ ionicons/svg/md-cloud-upload.svgnu[PK}w\Sttionicons/svg/ios-bluetooth.svgnu[PK}w\0={{ionicons/svg/ios-contact.svgnu[PK}w\P)!ionicons/svg/ios-skip-forward.svgnu[PK}w\Cionicons/svg/ios-help-buoy.svgnu[PK}w\ RRionicons/svg/md-easel.svgnu[PK}w\ $$ionicons/svg/ios-volume-low.svgnu[PK}w\{RRionicons/svg/md-chatbubbles.svgnu[PK}w\K٪ionicons/svg/ios-easel.svgnu[PK}w\0  ionicons/svg/ios-git-compare.svgnu[PK}w\=Dionicons/svg/md-qr-scanner.svgnu[PK}w\? <88ionicons/svg/ios-wallet.svgnu[PK}w\c@@!ionicons/svg/ios-arrow-dropup.svgnu[PK}w\p(ionicons/svg/md-close-circle-outline.svgnu[PK}w\!,, ionicons/svg/logo-no-smoking.svgnu[PK}w\{!ionicons/svg/ios-musical-note.svgnu[PK}w\YYionicons/svg/ios-albums.svgnu[PK}w\(yyionicons/svg/md-volume-off.svgnu[PK}w\IXVionicons/svg/md-bed.svgnu[PK}w\Иrionicons/svg/ios-reorder.svgnu[PK}w\d78ionicons/svg/logo-angular.svgnu[PK}w\ 66#ionicons/svg/md-tablet-portrait.svgnu[PK}w\:ionicons/svg/md-eye-off.svgnu[PK}w\X?ionicons/svg/md-chatboxes.svgnu[PK}w\`(ionicons/svg/ios-help-circle-outline.svgnu[PK}w\yionicons/svg/ios-calendar.svgnu[PK}w\},,ionicons/svg/md-save.svgnu[PK}w\OЩionicons/svg/md-bookmarks.svgnu[PK}w\B* rionicons/svg/md-quote.svgnu[PK}w\Tionicons/svg/ios-locate.svgnu[PK}w\lQ!ionicons/svg/ios-color-filter.svgnu[PK}w\iFionicons/svg/md-person-add.svgnu[PK}w\uعԄionicons/svg/ios-business.svgnu[PK}w\ionicons/svg/md-basketball.svgnu[PK}w\77ionicons/svg/md-book.svgnu[PK}w\ionicons/svg/ios-person.svgnu[PK}w\ZG11ionicons/svg/md-transgender.svgnu[PK}w\0llionicons/svg/md-outlet.svgnu[PK}w\ ~~ ionicons/svg/md-close-circle.svgnu[PK}w\ionicons/svg/md-restaurant.svgnu[PK}w\n+ionicons/svg/logo-twitch.svgnu[PK}w\|QQionicons/svg/ios-clock.svgnu[PK}w\Ckkionicons/svg/ios-browsers.svgnu[PK}w\1LLionicons/svg/logo-ionic.svgnu[PK}w\>mmionicons/svg/md-compass.svgnu[PK}w\ˆ%ionicons/svg/md-git-branch.svgnu[PK}w\Ƕionicons/svg/md-today.svgnu[PK}w\dITTionicons/svg/md-open.svgnu[PK}w\tNEEionicons/svg/ios-barcode.svgnu[PK}w\=@eeionicons/svg/md-link.svgnu[PK}w\z[[)ionicons/svg/md-notifications-outline.svgnu[PK}w\G+ionicons/svg/md-star-half.svgnu[PK}w\0rionicons/svg/md-archive.svgnu[PK}w\P@@ionicons/svg/logo-python.svgnu[PK}w\crrionicons/svg/ios-power.svgnu[PK}w\pRPPionicons/svg/ios-warning.svgnu[PK}w\iKionicons/svg/ios-wine.svgnu[PK}w\ionicons/svg/ios-bowtie.svgnu[PK}w\x2!"ionicons/svg/ios-trending-down.svgnu[PK}w\ionicons/svg/ios-home.svgnu[PK}w\ionicons/svg/ios-shuffle.svgnu[PK}w\d)FFionicons/svg/ios-menu.svgnu[PK}w\Gwionicons/svg/ios-star-half.svgnu[PK}w\ɐWionicons/svg/md-school.svgnu[PK}w\Xeeionicons/svg/ios-boat.svgnu[PK}w\U!ionicons/svg/ios-battery-full.svgnu[PK}w\m<<ionicons/svg/md-microphone.svgnu[PK}w\{ PPionicons/svg/logo-html5.svgnu[PK}w\ڤWionicons/svg/md-add.svgnu[PK}w\%ODDionicons/svg/md-heart.svgnu[PK}w\;hh$ionicons/svg/md-checkbox-outline.svgnu[PK}w\;(ionicons/svg/md-hammer.svgnu[PK}w\[9zzionicons/svg/md-beer.svgnu[PK}w\ W $ionicons/svg/md-git-pull-request.svgnu[PK}w\苷33ionicons/svg/ios-shirt.svgnu[PK}w\xionicons/svg/md-snow.svgnu[PK}w\Jionicons/svg/logo-npm.svgnu[PK}w\}%ionicons/svg/ios-checkbox-outline.svgnu[PK}w\P:P:cheatsheet.htmlnu[ Ionicons Cheatsheet

Ionicons Cheatsheet, 318 icons

Icon Name iOS Material Design
add
add-circle
add-circle-outline
airplane
alarm
albums
alert
american-football
analytics
aperture
apps
appstore
archive
arrow-back
arrow-down
arrow-dropdown
arrow-dropdown-circle
arrow-dropleft
arrow-dropleft-circle
arrow-dropright
arrow-dropright-circle
arrow-dropup
arrow-dropup-circle
arrow-forward
arrow-round-back
arrow-round-down
arrow-round-forward
arrow-round-up
arrow-up
at
attach
backspace
barcode
baseball
basket
basketball
battery-charging
battery-dead
battery-full
beaker
bed
beer
bicycle
bluetooth
boat
body
bonfire
book
bookmark
bookmarks
bowtie
briefcase
browsers
brush
bug
build
bulb
bus
business
cafe
calculator
calendar
call
camera
car
card
cart
cash
cellular
chatboxes
chatbubbles
checkbox
checkbox-outline
checkmark
checkmark-circle
checkmark-circle-outline
clipboard
clock
close
close-circle
close-circle-outline
cloud
cloud-circle
cloud-done
cloud-download
cloud-outline
cloud-upload
cloudy
cloudy-night
code
code-download
code-working
cog
color-fill
color-filter
color-palette
color-wand
compass
construct
contact
contacts
contract
contrast
copy
create
crop
cube
cut
desktop
disc
document
done-all
download
easel
egg
exit
expand
eye
eye-off
fastforward
female
filing
film
finger-print
fitness
flag
flame
flash
flash-off
flashlight
flask
flower
folder
folder-open
football
funnel
gift
git-branch
git-commit
git-compare
git-merge
git-network
git-pull-request
glasses
globe
grid
hammer
hand
happy
headset
heart
heart-dislike
heart-empty
heart-half
help
help-buoy
help-circle
help-circle-outline
home
hourglass
ice-cream
image
images
infinite
information
information-circle
information-circle-outline
jet
journal
key
keypad
laptop
leaf
link
list
list-box
locate
lock
log-in
log-out
magnet
mail
mail-open
mail-unread
male
man
map
medal
medical
medkit
megaphone
menu
mic
mic-off
microphone
moon
more
move
musical-note
musical-notes
navigate
notifications
notifications-off
notifications-outline
nuclear
nutrition
open
options
outlet
paper
paper-plane
partly-sunny
pause
paw
people
person
person-add
phone-landscape
phone-portrait
photos
pie
pin
pint
pizza
planet
play
play-circle
podium
power
pricetag
pricetags
print
pulse
qr-scanner
quote
radio
radio-button-off
radio-button-on
rainy
recording
redo
refresh
refresh-circle
remove
remove-circle
remove-circle-outline
reorder
repeat
resize
restaurant
return-left
return-right
reverse-camera
rewind
ribbon
rocket
rose
sad
save
school
search
send
settings
share
share-alt
shirt
shuffle
skip-backward
skip-forward
snow
speedometer
square
square-outline
star
star-half
star-outline
stats
stopwatch
subway
sunny
swap
switch
sync
tablet-landscape
tablet-portrait
tennisball
text
thermometer
thumbs-down
thumbs-up
thunderstorm
time
timer
today
train
transgender
trash
trending-down
trending-up
trophy
tv
umbrella
undo
unlock
videocam
volume-high
volume-low
volume-mute
volume-off
walk
wallet
warning
watch
water
wifi
wine
woman
PK}w\I~HHscss/ionicons-common.scssnu[@charset "UTF-8"; // Ionicons Common CSS // -------------------------- .ionicons, .ion-ios-add:before, .ion-ios-add-circle:before, .ion-ios-add-circle-outline:before, .ion-ios-airplane:before, .ion-ios-alarm:before, .ion-ios-albums:before, .ion-ios-alert:before, .ion-ios-american-football:before, .ion-ios-analytics:before, .ion-ios-aperture:before, .ion-ios-apps:before, .ion-ios-appstore:before, .ion-ios-archive:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-dropdown:before, .ion-ios-arrow-dropdown-circle:before, .ion-ios-arrow-dropleft:before, .ion-ios-arrow-dropleft-circle:before, .ion-ios-arrow-dropright:before, .ion-ios-arrow-dropright-circle:before, .ion-ios-arrow-dropup:before, .ion-ios-arrow-dropup-circle:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-round-back:before, .ion-ios-arrow-round-down:before, .ion-ios-arrow-round-forward:before, .ion-ios-arrow-round-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-attach:before, .ion-ios-backspace:before, .ion-ios-barcode:before, .ion-ios-baseball:before, .ion-ios-basket:before, .ion-ios-basketball:before, .ion-ios-battery-charging:before, .ion-ios-battery-dead:before, .ion-ios-battery-full:before, .ion-ios-beaker:before, .ion-ios-bed:before, .ion-ios-beer:before, .ion-ios-bicycle:before, .ion-ios-bluetooth:before, .ion-ios-boat:before, .ion-ios-body:before, .ion-ios-bonfire:before, .ion-ios-book:before, .ion-ios-bookmark:before, .ion-ios-bookmarks:before, .ion-ios-bowtie:before, .ion-ios-briefcase:before, .ion-ios-browsers:before, .ion-ios-brush:before, .ion-ios-bug:before, .ion-ios-build:before, .ion-ios-bulb:before, .ion-ios-bus:before, .ion-ios-business:before, .ion-ios-cafe:before, .ion-ios-calculator:before, .ion-ios-calendar:before, .ion-ios-call:before, .ion-ios-camera:before, .ion-ios-car:before, .ion-ios-card:before, .ion-ios-cart:before, .ion-ios-cash:before, .ion-ios-cellular:before, .ion-ios-chatboxes:before, .ion-ios-chatbubbles:before, .ion-ios-checkbox:before, .ion-ios-checkbox-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-circle:before, .ion-ios-checkmark-circle-outline:before, .ion-ios-clipboard:before, .ion-ios-clock:before, .ion-ios-close:before, .ion-ios-close-circle:before, .ion-ios-close-circle-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-circle:before, .ion-ios-cloud-done:before, .ion-ios-cloud-download:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-code:before, .ion-ios-code-download:before, .ion-ios-code-working:before, .ion-ios-cog:before, .ion-ios-color-fill:before, .ion-ios-color-filter:before, .ion-ios-color-palette:before, .ion-ios-color-wand:before, .ion-ios-compass:before, .ion-ios-construct:before, .ion-ios-contact:before, .ion-ios-contacts:before, .ion-ios-contract:before, .ion-ios-contrast:before, .ion-ios-copy:before, .ion-ios-create:before, .ion-ios-crop:before, .ion-ios-cube:before, .ion-ios-cut:before, .ion-ios-desktop:before, .ion-ios-disc:before, .ion-ios-document:before, .ion-ios-done-all:before, .ion-ios-download:before, .ion-ios-easel:before, .ion-ios-egg:before, .ion-ios-exit:before, .ion-ios-expand:before, .ion-ios-eye:before, .ion-ios-eye-off:before, .ion-ios-fastforward:before, .ion-ios-female:before, .ion-ios-filing:before, .ion-ios-film:before, .ion-ios-finger-print:before, .ion-ios-fitness:before, .ion-ios-flag:before, .ion-ios-flame:before, .ion-ios-flash:before, .ion-ios-flash-off:before, .ion-ios-flashlight:before, .ion-ios-flask:before, .ion-ios-flower:before, .ion-ios-folder:before, .ion-ios-folder-open:before, .ion-ios-football:before, .ion-ios-funnel:before, .ion-ios-gift:before, .ion-ios-git-branch:before, .ion-ios-git-commit:before, .ion-ios-git-compare:before, .ion-ios-git-merge:before, .ion-ios-git-network:before, .ion-ios-git-pull-request:before, .ion-ios-glasses:before, .ion-ios-globe:before, .ion-ios-grid:before, .ion-ios-hammer:before, .ion-ios-hand:before, .ion-ios-happy:before, .ion-ios-headset:before, .ion-ios-heart:before, .ion-ios-heart-dislike:before, .ion-ios-heart-empty:before, .ion-ios-heart-half:before, .ion-ios-help:before, .ion-ios-help-buoy:before, .ion-ios-help-circle:before, .ion-ios-help-circle-outline:before, .ion-ios-home:before, .ion-ios-hourglass:before, .ion-ios-ice-cream:before, .ion-ios-image:before, .ion-ios-images:before, .ion-ios-infinite:before, .ion-ios-information:before, .ion-ios-information-circle:before, .ion-ios-information-circle-outline:before, .ion-ios-jet:before, .ion-ios-journal:before, .ion-ios-key:before, .ion-ios-keypad:before, .ion-ios-laptop:before, .ion-ios-leaf:before, .ion-ios-link:before, .ion-ios-list:before, .ion-ios-list-box:before, .ion-ios-locate:before, .ion-ios-lock:before, .ion-ios-log-in:before, .ion-ios-log-out:before, .ion-ios-magnet:before, .ion-ios-mail:before, .ion-ios-mail-open:before, .ion-ios-mail-unread:before, .ion-ios-male:before, .ion-ios-man:before, .ion-ios-map:before, .ion-ios-medal:before, .ion-ios-medical:before, .ion-ios-medkit:before, .ion-ios-megaphone:before, .ion-ios-menu:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-microphone:before, .ion-ios-moon:before, .ion-ios-more:before, .ion-ios-move:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-notifications:before, .ion-ios-notifications-off:before, .ion-ios-notifications-outline:before, .ion-ios-nuclear:before, .ion-ios-nutrition:before, .ion-ios-open:before, .ion-ios-options:before, .ion-ios-outlet:before, .ion-ios-paper:before, .ion-ios-paper-plane:before, .ion-ios-partly-sunny:before, .ion-ios-pause:before, .ion-ios-paw:before, .ion-ios-people:before, .ion-ios-person:before, .ion-ios-person-add:before, .ion-ios-phone-landscape:before, .ion-ios-phone-portrait:before, .ion-ios-photos:before, .ion-ios-pie:before, .ion-ios-pin:before, .ion-ios-pint:before, .ion-ios-pizza:before, .ion-ios-planet:before, .ion-ios-play:before, .ion-ios-play-circle:before, .ion-ios-podium:before, .ion-ios-power:before, .ion-ios-pricetag:before, .ion-ios-pricetags:before, .ion-ios-print:before, .ion-ios-pulse:before, .ion-ios-qr-scanner:before, .ion-ios-quote:before, .ion-ios-radio:before, .ion-ios-radio-button-off:before, .ion-ios-radio-button-on:before, .ion-ios-rainy:before, .ion-ios-recording:before, .ion-ios-redo:before, .ion-ios-refresh:before, .ion-ios-refresh-circle:before, .ion-ios-remove:before, .ion-ios-remove-circle:before, .ion-ios-remove-circle-outline:before, .ion-ios-reorder:before, .ion-ios-repeat:before, .ion-ios-resize:before, .ion-ios-restaurant:before, .ion-ios-return-left:before, .ion-ios-return-right:before, .ion-ios-reverse-camera:before, .ion-ios-rewind:before, .ion-ios-ribbon:before, .ion-ios-rocket:before, .ion-ios-rose:before, .ion-ios-sad:before, .ion-ios-save:before, .ion-ios-school:before, .ion-ios-search:before, .ion-ios-send:before, .ion-ios-settings:before, .ion-ios-share:before, .ion-ios-share-alt:before, .ion-ios-shirt:before, .ion-ios-shuffle:before, .ion-ios-skip-backward:before, .ion-ios-skip-forward:before, .ion-ios-snow:before, .ion-ios-speedometer:before, .ion-ios-square:before, .ion-ios-square-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stats:before, .ion-ios-stopwatch:before, .ion-ios-subway:before, .ion-ios-sunny:before, .ion-ios-swap:before, .ion-ios-switch:before, .ion-ios-sync:before, .ion-ios-tablet-landscape:before, .ion-ios-tablet-portrait:before, .ion-ios-tennisball:before, .ion-ios-text:before, .ion-ios-thermometer:before, .ion-ios-thumbs-down:before, .ion-ios-thumbs-up:before, .ion-ios-thunderstorm:before, .ion-ios-time:before, .ion-ios-timer:before, .ion-ios-today:before, .ion-ios-train:before, .ion-ios-transgender:before, .ion-ios-trash:before, .ion-ios-trending-down:before, .ion-ios-trending-up:before, .ion-ios-trophy:before, .ion-ios-tv:before, .ion-ios-umbrella:before, .ion-ios-undo:before, .ion-ios-unlock:before, .ion-ios-videocam:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-volume-mute:before, .ion-ios-volume-off:before, .ion-ios-walk:before, .ion-ios-wallet:before, .ion-ios-warning:before, .ion-ios-watch:before, .ion-ios-water:before, .ion-ios-wifi:before, .ion-ios-wine:before, .ion-ios-woman:before, .ion-logo-android:before, .ion-logo-angular:before, .ion-logo-apple:before, .ion-logo-bitbucket:before, .ion-logo-bitcoin:before, .ion-logo-buffer:before, .ion-logo-chrome:before, .ion-logo-closed-captioning:before, .ion-logo-codepen:before, .ion-logo-css3:before, .ion-logo-designernews:before, .ion-logo-dribbble:before, .ion-logo-dropbox:before, .ion-logo-euro:before, .ion-logo-facebook:before, .ion-logo-flickr:before, .ion-logo-foursquare:before, .ion-logo-freebsd-devil:before, .ion-logo-game-controller-a:before, .ion-logo-game-controller-b:before, .ion-logo-github:before, .ion-logo-google:before, .ion-logo-googleplus:before, .ion-logo-hackernews:before, .ion-logo-html5:before, .ion-logo-instagram:before, .ion-logo-ionic:before, .ion-logo-ionitron:before, .ion-logo-javascript:before, .ion-logo-linkedin:before, .ion-logo-markdown:before, .ion-logo-model-s:before, .ion-logo-no-smoking:before, .ion-logo-nodejs:before, .ion-logo-npm:before, .ion-logo-octocat:before, .ion-logo-pinterest:before, .ion-logo-playstation:before, .ion-logo-polymer:before, .ion-logo-python:before, .ion-logo-reddit:before, .ion-logo-rss:before, .ion-logo-sass:before, .ion-logo-skype:before, .ion-logo-slack:before, .ion-logo-snapchat:before, .ion-logo-steam:before, .ion-logo-tumblr:before, .ion-logo-tux:before, .ion-logo-twitch:before, .ion-logo-twitter:before, .ion-logo-usd:before, .ion-logo-vimeo:before, .ion-logo-vk:before, .ion-logo-whatsapp:before, .ion-logo-windows:before, .ion-logo-wordpress:before, .ion-logo-xbox:before, .ion-logo-xing:before, .ion-logo-yahoo:before, .ion-logo-yen:before, .ion-logo-youtube:before, .ion-md-add:before, .ion-md-add-circle:before, .ion-md-add-circle-outline:before, .ion-md-airplane:before, .ion-md-alarm:before, .ion-md-albums:before, .ion-md-alert:before, .ion-md-american-football:before, .ion-md-analytics:before, .ion-md-aperture:before, .ion-md-apps:before, .ion-md-appstore:before, .ion-md-archive:before, .ion-md-arrow-back:before, .ion-md-arrow-down:before, .ion-md-arrow-dropdown:before, .ion-md-arrow-dropdown-circle:before, .ion-md-arrow-dropleft:before, .ion-md-arrow-dropleft-circle:before, .ion-md-arrow-dropright:before, .ion-md-arrow-dropright-circle:before, .ion-md-arrow-dropup:before, .ion-md-arrow-dropup-circle:before, .ion-md-arrow-forward:before, .ion-md-arrow-round-back:before, .ion-md-arrow-round-down:before, .ion-md-arrow-round-forward:before, .ion-md-arrow-round-up:before, .ion-md-arrow-up:before, .ion-md-at:before, .ion-md-attach:before, .ion-md-backspace:before, .ion-md-barcode:before, .ion-md-baseball:before, .ion-md-basket:before, .ion-md-basketball:before, .ion-md-battery-charging:before, .ion-md-battery-dead:before, .ion-md-battery-full:before, .ion-md-beaker:before, .ion-md-bed:before, .ion-md-beer:before, .ion-md-bicycle:before, .ion-md-bluetooth:before, .ion-md-boat:before, .ion-md-body:before, .ion-md-bonfire:before, .ion-md-book:before, .ion-md-bookmark:before, .ion-md-bookmarks:before, .ion-md-bowtie:before, .ion-md-briefcase:before, .ion-md-browsers:before, .ion-md-brush:before, .ion-md-bug:before, .ion-md-build:before, .ion-md-bulb:before, .ion-md-bus:before, .ion-md-business:before, .ion-md-cafe:before, .ion-md-calculator:before, .ion-md-calendar:before, .ion-md-call:before, .ion-md-camera:before, .ion-md-car:before, .ion-md-card:before, .ion-md-cart:before, .ion-md-cash:before, .ion-md-cellular:before, .ion-md-chatboxes:before, .ion-md-chatbubbles:before, .ion-md-checkbox:before, .ion-md-checkbox-outline:before, .ion-md-checkmark:before, .ion-md-checkmark-circle:before, .ion-md-checkmark-circle-outline:before, .ion-md-clipboard:before, .ion-md-clock:before, .ion-md-close:before, .ion-md-close-circle:before, .ion-md-close-circle-outline:before, .ion-md-cloud:before, .ion-md-cloud-circle:before, .ion-md-cloud-done:before, .ion-md-cloud-download:before, .ion-md-cloud-outline:before, .ion-md-cloud-upload:before, .ion-md-cloudy:before, .ion-md-cloudy-night:before, .ion-md-code:before, .ion-md-code-download:before, .ion-md-code-working:before, .ion-md-cog:before, .ion-md-color-fill:before, .ion-md-color-filter:before, .ion-md-color-palette:before, .ion-md-color-wand:before, .ion-md-compass:before, .ion-md-construct:before, .ion-md-contact:before, .ion-md-contacts:before, .ion-md-contract:before, .ion-md-contrast:before, .ion-md-copy:before, .ion-md-create:before, .ion-md-crop:before, .ion-md-cube:before, .ion-md-cut:before, .ion-md-desktop:before, .ion-md-disc:before, .ion-md-document:before, .ion-md-done-all:before, .ion-md-download:before, .ion-md-easel:before, .ion-md-egg:before, .ion-md-exit:before, .ion-md-expand:before, .ion-md-eye:before, .ion-md-eye-off:before, .ion-md-fastforward:before, .ion-md-female:before, .ion-md-filing:before, .ion-md-film:before, .ion-md-finger-print:before, .ion-md-fitness:before, .ion-md-flag:before, .ion-md-flame:before, .ion-md-flash:before, .ion-md-flash-off:before, .ion-md-flashlight:before, .ion-md-flask:before, .ion-md-flower:before, .ion-md-folder:before, .ion-md-folder-open:before, .ion-md-football:before, .ion-md-funnel:before, .ion-md-gift:before, .ion-md-git-branch:before, .ion-md-git-commit:before, .ion-md-git-compare:before, .ion-md-git-merge:before, .ion-md-git-network:before, .ion-md-git-pull-request:before, .ion-md-glasses:before, .ion-md-globe:before, .ion-md-grid:before, .ion-md-hammer:before, .ion-md-hand:before, .ion-md-happy:before, .ion-md-headset:before, .ion-md-heart:before, .ion-md-heart-dislike:before, .ion-md-heart-empty:before, .ion-md-heart-half:before, .ion-md-help:before, .ion-md-help-buoy:before, .ion-md-help-circle:before, .ion-md-help-circle-outline:before, .ion-md-home:before, .ion-md-hourglass:before, .ion-md-ice-cream:before, .ion-md-image:before, .ion-md-images:before, .ion-md-infinite:before, .ion-md-information:before, .ion-md-information-circle:before, .ion-md-information-circle-outline:before, .ion-md-jet:before, .ion-md-journal:before, .ion-md-key:before, .ion-md-keypad:before, .ion-md-laptop:before, .ion-md-leaf:before, .ion-md-link:before, .ion-md-list:before, .ion-md-list-box:before, .ion-md-locate:before, .ion-md-lock:before, .ion-md-log-in:before, .ion-md-log-out:before, .ion-md-magnet:before, .ion-md-mail:before, .ion-md-mail-open:before, .ion-md-mail-unread:before, .ion-md-male:before, .ion-md-man:before, .ion-md-map:before, .ion-md-medal:before, .ion-md-medical:before, .ion-md-medkit:before, .ion-md-megaphone:before, .ion-md-menu:before, .ion-md-mic:before, .ion-md-mic-off:before, .ion-md-microphone:before, .ion-md-moon:before, .ion-md-more:before, .ion-md-move:before, .ion-md-musical-note:before, .ion-md-musical-notes:before, .ion-md-navigate:before, .ion-md-notifications:before, .ion-md-notifications-off:before, .ion-md-notifications-outline:before, .ion-md-nuclear:before, .ion-md-nutrition:before, .ion-md-open:before, .ion-md-options:before, .ion-md-outlet:before, .ion-md-paper:before, .ion-md-paper-plane:before, .ion-md-partly-sunny:before, .ion-md-pause:before, .ion-md-paw:before, .ion-md-people:before, .ion-md-person:before, .ion-md-person-add:before, .ion-md-phone-landscape:before, .ion-md-phone-portrait:before, .ion-md-photos:before, .ion-md-pie:before, .ion-md-pin:before, .ion-md-pint:before, .ion-md-pizza:before, .ion-md-planet:before, .ion-md-play:before, .ion-md-play-circle:before, .ion-md-podium:before, .ion-md-power:before, .ion-md-pricetag:before, .ion-md-pricetags:before, .ion-md-print:before, .ion-md-pulse:before, .ion-md-qr-scanner:before, .ion-md-quote:before, .ion-md-radio:before, .ion-md-radio-button-off:before, .ion-md-radio-button-on:before, .ion-md-rainy:before, .ion-md-recording:before, .ion-md-redo:before, .ion-md-refresh:before, .ion-md-refresh-circle:before, .ion-md-remove:before, .ion-md-remove-circle:before, .ion-md-remove-circle-outline:before, .ion-md-reorder:before, .ion-md-repeat:before, .ion-md-resize:before, .ion-md-restaurant:before, .ion-md-return-left:before, .ion-md-return-right:before, .ion-md-reverse-camera:before, .ion-md-rewind:before, .ion-md-ribbon:before, .ion-md-rocket:before, .ion-md-rose:before, .ion-md-sad:before, .ion-md-save:before, .ion-md-school:before, .ion-md-search:before, .ion-md-send:before, .ion-md-settings:before, .ion-md-share:before, .ion-md-share-alt:before, .ion-md-shirt:before, .ion-md-shuffle:before, .ion-md-skip-backward:before, .ion-md-skip-forward:before, .ion-md-snow:before, .ion-md-speedometer:before, .ion-md-square:before, .ion-md-square-outline:before, .ion-md-star:before, .ion-md-star-half:before, .ion-md-star-outline:before, .ion-md-stats:before, .ion-md-stopwatch:before, .ion-md-subway:before, .ion-md-sunny:before, .ion-md-swap:before, .ion-md-switch:before, .ion-md-sync:before, .ion-md-tablet-landscape:before, .ion-md-tablet-portrait:before, .ion-md-tennisball:before, .ion-md-text:before, .ion-md-thermometer:before, .ion-md-thumbs-down:before, .ion-md-thumbs-up:before, .ion-md-thunderstorm:before, .ion-md-time:before, .ion-md-timer:before, .ion-md-today:before, .ion-md-train:before, .ion-md-transgender:before, .ion-md-trash:before, .ion-md-trending-down:before, .ion-md-trending-up:before, .ion-md-trophy:before, .ion-md-tv:before, .ion-md-umbrella:before, .ion-md-undo:before, .ion-md-unlock:before, .ion-md-videocam:before, .ion-md-volume-high:before, .ion-md-volume-low:before, .ion-md-volume-mute:before, .ion-md-volume-off:before, .ion-md-walk:before, .ion-md-wallet:before, .ion-md-warning:before, .ion-md-watch:before, .ion-md-water:before, .ion-md-wifi:before, .ion-md-wine:before, .ion-md-woman:before { @extend .ion; }PK}w\ scss/ionicons-variables.scssnu[@charset "UTF-8"; // Ionicons Variables // -------------------------- $ionicons-font-path: "../fonts" !default; $ionicons-font-family: "Ionicons" !default; $ionicons-version: "4.4.5" !default;PK}w\!scss/ionicons.scssnu[@import "ionicons-variables"; /*! Ionicons, v#{$ionicons-version} Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons Android-style icons originally built by Google’s Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. */ // Ionicons // -------------------------- @font-face { font-family: "Ionicons"; src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}"); src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}#iefix") format("embedded-opentype"), url("#{$ionicons-font-path}/ionicons.woff2?v=#{$ionicons-version}") format("woff2"), url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"), url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"), url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg"); font-weight: normal; font-style: normal; } .ion { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @import "ionicons-common"; @import "ionicons-icons"; PK}w\ %%scss/ionicons-core.scssnu[@import "ionicons-variables"; /*! Ionicons, v#{$ionicons-version} Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons Android-style icons originally built by Google’s Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. */ @import "ionicons-icons"; PK}w\iscss/ionicons-icons.scssnu[@charset "UTF-8"; // Ionicons Icon Font CSS // -------------------------- .ion-ios-add:before { content: "\f102"; } .ion-ios-add-circle:before { content: "\f101"; } .ion-ios-add-circle-outline:before { content: "\f100"; } .ion-ios-airplane:before { content: "\f137"; } .ion-ios-alarm:before { content: "\f3c8"; } .ion-ios-albums:before { content: "\f3ca"; } .ion-ios-alert:before { content: "\f104"; } .ion-ios-american-football:before { content: "\f106"; } .ion-ios-analytics:before { content: "\f3ce"; } .ion-ios-aperture:before { content: "\f108"; } .ion-ios-apps:before { content: "\f10a"; } .ion-ios-appstore:before { content: "\f10c"; } .ion-ios-archive:before { content: "\f10e"; } .ion-ios-arrow-back:before { content: "\f3cf"; } .ion-ios-arrow-down:before { content: "\f3d0"; } .ion-ios-arrow-dropdown:before { content: "\f110"; } .ion-ios-arrow-dropdown-circle:before { content: "\f125"; } .ion-ios-arrow-dropleft:before { content: "\f112"; } .ion-ios-arrow-dropleft-circle:before { content: "\f129"; } .ion-ios-arrow-dropright:before { content: "\f114"; } .ion-ios-arrow-dropright-circle:before { content: "\f12b"; } .ion-ios-arrow-dropup:before { content: "\f116"; } .ion-ios-arrow-dropup-circle:before { content: "\f12d"; } .ion-ios-arrow-forward:before { content: "\f3d1"; } .ion-ios-arrow-round-back:before { content: "\f117"; } .ion-ios-arrow-round-down:before { content: "\f118"; } .ion-ios-arrow-round-forward:before { content: "\f119"; } .ion-ios-arrow-round-up:before { content: "\f11a"; } .ion-ios-arrow-up:before { content: "\f3d8"; } .ion-ios-at:before { content: "\f3da"; } .ion-ios-attach:before { content: "\f11b"; } .ion-ios-backspace:before { content: "\f11d"; } .ion-ios-barcode:before { content: "\f3dc"; } .ion-ios-baseball:before { content: "\f3de"; } .ion-ios-basket:before { content: "\f11f"; } .ion-ios-basketball:before { content: "\f3e0"; } .ion-ios-battery-charging:before { content: "\f120"; } .ion-ios-battery-dead:before { content: "\f121"; } .ion-ios-battery-full:before { content: "\f122"; } .ion-ios-beaker:before { content: "\f124"; } .ion-ios-bed:before { content: "\f139"; } .ion-ios-beer:before { content: "\f126"; } .ion-ios-bicycle:before { content: "\f127"; } .ion-ios-bluetooth:before { content: "\f128"; } .ion-ios-boat:before { content: "\f12a"; } .ion-ios-body:before { content: "\f3e4"; } .ion-ios-bonfire:before { content: "\f12c"; } .ion-ios-book:before { content: "\f3e8"; } .ion-ios-bookmark:before { content: "\f12e"; } .ion-ios-bookmarks:before { content: "\f3ea"; } .ion-ios-bowtie:before { content: "\f130"; } .ion-ios-briefcase:before { content: "\f3ee"; } .ion-ios-browsers:before { content: "\f3f0"; } .ion-ios-brush:before { content: "\f132"; } .ion-ios-bug:before { content: "\f134"; } .ion-ios-build:before { content: "\f136"; } .ion-ios-bulb:before { content: "\f138"; } .ion-ios-bus:before { content: "\f13a"; } .ion-ios-business:before { content: "\f1a3"; } .ion-ios-cafe:before { content: "\f13c"; } .ion-ios-calculator:before { content: "\f3f2"; } .ion-ios-calendar:before { content: "\f3f4"; } .ion-ios-call:before { content: "\f13e"; } .ion-ios-camera:before { content: "\f3f6"; } .ion-ios-car:before { content: "\f140"; } .ion-ios-card:before { content: "\f142"; } .ion-ios-cart:before { content: "\f3f8"; } .ion-ios-cash:before { content: "\f144"; } .ion-ios-cellular:before { content: "\f13d"; } .ion-ios-chatboxes:before { content: "\f3fa"; } .ion-ios-chatbubbles:before { content: "\f146"; } .ion-ios-checkbox:before { content: "\f148"; } .ion-ios-checkbox-outline:before { content: "\f147"; } .ion-ios-checkmark:before { content: "\f3ff"; } .ion-ios-checkmark-circle:before { content: "\f14a"; } .ion-ios-checkmark-circle-outline:before { content: "\f149"; } .ion-ios-clipboard:before { content: "\f14c"; } .ion-ios-clock:before { content: "\f403"; } .ion-ios-close:before { content: "\f406"; } .ion-ios-close-circle:before { content: "\f14e"; } .ion-ios-close-circle-outline:before { content: "\f14d"; } .ion-ios-cloud:before { content: "\f40c"; } .ion-ios-cloud-circle:before { content: "\f152"; } .ion-ios-cloud-done:before { content: "\f154"; } .ion-ios-cloud-download:before { content: "\f408"; } .ion-ios-cloud-outline:before { content: "\f409"; } .ion-ios-cloud-upload:before { content: "\f40b"; } .ion-ios-cloudy:before { content: "\f410"; } .ion-ios-cloudy-night:before { content: "\f40e"; } .ion-ios-code:before { content: "\f157"; } .ion-ios-code-download:before { content: "\f155"; } .ion-ios-code-working:before { content: "\f156"; } .ion-ios-cog:before { content: "\f412"; } .ion-ios-color-fill:before { content: "\f159"; } .ion-ios-color-filter:before { content: "\f414"; } .ion-ios-color-palette:before { content: "\f15b"; } .ion-ios-color-wand:before { content: "\f416"; } .ion-ios-compass:before { content: "\f15d"; } .ion-ios-construct:before { content: "\f15f"; } .ion-ios-contact:before { content: "\f41a"; } .ion-ios-contacts:before { content: "\f161"; } .ion-ios-contract:before { content: "\f162"; } .ion-ios-contrast:before { content: "\f163"; } .ion-ios-copy:before { content: "\f41c"; } .ion-ios-create:before { content: "\f165"; } .ion-ios-crop:before { content: "\f41e"; } .ion-ios-cube:before { content: "\f168"; } .ion-ios-cut:before { content: "\f16a"; } .ion-ios-desktop:before { content: "\f16c"; } .ion-ios-disc:before { content: "\f16e"; } .ion-ios-document:before { content: "\f170"; } .ion-ios-done-all:before { content: "\f171"; } .ion-ios-download:before { content: "\f420"; } .ion-ios-easel:before { content: "\f173"; } .ion-ios-egg:before { content: "\f175"; } .ion-ios-exit:before { content: "\f177"; } .ion-ios-expand:before { content: "\f178"; } .ion-ios-eye:before { content: "\f425"; } .ion-ios-eye-off:before { content: "\f17a"; } .ion-ios-fastforward:before { content: "\f427"; } .ion-ios-female:before { content: "\f17b"; } .ion-ios-filing:before { content: "\f429"; } .ion-ios-film:before { content: "\f42b"; } .ion-ios-finger-print:before { content: "\f17c"; } .ion-ios-fitness:before { content: "\f1ab"; } .ion-ios-flag:before { content: "\f42d"; } .ion-ios-flame:before { content: "\f42f"; } .ion-ios-flash:before { content: "\f17e"; } .ion-ios-flash-off:before { content: "\f12f"; } .ion-ios-flashlight:before { content: "\f141"; } .ion-ios-flask:before { content: "\f431"; } .ion-ios-flower:before { content: "\f433"; } .ion-ios-folder:before { content: "\f435"; } .ion-ios-folder-open:before { content: "\f180"; } .ion-ios-football:before { content: "\f437"; } .ion-ios-funnel:before { content: "\f182"; } .ion-ios-gift:before { content: "\f191"; } .ion-ios-git-branch:before { content: "\f183"; } .ion-ios-git-commit:before { content: "\f184"; } .ion-ios-git-compare:before { content: "\f185"; } .ion-ios-git-merge:before { content: "\f186"; } .ion-ios-git-network:before { content: "\f187"; } .ion-ios-git-pull-request:before { content: "\f188"; } .ion-ios-glasses:before { content: "\f43f"; } .ion-ios-globe:before { content: "\f18a"; } .ion-ios-grid:before { content: "\f18c"; } .ion-ios-hammer:before { content: "\f18e"; } .ion-ios-hand:before { content: "\f190"; } .ion-ios-happy:before { content: "\f192"; } .ion-ios-headset:before { content: "\f194"; } .ion-ios-heart:before { content: "\f443"; } .ion-ios-heart-dislike:before { content: "\f13f"; } .ion-ios-heart-empty:before { content: "\f19b"; } .ion-ios-heart-half:before { content: "\f19d"; } .ion-ios-help:before { content: "\f446"; } .ion-ios-help-buoy:before { content: "\f196"; } .ion-ios-help-circle:before { content: "\f198"; } .ion-ios-help-circle-outline:before { content: "\f197"; } .ion-ios-home:before { content: "\f448"; } .ion-ios-hourglass:before { content: "\f103"; } .ion-ios-ice-cream:before { content: "\f19a"; } .ion-ios-image:before { content: "\f19c"; } .ion-ios-images:before { content: "\f19e"; } .ion-ios-infinite:before { content: "\f44a"; } .ion-ios-information:before { content: "\f44d"; } .ion-ios-information-circle:before { content: "\f1a0"; } .ion-ios-information-circle-outline:before { content: "\f19f"; } .ion-ios-jet:before { content: "\f1a5"; } .ion-ios-journal:before { content: "\f189"; } .ion-ios-key:before { content: "\f1a7"; } .ion-ios-keypad:before { content: "\f450"; } .ion-ios-laptop:before { content: "\f1a8"; } .ion-ios-leaf:before { content: "\f1aa"; } .ion-ios-link:before { content: "\f22a"; } .ion-ios-list:before { content: "\f454"; } .ion-ios-list-box:before { content: "\f143"; } .ion-ios-locate:before { content: "\f1ae"; } .ion-ios-lock:before { content: "\f1b0"; } .ion-ios-log-in:before { content: "\f1b1"; } .ion-ios-log-out:before { content: "\f1b2"; } .ion-ios-magnet:before { content: "\f1b4"; } .ion-ios-mail:before { content: "\f1b8"; } .ion-ios-mail-open:before { content: "\f1b6"; } .ion-ios-mail-unread:before { content: "\f145"; } .ion-ios-male:before { content: "\f1b9"; } .ion-ios-man:before { content: "\f1bb"; } .ion-ios-map:before { content: "\f1bd"; } .ion-ios-medal:before { content: "\f1bf"; } .ion-ios-medical:before { content: "\f45c"; } .ion-ios-medkit:before { content: "\f45e"; } .ion-ios-megaphone:before { content: "\f1c1"; } .ion-ios-menu:before { content: "\f1c3"; } .ion-ios-mic:before { content: "\f461"; } .ion-ios-mic-off:before { content: "\f45f"; } .ion-ios-microphone:before { content: "\f1c6"; } .ion-ios-moon:before { content: "\f468"; } .ion-ios-more:before { content: "\f1c8"; } .ion-ios-move:before { content: "\f1cb"; } .ion-ios-musical-note:before { content: "\f46b"; } .ion-ios-musical-notes:before { content: "\f46c"; } .ion-ios-navigate:before { content: "\f46e"; } .ion-ios-notifications:before { content: "\f1d3"; } .ion-ios-notifications-off:before { content: "\f1d1"; } .ion-ios-notifications-outline:before { content: "\f133"; } .ion-ios-nuclear:before { content: "\f1d5"; } .ion-ios-nutrition:before { content: "\f470"; } .ion-ios-open:before { content: "\f1d7"; } .ion-ios-options:before { content: "\f1d9"; } .ion-ios-outlet:before { content: "\f1db"; } .ion-ios-paper:before { content: "\f472"; } .ion-ios-paper-plane:before { content: "\f1dd"; } .ion-ios-partly-sunny:before { content: "\f1df"; } .ion-ios-pause:before { content: "\f478"; } .ion-ios-paw:before { content: "\f47a"; } .ion-ios-people:before { content: "\f47c"; } .ion-ios-person:before { content: "\f47e"; } .ion-ios-person-add:before { content: "\f1e1"; } .ion-ios-phone-landscape:before { content: "\f1e2"; } .ion-ios-phone-portrait:before { content: "\f1e3"; } .ion-ios-photos:before { content: "\f482"; } .ion-ios-pie:before { content: "\f484"; } .ion-ios-pin:before { content: "\f1e5"; } .ion-ios-pint:before { content: "\f486"; } .ion-ios-pizza:before { content: "\f1e7"; } .ion-ios-planet:before { content: "\f1eb"; } .ion-ios-play:before { content: "\f488"; } .ion-ios-play-circle:before { content: "\f113"; } .ion-ios-podium:before { content: "\f1ed"; } .ion-ios-power:before { content: "\f1ef"; } .ion-ios-pricetag:before { content: "\f48d"; } .ion-ios-pricetags:before { content: "\f48f"; } .ion-ios-print:before { content: "\f1f1"; } .ion-ios-pulse:before { content: "\f493"; } .ion-ios-qr-scanner:before { content: "\f1f3"; } .ion-ios-quote:before { content: "\f1f5"; } .ion-ios-radio:before { content: "\f1f9"; } .ion-ios-radio-button-off:before { content: "\f1f6"; } .ion-ios-radio-button-on:before { content: "\f1f7"; } .ion-ios-rainy:before { content: "\f495"; } .ion-ios-recording:before { content: "\f497"; } .ion-ios-redo:before { content: "\f499"; } .ion-ios-refresh:before { content: "\f49c"; } .ion-ios-refresh-circle:before { content: "\f135"; } .ion-ios-remove:before { content: "\f1fc"; } .ion-ios-remove-circle:before { content: "\f1fb"; } .ion-ios-remove-circle-outline:before { content: "\f1fa"; } .ion-ios-reorder:before { content: "\f1fd"; } .ion-ios-repeat:before { content: "\f1fe"; } .ion-ios-resize:before { content: "\f1ff"; } .ion-ios-restaurant:before { content: "\f201"; } .ion-ios-return-left:before { content: "\f202"; } .ion-ios-return-right:before { content: "\f203"; } .ion-ios-reverse-camera:before { content: "\f49f"; } .ion-ios-rewind:before { content: "\f4a1"; } .ion-ios-ribbon:before { content: "\f205"; } .ion-ios-rocket:before { content: "\f14b"; } .ion-ios-rose:before { content: "\f4a3"; } .ion-ios-sad:before { content: "\f207"; } .ion-ios-save:before { content: "\f1a6"; } .ion-ios-school:before { content: "\f209"; } .ion-ios-search:before { content: "\f4a5"; } .ion-ios-send:before { content: "\f20c"; } .ion-ios-settings:before { content: "\f4a7"; } .ion-ios-share:before { content: "\f211"; } .ion-ios-share-alt:before { content: "\f20f"; } .ion-ios-shirt:before { content: "\f213"; } .ion-ios-shuffle:before { content: "\f4a9"; } .ion-ios-skip-backward:before { content: "\f215"; } .ion-ios-skip-forward:before { content: "\f217"; } .ion-ios-snow:before { content: "\f218"; } .ion-ios-speedometer:before { content: "\f4b0"; } .ion-ios-square:before { content: "\f21a"; } .ion-ios-square-outline:before { content: "\f15c"; } .ion-ios-star:before { content: "\f4b3"; } .ion-ios-star-half:before { content: "\f4b1"; } .ion-ios-star-outline:before { content: "\f4b2"; } .ion-ios-stats:before { content: "\f21c"; } .ion-ios-stopwatch:before { content: "\f4b5"; } .ion-ios-subway:before { content: "\f21e"; } .ion-ios-sunny:before { content: "\f4b7"; } .ion-ios-swap:before { content: "\f21f"; } .ion-ios-switch:before { content: "\f221"; } .ion-ios-sync:before { content: "\f222"; } .ion-ios-tablet-landscape:before { content: "\f223"; } .ion-ios-tablet-portrait:before { content: "\f24e"; } .ion-ios-tennisball:before { content: "\f4bb"; } .ion-ios-text:before { content: "\f250"; } .ion-ios-thermometer:before { content: "\f252"; } .ion-ios-thumbs-down:before { content: "\f254"; } .ion-ios-thumbs-up:before { content: "\f256"; } .ion-ios-thunderstorm:before { content: "\f4bd"; } .ion-ios-time:before { content: "\f4bf"; } .ion-ios-timer:before { content: "\f4c1"; } .ion-ios-today:before { content: "\f14f"; } .ion-ios-train:before { content: "\f258"; } .ion-ios-transgender:before { content: "\f259"; } .ion-ios-trash:before { content: "\f4c5"; } .ion-ios-trending-down:before { content: "\f25a"; } .ion-ios-trending-up:before { content: "\f25b"; } .ion-ios-trophy:before { content: "\f25d"; } .ion-ios-tv:before { content: "\f115"; } .ion-ios-umbrella:before { content: "\f25f"; } .ion-ios-undo:before { content: "\f4c7"; } .ion-ios-unlock:before { content: "\f261"; } .ion-ios-videocam:before { content: "\f4cd"; } .ion-ios-volume-high:before { content: "\f11c"; } .ion-ios-volume-low:before { content: "\f11e"; } .ion-ios-volume-mute:before { content: "\f263"; } .ion-ios-volume-off:before { content: "\f264"; } .ion-ios-walk:before { content: "\f266"; } .ion-ios-wallet:before { content: "\f18b"; } .ion-ios-warning:before { content: "\f268"; } .ion-ios-watch:before { content: "\f269"; } .ion-ios-water:before { content: "\f26b"; } .ion-ios-wifi:before { content: "\f26d"; } .ion-ios-wine:before { content: "\f26f"; } .ion-ios-woman:before { content: "\f271"; } .ion-logo-android:before { content: "\f225"; } .ion-logo-angular:before { content: "\f227"; } .ion-logo-apple:before { content: "\f229"; } .ion-logo-bitbucket:before { content: "\f193"; } .ion-logo-bitcoin:before { content: "\f22b"; } .ion-logo-buffer:before { content: "\f22d"; } .ion-logo-chrome:before { content: "\f22f"; } .ion-logo-closed-captioning:before { content: "\f105"; } .ion-logo-codepen:before { content: "\f230"; } .ion-logo-css3:before { content: "\f231"; } .ion-logo-designernews:before { content: "\f232"; } .ion-logo-dribbble:before { content: "\f233"; } .ion-logo-dropbox:before { content: "\f234"; } .ion-logo-euro:before { content: "\f235"; } .ion-logo-facebook:before { content: "\f236"; } .ion-logo-flickr:before { content: "\f107"; } .ion-logo-foursquare:before { content: "\f237"; } .ion-logo-freebsd-devil:before { content: "\f238"; } .ion-logo-game-controller-a:before { content: "\f13b"; } .ion-logo-game-controller-b:before { content: "\f181"; } .ion-logo-github:before { content: "\f239"; } .ion-logo-google:before { content: "\f23a"; } .ion-logo-googleplus:before { content: "\f23b"; } .ion-logo-hackernews:before { content: "\f23c"; } .ion-logo-html5:before { content: "\f23d"; } .ion-logo-instagram:before { content: "\f23e"; } .ion-logo-ionic:before { content: "\f150"; } .ion-logo-ionitron:before { content: "\f151"; } .ion-logo-javascript:before { content: "\f23f"; } .ion-logo-linkedin:before { content: "\f240"; } .ion-logo-markdown:before { content: "\f241"; } .ion-logo-model-s:before { content: "\f153"; } .ion-logo-no-smoking:before { content: "\f109"; } .ion-logo-nodejs:before { content: "\f242"; } .ion-logo-npm:before { content: "\f195"; } .ion-logo-octocat:before { content: "\f243"; } .ion-logo-pinterest:before { content: "\f244"; } .ion-logo-playstation:before { content: "\f245"; } .ion-logo-polymer:before { content: "\f15e"; } .ion-logo-python:before { content: "\f246"; } .ion-logo-reddit:before { content: "\f247"; } .ion-logo-rss:before { content: "\f248"; } .ion-logo-sass:before { content: "\f249"; } .ion-logo-skype:before { content: "\f24a"; } .ion-logo-slack:before { content: "\f10b"; } .ion-logo-snapchat:before { content: "\f24b"; } .ion-logo-steam:before { content: "\f24c"; } .ion-logo-tumblr:before { content: "\f24d"; } .ion-logo-tux:before { content: "\f2ae"; } .ion-logo-twitch:before { content: "\f2af"; } .ion-logo-twitter:before { content: "\f2b0"; } .ion-logo-usd:before { content: "\f2b1"; } .ion-logo-vimeo:before { content: "\f2c4"; } .ion-logo-vk:before { content: "\f10d"; } .ion-logo-whatsapp:before { content: "\f2c5"; } .ion-logo-windows:before { content: "\f32f"; } .ion-logo-wordpress:before { content: "\f330"; } .ion-logo-xbox:before { content: "\f34c"; } .ion-logo-xing:before { content: "\f10f"; } .ion-logo-yahoo:before { content: "\f34d"; } .ion-logo-yen:before { content: "\f34e"; } .ion-logo-youtube:before { content: "\f34f"; } .ion-md-add:before { content: "\f273"; } .ion-md-add-circle:before { content: "\f272"; } .ion-md-add-circle-outline:before { content: "\f158"; } .ion-md-airplane:before { content: "\f15a"; } .ion-md-alarm:before { content: "\f274"; } .ion-md-albums:before { content: "\f275"; } .ion-md-alert:before { content: "\f276"; } .ion-md-american-football:before { content: "\f277"; } .ion-md-analytics:before { content: "\f278"; } .ion-md-aperture:before { content: "\f279"; } .ion-md-apps:before { content: "\f27a"; } .ion-md-appstore:before { content: "\f27b"; } .ion-md-archive:before { content: "\f27c"; } .ion-md-arrow-back:before { content: "\f27d"; } .ion-md-arrow-down:before { content: "\f27e"; } .ion-md-arrow-dropdown:before { content: "\f280"; } .ion-md-arrow-dropdown-circle:before { content: "\f27f"; } .ion-md-arrow-dropleft:before { content: "\f282"; } .ion-md-arrow-dropleft-circle:before { content: "\f281"; } .ion-md-arrow-dropright:before { content: "\f284"; } .ion-md-arrow-dropright-circle:before { content: "\f283"; } .ion-md-arrow-dropup:before { content: "\f286"; } .ion-md-arrow-dropup-circle:before { content: "\f285"; } .ion-md-arrow-forward:before { content: "\f287"; } .ion-md-arrow-round-back:before { content: "\f288"; } .ion-md-arrow-round-down:before { content: "\f289"; } .ion-md-arrow-round-forward:before { content: "\f28a"; } .ion-md-arrow-round-up:before { content: "\f28b"; } .ion-md-arrow-up:before { content: "\f28c"; } .ion-md-at:before { content: "\f28d"; } .ion-md-attach:before { content: "\f28e"; } .ion-md-backspace:before { content: "\f28f"; } .ion-md-barcode:before { content: "\f290"; } .ion-md-baseball:before { content: "\f291"; } .ion-md-basket:before { content: "\f292"; } .ion-md-basketball:before { content: "\f293"; } .ion-md-battery-charging:before { content: "\f294"; } .ion-md-battery-dead:before { content: "\f295"; } .ion-md-battery-full:before { content: "\f296"; } .ion-md-beaker:before { content: "\f297"; } .ion-md-bed:before { content: "\f160"; } .ion-md-beer:before { content: "\f298"; } .ion-md-bicycle:before { content: "\f299"; } .ion-md-bluetooth:before { content: "\f29a"; } .ion-md-boat:before { content: "\f29b"; } .ion-md-body:before { content: "\f29c"; } .ion-md-bonfire:before { content: "\f29d"; } .ion-md-book:before { content: "\f29e"; } .ion-md-bookmark:before { content: "\f29f"; } .ion-md-bookmarks:before { content: "\f2a0"; } .ion-md-bowtie:before { content: "\f2a1"; } .ion-md-briefcase:before { content: "\f2a2"; } .ion-md-browsers:before { content: "\f2a3"; } .ion-md-brush:before { content: "\f2a4"; } .ion-md-bug:before { content: "\f2a5"; } .ion-md-build:before { content: "\f2a6"; } .ion-md-bulb:before { content: "\f2a7"; } .ion-md-bus:before { content: "\f2a8"; } .ion-md-business:before { content: "\f1a4"; } .ion-md-cafe:before { content: "\f2a9"; } .ion-md-calculator:before { content: "\f2aa"; } .ion-md-calendar:before { content: "\f2ab"; } .ion-md-call:before { content: "\f2ac"; } .ion-md-camera:before { content: "\f2ad"; } .ion-md-car:before { content: "\f2b2"; } .ion-md-card:before { content: "\f2b3"; } .ion-md-cart:before { content: "\f2b4"; } .ion-md-cash:before { content: "\f2b5"; } .ion-md-cellular:before { content: "\f164"; } .ion-md-chatboxes:before { content: "\f2b6"; } .ion-md-chatbubbles:before { content: "\f2b7"; } .ion-md-checkbox:before { content: "\f2b9"; } .ion-md-checkbox-outline:before { content: "\f2b8"; } .ion-md-checkmark:before { content: "\f2bc"; } .ion-md-checkmark-circle:before { content: "\f2bb"; } .ion-md-checkmark-circle-outline:before { content: "\f2ba"; } .ion-md-clipboard:before { content: "\f2bd"; } .ion-md-clock:before { content: "\f2be"; } .ion-md-close:before { content: "\f2c0"; } .ion-md-close-circle:before { content: "\f2bf"; } .ion-md-close-circle-outline:before { content: "\f166"; } .ion-md-cloud:before { content: "\f2c9"; } .ion-md-cloud-circle:before { content: "\f2c2"; } .ion-md-cloud-done:before { content: "\f2c3"; } .ion-md-cloud-download:before { content: "\f2c6"; } .ion-md-cloud-outline:before { content: "\f2c7"; } .ion-md-cloud-upload:before { content: "\f2c8"; } .ion-md-cloudy:before { content: "\f2cb"; } .ion-md-cloudy-night:before { content: "\f2ca"; } .ion-md-code:before { content: "\f2ce"; } .ion-md-code-download:before { content: "\f2cc"; } .ion-md-code-working:before { content: "\f2cd"; } .ion-md-cog:before { content: "\f2cf"; } .ion-md-color-fill:before { content: "\f2d0"; } .ion-md-color-filter:before { content: "\f2d1"; } .ion-md-color-palette:before { content: "\f2d2"; } .ion-md-color-wand:before { content: "\f2d3"; } .ion-md-compass:before { content: "\f2d4"; } .ion-md-construct:before { content: "\f2d5"; } .ion-md-contact:before { content: "\f2d6"; } .ion-md-contacts:before { content: "\f2d7"; } .ion-md-contract:before { content: "\f2d8"; } .ion-md-contrast:before { content: "\f2d9"; } .ion-md-copy:before { content: "\f2da"; } .ion-md-create:before { content: "\f2db"; } .ion-md-crop:before { content: "\f2dc"; } .ion-md-cube:before { content: "\f2dd"; } .ion-md-cut:before { content: "\f2de"; } .ion-md-desktop:before { content: "\f2df"; } .ion-md-disc:before { content: "\f2e0"; } .ion-md-document:before { content: "\f2e1"; } .ion-md-done-all:before { content: "\f2e2"; } .ion-md-download:before { content: "\f2e3"; } .ion-md-easel:before { content: "\f2e4"; } .ion-md-egg:before { content: "\f2e5"; } .ion-md-exit:before { content: "\f2e6"; } .ion-md-expand:before { content: "\f2e7"; } .ion-md-eye:before { content: "\f2e9"; } .ion-md-eye-off:before { content: "\f2e8"; } .ion-md-fastforward:before { content: "\f2ea"; } .ion-md-female:before { content: "\f2eb"; } .ion-md-filing:before { content: "\f2ec"; } .ion-md-film:before { content: "\f2ed"; } .ion-md-finger-print:before { content: "\f2ee"; } .ion-md-fitness:before { content: "\f1ac"; } .ion-md-flag:before { content: "\f2ef"; } .ion-md-flame:before { content: "\f2f0"; } .ion-md-flash:before { content: "\f2f1"; } .ion-md-flash-off:before { content: "\f169"; } .ion-md-flashlight:before { content: "\f16b"; } .ion-md-flask:before { content: "\f2f2"; } .ion-md-flower:before { content: "\f2f3"; } .ion-md-folder:before { content: "\f2f5"; } .ion-md-folder-open:before { content: "\f2f4"; } .ion-md-football:before { content: "\f2f6"; } .ion-md-funnel:before { content: "\f2f7"; } .ion-md-gift:before { content: "\f199"; } .ion-md-git-branch:before { content: "\f2fa"; } .ion-md-git-commit:before { content: "\f2fb"; } .ion-md-git-compare:before { content: "\f2fc"; } .ion-md-git-merge:before { content: "\f2fd"; } .ion-md-git-network:before { content: "\f2fe"; } .ion-md-git-pull-request:before { content: "\f2ff"; } .ion-md-glasses:before { content: "\f300"; } .ion-md-globe:before { content: "\f301"; } .ion-md-grid:before { content: "\f302"; } .ion-md-hammer:before { content: "\f303"; } .ion-md-hand:before { content: "\f304"; } .ion-md-happy:before { content: "\f305"; } .ion-md-headset:before { content: "\f306"; } .ion-md-heart:before { content: "\f308"; } .ion-md-heart-dislike:before { content: "\f167"; } .ion-md-heart-empty:before { content: "\f1a1"; } .ion-md-heart-half:before { content: "\f1a2"; } .ion-md-help:before { content: "\f30b"; } .ion-md-help-buoy:before { content: "\f309"; } .ion-md-help-circle:before { content: "\f30a"; } .ion-md-help-circle-outline:before { content: "\f16d"; } .ion-md-home:before { content: "\f30c"; } .ion-md-hourglass:before { content: "\f111"; } .ion-md-ice-cream:before { content: "\f30d"; } .ion-md-image:before { content: "\f30e"; } .ion-md-images:before { content: "\f30f"; } .ion-md-infinite:before { content: "\f310"; } .ion-md-information:before { content: "\f312"; } .ion-md-information-circle:before { content: "\f311"; } .ion-md-information-circle-outline:before { content: "\f16f"; } .ion-md-jet:before { content: "\f315"; } .ion-md-journal:before { content: "\f18d"; } .ion-md-key:before { content: "\f316"; } .ion-md-keypad:before { content: "\f317"; } .ion-md-laptop:before { content: "\f318"; } .ion-md-leaf:before { content: "\f319"; } .ion-md-link:before { content: "\f22e"; } .ion-md-list:before { content: "\f31b"; } .ion-md-list-box:before { content: "\f31a"; } .ion-md-locate:before { content: "\f31c"; } .ion-md-lock:before { content: "\f31d"; } .ion-md-log-in:before { content: "\f31e"; } .ion-md-log-out:before { content: "\f31f"; } .ion-md-magnet:before { content: "\f320"; } .ion-md-mail:before { content: "\f322"; } .ion-md-mail-open:before { content: "\f321"; } .ion-md-mail-unread:before { content: "\f172"; } .ion-md-male:before { content: "\f323"; } .ion-md-man:before { content: "\f324"; } .ion-md-map:before { content: "\f325"; } .ion-md-medal:before { content: "\f326"; } .ion-md-medical:before { content: "\f327"; } .ion-md-medkit:before { content: "\f328"; } .ion-md-megaphone:before { content: "\f329"; } .ion-md-menu:before { content: "\f32a"; } .ion-md-mic:before { content: "\f32c"; } .ion-md-mic-off:before { content: "\f32b"; } .ion-md-microphone:before { content: "\f32d"; } .ion-md-moon:before { content: "\f32e"; } .ion-md-more:before { content: "\f1c9"; } .ion-md-move:before { content: "\f331"; } .ion-md-musical-note:before { content: "\f332"; } .ion-md-musical-notes:before { content: "\f333"; } .ion-md-navigate:before { content: "\f334"; } .ion-md-notifications:before { content: "\f338"; } .ion-md-notifications-off:before { content: "\f336"; } .ion-md-notifications-outline:before { content: "\f337"; } .ion-md-nuclear:before { content: "\f339"; } .ion-md-nutrition:before { content: "\f33a"; } .ion-md-open:before { content: "\f33b"; } .ion-md-options:before { content: "\f33c"; } .ion-md-outlet:before { content: "\f33d"; } .ion-md-paper:before { content: "\f33f"; } .ion-md-paper-plane:before { content: "\f33e"; } .ion-md-partly-sunny:before { content: "\f340"; } .ion-md-pause:before { content: "\f341"; } .ion-md-paw:before { content: "\f342"; } .ion-md-people:before { content: "\f343"; } .ion-md-person:before { content: "\f345"; } .ion-md-person-add:before { content: "\f344"; } .ion-md-phone-landscape:before { content: "\f346"; } .ion-md-phone-portrait:before { content: "\f347"; } .ion-md-photos:before { content: "\f348"; } .ion-md-pie:before { content: "\f349"; } .ion-md-pin:before { content: "\f34a"; } .ion-md-pint:before { content: "\f34b"; } .ion-md-pizza:before { content: "\f354"; } .ion-md-planet:before { content: "\f356"; } .ion-md-play:before { content: "\f357"; } .ion-md-play-circle:before { content: "\f174"; } .ion-md-podium:before { content: "\f358"; } .ion-md-power:before { content: "\f359"; } .ion-md-pricetag:before { content: "\f35a"; } .ion-md-pricetags:before { content: "\f35b"; } .ion-md-print:before { content: "\f35c"; } .ion-md-pulse:before { content: "\f35d"; } .ion-md-qr-scanner:before { content: "\f35e"; } .ion-md-quote:before { content: "\f35f"; } .ion-md-radio:before { content: "\f362"; } .ion-md-radio-button-off:before { content: "\f360"; } .ion-md-radio-button-on:before { content: "\f361"; } .ion-md-rainy:before { content: "\f363"; } .ion-md-recording:before { content: "\f364"; } .ion-md-redo:before { content: "\f365"; } .ion-md-refresh:before { content: "\f366"; } .ion-md-refresh-circle:before { content: "\f228"; } .ion-md-remove:before { content: "\f368"; } .ion-md-remove-circle:before { content: "\f367"; } .ion-md-remove-circle-outline:before { content: "\f176"; } .ion-md-reorder:before { content: "\f369"; } .ion-md-repeat:before { content: "\f36a"; } .ion-md-resize:before { content: "\f36b"; } .ion-md-restaurant:before { content: "\f36c"; } .ion-md-return-left:before { content: "\f36d"; } .ion-md-return-right:before { content: "\f36e"; } .ion-md-reverse-camera:before { content: "\f36f"; } .ion-md-rewind:before { content: "\f370"; } .ion-md-ribbon:before { content: "\f371"; } .ion-md-rocket:before { content: "\f179"; } .ion-md-rose:before { content: "\f372"; } .ion-md-sad:before { content: "\f373"; } .ion-md-save:before { content: "\f1a9"; } .ion-md-school:before { content: "\f374"; } .ion-md-search:before { content: "\f375"; } .ion-md-send:before { content: "\f376"; } .ion-md-settings:before { content: "\f377"; } .ion-md-share:before { content: "\f379"; } .ion-md-share-alt:before { content: "\f378"; } .ion-md-shirt:before { content: "\f37a"; } .ion-md-shuffle:before { content: "\f37b"; } .ion-md-skip-backward:before { content: "\f37c"; } .ion-md-skip-forward:before { content: "\f37d"; } .ion-md-snow:before { content: "\f37e"; } .ion-md-speedometer:before { content: "\f37f"; } .ion-md-square:before { content: "\f381"; } .ion-md-square-outline:before { content: "\f380"; } .ion-md-star:before { content: "\f384"; } .ion-md-star-half:before { content: "\f382"; } .ion-md-star-outline:before { content: "\f383"; } .ion-md-stats:before { content: "\f385"; } .ion-md-stopwatch:before { content: "\f386"; } .ion-md-subway:before { content: "\f387"; } .ion-md-sunny:before { content: "\f388"; } .ion-md-swap:before { content: "\f389"; } .ion-md-switch:before { content: "\f38a"; } .ion-md-sync:before { content: "\f38b"; } .ion-md-tablet-landscape:before { content: "\f38c"; } .ion-md-tablet-portrait:before { content: "\f38d"; } .ion-md-tennisball:before { content: "\f38e"; } .ion-md-text:before { content: "\f38f"; } .ion-md-thermometer:before { content: "\f390"; } .ion-md-thumbs-down:before { content: "\f391"; } .ion-md-thumbs-up:before { content: "\f392"; } .ion-md-thunderstorm:before { content: "\f393"; } .ion-md-time:before { content: "\f394"; } .ion-md-timer:before { content: "\f395"; } .ion-md-today:before { content: "\f17d"; } .ion-md-train:before { content: "\f396"; } .ion-md-transgender:before { content: "\f397"; } .ion-md-trash:before { content: "\f398"; } .ion-md-trending-down:before { content: "\f399"; } .ion-md-trending-up:before { content: "\f39a"; } .ion-md-trophy:before { content: "\f39b"; } .ion-md-tv:before { content: "\f17f"; } .ion-md-umbrella:before { content: "\f39c"; } .ion-md-undo:before { content: "\f39d"; } .ion-md-unlock:before { content: "\f39e"; } .ion-md-videocam:before { content: "\f39f"; } .ion-md-volume-high:before { content: "\f123"; } .ion-md-volume-low:before { content: "\f131"; } .ion-md-volume-mute:before { content: "\f3a1"; } .ion-md-volume-off:before { content: "\f3a2"; } .ion-md-walk:before { content: "\f3a4"; } .ion-md-wallet:before { content: "\f18f"; } .ion-md-warning:before { content: "\f3a5"; } .ion-md-watch:before { content: "\f3a6"; } .ion-md-water:before { content: "\f3a7"; } .ion-md-wifi:before { content: "\f3a8"; } .ion-md-wine:before { content: "\f3a9"; } .ion-md-woman:before { content: "\f3aa"; }PK}w\'oindex.jsnu[ 'use strict' if (process.env.NODE_ENV === 'production') { module.exports = require('./shallowequal.cjs.production.min.js') } else { module.exports = require('./shallowequal.cjs.development.js') } PK}w\  types/components.d.tsnu[/* tslint:disable */ /** * This is an autogenerated file created by the Stencil compiler. * It contains typing information for all components that exist in this project. */ import './stencil.core'; export namespace Components { interface IonIcon { /** * Specifies the label to use for accessibility. Defaults to the icon name. */ 'ariaLabel'?: string; /** * The color to use for the background of the item. */ 'color'?: string; /** * A combination of both `name` and `src`. If a `src` url is detected it will set the `src` property. Otherwise it assumes it's a built-in named SVG and set the `name` property. */ 'icon'?: string; /** * Specifies which icon to use on `ios` mode. */ 'ios'?: string; /** * If enabled, ion-icon will be loaded lazily when it's visible in the viewport. Default, `false`. */ 'lazy': boolean; /** * Specifies which icon to use on `md` mode. */ 'md'?: string; /** * The mode determines which platform styles to use. Possible values are: `"ios"` or `"md"`. */ 'mode'?: 'ios' | 'md'; /** * Specifies which icon to use from the built-in set of icons. */ 'name'?: string; /** * The size of the icon. Available options are: `"small"` and `"large"`. */ 'size'?: string; /** * Specifies the exact `src` of an SVG file to use. */ 'src'?: string; } interface IonIconAttributes extends StencilHTMLAttributes { /** * Specifies the label to use for accessibility. Defaults to the icon name. */ 'ariaLabel'?: string; /** * The color to use for the background of the item. */ 'color'?: string; /** * A combination of both `name` and `src`. If a `src` url is detected it will set the `src` property. Otherwise it assumes it's a built-in named SVG and set the `name` property. */ 'icon'?: string; /** * Specifies which icon to use on `ios` mode. */ 'ios'?: string; /** * If enabled, ion-icon will be loaded lazily when it's visible in the viewport. Default, `false`. */ 'lazy'?: boolean; /** * Specifies which icon to use on `md` mode. */ 'md'?: string; /** * The mode determines which platform styles to use. Possible values are: `"ios"` or `"md"`. */ 'mode'?: 'ios' | 'md'; /** * Specifies which icon to use from the built-in set of icons. */ 'name'?: string; /** * The size of the icon. Available options are: `"small"` and `"large"`. */ 'size'?: string; /** * Specifies the exact `src` of an SVG file to use. */ 'src'?: string; } } declare global { interface StencilElementInterfaces { 'IonIcon': Components.IonIcon; } interface StencilIntrinsicElements { 'ion-icon': Components.IonIconAttributes; } interface HTMLIonIconElement extends Components.IonIcon, HTMLStencilElement {} var HTMLIonIconElement: { prototype: HTMLIonIconElement; new (): HTMLIonIconElement; }; interface HTMLElementTagNameMap { 'ion-icon': HTMLIonIconElement } interface ElementTagNameMap { 'ion-icon': HTMLIonIconElement; } } PK}w\types/icon/utils.d.tsnu[export declare function getName(name: string | undefined, mode: string | undefined, ios: string | undefined, md: string | undefined): string | null; export declare function getSrc(src: string | undefined): string | null; export declare function isValid(elm: HTMLElement): boolean; PK}w\%A3@types/icon/icon.d.tsnu[import '../stencil.core'; export declare class Icon { private io?; el: HTMLElement; private svgContent?; private isVisible; isServer: boolean; resourcesUrl: string; doc: Document; win: any; /** * The color to use for the background of the item. */ color?: string; /** * The mode determines which platform styles to use. * Possible values are: `"ios"` or `"md"`. */ mode?: 'ios' | 'md'; /** * Specifies the label to use for accessibility. Defaults to the icon name. */ ariaLabel?: string; /** * Specifies which icon to use on `ios` mode. */ ios?: string; /** * Specifies which icon to use on `md` mode. */ md?: string; /** * Specifies which icon to use from the built-in set of icons. */ name?: string; /** * Specifies the exact `src` of an SVG file to use. */ src?: string; /** * A combination of both `name` and `src`. If a `src` url is detected * it will set the `src` property. Otherwise it assumes it's a built-in named * SVG and set the `name` property. */ icon?: string; /** * The size of the icon. * Available options are: `"small"` and `"large"`. */ size?: string; /** * If enabled, ion-icon will be loaded lazily when it's visible in the viewport. * Default, `false`. */ lazy: boolean; componentWillLoad(): void; componentDidUnload(): void; private waitUntilVisible; loadIcon(): void; getUrl(): string | null; private getNamedUrl; hostData(): { 'role': string; class: {}; }; render(): JSX.Element; } PK}w\?m types/stencil.core.d.tsnu[/** * This file gets copied to all distributions of stencil component collections. * - no imports */ export interface ComponentWillLoad { /** * The component is about to load and it has not * rendered yet. * * This is the best place to make any data updates * before the first render. * * componentWillLoad will only be called once. */ componentWillLoad: () => Promise | void; } export interface ComponentDidLoad { /** * The component has loaded and has already rendered. * * Updating data in this method will cause the * component to re-render. * * componentDidLoad will only be called once. */ componentDidLoad: () => void; } export interface ComponentWillUpdate { /** * The component is about to update and re-render. * * Called multiple times throughout the life of * the component as it updates. * * componentWillUpdate is not called on the first render. */ componentWillUpdate: () => Promise | void; } export interface ComponentDidUpdate { /** * The component has just re-rendered. * * Called multiple times throughout the life of * the component as it updates. * * componentWillUpdate is not called on the * first render. */ componentDidUpdate: () => void; } export interface ComponentDidUnload { /** * The component did unload and the element * will be destroyed. */ componentDidUnload: () => void; } export interface ComponentInstance { /** * The component is about to load and it has not * rendered yet. * * This is the best place to make any data updates * before the first render. * * componentWillLoad will only be called once. */ componentWillLoad?: () => Promise | void; /** * The component has loaded and has already rendered. * * Updating data in this method will cause the * component to re-render. * * componentDidLoad will only be called once. */ componentDidLoad?: () => void; /** * The component is about to update and re-render. * * Called multiple times throughout the life of * the component as it updates. * * componentWillUpdate is not called on the first render. */ componentWillUpdate?: () => Promise | void; /** * The component has just re-rendered. * * Called multiple times throughout the life of * the component as it updates. * * componentWillUpdate is not called on the * first render. */ componentDidUpdate?: () => void; /** * The component did unload and the element * will be destroyed. */ componentDidUnload?: () => void; render?: () => any; /** * Used to dynamically set host element attributes. * Should be placed directly above render() */ hostData?: () => { class?: {[className: string]: boolean}; style?: any; [attrName: string]: any; }; [memberName: string]: any; } /** * General types important to applications using stencil built components */ export interface EventEmitter { emit: (data?: T) => void; } export interface EventListenerEnable { (instance: any, eventName: string, enabled: boolean, attachTo?: string|Element, passive?: boolean): void; } export interface QueueApi { tick: (cb: RafCallback) => void; read: (cb: RafCallback) => void; write: (cb: RafCallback) => void; clear?: () => void; flush?: (cb?: () => void) => void; } export interface RafCallback { (timeStamp: number): void; } /** * This file gets copied to all distributions of stencil component collections. * - no imports */ declare global { interface HTMLStencilElement extends HTMLElement { componentOnReady(): Promise; forceUpdate(): void; } interface StencilHTMLAttributes extends JSXElements.HTMLAttributes {} interface StencilIntrinsicElements extends JSXElements.DefaultIntrinsicElements {} interface StencilElementInterfaces {} interface StencilGlobalHTMLAttributes {} } export namespace JSXElements { export interface DefaultIntrinsicElements { // Stencil elements slot: JSXElements.SlotAttributes; // HTML a: JSXElements.AnchorHTMLAttributes; abbr: JSXElements.HTMLAttributes; address: JSXElements.HTMLAttributes; area: JSXElements.AreaHTMLAttributes; article: JSXElements.HTMLAttributes; aside: JSXElements.HTMLAttributes; audio: JSXElements.AudioHTMLAttributes; b: JSXElements.HTMLAttributes; base: JSXElements.BaseHTMLAttributes; bdi: JSXElements.HTMLAttributes; bdo: JSXElements.HTMLAttributes; big: JSXElements.HTMLAttributes; blockquote: JSXElements.BlockquoteHTMLAttributes; body: JSXElements.HTMLAttributes; br: JSXElements.HTMLAttributes; button: JSXElements.ButtonHTMLAttributes; canvas: JSXElements.CanvasHTMLAttributes; caption: JSXElements.HTMLAttributes; cite: JSXElements.HTMLAttributes; code: JSXElements.HTMLAttributes; col: JSXElements.ColHTMLAttributes; colgroup: JSXElements.ColgroupHTMLAttributes; data: JSXElements.HTMLAttributes; datalist: JSXElements.HTMLAttributes; dd: JSXElements.HTMLAttributes; del: JSXElements.DelHTMLAttributes; details: JSXElements.DetailsHTMLAttributes; dfn: JSXElements.HTMLAttributes; dialog: JSXElements.DialogHTMLAttributes; div: JSXElements.HTMLAttributes; dl: JSXElements.HTMLAttributes; dt: JSXElements.HTMLAttributes; em: JSXElements.HTMLAttributes; embed: JSXElements.EmbedHTMLAttributes; fieldset: JSXElements.FieldsetHTMLAttributes; figcaption: JSXElements.HTMLAttributes; figure: JSXElements.HTMLAttributes; footer: JSXElements.HTMLAttributes; form: JSXElements.FormHTMLAttributes; h1: JSXElements.HTMLAttributes; h2: JSXElements.HTMLAttributes; h3: JSXElements.HTMLAttributes; h4: JSXElements.HTMLAttributes; h5: JSXElements.HTMLAttributes; h6: JSXElements.HTMLAttributes; head: JSXElements.HTMLAttributes; header: JSXElements.HTMLAttributes; hgroup: JSXElements.HTMLAttributes; hr: JSXElements.HTMLAttributes; html: JSXElements.HTMLAttributes; i: JSXElements.HTMLAttributes; iframe: JSXElements.IframeHTMLAttributes; img: JSXElements.ImgHTMLAttributes; input: JSXElements.InputHTMLAttributes; ins: JSXElements.InsHTMLAttributes; kbd: JSXElements.HTMLAttributes; keygen: JSXElements.KeygenHTMLAttributes; label: JSXElements.LabelHTMLAttributes; legend: JSXElements.HTMLAttributes; li: JSXElements.LiHTMLAttributes; link: JSXElements.LinkHTMLAttributes; main: JSXElements.HTMLAttributes; map: JSXElements.MapHTMLAttributes; mark: JSXElements.HTMLAttributes; menu: JSXElements.MenuHTMLAttributes; menuitem: JSXElements.HTMLAttributes; meta: JSXElements.MetaHTMLAttributes; meter: JSXElements.MeterHTMLAttributes; nav: JSXElements.HTMLAttributes; noscript: JSXElements.HTMLAttributes; object: JSXElements.ObjectHTMLAttributes; ol: JSXElements.OlHTMLAttributes; optgroup: JSXElements.OptgroupHTMLAttributes; option: JSXElements.OptionHTMLAttributes; output: JSXElements.OutputHTMLAttributes; p: JSXElements.HTMLAttributes; param: JSXElements.ParamHTMLAttributes; picture: JSXElements.HTMLAttributes; pre: JSXElements.HTMLAttributes; progress: JSXElements.ProgressHTMLAttributes; q: JSXElements.QuoteHTMLAttributes; rp: JSXElements.HTMLAttributes; rt: JSXElements.HTMLAttributes; ruby: JSXElements.HTMLAttributes; s: JSXElements.HTMLAttributes; samp: JSXElements.HTMLAttributes; script: JSXElements.ScriptHTMLAttributes; section: JSXElements.HTMLAttributes; select: JSXElements.SelectHTMLAttributes; small: JSXElements.HTMLAttributes; source: JSXElements.SourceHTMLAttributes; span: JSXElements.HTMLAttributes; strong: JSXElements.HTMLAttributes; style: JSXElements.StyleHTMLAttributes; sub: JSXElements.HTMLAttributes; summary: JSXElements.HTMLAttributes; sup: JSXElements.HTMLAttributes; table: JSXElements.TableHTMLAttributes; tbody: JSXElements.HTMLAttributes; td: JSXElements.TdHTMLAttributes; textarea: JSXElements.TextareaHTMLAttributes; tfoot: JSXElements.HTMLAttributes; th: JSXElements.ThHTMLAttributes; thead: JSXElements.HTMLAttributes; time: JSXElements.TimeHTMLAttributes; title: JSXElements.HTMLAttributes; tr: JSXElements.HTMLAttributes; track: JSXElements.TrackHTMLAttributes; u: JSXElements.HTMLAttributes; ul: JSXElements.HTMLAttributes; 'var': JSXElements.HTMLAttributes; video: JSXElements.VideoHTMLAttributes; wbr: JSXElements.HTMLAttributes; } export interface SlotAttributes { name?: string; slot?: string; } export interface AnchorHTMLAttributes extends HTMLAttributes { download?: any; href?: string; hrefLang?: string; hreflang?: string; media?: string; rel?: string; target?: string; } export interface AudioHTMLAttributes extends MediaHTMLAttributes {} export interface AreaHTMLAttributes extends HTMLAttributes { alt?: string; coords?: string; download?: any; href?: string; hrefLang?: string; hreflang?: string; media?: string; rel?: string; shape?: string; target?: string; } export interface BaseHTMLAttributes extends HTMLAttributes { href?: string; target?: string; } export interface BlockquoteHTMLAttributes extends HTMLAttributes { cite?: string; } export interface ButtonHTMLAttributes extends HTMLAttributes { autoFocus?: boolean; disabled?: boolean; form?: string; formAction?: string; formaction?: string; formEncType?: string; formenctype?: string; formMethod?: string; formmethod?: string; formNoValidate?: boolean; formnovalidate?: boolean; formTarget?: string; formtarget?: string; name?: string; type?: string; value?: string | string[] | number; } export interface CanvasHTMLAttributes extends HTMLAttributes { height?: number | string; width?: number | string; } export interface ColHTMLAttributes extends HTMLAttributes { span?: number; } export interface ColgroupHTMLAttributes extends HTMLAttributes { span?: number; } export interface DetailsHTMLAttributes extends HTMLAttributes { open?: boolean; } export interface DelHTMLAttributes extends HTMLAttributes { cite?: string; dateTime?: string; datetime?: string; } export interface DialogHTMLAttributes extends HTMLAttributes { open?: boolean; returnValue?: string; } export interface EmbedHTMLAttributes extends HTMLAttributes { height?: number | string; src?: string; type?: string; width?: number | string; } export interface FieldsetHTMLAttributes extends HTMLAttributes { disabled?: boolean; form?: string; name?: string; } export interface FormHTMLAttributes extends HTMLAttributes { acceptCharset?: string; acceptcharset?: string; action?: string; autoComplete?: string; autocomplete?: string; encType?: string; enctype?: string; method?: string; name?: string; noValidate?: boolean; novalidate?: boolean | string; target?: string; } export interface HtmlHTMLAttributes extends HTMLAttributes { manifest?: string; } export interface IframeHTMLAttributes extends HTMLAttributes { allowFullScreen?: boolean; allowfullScreen?: string | boolean; allowTransparency?: boolean; allowtransparency?: string | boolean; frameBorder?: number | string; frameborder?: number | string; height?: number | string; marginHeight?: number; marginheight?: string | number; marginWidth?: number; marginwidth?: string | number; name?: string; sandbox?: string; scrolling?: string; seamless?: boolean; src?: string; srcDoc?: string; srcdoc?: string; width?: number | string; } export interface ImgHTMLAttributes extends HTMLAttributes { alt?: string; decoding?: 'async' | 'auto' | 'sync'; height?: number | string; sizes?: string; src?: string; srcSet?: string; srcset?: string; useMap?: string; usemap?: string; width?: number | string; } export interface InsHTMLAttributes extends HTMLAttributes { cite?: string; dateTime?: string; datetime?: string; } export interface InputHTMLAttributes extends HTMLAttributes { accept?: string; alt?: string; autoComplete?: string; autocomplete?: string; autoFocus?: boolean; autofocus?: boolean | string; capture?: string; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute checked?: boolean; crossOrigin?: string; crossorigin?: string; disabled?: boolean; form?: string; formAction?: string; formaction?: string; formEncType?: string; formenctype?: string; formMethod?: string; formmethod?: string; formNoValidate?: boolean; formnovalidate?: boolean; formTarget?: string; formtarget?: string; height?: number | string; list?: string; max?: number | string; maxLength?: number; maxlength?: number | string; min?: number | string; minLength?: number; minlength?: number | string; multiple?: boolean; name?: string; pattern?: string; placeholder?: string; readOnly?: boolean; readonly?: boolean | string; required?: boolean; size?: number; src?: string; step?: number | string; type?: string; value?: string | string[] | number; width?: number | string; } export interface KeygenHTMLAttributes extends HTMLAttributes { autoFocus?: boolean; autofocus?: boolean | string; challenge?: string; disabled?: boolean; form?: string; keyType?: string; keytype?: string; keyParams?: string; keyparams?: string; name?: string; } export interface LabelHTMLAttributes extends HTMLAttributes { form?: string; htmlFor?: string; htmlfor?: string; } export interface LiHTMLAttributes extends HTMLAttributes { value?: string | string[] | number; } export interface LinkHTMLAttributes extends HTMLAttributes { href?: string; hrefLang?: string; hreflang?: string; integrity?: string; media?: string; rel?: string; sizes?: string; type?: string; } export interface MapHTMLAttributes extends HTMLAttributes { name?: string; } export interface MenuHTMLAttributes extends HTMLAttributes { type?: string; } export interface MediaHTMLAttributes extends HTMLAttributes { autoPlay?: boolean; autoplay?: boolean | string; controls?: boolean; crossOrigin?: string; crossorigin?: string; loop?: boolean; mediaGroup?: string; mediagroup?: string; muted?: boolean; preload?: string; src?: string; } export interface MetaHTMLAttributes extends HTMLAttributes { charSet?: string; charset?: string; content?: string; httpEquiv?: string; httpequiv?: string; name?: string; } export interface MeterHTMLAttributes extends HTMLAttributes { form?: string; high?: number; low?: number; max?: number | string; min?: number | string; optimum?: number; value?: string | string[] | number; } export interface QuoteHTMLAttributes extends HTMLAttributes { cite?: string; } export interface ObjectHTMLAttributes extends HTMLAttributes { classID?: string; classid?: string; data?: string; form?: string; height?: number | string; name?: string; type?: string; useMap?: string; usemap?: string; width?: number | string; wmode?: string; } export interface OlHTMLAttributes extends HTMLAttributes { reversed?: boolean; start?: number; } export interface OptgroupHTMLAttributes extends HTMLAttributes { disabled?: boolean; label?: string; } export interface OptionHTMLAttributes extends HTMLAttributes { disabled?: boolean; label?: string; selected?: boolean; value?: string | string[] | number; } export interface OutputHTMLAttributes extends HTMLAttributes { form?: string; htmlFor?: string; htmlfor?: string; name?: string; } export interface ParamHTMLAttributes extends HTMLAttributes { name?: string; value?: string | string[] | number; } export interface ProgressHTMLAttributes extends HTMLAttributes { max?: number | string; value?: string | string[] | number; } export interface ScriptHTMLAttributes extends HTMLAttributes { async?: boolean; charSet?: string; charset?: string; crossOrigin?: string; crossorigin?: string; defer?: boolean; integrity?: string; nonce?: string; src?: string; type?: string; } export interface SelectHTMLAttributes extends HTMLAttributes { autoFocus?: boolean; disabled?: boolean; form?: string; multiple?: boolean; name?: string; required?: boolean; size?: number; } export interface SourceHTMLAttributes extends HTMLAttributes { media?: string; sizes?: string; src?: string; srcSet?: string; type?: string; } export interface StyleHTMLAttributes extends HTMLAttributes { media?: string; nonce?: string; scoped?: boolean; type?: string; } export interface TableHTMLAttributes extends HTMLAttributes { cellPadding?: number | string; cellpadding?: number | string; cellSpacing?: number | string; cellspacing?: number | string; summary?: string; } export interface TextareaHTMLAttributes extends HTMLAttributes { autoFocus?: boolean; autofocus?: boolean | string; cols?: number; disabled?: boolean; form?: string; maxLength?: number; maxlength?: number | string; minLength?: number; minlength?: number | string; name?: string; placeholder?: string; readOnly?: boolean; readonly?: boolean | string; required?: boolean; rows?: number; value?: string | string[] | number; wrap?: string; } export interface TdHTMLAttributes extends HTMLAttributes { colSpan?: number; headers?: string; rowSpan?: number; } export interface ThHTMLAttributes extends HTMLAttributes { colSpan?: number; headers?: string; rowSpan?: number; rowspan?: number | string; scope?: string; } export interface TimeHTMLAttributes extends HTMLAttributes { dateTime?: string; } export interface TrackHTMLAttributes extends HTMLAttributes { default?: boolean; kind?: string; label?: string; src?: string; srcLang?: string; srclang?: string; } export interface VideoHTMLAttributes extends MediaHTMLAttributes { height?: number | string; playsInline?: boolean; playsinline?: boolean | string; poster?: string; width?: number | string; } export interface HTMLAttributes extends StencilGlobalHTMLAttributes, DOMAttributes { // vdom specific innerHTML?: string; ref?: (elm?: T) => void; key?: string | number; // Standard HTML Attributes accessKey?: string; class?: string | { [className: string]: boolean }; contentEditable?: boolean | string; contenteditable?: boolean | string; contextMenu?: string; contextmenu?: string; dir?: string; draggable?: boolean; hidden?: boolean; id?: string; lang?: string; slot?: string; spellCheck?: boolean; spellcheck?: boolean | string; style?: { [key: string]: string }; tabIndex?: number; tabindex?: number | string; title?: string; // Unknown inputMode?: string; inputmode?: string; is?: string; radioGroup?: string; // , radiogroup?: string; // WAI-ARIA role?: string; // RDFa Attributes about?: string; datatype?: string; inlist?: any; prefix?: string; property?: string; resource?: string; typeof?: string; vocab?: string; // Non-standard Attributes autoCapitalize?: string; autocapitalize?: string; autoCorrect?: string; autocorrect?: string; autoSave?: string; autosave?: string; color?: string; itemProp?: string; itemprop?: string; itemScope?: boolean; itemscope?: boolean; itemType?: string; itemtype?: string; itemID?: string; itemid?: string; itemRef?: string; itemref?: string; results?: number; security?: string; unselectable?: boolean; } export interface SVGAttributes extends StencilGlobalHTMLAttributes, DOMAttributes { // Attributes which also defined in HTMLAttributes // See comment in SVGDOMPropertyConfig.js class?: string | { [className: string]: boolean }; color?: string; height?: number | string; id?: string; lang?: string; max?: number | string; media?: string; method?: string; min?: number | string; name?: string; style?: { [key: string]: any; }; target?: string; type?: string; width?: number | string; // Other HTML properties supported by SVG elements in browsers role?: string; tabIndex?: number; // SVG Specific attributes accentHeight?: number | string; accumulate?: 'none' | 'sum'; additive?: 'replace' | 'sum'; alignmentBaseline?: 'auto' | 'baseline' | 'before-edge' | 'text-before-edge' | 'middle' | 'central' | 'after-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | 'inherit'; allowReorder?: 'no' | 'yes'; alphabetic?: number | string; amplitude?: number | string; arabicForm?: 'initial' | 'medial' | 'terminal' | 'isolated'; ascent?: number | string; attributeName?: string; attributeType?: string; autoReverse?: number | string; azimuth?: number | string; baseFrequency?: number | string; baselineShift?: number | string; baseProfile?: number | string; bbox?: number | string; begin?: number | string; bias?: number | string; by?: number | string; calcMode?: number | string; capHeight?: number | string; clip?: number | string; clipPath?: string; clipPathUnits?: number | string; clipRule?: number | string; colorInterpolation?: number | string; colorInterpolationFilters?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit'; colorProfile?: number | string; colorRendering?: number | string; contentScriptType?: number | string; contentStyleType?: number | string; cursor?: number | string; cx?: number | string; cy?: number | string; d?: string; decelerate?: number | string; descent?: number | string; diffuseConstant?: number | string; direction?: number | string; display?: number | string; divisor?: number | string; dominantBaseline?: number | string; dur?: number | string; dx?: number | string; dy?: number | string; edgeMode?: number | string; elevation?: number | string; enableBackground?: number | string; end?: number | string; exponent?: number | string; externalResourcesRequired?: number | string; fill?: string; fillOpacity?: number | string; fillRule?: 'nonzero' | 'evenodd' | 'inherit'; filter?: string; filterRes?: number | string; filterUnits?: number | string; floodColor?: number | string; floodOpacity?: number | string; focusable?: number | string; fontFamily?: string; fontSize?: number | string; fontSizeAdjust?: number | string; fontStretch?: number | string; fontStyle?: number | string; fontVariant?: number | string; fontWeight?: number | string; format?: number | string; from?: number | string; fx?: number | string; fy?: number | string; g1?: number | string; g2?: number | string; glyphName?: number | string; glyphOrientationHorizontal?: number | string; glyphOrientationVertical?: number | string; glyphRef?: number | string; gradientTransform?: string; gradientUnits?: string; hanging?: number | string; horizAdvX?: number | string; horizOriginX?: number | string; ideographic?: number | string; imageRendering?: number | string; in2?: number | string; in?: string; intercept?: number | string; k1?: number | string; k2?: number | string; k3?: number | string; k4?: number | string; k?: number | string; kernelMatrix?: number | string; kernelUnitLength?: number | string; kerning?: number | string; keyPoints?: number | string; keySplines?: number | string; keyTimes?: number | string; lengthAdjust?: number | string; letterSpacing?: number | string; lightingColor?: number | string; limitingConeAngle?: number | string; local?: number | string; markerEnd?: string; markerHeight?: number | string; markerMid?: string; markerStart?: string; markerUnits?: number | string; markerWidth?: number | string; mask?: string; maskContentUnits?: number | string; maskUnits?: number | string; mathematical?: number | string; mode?: number | string; numOctaves?: number | string; offset?: number | string; opacity?: number | string; operator?: number | string; order?: number | string; orient?: number | string; orientation?: number | string; origin?: number | string; overflow?: number | string; overlinePosition?: number | string; overlineThickness?: number | string; paintOrder?: number | string; panose1?: number | string; pathLength?: number | string; patternContentUnits?: string; patternTransform?: number | string; patternUnits?: string; pointerEvents?: number | string; points?: string; pointsAtX?: number | string; pointsAtY?: number | string; pointsAtZ?: number | string; preserveAlpha?: number | string; preserveAspectRatio?: string; primitiveUnits?: number | string; r?: number | string; radius?: number | string; refX?: number | string; refY?: number | string; renderingIntent?: number | string; repeatCount?: number | string; repeatDur?: number | string; requiredExtensions?: number | string; requiredFeatures?: number | string; restart?: number | string; result?: string; rotate?: number | string; rx?: number | string; ry?: number | string; scale?: number | string; seed?: number | string; shapeRendering?: number | string; slope?: number | string; spacing?: number | string; specularConstant?: number | string; specularExponent?: number | string; speed?: number | string; spreadMethod?: string; startOffset?: number | string; stdDeviation?: number | string; stemh?: number | string; stemv?: number | string; stitchTiles?: number | string; stopColor?: string; stopOpacity?: number | string; strikethroughPosition?: number | string; strikethroughThickness?: number | string; string?: number | string; stroke?: string; strokeDasharray?: string | number; strokeDashoffset?: string | number; strokeLinecap?: 'butt' | 'round' | 'square' | 'inherit'; strokeLinejoin?: 'miter' | 'round' | 'bevel' | 'inherit'; strokeMiterlimit?: string; strokeOpacity?: number | string; strokeWidth?: number | string; surfaceScale?: number | string; systemLanguage?: number | string; tableValues?: number | string; targetX?: number | string; targetY?: number | string; textAnchor?: string; textDecoration?: number | string; textLength?: number | string; textRendering?: number | string; to?: number | string; transform?: string; u1?: number | string; u2?: number | string; underlinePosition?: number | string; underlineThickness?: number | string; unicode?: number | string; unicodeBidi?: number | string; unicodeRange?: number | string; unitsPerEm?: number | string; vAlphabetic?: number | string; values?: string; vectorEffect?: number | string; version?: string; vertAdvY?: number | string; vertOriginX?: number | string; vertOriginY?: number | string; vHanging?: number | string; vIdeographic?: number | string; viewBox?: string; viewTarget?: number | string; visibility?: number | string; vMathematical?: number | string; widths?: number | string; wordSpacing?: number | string; writingMode?: number | string; x1?: number | string; x2?: number | string; x?: number | string; xChannelSelector?: string; xHeight?: number | string; xlinkActuate?: string; xlinkArcrole?: string; xlinkHref?: string; xlinkRole?: string; xlinkShow?: string; xlinkTitle?: string; xlinkType?: string; xmlBase?: string; xmlLang?: string; xmlns?: string; xmlnsXlink?: string; xmlSpace?: string; y1?: number | string; y2?: number | string; y?: number | string; yChannelSelector?: string; z?: number | string; zoomAndPan?: string; } export interface DOMAttributes { // Clipboard Events onCopy?: (event: ClipboardEvent) => void; onCopyCapture?: (event: ClipboardEvent) => void; onCut?: (event: ClipboardEvent) => void; onCutCapture?: (event: ClipboardEvent) => void; onPaste?: (event: ClipboardEvent) => void; onPasteCapture?: (event: ClipboardEvent) => void; // Composition Events onCompositionEnd?: (event: CompositionEvent) => void; onCompositionEndCapture?: (event: CompositionEvent) => void; onCompositionStart?: (event: CompositionEvent) => void; onCompositionStartCapture?: (event: CompositionEvent) => void; onCompositionUpdate?: (event: CompositionEvent) => void; onCompositionUpdateCapture?: (event: CompositionEvent) => void; // Focus Events onFocus?: (event: FocusEvent) => void; onFocusCapture?: (event: FocusEvent) => void; onBlur?: (event: FocusEvent) => void; onBlurCapture?: (event: FocusEvent) => void; // Form Events onChange?: (event: Event) => void; onChangeCapture?: (event: Event) => void; onInput?: (event: Event) => void; onInputCapture?: (event: Event) => void; onReset?: (event: Event) => void; onResetCapture?: (event: Event) => void; onSubmit?: (event: Event) => void; onSubmitCapture?: (event: Event) => void; onInvalid?: (event: Event) => void; onInvalidCapture?: (event: Event) => void; // Image Events onLoad?: (event: Event) => void; onLoadCapture?: (event: Event) => void; onError?: (event: Event) => void; // also a Media Event onErrorCapture?: (event: Event) => void; // also a Media Event // Keyboard Events onKeyDown?: (event: KeyboardEvent) => void; onKeyDownCapture?: (event: KeyboardEvent) => void; onKeyPress?: (event: KeyboardEvent) => void; onKeyPressCapture?: (event: KeyboardEvent) => void; onKeyUp?: (event: KeyboardEvent) => void; onKeyUpCapture?: (event: KeyboardEvent) => void; // MouseEvents onAuxClick?: (event: MouseEvent) => void; onClick?: (event: MouseEvent) => void; onClickCapture?: (event: MouseEvent) => void; onContextMenu?: (event: MouseEvent) => void; onContextMenuCapture?: (event: MouseEvent) => void; onDblClick?: (event: MouseEvent) => void; onDblClickCapture?: (event: MouseEvent) => void; onDrag?: (event: DragEvent) => void; onDragCapture?: (event: DragEvent) => void; onDragEnd?: (event: DragEvent) => void; onDragEndCapture?: (event: DragEvent) => void; onDragEnter?: (event: DragEvent) => void; onDragEnterCapture?: (event: DragEvent) => void; onDragExit?: (event: DragEvent) => void; onDragExitCapture?: (event: DragEvent) => void; onDragLeave?: (event: DragEvent) => void; onDragLeaveCapture?: (event: DragEvent) => void; onDragOver?: (event: DragEvent) => void; onDragOverCapture?: (event: DragEvent) => void; onDragStart?: (event: DragEvent) => void; onDragStartCapture?: (event: DragEvent) => void; onDrop?: (event: DragEvent) => void; onDropCapture?: (event: DragEvent) => void; onMouseDown?: (event: MouseEvent) => void; onMouseDownCapture?: (event: MouseEvent) => void; onMouseEnter?: (event: MouseEvent) => void; onMouseLeave?: (event: MouseEvent) => void; onMouseMove?: (event: MouseEvent) => void; onMouseMoveCapture?: (event: MouseEvent) => void; onMouseOut?: (event: MouseEvent) => void; onMouseOutCapture?: (event: MouseEvent) => void; onMouseOver?: (event: MouseEvent) => void; onMouseOverCapture?: (event: MouseEvent) => void; onMouseUp?: (event: MouseEvent) => void; onMouseUpCapture?: (event: MouseEvent) => void; // Touch Events onTouchCancel?: (event: TouchEvent) => void; onTouchCancelCapture?: (event: TouchEvent) => void; onTouchEnd?: (event: TouchEvent) => void; onTouchEndCapture?: (event: TouchEvent) => void; onTouchMove?: (event: TouchEvent) => void; onTouchMoveCapture?: (event: TouchEvent) => void; onTouchStart?: (event: TouchEvent) => void; onTouchStartCapture?: (event: TouchEvent) => void; // UI Events onScroll?: (event: UIEvent) => void; onScrollCapture?: (event: UIEvent) => void; // Wheel Events onWheel?: (event: WheelEvent) => void; onWheelCapture?: (event: WheelEvent) => void; // Animation Events onAnimationStart?: (event: AnimationEvent) => void; onAnimationStartCapture?: (event: AnimationEvent) => void; onAnimationEnd?: (event: AnimationEvent) => void; onAnimationEndCapture?: (event: AnimationEvent) => void; onAnimationIteration?: (event: AnimationEvent) => void; onAnimationIterationCapture?: (event: AnimationEvent) => void; // Transition Events onTransitionEnd?: (event: TransitionEvent) => void; onTransitionEndCapture?: (event: TransitionEvent) => void; } } export interface FunctionalUtilities { forEach: (children: FVNode[], cb: (vnode: ChildNode, index: number, array: FVNode[]) => void) => void; map: (children: FVNode[], cb: (vnode: ChildNode, index: number, array: FVNode[]) => ChildNode) => FVNode[]; } export interface FunctionalComponent { (props: T, children: FVNode[], utils: FunctionalUtilities): FVNode | FVNode[]; } export interface FVNode { // using v prefixes largely so closure has no issue property renaming vtag?: string | number | Function; vkey?: string | number; vtext?: string; vchildren?: FVNode[]; vattrs?: any; vname?: string; ishost?: boolean; isSlotFallback?: boolean; isSlotReference?: boolean; } export interface ChildNode { vtag?: string | number | Function; vkey?: string | number; vtext?: string; vchildren?: ChildNode[]; vattrs?: any; vname?: string; } PK}w\ssloader/package.jsonnu[{ "name": "loader", "typings": "./index.d.ts", "module": "./index.js", "es2017": "./index.es2017.js" }PK}w\{E`..loader/index.jsnu[export * from '../esm/es5/ionicons.define.js';PK}w\Hv11loader/index.es2017.jsnu[export * from '../esm/es2017/ionicons.define.js';PK}w\XFFloader/index.d.tsnu[export declare function defineCustomElements(win: any): Promise;PK}w\M}EEcss/ionicons.cssnu[@charset "UTF-8"; /*! Ionicons, v4.4.5 Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons Android-style icons originally built by Google’s Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. */ @font-face { font-family: "Ionicons"; src: url("../fonts/ionicons.eot?v=4.4.5"); src: url("../fonts/ionicons.eot?v=4.4.5#iefix") format("embedded-opentype"), url("../fonts/ionicons.woff2?v=4.4.5") format("woff2"), url("../fonts/ionicons.woff?v=4.4.5") format("woff"), url("../fonts/ionicons.ttf?v=4.4.5") format("truetype"), url("../fonts/ionicons.svg?v=4.4.5#Ionicons") format("svg"); font-weight: normal; font-style: normal; } .ion, .ionicons, .ion-ios-add:before, .ion-ios-add-circle:before, .ion-ios-add-circle-outline:before, .ion-ios-airplane:before, .ion-ios-alarm:before, .ion-ios-albums:before, .ion-ios-alert:before, .ion-ios-american-football:before, .ion-ios-analytics:before, .ion-ios-aperture:before, .ion-ios-apps:before, .ion-ios-appstore:before, .ion-ios-archive:before, .ion-ios-arrow-back:before, .ion-ios-arrow-down:before, .ion-ios-arrow-dropdown:before, .ion-ios-arrow-dropdown-circle:before, .ion-ios-arrow-dropleft:before, .ion-ios-arrow-dropleft-circle:before, .ion-ios-arrow-dropright:before, .ion-ios-arrow-dropright-circle:before, .ion-ios-arrow-dropup:before, .ion-ios-arrow-dropup-circle:before, .ion-ios-arrow-forward:before, .ion-ios-arrow-round-back:before, .ion-ios-arrow-round-down:before, .ion-ios-arrow-round-forward:before, .ion-ios-arrow-round-up:before, .ion-ios-arrow-up:before, .ion-ios-at:before, .ion-ios-attach:before, .ion-ios-backspace:before, .ion-ios-barcode:before, .ion-ios-baseball:before, .ion-ios-basket:before, .ion-ios-basketball:before, .ion-ios-battery-charging:before, .ion-ios-battery-dead:before, .ion-ios-battery-full:before, .ion-ios-beaker:before, .ion-ios-bed:before, .ion-ios-beer:before, .ion-ios-bicycle:before, .ion-ios-bluetooth:before, .ion-ios-boat:before, .ion-ios-body:before, .ion-ios-bonfire:before, .ion-ios-book:before, .ion-ios-bookmark:before, .ion-ios-bookmarks:before, .ion-ios-bowtie:before, .ion-ios-briefcase:before, .ion-ios-browsers:before, .ion-ios-brush:before, .ion-ios-bug:before, .ion-ios-build:before, .ion-ios-bulb:before, .ion-ios-bus:before, .ion-ios-business:before, .ion-ios-cafe:before, .ion-ios-calculator:before, .ion-ios-calendar:before, .ion-ios-call:before, .ion-ios-camera:before, .ion-ios-car:before, .ion-ios-card:before, .ion-ios-cart:before, .ion-ios-cash:before, .ion-ios-cellular:before, .ion-ios-chatboxes:before, .ion-ios-chatbubbles:before, .ion-ios-checkbox:before, .ion-ios-checkbox-outline:before, .ion-ios-checkmark:before, .ion-ios-checkmark-circle:before, .ion-ios-checkmark-circle-outline:before, .ion-ios-clipboard:before, .ion-ios-clock:before, .ion-ios-close:before, .ion-ios-close-circle:before, .ion-ios-close-circle-outline:before, .ion-ios-cloud:before, .ion-ios-cloud-circle:before, .ion-ios-cloud-done:before, .ion-ios-cloud-download:before, .ion-ios-cloud-outline:before, .ion-ios-cloud-upload:before, .ion-ios-cloudy:before, .ion-ios-cloudy-night:before, .ion-ios-code:before, .ion-ios-code-download:before, .ion-ios-code-working:before, .ion-ios-cog:before, .ion-ios-color-fill:before, .ion-ios-color-filter:before, .ion-ios-color-palette:before, .ion-ios-color-wand:before, .ion-ios-compass:before, .ion-ios-construct:before, .ion-ios-contact:before, .ion-ios-contacts:before, .ion-ios-contract:before, .ion-ios-contrast:before, .ion-ios-copy:before, .ion-ios-create:before, .ion-ios-crop:before, .ion-ios-cube:before, .ion-ios-cut:before, .ion-ios-desktop:before, .ion-ios-disc:before, .ion-ios-document:before, .ion-ios-done-all:before, .ion-ios-download:before, .ion-ios-easel:before, .ion-ios-egg:before, .ion-ios-exit:before, .ion-ios-expand:before, .ion-ios-eye:before, .ion-ios-eye-off:before, .ion-ios-fastforward:before, .ion-ios-female:before, .ion-ios-filing:before, .ion-ios-film:before, .ion-ios-finger-print:before, .ion-ios-fitness:before, .ion-ios-flag:before, .ion-ios-flame:before, .ion-ios-flash:before, .ion-ios-flash-off:before, .ion-ios-flashlight:before, .ion-ios-flask:before, .ion-ios-flower:before, .ion-ios-folder:before, .ion-ios-folder-open:before, .ion-ios-football:before, .ion-ios-funnel:before, .ion-ios-gift:before, .ion-ios-git-branch:before, .ion-ios-git-commit:before, .ion-ios-git-compare:before, .ion-ios-git-merge:before, .ion-ios-git-network:before, .ion-ios-git-pull-request:before, .ion-ios-glasses:before, .ion-ios-globe:before, .ion-ios-grid:before, .ion-ios-hammer:before, .ion-ios-hand:before, .ion-ios-happy:before, .ion-ios-headset:before, .ion-ios-heart:before, .ion-ios-heart-dislike:before, .ion-ios-heart-empty:before, .ion-ios-heart-half:before, .ion-ios-help:before, .ion-ios-help-buoy:before, .ion-ios-help-circle:before, .ion-ios-help-circle-outline:before, .ion-ios-home:before, .ion-ios-hourglass:before, .ion-ios-ice-cream:before, .ion-ios-image:before, .ion-ios-images:before, .ion-ios-infinite:before, .ion-ios-information:before, .ion-ios-information-circle:before, .ion-ios-information-circle-outline:before, .ion-ios-jet:before, .ion-ios-journal:before, .ion-ios-key:before, .ion-ios-keypad:before, .ion-ios-laptop:before, .ion-ios-leaf:before, .ion-ios-link:before, .ion-ios-list:before, .ion-ios-list-box:before, .ion-ios-locate:before, .ion-ios-lock:before, .ion-ios-log-in:before, .ion-ios-log-out:before, .ion-ios-magnet:before, .ion-ios-mail:before, .ion-ios-mail-open:before, .ion-ios-mail-unread:before, .ion-ios-male:before, .ion-ios-man:before, .ion-ios-map:before, .ion-ios-medal:before, .ion-ios-medical:before, .ion-ios-medkit:before, .ion-ios-megaphone:before, .ion-ios-menu:before, .ion-ios-mic:before, .ion-ios-mic-off:before, .ion-ios-microphone:before, .ion-ios-moon:before, .ion-ios-more:before, .ion-ios-move:before, .ion-ios-musical-note:before, .ion-ios-musical-notes:before, .ion-ios-navigate:before, .ion-ios-notifications:before, .ion-ios-notifications-off:before, .ion-ios-notifications-outline:before, .ion-ios-nuclear:before, .ion-ios-nutrition:before, .ion-ios-open:before, .ion-ios-options:before, .ion-ios-outlet:before, .ion-ios-paper:before, .ion-ios-paper-plane:before, .ion-ios-partly-sunny:before, .ion-ios-pause:before, .ion-ios-paw:before, .ion-ios-people:before, .ion-ios-person:before, .ion-ios-person-add:before, .ion-ios-phone-landscape:before, .ion-ios-phone-portrait:before, .ion-ios-photos:before, .ion-ios-pie:before, .ion-ios-pin:before, .ion-ios-pint:before, .ion-ios-pizza:before, .ion-ios-planet:before, .ion-ios-play:before, .ion-ios-play-circle:before, .ion-ios-podium:before, .ion-ios-power:before, .ion-ios-pricetag:before, .ion-ios-pricetags:before, .ion-ios-print:before, .ion-ios-pulse:before, .ion-ios-qr-scanner:before, .ion-ios-quote:before, .ion-ios-radio:before, .ion-ios-radio-button-off:before, .ion-ios-radio-button-on:before, .ion-ios-rainy:before, .ion-ios-recording:before, .ion-ios-redo:before, .ion-ios-refresh:before, .ion-ios-refresh-circle:before, .ion-ios-remove:before, .ion-ios-remove-circle:before, .ion-ios-remove-circle-outline:before, .ion-ios-reorder:before, .ion-ios-repeat:before, .ion-ios-resize:before, .ion-ios-restaurant:before, .ion-ios-return-left:before, .ion-ios-return-right:before, .ion-ios-reverse-camera:before, .ion-ios-rewind:before, .ion-ios-ribbon:before, .ion-ios-rocket:before, .ion-ios-rose:before, .ion-ios-sad:before, .ion-ios-save:before, .ion-ios-school:before, .ion-ios-search:before, .ion-ios-send:before, .ion-ios-settings:before, .ion-ios-share:before, .ion-ios-share-alt:before, .ion-ios-shirt:before, .ion-ios-shuffle:before, .ion-ios-skip-backward:before, .ion-ios-skip-forward:before, .ion-ios-snow:before, .ion-ios-speedometer:before, .ion-ios-square:before, .ion-ios-square-outline:before, .ion-ios-star:before, .ion-ios-star-half:before, .ion-ios-star-outline:before, .ion-ios-stats:before, .ion-ios-stopwatch:before, .ion-ios-subway:before, .ion-ios-sunny:before, .ion-ios-swap:before, .ion-ios-switch:before, .ion-ios-sync:before, .ion-ios-tablet-landscape:before, .ion-ios-tablet-portrait:before, .ion-ios-tennisball:before, .ion-ios-text:before, .ion-ios-thermometer:before, .ion-ios-thumbs-down:before, .ion-ios-thumbs-up:before, .ion-ios-thunderstorm:before, .ion-ios-time:before, .ion-ios-timer:before, .ion-ios-today:before, .ion-ios-train:before, .ion-ios-transgender:before, .ion-ios-trash:before, .ion-ios-trending-down:before, .ion-ios-trending-up:before, .ion-ios-trophy:before, .ion-ios-tv:before, .ion-ios-umbrella:before, .ion-ios-undo:before, .ion-ios-unlock:before, .ion-ios-videocam:before, .ion-ios-volume-high:before, .ion-ios-volume-low:before, .ion-ios-volume-mute:before, .ion-ios-volume-off:before, .ion-ios-walk:before, .ion-ios-wallet:before, .ion-ios-warning:before, .ion-ios-watch:before, .ion-ios-water:before, .ion-ios-wifi:before, .ion-ios-wine:before, .ion-ios-woman:before, .ion-logo-android:before, .ion-logo-angular:before, .ion-logo-apple:before, .ion-logo-bitbucket:before, .ion-logo-bitcoin:before, .ion-logo-buffer:before, .ion-logo-chrome:before, .ion-logo-closed-captioning:before, .ion-logo-codepen:before, .ion-logo-css3:before, .ion-logo-designernews:before, .ion-logo-dribbble:before, .ion-logo-dropbox:before, .ion-logo-euro:before, .ion-logo-facebook:before, .ion-logo-flickr:before, .ion-logo-foursquare:before, .ion-logo-freebsd-devil:before, .ion-logo-game-controller-a:before, .ion-logo-game-controller-b:before, .ion-logo-github:before, .ion-logo-google:before, .ion-logo-googleplus:before, .ion-logo-hackernews:before, .ion-logo-html5:before, .ion-logo-instagram:before, .ion-logo-ionic:before, .ion-logo-ionitron:before, .ion-logo-javascript:before, .ion-logo-linkedin:before, .ion-logo-markdown:before, .ion-logo-model-s:before, .ion-logo-no-smoking:before, .ion-logo-nodejs:before, .ion-logo-npm:before, .ion-logo-octocat:before, .ion-logo-pinterest:before, .ion-logo-playstation:before, .ion-logo-polymer:before, .ion-logo-python:before, .ion-logo-reddit:before, .ion-logo-rss:before, .ion-logo-sass:before, .ion-logo-skype:before, .ion-logo-slack:before, .ion-logo-snapchat:before, .ion-logo-steam:before, .ion-logo-tumblr:before, .ion-logo-tux:before, .ion-logo-twitch:before, .ion-logo-twitter:before, .ion-logo-usd:before, .ion-logo-vimeo:before, .ion-logo-vk:before, .ion-logo-whatsapp:before, .ion-logo-windows:before, .ion-logo-wordpress:before, .ion-logo-xbox:before, .ion-logo-xing:before, .ion-logo-yahoo:before, .ion-logo-yen:before, .ion-logo-youtube:before, .ion-md-add:before, .ion-md-add-circle:before, .ion-md-add-circle-outline:before, .ion-md-airplane:before, .ion-md-alarm:before, .ion-md-albums:before, .ion-md-alert:before, .ion-md-american-football:before, .ion-md-analytics:before, .ion-md-aperture:before, .ion-md-apps:before, .ion-md-appstore:before, .ion-md-archive:before, .ion-md-arrow-back:before, .ion-md-arrow-down:before, .ion-md-arrow-dropdown:before, .ion-md-arrow-dropdown-circle:before, .ion-md-arrow-dropleft:before, .ion-md-arrow-dropleft-circle:before, .ion-md-arrow-dropright:before, .ion-md-arrow-dropright-circle:before, .ion-md-arrow-dropup:before, .ion-md-arrow-dropup-circle:before, .ion-md-arrow-forward:before, .ion-md-arrow-round-back:before, .ion-md-arrow-round-down:before, .ion-md-arrow-round-forward:before, .ion-md-arrow-round-up:before, .ion-md-arrow-up:before, .ion-md-at:before, .ion-md-attach:before, .ion-md-backspace:before, .ion-md-barcode:before, .ion-md-baseball:before, .ion-md-basket:before, .ion-md-basketball:before, .ion-md-battery-charging:before, .ion-md-battery-dead:before, .ion-md-battery-full:before, .ion-md-beaker:before, .ion-md-bed:before, .ion-md-beer:before, .ion-md-bicycle:before, .ion-md-bluetooth:before, .ion-md-boat:before, .ion-md-body:before, .ion-md-bonfire:before, .ion-md-book:before, .ion-md-bookmark:before, .ion-md-bookmarks:before, .ion-md-bowtie:before, .ion-md-briefcase:before, .ion-md-browsers:before, .ion-md-brush:before, .ion-md-bug:before, .ion-md-build:before, .ion-md-bulb:before, .ion-md-bus:before, .ion-md-business:before, .ion-md-cafe:before, .ion-md-calculator:before, .ion-md-calendar:before, .ion-md-call:before, .ion-md-camera:before, .ion-md-car:before, .ion-md-card:before, .ion-md-cart:before, .ion-md-cash:before, .ion-md-cellular:before, .ion-md-chatboxes:before, .ion-md-chatbubbles:before, .ion-md-checkbox:before, .ion-md-checkbox-outline:before, .ion-md-checkmark:before, .ion-md-checkmark-circle:before, .ion-md-checkmark-circle-outline:before, .ion-md-clipboard:before, .ion-md-clock:before, .ion-md-close:before, .ion-md-close-circle:before, .ion-md-close-circle-outline:before, .ion-md-cloud:before, .ion-md-cloud-circle:before, .ion-md-cloud-done:before, .ion-md-cloud-download:before, .ion-md-cloud-outline:before, .ion-md-cloud-upload:before, .ion-md-cloudy:before, .ion-md-cloudy-night:before, .ion-md-code:before, .ion-md-code-download:before, .ion-md-code-working:before, .ion-md-cog:before, .ion-md-color-fill:before, .ion-md-color-filter:before, .ion-md-color-palette:before, .ion-md-color-wand:before, .ion-md-compass:before, .ion-md-construct:before, .ion-md-contact:before, .ion-md-contacts:before, .ion-md-contract:before, .ion-md-contrast:before, .ion-md-copy:before, .ion-md-create:before, .ion-md-crop:before, .ion-md-cube:before, .ion-md-cut:before, .ion-md-desktop:before, .ion-md-disc:before, .ion-md-document:before, .ion-md-done-all:before, .ion-md-download:before, .ion-md-easel:before, .ion-md-egg:before, .ion-md-exit:before, .ion-md-expand:before, .ion-md-eye:before, .ion-md-eye-off:before, .ion-md-fastforward:before, .ion-md-female:before, .ion-md-filing:before, .ion-md-film:before, .ion-md-finger-print:before, .ion-md-fitness:before, .ion-md-flag:before, .ion-md-flame:before, .ion-md-flash:before, .ion-md-flash-off:before, .ion-md-flashlight:before, .ion-md-flask:before, .ion-md-flower:before, .ion-md-folder:before, .ion-md-folder-open:before, .ion-md-football:before, .ion-md-funnel:before, .ion-md-gift:before, .ion-md-git-branch:before, .ion-md-git-commit:before, .ion-md-git-compare:before, .ion-md-git-merge:before, .ion-md-git-network:before, .ion-md-git-pull-request:before, .ion-md-glasses:before, .ion-md-globe:before, .ion-md-grid:before, .ion-md-hammer:before, .ion-md-hand:before, .ion-md-happy:before, .ion-md-headset:before, .ion-md-heart:before, .ion-md-heart-dislike:before, .ion-md-heart-empty:before, .ion-md-heart-half:before, .ion-md-help:before, .ion-md-help-buoy:before, .ion-md-help-circle:before, .ion-md-help-circle-outline:before, .ion-md-home:before, .ion-md-hourglass:before, .ion-md-ice-cream:before, .ion-md-image:before, .ion-md-images:before, .ion-md-infinite:before, .ion-md-information:before, .ion-md-information-circle:before, .ion-md-information-circle-outline:before, .ion-md-jet:before, .ion-md-journal:before, .ion-md-key:before, .ion-md-keypad:before, .ion-md-laptop:before, .ion-md-leaf:before, .ion-md-link:before, .ion-md-list:before, .ion-md-list-box:before, .ion-md-locate:before, .ion-md-lock:before, .ion-md-log-in:before, .ion-md-log-out:before, .ion-md-magnet:before, .ion-md-mail:before, .ion-md-mail-open:before, .ion-md-mail-unread:before, .ion-md-male:before, .ion-md-man:before, .ion-md-map:before, .ion-md-medal:before, .ion-md-medical:before, .ion-md-medkit:before, .ion-md-megaphone:before, .ion-md-menu:before, .ion-md-mic:before, .ion-md-mic-off:before, .ion-md-microphone:before, .ion-md-moon:before, .ion-md-more:before, .ion-md-move:before, .ion-md-musical-note:before, .ion-md-musical-notes:before, .ion-md-navigate:before, .ion-md-notifications:before, .ion-md-notifications-off:before, .ion-md-notifications-outline:before, .ion-md-nuclear:before, .ion-md-nutrition:before, .ion-md-open:before, .ion-md-options:before, .ion-md-outlet:before, .ion-md-paper:before, .ion-md-paper-plane:before, .ion-md-partly-sunny:before, .ion-md-pause:before, .ion-md-paw:before, .ion-md-people:before, .ion-md-person:before, .ion-md-person-add:before, .ion-md-phone-landscape:before, .ion-md-phone-portrait:before, .ion-md-photos:before, .ion-md-pie:before, .ion-md-pin:before, .ion-md-pint:before, .ion-md-pizza:before, .ion-md-planet:before, .ion-md-play:before, .ion-md-play-circle:before, .ion-md-podium:before, .ion-md-power:before, .ion-md-pricetag:before, .ion-md-pricetags:before, .ion-md-print:before, .ion-md-pulse:before, .ion-md-qr-scanner:before, .ion-md-quote:before, .ion-md-radio:before, .ion-md-radio-button-off:before, .ion-md-radio-button-on:before, .ion-md-rainy:before, .ion-md-recording:before, .ion-md-redo:before, .ion-md-refresh:before, .ion-md-refresh-circle:before, .ion-md-remove:before, .ion-md-remove-circle:before, .ion-md-remove-circle-outline:before, .ion-md-reorder:before, .ion-md-repeat:before, .ion-md-resize:before, .ion-md-restaurant:before, .ion-md-return-left:before, .ion-md-return-right:before, .ion-md-reverse-camera:before, .ion-md-rewind:before, .ion-md-ribbon:before, .ion-md-rocket:before, .ion-md-rose:before, .ion-md-sad:before, .ion-md-save:before, .ion-md-school:before, .ion-md-search:before, .ion-md-send:before, .ion-md-settings:before, .ion-md-share:before, .ion-md-share-alt:before, .ion-md-shirt:before, .ion-md-shuffle:before, .ion-md-skip-backward:before, .ion-md-skip-forward:before, .ion-md-snow:before, .ion-md-speedometer:before, .ion-md-square:before, .ion-md-square-outline:before, .ion-md-star:before, .ion-md-star-half:before, .ion-md-star-outline:before, .ion-md-stats:before, .ion-md-stopwatch:before, .ion-md-subway:before, .ion-md-sunny:before, .ion-md-swap:before, .ion-md-switch:before, .ion-md-sync:before, .ion-md-tablet-landscape:before, .ion-md-tablet-portrait:before, .ion-md-tennisball:before, .ion-md-text:before, .ion-md-thermometer:before, .ion-md-thumbs-down:before, .ion-md-thumbs-up:before, .ion-md-thunderstorm:before, .ion-md-time:before, .ion-md-timer:before, .ion-md-today:before, .ion-md-train:before, .ion-md-transgender:before, .ion-md-trash:before, .ion-md-trending-down:before, .ion-md-trending-up:before, .ion-md-trophy:before, .ion-md-tv:before, .ion-md-umbrella:before, .ion-md-undo:before, .ion-md-unlock:before, .ion-md-videocam:before, .ion-md-volume-high:before, .ion-md-volume-low:before, .ion-md-volume-mute:before, .ion-md-volume-off:before, .ion-md-walk:before, .ion-md-wallet:before, .ion-md-warning:before, .ion-md-watch:before, .ion-md-water:before, .ion-md-wifi:before, .ion-md-wine:before, .ion-md-woman:before { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .ion-ios-add:before { content: "\f102"; } .ion-ios-add-circle:before { content: "\f101"; } .ion-ios-add-circle-outline:before { content: "\f100"; } .ion-ios-airplane:before { content: "\f137"; } .ion-ios-alarm:before { content: "\f3c8"; } .ion-ios-albums:before { content: "\f3ca"; } .ion-ios-alert:before { content: "\f104"; } .ion-ios-american-football:before { content: "\f106"; } .ion-ios-analytics:before { content: "\f3ce"; } .ion-ios-aperture:before { content: "\f108"; } .ion-ios-apps:before { content: "\f10a"; } .ion-ios-appstore:before { content: "\f10c"; } .ion-ios-archive:before { content: "\f10e"; } .ion-ios-arrow-back:before { content: "\f3cf"; } .ion-ios-arrow-down:before { content: "\f3d0"; } .ion-ios-arrow-dropdown:before { content: "\f110"; } .ion-ios-arrow-dropdown-circle:before { content: "\f125"; } .ion-ios-arrow-dropleft:before { content: "\f112"; } .ion-ios-arrow-dropleft-circle:before { content: "\f129"; } .ion-ios-arrow-dropright:before { content: "\f114"; } .ion-ios-arrow-dropright-circle:before { content: "\f12b"; } .ion-ios-arrow-dropup:before { content: "\f116"; } .ion-ios-arrow-dropup-circle:before { content: "\f12d"; } .ion-ios-arrow-forward:before { content: "\f3d1"; } .ion-ios-arrow-round-back:before { content: "\f117"; } .ion-ios-arrow-round-down:before { content: "\f118"; } .ion-ios-arrow-round-forward:before { content: "\f119"; } .ion-ios-arrow-round-up:before { content: "\f11a"; } .ion-ios-arrow-up:before { content: "\f3d8"; } .ion-ios-at:before { content: "\f3da"; } .ion-ios-attach:before { content: "\f11b"; } .ion-ios-backspace:before { content: "\f11d"; } .ion-ios-barcode:before { content: "\f3dc"; } .ion-ios-baseball:before { content: "\f3de"; } .ion-ios-basket:before { content: "\f11f"; } .ion-ios-basketball:before { content: "\f3e0"; } .ion-ios-battery-charging:before { content: "\f120"; } .ion-ios-battery-dead:before { content: "\f121"; } .ion-ios-battery-full:before { content: "\f122"; } .ion-ios-beaker:before { content: "\f124"; } .ion-ios-bed:before { content: "\f139"; } .ion-ios-beer:before { content: "\f126"; } .ion-ios-bicycle:before { content: "\f127"; } .ion-ios-bluetooth:before { content: "\f128"; } .ion-ios-boat:before { content: "\f12a"; } .ion-ios-body:before { content: "\f3e4"; } .ion-ios-bonfire:before { content: "\f12c"; } .ion-ios-book:before { content: "\f3e8"; } .ion-ios-bookmark:before { content: "\f12e"; } .ion-ios-bookmarks:before { content: "\f3ea"; } .ion-ios-bowtie:before { content: "\f130"; } .ion-ios-briefcase:before { content: "\f3ee"; } .ion-ios-browsers:before { content: "\f3f0"; } .ion-ios-brush:before { content: "\f132"; } .ion-ios-bug:before { content: "\f134"; } .ion-ios-build:before { content: "\f136"; } .ion-ios-bulb:before { content: "\f138"; } .ion-ios-bus:before { content: "\f13a"; } .ion-ios-business:before { content: "\f1a3"; } .ion-ios-cafe:before { content: "\f13c"; } .ion-ios-calculator:before { content: "\f3f2"; } .ion-ios-calendar:before { content: "\f3f4"; } .ion-ios-call:before { content: "\f13e"; } .ion-ios-camera:before { content: "\f3f6"; } .ion-ios-car:before { content: "\f140"; } .ion-ios-card:before { content: "\f142"; } .ion-ios-cart:before { content: "\f3f8"; } .ion-ios-cash:before { content: "\f144"; } .ion-ios-cellular:before { content: "\f13d"; } .ion-ios-chatboxes:before { content: "\f3fa"; } .ion-ios-chatbubbles:before { content: "\f146"; } .ion-ios-checkbox:before { content: "\f148"; } .ion-ios-checkbox-outline:before { content: "\f147"; } .ion-ios-checkmark:before { content: "\f3ff"; } .ion-ios-checkmark-circle:before { content: "\f14a"; } .ion-ios-checkmark-circle-outline:before { content: "\f149"; } .ion-ios-clipboard:before { content: "\f14c"; } .ion-ios-clock:before { content: "\f403"; } .ion-ios-close:before { content: "\f406"; } .ion-ios-close-circle:before { content: "\f14e"; } .ion-ios-close-circle-outline:before { content: "\f14d"; } .ion-ios-cloud:before { content: "\f40c"; } .ion-ios-cloud-circle:before { content: "\f152"; } .ion-ios-cloud-done:before { content: "\f154"; } .ion-ios-cloud-download:before { content: "\f408"; } .ion-ios-cloud-outline:before { content: "\f409"; } .ion-ios-cloud-upload:before { content: "\f40b"; } .ion-ios-cloudy:before { content: "\f410"; } .ion-ios-cloudy-night:before { content: "\f40e"; } .ion-ios-code:before { content: "\f157"; } .ion-ios-code-download:before { content: "\f155"; } .ion-ios-code-working:before { content: "\f156"; } .ion-ios-cog:before { content: "\f412"; } .ion-ios-color-fill:before { content: "\f159"; } .ion-ios-color-filter:before { content: "\f414"; } .ion-ios-color-palette:before { content: "\f15b"; } .ion-ios-color-wand:before { content: "\f416"; } .ion-ios-compass:before { content: "\f15d"; } .ion-ios-construct:before { content: "\f15f"; } .ion-ios-contact:before { content: "\f41a"; } .ion-ios-contacts:before { content: "\f161"; } .ion-ios-contract:before { content: "\f162"; } .ion-ios-contrast:before { content: "\f163"; } .ion-ios-copy:before { content: "\f41c"; } .ion-ios-create:before { content: "\f165"; } .ion-ios-crop:before { content: "\f41e"; } .ion-ios-cube:before { content: "\f168"; } .ion-ios-cut:before { content: "\f16a"; } .ion-ios-desktop:before { content: "\f16c"; } .ion-ios-disc:before { content: "\f16e"; } .ion-ios-document:before { content: "\f170"; } .ion-ios-done-all:before { content: "\f171"; } .ion-ios-download:before { content: "\f420"; } .ion-ios-easel:before { content: "\f173"; } .ion-ios-egg:before { content: "\f175"; } .ion-ios-exit:before { content: "\f177"; } .ion-ios-expand:before { content: "\f178"; } .ion-ios-eye:before { content: "\f425"; } .ion-ios-eye-off:before { content: "\f17a"; } .ion-ios-fastforward:before { content: "\f427"; } .ion-ios-female:before { content: "\f17b"; } .ion-ios-filing:before { content: "\f429"; } .ion-ios-film:before { content: "\f42b"; } .ion-ios-finger-print:before { content: "\f17c"; } .ion-ios-fitness:before { content: "\f1ab"; } .ion-ios-flag:before { content: "\f42d"; } .ion-ios-flame:before { content: "\f42f"; } .ion-ios-flash:before { content: "\f17e"; } .ion-ios-flash-off:before { content: "\f12f"; } .ion-ios-flashlight:before { content: "\f141"; } .ion-ios-flask:before { content: "\f431"; } .ion-ios-flower:before { content: "\f433"; } .ion-ios-folder:before { content: "\f435"; } .ion-ios-folder-open:before { content: "\f180"; } .ion-ios-football:before { content: "\f437"; } .ion-ios-funnel:before { content: "\f182"; } .ion-ios-gift:before { content: "\f191"; } .ion-ios-git-branch:before { content: "\f183"; } .ion-ios-git-commit:before { content: "\f184"; } .ion-ios-git-compare:before { content: "\f185"; } .ion-ios-git-merge:before { content: "\f186"; } .ion-ios-git-network:before { content: "\f187"; } .ion-ios-git-pull-request:before { content: "\f188"; } .ion-ios-glasses:before { content: "\f43f"; } .ion-ios-globe:before { content: "\f18a"; } .ion-ios-grid:before { content: "\f18c"; } .ion-ios-hammer:before { content: "\f18e"; } .ion-ios-hand:before { content: "\f190"; } .ion-ios-happy:before { content: "\f192"; } .ion-ios-headset:before { content: "\f194"; } .ion-ios-heart:before { content: "\f443"; } .ion-ios-heart-dislike:before { content: "\f13f"; } .ion-ios-heart-empty:before { content: "\f19b"; } .ion-ios-heart-half:before { content: "\f19d"; } .ion-ios-help:before { content: "\f446"; } .ion-ios-help-buoy:before { content: "\f196"; } .ion-ios-help-circle:before { content: "\f198"; } .ion-ios-help-circle-outline:before { content: "\f197"; } .ion-ios-home:before { content: "\f448"; } .ion-ios-hourglass:before { content: "\f103"; } .ion-ios-ice-cream:before { content: "\f19a"; } .ion-ios-image:before { content: "\f19c"; } .ion-ios-images:before { content: "\f19e"; } .ion-ios-infinite:before { content: "\f44a"; } .ion-ios-information:before { content: "\f44d"; } .ion-ios-information-circle:before { content: "\f1a0"; } .ion-ios-information-circle-outline:before { content: "\f19f"; } .ion-ios-jet:before { content: "\f1a5"; } .ion-ios-journal:before { content: "\f189"; } .ion-ios-key:before { content: "\f1a7"; } .ion-ios-keypad:before { content: "\f450"; } .ion-ios-laptop:before { content: "\f1a8"; } .ion-ios-leaf:before { content: "\f1aa"; } .ion-ios-link:before { content: "\f22a"; } .ion-ios-list:before { content: "\f454"; } .ion-ios-list-box:before { content: "\f143"; } .ion-ios-locate:before { content: "\f1ae"; } .ion-ios-lock:before { content: "\f1b0"; } .ion-ios-log-in:before { content: "\f1b1"; } .ion-ios-log-out:before { content: "\f1b2"; } .ion-ios-magnet:before { content: "\f1b4"; } .ion-ios-mail:before { content: "\f1b8"; } .ion-ios-mail-open:before { content: "\f1b6"; } .ion-ios-mail-unread:before { content: "\f145"; } .ion-ios-male:before { content: "\f1b9"; } .ion-ios-man:before { content: "\f1bb"; } .ion-ios-map:before { content: "\f1bd"; } .ion-ios-medal:before { content: "\f1bf"; } .ion-ios-medical:before { content: "\f45c"; } .ion-ios-medkit:before { content: "\f45e"; } .ion-ios-megaphone:before { content: "\f1c1"; } .ion-ios-menu:before { content: "\f1c3"; } .ion-ios-mic:before { content: "\f461"; } .ion-ios-mic-off:before { content: "\f45f"; } .ion-ios-microphone:before { content: "\f1c6"; } .ion-ios-moon:before { content: "\f468"; } .ion-ios-more:before { content: "\f1c8"; } .ion-ios-move:before { content: "\f1cb"; } .ion-ios-musical-note:before { content: "\f46b"; } .ion-ios-musical-notes:before { content: "\f46c"; } .ion-ios-navigate:before { content: "\f46e"; } .ion-ios-notifications:before { content: "\f1d3"; } .ion-ios-notifications-off:before { content: "\f1d1"; } .ion-ios-notifications-outline:before { content: "\f133"; } .ion-ios-nuclear:before { content: "\f1d5"; } .ion-ios-nutrition:before { content: "\f470"; } .ion-ios-open:before { content: "\f1d7"; } .ion-ios-options:before { content: "\f1d9"; } .ion-ios-outlet:before { content: "\f1db"; } .ion-ios-paper:before { content: "\f472"; } .ion-ios-paper-plane:before { content: "\f1dd"; } .ion-ios-partly-sunny:before { content: "\f1df"; } .ion-ios-pause:before { content: "\f478"; } .ion-ios-paw:before { content: "\f47a"; } .ion-ios-people:before { content: "\f47c"; } .ion-ios-person:before { content: "\f47e"; } .ion-ios-person-add:before { content: "\f1e1"; } .ion-ios-phone-landscape:before { content: "\f1e2"; } .ion-ios-phone-portrait:before { content: "\f1e3"; } .ion-ios-photos:before { content: "\f482"; } .ion-ios-pie:before { content: "\f484"; } .ion-ios-pin:before { content: "\f1e5"; } .ion-ios-pint:before { content: "\f486"; } .ion-ios-pizza:before { content: "\f1e7"; } .ion-ios-planet:before { content: "\f1eb"; } .ion-ios-play:before { content: "\f488"; } .ion-ios-play-circle:before { content: "\f113"; } .ion-ios-podium:before { content: "\f1ed"; } .ion-ios-power:before { content: "\f1ef"; } .ion-ios-pricetag:before { content: "\f48d"; } .ion-ios-pricetags:before { content: "\f48f"; } .ion-ios-print:before { content: "\f1f1"; } .ion-ios-pulse:before { content: "\f493"; } .ion-ios-qr-scanner:before { content: "\f1f3"; } .ion-ios-quote:before { content: "\f1f5"; } .ion-ios-radio:before { content: "\f1f9"; } .ion-ios-radio-button-off:before { content: "\f1f6"; } .ion-ios-radio-button-on:before { content: "\f1f7"; } .ion-ios-rainy:before { content: "\f495"; } .ion-ios-recording:before { content: "\f497"; } .ion-ios-redo:before { content: "\f499"; } .ion-ios-refresh:before { content: "\f49c"; } .ion-ios-refresh-circle:before { content: "\f135"; } .ion-ios-remove:before { content: "\f1fc"; } .ion-ios-remove-circle:before { content: "\f1fb"; } .ion-ios-remove-circle-outline:before { content: "\f1fa"; } .ion-ios-reorder:before { content: "\f1fd"; } .ion-ios-repeat:before { content: "\f1fe"; } .ion-ios-resize:before { content: "\f1ff"; } .ion-ios-restaurant:before { content: "\f201"; } .ion-ios-return-left:before { content: "\f202"; } .ion-ios-return-right:before { content: "\f203"; } .ion-ios-reverse-camera:before { content: "\f49f"; } .ion-ios-rewind:before { content: "\f4a1"; } .ion-ios-ribbon:before { content: "\f205"; } .ion-ios-rocket:before { content: "\f14b"; } .ion-ios-rose:before { content: "\f4a3"; } .ion-ios-sad:before { content: "\f207"; } .ion-ios-save:before { content: "\f1a6"; } .ion-ios-school:before { content: "\f209"; } .ion-ios-search:before { content: "\f4a5"; } .ion-ios-send:before { content: "\f20c"; } .ion-ios-settings:before { content: "\f4a7"; } .ion-ios-share:before { content: "\f211"; } .ion-ios-share-alt:before { content: "\f20f"; } .ion-ios-shirt:before { content: "\f213"; } .ion-ios-shuffle:before { content: "\f4a9"; } .ion-ios-skip-backward:before { content: "\f215"; } .ion-ios-skip-forward:before { content: "\f217"; } .ion-ios-snow:before { content: "\f218"; } .ion-ios-speedometer:before { content: "\f4b0"; } .ion-ios-square:before { content: "\f21a"; } .ion-ios-square-outline:before { content: "\f15c"; } .ion-ios-star:before { content: "\f4b3"; } .ion-ios-star-half:before { content: "\f4b1"; } .ion-ios-star-outline:before { content: "\f4b2"; } .ion-ios-stats:before { content: "\f21c"; } .ion-ios-stopwatch:before { content: "\f4b5"; } .ion-ios-subway:before { content: "\f21e"; } .ion-ios-sunny:before { content: "\f4b7"; } .ion-ios-swap:before { content: "\f21f"; } .ion-ios-switch:before { content: "\f221"; } .ion-ios-sync:before { content: "\f222"; } .ion-ios-tablet-landscape:before { content: "\f223"; } .ion-ios-tablet-portrait:before { content: "\f24e"; } .ion-ios-tennisball:before { content: "\f4bb"; } .ion-ios-text:before { content: "\f250"; } .ion-ios-thermometer:before { content: "\f252"; } .ion-ios-thumbs-down:before { content: "\f254"; } .ion-ios-thumbs-up:before { content: "\f256"; } .ion-ios-thunderstorm:before { content: "\f4bd"; } .ion-ios-time:before { content: "\f4bf"; } .ion-ios-timer:before { content: "\f4c1"; } .ion-ios-today:before { content: "\f14f"; } .ion-ios-train:before { content: "\f258"; } .ion-ios-transgender:before { content: "\f259"; } .ion-ios-trash:before { content: "\f4c5"; } .ion-ios-trending-down:before { content: "\f25a"; } .ion-ios-trending-up:before { content: "\f25b"; } .ion-ios-trophy:before { content: "\f25d"; } .ion-ios-tv:before { content: "\f115"; } .ion-ios-umbrella:before { content: "\f25f"; } .ion-ios-undo:before { content: "\f4c7"; } .ion-ios-unlock:before { content: "\f261"; } .ion-ios-videocam:before { content: "\f4cd"; } .ion-ios-volume-high:before { content: "\f11c"; } .ion-ios-volume-low:before { content: "\f11e"; } .ion-ios-volume-mute:before { content: "\f263"; } .ion-ios-volume-off:before { content: "\f264"; } .ion-ios-walk:before { content: "\f266"; } .ion-ios-wallet:before { content: "\f18b"; } .ion-ios-warning:before { content: "\f268"; } .ion-ios-watch:before { content: "\f269"; } .ion-ios-water:before { content: "\f26b"; } .ion-ios-wifi:before { content: "\f26d"; } .ion-ios-wine:before { content: "\f26f"; } .ion-ios-woman:before { content: "\f271"; } .ion-logo-android:before { content: "\f225"; } .ion-logo-angular:before { content: "\f227"; } .ion-logo-apple:before { content: "\f229"; } .ion-logo-bitbucket:before { content: "\f193"; } .ion-logo-bitcoin:before { content: "\f22b"; } .ion-logo-buffer:before { content: "\f22d"; } .ion-logo-chrome:before { content: "\f22f"; } .ion-logo-closed-captioning:before { content: "\f105"; } .ion-logo-codepen:before { content: "\f230"; } .ion-logo-css3:before { content: "\f231"; } .ion-logo-designernews:before { content: "\f232"; } .ion-logo-dribbble:before { content: "\f233"; } .ion-logo-dropbox:before { content: "\f234"; } .ion-logo-euro:before { content: "\f235"; } .ion-logo-facebook:before { content: "\f236"; } .ion-logo-flickr:before { content: "\f107"; } .ion-logo-foursquare:before { content: "\f237"; } .ion-logo-freebsd-devil:before { content: "\f238"; } .ion-logo-game-controller-a:before { content: "\f13b"; } .ion-logo-game-controller-b:before { content: "\f181"; } .ion-logo-github:before { content: "\f239"; } .ion-logo-google:before { content: "\f23a"; } .ion-logo-googleplus:before { content: "\f23b"; } .ion-logo-hackernews:before { content: "\f23c"; } .ion-logo-html5:before { content: "\f23d"; } .ion-logo-instagram:before { content: "\f23e"; } .ion-logo-ionic:before { content: "\f150"; } .ion-logo-ionitron:before { content: "\f151"; } .ion-logo-javascript:before { content: "\f23f"; } .ion-logo-linkedin:before { content: "\f240"; } .ion-logo-markdown:before { content: "\f241"; } .ion-logo-model-s:before { content: "\f153"; } .ion-logo-no-smoking:before { content: "\f109"; } .ion-logo-nodejs:before { content: "\f242"; } .ion-logo-npm:before { content: "\f195"; } .ion-logo-octocat:before { content: "\f243"; } .ion-logo-pinterest:before { content: "\f244"; } .ion-logo-playstation:before { content: "\f245"; } .ion-logo-polymer:before { content: "\f15e"; } .ion-logo-python:before { content: "\f246"; } .ion-logo-reddit:before { content: "\f247"; } .ion-logo-rss:before { content: "\f248"; } .ion-logo-sass:before { content: "\f249"; } .ion-logo-skype:before { content: "\f24a"; } .ion-logo-slack:before { content: "\f10b"; } .ion-logo-snapchat:before { content: "\f24b"; } .ion-logo-steam:before { content: "\f24c"; } .ion-logo-tumblr:before { content: "\f24d"; } .ion-logo-tux:before { content: "\f2ae"; } .ion-logo-twitch:before { content: "\f2af"; } .ion-logo-twitter:before { content: "\f2b0"; } .ion-logo-usd:before { content: "\f2b1"; } .ion-logo-vimeo:before { content: "\f2c4"; } .ion-logo-vk:before { content: "\f10d"; } .ion-logo-whatsapp:before { content: "\f2c5"; } .ion-logo-windows:before { content: "\f32f"; } .ion-logo-wordpress:before { content: "\f330"; } .ion-logo-xbox:before { content: "\f34c"; } .ion-logo-xing:before { content: "\f10f"; } .ion-logo-yahoo:before { content: "\f34d"; } .ion-logo-yen:before { content: "\f34e"; } .ion-logo-youtube:before { content: "\f34f"; } .ion-md-add:before { content: "\f273"; } .ion-md-add-circle:before { content: "\f272"; } .ion-md-add-circle-outline:before { content: "\f158"; } .ion-md-airplane:before { content: "\f15a"; } .ion-md-alarm:before { content: "\f274"; } .ion-md-albums:before { content: "\f275"; } .ion-md-alert:before { content: "\f276"; } .ion-md-american-football:before { content: "\f277"; } .ion-md-analytics:before { content: "\f278"; } .ion-md-aperture:before { content: "\f279"; } .ion-md-apps:before { content: "\f27a"; } .ion-md-appstore:before { content: "\f27b"; } .ion-md-archive:before { content: "\f27c"; } .ion-md-arrow-back:before { content: "\f27d"; } .ion-md-arrow-down:before { content: "\f27e"; } .ion-md-arrow-dropdown:before { content: "\f280"; } .ion-md-arrow-dropdown-circle:before { content: "\f27f"; } .ion-md-arrow-dropleft:before { content: "\f282"; } .ion-md-arrow-dropleft-circle:before { content: "\f281"; } .ion-md-arrow-dropright:before { content: "\f284"; } .ion-md-arrow-dropright-circle:before { content: "\f283"; } .ion-md-arrow-dropup:before { content: "\f286"; } .ion-md-arrow-dropup-circle:before { content: "\f285"; } .ion-md-arrow-forward:before { content: "\f287"; } .ion-md-arrow-round-back:before { content: "\f288"; } .ion-md-arrow-round-down:before { content: "\f289"; } .ion-md-arrow-round-forward:before { content: "\f28a"; } .ion-md-arrow-round-up:before { content: "\f28b"; } .ion-md-arrow-up:before { content: "\f28c"; } .ion-md-at:before { content: "\f28d"; } .ion-md-attach:before { content: "\f28e"; } .ion-md-backspace:before { content: "\f28f"; } .ion-md-barcode:before { content: "\f290"; } .ion-md-baseball:before { content: "\f291"; } .ion-md-basket:before { content: "\f292"; } .ion-md-basketball:before { content: "\f293"; } .ion-md-battery-charging:before { content: "\f294"; } .ion-md-battery-dead:before { content: "\f295"; } .ion-md-battery-full:before { content: "\f296"; } .ion-md-beaker:before { content: "\f297"; } .ion-md-bed:before { content: "\f160"; } .ion-md-beer:before { content: "\f298"; } .ion-md-bicycle:before { content: "\f299"; } .ion-md-bluetooth:before { content: "\f29a"; } .ion-md-boat:before { content: "\f29b"; } .ion-md-body:before { content: "\f29c"; } .ion-md-bonfire:before { content: "\f29d"; } .ion-md-book:before { content: "\f29e"; } .ion-md-bookmark:before { content: "\f29f"; } .ion-md-bookmarks:before { content: "\f2a0"; } .ion-md-bowtie:before { content: "\f2a1"; } .ion-md-briefcase:before { content: "\f2a2"; } .ion-md-browsers:before { content: "\f2a3"; } .ion-md-brush:before { content: "\f2a4"; } .ion-md-bug:before { content: "\f2a5"; } .ion-md-build:before { content: "\f2a6"; } .ion-md-bulb:before { content: "\f2a7"; } .ion-md-bus:before { content: "\f2a8"; } .ion-md-business:before { content: "\f1a4"; } .ion-md-cafe:before { content: "\f2a9"; } .ion-md-calculator:before { content: "\f2aa"; } .ion-md-calendar:before { content: "\f2ab"; } .ion-md-call:before { content: "\f2ac"; } .ion-md-camera:before { content: "\f2ad"; } .ion-md-car:before { content: "\f2b2"; } .ion-md-card:before { content: "\f2b3"; } .ion-md-cart:before { content: "\f2b4"; } .ion-md-cash:before { content: "\f2b5"; } .ion-md-cellular:before { content: "\f164"; } .ion-md-chatboxes:before { content: "\f2b6"; } .ion-md-chatbubbles:before { content: "\f2b7"; } .ion-md-checkbox:before { content: "\f2b9"; } .ion-md-checkbox-outline:before { content: "\f2b8"; } .ion-md-checkmark:before { content: "\f2bc"; } .ion-md-checkmark-circle:before { content: "\f2bb"; } .ion-md-checkmark-circle-outline:before { content: "\f2ba"; } .ion-md-clipboard:before { content: "\f2bd"; } .ion-md-clock:before { content: "\f2be"; } .ion-md-close:before { content: "\f2c0"; } .ion-md-close-circle:before { content: "\f2bf"; } .ion-md-close-circle-outline:before { content: "\f166"; } .ion-md-cloud:before { content: "\f2c9"; } .ion-md-cloud-circle:before { content: "\f2c2"; } .ion-md-cloud-done:before { content: "\f2c3"; } .ion-md-cloud-download:before { content: "\f2c6"; } .ion-md-cloud-outline:before { content: "\f2c7"; } .ion-md-cloud-upload:before { content: "\f2c8"; } .ion-md-cloudy:before { content: "\f2cb"; } .ion-md-cloudy-night:before { content: "\f2ca"; } .ion-md-code:before { content: "\f2ce"; } .ion-md-code-download:before { content: "\f2cc"; } .ion-md-code-working:before { content: "\f2cd"; } .ion-md-cog:before { content: "\f2cf"; } .ion-md-color-fill:before { content: "\f2d0"; } .ion-md-color-filter:before { content: "\f2d1"; } .ion-md-color-palette:before { content: "\f2d2"; } .ion-md-color-wand:before { content: "\f2d3"; } .ion-md-compass:before { content: "\f2d4"; } .ion-md-construct:before { content: "\f2d5"; } .ion-md-contact:before { content: "\f2d6"; } .ion-md-contacts:before { content: "\f2d7"; } .ion-md-contract:before { content: "\f2d8"; } .ion-md-contrast:before { content: "\f2d9"; } .ion-md-copy:before { content: "\f2da"; } .ion-md-create:before { content: "\f2db"; } .ion-md-crop:before { content: "\f2dc"; } .ion-md-cube:before { content: "\f2dd"; } .ion-md-cut:before { content: "\f2de"; } .ion-md-desktop:before { content: "\f2df"; } .ion-md-disc:before { content: "\f2e0"; } .ion-md-document:before { content: "\f2e1"; } .ion-md-done-all:before { content: "\f2e2"; } .ion-md-download:before { content: "\f2e3"; } .ion-md-easel:before { content: "\f2e4"; } .ion-md-egg:before { content: "\f2e5"; } .ion-md-exit:before { content: "\f2e6"; } .ion-md-expand:before { content: "\f2e7"; } .ion-md-eye:before { content: "\f2e9"; } .ion-md-eye-off:before { content: "\f2e8"; } .ion-md-fastforward:before { content: "\f2ea"; } .ion-md-female:before { content: "\f2eb"; } .ion-md-filing:before { content: "\f2ec"; } .ion-md-film:before { content: "\f2ed"; } .ion-md-finger-print:before { content: "\f2ee"; } .ion-md-fitness:before { content: "\f1ac"; } .ion-md-flag:before { content: "\f2ef"; } .ion-md-flame:before { content: "\f2f0"; } .ion-md-flash:before { content: "\f2f1"; } .ion-md-flash-off:before { content: "\f169"; } .ion-md-flashlight:before { content: "\f16b"; } .ion-md-flask:before { content: "\f2f2"; } .ion-md-flower:before { content: "\f2f3"; } .ion-md-folder:before { content: "\f2f5"; } .ion-md-folder-open:before { content: "\f2f4"; } .ion-md-football:before { content: "\f2f6"; } .ion-md-funnel:before { content: "\f2f7"; } .ion-md-gift:before { content: "\f199"; } .ion-md-git-branch:before { content: "\f2fa"; } .ion-md-git-commit:before { content: "\f2fb"; } .ion-md-git-compare:before { content: "\f2fc"; } .ion-md-git-merge:before { content: "\f2fd"; } .ion-md-git-network:before { content: "\f2fe"; } .ion-md-git-pull-request:before { content: "\f2ff"; } .ion-md-glasses:before { content: "\f300"; } .ion-md-globe:before { content: "\f301"; } .ion-md-grid:before { content: "\f302"; } .ion-md-hammer:before { content: "\f303"; } .ion-md-hand:before { content: "\f304"; } .ion-md-happy:before { content: "\f305"; } .ion-md-headset:before { content: "\f306"; } .ion-md-heart:before { content: "\f308"; } .ion-md-heart-dislike:before { content: "\f167"; } .ion-md-heart-empty:before { content: "\f1a1"; } .ion-md-heart-half:before { content: "\f1a2"; } .ion-md-help:before { content: "\f30b"; } .ion-md-help-buoy:before { content: "\f309"; } .ion-md-help-circle:before { content: "\f30a"; } .ion-md-help-circle-outline:before { content: "\f16d"; } .ion-md-home:before { content: "\f30c"; } .ion-md-hourglass:before { content: "\f111"; } .ion-md-ice-cream:before { content: "\f30d"; } .ion-md-image:before { content: "\f30e"; } .ion-md-images:before { content: "\f30f"; } .ion-md-infinite:before { content: "\f310"; } .ion-md-information:before { content: "\f312"; } .ion-md-information-circle:before { content: "\f311"; } .ion-md-information-circle-outline:before { content: "\f16f"; } .ion-md-jet:before { content: "\f315"; } .ion-md-journal:before { content: "\f18d"; } .ion-md-key:before { content: "\f316"; } .ion-md-keypad:before { content: "\f317"; } .ion-md-laptop:before { content: "\f318"; } .ion-md-leaf:before { content: "\f319"; } .ion-md-link:before { content: "\f22e"; } .ion-md-list:before { content: "\f31b"; } .ion-md-list-box:before { content: "\f31a"; } .ion-md-locate:before { content: "\f31c"; } .ion-md-lock:before { content: "\f31d"; } .ion-md-log-in:before { content: "\f31e"; } .ion-md-log-out:before { content: "\f31f"; } .ion-md-magnet:before { content: "\f320"; } .ion-md-mail:before { content: "\f322"; } .ion-md-mail-open:before { content: "\f321"; } .ion-md-mail-unread:before { content: "\f172"; } .ion-md-male:before { content: "\f323"; } .ion-md-man:before { content: "\f324"; } .ion-md-map:before { content: "\f325"; } .ion-md-medal:before { content: "\f326"; } .ion-md-medical:before { content: "\f327"; } .ion-md-medkit:before { content: "\f328"; } .ion-md-megaphone:before { content: "\f329"; } .ion-md-menu:before { content: "\f32a"; } .ion-md-mic:before { content: "\f32c"; } .ion-md-mic-off:before { content: "\f32b"; } .ion-md-microphone:before { content: "\f32d"; } .ion-md-moon:before { content: "\f32e"; } .ion-md-more:before { content: "\f1c9"; } .ion-md-move:before { content: "\f331"; } .ion-md-musical-note:before { content: "\f332"; } .ion-md-musical-notes:before { content: "\f333"; } .ion-md-navigate:before { content: "\f334"; } .ion-md-notifications:before { content: "\f338"; } .ion-md-notifications-off:before { content: "\f336"; } .ion-md-notifications-outline:before { content: "\f337"; } .ion-md-nuclear:before { content: "\f339"; } .ion-md-nutrition:before { content: "\f33a"; } .ion-md-open:before { content: "\f33b"; } .ion-md-options:before { content: "\f33c"; } .ion-md-outlet:before { content: "\f33d"; } .ion-md-paper:before { content: "\f33f"; } .ion-md-paper-plane:before { content: "\f33e"; } .ion-md-partly-sunny:before { content: "\f340"; } .ion-md-pause:before { content: "\f341"; } .ion-md-paw:before { content: "\f342"; } .ion-md-people:before { content: "\f343"; } .ion-md-person:before { content: "\f345"; } .ion-md-person-add:before { content: "\f344"; } .ion-md-phone-landscape:before { content: "\f346"; } .ion-md-phone-portrait:before { content: "\f347"; } .ion-md-photos:before { content: "\f348"; } .ion-md-pie:before { content: "\f349"; } .ion-md-pin:before { content: "\f34a"; } .ion-md-pint:before { content: "\f34b"; } .ion-md-pizza:before { content: "\f354"; } .ion-md-planet:before { content: "\f356"; } .ion-md-play:before { content: "\f357"; } .ion-md-play-circle:before { content: "\f174"; } .ion-md-podium:before { content: "\f358"; } .ion-md-power:before { content: "\f359"; } .ion-md-pricetag:before { content: "\f35a"; } .ion-md-pricetags:before { content: "\f35b"; } .ion-md-print:before { content: "\f35c"; } .ion-md-pulse:before { content: "\f35d"; } .ion-md-qr-scanner:before { content: "\f35e"; } .ion-md-quote:before { content: "\f35f"; } .ion-md-radio:before { content: "\f362"; } .ion-md-radio-button-off:before { content: "\f360"; } .ion-md-radio-button-on:before { content: "\f361"; } .ion-md-rainy:before { content: "\f363"; } .ion-md-recording:before { content: "\f364"; } .ion-md-redo:before { content: "\f365"; } .ion-md-refresh:before { content: "\f366"; } .ion-md-refresh-circle:before { content: "\f228"; } .ion-md-remove:before { content: "\f368"; } .ion-md-remove-circle:before { content: "\f367"; } .ion-md-remove-circle-outline:before { content: "\f176"; } .ion-md-reorder:before { content: "\f369"; } .ion-md-repeat:before { content: "\f36a"; } .ion-md-resize:before { content: "\f36b"; } .ion-md-restaurant:before { content: "\f36c"; } .ion-md-return-left:before { content: "\f36d"; } .ion-md-return-right:before { content: "\f36e"; } .ion-md-reverse-camera:before { content: "\f36f"; } .ion-md-rewind:before { content: "\f370"; } .ion-md-ribbon:before { content: "\f371"; } .ion-md-rocket:before { content: "\f179"; } .ion-md-rose:before { content: "\f372"; } .ion-md-sad:before { content: "\f373"; } .ion-md-save:before { content: "\f1a9"; } .ion-md-school:before { content: "\f374"; } .ion-md-search:before { content: "\f375"; } .ion-md-send:before { content: "\f376"; } .ion-md-settings:before { content: "\f377"; } .ion-md-share:before { content: "\f379"; } .ion-md-share-alt:before { content: "\f378"; } .ion-md-shirt:before { content: "\f37a"; } .ion-md-shuffle:before { content: "\f37b"; } .ion-md-skip-backward:before { content: "\f37c"; } .ion-md-skip-forward:before { content: "\f37d"; } .ion-md-snow:before { content: "\f37e"; } .ion-md-speedometer:before { content: "\f37f"; } .ion-md-square:before { content: "\f381"; } .ion-md-square-outline:before { content: "\f380"; } .ion-md-star:before { content: "\f384"; } .ion-md-star-half:before { content: "\f382"; } .ion-md-star-outline:before { content: "\f383"; } .ion-md-stats:before { content: "\f385"; } .ion-md-stopwatch:before { content: "\f386"; } .ion-md-subway:before { content: "\f387"; } .ion-md-sunny:before { content: "\f388"; } .ion-md-swap:before { content: "\f389"; } .ion-md-switch:before { content: "\f38a"; } .ion-md-sync:before { content: "\f38b"; } .ion-md-tablet-landscape:before { content: "\f38c"; } .ion-md-tablet-portrait:before { content: "\f38d"; } .ion-md-tennisball:before { content: "\f38e"; } .ion-md-text:before { content: "\f38f"; } .ion-md-thermometer:before { content: "\f390"; } .ion-md-thumbs-down:before { content: "\f391"; } .ion-md-thumbs-up:before { content: "\f392"; } .ion-md-thunderstorm:before { content: "\f393"; } .ion-md-time:before { content: "\f394"; } .ion-md-timer:before { content: "\f395"; } .ion-md-today:before { content: "\f17d"; } .ion-md-train:before { content: "\f396"; } .ion-md-transgender:before { content: "\f397"; } .ion-md-trash:before { content: "\f398"; } .ion-md-trending-down:before { content: "\f399"; } .ion-md-trending-up:before { content: "\f39a"; } .ion-md-trophy:before { content: "\f39b"; } .ion-md-tv:before { content: "\f17f"; } .ion-md-umbrella:before { content: "\f39c"; } .ion-md-undo:before { content: "\f39d"; } .ion-md-unlock:before { content: "\f39e"; } .ion-md-videocam:before { content: "\f39f"; } .ion-md-volume-high:before { content: "\f123"; } .ion-md-volume-low:before { content: "\f131"; } .ion-md-volume-mute:before { content: "\f3a1"; } .ion-md-volume-off:before { content: "\f3a2"; } .ion-md-walk:before { content: "\f3a4"; } .ion-md-wallet:before { content: "\f18f"; } .ion-md-warning:before { content: "\f3a5"; } .ion-md-watch:before { content: "\f3a6"; } .ion-md-water:before { content: "\f3a7"; } .ion-md-wifi:before { content: "\f3a8"; } .ion-md-wine:before { content: "\f3a9"; } .ion-md-woman:before { content: "\f3aa"; } PK}w\/Aipipcss/ionicons-core.min.cssnu[/*! Ionicons, v4.4.5 Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons Android-style icons originally built by Google’s Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. */.ion-ios-add:before{content:"\f102"}.ion-ios-add-circle:before{content:"\f101"}.ion-ios-add-circle-outline:before{content:"\f100"}.ion-ios-airplane:before{content:"\f137"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-alert:before{content:"\f104"}.ion-ios-american-football:before{content:"\f106"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-aperture:before{content:"\f108"}.ion-ios-apps:before{content:"\f10a"}.ion-ios-appstore:before{content:"\f10c"}.ion-ios-archive:before{content:"\f10e"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-dropdown:before{content:"\f110"}.ion-ios-arrow-dropdown-circle:before{content:"\f125"}.ion-ios-arrow-dropleft:before{content:"\f112"}.ion-ios-arrow-dropleft-circle:before{content:"\f129"}.ion-ios-arrow-dropright:before{content:"\f114"}.ion-ios-arrow-dropright-circle:before{content:"\f12b"}.ion-ios-arrow-dropup:before{content:"\f116"}.ion-ios-arrow-dropup-circle:before{content:"\f12d"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-round-back:before{content:"\f117"}.ion-ios-arrow-round-down:before{content:"\f118"}.ion-ios-arrow-round-forward:before{content:"\f119"}.ion-ios-arrow-round-up:before{content:"\f11a"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-attach:before{content:"\f11b"}.ion-ios-backspace:before{content:"\f11d"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-basket:before{content:"\f11f"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-battery-charging:before{content:"\f120"}.ion-ios-battery-dead:before{content:"\f121"}.ion-ios-battery-full:before{content:"\f122"}.ion-ios-beaker:before{content:"\f124"}.ion-ios-bed:before{content:"\f139"}.ion-ios-beer:before{content:"\f126"}.ion-ios-bicycle:before{content:"\f127"}.ion-ios-bluetooth:before{content:"\f128"}.ion-ios-boat:before{content:"\f12a"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-bonfire:before{content:"\f12c"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-bookmark:before{content:"\f12e"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bowtie:before{content:"\f130"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-brush:before{content:"\f132"}.ion-ios-bug:before{content:"\f134"}.ion-ios-build:before{content:"\f136"}.ion-ios-bulb:before{content:"\f138"}.ion-ios-bus:before{content:"\f13a"}.ion-ios-business:before{content:"\f1a3"}.ion-ios-cafe:before{content:"\f13c"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-call:before{content:"\f13e"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-car:before{content:"\f140"}.ion-ios-card:before{content:"\f142"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cash:before{content:"\f144"}.ion-ios-cellular:before{content:"\f13d"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatbubbles:before{content:"\f146"}.ion-ios-checkbox:before{content:"\f148"}.ion-ios-checkbox-outline:before{content:"\f147"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-circle:before{content:"\f14a"}.ion-ios-checkmark-circle-outline:before{content:"\f149"}.ion-ios-clipboard:before{content:"\f14c"}.ion-ios-clock:before{content:"\f403"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-circle:before{content:"\f14e"}.ion-ios-close-circle-outline:before{content:"\f14d"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-circle:before{content:"\f152"}.ion-ios-cloud-done:before{content:"\f154"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-code:before{content:"\f157"}.ion-ios-code-download:before{content:"\f155"}.ion-ios-code-working:before{content:"\f156"}.ion-ios-cog:before{content:"\f412"}.ion-ios-color-fill:before{content:"\f159"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-palette:before{content:"\f15b"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-compass:before{content:"\f15d"}.ion-ios-construct:before{content:"\f15f"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contacts:before{content:"\f161"}.ion-ios-contract:before{content:"\f162"}.ion-ios-contrast:before{content:"\f163"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-create:before{content:"\f165"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-cube:before{content:"\f168"}.ion-ios-cut:before{content:"\f16a"}.ion-ios-desktop:before{content:"\f16c"}.ion-ios-disc:before{content:"\f16e"}.ion-ios-document:before{content:"\f170"}.ion-ios-done-all:before{content:"\f171"}.ion-ios-download:before{content:"\f420"}.ion-ios-easel:before{content:"\f173"}.ion-ios-egg:before{content:"\f175"}.ion-ios-exit:before{content:"\f177"}.ion-ios-expand:before{content:"\f178"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-off:before{content:"\f17a"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-female:before{content:"\f17b"}.ion-ios-filing:before{content:"\f429"}.ion-ios-film:before{content:"\f42b"}.ion-ios-finger-print:before{content:"\f17c"}.ion-ios-fitness:before{content:"\f1ab"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flash:before{content:"\f17e"}.ion-ios-flash-off:before{content:"\f12f"}.ion-ios-flashlight:before{content:"\f141"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flower:before{content:"\f433"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-open:before{content:"\f180"}.ion-ios-football:before{content:"\f437"}.ion-ios-funnel:before{content:"\f182"}.ion-ios-gift:before{content:"\f191"}.ion-ios-git-branch:before{content:"\f183"}.ion-ios-git-commit:before{content:"\f184"}.ion-ios-git-compare:before{content:"\f185"}.ion-ios-git-merge:before{content:"\f186"}.ion-ios-git-network:before{content:"\f187"}.ion-ios-git-pull-request:before{content:"\f188"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-globe:before{content:"\f18a"}.ion-ios-grid:before{content:"\f18c"}.ion-ios-hammer:before{content:"\f18e"}.ion-ios-hand:before{content:"\f190"}.ion-ios-happy:before{content:"\f192"}.ion-ios-headset:before{content:"\f194"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-dislike:before{content:"\f13f"}.ion-ios-heart-empty:before{content:"\f19b"}.ion-ios-heart-half:before{content:"\f19d"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-buoy:before{content:"\f196"}.ion-ios-help-circle:before{content:"\f198"}.ion-ios-help-circle-outline:before{content:"\f197"}.ion-ios-home:before{content:"\f448"}.ion-ios-hourglass:before{content:"\f103"}.ion-ios-ice-cream:before{content:"\f19a"}.ion-ios-image:before{content:"\f19c"}.ion-ios-images:before{content:"\f19e"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-circle:before{content:"\f1a0"}.ion-ios-information-circle-outline:before{content:"\f19f"}.ion-ios-jet:before{content:"\f1a5"}.ion-ios-journal:before{content:"\f189"}.ion-ios-key:before{content:"\f1a7"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-laptop:before{content:"\f1a8"}.ion-ios-leaf:before{content:"\f1aa"}.ion-ios-link:before{content:"\f22a"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-box:before{content:"\f143"}.ion-ios-locate:before{content:"\f1ae"}.ion-ios-lock:before{content:"\f1b0"}.ion-ios-log-in:before{content:"\f1b1"}.ion-ios-log-out:before{content:"\f1b2"}.ion-ios-magnet:before{content:"\f1b4"}.ion-ios-mail:before{content:"\f1b8"}.ion-ios-mail-open:before{content:"\f1b6"}.ion-ios-mail-unread:before{content:"\f145"}.ion-ios-male:before{content:"\f1b9"}.ion-ios-man:before{content:"\f1bb"}.ion-ios-map:before{content:"\f1bd"}.ion-ios-medal:before{content:"\f1bf"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-megaphone:before{content:"\f1c1"}.ion-ios-menu:before{content:"\f1c3"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-microphone:before{content:"\f1c6"}.ion-ios-moon:before{content:"\f468"}.ion-ios-more:before{content:"\f1c8"}.ion-ios-move:before{content:"\f1cb"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-notifications:before{content:"\f1d3"}.ion-ios-notifications-off:before{content:"\f1d1"}.ion-ios-notifications-outline:before{content:"\f133"}.ion-ios-nuclear:before{content:"\f1d5"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-open:before{content:"\f1d7"}.ion-ios-options:before{content:"\f1d9"}.ion-ios-outlet:before{content:"\f1db"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-plane:before{content:"\f1dd"}.ion-ios-partly-sunny:before{content:"\f1df"}.ion-ios-pause:before{content:"\f478"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-people:before{content:"\f47c"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-add:before{content:"\f1e1"}.ion-ios-phone-landscape:before{content:"\f1e2"}.ion-ios-phone-portrait:before{content:"\f1e3"}.ion-ios-photos:before{content:"\f482"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pin:before{content:"\f1e5"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pizza:before{content:"\f1e7"}.ion-ios-planet:before{content:"\f1eb"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-circle:before{content:"\f113"}.ion-ios-podium:before{content:"\f1ed"}.ion-ios-power:before{content:"\f1ef"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-print:before{content:"\f1f1"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-qr-scanner:before{content:"\f1f3"}.ion-ios-quote:before{content:"\f1f5"}.ion-ios-radio:before{content:"\f1f9"}.ion-ios-radio-button-off:before{content:"\f1f6"}.ion-ios-radio-button-on:before{content:"\f1f7"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-recording:before{content:"\f497"}.ion-ios-redo:before{content:"\f499"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-circle:before{content:"\f135"}.ion-ios-remove:before{content:"\f1fc"}.ion-ios-remove-circle:before{content:"\f1fb"}.ion-ios-remove-circle-outline:before{content:"\f1fa"}.ion-ios-reorder:before{content:"\f1fd"}.ion-ios-repeat:before{content:"\f1fe"}.ion-ios-resize:before{content:"\f1ff"}.ion-ios-restaurant:before{content:"\f201"}.ion-ios-return-left:before{content:"\f202"}.ion-ios-return-right:before{content:"\f203"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-ribbon:before{content:"\f205"}.ion-ios-rocket:before{content:"\f14b"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-sad:before{content:"\f207"}.ion-ios-save:before{content:"\f1a6"}.ion-ios-school:before{content:"\f209"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-send:before{content:"\f20c"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-share:before{content:"\f211"}.ion-ios-share-alt:before{content:"\f20f"}.ion-ios-shirt:before{content:"\f213"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-skip-backward:before{content:"\f215"}.ion-ios-skip-forward:before{content:"\f217"}.ion-ios-snow:before{content:"\f218"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-square:before{content:"\f21a"}.ion-ios-square-outline:before{content:"\f15c"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stats:before{content:"\f21c"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-subway:before{content:"\f21e"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-swap:before{content:"\f21f"}.ion-ios-switch:before{content:"\f221"}.ion-ios-sync:before{content:"\f222"}.ion-ios-tablet-landscape:before{content:"\f223"}.ion-ios-tablet-portrait:before{content:"\f24e"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-text:before{content:"\f250"}.ion-ios-thermometer:before{content:"\f252"}.ion-ios-thumbs-down:before{content:"\f254"}.ion-ios-thumbs-up:before{content:"\f256"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-today:before{content:"\f14f"}.ion-ios-train:before{content:"\f258"}.ion-ios-transgender:before{content:"\f259"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trending-down:before{content:"\f25a"}.ion-ios-trending-up:before{content:"\f25b"}.ion-ios-trophy:before{content:"\f25d"}.ion-ios-tv:before{content:"\f115"}.ion-ios-umbrella:before{content:"\f25f"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-unlock:before{content:"\f261"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-volume-high:before{content:"\f11c"}.ion-ios-volume-low:before{content:"\f11e"}.ion-ios-volume-mute:before{content:"\f263"}.ion-ios-volume-off:before{content:"\f264"}.ion-ios-walk:before{content:"\f266"}.ion-ios-wallet:before{content:"\f18b"}.ion-ios-warning:before{content:"\f268"}.ion-ios-watch:before{content:"\f269"}.ion-ios-water:before{content:"\f26b"}.ion-ios-wifi:before{content:"\f26d"}.ion-ios-wine:before{content:"\f26f"}.ion-ios-woman:before{content:"\f271"}.ion-logo-android:before{content:"\f225"}.ion-logo-angular:before{content:"\f227"}.ion-logo-apple:before{content:"\f229"}.ion-logo-bitbucket:before{content:"\f193"}.ion-logo-bitcoin:before{content:"\f22b"}.ion-logo-buffer:before{content:"\f22d"}.ion-logo-chrome:before{content:"\f22f"}.ion-logo-closed-captioning:before{content:"\f105"}.ion-logo-codepen:before{content:"\f230"}.ion-logo-css3:before{content:"\f231"}.ion-logo-designernews:before{content:"\f232"}.ion-logo-dribbble:before{content:"\f233"}.ion-logo-dropbox:before{content:"\f234"}.ion-logo-euro:before{content:"\f235"}.ion-logo-facebook:before{content:"\f236"}.ion-logo-flickr:before{content:"\f107"}.ion-logo-foursquare:before{content:"\f237"}.ion-logo-freebsd-devil:before{content:"\f238"}.ion-logo-game-controller-a:before{content:"\f13b"}.ion-logo-game-controller-b:before{content:"\f181"}.ion-logo-github:before{content:"\f239"}.ion-logo-google:before{content:"\f23a"}.ion-logo-googleplus:before{content:"\f23b"}.ion-logo-hackernews:before{content:"\f23c"}.ion-logo-html5:before{content:"\f23d"}.ion-logo-instagram:before{content:"\f23e"}.ion-logo-ionic:before{content:"\f150"}.ion-logo-ionitron:before{content:"\f151"}.ion-logo-javascript:before{content:"\f23f"}.ion-logo-linkedin:before{content:"\f240"}.ion-logo-markdown:before{content:"\f241"}.ion-logo-model-s:before{content:"\f153"}.ion-logo-no-smoking:before{content:"\f109"}.ion-logo-nodejs:before{content:"\f242"}.ion-logo-npm:before{content:"\f195"}.ion-logo-octocat:before{content:"\f243"}.ion-logo-pinterest:before{content:"\f244"}.ion-logo-playstation:before{content:"\f245"}.ion-logo-polymer:before{content:"\f15e"}.ion-logo-python:before{content:"\f246"}.ion-logo-reddit:before{content:"\f247"}.ion-logo-rss:before{content:"\f248"}.ion-logo-sass:before{content:"\f249"}.ion-logo-skype:before{content:"\f24a"}.ion-logo-slack:before{content:"\f10b"}.ion-logo-snapchat:before{content:"\f24b"}.ion-logo-steam:before{content:"\f24c"}.ion-logo-tumblr:before{content:"\f24d"}.ion-logo-tux:before{content:"\f2ae"}.ion-logo-twitch:before{content:"\f2af"}.ion-logo-twitter:before{content:"\f2b0"}.ion-logo-usd:before{content:"\f2b1"}.ion-logo-vimeo:before{content:"\f2c4"}.ion-logo-vk:before{content:"\f10d"}.ion-logo-whatsapp:before{content:"\f2c5"}.ion-logo-windows:before{content:"\f32f"}.ion-logo-wordpress:before{content:"\f330"}.ion-logo-xbox:before{content:"\f34c"}.ion-logo-xing:before{content:"\f10f"}.ion-logo-yahoo:before{content:"\f34d"}.ion-logo-yen:before{content:"\f34e"}.ion-logo-youtube:before{content:"\f34f"}.ion-md-add:before{content:"\f273"}.ion-md-add-circle:before{content:"\f272"}.ion-md-add-circle-outline:before{content:"\f158"}.ion-md-airplane:before{content:"\f15a"}.ion-md-alarm:before{content:"\f274"}.ion-md-albums:before{content:"\f275"}.ion-md-alert:before{content:"\f276"}.ion-md-american-football:before{content:"\f277"}.ion-md-analytics:before{content:"\f278"}.ion-md-aperture:before{content:"\f279"}.ion-md-apps:before{content:"\f27a"}.ion-md-appstore:before{content:"\f27b"}.ion-md-archive:before{content:"\f27c"}.ion-md-arrow-back:before{content:"\f27d"}.ion-md-arrow-down:before{content:"\f27e"}.ion-md-arrow-dropdown:before{content:"\f280"}.ion-md-arrow-dropdown-circle:before{content:"\f27f"}.ion-md-arrow-dropleft:before{content:"\f282"}.ion-md-arrow-dropleft-circle:before{content:"\f281"}.ion-md-arrow-dropright:before{content:"\f284"}.ion-md-arrow-dropright-circle:before{content:"\f283"}.ion-md-arrow-dropup:before{content:"\f286"}.ion-md-arrow-dropup-circle:before{content:"\f285"}.ion-md-arrow-forward:before{content:"\f287"}.ion-md-arrow-round-back:before{content:"\f288"}.ion-md-arrow-round-down:before{content:"\f289"}.ion-md-arrow-round-forward:before{content:"\f28a"}.ion-md-arrow-round-up:before{content:"\f28b"}.ion-md-arrow-up:before{content:"\f28c"}.ion-md-at:before{content:"\f28d"}.ion-md-attach:before{content:"\f28e"}.ion-md-backspace:before{content:"\f28f"}.ion-md-barcode:before{content:"\f290"}.ion-md-baseball:before{content:"\f291"}.ion-md-basket:before{content:"\f292"}.ion-md-basketball:before{content:"\f293"}.ion-md-battery-charging:before{content:"\f294"}.ion-md-battery-dead:before{content:"\f295"}.ion-md-battery-full:before{content:"\f296"}.ion-md-beaker:before{content:"\f297"}.ion-md-bed:before{content:"\f160"}.ion-md-beer:before{content:"\f298"}.ion-md-bicycle:before{content:"\f299"}.ion-md-bluetooth:before{content:"\f29a"}.ion-md-boat:before{content:"\f29b"}.ion-md-body:before{content:"\f29c"}.ion-md-bonfire:before{content:"\f29d"}.ion-md-book:before{content:"\f29e"}.ion-md-bookmark:before{content:"\f29f"}.ion-md-bookmarks:before{content:"\f2a0"}.ion-md-bowtie:before{content:"\f2a1"}.ion-md-briefcase:before{content:"\f2a2"}.ion-md-browsers:before{content:"\f2a3"}.ion-md-brush:before{content:"\f2a4"}.ion-md-bug:before{content:"\f2a5"}.ion-md-build:before{content:"\f2a6"}.ion-md-bulb:before{content:"\f2a7"}.ion-md-bus:before{content:"\f2a8"}.ion-md-business:before{content:"\f1a4"}.ion-md-cafe:before{content:"\f2a9"}.ion-md-calculator:before{content:"\f2aa"}.ion-md-calendar:before{content:"\f2ab"}.ion-md-call:before{content:"\f2ac"}.ion-md-camera:before{content:"\f2ad"}.ion-md-car:before{content:"\f2b2"}.ion-md-card:before{content:"\f2b3"}.ion-md-cart:before{content:"\f2b4"}.ion-md-cash:before{content:"\f2b5"}.ion-md-cellular:before{content:"\f164"}.ion-md-chatboxes:before{content:"\f2b6"}.ion-md-chatbubbles:before{content:"\f2b7"}.ion-md-checkbox:before{content:"\f2b9"}.ion-md-checkbox-outline:before{content:"\f2b8"}.ion-md-checkmark:before{content:"\f2bc"}.ion-md-checkmark-circle:before{content:"\f2bb"}.ion-md-checkmark-circle-outline:before{content:"\f2ba"}.ion-md-clipboard:before{content:"\f2bd"}.ion-md-clock:before{content:"\f2be"}.ion-md-close:before{content:"\f2c0"}.ion-md-close-circle:before{content:"\f2bf"}.ion-md-close-circle-outline:before{content:"\f166"}.ion-md-cloud:before{content:"\f2c9"}.ion-md-cloud-circle:before{content:"\f2c2"}.ion-md-cloud-done:before{content:"\f2c3"}.ion-md-cloud-download:before{content:"\f2c6"}.ion-md-cloud-outline:before{content:"\f2c7"}.ion-md-cloud-upload:before{content:"\f2c8"}.ion-md-cloudy:before{content:"\f2cb"}.ion-md-cloudy-night:before{content:"\f2ca"}.ion-md-code:before{content:"\f2ce"}.ion-md-code-download:before{content:"\f2cc"}.ion-md-code-working:before{content:"\f2cd"}.ion-md-cog:before{content:"\f2cf"}.ion-md-color-fill:before{content:"\f2d0"}.ion-md-color-filter:before{content:"\f2d1"}.ion-md-color-palette:before{content:"\f2d2"}.ion-md-color-wand:before{content:"\f2d3"}.ion-md-compass:before{content:"\f2d4"}.ion-md-construct:before{content:"\f2d5"}.ion-md-contact:before{content:"\f2d6"}.ion-md-contacts:before{content:"\f2d7"}.ion-md-contract:before{content:"\f2d8"}.ion-md-contrast:before{content:"\f2d9"}.ion-md-copy:before{content:"\f2da"}.ion-md-create:before{content:"\f2db"}.ion-md-crop:before{content:"\f2dc"}.ion-md-cube:before{content:"\f2dd"}.ion-md-cut:before{content:"\f2de"}.ion-md-desktop:before{content:"\f2df"}.ion-md-disc:before{content:"\f2e0"}.ion-md-document:before{content:"\f2e1"}.ion-md-done-all:before{content:"\f2e2"}.ion-md-download:before{content:"\f2e3"}.ion-md-easel:before{content:"\f2e4"}.ion-md-egg:before{content:"\f2e5"}.ion-md-exit:before{content:"\f2e6"}.ion-md-expand:before{content:"\f2e7"}.ion-md-eye:before{content:"\f2e9"}.ion-md-eye-off:before{content:"\f2e8"}.ion-md-fastforward:before{content:"\f2ea"}.ion-md-female:before{content:"\f2eb"}.ion-md-filing:before{content:"\f2ec"}.ion-md-film:before{content:"\f2ed"}.ion-md-finger-print:before{content:"\f2ee"}.ion-md-fitness:before{content:"\f1ac"}.ion-md-flag:before{content:"\f2ef"}.ion-md-flame:before{content:"\f2f0"}.ion-md-flash:before{content:"\f2f1"}.ion-md-flash-off:before{content:"\f169"}.ion-md-flashlight:before{content:"\f16b"}.ion-md-flask:before{content:"\f2f2"}.ion-md-flower:before{content:"\f2f3"}.ion-md-folder:before{content:"\f2f5"}.ion-md-folder-open:before{content:"\f2f4"}.ion-md-football:before{content:"\f2f6"}.ion-md-funnel:before{content:"\f2f7"}.ion-md-gift:before{content:"\f199"}.ion-md-git-branch:before{content:"\f2fa"}.ion-md-git-commit:before{content:"\f2fb"}.ion-md-git-compare:before{content:"\f2fc"}.ion-md-git-merge:before{content:"\f2fd"}.ion-md-git-network:before{content:"\f2fe"}.ion-md-git-pull-request:before{content:"\f2ff"}.ion-md-glasses:before{content:"\f300"}.ion-md-globe:before{content:"\f301"}.ion-md-grid:before{content:"\f302"}.ion-md-hammer:before{content:"\f303"}.ion-md-hand:before{content:"\f304"}.ion-md-happy:before{content:"\f305"}.ion-md-headset:before{content:"\f306"}.ion-md-heart:before{content:"\f308"}.ion-md-heart-dislike:before{content:"\f167"}.ion-md-heart-empty:before{content:"\f1a1"}.ion-md-heart-half:before{content:"\f1a2"}.ion-md-help:before{content:"\f30b"}.ion-md-help-buoy:before{content:"\f309"}.ion-md-help-circle:before{content:"\f30a"}.ion-md-help-circle-outline:before{content:"\f16d"}.ion-md-home:before{content:"\f30c"}.ion-md-hourglass:before{content:"\f111"}.ion-md-ice-cream:before{content:"\f30d"}.ion-md-image:before{content:"\f30e"}.ion-md-images:before{content:"\f30f"}.ion-md-infinite:before{content:"\f310"}.ion-md-information:before{content:"\f312"}.ion-md-information-circle:before{content:"\f311"}.ion-md-information-circle-outline:before{content:"\f16f"}.ion-md-jet:before{content:"\f315"}.ion-md-journal:before{content:"\f18d"}.ion-md-key:before{content:"\f316"}.ion-md-keypad:before{content:"\f317"}.ion-md-laptop:before{content:"\f318"}.ion-md-leaf:before{content:"\f319"}.ion-md-link:before{content:"\f22e"}.ion-md-list:before{content:"\f31b"}.ion-md-list-box:before{content:"\f31a"}.ion-md-locate:before{content:"\f31c"}.ion-md-lock:before{content:"\f31d"}.ion-md-log-in:before{content:"\f31e"}.ion-md-log-out:before{content:"\f31f"}.ion-md-magnet:before{content:"\f320"}.ion-md-mail:before{content:"\f322"}.ion-md-mail-open:before{content:"\f321"}.ion-md-mail-unread:before{content:"\f172"}.ion-md-male:before{content:"\f323"}.ion-md-man:before{content:"\f324"}.ion-md-map:before{content:"\f325"}.ion-md-medal:before{content:"\f326"}.ion-md-medical:before{content:"\f327"}.ion-md-medkit:before{content:"\f328"}.ion-md-megaphone:before{content:"\f329"}.ion-md-menu:before{content:"\f32a"}.ion-md-mic:before{content:"\f32c"}.ion-md-mic-off:before{content:"\f32b"}.ion-md-microphone:before{content:"\f32d"}.ion-md-moon:before{content:"\f32e"}.ion-md-more:before{content:"\f1c9"}.ion-md-move:before{content:"\f331"}.ion-md-musical-note:before{content:"\f332"}.ion-md-musical-notes:before{content:"\f333"}.ion-md-navigate:before{content:"\f334"}.ion-md-notifications:before{content:"\f338"}.ion-md-notifications-off:before{content:"\f336"}.ion-md-notifications-outline:before{content:"\f337"}.ion-md-nuclear:before{content:"\f339"}.ion-md-nutrition:before{content:"\f33a"}.ion-md-open:before{content:"\f33b"}.ion-md-options:before{content:"\f33c"}.ion-md-outlet:before{content:"\f33d"}.ion-md-paper:before{content:"\f33f"}.ion-md-paper-plane:before{content:"\f33e"}.ion-md-partly-sunny:before{content:"\f340"}.ion-md-pause:before{content:"\f341"}.ion-md-paw:before{content:"\f342"}.ion-md-people:before{content:"\f343"}.ion-md-person:before{content:"\f345"}.ion-md-person-add:before{content:"\f344"}.ion-md-phone-landscape:before{content:"\f346"}.ion-md-phone-portrait:before{content:"\f347"}.ion-md-photos:before{content:"\f348"}.ion-md-pie:before{content:"\f349"}.ion-md-pin:before{content:"\f34a"}.ion-md-pint:before{content:"\f34b"}.ion-md-pizza:before{content:"\f354"}.ion-md-planet:before{content:"\f356"}.ion-md-play:before{content:"\f357"}.ion-md-play-circle:before{content:"\f174"}.ion-md-podium:before{content:"\f358"}.ion-md-power:before{content:"\f359"}.ion-md-pricetag:before{content:"\f35a"}.ion-md-pricetags:before{content:"\f35b"}.ion-md-print:before{content:"\f35c"}.ion-md-pulse:before{content:"\f35d"}.ion-md-qr-scanner:before{content:"\f35e"}.ion-md-quote:before{content:"\f35f"}.ion-md-radio:before{content:"\f362"}.ion-md-radio-button-off:before{content:"\f360"}.ion-md-radio-button-on:before{content:"\f361"}.ion-md-rainy:before{content:"\f363"}.ion-md-recording:before{content:"\f364"}.ion-md-redo:before{content:"\f365"}.ion-md-refresh:before{content:"\f366"}.ion-md-refresh-circle:before{content:"\f228"}.ion-md-remove:before{content:"\f368"}.ion-md-remove-circle:before{content:"\f367"}.ion-md-remove-circle-outline:before{content:"\f176"}.ion-md-reorder:before{content:"\f369"}.ion-md-repeat:before{content:"\f36a"}.ion-md-resize:before{content:"\f36b"}.ion-md-restaurant:before{content:"\f36c"}.ion-md-return-left:before{content:"\f36d"}.ion-md-return-right:before{content:"\f36e"}.ion-md-reverse-camera:before{content:"\f36f"}.ion-md-rewind:before{content:"\f370"}.ion-md-ribbon:before{content:"\f371"}.ion-md-rocket:before{content:"\f179"}.ion-md-rose:before{content:"\f372"}.ion-md-sad:before{content:"\f373"}.ion-md-save:before{content:"\f1a9"}.ion-md-school:before{content:"\f374"}.ion-md-search:before{content:"\f375"}.ion-md-send:before{content:"\f376"}.ion-md-settings:before{content:"\f377"}.ion-md-share:before{content:"\f379"}.ion-md-share-alt:before{content:"\f378"}.ion-md-shirt:before{content:"\f37a"}.ion-md-shuffle:before{content:"\f37b"}.ion-md-skip-backward:before{content:"\f37c"}.ion-md-skip-forward:before{content:"\f37d"}.ion-md-snow:before{content:"\f37e"}.ion-md-speedometer:before{content:"\f37f"}.ion-md-square:before{content:"\f381"}.ion-md-square-outline:before{content:"\f380"}.ion-md-star:before{content:"\f384"}.ion-md-star-half:before{content:"\f382"}.ion-md-star-outline:before{content:"\f383"}.ion-md-stats:before{content:"\f385"}.ion-md-stopwatch:before{content:"\f386"}.ion-md-subway:before{content:"\f387"}.ion-md-sunny:before{content:"\f388"}.ion-md-swap:before{content:"\f389"}.ion-md-switch:before{content:"\f38a"}.ion-md-sync:before{content:"\f38b"}.ion-md-tablet-landscape:before{content:"\f38c"}.ion-md-tablet-portrait:before{content:"\f38d"}.ion-md-tennisball:before{content:"\f38e"}.ion-md-text:before{content:"\f38f"}.ion-md-thermometer:before{content:"\f390"}.ion-md-thumbs-down:before{content:"\f391"}.ion-md-thumbs-up:before{content:"\f392"}.ion-md-thunderstorm:before{content:"\f393"}.ion-md-time:before{content:"\f394"}.ion-md-timer:before{content:"\f395"}.ion-md-today:before{content:"\f17d"}.ion-md-train:before{content:"\f396"}.ion-md-transgender:before{content:"\f397"}.ion-md-trash:before{content:"\f398"}.ion-md-trending-down:before{content:"\f399"}.ion-md-trending-up:before{content:"\f39a"}.ion-md-trophy:before{content:"\f39b"}.ion-md-tv:before{content:"\f17f"}.ion-md-umbrella:before{content:"\f39c"}.ion-md-undo:before{content:"\f39d"}.ion-md-unlock:before{content:"\f39e"}.ion-md-videocam:before{content:"\f39f"}.ion-md-volume-high:before{content:"\f123"}.ion-md-volume-low:before{content:"\f131"}.ion-md-volume-mute:before{content:"\f3a1"}.ion-md-volume-off:before{content:"\f3a2"}.ion-md-walk:before{content:"\f3a4"}.ion-md-wallet:before{content:"\f18f"}.ion-md-warning:before{content:"\f3a5"}.ion-md-watch:before{content:"\f3a6"}.ion-md-water:before{content:"\f3a7"}.ion-md-wifi:before{content:"\f3a8"}.ion-md-wine:before{content:"\f3a9"}.ion-md-woman:before{content:"\f3aa"} PK}w\K7ϓϓcss/ionicons-core.cssnu[@charset "UTF-8"; /*! Ionicons, v4.4.5 Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons Android-style icons originally built by Google’s Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. */ .ion-ios-add:before { content: "\f102"; } .ion-ios-add-circle:before { content: "\f101"; } .ion-ios-add-circle-outline:before { content: "\f100"; } .ion-ios-airplane:before { content: "\f137"; } .ion-ios-alarm:before { content: "\f3c8"; } .ion-ios-albums:before { content: "\f3ca"; } .ion-ios-alert:before { content: "\f104"; } .ion-ios-american-football:before { content: "\f106"; } .ion-ios-analytics:before { content: "\f3ce"; } .ion-ios-aperture:before { content: "\f108"; } .ion-ios-apps:before { content: "\f10a"; } .ion-ios-appstore:before { content: "\f10c"; } .ion-ios-archive:before { content: "\f10e"; } .ion-ios-arrow-back:before { content: "\f3cf"; } .ion-ios-arrow-down:before { content: "\f3d0"; } .ion-ios-arrow-dropdown:before { content: "\f110"; } .ion-ios-arrow-dropdown-circle:before { content: "\f125"; } .ion-ios-arrow-dropleft:before { content: "\f112"; } .ion-ios-arrow-dropleft-circle:before { content: "\f129"; } .ion-ios-arrow-dropright:before { content: "\f114"; } .ion-ios-arrow-dropright-circle:before { content: "\f12b"; } .ion-ios-arrow-dropup:before { content: "\f116"; } .ion-ios-arrow-dropup-circle:before { content: "\f12d"; } .ion-ios-arrow-forward:before { content: "\f3d1"; } .ion-ios-arrow-round-back:before { content: "\f117"; } .ion-ios-arrow-round-down:before { content: "\f118"; } .ion-ios-arrow-round-forward:before { content: "\f119"; } .ion-ios-arrow-round-up:before { content: "\f11a"; } .ion-ios-arrow-up:before { content: "\f3d8"; } .ion-ios-at:before { content: "\f3da"; } .ion-ios-attach:before { content: "\f11b"; } .ion-ios-backspace:before { content: "\f11d"; } .ion-ios-barcode:before { content: "\f3dc"; } .ion-ios-baseball:before { content: "\f3de"; } .ion-ios-basket:before { content: "\f11f"; } .ion-ios-basketball:before { content: "\f3e0"; } .ion-ios-battery-charging:before { content: "\f120"; } .ion-ios-battery-dead:before { content: "\f121"; } .ion-ios-battery-full:before { content: "\f122"; } .ion-ios-beaker:before { content: "\f124"; } .ion-ios-bed:before { content: "\f139"; } .ion-ios-beer:before { content: "\f126"; } .ion-ios-bicycle:before { content: "\f127"; } .ion-ios-bluetooth:before { content: "\f128"; } .ion-ios-boat:before { content: "\f12a"; } .ion-ios-body:before { content: "\f3e4"; } .ion-ios-bonfire:before { content: "\f12c"; } .ion-ios-book:before { content: "\f3e8"; } .ion-ios-bookmark:before { content: "\f12e"; } .ion-ios-bookmarks:before { content: "\f3ea"; } .ion-ios-bowtie:before { content: "\f130"; } .ion-ios-briefcase:before { content: "\f3ee"; } .ion-ios-browsers:before { content: "\f3f0"; } .ion-ios-brush:before { content: "\f132"; } .ion-ios-bug:before { content: "\f134"; } .ion-ios-build:before { content: "\f136"; } .ion-ios-bulb:before { content: "\f138"; } .ion-ios-bus:before { content: "\f13a"; } .ion-ios-business:before { content: "\f1a3"; } .ion-ios-cafe:before { content: "\f13c"; } .ion-ios-calculator:before { content: "\f3f2"; } .ion-ios-calendar:before { content: "\f3f4"; } .ion-ios-call:before { content: "\f13e"; } .ion-ios-camera:before { content: "\f3f6"; } .ion-ios-car:before { content: "\f140"; } .ion-ios-card:before { content: "\f142"; } .ion-ios-cart:before { content: "\f3f8"; } .ion-ios-cash:before { content: "\f144"; } .ion-ios-cellular:before { content: "\f13d"; } .ion-ios-chatboxes:before { content: "\f3fa"; } .ion-ios-chatbubbles:before { content: "\f146"; } .ion-ios-checkbox:before { content: "\f148"; } .ion-ios-checkbox-outline:before { content: "\f147"; } .ion-ios-checkmark:before { content: "\f3ff"; } .ion-ios-checkmark-circle:before { content: "\f14a"; } .ion-ios-checkmark-circle-outline:before { content: "\f149"; } .ion-ios-clipboard:before { content: "\f14c"; } .ion-ios-clock:before { content: "\f403"; } .ion-ios-close:before { content: "\f406"; } .ion-ios-close-circle:before { content: "\f14e"; } .ion-ios-close-circle-outline:before { content: "\f14d"; } .ion-ios-cloud:before { content: "\f40c"; } .ion-ios-cloud-circle:before { content: "\f152"; } .ion-ios-cloud-done:before { content: "\f154"; } .ion-ios-cloud-download:before { content: "\f408"; } .ion-ios-cloud-outline:before { content: "\f409"; } .ion-ios-cloud-upload:before { content: "\f40b"; } .ion-ios-cloudy:before { content: "\f410"; } .ion-ios-cloudy-night:before { content: "\f40e"; } .ion-ios-code:before { content: "\f157"; } .ion-ios-code-download:before { content: "\f155"; } .ion-ios-code-working:before { content: "\f156"; } .ion-ios-cog:before { content: "\f412"; } .ion-ios-color-fill:before { content: "\f159"; } .ion-ios-color-filter:before { content: "\f414"; } .ion-ios-color-palette:before { content: "\f15b"; } .ion-ios-color-wand:before { content: "\f416"; } .ion-ios-compass:before { content: "\f15d"; } .ion-ios-construct:before { content: "\f15f"; } .ion-ios-contact:before { content: "\f41a"; } .ion-ios-contacts:before { content: "\f161"; } .ion-ios-contract:before { content: "\f162"; } .ion-ios-contrast:before { content: "\f163"; } .ion-ios-copy:before { content: "\f41c"; } .ion-ios-create:before { content: "\f165"; } .ion-ios-crop:before { content: "\f41e"; } .ion-ios-cube:before { content: "\f168"; } .ion-ios-cut:before { content: "\f16a"; } .ion-ios-desktop:before { content: "\f16c"; } .ion-ios-disc:before { content: "\f16e"; } .ion-ios-document:before { content: "\f170"; } .ion-ios-done-all:before { content: "\f171"; } .ion-ios-download:before { content: "\f420"; } .ion-ios-easel:before { content: "\f173"; } .ion-ios-egg:before { content: "\f175"; } .ion-ios-exit:before { content: "\f177"; } .ion-ios-expand:before { content: "\f178"; } .ion-ios-eye:before { content: "\f425"; } .ion-ios-eye-off:before { content: "\f17a"; } .ion-ios-fastforward:before { content: "\f427"; } .ion-ios-female:before { content: "\f17b"; } .ion-ios-filing:before { content: "\f429"; } .ion-ios-film:before { content: "\f42b"; } .ion-ios-finger-print:before { content: "\f17c"; } .ion-ios-fitness:before { content: "\f1ab"; } .ion-ios-flag:before { content: "\f42d"; } .ion-ios-flame:before { content: "\f42f"; } .ion-ios-flash:before { content: "\f17e"; } .ion-ios-flash-off:before { content: "\f12f"; } .ion-ios-flashlight:before { content: "\f141"; } .ion-ios-flask:before { content: "\f431"; } .ion-ios-flower:before { content: "\f433"; } .ion-ios-folder:before { content: "\f435"; } .ion-ios-folder-open:before { content: "\f180"; } .ion-ios-football:before { content: "\f437"; } .ion-ios-funnel:before { content: "\f182"; } .ion-ios-gift:before { content: "\f191"; } .ion-ios-git-branch:before { content: "\f183"; } .ion-ios-git-commit:before { content: "\f184"; } .ion-ios-git-compare:before { content: "\f185"; } .ion-ios-git-merge:before { content: "\f186"; } .ion-ios-git-network:before { content: "\f187"; } .ion-ios-git-pull-request:before { content: "\f188"; } .ion-ios-glasses:before { content: "\f43f"; } .ion-ios-globe:before { content: "\f18a"; } .ion-ios-grid:before { content: "\f18c"; } .ion-ios-hammer:before { content: "\f18e"; } .ion-ios-hand:before { content: "\f190"; } .ion-ios-happy:before { content: "\f192"; } .ion-ios-headset:before { content: "\f194"; } .ion-ios-heart:before { content: "\f443"; } .ion-ios-heart-dislike:before { content: "\f13f"; } .ion-ios-heart-empty:before { content: "\f19b"; } .ion-ios-heart-half:before { content: "\f19d"; } .ion-ios-help:before { content: "\f446"; } .ion-ios-help-buoy:before { content: "\f196"; } .ion-ios-help-circle:before { content: "\f198"; } .ion-ios-help-circle-outline:before { content: "\f197"; } .ion-ios-home:before { content: "\f448"; } .ion-ios-hourglass:before { content: "\f103"; } .ion-ios-ice-cream:before { content: "\f19a"; } .ion-ios-image:before { content: "\f19c"; } .ion-ios-images:before { content: "\f19e"; } .ion-ios-infinite:before { content: "\f44a"; } .ion-ios-information:before { content: "\f44d"; } .ion-ios-information-circle:before { content: "\f1a0"; } .ion-ios-information-circle-outline:before { content: "\f19f"; } .ion-ios-jet:before { content: "\f1a5"; } .ion-ios-journal:before { content: "\f189"; } .ion-ios-key:before { content: "\f1a7"; } .ion-ios-keypad:before { content: "\f450"; } .ion-ios-laptop:before { content: "\f1a8"; } .ion-ios-leaf:before { content: "\f1aa"; } .ion-ios-link:before { content: "\f22a"; } .ion-ios-list:before { content: "\f454"; } .ion-ios-list-box:before { content: "\f143"; } .ion-ios-locate:before { content: "\f1ae"; } .ion-ios-lock:before { content: "\f1b0"; } .ion-ios-log-in:before { content: "\f1b1"; } .ion-ios-log-out:before { content: "\f1b2"; } .ion-ios-magnet:before { content: "\f1b4"; } .ion-ios-mail:before { content: "\f1b8"; } .ion-ios-mail-open:before { content: "\f1b6"; } .ion-ios-mail-unread:before { content: "\f145"; } .ion-ios-male:before { content: "\f1b9"; } .ion-ios-man:before { content: "\f1bb"; } .ion-ios-map:before { content: "\f1bd"; } .ion-ios-medal:before { content: "\f1bf"; } .ion-ios-medical:before { content: "\f45c"; } .ion-ios-medkit:before { content: "\f45e"; } .ion-ios-megaphone:before { content: "\f1c1"; } .ion-ios-menu:before { content: "\f1c3"; } .ion-ios-mic:before { content: "\f461"; } .ion-ios-mic-off:before { content: "\f45f"; } .ion-ios-microphone:before { content: "\f1c6"; } .ion-ios-moon:before { content: "\f468"; } .ion-ios-more:before { content: "\f1c8"; } .ion-ios-move:before { content: "\f1cb"; } .ion-ios-musical-note:before { content: "\f46b"; } .ion-ios-musical-notes:before { content: "\f46c"; } .ion-ios-navigate:before { content: "\f46e"; } .ion-ios-notifications:before { content: "\f1d3"; } .ion-ios-notifications-off:before { content: "\f1d1"; } .ion-ios-notifications-outline:before { content: "\f133"; } .ion-ios-nuclear:before { content: "\f1d5"; } .ion-ios-nutrition:before { content: "\f470"; } .ion-ios-open:before { content: "\f1d7"; } .ion-ios-options:before { content: "\f1d9"; } .ion-ios-outlet:before { content: "\f1db"; } .ion-ios-paper:before { content: "\f472"; } .ion-ios-paper-plane:before { content: "\f1dd"; } .ion-ios-partly-sunny:before { content: "\f1df"; } .ion-ios-pause:before { content: "\f478"; } .ion-ios-paw:before { content: "\f47a"; } .ion-ios-people:before { content: "\f47c"; } .ion-ios-person:before { content: "\f47e"; } .ion-ios-person-add:before { content: "\f1e1"; } .ion-ios-phone-landscape:before { content: "\f1e2"; } .ion-ios-phone-portrait:before { content: "\f1e3"; } .ion-ios-photos:before { content: "\f482"; } .ion-ios-pie:before { content: "\f484"; } .ion-ios-pin:before { content: "\f1e5"; } .ion-ios-pint:before { content: "\f486"; } .ion-ios-pizza:before { content: "\f1e7"; } .ion-ios-planet:before { content: "\f1eb"; } .ion-ios-play:before { content: "\f488"; } .ion-ios-play-circle:before { content: "\f113"; } .ion-ios-podium:before { content: "\f1ed"; } .ion-ios-power:before { content: "\f1ef"; } .ion-ios-pricetag:before { content: "\f48d"; } .ion-ios-pricetags:before { content: "\f48f"; } .ion-ios-print:before { content: "\f1f1"; } .ion-ios-pulse:before { content: "\f493"; } .ion-ios-qr-scanner:before { content: "\f1f3"; } .ion-ios-quote:before { content: "\f1f5"; } .ion-ios-radio:before { content: "\f1f9"; } .ion-ios-radio-button-off:before { content: "\f1f6"; } .ion-ios-radio-button-on:before { content: "\f1f7"; } .ion-ios-rainy:before { content: "\f495"; } .ion-ios-recording:before { content: "\f497"; } .ion-ios-redo:before { content: "\f499"; } .ion-ios-refresh:before { content: "\f49c"; } .ion-ios-refresh-circle:before { content: "\f135"; } .ion-ios-remove:before { content: "\f1fc"; } .ion-ios-remove-circle:before { content: "\f1fb"; } .ion-ios-remove-circle-outline:before { content: "\f1fa"; } .ion-ios-reorder:before { content: "\f1fd"; } .ion-ios-repeat:before { content: "\f1fe"; } .ion-ios-resize:before { content: "\f1ff"; } .ion-ios-restaurant:before { content: "\f201"; } .ion-ios-return-left:before { content: "\f202"; } .ion-ios-return-right:before { content: "\f203"; } .ion-ios-reverse-camera:before { content: "\f49f"; } .ion-ios-rewind:before { content: "\f4a1"; } .ion-ios-ribbon:before { content: "\f205"; } .ion-ios-rocket:before { content: "\f14b"; } .ion-ios-rose:before { content: "\f4a3"; } .ion-ios-sad:before { content: "\f207"; } .ion-ios-save:before { content: "\f1a6"; } .ion-ios-school:before { content: "\f209"; } .ion-ios-search:before { content: "\f4a5"; } .ion-ios-send:before { content: "\f20c"; } .ion-ios-settings:before { content: "\f4a7"; } .ion-ios-share:before { content: "\f211"; } .ion-ios-share-alt:before { content: "\f20f"; } .ion-ios-shirt:before { content: "\f213"; } .ion-ios-shuffle:before { content: "\f4a9"; } .ion-ios-skip-backward:before { content: "\f215"; } .ion-ios-skip-forward:before { content: "\f217"; } .ion-ios-snow:before { content: "\f218"; } .ion-ios-speedometer:before { content: "\f4b0"; } .ion-ios-square:before { content: "\f21a"; } .ion-ios-square-outline:before { content: "\f15c"; } .ion-ios-star:before { content: "\f4b3"; } .ion-ios-star-half:before { content: "\f4b1"; } .ion-ios-star-outline:before { content: "\f4b2"; } .ion-ios-stats:before { content: "\f21c"; } .ion-ios-stopwatch:before { content: "\f4b5"; } .ion-ios-subway:before { content: "\f21e"; } .ion-ios-sunny:before { content: "\f4b7"; } .ion-ios-swap:before { content: "\f21f"; } .ion-ios-switch:before { content: "\f221"; } .ion-ios-sync:before { content: "\f222"; } .ion-ios-tablet-landscape:before { content: "\f223"; } .ion-ios-tablet-portrait:before { content: "\f24e"; } .ion-ios-tennisball:before { content: "\f4bb"; } .ion-ios-text:before { content: "\f250"; } .ion-ios-thermometer:before { content: "\f252"; } .ion-ios-thumbs-down:before { content: "\f254"; } .ion-ios-thumbs-up:before { content: "\f256"; } .ion-ios-thunderstorm:before { content: "\f4bd"; } .ion-ios-time:before { content: "\f4bf"; } .ion-ios-timer:before { content: "\f4c1"; } .ion-ios-today:before { content: "\f14f"; } .ion-ios-train:before { content: "\f258"; } .ion-ios-transgender:before { content: "\f259"; } .ion-ios-trash:before { content: "\f4c5"; } .ion-ios-trending-down:before { content: "\f25a"; } .ion-ios-trending-up:before { content: "\f25b"; } .ion-ios-trophy:before { content: "\f25d"; } .ion-ios-tv:before { content: "\f115"; } .ion-ios-umbrella:before { content: "\f25f"; } .ion-ios-undo:before { content: "\f4c7"; } .ion-ios-unlock:before { content: "\f261"; } .ion-ios-videocam:before { content: "\f4cd"; } .ion-ios-volume-high:before { content: "\f11c"; } .ion-ios-volume-low:before { content: "\f11e"; } .ion-ios-volume-mute:before { content: "\f263"; } .ion-ios-volume-off:before { content: "\f264"; } .ion-ios-walk:before { content: "\f266"; } .ion-ios-wallet:before { content: "\f18b"; } .ion-ios-warning:before { content: "\f268"; } .ion-ios-watch:before { content: "\f269"; } .ion-ios-water:before { content: "\f26b"; } .ion-ios-wifi:before { content: "\f26d"; } .ion-ios-wine:before { content: "\f26f"; } .ion-ios-woman:before { content: "\f271"; } .ion-logo-android:before { content: "\f225"; } .ion-logo-angular:before { content: "\f227"; } .ion-logo-apple:before { content: "\f229"; } .ion-logo-bitbucket:before { content: "\f193"; } .ion-logo-bitcoin:before { content: "\f22b"; } .ion-logo-buffer:before { content: "\f22d"; } .ion-logo-chrome:before { content: "\f22f"; } .ion-logo-closed-captioning:before { content: "\f105"; } .ion-logo-codepen:before { content: "\f230"; } .ion-logo-css3:before { content: "\f231"; } .ion-logo-designernews:before { content: "\f232"; } .ion-logo-dribbble:before { content: "\f233"; } .ion-logo-dropbox:before { content: "\f234"; } .ion-logo-euro:before { content: "\f235"; } .ion-logo-facebook:before { content: "\f236"; } .ion-logo-flickr:before { content: "\f107"; } .ion-logo-foursquare:before { content: "\f237"; } .ion-logo-freebsd-devil:before { content: "\f238"; } .ion-logo-game-controller-a:before { content: "\f13b"; } .ion-logo-game-controller-b:before { content: "\f181"; } .ion-logo-github:before { content: "\f239"; } .ion-logo-google:before { content: "\f23a"; } .ion-logo-googleplus:before { content: "\f23b"; } .ion-logo-hackernews:before { content: "\f23c"; } .ion-logo-html5:before { content: "\f23d"; } .ion-logo-instagram:before { content: "\f23e"; } .ion-logo-ionic:before { content: "\f150"; } .ion-logo-ionitron:before { content: "\f151"; } .ion-logo-javascript:before { content: "\f23f"; } .ion-logo-linkedin:before { content: "\f240"; } .ion-logo-markdown:before { content: "\f241"; } .ion-logo-model-s:before { content: "\f153"; } .ion-logo-no-smoking:before { content: "\f109"; } .ion-logo-nodejs:before { content: "\f242"; } .ion-logo-npm:before { content: "\f195"; } .ion-logo-octocat:before { content: "\f243"; } .ion-logo-pinterest:before { content: "\f244"; } .ion-logo-playstation:before { content: "\f245"; } .ion-logo-polymer:before { content: "\f15e"; } .ion-logo-python:before { content: "\f246"; } .ion-logo-reddit:before { content: "\f247"; } .ion-logo-rss:before { content: "\f248"; } .ion-logo-sass:before { content: "\f249"; } .ion-logo-skype:before { content: "\f24a"; } .ion-logo-slack:before { content: "\f10b"; } .ion-logo-snapchat:before { content: "\f24b"; } .ion-logo-steam:before { content: "\f24c"; } .ion-logo-tumblr:before { content: "\f24d"; } .ion-logo-tux:before { content: "\f2ae"; } .ion-logo-twitch:before { content: "\f2af"; } .ion-logo-twitter:before { content: "\f2b0"; } .ion-logo-usd:before { content: "\f2b1"; } .ion-logo-vimeo:before { content: "\f2c4"; } .ion-logo-vk:before { content: "\f10d"; } .ion-logo-whatsapp:before { content: "\f2c5"; } .ion-logo-windows:before { content: "\f32f"; } .ion-logo-wordpress:before { content: "\f330"; } .ion-logo-xbox:before { content: "\f34c"; } .ion-logo-xing:before { content: "\f10f"; } .ion-logo-yahoo:before { content: "\f34d"; } .ion-logo-yen:before { content: "\f34e"; } .ion-logo-youtube:before { content: "\f34f"; } .ion-md-add:before { content: "\f273"; } .ion-md-add-circle:before { content: "\f272"; } .ion-md-add-circle-outline:before { content: "\f158"; } .ion-md-airplane:before { content: "\f15a"; } .ion-md-alarm:before { content: "\f274"; } .ion-md-albums:before { content: "\f275"; } .ion-md-alert:before { content: "\f276"; } .ion-md-american-football:before { content: "\f277"; } .ion-md-analytics:before { content: "\f278"; } .ion-md-aperture:before { content: "\f279"; } .ion-md-apps:before { content: "\f27a"; } .ion-md-appstore:before { content: "\f27b"; } .ion-md-archive:before { content: "\f27c"; } .ion-md-arrow-back:before { content: "\f27d"; } .ion-md-arrow-down:before { content: "\f27e"; } .ion-md-arrow-dropdown:before { content: "\f280"; } .ion-md-arrow-dropdown-circle:before { content: "\f27f"; } .ion-md-arrow-dropleft:before { content: "\f282"; } .ion-md-arrow-dropleft-circle:before { content: "\f281"; } .ion-md-arrow-dropright:before { content: "\f284"; } .ion-md-arrow-dropright-circle:before { content: "\f283"; } .ion-md-arrow-dropup:before { content: "\f286"; } .ion-md-arrow-dropup-circle:before { content: "\f285"; } .ion-md-arrow-forward:before { content: "\f287"; } .ion-md-arrow-round-back:before { content: "\f288"; } .ion-md-arrow-round-down:before { content: "\f289"; } .ion-md-arrow-round-forward:before { content: "\f28a"; } .ion-md-arrow-round-up:before { content: "\f28b"; } .ion-md-arrow-up:before { content: "\f28c"; } .ion-md-at:before { content: "\f28d"; } .ion-md-attach:before { content: "\f28e"; } .ion-md-backspace:before { content: "\f28f"; } .ion-md-barcode:before { content: "\f290"; } .ion-md-baseball:before { content: "\f291"; } .ion-md-basket:before { content: "\f292"; } .ion-md-basketball:before { content: "\f293"; } .ion-md-battery-charging:before { content: "\f294"; } .ion-md-battery-dead:before { content: "\f295"; } .ion-md-battery-full:before { content: "\f296"; } .ion-md-beaker:before { content: "\f297"; } .ion-md-bed:before { content: "\f160"; } .ion-md-beer:before { content: "\f298"; } .ion-md-bicycle:before { content: "\f299"; } .ion-md-bluetooth:before { content: "\f29a"; } .ion-md-boat:before { content: "\f29b"; } .ion-md-body:before { content: "\f29c"; } .ion-md-bonfire:before { content: "\f29d"; } .ion-md-book:before { content: "\f29e"; } .ion-md-bookmark:before { content: "\f29f"; } .ion-md-bookmarks:before { content: "\f2a0"; } .ion-md-bowtie:before { content: "\f2a1"; } .ion-md-briefcase:before { content: "\f2a2"; } .ion-md-browsers:before { content: "\f2a3"; } .ion-md-brush:before { content: "\f2a4"; } .ion-md-bug:before { content: "\f2a5"; } .ion-md-build:before { content: "\f2a6"; } .ion-md-bulb:before { content: "\f2a7"; } .ion-md-bus:before { content: "\f2a8"; } .ion-md-business:before { content: "\f1a4"; } .ion-md-cafe:before { content: "\f2a9"; } .ion-md-calculator:before { content: "\f2aa"; } .ion-md-calendar:before { content: "\f2ab"; } .ion-md-call:before { content: "\f2ac"; } .ion-md-camera:before { content: "\f2ad"; } .ion-md-car:before { content: "\f2b2"; } .ion-md-card:before { content: "\f2b3"; } .ion-md-cart:before { content: "\f2b4"; } .ion-md-cash:before { content: "\f2b5"; } .ion-md-cellular:before { content: "\f164"; } .ion-md-chatboxes:before { content: "\f2b6"; } .ion-md-chatbubbles:before { content: "\f2b7"; } .ion-md-checkbox:before { content: "\f2b9"; } .ion-md-checkbox-outline:before { content: "\f2b8"; } .ion-md-checkmark:before { content: "\f2bc"; } .ion-md-checkmark-circle:before { content: "\f2bb"; } .ion-md-checkmark-circle-outline:before { content: "\f2ba"; } .ion-md-clipboard:before { content: "\f2bd"; } .ion-md-clock:before { content: "\f2be"; } .ion-md-close:before { content: "\f2c0"; } .ion-md-close-circle:before { content: "\f2bf"; } .ion-md-close-circle-outline:before { content: "\f166"; } .ion-md-cloud:before { content: "\f2c9"; } .ion-md-cloud-circle:before { content: "\f2c2"; } .ion-md-cloud-done:before { content: "\f2c3"; } .ion-md-cloud-download:before { content: "\f2c6"; } .ion-md-cloud-outline:before { content: "\f2c7"; } .ion-md-cloud-upload:before { content: "\f2c8"; } .ion-md-cloudy:before { content: "\f2cb"; } .ion-md-cloudy-night:before { content: "\f2ca"; } .ion-md-code:before { content: "\f2ce"; } .ion-md-code-download:before { content: "\f2cc"; } .ion-md-code-working:before { content: "\f2cd"; } .ion-md-cog:before { content: "\f2cf"; } .ion-md-color-fill:before { content: "\f2d0"; } .ion-md-color-filter:before { content: "\f2d1"; } .ion-md-color-palette:before { content: "\f2d2"; } .ion-md-color-wand:before { content: "\f2d3"; } .ion-md-compass:before { content: "\f2d4"; } .ion-md-construct:before { content: "\f2d5"; } .ion-md-contact:before { content: "\f2d6"; } .ion-md-contacts:before { content: "\f2d7"; } .ion-md-contract:before { content: "\f2d8"; } .ion-md-contrast:before { content: "\f2d9"; } .ion-md-copy:before { content: "\f2da"; } .ion-md-create:before { content: "\f2db"; } .ion-md-crop:before { content: "\f2dc"; } .ion-md-cube:before { content: "\f2dd"; } .ion-md-cut:before { content: "\f2de"; } .ion-md-desktop:before { content: "\f2df"; } .ion-md-disc:before { content: "\f2e0"; } .ion-md-document:before { content: "\f2e1"; } .ion-md-done-all:before { content: "\f2e2"; } .ion-md-download:before { content: "\f2e3"; } .ion-md-easel:before { content: "\f2e4"; } .ion-md-egg:before { content: "\f2e5"; } .ion-md-exit:before { content: "\f2e6"; } .ion-md-expand:before { content: "\f2e7"; } .ion-md-eye:before { content: "\f2e9"; } .ion-md-eye-off:before { content: "\f2e8"; } .ion-md-fastforward:before { content: "\f2ea"; } .ion-md-female:before { content: "\f2eb"; } .ion-md-filing:before { content: "\f2ec"; } .ion-md-film:before { content: "\f2ed"; } .ion-md-finger-print:before { content: "\f2ee"; } .ion-md-fitness:before { content: "\f1ac"; } .ion-md-flag:before { content: "\f2ef"; } .ion-md-flame:before { content: "\f2f0"; } .ion-md-flash:before { content: "\f2f1"; } .ion-md-flash-off:before { content: "\f169"; } .ion-md-flashlight:before { content: "\f16b"; } .ion-md-flask:before { content: "\f2f2"; } .ion-md-flower:before { content: "\f2f3"; } .ion-md-folder:before { content: "\f2f5"; } .ion-md-folder-open:before { content: "\f2f4"; } .ion-md-football:before { content: "\f2f6"; } .ion-md-funnel:before { content: "\f2f7"; } .ion-md-gift:before { content: "\f199"; } .ion-md-git-branch:before { content: "\f2fa"; } .ion-md-git-commit:before { content: "\f2fb"; } .ion-md-git-compare:before { content: "\f2fc"; } .ion-md-git-merge:before { content: "\f2fd"; } .ion-md-git-network:before { content: "\f2fe"; } .ion-md-git-pull-request:before { content: "\f2ff"; } .ion-md-glasses:before { content: "\f300"; } .ion-md-globe:before { content: "\f301"; } .ion-md-grid:before { content: "\f302"; } .ion-md-hammer:before { content: "\f303"; } .ion-md-hand:before { content: "\f304"; } .ion-md-happy:before { content: "\f305"; } .ion-md-headset:before { content: "\f306"; } .ion-md-heart:before { content: "\f308"; } .ion-md-heart-dislike:before { content: "\f167"; } .ion-md-heart-empty:before { content: "\f1a1"; } .ion-md-heart-half:before { content: "\f1a2"; } .ion-md-help:before { content: "\f30b"; } .ion-md-help-buoy:before { content: "\f309"; } .ion-md-help-circle:before { content: "\f30a"; } .ion-md-help-circle-outline:before { content: "\f16d"; } .ion-md-home:before { content: "\f30c"; } .ion-md-hourglass:before { content: "\f111"; } .ion-md-ice-cream:before { content: "\f30d"; } .ion-md-image:before { content: "\f30e"; } .ion-md-images:before { content: "\f30f"; } .ion-md-infinite:before { content: "\f310"; } .ion-md-information:before { content: "\f312"; } .ion-md-information-circle:before { content: "\f311"; } .ion-md-information-circle-outline:before { content: "\f16f"; } .ion-md-jet:before { content: "\f315"; } .ion-md-journal:before { content: "\f18d"; } .ion-md-key:before { content: "\f316"; } .ion-md-keypad:before { content: "\f317"; } .ion-md-laptop:before { content: "\f318"; } .ion-md-leaf:before { content: "\f319"; } .ion-md-link:before { content: "\f22e"; } .ion-md-list:before { content: "\f31b"; } .ion-md-list-box:before { content: "\f31a"; } .ion-md-locate:before { content: "\f31c"; } .ion-md-lock:before { content: "\f31d"; } .ion-md-log-in:before { content: "\f31e"; } .ion-md-log-out:before { content: "\f31f"; } .ion-md-magnet:before { content: "\f320"; } .ion-md-mail:before { content: "\f322"; } .ion-md-mail-open:before { content: "\f321"; } .ion-md-mail-unread:before { content: "\f172"; } .ion-md-male:before { content: "\f323"; } .ion-md-man:before { content: "\f324"; } .ion-md-map:before { content: "\f325"; } .ion-md-medal:before { content: "\f326"; } .ion-md-medical:before { content: "\f327"; } .ion-md-medkit:before { content: "\f328"; } .ion-md-megaphone:before { content: "\f329"; } .ion-md-menu:before { content: "\f32a"; } .ion-md-mic:before { content: "\f32c"; } .ion-md-mic-off:before { content: "\f32b"; } .ion-md-microphone:before { content: "\f32d"; } .ion-md-moon:before { content: "\f32e"; } .ion-md-more:before { content: "\f1c9"; } .ion-md-move:before { content: "\f331"; } .ion-md-musical-note:before { content: "\f332"; } .ion-md-musical-notes:before { content: "\f333"; } .ion-md-navigate:before { content: "\f334"; } .ion-md-notifications:before { content: "\f338"; } .ion-md-notifications-off:before { content: "\f336"; } .ion-md-notifications-outline:before { content: "\f337"; } .ion-md-nuclear:before { content: "\f339"; } .ion-md-nutrition:before { content: "\f33a"; } .ion-md-open:before { content: "\f33b"; } .ion-md-options:before { content: "\f33c"; } .ion-md-outlet:before { content: "\f33d"; } .ion-md-paper:before { content: "\f33f"; } .ion-md-paper-plane:before { content: "\f33e"; } .ion-md-partly-sunny:before { content: "\f340"; } .ion-md-pause:before { content: "\f341"; } .ion-md-paw:before { content: "\f342"; } .ion-md-people:before { content: "\f343"; } .ion-md-person:before { content: "\f345"; } .ion-md-person-add:before { content: "\f344"; } .ion-md-phone-landscape:before { content: "\f346"; } .ion-md-phone-portrait:before { content: "\f347"; } .ion-md-photos:before { content: "\f348"; } .ion-md-pie:before { content: "\f349"; } .ion-md-pin:before { content: "\f34a"; } .ion-md-pint:before { content: "\f34b"; } .ion-md-pizza:before { content: "\f354"; } .ion-md-planet:before { content: "\f356"; } .ion-md-play:before { content: "\f357"; } .ion-md-play-circle:before { content: "\f174"; } .ion-md-podium:before { content: "\f358"; } .ion-md-power:before { content: "\f359"; } .ion-md-pricetag:before { content: "\f35a"; } .ion-md-pricetags:before { content: "\f35b"; } .ion-md-print:before { content: "\f35c"; } .ion-md-pulse:before { content: "\f35d"; } .ion-md-qr-scanner:before { content: "\f35e"; } .ion-md-quote:before { content: "\f35f"; } .ion-md-radio:before { content: "\f362"; } .ion-md-radio-button-off:before { content: "\f360"; } .ion-md-radio-button-on:before { content: "\f361"; } .ion-md-rainy:before { content: "\f363"; } .ion-md-recording:before { content: "\f364"; } .ion-md-redo:before { content: "\f365"; } .ion-md-refresh:before { content: "\f366"; } .ion-md-refresh-circle:before { content: "\f228"; } .ion-md-remove:before { content: "\f368"; } .ion-md-remove-circle:before { content: "\f367"; } .ion-md-remove-circle-outline:before { content: "\f176"; } .ion-md-reorder:before { content: "\f369"; } .ion-md-repeat:before { content: "\f36a"; } .ion-md-resize:before { content: "\f36b"; } .ion-md-restaurant:before { content: "\f36c"; } .ion-md-return-left:before { content: "\f36d"; } .ion-md-return-right:before { content: "\f36e"; } .ion-md-reverse-camera:before { content: "\f36f"; } .ion-md-rewind:before { content: "\f370"; } .ion-md-ribbon:before { content: "\f371"; } .ion-md-rocket:before { content: "\f179"; } .ion-md-rose:before { content: "\f372"; } .ion-md-sad:before { content: "\f373"; } .ion-md-save:before { content: "\f1a9"; } .ion-md-school:before { content: "\f374"; } .ion-md-search:before { content: "\f375"; } .ion-md-send:before { content: "\f376"; } .ion-md-settings:before { content: "\f377"; } .ion-md-share:before { content: "\f379"; } .ion-md-share-alt:before { content: "\f378"; } .ion-md-shirt:before { content: "\f37a"; } .ion-md-shuffle:before { content: "\f37b"; } .ion-md-skip-backward:before { content: "\f37c"; } .ion-md-skip-forward:before { content: "\f37d"; } .ion-md-snow:before { content: "\f37e"; } .ion-md-speedometer:before { content: "\f37f"; } .ion-md-square:before { content: "\f381"; } .ion-md-square-outline:before { content: "\f380"; } .ion-md-star:before { content: "\f384"; } .ion-md-star-half:before { content: "\f382"; } .ion-md-star-outline:before { content: "\f383"; } .ion-md-stats:before { content: "\f385"; } .ion-md-stopwatch:before { content: "\f386"; } .ion-md-subway:before { content: "\f387"; } .ion-md-sunny:before { content: "\f388"; } .ion-md-swap:before { content: "\f389"; } .ion-md-switch:before { content: "\f38a"; } .ion-md-sync:before { content: "\f38b"; } .ion-md-tablet-landscape:before { content: "\f38c"; } .ion-md-tablet-portrait:before { content: "\f38d"; } .ion-md-tennisball:before { content: "\f38e"; } .ion-md-text:before { content: "\f38f"; } .ion-md-thermometer:before { content: "\f390"; } .ion-md-thumbs-down:before { content: "\f391"; } .ion-md-thumbs-up:before { content: "\f392"; } .ion-md-thunderstorm:before { content: "\f393"; } .ion-md-time:before { content: "\f394"; } .ion-md-timer:before { content: "\f395"; } .ion-md-today:before { content: "\f17d"; } .ion-md-train:before { content: "\f396"; } .ion-md-transgender:before { content: "\f397"; } .ion-md-trash:before { content: "\f398"; } .ion-md-trending-down:before { content: "\f399"; } .ion-md-trending-up:before { content: "\f39a"; } .ion-md-trophy:before { content: "\f39b"; } .ion-md-tv:before { content: "\f17f"; } .ion-md-umbrella:before { content: "\f39c"; } .ion-md-undo:before { content: "\f39d"; } .ion-md-unlock:before { content: "\f39e"; } .ion-md-videocam:before { content: "\f39f"; } .ion-md-volume-high:before { content: "\f123"; } .ion-md-volume-low:before { content: "\f131"; } .ion-md-volume-mute:before { content: "\f3a1"; } .ion-md-volume-off:before { content: "\f3a2"; } .ion-md-walk:before { content: "\f3a4"; } .ion-md-wallet:before { content: "\f18f"; } .ion-md-warning:before { content: "\f3a5"; } .ion-md-watch:before { content: "\f3a6"; } .ion-md-water:before { content: "\f3a7"; } .ion-md-wifi:before { content: "\f3a8"; } .ion-md-wine:before { content: "\f3a9"; } .ion-md-woman:before { content: "\f3aa"; } PK}w\Xn css/ionicons.min.cssnu[/*! Ionicons, v4.4.5 Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons Android-style icons originally built by Google’s Material Design Icons: https://github.com/google/material-design-icons used under CC BY http://creativecommons.org/licenses/by/4.0/ Modified icons to fit ionicon’s grid from original. */@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=4.4.5");src:url("../fonts/ionicons.eot?v=4.4.5#iefix") format("embedded-opentype"),url("../fonts/ionicons.woff2?v=4.4.5") format("woff2"),url("../fonts/ionicons.woff?v=4.4.5") format("woff"),url("../fonts/ionicons.ttf?v=4.4.5") format("truetype"),url("../fonts/ionicons.svg?v=4.4.5#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-ios-add:before,.ion-ios-add-circle:before,.ion-ios-add-circle-outline:before,.ion-ios-airplane:before,.ion-ios-alarm:before,.ion-ios-albums:before,.ion-ios-alert:before,.ion-ios-american-football:before,.ion-ios-analytics:before,.ion-ios-aperture:before,.ion-ios-apps:before,.ion-ios-appstore:before,.ion-ios-archive:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-dropdown:before,.ion-ios-arrow-dropdown-circle:before,.ion-ios-arrow-dropleft:before,.ion-ios-arrow-dropleft-circle:before,.ion-ios-arrow-dropright:before,.ion-ios-arrow-dropright-circle:before,.ion-ios-arrow-dropup:before,.ion-ios-arrow-dropup-circle:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-round-back:before,.ion-ios-arrow-round-down:before,.ion-ios-arrow-round-forward:before,.ion-ios-arrow-round-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-attach:before,.ion-ios-backspace:before,.ion-ios-barcode:before,.ion-ios-baseball:before,.ion-ios-basket:before,.ion-ios-basketball:before,.ion-ios-battery-charging:before,.ion-ios-battery-dead:before,.ion-ios-battery-full:before,.ion-ios-beaker:before,.ion-ios-bed:before,.ion-ios-beer:before,.ion-ios-bicycle:before,.ion-ios-bluetooth:before,.ion-ios-boat:before,.ion-ios-body:before,.ion-ios-bonfire:before,.ion-ios-book:before,.ion-ios-bookmark:before,.ion-ios-bookmarks:before,.ion-ios-bowtie:before,.ion-ios-briefcase:before,.ion-ios-browsers:before,.ion-ios-brush:before,.ion-ios-bug:before,.ion-ios-build:before,.ion-ios-bulb:before,.ion-ios-bus:before,.ion-ios-business:before,.ion-ios-cafe:before,.ion-ios-calculator:before,.ion-ios-calendar:before,.ion-ios-call:before,.ion-ios-camera:before,.ion-ios-car:before,.ion-ios-card:before,.ion-ios-cart:before,.ion-ios-cash:before,.ion-ios-cellular:before,.ion-ios-chatboxes:before,.ion-ios-chatbubbles:before,.ion-ios-checkbox:before,.ion-ios-checkbox-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-circle:before,.ion-ios-checkmark-circle-outline:before,.ion-ios-clipboard:before,.ion-ios-clock:before,.ion-ios-close:before,.ion-ios-close-circle:before,.ion-ios-close-circle-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-circle:before,.ion-ios-cloud-done:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-code:before,.ion-ios-code-download:before,.ion-ios-code-working:before,.ion-ios-cog:before,.ion-ios-color-fill:before,.ion-ios-color-filter:before,.ion-ios-color-palette:before,.ion-ios-color-wand:before,.ion-ios-compass:before,.ion-ios-construct:before,.ion-ios-contact:before,.ion-ios-contacts:before,.ion-ios-contract:before,.ion-ios-contrast:before,.ion-ios-copy:before,.ion-ios-create:before,.ion-ios-crop:before,.ion-ios-cube:before,.ion-ios-cut:before,.ion-ios-desktop:before,.ion-ios-disc:before,.ion-ios-document:before,.ion-ios-done-all:before,.ion-ios-download:before,.ion-ios-easel:before,.ion-ios-egg:before,.ion-ios-exit:before,.ion-ios-expand:before,.ion-ios-eye:before,.ion-ios-eye-off:before,.ion-ios-fastforward:before,.ion-ios-female:before,.ion-ios-filing:before,.ion-ios-film:before,.ion-ios-finger-print:before,.ion-ios-fitness:before,.ion-ios-flag:before,.ion-ios-flame:before,.ion-ios-flash:before,.ion-ios-flash-off:before,.ion-ios-flashlight:before,.ion-ios-flask:before,.ion-ios-flower:before,.ion-ios-folder:before,.ion-ios-folder-open:before,.ion-ios-football:before,.ion-ios-funnel:before,.ion-ios-gift:before,.ion-ios-git-branch:before,.ion-ios-git-commit:before,.ion-ios-git-compare:before,.ion-ios-git-merge:before,.ion-ios-git-network:before,.ion-ios-git-pull-request:before,.ion-ios-glasses:before,.ion-ios-globe:before,.ion-ios-grid:before,.ion-ios-hammer:before,.ion-ios-hand:before,.ion-ios-happy:before,.ion-ios-headset:before,.ion-ios-heart:before,.ion-ios-heart-dislike:before,.ion-ios-heart-empty:before,.ion-ios-heart-half:before,.ion-ios-help:before,.ion-ios-help-buoy:before,.ion-ios-help-circle:before,.ion-ios-help-circle-outline:before,.ion-ios-home:before,.ion-ios-hourglass:before,.ion-ios-ice-cream:before,.ion-ios-image:before,.ion-ios-images:before,.ion-ios-infinite:before,.ion-ios-information:before,.ion-ios-information-circle:before,.ion-ios-information-circle-outline:before,.ion-ios-jet:before,.ion-ios-journal:before,.ion-ios-key:before,.ion-ios-keypad:before,.ion-ios-laptop:before,.ion-ios-leaf:before,.ion-ios-link:before,.ion-ios-list:before,.ion-ios-list-box:before,.ion-ios-locate:before,.ion-ios-lock:before,.ion-ios-log-in:before,.ion-ios-log-out:before,.ion-ios-magnet:before,.ion-ios-mail:before,.ion-ios-mail-open:before,.ion-ios-mail-unread:before,.ion-ios-male:before,.ion-ios-man:before,.ion-ios-map:before,.ion-ios-medal:before,.ion-ios-medical:before,.ion-ios-medkit:before,.ion-ios-megaphone:before,.ion-ios-menu:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-microphone:before,.ion-ios-moon:before,.ion-ios-more:before,.ion-ios-move:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-notifications:before,.ion-ios-notifications-off:before,.ion-ios-notifications-outline:before,.ion-ios-nuclear:before,.ion-ios-nutrition:before,.ion-ios-open:before,.ion-ios-options:before,.ion-ios-outlet:before,.ion-ios-paper:before,.ion-ios-paper-plane:before,.ion-ios-partly-sunny:before,.ion-ios-pause:before,.ion-ios-paw:before,.ion-ios-people:before,.ion-ios-person:before,.ion-ios-person-add:before,.ion-ios-phone-landscape:before,.ion-ios-phone-portrait:before,.ion-ios-photos:before,.ion-ios-pie:before,.ion-ios-pin:before,.ion-ios-pint:before,.ion-ios-pizza:before,.ion-ios-planet:before,.ion-ios-play:before,.ion-ios-play-circle:before,.ion-ios-podium:before,.ion-ios-power:before,.ion-ios-pricetag:before,.ion-ios-pricetags:before,.ion-ios-print:before,.ion-ios-pulse:before,.ion-ios-qr-scanner:before,.ion-ios-quote:before,.ion-ios-radio:before,.ion-ios-radio-button-off:before,.ion-ios-radio-button-on:before,.ion-ios-rainy:before,.ion-ios-recording:before,.ion-ios-redo:before,.ion-ios-refresh:before,.ion-ios-refresh-circle:before,.ion-ios-remove:before,.ion-ios-remove-circle:before,.ion-ios-remove-circle-outline:before,.ion-ios-reorder:before,.ion-ios-repeat:before,.ion-ios-resize:before,.ion-ios-restaurant:before,.ion-ios-return-left:before,.ion-ios-return-right:before,.ion-ios-reverse-camera:before,.ion-ios-rewind:before,.ion-ios-ribbon:before,.ion-ios-rocket:before,.ion-ios-rose:before,.ion-ios-sad:before,.ion-ios-save:before,.ion-ios-school:before,.ion-ios-search:before,.ion-ios-send:before,.ion-ios-settings:before,.ion-ios-share:before,.ion-ios-share-alt:before,.ion-ios-shirt:before,.ion-ios-shuffle:before,.ion-ios-skip-backward:before,.ion-ios-skip-forward:before,.ion-ios-snow:before,.ion-ios-speedometer:before,.ion-ios-square:before,.ion-ios-square-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stats:before,.ion-ios-stopwatch:before,.ion-ios-subway:before,.ion-ios-sunny:before,.ion-ios-swap:before,.ion-ios-switch:before,.ion-ios-sync:before,.ion-ios-tablet-landscape:before,.ion-ios-tablet-portrait:before,.ion-ios-tennisball:before,.ion-ios-text:before,.ion-ios-thermometer:before,.ion-ios-thumbs-down:before,.ion-ios-thumbs-up:before,.ion-ios-thunderstorm:before,.ion-ios-time:before,.ion-ios-timer:before,.ion-ios-today:before,.ion-ios-train:before,.ion-ios-transgender:before,.ion-ios-trash:before,.ion-ios-trending-down:before,.ion-ios-trending-up:before,.ion-ios-trophy:before,.ion-ios-tv:before,.ion-ios-umbrella:before,.ion-ios-undo:before,.ion-ios-unlock:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-volume-mute:before,.ion-ios-volume-off:before,.ion-ios-walk:before,.ion-ios-wallet:before,.ion-ios-warning:before,.ion-ios-watch:before,.ion-ios-water:before,.ion-ios-wifi:before,.ion-ios-wine:before,.ion-ios-woman:before,.ion-logo-android:before,.ion-logo-angular:before,.ion-logo-apple:before,.ion-logo-bitbucket:before,.ion-logo-bitcoin:before,.ion-logo-buffer:before,.ion-logo-chrome:before,.ion-logo-closed-captioning:before,.ion-logo-codepen:before,.ion-logo-css3:before,.ion-logo-designernews:before,.ion-logo-dribbble:before,.ion-logo-dropbox:before,.ion-logo-euro:before,.ion-logo-facebook:before,.ion-logo-flickr:before,.ion-logo-foursquare:before,.ion-logo-freebsd-devil:before,.ion-logo-game-controller-a:before,.ion-logo-game-controller-b:before,.ion-logo-github:before,.ion-logo-google:before,.ion-logo-googleplus:before,.ion-logo-hackernews:before,.ion-logo-html5:before,.ion-logo-instagram:before,.ion-logo-ionic:before,.ion-logo-ionitron:before,.ion-logo-javascript:before,.ion-logo-linkedin:before,.ion-logo-markdown:before,.ion-logo-model-s:before,.ion-logo-no-smoking:before,.ion-logo-nodejs:before,.ion-logo-npm:before,.ion-logo-octocat:before,.ion-logo-pinterest:before,.ion-logo-playstation:before,.ion-logo-polymer:before,.ion-logo-python:before,.ion-logo-reddit:before,.ion-logo-rss:before,.ion-logo-sass:before,.ion-logo-skype:before,.ion-logo-slack:before,.ion-logo-snapchat:before,.ion-logo-steam:before,.ion-logo-tumblr:before,.ion-logo-tux:before,.ion-logo-twitch:before,.ion-logo-twitter:before,.ion-logo-usd:before,.ion-logo-vimeo:before,.ion-logo-vk:before,.ion-logo-whatsapp:before,.ion-logo-windows:before,.ion-logo-wordpress:before,.ion-logo-xbox:before,.ion-logo-xing:before,.ion-logo-yahoo:before,.ion-logo-yen:before,.ion-logo-youtube:before,.ion-md-add:before,.ion-md-add-circle:before,.ion-md-add-circle-outline:before,.ion-md-airplane:before,.ion-md-alarm:before,.ion-md-albums:before,.ion-md-alert:before,.ion-md-american-football:before,.ion-md-analytics:before,.ion-md-aperture:before,.ion-md-apps:before,.ion-md-appstore:before,.ion-md-archive:before,.ion-md-arrow-back:before,.ion-md-arrow-down:before,.ion-md-arrow-dropdown:before,.ion-md-arrow-dropdown-circle:before,.ion-md-arrow-dropleft:before,.ion-md-arrow-dropleft-circle:before,.ion-md-arrow-dropright:before,.ion-md-arrow-dropright-circle:before,.ion-md-arrow-dropup:before,.ion-md-arrow-dropup-circle:before,.ion-md-arrow-forward:before,.ion-md-arrow-round-back:before,.ion-md-arrow-round-down:before,.ion-md-arrow-round-forward:before,.ion-md-arrow-round-up:before,.ion-md-arrow-up:before,.ion-md-at:before,.ion-md-attach:before,.ion-md-backspace:before,.ion-md-barcode:before,.ion-md-baseball:before,.ion-md-basket:before,.ion-md-basketball:before,.ion-md-battery-charging:before,.ion-md-battery-dead:before,.ion-md-battery-full:before,.ion-md-beaker:before,.ion-md-bed:before,.ion-md-beer:before,.ion-md-bicycle:before,.ion-md-bluetooth:before,.ion-md-boat:before,.ion-md-body:before,.ion-md-bonfire:before,.ion-md-book:before,.ion-md-bookmark:before,.ion-md-bookmarks:before,.ion-md-bowtie:before,.ion-md-briefcase:before,.ion-md-browsers:before,.ion-md-brush:before,.ion-md-bug:before,.ion-md-build:before,.ion-md-bulb:before,.ion-md-bus:before,.ion-md-business:before,.ion-md-cafe:before,.ion-md-calculator:before,.ion-md-calendar:before,.ion-md-call:before,.ion-md-camera:before,.ion-md-car:before,.ion-md-card:before,.ion-md-cart:before,.ion-md-cash:before,.ion-md-cellular:before,.ion-md-chatboxes:before,.ion-md-chatbubbles:before,.ion-md-checkbox:before,.ion-md-checkbox-outline:before,.ion-md-checkmark:before,.ion-md-checkmark-circle:before,.ion-md-checkmark-circle-outline:before,.ion-md-clipboard:before,.ion-md-clock:before,.ion-md-close:before,.ion-md-close-circle:before,.ion-md-close-circle-outline:before,.ion-md-cloud:before,.ion-md-cloud-circle:before,.ion-md-cloud-done:before,.ion-md-cloud-download:before,.ion-md-cloud-outline:before,.ion-md-cloud-upload:before,.ion-md-cloudy:before,.ion-md-cloudy-night:before,.ion-md-code:before,.ion-md-code-download:before,.ion-md-code-working:before,.ion-md-cog:before,.ion-md-color-fill:before,.ion-md-color-filter:before,.ion-md-color-palette:before,.ion-md-color-wand:before,.ion-md-compass:before,.ion-md-construct:before,.ion-md-contact:before,.ion-md-contacts:before,.ion-md-contract:before,.ion-md-contrast:before,.ion-md-copy:before,.ion-md-create:before,.ion-md-crop:before,.ion-md-cube:before,.ion-md-cut:before,.ion-md-desktop:before,.ion-md-disc:before,.ion-md-document:before,.ion-md-done-all:before,.ion-md-download:before,.ion-md-easel:before,.ion-md-egg:before,.ion-md-exit:before,.ion-md-expand:before,.ion-md-eye:before,.ion-md-eye-off:before,.ion-md-fastforward:before,.ion-md-female:before,.ion-md-filing:before,.ion-md-film:before,.ion-md-finger-print:before,.ion-md-fitness:before,.ion-md-flag:before,.ion-md-flame:before,.ion-md-flash:before,.ion-md-flash-off:before,.ion-md-flashlight:before,.ion-md-flask:before,.ion-md-flower:before,.ion-md-folder:before,.ion-md-folder-open:before,.ion-md-football:before,.ion-md-funnel:before,.ion-md-gift:before,.ion-md-git-branch:before,.ion-md-git-commit:before,.ion-md-git-compare:before,.ion-md-git-merge:before,.ion-md-git-network:before,.ion-md-git-pull-request:before,.ion-md-glasses:before,.ion-md-globe:before,.ion-md-grid:before,.ion-md-hammer:before,.ion-md-hand:before,.ion-md-happy:before,.ion-md-headset:before,.ion-md-heart:before,.ion-md-heart-dislike:before,.ion-md-heart-empty:before,.ion-md-heart-half:before,.ion-md-help:before,.ion-md-help-buoy:before,.ion-md-help-circle:before,.ion-md-help-circle-outline:before,.ion-md-home:before,.ion-md-hourglass:before,.ion-md-ice-cream:before,.ion-md-image:before,.ion-md-images:before,.ion-md-infinite:before,.ion-md-information:before,.ion-md-information-circle:before,.ion-md-information-circle-outline:before,.ion-md-jet:before,.ion-md-journal:before,.ion-md-key:before,.ion-md-keypad:before,.ion-md-laptop:before,.ion-md-leaf:before,.ion-md-link:before,.ion-md-list:before,.ion-md-list-box:before,.ion-md-locate:before,.ion-md-lock:before,.ion-md-log-in:before,.ion-md-log-out:before,.ion-md-magnet:before,.ion-md-mail:before,.ion-md-mail-open:before,.ion-md-mail-unread:before,.ion-md-male:before,.ion-md-man:before,.ion-md-map:before,.ion-md-medal:before,.ion-md-medical:before,.ion-md-medkit:before,.ion-md-megaphone:before,.ion-md-menu:before,.ion-md-mic:before,.ion-md-mic-off:before,.ion-md-microphone:before,.ion-md-moon:before,.ion-md-more:before,.ion-md-move:before,.ion-md-musical-note:before,.ion-md-musical-notes:before,.ion-md-navigate:before,.ion-md-notifications:before,.ion-md-notifications-off:before,.ion-md-notifications-outline:before,.ion-md-nuclear:before,.ion-md-nutrition:before,.ion-md-open:before,.ion-md-options:before,.ion-md-outlet:before,.ion-md-paper:before,.ion-md-paper-plane:before,.ion-md-partly-sunny:before,.ion-md-pause:before,.ion-md-paw:before,.ion-md-people:before,.ion-md-person:before,.ion-md-person-add:before,.ion-md-phone-landscape:before,.ion-md-phone-portrait:before,.ion-md-photos:before,.ion-md-pie:before,.ion-md-pin:before,.ion-md-pint:before,.ion-md-pizza:before,.ion-md-planet:before,.ion-md-play:before,.ion-md-play-circle:before,.ion-md-podium:before,.ion-md-power:before,.ion-md-pricetag:before,.ion-md-pricetags:before,.ion-md-print:before,.ion-md-pulse:before,.ion-md-qr-scanner:before,.ion-md-quote:before,.ion-md-radio:before,.ion-md-radio-button-off:before,.ion-md-radio-button-on:before,.ion-md-rainy:before,.ion-md-recording:before,.ion-md-redo:before,.ion-md-refresh:before,.ion-md-refresh-circle:before,.ion-md-remove:before,.ion-md-remove-circle:before,.ion-md-remove-circle-outline:before,.ion-md-reorder:before,.ion-md-repeat:before,.ion-md-resize:before,.ion-md-restaurant:before,.ion-md-return-left:before,.ion-md-return-right:before,.ion-md-reverse-camera:before,.ion-md-rewind:before,.ion-md-ribbon:before,.ion-md-rocket:before,.ion-md-rose:before,.ion-md-sad:before,.ion-md-save:before,.ion-md-school:before,.ion-md-search:before,.ion-md-send:before,.ion-md-settings:before,.ion-md-share:before,.ion-md-share-alt:before,.ion-md-shirt:before,.ion-md-shuffle:before,.ion-md-skip-backward:before,.ion-md-skip-forward:before,.ion-md-snow:before,.ion-md-speedometer:before,.ion-md-square:before,.ion-md-square-outline:before,.ion-md-star:before,.ion-md-star-half:before,.ion-md-star-outline:before,.ion-md-stats:before,.ion-md-stopwatch:before,.ion-md-subway:before,.ion-md-sunny:before,.ion-md-swap:before,.ion-md-switch:before,.ion-md-sync:before,.ion-md-tablet-landscape:before,.ion-md-tablet-portrait:before,.ion-md-tennisball:before,.ion-md-text:before,.ion-md-thermometer:before,.ion-md-thumbs-down:before,.ion-md-thumbs-up:before,.ion-md-thunderstorm:before,.ion-md-time:before,.ion-md-timer:before,.ion-md-today:before,.ion-md-train:before,.ion-md-transgender:before,.ion-md-trash:before,.ion-md-trending-down:before,.ion-md-trending-up:before,.ion-md-trophy:before,.ion-md-tv:before,.ion-md-umbrella:before,.ion-md-undo:before,.ion-md-unlock:before,.ion-md-videocam:before,.ion-md-volume-high:before,.ion-md-volume-low:before,.ion-md-volume-mute:before,.ion-md-volume-off:before,.ion-md-walk:before,.ion-md-wallet:before,.ion-md-warning:before,.ion-md-watch:before,.ion-md-water:before,.ion-md-wifi:before,.ion-md-wine:before,.ion-md-woman:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios-add:before{content:"\f102"}.ion-ios-add-circle:before{content:"\f101"}.ion-ios-add-circle-outline:before{content:"\f100"}.ion-ios-airplane:before{content:"\f137"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-alert:before{content:"\f104"}.ion-ios-american-football:before{content:"\f106"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-aperture:before{content:"\f108"}.ion-ios-apps:before{content:"\f10a"}.ion-ios-appstore:before{content:"\f10c"}.ion-ios-archive:before{content:"\f10e"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-dropdown:before{content:"\f110"}.ion-ios-arrow-dropdown-circle:before{content:"\f125"}.ion-ios-arrow-dropleft:before{content:"\f112"}.ion-ios-arrow-dropleft-circle:before{content:"\f129"}.ion-ios-arrow-dropright:before{content:"\f114"}.ion-ios-arrow-dropright-circle:before{content:"\f12b"}.ion-ios-arrow-dropup:before{content:"\f116"}.ion-ios-arrow-dropup-circle:before{content:"\f12d"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-round-back:before{content:"\f117"}.ion-ios-arrow-round-down:before{content:"\f118"}.ion-ios-arrow-round-forward:before{content:"\f119"}.ion-ios-arrow-round-up:before{content:"\f11a"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-attach:before{content:"\f11b"}.ion-ios-backspace:before{content:"\f11d"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-basket:before{content:"\f11f"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-battery-charging:before{content:"\f120"}.ion-ios-battery-dead:before{content:"\f121"}.ion-ios-battery-full:before{content:"\f122"}.ion-ios-beaker:before{content:"\f124"}.ion-ios-bed:before{content:"\f139"}.ion-ios-beer:before{content:"\f126"}.ion-ios-bicycle:before{content:"\f127"}.ion-ios-bluetooth:before{content:"\f128"}.ion-ios-boat:before{content:"\f12a"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-bonfire:before{content:"\f12c"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-bookmark:before{content:"\f12e"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bowtie:before{content:"\f130"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-brush:before{content:"\f132"}.ion-ios-bug:before{content:"\f134"}.ion-ios-build:before{content:"\f136"}.ion-ios-bulb:before{content:"\f138"}.ion-ios-bus:before{content:"\f13a"}.ion-ios-business:before{content:"\f1a3"}.ion-ios-cafe:before{content:"\f13c"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-call:before{content:"\f13e"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-car:before{content:"\f140"}.ion-ios-card:before{content:"\f142"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cash:before{content:"\f144"}.ion-ios-cellular:before{content:"\f13d"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatbubbles:before{content:"\f146"}.ion-ios-checkbox:before{content:"\f148"}.ion-ios-checkbox-outline:before{content:"\f147"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-circle:before{content:"\f14a"}.ion-ios-checkmark-circle-outline:before{content:"\f149"}.ion-ios-clipboard:before{content:"\f14c"}.ion-ios-clock:before{content:"\f403"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-circle:before{content:"\f14e"}.ion-ios-close-circle-outline:before{content:"\f14d"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-circle:before{content:"\f152"}.ion-ios-cloud-done:before{content:"\f154"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-code:before{content:"\f157"}.ion-ios-code-download:before{content:"\f155"}.ion-ios-code-working:before{content:"\f156"}.ion-ios-cog:before{content:"\f412"}.ion-ios-color-fill:before{content:"\f159"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-palette:before{content:"\f15b"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-compass:before{content:"\f15d"}.ion-ios-construct:before{content:"\f15f"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contacts:before{content:"\f161"}.ion-ios-contract:before{content:"\f162"}.ion-ios-contrast:before{content:"\f163"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-create:before{content:"\f165"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-cube:before{content:"\f168"}.ion-ios-cut:before{content:"\f16a"}.ion-ios-desktop:before{content:"\f16c"}.ion-ios-disc:before{content:"\f16e"}.ion-ios-document:before{content:"\f170"}.ion-ios-done-all:before{content:"\f171"}.ion-ios-download:before{content:"\f420"}.ion-ios-easel:before{content:"\f173"}.ion-ios-egg:before{content:"\f175"}.ion-ios-exit:before{content:"\f177"}.ion-ios-expand:before{content:"\f178"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-off:before{content:"\f17a"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-female:before{content:"\f17b"}.ion-ios-filing:before{content:"\f429"}.ion-ios-film:before{content:"\f42b"}.ion-ios-finger-print:before{content:"\f17c"}.ion-ios-fitness:before{content:"\f1ab"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flash:before{content:"\f17e"}.ion-ios-flash-off:before{content:"\f12f"}.ion-ios-flashlight:before{content:"\f141"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flower:before{content:"\f433"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-open:before{content:"\f180"}.ion-ios-football:before{content:"\f437"}.ion-ios-funnel:before{content:"\f182"}.ion-ios-gift:before{content:"\f191"}.ion-ios-git-branch:before{content:"\f183"}.ion-ios-git-commit:before{content:"\f184"}.ion-ios-git-compare:before{content:"\f185"}.ion-ios-git-merge:before{content:"\f186"}.ion-ios-git-network:before{content:"\f187"}.ion-ios-git-pull-request:before{content:"\f188"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-globe:before{content:"\f18a"}.ion-ios-grid:before{content:"\f18c"}.ion-ios-hammer:before{content:"\f18e"}.ion-ios-hand:before{content:"\f190"}.ion-ios-happy:before{content:"\f192"}.ion-ios-headset:before{content:"\f194"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-dislike:before{content:"\f13f"}.ion-ios-heart-empty:before{content:"\f19b"}.ion-ios-heart-half:before{content:"\f19d"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-buoy:before{content:"\f196"}.ion-ios-help-circle:before{content:"\f198"}.ion-ios-help-circle-outline:before{content:"\f197"}.ion-ios-home:before{content:"\f448"}.ion-ios-hourglass:before{content:"\f103"}.ion-ios-ice-cream:before{content:"\f19a"}.ion-ios-image:before{content:"\f19c"}.ion-ios-images:before{content:"\f19e"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-circle:before{content:"\f1a0"}.ion-ios-information-circle-outline:before{content:"\f19f"}.ion-ios-jet:before{content:"\f1a5"}.ion-ios-journal:before{content:"\f189"}.ion-ios-key:before{content:"\f1a7"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-laptop:before{content:"\f1a8"}.ion-ios-leaf:before{content:"\f1aa"}.ion-ios-link:before{content:"\f22a"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-box:before{content:"\f143"}.ion-ios-locate:before{content:"\f1ae"}.ion-ios-lock:before{content:"\f1b0"}.ion-ios-log-in:before{content:"\f1b1"}.ion-ios-log-out:before{content:"\f1b2"}.ion-ios-magnet:before{content:"\f1b4"}.ion-ios-mail:before{content:"\f1b8"}.ion-ios-mail-open:before{content:"\f1b6"}.ion-ios-mail-unread:before{content:"\f145"}.ion-ios-male:before{content:"\f1b9"}.ion-ios-man:before{content:"\f1bb"}.ion-ios-map:before{content:"\f1bd"}.ion-ios-medal:before{content:"\f1bf"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-megaphone:before{content:"\f1c1"}.ion-ios-menu:before{content:"\f1c3"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-microphone:before{content:"\f1c6"}.ion-ios-moon:before{content:"\f468"}.ion-ios-more:before{content:"\f1c8"}.ion-ios-move:before{content:"\f1cb"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-notifications:before{content:"\f1d3"}.ion-ios-notifications-off:before{content:"\f1d1"}.ion-ios-notifications-outline:before{content:"\f133"}.ion-ios-nuclear:before{content:"\f1d5"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-open:before{content:"\f1d7"}.ion-ios-options:before{content:"\f1d9"}.ion-ios-outlet:before{content:"\f1db"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-plane:before{content:"\f1dd"}.ion-ios-partly-sunny:before{content:"\f1df"}.ion-ios-pause:before{content:"\f478"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-people:before{content:"\f47c"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-add:before{content:"\f1e1"}.ion-ios-phone-landscape:before{content:"\f1e2"}.ion-ios-phone-portrait:before{content:"\f1e3"}.ion-ios-photos:before{content:"\f482"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pin:before{content:"\f1e5"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pizza:before{content:"\f1e7"}.ion-ios-planet:before{content:"\f1eb"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-circle:before{content:"\f113"}.ion-ios-podium:before{content:"\f1ed"}.ion-ios-power:before{content:"\f1ef"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-print:before{content:"\f1f1"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-qr-scanner:before{content:"\f1f3"}.ion-ios-quote:before{content:"\f1f5"}.ion-ios-radio:before{content:"\f1f9"}.ion-ios-radio-button-off:before{content:"\f1f6"}.ion-ios-radio-button-on:before{content:"\f1f7"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-recording:before{content:"\f497"}.ion-ios-redo:before{content:"\f499"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-circle:before{content:"\f135"}.ion-ios-remove:before{content:"\f1fc"}.ion-ios-remove-circle:before{content:"\f1fb"}.ion-ios-remove-circle-outline:before{content:"\f1fa"}.ion-ios-reorder:before{content:"\f1fd"}.ion-ios-repeat:before{content:"\f1fe"}.ion-ios-resize:before{content:"\f1ff"}.ion-ios-restaurant:before{content:"\f201"}.ion-ios-return-left:before{content:"\f202"}.ion-ios-return-right:before{content:"\f203"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-ribbon:before{content:"\f205"}.ion-ios-rocket:before{content:"\f14b"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-sad:before{content:"\f207"}.ion-ios-save:before{content:"\f1a6"}.ion-ios-school:before{content:"\f209"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-send:before{content:"\f20c"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-share:before{content:"\f211"}.ion-ios-share-alt:before{content:"\f20f"}.ion-ios-shirt:before{content:"\f213"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-skip-backward:before{content:"\f215"}.ion-ios-skip-forward:before{content:"\f217"}.ion-ios-snow:before{content:"\f218"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-square:before{content:"\f21a"}.ion-ios-square-outline:before{content:"\f15c"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stats:before{content:"\f21c"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-subway:before{content:"\f21e"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-swap:before{content:"\f21f"}.ion-ios-switch:before{content:"\f221"}.ion-ios-sync:before{content:"\f222"}.ion-ios-tablet-landscape:before{content:"\f223"}.ion-ios-tablet-portrait:before{content:"\f24e"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-text:before{content:"\f250"}.ion-ios-thermometer:before{content:"\f252"}.ion-ios-thumbs-down:before{content:"\f254"}.ion-ios-thumbs-up:before{content:"\f256"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-today:before{content:"\f14f"}.ion-ios-train:before{content:"\f258"}.ion-ios-transgender:before{content:"\f259"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trending-down:before{content:"\f25a"}.ion-ios-trending-up:before{content:"\f25b"}.ion-ios-trophy:before{content:"\f25d"}.ion-ios-tv:before{content:"\f115"}.ion-ios-umbrella:before{content:"\f25f"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-unlock:before{content:"\f261"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-volume-high:before{content:"\f11c"}.ion-ios-volume-low:before{content:"\f11e"}.ion-ios-volume-mute:before{content:"\f263"}.ion-ios-volume-off:before{content:"\f264"}.ion-ios-walk:before{content:"\f266"}.ion-ios-wallet:before{content:"\f18b"}.ion-ios-warning:before{content:"\f268"}.ion-ios-watch:before{content:"\f269"}.ion-ios-water:before{content:"\f26b"}.ion-ios-wifi:before{content:"\f26d"}.ion-ios-wine:before{content:"\f26f"}.ion-ios-woman:before{content:"\f271"}.ion-logo-android:before{content:"\f225"}.ion-logo-angular:before{content:"\f227"}.ion-logo-apple:before{content:"\f229"}.ion-logo-bitbucket:before{content:"\f193"}.ion-logo-bitcoin:before{content:"\f22b"}.ion-logo-buffer:before{content:"\f22d"}.ion-logo-chrome:before{content:"\f22f"}.ion-logo-closed-captioning:before{content:"\f105"}.ion-logo-codepen:before{content:"\f230"}.ion-logo-css3:before{content:"\f231"}.ion-logo-designernews:before{content:"\f232"}.ion-logo-dribbble:before{content:"\f233"}.ion-logo-dropbox:before{content:"\f234"}.ion-logo-euro:before{content:"\f235"}.ion-logo-facebook:before{content:"\f236"}.ion-logo-flickr:before{content:"\f107"}.ion-logo-foursquare:before{content:"\f237"}.ion-logo-freebsd-devil:before{content:"\f238"}.ion-logo-game-controller-a:before{content:"\f13b"}.ion-logo-game-controller-b:before{content:"\f181"}.ion-logo-github:before{content:"\f239"}.ion-logo-google:before{content:"\f23a"}.ion-logo-googleplus:before{content:"\f23b"}.ion-logo-hackernews:before{content:"\f23c"}.ion-logo-html5:before{content:"\f23d"}.ion-logo-instagram:before{content:"\f23e"}.ion-logo-ionic:before{content:"\f150"}.ion-logo-ionitron:before{content:"\f151"}.ion-logo-javascript:before{content:"\f23f"}.ion-logo-linkedin:before{content:"\f240"}.ion-logo-markdown:before{content:"\f241"}.ion-logo-model-s:before{content:"\f153"}.ion-logo-no-smoking:before{content:"\f109"}.ion-logo-nodejs:before{content:"\f242"}.ion-logo-npm:before{content:"\f195"}.ion-logo-octocat:before{content:"\f243"}.ion-logo-pinterest:before{content:"\f244"}.ion-logo-playstation:before{content:"\f245"}.ion-logo-polymer:before{content:"\f15e"}.ion-logo-python:before{content:"\f246"}.ion-logo-reddit:before{content:"\f247"}.ion-logo-rss:before{content:"\f248"}.ion-logo-sass:before{content:"\f249"}.ion-logo-skype:before{content:"\f24a"}.ion-logo-slack:before{content:"\f10b"}.ion-logo-snapchat:before{content:"\f24b"}.ion-logo-steam:before{content:"\f24c"}.ion-logo-tumblr:before{content:"\f24d"}.ion-logo-tux:before{content:"\f2ae"}.ion-logo-twitch:before{content:"\f2af"}.ion-logo-twitter:before{content:"\f2b0"}.ion-logo-usd:before{content:"\f2b1"}.ion-logo-vimeo:before{content:"\f2c4"}.ion-logo-vk:before{content:"\f10d"}.ion-logo-whatsapp:before{content:"\f2c5"}.ion-logo-windows:before{content:"\f32f"}.ion-logo-wordpress:before{content:"\f330"}.ion-logo-xbox:before{content:"\f34c"}.ion-logo-xing:before{content:"\f10f"}.ion-logo-yahoo:before{content:"\f34d"}.ion-logo-yen:before{content:"\f34e"}.ion-logo-youtube:before{content:"\f34f"}.ion-md-add:before{content:"\f273"}.ion-md-add-circle:before{content:"\f272"}.ion-md-add-circle-outline:before{content:"\f158"}.ion-md-airplane:before{content:"\f15a"}.ion-md-alarm:before{content:"\f274"}.ion-md-albums:before{content:"\f275"}.ion-md-alert:before{content:"\f276"}.ion-md-american-football:before{content:"\f277"}.ion-md-analytics:before{content:"\f278"}.ion-md-aperture:before{content:"\f279"}.ion-md-apps:before{content:"\f27a"}.ion-md-appstore:before{content:"\f27b"}.ion-md-archive:before{content:"\f27c"}.ion-md-arrow-back:before{content:"\f27d"}.ion-md-arrow-down:before{content:"\f27e"}.ion-md-arrow-dropdown:before{content:"\f280"}.ion-md-arrow-dropdown-circle:before{content:"\f27f"}.ion-md-arrow-dropleft:before{content:"\f282"}.ion-md-arrow-dropleft-circle:before{content:"\f281"}.ion-md-arrow-dropright:before{content:"\f284"}.ion-md-arrow-dropright-circle:before{content:"\f283"}.ion-md-arrow-dropup:before{content:"\f286"}.ion-md-arrow-dropup-circle:before{content:"\f285"}.ion-md-arrow-forward:before{content:"\f287"}.ion-md-arrow-round-back:before{content:"\f288"}.ion-md-arrow-round-down:before{content:"\f289"}.ion-md-arrow-round-forward:before{content:"\f28a"}.ion-md-arrow-round-up:before{content:"\f28b"}.ion-md-arrow-up:before{content:"\f28c"}.ion-md-at:before{content:"\f28d"}.ion-md-attach:before{content:"\f28e"}.ion-md-backspace:before{content:"\f28f"}.ion-md-barcode:before{content:"\f290"}.ion-md-baseball:before{content:"\f291"}.ion-md-basket:before{content:"\f292"}.ion-md-basketball:before{content:"\f293"}.ion-md-battery-charging:before{content:"\f294"}.ion-md-battery-dead:before{content:"\f295"}.ion-md-battery-full:before{content:"\f296"}.ion-md-beaker:before{content:"\f297"}.ion-md-bed:before{content:"\f160"}.ion-md-beer:before{content:"\f298"}.ion-md-bicycle:before{content:"\f299"}.ion-md-bluetooth:before{content:"\f29a"}.ion-md-boat:before{content:"\f29b"}.ion-md-body:before{content:"\f29c"}.ion-md-bonfire:before{content:"\f29d"}.ion-md-book:before{content:"\f29e"}.ion-md-bookmark:before{content:"\f29f"}.ion-md-bookmarks:before{content:"\f2a0"}.ion-md-bowtie:before{content:"\f2a1"}.ion-md-briefcase:before{content:"\f2a2"}.ion-md-browsers:before{content:"\f2a3"}.ion-md-brush:before{content:"\f2a4"}.ion-md-bug:before{content:"\f2a5"}.ion-md-build:before{content:"\f2a6"}.ion-md-bulb:before{content:"\f2a7"}.ion-md-bus:before{content:"\f2a8"}.ion-md-business:before{content:"\f1a4"}.ion-md-cafe:before{content:"\f2a9"}.ion-md-calculator:before{content:"\f2aa"}.ion-md-calendar:before{content:"\f2ab"}.ion-md-call:before{content:"\f2ac"}.ion-md-camera:before{content:"\f2ad"}.ion-md-car:before{content:"\f2b2"}.ion-md-card:before{content:"\f2b3"}.ion-md-cart:before{content:"\f2b4"}.ion-md-cash:before{content:"\f2b5"}.ion-md-cellular:before{content:"\f164"}.ion-md-chatboxes:before{content:"\f2b6"}.ion-md-chatbubbles:before{content:"\f2b7"}.ion-md-checkbox:before{content:"\f2b9"}.ion-md-checkbox-outline:before{content:"\f2b8"}.ion-md-checkmark:before{content:"\f2bc"}.ion-md-checkmark-circle:before{content:"\f2bb"}.ion-md-checkmark-circle-outline:before{content:"\f2ba"}.ion-md-clipboard:before{content:"\f2bd"}.ion-md-clock:before{content:"\f2be"}.ion-md-close:before{content:"\f2c0"}.ion-md-close-circle:before{content:"\f2bf"}.ion-md-close-circle-outline:before{content:"\f166"}.ion-md-cloud:before{content:"\f2c9"}.ion-md-cloud-circle:before{content:"\f2c2"}.ion-md-cloud-done:before{content:"\f2c3"}.ion-md-cloud-download:before{content:"\f2c6"}.ion-md-cloud-outline:before{content:"\f2c7"}.ion-md-cloud-upload:before{content:"\f2c8"}.ion-md-cloudy:before{content:"\f2cb"}.ion-md-cloudy-night:before{content:"\f2ca"}.ion-md-code:before{content:"\f2ce"}.ion-md-code-download:before{content:"\f2cc"}.ion-md-code-working:before{content:"\f2cd"}.ion-md-cog:before{content:"\f2cf"}.ion-md-color-fill:before{content:"\f2d0"}.ion-md-color-filter:before{content:"\f2d1"}.ion-md-color-palette:before{content:"\f2d2"}.ion-md-color-wand:before{content:"\f2d3"}.ion-md-compass:before{content:"\f2d4"}.ion-md-construct:before{content:"\f2d5"}.ion-md-contact:before{content:"\f2d6"}.ion-md-contacts:before{content:"\f2d7"}.ion-md-contract:before{content:"\f2d8"}.ion-md-contrast:before{content:"\f2d9"}.ion-md-copy:before{content:"\f2da"}.ion-md-create:before{content:"\f2db"}.ion-md-crop:before{content:"\f2dc"}.ion-md-cube:before{content:"\f2dd"}.ion-md-cut:before{content:"\f2de"}.ion-md-desktop:before{content:"\f2df"}.ion-md-disc:before{content:"\f2e0"}.ion-md-document:before{content:"\f2e1"}.ion-md-done-all:before{content:"\f2e2"}.ion-md-download:before{content:"\f2e3"}.ion-md-easel:before{content:"\f2e4"}.ion-md-egg:before{content:"\f2e5"}.ion-md-exit:before{content:"\f2e6"}.ion-md-expand:before{content:"\f2e7"}.ion-md-eye:before{content:"\f2e9"}.ion-md-eye-off:before{content:"\f2e8"}.ion-md-fastforward:before{content:"\f2ea"}.ion-md-female:before{content:"\f2eb"}.ion-md-filing:before{content:"\f2ec"}.ion-md-film:before{content:"\f2ed"}.ion-md-finger-print:before{content:"\f2ee"}.ion-md-fitness:before{content:"\f1ac"}.ion-md-flag:before{content:"\f2ef"}.ion-md-flame:before{content:"\f2f0"}.ion-md-flash:before{content:"\f2f1"}.ion-md-flash-off:before{content:"\f169"}.ion-md-flashlight:before{content:"\f16b"}.ion-md-flask:before{content:"\f2f2"}.ion-md-flower:before{content:"\f2f3"}.ion-md-folder:before{content:"\f2f5"}.ion-md-folder-open:before{content:"\f2f4"}.ion-md-football:before{content:"\f2f6"}.ion-md-funnel:before{content:"\f2f7"}.ion-md-gift:before{content:"\f199"}.ion-md-git-branch:before{content:"\f2fa"}.ion-md-git-commit:before{content:"\f2fb"}.ion-md-git-compare:before{content:"\f2fc"}.ion-md-git-merge:before{content:"\f2fd"}.ion-md-git-network:before{content:"\f2fe"}.ion-md-git-pull-request:before{content:"\f2ff"}.ion-md-glasses:before{content:"\f300"}.ion-md-globe:before{content:"\f301"}.ion-md-grid:before{content:"\f302"}.ion-md-hammer:before{content:"\f303"}.ion-md-hand:before{content:"\f304"}.ion-md-happy:before{content:"\f305"}.ion-md-headset:before{content:"\f306"}.ion-md-heart:before{content:"\f308"}.ion-md-heart-dislike:before{content:"\f167"}.ion-md-heart-empty:before{content:"\f1a1"}.ion-md-heart-half:before{content:"\f1a2"}.ion-md-help:before{content:"\f30b"}.ion-md-help-buoy:before{content:"\f309"}.ion-md-help-circle:before{content:"\f30a"}.ion-md-help-circle-outline:before{content:"\f16d"}.ion-md-home:before{content:"\f30c"}.ion-md-hourglass:before{content:"\f111"}.ion-md-ice-cream:before{content:"\f30d"}.ion-md-image:before{content:"\f30e"}.ion-md-images:before{content:"\f30f"}.ion-md-infinite:before{content:"\f310"}.ion-md-information:before{content:"\f312"}.ion-md-information-circle:before{content:"\f311"}.ion-md-information-circle-outline:before{content:"\f16f"}.ion-md-jet:before{content:"\f315"}.ion-md-journal:before{content:"\f18d"}.ion-md-key:before{content:"\f316"}.ion-md-keypad:before{content:"\f317"}.ion-md-laptop:before{content:"\f318"}.ion-md-leaf:before{content:"\f319"}.ion-md-link:before{content:"\f22e"}.ion-md-list:before{content:"\f31b"}.ion-md-list-box:before{content:"\f31a"}.ion-md-locate:before{content:"\f31c"}.ion-md-lock:before{content:"\f31d"}.ion-md-log-in:before{content:"\f31e"}.ion-md-log-out:before{content:"\f31f"}.ion-md-magnet:before{content:"\f320"}.ion-md-mail:before{content:"\f322"}.ion-md-mail-open:before{content:"\f321"}.ion-md-mail-unread:before{content:"\f172"}.ion-md-male:before{content:"\f323"}.ion-md-man:before{content:"\f324"}.ion-md-map:before{content:"\f325"}.ion-md-medal:before{content:"\f326"}.ion-md-medical:before{content:"\f327"}.ion-md-medkit:before{content:"\f328"}.ion-md-megaphone:before{content:"\f329"}.ion-md-menu:before{content:"\f32a"}.ion-md-mic:before{content:"\f32c"}.ion-md-mic-off:before{content:"\f32b"}.ion-md-microphone:before{content:"\f32d"}.ion-md-moon:before{content:"\f32e"}.ion-md-more:before{content:"\f1c9"}.ion-md-move:before{content:"\f331"}.ion-md-musical-note:before{content:"\f332"}.ion-md-musical-notes:before{content:"\f333"}.ion-md-navigate:before{content:"\f334"}.ion-md-notifications:before{content:"\f338"}.ion-md-notifications-off:before{content:"\f336"}.ion-md-notifications-outline:before{content:"\f337"}.ion-md-nuclear:before{content:"\f339"}.ion-md-nutrition:before{content:"\f33a"}.ion-md-open:before{content:"\f33b"}.ion-md-options:before{content:"\f33c"}.ion-md-outlet:before{content:"\f33d"}.ion-md-paper:before{content:"\f33f"}.ion-md-paper-plane:before{content:"\f33e"}.ion-md-partly-sunny:before{content:"\f340"}.ion-md-pause:before{content:"\f341"}.ion-md-paw:before{content:"\f342"}.ion-md-people:before{content:"\f343"}.ion-md-person:before{content:"\f345"}.ion-md-person-add:before{content:"\f344"}.ion-md-phone-landscape:before{content:"\f346"}.ion-md-phone-portrait:before{content:"\f347"}.ion-md-photos:before{content:"\f348"}.ion-md-pie:before{content:"\f349"}.ion-md-pin:before{content:"\f34a"}.ion-md-pint:before{content:"\f34b"}.ion-md-pizza:before{content:"\f354"}.ion-md-planet:before{content:"\f356"}.ion-md-play:before{content:"\f357"}.ion-md-play-circle:before{content:"\f174"}.ion-md-podium:before{content:"\f358"}.ion-md-power:before{content:"\f359"}.ion-md-pricetag:before{content:"\f35a"}.ion-md-pricetags:before{content:"\f35b"}.ion-md-print:before{content:"\f35c"}.ion-md-pulse:before{content:"\f35d"}.ion-md-qr-scanner:before{content:"\f35e"}.ion-md-quote:before{content:"\f35f"}.ion-md-radio:before{content:"\f362"}.ion-md-radio-button-off:before{content:"\f360"}.ion-md-radio-button-on:before{content:"\f361"}.ion-md-rainy:before{content:"\f363"}.ion-md-recording:before{content:"\f364"}.ion-md-redo:before{content:"\f365"}.ion-md-refresh:before{content:"\f366"}.ion-md-refresh-circle:before{content:"\f228"}.ion-md-remove:before{content:"\f368"}.ion-md-remove-circle:before{content:"\f367"}.ion-md-remove-circle-outline:before{content:"\f176"}.ion-md-reorder:before{content:"\f369"}.ion-md-repeat:before{content:"\f36a"}.ion-md-resize:before{content:"\f36b"}.ion-md-restaurant:before{content:"\f36c"}.ion-md-return-left:before{content:"\f36d"}.ion-md-return-right:before{content:"\f36e"}.ion-md-reverse-camera:before{content:"\f36f"}.ion-md-rewind:before{content:"\f370"}.ion-md-ribbon:before{content:"\f371"}.ion-md-rocket:before{content:"\f179"}.ion-md-rose:before{content:"\f372"}.ion-md-sad:before{content:"\f373"}.ion-md-save:before{content:"\f1a9"}.ion-md-school:before{content:"\f374"}.ion-md-search:before{content:"\f375"}.ion-md-send:before{content:"\f376"}.ion-md-settings:before{content:"\f377"}.ion-md-share:before{content:"\f379"}.ion-md-share-alt:before{content:"\f378"}.ion-md-shirt:before{content:"\f37a"}.ion-md-shuffle:before{content:"\f37b"}.ion-md-skip-backward:before{content:"\f37c"}.ion-md-skip-forward:before{content:"\f37d"}.ion-md-snow:before{content:"\f37e"}.ion-md-speedometer:before{content:"\f37f"}.ion-md-square:before{content:"\f381"}.ion-md-square-outline:before{content:"\f380"}.ion-md-star:before{content:"\f384"}.ion-md-star-half:before{content:"\f382"}.ion-md-star-outline:before{content:"\f383"}.ion-md-stats:before{content:"\f385"}.ion-md-stopwatch:before{content:"\f386"}.ion-md-subway:before{content:"\f387"}.ion-md-sunny:before{content:"\f388"}.ion-md-swap:before{content:"\f389"}.ion-md-switch:before{content:"\f38a"}.ion-md-sync:before{content:"\f38b"}.ion-md-tablet-landscape:before{content:"\f38c"}.ion-md-tablet-portrait:before{content:"\f38d"}.ion-md-tennisball:before{content:"\f38e"}.ion-md-text:before{content:"\f38f"}.ion-md-thermometer:before{content:"\f390"}.ion-md-thumbs-down:before{content:"\f391"}.ion-md-thumbs-up:before{content:"\f392"}.ion-md-thunderstorm:before{content:"\f393"}.ion-md-time:before{content:"\f394"}.ion-md-timer:before{content:"\f395"}.ion-md-today:before{content:"\f17d"}.ion-md-train:before{content:"\f396"}.ion-md-transgender:before{content:"\f397"}.ion-md-trash:before{content:"\f398"}.ion-md-trending-down:before{content:"\f399"}.ion-md-trending-up:before{content:"\f39a"}.ion-md-trophy:before{content:"\f39b"}.ion-md-tv:before{content:"\f17f"}.ion-md-umbrella:before{content:"\f39c"}.ion-md-undo:before{content:"\f39d"}.ion-md-unlock:before{content:"\f39e"}.ion-md-videocam:before{content:"\f39f"}.ion-md-volume-high:before{content:"\f123"}.ion-md-volume-low:before{content:"\f131"}.ion-md-volume-mute:before{content:"\f3a1"}.ion-md-volume-off:before{content:"\f3a2"}.ion-md-walk:before{content:"\f3a4"}.ion-md-wallet:before{content:"\f18f"}.ion-md-warning:before{content:"\f3a5"}.ion-md-watch:before{content:"\f3a6"}.ion-md-water:before{content:"\f3a7"}.ion-md-wifi:before{content:"\f3a8"}.ion-md-wine:before{content:"\f3a9"}.ion-md-woman:before{content:"\f3aa"} PK}w\4QU%!!%esm/es2017/build/esckjbl8.sc.entry.jsnu[/*! Built with http://stenciljs.com */ import { h } from '../ionicons.core.js'; function getName(name, mode, ios, md) { mode = (mode || 'md').toLowerCase(); if (ios && mode === 'ios') { name = ios.toLowerCase(); } else if (md && mode === 'md') { name = md.toLowerCase(); } else if (name) { name = name.toLowerCase(); if (!/^md-|^ios-|^logo-/.test(name)) { name = `${mode}-${name}`; } } if (typeof name !== 'string' || name.trim() === '') { return null; } const invalidChars = name.replace(/[a-z]|-|\d/gi, ''); if (invalidChars !== '') { return null; } return name; } function getSrc(src) { if (typeof src === 'string') { src = src.trim(); if (src.length > 0 && /(\/|\.)/.test(src)) { return src; } } return null; } function isValid(elm) { if (elm.nodeType === 1) { if (elm.nodeName.toLowerCase() === 'script') { return false; } for (let i = 0; i < elm.attributes.length; i++) { const val = elm.attributes[i].value; if (typeof val === 'string' && val.toLowerCase().indexOf('on') === 0) { return false; } } for (let i = 0; i < elm.childNodes.length; i++) { if (!isValid(elm.childNodes[i])) { return false; } } } return true; } class Icon { constructor() { this.isVisible = false; this.lazy = false; } componentWillLoad() { this.waitUntilVisible(this.el, '50px', () => { this.isVisible = true; this.loadIcon(); }); } componentDidUnload() { if (this.io) { this.io.disconnect(); this.io = undefined; } } waitUntilVisible(el, rootMargin, cb) { if (this.lazy && this.win && this.win.IntersectionObserver) { const io = this.io = new this.win.IntersectionObserver((data) => { if (data[0].isIntersecting) { io.disconnect(); this.io = undefined; cb(); } }, { rootMargin }); io.observe(el); } else { cb(); } } loadIcon() { if (!this.isServer && this.isVisible) { const url = this.getUrl(); if (url) { getSvgContent(this.doc, url, 's-ion-icon') .then(svgContent => this.svgContent = svgContent); } } if (!this.ariaLabel) { const name = getName(this.name, this.mode, this.ios, this.md); if (name) { this.ariaLabel = name .replace('ios-', '') .replace('md-', '') .replace(/\-/g, ' '); } } } getUrl() { let url = getSrc(this.src); if (url) { return url; } url = getName(this.name, this.mode, this.ios, this.md); if (url) { return this.getNamedUrl(url); } url = getSrc(this.icon); if (url) { return url; } url = getName(this.icon, this.mode, this.ios, this.md); if (url) { return this.getNamedUrl(url); } return null; } getNamedUrl(name) { return `${this.resourcesUrl}svg/${name}.svg`; } hostData() { return { 'role': 'img', class: Object.assign({}, createColorClasses(this.color), { [`icon-${this.size}`]: !!this.size }) }; } render() { if (!this.isServer && this.svgContent) { return h("div", { class: "icon-inner", innerHTML: this.svgContent }); } return h("div", { class: "icon-inner" }); } static get is() { return "ion-icon"; } static get encapsulation() { return "shadow"; } static get properties() { return { "ariaLabel": { "type": String, "attr": "aria-label", "reflectToAttr": true, "mutable": true }, "color": { "type": String, "attr": "color" }, "doc": { "context": "document" }, "el": { "elementRef": true }, "icon": { "type": String, "attr": "icon", "watchCallbacks": ["loadIcon"] }, "ios": { "type": String, "attr": "ios" }, "isServer": { "context": "isServer" }, "isVisible": { "state": true }, "lazy": { "type": Boolean, "attr": "lazy" }, "md": { "type": String, "attr": "md" }, "mode": { "type": String, "attr": "mode" }, "name": { "type": String, "attr": "name", "watchCallbacks": ["loadIcon"] }, "resourcesUrl": { "context": "resourcesUrl" }, "size": { "type": String, "attr": "size" }, "src": { "type": String, "attr": "src", "watchCallbacks": ["loadIcon"] }, "svgContent": { "state": true }, "win": { "context": "window" } }; } static get style() { return ".sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.ion-color.sc-ion-icon-h{color:var(--ion-color-base)!important}.icon-small.sc-ion-icon-h{font-size:var(--ion-icon-size-small,18px)!important}.icon-large.sc-ion-icon-h{font-size:var(--ion-icon-size-large,32px)!important}.icon-inner.sc-ion-icon, svg.sc-ion-icon{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}"; } } const requests = new Map(); function getSvgContent(doc, url, scopedId) { let req = requests.get(url); if (!req) { req = fetch(url, { cache: 'force-cache' }).then(rsp => { if (rsp.ok) { return rsp.text(); } return Promise.resolve(null); }).then(svgContent => validateContent(doc, svgContent, scopedId)); requests.set(url, req); } return req; } function validateContent(document, svgContent, scopeId) { if (svgContent) { const frag = document.createDocumentFragment(); const div = document.createElement('div'); div.innerHTML = svgContent; frag.appendChild(div); for (let i = div.childNodes.length - 1; i >= 0; i--) { if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') { div.removeChild(div.childNodes[i]); } } const svgElm = div.firstElementChild; if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') { if (scopeId) { svgElm.setAttribute('class', scopeId); } if (isValid(svgElm)) { return div.innerHTML; } } } return ''; } function createColorClasses(color) { return (color) ? { 'ion-color': true, [`ion-color-${color}`]: true } : null; } export { Icon as IonIcon }; PK}w\N "esm/es2017/build/esckjbl8.entry.jsnu[/*! Built with http://stenciljs.com */ import { h } from '../ionicons.core.js'; function getName(name, mode, ios, md) { mode = (mode || 'md').toLowerCase(); if (ios && mode === 'ios') { name = ios.toLowerCase(); } else if (md && mode === 'md') { name = md.toLowerCase(); } else if (name) { name = name.toLowerCase(); if (!/^md-|^ios-|^logo-/.test(name)) { name = `${mode}-${name}`; } } if (typeof name !== 'string' || name.trim() === '') { return null; } const invalidChars = name.replace(/[a-z]|-|\d/gi, ''); if (invalidChars !== '') { return null; } return name; } function getSrc(src) { if (typeof src === 'string') { src = src.trim(); if (src.length > 0 && /(\/|\.)/.test(src)) { return src; } } return null; } function isValid(elm) { if (elm.nodeType === 1) { if (elm.nodeName.toLowerCase() === 'script') { return false; } for (let i = 0; i < elm.attributes.length; i++) { const val = elm.attributes[i].value; if (typeof val === 'string' && val.toLowerCase().indexOf('on') === 0) { return false; } } for (let i = 0; i < elm.childNodes.length; i++) { if (!isValid(elm.childNodes[i])) { return false; } } } return true; } class Icon { constructor() { this.isVisible = false; this.lazy = false; } componentWillLoad() { this.waitUntilVisible(this.el, '50px', () => { this.isVisible = true; this.loadIcon(); }); } componentDidUnload() { if (this.io) { this.io.disconnect(); this.io = undefined; } } waitUntilVisible(el, rootMargin, cb) { if (this.lazy && this.win && this.win.IntersectionObserver) { const io = this.io = new this.win.IntersectionObserver((data) => { if (data[0].isIntersecting) { io.disconnect(); this.io = undefined; cb(); } }, { rootMargin }); io.observe(el); } else { cb(); } } loadIcon() { if (!this.isServer && this.isVisible) { const url = this.getUrl(); if (url) { getSvgContent(this.doc, url, 's-ion-icon') .then(svgContent => this.svgContent = svgContent); } } if (!this.ariaLabel) { const name = getName(this.name, this.mode, this.ios, this.md); if (name) { this.ariaLabel = name .replace('ios-', '') .replace('md-', '') .replace(/\-/g, ' '); } } } getUrl() { let url = getSrc(this.src); if (url) { return url; } url = getName(this.name, this.mode, this.ios, this.md); if (url) { return this.getNamedUrl(url); } url = getSrc(this.icon); if (url) { return url; } url = getName(this.icon, this.mode, this.ios, this.md); if (url) { return this.getNamedUrl(url); } return null; } getNamedUrl(name) { return `${this.resourcesUrl}svg/${name}.svg`; } hostData() { return { 'role': 'img', class: Object.assign({}, createColorClasses(this.color), { [`icon-${this.size}`]: !!this.size }) }; } render() { if (!this.isServer && this.svgContent) { return h("div", { class: "icon-inner", innerHTML: this.svgContent }); } return h("div", { class: "icon-inner" }); } static get is() { return "ion-icon"; } static get encapsulation() { return "shadow"; } static get properties() { return { "ariaLabel": { "type": String, "attr": "aria-label", "reflectToAttr": true, "mutable": true }, "color": { "type": String, "attr": "color" }, "doc": { "context": "document" }, "el": { "elementRef": true }, "icon": { "type": String, "attr": "icon", "watchCallbacks": ["loadIcon"] }, "ios": { "type": String, "attr": "ios" }, "isServer": { "context": "isServer" }, "isVisible": { "state": true }, "lazy": { "type": Boolean, "attr": "lazy" }, "md": { "type": String, "attr": "md" }, "mode": { "type": String, "attr": "mode" }, "name": { "type": String, "attr": "name", "watchCallbacks": ["loadIcon"] }, "resourcesUrl": { "context": "resourcesUrl" }, "size": { "type": String, "attr": "size" }, "src": { "type": String, "attr": "src", "watchCallbacks": ["loadIcon"] }, "svgContent": { "state": true }, "win": { "context": "window" } }; } static get style() { return ":host{display:inline-block;width:1em;height:1em;contain:strict;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}:host(.ion-color){color:var(--ion-color-base)!important}:host(.icon-small){font-size:var(--ion-icon-size-small,18px)!important}:host(.icon-large){font-size:var(--ion-icon-size-large,32px)!important}.icon-inner,svg{display:block;fill:currentColor;stroke:currentColor;height:100%;width:100%}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}"; } } const requests = new Map(); function getSvgContent(doc, url, scopedId) { let req = requests.get(url); if (!req) { req = fetch(url, { cache: 'force-cache' }).then(rsp => { if (rsp.ok) { return rsp.text(); } return Promise.resolve(null); }).then(svgContent => validateContent(doc, svgContent, scopedId)); requests.set(url, req); } return req; } function validateContent(document, svgContent, scopeId) { if (svgContent) { const frag = document.createDocumentFragment(); const div = document.createElement('div'); div.innerHTML = svgContent; frag.appendChild(div); for (let i = div.childNodes.length - 1; i >= 0; i--) { if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') { div.removeChild(div.childNodes[i]); } } const svgElm = div.firstElementChild; if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') { if (scopeId) { svgElm.setAttribute('class', scopeId); } if (isValid(svgElm)) { return div.innerHTML; } } } return ''; } function createColorClasses(color) { return (color) ? { 'ion-color': true, [`ion-color-${color}`]: true } : null; } export { Icon as IonIcon }; PK}w\-esm/es2017/index.jsnu[// ionicons: ES ModulePK}w\Y0iiesm/es2017/ionicons.core.jsnu[/*! * ionicons: Core, es2017 * Built with http://stenciljs.com */ function n(n,t){return"sc-"+n.n+(t&&t!==O?"-"+t:"")}function t(n,t){return n+(t?"-h":"-s")}function e(t,e,r,i){var o=r.n+i.mode,u=r[o];if((2===r.t||1===r.t&&!t.r.e)&&(i["s-sc"]=u?n(r,i.mode):n(r)),u||(u=r[o=r.n+O]),u){var f=e.i.head;if(e.e)if(1===r.t)f=i.shadowRoot;else for(var c=i;c=e.o(c);)if(c.host&&c.host.shadowRoot){f=c.host.shadowRoot;break}var a=t.u.get(f);if(a||t.u.set(f,a={}),!a[o]){var s=void 0;if((s=e.f("style")).innerHTML=u,a[o]=!0,s){var l=f.querySelectorAll("[data-styles]");e.c(f,s,l.length&&l[l.length-1].nextSibling||f.firstChild)}}}}function r(n,t,e,r){void 0===r&&(r="boolean"==typeof e);var i=t!==(t=t.replace(/^xlink\:?/,""));null==e||r&&(!e||"false"===e)?i?n.removeAttributeNS(N,_(t)):n.removeAttribute(t):"function"!=typeof e&&(e=r?"":e.toString(),i?n.setAttributeNS(N,_(t),e):n.setAttribute(t,e))}function i(n,t,e,i,f,c,a){if("class"!==e||c)if("style"===e){for(var s in i)f&&null!=f[s]||(/-/.test(s)?t.style.a(s):t.style[s]="");for(var s in f)i&&f[s]===i[s]||(/-/.test(s)?t.style.setProperty(s,f[s]):t.style[s]=f[s])}else if("o"!==e[0]||"n"!==e[1]||!/[A-Z]/.test(e[2])||e in t)if("list"!==e&&"type"!==e&&!c&&(e in t||-1!==["object","function"].indexOf(typeof f)&&null!==f)){var l=n.s(t);l&&l.l&&l.l[e]?(u(t,e,f),a&&l.l[e].v&&r(t,l.l[e].p,f,4===l.l[e].d)):"ref"!==e&&(u(t,e,null==f?"":f),null!=f&&!1!==f||n.r.y(t,e))}else null!=f&&"key"!==e?r(t,e,f):(c||n.r.m(t,e)&&(null==f||!1===f))&&n.r.y(t,e);else e=_(e)in t?_(e.substring(2)):_(e[2])+e.substring(3),f?f!==i&&n.r.b(t,e,f):n.r.w(t,e);else if(i!==f){var v=o(i),p=o(f),d=v.filter(function(n){return!p.includes(n)}),h=o(t.className).filter(function(n){return!d.includes(n)}),y=p.filter(function(n){return!v.includes(n)&&!h.includes(n)});h.push.apply(h,y),t.className=h.join(" ")}}function o(n){return null==n||""===n?[]:n.trim().split(/\s+/)}function u(n,t,e){try{n[t]=e}catch(n){}}function f(n,t,e,r,o){var u=11===e.g.nodeType&&e.g.host?e.g.host:e.g,f=t&&t.vattrs||S,c=e.vattrs||S;for(o in f)c&&null!=c[o]||null==f[o]||i(n,u,o,f[o],void 0,r,e.M);for(o in c)o in f&&c[o]===("value"===o||"checked"===o?u[o]:f[o])||i(n,u,o,f[o],c[o],r,e.M)}function c(n,t){function e(i,o,u,c,a,v,m,b,w){if(b=o.vchildren[u],s||(p=!0,"slot"===b.vtag&&(l&&t.j(c,l+"-s"),b.vchildren?b.k=!0:b.A=!0)),P(b.vtext))b.g=t.C(b.vtext);else if(b.A)b.g=t.C("");else{if(v=b.g=R||"svg"===b.vtag?t.O("http://www.w3.org/2000/svg",b.vtag):t.f(b.k?"slot-fb":b.vtag),n.S(v)&&n.x.delete(y),R="svg"===b.vtag||"foreignObject"!==b.vtag&&R,f(n,null,b,R),P(l)&&v["s-si"]!==l&&t.j(v,v["s-si"]=l),b.vchildren)for(a=0;a=0;o--)(u=f[o])["s-hn"]!==h&&u["s-ol"]&&(t.W(u),t.c(a(u),u,c(u)),t.W(u["s-ol"]),u["s-ol"]=null,p=!0),i&&r(u,i);n._=!1}function i(n,r,i,o,u,f,a,s){var l=n["s-cr"];for((a=l&&t.o(l)||n).shadowRoot&&t.N(a)===h&&(a=a.shadowRoot);u<=f;++u)o[u]&&(s=P(o[u].vtext)?t.C(o[u].vtext):e(null,i,u,n))&&(o[u].g=s,t.c(a,s,c(r)))}function o(n,e,i,o){for(;e<=i;++e)P(n[e])&&(o=n[e].g,v=!0,o["s-ol"]?t.W(o["s-ol"]):r(o,!0),t.W(o))}function u(n,t){return n.vtag===t.vtag&&n.vkey===t.vkey&&("slot"!==n.vtag||n.vname===t.vname)}function c(n){return n&&n["s-ol"]?n["s-ol"]:n}function a(n){return t.o(n["s-ol"]?n["s-ol"]:n)}var s,l,v,p,d,h,y,m=[];return function b(w,g,M,j,k,$,A,E,C,O,S,x){if(y=w,h=t.N(y),d=y["s-cr"],s=j,l=y["s-sc"],p=v=!1,function s(l,v,p){var d=v.g=l.g,h=l.vchildren,y=v.vchildren;R=v.g&&P(t.R(v.g))&&void 0!==v.g.ownerSVGElement,R="svg"===v.vtag||"foreignObject"!==v.vtag&&R,P(v.vtext)?(p=d["s-cr"])?t.L(t.o(p),v.vtext):l.vtext!==v.vtext&&t.L(d,v.vtext):("slot"!==v.vtag&&f(n,l,v,R),P(h)&&P(y)?function m(n,f,l,v,p,d,h,y){for(var m=0,b=0,w=f.length-1,g=f[0],M=f[w],j=v.length-1,k=v[0],$=v[j];m<=w&&b<=j;)if(null==g)g=f[++m];else if(null==M)M=f[--w];else if(null==k)k=v[++b];else if(null==$)$=v[--j];else if(u(g,k))s(g,k),g=f[++m],k=v[++b];else if(u(M,$))s(M,$),M=f[--w],$=v[--j];else if(u(g,$))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(g.g)),s(g,$),t.c(n,g.g,t.D(M.g)),g=f[++m],$=v[--j];else if(u(M,k))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(M.g)),s(M,k),t.c(n,M.g,g.g),M=f[--w],k=v[++b];else{for(p=null,d=m;d<=w;++d)if(f[d]&&P(f[d].vkey)&&f[d].vkey===k.vkey){p=d;break}P(p)?((y=f[p]).vtag!==k.vtag?h=e(f&&f[b],l,p,n):(s(y,k),f[p]=void 0,h=y.g),k=v[++b]):(h=e(f&&f[b],l,b,n),k=v[++b]),h&&t.c(a(g.g),h,c(g.g))}m>w?i(n,null==v[j+1]?null:v[j+1].g,l,v,b,j):b>j&&o(f,m,w)}(d,h,v,y):P(y)?(P(l.vtext)&&t.L(d,""),i(d,null,v,y,0,y.length-1)):P(h)&&o(h,0,h.length-1)),R&&"svg"===v.vtag&&(R=!1)}(g,M),p){for(function n(e,r,i,o,u,f,c,a,s,l){for(u=0,f=(r=t.T(e)).length;u=0;c--)(o=a[c])["s-cn"]||o["s-nr"]||o["s-hn"]===i["s-hn"]||((3===(l=t.F(o))||8===l)&&""===s||1===l&&null===t.H(o,"slot")&&""===s||1===l&&t.H(o,"slot")===s)&&(m.some(function(n){return n.q===o})||(v=!0,o["s-sn"]=s,m.push({U:i,q:o})));1===t.F(i)&&n(i)}}(M.g),A=0;A2;)L.push(arguments[f]);for(;L.length>0;){var c=L.pop();if(c&&void 0!==c.pop)for(f=c.length;f--;)L.push(c[f]);else"boolean"==typeof c&&(c=null),(u="function"!=typeof n)&&(null==c?c="":"number"==typeof c?c=String(c):"string"!=typeof c&&(u=!1)),u&&o?i[i.length-1].vtext+=c:null===i?i=[u?{vtext:c}:c]:i.push(u?{vtext:c}:c),o=u}if(null!=t){if(t.className&&(t.class=t.className),"object"==typeof t.class){for(f in t.class)t.class[f]&&L.push(f);t.class=L.join(" "),L.length=0}null!=t.key&&(e=t.key),null!=t.name&&(r=t.name)}return"function"==typeof n?n(t,i||[],D):{vtag:n,vchildren:i,vtext:void 0,vattrs:t,vkey:e,vname:r,g:void 0,M:!1}}function l(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}function v(n){return{G:n[0],Q:n[1],Y:!!n[2],Z:!!n[3],z:!!n[4]}}function p(n,t){if(P(t)&&"object"!=typeof t&&"function"!=typeof t){if(n===Boolean||4===n)return"false"!==t&&(""===t||!!t);if(n===Number||8===n)return parseFloat(t);if(n===String||2===n)return t.toString()}return t}function d(n,t){n.J.add(t),n.K.has(t)||(n.K.set(t,!0),n.V?n.queue.write(function(){return h(n,t)}):n.queue.tick(function(){return h(n,t)}))}function h(n,e,r,i,o){return $(this,void 0,void 0,function(){var r,u;return A(this,function(f){switch(f.X){case 0:if(n.K.delete(e),n.nn.has(e))return[3,12];if(i=n.tn.get(e))return[3,6];if((o=n.en.get(e))&&!o["s-rn"])return(o["s-rc"]=o["s-rc"]||[]).push(function(){h(n,e)}),[2];if(!(i=function c(n,t,e,r,i,o,u){try{r=new(i=n.s(t).rn),function f(n,t,e,r,i){n.in.set(r,e),n.on.has(e)||n.on.set(e,{}),Object.entries(Object.assign({color:{type:String}},t.properties,{mode:{type:String}})).forEach(function(t){var o=t[0],u=t[1];(function f(n,t,e,r,i,o,u,c){if(t.type||t.state){var a=n.on.get(e);t.state||(!t.attr||void 0!==a[i]&&""!==a[i]||(u=o&&o.un)&&P(c=u[t.attr])&&(a[i]=p(t.type,c)),e.hasOwnProperty(i)&&(void 0===a[i]&&(a[i]=p(t.type,e[i])),"mode"!==i&&delete e[i])),r.hasOwnProperty(i)&&void 0===a[i]&&(a[i]=r[i]),t.watchCallbacks&&(a[F+i]=t.watchCallbacks.slice()),b(r,i,function s(t){return(t=n.on.get(n.in.get(this)))&&t[i]},function l(e,r){(r=n.in.get(this))&&(t.state||t.mutable)&&y(n,r,i,e)})}else if(t.elementRef)m(r,i,e);else if(t.context){var v=n.fn(t.context);void 0!==v&&m(r,i,v.cn&&v.cn(e)||v)}})(n,u,e,r,o,i)})}(n,i,t,r,e)}catch(e){r={},n.an(e,7,t,!0)}return n.tn.set(t,r),r}(n,e,n.sn.get(e))))return[3,5];f.X=1;case 1:return f.ln.push([1,4,,5]),i.componentWillLoad?[4,i.componentWillLoad()]:[3,3];case 2:f.vn(),f.X=3;case 3:return[3,5];case 4:return r=f.vn(),n.an(r,3,e),[3,5];case 5:return[3,11];case 6:if(!i)return[3,11];f.X=7;case 7:return f.ln.push([7,10,,11]),i.componentWillUpdate?[4,i.componentWillUpdate()]:[3,9];case 8:f.vn(),f.X=9;case 9:return[3,11];case 10:return u=f.vn(),n.an(u,5,e),[3,11];case 11:(function a(n,e,r,i){try{var o,u=e.rn.host,f=e.rn.encapsulation,c="shadow"===f&&n.r.e,a=r;if(o=function l(n,t,e){return n&&Object.keys(n).forEach(function(r){n[r].reflectToAttr&&((e=e||{})[r]=t[r])}),e}(e.rn.properties,i),c&&(a=r.shadowRoot),!r["s-rn"]){n.pn(n,n.r,e,r);var v=r["s-sc"];v&&(n.r.j(r,t(v,!0)),"scoped"===f&&n.r.j(r,t(v)))}if(i.render||i.hostData||u||o){n.dn=!0;var p=i.render&&i.render(),d=void 0;d=i.hostData&&i.hostData(),o&&(d=d?Object.assign(d,o):o),n.dn=!1;var h=n.hn.get(r)||{};h.g=a;var y=s(null,d,p);y.M=!0,n.hn.set(r,n.render(r,h,y,c,f))}r["s-rn"]=!0,r["s-rc"]&&(r["s-rc"].forEach(function(n){return n()}),r["s-rc"]=null)}catch(t){n.dn=!1,n.an(t,8,r,!0)}})(n,n.s(e),e,i),e["s-init"](),f.X=12;case 12:return[2]}})})}function y(n,t,e,r,i){var o=n.on.get(t);o||n.on.set(t,o={});var u=o[e];if(r!==u&&(o[e]=r,i=n.tn.get(t))){var f=o[F+e];if(f)for(var c=0;c-1&&r.splice(e,1),r.length||i["s-init"]&&i["s-init"]()),n.en.delete(t)),n.yn.length&&!n.J.size)for(;o=n.yn.shift();)o()}function g(n,t,e,r){if(e.connectedCallback=function(){(function e(n,t,r){n.nn.delete(r),n.mn.has(r)||(n.J.add(r),n.mn.set(r,!0),r["s-id"]||(r["s-id"]=n.bn()),function i(n,t,e){for(e=t;e=n.r.R(e);)if(n.S(e)){n.x.has(t)||(n.en.set(t,e),(e["s-ld"]=e["s-ld"]||[]).push(t));break}}(n,r),n.queue.tick(function(){n.sn.set(r,function e(n,t,r,i,o){return r.mode||(r.mode=n.wn(r)),r["s-cr"]||n.H(r,C)||n.e&&1===t.t||(r["s-cr"]=n.C(""),r["s-cr"]["s-cn"]=!0,n.c(r,r["s-cr"],n.T(r)[0])),n.e||1!==t.t||(r.shadowRoot=r),1===t.t&&n.e&&!r.shadowRoot&&n.gn(r,{mode:"open"}),i={Mn:r["s-id"],un:{}},t.l&&Object.keys(t.l).forEach(function(e){(o=t.l[e].p)&&(i.un[o]=n.H(r,o))}),i}(n.r,t,r)),n.jn(t,r)}))})(n,t,this)},e.disconnectedCallback=function(){(function t(n,e){if(!n._&&function r(n,t){for(;t;){if(!n.o(t))return 9!==n.F(t);t=n.o(t)}}(n.r,e)){n.nn.set(e,!0),w(n,e),a(n.hn.get(e),!0),n.r.w(e),n.kn.delete(e);var i=n.tn.get(e);i&&i.componentDidUnload&&i.componentDidUnload(),[n.en,n.$n,n.sn].forEach(function(n){return n.delete(e)})}})(n,this)},e["s-init"]=function(){(function t(n,e,r,i,o,u){if(n.tn.get(e)&&!n.nn.has(e)&&(!e["s-ld"]||!e["s-ld"].length)){n.x.set(e,!0),n.An.has(e)||(n.An.set(e,!0),e["s-ld"]=void 0,n.r.j(e,r));try{a(n.hn.get(e)),(o=n.$n.get(e))&&(o.forEach(function(n){return n(e)}),n.$n.delete(e))}catch(t){n.an(t,4,e)}w(n,e)}})(n,this,r)},e.forceUpdate=function(){d(n,this)},t.l){var i=Object.entries(t.l),o={};i.forEach(function(n){var t=n[0],e=n[1].p;e&&(o[e]=t)}),o=Object.assign({},o),e.attributeChangedCallback=function(n,t,e){(function r(n,t,e,i){var o=n[_(e)];o&&(t[o]=i)})(o,this,n,e)},function u(n,t,e){t.forEach(function(t){var r=t[0],i=t[1],o=i.En;3&o?b(e,r,function t(){return(n.on.get(this)||{})[r]},function t(e){y(n,this,r,p(i.d,e))}):32===o&&m(e,r,W)})}(n,i,e)}}function M(n,t,e,r){return function(){var i=arguments;return function o(n,t,e){var r=t[e],i=n.i.body;return i?(r||(r=i.querySelector(e)),r||(r=t[e]=n.f(e),n.P(i,r)),r.componentOnReady()):Promise.resolve()}(n,t,e).then(function(n){return n[r].apply(n,i)})}}function j(n,t,r,i,o,u){var f={html:{}},a={},l=r[n]=r[n]||{},v=function p(n,t,e){n.ael||(n.ael=function(n,t,e,r){return n.addEventListener(t,e,r)},n.rel=function(n,t,e,r){return n.removeEventListener(t,e,r)});var r=new WeakMap;"function"!=typeof t.CustomEvent&&(t.CustomEvent=function(n,t,r){return(r=e.createEvent("CustomEvent")).initCustomEvent(n,t.bubbles,t.cancelable,t.detail),r},t.CustomEvent.prototype=t.Event.prototype);var i={i:e,e:!!e.documentElement.attachShadow,Cn:!1,F:function(n){return n.nodeType},f:function(n){return e.createElement(n)},O:function(n,t){return e.createElementNS(n,t)},C:function(n){return e.createTextNode(n)},On:function(n){return e.createComment(n)},c:function(n,t,e){return n.insertBefore(t,e)},W:function(n){return n.remove()},P:function(n,t){return n.appendChild(t)},j:function(n,t){if(n.classList)n.classList.add(t);else if("svg"===n.nodeName.toLowerCase()){var e=n.getAttribute("class")||"";e.split(" ").includes(t)||(e+=" "+t),n.setAttribute("class",e.trim())}},T:function(n){return n.childNodes},o:function(n){return n.parentNode},D:function(n){return n.nextSibling},B:function(n){return n.previousSibling},N:function(n){return _(n.nodeName)},I:function(n){return n.textContent},L:function(n,t){return n.textContent=t},H:function(n,t){return n.getAttribute(t)},Sn:function(n,t,e){return n.setAttribute(t,e)},xn:function(n,t,e,r){return n.setAttributeNS(t,e,r)},y:function(n,t){return n.removeAttribute(t)},m:function(n,t){return n.hasAttribute(t)},wn:function(t){return t.getAttribute("mode")||(n.Context||{}).mode},Pn:function(n,r){return"child"===r?n.firstElementChild:"parent"===r?i.R(n):"body"===r?e.body:"document"===r?e:"window"===r?t:n},b:function(t,e,o,u,f,c,a,s){var l=e,v=t,p=r.get(t);if(p&&p[l]&&p[l](),"string"==typeof c?v=i.Pn(t,c):"object"==typeof c?v=c:(s=e.split(":")).length>1&&(v=i.Pn(t,s[0]),e=s[1]),v){var d=o;(s=e.split(".")).length>1&&(e=s[0],d=function(n){n.keyCode===x[s[1]]&&o(n)}),a=i.Cn?{capture:!!u,passive:!!f}:!!u,n.ael(v,e,d,a),p||r.set(t,p={}),p[l]=function(){v&&n.rel(v,e,d,a),p[l]=null}}},w:function(n,t){var e=r.get(n);e&&(t?e[t]&&e[t]():Object.keys(e).forEach(function(n){e[n]&&e[n]()}))},_n:function(n,e,r){return n&&n.dispatchEvent(new t.CustomEvent(e,r))},R:function(n,t){return(t=i.o(n))&&11===i.F(t)?t.host:t},gn:function(n,t){return n.attachShadow(t)}};return i}(l,r,i);t.isServer=t.isPrerender=!(t.isClient=!0),t.window=r,t.location=r.location,t.document=i,t.resourcesUrl=t.publicPath=o,l.h=s,l.Context=t;var h=r["s-defined"]=r["s-defined"]||{},y=0,m={r:v,Tn:function b(n,t){var e=n.n;r.customElements.get(e)||(g(m,f[e]=n,t.prototype,u),t.observedAttributes=Object.values(n.l).map(function(n){return n.p}).filter(function(n){return!!n}),r.customElements.define(n.n,t))},Wn:t.emit,s:function(n){return f[v.N(n)]},fn:function(n){return t[n]},isClient:!0,S:function(n){return!(!h[v.N(n)]&&!m.s(n))},bn:function(){return n+y++},an:function(n,t,e){},Nn:function(n){return function t(n,e,r){return{create:M(n,e,r,"create"),componentOnReady:M(n,e,r,"componentOnReady")}}(v,a,n)},queue:t.queue=function w(n,t){function e(t){return function(e){t.push(e),p||(p=!0,n.raf(o))}}function r(n){for(var t=0;t0&&(l.push.apply(l,s),s.length=0),(p=a.length+s.length+l.length>0)?n.raf(o):v=0}var u=function(){return t.performance.now()},f=Promise.resolve(),c=[],a=[],s=[],l=[],v=0,p=!1;return n.raf||(n.raf=t.requestAnimationFrame.bind(t)),{tick:function(n){c.push(n),1===c.length&&f.then(function(){return r(c)})},read:e(a),write:e(s)}}(l,r),jn:function j(n,t,e){if(n.rn)d(m,t);else{var r=!v.e,i={mode:t.mode,scoped:r};n.Rn(i).then(function(e){try{n.rn=e,function r(n,t,e,i,o){if(i){var u=t.n+(o||O);t[u]||(t[u]=i)}}(0,n,n.t,e.style,e.styleMode)}catch(t){n.rn=function i(){}}d(m,t)})}},dn:!1,V:!1,_:!1,pn:e,en:new WeakMap,u:new WeakMap,mn:new WeakMap,kn:new WeakMap,An:new WeakMap,x:new WeakMap,in:new WeakMap,sn:new WeakMap,tn:new WeakMap,nn:new WeakMap,K:new WeakMap,$n:new WeakMap,Ln:new WeakMap,hn:new WeakMap,on:new WeakMap,J:new Set,yn:[]};l.onReady=function(){return new Promise(function(n){return m.queue.write(function(){return m.J.size?m.yn.push(n):n()})})},m.render=c(m,v);var k=v.i.documentElement;return k["s-ld"]=[],k["s-rn"]=!0,k["s-init"]=function(){m.x.set(k,l.loaded=m.V=!0),v._n(r,"appload",{detail:{namespace:n}})},function $(n,t,e,r,i,o){if(t.componentOnReady=function(t,e){if(!t.nodeName.includes("-"))return e(null),!1;var r=n.s(t);if(r)if(n.x.has(t))e(t);else{var i=n.$n.get(t)||[];i.push(e),n.$n.set(t,i)}return!!r},i){for(o=i.length-1;o>=0;o--)t.componentOnReady(i[o][0],i[o][1])&&i.splice(o,1);for(o=0;o0){var f=i.createElement("style");f.innerHTML=u.join()+"{visibility:hidden}."+o+"{visibility:inherit}",f.setAttribute("data-styles",""),i.head.insertBefore(f,i.head.firstChild)}var c=e.namespace||"ionicons";return q||(q=!0,function a(n,t,e){(n["s-apps"]=n["s-apps"]||[]).push(t),e.componentOnReady||(e.componentOnReady=function t(){function e(t){if(r.nodeName.indexOf("-")>0){for(var e=n["s-apps"],i=0,o=0;o0&&o[o.length-1])&&(6===e[0]||2===e[0])){f=0;continue}if(3===e[0]&&(!o||e[1]>o[0]&&e[1]this.status;this.statusText="statusText"in b?b.statusText:"OK";this.headers=new d(b.headers);this.url=b.url||"";this._initBody(a)}if(!e.fetch){var D="Symbol"in e&&"iterator"in Symbol,m;if(m="FileReader"in e&&"Blob"in e)try{new Blob,m=!0}catch(a){m=!1}var g={searchParams:"URLSearchParams"in e,iterable:D, blob:m,formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(g.arrayBuffer){var E="[object Int8Array];[object Uint8Array];[object Uint8ClampedArray];[object Int16Array];[object Uint16Array];[object Int32Array];[object Uint32Array];[object Float32Array];[object Float64Array]".split(";");var y=function(a){return a&&DataView.prototype.isPrototypeOf(a)};var z=ArrayBuffer.isView||function(a){return a&&-11?o(r[1]):"")}}}else if(e instanceof t){var a=this;e.forEach(function(e,t){a.append(e,t)})}};var a=t.prototype;a.append=function(e,t){if(e in this._entries){this._entries[e].push(t.toString())}else{this._entries[e]=[t.toString()]}};a.delete=function(e){delete this._entries[e]};a.get=function(e){return e in this._entries?this._entries[e][0]:null};a.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]};a.has=function(e){return e in this._entries};a.set=function(e,t){this._entries[e]=[t.toString()]};a.forEach=function(e,t){var n;for(var r in this._entries){if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var i=0;i>>0;if("function"!==typeof c)throw new TypeError("predicate must be a function");for(var a=0;a>>0;if(0===n)return!1;var i,o,a=0|e,u=Math.max(0<=a?a:n-Math.abs(a),0);for(;u= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } export function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } export function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } export function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } export function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } export function __exportStar(m, exports) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } export function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } export function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } export function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } export function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } export function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; export function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result.default = mod; return result; } export function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; }PK}w\Jsesm/es5/polyfills/object.jsnu[export function applyPolyfill(window, document) {/*! Object.assign */ "function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(d,f){if(null==d)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(d),b=1;bthis.length)a=this.length;return this.substring(a-b.length,a)===b}}); /*! String.prototype.includes */ String.prototype.includes||(String.prototype.includes=function(b,a){"number"!==typeof a&&(a=0);return a+b.length>this.length?!1:-1!==this.indexOf(b,a)}); /*! String.prototype.startsWith */ String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{writable:!0,configurable:!0,value:function(b,a){return this.substr(!a||0>a?0:+a,b.length)===b}});}PK}w\@ 66esm/es5/polyfills/dom.jsnu[export function applyPolyfill(window, document) {/*! document-register-element, 1.7.0 https://github.com/WebReflection/document-register-element (C) Andrea Giammarchi - @WebReflection - Mit Style License */ if (!window['s-ce1']) { window['s-ce1'] = true; (function(e,t){"use strict";function Ht(){var e=wt.splice(0,wt.length);Et=0;while(e.length)e.shift().call(null,e.shift())}function Bt(e,t){for(var n=0,r=e.length;n1)&&Zt(this)}}}),ot(u,h,{value:function(e){-1<_.call(a,e)&&o[h].apply(this,arguments)}}),o[d]&&ot(u,p,{value:o[d]}),o[v]&&ot(u,g,{value:o[v]}),i&&(f[c]=i),e=e.toUpperCase(),G[e]={constructor:t,create:i?[i,et(e)]:[e]},Z.set(t,e),n[s](e.toLowerCase(),f),en(e),Y[e].r()}function Gt(e){var t=G[e.toUpperCase()];return t&&t.constructor}function Yt(e){return typeof e=="string"?e:e&&e.is||""}function Zt(e){var t=e[h],n=t?e.attributes:j,r=n.length,i;while(r--)i=n[r],t.call(e,i.name||i.nodeName,null,i.value||i.nodeValue)}function en(e){return e=e.toUpperCase(),e in Y||(Y[e]={},Y[e].p=new K(function(t){Y[e].r=t})),Y[e].p}function tn(){X&&delete e.customElements,B(e,"customElements",{configurable:!0,value:new Kt}),B(e,"CustomElementRegistry",{configurable:!0,value:Kt});for(var t=function(t){var r=e[t];if(r){e[t]=function(t){var i,s;return t||(t=this),t[W]||(Q=!0,i=G[Z.get(t.constructor)],s=V&&i.create.length===1,t=s?Reflect.construct(r,j,i.constructor):n.createElement.apply(n,i.create),t[W]=!0,Q=!1,s||Zt(t)),t},e[t].prototype=r.prototype;try{r.prototype.constructor=e[t]}catch(i){z=!0,B(r,W,{value:e[t]})}}},r=i.get(/^HTML[A-Z]*[a-z]/),o=r.length;o--;t(r[o]));n.createElement=function(e,t){var n=Yt(t);return n?gt.call(this,e,et(n)):gt.call(this,e)},St||(Tt=!0,n[s](""))}var n=e.document,r=e.Object,i=function(e){var t=/^[A-Z]+[a-z]/,n=function(e){var t=[],n;for(n in s)e.test(n)&&t.push(n);return t},i=function(e,t){t=t.toLowerCase(),t in s||(s[e]=(s[e]||[]).concat(t),s[t]=s[t.toUpperCase()]=e)},s=(r.create||r)(null),o={},u,a,f,l;for(a in e)for(l in e[a]){f=e[a][l],s[l]=f;for(u=0;u>0),u="addEventListener",a="attached",f="Callback",l="detached",c="extends",h="attributeChanged"+f,p=a+f,d="connected"+f,v="disconnected"+f,m="created"+f,g=l+f,y="ADDITION",b="MODIFICATION",w="REMOVAL",E="DOMAttrModified",S="DOMContentLoaded",x="DOMSubtreeModified",T="<",N="=",C=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,k=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],L=[],A=[],O="",M=n.documentElement,_=L.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},D=r.prototype,P=D.hasOwnProperty,H=D.isPrototypeOf,B=r.defineProperty,j=[],F=r.getOwnPropertyDescriptor,I=r.getOwnPropertyNames,q=r.getPrototypeOf,R=r.setPrototypeOf,U=!!r.__proto__,z=!1,W="__dreCEv1",X=e.customElements,V=!/^force/.test(t.type)&&!!(X&&X.define&&X.get&&X.whenDefined),$=r.create||r,J=e.Map||function(){var t=[],n=[],r;return{get:function(e){return n[_.call(t,e)]},set:function(e,i){r=_.call(t,e),r<0?n[t.push(e)-1]=i:n[r]=i}}},K=e.Promise||function(e){function i(e){n=!0;while(t.length)t.shift()(e)}var t=[],n=!1,r={"catch":function(){return r},then:function(e){return t.push(e),n&&setTimeout(i,1),r}};return e(i),r},Q=!1,G=$(null),Y=$(null),Z=new J,et=function(e){return e.toLowerCase()},tt=r.create||function sn(e){return e?(sn.prototype=e,new sn):this},nt=R||(U?function(e,t){return e.__proto__=t,e}:I&&F?function(){function e(e,t){for(var n,r=I(t),i=0,s=r.length;i0&&/(\/|\.)/.test(t)?t:null}function isValid(t){if(1===t.nodeType){if("script"===t.nodeName.toLowerCase())return!1;for(var e=0;e=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(i&&s.setAttribute("class",i),isValid(s)))return r.innerHTML}return""}function createColorClasses(t){var e;return t?((e={"ion-color":!0})["ion-color-"+t]=!0,e):null}export{Icon as IonIcon};PK}w\Z]esm/es5/build/esckjbl8.entry.jsnu[/*! Built with http://stenciljs.com */ import{h}from"../ionicons.core.js";function getName(t,e,i,n){return e=(e||"md").toLowerCase(),i&&"ios"===e?t=i.toLowerCase():n&&"md"===e?t=n.toLowerCase():t&&(t=t.toLowerCase(),/^md-|^ios-|^logo-/.test(t)||(t=e+"-"+t)),"string"!=typeof t||""===t.trim()?null:""!==t.replace(/[a-z]|-|\d/gi,"")?null:t}function getSrc(t){return"string"==typeof t&&(t=t.trim()).length>0&&/(\/|\.)/.test(t)?t:null}function isValid(t){if(1===t.nodeType){if("script"===t.nodeName.toLowerCase())return!1;for(var e=0;e=0;o--)"svg"!==r.childNodes[o].nodeName.toLowerCase()&&r.removeChild(r.childNodes[o]);var s=r.firstElementChild;if(s&&"svg"===s.nodeName.toLowerCase()&&(i&&s.setAttribute("class",i),isValid(s)))return r.innerHTML}return""}function createColorClasses(t){var e;return t?((e={"ion-color":!0})["ion-color-"+t]=!0,e):null}export{Icon as IonIcon};PK}w\-esm/es5/index.jsnu[// ionicons: ES ModulePK}w\WiWiesm/es5/ionicons.core.jsnu[/*! * ionicons: Core, es5 * Built with http://stenciljs.com */ function n(n,t){return"sc-"+n.n+(t&&t!==O?"-"+t:"")}function t(n,t){return n+(t?"-h":"-s")}function e(t,e,r,i){var o=r.n+i.mode,u=r[o];if((2===r.t||1===r.t&&!t.r.e)&&(i["s-sc"]=u?n(r,i.mode):n(r)),u||(u=r[o=r.n+O]),u){var f=e.i.head;if(e.e)if(1===r.t)f=i.shadowRoot;else for(var c=i;c=e.o(c);)if(c.host&&c.host.shadowRoot){f=c.host.shadowRoot;break}var a=t.u.get(f);if(a||t.u.set(f,a={}),!a[o]){var s=void 0;if(t.f?s=t.f.c(i,o,u):((s=e.a("style")).innerHTML=u,a[o]=!0),s){var l=f.querySelectorAll("[data-styles]");e.s(f,s,l.length&&l[l.length-1].nextSibling||f.firstChild)}}}}function r(n,t,e,r){void 0===r&&(r="boolean"==typeof e);var i=t!==(t=t.replace(/^xlink\:?/,""));null==e||r&&(!e||"false"===e)?i?n.removeAttributeNS(N,_(t)):n.removeAttribute(t):"function"!=typeof e&&(e=r?"":e.toString(),i?n.setAttributeNS(N,_(t),e):n.setAttribute(t,e))}function i(n,t,e,i,f,c,a){if("class"!==e||c)if("style"===e){for(var s in i)f&&null!=f[s]||(/-/.test(s)?t.style.l(s):t.style[s]="");for(var s in f)i&&f[s]===i[s]||(/-/.test(s)?t.style.setProperty(s,f[s]):t.style[s]=f[s])}else if("o"!==e[0]||"n"!==e[1]||!/[A-Z]/.test(e[2])||e in t)if("list"!==e&&"type"!==e&&!c&&(e in t||-1!==["object","function"].indexOf(typeof f)&&null!==f)){var l=n.v(t);l&&l.p&&l.p[e]?(u(t,e,f),a&&l.p[e].d&&r(t,l.p[e].y,f,4===l.p[e].m)):"ref"!==e&&(u(t,e,null==f?"":f),null!=f&&!1!==f||n.r.b(t,e))}else null!=f&&"key"!==e?r(t,e,f):(c||n.r.w(t,e)&&(null==f||!1===f))&&n.r.b(t,e);else e=_(e)in t?_(e.substring(2)):_(e[2])+e.substring(3),f?f!==i&&n.r.g(t,e,f):n.r.M(t,e);else if(i!==f){var v=o(i),p=o(f),d=v.filter(function(n){return!p.includes(n)}),h=o(t.className).filter(function(n){return!d.includes(n)}),y=p.filter(function(n){return!v.includes(n)&&!h.includes(n)});h.push.apply(h,y),t.className=h.join(" ")}}function o(n){return null==n||""===n?[]:n.trim().split(/\s+/)}function u(n,t,e){try{n[t]=e}catch(n){}}function f(n,t,e,r,o){var u=11===e.j.nodeType&&e.j.host?e.j.host:e.j,f=t&&t.vattrs||S,c=e.vattrs||S;for(o in f)c&&null!=c[o]||null==f[o]||i(n,u,o,f[o],void 0,r,e.k);for(o in c)o in f&&c[o]===("value"===o||"checked"===o?u[o]:f[o])||i(n,u,o,f[o],c[o],r,e.k)}function c(n,t){function e(i,o,u,c,a,v,m,b,w){if(b=o.vchildren[u],s||(p=!0,"slot"===b.vtag&&(l&&t.A(c,l+"-s"),b.vchildren?b.C=!0:b.O=!0)),P(b.vtext))b.j=t.S(b.vtext);else if(b.O)b.j=t.S("");else{if(v=b.j=R||"svg"===b.vtag?t.x("http://www.w3.org/2000/svg",b.vtag):t.a(b.C?"slot-fb":b.vtag),n.P(v)&&n._.delete(y),R="svg"===b.vtag||"foreignObject"!==b.vtag&&R,f(n,null,b,R),P(l)&&v["s-si"]!==l&&t.A(v,v["s-si"]=l),b.vchildren)for(a=0;a=0;o--)(u=f[o])["s-hn"]!==h&&u["s-ol"]&&(t.R(u),t.s(a(u),u,c(u)),t.R(u["s-ol"]),u["s-ol"]=null,p=!0),i&&r(u,i);n.W=!1}function i(n,r,i,o,u,f,a,s){var l=n["s-cr"];for((a=l&&t.o(l)||n).shadowRoot&&t.L(a)===h&&(a=a.shadowRoot);u<=f;++u)o[u]&&(s=P(o[u].vtext)?t.S(o[u].vtext):e(null,i,u,n))&&(o[u].j=s,t.s(a,s,c(r)))}function o(n,e,i,o){for(;e<=i;++e)P(n[e])&&(o=n[e].j,v=!0,o["s-ol"]?t.R(o["s-ol"]):r(o,!0),t.R(o))}function u(n,t){return n.vtag===t.vtag&&n.vkey===t.vkey&&("slot"!==n.vtag||n.vname===t.vname)}function c(n){return n&&n["s-ol"]?n["s-ol"]:n}function a(n){return t.o(n["s-ol"]?n["s-ol"]:n)}var s,l,v,p,d,h,y,m=[];return function b(w,g,M,j,k,$,A,E,C,O,S,x){if(y=w,h=t.L(y),d=y["s-cr"],s=j,l=y["s-sc"],p=v=!1,function s(l,v,p){var d=v.j=l.j,h=l.vchildren,y=v.vchildren;R=v.j&&P(t.D(v.j))&&void 0!==v.j.ownerSVGElement,R="svg"===v.vtag||"foreignObject"!==v.vtag&&R,P(v.vtext)?(p=d["s-cr"])?t.F(t.o(p),v.vtext):l.vtext!==v.vtext&&t.F(d,v.vtext):("slot"!==v.vtag&&f(n,l,v,R),P(h)&&P(y)?function m(n,f,l,v,p,d,h,y){for(var m=0,b=0,w=f.length-1,g=f[0],M=f[w],j=v.length-1,k=v[0],$=v[j];m<=w&&b<=j;)if(null==g)g=f[++m];else if(null==M)M=f[--w];else if(null==k)k=v[++b];else if(null==$)$=v[--j];else if(u(g,k))s(g,k),g=f[++m],k=v[++b];else if(u(M,$))s(M,$),M=f[--w],$=v[--j];else if(u(g,$))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(g.j)),s(g,$),t.s(n,g.j,t.H(M.j)),g=f[++m],$=v[--j];else if(u(M,k))"slot"!==g.vtag&&"slot"!==$.vtag||r(t.o(M.j)),s(M,k),t.s(n,M.j,g.j),M=f[--w],k=v[++b];else{for(p=null,d=m;d<=w;++d)if(f[d]&&P(f[d].vkey)&&f[d].vkey===k.vkey){p=d;break}P(p)?((y=f[p]).vtag!==k.vtag?h=e(f&&f[b],l,p,n):(s(y,k),f[p]=void 0,h=y.j),k=v[++b]):(h=e(f&&f[b],l,b,n),k=v[++b]),h&&t.s(a(g.j),h,c(g.j))}m>w?i(n,null==v[j+1]?null:v[j+1].j,l,v,b,j):b>j&&o(f,m,w)}(d,h,v,y):P(y)?(P(l.vtext)&&t.F(d,""),i(d,null,v,y,0,y.length-1)):P(h)&&o(h,0,h.length-1)),R&&"svg"===v.vtag&&(R=!1)}(g,M),p){for(function n(e,r,i,o,u,f,c,a,s,l){for(u=0,f=(r=t.N(e)).length;u=0;c--)(o=a[c])["s-cn"]||o["s-nr"]||o["s-hn"]===i["s-hn"]||((3===(l=t.q(o))||8===l)&&""===s||1===l&&null===t.U(o,"slot")&&""===s||1===l&&t.U(o,"slot")===s)&&(m.some(function(n){return n.B===o})||(v=!0,o["s-sn"]=s,m.push({I:i,B:o})));1===t.q(i)&&n(i)}}(M.j),A=0;A2;)L.push(arguments[f]);for(;L.length>0;){var c=L.pop();if(c&&void 0!==c.pop)for(f=c.length;f--;)L.push(c[f]);else"boolean"==typeof c&&(c=null),(u="function"!=typeof n)&&(null==c?c="":"number"==typeof c?c=String(c):"string"!=typeof c&&(u=!1)),u&&o?i[i.length-1].vtext+=c:null===i?i=[u?{vtext:c}:c]:i.push(u?{vtext:c}:c),o=u}if(null!=t){if(t.className&&(t.class=t.className),"object"==typeof t.class){for(f in t.class)t.class[f]&&L.push(f);t.class=L.join(" "),L.length=0}null!=t.key&&(e=t.key),null!=t.name&&(r=t.name)}return"function"==typeof n?n(t,i||[],D):{vtag:n,vchildren:i,vtext:void 0,vattrs:t,vkey:e,vname:r,j:void 0,k:!1}}function l(n){return{vtag:n.vtag,vchildren:n.vchildren,vtext:n.vtext,vattrs:n.vattrs,vkey:n.vkey,vname:n.vname}}function v(n){return{Y:n[0],Z:n[1],z:!!n[2],J:!!n[3],K:!!n[4]}}function p(n,t){if(P(t)&&"object"!=typeof t&&"function"!=typeof t){if(n===Boolean||4===n)return"false"!==t&&(""===t||!!t);if(n===Number||8===n)return parseFloat(t);if(n===String||2===n)return t.toString()}return t}function d(n,t){n.V.add(t),n.X.has(t)||(n.X.set(t,!0),n.nn?n.queue.write(function(){return h(n,t)}):n.queue.tick(function(){return h(n,t)}))}function h(n,e,r,i,o){return $(this,void 0,void 0,function(){var r,u;return A(this,function(f){switch(f.tn){case 0:if(n.X.delete(e),n.en.has(e))return[3,12];if(i=n.rn.get(e))return[3,6];if((o=n.in.get(e))&&!o["s-rn"])return(o["s-rc"]=o["s-rc"]||[]).push(function(){h(n,e)}),[2];if(!(i=function c(n,t,e,r,i,o,u){try{r=new(i=n.v(t).on),function f(n,t,e,r,i){n.un.set(r,e),n.fn.has(e)||n.fn.set(e,{}),Object.entries(Object.assign({color:{type:String}},t.properties,{mode:{type:String}})).forEach(function(t){var o=t[0],u=t[1];(function f(n,t,e,r,i,o,u,c){if(t.type||t.state){var a=n.fn.get(e);t.state||(!t.attr||void 0!==a[i]&&""!==a[i]||(u=o&&o.cn)&&P(c=u[t.attr])&&(a[i]=p(t.type,c)),e.hasOwnProperty(i)&&(void 0===a[i]&&(a[i]=p(t.type,e[i])),"mode"!==i&&delete e[i])),r.hasOwnProperty(i)&&void 0===a[i]&&(a[i]=r[i]),t.watchCallbacks&&(a[F+i]=t.watchCallbacks.slice()),b(r,i,function s(t){return(t=n.fn.get(n.un.get(this)))&&t[i]},function l(e,r){(r=n.un.get(this))&&(t.state||t.mutable)&&y(n,r,i,e)})}else if(t.elementRef)m(r,i,e);else if(t.context){var v=n.an(t.context);void 0!==v&&m(r,i,v.sn&&v.sn(e)||v)}})(n,u,e,r,o,i)})}(n,i,t,r,e)}catch(e){r={},n.ln(e,7,t,!0)}return n.rn.set(t,r),r}(n,e,n.vn.get(e))))return[3,5];f.tn=1;case 1:return f.pn.push([1,4,,5]),i.componentWillLoad?[4,i.componentWillLoad()]:[3,3];case 2:f.dn(),f.tn=3;case 3:return[3,5];case 4:return r=f.dn(),n.ln(r,3,e),[3,5];case 5:return[3,11];case 6:if(!i)return[3,11];f.tn=7;case 7:return f.pn.push([7,10,,11]),i.componentWillUpdate?[4,i.componentWillUpdate()]:[3,9];case 8:f.dn(),f.tn=9;case 9:return[3,11];case 10:return u=f.dn(),n.ln(u,5,e),[3,11];case 11:(function a(n,e,r,i){try{var o,u=e.on.host,f=e.on.encapsulation,c="shadow"===f&&n.r.e,a=r;if(o=function l(n,t,e){return n&&Object.keys(n).forEach(function(r){n[r].reflectToAttr&&((e=e||{})[r]=t[r])}),e}(e.on.properties,i),c&&(a=r.shadowRoot),!r["s-rn"]){n.hn(n,n.r,e,r);var v=r["s-sc"];v&&(n.r.A(r,t(v,!0)),"scoped"===f&&n.r.A(r,t(v)))}if(i.render||i.hostData||u||o){n.yn=!0;var p=i.render&&i.render(),d=void 0;d=i.hostData&&i.hostData(),o&&(d=d?Object.assign(d,o):o),n.yn=!1;var h=n.mn.get(r)||{};h.j=a;var y=s(null,d,p);y.k=!0,n.mn.set(r,n.render(r,h,y,c,f))}n.f&&n.f.bn(r),r["s-rn"]=!0,r["s-rc"]&&(r["s-rc"].forEach(function(n){return n()}),r["s-rc"]=null)}catch(t){n.yn=!1,n.ln(t,8,r,!0)}})(n,n.v(e),e,i),e["s-init"](),f.tn=12;case 12:return[2]}})})}function y(n,t,e,r,i){var o=n.fn.get(t);o||n.fn.set(t,o={});var u=o[e];if(r!==u&&(o[e]=r,i=n.rn.get(t))){var f=o[F+e];if(f)for(var c=0;c-1&&r.splice(e,1),r.length||i["s-init"]&&i["s-init"]()),n.in.delete(t)),n.wn.length&&!n.V.size)for(;o=n.wn.shift();)o()}function g(n,t,e,r){if(e.connectedCallback=function(){(function e(n,t,r){n.en.delete(r),n.gn.has(r)||(n.V.add(r),n.gn.set(r,!0),r["s-id"]||(r["s-id"]=n.Mn()),function i(n,t,e){for(e=t;e=n.r.D(e);)if(n.P(e)){n._.has(t)||(n.in.set(t,e),(e["s-ld"]=e["s-ld"]||[]).push(t));break}}(n,r),n.queue.tick(function(){n.vn.set(r,function e(n,t,r,i,o){return r.mode||(r.mode=n.jn(r)),r["s-cr"]||n.U(r,C)||n.e&&1===t.t||(r["s-cr"]=n.S(""),r["s-cr"]["s-cn"]=!0,n.s(r,r["s-cr"],n.N(r)[0])),n.e||1!==t.t||(r.shadowRoot=r),1===t.t&&n.e&&!r.shadowRoot&&n.kn(r,{mode:"open"}),i={$n:r["s-id"],cn:{}},t.p&&Object.keys(t.p).forEach(function(e){(o=t.p[e].y)&&(i.cn[o]=n.U(r,o))}),i}(n.r,t,r)),n.An(t,r)}))})(n,t,this)},e.disconnectedCallback=function(){(function t(n,e){if(!n.W&&function r(n,t){for(;t;){if(!n.o(t))return 9!==n.q(t);t=n.o(t)}}(n.r,e)){n.en.set(e,!0),w(n,e),a(n.mn.get(e),!0),n.r.M(e),n.En.delete(e);var i=n.rn.get(e);i&&i.componentDidUnload&&i.componentDidUnload(),n.f&&n.f.Cn(e),[n.in,n.On,n.vn].forEach(function(n){return n.delete(e)})}})(n,this)},e["s-init"]=function(){(function t(n,e,r,i,o,u){if(n.rn.get(e)&&!n.en.has(e)&&(!e["s-ld"]||!e["s-ld"].length)){n._.set(e,!0),n.Sn.has(e)||(n.Sn.set(e,!0),e["s-ld"]=void 0,n.r.A(e,r));try{a(n.mn.get(e)),(o=n.On.get(e))&&(o.forEach(function(n){return n(e)}),n.On.delete(e))}catch(t){n.ln(t,4,e)}w(n,e)}})(n,this,r)},e.forceUpdate=function(){d(n,this)},t.p){var i=Object.entries(t.p),o={};i.forEach(function(n){var t=n[0],e=n[1].y;e&&(o[e]=t)}),o=Object.assign({},o),e.attributeChangedCallback=function(n,t,e){(function r(n,t,e,i){var o=n[_(e)];o&&(t[o]=i)})(o,this,n,e)},function u(n,t,e){t.forEach(function(t){var r=t[0],i=t[1],o=i.xn;3&o?b(e,r,function t(){return(n.fn.get(this)||{})[r]},function t(e){y(n,this,r,p(i.m,e))}):32===o&&m(e,r,W)})}(n,i,e)}}function M(n,t,e,r){return function(){var i=arguments;return function o(n,t,e){var r=t[e],i=n.i.body;return i?(r||(r=i.querySelector(e)),r||(r=t[e]=n.a(e),n.T(i,r)),r.componentOnReady()):Promise.resolve()}(n,t,e).then(function(n){return n[r].apply(n,i)})}}function j(n,t,r,i,o,u){var f={html:{}},a={},l=r[n]=r[n]||{},v=function p(n,t,e){n.ael||(n.ael=function(n,t,e,r){return n.addEventListener(t,e,r)},n.rel=function(n,t,e,r){return n.removeEventListener(t,e,r)});var r=new WeakMap;"function"!=typeof t.CustomEvent&&(t.CustomEvent=function(n,t,r){return(r=e.createEvent("CustomEvent")).initCustomEvent(n,t.bubbles,t.cancelable,t.detail),r},t.CustomEvent.prototype=t.Event.prototype);var i={i:e,e:!!e.documentElement.attachShadow,Pn:!1,q:function(n){return n.nodeType},a:function(n){return e.createElement(n)},x:function(n,t){return e.createElementNS(n,t)},S:function(n){return e.createTextNode(n)},_n:function(n){return e.createComment(n)},s:function(n,t,e){return n.insertBefore(t,e)},R:function(n){return n.remove()},T:function(n,t){return n.appendChild(t)},A:function(n,t){if(n.classList)n.classList.add(t);else if("svg"===n.nodeName.toLowerCase()){var e=n.getAttribute("class")||"";e.split(" ").includes(t)||(e+=" "+t),n.setAttribute("class",e.trim())}},N:function(n){return n.childNodes},o:function(n){return n.parentNode},H:function(n){return n.nextSibling},G:function(n){return n.previousSibling},L:function(n){return _(n.nodeName)},Q:function(n){return n.textContent},F:function(n,t){return n.textContent=t},U:function(n,t){return n.getAttribute(t)},Tn:function(n,t,e){return n.setAttribute(t,e)},Wn:function(n,t,e,r){return n.setAttributeNS(t,e,r)},b:function(n,t){return n.removeAttribute(t)},w:function(n,t){return n.hasAttribute(t)},jn:function(t){return t.getAttribute("mode")||(n.Context||{}).mode},Nn:function(n,r){return"child"===r?n.firstElementChild:"parent"===r?i.D(n):"body"===r?e.body:"document"===r?e:"window"===r?t:n},g:function(t,e,o,u,f,c,a,s){var l=e,v=t,p=r.get(t);if(p&&p[l]&&p[l](),"string"==typeof c?v=i.Nn(t,c):"object"==typeof c?v=c:(s=e.split(":")).length>1&&(v=i.Nn(t,s[0]),e=s[1]),v){var d=o;(s=e.split(".")).length>1&&(e=s[0],d=function(n){n.keyCode===x[s[1]]&&o(n)}),a=i.Pn?{capture:!!u,passive:!!f}:!!u,n.ael(v,e,d,a),p||r.set(t,p={}),p[l]=function(){v&&n.rel(v,e,d,a),p[l]=null}}},M:function(n,t){var e=r.get(n);e&&(t?e[t]&&e[t]():Object.keys(e).forEach(function(n){e[n]&&e[n]()}))},Rn:function(n,e,r){return n&&n.dispatchEvent(new t.CustomEvent(e,r))},D:function(n,t){return(t=i.o(n))&&11===i.q(t)?t.host:t},kn:function(n,t){return n.attachShadow(t)}};return i}(l,r,i);t.isServer=t.isPrerender=!(t.isClient=!0),t.window=r,t.location=r.location,t.document=i,t.resourcesUrl=t.publicPath=o,l.h=s,l.Context=t;var h=r["s-defined"]=r["s-defined"]||{},y=0,m={r:v,Ln:function b(n,t){var e=n.n;r.customElements.get(e)||(g(m,f[e]=n,t.prototype,u),t.observedAttributes=Object.values(n.p).map(function(n){return n.y}).filter(function(n){return!!n}),r.customElements.define(n.n,t))},Dn:t.emit,v:function(n){return f[v.L(n)]},an:function(n){return t[n]},isClient:!0,P:function(n){return!(!h[v.L(n)]&&!m.v(n))},Mn:function(){return n+y++},ln:function(n,t,e){},Fn:function(n){return function t(n,e,r){return{create:M(n,e,r,"create"),componentOnReady:M(n,e,r,"componentOnReady")}}(v,a,n)},queue:t.queue=function w(n,t){function e(t){return function(e){t.push(e),p||(p=!0,n.raf(o))}}function r(n){for(var t=0;t0&&(l.push.apply(l,s),s.length=0),(p=a.length+s.length+l.length>0)?n.raf(o):v=0}var u=function(){return t.performance.now()},f=Promise.resolve(),c=[],a=[],s=[],l=[],v=0,p=!1;return n.raf||(n.raf=t.requestAnimationFrame.bind(t)),{tick:function(n){c.push(n),1===c.length&&f.then(function(){return r(c)})},read:e(a),write:e(s)}}(l,r),An:function j(n,t,e){if(n.on)d(m,t);else{var r=!v.e,i={mode:t.mode,scoped:r};n.Hn(i).then(function(e){try{n.on=e,function r(n,t,e,i,o){if(i){var u=t.n+(o||O);t[u]||(t[u]=i)}}(0,n,n.t,e.style,e.styleMode)}catch(t){n.on=function i(){}}d(m,t)})}},yn:!1,nn:!1,W:!1,hn:e,in:new WeakMap,u:new WeakMap,gn:new WeakMap,En:new WeakMap,Sn:new WeakMap,_:new WeakMap,un:new WeakMap,vn:new WeakMap,rn:new WeakMap,en:new WeakMap,X:new WeakMap,On:new WeakMap,qn:new WeakMap,mn:new WeakMap,fn:new WeakMap,V:new Set,wn:[]};l.onReady=function(){return new Promise(function(n){return m.queue.write(function(){return m.V.size?m.wn.push(n):n()})})},m.render=c(m,v);var k=v.i.documentElement;return k["s-ld"]=[],k["s-rn"]=!0,k["s-init"]=function(){m._.set(k,l.loaded=m.nn=!0),v.Rn(r,"appload",{detail:{namespace:n}})},function $(n,t,e,r,i,o){if(t.componentOnReady=function(t,e){if(!t.nodeName.includes("-"))return e(null),!1;var r=n.v(t);if(r)if(n._.has(t))e(t);else{var i=n.On.get(t)||[];i.push(e),n.On.set(t,i)}return!!r},i){for(o=i.length-1;o>=0;o--)t.componentOnReady(i[o][0],i[o][1])&&i.splice(o,1);for(o=0;o0){var f=i.createElement("style");f.innerHTML=u.join()+"{visibility:hidden}."+o+"{visibility:inherit}",f.setAttribute("data-styles",""),i.head.insertBefore(f,i.head.firstChild)}var c=e.namespace||"ionicons";return q||(q=!0,function a(n,t,e){(n["s-apps"]=n["s-apps"]||[]).push(t),e.componentOnReady||(e.componentOnReady=function t(){function e(t){if(r.nodeName.indexOf("-")>0){for(var e=n["s-apps"],i=0,o=0;o0&&o[o.length-1])&&(6===e[0]||2===e[0])){f=0;continue}if(3===e[0]&&(!o||e[1]>o[0]&&e[1] 0 && /(\/|\.)/.test(src)) { return src; } } return null; } export function isValid(elm) { if (elm.nodeType === 1) { if (elm.nodeName.toLowerCase() === 'script') { return false; } for (let i = 0; i < elm.attributes.length; i++) { const val = elm.attributes[i].value; if (typeof val === 'string' && val.toLowerCase().indexOf('on') === 0) { return false; } } for (let i = 0; i < elm.childNodes.length; i++) { if (!isValid(elm.childNodes[i])) { return false; } } } return true; } PK}w\Ȗ`collection/icon/icon.jsnu[import { getName, getSrc, isValid } from './utils'; export class Icon { constructor() { this.isVisible = false; this.lazy = false; } componentWillLoad() { this.waitUntilVisible(this.el, '50px', () => { this.isVisible = true; this.loadIcon(); }); } componentDidUnload() { if (this.io) { this.io.disconnect(); this.io = undefined; } } waitUntilVisible(el, rootMargin, cb) { if (this.lazy && this.win && this.win.IntersectionObserver) { const io = this.io = new this.win.IntersectionObserver((data) => { if (data[0].isIntersecting) { io.disconnect(); this.io = undefined; cb(); } }, { rootMargin }); io.observe(el); } else { cb(); } } loadIcon() { if (!this.isServer && this.isVisible) { const url = this.getUrl(); if (url) { getSvgContent(this.doc, url, 's-ion-icon') .then(svgContent => this.svgContent = svgContent); } } if (!this.ariaLabel) { const name = getName(this.name, this.mode, this.ios, this.md); if (name) { this.ariaLabel = name .replace('ios-', '') .replace('md-', '') .replace(/\-/g, ' '); } } } getUrl() { let url = getSrc(this.src); if (url) { return url; } url = getName(this.name, this.mode, this.ios, this.md); if (url) { return this.getNamedUrl(url); } url = getSrc(this.icon); if (url) { return url; } url = getName(this.icon, this.mode, this.ios, this.md); if (url) { return this.getNamedUrl(url); } return null; } getNamedUrl(name) { return `${this.resourcesUrl}svg/${name}.svg`; } hostData() { return { 'role': 'img', class: Object.assign({}, createColorClasses(this.color), { [`icon-${this.size}`]: !!this.size }) }; } render() { if (!this.isServer && this.svgContent) { return h("div", { class: "icon-inner", innerHTML: this.svgContent }); } return h("div", { class: "icon-inner" }); } static get is() { return "ion-icon"; } static get encapsulation() { return "shadow"; } static get properties() { return { "ariaLabel": { "type": String, "attr": "aria-label", "reflectToAttr": true, "mutable": true }, "color": { "type": String, "attr": "color" }, "doc": { "context": "document" }, "el": { "elementRef": true }, "icon": { "type": String, "attr": "icon", "watchCallbacks": ["loadIcon"] }, "ios": { "type": String, "attr": "ios" }, "isServer": { "context": "isServer" }, "isVisible": { "state": true }, "lazy": { "type": Boolean, "attr": "lazy" }, "md": { "type": String, "attr": "md" }, "mode": { "type": String, "attr": "mode" }, "name": { "type": String, "attr": "name", "watchCallbacks": ["loadIcon"] }, "resourcesUrl": { "context": "resourcesUrl" }, "size": { "type": String, "attr": "size" }, "src": { "type": String, "attr": "src", "watchCallbacks": ["loadIcon"] }, "svgContent": { "state": true }, "win": { "context": "window" } }; } static get style() { return "/**style-placeholder:ion-icon:**/"; } } const requests = new Map(); function getSvgContent(doc, url, scopedId) { let req = requests.get(url); if (!req) { req = fetch(url, { cache: 'force-cache' }).then(rsp => { if (rsp.ok) { return rsp.text(); } return Promise.resolve(null); }).then(svgContent => validateContent(doc, svgContent, scopedId)); requests.set(url, req); } return req; } function validateContent(document, svgContent, scopeId) { if (svgContent) { const frag = document.createDocumentFragment(); const div = document.createElement('div'); div.innerHTML = svgContent; frag.appendChild(div); for (let i = div.childNodes.length - 1; i >= 0; i--) { if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') { div.removeChild(div.childNodes[i]); } } const svgElm = div.firstElementChild; if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') { if (scopeId) { svgElm.setAttribute('class', scopeId); } if (isValid(svgElm)) { return div.innerHTML; } } } return ''; } function createColorClasses(color) { return (color) ? { 'ion-color': true, [`ion-color-${color}`]: true } : null; } PK}w\2SScollection/icon/icon.cssnu[:host { display: inline-block; width: 1em; height: 1em; contain: strict; box-sizing: content-box !important; } :host(.ion-color) { color: var(--ion-color-base) !important; } :host(.icon-small) { font-size: var(--ion-icon-size-small, 18px) !important; } :host(.icon-large){ font-size: var(--ion-icon-size-large, 32px) !important; } .icon-inner, svg { display: block; fill: currentColor; stroke: currentColor; height: 100%; width: 100%; } /* Set iOS Icon Colors */ /* ------------------- */ :host(.ion-color-primary) { --ion-color-base: var(--ion-color-primary, #3880ff); } :host(.ion-color-secondary) { --ion-color-base: var(--ion-color-secondary, #0cd1e8); } :host(.ion-color-tertiary) { --ion-color-base: var(--ion-color-tertiary, #f4a942); } :host(.ion-color-success) { --ion-color-base: var(--ion-color-success, #10dc60); } :host(.ion-color-warning) { --ion-color-base: var(--ion-color-warning, #ffce00); } :host(.ion-color-danger) { --ion-color-base: var(--ion-color-danger, #f14141); } :host(.ion-color-light) { --ion-color-base: var(--ion-color-light, #f4f5f8); } :host(.ion-color-medium) { --ion-color-base: var(--ion-color-medium, #989aa2); } :host(.ion-color-dark) { --ion-color-base: var(--ion-color-dark, #222428); } PK}w\H!collection/icon/svg/ios-alert.svgnu[PK}w\p<*#collection/icon/svg/ios-archive.svgnu[PK}w\1Jpp"collection/icon/svg/md-refresh.svgnu[PK}w\@@ collection/icon/svg/md-brush.svgnu[PK}w\%pp.collection/icon/svg/logo-game-controller-a.svgnu[PK}w\qq#collection/icon/svg/md-umbrella.svgnu[PK}w\cr$collection/icon/svg/md-hourglass.svgnu[PK}w\ %collection/icon/svg/md-flashlight.svgnu[PK}w\L;@@!collection/icon/svg/md-attach.svgnu[PK}w\QO!collection/icon/svg/md-search.svgnu[PK}w\O6&collection/icon/svg/md-thermometer.svgnu[PK}w\Z@@"collection/icon/svg/ios-attach.svgnu[PK}w\&? collection/icon/svg/ios-time.svgnu[PK}w\V collection/icon/svg/ios-flag.svgnu[PK}w\.]"collection/icon/svg/ios-log-in.svgnu[PK}w\#1collection/icon/svg/ios-remove-circle-outline.svgnu[PK}w\zBnV22#collection/icon/svg/md-contacts.svgnu[PK}w\P#LL#collection/icon/svg/md-baseball.svgnu[PK}w\U collection/icon/svg/md-shirt.svgnu[PK}w\𵄜"collection/icon/svg/ios-beaker.svgnu[PK}w\^#collection/icon/svg/md-business.svgnu[PK}w\JD66%collection/icon/svg/ios-analytics.svgnu[PK}w\{(collection/icon/svg/logo-playstation.svgnu[PK}w\ZzUU#collection/icon/svg/ios-bicycle.svgnu[PK}w\}a%collection/icon/svg/md-heart-half.svgnu[PK}w\t&collection/icon/svg/md-play-circle.svgnu[PK}w\BDDcollection/icon/svg/ios-cut.svgnu[PK}w\Wii)collection/icon/svg/md-arrow-dropleft.svgnu[PK}w\Ȕcollection/icon/svg/ios-pie.svgnu[PK}w\/wwcollection/icon/svg/md-time.svgnu[PK}w\$collection/icon/svg/md-exit.svgnu[PK}w\i'collection/icon/svg/ios-thermometer.svgnu[PK}w\ll.collection/icon/svg/logo-closed-captioning.svgnu[PK}w\@c ee#collection/icon/svg/logo-github.svgnu[PK}w\jj$collection/icon/svg/md-stopwatch.svgnu[PK}w\D$collection/icon/svg/md-git-merge.svgnu[PK}w\+G collection/icon/svg/md-stats.svgnu[PK}w\}L=="collection/icon/svg/ios-photos.svgnu[PK}w\L&collection/icon/svg/ios-flashlight.svgnu[PK}w\y"collection/icon/svg/md-bicycle.svgnu[PK}w\Y collection/icon/svg/ios-wifi.svgnu[PK}w\collection/icon/svg/md-card.svgnu[PK}w\~3==&collection/icon/svg/md-thumbs-down.svgnu[PK}w\4vZff collection/icon/svg/ios-hand.svgnu[PK}w\.+_"""collection/icon/svg/ios-hammer.svgnu[PK}w\W0 collection/icon/svg/ios-apps.svgnu[PK}w\_;\cc!collection/icon/svg/md-camera.svgnu[PK}w\Z:::%collection/icon/svg/ios-backspace.svgnu[PK}w\9L collection/icon/svg/md-pizza.svgnu[PK}w\f&collection/icon/svg/md-volume-high.svgnu[PK}w\hm+collection/icon/svg/ios-tablet-portrait.svgnu[PK}w\ 'collection/icon/svg/md-battery-dead.svgnu[PK}w\e#collection/icon/svg/logo-reddit.svgnu[PK}w\90%collection/icon/svg/md-add-circle.svgnu[PK}w\zޢ'collection/icon/svg/md-cloudy-night.svgnu[PK}w\D!C!collection/icon/svg/md-create.svgnu[PK}w\& %collection/icon/svg/ios-egg.svgnu[PK}w\׽ww&collection/icon/svg/md-information.svgnu[PK}w\>&ll'collection/icon/svg/md-finger-print.svgnu[PK}w\)5-DDcollection/icon/svg/md-male.svgnu[PK}w\:99$collection/icon/svg/md-thumbs-up.svgnu[PK}w\ ˘-collection/icon/svg/ios-notifications-off.svgnu[PK}w\L;!collection/icon/svg/ios-train.svgnu[PK}w\U*collection/icon/svg/logo-freebsd-devil.svgnu[PK}w\#E-collection/icon/svg/md-add-circle-outline.svgnu[PK}w\ Gcollection/icon/svg/md-grid.svgnu[PK}w\UK$collection/icon/svg/ios-airplane.svgnu[PK}w\?L7"collection/icon/svg/ios-basket.svgnu[PK}w\vk;#collection/icon/svg/ios-medical.svgnu[PK}w\G )collection/icon/svg/ios-notifications.svgnu[PK}w\ Ċcollection/icon/svg/md-sad.svgnu[PK}w\2W$collection/icon/svg/ios-cellular.svgnu[PK}w\29$qcollection/icon/svg/md-at.svgnu[PK}w\Xcollection/icon/svg/md-crop.svgnu[PK}w\ƛ>9collection/icon/svg/md-hand.svgnu[PK}w\C$$'collection/icon/svg/md-code-working.svgnu[PK}w\ xLL"collection/icon/svg/md-desktop.svgnu[PK}w\& collection/icon/svg/ios-sync.svgnu[PK}w\=j'collection/icon/svg/ios-help-circle.svgnu[PK}w\ui22$collection/icon/svg/md-construct.svgnu[PK}w\I!collection/icon/svg/ios-woman.svgnu[PK}w\\4 collection/icon/svg/md-paper.svgnu[PK}w\<X(()collection/icon/svg/ios-cloud-outline.svgnu[PK}w\x!collection/icon/svg/ios-alarm.svgnu[PK}w\s.cc#collection/icon/svg/logo-buffer.svgnu[PK}w\'collection/icon/svg/logo-javascript.svgnu[PK}w\** collection/icon/svg/ios-swap.svgnu[PK}w\;Mʫ  collection/icon/svg/md-copy.svgnu[PK}w\QQ$collection/icon/svg/ios-contract.svgnu[PK}w\ -Ccccollection/icon/svg/md-car.svgnu[PK}w\+A??+collection/icon/svg/ios-arrow-dropright.svgnu[PK}w\499$collection/icon/svg/ios-list-box.svgnu[PK}w\SFF+collection/icon/svg/md-arrow-round-down.svgnu[PK}w\9 collection/icon/svg/md-rainy.svgnu[PK}w\ II"collection/icon/svg/ios-funnel.svgnu[PK}w\b5collection/icon/svg/md-information-circle-outline.svgnu[PK}w\0FF collection/icon/svg/ios-body.svgnu[PK}w\CC"collection/icon/svg/ios-subway.svgnu[PK}w\Vcollection/icon/svg/ios-bus.svgnu[PK}w\\{{!collection/icon/svg/md-albums.svgnu[PK}w\w%PP,collection/icon/svg/ios-radio-button-off.svgnu[PK}w\Hc22+collection/icon/svg/md-tablet-landscape.svgnu[PK}w\4i`55"collection/icon/svg/ios-images.svgnu[PK}w\**!collection/icon/svg/md-medkit.svgnu[PK}w\%/bb!collection/icon/svg/md-remove.svgnu[PK}w\[ ~ collection/icon/svg/ios-code.svgnu[PK}w\ZJq&collection/icon/svg/md-fastforward.svgnu[PK}w\e'collection/icon/svg/ios-paper-plane.svgnu[PK}w\/"collection/icon/svg/logo-steam.svgnu[PK}w\, collection/icon/svg/ios-moon.svgnu[PK}w\rm(collection/icon/svg/md-color-palette.svgnu[PK}w\-Jv'collection/icon/svg/ios-folder-open.svgnu[PK}w\_collection/icon/svg/md-cog.svgnu[PK}w\0KB4collection/icon/svg/md-apps.svgnu[PK}w\|'collection/icon/svg/md-star-outline.svgnu[PK}w\Q?"collection/icon/svg/md-warning.svgnu[PK}w\ץz!collection/icon/svg/md-bowtie.svgnu[PK}w\!%XKKcollection/icon/svg/md-jet.svgnu[PK}w\~-$$!collection/icon/svg/md-female.svgnu[PK}w\E"collection/icon/svg/ios-trophy.svgnu[PK}w\V$collection/icon/svg/md-megaphone.svgnu[PK}w\k%collection/icon/svg/ios-chatboxes.svgnu[PK}w\~collection/icon/svg/md-cut.svgnu[PK}w\dɝ~~!collection/icon/svg/ios-pizza.svgnu[PK}w\CU//collection/icon/svg/logo-vk.svgnu[PK}w\%HqDD"collection/icon/svg/ios-magnet.svgnu[PK}w\2:F.   collection/icon/svg/ios-crop.svgnu[PK}w\2$#collection/icon/svg/logo-nodejs.svgnu[PK}w\1&collection/icon/svg/ios-arrow-down.svgnu[PK}w\Ia||$collection/icon/svg/md-nutrition.svgnu[PK}w\o999 collection/icon/svg/ios-bulb.svgnu[PK}w\spqq"collection/icon/svg/md-fitness.svgnu[PK}w\collection/icon/svg/ios-pin.svgnu[PK}w\?$!collection/icon/svg/md-images.svgnu[PK}w\r  %collection/icon/svg/logo-linkedin.svgnu[PK}w\/66'collection/icon/svg/md-color-filter.svgnu[PK}w\l߮F0collection/icon/svg/md-arrow-dropdown-circle.svgnu[PK}w\˗!collection/icon/svg/md-switch.svgnu[PK}w\J>%collection/icon/svg/md-volume-low.svgnu[PK}w\#"collection/icon/svg/ios-outlet.svgnu[PK}w\ 2&collection/icon/svg/md-trending-up.svgnu[PK}w\kLw%collection/icon/svg/md-cloud-done.svgnu[PK}w\1collection/icon/svg/md-arrow-dropright-circle.svgnu[PK}w\By:?**collection/icon/svg/ios-tv.svgnu[PK}w\Os~~'collection/icon/svg/md-skip-forward.svgnu[PK}w\*'collection/icon/svg/md-battery-full.svgnu[PK}w\`-&collection/icon/svg/md-paper-plane.svgnu[PK}w\Y++.collection/icon/svg/md-help-circle-outline.svgnu[PK}w\u"collection/icon/svg/ios-square.svgnu[PK}w\NU?? collection/icon/svg/ios-text.svgnu[PK}w\4L="collection/icon/svg/ios-ribbon.svgnu[PK}w\ ddcollection/icon/svg/md-cash.svgnu[PK}w\NHEEcollection/icon/svg/md-more.svgnu[PK}w\ X%collection/icon/svg/logo-snapchat.svgnu[PK}w\}collection/icon/svg/md-gift.svgnu[PK}w\L  $collection/icon/svg/ios-aperture.svgnu[PK}w\x1LL!collection/icon/svg/ios-paper.svgnu[PK}w\o|[[2collection/icon/svg/ios-arrow-dropright-circle.svgnu[PK}w\xUY  'collection/icon/svg/ios-fastforward.svgnu[PK}w\7G^^#collection/icon/svg/md-checkbox.svgnu[PK}w\s ,66$collection/icon/svg/logo-dropbox.svgnu[PK}w\zp!collection/icon/svg/logo-xbox.svgnu[PK}w\vф"collection/icon/svg/ios-medkit.svgnu[PK}w\XMM#collection/icon/svg/logo-flickr.svgnu[PK}w\C,T,collection/icon/svg/md-american-football.svgnu[PK}w\ލ(collection/icon/svg/ios-car.svgnu[PK}w\./!collection/icon/svg/ios-print.svgnu[PK}w\k(collection/icon/svg/md-arrow-forward.svgnu[PK}w\,i!collection/icon/svg/ios-radio.svgnu[PK}w\"%collection/icon/svg/md-star.svgnu[PK}w\+r!collection/icon/svg/md-unlock.svgnu[PK}w\20LL$collection/icon/svg/logo-model-s.svgnu[PK}w\~collection/icon/svg/ios-key.svgnu[PK}w\id``$collection/icon/svg/md-backspace.svgnu[PK}w\ } collection/icon/svg/ios-cube.svgnu[PK}w\K collection/icon/svg/ios-copy.svgnu[PK}w\LL(collection/icon/svg/ios-battery-dead.svgnu[PK}w\rܹ collection/icon/svg/ios-leaf.svgnu[PK}w\p9gVV collection/icon/svg/ios-snow.svgnu[PK}w\ fxx collection/icon/svg/md-watch.svgnu[PK}w\gaLL collection/icon/svg/ios-send.svgnu[PK}w\C9  'collection/icon/svg/ios-play-circle.svgnu[PK}w\L9qq#collection/icon/svg/ios-options.svgnu[PK}w\B}nn&collection/icon/svg/md-heart-empty.svgnu[PK}w\V8 8 $collection/icon/svg/ios-baseball.svgnu[PK}w\OOO"collection/icon/svg/md-journal.svgnu[PK}w\=6FF"collection/icon/svg/ios-people.svgnu[PK}w\]c collection/icon/svg/ios-list.svgnu[PK}w\&p'collection/icon/svg/md-thunderstorm.svgnu[PK}w\)&collection/icon/svg/md-volume-mute.svgnu[PK}w\ *collection/icon/svg/ios-reverse-camera.svgnu[PK}w\9y collection/icon/svg/ios-help.svgnu[PK}w\ r0zz collection/icon/svg/md-flash.svgnu[PK}w\%collection/icon/svg/ios-bookmarks.svgnu[PK}w\c&collection/icon/svg/ios-basketball.svgnu[PK}w\oii"collection/icon/svg/md-nuclear.svgnu[PK}w\DQPPcollection/icon/svg/md-pie.svgnu[PK}w\}collection/icon/svg/md-walk.svgnu[PK}w\uu"collection/icon/svg/md-contact.svgnu[PK}w\4C++#collection/icon/svg/md-calendar.svgnu[PK}w\h)collection/icon/svg/ios-heart-dislike.svgnu[PK}w\Ss&"collection/icon/svg/md-shuffle.svgnu[PK}w\OV}FF&collection/icon/svg/logo-bitbucket.svgnu[PK}w\!collection/icon/svg/md-podium.svgnu[PK}w\cK(collection/icon/svg/ios-close-circle.svgnu[PK}w\7_$collection/icon/svg/md-ice-cream.svgnu[PK}w\K&collection/icon/svg/ios-restaurant.svgnu[PK}w\Ms&collection/icon/svg/ios-color-wand.svgnu[PK}w\ƫ33&collection/icon/svg/ios-cloud-done.svgnu[PK}w\e+bb1collection/icon/svg/ios-arrow-dropdown-circle.svgnu[PK}w\Z!collection/icon/svg/md-funnel.svgnu[PK}w\ccollection/icon/svg/md-code.svgnu[PK}w\N$collection/icon/svg/ios-pricetag.svgnu[PK}w\PK}w\:8oo$collection/icon/svg/ios-done-all.svgnu[PK}w\5744!collection/icon/svg/md-magnet.svgnu[PK}w\ !collection/icon/svg/ios-watch.svgnu[PK}w\//"collection/icon/svg/ios-cloudy.svgnu[PK}w\6 d<<!collection/icon/svg/ios-timer.svgnu[PK}w\a⮙ collection/icon/svg/md-timer.svgnu[PK}w\ "collection/icon/svg/logo-apple.svgnu[PK}w\zz0collection/icon/svg/ios-close-circle-outline.svgnu[PK}w\f_&collection/icon/svg/logo-wordpress.svgnu[PK}w\_&collection/icon/svg/ios-heart-half.svgnu[PK}w\H@)!collection/icon/svg/ios-close.svgnu[PK}w\-eC!collection/icon/svg/md-cloudy.svgnu[PK}w\collection/icon/svg/md-help.svgnu[PK}w\x DD+collection/icon/svg/md-arrow-round-back.svgnu[PK}w\Ia22(collection/icon/svg/ios-cloud-upload.svgnu[PK}w\̨d#collection/icon/svg/ios-mic-off.svgnu[PK}w\E collection/icon/svg/ios-play.svgnu[PK}w\XG"collection/icon/svg/md-headset.svgnu[PK}w\Bz__ collection/icon/svg/ios-move.svgnu[PK}w\  "collection/icon/svg/logo-yahoo.svgnu[PK}w\&%collection/icon/svg/ios-stopwatch.svgnu[PK}w\K(collection/icon/svg/md-cloud-outline.svgnu[PK}w\5?2$collection/icon/svg/logo-octocat.svgnu[PK}w\wЬ&&!collection/icon/svg/ios-pause.svgnu[PK}w\E$collection/icon/svg/ios-bookmark.svgnu[PK}w\;QG̩"collection/icon/svg/ios-resize.svgnu[PK}w\s'EEcollection/icon/svg/md-pin.svgnu[PK}w\oi#collection/icon/svg/md-infinite.svgnu[PK}w\[EY>>!collection/icon/svg/logo-xing.svgnu[PK}w\o\collection/icon/svg/md-cube.svgnu[PK}w\kF8ff#collection/icon/svg/md-cellular.svgnu[PK}w\z3P'collection/icon/svg/md-wifi.svgnu[PK}w\7<.ҳ#collection/icon/svg/md-arrow-up.svgnu[PK}w\j== collection/icon/svg/md-build.svgnu[PK}w\"˫[["collection/icon/svg/ios-camera.svgnu[PK}w\z( collection/icon/svg/ios-mail.svgnu[PK}w\d)N"".collection/icon/svg/ios-information-circle.svgnu[PK}w\J&collection/icon/svg/logo-pinterest.svgnu[PK}w\&6PP/collection/icon/svg/ios-arrow-round-forward.svgnu[PK}w\f[collection/icon/svg/md-bug.svgnu[PK}w\HT collection/icon/svg/md-redo.svgnu[PK}w\Ȓ'collection/icon/svg/ios-speedometer.svgnu[PK}w\,!collection/icon/svg/md-resize.svgnu[PK}w\P(((collection/icon/svg/md-code-download.svgnu[PK}w\) collection/icon/svg/md-sunny.svgnu[PK}w\}l &collection/icon/svg/md-git-compare.svgnu[PK}w\Xgg collection/icon/svg/ios-gift.svgnu[PK}w\Lk$collection/icon/svg/ios-navigate.svgnu[PK}w\-VFll!collection/icon/svg/md-locate.svgnu[PK}w\#collection/icon/svg/md-document.svgnu[PK}w\7+++collection/icon/svg/md-radio-button-off.svgnu[PK}w\ Q'collection/icon/svg/logo-foursquare.svgnu[PK}w\$!collection/icon/svg/md-expand.svgnu[PK}w\xr 3collection/icon/svg/md-checkmark-circle-outline.svgnu[PK}w\ՈF1collection/icon/svg/ios-notifications-outline.svgnu[PK}w\{F collection/icon/svg/ios-rose.svgnu[PK}w\collection/icon/svg/md-body.svgnu[PK}w\0XX%collection/icon/svg/logo-whatsapp.svgnu[PK}w\(PK}w\D*JJcollection/icon/svg/ios-add.svgnu[PK}w\ gww)collection/icon/svg/ios-musical-notes.svgnu[PK}w\'%collection/icon/svg/logo-dribbble.svgnu[PK}w\C{z'collection/icon/svg/ios-volume-high.svgnu[PK}w\01collection/icon/svg/ios-at.svgnu[PK}w\$ #collection/icon/svg/ios-eye-off.svgnu[PK}w\$KII!collection/icon/svg/md-keypad.svgnu[PK}w\R:9!collection/icon/svg/ios-share.svgnu[PK}w\`+ collection/icon/svg/md-trash.svgnu[PK}w\,1GG%collection/icon/svg/md-color-wand.svgnu[PK}w\vAGG#collection/icon/svg/ios-bonfire.svgnu[PK}w\Ok+#collection/icon/svg/md-football.svgnu[PK}w\vjOO collection/icon/svg/ios-male.svgnu[PK}w\WPHH(collection/icon/svg/ios-star-outline.svgnu[PK}w\<$collection/icon/svg/md-briefcase.svgnu[PK}w\)x33 collection/icon/svg/ios-cash.svgnu[PK}w\;ZWW4collection/icon/svg/ios-checkmark-circle-outline.svgnu[PK}w\aacollection/icon/svg/md-disc.svgnu[PK}w\U#collection/icon/svg/ios-log-out.svgnu[PK}w\%collection/icon/svg/ios-clipboard.svgnu[PK}w\=D collection/icon/svg/md-flask.svgnu[PK}w\@YYcollection/icon/svg/index.jsnu[ require.context('!!file-loader?name=[name].[ext]&outputPath=svg!./', false, /.svg$/); PK}w\@#collection/icon/svg/ios-nuclear.svgnu[PK}w\,^"collection/icon/svg/ios-remove.svgnu[PK}w\}kk%collection/icon/svg/ios-share-alt.svgnu[PK}w\ collection/icon/svg/md-train.svgnu[PK}w\nYY collection/icon/svg/ios-walk.svgnu[PK}w\o!collection/icon/svg/ios-today.svgnu[PK}w\<94 collection/icon/svg/ios-beer.svgnu[PK}w\yDkk#collection/icon/svg/ios-desktop.svgnu[PK}w\k)collection/icon/svg/ios-color-palette.svgnu[PK}w\)Uʫ+collection/icon/svg/md-battery-charging.svgnu[PK}w\5Pf""%collection/icon/svg/ios-pricetags.svgnu[PK}w\4 collection/icon/svg/ios-pint.svgnu[PK}w\Y]* ??*collection/icon/svg/ios-arrow-dropdown.svgnu[PK}w\ e''%collection/icon/svg/md-git-commit.svgnu[PK}w\O6 collection/icon/svg/logo-yen.svgnu[PK}w\7&collection/icon/svg/ios-person-add.svgnu[PK}w\rt!collection/icon/svg/ios-heart.svgnu[PK}w\pcollection/icon/svg/ios-mic.svgnu[PK}w\&W(collection/icon/svg/md-notifications.svgnu[PK}w\t7Y!collection/icon/svg/ios-stats.svgnu[PK}w\I@"collection/icon/svg/md-medical.svgnu[PK}w\5aԎ#collection/icon/svg/md-navigate.svgnu[PK}w\wN$collection/icon/svg/md-flash-off.svgnu[PK}w\$collection/icon/svg/md-analytics.svgnu[PK}w\RN collection/icon/svg/md-close.svgnu[PK}w\{$collection/icon/svg/md-recording.svgnu[PK}w\.$1  %collection/icon/svg/ios-git-merge.svgnu[PK}w\ll&collection/icon/svg/logo-instagram.svgnu[PK}w\I n԰collection/icon/svg/md-map.svgnu[PK}w\u !collection/icon/svg/md-person.svgnu[PK}w\ zcollection/icon/svg/md-sync.svgnu[PK}w\@#i i !collection/icon/svg/logo-sass.svgnu[PK}w\fo88"collection/icon/svg/ios-filing.svgnu[PK}w\5VV!collection/icon/svg/ios-rainy.svgnu[PK}w\1~VVcollection/icon/svg/ios-eye.svgnu[PK}w\Y  "collection/icon/svg/ios-rewind.svgnu[PK}w\Bcollection/icon/svg/md-list.svgnu[PK}w\ collection/icon/svg/md-share.svgnu[PK}w\Ͷg$collection/icon/svg/ios-umbrella.svgnu[PK}w\o$I99!collection/icon/svg/ios-cloud.svgnu[PK}w\LNN)collection/icon/svg/md-cloud-download.svgnu[PK}w\+j%collection/icon/svg/ios-hourglass.svgnu[PK}w\Y$collection/icon/svg/ios-checkbox.svgnu[PK}w\n%T&collection/icon/svg/md-folder-open.svgnu[PK}w\`/%collection/icon/svg/md-tennisball.svgnu[PK}w\o&mKK%collection/icon/svg/ios-checkmark.svgnu[PK}w\[h((,collection/icon/svg/md-notifications-off.svgnu[PK}w\ss*collection/icon/svg/md-radio-button-on.svgnu[PK}w\XX collection/icon/svg/ios-call.svgnu[PK}w\^collection/icon/svg/md-egg.svgnu[PK}w\uu collection/icon/svg/ios-card.svgnu[PK}w\[collection/icon/svg/md-pint.svgnu[PK}w\iKLbgg&collection/icon/svg/ios-volume-off.svgnu[PK}w\g$collection/icon/svg/logo-polymer.svgnu[PK}w\=1collection/icon/svg/md-bus.svgnu[PK}w\܇$collection/icon/svg/logo-windows.svgnu[PK}w\^1s s collection/icon/svg/logo-tux.svgnu[PK}w\:(x"collection/icon/svg/md-bonfire.svgnu[PK}w\G!collection/icon/svg/md-rocket.svgnu[PK}w\d%#collection/icon/svg/md-aperture.svgnu[PK}w\۷collection/icon/svg/md-man.svgnu[PK}w\bj"collection/icon/svg/md-barcode.svgnu[PK}w\ #collection/icon/svg/ios-fitness.svgnu[PK}w\Vcollection/icon/svg/md-undo.svgnu[PK}w\ށcollection/icon/svg/md-tv.svgnu[PK}w\ٸ||!collection/icon/svg/ios-sunny.svgnu[PK}w\/6collection/icon/svg/ios-information-circle-outline.svgnu[PK}w\e#collection/icon/svg/md-bookmark.svgnu[PK}w\E(collection/icon/svg/ios-code-working.svgnu[PK}w\9A!collection/icon/svg/md-ribbon.svgnu[PK}w\*ZC collection/icon/svg/ios-disc.svgnu[PK}w\y(collection/icon/svg/md-skip-backward.svgnu[PK}w\ꫢNN,collection/icon/svg/ios-arrow-round-back.svgnu[PK}w\nٝ+#collection/icon/svg/md-airplane.svgnu[PK}w\ CA_#collection/icon/svg/md-list-box.svgnu[PK}w\f"!collection/icon/svg/md-people.svgnu[PK}w\ collection/icon/svg/ios-lock.svgnu[PK}w\`'collection/icon/svg/ios-thumbs-down.svgnu[PK}w\j!collection/icon/svg/md-square.svgnu[PK}w\GOO.collection/icon/svg/md-arrow-round-forward.svgnu[PK}w\Q(collection/icon/svg/ios-return-right.svgnu[PK}w\u2#collection/icon/svg/logo-tumblr.svgnu[PK}w\[ii"collection/icon/svg/md-options.svgnu[PK}w\q6]]/collection/icon/svg/ios-arrow-dropup-circle.svgnu[PK}w\, *aa1collection/icon/svg/ios-arrow-dropleft-circle.svgnu[PK}w\Sr%collection/icon/svg/ios-megaphone.svgnu[PK}w\*#collection/icon/svg/ios-refresh.svgnu[PK}w\`”>!collection/icon/svg/ios-happy.svgnu[PK}w\PII!collection/icon/svg/ios-flask.svgnu[PK}w\w;;collection/icon/svg/ios-sad.svgnu[PK}w\%5Jɴcollection/icon/svg/md-lock.svgnu[PK}w\GK%collection/icon/svg/ios-thumbs-up.svgnu[PK}w\e5`+collection/icon/svg/ios-phone-landscape.svgnu[PK}w\,0R*collection/icon/svg/ios-phone-portrait.svgnu[PK}w\ox%collection/icon/svg/logo-markdown.svgnu[PK}w\l˩!collection/icon/svg/ios-build.svgnu[PK}w\X@7"collection/icon/svg/ios-create.svgnu[PK}w\92)collection/icon/svg/ios-arrow-forward.svgnu[PK}w\Y,collection/icon/svg/ios-tablet-landscape.svgnu[PK}w\sDdd%collection/icon/svg/logo-facebook.svgnu[PK}w\4QQcollection/icon/svg/ios-jet.svgnu[PK}w\9:0collection/icon/svg/md-arrow-dropleft-circle.svgnu[PK}w\@v5$collection/icon/svg/ios-arrow-up.svgnu[PK}w\_a$collection/icon/svg/ios-videocam.svgnu[PK}w\k${{&collection/icon/svg/md-mail-unread.svgnu[PK}w\LbGgg&collection/icon/svg/ios-calculator.svgnu[PK}w\3Lmm"collection/icon/svg/ios-rocket.svgnu[PK}w\LU+collection/icon/svg/md-checkmark-circle.svgnu[PK}w\Rus collection/icon/svg/md-clock.svgnu[PK}w\PK}w\E]MM$collection/icon/svg/md-mail-open.svgnu[PK}w\@~S"collection/icon/svg/ios-laptop.svgnu[PK}w\%CWW$collection/icon/svg/ios-document.svgnu[PK}w\>Oss$collection/icon/svg/ios-appstore.svgnu[PK}w\ucollection/icon/svg/md-move.svgnu[PK}w\$collection/icon/svg/ios-contacts.svgnu[PK}w\ץ!collection/icon/svg/md-photos.svgnu[PK}w\j&collection/icon/svg/ios-arrow-back.svgnu[PK}w\egg!collection/icon/svg/ios-medal.svgnu[PK}w\qea!collection/icon/svg/ios-image.svgnu[PK}w\Scollection/icon/svg/md-text.svgnu[PK}w\o'collection/icon/svg/ios-return-left.svgnu[PK}w\U+ collection/icon/svg/ios-cafe.svgnu[PK}w\ĥ7!collection/icon/svg/md-basket.svgnu[PK}w\.$collection/icon/svg/md-pricetags.svgnu[PK}w\JdoSS!collection/icon/svg/md-flower.svgnu[PK}w\-(collection/icon/svg/ios-thunderstorm.svgnu[PK}w\5collection/icon/svg/ios-paw.svgnu[PK}w\+]].collection/icon/svg/logo-game-controller-b.svgnu[PK}w\%H"collection/icon/svg/ios-search.svgnu[PK}w\*!collection/icon/svg/logo-euro.svgnu[PK}w\|Lrr&collection/icon/svg/md-git-network.svgnu[PK}w\y*collection/icon/svg/md-phone-landscape.svgnu[PK}w\}fiicollection/icon/svg/md-play.svgnu[PK}w\ H"collection/icon/svg/ios-school.svgnu[PK}w\  "collection/icon/svg/logo-vimeo.svgnu[PK}w\kNN"collection/icon/svg/ios-expand.svgnu[PK}w\3{凧"collection/icon/svg/ios-podium.svgnu[PK}w\J!! collection/icon/svg/ios-save.svgnu[PK}w\J[{{%collection/icon/svg/ios-mail-open.svgnu[PK}w\S3Ӭ#collection/icon/svg/ios-glasses.svgnu[PK}w\m_collection/icon/svg/ios-man.svgnu[PK}w\ LL#collection/icon/svg/md-appstore.svgnu[PK}w\m collection/icon/svg/ios-film.svgnu[PK}w\44 collection/icon/svg/logo-usd.svgnu[PK}w\p{!!#collection/icon/svg/md-contrast.svgnu[PK}w\(O)collection/icon/svg/ios-skip-backward.svgnu[PK}w\@!collection/icon/svg/ios-water.svgnu[PK}w\KXg\\ collection/icon/svg/md-power.svgnu[PK}w\P` collection/icon/svg/md-pause.svgnu[PK}w\,Cx,collection/icon/svg/ios-battery-charging.svgnu[PK}w\ǭҨ collection/icon/svg/ios-redo.svgnu[PK}w\T쀧  !collection/icon/svg/ios-quote.svgnu[PK}w\b7WW!collection/icon/svg/ios-flame.svgnu[PK}w\5ZZ#collection/icon/svg/md-pricetag.svgnu[PK}w\pFnn)collection/icon/svg/logo-designernews.svgnu[PK}w\(z44*collection/icon/svg/ios-cloud-download.svgnu[PK}w\ LL,collection/icon/svg/ios-arrow-round-down.svgnu[PK}w\kWb44$collection/icon/svg/ios-football.svgnu[PK}w\p [ddcollection/icon/svg/md-film.svgnu[PK}w\ϩcollection/icon/svg/md-leaf.svgnu[PK}w\v/0collection/icon/svg/md-remove-circle-outline.svgnu[PK}w\ collection/icon/svg/ios-link.svgnu[PK}w\wkq!collection/icon/svg/md-beaker.svgnu[PK}w\cF collection/icon/svg/md-globe.svgnu[PK}w\2yy#collection/icon/svg/md-settings.svgnu[PK}w\#collection/icon/svg/md-contract.svgnu[PK}w\lM collection/icon/svg/md-water.svgnu[PK}w\fyZ'collection/icon/svg/md-cloud-circle.svgnu[PK}w\ #collection/icon/svg/md-download.svgnu[PK}w\8O""%collection/icon/svg/ios-ice-cream.svgnu[PK}w\=)collection/icon/svg/md-reverse-camera.svgnu[PK}w\ +collection/icon/svg/md-paw.svgnu[PK}w\DD&collection/icon/svg/ios-git-branch.svgnu[PK}w\E%~'collection/icon/svg/md-musical-note.svgnu[PK}w\?a!collection/icon/svg/md-laptop.svgnu[PK}w\t"KK!collection/icon/svg/md-log-in.svgnu[PK}w\=Fcollection/icon/svg/ios-bed.svgnu[PK}w\!A$collection/icon/svg/md-checkmark.svgnu[PK}w\%collection/icon/svg/ios-flash-off.svgnu[PK}w\ collection/icon/svg/ios-cog.svgnu[PK}w\%ا"collection/icon/svg/ios-keypad.svgnu[PK}w\@%collection/icon/svg/ios-briefcase.svgnu[PK}w\N"collection/icon/svg/md-glasses.svgnu[PK}w\+'collection/icon/svg/ios-information.svgnu[PK}w\|}EE+collection/icon/svg/ios-radio-button-on.svgnu[PK}w\v collection/icon/svg/md-woman.svgnu[PK}w\]?ff!collection/icon/svg/md-filing.svgnu[PK}w\E %% collection/icon/svg/md-cloud.svgnu[PK}w\N'&collection/icon/svg/ios-git-commit.svgnu[PK}w\cE&& collection/icon/svg/ios-grid.svgnu[PK}w\66#collection/icon/svg/md-done-all.svgnu[PK}w\E̊(collection/icon/svg/ios-cloud-circle.svgnu[PK}w\qYY&collection/icon/svg/md-help-circle.svgnu[PK}w\v$collection/icon/svg/logo-youtube.svgnu[PK}w\1Xcollection/icon/svg/md-boat.svgnu[PK}w\"笴!collection/icon/svg/md-wallet.svgnu[PK}w\2$collection/icon/svg/md-clipboard.svgnu[PK}w\3rN$collection/icon/svg/md-bluetooth.svgnu[PK}w\:`p collection/icon/svg/md-print.svgnu[PK}w\P)collection/icon/svg/ios-code-download.svgnu[PK}w\(collection/icon/svg/md-remove-circle.svgnu[PK}w\4~7&&"collection/icon/svg/md-mic-off.svgnu[PK}w\$K~%collection/icon/svg/md-arrow-down.svgnu[PK}w\+p!collection/icon/svg/ios-trash.svgnu[PK}w\F}y  -collection/icon/svg/ios-american-football.svgnu[PK}w\'Zv%collection/icon/svg/logo-ionitron.svgnu[PK}w\[###collection/icon/svg/ios-headset.svgnu[PK}w\ENN(collection/icon/svg/ios-partly-sunny.svgnu[PK}w\  .collection/icon/svg/ios-add-circle-outline.svgnu[PK}w\ Ҫcollection/icon/svg/md-cafe.svgnu[PK}w\mQK(SScollection/icon/svg/ios-map.svgnu[PK}w\lyy%collection/icon/svg/md-calculator.svgnu[PK}w\zsh:"collection/icon/svg/md-reorder.svgnu[PK}w\>!collection/icon/svg/ios-flash.svgnu[PK}w\pii'collection/icon/svg/md-arrow-dropup.svgnu[PK}w\*q$collection/icon/svg/logo-bitcoin.svgnu[PK}w\BFm collection/icon/svg/ios-more.svgnu[PK}w\U'collection/icon/svg/ios-trending-up.svgnu[PK}w\99collection/icon/svg/md-key.svgnu[PK}w\(collection/icon/svg/md-heart-dislike.svgnu[PK}w\"collection/icon/svg/ios-unlock.svgnu[PK}w\dd collection/icon/svg/md-alarm.svgnu[PK}w\z!collection/icon/svg/md-planet.svgnu[PK}w\ (Μ#collection/icon/svg/ios-compass.svgnu[PK}w\a)collection/icon/svg/md-refresh-circle.svgnu[PK}w\.!collection/icon/svg/md-cart.svgnu[PK}w\``&collection/icon/svg/ios-tennisball.svgnu[PK}w\;MM*collection/icon/svg/ios-arrow-round-up.svgnu[PK}w\| collection/icon/svg/md-flame.svgnu[PK}w\H%collection/icon/svg/ios-nutrition.svgnu[PK}w\.'collection/icon/svg/logo-hackernews.svgnu[PK}w\.Nl33'collection/icon/svg/ios-volume-mute.svgnu[PK}w\Ѣɐcollection/icon/svg/md-menu.svgnu[PK}w\5NM|| collection/icon/svg/logo-rss.svgnu[PK}w\u)collection/icon/svg/md-phone-portrait.svgnu[PK}w\??collection/icon/svg/md-mail.svgnu[PK}w\ۅQ)$collection/icon/svg/ios-contrast.svgnu[PK}w\~&collection/icon/svg/md-speedometer.svgnu[PK}w\  "collection/icon/svg/ios-planet.svgnu[PK}w\7$-::"collection/icon/svg/md-log-out.svgnu[PK}w\F",collection/icon/svg/ios-bug.svgnu[PK}w\k  "collection/icon/svg/logo-skype.svgnu[PK}w\cr collection/icon/svg/md-pulse.svgnu[PK}w\k3$'collection/icon/svg/ios-heart-empty.svgnu[PK}w\Zcollection/icon/svg/md-mic.svgnu[PK}w\Pc$collection/icon/svg/ios-download.svgnu[PK}w\(collection/icon/svg/md-trending-down.svgnu[PK}w\KyV V (collection/icon/svg/ios-finger-print.svgnu[PK}w\1UFFcollection/icon/svg/md-bulb.svgnu[PK}w\8iGG)collection/icon/svg/md-arrow-round-up.svgnu[PK}w\&^$collection/icon/svg/ios-settings.svgnu[PK}w\-collection/icon/svg/md-information-circle.svgnu[PK}w\sztcollection/icon/svg/md-home.svgnu[PK}w\U%!collection/icon/svg/md-folder.svgnu[PK}w\4 f$collection/icon/svg/ios-infinite.svgnu[PK}w\eʵW%%$collection/icon/svg/md-help-buoy.svgnu[PK}w\v7Tcollection/icon/svg/md-wine.svgnu[PK}w\G00%collection/icon/svg/md-color-fill.svgnu[PK}w\:$y  !collection/icon/svg/md-subway.svgnu[PK}w\R!collection/icon/svg/ios-brush.svgnu[PK}w\f= collection/icon/svg/ios-undo.svgnu[PK}w\᜻*collection/icon/svg/ios-square-outline.svgnu[PK}w\e collection/icon/svg/ios-open.svgnu[PK}w\Fl!collection/icon/svg/md-repeat.svgnu[PK}w\x{'collection/icon/svg/ios-mail-unread.svgnu[PK}w\ukM%collection/icon/svg/md-arrow-back.svgnu[PK}w\X"collection/icon/svg/ios-female.svgnu[PK}w\a%collection/icon/svg/ios-construct.svgnu[PK}w\İUcollection/icon/svg/md-send.svgnu[PK}w\ X'collection/icon/svg/ios-transgender.svgnu[PK}w\Qo.collection/icon/svg/md-arrow-dropup-circle.svgnu[PK}w\PK}w\&`=collection/icon/svg/md-swap.svgnu[PK}w\P`` collection/icon/svg/md-medal.svgnu[PK}w\vv collection/icon/svg/md-radio.svgnu[PK}w\믣 collection/icon/svg/ios-star.svgnu[PK}w\3'!collection/icon/svg/ios-pulse.svgnu[PK}w\Bbb(collection/icon/svg/md-musical-notes.svgnu[PK}w\_IIcollection/icon/svg/md-rose.svgnu[PK}w\ʏ'collection/icon/svg/md-partly-sunny.svgnu[PK}w\Cc;&collection/icon/svg/ios-add-circle.svgnu[PK}w\kY&collection/icon/svg/md-moon.svgnu[PK}w\ DD,collection/icon/svg/ios-git-pull-request.svgnu[PK}w\PK}w\G!ZZ!collection/icon/svg/logo-css3.svgnu[PK}w\".3$collection/icon/svg/logo-android.svgnu[PK}w\`%&collection/icon/svg/ios-qr-scanner.svgnu[PK}w\0 collection/icon/svg/ios-book.svgnu[PK}w\  collection/icon/svg/md-happy.svgnu[PK}w\Jj#collection/icon/svg/md-videocam.svgnu[PK}w\[%   collection/icon/svg/ios-cart.svgnu[PK}w\II#collection/icon/svg/ios-journal.svgnu[PK}w\=gPii*collection/icon/svg/md-arrow-dropright.svgnu[PK}w\T#collection/icon/svg/logo-google.svgnu[PK}w\* "collection/icon/svg/ios-repeat.svgnu[PK}w\wR#collection/icon/svg/md-browsers.svgnu[PK}w\$collection/icon/svg/md-share-alt.svgnu[PK}w\Xz%collection/icon/svg/ios-recording.svgnu[PK}w\Aw̧!collection/icon/svg/md-rewind.svgnu[PK}w\"collection/icon/svg/ios-switch.svgnu[PK}w\1'collection/icon/svg/ios-git-network.svgnu[PK}w\ collection/icon/svg/md-alert.svgnu[PK}w\!collection/icon/svg/ios-globe.svgnu[PK}w\Bc҉'collection/icon/svg/ios-chatbubbles.svgnu[PK}w\-^o"collection/icon/svg/logo-slack.svgnu[PK}w\1collection/icon/svg/md-eye.svgnu[PK}w\ "collection/icon/svg/ios-flower.svgnu[PK}w\j)collection/icon/svg/ios-remove-circle.svgnu[PK}w\ B'PVV&collection/icon/svg/ios-microphone.svgnu[PK}w\;+U'collection/icon/svg/logo-googleplus.svgnu[PK}w\О,collection/icon/svg/ios-checkmark-circle.svgnu[PK}w\nj*ڨ collection/icon/svg/ios-exit.svgnu[PK}w\sa2L&collection/icon/svg/md-return-left.svgnu[PK}w\|"dd&collection/icon/svg/ios-color-fill.svgnu[PK}w\i  (collection/icon/svg/ios-cloudy-night.svgnu[PK}w\.Dcollection/icon/svg/md-call.svgnu[PK}w\P-55$collection/icon/svg/logo-codepen.svgnu[PK}w\蟤hhcollection/icon/svg/md-flag.svgnu[PK}w\Ө&ff!collection/icon/svg/md-trophy.svgnu[PK}w\u&&Dii)collection/icon/svg/md-arrow-dropdown.svgnu[PK}w\mL")collection/icon/svg/md-square-outline.svgnu[PK}w\ۺCC*collection/icon/svg/ios-arrow-dropleft.svgnu[PK}w\$>'collection/icon/svg/md-return-right.svgnu[PK}w\ǁQQ'collection/icon/svg/md-cloud-upload.svgnu[PK}w\Stt%collection/icon/svg/ios-bluetooth.svgnu[PK}w\0={{#collection/icon/svg/ios-contact.svgnu[PK}w\P)(collection/icon/svg/ios-skip-forward.svgnu[PK}w\C%collection/icon/svg/ios-help-buoy.svgnu[PK}w\ RR collection/icon/svg/md-easel.svgnu[PK}w\ $$&collection/icon/svg/ios-volume-low.svgnu[PK}w\{RR&collection/icon/svg/md-chatbubbles.svgnu[PK}w\K٪!collection/icon/svg/ios-easel.svgnu[PK}w\0 'collection/icon/svg/ios-git-compare.svgnu[PK}w\=D%collection/icon/svg/md-qr-scanner.svgnu[PK}w\? <88"collection/icon/svg/ios-wallet.svgnu[PK}w\c@@(collection/icon/svg/ios-arrow-dropup.svgnu[PK}w\p/collection/icon/svg/md-close-circle-outline.svgnu[PK}w\!,,'collection/icon/svg/logo-no-smoking.svgnu[PK}w\{(collection/icon/svg/ios-musical-note.svgnu[PK}w\YY"collection/icon/svg/ios-albums.svgnu[PK}w\(yy%collection/icon/svg/md-volume-off.svgnu[PK}w\IXVcollection/icon/svg/md-bed.svgnu[PK}w\Иr#collection/icon/svg/ios-reorder.svgnu[PK}w\d78$collection/icon/svg/logo-angular.svgnu[PK}w\ 66*collection/icon/svg/md-tablet-portrait.svgnu[PK}w\:"collection/icon/svg/md-eye-off.svgnu[PK}w\X?$collection/icon/svg/md-chatboxes.svgnu[PK}w\`/collection/icon/svg/ios-help-circle-outline.svgnu[PK}w\y$collection/icon/svg/ios-calendar.svgnu[PK}w\},,collection/icon/svg/md-save.svgnu[PK}w\OЩ$collection/icon/svg/md-bookmarks.svgnu[PK}w\B* r collection/icon/svg/md-quote.svgnu[PK}w\T"collection/icon/svg/ios-locate.svgnu[PK}w\lQ(collection/icon/svg/ios-color-filter.svgnu[PK}w\iF%collection/icon/svg/md-person-add.svgnu[PK}w\uعԄ$collection/icon/svg/ios-business.svgnu[PK}w\%collection/icon/svg/md-basketball.svgnu[PK}w\77collection/icon/svg/md-book.svgnu[PK}w\"collection/icon/svg/ios-person.svgnu[PK}w\ZG11&collection/icon/svg/md-transgender.svgnu[PK}w\0ll!collection/icon/svg/md-outlet.svgnu[PK}w\ ~~'collection/icon/svg/md-close-circle.svgnu[PK}w\%collection/icon/svg/md-restaurant.svgnu[PK}w\n+#collection/icon/svg/logo-twitch.svgnu[PK}w\|QQ!collection/icon/svg/ios-clock.svgnu[PK}w\Ckk$collection/icon/svg/ios-browsers.svgnu[PK}w\1LL"collection/icon/svg/logo-ionic.svgnu[PK}w\>mm"collection/icon/svg/md-compass.svgnu[PK}w\ˆ%%collection/icon/svg/md-git-branch.svgnu[PK}w\Ƕ collection/icon/svg/md-today.svgnu[PK}w\dITTcollection/icon/svg/md-open.svgnu[PK}w\tNEE#collection/icon/svg/ios-barcode.svgnu[PK}w\=@eecollection/icon/svg/md-link.svgnu[PK}w\z[[0collection/icon/svg/md-notifications-outline.svgnu[PK}w\G+$collection/icon/svg/md-star-half.svgnu[PK}w\0r"collection/icon/svg/md-archive.svgnu[PK}w\P@@#collection/icon/svg/logo-python.svgnu[PK}w\crr!collection/icon/svg/ios-power.svgnu[PK}w\pRPP#collection/icon/svg/ios-warning.svgnu[PK}w\iK collection/icon/svg/ios-wine.svgnu[PK}w\"collection/icon/svg/ios-bowtie.svgnu[PK}w\x2!)collection/icon/svg/ios-trending-down.svgnu[PK}w\ collection/icon/svg/ios-home.svgnu[PK}w\#collection/icon/svg/ios-shuffle.svgnu[PK}w\d)FF collection/icon/svg/ios-menu.svgnu[PK}w\Gw%collection/icon/svg/ios-star-half.svgnu[PK}w\ɐW!collection/icon/svg/md-school.svgnu[PK}w\Xee collection/icon/svg/ios-boat.svgnu[PK}w\U(collection/icon/svg/ios-battery-full.svgnu[PK}w\m<<%collection/icon/svg/md-microphone.svgnu[PK}w\{ PP"collection/icon/svg/logo-html5.svgnu[PK}w\ڤWcollection/icon/svg/md-add.svgnu[PK}w\%ODD collection/icon/svg/md-heart.svgnu[PK}w\;hh+collection/icon/svg/md-checkbox-outline.svgnu[PK}w\;(!collection/icon/svg/md-hammer.svgnu[PK}w\[9zzcollection/icon/svg/md-beer.svgnu[PK}w\ W +collection/icon/svg/md-git-pull-request.svgnu[PK}w\苷33!collection/icon/svg/ios-shirt.svgnu[PK}w\xcollection/icon/svg/md-snow.svgnu[PK}w\J collection/icon/svg/logo-npm.svgnu[PK}w\},collection/icon/svg/ios-checkbox-outline.svgnu[PK}w\l5zZ Z #collection/collection-manifest.jsonnu[{ "components": [ { "tag": "ion-icon", "dependencies": [], "componentClass": "Icon", "componentPath": "icon/icon.js", "styles": { "$": { "stylePaths": [ "icon/icon.css" ] } }, "assetPaths": [ "icon/svg" ], "props": [ { "name": "ariaLabel", "type": "String", "mutable": true, "reflectToAttr": true, "attr": "aria-label" }, { "name": "color", "type": "String", "attr": "color" }, { "name": "icon", "type": "String", "attr": "icon", "watch": [ "loadIcon" ] }, { "name": "ios", "type": "String", "attr": "ios" }, { "name": "lazy", "type": "Boolean", "attr": "lazy" }, { "name": "md", "type": "String", "attr": "md" }, { "name": "mode", "type": "String", "attr": "mode" }, { "name": "name", "type": "String", "attr": "name", "watch": [ "loadIcon" ] }, { "name": "size", "type": "String", "attr": "size" }, { "name": "src", "type": "String", "attr": "src", "watch": [ "loadIcon" ] } ], "states": [ { "name": "isVisible" }, { "name": "svgContent" } ], "context": [ { "name": "isServer", "id": "isServer" }, { "name": "resourcesUrl", "id": "resourcesUrl" }, { "name": "doc", "id": "document" }, { "name": "win", "id": "window" } ], "hostElement": { "name": "el" }, "shadow": true } ], "collections": [], "compiler": { "name": "@stencil/core", "version": "0.14.0-4", "typescriptVersion": "2.9.2" }, "bundles": [] }PK}w\collection/interface.jsnu[PK}w\ޭdd ionicons.jsnu[/*! * Built with http://stenciljs.com * 2018-09-14T16:08:06 */ !function(e,t,n,r,i,o,s,c,a,l,u,d,p,m){for((u=e.ionicons=e.ionicons||{}).components=a,(p=a.map(function(e){return e[0]})).length&&((d=t.createElement("style")).innerHTML=p.join()+"{visibility:hidden}.hydrated{visibility:inherit}",d.setAttribute("data-styles",""),p=t.head.querySelector("meta[charset]"),t.head.insertBefore(d,p?p.nextSibling:t.head.firstChild)),function(e,t,n){(e["s-apps"]=e["s-apps"]||[]).push("ionicons"),n.componentOnReady||(n.componentOnReady=function(){var t=this;function n(n){if(t.nodeName.indexOf("-")>0){for(var r=e["s-apps"],i=0,o=0;o=0&&!(m=p[d]).src&&!m.hasAttribute("data-resources-url");d--);p=m.getAttribute("data-resources-url"),!i&&p&&(i=p),!i&&m.src&&(i=(p=m.src.split("/").slice(0,-1)).join("/")+(p.length?"/":"")+"ionicons/"),d=t.createElement("script"),function(e,t,n,r){return!(t.search.indexOf("core=esm")>0)&&(!(!(t.search.indexOf("core=es5")>0||"file:"===t.protocol)&&e.customElements&&e.customElements.define&&e.fetch&&e.CSS&&e.CSS.supports&&e.CSS.supports("color","var(--c)")&&"noModule"in n)||function(e){try{return new Function('import("")'),!1}catch(e){}return!0}())}(e,e.location,d)?d.src=i+"ionicons.z9r2cndl.js":(d.src=i+"ionicons.uhp57gzi.js",d.setAttribute("type","module"),d.setAttribute("crossorigin",!0)),d.setAttribute("data-resources-url",i),d.setAttribute("data-namespace","ionicons"),t.head.appendChild(d)}(window,document,0,0,0,0,0,0,[["ion-icon","esckjbl8",1,[["ariaLabel",2,1,"aria-label",2],["color",1,0,1,2],["doc",4,0,0,0,"document"],["el",64],["icon",1,0,1,2],["ios",1,0,1,2],["isServer",4,0,0,0,"isServer"],["isVisible",16],["lazy",1,0,1,4],["md",1,0,1,2],["mode",1,0,1,2],["name",1,0,1,2],["resourcesUrl",4,0,0,0,"resourcesUrl"],["size",1,0,1,2],["src",1,0,1,2],["svgContent",16],["win",4,0,0,0,"window"]],1]],HTMLElement.prototype);PK]x\^::umd/ReactDnD.jsnu[(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : (global = global || self, factory(global.ReactDnD = {}, global.React)); }(this, (function (exports, React) { 'use strict'; var HandlerRole; (function (HandlerRole) { HandlerRole["SOURCE"] = "SOURCE"; HandlerRole["TARGET"] = "TARGET"; })(HandlerRole || (HandlerRole = {})); function symbolObservablePonyfill(root) { var result; var Symbol = root.Symbol; if (typeof Symbol === 'function') { if (Symbol.observable) { result = Symbol.observable; } else { result = Symbol('observable'); Symbol.observable = result; } } else { result = '@@observable'; } return result; } /* global window */ var root; if (typeof self !== 'undefined') { root = self; } else if (typeof window !== 'undefined') { root = window; } else if (typeof global !== 'undefined') { root = global; } else if (typeof module !== 'undefined') { root = module; } else { root = Function('return this')(); } var result = symbolObservablePonyfill(root); /** * These are private action types reserved by Redux. * For any unknown actions, you must return the current state. * If the current state is undefined, you must return the initial state. * Do not reference these action types directly in your code. */ var randomString = function randomString() { return Math.random().toString(36).substring(7).split('').join('.'); }; var ActionTypes = { INIT: "@@redux/INIT" + randomString(), REPLACE: "@@redux/REPLACE" + randomString(), PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() { return "@@redux/PROBE_UNKNOWN_ACTION" + randomString(); } }; /** * @param {any} obj The object to inspect. * @returns {boolean} True if the argument appears to be a plain object. */ function isPlainObject(obj) { if (typeof obj !== 'object' || obj === null) return false; var proto = obj; while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto); } return Object.getPrototypeOf(obj) === proto; } /** * Creates a Redux store that holds the state tree. * The only way to change the data in the store is to call `dispatch()` on it. * * There should only be a single store in your app. To specify how different * parts of the state tree respond to actions, you may combine several reducers * into a single reducer function by using `combineReducers`. * * @param {Function} reducer A function that returns the next state tree, given * the current state tree and the action to handle. * * @param {any} [preloadedState] The initial state. You may optionally specify it * to hydrate the state from the server in universal apps, or to restore a * previously serialized user session. * If you use `combineReducers` to produce the root reducer function, this must be * an object with the same shape as `combineReducers` keys. * * @param {Function} [enhancer] The store enhancer. You may optionally specify it * to enhance the store with third-party capabilities such as middleware, * time travel, persistence, etc. The only store enhancer that ships with Redux * is `applyMiddleware()`. * * @returns {Store} A Redux store that lets you read the state, dispatch actions * and subscribe to changes. */ function createStore(reducer, preloadedState, enhancer) { var _ref2; if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') { throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.'); } if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { enhancer = preloadedState; preloadedState = undefined; } if (typeof enhancer !== 'undefined') { if (typeof enhancer !== 'function') { throw new Error('Expected the enhancer to be a function.'); } return enhancer(createStore)(reducer, preloadedState); } if (typeof reducer !== 'function') { throw new Error('Expected the reducer to be a function.'); } var currentReducer = reducer; var currentState = preloadedState; var currentListeners = []; var nextListeners = currentListeners; var isDispatching = false; /** * This makes a shallow copy of currentListeners so we can use * nextListeners as a temporary list while dispatching. * * This prevents any bugs around consumers calling * subscribe/unsubscribe in the middle of a dispatch. */ function ensureCanMutateNextListeners() { if (nextListeners === currentListeners) { nextListeners = currentListeners.slice(); } } /** * Reads the state tree managed by the store. * * @returns {any} The current state tree of your application. */ function getState() { if (isDispatching) { throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.'); } return currentState; } /** * Adds a change listener. It will be called any time an action is dispatched, * and some part of the state tree may potentially have changed. You may then * call `getState()` to read the current state tree inside the callback. * * You may call `dispatch()` from a change listener, with the following * caveats: * * 1. The subscriptions are snapshotted just before every `dispatch()` call. * If you subscribe or unsubscribe while the listeners are being invoked, this * will not have any effect on the `dispatch()` that is currently in progress. * However, the next `dispatch()` call, whether nested or not, will use a more * recent snapshot of the subscription list. * * 2. The listener should not expect to see all state changes, as the state * might have been updated multiple times during a nested `dispatch()` before * the listener is called. It is, however, guaranteed that all subscribers * registered before the `dispatch()` started will be called with the latest * state by the time it exits. * * @param {Function} listener A callback to be invoked on every dispatch. * @returns {Function} A function to remove this change listener. */ function subscribe(listener) { if (typeof listener !== 'function') { throw new Error('Expected the listener to be a function.'); } if (isDispatching) { throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.'); } var isSubscribed = true; ensureCanMutateNextListeners(); nextListeners.push(listener); return function unsubscribe() { if (!isSubscribed) { return; } if (isDispatching) { throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.'); } isSubscribed = false; ensureCanMutateNextListeners(); var index = nextListeners.indexOf(listener); nextListeners.splice(index, 1); currentListeners = null; }; } /** * Dispatches an action. It is the only way to trigger a state change. * * The `reducer` function, used to create the store, will be called with the * current state tree and the given `action`. Its return value will * be considered the **next** state of the tree, and the change listeners * will be notified. * * The base implementation only supports plain object actions. If you want to * dispatch a Promise, an Observable, a thunk, or something else, you need to * wrap your store creating function into the corresponding middleware. For * example, see the documentation for the `redux-thunk` package. Even the * middleware will eventually dispatch plain object actions using this method. * * @param {Object} action A plain object representing “what changed”. It is * a good idea to keep actions serializable so you can record and replay user * sessions, or use the time travelling `redux-devtools`. An action must have * a `type` property which may not be `undefined`. It is a good idea to use * string constants for action types. * * @returns {Object} For convenience, the same action object you dispatched. * * Note that, if you use a custom middleware, it may wrap `dispatch()` to * return something else (for example, a Promise you can await). */ function dispatch(action) { if (!isPlainObject(action)) { throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); } if (typeof action.type === 'undefined') { throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); } if (isDispatching) { throw new Error('Reducers may not dispatch actions.'); } try { isDispatching = true; currentState = currentReducer(currentState, action); } finally { isDispatching = false; } var listeners = currentListeners = nextListeners; for (var i = 0; i < listeners.length; i++) { var listener = listeners[i]; listener(); } return action; } /** * Replaces the reducer currently used by the store to calculate the state. * * You might need this if your app implements code splitting and you want to * load some of the reducers dynamically. You might also need this if you * implement a hot reloading mechanism for Redux. * * @param {Function} nextReducer The reducer for the store to use instead. * @returns {void} */ function replaceReducer(nextReducer) { if (typeof nextReducer !== 'function') { throw new Error('Expected the nextReducer to be a function.'); } currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT. // Any reducers that existed in both the new and old rootReducer // will receive the previous state. This effectively populates // the new state tree with any relevant data from the old one. dispatch({ type: ActionTypes.REPLACE }); } /** * Interoperability point for observable/reactive libraries. * @returns {observable} A minimal observable of state changes. * For more information, see the observable proposal: * https://github.com/tc39/proposal-observable */ function observable() { var _ref; var outerSubscribe = subscribe; return _ref = { /** * The minimal observable subscription method. * @param {Object} observer Any object that can be used as an observer. * The observer object should have a `next` method. * @returns {subscription} An object with an `unsubscribe` method that can * be used to unsubscribe the observable from the store, and prevent further * emission of values from the observable. */ subscribe: function subscribe(observer) { if (typeof observer !== 'object' || observer === null) { throw new TypeError('Expected the observer to be an object.'); } function observeState() { if (observer.next) { observer.next(getState()); } } observeState(); var unsubscribe = outerSubscribe(observeState); return { unsubscribe: unsubscribe }; } }, _ref[result] = function () { return this; }, _ref; } // When a store is created, an "INIT" action is dispatched so that every // reducer returns their initial state. This effectively populates // the initial state tree. dispatch({ type: ActionTypes.INIT }); return _ref2 = { dispatch: dispatch, subscribe: subscribe, getState: getState, replaceReducer: replaceReducer }, _ref2[result] = observable, _ref2; } /** * Prints a warning in the console if it exists. * * @param {String} message The warning message. * @returns {void} */ function warning(message) { /* eslint-disable no-console */ if (typeof console !== 'undefined' && typeof console.error === 'function') { console.error(message); } /* eslint-enable no-console */ try { // This error was thrown as a convenience so that if you enable // "break on all exceptions" in your console, // it would pause the execution at this line. throw new Error(message); } catch (e) {} // eslint-disable-line no-empty } /* * This is a dummy function to check if the function name has been altered by minification. * If the function has been minified and NODE_ENV !== 'production', warn the user. */ function isCrushed() {} if ( typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') { warning('You are currently using minified code outside of NODE_ENV === "production". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.'); } /** * Use invariant() to assert state which your program assumes to be true. * * Provide sprintf-style format (only %s is supported) and arguments * to provide information about what broke and what you were * expecting. * * The invariant message will be stripped in production, but the invariant * will remain to ensure logic does not differ in production. */ function invariant(condition, format) { for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { args[_key - 2] = arguments[_key]; } { if (format === undefined) { throw new Error('invariant requires an error message argument'); } } if (!condition) { var error; if (format === undefined) { error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); } else { var argIndex = 0; error = new Error(format.replace(/%s/g, function () { return args[argIndex++]; })); error.name = 'Invariant Violation'; } error.framesToPop = 1; // we don't care about invariant's own frame throw error; } } var INIT_COORDS = 'dnd-core/INIT_COORDS'; var BEGIN_DRAG = 'dnd-core/BEGIN_DRAG'; var PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE'; var HOVER = 'dnd-core/HOVER'; var DROP = 'dnd-core/DROP'; var END_DRAG = 'dnd-core/END_DRAG'; function setClientOffset(clientOffset, sourceClientOffset) { return { type: INIT_COORDS, payload: { sourceClientOffset: sourceClientOffset || null, clientOffset: clientOffset || null } }; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } // cheap lodash replacements /** * drop-in replacement for _.get * @param obj * @param path * @param defaultValue */ function get(obj, path, defaultValue) { return path.split('.').reduce(function (a, c) { return a && a[c] ? a[c] : defaultValue || null; }, obj); } /** * drop-in replacement for _.without */ function without(items, item) { return items.filter(function (i) { return i !== item; }); } /** * drop-in replacement for _.isString * @param input */ function isObject(input) { return _typeof(input) === 'object'; } /** * repalcement for _.xor * @param itemsA * @param itemsB */ function xor(itemsA, itemsB) { var map = new Map(); var insertItem = function insertItem(item) { map.set(item, map.has(item) ? map.get(item) + 1 : 1); }; itemsA.forEach(insertItem); itemsB.forEach(insertItem); var result = []; map.forEach(function (count, key) { if (count === 1) { result.push(key); } }); return result; } /** * replacement for _.intersection * @param itemsA * @param itemsB */ function intersection(itemsA, itemsB) { return itemsA.filter(function (t) { return itemsB.indexOf(t) > -1; }); } var ResetCoordinatesAction = { type: INIT_COORDS, payload: { clientOffset: null, sourceClientOffset: null } }; function createBeginDrag(manager) { return function beginDrag() { var sourceIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { publishSource: true }; var _options$publishSourc = options.publishSource, publishSource = _options$publishSourc === void 0 ? true : _options$publishSourc, clientOffset = options.clientOffset, getSourceClientOffset = options.getSourceClientOffset; var monitor = manager.getMonitor(); var registry = manager.getRegistry(); // Initialize the coordinates using the client offset manager.dispatch(setClientOffset(clientOffset)); verifyInvariants(sourceIds, monitor, registry); // Get the draggable source var sourceId = getDraggableSource(sourceIds, monitor); if (sourceId === null) { manager.dispatch(ResetCoordinatesAction); return; } // Get the source client offset var sourceClientOffset = null; if (clientOffset) { if (!getSourceClientOffset) { throw new Error('getSourceClientOffset must be defined'); } verifyGetSourceClientOffsetIsFunction(getSourceClientOffset); sourceClientOffset = getSourceClientOffset(sourceId); } // Initialize the full coordinates manager.dispatch(setClientOffset(clientOffset, sourceClientOffset)); var source = registry.getSource(sourceId); var item = source.beginDrag(monitor, sourceId); verifyItemIsObject(item); registry.pinSource(sourceId); var itemType = registry.getSourceType(sourceId); return { type: BEGIN_DRAG, payload: { itemType: itemType, item: item, sourceId: sourceId, clientOffset: clientOffset || null, sourceClientOffset: sourceClientOffset || null, isSourcePublic: !!publishSource } }; }; } function verifyInvariants(sourceIds, monitor, registry) { invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.'); sourceIds.forEach(function (sourceId) { invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.'); }); } function verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) { invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.'); } function verifyItemIsObject(item) { invariant(isObject(item), 'Item must be an object.'); } function getDraggableSource(sourceIds, monitor) { var sourceId = null; for (var i = sourceIds.length - 1; i >= 0; i--) { if (monitor.canDragSource(sourceIds[i])) { sourceId = sourceIds[i]; break; } } return sourceId; } function createPublishDragSource(manager) { return function publishDragSource() { var monitor = manager.getMonitor(); if (monitor.isDragging()) { return { type: PUBLISH_DRAG_SOURCE }; } }; } function matchesType(targetType, draggedItemType) { if (draggedItemType === null) { return targetType === null; } return Array.isArray(targetType) ? targetType.some(function (t) { return t === draggedItemType; }) : targetType === draggedItemType; } function createHover(manager) { return function hover(targetIdsArg) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, clientOffset = _ref.clientOffset; verifyTargetIdsIsArray(targetIdsArg); var targetIds = targetIdsArg.slice(0); var monitor = manager.getMonitor(); var registry = manager.getRegistry(); checkInvariants(targetIds, monitor, registry); var draggedItemType = monitor.getItemType(); removeNonMatchingTargetIds(targetIds, registry, draggedItemType); hoverAllTargets(targetIds, monitor, registry); return { type: HOVER, payload: { targetIds: targetIds, clientOffset: clientOffset || null } }; }; } function verifyTargetIdsIsArray(targetIdsArg) { invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.'); } function checkInvariants(targetIds, monitor, registry) { invariant(monitor.isDragging(), 'Cannot call hover while not dragging.'); invariant(!monitor.didDrop(), 'Cannot call hover after drop.'); for (var i = 0; i < targetIds.length; i++) { var targetId = targetIds[i]; invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.'); var target = registry.getTarget(targetId); invariant(target, 'Expected targetIds to be registered.'); } } function removeNonMatchingTargetIds(targetIds, registry, draggedItemType) { // Remove those targetIds that don't match the targetType. This // fixes shallow isOver which would only be non-shallow because of // non-matching targets. for (var i = targetIds.length - 1; i >= 0; i--) { var targetId = targetIds[i]; var targetType = registry.getTargetType(targetId); if (!matchesType(targetType, draggedItemType)) { targetIds.splice(i, 1); } } } function hoverAllTargets(targetIds, monitor, registry) { // Finally call hover on all matching targets. targetIds.forEach(function (targetId) { var target = registry.getTarget(targetId); target.hover(monitor, targetId); }); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function createDrop(manager) { return function drop() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var monitor = manager.getMonitor(); var registry = manager.getRegistry(); verifyInvariants$1(monitor); var targetIds = getDroppableTargets(monitor); // Multiple actions are dispatched here, which is why this doesn't return an action targetIds.forEach(function (targetId, index) { var dropResult = determineDropResult(targetId, index, registry, monitor); var action = { type: DROP, payload: { dropResult: _objectSpread(_objectSpread({}, options), dropResult) } }; manager.dispatch(action); }); }; } function verifyInvariants$1(monitor) { invariant(monitor.isDragging(), 'Cannot call drop while not dragging.'); invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.'); } function determineDropResult(targetId, index, registry, monitor) { var target = registry.getTarget(targetId); var dropResult = target ? target.drop(monitor, targetId) : undefined; verifyDropResultType(dropResult); if (typeof dropResult === 'undefined') { dropResult = index === 0 ? {} : monitor.getDropResult(); } return dropResult; } function verifyDropResultType(dropResult) { invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.'); } function getDroppableTargets(monitor) { var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor); targetIds.reverse(); return targetIds; } function createEndDrag(manager) { return function endDrag() { var monitor = manager.getMonitor(); var registry = manager.getRegistry(); verifyIsDragging(monitor); var sourceId = monitor.getSourceId(); if (sourceId != null) { var source = registry.getSource(sourceId, true); source.endDrag(monitor, sourceId); registry.unpinSource(); } return { type: END_DRAG }; }; } function verifyIsDragging(monitor) { invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.'); } function createDragDropActions(manager) { return { beginDrag: createBeginDrag(manager), publishDragSource: createPublishDragSource(manager), hover: createHover(manager), drop: createDrop(manager), endDrag: createEndDrag(manager) }; } var strictEquality = function strictEquality(a, b) { return a === b; }; /** * Determine if two cartesian coordinate offsets are equal * @param offsetA * @param offsetB */ function areCoordsEqual(offsetA, offsetB) { if (!offsetA && !offsetB) { return true; } else if (!offsetA || !offsetB) { return false; } else { return offsetA.x === offsetB.x && offsetA.y === offsetB.y; } } /** * Determines if two arrays of items are equal * @param a The first array of items * @param b The second array of items */ function areArraysEqual(a, b) { var isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEquality; if (a.length !== b.length) { return false; } for (var i = 0; i < a.length; ++i) { if (!isEqual(a[i], b[i])) { return false; } } return true; } function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var initialState = { initialSourceClientOffset: null, initialClientOffset: null, clientOffset: null }; function reduce() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; var payload = action.payload; switch (action.type) { case INIT_COORDS: case BEGIN_DRAG: return { initialSourceClientOffset: payload.sourceClientOffset, initialClientOffset: payload.clientOffset, clientOffset: payload.clientOffset }; case HOVER: if (areCoordsEqual(state.clientOffset, payload.clientOffset)) { return state; } return _objectSpread$1(_objectSpread$1({}, state), {}, { clientOffset: payload.clientOffset }); case END_DRAG: case DROP: return initialState; default: return state; } } var ADD_SOURCE = 'dnd-core/ADD_SOURCE'; var ADD_TARGET = 'dnd-core/ADD_TARGET'; var REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE'; var REMOVE_TARGET = 'dnd-core/REMOVE_TARGET'; function addSource(sourceId) { return { type: ADD_SOURCE, payload: { sourceId: sourceId } }; } function addTarget(targetId) { return { type: ADD_TARGET, payload: { targetId: targetId } }; } function removeSource(sourceId) { return { type: REMOVE_SOURCE, payload: { sourceId: sourceId } }; } function removeTarget(targetId) { return { type: REMOVE_TARGET, payload: { targetId: targetId } }; } function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var initialState$1 = { itemType: null, item: null, sourceId: null, targetIds: [], dropResult: null, didDrop: false, isSourcePublic: null }; function reduce$1() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState$1; var action = arguments.length > 1 ? arguments[1] : undefined; var payload = action.payload; switch (action.type) { case BEGIN_DRAG: return _objectSpread$2(_objectSpread$2({}, state), {}, { itemType: payload.itemType, item: payload.item, sourceId: payload.sourceId, isSourcePublic: payload.isSourcePublic, dropResult: null, didDrop: false }); case PUBLISH_DRAG_SOURCE: return _objectSpread$2(_objectSpread$2({}, state), {}, { isSourcePublic: true }); case HOVER: return _objectSpread$2(_objectSpread$2({}, state), {}, { targetIds: payload.targetIds }); case REMOVE_TARGET: if (state.targetIds.indexOf(payload.targetId) === -1) { return state; } return _objectSpread$2(_objectSpread$2({}, state), {}, { targetIds: without(state.targetIds, payload.targetId) }); case DROP: return _objectSpread$2(_objectSpread$2({}, state), {}, { dropResult: payload.dropResult, didDrop: true, targetIds: [] }); case END_DRAG: return _objectSpread$2(_objectSpread$2({}, state), {}, { itemType: null, item: null, sourceId: null, dropResult: null, didDrop: false, isSourcePublic: null, targetIds: [] }); default: return state; } } function reduce$2() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case ADD_SOURCE: case ADD_TARGET: return state + 1; case REMOVE_SOURCE: case REMOVE_TARGET: return state - 1; default: return state; } } var NONE = []; var ALL = []; NONE.__IS_NONE__ = true; ALL.__IS_ALL__ = true; /** * Determines if the given handler IDs are dirty or not. * * @param dirtyIds The set of dirty handler ids * @param handlerIds The set of handler ids to check */ function areDirty(dirtyIds, handlerIds) { if (dirtyIds === NONE) { return false; } if (dirtyIds === ALL || typeof handlerIds === 'undefined') { return true; } var commonIds = intersection(handlerIds, dirtyIds); return commonIds.length > 0; } function reduce$3() { var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case HOVER: break; case ADD_SOURCE: case ADD_TARGET: case REMOVE_TARGET: case REMOVE_SOURCE: return NONE; case BEGIN_DRAG: case PUBLISH_DRAG_SOURCE: case END_DRAG: case DROP: default: return ALL; } var _action$payload = action.payload, _action$payload$targe = _action$payload.targetIds, targetIds = _action$payload$targe === void 0 ? [] : _action$payload$targe, _action$payload$prevT = _action$payload.prevTargetIds, prevTargetIds = _action$payload$prevT === void 0 ? [] : _action$payload$prevT; var result = xor(targetIds, prevTargetIds); var didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds); if (!didChange) { return NONE; } // Check the target ids at the innermost position. If they are valid, add them // to the result var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1]; var innermostTargetId = targetIds[targetIds.length - 1]; if (prevInnermostTargetId !== innermostTargetId) { if (prevInnermostTargetId) { result.push(prevInnermostTargetId); } if (innermostTargetId) { result.push(innermostTargetId); } } return result; } function reduce$4() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return state + 1; } function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function reduce$5() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var action = arguments.length > 1 ? arguments[1] : undefined; return { dirtyHandlerIds: reduce$3(state.dirtyHandlerIds, { type: action.type, payload: _objectSpread$3(_objectSpread$3({}, action.payload), {}, { prevTargetIds: get(state, 'dragOperation.targetIds', []) }) }), dragOffset: reduce(state.dragOffset, action), refCount: reduce$2(state.refCount, action), dragOperation: reduce$1(state.dragOperation, action), stateId: reduce$4(state.stateId) }; } /** * Coordinate addition * @param a The first coordinate * @param b The second coordinate */ function add(a, b) { return { x: a.x + b.x, y: a.y + b.y }; } /** * Coordinate subtraction * @param a The first coordinate * @param b The second coordinate */ function subtract(a, b) { return { x: a.x - b.x, y: a.y - b.y }; } /** * Returns the cartesian distance of the drag source component's position, based on its position * at the time when the current drag operation has started, and the movement difference. * * Returns null if no item is being dragged. * * @param state The offset state to compute from */ function getSourceClientOffset(state) { var clientOffset = state.clientOffset, initialClientOffset = state.initialClientOffset, initialSourceClientOffset = state.initialSourceClientOffset; if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) { return null; } return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset); } /** * Determines the x,y offset between the client offset and the initial client offset * * @param state The offset state to compute from */ function getDifferenceFromInitialOffset(state) { var clientOffset = state.clientOffset, initialClientOffset = state.initialClientOffset; if (!clientOffset || !initialClientOffset) { return null; } return subtract(clientOffset, initialClientOffset); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var DragDropMonitorImpl = /*#__PURE__*/function () { function DragDropMonitorImpl(store, registry) { _classCallCheck(this, DragDropMonitorImpl); this.store = store; this.registry = registry; } _createClass(DragDropMonitorImpl, [{ key: "subscribeToStateChange", value: function subscribeToStateChange(listener) { var _this = this; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { handlerIds: undefined }; var handlerIds = options.handlerIds; invariant(typeof listener === 'function', 'listener must be a function.'); invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.'); var prevStateId = this.store.getState().stateId; var handleChange = function handleChange() { var state = _this.store.getState(); var currentStateId = state.stateId; try { var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds); if (!canSkipListener) { listener(); } } finally { prevStateId = currentStateId; } }; return this.store.subscribe(handleChange); } }, { key: "subscribeToOffsetChange", value: function subscribeToOffsetChange(listener) { var _this2 = this; invariant(typeof listener === 'function', 'listener must be a function.'); var previousState = this.store.getState().dragOffset; var handleChange = function handleChange() { var nextState = _this2.store.getState().dragOffset; if (nextState === previousState) { return; } previousState = nextState; listener(); }; return this.store.subscribe(handleChange); } }, { key: "canDragSource", value: function canDragSource(sourceId) { if (!sourceId) { return false; } var source = this.registry.getSource(sourceId); invariant(source, 'Expected to find a valid source.'); if (this.isDragging()) { return false; } return source.canDrag(this, sourceId); } }, { key: "canDropOnTarget", value: function canDropOnTarget(targetId) { // undefined on initial render if (!targetId) { return false; } var target = this.registry.getTarget(targetId); invariant(target, 'Expected to find a valid target.'); if (!this.isDragging() || this.didDrop()) { return false; } var targetType = this.registry.getTargetType(targetId); var draggedItemType = this.getItemType(); return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId); } }, { key: "isDragging", value: function isDragging() { return Boolean(this.getItemType()); } }, { key: "isDraggingSource", value: function isDraggingSource(sourceId) { // undefined on initial render if (!sourceId) { return false; } var source = this.registry.getSource(sourceId, true); invariant(source, 'Expected to find a valid source.'); if (!this.isDragging() || !this.isSourcePublic()) { return false; } var sourceType = this.registry.getSourceType(sourceId); var draggedItemType = this.getItemType(); if (sourceType !== draggedItemType) { return false; } return source.isDragging(this, sourceId); } }, { key: "isOverTarget", value: function isOverTarget(targetId) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { shallow: false }; // undefined on initial render if (!targetId) { return false; } var shallow = options.shallow; if (!this.isDragging()) { return false; } var targetType = this.registry.getTargetType(targetId); var draggedItemType = this.getItemType(); if (draggedItemType && !matchesType(targetType, draggedItemType)) { return false; } var targetIds = this.getTargetIds(); if (!targetIds.length) { return false; } var index = targetIds.indexOf(targetId); if (shallow) { return index === targetIds.length - 1; } else { return index > -1; } } }, { key: "getItemType", value: function getItemType() { return this.store.getState().dragOperation.itemType; } }, { key: "getItem", value: function getItem() { return this.store.getState().dragOperation.item; } }, { key: "getSourceId", value: function getSourceId() { return this.store.getState().dragOperation.sourceId; } }, { key: "getTargetIds", value: function getTargetIds() { return this.store.getState().dragOperation.targetIds; } }, { key: "getDropResult", value: function getDropResult() { return this.store.getState().dragOperation.dropResult; } }, { key: "didDrop", value: function didDrop() { return this.store.getState().dragOperation.didDrop; } }, { key: "isSourcePublic", value: function isSourcePublic() { return Boolean(this.store.getState().dragOperation.isSourcePublic); } }, { key: "getInitialClientOffset", value: function getInitialClientOffset() { return this.store.getState().dragOffset.initialClientOffset; } }, { key: "getInitialSourceClientOffset", value: function getInitialSourceClientOffset() { return this.store.getState().dragOffset.initialSourceClientOffset; } }, { key: "getClientOffset", value: function getClientOffset() { return this.store.getState().dragOffset.clientOffset; } }, { key: "getSourceClientOffset", value: function getSourceClientOffset$1() { return getSourceClientOffset(this.store.getState().dragOffset); } }, { key: "getDifferenceFromInitialOffset", value: function getDifferenceFromInitialOffset$1() { return getDifferenceFromInitialOffset(this.store.getState().dragOffset); } }]); return DragDropMonitorImpl; }(); var nextUniqueId = 0; function getNextUniqueId() { return nextUniqueId++; } function _typeof$1(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$1(obj); } function validateSourceContract(source) { invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.'); invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.'); invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.'); } function validateTargetContract(target) { invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.'); invariant(typeof target.hover === 'function', 'Expected hover to be a function.'); invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.'); } function validateType(type, allowArray) { if (allowArray && Array.isArray(type)) { type.forEach(function (t) { return validateType(t, false); }); return; } invariant(typeof type === 'string' || _typeof$1(type) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.'); } // Use the fastest means possible to execute a task in its own turn, with // priority over other events including IO, animation, reflow, and redraw // events in browsers. // // An exception thrown by a task will permanently interrupt the processing of // subsequent tasks. The higher level `asap` function ensures that if an // exception is thrown by a task, that the task queue will continue flushing as // soon as possible, but if you use `rawAsap` directly, you are responsible to // either ensure that no exceptions are thrown from your task, or to manually // call `rawAsap.requestFlush` if an exception is thrown. function rawAsap(task) { if (!queue.length) { requestFlush(); } // Equivalent to push, but avoids a function call. queue[queue.length] = task; } var queue = []; // Once a flush has been requested, no further calls to `requestFlush` are // off a `flush` event as quickly as possible. `flush` will attempt to exhaust // the event queue before yielding to the browser's own event loop. var requestFlush; // The position of the next task to execute in the task queue. This is // preserved between calls to `flush` so that it can be resumed if // a task throws an exception. var index = 0; // If a task schedules additional tasks recursively, the task queue can grow // unbounded. To prevent memory exhaustion, the task queue will periodically // truncate already-completed tasks. var capacity = 1024; // The flush function processes all tasks that have been scheduled with // `rawAsap` unless and until one of those tasks throws an exception. // If a task throws an exception, `flush` ensures that its state will remain // consistent and will resume where it left off when called again. // However, `flush` does not make any arrangements to be called again if an // exception is thrown. function flush() { while (index < queue.length) { var currentIndex = index; // Advance the index before calling the task. This ensures that we will // begin flushing on the next task the task throws an error. index = index + 1; queue[currentIndex].call(); // Prevent leaking memory for long chains of recursive calls to `asap`. // If we call `asap` within tasks scheduled by `asap`, the queue will // grow, but to avoid an O(n) walk for every task we execute, we don't // shift tasks off the queue after they have been executed. // Instead, we periodically shift 1024 tasks off the queue. if (index > capacity) { // Manually shift all values starting at the index back to the // beginning of the queue. for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { queue[scan] = queue[scan + index]; } queue.length -= index; index = 0; } } queue.length = 0; index = 0; } // `requestFlush` is implemented using a strategy based on data collected from // every available SauceLabs Selenium web driver worker at time of writing. // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 // Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that // have WebKitMutationObserver but not un-prefixed MutationObserver. // Must use `global` or `self` instead of `window` to work in both frames and web // workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. /* globals self */ var scope = typeof global !== 'undefined' ? global : self; var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; // MutationObservers are desirable because they have high priority and work // reliably everywhere they are implemented. // They are implemented in all modern browsers. // // - Android 4-4.3 // - Chrome 26-34 // - Firefox 14-29 // - Internet Explorer 11 // - iPad Safari 6-7.1 // - iPhone Safari 7-7.1 // - Safari 6-7 if (typeof BrowserMutationObserver === 'function') { requestFlush = makeRequestCallFromMutationObserver(flush); // MessageChannels are desirable because they give direct access to the HTML // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera // 11-12, and in web workers in many engines. // Although message channels yield to any queued rendering and IO tasks, they // would be better than imposing the 4ms delay of timers. // However, they do not work reliably in Internet Explorer or Safari. // Internet Explorer 10 is the only browser that has setImmediate but does // not have MutationObservers. // Although setImmediate yields to the browser's renderer, it would be // preferrable to falling back to setTimeout since it does not have // the minimum 4ms penalty. // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and // Desktop to a lesser extent) that renders both setImmediate and // MessageChannel useless for the purposes of ASAP. // https://github.com/kriskowal/q/issues/396 // Timers are implemented universally. // We fall back to timers in workers in most engines, and in foreground // contexts in the following browsers. // However, note that even this simple case requires nuances to operate in a // broad spectrum of browsers. // // - Firefox 3-13 // - Internet Explorer 6-9 // - iPad Safari 4.3 // - Lynx 2.8.7 } else { requestFlush = makeRequestCallFromTimer(flush); } // `requestFlush` requests that the high priority event queue be flushed as // soon as possible. // This is useful to prevent an error thrown in a task from stalling the event // queue if the exception handled by Node.js’s // `process.on("uncaughtException")` or by a domain. rawAsap.requestFlush = requestFlush; // To request a high priority event, we induce a mutation observer by toggling // the text of a text node between "1" and "-1". function makeRequestCallFromMutationObserver(callback) { var toggle = 1; var observer = new BrowserMutationObserver(callback); var node = document.createTextNode(''); observer.observe(node, { characterData: true }); return function requestCall() { toggle = -toggle; node.data = toggle; }; } // The message channel technique was discovered by Malte Ubl and was the // original foundation for this library. // http://www.nonblocking.io/2011/06/windownexttick.html // Safari 6.0.5 (at least) intermittently fails to create message ports on a // page's first load. Thankfully, this version of Safari supports // MutationObservers, so we don't need to fall back in that case. // function makeRequestCallFromMessageChannel(callback) { // var channel = new MessageChannel(); // channel.port1.onmessage = callback; // return function requestCall() { // channel.port2.postMessage(0); // }; // } // For reasons explained above, we are also unable to use `setImmediate` // under any circumstances. // Even if we were, there is another bug in Internet Explorer 10. // It is not sufficient to assign `setImmediate` to `requestFlush` because // `setImmediate` must be called *by name* and therefore must be wrapped in a // closure. // Never forget. // function makeRequestCallFromSetImmediate(callback) { // return function requestCall() { // setImmediate(callback); // }; // } // Safari 6.0 has a problem where timers will get lost while the user is // scrolling. This problem does not impact ASAP because Safari 6.0 supports // mutation observers, so that implementation is used instead. // However, if we ever elect to use timers in Safari, the prevalent work-around // is to add a scroll event listener that calls for a flush. // `setTimeout` does not call the passed callback if the delay is less than // approximately 7 in web workers in Firefox 8 through 18, and sometimes not // even then. function makeRequestCallFromTimer(callback) { return function requestCall() { // We dispatch a timeout with a specified delay of 0 for engines that // can reliably accommodate that request. This will usually be snapped // to a 4 milisecond delay, but once we're flushing, there's no delay // between events. var timeoutHandle = setTimeout(handleTimer, 0); // However, since this timer gets frequently dropped in Firefox // workers, we enlist an interval handle that will try to fire // an event 20 times per second until it succeeds. var intervalHandle = setInterval(handleTimer, 50); function handleTimer() { // Whichever timer succeeds will cancel both timers and // execute the callback. clearTimeout(timeoutHandle); clearInterval(intervalHandle); callback(); } }; } // This is for `asap.js` only. // Its name will be periodically randomized to break any code that depends on // its existence. rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; // ASAP was originally a nextTick shim included in Q. This was factored out // into this ASAP package. It was later adapted to RSVP which made further // amendments. These decisions, particularly to marginalize MessageChannel and // to capture the MutationObserver implementation in a closure, were integrated // back into ASAP proper. // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js // RawTasks are recycled to reduce GC churn. var freeTasks = []; // We queue errors to ensure they are thrown in right order (FIFO). // Array-as-queue is good enough here, since we are just dealing with exceptions. var pendingErrors = []; var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError); function throwFirstError() { if (pendingErrors.length) { throw pendingErrors.shift(); } } /** * Calls a task as soon as possible after returning, in its own event, with priority * over other events like animation, reflow, and repaint. An error thrown from an * event will not interrupt, nor even substantially slow down the processing of * other events, but will be rather postponed to a lower priority event. * @param {{call}} task A callable object, typically a function that takes no * arguments. */ function asap(task) { var rawTask; if (freeTasks.length) { rawTask = freeTasks.pop(); } else { rawTask = new RawTask(); } rawTask.task = task; rawAsap(rawTask); } // We wrap tasks with recyclable task objects. A task object implements // `call`, just like a function. var RawTask = /** @class */ function () { function RawTask() {} RawTask.prototype.call = function () { try { this.task.call(); } catch (error) { if (asap.onerror) { // This hook exists purely for testing purposes. // Its name will be periodically randomized to break any code that // depends on its existence. asap.onerror(error); } else { // In a web browser, exceptions are not fatal. However, to avoid // slowing down the queue of pending tasks, we rethrow the error in a // lower priority turn. pendingErrors.push(error); requestErrorThrow(); } } finally { this.task = null; freeTasks[freeTasks.length] = this; } }; return RawTask; }(); function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$1(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); } } function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function getNextHandlerId(role) { var id = getNextUniqueId().toString(); switch (role) { case HandlerRole.SOURCE: return "S".concat(id); case HandlerRole.TARGET: return "T".concat(id); default: throw new Error("Unknown Handler Role: ".concat(role)); } } function parseRoleFromHandlerId(handlerId) { switch (handlerId[0]) { case 'S': return HandlerRole.SOURCE; case 'T': return HandlerRole.TARGET; default: invariant(false, "Cannot parse handler ID: ".concat(handlerId)); } } function mapContainsValue(map, searchValue) { var entries = map.entries(); var isDone = false; do { var _entries$next = entries.next(), done = _entries$next.done, _entries$next$value = _slicedToArray(_entries$next.value, 2), value = _entries$next$value[1]; if (value === searchValue) { return true; } isDone = !!done; } while (!isDone); return false; } var HandlerRegistryImpl = /*#__PURE__*/function () { function HandlerRegistryImpl(store) { _classCallCheck$1(this, HandlerRegistryImpl); this.types = new Map(); this.dragSources = new Map(); this.dropTargets = new Map(); this.pinnedSourceId = null; this.pinnedSource = null; this.store = store; } _createClass$1(HandlerRegistryImpl, [{ key: "addSource", value: function addSource$1(type, source) { validateType(type); validateSourceContract(source); var sourceId = this.addHandler(HandlerRole.SOURCE, type, source); this.store.dispatch(addSource(sourceId)); return sourceId; } }, { key: "addTarget", value: function addTarget$1(type, target) { validateType(type, true); validateTargetContract(target); var targetId = this.addHandler(HandlerRole.TARGET, type, target); this.store.dispatch(addTarget(targetId)); return targetId; } }, { key: "containsHandler", value: function containsHandler(handler) { return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler); } }, { key: "getSource", value: function getSource(sourceId) { var includePinned = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; invariant(this.isSourceId(sourceId), 'Expected a valid source ID.'); var isPinned = includePinned && sourceId === this.pinnedSourceId; var source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId); return source; } }, { key: "getTarget", value: function getTarget(targetId) { invariant(this.isTargetId(targetId), 'Expected a valid target ID.'); return this.dropTargets.get(targetId); } }, { key: "getSourceType", value: function getSourceType(sourceId) { invariant(this.isSourceId(sourceId), 'Expected a valid source ID.'); return this.types.get(sourceId); } }, { key: "getTargetType", value: function getTargetType(targetId) { invariant(this.isTargetId(targetId), 'Expected a valid target ID.'); return this.types.get(targetId); } }, { key: "isSourceId", value: function isSourceId(handlerId) { var role = parseRoleFromHandlerId(handlerId); return role === HandlerRole.SOURCE; } }, { key: "isTargetId", value: function isTargetId(handlerId) { var role = parseRoleFromHandlerId(handlerId); return role === HandlerRole.TARGET; } }, { key: "removeSource", value: function removeSource$1(sourceId) { var _this = this; invariant(this.getSource(sourceId), 'Expected an existing source.'); this.store.dispatch(removeSource(sourceId)); asap(function () { _this.dragSources.delete(sourceId); _this.types.delete(sourceId); }); } }, { key: "removeTarget", value: function removeTarget$1(targetId) { invariant(this.getTarget(targetId), 'Expected an existing target.'); this.store.dispatch(removeTarget(targetId)); this.dropTargets.delete(targetId); this.types.delete(targetId); } }, { key: "pinSource", value: function pinSource(sourceId) { var source = this.getSource(sourceId); invariant(source, 'Expected an existing source.'); this.pinnedSourceId = sourceId; this.pinnedSource = source; } }, { key: "unpinSource", value: function unpinSource() { invariant(this.pinnedSource, 'No source is pinned at the time.'); this.pinnedSourceId = null; this.pinnedSource = null; } }, { key: "addHandler", value: function addHandler(role, type, handler) { var id = getNextHandlerId(role); this.types.set(id, type); if (role === HandlerRole.SOURCE) { this.dragSources.set(id, handler); } else if (role === HandlerRole.TARGET) { this.dropTargets.set(id, handler); } return id; } }]); return HandlerRegistryImpl; }(); function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$2(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); } } function _createClass$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; } function makeStoreInstance(debugMode) { // TODO: if we ever make a react-native version of this, // we'll need to consider how to pull off dev-tooling var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__; return createStore(reduce$5, debugMode && reduxDevTools && reduxDevTools({ name: 'dnd-core', instanceId: 'dnd-core' })); } var DragDropManagerImpl = /*#__PURE__*/function () { function DragDropManagerImpl() { var _this = this; var debugMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; _classCallCheck$2(this, DragDropManagerImpl); this.isSetUp = false; this.handleRefCountChange = function () { var shouldSetUp = _this.store.getState().refCount > 0; if (_this.backend) { if (shouldSetUp && !_this.isSetUp) { _this.backend.setup(); _this.isSetUp = true; } else if (!shouldSetUp && _this.isSetUp) { _this.backend.teardown(); _this.isSetUp = false; } } }; var store = makeStoreInstance(debugMode); this.store = store; this.monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store)); store.subscribe(this.handleRefCountChange); } _createClass$2(DragDropManagerImpl, [{ key: "receiveBackend", value: function receiveBackend(backend) { this.backend = backend; } }, { key: "getMonitor", value: function getMonitor() { return this.monitor; } }, { key: "getBackend", value: function getBackend() { return this.backend; } }, { key: "getRegistry", value: function getRegistry() { return this.monitor.registry; } }, { key: "getActions", value: function getActions() { /* eslint-disable-next-line @typescript-eslint/no-this-alias */ var manager = this; var dispatch = this.store.dispatch; function bindActionCreator(actionCreator) { return function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var action = actionCreator.apply(manager, args); if (typeof action !== 'undefined') { dispatch(action); } }; } var actions = createDragDropActions(this); return Object.keys(actions).reduce(function (boundActions, key) { var action = actions[key]; boundActions[key] = bindActionCreator(action); return boundActions; }, {}); } }, { key: "dispatch", value: function dispatch(action) { this.store.dispatch(action); } }]); return DragDropManagerImpl; }(); function createDragDropManager(backendFactory, globalContext, backendOptions, debugMode) { var manager = new DragDropManagerImpl(debugMode); var backend = backendFactory(manager, globalContext, backendOptions); manager.receiveBackend(backend); return manager; } /** * Create the React Context */ var DndContext = React.createContext({ dragDropManager: undefined }); /** * Creates the context object we're providing * @param backend * @param context */ function createDndContext(backend, context, options, debugMode) { return { dragDropManager: createDragDropManager(backend, context, options, debugMode) }; } function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1(); } function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); } function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$1(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var refCount = 0; /** * A React component that provides the React-DnD context */ var DndProvider = React.memo(function (_ref) { var children = _ref.children, props = _objectWithoutProperties(_ref, ["children"]); var _getDndContextValue = getDndContextValue(props), _getDndContextValue2 = _slicedToArray$1(_getDndContextValue, 2), manager = _getDndContextValue2[0], isGlobalInstance = _getDndContextValue2[1]; // memoized from props /** * If the global context was used to store the DND context * then where theres no more references to it we should * clean it up to avoid memory leaks */ React.useEffect(function () { if (isGlobalInstance) { refCount++; } return function () { if (isGlobalInstance) { refCount--; if (refCount === 0) { var context = getGlobalContext(); context[instanceSymbol] = null; } } }; }, []); return React.createElement(DndContext.Provider, { value: manager }, children); }); DndProvider.displayName = 'DndProvider'; function getDndContextValue(props) { if ('manager' in props) { var _manager = { dragDropManager: props.manager }; return [_manager, false]; } var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode); var isGlobalInstance = !props.context; return [manager, isGlobalInstance]; } var instanceSymbol = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__'); function createSingletonDndContext(backend) { var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext(); var options = arguments.length > 2 ? arguments[2] : undefined; var debugMode = arguments.length > 3 ? arguments[3] : undefined; var ctx = context; if (!ctx[instanceSymbol]) { ctx[instanceSymbol] = createDndContext(backend, context, options, debugMode); } return ctx[instanceSymbol]; } function getGlobalContext() { return typeof global !== 'undefined' ? global : window; } /* * A utility for rendering a drag preview image */ var DragPreviewImage = React.memo(function (_ref) { var connect = _ref.connect, src = _ref.src; React.useEffect(function () { if (typeof Image === 'undefined') return; var connected = false; var img = new Image(); img.src = src; img.onload = function () { connect(img); connected = true; }; return function () { if (connected) { connect(null); } }; }); return null; }); DragPreviewImage.displayName = 'DragPreviewImage'; var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect; function shallowEqual(objA, objB, compare, compareContext) { var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0; if (compareResult !== void 0) { return !!compareResult; } if (objA === objB) { return true; } if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) { return false; } var keysA = Object.keys(objA); var keysB = Object.keys(objB); if (keysA.length !== keysB.length) { return false; } var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B. for (var idx = 0; idx < keysA.length; idx++) { var key = keysA[idx]; if (!bHasOwnProperty(key)) { return false; } var valueA = objA[key]; var valueB = objB[key]; compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0; if (compareResult === false || compareResult === void 0 && valueA !== valueB) { return false; } } return true; } function _slicedToArray$2(arr, i) { return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _unsupportedIterableToArray$2(arr, i) || _nonIterableRest$2(); } function _nonIterableRest$2() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); } function _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$2(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$2(arr) { if (Array.isArray(arr)) return arr; } /** * * @param monitor The monitor to collect state from * @param collect The collecting function * @param onUpdate A method to invoke when updates occur */ function useCollector(monitor, collect, onUpdate) { var _useState = React.useState(function () { return collect(monitor); }), _useState2 = _slicedToArray$2(_useState, 2), collected = _useState2[0], setCollected = _useState2[1]; var updateCollected = React.useCallback(function () { var nextValue = collect(monitor); if (!shallowEqual(collected, nextValue)) { setCollected(nextValue); if (onUpdate) { onUpdate(); } } }, [collected, monitor, onUpdate]); // update the collected properties after the first render // and the components are attached to dnd-core useIsomorphicLayoutEffect(updateCollected, []); return [collected, updateCollected]; } function _slicedToArray$3(arr, i) { return _arrayWithHoles$3(arr) || _iterableToArrayLimit$3(arr, i) || _unsupportedIterableToArray$3(arr, i) || _nonIterableRest$3(); } function _nonIterableRest$3() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$3(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); } function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$3(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$3(arr) { if (Array.isArray(arr)) return arr; } function useMonitorOutput(monitor, collect, onCollect) { var _useCollector = useCollector(monitor, collect, onCollect), _useCollector2 = _slicedToArray$3(_useCollector, 2), collected = _useCollector2[0], updateCollected = _useCollector2[1]; useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() { var handlerId = monitor.getHandlerId(); if (handlerId == null) { return undefined; } return monitor.subscribeToStateChange(updateCollected, { handlerIds: [handlerId] }); }, [monitor, updateCollected]); return collected; } function registerTarget(type, target, manager) { var registry = manager.getRegistry(); var targetId = registry.addTarget(type, target); return [targetId, function () { return registry.removeTarget(targetId); }]; } function registerSource(type, source, manager) { var registry = manager.getRegistry(); var sourceId = registry.addSource(type, source); return [sourceId, function () { return registry.removeSource(sourceId); }]; } /** * A hook to retrieve the DragDropManager from Context */ function useDragDropManager() { var _useContext = React.useContext(DndContext), dragDropManager = _useContext.dragDropManager; invariant(dragDropManager != null, 'Expected drag drop context'); return dragDropManager; } function _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$3(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); } } function _createClass$3(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$3(Constructor.prototype, protoProps); if (staticProps) _defineProperties$3(Constructor, staticProps); return Constructor; } var isCallingCanDrag = false; var isCallingIsDragging = false; var DragSourceMonitorImpl = /*#__PURE__*/function () { function DragSourceMonitorImpl(manager) { _classCallCheck$3(this, DragSourceMonitorImpl); this.sourceId = null; this.internalMonitor = manager.getMonitor(); } _createClass$3(DragSourceMonitorImpl, [{ key: "receiveHandlerId", value: function receiveHandlerId(sourceId) { this.sourceId = sourceId; } }, { key: "getHandlerId", value: function getHandlerId() { return this.sourceId; } }, { key: "canDrag", value: function canDrag() { invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor'); try { isCallingCanDrag = true; return this.internalMonitor.canDragSource(this.sourceId); } finally { isCallingCanDrag = false; } } }, { key: "isDragging", value: function isDragging() { if (!this.sourceId) { return false; } invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor'); try { isCallingIsDragging = true; return this.internalMonitor.isDraggingSource(this.sourceId); } finally { isCallingIsDragging = false; } } }, { key: "subscribeToStateChange", value: function subscribeToStateChange(listener, options) { return this.internalMonitor.subscribeToStateChange(listener, options); } }, { key: "isDraggingSource", value: function isDraggingSource(sourceId) { return this.internalMonitor.isDraggingSource(sourceId); } }, { key: "isOverTarget", value: function isOverTarget(targetId, options) { return this.internalMonitor.isOverTarget(targetId, options); } }, { key: "getTargetIds", value: function getTargetIds() { return this.internalMonitor.getTargetIds(); } }, { key: "isSourcePublic", value: function isSourcePublic() { return this.internalMonitor.isSourcePublic(); } }, { key: "getSourceId", value: function getSourceId() { return this.internalMonitor.getSourceId(); } }, { key: "subscribeToOffsetChange", value: function subscribeToOffsetChange(listener) { return this.internalMonitor.subscribeToOffsetChange(listener); } }, { key: "canDragSource", value: function canDragSource(sourceId) { return this.internalMonitor.canDragSource(sourceId); } }, { key: "canDropOnTarget", value: function canDropOnTarget(targetId) { return this.internalMonitor.canDropOnTarget(targetId); } }, { key: "getItemType", value: function getItemType() { return this.internalMonitor.getItemType(); } }, { key: "getItem", value: function getItem() { return this.internalMonitor.getItem(); } }, { key: "getDropResult", value: function getDropResult() { return this.internalMonitor.getDropResult(); } }, { key: "didDrop", value: function didDrop() { return this.internalMonitor.didDrop(); } }, { key: "getInitialClientOffset", value: function getInitialClientOffset() { return this.internalMonitor.getInitialClientOffset(); } }, { key: "getInitialSourceClientOffset", value: function getInitialSourceClientOffset() { return this.internalMonitor.getInitialSourceClientOffset(); } }, { key: "getSourceClientOffset", value: function getSourceClientOffset() { return this.internalMonitor.getSourceClientOffset(); } }, { key: "getClientOffset", value: function getClientOffset() { return this.internalMonitor.getClientOffset(); } }, { key: "getDifferenceFromInitialOffset", value: function getDifferenceFromInitialOffset() { return this.internalMonitor.getDifferenceFromInitialOffset(); } }]); return DragSourceMonitorImpl; }(); function setRef(ref, node) { if (typeof ref === 'function') { ref(node); } else { ref.current = node; } } function cloneWithRef(element, newRef) { var previousRef = element.ref; invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute'); if (!previousRef) { // When there is no ref on the element, use the new ref directly return React.cloneElement(element, { ref: newRef }); } else { return React.cloneElement(element, { ref: function ref(node) { setRef(previousRef, node); setRef(newRef, node); } }); } } function throwIfCompositeComponentElement(element) { // Custom components can no longer be wrapped directly in React DnD 2.0 // so that we don't need to depend on findDOMNode() from react-dom. if (typeof element.type === 'string') { return; } var displayName = element.type.displayName || element.type.name || 'the component'; throw new Error('Only native element nodes can now be passed to React DnD connectors.' + "You can either wrap ".concat(displayName, " into a
, or turn it into a ") + 'drag source or a drop target itself.'); } function wrapHookToRecognizeElement(hook) { return function () { var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; // When passed a node, call the hook straight away. if (!React.isValidElement(elementOrNode)) { var node = elementOrNode; hook(node, options); // return the node so it can be chained (e.g. when within callback refs //
connectDragSource(connectDropTarget(node))}/> return node; } // If passed a ReactElement, clone it and attach this function as a ref. // This helps us achieve a neat API where user doesn't even know that refs // are being used under the hood. var element = elementOrNode; throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly var ref = options ? function (node) { return hook(node, options); } : hook; return cloneWithRef(element, ref); }; } function wrapConnectorHooks(hooks) { var wrappedHooks = {}; Object.keys(hooks).forEach(function (key) { var hook = hooks[key]; // ref objects should be passed straight through without wrapping if (key.endsWith('Ref')) { wrappedHooks[key] = hooks[key]; } else { var wrappedHook = wrapHookToRecognizeElement(hook); wrappedHooks[key] = function () { return wrappedHook; }; } }); return wrappedHooks; } function _typeof$2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$2(obj); } function isRef(obj) { return (// eslint-disable-next-line no-prototype-builtins obj !== null && _typeof$2(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current') ); } function _classCallCheck$4(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$4(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); } } function _createClass$4(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$4(Constructor.prototype, protoProps); if (staticProps) _defineProperties$4(Constructor, staticProps); return Constructor; } var SourceConnector = /*#__PURE__*/function () { function SourceConnector(backend) { var _this = this; _classCallCheck$4(this, SourceConnector); this.hooks = wrapConnectorHooks({ dragSource: function dragSource(node, options) { _this.clearDragSource(); _this.dragSourceOptions = options || null; if (isRef(node)) { _this.dragSourceRef = node; } else { _this.dragSourceNode = node; } _this.reconnectDragSource(); }, dragPreview: function dragPreview(node, options) { _this.clearDragPreview(); _this.dragPreviewOptions = options || null; if (isRef(node)) { _this.dragPreviewRef = node; } else { _this.dragPreviewNode = node; } _this.reconnectDragPreview(); } }); this.handlerId = null; // The drop target may either be attached via ref or connect function this.dragSourceRef = null; this.dragSourceOptionsInternal = null; // The drag preview may either be attached via ref or connect function this.dragPreviewRef = null; this.dragPreviewOptionsInternal = null; this.lastConnectedHandlerId = null; this.lastConnectedDragSource = null; this.lastConnectedDragSourceOptions = null; this.lastConnectedDragPreview = null; this.lastConnectedDragPreviewOptions = null; this.backend = backend; } _createClass$4(SourceConnector, [{ key: "receiveHandlerId", value: function receiveHandlerId(newHandlerId) { if (this.handlerId === newHandlerId) { return; } this.handlerId = newHandlerId; this.reconnect(); } }, { key: "reconnect", value: function reconnect() { this.reconnectDragSource(); this.reconnectDragPreview(); } }, { key: "reconnectDragSource", value: function reconnectDragSource() { var dragSource = this.dragSource; // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange(); if (didChange) { this.disconnectDragSource(); } if (!this.handlerId) { return; } if (!dragSource) { this.lastConnectedDragSource = dragSource; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDragSource = dragSource; this.lastConnectedDragSourceOptions = this.dragSourceOptions; this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions); } } }, { key: "reconnectDragPreview", value: function reconnectDragPreview() { var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange(); if (didChange) { this.disconnectDragPreview(); } if (!this.handlerId) { return; } if (!dragPreview) { this.lastConnectedDragPreview = dragPreview; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDragPreview = dragPreview; this.lastConnectedDragPreviewOptions = this.dragPreviewOptions; this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions); } } }, { key: "didHandlerIdChange", value: function didHandlerIdChange() { return this.lastConnectedHandlerId !== this.handlerId; } }, { key: "didConnectedDragSourceChange", value: function didConnectedDragSourceChange() { return this.lastConnectedDragSource !== this.dragSource; } }, { key: "didConnectedDragPreviewChange", value: function didConnectedDragPreviewChange() { return this.lastConnectedDragPreview !== this.dragPreview; } }, { key: "didDragSourceOptionsChange", value: function didDragSourceOptionsChange() { return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions); } }, { key: "didDragPreviewOptionsChange", value: function didDragPreviewOptionsChange() { return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions); } }, { key: "disconnectDragSource", value: function disconnectDragSource() { if (this.dragSourceUnsubscribe) { this.dragSourceUnsubscribe(); this.dragSourceUnsubscribe = undefined; } } }, { key: "disconnectDragPreview", value: function disconnectDragPreview() { if (this.dragPreviewUnsubscribe) { this.dragPreviewUnsubscribe(); this.dragPreviewUnsubscribe = undefined; this.dragPreviewNode = null; this.dragPreviewRef = null; } } }, { key: "clearDragSource", value: function clearDragSource() { this.dragSourceNode = null; this.dragSourceRef = null; } }, { key: "clearDragPreview", value: function clearDragPreview() { this.dragPreviewNode = null; this.dragPreviewRef = null; } }, { key: "connectTarget", get: function get() { return this.dragSource; } }, { key: "dragSourceOptions", get: function get() { return this.dragSourceOptionsInternal; }, set: function set(options) { this.dragSourceOptionsInternal = options; } }, { key: "dragPreviewOptions", get: function get() { return this.dragPreviewOptionsInternal; }, set: function set(options) { this.dragPreviewOptionsInternal = options; } }, { key: "dragSource", get: function get() { return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current; } }, { key: "dragPreview", get: function get() { return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current; } }]); return SourceConnector; }(); function _slicedToArray$4(arr, i) { return _arrayWithHoles$4(arr) || _iterableToArrayLimit$4(arr, i) || _unsupportedIterableToArray$4(arr, i) || _nonIterableRest$4(); } function _nonIterableRest$4() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$4(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$4(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen); } function _arrayLikeToArray$4(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$4(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$4(arr) { if (Array.isArray(arr)) return arr; } function _typeof$3(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$3(obj); } function useDragSourceMonitor() { var manager = useDragDropManager(); var monitor = React.useMemo(function () { return new DragSourceMonitorImpl(manager); }, [manager]); var connector = React.useMemo(function () { return new SourceConnector(manager.getBackend()); }, [manager]); return [monitor, connector]; } function useDragHandler(spec, monitor, connector) { var manager = useDragDropManager(); var handler = React.useMemo(function () { return { beginDrag: function beginDrag() { var _spec$current = spec.current, begin = _spec$current.begin, item = _spec$current.item; if (begin) { var beginResult = begin(monitor); invariant(beginResult == null || _typeof$3(beginResult) === 'object', 'dragSpec.begin() must either return an object, undefined, or null'); return beginResult || item || {}; } return item || {}; }, canDrag: function canDrag() { if (typeof spec.current.canDrag === 'boolean') { return spec.current.canDrag; } else if (typeof spec.current.canDrag === 'function') { return spec.current.canDrag(monitor); } else { return true; } }, isDragging: function isDragging(globalMonitor, target) { var isDragging = spec.current.isDragging; return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId(); }, endDrag: function endDrag() { var end = spec.current.end; if (end) { end(monitor.getItem(), monitor); } connector.reconnect(); } }; }, []); useIsomorphicLayoutEffect(function registerHandler() { var _registerSource = registerSource(spec.current.item.type, handler, manager), _registerSource2 = _slicedToArray$4(_registerSource, 2), handlerId = _registerSource2[0], unregister = _registerSource2[1]; monitor.receiveHandlerId(handlerId); connector.receiveHandlerId(handlerId); return unregister; }, []); } function _slicedToArray$5(arr, i) { return _arrayWithHoles$5(arr) || _iterableToArrayLimit$5(arr, i) || _unsupportedIterableToArray$5(arr, i) || _nonIterableRest$5(); } function _nonIterableRest$5() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$5(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$5(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen); } function _arrayLikeToArray$5(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$5(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$5(arr) { if (Array.isArray(arr)) return arr; } /** * useDragSource hook * @param sourceSpec The drag source specification * */ function useDrag(spec) { var specRef = React.useRef(spec); specRef.current = spec; // TODO: wire options into createSourceConnector invariant(spec.item != null, 'item must be defined'); invariant(spec.item.type != null, 'item type must be defined'); var _useDragSourceMonitor = useDragSourceMonitor(), _useDragSourceMonitor2 = _slicedToArray$5(_useDragSourceMonitor, 2), monitor = _useDragSourceMonitor2[0], connector = _useDragSourceMonitor2[1]; useDragHandler(specRef, monitor, connector); var result = useMonitorOutput(monitor, specRef.current.collect || function () { return {}; }, function () { return connector.reconnect(); }); var connectDragSource = React.useMemo(function () { return connector.hooks.dragSource(); }, [connector]); var connectDragPreview = React.useMemo(function () { return connector.hooks.dragPreview(); }, [connector]); useIsomorphicLayoutEffect(function () { connector.dragSourceOptions = specRef.current.options || null; connector.reconnect(); }, [connector]); useIsomorphicLayoutEffect(function () { connector.dragPreviewOptions = specRef.current.previewOptions || null; connector.reconnect(); }, [connector]); return [result, connectDragSource, connectDragPreview]; } function _classCallCheck$5(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$5(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); } } function _createClass$5(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$5(Constructor.prototype, protoProps); if (staticProps) _defineProperties$5(Constructor, staticProps); return Constructor; } var TargetConnector = /*#__PURE__*/function () { function TargetConnector(backend) { var _this = this; _classCallCheck$5(this, TargetConnector); this.hooks = wrapConnectorHooks({ dropTarget: function dropTarget(node, options) { _this.clearDropTarget(); _this.dropTargetOptions = options; if (isRef(node)) { _this.dropTargetRef = node; } else { _this.dropTargetNode = node; } _this.reconnect(); } }); this.handlerId = null; // The drop target may either be attached via ref or connect function this.dropTargetRef = null; this.dropTargetOptionsInternal = null; this.lastConnectedHandlerId = null; this.lastConnectedDropTarget = null; this.lastConnectedDropTargetOptions = null; this.backend = backend; } _createClass$5(TargetConnector, [{ key: "reconnect", value: function reconnect() { // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange(); if (didChange) { this.disconnectDropTarget(); } var dropTarget = this.dropTarget; if (!this.handlerId) { return; } if (!dropTarget) { this.lastConnectedDropTarget = dropTarget; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDropTarget = dropTarget; this.lastConnectedDropTargetOptions = this.dropTargetOptions; this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions); } } }, { key: "receiveHandlerId", value: function receiveHandlerId(newHandlerId) { if (newHandlerId === this.handlerId) { return; } this.handlerId = newHandlerId; this.reconnect(); } }, { key: "didHandlerIdChange", value: function didHandlerIdChange() { return this.lastConnectedHandlerId !== this.handlerId; } }, { key: "didDropTargetChange", value: function didDropTargetChange() { return this.lastConnectedDropTarget !== this.dropTarget; } }, { key: "didOptionsChange", value: function didOptionsChange() { return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions); } }, { key: "disconnectDropTarget", value: function disconnectDropTarget() { if (this.unsubscribeDropTarget) { this.unsubscribeDropTarget(); this.unsubscribeDropTarget = undefined; } } }, { key: "clearDropTarget", value: function clearDropTarget() { this.dropTargetRef = null; this.dropTargetNode = null; } }, { key: "connectTarget", get: function get() { return this.dropTarget; } }, { key: "dropTargetOptions", get: function get() { return this.dropTargetOptionsInternal; }, set: function set(options) { this.dropTargetOptionsInternal = options; } }, { key: "dropTarget", get: function get() { return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current; } }]); return TargetConnector; }(); function _classCallCheck$6(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$6(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); } } function _createClass$6(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$6(Constructor.prototype, protoProps); if (staticProps) _defineProperties$6(Constructor, staticProps); return Constructor; } var isCallingCanDrop = false; var DropTargetMonitorImpl = /*#__PURE__*/function () { function DropTargetMonitorImpl(manager) { _classCallCheck$6(this, DropTargetMonitorImpl); this.targetId = null; this.internalMonitor = manager.getMonitor(); } _createClass$6(DropTargetMonitorImpl, [{ key: "receiveHandlerId", value: function receiveHandlerId(targetId) { this.targetId = targetId; } }, { key: "getHandlerId", value: function getHandlerId() { return this.targetId; } }, { key: "subscribeToStateChange", value: function subscribeToStateChange(listener, options) { return this.internalMonitor.subscribeToStateChange(listener, options); } }, { key: "canDrop", value: function canDrop() { // Cut out early if the target id has not been set. This should prevent errors // where the user has an older version of dnd-core like in // https://github.com/react-dnd/react-dnd/issues/1310 if (!this.targetId) { return false; } invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor'); try { isCallingCanDrop = true; return this.internalMonitor.canDropOnTarget(this.targetId); } finally { isCallingCanDrop = false; } } }, { key: "isOver", value: function isOver(options) { if (!this.targetId) { return false; } return this.internalMonitor.isOverTarget(this.targetId, options); } }, { key: "getItemType", value: function getItemType() { return this.internalMonitor.getItemType(); } }, { key: "getItem", value: function getItem() { return this.internalMonitor.getItem(); } }, { key: "getDropResult", value: function getDropResult() { return this.internalMonitor.getDropResult(); } }, { key: "didDrop", value: function didDrop() { return this.internalMonitor.didDrop(); } }, { key: "getInitialClientOffset", value: function getInitialClientOffset() { return this.internalMonitor.getInitialClientOffset(); } }, { key: "getInitialSourceClientOffset", value: function getInitialSourceClientOffset() { return this.internalMonitor.getInitialSourceClientOffset(); } }, { key: "getSourceClientOffset", value: function getSourceClientOffset() { return this.internalMonitor.getSourceClientOffset(); } }, { key: "getClientOffset", value: function getClientOffset() { return this.internalMonitor.getClientOffset(); } }, { key: "getDifferenceFromInitialOffset", value: function getDifferenceFromInitialOffset() { return this.internalMonitor.getDifferenceFromInitialOffset(); } }]); return DropTargetMonitorImpl; }(); function _slicedToArray$6(arr, i) { return _arrayWithHoles$6(arr) || _iterableToArrayLimit$6(arr, i) || _unsupportedIterableToArray$6(arr, i) || _nonIterableRest$6(); } function _nonIterableRest$6() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$6(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$6(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen); } function _arrayLikeToArray$6(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$6(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$6(arr) { if (Array.isArray(arr)) return arr; } function useDropTargetMonitor() { var manager = useDragDropManager(); var monitor = React.useMemo(function () { return new DropTargetMonitorImpl(manager); }, [manager]); var connector = React.useMemo(function () { return new TargetConnector(manager.getBackend()); }, [manager]); return [monitor, connector]; } function useDropHandler(spec, monitor, connector) { var manager = useDragDropManager(); var handler = React.useMemo(function () { return { canDrop: function canDrop() { var canDrop = spec.current.canDrop; return canDrop ? canDrop(monitor.getItem(), monitor) : true; }, hover: function hover() { var hover = spec.current.hover; if (hover) { hover(monitor.getItem(), monitor); } }, drop: function drop() { var drop = spec.current.drop; if (drop) { return drop(monitor.getItem(), monitor); } } }; }, [monitor]); useIsomorphicLayoutEffect(function registerHandler() { var _registerTarget = registerTarget(spec.current.accept, handler, manager), _registerTarget2 = _slicedToArray$6(_registerTarget, 2), handlerId = _registerTarget2[0], unregister = _registerTarget2[1]; monitor.receiveHandlerId(handlerId); connector.receiveHandlerId(handlerId); return unregister; }, [monitor, connector]); } function _slicedToArray$7(arr, i) { return _arrayWithHoles$7(arr) || _iterableToArrayLimit$7(arr, i) || _unsupportedIterableToArray$7(arr, i) || _nonIterableRest$7(); } function _nonIterableRest$7() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$7(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$7(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$7(o, minLen); } function _arrayLikeToArray$7(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$7(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$7(arr) { if (Array.isArray(arr)) return arr; } /** * useDropTarget Hook * @param spec The drop target specification */ function useDrop(spec) { var specRef = React.useRef(spec); specRef.current = spec; invariant(spec.accept != null, 'accept must be defined'); var _useDropTargetMonitor = useDropTargetMonitor(), _useDropTargetMonitor2 = _slicedToArray$7(_useDropTargetMonitor, 2), monitor = _useDropTargetMonitor2[0], connector = _useDropTargetMonitor2[1]; useDropHandler(specRef, monitor, connector); var result = useMonitorOutput(monitor, specRef.current.collect || function () { return {}; }, function () { return connector.reconnect(); }); var connectDropTarget = React.useMemo(function () { return connector.hooks.dropTarget(); }, [connector]); useIsomorphicLayoutEffect(function () { connector.dropTargetOptions = spec.options || null; connector.reconnect(); }, [spec.options]); return [result, connectDropTarget]; } function _slicedToArray$8(arr, i) { return _arrayWithHoles$8(arr) || _iterableToArrayLimit$8(arr, i) || _unsupportedIterableToArray$8(arr, i) || _nonIterableRest$8(); } function _nonIterableRest$8() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$8(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$8(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$8(o, minLen); } function _arrayLikeToArray$8(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$8(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$8(arr) { if (Array.isArray(arr)) return arr; } /** * useDragLayer Hook * @param collector The property collector */ function useDragLayer(collect) { var dragDropManager = useDragDropManager(); var monitor = dragDropManager.getMonitor(); var _useCollector = useCollector(monitor, collect), _useCollector2 = _slicedToArray$8(_useCollector, 2), collected = _useCollector2[0], updateCollected = _useCollector2[1]; React.useEffect(function () { return monitor.subscribeToOffsetChange(updateCollected); }); React.useEffect(function () { return monitor.subscribeToStateChange(updateCollected); }); return collected; } function _typeof$4(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$4(obj); } // cheap lodash replacements function isFunction(input) { return typeof input === 'function'; } function noop() {// noop } function isObjectLike(input) { return _typeof$4(input) === 'object' && input !== null; } function isPlainObject$1(input) { if (!isObjectLike(input)) { return false; } if (Object.getPrototypeOf(input) === null) { return true; } var proto = input; while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto); } return Object.getPrototypeOf(input) === proto; } function getDecoratedComponent(instanceRef) { var currentRef = instanceRef.current; if (currentRef == null) { return null; } else if (currentRef.decoratedRef) { // go through the private field in decorateHandler to avoid the invariant hit return currentRef.decoratedRef.current; } else { return currentRef; } } function isClassComponent(Component) { return Component && Component.prototype && typeof Component.prototype.render === 'function'; } function isRefForwardingComponent(C) { var _item$$$typeof; var item = C; return (item === null || item === void 0 ? void 0 : (_item$$$typeof = item.$$typeof) === null || _item$$$typeof === void 0 ? void 0 : _item$$$typeof.toString()) === 'Symbol(react.forward_ref)'; } function isRefable(C) { return isClassComponent(C) || isRefForwardingComponent(C); } function checkDecoratorArguments(functionName, signature) { { for (var i = 0; i < (arguments.length <= 2 ? 0 : arguments.length - 2); i++) { var arg = i + 2 < 2 || arguments.length <= i + 2 ? undefined : arguments[i + 2]; if (arg && arg.prototype && arg.prototype.render) { // eslint-disable-next-line no-console console.error('You seem to be applying the arguments in the wrong order. ' + "It should be ".concat(functionName, "(").concat(signature, ")(Component), not the other way around. ") + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order'); return; } } } } function createCommonjsModule(fn, basedir, module) { return module = { path: basedir, exports: {}, require: function (path, base) { return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); } }, fn(module, module.exports), module.exports; } function commonjsRequire () { throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); } var reactIs_development = createCommonjsModule(function (module, exports) { { (function() { // The Symbol used to tag the ReactElement-like types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. var hasSymbol = typeof Symbol === 'function' && Symbol.for; var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary // (unstable) APIs that have been removed. Can we remove the symbols? var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; function isValidElementType(type) { return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); } function typeOf(object) { if (typeof object === 'object' && object !== null) { var $$typeof = object.$$typeof; switch ($$typeof) { case REACT_ELEMENT_TYPE: var type = object.type; switch (type) { case REACT_ASYNC_MODE_TYPE: case REACT_CONCURRENT_MODE_TYPE: case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: return type; default: var $$typeofType = type && type.$$typeof; switch ($$typeofType) { case REACT_CONTEXT_TYPE: case REACT_FORWARD_REF_TYPE: case REACT_LAZY_TYPE: case REACT_MEMO_TYPE: case REACT_PROVIDER_TYPE: return $$typeofType; default: return $$typeof; } } case REACT_PORTAL_TYPE: return $$typeof; } } return undefined; } // AsyncMode is deprecated along with isAsyncMode var AsyncMode = REACT_ASYNC_MODE_TYPE; var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; var ContextConsumer = REACT_CONTEXT_TYPE; var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; var ForwardRef = REACT_FORWARD_REF_TYPE; var Fragment = REACT_FRAGMENT_TYPE; var Lazy = REACT_LAZY_TYPE; var Memo = REACT_MEMO_TYPE; var Portal = REACT_PORTAL_TYPE; var Profiler = REACT_PROFILER_TYPE; var StrictMode = REACT_STRICT_MODE_TYPE; var Suspense = REACT_SUSPENSE_TYPE; var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated function isAsyncMode(object) { { if (!hasWarnedAboutDeprecatedIsAsyncMode) { hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); } } return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; } function isConcurrentMode(object) { return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; } function isContextConsumer(object) { return typeOf(object) === REACT_CONTEXT_TYPE; } function isContextProvider(object) { return typeOf(object) === REACT_PROVIDER_TYPE; } function isElement(object) { return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; } function isForwardRef(object) { return typeOf(object) === REACT_FORWARD_REF_TYPE; } function isFragment(object) { return typeOf(object) === REACT_FRAGMENT_TYPE; } function isLazy(object) { return typeOf(object) === REACT_LAZY_TYPE; } function isMemo(object) { return typeOf(object) === REACT_MEMO_TYPE; } function isPortal(object) { return typeOf(object) === REACT_PORTAL_TYPE; } function isProfiler(object) { return typeOf(object) === REACT_PROFILER_TYPE; } function isStrictMode(object) { return typeOf(object) === REACT_STRICT_MODE_TYPE; } function isSuspense(object) { return typeOf(object) === REACT_SUSPENSE_TYPE; } exports.AsyncMode = AsyncMode; exports.ConcurrentMode = ConcurrentMode; exports.ContextConsumer = ContextConsumer; exports.ContextProvider = ContextProvider; exports.Element = Element; exports.ForwardRef = ForwardRef; exports.Fragment = Fragment; exports.Lazy = Lazy; exports.Memo = Memo; exports.Portal = Portal; exports.Profiler = Profiler; exports.StrictMode = StrictMode; exports.Suspense = Suspense; exports.isAsyncMode = isAsyncMode; exports.isConcurrentMode = isConcurrentMode; exports.isContextConsumer = isContextConsumer; exports.isContextProvider = isContextProvider; exports.isElement = isElement; exports.isForwardRef = isForwardRef; exports.isFragment = isFragment; exports.isLazy = isLazy; exports.isMemo = isMemo; exports.isPortal = isPortal; exports.isProfiler = isProfiler; exports.isStrictMode = isStrictMode; exports.isSuspense = isSuspense; exports.isValidElementType = isValidElementType; exports.typeOf = typeOf; })(); } }); var reactIs_development_1 = reactIs_development.AsyncMode; var reactIs_development_2 = reactIs_development.ConcurrentMode; var reactIs_development_3 = reactIs_development.ContextConsumer; var reactIs_development_4 = reactIs_development.ContextProvider; var reactIs_development_5 = reactIs_development.Element; var reactIs_development_6 = reactIs_development.ForwardRef; var reactIs_development_7 = reactIs_development.Fragment; var reactIs_development_8 = reactIs_development.Lazy; var reactIs_development_9 = reactIs_development.Memo; var reactIs_development_10 = reactIs_development.Portal; var reactIs_development_11 = reactIs_development.Profiler; var reactIs_development_12 = reactIs_development.StrictMode; var reactIs_development_13 = reactIs_development.Suspense; var reactIs_development_14 = reactIs_development.isAsyncMode; var reactIs_development_15 = reactIs_development.isConcurrentMode; var reactIs_development_16 = reactIs_development.isContextConsumer; var reactIs_development_17 = reactIs_development.isContextProvider; var reactIs_development_18 = reactIs_development.isElement; var reactIs_development_19 = reactIs_development.isForwardRef; var reactIs_development_20 = reactIs_development.isFragment; var reactIs_development_21 = reactIs_development.isLazy; var reactIs_development_22 = reactIs_development.isMemo; var reactIs_development_23 = reactIs_development.isPortal; var reactIs_development_24 = reactIs_development.isProfiler; var reactIs_development_25 = reactIs_development.isStrictMode; var reactIs_development_26 = reactIs_development.isSuspense; var reactIs_development_27 = reactIs_development.isValidElementType; var reactIs_development_28 = reactIs_development.typeOf; var reactIs = createCommonjsModule(function (module) { { module.exports = reactIs_development; } }); /** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ var REACT_STATICS = { childContextTypes: true, contextType: true, contextTypes: true, defaultProps: true, displayName: true, getDefaultProps: true, getDerivedStateFromError: true, getDerivedStateFromProps: true, mixins: true, propTypes: true, type: true }; var KNOWN_STATICS = { name: true, length: true, prototype: true, caller: true, callee: true, arguments: true, arity: true }; var FORWARD_REF_STATICS = { '$$typeof': true, render: true, defaultProps: true, displayName: true, propTypes: true }; var MEMO_STATICS = { '$$typeof': true, compare: true, defaultProps: true, displayName: true, propTypes: true, type: true }; var TYPE_STATICS = {}; TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; TYPE_STATICS[reactIs.Memo] = MEMO_STATICS; function getStatics(component) { // React v16.11 and below if (reactIs.isMemo(component)) { return MEMO_STATICS; } // React v16.12 and above return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; } var defineProperty = Object.defineProperty; var getOwnPropertyNames = Object.getOwnPropertyNames; var getOwnPropertySymbols = Object.getOwnPropertySymbols; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var getPrototypeOf = Object.getPrototypeOf; var objectPrototype = Object.prototype; function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components if (objectPrototype) { var inheritedComponent = getPrototypeOf(sourceComponent); if (inheritedComponent && inheritedComponent !== objectPrototype) { hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); } } var keys = getOwnPropertyNames(sourceComponent); if (getOwnPropertySymbols) { keys = keys.concat(getOwnPropertySymbols(sourceComponent)); } var targetStatics = getStatics(targetComponent); var sourceStatics = getStatics(sourceComponent); for (var i = 0; i < keys.length; ++i) { var key = keys[i]; if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { var descriptor = getOwnPropertyDescriptor(sourceComponent, key); try { // Avoid failures from read-only properties defineProperty(targetComponent, key, descriptor); } catch (e) {} } } } return targetComponent; } var hoistNonReactStatics_cjs = hoistNonReactStatics; function _classCallCheck$7(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$7(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); } } function _createClass$7(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$7(Constructor.prototype, protoProps); if (staticProps) _defineProperties$7(Constructor, staticProps); return Constructor; } /** * Provides a set of static methods for creating Disposables. * @param {Function} action Action to run during the first call to dispose. * The action is guaranteed to be run at most once. */ var Disposable = /** @class */ function () { var Disposable = /*#__PURE__*/function () { function Disposable(action) { _classCallCheck$7(this, Disposable); this.isDisposed = false; this.action = isFunction(action) ? action : noop; } /** * Validates whether the given object is a disposable * @param {Object} Object to test whether it has a dispose method * @returns {Boolean} true if a disposable object, else false. */ _createClass$7(Disposable, [{ key: "dispose", /** Performs the task of cleaning up resources. */ value: function dispose() { if (!this.isDisposed) { this.action(); this.isDisposed = true; } } }], [{ key: "isDisposable", value: function isDisposable(d) { return Boolean(d && isFunction(d.dispose)); } }, { key: "_fixup", value: function _fixup(result) { return Disposable.isDisposable(result) ? result : Disposable.empty; } /** * Creates a disposable object that invokes the specified action when disposed. * @param {Function} dispose Action to run during the first call to dispose. * The action is guaranteed to be run at most once. * @return {Disposable} The disposable object that runs the given action upon disposal. */ }, { key: "create", value: function create(action) { return new Disposable(action); } }]); return Disposable; }(); /** * Gets the disposable that does nothing when disposed. */ Disposable.empty = { dispose: noop }; return Disposable; }(); /** * Represents a group of disposable resources that are disposed together. * @constructor */ var CompositeDisposable = /*#__PURE__*/function () { function CompositeDisposable() { _classCallCheck$7(this, CompositeDisposable); this.isDisposed = false; for (var _len = arguments.length, disposables = new Array(_len), _key = 0; _key < _len; _key++) { disposables[_key] = arguments[_key]; } this.disposables = disposables; } /** * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. * @param {Any} item Disposable to add. */ _createClass$7(CompositeDisposable, [{ key: "add", value: function add(item) { if (this.isDisposed) { item.dispose(); } else { this.disposables.push(item); } } /** * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. * @param {Any} item Disposable to remove. * @returns {Boolean} true if found; false otherwise. */ }, { key: "remove", value: function remove(item) { var shouldDispose = false; if (!this.isDisposed) { var idx = this.disposables.indexOf(item); if (idx !== -1) { shouldDispose = true; this.disposables.splice(idx, 1); item.dispose(); } } return shouldDispose; } /** * Disposes all disposables in the group and removes them from the group but * does not dispose the CompositeDisposable. */ }, { key: "clear", value: function clear() { if (!this.isDisposed) { var len = this.disposables.length; var currentDisposables = new Array(len); for (var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; } this.disposables = []; for (var _i = 0; _i < len; _i++) { currentDisposables[_i].dispose(); } } } /** * Disposes all disposables in the group and removes them from the group. */ }, { key: "dispose", value: function dispose() { if (!this.isDisposed) { this.isDisposed = true; var len = this.disposables.length; var currentDisposables = new Array(len); for (var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; } this.disposables = []; for (var _i2 = 0; _i2 < len; _i2++) { currentDisposables[_i2].dispose(); } } } }]); return CompositeDisposable; }(); /** * Represents a disposable resource whose underlying disposable resource can * be replaced by another disposable resource, causing automatic disposal of * the previous underlying disposable resource. */ var SerialDisposable = /*#__PURE__*/function () { function SerialDisposable() { _classCallCheck$7(this, SerialDisposable); this.isDisposed = false; } /** * Gets the underlying disposable. * @returns {Any} the underlying disposable. */ _createClass$7(SerialDisposable, [{ key: "getDisposable", value: function getDisposable() { return this.current; } }, { key: "setDisposable", value: function setDisposable(value) { var shouldDispose = this.isDisposed; if (!shouldDispose) { var old = this.current; this.current = value; if (old) { old.dispose(); } } if (shouldDispose && value) { value.dispose(); } } /** Performs the task of cleaning up resources. */ }, { key: "dispose", value: function dispose() { if (!this.isDisposed) { this.isDisposed = true; var old = this.current; this.current = undefined; if (old) { old.dispose(); } } } }]); return SerialDisposable; }(); function _typeof$5(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$5(obj); } function _slicedToArray$9(arr, i) { return _arrayWithHoles$9(arr) || _iterableToArrayLimit$9(arr, i) || _unsupportedIterableToArray$9(arr, i) || _nonIterableRest$9(); } function _nonIterableRest$9() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$9(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$9(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$9(o, minLen); } function _arrayLikeToArray$9(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit$9(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles$9(arr) { if (Array.isArray(arr)) return arr; } function _classCallCheck$8(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$8(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); } } function _createClass$8(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$8(Constructor.prototype, protoProps); if (staticProps) _defineProperties$8(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof$5(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function decorateHandler(_ref) { var DecoratedComponent = _ref.DecoratedComponent, createHandler = _ref.createHandler, createMonitor = _ref.createMonitor, createConnector = _ref.createConnector, registerHandler = _ref.registerHandler, containerDisplayName = _ref.containerDisplayName, getType = _ref.getType, collect = _ref.collect, options = _ref.options; var _options$arePropsEqua = options.arePropsEqual, arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua; var Decorated = DecoratedComponent; var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component'; var DragDropContainer = /** @class */ function () { var DragDropContainer = /*#__PURE__*/function (_React$Component) { _inherits(DragDropContainer, _React$Component); var _super = _createSuper(DragDropContainer); function DragDropContainer(props) { var _this; _classCallCheck$8(this, DragDropContainer); _this = _super.call(this, props); _this.decoratedRef = React.createRef(); _this.handleChange = function () { var nextState = _this.getCurrentState(); if (!shallowEqual(nextState, _this.state)) { _this.setState(nextState); } }; _this.disposable = new SerialDisposable(); _this.receiveProps(props); _this.dispose(); return _this; } _createClass$8(DragDropContainer, [{ key: "getHandlerId", value: function getHandlerId() { return this.handlerId; } }, { key: "getDecoratedComponentInstance", value: function getDecoratedComponentInstance() { invariant(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()'); return this.decoratedRef.current; } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state); } }, { key: "componentDidMount", value: function componentDidMount() { this.disposable = new SerialDisposable(); this.currentType = undefined; this.receiveProps(this.props); this.handleChange(); } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { if (!arePropsEqual(this.props, prevProps)) { this.receiveProps(this.props); this.handleChange(); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.dispose(); } }, { key: "receiveProps", value: function receiveProps(props) { if (!this.handler) { return; } this.handler.receiveProps(props); this.receiveType(getType(props)); } }, { key: "receiveType", value: function receiveType(type) { if (!this.handlerMonitor || !this.manager || !this.handlerConnector) { return; } if (type === this.currentType) { return; } this.currentType = type; var _registerHandler = registerHandler(type, this.handler, this.manager), _registerHandler2 = _slicedToArray$9(_registerHandler, 2), handlerId = _registerHandler2[0], unregister = _registerHandler2[1]; this.handlerId = handlerId; this.handlerMonitor.receiveHandlerId(handlerId); this.handlerConnector.receiveHandlerId(handlerId); var globalMonitor = this.manager.getMonitor(); var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, { handlerIds: [handlerId] }); this.disposable.setDisposable(new CompositeDisposable(new Disposable(unsubscribe), new Disposable(unregister))); } }, { key: "dispose", value: function dispose() { this.disposable.dispose(); if (this.handlerConnector) { this.handlerConnector.receiveHandlerId(null); } } }, { key: "getCurrentState", value: function getCurrentState() { if (!this.handlerConnector) { return {}; } var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props); { invariant(isPlainObject$1(nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState); } return nextState; } }, { key: "render", value: function render() { var _this2 = this; return React.createElement(DndContext.Consumer, null, function (_ref2) { var dragDropManager = _ref2.dragDropManager; _this2.receiveDragDropManager(dragDropManager); if (typeof requestAnimationFrame !== 'undefined') { requestAnimationFrame(function () { var _this2$handlerConnect; return (_this2$handlerConnect = _this2.handlerConnector) === null || _this2$handlerConnect === void 0 ? void 0 : _this2$handlerConnect.reconnect(); }); } return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.getCurrentState(), { // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component. ref: isRefable(Decorated) ? _this2.decoratedRef : null })); }); } }, { key: "receiveDragDropManager", value: function receiveDragDropManager(dragDropManager) { if (this.manager !== undefined) { return; } invariant(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName); if (dragDropManager === undefined) { return; } this.manager = dragDropManager; this.handlerMonitor = createMonitor(dragDropManager); this.handlerConnector = createConnector(dragDropManager.getBackend()); this.handler = createHandler(this.handlerMonitor, this.decoratedRef); } }]); return DragDropContainer; }(React.Component); DragDropContainer.DecoratedComponent = DecoratedComponent; DragDropContainer.displayName = "".concat(containerDisplayName, "(").concat(displayName, ")"); return DragDropContainer; }(); return hoistNonReactStatics_cjs(DragDropContainer, DecoratedComponent); } function _typeof$6(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$6(obj); } function isValidType(type, allowArray) { return typeof type === 'string' || _typeof$6(type) === 'symbol' || !!allowArray && Array.isArray(type) && type.every(function (t) { return isValidType(t, false); }); } function _classCallCheck$9(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$9(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); } } function _createClass$9(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$9(Constructor.prototype, protoProps); if (staticProps) _defineProperties$9(Constructor, staticProps); return Constructor; } var ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag']; var REQUIRED_SPEC_METHODS = ['beginDrag']; var SourceImpl = /*#__PURE__*/function () { function SourceImpl(spec, monitor, ref) { var _this = this; _classCallCheck$9(this, SourceImpl); this.props = null; this.beginDrag = function () { if (!_this.props) { return; } var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current); { invariant(isPlainObject$1(item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item); } return item; }; this.spec = spec; this.monitor = monitor; this.ref = ref; } _createClass$9(SourceImpl, [{ key: "receiveProps", value: function receiveProps(props) { this.props = props; } }, { key: "canDrag", value: function canDrag() { if (!this.props) { return false; } if (!this.spec.canDrag) { return true; } return this.spec.canDrag(this.props, this.monitor); } }, { key: "isDragging", value: function isDragging(globalMonitor, sourceId) { if (!this.props) { return false; } if (!this.spec.isDragging) { return sourceId === globalMonitor.getSourceId(); } return this.spec.isDragging(this.props, this.monitor); } }, { key: "endDrag", value: function endDrag() { if (!this.props) { return; } if (!this.spec.endDrag) { return; } this.spec.endDrag(this.props, this.monitor, getDecoratedComponent(this.ref)); } }]); return SourceImpl; }(); function createSourceFactory(spec) { Object.keys(spec).forEach(function (key) { invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key); invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]); }); REQUIRED_SPEC_METHODS.forEach(function (key) { invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]); }); return function createSource(monitor, ref) { return new SourceImpl(spec, monitor, ref); }; } /** * Decorates a component as a dragsource * @param type The dragsource type * @param spec The drag source specification * @param collect The props collector function * @param options DnD options */ function DragSource(type, spec, collect) { var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; checkDecoratorArguments('DragSource', 'type, spec, collect[, options]', type, spec, collect, options); var getType = type; if (typeof type !== 'function') { invariant(isValidType(type), 'Expected "type" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type); getType = function getType() { return type; }; } invariant(isPlainObject$1(spec), 'Expected "spec" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec); var createSource = createSourceFactory(spec); invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect); invariant(isPlainObject$1(options), 'Expected "options" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect); return function decorateSource(DecoratedComponent) { return decorateHandler({ containerDisplayName: 'DragSource', createHandler: createSource, registerHandler: registerSource, createConnector: function createConnector(backend) { return new SourceConnector(backend); }, createMonitor: function createMonitor(manager) { return new DragSourceMonitorImpl(manager); }, DecoratedComponent: DecoratedComponent, getType: getType, collect: collect, options: options }); }; } function _classCallCheck$a(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$a(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); } } function _createClass$a(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$a(Constructor.prototype, protoProps); if (staticProps) _defineProperties$a(Constructor, staticProps); return Constructor; } var ALLOWED_SPEC_METHODS$1 = ['canDrop', 'hover', 'drop']; var TargetImpl = /*#__PURE__*/function () { function TargetImpl(spec, monitor, ref) { _classCallCheck$a(this, TargetImpl); this.props = null; this.spec = spec; this.monitor = monitor; this.ref = ref; } _createClass$a(TargetImpl, [{ key: "receiveProps", value: function receiveProps(props) { this.props = props; } }, { key: "receiveMonitor", value: function receiveMonitor(monitor) { this.monitor = monitor; } }, { key: "canDrop", value: function canDrop() { if (!this.spec.canDrop) { return true; } return this.spec.canDrop(this.props, this.monitor); } }, { key: "hover", value: function hover() { if (!this.spec.hover || !this.props) { return; } this.spec.hover(this.props, this.monitor, getDecoratedComponent(this.ref)); } }, { key: "drop", value: function drop() { if (!this.spec.drop) { return undefined; } var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current); { invariant(typeof dropResult === 'undefined' || isPlainObject$1(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult); } return dropResult; } }]); return TargetImpl; }(); function createTargetFactory(spec) { Object.keys(spec).forEach(function (key) { invariant(ALLOWED_SPEC_METHODS$1.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS$1.join(', '), key); invariant(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]); }); return function createTarget(monitor, ref) { return new TargetImpl(spec, monitor, ref); }; } function DropTarget(type, spec, collect) { var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; checkDecoratorArguments('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options); var getType = type; if (typeof type !== 'function') { invariant(isValidType(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type); getType = function getType() { return type; }; } invariant(isPlainObject$1(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec); var createTarget = createTargetFactory(spec); invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect); invariant(isPlainObject$1(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect); return function decorateTarget(DecoratedComponent) { return decorateHandler({ containerDisplayName: 'DropTarget', createHandler: createTarget, registerHandler: registerTarget, createMonitor: function createMonitor(manager) { return new DropTargetMonitorImpl(manager); }, createConnector: function createConnector(backend) { return new TargetConnector(backend); }, DecoratedComponent: DecoratedComponent, getType: getType, collect: collect, options: options }); }; } function _typeof$7(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$7 = function _typeof(obj) { return typeof obj; }; } else { _typeof$7 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$7(obj); } function _classCallCheck$b(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$b(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); } } function _createClass$b(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$b(Constructor.prototype, protoProps); if (staticProps) _defineProperties$b(Constructor, staticProps); return Constructor; } function _inherits$1(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$1(subClass, superClass); } function _setPrototypeOf$1(o, p) { _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$1(o, p); } function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf$1(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf$1(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn$1(this, result); }; } function _possibleConstructorReturn$1(self, call) { if (call && (_typeof$7(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized$1(self); } function _assertThisInitialized$1(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf$1(o) { _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$1(o); } function DragLayer(collect) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; checkDecoratorArguments('DragLayer', 'collect[, options]', collect, options); invariant(typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect); invariant(isPlainObject$1(options), 'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options); return function decorateLayer(DecoratedComponent) { var Decorated = DecoratedComponent; var _options$arePropsEqua = options.arePropsEqual, arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua; var displayName = Decorated.displayName || Decorated.name || 'Component'; var DragLayerContainer = /** @class */ function () { var DragLayerContainer = /*#__PURE__*/function (_React$Component) { _inherits$1(DragLayerContainer, _React$Component); var _super = _createSuper$1(DragLayerContainer); function DragLayerContainer() { var _this; _classCallCheck$b(this, DragLayerContainer); _this = _super.apply(this, arguments); _this.isCurrentlyMounted = false; _this.ref = React.createRef(); _this.handleChange = function () { if (!_this.isCurrentlyMounted) { return; } var nextState = _this.getCurrentState(); if (!shallowEqual(nextState, _this.state)) { _this.setState(nextState); } }; return _this; } _createClass$b(DragLayerContainer, [{ key: "getDecoratedComponentInstance", value: function getDecoratedComponentInstance() { invariant(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()'); return this.ref.current; } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state); } }, { key: "componentDidMount", value: function componentDidMount() { this.isCurrentlyMounted = true; this.handleChange(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.isCurrentlyMounted = false; if (this.unsubscribeFromOffsetChange) { this.unsubscribeFromOffsetChange(); this.unsubscribeFromOffsetChange = undefined; } if (this.unsubscribeFromStateChange) { this.unsubscribeFromStateChange(); this.unsubscribeFromStateChange = undefined; } } }, { key: "render", value: function render() { var _this2 = this; return React.createElement(DndContext.Consumer, null, function (_ref) { var dragDropManager = _ref.dragDropManager; if (dragDropManager === undefined) { return null; } _this2.receiveDragDropManager(dragDropManager); // Let componentDidMount fire to initialize the collected state if (!_this2.isCurrentlyMounted) { return null; } return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.state, { ref: isRefable(Decorated) ? _this2.ref : null })); }); } }, { key: "receiveDragDropManager", value: function receiveDragDropManager(dragDropManager) { if (this.manager !== undefined) { return; } this.manager = dragDropManager; invariant(_typeof$7(dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName); var monitor = this.manager.getMonitor(); this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange); this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange); } }, { key: "getCurrentState", value: function getCurrentState() { if (!this.manager) { return {}; } var monitor = this.manager.getMonitor(); return collect(monitor, this.props); } }]); return DragLayerContainer; }(React.Component); DragLayerContainer.displayName = "DragLayer(".concat(displayName, ")"); DragLayerContainer.DecoratedComponent = DecoratedComponent; return DragLayerContainer; }(); return hoistNonReactStatics_cjs(DragLayerContainer, DecoratedComponent); }; } exports.DndContext = DndContext; exports.DndProvider = DndProvider; exports.DragLayer = DragLayer; exports.DragPreviewImage = DragPreviewImage; exports.DragSource = DragSource; exports.DropTarget = DropTarget; exports.createDndContext = createDndContext; exports.useDrag = useDrag; exports.useDragDropManager = useDragDropManager; exports.useDragLayer = useDragLayer; exports.useDrop = useDrop; Object.defineProperty(exports, '__esModule', { value: true }); }))); PK]x\Bhiumd/ReactDnD.min.jsnu[!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).ReactDnD={},e.React)}(this,(function(e,t){"use strict";var r;!function(e){e.SOURCE="SOURCE",e.TARGET="TARGET"}(r||(r={}));var n=function(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),o=function(){return Math.random().toString(36).substring(7).split("").join(".")},i={INIT:"@@redux/INIT"+o(),REPLACE:"@@redux/REPLACE"+o(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+o()}};function a(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function u(e,t,r){var o;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(u)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var c=e,s=t,f=[],l=f,d=!1;function p(){l===f&&(l=f.slice())}function h(){if(d)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return s}function g(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(d)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return p(),l.push(e),function(){if(t){if(d)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,p();var r=l.indexOf(e);l.splice(r,1),f=null}}}function y(e){if(!a(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(d)throw new Error("Reducers may not dispatch actions.");try{d=!0,s=c(s,e)}finally{d=!1}for(var t=f=l,r=0;r2?r-2:0),o=2;o0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{publishSource:!0},n=r.publishSource,o=void 0===n||n,i=r.clientOffset,a=r.getSourceClientOffset,u=e.getMonitor(),c=e.getRegistry();e.dispatch(g(i)),D(t,u,c);var s=k(t,u);if(null!==s){var l=null;if(i){if(!a)throw new Error("getSourceClientOffset must be defined");I(a),l=a(s)}e.dispatch(g(i,l));var d=c.getSource(s),p=d.beginDrag(u,s);C(p),c.pinSource(s);var h=c.getSourceType(s);return{type:f,payload:{itemType:h,item:p,sourceId:s,clientOffset:i||null,sourceClientOffset:l||null,isSourcePublic:!!o}}}e.dispatch(S)}}function D(e,t,r){c(!t.isDragging(),"Cannot call beginDrag while dragging."),e.forEach((function(e){c(r.getSource(e),"Expected sourceIds to be registered.")}))}function I(e){c("function"==typeof e,"When clientOffset is provided, getSourceClientOffset must be a function.")}function C(e){c(m(e),"Item must be an object.")}function k(e,t){for(var r=null,n=e.length-1;n>=0;n--)if(t.canDragSource(e[n])){r=e[n];break}return r}function T(e){return function(){if(e.getMonitor().isDragging())return{type:l}}}function P(e,t){return null===t?null===e:Array.isArray(e)?e.some((function(e){return e===t})):e===t}function j(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.clientOffset;E(t);var o=t.slice(0),i=e.getMonitor(),a=e.getRegistry();R(o,i,a);var u=i.getItemType();return x(o,a,u),M(o,i,a),{type:d,payload:{targetIds:o,clientOffset:n||null}}}}function E(e){c(Array.isArray(e),"Expected targetIds to be an array.")}function R(e,t,r){c(t.isDragging(),"Cannot call hover while not dragging."),c(!t.didDrop(),"Cannot call hover after drop.");for(var n=0;n=0;n--){var o=e[n];P(t.getTargetType(o),r)||e.splice(n,1)}}function M(e,t,r){e.forEach((function(e){r.getTarget(e).hover(t,e)}))}function A(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},r=e.getMonitor(),n=e.getRegistry();U(r);var o=F(r);o.forEach((function(o,i){var a=$(o,i,n,r),u={type:p,payload:{dropResult:_(_({},t),a)}};e.dispatch(u)}))}}function U(e){c(e.isDragging(),"Cannot call drop while not dragging."),c(!e.didDrop(),"Cannot call drop twice during one drag operation.")}function $(e,t,r,n){var o=r.getTarget(e),i=o?o.drop(n,e):void 0;return function(e){c(void 0===e||m(e),"Drop result must either be an object or undefined.")}(i),void 0===i&&(i=0===t?{}:n.getDropResult()),i}function F(e){var t=e.getTargetIds().filter(e.canDropOnTarget,e);return t.reverse(),t}function L(e){return function(){var t=e.getMonitor(),r=e.getRegistry();!function(e){c(e.isDragging(),"Cannot call endDrag while not dragging.")}(t);var n=t.getSourceId();null!=n&&(r.getSource(n,!0).endDrag(t,n),r.unpinSource());return{type:h}}}var B=function(e,t){return e===t};function G(e,t){return!e&&!t||!(!e||!t)&&(e.x===t.x&&e.y===t.y)}function q(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:B;if(e.length!==t.length)return!1;for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:z,t=arguments.length>1?arguments[1]:void 0,r=t.payload;switch(t.type){case s:case f:return{initialSourceClientOffset:r.sourceClientOffset,initialClientOffset:r.clientOffset,clientOffset:r.clientOffset};case d:return G(e.clientOffset,r.clientOffset)?e:W(W({},e),{},{clientOffset:r.clientOffset});case h:case p:return z;default:return e}}var X="dnd-core/ADD_SOURCE",J="dnd-core/ADD_TARGET",Q="dnd-core/REMOVE_SOURCE",Z="dnd-core/REMOVE_TARGET";function ee(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function te(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:ne,t=arguments.length>1?arguments[1]:void 0,r=t.payload;switch(t.type){case f:return te(te({},e),{},{itemType:r.itemType,item:r.item,sourceId:r.sourceId,isSourcePublic:r.isSourcePublic,dropResult:null,didDrop:!1});case l:return te(te({},e),{},{isSourcePublic:!0});case d:return te(te({},e),{},{targetIds:r.targetIds});case Z:return-1===e.targetIds.indexOf(r.targetId)?e:te(te({},e),{},{targetIds:b(e.targetIds,r.targetId)});case p:return te(te({},e),{},{dropResult:r.dropResult,didDrop:!0,targetIds:[]});case h:return te(te({},e),{},{itemType:null,item:null,sourceId:null,dropResult:null,didDrop:!1,isSourcePublic:null,targetIds:[]});default:return e}}function ie(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case X:case J:return e+1;case Q:case Z:return e-1;default:return e}}var ae=[],ue=[];function ce(e,t){return e!==ae&&(e===ue||void 0===t||(r=e,t.filter((function(e){return r.indexOf(e)>-1}))).length>0);var r}function se(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case d:break;case X:case J:case Z:case Q:return ae;case f:case l:case h:case p:default:return ue}var t=e.payload,r=t.targetIds,n=void 0===r?[]:r,o=t.prevTargetIds,i=void 0===o?[]:o,a=O(n,i),u=a.length>0||!q(n,i);if(!u)return ae;var c=i[i.length-1],s=n[n.length-1];return c!==s&&(c&&a.push(c),s&&a.push(s)),a}function fe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e+1}function le(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function de(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return{dirtyHandlerIds:se(e.dirtyHandlerIds,{type:t.type,payload:de(de({},t.payload),{},{prevTargetIds:v(e,"dragOperation.targetIds",[])})}),dragOffset:K(e.dragOffset,t),refCount:ie(e.refCount,t),dragOperation:oe(e.dragOperation,t),stateId:fe(e.stateId)}}function ge(e,t){return{x:e.x-t.x,y:e.y-t.y}}function ye(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{handlerIds:void 0},n=r.handlerIds;c("function"==typeof e,"listener must be a function."),c(void 0===n||Array.isArray(n),"handlerIds, when specified, must be an array of strings.");var o=this.store.getState().stateId,i=function(){var r=t.store.getState(),i=r.stateId;try{i===o||i===o+1&&!ce(r.dirtyHandlerIds,n)||e()}finally{o=i}};return this.store.subscribe(i)}},{key:"subscribeToOffsetChange",value:function(e){var t=this;c("function"==typeof e,"listener must be a function.");var r=this.store.getState().dragOffset;return this.store.subscribe((function(){var n=t.store.getState().dragOffset;n!==r&&(r=n,e())}))}},{key:"canDragSource",value:function(e){if(!e)return!1;var t=this.registry.getSource(e);return c(t,"Expected to find a valid source."),!this.isDragging()&&t.canDrag(this,e)}},{key:"canDropOnTarget",value:function(e){if(!e)return!1;var t=this.registry.getTarget(e);return c(t,"Expected to find a valid target."),!(!this.isDragging()||this.didDrop())&&P(this.registry.getTargetType(e),this.getItemType())&&t.canDrop(this,e)}},{key:"isDragging",value:function(){return Boolean(this.getItemType())}},{key:"isDraggingSource",value:function(e){if(!e)return!1;var t=this.registry.getSource(e,!0);return c(t,"Expected to find a valid source."),!(!this.isDragging()||!this.isSourcePublic())&&this.registry.getSourceType(e)===this.getItemType()&&t.isDragging(this,e)}},{key:"isOverTarget",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shallow:!1};if(!e)return!1;var r=t.shallow;if(!this.isDragging())return!1;var n=this.registry.getTargetType(e),o=this.getItemType();if(o&&!P(n,o))return!1;var i=this.getTargetIds();if(!i.length)return!1;var a=i.indexOf(e);return r?a===i.length-1:a>-1}},{key:"getItemType",value:function(){return this.store.getState().dragOperation.itemType}},{key:"getItem",value:function(){return this.store.getState().dragOperation.item}},{key:"getSourceId",value:function(){return this.store.getState().dragOperation.sourceId}},{key:"getTargetIds",value:function(){return this.store.getState().dragOperation.targetIds}},{key:"getDropResult",value:function(){return this.store.getState().dragOperation.dropResult}},{key:"didDrop",value:function(){return this.store.getState().dragOperation.didDrop}},{key:"isSourcePublic",value:function(){return Boolean(this.store.getState().dragOperation.isSourcePublic)}},{key:"getInitialClientOffset",value:function(){return this.store.getState().dragOffset.initialClientOffset}},{key:"getInitialSourceClientOffset",value:function(){return this.store.getState().dragOffset.initialSourceClientOffset}},{key:"getClientOffset",value:function(){return this.store.getState().dragOffset.clientOffset}},{key:"getSourceClientOffset",value:function(){return e=this.store.getState().dragOffset,t=e.clientOffset,r=e.initialClientOffset,n=e.initialSourceClientOffset,t&&r&&n?ge(function(e,t){return{x:e.x+t.x,y:e.y+t.y}}(t,n),r):null;var e,t,r,n}},{key:"getDifferenceFromInitialOffset",value:function(){return e=this.store.getState().dragOffset,t=e.clientOffset,r=e.initialClientOffset,t&&r?ge(t,r):null;var e,t,r}}])&&ye(t.prototype,r),n&&ye(t,n),e}(),be=0;function me(e){return(me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Oe(e,t){t&&Array.isArray(e)?e.forEach((function(e){return Oe(e,!1)})):c("string"==typeof e||"symbol"===me(e),t?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}function Se(e){De.length||we(),De[De.length]=e}var we,De=[],Ie=0;function Ce(){for(;Ie1024){for(var t=0,r=De.length-Ie;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]&&arguments[1];c(this.isSourceId(e),"Expected a valid source ID.");var r=t&&e===this.pinnedSourceId,n=r?this.pinnedSource:this.dragSources.get(e);return n}},{key:"getTarget",value:function(e){return c(this.isTargetId(e),"Expected a valid target ID."),this.dropTargets.get(e)}},{key:"getSourceType",value:function(e){return c(this.isSourceId(e),"Expected a valid source ID."),this.types.get(e)}},{key:"getTargetType",value:function(e){return c(this.isTargetId(e),"Expected a valid target ID."),this.types.get(e)}},{key:"isSourceId",value:function(e){return Le(e)===r.SOURCE}},{key:"isTargetId",value:function(e){return Le(e)===r.TARGET}},{key:"removeSource",value:function(e){var t=this;c(this.getSource(e),"Expected an existing source."),this.store.dispatch(function(e){return{type:Q,payload:{sourceId:e}}}(e)),_e((function(){t.dragSources.delete(e),t.types.delete(e)}))}},{key:"removeTarget",value:function(e){c(this.getTarget(e),"Expected an existing target."),this.store.dispatch(function(e){return{type:Z,payload:{targetId:e}}}(e)),this.dropTargets.delete(e),this.types.delete(e)}},{key:"pinSource",value:function(e){var t=this.getSource(e);c(t,"Expected an existing source."),this.pinnedSourceId=e,this.pinnedSource=t}},{key:"unpinSource",value:function(){c(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}},{key:"addHandler",value:function(e,t,n){var o=Fe(e);return this.types.set(o,t),e===r.SOURCE?this.dragSources.set(o,n):e===r.TARGET&&this.dropTargets.set(o,n),o}}])&&He(t.prototype,n),o&&He(t,o),e}();function qe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ve(e,t){for(var r=0;r0&&void 0!==arguments[0]&&arguments[0];qe(this,e),this.isSetUp=!1,this.handleRefCountChange=function(){var e=t.store.getState().refCount>0;t.backend&&(e&&!t.isSetUp?(t.backend.setup(),t.isSetUp=!0):!e&&t.isSetUp&&(t.backend.teardown(),t.isSetUp=!1))};var n=We(r);this.store=n,this.monitor=new ve(n,new Ge(n)),n.subscribe(this.handleRefCountChange)}var t,r,n;return t=e,(r=[{key:"receiveBackend",value:function(e){this.backend=e}},{key:"getMonitor",value:function(){return this.monitor}},{key:"getBackend",value:function(){return this.backend}},{key:"getRegistry",value:function(){return this.monitor.registry}},{key:"getActions",value:function(){var e=this,t=this.store.dispatch,r=function(e){return{beginDrag:w(e),publishDragSource:T(e),hover:j(e),drop:H(e),endDrag:L(e)}}(this);return Object.keys(r).reduce((function(n,o){var i,a=r[o];return n[o]=(i=a,function(){for(var r=arguments.length,n=new Array(r),o=0;oe.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var et=0,tt=t.memo((function(e){var r=e.children,n=Je(function(e){if("manager"in e){return[{dragDropManager:e.manager},!1]}var t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:nt(),r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,o=t;o[rt]||(o[rt]=Xe(e,t,r,n));return o[rt]}(e.backend,e.context,e.options,e.debugMode),r=!e.context;return[t,r]}(Ze(e,["children"])),2),o=n[0],i=n[1];return t.useEffect((function(){return i&&et++,function(){i&&(0===--et&&(nt()[rt]=null))}}),[]),t.createElement(Ke.Provider,{value:o},r)}));tt.displayName="DndProvider";var rt=Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");function nt(){return"undefined"!=typeof global?global:window}var ot=t.memo((function(e){var r=e.connect,n=e.src;return t.useEffect((function(){if("undefined"!=typeof Image){var e=!1,t=new Image;return t.src=n,t.onload=function(){r(t),e=!0},function(){e&&r(null)}}})),null}));ot.displayName="DragPreviewImage";var it="undefined"!=typeof window?t.useLayoutEffect:t.useEffect;function at(e,t,r,n){var o=r?r.call(n,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var u=Object.prototype.hasOwnProperty.bind(t),c=0;ce.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r or
. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),n?t.cloneElement(e,{ref:function(e){Ot(n,e),Ot(r,e)}}):t.cloneElement(e,{ref:r})}function wt(e){if("string"!=typeof e.type){var t=e.type.displayName||e.type.name||"the component";throw new Error("Only native element nodes can now be passed to React DnD connectors."+"You can either wrap ".concat(t," into a
, or turn it into a ")+"drag source or a drop target itself.")}}function Dt(e){var r={};return Object.keys(e).forEach((function(n){var o=e[n];if(n.endsWith("Ref"))r[n]=e[n];else{var i=function(e){return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t.isValidElement(r)){var o=r;return e(o,n),o}var i=r;wt(i);var a=n?function(t){return e(t,n)}:e;return St(i,a)}}(o);r[n]=function(){return i}}})),r}function It(e){return(It="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ct(e){return null!==e&&"object"===It(e)&&Object.prototype.hasOwnProperty.call(e,"current")}function kt(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r-1,'Expected the drag source specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',Jr.join(", "),t),c("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source",t,t,e[t])})),Qr.forEach((function(t){c("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source",t,t,e[t])})),function(t,r){return new Zr(e,t,r)}}function tn(e,t){for(var r=0;r-1,'Expected the drop target specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',rn.join(", "),t),c("function"==typeof e[t],"Expected %s in the drop target specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target",t,t,e[t])})),function(t,r){return new nn(e,t,r)}}function an(e){return(an="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function un(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cn(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return c("function"==typeof e,'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ',"Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer",e),c(Yt(r),'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer',r),function(n){var o=n,i=r.arePropsEqual,a=void 0===i?at:i,u=o.displayName||o.name||"Component",s=function(){var r=function(r){fn(i,r);var n=dn(i);function i(){var e;return un(this,i),(e=n.apply(this,arguments)).isCurrentlyMounted=!1,e.ref=t.createRef(),e.handleChange=function(){if(e.isCurrentlyMounted){var t=e.getCurrentState();at(t,e.state)||e.setState(t)}},e}return sn(i,[{key:"getDecoratedComponentInstance",value:function(){return c(this.ref.current,"In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()"),this.ref.current}},{key:"shouldComponentUpdate",value:function(e,t){return!a(e,this.props)||!at(t,this.state)}},{key:"componentDidMount",value:function(){this.isCurrentlyMounted=!0,this.handleChange()}},{key:"componentWillUnmount",value:function(){this.isCurrentlyMounted=!1,this.unsubscribeFromOffsetChange&&(this.unsubscribeFromOffsetChange(),this.unsubscribeFromOffsetChange=void 0),this.unsubscribeFromStateChange&&(this.unsubscribeFromStateChange(),this.unsubscribeFromStateChange=void 0)}},{key:"render",value:function(){var e=this;return t.createElement(Ke.Consumer,null,(function(r){var n=r.dragDropManager;return void 0===n?null:(e.receiveDragDropManager(n),e.isCurrentlyMounted?t.createElement(o,Object.assign({},e.props,e.state,{ref:Kt(o)?e.ref:null})):null)}))}},{key:"receiveDragDropManager",value:function(e){if(void 0===this.manager){this.manager=e,c("object"===an(e),"Could not find the drag and drop manager in the context of %s. Make sure to render a DndProvider component in your top-level component. Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context",u,u);var t=this.manager.getMonitor();this.unsubscribeFromOffsetChange=t.subscribeToOffsetChange(this.handleChange),this.unsubscribeFromStateChange=t.subscribeToStateChange(this.handleChange)}}},{key:"getCurrentState",value:function(){if(!this.manager)return{};var t=this.manager.getMonitor();return e(t,this.props)}}]),i}(t.Component);return r.displayName="DragLayer(".concat(u,")"),r.DecoratedComponent=n,r}();return xr(s,n)}},e.DragPreviewImage=ot,e.DragSource=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e;"function"!=typeof e&&(c(Kr(e),'Expected "type" provided as the first argument to DragSource to be a string, or a function that returns a string given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',e),o=function(){return e}),c(Yt(t),'Expected "spec" provided as the second argument to DragSource to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',t);var i=en(t);return c("function"==typeof r,'Expected "collect" provided as the third argument to DragSource to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',r),c(Yt(n),'Expected "options" provided as the fourth argument to DragSource to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source',r),function(e){return Yr({containerDisplayName:"DragSource",createHandler:i,registerHandler:ht,createConnector:function(e){return new Tt(e)},createMonitor:function(e){return new mt(e)},DecoratedComponent:e,getType:o,collect:r,options:n})}},e.DropTarget=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e;"function"!=typeof e&&(c(Kr(e,!0),'Expected "type" provided as the first argument to DropTarget to be a string, an array of strings, or a function that returns either given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',e),o=function(){return e}),c(Yt(t),'Expected "spec" provided as the second argument to DropTarget to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',t);var i=on(t);return c("function"==typeof r,'Expected "collect" provided as the third argument to DropTarget to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',r),c(Yt(n),'Expected "options" provided as the fourth argument to DropTarget to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target',r),function(e){return Yr({containerDisplayName:"DropTarget",createHandler:i,registerHandler:pt,createMonitor:function(e){return new Ht(e)},createConnector:function(e){return new At(e)},DecoratedComponent:e,getType:o,collect:r,options:n})}},e.createDndContext=Xe,e.useDrag=function(e){var r=t.useRef(e);r.current=e,c(null!=e.item,"item must be defined"),c(null!=e.item.type,"item type must be defined");var n,o=Rt((n=gt(),[t.useMemo((function(){return new mt(n)}),[n]),t.useMemo((function(){return new Tt(n.getBackend())}),[n])]),2),i=o[0],a=o[1];!function(e,r,n){var o=gt(),i=t.useMemo((function(){return{beginDrag:function(){var t=e.current,n=t.begin,o=t.item;if(n){var i=n(r);return c(null==i||"object"===Et(i),"dragSpec.begin() must either return an object, undefined, or null"),i||o||{}}return o||{}},canDrag:function(){return"boolean"==typeof e.current.canDrag?e.current.canDrag:"function"!=typeof e.current.canDrag||e.current.canDrag(r)},isDragging:function(t,n){var o=e.current.isDragging;return o?o(r):n===t.getSourceId()},endDrag:function(){var t=e.current.end;t&&t(r.getItem(),r),n.reconnect()}}}),[]);it((function(){var t=Pt(ht(e.current.item.type,i,o),2),a=t[0],u=t[1];return r.receiveHandlerId(a),n.receiveHandlerId(a),u}),[])}(r,i,a);var u=dt(i,r.current.collect||function(){return{}},(function(){return a.reconnect()})),s=t.useMemo((function(){return a.hooks.dragSource()}),[a]),f=t.useMemo((function(){return a.hooks.dragPreview()}),[a]);return it((function(){a.dragSourceOptions=r.current.options||null,a.reconnect()}),[a]),it((function(){a.dragPreviewOptions=r.current.previewOptions||null,a.reconnect()}),[a]),[u,s,f]},e.useDragDropManager=gt,e.useDragLayer=function(e){var r=gt().getMonitor(),n=Bt(st(r,e),2),o=n[0],i=n[1];return t.useEffect((function(){return r.subscribeToOffsetChange(i)})),t.useEffect((function(){return r.subscribeToStateChange(i)})),o},e.useDrop=function(e){var r=t.useRef(e);r.current=e,c(null!=e.accept,"accept must be defined");var n,o=Ft((n=gt(),[t.useMemo((function(){return new Ht(n)}),[n]),t.useMemo((function(){return new At(n.getBackend())}),[n])]),2),i=o[0],a=o[1];!function(e,r,n){var o=gt(),i=t.useMemo((function(){return{canDrop:function(){var t=e.current.canDrop;return!t||t(r.getItem(),r)},hover:function(){var t=e.current.hover;t&&t(r.getItem(),r)},drop:function(){var t=e.current.drop;if(t)return t(r.getItem(),r)}}}),[r]);it((function(){var t=Ut(pt(e.current.accept,i,o),2),a=t[0],u=t[1];return r.receiveHandlerId(a),n.receiveHandlerId(a),u}),[r,n])}(r,i,a);var u=dt(i,r.current.collect||function(){return{}},(function(){return a.reconnect()})),s=t.useMemo((function(){return a.hooks.dropTarget()}),[a]);return it((function(){a.dropTargetOptions=e.options||null,a.reconnect()}),[e.options]),[u,s]},Object.defineProperty(e,"__esModule",{value:!0})})); PK]x\%sxxcjs/decorators/utils.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDecoratedComponent = getDecoratedComponent; exports.isClassComponent = isClassComponent; exports.isRefForwardingComponent = isRefForwardingComponent; exports.isRefable = isRefable; exports.checkDecoratorArguments = checkDecoratorArguments; function getDecoratedComponent(instanceRef) { var currentRef = instanceRef.current; if (currentRef == null) { return null; } else if (currentRef.decoratedRef) { // go through the private field in decorateHandler to avoid the invariant hit return currentRef.decoratedRef.current; } else { return currentRef; } } function isClassComponent(Component) { return Component && Component.prototype && typeof Component.prototype.render === 'function'; } function isRefForwardingComponent(C) { var _item$$$typeof; var item = C; return (item === null || item === void 0 ? void 0 : (_item$$$typeof = item.$$typeof) === null || _item$$$typeof === void 0 ? void 0 : _item$$$typeof.toString()) === 'Symbol(react.forward_ref)'; } function isRefable(C) { return isClassComponent(C) || isRefForwardingComponent(C); } function checkDecoratorArguments(functionName, signature) { if (process.env.NODE_ENV !== 'production') { for (var i = 0; i < (arguments.length <= 2 ? 0 : arguments.length - 2); i++) { var arg = i + 2 < 2 || arguments.length <= i + 2 ? undefined : arguments[i + 2]; if (arg && arg.prototype && arg.prototype.render) { // eslint-disable-next-line no-console console.error('You seem to be applying the arguments in the wrong order. ' + "It should be ".concat(functionName, "(").concat(signature, ")(Component), not the other way around. ") + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order'); return; } } } }PK]x\ xØ''cjs/decorators/DragLayer.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DragLayer = DragLayer; var React = _interopRequireWildcard(require("react")); var _shallowequal = require("@react-dnd/shallowequal"); var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics")); var _invariant = require("@react-dnd/invariant"); var _DndContext = require("../common/DndContext"); var _js_utils = require("../utils/js_utils"); var _utils = require("./utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function DragLayer(collect) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; (0, _utils.checkDecoratorArguments)('DragLayer', 'collect[, options]', collect, options); (0, _invariant.invariant)(typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect); (0, _invariant.invariant)((0, _js_utils.isPlainObject)(options), 'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options); return function decorateLayer(DecoratedComponent) { var Decorated = DecoratedComponent; var _options$arePropsEqua = options.arePropsEqual, arePropsEqual = _options$arePropsEqua === void 0 ? _shallowequal.shallowEqual : _options$arePropsEqua; var displayName = Decorated.displayName || Decorated.name || 'Component'; var DragLayerContainer = /** @class */ function () { var DragLayerContainer = /*#__PURE__*/function (_React$Component) { _inherits(DragLayerContainer, _React$Component); var _super = _createSuper(DragLayerContainer); function DragLayerContainer() { var _this; _classCallCheck(this, DragLayerContainer); _this = _super.apply(this, arguments); _this.isCurrentlyMounted = false; _this.ref = React.createRef(); _this.handleChange = function () { if (!_this.isCurrentlyMounted) { return; } var nextState = _this.getCurrentState(); if (!(0, _shallowequal.shallowEqual)(nextState, _this.state)) { _this.setState(nextState); } }; return _this; } _createClass(DragLayerContainer, [{ key: "getDecoratedComponentInstance", value: function getDecoratedComponentInstance() { (0, _invariant.invariant)(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()'); return this.ref.current; } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !arePropsEqual(nextProps, this.props) || !(0, _shallowequal.shallowEqual)(nextState, this.state); } }, { key: "componentDidMount", value: function componentDidMount() { this.isCurrentlyMounted = true; this.handleChange(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.isCurrentlyMounted = false; if (this.unsubscribeFromOffsetChange) { this.unsubscribeFromOffsetChange(); this.unsubscribeFromOffsetChange = undefined; } if (this.unsubscribeFromStateChange) { this.unsubscribeFromStateChange(); this.unsubscribeFromStateChange = undefined; } } }, { key: "render", value: function render() { var _this2 = this; return React.createElement(_DndContext.DndContext.Consumer, null, function (_ref) { var dragDropManager = _ref.dragDropManager; if (dragDropManager === undefined) { return null; } _this2.receiveDragDropManager(dragDropManager); // Let componentDidMount fire to initialize the collected state if (!_this2.isCurrentlyMounted) { return null; } return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.state, { ref: (0, _utils.isRefable)(Decorated) ? _this2.ref : null })); }); } }, { key: "receiveDragDropManager", value: function receiveDragDropManager(dragDropManager) { if (this.manager !== undefined) { return; } this.manager = dragDropManager; (0, _invariant.invariant)(_typeof(dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName); var monitor = this.manager.getMonitor(); this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange); this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange); } }, { key: "getCurrentState", value: function getCurrentState() { if (!this.manager) { return {}; } var monitor = this.manager.getMonitor(); return collect(monitor, this.props); } }]); return DragLayerContainer; }(React.Component); DragLayerContainer.displayName = "DragLayer(".concat(displayName, ")"); DragLayerContainer.DecoratedComponent = DecoratedComponent; return DragLayerContainer; }(); return (0, _hoistNonReactStatics.default)(DragLayerContainer, DecoratedComponent); }; }PK]x\"J J cjs/decorators/DropTarget.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DropTarget = DropTarget; var _invariant = require("@react-dnd/invariant"); var _js_utils = require("../utils/js_utils"); var _registration = require("../common/registration"); var _isValidType = require("../utils/isValidType"); var _TargetConnector = require("../common/TargetConnector"); var _DropTargetMonitorImpl = require("../common/DropTargetMonitorImpl"); var _utils = require("./utils"); var _decorateHandler = require("./decorateHandler"); var _createTargetFactory = require("./createTargetFactory"); function DropTarget(type, spec, collect) { var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; (0, _utils.checkDecoratorArguments)('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options); var getType = type; if (typeof type !== 'function') { (0, _invariant.invariant)((0, _isValidType.isValidType)(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type); getType = function getType() { return type; }; } (0, _invariant.invariant)((0, _js_utils.isPlainObject)(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec); var createTarget = (0, _createTargetFactory.createTargetFactory)(spec); (0, _invariant.invariant)(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect); (0, _invariant.invariant)((0, _js_utils.isPlainObject)(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect); return function decorateTarget(DecoratedComponent) { return (0, _decorateHandler.decorateHandler)({ containerDisplayName: 'DropTarget', createHandler: createTarget, registerHandler: _registration.registerTarget, createMonitor: function createMonitor(manager) { return new _DropTargetMonitorImpl.DropTargetMonitorImpl(manager); }, createConnector: function createConnector(backend) { return new _TargetConnector.TargetConnector(backend); }, DecoratedComponent: DecoratedComponent, getType: getType, collect: collect, options: options }); }; }PK]x\Z44!cjs/decorators/decorateHandler.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decorateHandler = decorateHandler; var React = _interopRequireWildcard(require("react")); var _shallowequal = require("@react-dnd/shallowequal"); var _invariant = require("@react-dnd/invariant"); var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics")); var _DndContext = require("../common/DndContext"); var _js_utils = require("../utils/js_utils"); var _disposables = require("./disposables"); var _utils = require("./utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function decorateHandler(_ref) { var DecoratedComponent = _ref.DecoratedComponent, createHandler = _ref.createHandler, createMonitor = _ref.createMonitor, createConnector = _ref.createConnector, registerHandler = _ref.registerHandler, containerDisplayName = _ref.containerDisplayName, getType = _ref.getType, collect = _ref.collect, options = _ref.options; var _options$arePropsEqua = options.arePropsEqual, arePropsEqual = _options$arePropsEqua === void 0 ? _shallowequal.shallowEqual : _options$arePropsEqua; var Decorated = DecoratedComponent; var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component'; var DragDropContainer = /** @class */ function () { var DragDropContainer = /*#__PURE__*/function (_React$Component) { _inherits(DragDropContainer, _React$Component); var _super = _createSuper(DragDropContainer); function DragDropContainer(props) { var _this; _classCallCheck(this, DragDropContainer); _this = _super.call(this, props); _this.decoratedRef = React.createRef(); _this.handleChange = function () { var nextState = _this.getCurrentState(); if (!(0, _shallowequal.shallowEqual)(nextState, _this.state)) { _this.setState(nextState); } }; _this.disposable = new _disposables.SerialDisposable(); _this.receiveProps(props); _this.dispose(); return _this; } _createClass(DragDropContainer, [{ key: "getHandlerId", value: function getHandlerId() { return this.handlerId; } }, { key: "getDecoratedComponentInstance", value: function getDecoratedComponentInstance() { (0, _invariant.invariant)(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()'); return this.decoratedRef.current; } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !arePropsEqual(nextProps, this.props) || !(0, _shallowequal.shallowEqual)(nextState, this.state); } }, { key: "componentDidMount", value: function componentDidMount() { this.disposable = new _disposables.SerialDisposable(); this.currentType = undefined; this.receiveProps(this.props); this.handleChange(); } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { if (!arePropsEqual(this.props, prevProps)) { this.receiveProps(this.props); this.handleChange(); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.dispose(); } }, { key: "receiveProps", value: function receiveProps(props) { if (!this.handler) { return; } this.handler.receiveProps(props); this.receiveType(getType(props)); } }, { key: "receiveType", value: function receiveType(type) { if (!this.handlerMonitor || !this.manager || !this.handlerConnector) { return; } if (type === this.currentType) { return; } this.currentType = type; var _registerHandler = registerHandler(type, this.handler, this.manager), _registerHandler2 = _slicedToArray(_registerHandler, 2), handlerId = _registerHandler2[0], unregister = _registerHandler2[1]; this.handlerId = handlerId; this.handlerMonitor.receiveHandlerId(handlerId); this.handlerConnector.receiveHandlerId(handlerId); var globalMonitor = this.manager.getMonitor(); var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, { handlerIds: [handlerId] }); this.disposable.setDisposable(new _disposables.CompositeDisposable(new _disposables.Disposable(unsubscribe), new _disposables.Disposable(unregister))); } }, { key: "dispose", value: function dispose() { this.disposable.dispose(); if (this.handlerConnector) { this.handlerConnector.receiveHandlerId(null); } } }, { key: "getCurrentState", value: function getCurrentState() { if (!this.handlerConnector) { return {}; } var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props); if (process.env.NODE_ENV !== 'production') { (0, _invariant.invariant)((0, _js_utils.isPlainObject)(nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState); } return nextState; } }, { key: "render", value: function render() { var _this2 = this; return React.createElement(_DndContext.DndContext.Consumer, null, function (_ref2) { var dragDropManager = _ref2.dragDropManager; _this2.receiveDragDropManager(dragDropManager); if (typeof requestAnimationFrame !== 'undefined') { requestAnimationFrame(function () { var _this2$handlerConnect; return (_this2$handlerConnect = _this2.handlerConnector) === null || _this2$handlerConnect === void 0 ? void 0 : _this2$handlerConnect.reconnect(); }); } return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.getCurrentState(), { // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component. ref: (0, _utils.isRefable)(Decorated) ? _this2.decoratedRef : null })); }); } }, { key: "receiveDragDropManager", value: function receiveDragDropManager(dragDropManager) { if (this.manager !== undefined) { return; } (0, _invariant.invariant)(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName); if (dragDropManager === undefined) { return; } this.manager = dragDropManager; this.handlerMonitor = createMonitor(dragDropManager); this.handlerConnector = createConnector(dragDropManager.getBackend()); this.handler = createHandler(this.handlerMonitor, this.decoratedRef); } }]); return DragDropContainer; }(React.Component); DragDropContainer.DecoratedComponent = DecoratedComponent; DragDropContainer.displayName = "".concat(containerDisplayName, "(").concat(displayName, ")"); return DragDropContainer; }(); return (0, _hoistNonReactStatics.default)(DragDropContainer, DecoratedComponent); }PK]x\g`!cjs/decorators/index.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _DragSource = require("./DragSource"); Object.keys(_DragSource).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _DragSource[key]; } }); }); var _DropTarget = require("./DropTarget"); Object.keys(_DropTarget).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _DropTarget[key]; } }); }); var _DragLayer = require("./DragLayer"); Object.keys(_DragLayer).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _DragLayer[key]; } }); }); var _interfaces = require("./interfaces"); Object.keys(_interfaces).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _interfaces[key]; } }); });PK]x\1懊 cjs/decorators/DragSource.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DragSource = DragSource; var _invariant = require("@react-dnd/invariant"); var _js_utils = require("../utils/js_utils"); var _utils = require("./utils"); var _decorateHandler = require("./decorateHandler"); var _registration = require("../common/registration"); var _DragSourceMonitorImpl = require("../common/DragSourceMonitorImpl"); var _SourceConnector = require("../common/SourceConnector"); var _isValidType = require("../utils/isValidType"); var _createSourceFactory = require("./createSourceFactory"); /** * Decorates a component as a dragsource * @param type The dragsource type * @param spec The drag source specification * @param collect The props collector function * @param options DnD options */ function DragSource(type, spec, collect) { var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; (0, _utils.checkDecoratorArguments)('DragSource', 'type, spec, collect[, options]', type, spec, collect, options); var getType = type; if (typeof type !== 'function') { (0, _invariant.invariant)((0, _isValidType.isValidType)(type), 'Expected "type" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type); getType = function getType() { return type; }; } (0, _invariant.invariant)((0, _js_utils.isPlainObject)(spec), 'Expected "spec" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec); var createSource = (0, _createSourceFactory.createSourceFactory)(spec); (0, _invariant.invariant)(typeof collect === 'function', 'Expected "collect" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect); (0, _invariant.invariant)((0, _js_utils.isPlainObject)(options), 'Expected "options" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect); return function decorateSource(DecoratedComponent) { return (0, _decorateHandler.decorateHandler)({ containerDisplayName: 'DragSource', createHandler: createSource, registerHandler: _registration.registerSource, createConnector: function createConnector(backend) { return new _SourceConnector.SourceConnector(backend); }, createMonitor: function createMonitor(manager) { return new _DragSourceMonitorImpl.DragSourceMonitorImpl(manager); }, DecoratedComponent: DecoratedComponent, getType: getType, collect: collect, options: options }); }; }PK]x\vzz%cjs/decorators/createSourceFactory.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSourceFactory = createSourceFactory; var _invariant = require("@react-dnd/invariant"); var _js_utils = require("../utils/js_utils"); var _utils = require("./utils"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag']; var REQUIRED_SPEC_METHODS = ['beginDrag']; var SourceImpl = /*#__PURE__*/function () { function SourceImpl(spec, monitor, ref) { var _this = this; _classCallCheck(this, SourceImpl); this.props = null; this.beginDrag = function () { if (!_this.props) { return; } var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current); if (process.env.NODE_ENV !== 'production') { (0, _invariant.invariant)((0, _js_utils.isPlainObject)(item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item); } return item; }; this.spec = spec; this.monitor = monitor; this.ref = ref; } _createClass(SourceImpl, [{ key: "receiveProps", value: function receiveProps(props) { this.props = props; } }, { key: "canDrag", value: function canDrag() { if (!this.props) { return false; } if (!this.spec.canDrag) { return true; } return this.spec.canDrag(this.props, this.monitor); } }, { key: "isDragging", value: function isDragging(globalMonitor, sourceId) { if (!this.props) { return false; } if (!this.spec.isDragging) { return sourceId === globalMonitor.getSourceId(); } return this.spec.isDragging(this.props, this.monitor); } }, { key: "endDrag", value: function endDrag() { if (!this.props) { return; } if (!this.spec.endDrag) { return; } this.spec.endDrag(this.props, this.monitor, (0, _utils.getDecoratedComponent)(this.ref)); } }]); return SourceImpl; }(); function createSourceFactory(spec) { Object.keys(spec).forEach(function (key) { (0, _invariant.invariant)(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key); (0, _invariant.invariant)(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]); }); REQUIRED_SPEC_METHODS.forEach(function (key) { (0, _invariant.invariant)(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]); }); return function createSource(monitor, ref) { return new SourceImpl(spec, monitor, ref); }; }PK]x\B %cjs/decorators/createTargetFactory.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createTargetFactory = createTargetFactory; var _invariant = require("@react-dnd/invariant"); var _js_utils = require("../utils/js_utils"); var _utils = require("./utils"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop']; var TargetImpl = /*#__PURE__*/function () { function TargetImpl(spec, monitor, ref) { _classCallCheck(this, TargetImpl); this.props = null; this.spec = spec; this.monitor = monitor; this.ref = ref; } _createClass(TargetImpl, [{ key: "receiveProps", value: function receiveProps(props) { this.props = props; } }, { key: "receiveMonitor", value: function receiveMonitor(monitor) { this.monitor = monitor; } }, { key: "canDrop", value: function canDrop() { if (!this.spec.canDrop) { return true; } return this.spec.canDrop(this.props, this.monitor); } }, { key: "hover", value: function hover() { if (!this.spec.hover || !this.props) { return; } this.spec.hover(this.props, this.monitor, (0, _utils.getDecoratedComponent)(this.ref)); } }, { key: "drop", value: function drop() { if (!this.spec.drop) { return undefined; } var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current); if (process.env.NODE_ENV !== 'production') { (0, _invariant.invariant)(typeof dropResult === 'undefined' || (0, _js_utils.isPlainObject)(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult); } return dropResult; } }]); return TargetImpl; }(); function createTargetFactory(spec) { Object.keys(spec).forEach(function (key) { (0, _invariant.invariant)(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS.join(', '), key); (0, _invariant.invariant)(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]); }); return function createTarget(monitor, ref) { return new TargetImpl(spec, monitor, ref); }; }PK]x\&vkcjs/decorators/disposables.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SerialDisposable = exports.CompositeDisposable = exports.Disposable = void 0; var _js_utils = require("../utils/js_utils"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } /** * Provides a set of static methods for creating Disposables. * @param {Function} action Action to run during the first call to dispose. * The action is guaranteed to be run at most once. */ var Disposable = /** @class */ function () { var Disposable = /*#__PURE__*/function () { function Disposable(action) { _classCallCheck(this, Disposable); this.isDisposed = false; this.action = (0, _js_utils.isFunction)(action) ? action : _js_utils.noop; } /** * Validates whether the given object is a disposable * @param {Object} Object to test whether it has a dispose method * @returns {Boolean} true if a disposable object, else false. */ _createClass(Disposable, [{ key: "dispose", /** Performs the task of cleaning up resources. */ value: function dispose() { if (!this.isDisposed) { this.action(); this.isDisposed = true; } } }], [{ key: "isDisposable", value: function isDisposable(d) { return Boolean(d && (0, _js_utils.isFunction)(d.dispose)); } }, { key: "_fixup", value: function _fixup(result) { return Disposable.isDisposable(result) ? result : Disposable.empty; } /** * Creates a disposable object that invokes the specified action when disposed. * @param {Function} dispose Action to run during the first call to dispose. * The action is guaranteed to be run at most once. * @return {Disposable} The disposable object that runs the given action upon disposal. */ }, { key: "create", value: function create(action) { return new Disposable(action); } }]); return Disposable; }(); /** * Gets the disposable that does nothing when disposed. */ Disposable.empty = { dispose: _js_utils.noop }; return Disposable; }(); exports.Disposable = Disposable; /** * Represents a group of disposable resources that are disposed together. * @constructor */ var CompositeDisposable = /*#__PURE__*/function () { function CompositeDisposable() { _classCallCheck(this, CompositeDisposable); this.isDisposed = false; for (var _len = arguments.length, disposables = new Array(_len), _key = 0; _key < _len; _key++) { disposables[_key] = arguments[_key]; } this.disposables = disposables; } /** * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. * @param {Any} item Disposable to add. */ _createClass(CompositeDisposable, [{ key: "add", value: function add(item) { if (this.isDisposed) { item.dispose(); } else { this.disposables.push(item); } } /** * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. * @param {Any} item Disposable to remove. * @returns {Boolean} true if found; false otherwise. */ }, { key: "remove", value: function remove(item) { var shouldDispose = false; if (!this.isDisposed) { var idx = this.disposables.indexOf(item); if (idx !== -1) { shouldDispose = true; this.disposables.splice(idx, 1); item.dispose(); } } return shouldDispose; } /** * Disposes all disposables in the group and removes them from the group but * does not dispose the CompositeDisposable. */ }, { key: "clear", value: function clear() { if (!this.isDisposed) { var len = this.disposables.length; var currentDisposables = new Array(len); for (var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; } this.disposables = []; for (var _i = 0; _i < len; _i++) { currentDisposables[_i].dispose(); } } } /** * Disposes all disposables in the group and removes them from the group. */ }, { key: "dispose", value: function dispose() { if (!this.isDisposed) { this.isDisposed = true; var len = this.disposables.length; var currentDisposables = new Array(len); for (var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; } this.disposables = []; for (var _i2 = 0; _i2 < len; _i2++) { currentDisposables[_i2].dispose(); } } } }]); return CompositeDisposable; }(); /** * Represents a disposable resource whose underlying disposable resource can * be replaced by another disposable resource, causing automatic disposal of * the previous underlying disposable resource. */ exports.CompositeDisposable = CompositeDisposable; var SerialDisposable = /*#__PURE__*/function () { function SerialDisposable() { _classCallCheck(this, SerialDisposable); this.isDisposed = false; } /** * Gets the underlying disposable. * @returns {Any} the underlying disposable. */ _createClass(SerialDisposable, [{ key: "getDisposable", value: function getDisposable() { return this.current; } }, { key: "setDisposable", value: function setDisposable(value) { var shouldDispose = this.isDisposed; if (!shouldDispose) { var old = this.current; this.current = value; if (old) { old.dispose(); } } if (shouldDispose && value) { value.dispose(); } } /** Performs the task of cleaning up resources. */ }, { key: "dispose", value: function dispose() { if (!this.isDisposed) { this.isDisposed = true; var old = this.current; this.current = undefined; if (old) { old.dispose(); } } } }]); return SerialDisposable; }(); exports.SerialDisposable = SerialDisposable;PK]x\eۢ6 cjs/decorators/interfaces.jsnu["use strict";PK]x\3nۢcjs/utils/isRef.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRef = isRef; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function isRef(obj) { return (// eslint-disable-next-line no-prototype-builtins obj !== null && _typeof(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current') ); }PK]x\Ԟ%%cjs/utils/cloneWithRef.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cloneWithRef = cloneWithRef; var _react = require("react"); var _invariant = require("@react-dnd/invariant"); function setRef(ref, node) { if (typeof ref === 'function') { ref(node); } else { ref.current = node; } } function cloneWithRef(element, newRef) { var previousRef = element.ref; (0, _invariant.invariant)(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute'); if (!previousRef) { // When there is no ref on the element, use the new ref directly return (0, _react.cloneElement)(element, { ref: newRef }); } else { return (0, _react.cloneElement)(element, { ref: function ref(node) { setRef(previousRef, node); setRef(newRef, node); } }); } }PK]x\c¯22cjs/utils/js_utils.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.memoize = memoize; exports.without = without; exports.union = union; // cheap lodash replacements function memoize(fn) { var result = null; var memoized = function memoized() { if (result == null) { result = fn(); } return result; }; return memoized; } /** * drop-in replacement for _.without */ function without(items, item) { return items.filter(function (i) { return i !== item; }); } function union(itemsA, itemsB) { var set = new Set(); var insertItem = function insertItem(item) { return set.add(item); }; itemsA.forEach(insertItem); itemsB.forEach(insertItem); var result = []; set.forEach(function (key) { return result.push(key); }); return result; }PK]x\ܜcjs/utils/isValidType.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidType = isValidType; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function isValidType(type, allowArray) { return typeof type === 'string' || _typeof(type) === 'symbol' || !!allowArray && Array.isArray(type) && type.every(function (t) { return isValidType(t, false); }); }PK]x\Qpp cjs/index.jsnu["use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.foregroundChild = exports.normalizeFgArgs = void 0; const child_process_1 = require("child_process"); const cross_spawn_1 = __importDefault(require("cross-spawn")); const signal_exit_1 = require("signal-exit"); const all_signals_js_1 = require("./all-signals.js"); const watchdog_js_1 = require("./watchdog.js"); /* c8 ignore start */ const spawn = process?.platform === 'win32' ? cross_spawn_1.default : child_process_1.spawn; /** * Normalizes the arguments passed to `foregroundChild`. * * Exposed for testing. * * @internal */ const normalizeFgArgs = (fgArgs) => { let [program, args = [], spawnOpts = {}, cleanup = () => { }] = fgArgs; if (typeof args === 'function') { cleanup = args; spawnOpts = {}; args = []; } else if (!!args && typeof args === 'object' && !Array.isArray(args)) { if (typeof spawnOpts === 'function') cleanup = spawnOpts; spawnOpts = args; args = []; } else if (typeof spawnOpts === 'function') { cleanup = spawnOpts; spawnOpts = {}; } if (Array.isArray(program)) { const [pp, ...pa] = program; program = pp; args = pa; } return [program, args, { ...spawnOpts }, cleanup]; }; exports.normalizeFgArgs = normalizeFgArgs; function foregroundChild(...fgArgs) { const [program, args, spawnOpts, cleanup] = (0, exports.normalizeFgArgs)(fgArgs); spawnOpts.stdio = [0, 1, 2]; if (process.send) { spawnOpts.stdio.push('ipc'); } const child = spawn(program, args, spawnOpts); const unproxySignals = proxySignals(child); const childHangup = () => { try { child.kill('SIGHUP'); /* c8 ignore start */ } catch (_) { // SIGHUP is weird on windows child.kill('SIGTERM'); } /* c8 ignore stop */ }; const removeOnExit = (0, signal_exit_1.onExit)(childHangup); const dog = (0, watchdog_js_1.watchdog)(child); let done = false; child.on('close', async (code, signal) => { dog.kill('SIGKILL'); /* c8 ignore start */ if (done) { return; } /* c8 ignore stop */ done = true; const result = cleanup(code, signal); const res = isPromise(result) ? await result : result; removeOnExit(); unproxySignals(); if (res === false) return; else if (typeof res === 'string') { signal = res; code = null; } else if (typeof res === 'number') { code = res; signal = null; } if (signal) { // If there is nothing else keeping the event loop alive, // then there's a race between a graceful exit and getting // the signal to this process. Put this timeout here to // make sure we're still alive to get the signal, and thus // exit with the intended signal code. /* istanbul ignore next */ setTimeout(() => { }, 2000); try { process.kill(process.pid, signal); /* c8 ignore start */ } catch (_) { process.kill(process.pid, 'SIGTERM'); } /* c8 ignore stop */ } else { process.exit(code || 0); } }); if (process.send) { process.removeAllListeners('message'); child.on('message', (message, sendHandle) => { process.send?.(message, sendHandle); }); process.on('message', (message, sendHandle) => { child.send(message, sendHandle); }); } return child; } exports.foregroundChild = foregroundChild; /** * Starts forwarding signals to `child` through `parent`. */ const proxySignals = (child) => { const listeners = new Map(); for (const sig of all_signals_js_1.allSignals) { const listener = () => { // some signals can only be received, not sent try { child.kill(sig); /* c8 ignore start */ } catch (_) { } /* c8 ignore stop */ }; try { // if it's a signal this system doesn't recognize, skip it process.on(sig, listener); listeners.set(sig, listener); /* c8 ignore start */ } catch (_) { } /* c8 ignore stop */ } return () => { for (const [sig, listener] of listeners) { process.removeListener(sig, listener); } }; }; const isPromise = (o) => !!o && typeof o === 'object' && typeof o.then === 'function'; //# sourceMappingURL=index.js.mapPK]x\eۢ6 cjs/interfaces/hooksApi.jsnu["use strict";PK]x\eۢ6 cjs/interfaces/monitors.jsnu["use strict";PK]x\xӯcjs/interfaces/index.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _monitors = require("./monitors"); Object.keys(_monitors).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _monitors[key]; } }); }); var _hooksApi = require("./hooksApi"); Object.keys(_hooksApi).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _hooksApi[key]; } }); }); var _options = require("./options"); Object.keys(_options).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _options[key]; } }); }); var _connectors = require("./connectors"); Object.keys(_connectors).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _connectors[key]; } }); });PK]x\eۢ6 cjs/interfaces/connectors.jsnu["use strict";PK]x\eۢ6 cjs/interfaces/options.jsnu["use strict";PK]x\Uʃ cjs/hooks/useDrop.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDrop = useDrop; var _react = require("react"); var _invariant = require("@react-dnd/invariant"); var _useMonitorOutput = require("./internal/useMonitorOutput"); var _useIsomorphicLayoutEffect = require("./internal/useIsomorphicLayoutEffect"); var _drop = require("./internal/drop"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /** * useDropTarget Hook * @param spec The drop target specification */ function useDrop(spec) { var specRef = (0, _react.useRef)(spec); specRef.current = spec; (0, _invariant.invariant)(spec.accept != null, 'accept must be defined'); var _useDropTargetMonitor = (0, _drop.useDropTargetMonitor)(), _useDropTargetMonitor2 = _slicedToArray(_useDropTargetMonitor, 2), monitor = _useDropTargetMonitor2[0], connector = _useDropTargetMonitor2[1]; (0, _drop.useDropHandler)(specRef, monitor, connector); var result = (0, _useMonitorOutput.useMonitorOutput)(monitor, specRef.current.collect || function () { return {}; }, function () { return connector.reconnect(); }); var connectDropTarget = (0, _react.useMemo)(function () { return connector.hooks.dropTarget(); }, [connector]); (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { connector.dropTargetOptions = spec.options || null; connector.reconnect(); }, [spec.options]); return [result, connectDropTarget]; }PK]x\cjs/hooks/internal/drag.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDragSourceMonitor = useDragSourceMonitor; exports.useDragHandler = useDragHandler; var _react = require("react"); var _invariant = require("@react-dnd/invariant"); var _registration = require("../../common/registration"); var _useDragDropManager = require("../useDragDropManager"); var _DragSourceMonitorImpl = require("../../common/DragSourceMonitorImpl"); var _SourceConnector = require("../../common/SourceConnector"); var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function useDragSourceMonitor() { var manager = (0, _useDragDropManager.useDragDropManager)(); var monitor = (0, _react.useMemo)(function () { return new _DragSourceMonitorImpl.DragSourceMonitorImpl(manager); }, [manager]); var connector = (0, _react.useMemo)(function () { return new _SourceConnector.SourceConnector(manager.getBackend()); }, [manager]); return [monitor, connector]; } function useDragHandler(spec, monitor, connector) { var manager = (0, _useDragDropManager.useDragDropManager)(); var handler = (0, _react.useMemo)(function () { return { beginDrag: function beginDrag() { var _spec$current = spec.current, begin = _spec$current.begin, item = _spec$current.item; if (begin) { var beginResult = begin(monitor); (0, _invariant.invariant)(beginResult == null || _typeof(beginResult) === 'object', 'dragSpec.begin() must either return an object, undefined, or null'); return beginResult || item || {}; } return item || {}; }, canDrag: function canDrag() { if (typeof spec.current.canDrag === 'boolean') { return spec.current.canDrag; } else if (typeof spec.current.canDrag === 'function') { return spec.current.canDrag(monitor); } else { return true; } }, isDragging: function isDragging(globalMonitor, target) { var isDragging = spec.current.isDragging; return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId(); }, endDrag: function endDrag() { var end = spec.current.end; if (end) { end(monitor.getItem(), monitor); } connector.reconnect(); } }; }, []); (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function registerHandler() { var _registerSource = (0, _registration.registerSource)(spec.current.item.type, handler, manager), _registerSource2 = _slicedToArray(_registerSource, 2), handlerId = _registerSource2[0], unregister = _registerSource2[1]; monitor.receiveHandlerId(handlerId); connector.receiveHandlerId(handlerId); return unregister; }, []); }PK]x\C8~~/cjs/hooks/internal/useIsomorphicLayoutEffect.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useIsomorphicLayoutEffect = void 0; var _react = require("react"); // suppress the useLayoutEffect warning on server side. var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect; exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;PK]x\h,Jk k &cjs/hooks/internal/useMonitorOutput.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMonitorOutput = useMonitorOutput; var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect"); var _useCollector3 = require("./useCollector"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function useMonitorOutput(monitor, collect, onCollect) { var _useCollector = (0, _useCollector3.useCollector)(monitor, collect, onCollect), _useCollector2 = _slicedToArray(_useCollector, 2), collected = _useCollector2[0], updateCollected = _useCollector2[1]; (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function subscribeToMonitorStateChange() { var handlerId = monitor.getHandlerId(); if (handlerId == null) { return undefined; } return monitor.subscribeToStateChange(updateCollected, { handlerIds: [handlerId] }); }, [monitor, updateCollected]); return collected; }PK]x\S##cjs/hooks/internal/drop.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDropTargetMonitor = useDropTargetMonitor; exports.useDropHandler = useDropHandler; var _react = require("react"); var _registration = require("../../common/registration"); var _useDragDropManager = require("../useDragDropManager"); var _TargetConnector = require("../../common/TargetConnector"); var _DropTargetMonitorImpl = require("../../common/DropTargetMonitorImpl"); var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function useDropTargetMonitor() { var manager = (0, _useDragDropManager.useDragDropManager)(); var monitor = (0, _react.useMemo)(function () { return new _DropTargetMonitorImpl.DropTargetMonitorImpl(manager); }, [manager]); var connector = (0, _react.useMemo)(function () { return new _TargetConnector.TargetConnector(manager.getBackend()); }, [manager]); return [monitor, connector]; } function useDropHandler(spec, monitor, connector) { var manager = (0, _useDragDropManager.useDragDropManager)(); var handler = (0, _react.useMemo)(function () { return { canDrop: function canDrop() { var canDrop = spec.current.canDrop; return canDrop ? canDrop(monitor.getItem(), monitor) : true; }, hover: function hover() { var hover = spec.current.hover; if (hover) { hover(monitor.getItem(), monitor); } }, drop: function drop() { var drop = spec.current.drop; if (drop) { return drop(monitor.getItem(), monitor); } } }; }, [monitor]); (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function registerHandler() { var _registerTarget = (0, _registration.registerTarget)(spec.current.accept, handler, manager), _registerTarget2 = _slicedToArray(_registerTarget, 2), handlerId = _registerTarget2[0], unregister = _registerTarget2[1]; monitor.receiveHandlerId(handlerId); connector.receiveHandlerId(handlerId); return unregister; }, [monitor, connector]); }PK]x\< "cjs/hooks/internal/useCollector.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useCollector = useCollector; var _shallowequal = require("@react-dnd/shallowequal"); var _react = require("react"); var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /** * * @param monitor The monitor to collect state from * @param collect The collecting function * @param onUpdate A method to invoke when updates occur */ function useCollector(monitor, collect, onUpdate) { var _useState = (0, _react.useState)(function () { return collect(monitor); }), _useState2 = _slicedToArray(_useState, 2), collected = _useState2[0], setCollected = _useState2[1]; var updateCollected = (0, _react.useCallback)(function () { var nextValue = collect(monitor); if (!(0, _shallowequal.shallowEqual)(collected, nextValue)) { setCollected(nextValue); if (onUpdate) { onUpdate(); } } }, [collected, monitor, onUpdate]); // update the collected properties after the first render // and the components are attached to dnd-core (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(updateCollected, []); return [collected, updateCollected]; }PK]x\~]#cjs/hooks/index.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _useDrag = require("./useDrag"); Object.keys(_useDrag).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _useDrag[key]; } }); }); var _useDrop = require("./useDrop"); Object.keys(_useDrop).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _useDrop[key]; } }); }); var _useDragLayer = require("./useDragLayer"); Object.keys(_useDragLayer).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _useDragLayer[key]; } }); }); var _useDragDropManager = require("./useDragDropManager"); Object.keys(_useDragDropManager).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _useDragDropManager[key]; } }); });PK]x\6@d d cjs/hooks/useDrag.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDrag = useDrag; var _react = require("react"); var _invariant = require("@react-dnd/invariant"); var _useMonitorOutput = require("./internal/useMonitorOutput"); var _useIsomorphicLayoutEffect = require("./internal/useIsomorphicLayoutEffect"); var _drag = require("./internal/drag"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /** * useDragSource hook * @param sourceSpec The drag source specification * */ function useDrag(spec) { var specRef = (0, _react.useRef)(spec); specRef.current = spec; // TODO: wire options into createSourceConnector (0, _invariant.invariant)(spec.item != null, 'item must be defined'); (0, _invariant.invariant)(spec.item.type != null, 'item type must be defined'); var _useDragSourceMonitor = (0, _drag.useDragSourceMonitor)(), _useDragSourceMonitor2 = _slicedToArray(_useDragSourceMonitor, 2), monitor = _useDragSourceMonitor2[0], connector = _useDragSourceMonitor2[1]; (0, _drag.useDragHandler)(specRef, monitor, connector); var result = (0, _useMonitorOutput.useMonitorOutput)(monitor, specRef.current.collect || function () { return {}; }, function () { return connector.reconnect(); }); var connectDragSource = (0, _react.useMemo)(function () { return connector.hooks.dragSource(); }, [connector]); var connectDragPreview = (0, _react.useMemo)(function () { return connector.hooks.dragPreview(); }, [connector]); (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { connector.dragSourceOptions = specRef.current.options || null; connector.reconnect(); }, [connector]); (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { connector.dragPreviewOptions = specRef.current.previewOptions || null; connector.reconnect(); }, [connector]); return [result, connectDragSource, connectDragPreview]; }PK]x\n cjs/hooks/useDragLayer.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDragLayer = useDragLayer; var _react = require("react"); var _useDragDropManager = require("./useDragDropManager"); var _useCollector3 = require("./internal/useCollector"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /** * useDragLayer Hook * @param collector The property collector */ function useDragLayer(collect) { var dragDropManager = (0, _useDragDropManager.useDragDropManager)(); var monitor = dragDropManager.getMonitor(); var _useCollector = (0, _useCollector3.useCollector)(monitor, collect), _useCollector2 = _slicedToArray(_useCollector, 2), collected = _useCollector2[0], updateCollected = _useCollector2[1]; (0, _react.useEffect)(function () { return monitor.subscribeToOffsetChange(updateCollected); }); (0, _react.useEffect)(function () { return monitor.subscribeToStateChange(updateCollected); }); return collected; }PK]x\ʦQQcjs/hooks/useDragDropManager.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDragDropManager = useDragDropManager; var _react = require("react"); var _invariant = require("@react-dnd/invariant"); var _DndContext = require("../common/DndContext"); /** * A hook to retrieve the DragDropManager from Context */ function useDragDropManager() { var _useContext = (0, _react.useContext)(_DndContext.DndContext), dragDropManager = _useContext.dragDropManager; (0, _invariant.invariant)(dragDropManager != null, 'Expected drag drop context'); return dragDropManager; }PK]x\fcjs/common/SourceConnector.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SourceConnector = void 0; var _wrapConnectorHooks = require("./wrapConnectorHooks"); var _isRef = require("../utils/isRef"); var _shallowequal = require("@react-dnd/shallowequal"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var SourceConnector = /*#__PURE__*/function () { function SourceConnector(backend) { var _this = this; _classCallCheck(this, SourceConnector); this.hooks = (0, _wrapConnectorHooks.wrapConnectorHooks)({ dragSource: function dragSource(node, options) { _this.clearDragSource(); _this.dragSourceOptions = options || null; if ((0, _isRef.isRef)(node)) { _this.dragSourceRef = node; } else { _this.dragSourceNode = node; } _this.reconnectDragSource(); }, dragPreview: function dragPreview(node, options) { _this.clearDragPreview(); _this.dragPreviewOptions = options || null; if ((0, _isRef.isRef)(node)) { _this.dragPreviewRef = node; } else { _this.dragPreviewNode = node; } _this.reconnectDragPreview(); } }); this.handlerId = null; // The drop target may either be attached via ref or connect function this.dragSourceRef = null; this.dragSourceOptionsInternal = null; // The drag preview may either be attached via ref or connect function this.dragPreviewRef = null; this.dragPreviewOptionsInternal = null; this.lastConnectedHandlerId = null; this.lastConnectedDragSource = null; this.lastConnectedDragSourceOptions = null; this.lastConnectedDragPreview = null; this.lastConnectedDragPreviewOptions = null; this.backend = backend; } _createClass(SourceConnector, [{ key: "receiveHandlerId", value: function receiveHandlerId(newHandlerId) { if (this.handlerId === newHandlerId) { return; } this.handlerId = newHandlerId; this.reconnect(); } }, { key: "reconnect", value: function reconnect() { this.reconnectDragSource(); this.reconnectDragPreview(); } }, { key: "reconnectDragSource", value: function reconnectDragSource() { var dragSource = this.dragSource; // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange(); if (didChange) { this.disconnectDragSource(); } if (!this.handlerId) { return; } if (!dragSource) { this.lastConnectedDragSource = dragSource; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDragSource = dragSource; this.lastConnectedDragSourceOptions = this.dragSourceOptions; this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions); } } }, { key: "reconnectDragPreview", value: function reconnectDragPreview() { var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange(); if (didChange) { this.disconnectDragPreview(); } if (!this.handlerId) { return; } if (!dragPreview) { this.lastConnectedDragPreview = dragPreview; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDragPreview = dragPreview; this.lastConnectedDragPreviewOptions = this.dragPreviewOptions; this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions); } } }, { key: "didHandlerIdChange", value: function didHandlerIdChange() { return this.lastConnectedHandlerId !== this.handlerId; } }, { key: "didConnectedDragSourceChange", value: function didConnectedDragSourceChange() { return this.lastConnectedDragSource !== this.dragSource; } }, { key: "didConnectedDragPreviewChange", value: function didConnectedDragPreviewChange() { return this.lastConnectedDragPreview !== this.dragPreview; } }, { key: "didDragSourceOptionsChange", value: function didDragSourceOptionsChange() { return !(0, _shallowequal.shallowEqual)(this.lastConnectedDragSourceOptions, this.dragSourceOptions); } }, { key: "didDragPreviewOptionsChange", value: function didDragPreviewOptionsChange() { return !(0, _shallowequal.shallowEqual)(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions); } }, { key: "disconnectDragSource", value: function disconnectDragSource() { if (this.dragSourceUnsubscribe) { this.dragSourceUnsubscribe(); this.dragSourceUnsubscribe = undefined; } } }, { key: "disconnectDragPreview", value: function disconnectDragPreview() { if (this.dragPreviewUnsubscribe) { this.dragPreviewUnsubscribe(); this.dragPreviewUnsubscribe = undefined; this.dragPreviewNode = null; this.dragPreviewRef = null; } } }, { key: "clearDragSource", value: function clearDragSource() { this.dragSourceNode = null; this.dragSourceRef = null; } }, { key: "clearDragPreview", value: function clearDragPreview() { this.dragPreviewNode = null; this.dragPreviewRef = null; } }, { key: "connectTarget", get: function get() { return this.dragSource; } }, { key: "dragSourceOptions", get: function get() { return this.dragSourceOptionsInternal; }, set: function set(options) { this.dragSourceOptionsInternal = options; } }, { key: "dragPreviewOptions", get: function get() { return this.dragPreviewOptionsInternal; }, set: function set(options) { this.dragPreviewOptionsInternal = options; } }, { key: "dragSource", get: function get() { return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current; } }, { key: "dragPreview", get: function get() { return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current; } }]); return SourceConnector; }(); exports.SourceConnector = SourceConnector;PK]x\/#cjs/common/DropTargetMonitorImpl.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DropTargetMonitorImpl = void 0; var _invariant = require("@react-dnd/invariant"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var isCallingCanDrop = false; var DropTargetMonitorImpl = /*#__PURE__*/function () { function DropTargetMonitorImpl(manager) { _classCallCheck(this, DropTargetMonitorImpl); this.targetId = null; this.internalMonitor = manager.getMonitor(); } _createClass(DropTargetMonitorImpl, [{ key: "receiveHandlerId", value: function receiveHandlerId(targetId) { this.targetId = targetId; } }, { key: "getHandlerId", value: function getHandlerId() { return this.targetId; } }, { key: "subscribeToStateChange", value: function subscribeToStateChange(listener, options) { return this.internalMonitor.subscribeToStateChange(listener, options); } }, { key: "canDrop", value: function canDrop() { // Cut out early if the target id has not been set. This should prevent errors // where the user has an older version of dnd-core like in // https://github.com/react-dnd/react-dnd/issues/1310 if (!this.targetId) { return false; } (0, _invariant.invariant)(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor'); try { isCallingCanDrop = true; return this.internalMonitor.canDropOnTarget(this.targetId); } finally { isCallingCanDrop = false; } } }, { key: "isOver", value: function isOver(options) { if (!this.targetId) { return false; } return this.internalMonitor.isOverTarget(this.targetId, options); } }, { key: "getItemType", value: function getItemType() { return this.internalMonitor.getItemType(); } }, { key: "getItem", value: function getItem() { return this.internalMonitor.getItem(); } }, { key: "getDropResult", value: function getDropResult() { return this.internalMonitor.getDropResult(); } }, { key: "didDrop", value: function didDrop() { return this.internalMonitor.didDrop(); } }, { key: "getInitialClientOffset", value: function getInitialClientOffset() { return this.internalMonitor.getInitialClientOffset(); } }, { key: "getInitialSourceClientOffset", value: function getInitialSourceClientOffset() { return this.internalMonitor.getInitialSourceClientOffset(); } }, { key: "getSourceClientOffset", value: function getSourceClientOffset() { return this.internalMonitor.getSourceClientOffset(); } }, { key: "getClientOffset", value: function getClientOffset() { return this.internalMonitor.getClientOffset(); } }, { key: "getDifferenceFromInitialOffset", value: function getDifferenceFromInitialOffset() { return this.internalMonitor.getDifferenceFromInitialOffset(); } }]); return DropTargetMonitorImpl; }(); exports.DropTargetMonitorImpl = DropTargetMonitorImpl;PK]x\/K$aacjs/common/DndProvider.jsnu["use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.DndProvider = void 0; var React = _interopRequireWildcard(require("react")); var _DndContext = require("./DndContext"); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var refCount = 0; /** * A React component that provides the React-DnD context */ var DndProvider = (0, React.memo)(function (_ref) { var children = _ref.children, props = _objectWithoutProperties(_ref, ["children"]); var _getDndContextValue = getDndContextValue(props), _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2), manager = _getDndContextValue2[0], isGlobalInstance = _getDndContextValue2[1]; // memoized from props /** * If the global context was used to store the DND context * then where theres no more references to it we should * clean it up to avoid memory leaks */ React.useEffect(function () { if (isGlobalInstance) { refCount++; } return function () { if (isGlobalInstance) { refCount--; if (refCount === 0) { var context = getGlobalContext(); context[instanceSymbol] = null; } } }; }, []); return React.createElement(_DndContext.DndContext.Provider, { value: manager }, children); }); exports.DndProvider = DndProvider; DndProvider.displayName = 'DndProvider'; function getDndContextValue(props) { if ('manager' in props) { var _manager = { dragDropManager: props.manager }; return [_manager, false]; } var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode); var isGlobalInstance = !props.context; return [manager, isGlobalInstance]; } var instanceSymbol = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__'); function createSingletonDndContext(backend) { var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext(); var options = arguments.length > 2 ? arguments[2] : undefined; var debugMode = arguments.length > 3 ? arguments[3] : undefined; var ctx = context; if (!ctx[instanceSymbol]) { ctx[instanceSymbol] = (0, _DndContext.createDndContext)(backend, context, options, debugMode); } return ctx[instanceSymbol]; } function getGlobalContext() { return typeof global !== 'undefined' ? global : window; }PK]x\UbI8  cjs/common/wrapConnectorHooks.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapConnectorHooks = wrapConnectorHooks; var _react = require("react"); var _cloneWithRef = require("../utils/cloneWithRef"); function throwIfCompositeComponentElement(element) { // Custom components can no longer be wrapped directly in React DnD 2.0 // so that we don't need to depend on findDOMNode() from react-dom. if (typeof element.type === 'string') { return; } var displayName = element.type.displayName || element.type.name || 'the component'; throw new Error('Only native element nodes can now be passed to React DnD connectors.' + "You can either wrap ".concat(displayName, " into a
, or turn it into a ") + 'drag source or a drop target itself.'); } function wrapHookToRecognizeElement(hook) { return function () { var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; // When passed a node, call the hook straight away. if (!(0, _react.isValidElement)(elementOrNode)) { var node = elementOrNode; hook(node, options); // return the node so it can be chained (e.g. when within callback refs //
connectDragSource(connectDropTarget(node))}/> return node; } // If passed a ReactElement, clone it and attach this function as a ref. // This helps us achieve a neat API where user doesn't even know that refs // are being used under the hood. var element = elementOrNode; throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly var ref = options ? function (node) { return hook(node, options); } : hook; return (0, _cloneWithRef.cloneWithRef)(element, ref); }; } function wrapConnectorHooks(hooks) { var wrappedHooks = {}; Object.keys(hooks).forEach(function (key) { var hook = hooks[key]; // ref objects should be passed straight through without wrapping if (key.endsWith('Ref')) { wrappedHooks[key] = hooks[key]; } else { var wrappedHook = wrapHookToRecognizeElement(hook); wrappedHooks[key] = function () { return wrappedHook; }; } }); return wrappedHooks; }PK]x\gzcjs/common/index.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _DndContext = require("./DndContext"); Object.keys(_DndContext).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _DndContext[key]; } }); }); var _DndProvider = require("./DndProvider"); Object.keys(_DndProvider).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _DndProvider[key]; } }); }); var _DragPreviewImage = require("./DragPreviewImage"); Object.keys(_DragPreviewImage).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _DragPreviewImage[key]; } }); });PK]x\7 cjs/common/TargetConnector.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TargetConnector = void 0; var _shallowequal = require("@react-dnd/shallowequal"); var _wrapConnectorHooks = require("./wrapConnectorHooks"); var _isRef = require("../utils/isRef"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var TargetConnector = /*#__PURE__*/function () { function TargetConnector(backend) { var _this = this; _classCallCheck(this, TargetConnector); this.hooks = (0, _wrapConnectorHooks.wrapConnectorHooks)({ dropTarget: function dropTarget(node, options) { _this.clearDropTarget(); _this.dropTargetOptions = options; if ((0, _isRef.isRef)(node)) { _this.dropTargetRef = node; } else { _this.dropTargetNode = node; } _this.reconnect(); } }); this.handlerId = null; // The drop target may either be attached via ref or connect function this.dropTargetRef = null; this.dropTargetOptionsInternal = null; this.lastConnectedHandlerId = null; this.lastConnectedDropTarget = null; this.lastConnectedDropTargetOptions = null; this.backend = backend; } _createClass(TargetConnector, [{ key: "reconnect", value: function reconnect() { // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange(); if (didChange) { this.disconnectDropTarget(); } var dropTarget = this.dropTarget; if (!this.handlerId) { return; } if (!dropTarget) { this.lastConnectedDropTarget = dropTarget; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDropTarget = dropTarget; this.lastConnectedDropTargetOptions = this.dropTargetOptions; this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions); } } }, { key: "receiveHandlerId", value: function receiveHandlerId(newHandlerId) { if (newHandlerId === this.handlerId) { return; } this.handlerId = newHandlerId; this.reconnect(); } }, { key: "didHandlerIdChange", value: function didHandlerIdChange() { return this.lastConnectedHandlerId !== this.handlerId; } }, { key: "didDropTargetChange", value: function didDropTargetChange() { return this.lastConnectedDropTarget !== this.dropTarget; } }, { key: "didOptionsChange", value: function didOptionsChange() { return !(0, _shallowequal.shallowEqual)(this.lastConnectedDropTargetOptions, this.dropTargetOptions); } }, { key: "disconnectDropTarget", value: function disconnectDropTarget() { if (this.unsubscribeDropTarget) { this.unsubscribeDropTarget(); this.unsubscribeDropTarget = undefined; } } }, { key: "clearDropTarget", value: function clearDropTarget() { this.dropTargetRef = null; this.dropTargetNode = null; } }, { key: "connectTarget", get: function get() { return this.dropTarget; } }, { key: "dropTargetOptions", get: function get() { return this.dropTargetOptionsInternal; }, set: function set(options) { this.dropTargetOptionsInternal = options; } }, { key: "dropTarget", get: function get() { return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current; } }]); return TargetConnector; }(); exports.TargetConnector = TargetConnector;PK]x\֏cjs/common/DndContext.jsnu["use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.createDndContext = createDndContext; exports.DndContext = void 0; var React = _interopRequireWildcard(require("react")); var _dndCore = require("dnd-core"); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /** * Create the React Context */ var DndContext = React.createContext({ dragDropManager: undefined }); /** * Creates the context object we're providing * @param backend * @param context */ exports.DndContext = DndContext; function createDndContext(backend, context, options, debugMode) { return { dragDropManager: (0, _dndCore.createDragDropManager)(backend, context, options, debugMode) }; }PK]x\S-9??cjs/common/DragPreviewImage.jsnu["use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.DragPreviewImage = void 0; var React = _interopRequireWildcard(require("react")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /* * A utility for rendering a drag preview image */ var DragPreviewImage = React.memo(function (_ref) { var connect = _ref.connect, src = _ref.src; React.useEffect(function () { if (typeof Image === 'undefined') return; var connected = false; var img = new Image(); img.src = src; img.onload = function () { connect(img); connected = true; }; return function () { if (connected) { connect(null); } }; }); return null; }); exports.DragPreviewImage = DragPreviewImage; DragPreviewImage.displayName = 'DragPreviewImage';PK]x\Y#cjs/common/DragSourceMonitorImpl.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DragSourceMonitorImpl = void 0; var _invariant = require("@react-dnd/invariant"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var isCallingCanDrag = false; var isCallingIsDragging = false; var DragSourceMonitorImpl = /*#__PURE__*/function () { function DragSourceMonitorImpl(manager) { _classCallCheck(this, DragSourceMonitorImpl); this.sourceId = null; this.internalMonitor = manager.getMonitor(); } _createClass(DragSourceMonitorImpl, [{ key: "receiveHandlerId", value: function receiveHandlerId(sourceId) { this.sourceId = sourceId; } }, { key: "getHandlerId", value: function getHandlerId() { return this.sourceId; } }, { key: "canDrag", value: function canDrag() { (0, _invariant.invariant)(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor'); try { isCallingCanDrag = true; return this.internalMonitor.canDragSource(this.sourceId); } finally { isCallingCanDrag = false; } } }, { key: "isDragging", value: function isDragging() { if (!this.sourceId) { return false; } (0, _invariant.invariant)(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor'); try { isCallingIsDragging = true; return this.internalMonitor.isDraggingSource(this.sourceId); } finally { isCallingIsDragging = false; } } }, { key: "subscribeToStateChange", value: function subscribeToStateChange(listener, options) { return this.internalMonitor.subscribeToStateChange(listener, options); } }, { key: "isDraggingSource", value: function isDraggingSource(sourceId) { return this.internalMonitor.isDraggingSource(sourceId); } }, { key: "isOverTarget", value: function isOverTarget(targetId, options) { return this.internalMonitor.isOverTarget(targetId, options); } }, { key: "getTargetIds", value: function getTargetIds() { return this.internalMonitor.getTargetIds(); } }, { key: "isSourcePublic", value: function isSourcePublic() { return this.internalMonitor.isSourcePublic(); } }, { key: "getSourceId", value: function getSourceId() { return this.internalMonitor.getSourceId(); } }, { key: "subscribeToOffsetChange", value: function subscribeToOffsetChange(listener) { return this.internalMonitor.subscribeToOffsetChange(listener); } }, { key: "canDragSource", value: function canDragSource(sourceId) { return this.internalMonitor.canDragSource(sourceId); } }, { key: "canDropOnTarget", value: function canDropOnTarget(targetId) { return this.internalMonitor.canDropOnTarget(targetId); } }, { key: "getItemType", value: function getItemType() { return this.internalMonitor.getItemType(); } }, { key: "getItem", value: function getItem() { return this.internalMonitor.getItem(); } }, { key: "getDropResult", value: function getDropResult() { return this.internalMonitor.getDropResult(); } }, { key: "didDrop", value: function didDrop() { return this.internalMonitor.didDrop(); } }, { key: "getInitialClientOffset", value: function getInitialClientOffset() { return this.internalMonitor.getInitialClientOffset(); } }, { key: "getInitialSourceClientOffset", value: function getInitialSourceClientOffset() { return this.internalMonitor.getInitialSourceClientOffset(); } }, { key: "getSourceClientOffset", value: function getSourceClientOffset() { return this.internalMonitor.getSourceClientOffset(); } }, { key: "getClientOffset", value: function getClientOffset() { return this.internalMonitor.getClientOffset(); } }, { key: "getDifferenceFromInitialOffset", value: function getDifferenceFromInitialOffset() { return this.internalMonitor.getDifferenceFromInitialOffset(); } }]); return DragSourceMonitorImpl; }(); exports.DragSourceMonitorImpl = DragSourceMonitorImpl;PK]x\ơFggcjs/common/registration.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerTarget = registerTarget; exports.registerSource = registerSource; function registerTarget(type, target, manager) { var registry = manager.getRegistry(); var targetId = registry.addTarget(type, target); return [targetId, function () { return registry.removeTarget(targetId); }]; } function registerSource(type, source, manager) { var registry = manager.getRegistry(); var sourceId = registry.addSource(type, source); return [sourceId, function () { return registry.removeSource(sourceId); }]; }PK]x\FMKKesm/decorators/utils.jsnu[export function getDecoratedComponent(instanceRef) { var currentRef = instanceRef.current; if (currentRef == null) { return null; } else if (currentRef.decoratedRef) { // go through the private field in decorateHandler to avoid the invariant hit return currentRef.decoratedRef.current; } else { return currentRef; } } export function isClassComponent(Component) { return Component && Component.prototype && typeof Component.prototype.render === 'function'; } export function isRefForwardingComponent(C) { var _item$$$typeof; var item = C; return (item === null || item === void 0 ? void 0 : (_item$$$typeof = item.$$typeof) === null || _item$$$typeof === void 0 ? void 0 : _item$$$typeof.toString()) === 'Symbol(react.forward_ref)'; } export function isRefable(C) { return isClassComponent(C) || isRefForwardingComponent(C); } export function checkDecoratorArguments(functionName, signature) { if (process.env.NODE_ENV !== 'production') { for (var i = 0; i < (arguments.length <= 2 ? 0 : arguments.length - 2); i++) { var arg = i + 2 < 2 || arguments.length <= i + 2 ? undefined : arguments[i + 2]; if (arg && arg.prototype && arg.prototype.render) { // eslint-disable-next-line no-console console.error('You seem to be applying the arguments in the wrong order. ' + "It should be ".concat(functionName, "(").concat(signature, ")(Component), not the other way around. ") + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#you-seem-to-be-applying-the-arguments-in-the-wrong-order'); return; } } } }PK]x\C2"2"esm/decorators/DragLayer.jsnu[function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } import * as React from 'react'; import { shallowEqual } from '@react-dnd/shallowequal'; import hoistStatics from 'hoist-non-react-statics'; import { invariant } from '@react-dnd/invariant'; import { DndContext } from '../common/DndContext'; import { isPlainObject } from '../utils/js_utils'; import { isRefable, checkDecoratorArguments } from './utils'; export function DragLayer(collect) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; checkDecoratorArguments('DragLayer', 'collect[, options]', collect, options); invariant(typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', collect); invariant(isPlainObject(options), 'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-layer', options); return function decorateLayer(DecoratedComponent) { var Decorated = DecoratedComponent; var _options$arePropsEqua = options.arePropsEqual, arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua; var displayName = Decorated.displayName || Decorated.name || 'Component'; var DragLayerContainer = /** @class */ function () { var DragLayerContainer = /*#__PURE__*/function (_React$Component) { _inherits(DragLayerContainer, _React$Component); var _super = _createSuper(DragLayerContainer); function DragLayerContainer() { var _this; _classCallCheck(this, DragLayerContainer); _this = _super.apply(this, arguments); _this.isCurrentlyMounted = false; _this.ref = React.createRef(); _this.handleChange = function () { if (!_this.isCurrentlyMounted) { return; } var nextState = _this.getCurrentState(); if (!shallowEqual(nextState, _this.state)) { _this.setState(nextState); } }; return _this; } _createClass(DragLayerContainer, [{ key: "getDecoratedComponentInstance", value: function getDecoratedComponentInstance() { invariant(this.ref.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()'); return this.ref.current; } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state); } }, { key: "componentDidMount", value: function componentDidMount() { this.isCurrentlyMounted = true; this.handleChange(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.isCurrentlyMounted = false; if (this.unsubscribeFromOffsetChange) { this.unsubscribeFromOffsetChange(); this.unsubscribeFromOffsetChange = undefined; } if (this.unsubscribeFromStateChange) { this.unsubscribeFromStateChange(); this.unsubscribeFromStateChange = undefined; } } }, { key: "render", value: function render() { var _this2 = this; return React.createElement(DndContext.Consumer, null, function (_ref) { var dragDropManager = _ref.dragDropManager; if (dragDropManager === undefined) { return null; } _this2.receiveDragDropManager(dragDropManager); // Let componentDidMount fire to initialize the collected state if (!_this2.isCurrentlyMounted) { return null; } return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.state, { ref: isRefable(Decorated) ? _this2.ref : null })); }); } }, { key: "receiveDragDropManager", value: function receiveDragDropManager(dragDropManager) { if (this.manager !== undefined) { return; } this.manager = dragDropManager; invariant(_typeof(dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName); var monitor = this.manager.getMonitor(); this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange); this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange); } }, { key: "getCurrentState", value: function getCurrentState() { if (!this.manager) { return {}; } var monitor = this.manager.getMonitor(); return collect(monitor, this.props); } }]); return DragLayerContainer; }(React.Component); DragLayerContainer.displayName = "DragLayer(".concat(displayName, ")"); DragLayerContainer.DecoratedComponent = DecoratedComponent; return DragLayerContainer; }(); return hoistStatics(DragLayerContainer, DecoratedComponent); }; }PK]x\aj8 esm/decorators/DropTarget.jsnu[import { invariant } from '@react-dnd/invariant'; import { isPlainObject } from '../utils/js_utils'; import { registerTarget } from '../common/registration'; import { isValidType } from '../utils/isValidType'; import { TargetConnector } from '../common/TargetConnector'; import { DropTargetMonitorImpl } from '../common/DropTargetMonitorImpl'; import { checkDecoratorArguments } from './utils'; import { decorateHandler } from './decorateHandler'; import { createTargetFactory } from './createTargetFactory'; export function DropTarget(type, spec, collect) { var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; checkDecoratorArguments('DropTarget', 'type, spec, collect[, options]', type, spec, collect, options); var getType = type; if (typeof type !== 'function') { invariant(isValidType(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', type); getType = function getType() { return type; }; } invariant(isPlainObject(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', spec); var createTarget = createTargetFactory(spec); invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect); invariant(isPlainObject(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', collect); return function decorateTarget(DecoratedComponent) { return decorateHandler({ containerDisplayName: 'DropTarget', createHandler: createTarget, registerHandler: registerTarget, createMonitor: function createMonitor(manager) { return new DropTargetMonitorImpl(manager); }, createConnector: function createConnector(backend) { return new TargetConnector(backend); }, DecoratedComponent: DecoratedComponent, getType: getType, collect: collect, options: options }); }; }PK]x\;O/O/!esm/decorators/decorateHandler.jsnu[function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } import * as React from 'react'; import { shallowEqual } from '@react-dnd/shallowequal'; import { invariant } from '@react-dnd/invariant'; import hoistStatics from 'hoist-non-react-statics'; import { DndContext } from '../common/DndContext'; import { isPlainObject } from '../utils/js_utils'; import { Disposable, CompositeDisposable, SerialDisposable } from './disposables'; import { isRefable } from './utils'; export function decorateHandler(_ref) { var DecoratedComponent = _ref.DecoratedComponent, createHandler = _ref.createHandler, createMonitor = _ref.createMonitor, createConnector = _ref.createConnector, registerHandler = _ref.registerHandler, containerDisplayName = _ref.containerDisplayName, getType = _ref.getType, collect = _ref.collect, options = _ref.options; var _options$arePropsEqua = options.arePropsEqual, arePropsEqual = _options$arePropsEqua === void 0 ? shallowEqual : _options$arePropsEqua; var Decorated = DecoratedComponent; var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component'; var DragDropContainer = /** @class */ function () { var DragDropContainer = /*#__PURE__*/function (_React$Component) { _inherits(DragDropContainer, _React$Component); var _super = _createSuper(DragDropContainer); function DragDropContainer(props) { var _this; _classCallCheck(this, DragDropContainer); _this = _super.call(this, props); _this.decoratedRef = React.createRef(); _this.handleChange = function () { var nextState = _this.getCurrentState(); if (!shallowEqual(nextState, _this.state)) { _this.setState(nextState); } }; _this.disposable = new SerialDisposable(); _this.receiveProps(props); _this.dispose(); return _this; } _createClass(DragDropContainer, [{ key: "getHandlerId", value: function getHandlerId() { return this.handlerId; } }, { key: "getDecoratedComponentInstance", value: function getDecoratedComponentInstance() { invariant(this.decoratedRef.current, 'In order to access an instance of the decorated component, it must either be a class component or use React.forwardRef()'); return this.decoratedRef.current; } }, { key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !arePropsEqual(nextProps, this.props) || !shallowEqual(nextState, this.state); } }, { key: "componentDidMount", value: function componentDidMount() { this.disposable = new SerialDisposable(); this.currentType = undefined; this.receiveProps(this.props); this.handleChange(); } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { if (!arePropsEqual(this.props, prevProps)) { this.receiveProps(this.props); this.handleChange(); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.dispose(); } }, { key: "receiveProps", value: function receiveProps(props) { if (!this.handler) { return; } this.handler.receiveProps(props); this.receiveType(getType(props)); } }, { key: "receiveType", value: function receiveType(type) { if (!this.handlerMonitor || !this.manager || !this.handlerConnector) { return; } if (type === this.currentType) { return; } this.currentType = type; var _registerHandler = registerHandler(type, this.handler, this.manager), _registerHandler2 = _slicedToArray(_registerHandler, 2), handlerId = _registerHandler2[0], unregister = _registerHandler2[1]; this.handlerId = handlerId; this.handlerMonitor.receiveHandlerId(handlerId); this.handlerConnector.receiveHandlerId(handlerId); var globalMonitor = this.manager.getMonitor(); var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, { handlerIds: [handlerId] }); this.disposable.setDisposable(new CompositeDisposable(new Disposable(unsubscribe), new Disposable(unregister))); } }, { key: "dispose", value: function dispose() { this.disposable.dispose(); if (this.handlerConnector) { this.handlerConnector.receiveHandlerId(null); } } }, { key: "getCurrentState", value: function getCurrentState() { if (!this.handlerConnector) { return {}; } var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor, this.props); if (process.env.NODE_ENV !== 'production') { invariant(isPlainObject(nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState); } return nextState; } }, { key: "render", value: function render() { var _this2 = this; return React.createElement(DndContext.Consumer, null, function (_ref2) { var dragDropManager = _ref2.dragDropManager; _this2.receiveDragDropManager(dragDropManager); if (typeof requestAnimationFrame !== 'undefined') { requestAnimationFrame(function () { var _this2$handlerConnect; return (_this2$handlerConnect = _this2.handlerConnector) === null || _this2$handlerConnect === void 0 ? void 0 : _this2$handlerConnect.reconnect(); }); } return React.createElement(Decorated, Object.assign({}, _this2.props, _this2.getCurrentState(), { // NOTE: if Decorated is a Function Component, decoratedRef will not be populated unless it's a refforwarding component. ref: isRefable(Decorated) ? _this2.decoratedRef : null })); }); } }, { key: "receiveDragDropManager", value: function receiveDragDropManager(dragDropManager) { if (this.manager !== undefined) { return; } invariant(dragDropManager !== undefined, 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to render a DndProvider component in your top-level component. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/troubleshooting#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName); if (dragDropManager === undefined) { return; } this.manager = dragDropManager; this.handlerMonitor = createMonitor(dragDropManager); this.handlerConnector = createConnector(dragDropManager.getBackend()); this.handler = createHandler(this.handlerMonitor, this.decoratedRef); } }]); return DragDropContainer; }(React.Component); DragDropContainer.DecoratedComponent = DecoratedComponent; DragDropContainer.displayName = "".concat(containerDisplayName, "(").concat(displayName, ")"); return DragDropContainer; }(); return hoistStatics(DragDropContainer, DecoratedComponent); }PK]x\uvvesm/decorators/index.jsnu[export * from './DragSource'; export * from './DropTarget'; export * from './DragLayer'; export * from './interfaces';PK]x\\ esm/decorators/DragSource.jsnu[import { invariant } from '@react-dnd/invariant'; import { isPlainObject } from '../utils/js_utils'; import { checkDecoratorArguments } from './utils'; import { decorateHandler } from './decorateHandler'; import { registerSource } from '../common/registration'; import { DragSourceMonitorImpl } from '../common/DragSourceMonitorImpl'; import { SourceConnector } from '../common/SourceConnector'; import { isValidType } from '../utils/isValidType'; import { createSourceFactory } from './createSourceFactory'; /** * Decorates a component as a dragsource * @param type The dragsource type * @param spec The drag source specification * @param collect The props collector function * @param options DnD options */ export function DragSource(type, spec, collect) { var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; checkDecoratorArguments('DragSource', 'type, spec, collect[, options]', type, spec, collect, options); var getType = type; if (typeof type !== 'function') { invariant(isValidType(type), 'Expected "type" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', type); getType = function getType() { return type; }; } invariant(isPlainObject(spec), 'Expected "spec" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', spec); var createSource = createSourceFactory(spec); invariant(typeof collect === 'function', 'Expected "collect" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect); invariant(isPlainObject(options), 'Expected "options" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', collect); return function decorateSource(DecoratedComponent) { return decorateHandler({ containerDisplayName: 'DragSource', createHandler: createSource, registerHandler: registerSource, createConnector: function createConnector(backend) { return new SourceConnector(backend); }, createMonitor: function createMonitor(manager) { return new DragSourceMonitorImpl(manager); }, DecoratedComponent: DecoratedComponent, getType: getType, collect: collect, options: options }); }; }PK]x\٤%esm/decorators/createSourceFactory.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { invariant } from '@react-dnd/invariant'; import { isPlainObject } from '../utils/js_utils'; import { getDecoratedComponent } from './utils'; var ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag']; var REQUIRED_SPEC_METHODS = ['beginDrag']; var SourceImpl = /*#__PURE__*/function () { function SourceImpl(spec, monitor, ref) { var _this = this; _classCallCheck(this, SourceImpl); this.props = null; this.beginDrag = function () { if (!_this.props) { return; } var item = _this.spec.beginDrag(_this.props, _this.monitor, _this.ref.current); if (process.env.NODE_ENV !== 'production') { invariant(isPlainObject(item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', item); } return item; }; this.spec = spec; this.monitor = monitor; this.ref = ref; } _createClass(SourceImpl, [{ key: "receiveProps", value: function receiveProps(props) { this.props = props; } }, { key: "canDrag", value: function canDrag() { if (!this.props) { return false; } if (!this.spec.canDrag) { return true; } return this.spec.canDrag(this.props, this.monitor); } }, { key: "isDragging", value: function isDragging(globalMonitor, sourceId) { if (!this.props) { return false; } if (!this.spec.isDragging) { return sourceId === globalMonitor.getSourceId(); } return this.spec.isDragging(this.props, this.monitor); } }, { key: "endDrag", value: function endDrag() { if (!this.props) { return; } if (!this.spec.endDrag) { return; } this.spec.endDrag(this.props, this.monitor, getDecoratedComponent(this.ref)); } }]); return SourceImpl; }(); export function createSourceFactory(spec) { Object.keys(spec).forEach(function (key) { invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', ALLOWED_SPEC_METHODS.join(', '), key); invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]); }); REQUIRED_SPEC_METHODS.forEach(function (key) { invariant(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source', key, key, spec[key]); }); return function createSource(monitor, ref) { return new SourceImpl(spec, monitor, ref); }; }PK]x\A9QU U %esm/decorators/createTargetFactory.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { invariant } from '@react-dnd/invariant'; import { isPlainObject } from '../utils/js_utils'; import { getDecoratedComponent } from './utils'; var ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop']; var TargetImpl = /*#__PURE__*/function () { function TargetImpl(spec, monitor, ref) { _classCallCheck(this, TargetImpl); this.props = null; this.spec = spec; this.monitor = monitor; this.ref = ref; } _createClass(TargetImpl, [{ key: "receiveProps", value: function receiveProps(props) { this.props = props; } }, { key: "receiveMonitor", value: function receiveMonitor(monitor) { this.monitor = monitor; } }, { key: "canDrop", value: function canDrop() { if (!this.spec.canDrop) { return true; } return this.spec.canDrop(this.props, this.monitor); } }, { key: "hover", value: function hover() { if (!this.spec.hover || !this.props) { return; } this.spec.hover(this.props, this.monitor, getDecoratedComponent(this.ref)); } }, { key: "drop", value: function drop() { if (!this.spec.drop) { return undefined; } var dropResult = this.spec.drop(this.props, this.monitor, this.ref.current); if (process.env.NODE_ENV !== 'production') { invariant(typeof dropResult === 'undefined' || isPlainObject(dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', dropResult); } return dropResult; } }]); return TargetImpl; }(); export function createTargetFactory(spec) { Object.keys(spec).forEach(function (key) { invariant(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', ALLOWED_SPEC_METHODS.join(', '), key); invariant(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target', key, key, spec[key]); }); return function createTarget(monitor, ref) { return new TargetImpl(spec, monitor, ref); }; }PK]x\8esm/decorators/disposables.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { isFunction, noop } from '../utils/js_utils'; /** * Provides a set of static methods for creating Disposables. * @param {Function} action Action to run during the first call to dispose. * The action is guaranteed to be run at most once. */ var Disposable = /** @class */ function () { var Disposable = /*#__PURE__*/function () { function Disposable(action) { _classCallCheck(this, Disposable); this.isDisposed = false; this.action = isFunction(action) ? action : noop; } /** * Validates whether the given object is a disposable * @param {Object} Object to test whether it has a dispose method * @returns {Boolean} true if a disposable object, else false. */ _createClass(Disposable, [{ key: "dispose", /** Performs the task of cleaning up resources. */ value: function dispose() { if (!this.isDisposed) { this.action(); this.isDisposed = true; } } }], [{ key: "isDisposable", value: function isDisposable(d) { return Boolean(d && isFunction(d.dispose)); } }, { key: "_fixup", value: function _fixup(result) { return Disposable.isDisposable(result) ? result : Disposable.empty; } /** * Creates a disposable object that invokes the specified action when disposed. * @param {Function} dispose Action to run during the first call to dispose. * The action is guaranteed to be run at most once. * @return {Disposable} The disposable object that runs the given action upon disposal. */ }, { key: "create", value: function create(action) { return new Disposable(action); } }]); return Disposable; }(); /** * Gets the disposable that does nothing when disposed. */ Disposable.empty = { dispose: noop }; return Disposable; }(); export { Disposable }; /** * Represents a group of disposable resources that are disposed together. * @constructor */ export var CompositeDisposable = /*#__PURE__*/function () { function CompositeDisposable() { _classCallCheck(this, CompositeDisposable); this.isDisposed = false; for (var _len = arguments.length, disposables = new Array(_len), _key = 0; _key < _len; _key++) { disposables[_key] = arguments[_key]; } this.disposables = disposables; } /** * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed. * @param {Any} item Disposable to add. */ _createClass(CompositeDisposable, [{ key: "add", value: function add(item) { if (this.isDisposed) { item.dispose(); } else { this.disposables.push(item); } } /** * Removes and disposes the first occurrence of a disposable from the CompositeDisposable. * @param {Any} item Disposable to remove. * @returns {Boolean} true if found; false otherwise. */ }, { key: "remove", value: function remove(item) { var shouldDispose = false; if (!this.isDisposed) { var idx = this.disposables.indexOf(item); if (idx !== -1) { shouldDispose = true; this.disposables.splice(idx, 1); item.dispose(); } } return shouldDispose; } /** * Disposes all disposables in the group and removes them from the group but * does not dispose the CompositeDisposable. */ }, { key: "clear", value: function clear() { if (!this.isDisposed) { var len = this.disposables.length; var currentDisposables = new Array(len); for (var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; } this.disposables = []; for (var _i = 0; _i < len; _i++) { currentDisposables[_i].dispose(); } } } /** * Disposes all disposables in the group and removes them from the group. */ }, { key: "dispose", value: function dispose() { if (!this.isDisposed) { this.isDisposed = true; var len = this.disposables.length; var currentDisposables = new Array(len); for (var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; } this.disposables = []; for (var _i2 = 0; _i2 < len; _i2++) { currentDisposables[_i2].dispose(); } } } }]); return CompositeDisposable; }(); /** * Represents a disposable resource whose underlying disposable resource can * be replaced by another disposable resource, causing automatic disposal of * the previous underlying disposable resource. */ export var SerialDisposable = /*#__PURE__*/function () { function SerialDisposable() { _classCallCheck(this, SerialDisposable); this.isDisposed = false; } /** * Gets the underlying disposable. * @returns {Any} the underlying disposable. */ _createClass(SerialDisposable, [{ key: "getDisposable", value: function getDisposable() { return this.current; } }, { key: "setDisposable", value: function setDisposable(value) { var shouldDispose = this.isDisposed; if (!shouldDispose) { var old = this.current; this.current = value; if (old) { old.dispose(); } } if (shouldDispose && value) { value.dispose(); } } /** Performs the task of cleaning up resources. */ }, { key: "dispose", value: function dispose() { if (!this.isDisposed) { this.isDisposed = true; var old = this.current; this.current = undefined; if (old) { old.dispose(); } } } }]); return SerialDisposable; }();PK]x\esm/decorators/interfaces.jsnu[PK]x\1AAesm/utils/isRef.jsnu[function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } export function isRef(obj) { return (// eslint-disable-next-line no-prototype-builtins obj !== null && _typeof(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current') ); }PK]x\Uܔesm/utils/cloneWithRef.jsnu[import { cloneElement } from 'react'; import { invariant } from '@react-dnd/invariant'; function setRef(ref, node) { if (typeof ref === 'function') { ref(node); } else { ref.current = node; } } export function cloneWithRef(element, newRef) { var previousRef = element.ref; invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute'); if (!previousRef) { // When there is no ref on the element, use the new ref directly return cloneElement(element, { ref: newRef }); } else { return cloneElement(element, { ref: function ref(node) { setRef(previousRef, node); setRef(newRef, node); } }); } }PK]x\ wesm/utils/js_utils.jsnu[// cheap lodash replacements export function memoize(fn) { var result = null; var memoized = function memoized() { if (result == null) { result = fn(); } return result; }; return memoized; } /** * drop-in replacement for _.without */ export function without(items, item) { return items.filter(function (i) { return i !== item; }); } export function union(itemsA, itemsB) { var set = new Set(); var insertItem = function insertItem(item) { return set.add(item); }; itemsA.forEach(insertItem); itemsB.forEach(insertItem); var result = []; set.forEach(function (key) { return result.push(key); }); return result; }PK]x\u YYesm/utils/isValidType.jsnu[function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } export function isValidType(type, allowArray) { return typeof type === 'string' || _typeof(type) === 'symbol' || !!allowArray && Array.isArray(type) && type.every(function (t) { return isValidType(t, false); }); }PK]x\esm/interfaces/hooksApi.jsnu[PK]x\esm/interfaces/monitors.jsnu[PK]x\ާppesm/interfaces/index.jsnu[export * from './monitors'; export * from './hooksApi'; export * from './options'; export * from './connectors';PK]x\esm/interfaces/connectors.jsnu[PK]x\esm/interfaces/options.jsnu[PK]x\\ esm/hooks/useDrop.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { useRef, useMemo } from 'react'; import { invariant } from '@react-dnd/invariant'; import { useMonitorOutput } from './internal/useMonitorOutput'; import { useIsomorphicLayoutEffect } from './internal/useIsomorphicLayoutEffect'; import { useDropHandler, useDropTargetMonitor } from './internal/drop'; /** * useDropTarget Hook * @param spec The drop target specification */ export function useDrop(spec) { var specRef = useRef(spec); specRef.current = spec; invariant(spec.accept != null, 'accept must be defined'); var _useDropTargetMonitor = useDropTargetMonitor(), _useDropTargetMonitor2 = _slicedToArray(_useDropTargetMonitor, 2), monitor = _useDropTargetMonitor2[0], connector = _useDropTargetMonitor2[1]; useDropHandler(specRef, monitor, connector); var result = useMonitorOutput(monitor, specRef.current.collect || function () { return {}; }, function () { return connector.reconnect(); }); var connectDropTarget = useMemo(function () { return connector.hooks.dropTarget(); }, [connector]); useIsomorphicLayoutEffect(function () { connector.dropTargetOptions = spec.options || null; connector.reconnect(); }, [spec.options]); return [result, connectDropTarget]; }PK]x\9Resm/hooks/internal/drag.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } import { useMemo } from 'react'; import { invariant } from '@react-dnd/invariant'; import { registerSource } from '../../common/registration'; import { useDragDropManager } from '../useDragDropManager'; import { DragSourceMonitorImpl } from '../../common/DragSourceMonitorImpl'; import { SourceConnector } from '../../common/SourceConnector'; import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'; export function useDragSourceMonitor() { var manager = useDragDropManager(); var monitor = useMemo(function () { return new DragSourceMonitorImpl(manager); }, [manager]); var connector = useMemo(function () { return new SourceConnector(manager.getBackend()); }, [manager]); return [monitor, connector]; } export function useDragHandler(spec, monitor, connector) { var manager = useDragDropManager(); var handler = useMemo(function () { return { beginDrag: function beginDrag() { var _spec$current = spec.current, begin = _spec$current.begin, item = _spec$current.item; if (begin) { var beginResult = begin(monitor); invariant(beginResult == null || _typeof(beginResult) === 'object', 'dragSpec.begin() must either return an object, undefined, or null'); return beginResult || item || {}; } return item || {}; }, canDrag: function canDrag() { if (typeof spec.current.canDrag === 'boolean') { return spec.current.canDrag; } else if (typeof spec.current.canDrag === 'function') { return spec.current.canDrag(monitor); } else { return true; } }, isDragging: function isDragging(globalMonitor, target) { var isDragging = spec.current.isDragging; return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId(); }, endDrag: function endDrag() { var end = spec.current.end; if (end) { end(monitor.getItem(), monitor); } connector.reconnect(); } }; }, []); useIsomorphicLayoutEffect(function registerHandler() { var _registerSource = registerSource(spec.current.item.type, handler, manager), _registerSource2 = _slicedToArray(_registerSource, 2), handlerId = _registerSource2[0], unregister = _registerSource2[1]; monitor.receiveHandlerId(handlerId); connector.receiveHandlerId(handlerId); return unregister; }, []); }PK]x\|/esm/hooks/internal/useIsomorphicLayoutEffect.jsnu[import { useLayoutEffect, useEffect } from 'react'; // suppress the useLayoutEffect warning on server side. export var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;PK]x\R/B&esm/hooks/internal/useMonitorOutput.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'; import { useCollector } from './useCollector'; export function useMonitorOutput(monitor, collect, onCollect) { var _useCollector = useCollector(monitor, collect, onCollect), _useCollector2 = _slicedToArray(_useCollector, 2), collected = _useCollector2[0], updateCollected = _useCollector2[1]; useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() { var handlerId = monitor.getHandlerId(); if (handlerId == null) { return undefined; } return monitor.subscribeToStateChange(updateCollected, { handlerIds: [handlerId] }); }, [monitor, updateCollected]); return collected; }PK]x\SX esm/hooks/internal/drop.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { useMemo } from 'react'; import { registerTarget } from '../../common/registration'; import { useDragDropManager } from '../useDragDropManager'; import { TargetConnector } from '../../common/TargetConnector'; import { DropTargetMonitorImpl } from '../../common/DropTargetMonitorImpl'; import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'; export function useDropTargetMonitor() { var manager = useDragDropManager(); var monitor = useMemo(function () { return new DropTargetMonitorImpl(manager); }, [manager]); var connector = useMemo(function () { return new TargetConnector(manager.getBackend()); }, [manager]); return [monitor, connector]; } export function useDropHandler(spec, monitor, connector) { var manager = useDragDropManager(); var handler = useMemo(function () { return { canDrop: function canDrop() { var canDrop = spec.current.canDrop; return canDrop ? canDrop(monitor.getItem(), monitor) : true; }, hover: function hover() { var hover = spec.current.hover; if (hover) { hover(monitor.getItem(), monitor); } }, drop: function drop() { var drop = spec.current.drop; if (drop) { return drop(monitor.getItem(), monitor); } } }; }, [monitor]); useIsomorphicLayoutEffect(function registerHandler() { var _registerTarget = registerTarget(spec.current.accept, handler, manager), _registerTarget2 = _slicedToArray(_registerTarget, 2), handlerId = _registerTarget2[0], unregister = _registerTarget2[1]; monitor.receiveHandlerId(handlerId); connector.receiveHandlerId(handlerId); return unregister; }, [monitor, connector]); }PK]x\n4 "esm/hooks/internal/useCollector.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { shallowEqual } from '@react-dnd/shallowequal'; import { useState, useCallback } from 'react'; import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect'; /** * * @param monitor The monitor to collect state from * @param collect The collecting function * @param onUpdate A method to invoke when updates occur */ export function useCollector(monitor, collect, onUpdate) { var _useState = useState(function () { return collect(monitor); }), _useState2 = _slicedToArray(_useState, 2), collected = _useState2[0], setCollected = _useState2[1]; var updateCollected = useCallback(function () { var nextValue = collect(monitor); if (!shallowEqual(collected, nextValue)) { setCollected(nextValue); if (onUpdate) { onUpdate(); } } }, [collected, monitor, onUpdate]); // update the collected properties after the first render // and the components are attached to dnd-core useIsomorphicLayoutEffect(updateCollected, []); return [collected, updateCollected]; }PK]x\W,{{esm/hooks/index.jsnu[export * from './useDrag'; export * from './useDrop'; export * from './useDragLayer'; export * from './useDragDropManager';PK]x\~t t esm/hooks/useDrag.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { useRef, useMemo } from 'react'; import { invariant } from '@react-dnd/invariant'; import { useMonitorOutput } from './internal/useMonitorOutput'; import { useIsomorphicLayoutEffect } from './internal/useIsomorphicLayoutEffect'; import { useDragSourceMonitor, useDragHandler } from './internal/drag'; /** * useDragSource hook * @param sourceSpec The drag source specification * */ export function useDrag(spec) { var specRef = useRef(spec); specRef.current = spec; // TODO: wire options into createSourceConnector invariant(spec.item != null, 'item must be defined'); invariant(spec.item.type != null, 'item type must be defined'); var _useDragSourceMonitor = useDragSourceMonitor(), _useDragSourceMonitor2 = _slicedToArray(_useDragSourceMonitor, 2), monitor = _useDragSourceMonitor2[0], connector = _useDragSourceMonitor2[1]; useDragHandler(specRef, monitor, connector); var result = useMonitorOutput(monitor, specRef.current.collect || function () { return {}; }, function () { return connector.reconnect(); }); var connectDragSource = useMemo(function () { return connector.hooks.dragSource(); }, [connector]); var connectDragPreview = useMemo(function () { return connector.hooks.dragPreview(); }, [connector]); useIsomorphicLayoutEffect(function () { connector.dragSourceOptions = specRef.current.options || null; connector.reconnect(); }, [connector]); useIsomorphicLayoutEffect(function () { connector.dragPreviewOptions = specRef.current.previewOptions || null; connector.reconnect(); }, [connector]); return [result, connectDragSource, connectDragPreview]; }PK]x\esm/hooks/useDragLayer.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } import { useEffect } from 'react'; import { useDragDropManager } from './useDragDropManager'; import { useCollector } from './internal/useCollector'; /** * useDragLayer Hook * @param collector The property collector */ export function useDragLayer(collect) { var dragDropManager = useDragDropManager(); var monitor = dragDropManager.getMonitor(); var _useCollector = useCollector(monitor, collect), _useCollector2 = _slicedToArray(_useCollector, 2), collected = _useCollector2[0], updateCollected = _useCollector2[1]; useEffect(function () { return monitor.subscribeToOffsetChange(updateCollected); }); useEffect(function () { return monitor.subscribeToStateChange(updateCollected); }); return collected; }PK]x\h"esm/hooks/useDragDropManager.jsnu[import { useContext } from 'react'; import { invariant } from '@react-dnd/invariant'; import { DndContext } from '../common/DndContext'; /** * A hook to retrieve the DragDropManager from Context */ export function useDragDropManager() { var _useContext = useContext(DndContext), dragDropManager = _useContext.dragDropManager; invariant(dragDropManager != null, 'Expected drag drop context'); return dragDropManager; }PK]x\:esm/common/SourceConnector.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { wrapConnectorHooks } from './wrapConnectorHooks'; import { isRef } from '../utils/isRef'; import { shallowEqual } from '@react-dnd/shallowequal'; export var SourceConnector = /*#__PURE__*/function () { function SourceConnector(backend) { var _this = this; _classCallCheck(this, SourceConnector); this.hooks = wrapConnectorHooks({ dragSource: function dragSource(node, options) { _this.clearDragSource(); _this.dragSourceOptions = options || null; if (isRef(node)) { _this.dragSourceRef = node; } else { _this.dragSourceNode = node; } _this.reconnectDragSource(); }, dragPreview: function dragPreview(node, options) { _this.clearDragPreview(); _this.dragPreviewOptions = options || null; if (isRef(node)) { _this.dragPreviewRef = node; } else { _this.dragPreviewNode = node; } _this.reconnectDragPreview(); } }); this.handlerId = null; // The drop target may either be attached via ref or connect function this.dragSourceRef = null; this.dragSourceOptionsInternal = null; // The drag preview may either be attached via ref or connect function this.dragPreviewRef = null; this.dragPreviewOptionsInternal = null; this.lastConnectedHandlerId = null; this.lastConnectedDragSource = null; this.lastConnectedDragSourceOptions = null; this.lastConnectedDragPreview = null; this.lastConnectedDragPreviewOptions = null; this.backend = backend; } _createClass(SourceConnector, [{ key: "receiveHandlerId", value: function receiveHandlerId(newHandlerId) { if (this.handlerId === newHandlerId) { return; } this.handlerId = newHandlerId; this.reconnect(); } }, { key: "reconnect", value: function reconnect() { this.reconnectDragSource(); this.reconnectDragPreview(); } }, { key: "reconnectDragSource", value: function reconnectDragSource() { var dragSource = this.dragSource; // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange(); if (didChange) { this.disconnectDragSource(); } if (!this.handlerId) { return; } if (!dragSource) { this.lastConnectedDragSource = dragSource; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDragSource = dragSource; this.lastConnectedDragSourceOptions = this.dragSourceOptions; this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions); } } }, { key: "reconnectDragPreview", value: function reconnectDragPreview() { var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange(); if (didChange) { this.disconnectDragPreview(); } if (!this.handlerId) { return; } if (!dragPreview) { this.lastConnectedDragPreview = dragPreview; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDragPreview = dragPreview; this.lastConnectedDragPreviewOptions = this.dragPreviewOptions; this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions); } } }, { key: "didHandlerIdChange", value: function didHandlerIdChange() { return this.lastConnectedHandlerId !== this.handlerId; } }, { key: "didConnectedDragSourceChange", value: function didConnectedDragSourceChange() { return this.lastConnectedDragSource !== this.dragSource; } }, { key: "didConnectedDragPreviewChange", value: function didConnectedDragPreviewChange() { return this.lastConnectedDragPreview !== this.dragPreview; } }, { key: "didDragSourceOptionsChange", value: function didDragSourceOptionsChange() { return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions); } }, { key: "didDragPreviewOptionsChange", value: function didDragPreviewOptionsChange() { return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions); } }, { key: "disconnectDragSource", value: function disconnectDragSource() { if (this.dragSourceUnsubscribe) { this.dragSourceUnsubscribe(); this.dragSourceUnsubscribe = undefined; } } }, { key: "disconnectDragPreview", value: function disconnectDragPreview() { if (this.dragPreviewUnsubscribe) { this.dragPreviewUnsubscribe(); this.dragPreviewUnsubscribe = undefined; this.dragPreviewNode = null; this.dragPreviewRef = null; } } }, { key: "clearDragSource", value: function clearDragSource() { this.dragSourceNode = null; this.dragSourceRef = null; } }, { key: "clearDragPreview", value: function clearDragPreview() { this.dragPreviewNode = null; this.dragPreviewRef = null; } }, { key: "connectTarget", get: function get() { return this.dragSource; } }, { key: "dragSourceOptions", get: function get() { return this.dragSourceOptionsInternal; }, set: function set(options) { this.dragSourceOptionsInternal = options; } }, { key: "dragPreviewOptions", get: function get() { return this.dragPreviewOptionsInternal; }, set: function set(options) { this.dragPreviewOptionsInternal = options; } }, { key: "dragSource", get: function get() { return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current; } }, { key: "dragPreview", get: function get() { return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current; } }]); return SourceConnector; }();PK]x\qSS#esm/common/DropTargetMonitorImpl.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { invariant } from '@react-dnd/invariant'; var isCallingCanDrop = false; export var DropTargetMonitorImpl = /*#__PURE__*/function () { function DropTargetMonitorImpl(manager) { _classCallCheck(this, DropTargetMonitorImpl); this.targetId = null; this.internalMonitor = manager.getMonitor(); } _createClass(DropTargetMonitorImpl, [{ key: "receiveHandlerId", value: function receiveHandlerId(targetId) { this.targetId = targetId; } }, { key: "getHandlerId", value: function getHandlerId() { return this.targetId; } }, { key: "subscribeToStateChange", value: function subscribeToStateChange(listener, options) { return this.internalMonitor.subscribeToStateChange(listener, options); } }, { key: "canDrop", value: function canDrop() { // Cut out early if the target id has not been set. This should prevent errors // where the user has an older version of dnd-core like in // https://github.com/react-dnd/react-dnd/issues/1310 if (!this.targetId) { return false; } invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor'); try { isCallingCanDrop = true; return this.internalMonitor.canDropOnTarget(this.targetId); } finally { isCallingCanDrop = false; } } }, { key: "isOver", value: function isOver(options) { if (!this.targetId) { return false; } return this.internalMonitor.isOverTarget(this.targetId, options); } }, { key: "getItemType", value: function getItemType() { return this.internalMonitor.getItemType(); } }, { key: "getItem", value: function getItem() { return this.internalMonitor.getItem(); } }, { key: "getDropResult", value: function getDropResult() { return this.internalMonitor.getDropResult(); } }, { key: "didDrop", value: function didDrop() { return this.internalMonitor.didDrop(); } }, { key: "getInitialClientOffset", value: function getInitialClientOffset() { return this.internalMonitor.getInitialClientOffset(); } }, { key: "getInitialSourceClientOffset", value: function getInitialSourceClientOffset() { return this.internalMonitor.getInitialSourceClientOffset(); } }, { key: "getSourceClientOffset", value: function getSourceClientOffset() { return this.internalMonitor.getSourceClientOffset(); } }, { key: "getClientOffset", value: function getClientOffset() { return this.internalMonitor.getClientOffset(); } }, { key: "getDifferenceFromInitialOffset", value: function getDifferenceFromInitialOffset() { return this.internalMonitor.getDifferenceFromInitialOffset(); } }]); return DropTargetMonitorImpl; }();PK]x\׊esm/common/DndProvider.jsnu[function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import * as React from 'react'; import { memo } from 'react'; import { DndContext, createDndContext } from './DndContext'; var refCount = 0; /** * A React component that provides the React-DnD context */ export var DndProvider = memo(function (_ref) { var children = _ref.children, props = _objectWithoutProperties(_ref, ["children"]); var _getDndContextValue = getDndContextValue(props), _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2), manager = _getDndContextValue2[0], isGlobalInstance = _getDndContextValue2[1]; // memoized from props /** * If the global context was used to store the DND context * then where theres no more references to it we should * clean it up to avoid memory leaks */ React.useEffect(function () { if (isGlobalInstance) { refCount++; } return function () { if (isGlobalInstance) { refCount--; if (refCount === 0) { var context = getGlobalContext(); context[instanceSymbol] = null; } } }; }, []); return React.createElement(DndContext.Provider, { value: manager }, children); }); DndProvider.displayName = 'DndProvider'; function getDndContextValue(props) { if ('manager' in props) { var _manager = { dragDropManager: props.manager }; return [_manager, false]; } var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode); var isGlobalInstance = !props.context; return [manager, isGlobalInstance]; } var instanceSymbol = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__'); function createSingletonDndContext(backend) { var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext(); var options = arguments.length > 2 ? arguments[2] : undefined; var debugMode = arguments.length > 3 ? arguments[3] : undefined; var ctx = context; if (!ctx[instanceSymbol]) { ctx[instanceSymbol] = createDndContext(backend, context, options, debugMode); } return ctx[instanceSymbol]; } function getGlobalContext() { return typeof global !== 'undefined' ? global : window; }PK]x\OPvv esm/common/wrapConnectorHooks.jsnu[import { isValidElement } from 'react'; import { cloneWithRef } from '../utils/cloneWithRef'; function throwIfCompositeComponentElement(element) { // Custom components can no longer be wrapped directly in React DnD 2.0 // so that we don't need to depend on findDOMNode() from react-dom. if (typeof element.type === 'string') { return; } var displayName = element.type.displayName || element.type.name || 'the component'; throw new Error('Only native element nodes can now be passed to React DnD connectors.' + "You can either wrap ".concat(displayName, " into a
, or turn it into a ") + 'drag source or a drop target itself.'); } function wrapHookToRecognizeElement(hook) { return function () { var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; // When passed a node, call the hook straight away. if (!isValidElement(elementOrNode)) { var node = elementOrNode; hook(node, options); // return the node so it can be chained (e.g. when within callback refs //
connectDragSource(connectDropTarget(node))}/> return node; } // If passed a ReactElement, clone it and attach this function as a ref. // This helps us achieve a neat API where user doesn't even know that refs // are being used under the hood. var element = elementOrNode; throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly var ref = options ? function (node) { return hook(node, options); } : hook; return cloneWithRef(element, ref); }; } export function wrapConnectorHooks(hooks) { var wrappedHooks = {}; Object.keys(hooks).forEach(function (key) { var hook = hooks[key]; // ref objects should be passed straight through without wrapping if (key.endsWith('Ref')) { wrappedHooks[key] = hooks[key]; } else { var wrappedHook = wrapHookToRecognizeElement(hook); wrappedHooks[key] = function () { return wrappedHook; }; } }); return wrappedHooks; }PK]x\Vs``esm/common/index.jsnu[export * from './DndContext'; export * from './DndProvider'; export * from './DragPreviewImage';PK]x\esm/common/TargetConnector.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { shallowEqual } from '@react-dnd/shallowequal'; import { wrapConnectorHooks } from './wrapConnectorHooks'; import { isRef } from '../utils/isRef'; export var TargetConnector = /*#__PURE__*/function () { function TargetConnector(backend) { var _this = this; _classCallCheck(this, TargetConnector); this.hooks = wrapConnectorHooks({ dropTarget: function dropTarget(node, options) { _this.clearDropTarget(); _this.dropTargetOptions = options; if (isRef(node)) { _this.dropTargetRef = node; } else { _this.dropTargetNode = node; } _this.reconnect(); } }); this.handlerId = null; // The drop target may either be attached via ref or connect function this.dropTargetRef = null; this.dropTargetOptionsInternal = null; this.lastConnectedHandlerId = null; this.lastConnectedDropTarget = null; this.lastConnectedDropTargetOptions = null; this.backend = backend; } _createClass(TargetConnector, [{ key: "reconnect", value: function reconnect() { // if nothing has changed then don't resubscribe var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange(); if (didChange) { this.disconnectDropTarget(); } var dropTarget = this.dropTarget; if (!this.handlerId) { return; } if (!dropTarget) { this.lastConnectedDropTarget = dropTarget; return; } if (didChange) { this.lastConnectedHandlerId = this.handlerId; this.lastConnectedDropTarget = dropTarget; this.lastConnectedDropTargetOptions = this.dropTargetOptions; this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions); } } }, { key: "receiveHandlerId", value: function receiveHandlerId(newHandlerId) { if (newHandlerId === this.handlerId) { return; } this.handlerId = newHandlerId; this.reconnect(); } }, { key: "didHandlerIdChange", value: function didHandlerIdChange() { return this.lastConnectedHandlerId !== this.handlerId; } }, { key: "didDropTargetChange", value: function didDropTargetChange() { return this.lastConnectedDropTarget !== this.dropTarget; } }, { key: "didOptionsChange", value: function didOptionsChange() { return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions); } }, { key: "disconnectDropTarget", value: function disconnectDropTarget() { if (this.unsubscribeDropTarget) { this.unsubscribeDropTarget(); this.unsubscribeDropTarget = undefined; } } }, { key: "clearDropTarget", value: function clearDropTarget() { this.dropTargetRef = null; this.dropTargetNode = null; } }, { key: "connectTarget", get: function get() { return this.dropTarget; } }, { key: "dropTargetOptions", get: function get() { return this.dropTargetOptionsInternal; }, set: function set(options) { this.dropTargetOptionsInternal = options; } }, { key: "dropTarget", get: function get() { return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current; } }]); return TargetConnector; }();PK]x\8nesm/common/DndContext.jsnu[import * as React from 'react'; import { createDragDropManager } from 'dnd-core'; /** * Create the React Context */ export var DndContext = React.createContext({ dragDropManager: undefined }); /** * Creates the context object we're providing * @param backend * @param context */ export function createDndContext(backend, context, options, debugMode) { return { dragDropManager: createDragDropManager(backend, context, options, debugMode) }; }PK]x\bSSesm/common/DragPreviewImage.jsnu[import * as React from 'react'; /* * A utility for rendering a drag preview image */ export var DragPreviewImage = React.memo(function (_ref) { var connect = _ref.connect, src = _ref.src; React.useEffect(function () { if (typeof Image === 'undefined') return; var connected = false; var img = new Image(); img.src = src; img.onload = function () { connect(img); connected = true; }; return function () { if (connected) { connect(null); } }; }); return null; }); DragPreviewImage.displayName = 'DragPreviewImage';PK]x\$$$#esm/common/DragSourceMonitorImpl.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { invariant } from '@react-dnd/invariant'; var isCallingCanDrag = false; var isCallingIsDragging = false; export var DragSourceMonitorImpl = /*#__PURE__*/function () { function DragSourceMonitorImpl(manager) { _classCallCheck(this, DragSourceMonitorImpl); this.sourceId = null; this.internalMonitor = manager.getMonitor(); } _createClass(DragSourceMonitorImpl, [{ key: "receiveHandlerId", value: function receiveHandlerId(sourceId) { this.sourceId = sourceId; } }, { key: "getHandlerId", value: function getHandlerId() { return this.sourceId; } }, { key: "canDrag", value: function canDrag() { invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor'); try { isCallingCanDrag = true; return this.internalMonitor.canDragSource(this.sourceId); } finally { isCallingCanDrag = false; } } }, { key: "isDragging", value: function isDragging() { if (!this.sourceId) { return false; } invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor'); try { isCallingIsDragging = true; return this.internalMonitor.isDraggingSource(this.sourceId); } finally { isCallingIsDragging = false; } } }, { key: "subscribeToStateChange", value: function subscribeToStateChange(listener, options) { return this.internalMonitor.subscribeToStateChange(listener, options); } }, { key: "isDraggingSource", value: function isDraggingSource(sourceId) { return this.internalMonitor.isDraggingSource(sourceId); } }, { key: "isOverTarget", value: function isOverTarget(targetId, options) { return this.internalMonitor.isOverTarget(targetId, options); } }, { key: "getTargetIds", value: function getTargetIds() { return this.internalMonitor.getTargetIds(); } }, { key: "isSourcePublic", value: function isSourcePublic() { return this.internalMonitor.isSourcePublic(); } }, { key: "getSourceId", value: function getSourceId() { return this.internalMonitor.getSourceId(); } }, { key: "subscribeToOffsetChange", value: function subscribeToOffsetChange(listener) { return this.internalMonitor.subscribeToOffsetChange(listener); } }, { key: "canDragSource", value: function canDragSource(sourceId) { return this.internalMonitor.canDragSource(sourceId); } }, { key: "canDropOnTarget", value: function canDropOnTarget(targetId) { return this.internalMonitor.canDropOnTarget(targetId); } }, { key: "getItemType", value: function getItemType() { return this.internalMonitor.getItemType(); } }, { key: "getItem", value: function getItem() { return this.internalMonitor.getItem(); } }, { key: "getDropResult", value: function getDropResult() { return this.internalMonitor.getDropResult(); } }, { key: "didDrop", value: function didDrop() { return this.internalMonitor.didDrop(); } }, { key: "getInitialClientOffset", value: function getInitialClientOffset() { return this.internalMonitor.getInitialClientOffset(); } }, { key: "getInitialSourceClientOffset", value: function getInitialSourceClientOffset() { return this.internalMonitor.getInitialSourceClientOffset(); } }, { key: "getSourceClientOffset", value: function getSourceClientOffset() { return this.internalMonitor.getSourceClientOffset(); } }, { key: "getClientOffset", value: function getClientOffset() { return this.internalMonitor.getClientOffset(); } }, { key: "getDifferenceFromInitialOffset", value: function getDifferenceFromInitialOffset() { return this.internalMonitor.getDifferenceFromInitialOffset(); } }]); return DragSourceMonitorImpl; }();PK]x\u6esm/common/registration.jsnu[export function registerTarget(type, target, manager) { var registry = manager.getRegistry(); var targetId = registry.addTarget(type, target); return [targetId, function () { return registry.removeTarget(targetId); }]; } export function registerSource(type, source, manager) { var registry = manager.getRegistry(); var sourceId = registry.addSource(type, source); return [sourceId, function () { return registry.removeSource(sourceId); }]; }PKx\ߚĆ8k8kfonts/iconkit.woffnu[wOFFk8 FFTM0|`fDGDEFL AOS/2lGVWU\=cmapr2>`gaspglyf[Ɛ[)head_16Chhea_ $hmtx_Lloca`**5B:maxpc e namec4-postd (|xc```d3΃`4H xc`d``b `b`d`f,`AIxc`di&~ 5sFFT :xwsw{Ս]芖$"P)W TJCSQhʨlwƯ=~_{BJ+DQ(BE+rjdⲂx旳xI+$Vxd)|t2el9r婡Zj;ȏ>shPipG8Q+DSG;F3͵R+jv':IG'4] ],g;ǹ |覻.S/%.uW?]ev" 6ĵn0/Q0(7m[5xjIn3%n74wtw=fiu=`=Qyy[`E[ixR,E/y+^^7m+]y*}cg>m[}[|{?(UG?i=/ǿA!BbH !%2Bf BrBnȋ\\#2$T~ x `(>ߌI[%9V|HNm;$ 㐄@R΄(JhBhZQ Zmvmu}hvihof4 4h;~>837wMy r}nw1Kf2=|?wK,Aa+oPLZBK*!Xd$l&Dnl6y{}0 F\VW[28/m^Szדּ&vEҎPfKfwC9|+qsgs엜뚚&ʵrm\'q>)IpĖ8tC|SK IO?qtBw^N"\7 J-pB.LSLxkF,]CvKCrw4d/f({Qp7tt4&d?Ғ;;toKxڙ<|9rIq8IM2}ʅ = Vc;p8<~^U4mdڗ"2N')Υ[8.iG uic,Jcfk:sl*ù/uїO'= g#D鏛l/b.d/ط )J>3 w^pt{?\?\fَ>5Kexcឿ@>|U9|}~\ 5Yݰqw"D[ 甽DY)Q^RW*E8\2\u$vDke] .Ar^iE ǷųgRp&aNU mO1qw]IVq,mt}DثVÿUԪe6^39?%ؑ1˧VRuzہ%íP-2 t*}J8<%p i[ۓV_}FaFԅ$- ĝ 1.搰9JJe}:j_ エk0qD|21UFp=Q8 ;->#_ȚwdzIHr޺dI5 }$f/A^|'^^|AеǮ>Ni(9`+B=k,~wK$Y a*G{[CmG/TԢa/:4]K]+4'/E* m(n bD\Op`E1A&" wضOU3# vo:^86 Q-JA9@`I Evx AHߔWd,/=$u e,Q$8pIHRH.ۍ(eO_elvAU9s{LG<pT lL*I x .%2GJ+t0JBs\"XG^dB9C"&wos٫/Hƒ&Zq/mi^, KzHĿuL'u;n~,%bxYj\eWϵ)3h!NFˬ]=>Wu=T}`bx nv-0;b/!0pYn$N}A݅|ZFUy G{pV )n@]-|b/כ]jo<:NҀA;r ՚X&Pk,em9rlp߉[ct+?zz]אH l2vFV`!̹iwvavq f4#gj`KBTzz)fW-J0[uK.::$?~) f{}6jݳknjcѱ{ 2&j[p|Y lFjsBQ(2>I;}wJŭ~sYY4F>!fi!0VD5kmG&AυbNhlΠ/Km/*ڳk"O'H'o.S~cؕI{j%8#]pF_~O߰5e;{נa nXk&eSVrr-Vr n/ w+w7@qR[5'xu{T-Wݞ>%G[CTLT`cХ~X)-w=j*`lN3Mq0vK01\a܂3{.YkYUH. 1g M̛ O<$nLʻ26KXZ枔M-;~g݉AN VA di3;IUW)MZx7*SU߫jGGZjecG sIVyLLj7M)?"?[ :A_k_;:~+ ҥΐ2?{6V/NёiWghq]$lԓGTW)2 j0ZRRȝmF4m8u͵-7] =3Xתt]L45)=j8&k.Q 8:K{I[qJ> F ©, W}NbTGG_0xSz+RtU^|-݀-u31?U8˵ Pnf 53u0j48M-Y^9=4|CֱB7ITBt!Z*k쨶iy-h$Yn|ьwTo~U4j(5GdUӀE͘uX}]cSYYJ]ԇ E 5X3v8]gmBcl *|2p.SN'b!7ZIUjOfRҺI$yw9ϠV))%=U}B#NjC)0)l5yNAqBCΓ* t@o LDH1txe^*sx(?c(C`%{3(E7A\zsn:vFq\NugfUf0ԝt/)2guNl*W㊑A#)tAy&'tR;RSY6$b`.@l-)ݑmq4bџg~ow;e;;ȿGnJ/ m e"?i780ޜo=ߊ7J0_ ؁A4BԻCXጼĈ\QXp ZZZ &$Au5f~4©6"Z`z%Xߤ7a=!U񖢈Aֲ"<Ɋ6M:O$$<)̥zҜՀ Ը; 5|I7uS3s+$#pi2/=$&5GP*i=irfԧ>^{) `6~PbizVNZ*/t}3S=0Sݷ~$lR(DwR& nZ njO V#6axPQJ3{z8`wS$1Y 6"K{%9ԓn5hIpc ~Y zPHh>CPF=*xI$UGÔ{AItskf{@'8QR9p1Tty?*VOf4R0NW14nhf1WdXD0J.b]{GJY<%r.dLAHO|V^_i%8oLIE1;ڕgQwGJrBcZWՎŀWٰPdg8[{[yqc[^~/MPT@XӺz-(z; I.aXpq䐣MRƣRʯDM3)x<ە#Uk4)b墟(_QZ>4|2&Ll81ޚn).PwTXW JBa&^sMvrYn1!_THDB@Hu&"~ (bIKpPb|8W;Ov=_5AUdbd5}{6 KZ+~dlz@2+asX :J|Н|Cmvߑ46{q*7*xest5t=Nrʃ(]q! ݚCQ8YH{LY%8MRlAD=wق%{|&lA vf1+Wr !uJz_C[g {L,O %jK H07FF @W\r݁·^V|nGڦ4Ŝ 5X-\V駴Pmb 7YT}쪹+$M)U941LV}.JlFVBT>3nq% {z<׮܆m}ytW^_ ]?wNrcr'nE!Q|䣾֜!DcI.ul?4WB-R?RT2lI Ip!YR _"v?1fg'G>^b^^AX$f[cVܧ!Džc͈Ӭ>5Co{S! YCAK`Z{H02Oty߾"n~Ul ̦WVMMnw z_p IIjL\iJԣٗX4s{VuR$Gn_G`RǵOh9!/51s_dV[l%Femnv(zec+2fcEC`-<2wm%s0j_A&EeSE=d +P.\7hV.Y8d4As `{ʓ&c4 WAW6|5hӟK#g$r4Jz,%i 7j|Vr &*Vf^sXXHL 2UUcc V&O>ztr|2 x:y~}T wGwѽd8c9ݞ[._ B>p ; ҄f`C} T@Rͼq{#Kw4?-\&@P+V:$ӵ(#E&P_8 @xFL _E *]Fj5H(!GmAFcw<} 㙦abz:F #P` `{'4&v 04-c9-j3Nswν)qeE7"`Muo7E9o .D~7ԧ%ݔ-+fZPŧQX KCKjQEm nJ*]"7hB[+Zmȿy&:~W} e >H%m-^ѳ!55wjiZwiB]P7GRf[X؅'+d]7&!EP+L{q<GLy&g#km;q6=/L= -eXGi$Xǯx|QX߱D%oˌN&'5°%f^+ԥw( #Ia~p?:AyE'U1qTą9IcR4y8Pyj6a) >*aznqC=̑dܭ0fy4]añeô1^IvހѶwI[ r@iHcqoIŗW~E_"m@{h)5n( R%υ12f ]"M!GyAn&s97dxzZ٠{LC9ښ,KU)Aj3jLOB`^R,=)' 4P==8+dI9 Cf\#19I S{,%!gA;6E]vN go\e1?yXТE˓7IƦ.3{o}c!ᷨ[+phkdfmAZ956L2 ]_ռ:#NGIXw:i`N6w`nEwuLp[($L.$O2BH>9 £d ?mZ=v|ojLEAukq2Œ6":J>;Vcr %AmfhvG|%w9Ʈo3SA=T5ȌBg^=HmcSYdRŪ *Q0Js%H ju:"!y-ǘebu_ ='.%M\H3vhp/ rn */ R^hN$`lb@ K\ 6 oٸпV > [l7˾ho<)G,\4/|[we{^;~Fl%i4؈" +Յ$R .t"IE*DbL-(%L?I} $ $A3=v 74HЈ>\R 4ǬRZ[8՝Eݚb\U7{ghK' /N veuX*Ti?ߡ5v"kVh:yU7߰حf96?_r3L=s !(7z{A~'_`;YߠStۜoTʃ('wrϦFNوG4 G$ͣ]r:7]VIq8CH!9䕵s+>|l]/ G_eGzZЈ| E Xٌ,ثR~c' "ʥroMMKMq2<4!ިkȿؽV=CĜug)\R_jvgJgHH3jH^@:?"*xkeɑh by%<߂GGo}:fb|pOF7fbLJ3jP~z Gbiz2/;uin7wFWDLLb䯴 r[+'η-ao [[Z<@} ;giYZ'9sNþ9fgxٍD]~ar>pzmCv–ǮpkL)+~uŒ>g~f#iI],C=<9p@[Hw<ĬkXAֿ|xbod$[߀w0moA8B'O}ܝPULe=\l1j0RRt12!f6.|&4i'ՉM"}("7Ƶ:&qCs,bgRxJ npn祆|IuWo\yu~ڶ'Y.>Qvԏ\BܲPWk`7Y<[,1nOw+ ΅_fK dXld%!ţ~X O͐Ǻ6r^/*od#X8Hj5Ax-J,17.4ޤ|n`w wW%C3KMO2@3EhM::BP&: &*䋊yi ڙE_%4mӺ.̦[ t= _HGPű[C=0 gؼ4R +NW}+=ʪ@y*ZuOKt'we H:yxr9dB`0#QUKɊnW3;i?Io1 zw6Y_/*l0- rQU~nhLG>L i͞Ozޙ'̙Ɠ~M q%_)v`ckrFaj{!#9kHa{SfM4Qk ulf],Luuu^mIVg8~Uy*W#\/ܫ a gXz$+. E7oS4,5* 9Iy.i#qB;@4FMpJ'"šh_GR$uRqnaEi2 3^gShN#єUFgw*|6>\0ORvU^&WgOqll(gVjePM:Q*$4`&KOʤZV6yJ#|q̥>"g_?<+1K[*[>?f [uXZ^STUTa!ji_X ON ed1t 1Y0OU\xks@c̤{O`8$4KC08H֨RVuQG5;~jXE lx'Py_dYud!+ްH] ?KopT:V..|Gp9nfĪ(~ÐntXexDֆު URkr>d5 Xet-]z;lիcSn GĈ,vt_{ 21v$x/1s , 2 h#&HB:ȵ~}FYM%?9|bǎ'^ybGr?ÿxr[m[>W^.\L% 580PT8 L +ɇ)Zq7P~+ ȗ>ӣSB^93Iu"pu5|PkZ=Ԙ jYqr uK{R|%!23A7m}e1&)`8!(_#TLIDa.|qV4VН7oepO\m uSܰ!JY51*>~CV ^s[TDل3N;tӦ39_0pb"4es -[e,9f=PO7Jz>35]t&1Py=YIAn2%/\\)M%z%F˨3%%HQ99gۚYMHFv3}\pN0s?f]Z|L?5w՛M.ӝދ=!ܾ a$0/-u@9V`iz9Rv4&b\LBDwҘAvF>$@g#dUAQVqW}TQ>RxLRu* Byc zXf.v|#о%ATS+EݹE[h=ΦNΦ:N&[wp8x:btuZ.:blsyS3u{ANaZtCyA0lVic:F`|t5g H48ȣ-joT\ vU'/mk zX}ZۨO^ͥO uZj-OK\ozS1Q˳Hew^RlJiin+ٕ2Mexɪl{M4d5qs3E O4ojW@5 5-N+YYWJuJa3*4 'Y N^]S-!XQeVTNLg+LMMw4sA⼆K\8@:z !bQfrT):%jRh!i-O;^gWJ4.9۞\ش+zgi@ae%t,y=[ɷ7</9t{.]o:s  |LYQh՛Pի CR]jQS&fsWg.woRuwλ]ICgjG7tzb_=Q=KaY,WC&JI/WϮ]<:P$Z[vUysj,&!㩚{~,Qj&gpwp&xl?` L6G&yoقou5]3AMDrW{M6{_n"b~NyLWl+q՝ڋn>: 5 8-`>ڴg*2Q2n`)MT8|\#z[MW?;jǏ27)CUF{yz#w/'m*U.<Ƶ-Z-YŁϡ\ߤtj/'m3v E 8ݪVnD7-/tit2B }9.`vv♦r:y8_gzh(^B!gT%]\K_S`JҤ'_P5"W2naRBU t<8+Ѣyc"*U1Q&P>oUXbCf;%z5jMI_ R%$ZP&BXV~Кw"7FR r5,X爯yǎ˛iUpV[[\oиjKMьV>ss,5RI } 5pEU) 6R?i[dSB^yw#Bߥɩ{#ކH`vA8 Jw`7[)c pqdoNyL.y1=2q56nr}52YHTK">Zʏ9swq>ɗF'Z IHgip./Ydɻ0دB58E1^9x ! &d7Zӄ쥲_םн`S  OJ$xFM6/*F7(R"2eҒ^R]&|ESYZ-3R  Eä&c febh~[OS&TiRmŪt}}2sT*-jMf45JFV3`&1Lp˝X64A ZDG+ 7jvM=*_?81 cMu99eE4گ}(9?Lp%awbv~鴕cuܧhaJ[oFXK ď:*Śem*152UaJa M$Y꿚c@%uEȨJP&펫VdZ [%> ~SI-@=bٺ>;ewC6 t&[{vX>ѻ!>O.{iMc[B@wr<]N@jomk9u.wz)bw. P#+bwo"|W ]SeK.{y.uDZ18yhqYLݡP1Sv]sJAWZ%4`PB$T^:BBIޙ4L ĵ`zx-`}>λn2+ kZ1_=bh2o}?`I{1"qJ֩?oG;Nը5Ƙ)1oQ;{n`[jprZ\rG+u2$Z'Cliuѭ?_5(N_eECP8uHw`6[7,HpO0s։;͚&eakɤeSi&J=L3 V|iRnUXDߢ>MWI>A7ƝMof`(!ܩ>#ݘ]Vd[gp%OyZ?W~Ԟ}CKYG&>Jh>s P)#x,΀t>%Yb:($~MR8HK@\ͻv1I(@'.3@ FXq[>b?jK7]Y+-p/X$NjuC(_|rzc+K~f͕zcA;j t{zf?tZhUc6'1LņdUT^N1] ua%PF&3CZ4K82N((&^Y*Oj2WLTە j"BV"T"\+z7?K8N9X̃C)y;Ob3ZF8locI]I+F6*#ȼ) eu8CcN "k&M=zwܱ<;}5X_k0B/Л"6k|JAwq6?j6{]bX`g1%Qƒ{?N]Nwv~weD054/2Ac}¾|, j?wއ={4 Z_47b5hEFrn ^Oh=Wua;1˭;{/3[gSNƦl;y,LC 1~R],3=[?s. &󸽀tITd 9j|5##|COwBC+iNCD3c57#ZxX3{Tнi K1DxeiӺ2g癪irFJ+ʰqV!|]$Q'z_Rݑ&!J΃c%ODO怼TIS@+D$aUAC3GV75f3Ꭴ̏4yĝȾ'|LєxK](t$"<hƞׄo[=)FkNǣWe|5qd^m?=j'͆$9Nχg@b z*)K.d=6>Vc<8>)pԙJ3I?ha?́DMݯP:Q8j)y7bXovfIyA0QL{rN@\&2ŸV=k,ZhH͘]Mk)zRm0;~6 +񲪆ar[PkΫ}.]q9-T 6]HԜ4-J3 }TcZ< ЬyraP2!G{_ٳ畽 Ւ2 fKГLQUʜ՚gsͲ2 V֞"8= ,',YWeRGBGn3G A[5i!R!w ?B%5_0bGOxU_Յ<ΓFHK ?^TUy<W*NR$it?fB0l<T]~4{4ES% $TS\%2,'`*g -& :`;ftO`hRVZtc3ƌ!DPj-ѭVZAX>Fje',i15W1j9[3$iXZ 30Ðnf̽k !9ގ+gJD^!.YX\>X%'JL!﹃sz.Un`iڐg&ϵ}pjt*?)!N;[)XG|YLN23Cj=psӍ_ZS]5Z^0,N՜#ǢkVƤH)J &Z3o0pyeG]:E9X&Ӳ=vIt[ V@u7o0 |I }4t*oZ"]Xp1qRMPޞn^(gKō _j"_L714i|\ݾ!$ a8ډN$ۗo pjW\ shiAUTVS13sqRI$'u1Bd@G*>8*#%yӇՋ3Eع^%R+8tv2_ !<̾'ڔgL9[YLm\0RاSj@DpF -#Z_Uu&o~Rg>=4bWǮhggsfmq(h}UkLN恦ʯq <{澖#Z%j@bdc!Q-k߉LUÏNfZvM3YqYf!!1clBHft܊  gooHE\1`9I57IXMOG8T 3e.䏤9=pTT {ׅb|2&'i!NJ3VbhVu-!rǛc6՜dzҡzKS\vJhM 1,mq]UIئ^p,L;&s*nzoQYw{_K{ݠ^P6|M~ɋxSSbu ͏(,yQljx9H\Vv^X1P-kEҍRQxF`\~)ҹsO)t̓W3xp%#jיZM^2j Y#3TܗP%:5Up՗W[ur} % pkjB;h!v39$lR2aZޘY=zLMۚ.~ nB`Vzg\W{ wFx^J5 =ii`6.hS2'9J/c`>qG>º5g佳.Hʫ3.9Mc&@a88T~&NGy+ hAU睊cvZ$KɂY{<'1׎ܪ12g8y?xck+)\B}SfVvgQk\;չO]IϲWd~OLIX̘ IJ5}.CGV.;(iBڼi3AQ PS꿲4Z+0[:ͨO/Z^xPa%KTBvv˰&s:aV77-PJ"LT%DmIP&du \ 'X]<#kvR&yQۨ >qbb}ʭCm5" gS+f!EM6Yh SՔջiEÚ_ڨ~!ar4X9PA' msoͽIn]&1Ic;MCWDed&t+TTmaZN S#@7͓/)2T0gDJnMn;~ߧ<{6Ⱦ) ӄ5SBly8G۳C!{*Q}DxTt$8ϛK Trβ|T&+-&eOY:;u.Lh^P廥 "GDբB{,wR. N.!zζLcPS|A5/Al?Ə%4|߶Dl" ȖKaktx_\C-o8Ny̿[8_qZl ĂWWrѷ+R:b2`% |\C4φgnԬ-4%AO}?|njD\AѧGA96vQŶ+i2rx~ |_a4|= P("WWl=`7VJ9ȩٕHɳ[a5u) 6)TRQzD[Q <S+&-xo_Wn9}gu#pW- 4m{"-_-^bKqqKjvӯO;0jF]*J[]Gtք-̳,5$rFQ(q O۴Z1E*EZrͽuطQ磄9AR|3W j0J{/WvT U{$9 UNESWPl;fKp~i_16UQX$6"{AZŭC~@_*xp33cqȼGNj/i ΡC)|[YYsqJjIdʄ.bҳ^|3pG =rf[ (X6f+ϡ1oȃXO\v_'9eIq2)=dg*O@n6cj;/ߥDKvDuOt!rH{/MP"XX<r.d"~:R 6 n N : & z & L r XTzp26v6vVz<4PV xV\ $ l!F!""z"#:#z#$J$%,%%&0&''r'((V(()X**Z*+ +"+h+,,N,-:-f--.&.x.//01f2*234R445$5x556F6778889<9: :v:;0;<&<~<>$>^>??F?@.@r@@A^AB^C CLCDHDDE\EF$FnFGRGGHH`HIBIJJhJKK~KL,LM0MMN NrNOOP(PQQFQQRDRRS6SST"TNTTUDUV&VpW$WXXXXY YLYYZ>ZZ[$[\[[\R\]]~]^ ^^^_ __``<``a,aabbcHxc`d``abg& fB0uxu1N0iPBLC-u@=@ QeUR0qF8Ox CmY߿{ od +; K) ^se>g\e\Q2rn_OTxq̻{> Dv$Z.(xa/̋.>1ڏqPQSkJRY/}TWWޭUBYԥٶjq;-6)օ_ 99x}Vec\df$R۲Jr.ff 3333Jg.?27z%ɒ^hXGb1qGql8;΁s\87΃|8?. B0.b8.KR4.pypE\ WUpU\ W5pM\ up]\ pC'Ƹ nn[ָ n;8 w]q7'{a8r(!p vPFǡaav}];q*Ax0ax8x4<<O“6<O <³</‹/ Z;W5x-^toěfovĻn~|ća|q|ħi|y|_ėe|_} _7M| w]|C?OS ?/K op~? hmh>F(hƣh*L"S L{ V[03dʄ$5^y3t= ьWU"<FYq#)=;ͤ܉gJA?a<B;0)ˌ̕lWpc @,Q.[BndO i%ڙ idM'dE.K*bLb{F+oy3 F.ULk/ޑTCI>qnsѵK8$}-wp:kӶgn*uIT2 7|.$wh Lɖ&ng3m]"J*XxsfJܲa'h:Ҹ4'TnЋrQ0x6X.:Bql8ԧ<ۯ娋O2IU`ҋKWpyP8qLomk}8(~A}T͘Nz$%cɺ J>cED㰊xQIR]gPKx\qKBoBofonts/iconkit.eotnu[{%!PS-AdobeFont-1.0: iconkit %%Title: iconkit %Version: (null) %%CreationDate: Wed Nov 14 05:23:20 2018 %%Creator: www-data % Generated by FontForge 20120731 (http://fontforge.sf.net/) %%EndComments 10 dict begin /FontType 1 def /FontMatrix [0.000976562 0 0 0.000976562 0 0 ]readonly def /FontName /iconkit def /FontBBox {-1 -129 1026 897 }readonly def /PaintType 0 def /FontInfo 6 dict dup begin /FullName (iconkit) readonly def /FamilyName (iconkit) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /ascent 896 def end readonly def /Encoding 256 array 0 1 255 { 1 index exch /.notdef put} for dup 1/x put dup 2/alert-octagon put dup 3/alert-circle put dup 4/activity put dup 5/alert-triangle put dup 6/align-center put dup 7/airplay put dup 8/align-justify put dup 9/align-left put dup 10/align-right put dup 11/arrow-down-left put dup 12/arrow-down-right put dup 13/anchor put dup 14/aperture put dup 15/arrow-left put dup 16/arrow-right put dup 17/arrow-down put dup 18/arrow-up-left put dup 19/arrow-up-right put dup 20/arrow-up put dup 21/award put dup 22/bar-chart put dup 23/at-sign put dup 24/bar-chart- put dup 25/battery-charging put dup 26/bell-off put dup 27/battery put dup 28/bluetooth put dup 29/bell put dup 30/book put dup 31/briefcase put dup 32/camera-off put dup 33/calendar put dup 34/bookmark put dup 35/box put dup 36/camera put dup 37/check-circle put dup 38/check put dup 39/check-square put dup 40/cast put dup 41/chevron-down put dup 42/chevron-left put dup 43/chevron-right put dup 44/chevron-up put dup 45/chevrons-down put dup 46/chevrons-right put dup 47/chevrons-up put dup 48/chevrons-left put dup 49/circle put dup 50/clipboard put dup 51/chrome put dup 52/clock put dup 53/cloud-lightning put dup 54/cloud-drizzle put dup 55/cloud-rain put dup 56/cloud-off put dup 57/codepen put dup 58/cloud-snow put dup 59/compass put dup 60/copy put dup 61/corner-down-right put dup 62/corner-down-left put dup 63/corner-left-down put dup 64/corner-left-up put dup 65/corner-up-left put dup 66/corner-up-right put dup 67/corner-right-down put dup 68/corner-right-up put dup 69/cpu put dup 70/credit-card put dup 71/crosshair put dup 72/disc put dup 73/delete put dup 74/download-cloud put dup 75/download put dup 76/droplet put dup 77/edit- put dup 78/edit put dup 79/edit-1 put dup 80/external-link put dup 81/eye put dup 82/feather put dup 83/facebook put dup 84/file-minus put dup 85/eye-off put dup 86/fast-forward put dup 87/file-text put dup 88/film put dup 89/file put dup 90/file-plus put dup 91/folder put dup 92/filter put dup 93/flag put dup 94/globe put dup 95/grid put dup 96/heart put dup 97/home put dup 98/github put dup 99/image put dup 100/inbox put dup 101/layers put dup 102/info put dup 103/instagram put dup 104/layout put dup 105/link- put dup 106/life-buoy put dup 107/link put dup 108/log-in put dup 109/list put dup 110/lock put dup 111/log-out put dup 112/loader put dup 113/mail put dup 114/maximize- put dup 115/map put dup 116/map-pin put dup 117/menu put dup 118/message-circle put dup 119/message-square put dup 120/minimize- put dup 121/mic-off put dup 122/minus-circle put dup 123/mic put dup 124/minus-square put dup 125/minus put dup 126/moon put dup 127/monitor put dup 128/more-vertical put dup 129/more-horizontal put dup 130/move put dup 131/music put dup 132/navigation- put dup 133/navigation put dup 134/octagon put dup 135/package put dup 136/pause-circle put dup 137/pause put dup 138/percent put dup 139/phone-call put dup 140/phone-forwarded put dup 141/phone-missed put dup 142/phone-off put dup 143/phone-incoming put dup 144/phone put dup 145/phone-outgoing put dup 146/pie-chart put dup 147/play-circle put dup 148/play put dup 149/plus-square put dup 150/plus-circle put dup 151/plus put dup 152/pocket put dup 153/printer put dup 154/power put dup 155/radio put dup 156/repeat put dup 157/refresh-ccw put dup 158/rewind put dup 159/rotate-ccw put dup 160/refresh-cw put dup 161/rotate-cw put dup 162/save put dup 163/search put dup 164/server put dup 165/scissors put dup 166/share- put dup 167/share put dup 168/shield put dup 169/settings put dup 170/skip-back put dup 171/shuffle put dup 172/sidebar put dup 173/skip-forward put dup 174/slack put dup 175/slash put dup 176/smartphone put dup 177/square put dup 178/speaker put dup 179/star put dup 180/stop-circle put dup 181/sun put dup 182/sunrise put dup 183/tablet put dup 184/tag put dup 185/sunset put dup 186/target put dup 187/thermometer put dup 188/thumbs-up put dup 189/thumbs-down put dup 190/toggle-left put dup 191/toggle-right put dup 192/trash- put dup 193/trash put dup 194/trending-up put dup 195/trending-down put dup 196/triangle put dup 197/type put dup 198/twitter put dup 199/upload put dup 200/umbrella put dup 201/upload-cloud put dup 202/unlock put dup 203/user-check put dup 204/user-minus put dup 205/user-plus put dup 206/user-x put dup 207/user put dup 208/users put dup 209/video-off put dup 210/video put dup 211/voicemail put dup 212/volume-x put dup 213/volume- put dup 214/volume-1 put dup 215/volume put dup 216/watch put dup 217/wifi put dup 218/x-square put dup 219/wind put dup 220/x put dup 221/x-circle put dup 222/zap put dup 223/zoom-in put dup 224/zoom-out put dup 225/command put dup 226/cloud put dup 227/hash put dup 228/headphones put dup 229/underline put dup 230/italic put dup 231/bold put dup 232/crop put dup 233/help-circle put dup 234/paperclip put dup 235/shopping-cart put dup 236/tv put dup 237/wifi-off put dup 238/minimize put dup 239/maximize put dup 240/gitlab put dup 241/sliders put dup 242/star-on put dup 243/heart-on put dup 244/archive put dup 245/arrow-down-circle put dup 246/arrow-up-circle put dup 247/arrow-left-circle put dup 248/arrow-right-circle put dup 249/bar-chart-line- put dup 250/bar-chart-line put dup 251/book-open put dup 252/code put dup 253/database put dup 254/dollar-sign put dup 255/folder-plus put readonly def currentdict end currentfile eexec Ut?clZP'0*^]TaRsݺs^Y0|A7풏?Ifޛ3hQ'Q0p\D]Rauq^Esy [j+E@^긪BRl& _Lw kCè` wF1|wa6QL .K[6V7NSIW+'I޾/:-tPP~ҟ;Ғ]SvMDU{<؞pc[:ȁ,ȽJ%=뢟 ݇#7 k>.i]l$TD1+UG@3sv~E&61[A(~H,w QBpY}ō'U |A#Zw$1hh 8q-&R.?;07f*LP*@w]9L1Whd]P|j bZC_(dN53!qTD]D Z]D BҒ}k'jWӶy (C3bH1F,WE^ [>`P8hm%{@*ɤ'.zǚ/ @YA==>0ȉ%ސʩR̪G y :4=;xRHzG/f{&2Ook:5;ItB̅n˔$FBтp eXKv[=0cmEWIoc3`@֣^ignzsBYI~N [lT+0O<^w6FfTܧGu,1('saE)1VngX˃v%\w񌨾[ADobD,cHmjT=tšv_Dr 9l,qi|#d g 񑾖iMS_] wﮀE'76}5&2=w a}=5P j^xAcTrqjGvzbf[ĠUPAJMo `zRft.DB$Ի4gξJ^$1c0%4XNb8p9ruBx5P\쭑)c44TkT]ȜܵgۢK~P`i!7[8 ^^|6eIjLxy ^w1jmM9X@#vQ=awG+>T8M.ۺ!3:8AG =H|]99O?4sYRRwF~t :':D$9暦 [6 HݽdFQPfȓNQB=ZGſ 'h[(nnt ,MS@L8auU=I\HbUє 5:>,l+,f#%N],#Ԣ~7¯Vd,IcJp\YiȔDg%yW7OC0BU6@}>7D@pCq,vCV`:\ ?FPLk-K{!R:a[*v߅uH&V;prkH@}_yl 0J\jwu.5} s qR-|g%}[K5X\;ݸV/hʡlG*9ĬL_9mA댄18\z~u]0b_) q}cFFx;hgH%^eCu w8w=UbHbN 8zPӵd?Sde/gd%ifK&|ߠ.e#^\j>*8#_q/2<`<)<^.Qү$Jix3|WBl֫t fuɛ/GuQ̕Mݳ;eken=NKK|PJL|ê' oV T ֚SV|,[- %ҮG&Ew^Mw8_p2^Sذ'4ÀߖT/±*["|nTX64uhKt2+TqDfuJfvG:Hʚ9cMqpԧ8ZaZ%LӠ̀+7^Ib8~#F2JO\]Wp#1/RÛMg*TX|- UOђhlVWyB{Im)e+vh_8oBwb !a5gCwX oE{gHMBʔ%j|N|JpJU|O!XCxV}SMog]N%|*1k/J -bKSaZ*Уr)%;97SU/f?ʅu'H5E ._!ϕ(mz97AΏ`)3Tt4l* !IrզX1ZYY3͹=}\L!Iŭ%QZFپWjʚSĂ6^-(Jɐ*Gp}07oN.odAMb]Y8{j c_Ěf غ*!Hx->̄r[Ec:~Hjw7U?ժ'#!v`vG*HFſL5{ы!&4"78{PYY\Zލ:%h\BW`$sbS)y̝CAnRyb=9@/T%s\ۇar';sx[ %J/hW-3?`ÌcVR%5Mf)cGRI7a#Fݤ/z[<֓6[`bJ]9ݯM5íD څݨ6@9CB㉉ht+˦K]bҬ*$NKرg7zdSm3JML8SKW E hx#I)_i |s^D+o'$|Ư06LrkyiJX[KrF| &pF)_6<-42,W=fHv^(CIO|GT7I9]a *Eu DcXl0hpkB8ub ^xK]Su1jKD-P<ˏ|u}k:h?0 @onr&k017z'dHsK);` el\+RŊ!gP], nCi^¶4S#A̳HWi]"v[ta1vU˃sV JK=gKȺOIHmna^VZ3ia>œit!(2-Mbٿij,.* UÔo)gߔ JrWXo&G T#y}$jiƺa7ɦi9VN gnO8]r˙aF4HyI ͩm5` :&hy`/! 'a+hJYȿ;\5㷕r`hf+Ԏh +1T9m|)l("ňțRM춂\}c3!eB Zb,9;aif؟M?]KșfRya}_R;W^dSc{(oEix⦽3bqk9yU\N_NAtyъ{K:r8VSMg{AWQ~7}QLKb|KjOS+>f@2%>rAе?\~ggD悂K GwJ؛"`.>gi5(#+EX;0W?GZ|ҞT2~9fDDD4#?萚 ,7JFRPdT>QXo H ,s݈0Lif#$m ~ 6)"A ֳ wEYMM4E|ֽŎP(8J4X`o`}G+4?lio;!o"ɄF #TXK{O?-us'BGS"cXS#dhN#D#J#\Xz6x.)FV>Uv/qX,c]Rhĺ,.)m}!G&{~} Au+tt%;MW;h;9(z6$L (k ]ҊjЫX^"3"O$ΐ /b%V$S2kIFqZhzA0n؝ҽc/㳬onȞPE'(di>6}{`O(+7L!ڋ!!qc>>-+VWLnA'd\>J,#][=D`+UT_d$qǥ?;d5$ Je+?D6.9=k]YP\bX"ծ,P6Ϛ<&.FU*SӰ,i'kredP6ڐ)i(p_Jy79N&%?_jLpA,s!"%Et5NB]rVٜ]nrb0"zW4C9W{< 2E=HX7*gHFnڕU7 A+ l˙HF%#[*"{Q@\N㦯JFΪQ=u~0AAć)Ii0spL;\J[6yBd=3zP8m+9My\۰s%a*hi1-鏢O<֧˓ieC[ʥ/m,ұM=Fx}x,j;'*['z11b98s8yy7O-MCĭUȘR) r 9"SH|'DqX:!$jT[KE`,MKSN/?-)_Kpw1zwY [G0CػT@&]g^9<)n}X{PlO~Ӈi0v40enZOQY`$!JxODzt}) mv5rBN6Oj*"J-S#`J2w9 A )V,OvK:hQ=^A&pWC+ªN_!6(^x5ǵ,L"1o6\  B}r~;kuV;. aI(z?;%&'WI5[ZȒVr^+z_Wse)),tRnKbW߯7}A9݃]=V&G]W#)9rfRu fr&ni>^QNKʓ8dsԦXmtzw"^H[48?QK `i TJV@⧜ac=1uaoLpT5s Ax"[aC!BiH9` O^jҁE)>yf x%( ۙFKėB"Vs'[seJM (G՟D]6c bQWy#Y(UwgR'7$@8fU/^Q72snUK-z]k N2\ _n4٣ꟶ<Zͼ_t0BN<ʹyZ^u̙4EHb'aW (׷Q9($Aj\9U|K hnk:.D]":ɛF::*r^NEF) ,lj/3SKA WdIfAʘ} ?mZM`M%Pº84qMWf6{!{/ֱ(*ah4GP]*:iǩ{DQUudĈl)LW4B$oQT/_ю=- -XGi~TԳ<~1t*(V% :znOz06P.8A}vHu7KLbz[[Л8dN-`4aO=z[(";tkpUYǗe P2X=K وeܩUedJ7͚ '>6[;-R-Oq?]t sWi+3 '- dwg0G?<'2\w">:;*^fE ?Q^vo;6pҫYn_H@ÕJIT/ǛіW9*J-'L8>8ۛ0,N#撕ǶFRI#DZ=j.XŕOnٞQ;KWٴxtD-}QNa%C9FHxVeQd"u,aݹ]ApFFAq)'w_|FJ|x{7;MS%q螾jٳ,Ț.t &8$\Dr mFs)=)V;t񉇳y:%bo `WID-5cLl(ԄMM IK6-)aਪylWhym-6@%Rp{в8jigRj1F/lسuˣ"nq˧f8ՓtLG36CK3m `l3j[Oy]/`fu8.G8Ƭi!:4-EkaekcpYcR"0nX[?"qJa458B^g}W`X-"S*I5P2|AiQ]:`1.硦mGU!˕Jt|6ggdf\?)7mi( dy4c Ə皞/ |uYˎ߾AX8S*$( 87\X2*%3,B5Fo3VoV(B#oBblMTK5k9^@ tvu6^lnv/z 5&͸XM+Yƭ1`@Se>Zn_[a31v׭+ d:bp8!2.pRߑ?d:-zyU#6%a=A,0%E$=&,N=/mq.b[&&ߝJ,05Ֆp"W(UAٺӏ\ \d" l)vD 4Hؔ~n&r'uhQ~BN7 nNLGx J#7?>QN7m,U%;?n9Fw|kd*JH;81ɼL$L=Vu^\5N <1XmR=`gZsGq:,[Uh?ޜ/ƷNjU4b:JWF3l97ɚ1Se 57.3'tb5Zlē1gs{Z@p-fR nUqŰD.bNCA)O#6L>P?LG5 .s ԗ6 R9/:Z$ϐd;~(dtoYiW5ŔLӂl15dE[@Qmi&x0(SS+P~19K\ijd댪5 ίu-'2{}![w`@}RMFsv5:si@lx.nG/$(Πc2%75b ^[[̻1j^t;rũ=] ΂ښȘև,~>20S!((rJ?$Dڟ.iqp41JwBB /e\c5k7AP]y=DpCv?n\6pQl-CU6ʹ8iM#abK-Ƹ]$s;~<_xNr򀊦e-fAaK G.᧐{\C<[l#߆g*/)㥞*qG^03ݲ I;ID;uzJ*PAT&!;%qwaTFpK7Q;kt y|9T;q`Zbܒ4#+q4(mg/XGhKh<@1BQW ˮf3mk vKl0:sq^M xՋ& YFU.Z1:i^U]@cfK-`TqTM-Uڦldr1aH~m]>6>2"%(ؼlQ^B[[W7#D/|Zbƾ5S8uoxHLal4 GE+/9Kϙ!!P_: :(Qbt{B]BNU[}sL]-'e| ?l.X~>NOŔa6x|,o ڃ;Vkyp6n?f+fnݾ|3dZriU(,!˺ v;Lvcˆּ`Rq<½(m'o.C4A $q45l1+o'h`Rg!/vޮ{MM迗A^?~<BYM8ܴ #WH3w7d-Kn|XA:P԰*۩K=ְqH~^ xZ B3e!N6c0s'XOgNw`$\fzCZ?7oD¾,OR bG"*!TRW( 3.tJ$EWع\(+Jn'Q ''LEjRC[邒 2>pGqj6? b lsޤ4ē"tJT/wGoO>Wg5:QpyG5LX hyK3SVGb6vjzd筐ָ]E /lAX2~0bFx6XBC~ aums>+.*OXw0NsUnu0T;rOǼ~j(wzUD wƯM'@n ƫK/]u^7aӃTB3.n d@lS>H5PS|j"@.q~5+\V>0Q*Cp=|Fd, *F+(kL ?`"ARGU5uKvd. d~~? 5ndNVMRlM[R*,0L[#}=n!1d ?p. ˇGQoGA \ojm = ,6=4hq͜{ @Q $ipߝoDËU?'v`_F:%2on‘=OI$2]aY1M;ѫv# QX^k2.fqNL'3!ns*:M;WX$ | lA^- ;6r+s3Oo/(gYn2=L`;5]TT01BN%4eԪ?A'i 9 K/ϟS"%'l0c?-hFz֕W񄸉@rI cK;0`=nYLK 8D$Ρ{5;g9H53wFI9 }m'b8Q(@hf Am/fW C`ϗRy]P!YVګj.p@%9^p>^[5h6wƆY[,ez7]~#+0;~΁4ex fc4/UwHI(Pz3u1Ix?~I @}4N0^10:F#W ";Uq4-[R˯ebDĞƊb?tLh$F \o=+ip`LV_'SqN#RS壳Nsh| i캭(4aaa\YsFݍҟ U7{J}"IknI&9/`K KV$"&6^#"hF=zo'2)y-ඡ&7٧knO?PY5yE['5֣ ,*GU61}| 2-W=e˞2z[Xf5p_!h:SƐ.Agr/[v g ,3o-%$%ywohƣb foPHr!4ڕjءu|-u !Ӥi# e*`,J`*R$j}kh&0)RɿWЂHc@䧎]"r+"+L |:kBp :)БK7kϹ@F-΀<Y5Q{P.>_PSX Tv"82-M'#Vu$8KQ; FG7)&_BJQ z 8$tNH=wGQ`d}BERy,V(/pJv wZӕb]KϏ{^ \ iwG(jOX.؜t T\QlD~]fɀhʧ"+@Yzh0`4қz4r.?O{1 )Kd6h;֋Ņ9J8fka/ nk=3^Оt0A%l-e4 dI6\֖~L>moq$RDIUeCUBynSlL(Nwn<:iG,>;s,\r#Cտ/a 9]mf`ڗU%7 j 8ACA-ypHخ_?FJyPrQ z.e}4R%͡D4rfH^v 7[XuR[]62.#Y*Qk!d{Pz{+f_?'JNc㒫9K)ETtFvbqֲ^XZ$<@ 5sșKޏjtX0̾-mrٓp}.>=eh-kNaTv(MZsZL -=]kJϿ2i) owB(Xq/fl&&En]Y(eJYᰧjų(KnFuW! b?]7LJ!RbH(! =mscutͯz@;`'gŬ|aq+Dxc)X.hh7RMo1k%m9$?]Ḑ9DBdXoSK=- &Zc8hL8BƶK7p#c_ ]2$3ߞUt8bxcoYg=$W`cJ5x袿}X%$_m!Ḧ<6D`IF7k@{x~D@LJ|LW@-`Ytd޳Jo"vrb-MsYtɁm7k܈l9OKX/pAUqb٩({+M0*a~0$jHgCnWwdD 3Gt {G4myxqpaANp޳[CF:tcU/)M֨Y4C/@d 1+㡼 7ç9$#Cškm.OԋLUȷ !` _H$78ЏG$9 O1!LEKD!>Rv͔uNQ/ES/NX-:q'k/4t><:wXItFw%88 ݌1ˏtXM9Ӈh.tEXxKu65y#"}:ERkuU&eO Jaӑ~b(8g@  z"I<;A:L(|UDn^!k{ Mj&ZLC&}rZWq%}\r-mzNȎ>H&:<#o8{1vg9~nvg#mv^rwݻ4#NQ8>VC^<5;PŶ SZpqɽ(ЍN\|t Ft]40F;]n3w ,GGwv,io_8 EYˆg@( Y0Bf .?u./wnI0B9Ay\*5P[aJ6(SxUۜ|H~D>FU8/Y娌 a^bæZ`W X$XX  }`^\ԁ BMLm"h ʏ-]yclǮQV(<#|]XʦK\mrX|G@r+2Y>v,E~]X1OK5,HU=LSH\vU y[յ 6w[_M *'~Xy _X:zY57~0J@iY oNCadmet?՞76QUZE=ٺƹ5dys*qU E˃K6--}U(e=UK 8ͳQ2fc0X$dJ"@rK%%6 $ 0:3/s p~)蹪_&]my&4pTCG(,I[:V$5;$|i[7ۿ`ݝ [>aVbWP*`!#^EiZvꊤdkgQ#tQBơHR$WcvPГP\7*\.:1#98݁$B8QL9~ؿ(A LKM98o3N,&Z_#tF)7Q0}o"L2Cݭ#~B};'w!Ȃ/>IXVP67( [ǎWPr̋1zg%c1Y\nkzJe ]˱s^gW@-uM'r42{oƝbVMي1:0Ū/SW/vWC8E!)+?D,6Ȥr+f vװO\7Ȋ-_r|J&n)S\xubGW?4nW lɈ*M1p? EG}.g+(müfIH_E㽰 ÃẅE|56%Fȭ\SS2:\.Cx0z59 #,zPgs@Bh!3h~Z!H gEv٘K]ڔ!' wAa ̀M%ZscCt\[ߛژhߚjA邰! #U큏۔z17}pc\eo7ox /2;{USu3[ YB w >Sワh(]ܘr0٘l\C=`Pڍ91A^-IKà~DR^ ZO]A ձ/X[̅& >OT[Tf,r77+Zi17XF²ǟZQ3/~vV͹%Yt58t[P#1f9 ,u4ZA,u6f>CN! C_U7 㺯SI /?E&޶']f[QeKAڊ1Ue*b6^s)rZ'd孙#ԏ ďh4 3NwA>rrLёzdgg6]?Νm:uESx̲[r[bnt8}j޸1)pm;t2m)\y >8#Dg-Fslv0!mr+"3"6>+e]W^E ڐ4;jˉ0!Ԑ5tWa?FFhgV/PǴ~sp{ cEI P2ƾ-ϊM~WDb׶6^7Ad 34qr{$=Qf_ИgD+PH5cužCj#]UT =۱tpBG3A:cmy<"ڐu-7'C>JUw!}m!!#8UNT79>̻Y g B t_$xO%O> gsY9}\ądˋo=H|>[:,>s;-Pp Z+ߔQ_ uY4;ܪn&%J78lb5-ͦaJ.w7ƽc W'YG)cs֢\ښc ~{hPD)Jh̨?YC'ǀ"ƻ{GB\Z#goj lJɟX xm J?Z0$W@9S0"8Ċ1Ns$#`#$|5WXj"HHTͭ`}J\Bb)@^@BbND9̔2:&UF~@.k\WJ0AʙGfNSGT7q¬8Q  bQiKT֚a=xJ&( [@^K,lq\ yG)p FP#n!#j)LEkdx3XCrEPO.)49 e]s>?Oh2ȕ8B)񊂍(5}%6ݧC x_ᱩr+(dmM2+/B٭9nyT $e[dDR˻l7 *2:^ȴ c3ܟlЄ ]-ߚY=.HTqV갰GO5=Zt ?+{OY "'@et >v$?hEՖ`%y?qI[/vU=oMZxygdf{r֗x`,qZ"qW6 EU`ZڸS_gܢcd*\Ͳ|x㿰Êt1#ͣeS?dUюQi`qκ|$=$qrs.9M5pQ<ݙ$cYE Bo?A aA*.Q*%^by 7voZK/e)z9ƘtfPDLx־kTܷ+˙+ qLkDƝ/M|5mbQzbp(sӆ ]jf \ Ehԙ=iVR*b^|ʸkIݸnq`iXy4; (k0n'2-8hNkC6" ɴjEM[\〾& 0̌ Mfm߶R.'`$Q8[㲋$I_yEwXV+|&QË.]U97 J@;lݡbR7_zIX!WlVR:Lf75M6x{Va XmyF@]r (9hWĆvژŌb/1WND}ȑZ3*& ާgܞ)ˆIA>}%nɐsG "NԯxY8! saTjy!`~йќģF/Zle,FM{\[`Xvt,Y?2Qx|m GY!FՂ}`= հGL%_PVkZfQ^ .Eo6<ONP ^"Xu=(|<3U).^git|rT`>ڊ{k"ed y.Dg:!;ǎ+l T Q{<hz˖zVِ vuk LHn}pKM#oeЛ3G0Q;[Ü֘h&8kaijxcxQN{k*9p#J9.by=C)AvE;*,* clF_rSR.>|"|>iA<# F3 YUW6EIjWa:9p.Y7Rz\_ -`23Еp_<*l*C~'+vDJONKݭ!,RգaB^wY>LbJ1,'E>M/;+TmوQ9}Ѱ2 q񉶃NjlsvxdIR#8o}+9*QΕ~a5EoX[&8V*De1䤼H[,^l.`{@%[:˜B\%Y ¶9>@v#ΎXgK m=zp+;g\c E&*:Oz!k6|=}qnr˼'1tp#|qg[ҁ(fȠD3(GbiZhqZE ƺлEMqvE˚=.-Өw)65d,Eu\ ;!^2 j@Vۖ} S*֯Ux4pRdQFXjx6PGr+A,/TM H1ݾ)骍h$q@:hgo . 0Զ;D= w=3'oYV0(xbQ4,ᶂSoZ^5t)C ƒL&꺳H?:cU;9 OgOl[E/9+;Zvt 1bz]kXccC?y>7 z={t~+I*h\k, Yì~xf#_< oYES&0<2-IKdAqSK_l)S(a~A"#nxXdݤCX5]LX\Q7 |ƓFXz||K 'Uݲb,Čŋ%HHU"ykKڏB),M8iz.F _AN(dwhG#w#(xswR-! ğXK~uV׬S1颺A'd"C$M`l$R 6kdj'*"GM%<6hPlDO U aK17[!jtOgwMp *1#=mVjX,ϯJG&LAc%h- ǫ5 cqao {)Vbp4d.Nڶ}dKL++r=y_8˫4q-WC4@𻰉qy7i5P*eU޿d3ֳat+hX As`x5gh\V+=2 .:pMiC-Ȓ9ZZZ;zg]>>5VJ5b;_m)N.)ܷW[RtlW(gPyҺhFEW,j"6ؔ<nD PDRspRl𭋸"cOs. =%}i *%]Y %tU10p4;-eeS8`z;`urz}h$M(~ȣz ȟ]z ~ &®a{r. J|d5]i'Gr[&W;$>rY%Biu[ݒVs! \aGtx|Nz,s"L?Lg]N4&ӑM#Ą fRb>/THke8m}vDkƊ q&LcAt`JezB.!)+f8tc[ֵU2CقԐM!/qG'cS%xԤa\ H?*P3&X5z:ֶST5ųCANͰ ET%)*P*F7/T7XYTʰ62ڡnr+JNJz+&XlXc7jYi`0{#w}!d-[>?ȘMc9,2/cFy1*d>Xd-@)Fğ^e=а!w پWr Zk@rp`B,Rt2;HߔR_[ꇍBS@=0+i &)|'̅T^X;=E4kjo `=7\T^['O8h_+ƽ:H\L9@~yԸ'~nh{ 4Yָ݋<:`щVuYZoSUqzdUct! 7R$bYmd&;\@~JZi?=Es `;KB@TBܝWV۴DN?PU;^&k!ýPkl:ޤ0e&q3Qk."$`rx=G҆FFHmq]2u4՞ ؼ(Е‡pcJM4|P^l7X-m[`g嶇kcqxvfHƊ3j5;2J{>pWdMv4ث,s!=Έ|g}&.XBs suhxZ{3밲ڊ|YԳ,0 /d )K&';; s̼[Bb%y4&e:)Ep&Bȕy XBCci⯧}/x)MWLln ra`yhg_V5n̒h;U 9z*"427n{\vV”U ^b$ɦD۲+ BU(<9Po&{q;dLjV5H:cT{ cfr} P Z c6g\h%JjejFdBt}|O2PV2.dh aMȑYJxyhʜ6͉mVU&e7eͤa$6ogj$B2~,q ~!Q{t*=ɈBqFu3 ]aSjyTGN,]s:5wg0v zgF ]r23>ozMRA77 g렰dZ+ -gױ<5KS<>;vYf` 71'pm .$XuBZsF_~i-Z:haJ11 &\gnM*}.%=s!Ew~eK.vR$+~BPGue0o@pC)^x}wJKU!,J U0/4] 1ͨ1][5a[kfx?DZݏX vUb9C((\ d+r nr:4`7&l0qCs~,0[؝*J ) 7UӢ.4"\͗ m9*aďF)8 Xئ^ 뮯bjE9`j,M( \? svgGlZY⻟j|3N,5Fjil8N;+IzNGHc֬bHAGρ@,l378a[)WxJvv!XgYOeg?wڌ' iZ$|gEۓ~ dmPed ce͍\ $or"~u%c'_}qV}Z#%Zj1sKmn!ތȽdͬX|4ᷰFdzT<xL{u7{We0@R;YuۛL{j6^P,ܪ=Ơ>${ =̪VW꒯^LKlS%ZTX:(2Ͷ1JOٳcBdtاxT/øzwS0KOPа,sYjY\D5,l<)о^ !}D`q+ځY>Ō>3.Hx زN$u^uT~?t.3uˆuv u``( P)2_@@ ?[~iol< %z*Fdlӎ*ꐈ}| ;֨,u*`{U84S[~ Kf)NC0jGD4^HvjA3Ui փdmHU`DJj\3i<#p 4dӥ" +2v%pű%IRU/5ћ3E&X(`N?HxjjNoBYi(Pe2CuSN+1APdcI´50}̜ҕ8'{_6-Wq t1phbwNJHJ?481uvF-if2F^a`+$Ë5a$`"e>R [F1|ɋb vk߳ԟLB5K9f]~KIɇ!=NIGH^nTi=K@9 ZiX}CbNs:[ BźL[07w:7ɨPj3[-Y0Z{fAVѽ}U7;"*Ϡ g#{IE;3OہdD/FE1>~;]C;xgC ^ !=[#Ե'2`$ČO٫.eu /uD֪B%H}wxO@Y !.\w }]ƠV;T&gdЇ)8kEݞ _=!6Ƞ 1pO:iyKߥ E+@ {xN([gnS_Ȝdj:ULk~Px]z^oLcq/s(z6$EGgd,>(i9!2θVo&-+¬.莭VŮJ%R&Ђ]ܿCLFlYHKǪ۞1=h!o)+ɺ啝0(j.g_n\~7‹Mr+~L0='Z[: #%vn51C2Ip u7qIݵ>a4"5T]|(<`֜[Ƕ>DP29]fhx#P0"&PkNPnp](@A;( s)/VR|?]oSMy£,V,R9tjQb#FVs=o|֮aF")NiG AX # nY\N+pjUsBU~셧]QD<>GQ/4/9GBHcV3I O 4.)*u%"0VZsYY-]U,a&ݻ*>~',eį,x%;|?k{!nD.`J? EЋV-?QujJp&b e~Ro WӍW FƫUl]ZJ/Jԅtaϫאa2scY8_zg~"@ V}tݐFp[:IMlOR.i٦xB"$ZBjej遹g fhM~^_s D @-#ijzߢ;2'0,/+>i-aoDuğR<0"M.NBZ۩O,r) B 8.~mJ[ 5= $*S%[.߄̣89g ժ Ng8uyl\]oVJ]Z{~pH!m۾ Zj5/x$ֻ} p|1u-6nrύ't f%f5V, NQp1U JcY|n幭-q̨r}hɼo@% LmS\l0@eplWc$5)kk>hqOg bHϋx9pWV?C?]\{.*d P%YSIǺiFq>yHVG]pv|Yd!~^)C.sh*)h@.=eŌ~G_6rt"]F 5tўTk )CB$zUrʱ|/j/S2C!|uKwmx590*nH} 5̵GZ_b.aҟcZ=|rH.#DUXF(l_0P1nOcyأ0J(F}H%隙T#,(z [?V5pvj8/5^]~efRH)bue ?}28LʔmϩCE (>M/T:g,zq}H 9=Y֥[sψw[0ϋp 7y"\Q/|ޗ\0Dz75jiqel9aH(u{P"ի7-za~Sepݘ1dR R'F4n*t[o85Aݭ&y<+cjx=.-Xf' >i7bmBPE_Z4K_gC ӡև88쳄AanmOa֥Om"DD6 D8奨7grik%Qŗ+\poISu!3,V/l\/(%%r]F  ?oi>bT0I<+F >^uJ9=leBIwͰ?R ዞ#6BC|d..cȮ%bqϠ7nUNqߟx"('y+<n9S/cq%2%`^$A=.>"r?Aj33#C0kOw7O;䙼M'xe[ǞNG t~?#m[Dvo@b!EG z[*!c|!墹GFJ!*]1Bߞ\Hi;[4_Q2 ?B| &@u=}:lU z)⩺UuYCNar!oz*?03"E$CJ_!+*{ӟB:I&qϑm8 &Be*4;K}.{%uQfn[-N jgm;G"s06zއ8n&ʓlJ8TY.*ECfQDdMVT?L:"YtQ&-)>yjiF\%p0TWziC9z<āKq}Ut1z];3YC߶.۝_SJ-G_4aI?yZj}8؇dp ɀmӿLg!Yf(W?VeHczyѼ2 Xf~oNWA}U((F&Y= ϟ ̀6IvAe"A8E8b~HC֣߭FR9#3dcWAҍy^ 1-AV{ΓKhw[7=7Q1uzH߾;eϏ\6+Y߫T I\_(R=N=e`Ij =b?>Ȋ{=kػD񽔎DR9n~uN}Wܻ(>aҜ`ݔY;iP 9~,u ͨE9dJ<:hچT&W#>8دj6s;7( LjB8Ɣ'_{/UcH"t{>&ҨAޡ) p̙\u!:YF(S=p^k9(&$@%u[M6*~#_:aqJ1P"seS : So7άٗ#f XgEUȲ'ۉ֫:Sxh`dM_.:.#|C)HU5ښ; WTugļ>Aw:Ff2s*/߻J ,O\Jf5!xPegʼn= ]߂wNZ5q9l]& d&l^lZ <jmC^mb0 u)0C.1)/e1C9Xߢ~y0{aOO[Ջ<͇bag?DaP `B]썚'"Tv12jy:njXK_Ԣ4Ai%o1pLqà"Eāyܻ,P`| n2)?TT' EG3F{q%QA" !D;poӿ{b)É'Fj7ݛq53:_1*5 A2!5~aˍ8JLJq_x.EiBJИN|  KOW&h5M4F'Ćx$y1,xN"p Ml}FExd2-vy4޽{.;o]Qx(^l?Nحk2? |!K|77mVFdM[]. YP݂W'M1gXwד:N_ t4A$wL,{ YvR ?ytA^1ww9V')S}k޾MHI#htoP\HS2׊i7g CC`p? K ?MjgGGa>%~7 3a5Y1',-["_Ņ.EVfo1ruJvuX%5?;ß#4$TLsiGRSta7KB2 ~[Nc*\LhqME]u{УT4 I ǯJ&_*_\ŦNm0:_D8V JACYq =}L1C9QD«*\8!e֠vHV@U; Jd}7~ 8P4:;'%^ES9PY"*@ˈ(/̏$`s-/"9g _*5VY +lTY§:fĸت4O.ۄGI~VQk_QO}f,ycWENܥr~^B__~z7 LwZ1FJžڂF!!E[c^XLdr+#.oPT+9~YJ1 䏏Mf{Ր0/5 !-7 `)0ܘPU*DHU MZ;τ;# .(^HU) esxZAGBƧq~+޵hvbS9|+lY⿀]<]pG.Ix> )K^]RFrSy6c*׏VnчXJ>f5  _}"kX{Vh8wuDW9ȵ#U0dTp%l@A&0Z r2gAhBD5Ӱ=sT[>%ηP"~H<\:LRU"%5-4ruPL X .gvǖ0N0F4&7l1ˠ)Y!TS}"z41&p2·چ qvʃzyaEڋO /͌@98iжr6D|-atAm4X3wWDx\~S@ W&5DOA3`pI)`_VDɀ@hW9tEsYB}dTM0lFq=)HjTB#Paf+#Z~=)`3b}{RKaDQe<}0"VOh^kP>=)KwbbXm_ x?A[&;k+57YAIVQ[˖Ių)q\En[Im^wT$7 ;:y@턡efezjĆɹ5.rgoW`Yyk.qN^qI$ߑRDEКn Pԝvgw<01XӪT&a$NLJ/%=B!R&lW@hOAuőnjbZ0.1>[9:l*pS+יߟVK5@BPW9uCVwgsNn5c`ѱЍ/spk !lkM`M3MRJb_9K\/4\D8,10B]!S˅Ysc6sPPl- P9!yylZ* 綣h)RV X 2O/A՜P /bN*h:MDo 2`Q]vFUNxJt +&T8B!l@npҚHtj0+FRBb-Q.3D"l dwyw3CR,8U0C2ƍ4)2\f,?$mm G]>i(.L1_i|K,7)NNughZUy zB-lg5%qzZQ|= KΣ]Z+ktssP5mX&un+fGYZhr(:17(U|ۓ}Xƙ`*ue_,Yo631YxV&7ۣ֮&|kz]NzB(.jގVs#S_!_~`meΙ"Y'Jw4 @1Ծ^"zK.n?XFEl%/_&'AZ$ɳ%:Ky*fM^z尡jHE0PWq?'&n$HyP?/\utL36KjX~UFj&UH4{lg n FR ͦW|]kd/' -k' Y#jX^(pǰ) =P}C=yO 0p{Z2&yL;!SpBb}307B|)ĽV B V;"ߩDSSkW* :#"܋նGgbWV͑"Ƨ$C9dUO]`V7W~tΐ-&\E5]Ў #+*k@0Xv|qm>b_糼PG@8 (+¼/Pmmh&Y('S]gs(*[IFF߷=a7G'%p'u(,0!և2#<óq aZDLe? 4Ҧ6P ڣHo5w]_bVEx@Oi3Dl~FȇHXl*AxJm鳡#6]ko|RB|, k:x0YlҚx"^ I|i ,wxpJOFQ"0٭6iw-5-OǺC'vxo)d_Йg 38[Qi36(QYuq+Ӌ&5gȭօ*"}HRLDa\eb85g/x4;_|ႎED[1]3_h^.zŪ\BgQ7' `݊|k\LscFR)8e)j.*WVU!:AG g?]./[:⬠=l o#Y@%*Ubw3GE/9L9vax8)v'pm41K=OݾpXs-l#ʵ_3g$F@CjwQ c0327\`8/Xw~Ya?43B>5HP8 UiߛO \Pl5$ N}GBZgЪ ^x#ՄiJ4[+PtYl(  i׭Mʬa5H<`<$ڈHKInȯ;H]c_3{ ^h0ZbƳg AVt{5^7Q0uW;b N`9.m/r;\շ$eL_MW7BXif#Ȫ5丕U,4 k0x#!gZ02_ dr#*?͝5eǬί r*ZMja-C$XL0A0pH^ 8*Y@ryWI[e{KTA`r&6%ts=kbŏ'GT9x:vB| _=T8ʛBr5BFi* % Ї=̱vKF vLgpξr1I̮磻 "5=>gy lE&gF87os<$PzM7'+d=1'ԝ >aإ:0~V f7WIڈ+Vnl恺d*PSZO]'1O ds" dgMލ(ѻ>ݦab_>.e^txK2LaՋe)L݉"vhj?$ iC?3oDЉJۘڊ0=Yͽ`k糜PvZz`D, ^. @k9!4v'K*#`9oJWҭ:ctK*B?8Tv7qnPBUu}*7 /j|uL͸FPCw7bJT Y3p)J1b35"2l/qobU~Sc zU'<f&2g(Y]FmHRNZB^e,xb qID?*w!iXot1!ZtprlXYFRO C*p|ec[(a_ yw\KF:l?duhHFJ;u8k$Vk}l&,H2`Ye1J;9yQnO&1=9/3ȿPGnGZ\ M%bzޣ/ݭOQ|Y&߾XƕGL3 |l&m7ʊƊMǯ.TRXU%a㠼F+<8hϨ =c@~ƺX?5?=t[3~Š+ҿ^."n7r qI98pB .X!:~nF&WK<ʑbkY$D+'7"eDsbS[${jw'AkHMD%'tLVnZ?@XH9s\/4+q2ɯi~l v#S#Pd-o<&vP0B v*U^ u:,I6#c[nE'*zl@ݓ)nGk4Z[|ʘX޾FUCnjk2S52h P\`Gvu񪭱T@SVb_ѶF訊êk @JN8NAvN62o$Y#B.䌔(5ILt斂A[3 -e^F%P P9x+yXֹf҆RoG91m<5j%X8P0 G02pNbeZGMcye3]#u,5mMzfYZA7kG8+exU>+vT`-{)Ñ*W/Sp(g~fe&9g)7" ?:EMϤm"O_ы`{k#)6(He+#*ӟ4p-^Xyנ.M w6T┉y",/^gs^EFU>"Od6feUb:ٌѵxp?ÇHf} ea~%&o= [EN3n:2d HXv&[{sR. ļ= $?hk$B0W-xXEZNo-r/AVRj&H72kG+ţm PdxVchz]Q1ɵi"\i|Ͱm|š f0! "ʒVr(׻%ziEnL_%yxAv ]r[mah*J`(eI[#!NnSG6G-+2C_zh_W`6ǁm<5\4]Rxu*?SWq34<ޱn/i%Enbc!t,.Ϗ n ѕ$rr2s4˄9!BҫnIuJ-3> ❺D& ! OZ4a+oRK}"r?[~qJ$t. 6)H>}|/X /\0GO 䪜l8hGE%!8!e}jFu.0;^aEV`Є(DI3yjBiӭ~J_Ҋ ?~$ ձd}Vu'NohOʹ:FfOv#lp@-I:Uk?,6*?MO~crum"?<ю4WzNcL|\78<ڵa:u .:^Fmn (Uwxoh/֗pdbҭ5W=ŒBfMs{b^;F]XH%C҂89.+7E}R{kj`c6mm E[~Fe6ד^YeP߷ 1 hoB|hW|`*O>">b1Ȼß<ÿ"t]$gڸ)[)jxxn?c|N:O9W5$I{3F_ dI ]k/}LkE] 'NBU,P|@Z2;sR:6-<K5JHܺ` yG|ETӥf~F(L=&DS0V_QG4+{zE\!ѰfGz᧨O@zƊa)ƛo0'V1[<yƋ\PբƙJwyh.Vcnv+4iyV'XC'G*-L(ޱ! $(̰O*Iԇd=&e\>|qd ݾJF8Hbg<9vp$= OHvlagS4T?MdSCkt>j;64l)T:S !IU-E#gᄗ [/E+So_7ܗETM1B6S#XzFtVk =%modӀ2@NjV ]fε#ƖNrŦXQƐd>Qջ{8W㏜6+@Obn1uBd:27#fJ+˦+zV//[iT ʊ"&(er=,D #ݛd`zϾހP\G1r-Nn[#K.|MFO8U]D 4WBٮ<zTDhu4[ ~{d>я!=7nv1Ք P0zn(ECKͽd⥏c#3 uVc&svƉ(ŋ8D`/XqDcQhr6;;g**?'cT>WJ&YgYOŷɁl` jnʼnZ]Ǵ^{eOI|B0;S4;y_1H 1 Sdi:lYY@.O z9|28%| r3>+car,\3p,6;m]f*P"Bd>ZE.uZj4zSSJj6d!v[.Df'u6K4̝Ԥ=Uw`'XO8bcȪ0Pv z.$㩪g"o Hx?Ȱ"v ?|J3QxX=uV{~=I%|ڙUu/D?1cmxJwΩj }ƞ㭃1۸!H-?a`S (& Z,Sĺ&Ք/l~(/1eiN>gW>"SnsreXڊ@A=&9JIJA5OnŽp^k#8~9z9Pޚ&Pm`!bv *l6(-A)5*FwڀۭG#o9u%Y7Y_Īf!`WQEhK2M歝uOiḡ*1h ʺ7L<s]G`˿KJSgVC)T ?E-뮇\BC7?$>;En݉ƷQA~l\Õ,'&I߯"~\DyFlj`!InЙ5jRtil](d{pTHLNtmX u,{Bb<2ZR:V]^K.r=RO?}$$y#etda"+(At?5FI,کkcR]0b (+{T9R$KHa4%qcӕ7I7>+fyX3N ]d9r300-&I1΢ \V42L1^rޅ!B]o_:'Rj 8mMf1G%LI-"dԃnk>By^|mvrh3dh'8nk̙goe]{o^sbIf7nنyc0OONFbmUYI$"V@:[8&4$(;Пad8d i[̦pZ ~q@napMǑu( f8 .ɀ~avsc+@FDB?7,LED?2x-{t CISg[FH|_jʾRgJ<&5_NBn|YkXP$ѭwMK/˾ 5DuVa^|Xl  VuU4f$;~6Bb?f\PJH֪.W]gg#@cRG\"ÐS5jk)նg%XI ;*xG6W?j$ *沒 R9ٓkL\]3tNt^q}RA}ڙ%o-3ckhI6w_*,E<N>sL#֟fB$CklC~0*fY\Mdz̿p8`[6((g_vh([& >Fבu&VXI 5 G^0Z%> PDl +Kl/M}AL5 ^M<J3H4,ş.jrQ V:):2)JѸ&x¿_oEHFt|1 S/Qiۨ%Dar *Y"?NLj'CyK? wnmIxm32Y޾㩾̼Ml^Kw2/0>=q_foOGRiFisLt7p: /dш`vQi ħu(/PK2^Q~)R`;ֹ<,rM4!=a&!G$]㰼F7o P:ߵPmȒDy3J)BS]2bIx\BL7QiȉPHj-ק\+).cTaRA9>)0B.MC֒TB7~#x_'JGd["˟vc5>ٗ=>{ӹ3=谢s ?&XRCB  z)2s>@qB`PcRX:Ĥn 4!kc8F -LJ Zyv╥bj3xzF{{!h#7}@Q:.X(V5ףO? Aa;HKit ^Fv6xi EA@3J;[>T X2IJ$_Vh2! .C[LEA6&7E`?in=?0ϓ6|܎dd[B~~ 퀷eꏢ5 lAwlB0;a7$F BWڮ&z 3:`Pl3V1BzLeթ-s#@m/1ʆgkD E8ʴvڲ@eGM)Py㯩յs0DMv/&,\ ZN#w2vuBh{j7&)³:kAEKcsS=ոW# _pU9DD+G^rpRA@lze%-^݅WSǫP[>g j4,@ >.UǘAۉrRD8z} VkRpK "w%jDwQ*<{YvjET/8|COC`b驻> `i<.eI<҇:96C}(3D#'Ev>87>ӄZn \T[]  a|\d0e,+r0OԢ[u̜(&nw|3ꊹRIaз&5qh8JIl^[:E%7> ..6bl'T'pMV}%Ĝ݉1L7l2 )?Y%OGj*zMGB"3IuEdJ$Yq*2N@ Ƒ:g7W߻Cٚ:bКe6 O]z8 &Lo Y<a;C)<o,abqsDPTXs ̢y Csʸ9?u'uͳfMC˲wZ G6ڏwϫbs쁶70A9umxXohGj?8X#OO>pe1kx;]t'zA=ÁU+|Fdtϛz!Bzp9 D߀-L enI\bQb{YY=#sb]'o"ԣYVHaoڟ_)GgN^$z/6ɥ-FR`,P 3c<úŮfSH>Ni-_&wD2Xtv(`?0/&5Ú9JLG«P7iaa.9܈>3 eTp=VK S$X8e ?q+ȟQ Ygm>Ԋ$0*}N7翭5/"`1muI_rsaH5 )=+ueCߒU̫M%ޏ(2:5=0zOtB ؛Ѽe#=1V>a)뙔#vymg/x IP-V[>=3N+Ĩug@Xs'3ˢV]XaV,Y84@{ۺ +7 m~- jDԶ*םKxl^Svt[ȫ)zd Xa K4bЏ_r|$ uH_}*4 ~ qlτt7+$X.ZFnƂ:"2и-6X$G3r+gHn6[tкn?ǢD:yd|!?3=,2r\fdm:K@T* qӯS~{BNyUkdIy%ǾKУ{:"ΓƞrQ ]ysĿs\B;:n ,yi?7Ol-^] Zlc,y.1hzM&6b~r$Ճ1,1TnKi.Rvlzؠ)¨^; &@YXwEM\] 8+_:.ͳ: 9OQbz \g5%/43in4ʭ"f:I6T^+ $Wɫ'9y_?1I0 B` >gj?D}.׌9]mQ ]r &IH/k= <ˆ^'va vv n|'ׄn}zMih"ZzJb}>B)TPu~.Y=㦘D$/f:C?;#mռmݴZ|'G՘6In1)y[`~nhW5yW,Gr凇%NͩgU ~r6c~)0rC<&hΨ&Ch`h8)f\-Ԁ-eA&\ڴ 'Q"8GÛ-eE=":醠jPCjrG]>6'0dvn{鉮|M9zԄ5zhws b# Y 5K1ᄑg(>gB>S khOx'!FOi,gfԆڒ^YXC^B R0S $X#85Xd('~@g`*=7}ie ]a^&Kd4R';l=+=A( 7@.XfAH}(0l Nv`Ac:2+zN@4ph*C9D;k6ZYѪҞr9QD~ 4`O^\zo N {ZM^rGZV1RR7hO%%ƫ݄",)$G| BaXzJODѽ{T EyN1nDyݍƂD*N:3/?]Euǿj^Qp3Gt7t+o4OC̮WL`QS Tn+18NNf*EXyREY2]t$UWgDVCUkP>dV̎>^.9(Vv2 #FPp'0#R|\Ab/=oNM̖&݌ LQF;>4WAɀq;\'."%Yh3Vw%9q::ޚFZX֏{TA[oΦVlN=Z7݌BY1{ˁ4(83ҞaQR[M DcSOYYK-X||t*Q>[_3**t`}⹆Ɲ( ϰo7WX m9黈4n36BkNg$2:ЬOk1?!9x|("S/;s6TGx{E#G@MVrxGL<,5;` X~#ѓͮvqNUgs?S*uJQoV[VO6nبV87eP|Aa ` x&nɲCm˥ :I7Ν6ӽ 3n)P_,'fIO$oz=CbnupzF]+uB] b@!r/4lu݄J%[buAϛ EڿJva6. $=`O[KYJXcG!lg9El0eNIm^ggƁъՎYbt26jh)ȼO_^,T@! @1vyZe{)\]|~- Tx'>DR(k( JS!8)c| ^<^޹#,_jMjN+ڨbVKs7_!8ڋCayg|n@ş?ktۼ_C䇻-m+ DO{AJ_m.-iw~z/xs8)Z to dN1pll+TG!ńH2 ξ `,Hrׯw@~tWHxT9˳+Ms?tDu9ݭ 5UVu-ЙƮh .@FmUR, 'G͒LJִ7E_nb9ZY{c;k+Q:WlwrZ+ /iyrn(RAٞO#M6ֶD06R96@u9zP<Le% $V!S =몴": BDpP2(+ƐH yXJIӒBs"g䢹@4Z8_Z ȃN0i:mJXcXewi7p+0` ^ecta;u==sS :ջ5G'6I )%Lp4ߢ,¼jo@6N~ S~|a_S⡸=*-]8L䡖doVLRW,SSToD#x{BBD6!FΑ|m~kYzjv,8{T %Wr3Pjjn.2_z<wDH>}ϵl;sYi _Z\BC ޴ /QItʒ=p2K?[bX~g?Pּ؋VF3VCE2ų%Jzh!H,~mkVm}SS4O)j8+S}ˎ**܄e4Se" vռB7N!NPtUvnz]uyIwHpVS )c۝wOiԀV31U-=F  PiOǮ2òRPX2x0ɬGыds P=|0RW 'XHߖHAɃY2@CZ` != үcF`5̖(-` mZb׺稇VÔC8cM nCIzM]zUT_ e6‚Uݛ&QZX\%pैC|}U!p%pc$9^hﴍ{_<c&%ǖőG[pI;$R_!6UTWTCmop\k.1չ^\L VaC9e!QY{+/E$2- "/5"ج7`q:3C ~NiY{Mz__v[etxPn=7XoQ2ۅBt Zr3$y{ai,j[ (\7pesph; [#}cqv(O'5?V/i_HWomkg/^".u )4旰}#Ydyk9HI7CE wHKM n3}. 52y8o=0O*̔fAV.=x)AsM}(6zY_Jr=[VoTUm(Rag7T^ɓAnd ai !l, MǓ!*NJt; Yمn]Ƣr6B8\ᶱR$h9ZZ/gm,CvB< ݁+y4M;|[LA<}T"">s@jT$#W6FHu \)_njOZR+i ([\jr* ӂ-߿k2]gƮHgG;c05-X+cA<S5 "\Co -8H4<oO\9ji軖;M3 k#B+$!g`W顥ɤ evqRCJ.KI3f~OdnXSAnL$ [*1qHy$ɪ2v#Y~4',DaAz /# =Z./=9Y?F.Oء]5 "]oʇt8I,i76Tu3x']x55ݐ;&+,ʑ|v! ܛr.ˤ:J8,G8k[C!KJx ?hBvEQ^@¤1/^v8[R` {VөʞR$;m¥yQl:Gx\Uu}Y0a.A$l=Y /T cmr [R ^j&ۋVTԙ#5 8ڮFe 6{  gi+2B9ZoN'@"N *Q; +eZ 蚫 K]ib7ÏOr͵8?1K\`[;0H5,94LǔKVsιv1G{1aw6*mU9JxVics -n )+L4w# a`t*{Wj/Z7rD E7)2jfثܳHS7ڟ7_2fNn]=Õ?e+ԭ<"!,-PuvMt]'.o'rPփ͇p텋ӣڒ MQ3—ID8eT["g-^R@bw{e2>'Ɲ•'QfC_ѭ/'ry&a7HL{3)g)._@dUÌ}Q>Qqt)Di^ D~!22A~P 5 "<<~_f@ˣdșf=L{-ɾ >`u+3ϻ `\%<>Gr'=?=;zHX [Ds D9n0=:uIS()쯹k5-B1ͿƒHmTmjeVMޘT&[Ԗ(ScsWap#-񍖞 zH @, Qf.#'bt ۋ׌V-Twgo~~CZ=\7&|!6B&1 Ap(LAlR[? хL%GJȨqeuc*Ÿ(Z/Ocіc؉ jPlMC%jO9b눝.dsY`51KLi5Hִxv2~ߝ\h?iYIݠr3!N~F)G;1 ,ǏarKL) ?[P :|AhhzT4;"H+b;d*1;r|޼[aKЗa2Rh8b ,tmkÓ}Ę36AwU:| !ђELX-ЬZ cg?^ާo7R˷&qv}LIS@\dUT-š|nxǠ4psX޽$ASc55Çukg:2|~Pk"똍f V ZHug‡ݒf0,XRNz{839d6+XTnhdأc-C <^SQ6ˠLBl.W}ϏPFf~gqR7uwdQUaTGC>{G #rG {][.K۫$E|uDAd*]1kԯzw%*l4LqH+0 niCyӰ͑Z֯RT%c0 Yt#<c!R3N 0]OW\A-_BUG!W~vEc3*דk d/KYbt ˪fڗcc EnRTnx R6-E~xIFHDvc =dIO5gȇBnqƭg^ 粪q}vT`CvĄZewi˂:-^!П0-(7XIJNB݌]:bLF}s0:j"wA(;m+CTogY6#2:%Ou^\?壡j %gyL('Hqe}^ˍWzI1ޓr$hum*0HPK,F\ L^+G&xy3y#z}q:C+?N ASSV[1$KsEa.>Gs+xVq*0W?LF@+<'x$*o Ʒ7_ *Ehʓ; &Fu _y@|ӍhIU^3K"t;%'I J縋/CN,O”Tw Sc˹: Lq.\#TQ/}&Ag |#;|9ˮBEJJ!,:((Mv̀ʙ*h_2[.fḰ T1| ,6]Ghk+0I"% b W7ݩhԻH̕<^vQ!?m'j퍷l ({(2$ӧvHqig,8‰%WaUJڥ`Pk@Ӌ+ Zj3`h9O z"r+eQ6}Fě!x~ϴ`]U!:vhLЋU7_Oq-_S..:dja -E~tfv\F6}+ߞ*gGth$iꤖwW#Cj'o7܋ 3WzOC"k3QQŭMn{Lnh'uFZ6=v[) YZ5' Oi rTQ2)pD&łƅ[x aK ㋆/8uT4G1h̐ ®;lZ8N a&sYy'%;H?&.b*Ǥ.ZxacMą5ם׋XӜL[B0z2=U.3&\C<͟XQ<5>0Lc+us='̈rmtYSD^ ! *]GMbIψ^<9H|'knnJ\Oyã&T⡗B3/i;HI΀=jNj./H8]uO|A5I\:= xhmQ݉OM RLJ %%.nXk8aA 9@)t)E|)FNVD(eϩ&oPO1y$B+[fzӅg0Dyyפ 8&cs+82<~y٠Yi0(9X[S*Gmt 3m6"cUv 4-eaZ=(<8v ި™Nʒc4CJae(k}wͯ#R!Ndɧ8(R(AjoZ)S'GE -{B<0a69G 5]LT%sG%.m=ZkMcYM?oY/&sZDSUx"J{(x sDh^糪0b8.S!gBLQMz 9t.cKү^~n-xYO9X :hC/EdΉR$]~R$FMm&sk[1|$vlJd382\N~YQA}O[ B26PC uWbchkzXw! 2J5= x*UϰWZ, Y&\HR39.Q{W^R$;(@%}O&;a$x>[S< ]XFD.Iݺwt\Nn8ygbFQ,$<;Kƴ 2[J_:!]C89kDB9չwaw,6D8 F.c]lW gm<kʶ[D-k8SN7HcZk(H6br"hd#L_*K$Qq k-, h26~В?ʁÉ1~<lwL&9⻮[kV򑒠Qe\?+CWn;e) KykJ*Sǁ7KA۰ޚX 'R\y`9f2!1{K < hBA{"(ri5~c8¤2*T)ܴ rH䳫O9h.4N>iYu/Ww0iR#: \#z IR/h3Wa0{7xhވX;ĥ6z- C[ح?C"{Sվ2I "9^IJNreW9J`+R~IsC(E{AT"acL<sd | QH5 hY~6& > _=-JDVe k@X~4P;G Î&g+dҀ GkhHP- "S?7L|[|I 7sdm0o>#- %^& Dݎ)- &/)ak*}Hu&0JCcTmZң;ӏ'7uJ~ dłsJ;"G#bh}ٻSN`:a -ֆ-Qz݇oxS@#;Zg*d>>`0!>PF58 ZF!!P/Gu;OFg+2s.a+c9V&}M|(f9pmQs8Cx3jZ[?Lߗ5V!O@KޕʤnE0 )"+M@K|VC[h9)yZ)?.2vaaw95&Ab9Ì/.@ s61Y]{KNN]㬭SMmvI]+>O|m2+(#0FxGѴkxJTLTtF;19WePA+uYDlAdA*3}/ #vW;p݌1s0h i2OTVʍ~5_} Jvkֿ; oczK_K S|- |<0ϮdD+Za&O1ׂmoN@!BZHU&vYQ"ltֶ1( ](;)>ORzYPύ3{1,_1Tp},᜘I xֈPhLUp eBG5@h񨺢IU>:gEe/M>Ðގq##gsYH\o6b58ϢRfXۯo]\A~;_aƺvt[jud?۱iǙ}r`:Qsj.I]42}aگd JAtېK#%>VF5{v2!Jf˫C=8[I[e( r9\{N2 ; e/Ӧ}b[> 6coJ~ݡRExH8j֚oD6#h@ *Œ,"4FJh{QW&RU38c"؁2!TPkMhZ-=V5cc5f˦v`N@ Qn\ a9l&&M_N/:z|ʟ^"DAI2޴t֋ DΒaYa OZ +DNJƌe-ӝdOql](=P2|zMp)5QYw HpWsmXz0^Z)'80qj ?#E$`&MQycYG{$~y衫tf|&mGe9h!_O)LPOs !ۇ/d_Źˍ!(\bb<@f.@g $+3"1p5nD+gƣY6,'gHe5YD[WVˏgMG$,"6k9WrvyF֗4< @ 3)7Y6-É !(S2)},_Q.l]|XQ Ef]\,ГZK70Q̣p*R2k~{v,/%<ş`Ϥ 2(n0l@vb'.,:}en5N@^^R[53K!lPB 0*UwAVseܛiA 7.ekg=N{srjk4*ʂpg\x8Jc9 z%wڋz*)^G E(UE/Y U9j$% H  oT+jr"q1c+}wT!%p;RQJ=f !'/wPRE$ #(Mݡ+= IʣcFݥ➥JHCy69Ip;ZC7ί õAz% "1JdחsA$ʹv:#SNb-dJrt 7\ ^),OUKȊSj)LۂJ/qqC͒ӎD,dBvnH\3@\~a0ɞyn.'Ӆ.,{X}wlSSdR匟WF UJdgdfz_& ԧwwY8<Wp/ԀNP3gBUb'z^Y/(7993l_x)S:dE#mtP^Ž}ۢOdH; -UɌ /P$F!< K'v` !QQh6 gXO:0L7 [ȥ{f0wc SEe-7.֊~OC?v{ 7 "[||ӠnA$ʹwkbkN{OE=ͿÕZUyÀ{g1qզ[!U FQܴcBГĚDͳ;U?a2^//po*f5 f|BNey ȃTnVP}A!, 8G~TK~7}OLx3cO:ק>߷=^fV]x}?ś&haXP&ȶ~)"8(Usάй-͐$O?(5x;)E\0Lo\88F4nĩH-9Z٦-: %g \4mL"=B%y5f9g qPYPBjO N)ER_rz0S w@xҮՏ뎼]ڔ0"0Xm/yA|96et.h( 4sWcibHrR15u>;03ԅ)xjpdBm5lsUcՆO*B{w&@4D/c\ÜnSIȚ Y N^\;y5^B~8FM1>*;)庽V$* ;pNkg!:Ѧ KRҡhEpcMYWcBkCtxaEb<},X#>݋;_%w=tF Pa|ٚZCI_Rg [# Y3JGjg4ɧ8s]VOA{%JsLrG&t,C0_r"e3rQ}FMb,#U).T)%&Z3sh,/7wkbP{O "tKi2|A}uC6/.F.s4R#qᰁmuAMVvu>t8S'1ݵin*pP/a[0}\-~qے$v:gzxt.wcEIT97w۰ߵ\/rQcNJR/_Ô2R7E+XJkNIW=?ݚ̺rA&:n&nM`Tka> !} /h8]hz> ?7oש8IKa!l&ߞqC2b]>}~dք-C6EaAܳi6}΢+!lɻ8(&,Z9RkDQ(ű"<5Z!~R[3Qǯ:rjf IQBD/Gv(;&S ``m;;gwڍJ `/T2= Tc Y/ '۠ksϚ- .ca-?CWƫS<8w`ͺ9;\nDIktLK&-ȯn@ya,`L2+T-mN]3j{07ҧĴOD3*:uUǚI(> -0TBiΖ84Ȕ79a>Bh;5<Qr4dS<{dz {hw,|F*o?)jyd۲8 DbGBY֞ef?>IӾ,DK,t?j0g¸8+rb=D@Q,h3m(IyEdS0״]~v;h_r\QXz@p#\j>p IT\׽8$SUb43c@=fM#ΤxNfRak{pa6.4 6# w k}DFܻt1f#P6 iF(w} ZgFpRgUI5lŁ78YyKc!™f!swZAz0l]ޣvIݢHEʷ.ӨrE@(&?;pօdz343ƖѐtyKM8^Tr(+&UpY ':?|{ &-wTc bu9}CTdfio;)Rr[9ۧ7ܼ¾{7yv(qakQeD%]30[d7b)C~*ŁVYzwEX0b fC]RYlJ$3vD47zevzٙW kY(z0_jѩz}[ !0Hx+Hđr)%ϽbUV v!j;Epe C3axf6S$3H`V2Dqo٩&c|ss&.qOMQ=G&Y3נZ -N|[s΄i^?1\ Tyߚxn[VxrgdLfxem[[-)94 !T>k5;$'/kfYkq':K1 X؟/L6^]E` *`m6+iw X9p(72]_A3 >o{u Ԅ&́i 0YcXHol@'hfLq*BPϦ˯ X)4I283T,eGwݐ"7+].~kYkR'ת0++g1n8ǙRn.xFB ң+㵄%ӖiP['CT1yJ;-!Y9)4XxcfB39CR3%nka;XhӰ@Wf:F١Gci;OnWU̿F8oQ Y6P/ïLV'|C|za {4OB<9f563xye;pAq! oz+V- ~9gԖ1k~~ :"(a\A0`1&гPGӀ+ Y~fн]ܐz8khn`Sb$ːK{ͳ F!ҒUҢW"e"x]{ E͏;ű0EQnFOqwlq54#ߙT ryz]0'n#kUv61*L"lN).z-܉`Iݝ6.+!iX1lArį2MI2z}=x*`N'4sWz~`tl\JNy]aEㄜc!h$R(FR|`h[s2Oj0SCX'M!UC+L&ƪXpf n\lPw?_tB !Q3ÜF"i酹<`c@Go)y%6zjR$(Q1Z pQ };MG Nzʉ1nL1SM)d @U;u@'*}\ 0ĒN5Sv[␤+Q!}y,qЛsftV *?# .Tㅹk5M}#% 7HbldzMˈm*ch IK1 |^~݈pL?'nRI?]8)w͜7el~]Ub%mP1J4#޺A_3_RD"UȊ:[/v vj V û!Cx_졠w"F oV%d[^ Y4MjFO)\B}/oDpb+ZS5lncZ51ڈ+<mzI1}Ze$4 yP.ن zhdX/4y4\zg%Z(V}m?apn. 0Bӂ--<X-p-syP I}Xrݏ62 =m|? *rf(;kD5Fd砙 7~Z#o ʝd}wyerUu.&ʥ6 YV߯ĴRmm!+I꠵X/ xh~$C p}k~.c6(%iCE9=[HLCfFakWQWe4kVQf[63>h >OEO%ǃ{ KEJHW-fU߃hKkJ-%2_)i K8@Ikۏ_CyecMy,9Du L%~Q㈧&s߻OK)iۢaHMɝO=ipqt|0_䢳V$">0JwPu6\֡ȶv*~婣X<^wTjxy\SjHlYï'Kp$΀f_ v^`C 焺Yh°c,Jl0=GMd~CQ"GqKz~Jt)lC-=EE#_r H' ?&ڛ3?դqNw)&. K=ځ! qB' f]cP(zxU|2i1ɠ}obײj#!*)48*{*-f; øn=9}mgT|lpDC3|pDg+-K(N:Y}0[*Z&1|5j/i? ߒ鉕lJ.4+B7yՒ)-hQ~z!$‘\.Vzp2mc ;< z˝?94o _htGN6^yNY?kr_g ? !_F[ ӂzBYBiQ/HXv,v~Cj%^?F>/uuhhVQa yF #T7|  hGjtֹ QwFj(&rEKNߎm[i5VI|K|c1SpwϿն+)S5.P B@ ,;fm&p#F#cLO>&KDj @X ^q_M?uWT@ʶܔ cޑh[9 S ? P|pGH_ˮ:W!{/-P+5(D(rɯFF Ӕ75@0cj¡nH_\85Eȝ[iF YIbQGEKԖlR?s5¡>px~_ޥth^SqgsJ\aCrsم 0o~M{EL7~=D|MSbȘy[}  GvC!M&PDN m)%"Ѹi:[ ?xEhOZ73fv FM^G- ' .㞲!@vwCVRȯ#RG r`-%L'm4x1C33G0gp6s ^Vox amY4[2Ձx颥7nrjËhkze=p:'yѝ[74SL ':HN)kBώM|]\kU<#.  y 2\}ؙf/!„cUc >""B>/C XO[mZR!sSUA;H}![RiAgOq͗" N{-cs)>ӰIiqILOe8o#$#!pCXJl&TPuf;[p=O|zvKZu:E xu3e1d\OXmsRԵ~M(hyPрNL'LkW/!$4w)f4a@+8[i]_i# \wxI8hcdu(6no%ơïEU="w-?xjKt̍r3r d:#-dXf+TMs tmP,_dョI Ka~I+%.?i!"y9kTh4RDK4 iGӍ |(%iA_u@1 nyd*g׷ԙkrb:JxM yDǘc>WF^ [|hڈZJ78ۅ/, =DN59Δ%>b[-߆j'+BJM-Lx/pD>s!++J7eocr}, +lͱyDZWE)~@e32/⌵uK;Toqk"c1&PBq`T~t =-JǔEC 6Y0tk@7<>BNqQ7X脄t/t|sQlFrhP)e1 Քzd'\oMӌ#J_͜$~MxvA%gDaO"'S[r&QX`oZZ^4^)as囩JLA[Cl:)ǩf'|Ft9#Oàf5qnF16b@`F>jI󤽙޸'b)C}u4TNdfcwwث|F} oy켇F7zG]9,4X'n?n;£!SY&T:}8b+XԖvQO+;x#,#ߍ/j;q=||U֪~=49ta$k{&MԈ7X1q?idʸ[7W>Ӻ&,4.eg%,X^cBodZn2U_;i`PߪpNssG#Lc|Hʑv.c"ҜO!?*+ +.41$ *9OM`B7j79?41uXbn`1;pSa̓VUIhԙnEL+4nk`?}drG4i/RY~=Q>kdt'to%&_҈BGYvO*s3?.@Iɂ k$|cQ'‚mmȊUIb\-5: ^=~ ]wq6Ӫ秲~~Xlbuvgm3}_闈mtmB4%c__10c9o0%ŧѽf۳~H5 %.T! D /Zry3nِ/4gΕXҳ4O7dR@)s7'c,Ru`]QؘhoKjv~P+Z7yR>#˃.dmfY],(u1g{m18g3哺DqءUkKTm+'one/G%$tdcCMv^IQ%ki[KD:U `I f75 `4kݘw!A 9.ZYX/ ya`⾇l2"Z34оKh5c]Tl>_͵ z32J=w^CDm!r!Kr51Ck?f E90 [I2~zF22oWÛ/)6+{guu _{ m.槀)x2nx N^ꃂ<5<rY}'* M-svGSb@* W1vXj ],,-vF*vƾ'yhLfb[W1(@'G*"Te[w00/0z Lg(,z2TSFKz!9 mLy ߅N7&;;[`q, H5Gc̸Su&ϮJs¿!dY&lMP'@mAP %҃`oJ9TZ 0AR]ќq.A1ˬM jD .~M^Rkks'F 4im -Z[R-΀x L\+۷ p8wZd(㽾Ƭ<}m4p{lxWsg,W9ĝ n;F0о)^&+ܔrXn U=Sxڹ] r8~OM[ S_Aw~Z3Dު XbԉUkA[x@ܰZsǦTJܭH֘&}ڮhGtgQJ:}^|xMEoL\u igy8" ^O!Lq`j4'^/f}ָs/)r;iFE,sAEATVM;m3#9,9{TL c3W)+=Rb :aȸЖ:!G,3$33))A+tҶX-n_FLT/S9 2E&dwöVDrOs$W1Ry>;lOj`I)|.qC`*u^rioC=JS"LT$sep+^Ԕ\miB0lZsg|d7~\HK<ј=EPdrV6pؾc7&P@ݙ=Js NUz"_p%$Je_νXIR(> MT"Ngo^{@ȖU6E"FOط }otTZGEس|DuqDi=QSU^6[*zqw\q&}A 7 B#/Kpم/xk- 3:7Wi'粪C-=tAU^*V( ۝ƸOf%Uo30~[1fLj!.ѣ*-h@ ROcQz0 KTT6w}ƯT\Ea2AwRI?a6KL0T5hoUm/+7R1S>e025}Lb BY)#O!u[MB?{l{}J)m[eОWtZ3qQzn虡27j2C-Da ?ivF@הjDH/& nw/GrâgO< AWWB)3|MxU:ǯ01 1欣z8]77/q7̧?ƒs?Q^Vĉˆ0USh)qu+%Aj4U:fm4hr<;y~?]j/NZ4A&E&_/J5ULPI,xER;:s*ߦ5 yw|2 ҎJt$nkx:As(1V|ߨD?^ZO, wk_tF.)8 &:lmâ[Z8sR>5%2- ;Ktgo})ӍNؽK 'Qٔ-wh6db7TjCJf}}|E?8LaW݃к"4(9*Ct[2x4B.G!zKpgӈߣPЍ0A٩_}aB#+hmזĊz#;9YN5tjEM0ne 㢳7y;EB]J3wnMml&ĸ>(oEo|MY7Y}:P_>/oOM}IÌ57{J]uJȀo9YשȤMI̓0Z :\Pu')\b hRCFb<9cDHՃ ktwHO ©a{ZK,W$YJiU60Jwf)l'~)?a}{E}ٓ7T5Mg PcyEҔ*~yѺc8Fq-BҧԃږK7{O;PZƁkE:"UiW˰6Ǫ%!-fߖ9^d~G+ c`V+8/ߞ*=&-`gݛRKO`M$;Ydt}:rFܙ[A4Lk(F#jF\ *eBIuc1-H9˂SQUYžْݽi40D oyXrpjV uh3 .[$~#Xq NcO?uvJcuy.RD-ڜ#8:Ŕߞ[k!uuD '<5#ph^8 IPDo3L\8˙/|p]*Nv=? չcMOc;] mm)n6y3[-:@B.APR[1Z ɓTِYrM}$E`1Q4qtGZ5gעE_ 1R [^=^9'D%0f>]E*,:0xÍ_ZY5Q߾"rԠ;D.ѸT|dG)Z4@1-ā8%IA/qCs|lT(cwL51cD[ WhȼLu~ 4wEZe+(XUi ȞVӼp12K6Q wfⲛ2߿NLA%"Y ygSV`oֳBHi%rt%u\ (`ȌUK:.(e?#Wα>r` e3/@Ѐ.4ȃ-gP?{Di׉P[ͤ! 6A.v#"U;_ڬ"JeBm0] T})D4܎o WniXIN%,AMI@^z+T(Uwfq6cpȟM]QRWzRpȨ`Z!puSERXH{_qBvctNyk= /2`Z:r?c3E:j4^I q'2/_v!|jɂQ.VsRXeU?tirH1tVA/8ƱG2DR(>=vuF$u^#%DfPYfiNNU"W4&%ȴ3Y/\oOFnkJ T<,jevzZX=R}"&8Rk0d`0  5VEA2K ޥEN'N xcéEwЯ+d? o12:#[)̰BUy5 ewD=R8E> 3?+$33$ܪxNrj@f7.M|S1! l%񃂞~ZF[U8L稼 ^["fhp HK3Uxf܇TbrS@zȑm\I&^b鸜:m"wѾUuJ-Ⱥs(ZN U`o&R wA8PmKuK+jܟicz|)kj:ǿKBil O%4&O+-dsˀ-8}b80 xŠV2l`䶵uw[mX"ah*Woh DK~.*Pn;qh1ej+R^}#9 Nx.-{EӞT/~~yMҕmԍ9NxrTTkb'sԡf=mZ`gk $18^Tn+D@w !4aa2JJV!(#{xJ Pڪ[}'Tuy b'جa~ o>3>J/ ex!!շP#iCnQJXzq OInU)5{rkl;8Q:{0y36'Tŀ?|J`­!"/>>eY7SSB/4ll 6"2:wjp3]=L n L'q7Y>jD[> kҴvuSvTSBc{47(%,KkƬmǻ_\N_fJx {&\f&uy˳?)rg1"rOr P.'Q_K1K(J“/H)ê g(c-:YUM.CAIi|D@ojlFin4n\c>b3K^+z[œ?2pْp\t8#T\%GW.t^e(~]9\&BzOɎ>YwdhEpcօMIU$V}_a<s4Z5' qyECF\ey>vĚP*i: zZ lTKc$w2@Mʅ{)AXa!)xGň)+1kT$&AmIHtS4xaLDaNVc*xsadļuhv V5?]ry\6tI& &uMDC*W!w7p8 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark PKx\&[fonts/iconkit.ttfnu[ PFFTM|`fDGDEFAߨ OS/2WU\=XVcmap2>`rgaspߠglyf[) `ƐheadC6hhea$hmtxLloca5B: 4*maxpe 8 name-post|x (@_< aa\ @3 PfEd@x*\U,***U*UUU*****/*U****UU********UU*UU******UU*U****U*'UUUU**UUUUUU*UU***UU***/*******U***c*U***UU*UU*U******UUUU**U**UUUUU***UU*******U***UUU***UlPx*x  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     "XX<r.d"~:R 6 n N : & z & L r XTzp26v6vVz<4PV xV\ $ l!F!""z"#:#z#$J$%,%%&0&''r'((V(()X**Z*+ +"+h+,,N,-:-f--.&.x.//01f2*234R445$5x556F6778889<9: :v:;0;<&<~<>$>^>??F?@.@r@@A^AB^C CLCDHDDE\EF$FnFGRGGHH`HIBIJJhJKK~KL,LM0MMN NrNOOP(PQQFQQRDRRS6SST"TNTTUDUV&VpW$WXXXXY YLYYZ>ZZ[$[\[[\R\]]~]^ ^^^_ __``<``a,aabbcH,0:R^+"!54&54.+!#&+'!+"'".="3264&;26'.'&'54>;2S% 'J# -I," w   %CQP@$  ) 'L) a4::%  ?|$  #w  &*V (4!7'!'!2#!"/&54?6&264&"26=4&">b  +$$$$>U  b ##+*V)*2".4>2%2>54& 326=4&"&264&"_~JJ~~JJ~hggh+$$++$$UJ~~JJ~~ ghhg+##*+!&"#";1267273264&+1" > w X > w X $ zb$ /#$,8>2!.5473!2654'."&264&"26=4&"@<@iJ5-4JJ$+$$$$$$#4KK4#+  [ ##+UU %1!1"31!264&7!"3!264&!"3!264&!"3!264&n##$$##$$*++.>7#"&5463!2+";2654&#!";264&3!"&54762***5KK5V5KK5*z[V ( U#K55KK5U5K#V  UU %1!1"31!264&'!"3!264&!"3!264&!"3!264&##$$##$$UU %1!1"31!264&7!"3!264&!"3!264&!"3!264&UU##$$##$$UU %1!1"31!264&'!"3!264&!"3!264&!"3!264&UU##$$##$$U, 327654&#"4&"3!264&#!   =$   $U+ 32654'&#""3!2654&"  $b   =$*V*6>%>7#"&46;2".546;2+4621"&46312&264&"+~SJ~~JS~$+GddGGddjF22F2~$_~JJ~_$~)ddddU2G22G*V"(18ALUZ.'.=4767>32#"'"/7!>7'"1'#3?654'#3'4/7217%!.p,Y:aq-&4%:a_%B_C,_=n{JJJJWm(>>m\_=nC,j_X%R g$m'{Mn iXa?3NmX8` N4kPZB>jj!c%B;kO38`T !"3!264&%654&#"32654/UVb    $$  $  U !264&#!"32764'&#"V    U$$   $   + 2654&"&#"27654&#"$$   $   Vb    U+ %&#"32654264&#!"265   $  $UU, %654&#"32%2654&#!"3!  $Ub  $+ %4&"2632654'&"32?+$$  $  +V    V.6.54>2#"/#"&545762'+1".264&"18N[[N81 1P  JJԖԖ*F\[[\F*ssl.RR GԖ*+(,=3'32+"&5463'32+1"&5463#'312+"&546+UVUU+VV+U+UU*V=E26=4."3267632#".4>21#"&'#"&462264&"2G2gбggh6* 4B_~JJ~~JdF%Q](X}}}jKKjK+#22#+hggбg.!  (8J~~JJ~_+Fd**}}}XKjKKj*+(,=3'32+1"&5463'32+"&5463#'312+"&546VUUU+VV+U+UUU7Ce7#"&546;264&+";264&32+";2654&+"54&"263267654#7654&#"313U5KK5UU5KK5U##]  V$K55K$$K5V5K$VV      ?Wg>32126=14.#"3251467654&#"1#"3!264&#!6".#"267654&#" 32654'&#"Ij#[]%b  x  2#*   A=A   U  j\[ RE  \"#2*+#(   %%  U   U$03!2654&#!"5463!21#!"&5154&"26UVUK5V4KK45K##*T5KL55KL5TVV}'%7''%&54632&546#"&547+   55 +  4Re  + #  # +  3/V &>54&"!.5!"&63126=4>232".#"267654&#"Ԗ. $2[[2$d   @>@ +jj.(2+*2$][[]$2*+b   %% V#2#!1"&5463!1"631!"3!U=XX=&!&&UW>>W+&U&4&*+(,7B546;2321!"&=1463#";!3326514&#%!54&+1"+K55K5JJ5T5JJ5UU*+5KK5+K5V4KK55KUVU+2<] #"/!"&546;'&54632#"&5467'#"3!/326313122654&+'.#1!";I  I5JJ5  tT"X} ro< J50o #K5H   IK55K  ] }X"Tr+<05K r5Km #UV",I!546232#!"&5146;514621!3!2651"&515#"!514&+"&=#V5KK55KK5V#VV+#VV#++K54KK4V5K+++++V+%%4&#!"762#"&51463!21#"'%V  K55K SXv5KK5U*v '-"'%.541467%62-&" %>5%9U))<))U<K  = UhC!i C C !CdE_ z +7?G#1#"3!2654&+1"&/#2#!"&546;7>31!12"&462264&"N  I5KK55KK5I  I}}}jKKjKh * m*K5*5KK55Km m}}}(KjKKj*V,A".4>3232654&'.#"2>=4&"%&#"27654&#"gбggh"[  &p)_~JJ~~J#  $  I(hggѰg K~~JJ~_(!    IU&#"27654&#"  $  Is  I*,8&#"27654&#"%#!"&5463!264&#!"3!2654&"s  #   HV+5KK5U5K#    IV$K55KK5+*-STb7326545.'&#"7326545.'&#"75463!2#!"3!2654&#!"1265#126594&"M.N uEp  l\/5KK5V5K#+*## N.Eu p\l U#K55KK5U,,&#"27654&#"   $       UU654&#"32654/    b  $  UU%32764'&#"b      $   ++%32654'&"32?  $     U)&#"2?654&#"&#"2?654&#"I  $   $  s     +)%32?64/&#"32?64/&#"       $   $  U)32654/&"32?32654/&"327  $   $     շ   ,)654&#"32654/%654&#"32654/     7  $   $  *V".4>2%2>54& 3_~JJ~~JJ~hgghUJ~~JJ~~ ghhgV08463!232#!"&5463#"3!2654&+#!"&5711!151+2##2+5KK55KK5+++2##2U#21$K55KK5U5KUU$22$UUU*V(4IW"'.54767>392#"'7#"&'>54'#'765654&"326>3!.#9"tmY:a2&J~_-_ 6nb`*!IKjK@?`s:?/UJ0S v{MnvXa_~J[C/ !d$kbB>9G>4,!5KK5$"X5LGdO7*V/".4>2%2>54& 34&"32654/_~JJ~~JJ~hggh+$  sUJ~~JJ~~ ghhg  t6X1"32654&'.54632;2327>54&+.3267654#7654&#"313hgtR  ?[|`5FdP9Uyj%> ~ gh^- #I|\dG:b WjjB       #/;G|%26=4&"526=4&"26=4&"526=4&"26=4&"526=4&"&#"32654'.54632;2327>54&+.+####U########@ hgU; .B|` 6Gd<+  ?Zj#UUUUUUUUUUUUUmghL0  %;|\dG.\ Ejd #X2654&"2654&"2654&"&#"32654'.54632;2327>54&+.######@ hgU; .B|` 6Gd<+  ?Zj#UUUgUmghL0  %;|\dG.\ Ejd0Vf&#";123267654&'.#1#.7!27>'.#"#!"#"&'&5467>'.#"'32654'&#"W5&S     |9!sgC҃}-* _ Z@    U T, 7#   04 S0C`&@   \&'H$" gU   *V!%(-25 "'.5467627537%7'5'%!5''7' U  U  8͉V+ `>3D3"``N  * y`xx`CaaaCC`xȰx`QCCV56DEMN\]kltu"#"32654'.54632;2327>54&+.'#126594&"&264&"'#126594&"#126594&"&264&"7#126594&"3#126594&" hgU; /B|` 6Gd<*  ?Zj#i+##+$$*##**##+$$+##++##UgiL0  %;|] dG.[ EjdU##+V##+*V":".4>2%2>54& 3?%#"&547>7%632_~JJ~~JJ~hggh988ZZUJ~~JJ~~ ghhg88nZZ*V/S131!1265114!1"#14631!1211#1!1"&51#"&5463!226=4&#!";264&VK55KK55K*$K55KK5*5KK55KK5**5KK55K$)%32?64/&#"3!264&#!"&514&"b   g}X5K#I  $  Y}$K5*)654&#"32654/#!"3!12654&"   DK5X}#  $  5K$}Y*)&#"2?654&#"!1"265463!264&  $  Y}$K5*   }X5K#(32654/&"32?!"&54&"3!264&7  $  5K$}Y*   K5X}#(654&#"32654/4&#!"3!226   }X5K#  $  +*Y}$K5(32?64/&#"463!264&#!"26b   K5X}#I  $  +*5K$}Y*&#"2?654&#"!22654&#!1"3  $  +*5K$}Y   DK5X}#+32654/&"32?!12654&"#!"317  $  +*Y}$K5   g}X5K# #4@LXdp|3!2654&#!"463!2#!"&5%35#'!2#!1"&546462"&5%462"&5462"&5%462"&5"&46;2#"&46;2#%"&46;2#"&46;2#UK55KK55K++$$$$$$$$V5KK55KK5V*V*$$##$$##+1463!21#!"&5514&#!"1!3!12651K55KK55KV5KK55KK5U+*V(8%5462>7#"&46;.'"&=32+".4>2$~~~~$~~~~~JJ~~JJ~~~~$~~~~$~WJ~~JJ~~*V%-".4>2%2>54& 36"&462264&"_~JJ~~JJ~hgghGdddF22F2UJ~~JJ~~ ghhgddd2F22F.>2#!1"'&476312654&#! 327654&#"32654'&#"5KK5 * +y     K55KU UU   I    X%'&#"2?654&#"'2654&"&#"32654'.5463231;2327>54&+.'  #  ##*hg9(  ,|`5Fd* -@j!c   gh=- #t/{]dG%R {7j^ UV0<73!26=4&"#!"&=4&"%'&#"2?654&#"2654&"UK5V5K$$  $  $$5KK5V   V+(267>54&/7"&'.546?62-$3 ## 3%.B -- B/ $#z3BRccRB3z#Y-AUjjUA- U+73'7+"&=4762  + #ęZ #  + *V%*<#!"&546;1264#"3!26=4&"%3'7+"&=4762+5KK5U5K#Unn U   $U#K55KK5Nnn[ $ U   UV"3'7+"&=4762!264&#!"no +   #Don[ $ +   V##U,#4D#!"&5463!264&#!"3!2654&"2654&#!"3654&#"32*5KK55K$$  + U$K5*5KK5n$8  + 08@ 7>7.'& '67676  '&'&'&47"&462264&"n'/P=== i +55+  +5f5+BdddF22F2b=3S SS 1#A::A"  "A::A  ddd2F22F*V047#"&54?47>32#137>54&#"632#3t  t  $|3|3$ Yi'}Y%Z  FV+t  tY  $4|3|$ iZ&X}&  U+V+K46;2+32++1"&5#"&=46;#"+32346;7#"&=46;j*UUUUUGdVVV_t2#UUjU +dGV+V$2V&2!"3!265#"&5732#!"&5463"&463!2#+Un  K55KK5Vo 5KK55K$$(Pp654&#"3>7654&#""'.'>32767654'&'&'&+"3276;2#"&5467654&#"3267654&#" 32654'&#" ;# +5A3 *4>qm  8) +520'(=" %$2  dFI   U [  -A #C89'  .S 5 CM "B9  R : 2#$  HGd  U   **'+%#"&5114632'%%#"&5114632'%%E  `  `4 V * "Z V * "ZV&2>J!"3!265#"&5732#!"&54632#!"&4632#!"&4632+"&463+Un  K55KK5VVVVo 5KK55K+####V$$ *V $(/6=D463!2#!"&5!!!5##3%35'35#%354&##3265#"35#3+O88OO8d8O*VV+2NN8OO8d8OO8UUVVՀNNNV#&2#!"&5463!"3!265!"&73+ * K55KK5UU +5KK55KV֙V&B!"3!265#"&5732#!"&5463#"&46;546232+"&5+Un  K55KK5UU$UU$Vo 5KK55K$UU$U*++"3!2654&#!1"&/2#!"&546;12 I5KK5V5KK5 I m*K5*5KK5V5K m*+% &54631!12#"/.51147 V   V ]  yU  +' MV+E4767632327676#"&'.#""&5232767#"&'.#"6 #=X,MB:?"G.5 #=X,MB:?"G.#,MB:?"G.7I,MB:?"G.7++  [*V$+29".4>2>7!#.3.%3>>75.'_~JJ~~JJ~:C)j j)C.)C j C J--JJ--JUJ~~JJ~~`J>ll>>JllJI;;IVI;;IU+'+;?O35#'!2#!"&54635#'!2#!"&54635#'!2#!"&54635#'!2#!"&546++++<++g++V+V+U+U++4>321"'.546327>54""/.#""s/s0" $ "0s/s".-!pP!O- $ -O!Pp!["0s/s" y"s/s0".O!Pp!- -!pP!OUV(,621#!"&5143265 ;463!23#f  K55KV"* +5KK5 @U*V!%&'.'.'&#"7>54&#"4&'654'&'&#&&"&"26=&7654&'.505467654'&54732762327676726=654'>tFE$% "Gc= F" DnFFnD "|{ $ }p  ,; DC ;,  q| # {|T,+* 'd !60 FF 06! d'!$0 rM  ((  Ms  )#U+#+7?1"&5463!21#14&#!"62'!26=%1"&46312&264&"5KK5V5KK5*  # ->>-,>>5  +K5V5KK55KD  >X??X>U  *1G!121#!"&=147>3.#1!1"31237>315##1#1"&/#3!267"EK5V5KE"2y n y H~H տH H- 5KK5 M-  mm m m*V.E62"'%.467-&#"27%>54&#"&#"27%>54&#"    U  U  sKKh      hh      hQ&    *V)*2".4>2%2>54& 3754&"26&264&"_~JJ~~JJ~hggh+$$++$$UJ~~JJ~~ ghhgիg##*V#4EFT13!2654&#!1"463!21#!1"&5%.#"32654'7#"&'&546325#126594&"dFFddFTFdUiiiTiUJ/5KJ.5KU}XL| ~XL| *##VTFddFFddFiiTii.AK5 -?K5 X~kLX}jLU+!(463!21#!"&554&#!"!!265#3UK5V5KK55KV5KK55KK5րVV*1=32+";264&+"#"&46;1264#";264&'!264&#!"GddGjjGddGjj=V+dd#Ԗ#dd#Ԗ#$$*V!1>NV%3203267'#9"&''7.5147'>3127.+">=4&".4>2264&",77,zEEz54&#"32?>32#"&'&#"7.#"326?654&#"&'.546?>3232654'x6+j .j-lJ  JFG)G$P x6+j .j-lI  I22G$P <+<,l.i. J  I*FF) +<,l.i. J  I02FF) UV0<32654&+";2+"32?64/&#"7!"3!264&U5KK5   <UK55K#V#H  $  +$$ UU #$,-56>!264&#!"!264&#!"!264&#!"&264&"&264&"&264&"U++++$$+$$+$$U$$$$$$+$$$$$$UV*2546232#1!"&546313!2654&#!1"7!54&"Ԗ+5KK55KK5*VVddՀjjK45JK4,5J,nGddGUV2>!#"&546;264&+";264%32?64/&#"7!"3!264&5KK5   <#K5V5K#  $  +$$*V '7CO_o26=4&"26=4&"32654/&#"32654/&#"%3264&+"!3264&+"7654&#"327654&#"32$$$$y  x x  y ʫx  y y  x +Dx  y y  x $$$$y  x x  y *%!2#!"&546.#!"%"'%3!2655KK5V5KK V {  K55KK55Km RU,!1A2654&#!"34&"3!264&+ 327654&#" 654&#"32U$+$  + 0+  $+$  + +  V'+%7%632%632#"'%#"&5467%7U @   fMzHnU  2%1"&46312&264&"!D<[[^$#j)    )j#ssUGddGGddjF22F26>]\\] S :%] ]%trrt!ddddU2G22GUU #!264&#!"!264&#!"!264&#!"U$$$$$$U+%J%632;267>=.'+"7%#"#"&'#"&54?.5467>;f SR$xSIh7/g#`!K]#j' zhISz$RS 7f]L!a#h/ ۜ'j#U+ %63!2654&#!"&5463!2#!  5K5V5KK5 5KK5U5KU,!1A%2654&#!";4&"3!264&+654&#"32 654&#"32## +  7+  +##I+  8+  'Dbu32654'&#"326764&"#"&=4&"514&#"3267>32126#"&50=4&"3267654&"732676=4&"26=4&"!264&#!"   U VdFG # ##2#UdG9b 1$2# k-j#[\<* #<###U7U   Gd # 1$ GdP9(2#-jVU]\<+ UUn##*V)".4>2%2>54& 3!264&#!"_~JJ~~JJ~hgghVUJ~~JJ~~ ghhgU$$V 3?K"&5462&"2654"&=14&"12>=4&"26=4&"!264&#!"ddddF22F2Ԗ#[[#$$VGddGUGdd2$#22#U$UjjUU][[]Un##U+ ,3!2654&#!"463!21#!"&5!264&#!"VVK5V5KK55KVV5KK55KK5$$UV !264&#!"VU$$U+-.5473267#"%#".54>7632676S;]\]c!8<; yjtshij#Y03S;<8!c]\]aihstjy 0Y#j*+#5%32#!"&46;5!"&515467!21#13!26554&#!"+5JJ55JJ5*TU$$UK54KK5V5K*VV#+9"&462&264&"6"&462'1264""&462'1264"315jKKjK$$`jKKjKGjKKjKKjKKj $$KjKKj ##KjKKj ##*'/"&462&264&""&462&264&""&462&264&"5jKKjK$$jKKjK##jKKjK##KjKKj $$nKjKKj $$nKjKKj $$*V)>S_k654&#"32654/32654/&"32?&#"2?654&#"32?64/&#"!264&#!"2654&"  a  $  bb  $  b   aV$$  $  b   a  a  $  b+$$VU+!,7+"&46;467%632+"&46;#";265%#";265K5V5KK5K5V5KK5VV5KKjKU5KKjK##S+%762&762'%&  . + < + .4qqQ+'+'U' .76&' 8** ;OT S5<  *<*V!7'!'!2#!"/&54?6>b  >U  b *v!+16"'%.541467%62%&"7"1%>5%7%9U))<))U<-  cKv5= UvKvhC!i C C !C1;EL__ z -;;*V)5".4>2%2>54& 34&"2674&"26_~JJ~~JJ~hggh+####UJ~~JJ~~ ghhg+'3'32+"&5463'32+"&546+UUVUVUVUV)1 327654&#""&462264&""&462#&264&"  V :{XX{X5%%5&>XX{XX=5&&5%  V X{XX{%5&&5X{XX{XU&5%%5/V3i%#"'.'.'.'&546;27>321'4&'&'&#"#"'.'&54?654'&'.+"32651.546323#"&'.'.546323#"&'.'K5WID+0Q K5.K s2569.@UC? 7  H) 6  I+(>BNFw O,\l  q5K Q/+DJW5KA.9552r J.  7 )G  6 >COC>'+ISvF/O l\p *U U32?64/&#"!264&#!"454&'&'&#"'.'&54?6'&'.+"2326515#"'.'.'.'45467>;27>32   UC? 6  H) 6  I,'>COU3WIE+0R 8.K  s256:-A  $  +$$, 7 )H  6?BOC=(+I7 Q/,DJX3A.96#J2s K.*VT 327654&#"32654'&#"454&'&'&#"'.'&54?6'&'.+"2326515#"'.'.'.'45467>;27>32     C? 6  H) 6  I,'>COU3WIE+0R 8.K  s256:-AI  I   h 7 )H  6?BOC=(+I7 Q/,DJX3A.96#J2s K.F~&#"32?63211#"#.'&'&#"32651=4&'&'&#"&%.'4546;232?>54'&'.+"32654' 327654&#"  [#  6 ?BNBI>  X!JW5KA-964;+I  6  6J.5K Q0 U   f  E 6   I+.>  F0P K5.J%@COB? 6  6568.AK5WI  V   *V!V4&"13!264&+327654&#"454&'&'&#"'.'&54?6'&'.+"2326515#"'.'.'.'45467>;27>32#  * DC? 6  H) 6  I,'>COU3WIE+0R 8.K  s256:-A$  + + 7 )H  6?BOC=(+I7 Q/,DJX3A.96#J2s K.*V4j%454&'&'&#"'.'&54?6'&'.+"2326515#"#.'.'.'45467>;27>32C? 6  H) 6  I,'>COU3WIE+0R 8.K  s256:.@  6 )H  6?BPC>'+I 8 P0+EJW2A.95$I1s K.*V!W26514&#!"3654&#"324&'&'&#"#"'.'&54?654'&'.+"32651#"'.'.'.'45467>;27>321# *  C? 7  H) 6  I+(>BNU3WIE+0R 8.K  s256:-A#+    7 )G  6 >COC>'+I7 Q/,DJX3A.96#J2s K.*V$6=%#".467>54&#"3267654&#"7#!1"&546312.'!&b)ihg_  tJ~_2 sU_~JO7Sag* 3_~Jv J~O@7*V 4".4>2%2>54& 37/#"&5114632_~JJ~~JJ~hggh+   UJ~~JJ~~ ghhg%[[sVV+% '#"&54632$V   N22rU+ ,83!2654&#!"463!21#!"&52654&"!264&#!"VVK5V5KK55K$$VV5KK55KK5V$$*V)5".4>2%2>54& 32654&"!264&#!"_~JJ~~JJ~hggh+$$VUJ~~JJ~~ ghhg+V$$*V 2654&"!264&#!"$$VV$$*+!62>54&#!"%2".5463&#"2?654&#"gбgV5KJ~~JK5  $  iffioK5`}KK}`5K *V9=M!5!463!232+"&46;26=4&#!";2+"&=463!!'!2#!"&546+VV*5KK5UUVUU5KK5V++K55K$$K55KUVcV'3".5467654&#"267>&'&#"%2654&"*:[[:*  R::R>>R::R $$G*;\[[\;*  RQ>@@>QR U*'#7Nf"&462&264&"727>4&'&".46764&"264327>&'&#".467654&#"326545jKKjK$$$$ $ $44$ $$$ $ $44$ $/BB/  Z@@Z /BB/  CGGC KjKKj $$YIX # $|f|$ $YIX # $|f|$ $..  ZZ ..  DD U)>S32?64/&#"5463!264&#!1"26654&#"32654/#!"3!126=4&"   gK5UX}#   K5UX}#  #  U5K#}XU  #  V5K#}XV+!@_4&"3!264&+2654&#!";.#"32?>3232654#"'.'.#"326?654&#"U#V#*}I3  ):'%L #);&&L )}I4 #+#vJ3  *;I *;I vJ3 *** &476321#"'1% &476321#"'     Sy* * *  y* * *  *+@14&"13!264&+32>4.#"32?>32#"&'.#"#*}srrsI4 );$a Ig[\d! #vssI4  );)S][_ +"Bb"3!2654&"3264&#!1"265>3232654/.#"3267327>7654&#"#"&/&#"##i!d:)  4I0._  4I0._  !d:)  ##^:*  4I \ 4I \ ^:*  *';"3!2654&"#".4>3232654/&$3267654&#"#i!c]\\]:)  d|\rt|* #^[[:*  e'D3htrvU+$(:!2#!"&=#";463!23265'!!"&5463!2U++++5KK5 KՀ#*ļVVK5V5K *5KU+%"/#".4>2264&" $ )4baaĨa.P梢 $ .aĨaab4]梢*V&9MN\]k3!26=4!"463!12#!1"&=3!26=4!"463!12#!1"&=%#126594&"#126594&"TUJ55JJ5T5JUTUJ55JJ5T5J+##++##ժ5KJ55KJ55KJ55KJ5U+9I"&462264&""&462264&"'&54632632#"&547&54632#"'qdddG22G2dddG22G2  7       ddd2F22Fxddd2F22F#  7       UV #/:L^1"&46312&264&""&462264&"1"&46312'264&"31.54632#"'632#"&5467GddGGddjF22F2dddF22F2UGddGGddG#22F22#Y  #    ddddU2G22GNddd2F22FNddddU2G22G2    V0<3!2654&"#!"&54&"%32654/&"32?'2654&"K55K##  $  +$$5KK5UU   =+V*"'&'&'&5467%62'6765%67  A: V V :A;5՜CLQ(3UUU3(Z%.4KK̍:+  $"&462264&"'&"#";22?>26=467632264/.547>;264&+"&/5&546?64&"#"'.=4&"##"&32+"#"&/&#""&5054&'&#"#"&546?654'.+"&46303267654/.5463232?651546232?>32GdddF22F2 $   = =   # D+#(/  $   ==   #  .($(/[5KK5K55  KjK  55K5KK5 K55  KjK 55Kddd2F22FK # D+#(/  $   = =   #  .($(/  $   <= KjK  55K5KK5 K55  KjK  55K5KK5K55  V! &47632#"'%14&"126<U  ##}zV ( V V LV, 1AQ26=4&+"; 654&#"32%";26=4&"'32654'&#"32654/&#"U$t  + $  7  +$8  + *$     U+$463!21#!"&5#";!2654&#UK5V5KK55KV5KK55KK5VVV-'#"&546322654&"<U ##z ( UV);M_q.'.>$6.67>&%32654'.#"32654'.#"%327%>54&#"327%>54&#"(Pg'(Pg+?PlyM?Pm\\yMO  ǘ  E  >E   g'(PfOP]yM8>Ql\\yM?PlD  KD  %  ̙  *V%".4>2'326 >54.#"_~JJ~~JJ~#1gh8L#1gh8UJ~~JJ~~_,8hg1{,8hg1VV%&.3!12654&#!1"4631!12#1!1"&5%&264&"VUK55KK5V5KU+$$T5JJ5T5JJ5V$$U+ 3!2654&#!"463!21#!"&5VVK5V5KK55KV5KK55KK5V!"*2:3!12654&#!1"463!2#!"&5&264&""&462264&"UK55KK55K+$$j}}}jKKjKT5JJ5T5JJ5V$$}}}'KjKKj*V?762'454?'./>2#"/#"&545'&5467% ї$  $ ^&z / /  bb t  (  (*V!2".4>2%2>54& 335'!2#!1"&546_~JJ~~JJ~hgghUUJ~~JJ~~ ghhgժV '7GS_o$"&462264&"26=4&"26=4&"32654/&#"32654/&#"%3264&+"!3264&+"7654&#"327654&#"32jԖԖddd$$$$<  = g=  < FUUgUUd=  < h<  = ԖAdddUUUU=  < <  = $$$$<  = g=  < V/;GWdy%4&"265462262654&"32654/&#"3264&+"!3264&+"7654&#"32!"3!264&#32654/&"32?Ԗ#dd#$$<  = ^UUgUU@<  = V  $  jjGddG+r=  < $$$$=  < ##b   V!"*%4&#!1"3!1267#!"&5463!2&264&"+UK55KK55K+$$*T5JJ55JJ5$$*V !"0 !2764"&'&51463!2#126594&"J_ # 0 05+5  l+##_ / #kk  5+4V/;GWdy%4&"265462264&"2632654/&#"3264&+"!3264&+"7654&#"32!"3!264&#&#"2?654&#"Ԗ#dd#$$k<  = ^UUgUU@<  = V  $  jjGddG+@=  < $$$$=  < ##   *V%-5=".4>2%2>54& 36"&462264&""&462&264&"_~JJ~~JJ~hggh|}}}} jKKjK$$UJ~~JJ~~ ghhgUY}}}(KjKKj $$-%#"&5467462'4&"2654&'.Ha2#X{X#2 &5% 'X{X' 'Eba-k=XX=5j-#"&& H!>XX>!H*V3=M232'!"&54763221267654'�+"&=4&'!#";#"&546;2R9( <J0 Gf; "VV+6LL6+-;/> dF -^UK5*5K**V 8EZ70#"&'.547>;!21#"&=#0#"7312323267.+36#"+"&54639<K- He:< #VI!!I+s6SS3t1 -?*  dF+ -[$F53G*!)13!26514&#!"#4>3!2#!".5"&462264&"UjVjjjU[]V][[]][dddG22G2jjjj][[[[]ddd2F22F*!)13!26514&#!"#4>3!2#!".5"&462264&"UjVjjjU[]V][[]][dddG22G2jjjj][[[[]ddd2F22FUV )GS_!264&#!"%#!"&514&"13!2654&"546;226=4&+"12652654&"2654&"V#K55K##K55K#####U$$+U5KK5UUUU5KK5UUV )G!264&#!"%#!"&514&"13!2654&"546;226=4&+"1265V#K55K##K55K#U$$+U5KK5UUUU5KK5UU*&"32727654&#"%2654&#!"; #  " $  k#  "   Y$U*&#"2?32654'&""3!2654&"I  @ # w  k $ j#    $/$>2!.5473!2654'."@<@iK4,4JJ$$#4KK4#+  [ $0!26=4&#!"12651!264&#!"32654&"V#V#U$$V##V1d6&'.623267&'&767>32546763267#"'.#"1#&'>54'&547671 2Mi *o%-+*   .PY>(+%\4.a B'8hH -["E~r\C$  "&_ |ךf (: (U& BgC#  R**NJwbI 3* "?^tP U+7"&5#"&54?62#"'462#!"&=4623!265+$  $  $K55K$Vg  5KK5V#)265462"&5!"&545>2# !&+2F2$ddV HU#22#FddF~||~+ Uj%32654/&"32?'2654&"&#"32654'.54632;2327>54&+.32654/&"32?  $  +$$)hg8(  ,|` 6Gd4%  7Nj!  $    <gh=- #t/{] dF*X ?j]   UU(954>#"&'.!2#1!"&546313!2654&#!1"Ơ kY5KK55KK5*VՀcuaAN bBK45JK4,5J,+%-B!54&#!"26=463!22651"&462264&"&#"2?654&#"}XX}#K5+5K#}}}jKKjK  V #  UY}}YUU5KK5U}}}(KjKKjW  V  +%-9!54&#!"26=463!22651"&462264&"!"3!264&}XX}#K5+5K#}}}jKKjKUY}}YUU5KK5U}}}(KjKKjK##+%-9E!54&#!"26=463!22651"&462264&"%2654&"!"3!264&}XX}#K5+5K#}}}jKKjK@##UY}}YUU5KK5U}}}(KjKKj g##+%-=M!54&#!"26=463!22651"&462264&"32654/&#"732?654&#"}XX}#K5+5K#}}}jKKjK    UY}}YUU5KK5U}}}(KjKKj  0  +$,!54&#!"26=463!2265"&462264&"}XX}#K5V5K#ذ}}}jKKjKUY}}YUU5KK5U}}}(KjKKj+$,B\!54&#!"26=463!2265"&462264&"54&'&#"265327>4&'&#"}XX}#K5V5K#ذ}}}jKKjK^B'9#(88( C^^CUY}}YUU5KK5U}}}(KjKKjUEy I)U IRI zy $L\%#!"&546;264&+"3!126=4&"'54&+";1232?2654&#"%32654'&#"*VV5JJ55J#<8+ J5 *  # E  U *#K5V5KK5*+5K# * U   *(>63211#"'%&47%13!265114&#!"#1463!211#!"&511  b*UK55JJ5*5KxV , #SV5KK5V5KK5%.5462#!"&462"264&"264&"`Šaa‰{XX{X{XX{XW#a‰Ša#WX{XX{XX{XX{**/?632#"/#"&546;+32327654&#"32654'&#"  ʜ*        L s4   I   *V7632#"/#"&546;+32327>4&'&#"  ʛ*    ++   L sYG:G  jXj *'6N632#"/#"&546;+32%327>&'&#"327>4&'&#"  ʜ*  d/BB/  Z@@Z   ,,   L s=..  ZZ G:G  jXj *632#"/#"&546;+32  ʛ*    L sV +Pt%".4>2#51264"#"/&=462>32+"&/&54632;1267#"&5457>;12#"&/.#1#"][[[[]jjj3  @ $kK00KK01J+[[[[UԖԖn4  @ 0DD0d0DD0.FGO>232654'."32'>232654'&$32>232654'."32&264&"11 ;;LK 8I8H  fOe  +$$H)::)  1FF1 B^^B  wTTw  !! |##U+ 0@3!2654&#!"463!21#!"&5 32654'&#"%327654&#"VVK5V5KK55K      V5KK55KK5   0   *#Fb62+!1"31!32654&'&#"3273264&+!"3!32#"'&#"62#!"3!264&#"32 #5K&"6  D65KK5   5&&>WW>>  $#K5A  KjK#   &5%$X{X U, 327654&#"32654'&#"        I   *V-=".4>2%2>54& 3327654&#"32654'&#"_~JJ~~JJ~hgghb     UJ~~JJ~~ ghhg   I   UV'"&547>!2&7'!2!"&54? #%P U#%%  %UKU+%1=%".4>2#"/#'1264"2654&"!264&#!"hggѱf1#  +8||{Q##V+fѱggh8+  #1U##U+$0%#".4>2#"'%1264"!264&#!"+8hggѱf1#  s||{#1fѱggh8+  ##U+)-6@IR%#"&46;5#1"&46235462+312"&535%54&"3#1"265!264&+264&"UdddGUUGddddddGUUGddd2F22#UU#22F2V2F22#UU#22F2UGddddddGUUGddddddGUVU#22F22F22##22F2V2F22#U'12#1!1".4>323#"&'.#"31!264&jjhgghp&6 `||GddԖgбgjU\dd+ );!264&#!"!264&#!"3267454&#"3267454&#"VVUUUU$$$$0U+*7E754>2+"&=46;54."32+"&5%#";265%;126=4&#UssK5+5KK5U[[U5KK5+5KU+V+իtsst5KK55K+][[]+K55KK5+#462265462"&5"&463!2#$}}$*X}}X+{{$$V3264&#!1"313#"3!264&+####V%#1!"&5463!2!264&#!264&#!-@}XUY}''*5KK5U5KK5m4X}}X&[KjKKjK(2%1232+"&=!"&51"&463?4621 3!4&#/|5K$5K#K5$K6{#*V)O".4>2%2>54& 351"&46312#"&547>321#"&5467676=4&#"_~JJ~~JJ~hgghf _2FdS"( -2#0UJ~~JJ~~ ghhg##r /CdGL7  #2"*VG #"&5467>32"&47654&#"3267>54&#"3267654&#"uwY%X}%55Kw $ j  K56%}Y$Yx$3{4|$ w%}X%YK55x # i  65KX%X}$x%{4{3$ CO"&462&264&""&462&264&"!2#"#!"1"&'.+1"&4631323!21267!jKKjK##_jKKjK##HI,>/JA``.J3=KjKKj $$nKjKKj $$+32'#"&547>7'#"&547>7'&54632"'1"&46312#.54632#"'&"#"&5467632#"'.#" H8I   e( w)i! `&c%_ [#   #   :0 (rU Kd   w 3  6 c=  =   # ## )  "kK  C]U++AV+1"31326=14&"#"&=4&";264&546;264&+"2651%31226=4&+"+5K#U#K55K##K5#K55K##K55K#U+';O#"26=46;264&54&+";226326=4&"+";264&+"&=4&"U5K$DK5$5K$K5$+K5$5K$K5$5K$[%4"'.54?67632!67632% /#!"&/  9 4i  ^_  h6x4QQ QQSK % B  %   & C6  +)=KXd%26=3264&#!"3546232#!1"&46312653264&#!"37"&514621"&5462"&5462+#U$U#V##V$$U########+*V&>2#"/#"&545'&5467%z / / >  (  (+>321"'.54632"s/s0" $ "0s/s""0s/s" y"s/s0"+!-!!#!"&5#"&=463!2#%!5"&46;2#UVV*V+Հ$$*V+954627632"/&54632".4>2%2>54& 3$b  $  쾮~JJ~~JJ~hggh<b   J~~JJ~~ ghhg*V+9"&=#"&54?62#"'".4>2%2>54& 3+$b  $  .~JJ~~JJ~hgghb   IJ~~JJ~~ ghhg*V+932+#"/&4?632".4>2%2>54& 3b   A~JJ~~JJ~hggh$b  $  J~~JJ~~ ghhg*V+9#"&46;'&54632#"&547".4>2%2>54& 3Db   }~JJ~~JJ~hgghU$b  $  J~~JJ~~ ghhg+ #%"&5462"&5462"&5462+$$$$$$+VV+ #%"&5462"&5462"&=462+$$$$$$+VV*+6A!24&#"&54&#!"&5463!2>;!2#!1""&5467#">31!.'K5"2#4Yd,#2"/'U5K25K#2.($22#/NK5? *U)&54632#"&54?!#"'&47632   $    b  $    $   UV (42>= '4>2".5 '2>52>4."YYyHttttxFxYYRYYYY?''?4N((N44N((N4Vi??(('#((#'++3=32+32+"&=#"&46;5#"&46;54623264&#'5#1"31+@OqqO@$@OqqO@$@,>>,@,>>,#qp#qp?X>V?X>*+1G32+"&=#"&46;5462!2#!"&546;12#"3!2654&#!1"&'+UU$UU$?i5KK5V5KK5 : U#UU#VK5*5KK5V5K C *V,04:?IS32+#!"&5#"&=46;&54631276312!5)!!!1#!!&#";&264&#"Gd+V+dW>wFGv>WUUUVV"/D&& &&D/ ">WW>"sUUUU&4&&4&U*++7!2#!"&546;12#"3!2654&#!1"&'"&463!2#i5KK5V5KK5 : 2K5*5KK5V5K C ##V'"&'+"&46;2>26;2+"264&"{{{{jKKjKVGddG$GddG$UKjKKjU+&.6%#"&'467462>7.546712264&"264&"a7FdK5$'H q 4IcGGdL6 mF22F22F22F2W6KdF7a % G' qa6FddG7a`m2F22F2F22FU+/7?.546712"&54&+"&46;21"&546264&"264&"4KdFGdK5$5K4KdFGdK=F22F22F22F2`7FddG7a %%$K5`7FddG7a2F22F2F22FU+'/7%.'"&5.546712>321#"&'264&"264&"ZN/$4KdFGdJ4 qa6FddG7aF22F22F22F2Wc?`7FddG6aq 4IcGGdL6,2F22F2F22F*+->BJV2+"&54&"+1"&544&"34623312+"&54636"&462'1264"/#}}VKjKUի3!2'.#!"!3!265%1"&4631231"&46312K5V5KC!%=(u j u 5KK5 %*&!  V+####V"&462&"&462"&462#1#F22F22F22F2U#22F22#+2F22F2G22Gy2G22G2*"&462"&462"&462#F22F2G22G2yG22G2+2F22F22F22F22F22F'1"&4632"&54.1"&46312"&54."&462#tr#[\ s#fX#22G22$#rt\[+#sfU2G22G2*V632'%&67%   : ysSq : s$-N%#"/#"'&'&'&547'&54632>7#"&546?621#"&54767  )3 A:x CL)j!x U     )`(3+ x f:+Q!n- 3 20 $% UV"8#!"&514?63!2'!!3!265462"&51462126 K55K  @*@VV#}}#KjK 5KK5U UUVX}}X5KK* &54632#"&54?"&463!2#   U  #  ##++05=E%"&547!"&547#1"&5463!232#5!!35'264&"264&"X{XX{X9 +Ug5&&5%P5%%5&!>XX>!!>XX>!+ +g+%5&&5%%5&&5 $'?U &54632"'&7!"&54?!'7#"&54?>#"&5457"&46;12#"&54? *U+ # #% <}_  h#  h  -(  #  % =лs }; # | 6.[os#"'"'&'.'&545&7>7676323.'&'&#"3236767>765454'#"&5146327'7 C%-aaG>-)<  C%-abI?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~[    alert-octagon alert-circleactivityalert-triangle align-centerairplay align-justify align-left align-rightarrow-down-leftarrow-down-rightanchoraperture arrow-left arrow-right arrow-down arrow-up-leftarrow-up-rightarrow-upaward bar-chartat-sign bar-chart-battery-chargingbell-offbattery bluetoothbellbook briefcase camera-offcalendarbookmarkboxcamera check-circlecheck check-squarecast chevron-down chevron-left chevron-right chevron-up chevrons-downchevrons-right chevrons-up chevrons-leftcircle clipboardchromeclockcloud-lightning cloud-drizzle cloud-rain cloud-offcodepen cloud-snowcompasscopycorner-down-rightcorner-down-leftcorner-left-downcorner-left-upcorner-up-leftcorner-up-rightcorner-right-downcorner-right-upcpu credit-card crosshairdiscdeletedownload-clouddownloaddropletedit-editedit-1 external-linkeyefeatherfacebook file-minuseye-off fast-forward file-textfilmfile file-plusfolderfilterflagglobegridhearthomegithubimageinboxlayersinfo instagramlayoutlink- life-buoylinklog-inlistlocklog-outloadermail maximize-mapmap-pinmenumessage-circlemessage-square minimize-mic-off minus-circlemic minus-squaremoonmonitor more-verticalmore-horizontalmovemusic navigation- navigationoctagonpackage pause-circlepause phone-callphone-forwarded phone-missed phone-offphone-incomingphonephone-outgoing pie-chart play-circleplay plus-square plus-circlepocketprinterpowerradiorepeat refresh-ccwrewind rotate-ccw refresh-cw rotate-cwsavesearchserverscissorsshare-shareshieldsettings skip-backshufflesidebar skip-forwardslack smartphonesquarespeakerstar stop-circlesunsunrisetablettagsunsettarget thermometer thumbs-up thumbs-down toggle-left toggle-righttrash-trash trending-up trending-downtriangletypetwitteruploadumbrella upload-cloudunlock user-check user-minus user-plususer-xuserusers video-offvideo voicemailvolume-xvolume-volume-1volumewatchwifix-squarewindx-circlezapzoom-inzoom-outcommandcloudhash headphones underlineitalicboldcrop help-circle paperclip shopping-carttvwifi-offminimizemaximizegitlabslidersstar-onheart-onarchivearrow-down-circlearrow-up-circlearrow-left-circlearrow-right-circlebar-chart-line-bar-chart-line book-opencodedatabase dollar-sign folder-plusgift folder-minus git-commit git-branchgit-pull-request git-mergelinkedin hard-drivemore-vertical-more-horizontal-rsssend shield-off shopping-bagterminaltruckzap-offyoutube=aaPKx\Vh%fonts/iconkit.svgnu[ Created by IconKit PKx\PWHSSfonts/iconkit.woff2nu[wOF2S S^?FFTM Vr @ *6$ ( IlF+*jIl=9}Z*"t ȊmXv܂."3SLPI坪Wb4/ڴS7'1%TLueC;؜]np?[6.c$+''/ ].ppOWQ=idI~/]{̽ZAXSQ fSn#f'FzZOg Lkh261 T$0Wu3@$em.`F{dԠh`YF#fLj Bt'ݮҔN+ܦ2e)S.@j aS'  ߬,,qS dk{5:YN s"cNŁsKS[uV!ާr`r e[O~Њ/K߃y89"eYI9 MG^@L8j^`m9W<$ N"a-9<z"; R<1> ,Up1o^,G0AP  3^ʹ'щs&,2G.?~e?-|DXGl&W9ƹ~o z89!n*N%jkUk-€8k SUniEVm.كx/͛Ra7w^ \.Z>f(>ҲWL*{1..%Ĝe{l*Oz~V"V|vژ|ʓ98@z;BKFS.~蔿'TK)u~ sI?>HжV9/cCB܉R!f+Ɯ6'{## ҹ-P"ʝm]m!JSNaS+s7Qvqmjֺh t,c ![PI!.QռsmB! ^kɌ'-IPd?S2RVn:R 0To-':BB`jmtq+v->ynPD? B@Ŵ60%*yB6CU!yu*[nY?&j$YAHQZLB<%G` ,Vޓ&:b)tLP[T?oGW,l7|-lQTUd t֖bhb*@X{E.E@бV7k2l$ddOl!Q1 $YqU @2PdHaznXYP.gWwkI+,b1`f(%k4q[X,{ly4)I웼LwYhw.JR3VAX ">}p(.)/n]l ]O>ixZ4?B"P5jԎg/p@֖v.'xj{DmmNTo]Ш40Pf2WNNBq3.FSMdž*/0򹳿xe1|QFTNspm-Ln<#ڠ%ϱ8%⻸rsE2"Dz=> |Gw"(h wC@Lctl6(KdjBЁ@55j(E:.cW؈(\bu&Жh0o">7hF-Hљh{ i&'5"Lr)9hu?*3lVC B Ulig\Ry}[+QY5NJ|)֤JC@$ 9%'4ٶ0Vr'Q#Z |+K ٦S4tͱl0`:`81vKbp$1<+If=5mк}[ʜΣvk pm=w碰 <)$+ewʧ@˲#O&>#JTTowJJ1Qlm%20$%삒r+PƪjzEda}<4%tXެavs?E!Yq*d'SnxK#iڶ5)( _N?mjqIqKEV#|_!& @ mUD*9lϯBt>IVj~`{ђo}qb[IKb!%R"Kzj}U5:7RT(0c1P&Wr7nwff= Ĝ{*R] 8Rc+ S;6d7NcJVEm+גR>6!\\2eLm?2l:3Ʈ 7zWx šH܁uhEЭi@ba;3{?xuziٻ*r홏jqe>ζ:-@l|ơtB:^a@O\ll_@4'k 8ء? Ԣ#'?xnI]Z w_=Ԑ^j}.'LWOW'3/"p MAs|ÖEf籢!P;_H3[cZك //9m('}1It@:~|ߟƔ'}W96 iC d-jw$aʐ띓xX^ C}'ŵkdVh^ a+Ӷ6$?TρtvP6PH,͘PĜ*h)Պl:{;0r")R؀;8V. ~_\{οWM;6H=+%[ mJ}X:AݬA-=mY/VԱþ {u ӧ)%dv9,244%'eQ2UWu $l@tE2[v+Jsu6NYeu~\۽~|]jg:Gj]pXR50N85BWV#Z曞܆&9v<<= ECD6^Yf9D/nm*tw v.ͱ BfhUvGNRM dlT[^Q9\I%VUnjv9 apuqt0  ol?>|L!YQ4xB"h d "܇}&[ZG] wUmΗ~9[.}sۀ;ynGe fDegD66@m7x%8vn|ס30j G:W(*h&knsq\%jU8Zr83FdpHhXXVcyMb#g,yζr#c.Y"RU5&?^]Aq5U}@Gmɦ}u֦kq7Sl#ԅGo~/p(e<()=̺;\1KD DRUɍ⌤8иI2DfHkP6wZP8s|J $_O=i8jk(y50!ւK/ąi Ol g;בLFSIF6oes /%tGaɸ~Tq>յvZKok2&=7_ti 4pW.fж Z{ܛGM-8jΎ.=)m y,(O!8sNv=$umE-[.v:p(dv\; wY 1B+/PV՞tECGO/]ceV Iz=g_NQGv \3X>-p\QfO sނdV!] bOǁggk_Q_1N|Z *٘z(i".d@n1- ?Yot'}hBQ$d'Ng] \"ņǐuakϛtt,ceT^ڡ.r\t! 7"`H,t D3/" &DDBkfݕoNM b{%))j m)dF&#Pt%kߤ \hOa-(C<7=:ɁZZ>І]nItW^b)Z֜~אbmv삀- Ab#cl)F]^Q F= DvmWh ʹܶchȅ=*5VD YgG,bw 5Yq9oGX9ð:/׺geo<#ǍVh50aex0 1nܧ :f0zesY,R},1D煆 O=q!丟F]gC;vRGVor6uclC> rK:Dֽ!2_K4>BIť` YBN3ԿW +]fUvrPzV±jzɬM1ߒ//(y'JItZ#/7k^$^3pgK[$;TB"mHFB bqoʕ+Q'eɛ/w E&70MZXLC~GÕu-M̂^U]C-Ωlqhk+b; ICrAB= [Ým\]I}M/q{d6kZN N gY媣4tϤs_dQ|7~rbky7n7/J?hg >آ(OQT[ʺ2*( ٗCp͇࿂VXs:2J $O_h}5QC͜hV$?v,er/aeqSo4k#9D uŰ㦔Y6/'_}՚/,2P=߂qfe\5Kׇ_j*sۡ*|Wi5"VmbM+- @;Ei :X`%()KtF:Dx׬f'v(uͨQ* PuF匳vڭe[}ƺ8`xD_99U8u w0S? {`6vid$4W^[\:p P2%V1\gw2n׳Q@/ImD4F{48YO\Ld-D2ve#=*}_6d(' @I!h @WCa//QW"`?6o(ҏ#JN1䡗x%5/ > tM,P޾m.Z( HR<|uk|҂"\|_ŗɞQJf$+p%FHZ [GE44$pW>I];qC (xG'O{j5Th)5"rrJ0ur4ZMݚ+@ ɞ}}iۂaȄLэnܤ,=QR#:S30*|F@>^rkg|ˣsL"'6լ,>3ZVOZ8]XZ{6vg#Id,ʉΊIP[) /Zg6+/ƬnKseU=[L%ju 5}Lye Zys7%)~Z}:"j__1h(a}Ĥ0ƿLkع![uAhZux뽮6xGse-8r9yU))}@ qɾ`8 WE)huh/u+HW0 X# ~ ShǨ({Khl=Y-=ӶL*ZڳYgQ+]MV}$SY6]Aa\?HZR Z0rxQFn>ynΥϨdqlSL'OaaH N!R1BO:j@3Ƹ5DԚʟwOIfzJܺIA{"_ҧg{ȯpQ)oْ3! VmڡBqنDԼe_Q6ϢNzkUcرlCM28(`_'өWbQa2 KOl޷Y*X%Ar k9I%l0p|;wdC{;~ч]$ދ[!}1b"҆,4R᧬n!}C>U6vz*98i|*>qrS i;*q{PN] .\mJ]ʹ-SyguID{۩)l mmC[ɧx?&  2w&&l%~2l~G_fD- kL}:W >{it+('n.=sM \UlMl1̱ZU9ppiwgNuel駻ʠ?Om &%~,xmj%+deHkL9&FZEh;ja4Vjp,|_{丵bgXg9}2l99]=wN& bňfQ40C5 E#ۛP z)S7ʼn8 ty[ofzVb5HG-m`?fTlüWd>Ztnz<PSDB'zjsm ފ$vIpօSm%]{/8Z\R78T %֩CTPC7(pF*aZ t 05j[Z(š RhnT KY%&6{]8ͩYWGl- vݚu4xtx^#)MG12,Ư5lqV3sy/yN.+nӤq4Bh :")`2"U+$ĉ鏊yS">*F?păfJ:ekώL.B>̙Ru K^&4Տ%^@(&ZZ6 nf%70>94˴ >\?9Sc21¹`v>nغtne>JW} rf\He7%ްGEŮöO ڕdω8}gmeGE(:}f:⇀{ YԄ2xS<|s"8sͷ3ЕZ|?ia!UDzB%sBCtA)kq+PxG kQY,ɒ{JY(j-0# xgOt.d8%%Q[ @#SmhJ#m#HhC(j @+ `#y=n*=.~M kig[ڪnڴUc\pc'ؽZ&Y '^[m 纟b yDQ|Ru6Tè^%B .VtRLߏMM5i1+j3ZbO>1Aΐ4a-ĺ#}J'b-ZѷOtZE$y{WbYFߏnp){63ׅKrEiZ_Ne^)L8wY_'Zހ/͑N*bIa^/2'>A՘ujSSu& =5;-52,Y31Ēk,ƸWAmtٰuђڏ3 Ù Gqktېr^ىHMhWccsK:4!y:A GK"hEY:5b湁X@ث%̷8G Dӝ"ŇO$8 &w󍹍lmڅ 7?p>UX1!#:!(}Mei(u5oh'c-og;zw:H[ϞmXh~No͵:B ۯn{E)I+ 'yMM5%=jv%xm2>^1ZG#ŔUcsQW9xWqTm-9kqfv 6/9=~ϾKv,!)ߒWgŵTߒ||t'=/rc6X+=UL9I~wԊq4l՘M5YVcM.[E62+5kTJH;:VCQ+88W,\vݕ|Н *>8nOGkM#9p-5zxI+L-.ňxD]_Wd4Ucj7L(ү .qRغiU) (%P:}@*M( _ւQ^~򣀢GЋp>WKz* c`/ ss5ΊMO7c;=)nQ>,C_sNB@HL}Qi[ }p6jCTjLYA/ $墦@8zD| `|U-L﫮SkMe܁"'$={Ӫ)k7TY%qkAQP$T;$<к)qQ}Wmok3ODZ`턩ql(N]'%lYv ZE(4)݄0Mt1FhZ#R"<]5ԉw*DY)q+^=2i$%u7vnky/ϴo 2{^Ḗv^LJso ٩oS}KhĿ͸:kzZνsѽi} iz},[`gh ާAh}b 6.b):CPMbG`rC#Fb-Hw6x"O\Ҷ4KQvQN>Xg;Iՙ7=h@m.4<^hKh(eBC}pdO\>ۍ!֋GE&gJXV<TiT9̝ w8evSDurμ$:~0XBC ?)ߎiԷO|(ۊ Siu7kwaﭲ?Ԇk.7Ui&^yM^4c0𕘂;"L 1$Qv0vl%|6,[xd#Y#HMpFݭݰ!=7/hڅ NlV5Űʋ8m^m)ؓv$2 VTJrq E44٦b1oFEMD%[K٨K-G,ϫz~Duiiiui)> 9^yU!m7f'xE9W (@xiZwg6KL&cfև'5y t66_)V7jbr096זQE+䰰7f{ʭ-d^?i!+@x*@~WCsSCCX]S\zzYq db 7Igv1j$ݮ6/::h}]taG66M6Z>muܱOgv(r YOl58?IIe4>mWK'UnWd[e[9g튌A5Uc)k@*p+*R{F7]KG[p wG"D-oZj *lS]!чEȇ48p^ x xIVyc~!7k׻R)uJB\ݺ<\B)*4]qc~=ߝL3vۤi|R@IvD(JLA 3K^GOr22UW4$??'&6Գ][]V22RRVm,mqm>]]tvSjZo>\W_/^)rRV*Qx51"#褬ttfgo `3]\TtَJP4lRy[K8[9m]lV6R7Al! U41~wbT-fl5Y?ϵ].c>?. %|āPi?r2}4ޚCZSckP,+:,prjP@K-̣ѵ8-'AK?$IaTw׎o#id}Ns!W .ׄtpfr\IP >:,~c!75Vjv9:/-5l=~f$.mH!;Ш_-@55'?z?]F3wnAT5B̳%w{.&:I9Sc`Uci֛߲N31[lZN%k֌[]%A C=;pַ" pO4 {pEۆ`H>=Q}>M$FFA!9ۙ-ɕ(~ٱ~#zEca; QALa*k_ %s~jݪ[(N0-C-OXRp -eY,HpIWٴi&eK9r>\΂=˜gc xDg@xI}-0 f|7o^'M BTMs<2XfbMg׽&M>5Ah0>)Z\reKBTK?(|wx8#0ϑ5%Yt[ '4[~#Y'Rrz=~nq$C_^Xzө#݇(fV=u p|'liR^ފG[U^WGNUuWO(q;{z ҥЖ 6U%`(*%z!KC.~DHW#)gkȡ"̹khZ7r^it0*|@vG):%zJ7漙'+' w0tB 5ͳ;Z z:]:+sgW׾h?qwYme/7:Ʒ0OzmQ97 #v2vÔNnFkVxaӭ5rsۗ,嫣sE7:FPR_sxdtóAi,p%,n7<>_wE{`s%m4rx%>cS1{!I f4M)e#%#9^ۻ3oRBi]ٷ%$DEmӦ۷75>`D&6WyII(eDo nk4@bEt{7t@V5YY9y[#o/O l'^қ>[8G+ G"8F^TubCNޝZxx}2)#xsyap9"Ν*ɟL|p~Kާ#gC=SꝎ3ou(KC^ɱb̚  Xn]s~/@"DDgC^8e pY',ykjvWg>ziRr Z8X)쯾h(?9n!α_JAi+=f3g9ŀ&zψ&Ov!6~.: ̋:`|f $YRf sNr+wuwGPwm18䭅OpQk*Gg>`vYGzT=H<d|1pF9Yi9I[pTA6&$y,Zm\Ƒ,XJzz6ATJGz"\k}?८Y5Js#WHvx92)ѪEJ') <ŒBxՉk9c1~V:\sņVB$([Bf>vdyڵe | YʿHXS`ۂMb5k:Q0.}} o} /wP~yE;==j_٩mm]O .uRR.šV.@~o\4%˱b/d+~Ĝlpo8ujCƽ S3iwt^NGP4edk6vdU[J `'"2dx8ц !ۑ\;+˯@z^ǒяV ab̥'*)'HJ V!PK{ 7槭4ͪCi'W/%A eW}~ʆihI3x/<}86FP_( Uwi@ӹk 9 _- X^^ssZZټ^)*dFOZ0Q ?m /B& _5߱XD+Ug g2b|6Ț]G,X;/دvh%1w 'eY&]15JQPx_eO]$w7y8bFW]K]6{NIBn S.dצF~o +U*[Gهn$j)&N V.>iyC zF !~3ǂHdH3M}4O#t3 ”;GajOxXU1&JcNDNc ;>P& HB2 mBDXyt&XTMbzCC\vϰ)Boď2Tȴ$nFmEI*l`M/ʪdn.r1k?8E%rls!g`4WmV}j3-)f3{yIWJq[{$`;\D"hX@%Mȶ CWnvZ+ ~C(Աp5 ns#ݯtDqU+X&h i"{2Al*RңJ}J:ϭȆcy>}S_MBW! R1r&.FF6d)e$ 93xɽh'ǭyX.M ;jx)8Bm{zz ;t='3*edI?ӎ_\X("}7H&/݁*ϜP5jB\[Sjmv16kٓe]tETDr2'oEɔ-/H_!|`RR-`W#wy:<xQM^ĪMWS̻cTsO`] L9d2Z\>ylmTp>2+ [ZϞG2̥w'Y;NZ=Y= 3 * t~i!&)eQAs 0L٤rp9֛KNWa+xZD|vz,͎-O75ܺFI4q՟NRD E>zch)V)@SzF\h!S Fj%##7 u~a0[ ' ~}}?{IQHz&Z@1uY97бzJ. }S262#޻_Pu|WwF:GؽPúZwCJaPPEpFXȶg[L&$)ʠ]vm0+&^M 7X&M,K|걋Sy^ʠf*d{ nl5J6R{DCaiܖcM[ؼ6u뎟UVU%~wccΞq?;y: edBT},98k{79cFڗ7 #;4,ҕν3-zO{! Ab;@\7sxHpʟt|OeDŽM:qrNey ־zO,4(U0:A75~*\ CNf`ljJb(.c^ xN_Om1v5pn>[D; ݓ>_[śCfEtfjMȦq 6;Tn{aQH-P",(ώУ4=c@^RS6b@_'\/rƮ7_G5f]{[&_U1o3C0O=)sU*Ć}#`Hٸ 9=CX>NY|@?DixAJLhW"W֠ZqS#JʯxؒF f6H4i^t^:ݻZGvS>&V? ӷUE\7g<ƈmxycsP>P)LHYe459,$U|ekgf.~dY ._Ԁ8YE6*DW`bb{B<\sNػDH+Xgg7>D =w\a) \Eߥ>5oeZ@Ve2<yx149mE~IX0༁%,:s~ʤa;m'+G|/uin8u;"֦MSZ<:Z\RΜCwm`z=~_hU/߮Xq@iQ ʩO ;1QC3`_|mQ*,+Qtprk깋zNg].\X% KTg$A"fx)knvnj=߰H 0ExSAi /NBOR˧SkD7=^W4*U/6t= DF}8w8-ҬYK9;ѝwǦ7|;ˠtl{ѽ$@*Hfg8lu0QZy7u43ɒfhXgly>lf涖{T%r3mŁvc}aD =3iCW$ԝnҽ u9`b'QLEۜf$I Wr4rP]ĝ Έ b8N,4NٌKQ!4zHD:CJPNɞ#YȇS!hXS!,wq(FYש'iGVL4jwIw$XSm ϟ-T H5B!ȯC^ejcU ~WQP;_RSn0e/ "D*+`JlAP 'HfXpC08Bc8aBRiī˴luC*⧰6'@ѧů4r򐡟F.J3N>~'M%"~RPG4^(z3ݼ $B8Qy:DF}yqיM$-Wm-dma l5hh 9-/s<4}&MܾwOQS\8?Quī= `c6${O [ WLTԥq94ro4P\?Ƶ/|oPFH?rpcO"$j l߉-AzMKխcp9а]%Ĺ渰S@ka2: C#E栾x,U1񞵍ՑMtf=fYmINՠzR`bo~`g-NV~vj B5'au_NxDR!jmn(nyJ?5$/O4tZhrX{I+X"89w־>w 5)NtF)Lw Bj&]NspQPMVKy6lNq|-0+w8`sxuI,1ٟmM. 肯'Fp#qBpB@c A5Bu %Ew,5K^E>'稰eo,n[K~95*D>.}U ܿKasc/ ŧ㛅{+X)/YY'K\ey#*Kk:{S[<Т~}.FhYÎ607Uu*WץӒ.8;5[O8؇:c2;xđ"' ݅i/?^ֲsƪ3|rmí>/B__݀Sϱ<PKx\Wfonts/iconkit.otfnu[OTTO 0CFF ߅FFTM|`fDGDEF? OS/2Wv_u `cmap1:IrheadC6hhea$hmtxͣLmaxpPname-post| ^u_< aa\P3 PfEd@x*\  &$w     H-   iconkiticonkitMediumMediumFontForge 2.0 : iconkit : 14-11-2018FontForge 2.0 : iconkit : 14-11-2018iconkiticonkitVersion 1.0Version 1.0iconkiticonkitlPx*x  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     iconkitI&'   vV/ vV/  a  "0<CPZet #,6>FIO[`lp|",37HXhv )0<EIMV\bfkotx~!$04;HW[`ku|#(.9?IS\`fltz$06;FS[_flt !%/8>BFQZgiqy $/3?ISclt~alert-octagonalert-circleactivityalert-trianglealign-centerairplayalign-justifyalign-leftalign-rightarrow-down-leftarrow-down-rightanchoraperturearrow-leftarrow-rightarrow-downarrow-up-leftarrow-up-rightarrow-upawardbar-chartat-signbar-chart-battery-chargingbell-offbatterybluetoothbellbookbriefcasecamera-offcalendarbookmarkboxcameracheck-circlecheckcheck-squarecastchevron-downchevron-leftchevron-rightchevron-upchevrons-downchevrons-rightchevrons-upchevrons-leftcircleclipboardchromeclockcloud-lightningcloud-drizzlecloud-raincloud-offcodepencloud-snowcompasscopycorner-down-rightcorner-down-leftcorner-left-downcorner-left-upcorner-up-leftcorner-up-rightcorner-right-downcorner-right-upcpucredit-cardcrosshairdiscdeletedownload-clouddownloaddropletedit-editedit-1external-linkeyefeatherfacebookfile-minuseye-offfast-forwardfile-textfilmfilefile-plusfolderfilterflagglobegridhearthomegithubimageinboxlayersinfoinstagramlayoutlink-life-buoylinklog-inlistlocklog-outloadermailmaximize-mapmap-pinmenumessage-circlemessage-squareminimize-mic-offminus-circlemicminus-squaremoonmonitormore-verticalmore-horizontalmovemusicnavigation-navigationoctagonpackagepause-circlepausephone-callphone-forwardedphone-missedphone-offphone-incomingphonephone-outgoingpie-chartplay-circleplayplus-squareplus-circlepocketprinterpowerradiorepeatrefresh-ccwrewindrotate-ccwrefresh-cwrotate-cwsavesearchserverscissorsshare-shareshieldsettingsskip-backshufflesidebarskip-forwardslacksmartphonesquarespeakerstarstop-circlesunsunrisetablettagsunsettargetthermometerthumbs-upthumbs-downtoggle-lefttoggle-righttrash-trashtrending-uptrending-downtriangletypetwitteruploadumbrellaupload-cloudunlockuser-checkuser-minususer-plususer-xuserusersvideo-offvideovoicemailvolume-xvolume-volume-1volumewatchwifix-squarewindx-circlezapzoom-inzoom-outcommandcloudhashheadphonesunderlineitalicboldcrophelp-circlepaperclipshopping-carttvwifi-offminimizemaximizegitlabslidersstar-onheart-onarchivearrow-down-circlearrow-up-circlearrow-left-circlearrow-right-circlebar-chart-line-bar-chart-linebook-opencodedatabasedollar-signfolder-plusgiftfolder-minusgit-commitgit-branchgit-pull-requestgit-mergelinkedinhard-drivemore-vertical-more-horizontal-rsssendshield-offshopping-bagterminaltruckzap-offyoutubeiconkiticonkitY       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\Y]^_`abcdefghijklmnopqrstuvwxyz{|}~<  !"z$&')+.14:<AHGJLQ3SV\@`bbcXhAmTnr+xz{>|r}|Wjr?k2z'=n ä=ˌ'w]ڀW~  78-!!T%{'V)38;@xBUGHL~PWW[X`bfnpErrty{iec19*:*ytOҜ٠i"T~pEW (S 'd->47:VJLQSU ^_b b%fjjsltvy|N~- C# k{=w6 c/SȆZ= B!N  D  '-2p5d<>? AC\EFHKUN R TaY\^cdfpk*nqw<{}ZcL*J *UTUVUTUVUTUVUV*UTUT*UVb$UV* UVUV UVUT T* UV UV *UUUT6}#;UUUVUV*UUUVUV UUU UUK S TU V T T* V( UT  UU UT UT UV UVUUUUPTUUU[UGTUUUdUU*UUUrUU9UoUU4#A 9ѴѬ h (#͋HxUrE[l #D  Vl؋Vn(HH#r,+ynhZq&G|l$$p L l lHL(pp,TLiBL0 aQ?ZVZLl-,{S@*;J$U #U 8 `<KRДhe@U@& UU@#  4 U@rUީ!V4ީ(8hT/XUU@rUT T p8PLU8    8UPP8p T TUr(rpSTTTprȈr f:*c8G$@ D`Q!I> $4I> $38x,2&3-T6[d;!F+̷u5(u56/ȋ)^*@[@=|: Et˼>Wl7m7 S=pj=q^0[k opkmϢ ^a@Pz%v lI zLi^,DچH UT&NԌaʲ=Z)"o)%x*,/Hپ!6!6 O mASe.W`g[2h=VEyx"<(4(4*0],lA&°ۖ"\Ž N$DZ+.L\00$`bUU@ ƨ 8UrUr*9X9X8tr r87UU@9W*rUrU9  ƨ ƨ* UUUU * ƨ*+*7*`*>W%f9X8rrrr:9Xb&WT  ǐ ǐ* T %b :W  ƨ 8UtUt*9Xh|(PUU@9X*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 8UrUr*9X9X8trtr89XՄHՑ*<Dd ` ~\ ƨ* UUUU * ƨ ~T \DhTZ*8p8tV %􁨋9X*tUtU8  ƨ ~Y ]DcU@U@+ H*~Ր*>Dh ` ~X ƨ 8UrUn*9\\8p8p*Z %Pb{ :؋  ƨ* UUUU * ƨ  :|c$P*<*=􁨋9X8trtr:9X􁬋 Dh ` ~X ƨ* UUUU * ƨ ~T ^Dfa+9X8rrrr99X9X*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 8UtU*9 9X8tttt89X*>aկ􁬋9W*rUrU9  ƨ ~Y ]Dcc :W  ƨ 8UtUt*9Xh|(P+*PUU\9X*rUrU8  Ƥ ƨ* UUUU * ƨ ƨ 8UtUt*9X9X8trtr99X9X*tUtU8  ƨ**9X8trtr99X9X*rUrU8  ƨ ƨ* UUUU * ƨ ƨ 8UtUt*9X+Ֆ*d*<*<􁨋9W*rUrU9  ƨ ~T ^DfTT * ǐ ǔ T %􁨋9X8trtr89X􁨋 0` <F%,#"!9r*U|U| A ƒ؋M er!ehRpe| Ɛ *UU|UU|*  ƒ]2k5$Gl()4) 4 1$.n=ǜĸ9d4kd4k֎)q<˔$v˔$vP;D8|8Pļ˔t˔t֎֎u˔u˓ĺ<8xu @) 4) Jbd$~O~Y:75857y|*y * y|edevRm=,ԋL< %v Z-ۦXë~22@ާAP5D\5DT8` ` e\8ʮnʬo!XO)/)>1ާA95D95D<?6+1 r7@"70!-L ʵ" J &h J܋ , 4JNJMa%'8*,U,U n d >+H޴88v֜ :4*<TtTt ̋ ;`HpTnTnT:YtsD &$@ `0  LƋ=9Ɯ4etd4exፔ)l ֓r˚0r˚9dP@堋Uk:48::8*<TzT* ʋ l:3Fܻ {wm#DU#D| i {##DWqT 6#D'  x  0 ܺT =pܻu 4 4 ܻ *X0 *LJ$|YB|Y|YڋLJ̌^03sť̌̌QN;Ŏ9*IU;U< b 2 $ :rWZbBBSTT)  ( TT %^H o rL[X7Q\qƋ2U@F& >sDƅV:58: VƄms,ܰ٢PL٤ܰ*4ܰ ~٢hg&]L#OUtHp4CT | |ԋ  *;TtT|TtTz*< ˋ  || CP \xdtgV:6*;TvT{ ʋ  *; TwTtT{Tt *< nGmr 9B!U*U*θr&*)HY)HY2?,:ٌ3V?ל ~ל ~O |ÇܬխBPQTլܬUU<9X*UrUr 9 ƨ bC[jSK8h\2 q  8&$02$NzHHN4 %8dc4 y,__lPyXa&Ϟ^3 N*>hQHmTXԋHL |6JJ%HL ƨ 8UtUt*9X*9Y8trtq99X9X*rUrU:  ƨU@ ƨ* UUUU * ƨLڸpp6y| =1BXl(VmT=y|4p0pb@ڸL\^Nb@%H4J4J|Vl(ܬ խPPQTլܬ*ܬ WլRP*S#S#S*T X X*S#SU@#S*TPTլ XܬU@:T2F))))2F:H:T*2FT0)T()͹l͹n*T0T0T0T$*͹n͹n)T1)T12F*:HUU?ܬլ WRR*T#S#S X*T*T X#S#S*TRP Xլܬ ܬ լPQTQլܬ | .+ UU@UU: * 4 4 bUU+Jt9F$h?1818ޥ4s0YDX\ޫUt8R8R>)hx`8 e^`ʼnʯO!X1)>)ާA15D95D9<?6?> e[<ʸ9ʫ9!X1))))1!X9ʸ9ʼ< e`?6 n%O<%O=xl+ǐH80 'K'K5D̋9X8tttt89X,f8*lhh ,p՜x~Xy~\v?,t~Ž,"ݺd ݺd`B`@ݺc ݺc(1Ž~""E"E!.`A:ݺc:ݺb@=p2EEt@5(:"?:"?.."I:"I:r+ @2- $Et*>HaՔ*@++c  :W  ƨ 8UlU*7ԋh|(P**8,8t*V %Db ^ ~X ƨ* UUUU * ƨ ~X ^Dbs*H++c :W  ƨ 8UtUt*9Xh|(P**Z8p8p*Z %*U@Pb{ :؋  ƨ* UUUU * ƨ  :|cPsa՘*8++c :W  ƨ 8UtUt*9Xh|(P**Z8p8p*Z %Db ^ ~X ƨ* UUUU * ƨ ~X ^Db++H + XUTUU: * 4 8 bUU+Jt9U>ܬ լLRPլܫܬ խ XQQ*S#SUU@#S W*T*S X#SU@ ƨ 8UxUx*9T9X8tttt89X*9Y8rtr989X*UrUr 9 ƨUU@ ƨ *UUUU*  ƨL@F: T*T*\y  )* VVUU * @ߞ.tнl-Ɵ*c''+՜( V9]/FI'ҋ `8``8aUHHe  lSƵmBHHn{9L 3&n+V' HHKq h < * UVRUU * 0Z$=b+:ko7t`7t`-N=$<ȋ$<ȋr<Ŕ>p,m#k݋j8o& p8Ћvċ>i<i"EԪ xJdBD>:U:!U/\)6`9X9rtrp89X9X*rUrU9  ƨUUT#S X*T*S X#S#S*TPT Xլܬܬ խPRTQլܬ9uH+UU` 2 0* U@UU<U + 4v ƨ *UUUU*  ƨ ƨ8 tUtU*9XUU@9X8rtrt99XUSUY Ƨ* UUUU * ƨ ƨ 9UrUr*9XTT9Y9rrrr89X9X*rUrU9  ƨ*>*<՘*>c :W  ƨ 8UtUx*9T`|$P\8n8p*Z %Df ^ ~T ƪ* UUUU * ƨ ~T ^Df*<a*6*b*=􁨋9X8trtr:9X􁬋 T  ǐ ǐ* T %c :W  ƨ 8UtUt*9Xh|(Pa*=ՙ*<Dd ` ~\ ƨ* UUUU * ƨ ~X ^DbTZ*8p8tV %􁨋9X*rUrU8  ƨ ~Y ]Dc*d*<*=􁨋9W*rUrU9  ƨ ~X ^DbTT * ǐ ǐ T %􁨋9X8trtr99X􁬋 Hs*H++Dh ` ~X ƨ 8UrUr*9X**8,8p*Z %*U@Pby :؋  ƨ* UUUU * ƨ P :|cbP*~*H++c  :W  ƨ 8UlU*8h|(P**8,8p*Z %*U@Dl ` ~T ƨ* UUUU * ƨ ~X ^Db @**H+Dd ` ~\ ƨ* UUUU * Ƭ ~X `DhU@*TZ*8p8tV %**􁨋9X*tUtU8  ƨ ~T ^DgU+*H+Dh ` ~X ƨ* UUUU * ƨ ~X ^DbU@*TZ*8p8pZ %**􁨋9X*rUrU9  ƨ ~T ^Dg+BH,+ HH􁨋9X*rUrU8  ƨ ~X ^DbU@U@TT * ǐ ǔ T %U@*9X8prr87􁨋 HH&H􁨋9X*rUrU8  ƨ ~Y ]DcU@U?TT * ǐ ǔ T %U@*􁨋9X8trtr:9X􁬋 7+HH"+H 􁨋9X8rrrr99X􁨋 *U?T  ǐ ǐ* T %U?U@b :W  ƨ 8UtUt*9Xd|(P*~HH*+H􁨋9X8trtr99X􁬋 *U?T  ǐ nj* T %U@U@c :W  ƨ 8UtUt*9Th|(P$ UUS% *UPܪUrrrrTܪܬ WլRQ*S#S#S*T X X*T#SUU@#UT*rrT ܪUT$m PmPLM(sx>v0XN`XN` 0{R^pY$Y DAcXPPaPP* ƨ 8UtUt*9X9X8tqtr99X9X*rUrU9  ƨUU@ ƨ* UUUU * ƨ(UU@6(ċ zm8Tza: WtKd%R?̋<̈ c9Lǔ94Ǐ1!VF)))) !VD1.ǔ9Nǔ9F c<̊?ҋ@W=n8:FP4NmB772X S pa baT3AA ts%$h4U#KD62$e*$e*1fF?'Ծ?'ԾEL$*ſ.dZY,^5+fYFfYF3,R]Pݲ!! R8f HNS_$6 $" $N#Fyq{tT8 $"  &ċ)H‹/w*8%ݘ|4֖RU*xƧhƧmhpyKKRc9pI3>G3ڋq 7h nf j-lZH~l|{$0h>Z\yT#S X*T*T X#S#S*TRR XլܬU"o6Bg ^Hm{9%<,M$8HD8HE4 "0nL<8\;zT>Sީ>Sީ.ǘo`'Lk[ٯٰ3@8zI$ UUS% *sB􁨋9W8trtr99X􁬋 TF8 ^  ƨ* UUUU * ƨ ƨ 8UtUt*9XJLHӴFF /ëX/AF|E"@=D"E:"E:..:"E:"E@=E"E܋2 B[~k~O^9`*vUvUv<  Ƴ,d6j+.>}=7y M hU0U0*9aR7ԼzBYA Ɯ ;UwUw*9aaS7UU6JPJOa%'9*0U6U g d<+@*UUSr 1+ UU:UU< * 6 6 cUU+Iv99Irr c9΋9΋ *rU;rU; 2UU@z + UUUU: * 2 2 bUU+Jv99Inr b9΋9΋ *rU;rU; 2UU>UUf 1+ XU:UU< * 4 8 cUU+It99Itt c9̋9̋ *tU;pU; 2UU@x + UUUU: * 4 4 bUU+Jt99Itt b9̋9ȋ*tU;tU; 2UU@ ƨ* UUUU * ƨ ƨ :UqUr*9X9Y8trtr99X9X*rUrU8  ƨUUT ƨ* UUUU * ƨ ƨ 8UrUr*9X9Y8trtr99X9X*rUrU8  ƨKԱ|4 *<UU@ + XUUU: * 4 4 bUU+Jt99Jtt b9̋9̋ *tU;pU; 3UU@z + UUUU: * 2 2 bUU+Jv99Jrr b9΋9΋ *rU;rU; 3~ ƨ* UUUU * ƨ ƨ 8UrUr*9X9X8trtr89X9X*rUrU8  ƨKԱh4 x^C&AzL? ? + EXt%L'tJ)u首)u首 2tk d< MH_ZH_Z$P猶cH޿7lXD`D`LMvI9>XyD ,A^"<o8[ynłuh<NDgzP+u.=M&z,kjz(kjV8!2H %| nAT&]0]0啘rlʐݸ8k%LGPGFɤܨ8x_2!l+t+n~xC R HqGXqG\8  HHG`b  )DR$DR$  77h64 < d<0ڌǘP݋vٜ><>8GP'P3 0A~ ÍN\յC^ljڭ E`ύ[WKǐy!$ 8'hԷ8'`Է;n[?=~VDP}7i\Һ`$ѐ;AtrGanŰ?f" V@Vl$[|mE55ZEkUpUB<S"QQ "QQ 7|k=L*Gygp1 @Nkt?L8^V?g %UU@m$x5:5@BP|DU@PxwZgHnnHL= %U@Z{&;c%*c @-5<m(;{(iOUU@tvz_< d3D7v|UU@wwU@32uaGJaGJRFxCi`ACSa(w I7xwwIx  _*rOvӜ`A2ThFrf |DzBB-,̴zEF޳!V:Ӵ4,=ph \X@,?$ӈL`x =ֈ4$ǂ+ǂ+# vDԌũũũũ ԈDjXV avkxktՂ? v=Ero9X9rrrr99X )/2?d4>P -3::.6İ26E"@=p"E:"E:..:"E:"E@=q"E-,z̀*NU@ ƨ* UUUU * Ƥ P 8VrUr*9XTU9R8xrxr99T9X*tUtU8  ƨmU@& UU?U ƨ* UUUU * ƨ ƨ 8UrUr*9XTT9X8rrnr99X9X*rUrU8  ƨ**YU Ƨ* UUUU * ƨ ƨ 9UrUr*9XTT9Y8rrrr89X9X*rUrU8  ƨU@RU@ Ƨ* VzUUU * ƨ l 9UrUr*9X9X8trtr99X9X*rUrU8  ƦUUUZU@5 *U@5 $ UUS% @<>'8(@URUR@N&ua|؋4 ƨ8 tUtU*9XaЋ,EhF#pnrttvvnt#thHE*a΋9X*UrUr 9 ƨ6axv\(Zt ܏o$FFFFo"܌  ƨ* UUUU * ƨ v  ƨ 8UrUr*9X.A /9X8trtr99X0 A.9X*rUrU8  ƨ vA7ܬ XխQQ*T#S v #S*T X X*T#S ɋv #S*TL0լ Xܫ,8A6ܬլRPRRծܬ Ƙ :UrUn*9X9X9rrrr99XUSܬլ WRQ*T#S#S W*T*S X#S#S*TXX XլܬUT9T8tttt89X9X*tUtU8  ƨ* ƨ8 tUtU*9X9X8rtrt99X9X*UrUr 8 ƨaH+ *H+Db ^ ~X ƨ* UUUU * ƨ ~T \DhU@*TZ*8p8uU %**􁨋9X*tUtU8  ƨ ~X ]Dc*<@ ǰ* UUUU * ƨ ƨ 8UtUt*9XTU>ܬ WլRR*T#S ƨ 8UrUr*9W9X8trtr99X͹nT1)T1)*2F:H*>+HH&+HW'`9X8rrrr99Xf&W *U@T  Ǐ ǐ* T %U?U@b :W  ƨ 8UrUr*9Xb|&P*> H+ UU<UU@ * 4 4 `UU8+Ht8\U@*͹nT0T0T$T1͹l*9X*rUrU9  Ƨ Ƨ* UUUU * ƨ#S*T X X*T#S*>*H++Dh ` ~X ƨ 8UrUn*9Y**Z8p8p*Z %*U@Pc{ :ڋ  ƨ* UUUU * ƨ  :|cP@ x U+HH(+HW&b9X8rrnr89Xb&W*U@T  ǐ ǐ* T %U?U@c :W  ƨ 8UlU*7d|(Psx9Utt b9̋9̋*pU;pU; 2*#S*TPTլ Xܬ9X*rUrU9  ƨ ƨ* UUUU * ƨ:T 2F*)T$)T$͹naH+ *H+Dd ` ~\ ƨ* UUUU * Ƭ ~X \DdU@*T*8,8tV %**􁨋9X*tUtU8  ƨ ~X ^Dbs|ծt9>rr b9΋9͋ *sU;sU; 2*:T2F))))2F:H ƨ 8UtUt*9X9Z8trtr89Xܬ լQRQRլܬ*>*H++Dd ` ~\ ƨ 8UrUn*9Y**\8p8p*\ %*U@Pcz :ۋ  ƨ* UUUU * ƨ 0 :|cP709S*rUrU9  Ƭ ƨ* UUUU * ƨ*:R 2F*)T$)T$͹l9T8trxr99T9X*tUtU8  ƨ#S*TPPլ Xܬ 7+H0+HHP&zb9X*rUrU8  ƨ W : cU@U@TT * nj nj T %U@*(W$$9X8lr r87h(W s*>$!9uI+UUb 2 0* U;UU;U + 2v*#S*T X X*S#S ƨ* UUUU * ƨ ƨ 8UtUt*9X *͹nT$T1T$T1͹l*U?A % (HHHH )%  (H@H@%Np|Np@>D@Nl|O1G%Q^J^Jگ | {r  a#>#>x` {qL {ta#>#>` @  {p| !  !  *i8UU@*6 U@*9X*UtUt 8 ƨ ƨ *UUUU*  ƨ ƨ8 rUrU*9X9X8rtrt89X:*U Ut 8 ƨ ƨ *UUUU*  ƨ ƨ8 tUtU*9X9X8tttt89XUl9Y*UrUr 9 ƨ ƨ *UUUU*  ƨ Ƨ8 rUrU*9X9X9rrrr89X9X*UrUm 7 Ƥ ƨ *UUUU*  ƨ Ƨ8 tUxU*9T9X9trtr89X ƨ *UUUU*  ƪ ƪ8 tUtU*9X9X8tttt89X9X*UrSr 8 P* 4v +U@UU8U*  2 2` UUD+9v9Lnn` 99* UM>k %*L x&v X \*#UT*  *#UV#UT*rrT ܪUUT8*U@*Kȋ ƨ 8UtUt*9X9Y8trtr99Xac :W  ƨ 8UtUt*9Tf|(P􁤋9X*rUrU8  ƨ ~X ^DbëDb ^ ~X ƪ* UUUU * ƨ ~T \Dh􁨋9W8trtr99X􁬋 xADl ` ~T ƨ 9UrUq*9YUU@UU@\8p8p*Z %UU@Pcz :ڋ  ƨ* UUUU * ƨ J :yclPaՂ+t + UUUU: * 2 8 bUU+Jt99Jtt b9̋9ʋ*rU:rU< 2/(xAJj@Lf>,Tb>,Tc*z7Fީ!V>ǘ\2\f!(BNAp&#L>V04{+H{+LývDԌũũũũ$ԊDhbV*$ROROn%7U8}))8y/X `D'`(1(1I,(*ދE"@=p"E:"E:..:"E:"E@=q"E2(QUUS Ƥ* UUUU * ƨ ƨ 9UrUr*9X9X*UrUr 9 ƨUU@ ƨ *UUUU*  ƨ ƣ* UUUU * ƨ ƨ 9UrUr*9Xܬ խPQTQլܬܬխ WQQ*S#S;BDd ` ~\ ƨ 8UrUr*9XUU@UU?8,8r*T %UU@Pbz :؋  ƨ* UUUU * ƨ F :|clPaՂ ƨ* VzUUU * ƪ ƪ 8UtUt*9X9Y8trtr99X9X*rUrU8  ƨ-X S/:(<_||]h]h`Ɏ5Ԁ @<(S Ȯx]Õt×zȯrl!j!SH,P*6 &t@ @ H+!:b%6p((~ !(:`)Mt9AA %L0 ֲ  ,ԓ 4u1㶦1㶦KE dӏ!Or/"f@~ @z~ G&MЋMGhA@*>@*>/"8tF h,zP4I_4I_cf+ort/D4=4=}x)N`DëDf8^8UU@9X*UrUr 9 ƨ *TDTTT*  nj nj T %CDnVUU>UU@sXT*8p8p %**:[8UU@9X*UrUr 9 ƨ *TFTU@U@TT*  nj ǐ T %aՀ p9wJ+UUb 0 2* U:UU<U + 2w 4 U@qUz=b w4w%šH34LD[㬡VE#^Pkz0BB/(8h!V<!VA!V@!V> (8h//T(8hީ!V>ީ!V<ǘ `nǘTީީީީTǘnnǘ!V>ީ!V0ީ(8hT/UUrUT T p8PPU8    8UPL8p T TUʋrrpTTUTpr;*Y Ȍ *U8U mP'0' )E~)E\% "(Ry<Fkš:^|š:^|$/!V<!V4!V@(8h /*: ëD; U@< * ƨ *UUUU*  ƨ Ƭ8 tUtU*9X9X8rrrr89Y9X*UrUr 9 ƨֈ[% O3 4PP'ؾq_H Keg"g"Cs b9XChˡo#NR'| ,s,s$;8[YBτK% T  TtTt*<5:Ӌp^w/}ӪWx!x!H=ELXw34$=]ze %EU) ,$Gq s" Qvk na\L*$_Ki+.!/,lr4)z,lt4)))'[e_ո h ҋ fՄTT *z:,$iv;|!nX`$8:@&{!^{{fdQFph@4^ ̋;v8R嬊,Xf@`N069\*U,U,h  V7|nn    R, P!2\}ߔ¢LrD#,|pBO & 3lI"`SOnz\vߡ2ڠӕ|.:8*;T{T{ ʋ  EH (t/@ot g _ ƈ BU|U|*9*͚/N0^ T"N{ { 뤋ޮ"!Qޮ"!QW(3/rbB|W L L ^ 1>  2f Ǝ DUxUx*8y<$tf_VTNOuTvlVW: S JT B` B` 4|T2ѐD1 D03p*p Dn d֧Wo~)R4'Ml@AMl@A (81xY^Ί &$G>G1V4#s֪od)Xg@Ag@A$DDNH[zޭNKDFp{>zR71y0V UUB~0h7V>T>Y2r&&(f0Q͌4~tU@U?**9X8rtrt:9XU@9X*UrUr 8 ƨ* ƨ *UUUU*  ƨ* ƨ8 rUrU*9XU@U@U@U@**9X8tttt89XU@9X*UrUr 8 Ƥ* ƨ *UUUU*  ƨ* ƨ8 tUtU*9XU?U@**9X8trtr89XU@9W*UrUr 9 ƨ* ƨ *UUUU*  Ƨ* ƨ8 tUtU*9X*UlU?U?**9X8rrrr:9XU@9W*UrUr 9 ƨ* ƨ *UUUU*  Ƨ* ƨ8 rUrU*9Xx> TӸ77[ zo6"=5D-BL%\%X%a%X-BM5;.>(\""tx-: T  ǐ ǒ *T %-:-:0(( E8$ L$ P>p4,(4-?|?|%8~%~ B~ttq|ye͒!Lu8l*ܬ WլRQ*S#SUU@#S*T X X*T#SU@  98*K, Q ƨ* UUUU * ƨg׋[O/20Y^ L L+ SyZG'@EPG[֏t.֏._|܄/l J䦋T*8sZH9Jttb9ȋ9ȋ*tU;tU; 2 r5t N7 n n G !4e\FD0 L U |x j jHjH {(R >/<2%x&Y%x&YP=:T3B̈,Q#$=D d b#8$tАK9T$ L L'Y%MTdݧ@ LD0,\[2CUä B! !!âUxC<2ދ[*gJLWݧ@d⎂qjtjCldV!8 O1js/t:؋<E/$__wy‹{̋B. ~]!1  ~]!1 =y0W +@I̋#rL"T ? \? C S  ΄4it- ;8Ie`q. /;d\/(/ /;dx. %IVD.;4-x,_) 5 B( @k܍0+WqL9^  L ~4PIU?USU#D|t {p {t#DU#Dt `  {ܻ=pܻ ∋ܻ=pܻ {  u#D6sn\T*8p8p\ %9 9"  wX%m0=d1=hp U %r <JJJJ =%p U  <ڐJJ%pċHlCfӶDkC~4nVnV@o" kNbb j"ooN"**Z kP\\ܺ **** ܼ\⏘ jܺ)*#FpUU@d8*8*TPd ****dV*8*4d68687w$!$! ako}6:֋x*ܬ XխPQ*S#S#S*T W X*S#SU? *kpM:d$4$D$Ho$xA\b@%JJ4JxVVmT=y|4n6nb@ڶL^AyXG\xxHzЋb&dЋHD  \hHbPP9X(trtr:9XUU@9W*rUrU9  ƨHJz6JJ%HLLڷo\p6y{=HLmT̋PϜUU@* sETfkfj5ԋLT*[z[| %U@AZshshL\HE,E(4\HflslflsdsDZ AUU@U@0G܋I %KCKCZ^4lZ^6hg!(f49_Pƨ<O@ ƨ 9UrUr*9XόY8UU@*0G܋I %UU>U@;VUUUϏ._ ƨ* UUUU * ƨ@b`U@b49PPƨ<O@ ƨ 8UrUr*9XόZ"<UU@* II %UU@U?@VUUUϏ.d ƨ* UUUU * ƨ@b`$ UUS% *U?9W8trtr99X9X*rUrU8  ƨ ƨ* UUUU * ƨ ƨ 8UrUr*9XU@U@ ƨ* VzUUU * ƪ ƪ 8UtUt*9X9X8tttt89X9X*rUrU8  ƬU/ x(+!K!K!K!K(+/ / x(+Z4!K޴!K޴xtT0\Z8e޴l޴n޴޴nxZ7tT0\e޴n!K޴n!KZ7(+/ T0g+Yø<1 M1 MF*l# d#4DŽ5͹B*TSST)͹BrDhs:V)9o)9o.72z:ⴋ2Hև)X)) )ֈ2H: }*; nv$ `mU Ƥ* UUUU * Ƥ ƨ 8UtUt*9XTT9X8tttt89X9X*tUtU8  ƨUUSH? xUUX6 %r <JJJJ =%p U  <ڐJJ%pċHl*sRXDDۘ.-ۗBxUUlQ(DE$i-H-Hۗ G 6*9H+UUd ܋ 4 4* U<UU<U + 4tF (8h//T(8hި!V>ީ!V<ǘ \ _ UTrU:r* 9΋9b rrJ9UVêYY1r [(< ܋0<\<\8<D4 5 $QT \m Ɣm Ɣt L{8hh[lHpH̄V <H`|9X*rUrU8  ƨ ^T AheI4IcD~^Z#6#6 DdFUU@􁨋9X*rUrU8  ƨ ~Y ]Dc+ ƨ 8UrUr*9X9X8trtr89X9X*rUrU9  ƨ ƨ* UUUU * ƨUU@UU@9R*rUrU8  ƨ ƨ* UUUU * ƨ* ƨ 8UtU*9 9X8tttt89XU@9X*rUrU8  ƨ ƨ* UUUU * ƨ* ƨ 8UrUr*9X9X8trtr89XU@9X*rUrU8  ƨ ƨ* UUUU * ƨ* ƨ 9UrUr*9X9X8trtr99X*US ƨ* UUUU * ƨ ƨ 8UtUt*9X9X9rtrt89X9X*rUrU9  ƨ*US ƨ* UUUU * ƨ ƨ 8UrUr*9X9X9rrrr89X9X*rUrU9  ƨ*US ƨ* UUUU * ƨ ƨ 9UrUr*9X9X9rrrr99X9X*rUrU9  ƨU@($32AbBbD&Ԧ& Da`1#/U#;t w( z`#;+YX#/z|   } FP!V<!V4!V@(8h //(8hT!V@ީ!V<ީ ǘ`  UrU:r* 9΋9b rrJ9*ܬ խ WQQ*T#S#S W*T*S X#SU? UlU:t* 9ԋ9b tpJ9*9Y8rtrt99XUU@9X*UrUr 9 ƨՄ8sBDd ` ~\ ƨ* UUUU * ƨ ~X `DhUU@TZ*8p8tV %UU@UU@􁨋9X*tUtU8  ƨ ~T ^Dg+ ƨ 8UrUr*9X9X8trtr89X9X*rUrU8  ƨ ƨ* UUUU * ƨU@* Ƥ* VzUUU * ƪ ƪ 8UtUt*9XUU@9X8tttt89X9X*rUrU@8   ƨ* VzUUU * ƪ ƪ 9UrUr*9XUU@9X8trtr:9X9X*rUrU8  ƨ'Dh ` ~X ƨ* UUUU * ƨ ~T ^Dgx;@ 􁨋9X8rtrt89X􁬋 i"/D` [ ~X ƭ* UUUU * ƨ ~X `Dhx<@􁧋9X8tr r97􁨋 Ed!&9X*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 8UrUr*9X9X8rrrr89X9X*tUtU8  ƨ ƨ* UUUU * ƨ ƨ 8UrUr*9X9X8trtr89XEP*􁨋9X*rUrU9  ƨ ~X ]Ddx;x<Db ^ ~X ƨ 9UrUr*9Xi"iP(|d9X*tUtU8  ƨ W :cx<x<c :W  ƨ 8UtUt*9Xh|(P"z4bdddz3$ # d f$z2#>##>$     $ދ#> #> z4$d d $ &lfj  O sAPdYdq|bqDbYs@B QO0Z8XM|UU@O0[0>`z`z   xgPe WV &:o  &<WT %UU@U@9 UU*U? ƨ :UqUr*9X9X8rrrr99X9W*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 8UrUr*9X+*<c :W  ƨ 8UtUt*9Xh|(PU@U@P(|d:*LUtU8  ƨ "W :cf8V4C ehKCUU@U@y$T*j20.U0<̮x̯xo*UU@:O+DU"U! Ց Ű& kӶQ'@b_xM\0D ( *cO7H;3T;" ŬԼ DlTlT`*p:Pr؋ qdA(,H`8 J`|P1jK"T*ۋHg!ht&Hr0p0Z1Ob͑͒{\D~zw4q= ;d94v4lXv4ld)q)q4lXv4lhv92;d==90Ĝ4ld04ld0)q֎lv˓v˓;d̋8rD"#+$*v!sh9 PU,C MEXGeADA 43y&y&0|2yy44yy0x5CtoDp @\#t0X#t,X@Fk `XѤ@: +67,(d7,<mp@* @DZ#tx #t, @a 9#!$/(7!U!VB!U!VB(7//U4(7ުh!V@ު!V<\<rǘTީީީީTǘdnǘ!V0ީ!V0ީ(8hT/XUU@rUT T p8PPU8    8UPP8p TTUȋrrpTTTTprUU@9X*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 8UrUr*9X9X8trtr89XD 9X*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 9UrUr*9X9X8trtr99Xey,]06$Mua3y5ik O{,d d 8V=ül6H7?P"7"7)('0`gp \%xǢ8Ǣ8BP@vP+DDx9Cs9Csy F(L&JdCTdCTLH直)I8i ih I MBJBJX탎 V  9b"vE2f- % ug T `L#2`L#20(Ff ċJlJgغX)I#()I#4@'hdQDP.;J͸ftflX$,7(>$E6E6"83m04j4jE CZYE*a΋9X*UrUr 9 ƨavKKр f! f!۾\] ]AEdEF+ǘF+ǔ2҄4(=j B*u*vCD Ƥ* UUUU * ƨUU@ ƨ 8UtUt*9XUU@9Y8lr r978^9*?*UV#S*T W X*S#S#S*TXXլ XܬܬխQPQTլܬUU@WE p p*U[*9rI+UUb 2 2* U;UU;U + 2v ƨ 8UrUr*9X9Irr b9΋9 *rU;rU; 2*U@ 4 U@rU ( X ȋ 8,UXUX*ȋ9:4Ӽ|6:VU=us@s@{d ZHϞޮ"!MޮN!MTF(.l@/U(rqo\:*4::8*<TzTl ʋ *4WWlTxűv7hSZZ\+$ 4,S,Sa>:4*<TtTt ȋ tH,T% ' 3@ Ft <t#& X8&{/L(3W!Qޮ8!Qޮ8 20O=   TtTt*<5:΋1'@ëO4cZޠffkoT@P9c˚r˚r֓)l;4ev:4e~Ɲ9=/UJ$ Ī*; TwTTwTr *<   TwTw*;4:ir^&h^_0a^fóH1514ީ!V0ީ(8hT//(8h!V<!V=!V<!V0 (8h/UU@L8p T UUȋqrpTTTTprrUT T p8PUU@LU8    8UP ž+ UUUU: * 4 8 bUU+Jp97Ĝ8˓0˓֎l֎k˓8˓8ě87;b˓v˓v֎l)q74lW;4lhĞ92=UUT ƨ* UUUU * ƨ ƣ 8UrUr*9XTUVêYYX%rc/>n./>n0+,7'؋'\&8̹% rtR12DDVhBz~ezxez)vz4z4N95= B0@<, >ͬ, >ͬ5#*>;4pfhP3F6ȋD <:Dڍ:Y:@:dϐ $ $  &=D%\3,3,nX^؋6Ï j,2*2Hؖs('lX\(K})K})BqH9d8͋#S*T W X*S#SU\9W8trtr99X4pGGnNӹ$~/z~/z5,A1j)r5y,hHo8jDD4+J U K #HՀc :W|  Ɛ @UU*9ltMKZK(mBHY9ldԐӲ֌؈#I |#ll! t#I| !H&~7dnn ;Bᆼ+ 2r60 ^ADoHq_ ab>RR|,:4*<TzTB ʋ T | CP555Nh  ċ1,L\(ߐbD)װK*5^,. +$$xnt<@(dd2ԋ< r\˲øH$H$t1N=0b 9V   TtTt*<8: ƀRUФUФ{(:6*<T{T{ ʋ  |  CPO *$S Ɛ @UU*9l9@`~@9l9p*UU@  ƒ4 Ɣ* UUUU| * Ɣ Ɛ @UU*9lHxc :W|  Ɛ @UU*9lt/>/,j4)0Z, O8#D,D<_47(x t. ]3b\] b\ R4 хH @ P3\3X*@Qמ (\w(Lɺ^4pT+q0o^`b(b T5eʱ5eʱ20״O0f=($C[ xI xI2Ҩҧ6qT6[xS'  5 )*lO++R,85,!A vE $l$l4<ʫ]l]]Uc_a xC1<ٞb|bxhuLHِ\ : _Znu qlj|߼_TT@x&28$ٔN&V\ٔL&V\7\#Lj!<@R< ~:@@4V't0#hȴ$\&!P@i>LBL> Ӥ8Jxu[V}⪔K$KC0eZ: t0΁؋ ӸkLull  6` Rb d  $~$~D |*$9p*U|U@  Ɛ Ɛ* U|UU|U * Ɣ4 Ɛ @UU*9l 9l@|@9p9p*U|U|@  Ɣ,+Q8|9l*UU@  ƒ ~W :c *t*ta$ :W| h Ɛ @UU*9lt|KtKCe{:'|΁؋ ӤkxLoLL  6L RP H $|}$x}< [a|)\&xxw<$ ƨ 9UqUr*9XtUގpx N N,"L`Ƌ8 e^\ʼnʯN!X1)>)ާA15D95D9<?2T*8Tj>7rTP7TLB^K:M !4q_\/ﶋ @V|V|+B8I$vRX[[dld@ɰ6,??}:~""E!"E%.`A:ݺ^:ݺ_@=p/EFF֋EpZE-еE-Э097F|ZT@LsDU??Z<5H959ާ@1)<)P!X`ʴXʼ8 e\`9X8rtrt89XUU@9X*UrUr 8 ƨ Ћ *WlUUU*  ƨ:2A@@܄pK~K <1! XR$((/,tl,tl#{B$ UUS% U@%lgd*P@Nd aԋ9\8ntr88@\‹^9X*UrUr 9 ƨ,d7+6n>8~z7 $$*M0M0% *J$J 7 ~N*Qcۻ*<Q@|;Wro7;X;X+UU  ĥV@{*UU@iyl>jdt2oo2+f+b`> yHE U? xL @ $ UUS% U@*L @ U@ ƨ* VzUUU * ƪ ƪ 8UtUt*9X9X8trtq99X9X*rUrU8  ƨF  ƨ* UUUU * ƨ ƨ 8UtUt*9X~0ݺ\ ݺd%`@`B ݺ^$ݺ^/~~" "E "E`A.ݺc:ݺc:1@=pEU@UUܬխQPRTլܬ` e^8ʼ\ʬn!XO)1)>1ާA95C95E<?2?<̌ c94ǎ94ǐ1!VE)))) !VD1.ǔ9Nǔ9F c<̊?#S*TXXլ Xܬ*~s@Bc :W  ƨ 8UrUr*9Xf|&PUU@UU@\8p8p*Z %UU@Pb| :؋  ƨ* UUUU * ƨ B :|cpP**U@*U-ܬլRPQRլܬ*ܬ WխQQ*S#SUUS Ʀ *UUUU*  ƨ ƨ8 rUrU*9X9W*rUrU9  ƨU? ƨ* UUUU * ƨ ƨ 8UrUr*9X*9Y8trtr99X9X9trtr89X9X*UrUr 9 ƨUUT#S*T W X*S#SU?#S*TPTլ XܬUT ƨ8 tUtU*9X9Y8rtr 97UUU@*UU@9X8rrrr99X9X*UrUr 8 ƨ ƨ *UUUU*  ƨUU@ ƨ8 tUtU*9XhtF,Pcl :؋  ƨ* UUUU * ƨ  :|cP6ZH%x hhPNn]h` {8Wh#l#{8 Q0Q/ (]h6?ID{D{TFLFℊ痄痄^ 8ℊ 8ℊUD::M (( )WEb9X9rrrr99X~'W -]34:|5:{G:ܖ;=4;=, f:ܖp:|p:|"73,g-Dc ^ ~X ƨ 8UtUt*9X& $ &ϊ ϊ%+~Xmms,mCP|  |ԋ *< TtTtTtTt *<  |ԋ |CP8UkRt)t899֌8| %UkUkRƀ :8*<TvS ȋ Ŗ V 9bĜ^:<8::7*<TvT ȋ łUJ$:ـ+2?)U)T)G)T2?,:ٍU Ĥ dՈT$T$*p;T;TpՈ;\ܰ٢PN٤ܰs1s ms-V:54:~VUk9S֋ ʋ  )u S %::CN  |ԋ ̋ TTv*<6:)| ;hspc *< TtTvTtTv *<   TtTt*<6:&,YYYY,&t:܋6*<TvTv  *< T{T}T{Tv *< U#OX&\ ~dcdh ~&^#OSUaU@*U@ UnU:n*9΋9b rrJ99X*rUrU9  ƨ ƨ* UUUU * ƨ Ʀ 8UtUt*9XUU@UUlUc*;0rH+dUU` 2 2* U@UU@U + ,v ƨ 8UrUr*9X9Gtpb9̋9ȋ*tU;pU; 2㕔c?88$d$ $@d8p0D-x܌*ܠ*Ζ0"O y0E,ȘLغJԫ$LНpHНdHw6dQ$,:ENH6A$8W+"VFVF  Ǫ N| ^4/m"~"(.x,:m4:m5& 60‹S=P;4Nhn7n7ԦC]:Ny^$/ +7 &VlVhVnVn %+6 ދS@9r2r2QLǏ'Ti 0#s4(0#`4,1i{2@@n |7hX'E+T$ ۳/bf/bf%tɞHSiY,+i LHVDF ƨ *UUUU*  ƨUU@ ż TrTrTZ*t:D=>D|KU@u| V22{Vu| %D0N@.+i8ixA\VH ¼ ƨ *UUUU*  ƨUU@ PtTpTX*t:D=HDKU@u V,2{Vu| %U@*U? UrU:n*9΋9b rpJ99X*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 8UtUt*9X1'$)܇2 Ƥ* UUUU * ƨ; J8@7@I{**$K>F|!>N|%@bBx= 94;d4lXv4ldv)q)qv4lWv4lh;d92=78ݕ:Yݕ:Y0z*_ >L MM㻔&絤-HгZгZچL Y=:E.~,ȋ9X*rUrU8  ƨ n p& q,J"z"m,.eH:]`:]\5* .0nM9G`AlA32&x&x 7gC""KNaUTU@| 4+ UU<UU@ * 4 4 `UU8+Hx8\9X8prxr89T9zH+UU` 2 2* U@UU@U + ,v*9X9rrrr99X9X*rUrU9  ƨ ƨ* UUUU * ƨ UnU:n*9΋9b rrJ9SV**Ij"-p-ERQ9X*qUrU:  ƨ$'wl=;,(9[ <,N5{<,C5{=(!p?ZUVuL0̋5d:D:D.⿨"hlݾ E0|ʋ8V8TAl9 gڟl gF|%Ӑ%Ӑw d,7vOrbm ^4 N֋ Ǫ+" VFVFVEVF +" Ǫ ES $6H6yEld8%`Bm/(u/($u+:' B@7>,o >,o *56>ȗdT4҄uZҀuZ7 ƨ 8UrUr*9XG\`9Jg0ڞ@d< 7Ĝ˓<˓0֎l֎l7˓;˓Ğ΋87;dv˓v˓)q֎l4lW<4lh<92Ğ=B@$;>d,u>,u*5.2>fUU@U@CxTCDPT N L D +UVUV*  E X| U!ՀutD6,'6,3A[LDLPA[6,'6,(6,'6,A[LP LP A[6,(6,(DttDDtkD ! @9QL@9QL 6  X `@8@8  WU)Mژp00lTzWa  @8@< l ZW`DU)p ulYhYT#5ԋ #2 \j\j w(#2D Wd#5T\\h u,Tz(tDX UUS ! @9QJ@9Q 6  X \@8@< W|U)Mڔt,,lTzWa  @9@8 j ZWbFU), uiYYS#5ԋ #2 XkXj w(#2F Wb#5TZZl u0Tz#tFV U@ ƨ* UUUU * ƨ ƨ 9UrUr*9XTT9X8rrrr99X9X*rUrU8  ƨ*U@ ƨ* UUUU * ƨ ƨ 8UtUt*9XTT9X8rtrt89X9X*rUrU8  ƨ*U@/(8h!V>!V>!V>!V0(8h//T(8hީ!V<ީ!V<ǘ nuǘTީީީީTǘ\pǘ!V=ީ!V/ީ(8hT/UUrUT T p8PLU8! ! 8UPP8p T TUȋrrpTTTTpr/(8h !V>!V0!V>!V0(8h//T(8hީ!V=ީ!V=ǘ\uǘTީީީީTǘ`mǘ!V8ީ!V/ީ(8hT/UUZrUT"T!p8PPU8!!!!8UPP8p T TUȋrrpTTTTprëDUUTxbxZPz%f9X*UrUr 9 ƨ : :Wcx HHDd ` ~\ ƨ8 tUtU*9X􁨋xva􁨋9X8rlr88D pzC d x ƨ *UUUU*  ƨ < 9xE :"0h9X8trtr89X{j&/(7!U!V@!U!V@(7//U4(7ުh!V@ުl!V<\PlǘTީީީީTǘll ǘ!V<ީ!V0ީ(8hT/XUU@rUT T p8PPU8  8UPP8p T TUrrpS!V=!V>!V>(8h//T(8hީ!V>ީ!V<ǘ `mǘTީީީީTǘ`nǘ!V=ީ!V/ީ(8hT/UUrUT T p8PPU8! ! 8UPQ8p T TUȋrrpTTTTpr/(7!U!V?!U!VA(7//U4(7ުl!VAު!VA\4pǘTީީީީTǘamǘ!V,ީ!V,ީ(8hT/XUUSrUTT!p8PUU8 !8UPT8pTTUȋrrpTTTTprY #iV/T*m\l ƨ *UUUU*  ƨ-LKHK1,S\RܖD!)/9\8nrrr89X &FMhMj0>>"teXV/'J6̞6̜R<\8+ :VV  l +0"  hlN "3d"3hd 0 W\V<+ 8N܋[ } + UUTUU: * 1 1 bUU+Ju99X*UqUr 9 ƨ ƨ *UUUU*  ƨUU@x + UUTUU: * 4 8 bUU+Jt9ܬ լPRQլܫܬխ XQQ*T#S @7+N H ƨ* VzUUU * ƪ ƪ 8UtUt*9XU@9W8trtr99X9X*rUrU8  ƨp0vq L Hy +\(<&!&{z4l*=qwUU@ 0lcp(;UUTDDm }̋}ҋB %Pcn`ttj\t|=-{z5&}(y+\ yGNqj[z[| h| &tj^na{!Pܰ&k[W\f]P4 *J*UTn9,zIڹ@s؆lU?7 UU8 Ĝ}h Z, RTBB)h ҋ iZ t 4DDbtbn$ b~5 b~5Y(*|tl ƨ* UUUU * ƨ ƨ 8UtUt*9X({랰 b b՜n \l `&o|M$mM$ B< XW|W| +  t \XDXD,$53D@pp߼Tz4uʘh9Fk&mL$pL lEBW|+@3553@+W|p\|Z|Zh-4dbuEq\Pu9Jtt c9̋9ʋ*rU{I">{I)תT1AYR\1AbR]8xh.?n ?r Kg W l9zWXzFŠH6"86"8(Y)|1;1; (8q??^,K`XƌW.xe, ` )).׆D5-5-*׹'׹'4Q‚{D휣uX&N &Nׄ&U UP+f+d(!^%(DV%(DNP25{=x^=s4zL,tL,^?(xU$U$vɱɱ!P(F(G2=|=[w(5 ,\, d(B@$$ $%r|T5HT5H„ļ׬Ĵ׬<spKjixt{:r€ * DVUUU @* ԋh$/__N6$< D\lŌ`?9((TSS*7̋6mmlDE(v4t|:t< * DUUUU B* ԋh $/__N6(: D\lŌ`?9((TTPS)9,6mmnDDp4~<Ő ` D(UUp*8 /__6(p DD\lgI6t`:r?9(*SUSU* B ԋh6$mmNE84^{Ō ؋ D*URUN*9,N/__6(p DD\jgI8t`:s?9(*RURU* B h 6$llNF7$ tM"j,%%`%`lnt""E "E`B.ݺc:ݺ^:/@=qE%,7*o$.ڠo#.ڔ%8]VJH ,v .zo4 5l=dp=dexٰ|u\('H4t4txS<ƋƋz2Y4Ycm$ UUS% U@P U@@6 FT(8h//(8h!V>!V>!V@!V<(8h //(8hT!V@ީ!V<ީ ǘnnTǘީީީީǘT\U@ Ƥ* VzUUU * ƪ ƪ 8UtUt*9X9X8tttt89X9X*rUrU08   ƨ* VzUUU * ƪ ƪ :UqUr*9X9Y8trtr99X9X*rUrU8  ƨDDl d ~X ƨ* UUUU * ƨ ~Y ]Dc<2i 􁤋9X8rtrt89Y􁫋hGDc ] ~Y ƨ* UUUU * ƨ ~X \Dd<0i􁤋9X8tqtr99X􁨋 ?q9Y*rUrU8  ƨ ƨ* UUUU * ƨUUS ƨ 8UrUr*9X9X9rrrr89X9T*tUtU8  ƨ ƨ* UUUU * ƤUUT ƨ 8UrUr*9X9X8trxr89T􁨋9X*rUrU9  ƨ ~X ]Dc<2<2Dg ^ ~T ƈ 9UrUq*9X(hP(|d9X*tUtU8  ƨ W :c<0<0c :W  ƨ 8UtUt*9Xh|(PQ U@ ƨ* VzUUU * ƪ ƪ 8UtUt*9XU@9X8trtr89X9X*rUrU8  ƨR X1'#S T X1ܘU k8R7V aaN **=qW}դ @D\Wx|\c%KPKQb Ћ P   *` \H@8H@8     8tHH.`\UU@Tz(#,{  X X z($|'p#T < ! h,Tz* t^#,#5 uYZ  #5UU@O I 8&|J<`iz]bУУE"LL# %^^RkYXkYX) 0 @Ll B64|664|6FtXt$dF|j|6L NX @jZk?ZXQxvvݻ ]0X:M0#tFk0 C ;P] <F.8F. DƮ DL G/p ZU@ ƨ* UUUU * ƨ ƨ 8UtUt*9XTT9X8rtrl89X9X*rUrU8  ƤQ *9X8trtr89X9X*rUrU8  ƨ* ƨ* UUUU * ƨ ƨ 8UtUt*9Xk80R X1'#S T X1ܘU k8R7V H>s@@c :W  ƨ 8UtUt*9Xh|(PUU@UU@\8p8t*V %UU@Dh ` ~X ƨ* UUUU * ƨ ~X ^Db$ UUS% UUSRn Fb+v:V:V:V:V+tFbRnRnԈFbũ$:Vũ$:VD+thvDԌũũũũ@ԊDJv+vD:Vũ:VũFbԊRnUUn͹nT0)T0)*2F:T:T2F))))2F:V:T2F*)T0)T0͹n*͹nT0T0T$T1͹l*UU?G UU@H 7L&$8$7j_7 p T#[T#[drm )7j\#1(Ը+HԸ+Hj\ԸԸԸԸj\؋5s2&RU.ܤuU.ܤuXx< ;$Ȳ-B)-B)7M:@20 -|C+t +t '=[ -_s4㿤< dL L v:,R 8 Tn 羄{֋)j\ԼԸԸj\ȰԸ+CԸ+Dj\#1')7 {%) A A6?JR =:2%v6 FFvLIj>@" F D B |@  D D@ VRH*6$/$(:0,!Q(04!Q(-*BҋP^R4y9̋*9;v&Hv(F 4n# Q )d4 (8l\p] |; <&v߬"j$b;x $ ^44TLs\t, t@4U@CB\(Z^6rxxØ ? ? -UU@99lrr 2lL MMN  5tUVBT|DHi| nyXr0b M˒*UU  R* R; v'Uv'U 4m* * $ 2n*rUbrUb9n 1 U@ Ɛƒ 0$U$Ub͒* ~}#cX棑棑QhܦU@ܦ 7h\o\l#{U? =q!޲!޲(Y/[Xss\e!TAp@hx2U@ ƨ8 tUtU*9Xxk|គaa#4#02d`A.jO V=4=4|ʔd GjttkO#$#:H*.^ciJo9| 6(IfI@ Ʀ8 rUrU*9X ~N Ex B fj(yXPF;і \ hh MT 3"WًWjV.X I; @ !V=!V !V>(8h2//T(8hީ!V>ީ!V<ǘ `nǘTީީީީTǘ`nǘ!V=ީ!V/ީ(8hT/UUrUT T p8PPU8    8UPP8p T TUʋrrpTTTTprUUSW X UU?/(8h"!V<!VA!V@!V> (8h//T(8hީ!V>ީ!V<ǘ `pǘTީީީީTǘnn ǘ!V@ީ!V0ީ(8hT/UUrUT T p8PPU8    8ULL8p T TUʋrrpTTUTprUU@D *Y UU@Z Uln + UUUU: * 2 2 bUU+Jt99Inr b9΋9΋ *rU;rU; 2H + WUUU: * 4 4 bUU+Jt99Itt b9̋9̋ *tU;pU; 2UU@D *Y UU@Z *>*Hw+w+c  :W  ƨ 8UlU*8h|(Pjj\8p8* %H+*>*>􁦋9X*rUrU9  ƨ ~T ^DgTT * ǐ ǐ T %!U\*:* UtU8  ƨ ƨ* UUUU * ƨ ƨ 8UtUt*9X9Jtpr b9T9 *pU;'~ؿfvWevW ,(1[,,1[(jjŌMuѺ* 0V ]R@(@(v ̍ p. נ hw- ~ v0/0VFX\겺A YHkpWOF08wL?r?fBEBP w<L` ,P TT y~*ҜD0̋?d U''l_@   $@=<GH,8 >LDT4 @ /X04d*XscP :z  ƨ *UUUU*  ƨ | :Pc*U@T*8,8tV %**􁨋9X*UtUt 8 ƨ ~T ^ DfB@f<9W*UrUr 9 ƨ ƨ *UUUU*  ƨ*UU@9X8tqtr99X9W*rUrU9  ƨ ƨ9 rUrU*9X9X8rrrr99XUU@ܬ WլRP*S#SUU@#S*T W X*T#S ƨ8 UU*89X8trtr89X*UU@ 4 +TV:TU*H d 4YYYT-f4MNt`Gmީ!V0ީ(8hT// (8h!V<!V0!V<!V0 (8h/ Ƭ8 xUxU*9T9X9trtr89XrpTTTTorrUT T!p8PU@fZ](Nx@Nx@1h1(Qb1QLNg@_N[@_Z] /fދ+[ Hv + UUTUU: * 8 8 bUU+Jt99Jtl c9ԋ9΋ *pU;pU< 2:(dA}@}>4~>4~*&$,l:F/W(4zޯ`!V>ޯT!VXX,=pxh `@,@,ӈJ\j=̾44DŽt+DŽ+h+zEԈũũ$ũũ$ԇDhzPg\\ XL+029X9rrrr99X!Q_* SmCO'K11S11R,(tE"@=p"E:"E:..:"E:"E@=q"E,PzXb[ U@($32AbBbD&Ԧ& Da`1#/U#;t w( z`#;+YX#/z|   } +->+ʈ&-|  $Ζt+Fe+jl'(6##0݈00  @8S8Sl 84J t|--]x< ԋ0(q@h޵3DʙD&pʙL&tN/fc h˰Oӌ7Tӌ7TΕcJxPB U@\ U*] UU@^ 7+$(@Bc  :W  ƨ 8UtUt*9Xf|&PUU@UU@\8p9* %UUTDb ^ ~X ƨ* UUUU * ƨ ~X `DhU@\ U*] UU@^ j_ U@\ U*] UU@^ TUUX ,+ XU@UU@ * 4 4 `UU+Hx89Jt b89ȋ*tU:pU< 2_ U@\ U*] UU@^ w+7+D` ` ~\ ƨ* UUUU * ƨ ~X \DdU@*􁨋9X8trtr89X􁤋 c :W  ƨ 8UlU*8@h|(P**􁨋9X*tUtU8  ƨ ~X ^Db9Itt b9̋9̋ *tU;lU; 2UUS#S*SPTլ Wܬܬ լQQQQխܬ9Jrs c9͋9͋ *sUyf?Ћ9686d\F, V5Ax~Aw DԋFtcD G  `R sV( & ^4JKRL  }$UU*7|?Ћyd6%lJlJ\HK;#Zi  &4HH 8Π ND ԋ 54NjhNkـ`G \DhK<MlLMlL 6$ 0  |*UUUU* x LKPJi #pjX _D߻0zF.߽mZ04?\6?d4\Hh8*U U z  0 MM $@j G${`PY9X*rUrU9  ƨ a $& ô'L >3@*>@*:9 3$3$49j@@3 B'LD ,ۘKb\9X8r r87 (;)~@FJHʩ8Mʩ4M` aa`Yʩ0$ʩ& 赸@Ng<(hpl<87+.V\VX  ȋ | ~Z#(OfT5,rrr㖋rPr0fT?Z"~x (UT)8<8<<x&`,,%(LCLCB9*9XB^8LtLtG\@+іS~*I9X*rUrU8  ƨE0: f ptp;9 f!t ǔ!v ǔ cLL 6!t8l!t8lp ptw8gԋ9X8trtr99XIp< F8 J446V6V&64Lm8LqF8X:>{ƨ|̹U@ Ƨ* VzUUU * ƨ l 9UrUr*9X9X8trtr89X9X*rUrU8  ƨHE U?  p6zb ܯ xHT9X*rUrU9  ƨ ƨ* UUUU * ƨ ċC ƨ *UUUU*  ƨ ƨ8 rUrU*9X+6Ci ``z 3 { ƨ* UUUU * ƨ ȋ AheCTWD G \l hOD$5$5t#ƹ ɮ( PWLWP+6Xш9vJ+UUb 2 2* U;UU;U + 2w<s4#S*TQQ XխܬܬլXRXQլܬN$dD`+D`,< k8XT9X*tUtU8  ƨ l[ >H(d  U4 F$B@ )7X#1hjH+xԌ+t|Δȶ՜nݠԌݨԈ٘cՌ.U@9X*rUrU9  ƨ ƨ* UUUU * ƨꔼ@D4 z X z V=L* X X@,V[ԋ(L|*<) ë* $ UUS% a*<c ëb OtNڟMx~ ? 8 ly Ȅn Ȅn )  KT , Kb ՠ @VU+X: L$%`Bl PT T@ z@ z\7|\7|\T80UU>i[ ԋ:z*atTrTr $Ԩ Ŋ[UU@34J=xa; >D<:ʋ:.*zPTrTr ` &$2Žd84x6 Մ U U+4:8U@*J%l)"3p.f.f%L,c33Dh ` ~X ƨ *UUUU*  ƨ ~X ^Dbc34/48%Dh.Ph.P4@)8%$"E,@=pݺd:ݺd:`@. "E$"E"~~Ž,"ݺd!ݺd`A`@ݺc ݺc$1~"oÖ"D"D.`A:ݹ:~ݹ@;%E~vUUSd Q~ 4+ UU<UU@ * 2 . `UU+Hv89Hrnb9΋9΋ *rU:pU< 2UU@e ~c3*Dh ` ~X ƨ *UUUU*  ƨ ~X ]Dcc34.$%g.mg.`3)H%#2E0@=pݺ\:ݺd:`@. "E "E"~~0 ݺ\%ݺd`B`@ݺ^ ݺa$/~ ~"Ž"E""E!.`A:ݺb:ݺc@=p1E%#")H3.pg.фg%.&LL]pd e UU@U?mǘ!V,ީ!V,ީ(8hT//(8h!V@!V<!V<!V= (8g//T(8hީ!V=ީ!V=ǘ`UUT/(8h!V<!V>!V@!V0 (8h//T(8hީ!V<ީ!V<ǘ `lǘTީީ ީީTǘ\UU@UUT/T(8hީ!V<ީ!V@ǘ imǘTީީީީTǘ` lǘ!V2ީ!V/ީ(8hT/UUSUU@nǘTީީީީTǘ`nǘ!V=ީ!V/ީ(8hT// (8f!V>!V0!V>!V/(8h/UUS@P @rUTT r8PPU8 !8UPU8pT TUȋrUU,rpTTTTorrUT"T p9PPU8!!!!8UPUUZUUTP8p T TUȋrrpTTTTprrUT"T!p8PUU@UUTPU8   8UPP8p TTUȋrrpSXrp@RvPdPbvT]ttXT<:t*U(U\ 50 NjbNph~Lp"z }iUiU,{#^vUU9W*UrUr 9 Ƥ ƨ *UUUU*  ƨ 0v +U8UU<U* 2 2` UUL+9uUU#S*LTհ TܫI6a}H JJ%l,>t@@9X*rUrU8  ƨ$ UUS%  ,q +U@UU@U* - -` UUH+9uT9X9rrrr89X9X*UrUr 9 ƨqf r@ %$ %$5hP8p T TUȋr^룴* 4P HQZ4L(L*&̘8+NVV  VƋ~`Hu S ! T#7S$ +>2v(/T(8hީ!V@ީ!V@ǘ fޥBߙ@"n)n#``d9X*UrUr 8 ƨ;߶4l6jI|>tFD l ~X ƨ 8UrUv*9Tww`dI~`ֺֺHs .ŢB:]ŢF:]#FjRx&")+%5W)EfV)Ef ''dd@@]Dzh 5z 5Dft:|2K') ncfnce1Bܩ h/~,#VyO 0D1 jj=pi 4 | @ ƨ 8UxUx*9T%4CJdTŽ/B@35, X@X@ \ v  +W|W|rd [ [לHT0T0+P#[ } 0p@<ϐ ܤZԬUNtNt(dww6CMPMw Ƌ1٠Ͱx)AL)EL2O&`:̋g:Y| 6| 6_>SAAUU@#S*T X X*S#S#S*SRRլ XܬܬլRNQQխܬܬ WլRR*T#SUUS9X*rUrU8  ƨ ƨ* UUUU * ƨ ƨ 9UrUq*9Y9W8rrrr99X#S*P X X*S#S#S*STTլ XܬܬլTNTQխܬܬ XլRR*P#SUUS9T*tUtU8  ƨ ƨ* UUUU * ƨ ƨ 9UrUq*9Y9W8trtr99X8UlJe88h?U?U% L *T9X8rtrt99X9X*UtUt 8 ƨ NX FL\>>ʌCV@ϊzdCkhLf?.f?."\ҋ\e\v¥d },!)},! I7qTGeV<˜FɜФ 4UUp+;(tzs06%\V`GGRO<( 0q}RLtt8@ ܬխQLQլܫ*ܬ WլRQ*S#S#S*T X X*T#SU@#S*TPTլ Xܬ@@Dd ` ~\ ƨ8 pUU*7􁨋HHH+􁨋9X8rtrx89T *?* ƨ 8UtUt*9X*9X8tqtr99XUU@9Y*rUrU9  ƨU@ ƨ* UUUU * ƨ,VS| xՁ p d ()SSSS) , b pP R`zdf>/WL(]0&eُ}L<:Z\">^= l8~vj>[rW`S``VA:A:lVVN9@VzIVzG+BJDaRôRìBSP2p gqL d *(TPTNTPTP*(  V14 bh|L2 *p[#g\[#g _hc(쑎왎8<졒px- T¼iWW+k$;x*T T F Ă%\$ $B* ƨ* UUUU * ƨ ƨ 8UtUt*9XTܬ լRPRPլܬT9X*rUrU9  ƨ ƨ* UUUU * ƨ Ƭ *UUUU*  ƨUU@U@ 4 U@tU2r&Pm<PĜ<*F??8T4Y,F=6(JH"PPL49XeU@U4| *9uH+UU` 2 2* U@UU<U + 4w 4 U]VJH ,v .xo4 5l=`p=`exٰ|v\('H4t4txS<ƋƋz2Y4Ycmx> UU@*UU@U@@* ƨ *UUUU*  ƨU@ ƨ8 pUtU*9XUU@9W8rtrt99X*9X*UtUt 8 ƨ*9X*UrUr 9 ƨ ƨ *UUUU*  ƨU@UU@UUl ƨ *UUUU*  ƨ ƨ8 tUtU*9XUU@9X6rnrr89X9X*UrUr 8 ƨU@Pz&b9X*UrUr 8 ƨ F :Wcl aծaծ9X*UrUr 9 ƨ ƨ *UUUU*  ƨU@Ul$ UUS% TaըaDh ` ~X ƨ8 pUpU*9Z􁨋UU@UU@V8t8t*V %UU?Db ^ ~X ƪ *UUUU*  ƨ ~Y ]Dc*PaկV ƨ *UUUU*  ƨ ƨ8 tUtU*9XUU@$ UUS% CDUU@*X*􁨋9X*UrUr 9 ƨ ~T \ DhTT*  ǐ ǐ T %UU@($W$9X8rtrt89XhW( aծ*P9X8rrrr89X9X*UrUr 8 ƨUUl$ UUS% ** ƨ8 tUtU*9X9X:trtr89XUU>9Y*UrUr 8 ƨ ƨ *UUUU*  ƨ ƨ8 tUtU*9X9X8rtrt89XUU@9Y*UrUr 8 ƨ l *UUUU*  ƨ ƨ8 rUrU*9X9X8rrrr99X9Y*UrUr 8 ƨ ƨ *UUUU*  ƨ** ƨ8 tUtU*9X9X:rrrr89XUU>9Y*UrUr 8 ƨ l *UUUU*  ƨ ƨ8 tUxU*9T9X8tttt89XUU@9Y*UrUr 8 ƨ ƨ *UUUU*  ƨ ƨ8 rUrU*9X9X9rqrr99XUU@9Y*UrUr 8 ƨ ƨ *UUUU*  ƨU@UT#S*TPT Xլܬ>室7:m΋*  rqq8 xu p  4I*^"EY8q"qh! ? ڋ oqq8 xu p PU8!!8UT* ƨ *UUUU*  ƨ ƨ8 tUtU*9XL܋p޲LT޲LT]r+ZkL,,Ӹ-< -< Dݳ9X8rlr989X*UrUr : ƨ*P8o T TUȋr8q"qh! ? ڋUlhjfDb|b>\$~4#S X*T*T X#S@a*j*<*=􁨋9X*UrUr : ƨ ~T \ DhTT*  ǐ ǐ T %D$W9X8tlt88dW()*<՘Dd ` ~\ ƨ8 rUvU*9T􁨋Z8p8p*Z %Db ^ ~X ƨ *UUUU*  ƨ ~Y ]Dc>P!8q6``qdP)A17#GG\2f `E0hl u u FG G # p, ^*>6mW&l͹&l͹3@,>{@>@v=GNWOq&OqGPa@| P@| P3@,&l2G&l2G6ly" UU@"pq6(q6$̫ W Wb|::bzT8lt̫9$qqTXiB hAhr7#GG\3` aE0hp u u FG G # p, \PREq";8PЋq/P=\)^AhtwX(8ڎ ~pڎ ~p L" " [ f d d fN 7 *H L6%X ~l6%N ~l8 8;;8 @6%t~6%t*\tHH\NN\"\"\tڠڤ(@w*U@ ƨ8 tUtU*9X9X8rtrt89XK?|~~~~?}  %~%~-?|?|4**9Irrb 9΋9* U;qU;r 2U@9W*UrUr 9 ƨ ƨ *UUUU*  ƨ4-?|%\%%%-?}44?|-?~~%~% KU@ 4x +U@UU<U* 4 4d UUH+9tUU@oJ"d*d* jP*****\5K*K\Xܺ j**#Dpp j#D#F jpˋ*UU@UUT ƨ8 tUtU*9X9X8rrrr89X9Jnrrb T99* U /!.i8A VO@^Y<0*9q$9q$//$9q$9q*$<\d@^#״6] ^] ^ "D$/T(8hީ!V<ީ!V<ǘ `̼KU*"֌ e`<ʚ / / S""$</T(8hީ!V<ީ!V<ǘ `A8޾eޥ޾eޥt_2|ۚ vݪ ߺ ߺmC#6̞%J9W*UrUr 9 ƨ ƨ *UUUU*  ƨ}.>-e|;Nl;Nz71k4O cӫ^h i *D,Ԉũũũũ"ԊDhU@9X*UrUr : ƨ ƨ *UUUU*  ƨ*x "+ UULUU: * 4 4 bUU+Jt9U@9X*UrUr : ƨ ƨ *UUUU*  ƨ*RnԌFbũ:Vũ$:VD+xhU@U@#S*TPPլ Xܬ ܬ լPRPRլܬ:T2F))))2F:T :T 2F*)T$)T$͹nUT9X8qrrr99X9X*UrUr 9 ƨ ƨ *UUUU*  ƨ ƨ8 rUrU*9XUUSUU@**#S*S X X*P#S#S*TRRխ XܬܬխQPQPլܬ ܬ XլPP*S#SUU@9hG*UUb 4 4* U;UU;U + 2t ƣ 8UtUt*9X9X9rtrt89XmP m/%48J=[ [ ep̋i ߆c!c!EAim:FB]L`֋jܬ XխPQ*S#S#S*T W X*S#SZ]L1)xȴ4$tZQ=HX4sh$sh ^DQ|I"/I$^Dsl_sl_Xl=yTX *9Y8trtr99XUU@9X*rUrU9  ƨU?UU "x +ULUU:U* 2 2b UUJ+9vT9X9rqrr99X9X*UrUr 9 ƨl x +UUU:U* 2 2b UUJ+9wT9X9rqrr89X9X*UrUr 9 ƨ*j *P8U   U8PPp8TT UrrpTTTTpȋrrU TT8pTP8U !U8PTp9TT!UrrpTTTTpNjrrU T T8pP*j *L8U    U8PPp8T T UrrpTTTTpʋrrU T$T4pLP8U    U8PPp8T T UrrpTTTTorrU!T!T8pP= 9+Ġ4lX64ld.)q֎lv˓v˓;d͋8|9+IUU b 4 4 *UU;UU;+ t 2ME~GeAA"43y&y&29Inrb 99* U;rU;r 2*VDR@O>5O,5DҊ<9!9!-u!t!t82x9+JUU b 4 4 *UU;UU;+ t 2batT]ٴYJٴYVzM%A@@A4@t3s&K\s&KT "%T9^8mtrt99X9X*UtUl 8 ƨ**UU@P8U   !U8PPp8T!T!UrrpTTTTorrU!T!T8oPR աTzn'6T6Rpkh&p$[0ٌW 8 LLL ٌ f9*^4Tz8+ ƨ8 ULU*7h(-lràBÕXsl{(R6 <X%fGa~5 WU9X8rtrt99XTWx}LLVTlU@|=-{z5&}(y+\ yGNqj \v: P;I!8&++#}5oƇ,9xDh ` ~X ƨ *UUUU*  ƨ ~X ]DdU@ +!$ ,B[kh%h%<Ѥy}":f!߮&g=[W\f]P*}X*(D5&;,Rld9X*UrUr 8 ƤHEhjGh1 H ;!QF* )|KT ydUYd-- %y,Jͧ@W&v8P-0JX,x8+HVV  Z#.N<ptAS<wt `H\KOwwHAU#XZ\xܬ WլRQ*S#SUU@#S*T X X*T#SUU@ &@L<UUTU@jUU,U@9X8trtr99X9Y*rUrU9  ƨ*UܬլPRTRլܬܬլ XRR*T#S ƨ8 rUrU*9X9X8rrrr89XT͹n)T2)T02F*:H:V2F))))2F:H` ź UlU: *9ԋ9ȋbtpJ9B@*j*>*=P{'f9X*UrUr 8 ƨ  :Wc TT*  ǐ nj T %􁨋9S8rtrx99T s*lUU@ ,v +U@UU@U* 2 .` UxUH+8w9Hrrb 9΋9* U:rU,-.//1T22334568':;= ??@ABC8DDEFHI@JJK&$=$܋ J H% 8\89[6R8*TTB : ZaG *TDTTTC*  aG\ 8 TD T*6  Ƨ* VzUUU * ƪ ƪ 9UrUr*9X9X8trtr99X9X*rUrU8  ƨ  ƨ* VzUUU * ƪ ƪ 8UtUt*9XUU@9X8trtr89X9X*rUrU8  ƨ ?<̠ c9Lǔ94Ǐ1!VF))))!VD1.ǔ9Eǔ9F c<̊??8<̊8p968p94ީ1))!VDǔǔ3t cX0X@3t88l8pީ ީ8l8l63tXX8 c3vǔr!VE) )1-ީ9B8l9B8l<̊6?֋ ~ " "E "E`A.ݺc:ݺc:1@=qE%ZZ%Zڀ@@%!~0ݺ\!ݺ%`@`Aݺ^$ݺ_/~  Ʃ* VzUUU * ƪ ƪ 9UrUr*9X9X8trtr99X9X*rUrU8  ƨ < 8VtUt*9X9X8tttt89X9W*rUnU6  Ƥ ƨ* UUUU * ƨ , U@nU@n* 9ҋ9` n8rH9\9rJ+UUb 2 2* U:UU<U + 2v c :W  ƨ 8UlU*8h|(P􁬋9W*rUrU9  ƨ ~Y ]Dc Dd ` ~X ƨ* UUUU * ƨ ~T ^Df􁨋9X8trtr:9X􁬋   ƨ* VzUUU * ƪ ƪ 8UtUt*9XUU@9X8trtr99X9X*rUrU8  ƨ UUTUU@ UUT* UUS 9X8qrrr99X9X*UsUq 9 ƨ ƨ *UUUU*  ƨUU@ ƨ8 rUrU*9X 9Ltt `9̋9̋ *tU:tU< 2UUT| + UUSU: *  8 bUU+Jx9 Rb 9  *; TwTtTvTt *<   9}aR /\UФ-:68:( hxu j %U?|mAH#顄#顄tD# i ƯƗ?; z {cnN9\UvUJj~5&& %UU@h a@n ^{ ^{@#<bbB4e  v M0H8n (#[dUU@UU@ FrR TDz|BB-0̴z:F @1L1hհx/tAsߠ9T;*UtU8  ƨssP*d\!v4 Z{qn^ DF./ Z(/޵!V>޶!V bdDmLm>qQ֞? yy'9X9rrrr99Xq iSaŬ4i=4-3::6Ć2 E"@=p"E:"E:..:"E:"E@=q"E*(̸'p  Ʀ* UUUU * ƨ P 8VrUr*9XTT9S8xrxr89T9X*tUtU8  ƨ 9X8rtrt89X9X*UrUr 9 ƨ ƨ *UUUU*  ƨ ƨ8 tUtU*9X /(8h!V<!V=!VP!V> (8h//T(8hީ,!V>ީ!V<ǘ \nǘTީީީީTǘnnǘ!V>ީ!V0ީ(8hT/ rUT T p8PPU8    8UPP8r TTUȋrrpTTTTpr *9X*tUtU8  ƨ ƨ* UUUU * ƨ ƨ 8UtUt*9X9X8trtr89X9X*tUlU8  ƨ *9\*UpU 8 ƨU@*9X8trtr99X9W*rUrU9  ƨ ƨ* UUUU * ƨ nV ܬխQPQTլܬUU@ܬ WխQR*S#S#S*T X X*S#S` 8 TDT*6 +,FӶ p$P %铠lT%tٰޜٰޜLIqN]mhmh\qTJLޚٰޚٰ%vlR铮y,JӶT  ǐ ǐ *T %y,Hy,Jnpkx'p]t&Op&Ot#j|'| LPA[6,(6,(DtD\٫$٫$|(84 =pܻ {  u#DU#D|t {p {t#DU#Dt `  {ܻ=pܻ ∋ܻ 9X*rUrU8  ƨ ƨ* UUUU * ƨUU@ ƨ 8UrUr*9X9X8trtr89X ܪV rr*#UV#UV ** #UV#UT*rr VܪܪVrrrrTܪ  $ FD~FD "@ U $ JJ~/ h]RԦN|nD=p[(gP%gP%ճ 6 􁬋9X*rUrU9  ƨ ~X ^Dc**Db ^ ~X ƨ 6UnUr*9X 9R*rUrU9  ƨ ƨ* UUUU * ƨ ƨ 8UtU*9 9X8tttt89X %s <KJJJ =%p U  <ڐJJ%pċHl=pDEۘ4--ۖB=pDC$j-H-Hۗ G  9X*rUrU9  ƨ ƨ* UUUU * ƨUU@ ƨ 8UrUr*9X9X8trtr89X #UT* *#UV#UV*rrT ܪܪVrrrrVܪܪ Vrr*#UV 9V*rUrU8  ƨ ƨ* UUUU * ƪ ƪ 8UrUr*9X9X8trtr89X UUT ڋ$'\'XL^ˉÇl $Z$ZǜT_ӳ"Ӏ$?/0>/B8,jr)/,O8RD|RDz<ؔ_4ͬ7$| \. ]"bL]"_| ?4 [  zD T3d3*|KKCez:(x΁܋ ӠktLoLP  6L RP P $x}$x}< [  ƨ* VzUUU * ƪ ƪ 8UtUt*9X9Y8trtr99X9X*rUrU8  ƨ Pc | :ԋ  ƨ* UUUU * ƨ  :|cP<|(Yp(YpxpbDpLXphIdlP({d9X*tUtU8  ƨ W :c =~* 55 0u++0u 5 5* $ D sbHss􁨋9X*rUrU8  ƨ ~T \DhTT * ǐ ǒ T %UU@􁤋9X8tttt89X􁨋  ƨ* VzUUU * ƪ ƪ 9UrUr*9X9X8trtr99X9X*rUrU8  ƨ UU@UU@ h9Itt c9̋9̋*pU;pU; 2/T(8hީ!V=ީ!V=ǘ^nǘTީީީީTǘ`9Jrr b9΋9΋ *rU:rU< 2FSˣˣ֝֐xᖂ˔ᖃ˔Ad/ ,+ UU@UU@ * 4 0 `UU+Hp9|ܬ լPRTQլܬUU@ܬխ XBQ*T#SUU@ ƨ* UUUU * ƨ ƨ 8UtUt*9XT9X*UqUr 9 ƨ ƨ *UUUU*  ƨ T9X8rtrt89X9X*rUrU8  ƨUUT#S X*T*T X#S#S*TXX Xլܬ9Htd8p9ȋ*tU@tU< 4UUT ƨ8 tUtU*9XUU@9X8rtr87 sd@ss􁨋9X*rUrU8  ƨ ~Y ]DcTT * ǐ ǔ T %UU@􁨋9X8trr98􁬋  9Itb8p;* U;pU; 2UUS#S*SLլ WܫȋU@ܬխQQRQխܬ9Jrr c9΋9΋ *rU:>:css/iconkit.cssnu[/*! * @package IconKit * @version 1.0 */ @font-face { font-family: "iconkit"; src: url('../fonts/iconkit.eot'); src: url('../fonts/iconkit.eot#iefix') format('embedded-opentype'), url('../fonts/iconkit.woff') format('woff'), url('../fonts/iconkit.ttf') format('truetype'), url('../fonts/iconkit.svg#iconkit') format('svg'); } .ik { font-family: 'iconkit' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .ik-alert-octagon:before { content: "\e81b"; } .ik-alert-circle:before { content: "\e81c"; } .ik-activity:before { content: "\e81d"; } .ik-alert-triangle:before { content: "\e81e"; } .ik-align-center:before { content: "\e81f"; } .ik-airplay:before { content: "\e820"; } .ik-align-justify:before { content: "\e821"; } .ik-align-left:before { content: "\e822"; } .ik-align-right:before { content: "\e823"; } .ik-arrow-down-left:before { content: "\e824"; } .ik-arrow-down-right:before { content: "\e825"; } .ik-anchor:before { content: "\e826"; } .ik-aperture:before { content: "\e827"; } .ik-arrow-left:before { content: "\e828"; } .ik-arrow-right:before { content: "\e829"; } .ik-arrow-down:before { content: "\e82a"; } .ik-arrow-up-left:before { content: "\e82b"; } .ik-arrow-up-right:before { content: "\e82c"; } .ik-arrow-up:before { content: "\e82d"; } .ik-award:before { content: "\e82e"; } .ik-bar-chart:before { content: "\e82f"; } .ik-at-sign:before { content: "\e830"; } .ik-bar-chart-2:before { content: "\e831"; } .ik-battery-charging:before { content: "\e832"; } .ik-bell-off:before { content: "\e833"; } .ik-battery:before { content: "\e834"; } .ik-bluetooth:before { content: "\e835"; } .ik-bell:before { content: "\e836"; } .ik-book:before { content: "\e837"; } .ik-briefcase:before { content: "\e838"; } .ik-camera-off:before { content: "\e839"; } .ik-calendar:before { content: "\e83a"; } .ik-bookmark:before { content: "\e83b"; } .ik-box:before { content: "\e83c"; } .ik-camera:before { content: "\e83d"; } .ik-check-circle:before { content: "\e83e"; } .ik-check:before { content: "\e83f"; } .ik-check-square:before { content: "\e840"; } .ik-cast:before { content: "\e841"; } .ik-chevron-down:before { content: "\e842"; } .ik-chevron-left:before { content: "\e843"; } .ik-chevron-right:before { content: "\e844"; } .ik-chevron-up:before { content: "\e845"; } .ik-chevrons-down:before { content: "\e846"; } .ik-chevrons-right:before { content: "\e847"; } .ik-chevrons-up:before { content: "\e848"; } .ik-chevrons-left:before { content: "\e849"; } .ik-circle:before { content: "\e84a"; } .ik-clipboard:before { content: "\e84b"; } .ik-chrome:before { content: "\e84c"; } .ik-clock:before { content: "\e84d"; } .ik-cloud-lightning:before { content: "\e84e"; } .ik-cloud-drizzle:before { content: "\e84f"; } .ik-cloud-rain:before { content: "\e850"; } .ik-cloud-off:before { content: "\e851"; } .ik-codepen:before { content: "\e852"; } .ik-cloud-snow:before { content: "\e853"; } .ik-compass:before { content: "\e854"; } .ik-copy:before { content: "\e855"; } .ik-corner-down-right:before { content: "\e856"; } .ik-corner-down-left:before { content: "\e857"; } .ik-corner-left-down:before { content: "\e858"; } .ik-corner-left-up:before { content: "\e859"; } .ik-corner-up-left:before { content: "\e85a"; } .ik-corner-up-right:before { content: "\e85b"; } .ik-corner-right-down:before { content: "\e85c"; } .ik-corner-right-up:before { content: "\e85d"; } .ik-cpu:before { content: "\e85e"; } .ik-credit-card:before { content: "\e85f"; } .ik-crosshair:before { content: "\e860"; } .ik-disc:before { content: "\e861"; } .ik-delete:before { content: "\e862"; } .ik-download-cloud:before { content: "\e863"; } .ik-download:before { content: "\e864"; } .ik-droplet:before { content: "\e865"; } .ik-edit-2:before { content: "\e866"; } .ik-edit:before { content: "\e867"; } .ik-edit-1:before { content: "\e868"; } .ik-external-link:before { content: "\e869"; } .ik-eye:before { content: "\e86a"; } .ik-feather:before { content: "\e86b"; } .ik-facebook:before { content: "\e86c"; } .ik-file-minus:before { content: "\e86d"; } .ik-eye-off:before { content: "\e86e"; } .ik-fast-forward:before { content: "\e86f"; } .ik-file-text:before { content: "\e870"; } .ik-film:before { content: "\e871"; } .ik-file:before { content: "\e872"; } .ik-file-plus:before { content: "\e873"; } .ik-folder:before { content: "\e874"; } .ik-filter:before { content: "\e875"; } .ik-flag:before { content: "\e876"; } .ik-globe:before { content: "\e877"; } .ik-grid:before { content: "\e878"; } .ik-heart:before { content: "\e879"; } .ik-home:before { content: "\e87a"; } .ik-github:before { content: "\e87b"; } .ik-image:before { content: "\e87c"; } .ik-inbox:before { content: "\e87d"; } .ik-layers:before { content: "\e87e"; } .ik-info:before { content: "\e87f"; } .ik-instagram:before { content: "\e880"; } .ik-layout:before { content: "\e881"; } .ik-link-2:before { content: "\e882"; } .ik-life-buoy:before { content: "\e883"; } .ik-link:before { content: "\e884"; } .ik-log-in:before { content: "\e885"; } .ik-list:before { content: "\e886"; } .ik-lock:before { content: "\e887"; } .ik-log-out:before { content: "\e888"; } .ik-loader:before { content: "\e889"; } .ik-mail:before { content: "\e88a"; } .ik-maximize-2:before { content: "\e88b"; } .ik-map:before { content: "\e88c"; } .ik-map-pin:before { content: "\e88e"; } .ik-menu:before { content: "\e88f"; } .ik-message-circle:before { content: "\e890"; } .ik-message-square:before { content: "\e891"; } .ik-minimize-2:before { content: "\e892"; } .ik-mic-off:before { content: "\e893"; } .ik-minus-circle:before { content: "\e894"; } .ik-mic:before { content: "\e895"; } .ik-minus-square:before { content: "\e896"; } .ik-minus:before { content: "\e897"; } .ik-moon:before { content: "\e898"; } .ik-monitor:before { content: "\e899"; } .ik-more-vertical:before { content: "\e89a"; } .ik-more-horizontal:before { content: "\e89b"; } .ik-move:before { content: "\e89c"; } .ik-music:before { content: "\e89d"; } .ik-navigation-2:before { content: "\e89e"; } .ik-navigation:before { content: "\e89f"; } .ik-octagon:before { content: "\e8a0"; } .ik-package:before { content: "\e8a1"; } .ik-pause-circle:before { content: "\e8a2"; } .ik-pause:before { content: "\e8a3"; } .ik-percent:before { content: "\e8a4"; } .ik-phone-call:before { content: "\e8a5"; } .ik-phone-forwarded:before { content: "\e8a6"; } .ik-phone-missed:before { content: "\e8a7"; } .ik-phone-off:before { content: "\e8a8"; } .ik-phone-incoming:before { content: "\e8a9"; } .ik-phone:before { content: "\e8aa"; } .ik-phone-outgoing:before { content: "\e8ab"; } .ik-pie-chart:before { content: "\e8ac"; } .ik-play-circle:before { content: "\e8ad"; } .ik-play:before { content: "\e8ae"; } .ik-plus-square:before { content: "\e8af"; } .ik-plus-circle:before { content: "\e8b0"; } .ik-plus:before { content: "\e8b1"; } .ik-pocket:before { content: "\e8b2"; } .ik-printer:before { content: "\e8b3"; } .ik-power:before { content: "\e8b4"; } .ik-radio:before { content: "\e8b5"; } .ik-repeat:before { content: "\e8b6"; } .ik-refresh-ccw:before { content: "\e8b7"; } .ik-rewind:before { content: "\e8b8"; } .ik-rotate-ccw:before { content: "\e8b9"; } .ik-refresh-cw:before { content: "\e8ba"; } .ik-rotate-cw:before { content: "\e8bb"; } .ik-save:before { content: "\e8bc"; } .ik-search:before { content: "\e8bd"; } .ik-server:before { content: "\e8be"; } .ik-scissors:before { content: "\e8bf"; } .ik-share-2:before { content: "\e8c0"; } .ik-share:before { content: "\e8c1"; } .ik-shield:before { content: "\e8c2"; } .ik-settings:before { content: "\e8c3"; } .ik-skip-back:before { content: "\e8c4"; } .ik-shuffle:before { content: "\e8c5"; } .ik-sidebar:before { content: "\e8c6"; } .ik-skip-forward:before { content: "\e8c7"; } .ik-slack:before { content: "\e8c8"; } .ik-slash:before { content: "\e8c9"; } .ik-smartphone:before { content: "\e8ca"; } .ik-square:before { content: "\e8cb"; } .ik-speaker:before { content: "\e8cc"; } .ik-star:before { content: "\e8cd"; } .ik-stop-circle:before { content: "\e8ce"; } .ik-sun:before { content: "\e8cf"; } .ik-sunrise:before { content: "\e8d0"; } .ik-tablet:before { content: "\e8d1"; } .ik-tag:before { content: "\e8d2"; } .ik-sunset:before { content: "\e8d3"; } .ik-target:before { content: "\e8d4"; } .ik-thermometer:before { content: "\e8d5"; } .ik-thumbs-up:before { content: "\e8d6"; } .ik-thumbs-down:before { content: "\e8d7"; } .ik-toggle-left:before { content: "\e8d8"; } .ik-toggle-right:before { content: "\e8d9"; } .ik-trash-2:before { content: "\e8da"; } .ik-trash:before { content: "\e8db"; } .ik-trending-up:before { content: "\e8dc"; } .ik-trending-down:before { content: "\e8dd"; } .ik-triangle:before { content: "\e8de"; } .ik-type:before { content: "\e8df"; } .ik-twitter:before { content: "\e8e0"; } .ik-upload:before { content: "\e8e1"; } .ik-umbrella:before { content: "\e8e2"; } .ik-upload-cloud:before { content: "\e8e3"; } .ik-unlock:before { content: "\e8e4"; } .ik-user-check:before { content: "\e8e5"; } .ik-user-minus:before { content: "\e8e6"; } .ik-user-plus:before { content: "\e8e7"; } .ik-user-x:before { content: "\e8e8"; } .ik-user:before { content: "\e8e9"; } .ik-users:before { content: "\e8ea"; } .ik-video-off:before { content: "\e8eb"; } .ik-video:before { content: "\e8ec"; } .ik-voicemail:before { content: "\e8ed"; } .ik-volume-x:before { content: "\e8ee"; } .ik-volume-2:before { content: "\e8ef"; } .ik-volume-1:before { content: "\e8f0"; } .ik-volume:before { content: "\e8f1"; } .ik-watch:before { content: "\e8f2"; } .ik-wifi:before { content: "\e8f3"; } .ik-x-square:before { content: "\e8f4"; } .ik-wind:before { content: "\e8f5"; } .ik-x:before { content: "\e8f6"; } .ik-x-circle:before { content: "\e8f7"; } .ik-zap:before { content: "\e8f8"; } .ik-zoom-in:before { content: "\e8f9"; } .ik-zoom-out:before { content: "\e8fa"; } .ik-command:before { content: "\e8fb"; } .ik-cloud:before { content: "\e8fc"; } .ik-hash:before { content: "\e8fd"; } .ik-headphones:before { content: "\e8fe"; } .ik-underline:before { content: "\e8ff"; } .ik-italic:before { content: "\e900"; } .ik-bold:before { content: "\e901"; } .ik-crop:before { content: "\e902"; } .ik-help-circle:before { content: "\e903"; } .ik-paperclip:before { content: "\e904"; } .ik-shopping-cart:before { content: "\e905"; } .ik-tv:before { content: "\e906"; } .ik-wifi-off:before { content: "\e907"; } .ik-minimize:before { content: "\e88d"; } .ik-maximize:before { content: "\e908"; } .ik-gitlab:before { content: "\e909"; } .ik-sliders:before { content: "\e90a"; } .ik-star-on:before { content: "\e90b"; } .ik-heart-on:before { content: "\e90c"; } .ik-archive:before { content: "\e90d"; } .ik-arrow-down-circle:before { content: "\e90e"; } .ik-arrow-up-circle:before { content: "\e90f"; } .ik-arrow-left-circle:before { content: "\e910"; } .ik-arrow-right-circle:before { content: "\e911"; } .ik-bar-chart-line-:before { content: "\e912"; } .ik-bar-chart-line:before { content: "\e913"; } .ik-book-open:before { content: "\e914"; } .ik-code:before { content: "\e915"; } .ik-database:before { content: "\e916"; } .ik-dollar-sign:before { content: "\e917"; } .ik-folder-plus:before { content: "\e918"; } .ik-gift:before { content: "\e919"; } .ik-folder-minus:before { content: "\e91a"; } .ik-git-commit:before { content: "\e91b"; } .ik-git-branch:before { content: "\e91c"; } .ik-git-pull-request:before { content: "\e91d"; } .ik-git-merge:before { content: "\e91e"; } .ik-linkedin:before { content: "\e91f"; } .ik-hard-drive:before { content: "\e920"; } .ik-more-vertical-:before { content: "\e921"; } .ik-more-horizontal-:before { content: "\e922"; } .ik-rss:before { content: "\e923"; } .ik-send:before { content: "\e924"; } .ik-shield-off:before { content: "\e925"; } .ik-shopping-bag:before { content: "\e926"; } .ik-terminal:before { content: "\e927"; } .ik-truck:before { content: "\e928"; } .ik-zap-off:before { content: "\e929"; } .ik-youtube:before { content: "\e92a"; } .ik-1x { font-size: 1em; } .ik-2x { font-size: 2em; } .ik-3x { font-size: 3em; } .ik-4x { font-size: 4em; } .ik-5x { font-size: 5em; } :root .ik-flip-horizontal, :root .ik-flip-vertical, :root .ik-rotate-180, :root .ik-rotate-270, :root .ik-rotate-90 { -webkit-filter: none; filter: none; display: inline-block; } .ik-rotate-90 { -webkit-transform: rotate(90deg); transform: rotate(90deg); } .ik-rotate-180 { -webkit-transform: rotate(180deg); transform: rotate(180deg); } .ik-rotate-270 { -webkit-transform: rotate(270deg); transform: rotate(270deg); } .ik-flip-horizontal { -webkit-transform: scale(-1, 1); transform: scale(-1, 1); } .ik-flip-vertical { -webkit-transform: scale(1, -1); transform: scale(1, -1); }PKx\}d "+"+css/iconkit.min.cssnu[/*! * @package IconKit * @version 1.0 */@font-face{font-family:iconkit;src:url(../fonts/iconkit.eot);src:url(../fonts/iconkit.eot#iefix) format('embedded-opentype'),url(../fonts/iconkit.woff) format('woff'),url(../fonts/iconkit.ttf) format('truetype'),url(../fonts/iconkit.svg#iconkit) format('svg')}.ik{font-family:iconkit!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ik-alert-octagon:before{content:"\e81b"}.ik-alert-circle:before{content:"\e81c"}.ik-activity:before{content:"\e81d"}.ik-alert-triangle:before{content:"\e81e"}.ik-align-center:before{content:"\e81f"}.ik-airplay:before{content:"\e820"}.ik-align-justify:before{content:"\e821"}.ik-align-left:before{content:"\e822"}.ik-align-right:before{content:"\e823"}.ik-arrow-down-left:before{content:"\e824"}.ik-arrow-down-right:before{content:"\e825"}.ik-anchor:before{content:"\e826"}.ik-aperture:before{content:"\e827"}.ik-arrow-left:before{content:"\e828"}.ik-arrow-right:before{content:"\e829"}.ik-arrow-down:before{content:"\e82a"}.ik-arrow-up-left:before{content:"\e82b"}.ik-arrow-up-right:before{content:"\e82c"}.ik-arrow-up:before{content:"\e82d"}.ik-award:before{content:"\e82e"}.ik-bar-chart:before{content:"\e82f"}.ik-at-sign:before{content:"\e830"}.ik-bar-chart-2:before{content:"\e831"}.ik-battery-charging:before{content:"\e832"}.ik-bell-off:before{content:"\e833"}.ik-battery:before{content:"\e834"}.ik-bluetooth:before{content:"\e835"}.ik-bell:before{content:"\e836"}.ik-book:before{content:"\e837"}.ik-briefcase:before{content:"\e838"}.ik-camera-off:before{content:"\e839"}.ik-calendar:before{content:"\e83a"}.ik-bookmark:before{content:"\e83b"}.ik-box:before{content:"\e83c"}.ik-camera:before{content:"\e83d"}.ik-check-circle:before{content:"\e83e"}.ik-check:before{content:"\e83f"}.ik-check-square:before{content:"\e840"}.ik-cast:before{content:"\e841"}.ik-chevron-down:before{content:"\e842"}.ik-chevron-left:before{content:"\e843"}.ik-chevron-right:before{content:"\e844"}.ik-chevron-up:before{content:"\e845"}.ik-chevrons-down:before{content:"\e846"}.ik-chevrons-right:before{content:"\e847"}.ik-chevrons-up:before{content:"\e848"}.ik-chevrons-left:before{content:"\e849"}.ik-circle:before{content:"\e84a"}.ik-clipboard:before{content:"\e84b"}.ik-chrome:before{content:"\e84c"}.ik-clock:before{content:"\e84d"}.ik-cloud-lightning:before{content:"\e84e"}.ik-cloud-drizzle:before{content:"\e84f"}.ik-cloud-rain:before{content:"\e850"}.ik-cloud-off:before{content:"\e851"}.ik-codepen:before{content:"\e852"}.ik-cloud-snow:before{content:"\e853"}.ik-compass:before{content:"\e854"}.ik-copy:before{content:"\e855"}.ik-corner-down-right:before{content:"\e856"}.ik-corner-down-left:before{content:"\e857"}.ik-corner-left-down:before{content:"\e858"}.ik-corner-left-up:before{content:"\e859"}.ik-corner-up-left:before{content:"\e85a"}.ik-corner-up-right:before{content:"\e85b"}.ik-corner-right-down:before{content:"\e85c"}.ik-corner-right-up:before{content:"\e85d"}.ik-cpu:before{content:"\e85e"}.ik-credit-card:before{content:"\e85f"}.ik-crosshair:before{content:"\e860"}.ik-disc:before{content:"\e861"}.ik-delete:before{content:"\e862"}.ik-download-cloud:before{content:"\e863"}.ik-download:before{content:"\e864"}.ik-droplet:before{content:"\e865"}.ik-edit-2:before{content:"\e866"}.ik-edit:before{content:"\e867"}.ik-edit-1:before{content:"\e868"}.ik-external-link:before{content:"\e869"}.ik-eye:before{content:"\e86a"}.ik-feather:before{content:"\e86b"}.ik-facebook:before{content:"\e86c"}.ik-file-minus:before{content:"\e86d"}.ik-eye-off:before{content:"\e86e"}.ik-fast-forward:before{content:"\e86f"}.ik-file-text:before{content:"\e870"}.ik-film:before{content:"\e871"}.ik-file:before{content:"\e872"}.ik-file-plus:before{content:"\e873"}.ik-folder:before{content:"\e874"}.ik-filter:before{content:"\e875"}.ik-flag:before{content:"\e876"}.ik-globe:before{content:"\e877"}.ik-grid:before{content:"\e878"}.ik-heart:before{content:"\e879"}.ik-home:before{content:"\e87a"}.ik-github:before{content:"\e87b"}.ik-image:before{content:"\e87c"}.ik-inbox:before{content:"\e87d"}.ik-layers:before{content:"\e87e"}.ik-info:before{content:"\e87f"}.ik-instagram:before{content:"\e880"}.ik-layout:before{content:"\e881"}.ik-link-2:before{content:"\e882"}.ik-life-buoy:before{content:"\e883"}.ik-link:before{content:"\e884"}.ik-log-in:before{content:"\e885"}.ik-list:before{content:"\e886"}.ik-lock:before{content:"\e887"}.ik-log-out:before{content:"\e888"}.ik-loader:before{content:"\e889"}.ik-mail:before{content:"\e88a"}.ik-maximize-2:before{content:"\e88b"}.ik-map:before{content:"\e88c"}.ik-map-pin:before{content:"\e88e"}.ik-menu:before{content:"\e88f"}.ik-message-circle:before{content:"\e890"}.ik-message-square:before{content:"\e891"}.ik-minimize-2:before{content:"\e892"}.ik-mic-off:before{content:"\e893"}.ik-minus-circle:before{content:"\e894"}.ik-mic:before{content:"\e895"}.ik-minus-square:before{content:"\e896"}.ik-minus:before{content:"\e897"}.ik-moon:before{content:"\e898"}.ik-monitor:before{content:"\e899"}.ik-more-vertical:before{content:"\e89a"}.ik-more-horizontal:before{content:"\e89b"}.ik-move:before{content:"\e89c"}.ik-music:before{content:"\e89d"}.ik-navigation-2:before{content:"\e89e"}.ik-navigation:before{content:"\e89f"}.ik-octagon:before{content:"\e8a0"}.ik-package:before{content:"\e8a1"}.ik-pause-circle:before{content:"\e8a2"}.ik-pause:before{content:"\e8a3"}.ik-percent:before{content:"\e8a4"}.ik-phone-call:before{content:"\e8a5"}.ik-phone-forwarded:before{content:"\e8a6"}.ik-phone-missed:before{content:"\e8a7"}.ik-phone-off:before{content:"\e8a8"}.ik-phone-incoming:before{content:"\e8a9"}.ik-phone:before{content:"\e8aa"}.ik-phone-outgoing:before{content:"\e8ab"}.ik-pie-chart:before{content:"\e8ac"}.ik-play-circle:before{content:"\e8ad"}.ik-play:before{content:"\e8ae"}.ik-plus-square:before{content:"\e8af"}.ik-plus-circle:before{content:"\e8b0"}.ik-plus:before{content:"\e8b1"}.ik-pocket:before{content:"\e8b2"}.ik-printer:before{content:"\e8b3"}.ik-power:before{content:"\e8b4"}.ik-radio:before{content:"\e8b5"}.ik-repeat:before{content:"\e8b6"}.ik-refresh-ccw:before{content:"\e8b7"}.ik-rewind:before{content:"\e8b8"}.ik-rotate-ccw:before{content:"\e8b9"}.ik-refresh-cw:before{content:"\e8ba"}.ik-rotate-cw:before{content:"\e8bb"}.ik-save:before{content:"\e8bc"}.ik-search:before{content:"\e8bd"}.ik-server:before{content:"\e8be"}.ik-scissors:before{content:"\e8bf"}.ik-share-2:before{content:"\e8c0"}.ik-share:before{content:"\e8c1"}.ik-shield:before{content:"\e8c2"}.ik-settings:before{content:"\e8c3"}.ik-skip-back:before{content:"\e8c4"}.ik-shuffle:before{content:"\e8c5"}.ik-sidebar:before{content:"\e8c6"}.ik-skip-forward:before{content:"\e8c7"}.ik-slack:before{content:"\e8c8"}.ik-slash:before{content:"\e8c9"}.ik-smartphone:before{content:"\e8ca"}.ik-square:before{content:"\e8cb"}.ik-speaker:before{content:"\e8cc"}.ik-star:before{content:"\e8cd"}.ik-stop-circle:before{content:"\e8ce"}.ik-sun:before{content:"\e8cf"}.ik-sunrise:before{content:"\e8d0"}.ik-tablet:before{content:"\e8d1"}.ik-tag:before{content:"\e8d2"}.ik-sunset:before{content:"\e8d3"}.ik-target:before{content:"\e8d4"}.ik-thermometer:before{content:"\e8d5"}.ik-thumbs-up:before{content:"\e8d6"}.ik-thumbs-down:before{content:"\e8d7"}.ik-toggle-left:before{content:"\e8d8"}.ik-toggle-right:before{content:"\e8d9"}.ik-trash-2:before{content:"\e8da"}.ik-trash:before{content:"\e8db"}.ik-trending-up:before{content:"\e8dc"}.ik-trending-down:before{content:"\e8dd"}.ik-triangle:before{content:"\e8de"}.ik-type:before{content:"\e8df"}.ik-twitter:before{content:"\e8e0"}.ik-upload:before{content:"\e8e1"}.ik-umbrella:before{content:"\e8e2"}.ik-upload-cloud:before{content:"\e8e3"}.ik-unlock:before{content:"\e8e4"}.ik-user-check:before{content:"\e8e5"}.ik-user-minus:before{content:"\e8e6"}.ik-user-plus:before{content:"\e8e7"}.ik-user-x:before{content:"\e8e8"}.ik-user:before{content:"\e8e9"}.ik-users:before{content:"\e8ea"}.ik-video-off:before{content:"\e8eb"}.ik-video:before{content:"\e8ec"}.ik-voicemail:before{content:"\e8ed"}.ik-volume-x:before{content:"\e8ee"}.ik-volume-2:before{content:"\e8ef"}.ik-volume-1:before{content:"\e8f0"}.ik-volume:before{content:"\e8f1"}.ik-watch:before{content:"\e8f2"}.ik-wifi:before{content:"\e8f3"}.ik-x-square:before{content:"\e8f4"}.ik-wind:before{content:"\e8f5"}.ik-x:before{content:"\e8f6"}.ik-x-circle:before{content:"\e8f7"}.ik-zap:before{content:"\e8f8"}.ik-zoom-in:before{content:"\e8f9"}.ik-zoom-out:before{content:"\e8fa"}.ik-command:before{content:"\e8fb"}.ik-cloud:before{content:"\e8fc"}.ik-hash:before{content:"\e8fd"}.ik-headphones:before{content:"\e8fe"}.ik-underline:before{content:"\e8ff"}.ik-italic:before{content:"\e900"}.ik-bold:before{content:"\e901"}.ik-crop:before{content:"\e902"}.ik-help-circle:before{content:"\e903"}.ik-paperclip:before{content:"\e904"}.ik-shopping-cart:before{content:"\e905"}.ik-tv:before{content:"\e906"}.ik-wifi-off:before{content:"\e907"}.ik-minimize:before{content:"\e88d"}.ik-maximize:before{content:"\e908"}.ik-gitlab:before{content:"\e909"}.ik-sliders:before{content:"\e90a"}.ik-star-on:before{content:"\e90b"}.ik-heart-on:before{content:"\e90c"}.ik-archive:before{content:"\e90d"}.ik-arrow-down-circle:before{content:"\e90e"}.ik-arrow-up-circle:before{content:"\e90f"}.ik-arrow-left-circle:before{content:"\e910"}.ik-arrow-right-circle:before{content:"\e911"}.ik-bar-chart-line-:before{content:"\e912"}.ik-bar-chart-line:before{content:"\e913"}.ik-book-open:before{content:"\e914"}.ik-code:before{content:"\e915"}.ik-database:before{content:"\e916"}.ik-dollar-sign:before{content:"\e917"}.ik-folder-plus:before{content:"\e918"}.ik-gift:before{content:"\e919"}.ik-folder-minus:before{content:"\e91a"}.ik-git-commit:before{content:"\e91b"}.ik-git-branch:before{content:"\e91c"}.ik-git-pull-request:before{content:"\e91d"}.ik-git-merge:before{content:"\e91e"}.ik-linkedin:before{content:"\e91f"}.ik-hard-drive:before{content:"\e920"}.ik-more-vertical-:before{content:"\e921"}.ik-more-horizontal-:before{content:"\e922"}.ik-rss:before{content:"\e923"}.ik-send:before{content:"\e924"}.ik-shield-off:before{content:"\e925"}.ik-shopping-bag:before{content:"\e926"}.ik-terminal:before{content:"\e927"}.ik-truck:before{content:"\e928"}.ik-zap-off:before{content:"\e929"}.ik-youtube:before{content:"\e92a"}.ik-1x{font-size:1em}.ik-2x{font-size:2em}.ik-3x{font-size:3em}.ik-4x{font-size:4em}.ik-5x{font-size:5em}:root .ik-flip-horizontal,:root .ik-flip-vertical,:root .ik-rotate-180,:root .ik-rotate-270,:root .ik-rotate-90{-webkit-filter:none;filter:none;display:inline-block}.ik-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ik-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ik-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.ik-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.ik-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}PKmy\;00d3-quadtree.jsnu[// https://d3js.org/d3-quadtree/ v1.0.5 Copyright 2018 Mike Bostock (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.d3 = global.d3 || {}))); }(this, (function (exports) { 'use strict'; function tree_add(d) { var x = +this._x.call(null, d), y = +this._y.call(null, d); return add(this.cover(x, y), x, y, d); } function add(tree, x, y, d) { if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points var parent, node = tree._root, leaf = {data: d}, x0 = tree._x0, y0 = tree._y0, x1 = tree._x1, y1 = tree._y1, xm, ym, xp, yp, right, bottom, i, j; // If the tree is empty, initialize the root as a leaf. if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it. while (node.length) { if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree; } // Is the new point is exactly coincident with the existing point? xp = +tree._x.call(null, node.data); yp = +tree._y.call(null, node.data); if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated. do { parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4); if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm))); return parent[j] = node, parent[i] = leaf, tree; } function addAll(data) { var d, i, n = data.length, x, y, xz = new Array(n), yz = new Array(n), x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity; // Compute the points and their extent. for (i = 0; i < n; ++i) { if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue; xz[i] = x; yz[i] = y; if (x < x0) x0 = x; if (x > x1) x1 = x; if (y < y0) y0 = y; if (y > y1) y1 = y; } // If there were no (valid) points, inherit the existing extent. if (x1 < x0) x0 = this._x0, x1 = this._x1; if (y1 < y0) y0 = this._y0, y1 = this._y1; // Expand the tree to cover the new points. this.cover(x0, y0).cover(x1, y1); // Add the new points. for (i = 0; i < n; ++i) { add(this, xz[i], yz[i], data[i]); } return this; } function tree_cover(x, y) { if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points var x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1; // If the quadtree has no extent, initialize them. // Integer extent are necessary so that if we later double the extent, // the existing quadrant boundaries don’t change due to floating point error! if (isNaN(x0)) { x1 = (x0 = Math.floor(x)) + 1; y1 = (y0 = Math.floor(y)) + 1; } // Otherwise, double repeatedly to cover. else if (x0 > x || x > x1 || y0 > y || y > y1) { var z = x1 - x0, node = this._root, parent, i; switch (i = (y < (y0 + y1) / 2) << 1 | (x < (x0 + x1) / 2)) { case 0: { do parent = new Array(4), parent[i] = node, node = parent; while (z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1); break; } case 1: { do parent = new Array(4), parent[i] = node, node = parent; while (z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1); break; } case 2: { do parent = new Array(4), parent[i] = node, node = parent; while (z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y); break; } case 3: { do parent = new Array(4), parent[i] = node, node = parent; while (z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y); break; } } if (this._root && this._root.length) this._root = node; } // If the quadtree covers the point already, just return. else return this; this._x0 = x0; this._y0 = y0; this._x1 = x1; this._y1 = y1; return this; } function tree_data() { var data = []; this.visit(function(node) { if (!node.length) do data.push(node.data); while (node = node.next) }); return data; } function tree_extent(_) { return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]]; } function Quad(node, x0, y0, x1, y1) { this.node = node; this.x0 = x0; this.y0 = y0; this.x1 = x1; this.y1 = y1; } function tree_find(x, y, radius) { var data, x0 = this._x0, y0 = this._y0, x1, y1, x2, y2, x3 = this._x1, y3 = this._y1, quads = [], node = this._root, q, i; if (node) quads.push(new Quad(node, x0, y0, x3, y3)); if (radius == null) radius = Infinity; else { x0 = x - radius, y0 = y - radius; x3 = x + radius, y3 = y + radius; radius *= radius; } while (q = quads.pop()) { // Stop searching if this quadrant can’t contain a closer node. if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue; // Bisect the current quadrant. if (node.length) { var xm = (x1 + x2) / 2, ym = (y1 + y2) / 2; quads.push( new Quad(node[3], xm, ym, x2, y2), new Quad(node[2], x1, ym, xm, y2), new Quad(node[1], xm, y1, x2, ym), new Quad(node[0], x1, y1, xm, ym) ); // Visit the closest quadrant first. if (i = (y >= ym) << 1 | (x >= xm)) { q = quads[quads.length - 1]; quads[quads.length - 1] = quads[quads.length - 1 - i]; quads[quads.length - 1 - i] = q; } } // Visit this point. (Visiting coincident points isn’t necessary!) else { var dx = x - +this._x.call(null, node.data), dy = y - +this._y.call(null, node.data), d2 = dx * dx + dy * dy; if (d2 < radius) { var d = Math.sqrt(radius = d2); x0 = x - d, y0 = y - d; x3 = x + d, y3 = y + d; data = node.data; } } } return data; } function tree_remove(d) { if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points var parent, node = this._root, retainer, previous, next, x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1, x, y, xm, ym, right, bottom, i, j; // If the tree is empty, initialize the root as a leaf. if (!node) return this; // Find the leaf node for the point. // While descending, also retain the deepest parent with a non-removed sibling. if (node.length) while (true) { if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm; if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym; if (!(parent = node, node = node[i = bottom << 1 | right])) return this; if (!node.length) break; if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i; } // Find the point to remove. while (node.data !== d) if (!(previous = node, node = node.next)) return this; if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point. if (previous) return (next ? previous.next = next : delete previous.next), this; // If this is the root point, remove it. if (!parent) return this._root = next, this; // Remove this leaf. next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents. if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) { if (retainer) retainer[j] = node; else this._root = node; } return this; } function removeAll(data) { for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]); return this; } function tree_root() { return this._root; } function tree_size() { var size = 0; this.visit(function(node) { if (!node.length) do ++size; while (node = node.next) }); return size; } function tree_visit(callback) { var quads = [], q, node = this._root, child, x0, y0, x1, y1; if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1)); while (q = quads.pop()) { if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) { var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); } } return this; } function tree_visitAfter(callback) { var quads = [], next = [], q; if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1)); while (q = quads.pop()) { var node = q.node; if (node.length) { var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2; if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym)); if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym)); if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1)); if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1)); } next.push(q); } while (q = next.pop()) { callback(q.node, q.x0, q.y0, q.x1, q.y1); } return this; } function defaultX(d) { return d[0]; } function tree_x(_) { return arguments.length ? (this._x = _, this) : this._x; } function defaultY(d) { return d[1]; } function tree_y(_) { return arguments.length ? (this._y = _, this) : this._y; } function quadtree(nodes, x, y) { var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN); return nodes == null ? tree : tree.addAll(nodes); } function Quadtree(x, y, x0, y0, x1, y1) { this._x = x; this._y = y; this._x0 = x0; this._y0 = y0; this._x1 = x1; this._y1 = y1; this._root = undefined; } function leaf_copy(leaf) { var copy = {data: leaf.data}, next = copy; while (leaf = leaf.next) next = next.next = {data: leaf.data}; return copy; } var treeProto = quadtree.prototype = Quadtree.prototype; treeProto.copy = function() { var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child; if (!node) return copy; if (!node.length) return copy._root = leaf_copy(node), copy; nodes = [{source: node, target: copy._root = new Array(4)}]; while (node = nodes.pop()) { for (var i = 0; i < 4; ++i) { if (child = node.source[i]) { if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)}); else node.target[i] = leaf_copy(child); } } } return copy; }; treeProto.add = tree_add; treeProto.addAll = addAll; treeProto.cover = tree_cover; treeProto.data = tree_data; treeProto.extent = tree_extent; treeProto.find = tree_find; treeProto.remove = tree_remove; treeProto.removeAll = removeAll; treeProto.root = tree_root; treeProto.size = tree_size; treeProto.visit = tree_visit; treeProto.visitAfter = tree_visitAfter; treeProto.x = tree_x; treeProto.y = tree_y; exports.quadtree = quadtree; Object.defineProperty(exports, '__esModule', { value: true }); }))); PKmy\J!==d3-quadtree.min.jsnu[// https://d3js.org/d3-quadtree/ v1.0.5 Copyright 2018 Mike Bostock !function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.d3=t.d3||{})}(this,function(t){"use strict";function i(t,i,e,r){if(isNaN(i)||isNaN(e))return t;var n,h,s,o,a,u,l,_,f,y=t._root,x={data:r},c=t._x0,d=t._y0,v=t._x1,p=t._y1;if(!y)return t._root=x,t;for(;y.length;)if((u=i>=(h=(c+v)/2))?c=h:v=h,(l=e>=(s=(d+p)/2))?d=s:p=s,n=y,!(y=y[_=l<<1|u]))return n[_]=x,t;if(o=+t._x.call(null,y.data),a=+t._y.call(null,y.data),i===o&&e===a)return x.next=y,n?n[_]=x:t._root=x,t;do{n=n?n[_]=new Array(4):t._root=new Array(4),(u=i>=(h=(c+v)/2))?c=h:v=h,(l=e>=(s=(d+p)/2))?d=s:p=s}while((_=l<<1|u)==(f=(a>=s)<<1|o>=h));return n[f]=y,n[_]=x,t}function e(t,i,e,r,n){this.node=t,this.x0=i,this.y0=e,this.x1=r,this.y1=n}function r(t){return t[0]}function n(t){return t[1]}function h(t,i,e){var h=new s(null==i?r:i,null==e?n:e,NaN,NaN,NaN,NaN);return null==t?h:h.addAll(t)}function s(t,i,e,r,n,h){this._x=t,this._y=i,this._x0=e,this._y0=r,this._x1=n,this._y1=h,this._root=void 0}function o(t){for(var i={data:t.data},e=i;t=t.next;)e=e.next={data:t.data};return i}var a=h.prototype=s.prototype;a.copy=function(){var t,i,e=new s(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=o(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var n=0;n<4;++n)(i=r.source[n])&&(i.length?t.push({source:i,target:r.target[n]=new Array(4)}):r.target[n]=o(i));return e},a.add=function(t){var e=+this._x.call(null,t),r=+this._y.call(null,t);return i(this.cover(e,r),e,r,t)},a.addAll=function(t){var e,r,n,h,s=t.length,o=new Array(s),a=new Array(s),u=1/0,l=1/0,_=-1/0,f=-1/0;for(r=0;r_&&(_=n),hf&&(f=h));for(_t||t>n||r>i||i>h))return this;var s,o,a=n-e,u=this._root;switch(o=(i<(r+h)/2)<<1|t<(e+n)/2){case 0:do{(s=new Array(4))[o]=u,u=s}while(h=r+(a*=2),t>(n=e+a)||i>h);break;case 1:do{(s=new Array(4))[o]=u,u=s}while(h=r+(a*=2),(e=n-a)>t||i>h);break;case 2:do{(s=new Array(4))[o]=u,u=s}while(r=h-(a*=2),t>(n=e+a)||r>i);break;case 3:do{(s=new Array(4))[o]=u,u=s}while(r=h-(a*=2),(e=n-a)>t||r>i)}this._root&&this._root.length&&(this._root=u)}return this._x0=e,this._y0=r,this._x1=n,this._y1=h,this},a.data=function(){var t=[];return this.visit(function(i){if(!i.length)do{t.push(i.data)}while(i=i.next)}),t},a.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},a.find=function(t,i,r){var n,h,s,o,a,u,l,_=this._x0,f=this._y0,y=this._x1,x=this._y1,c=[],d=this._root;for(d&&c.push(new e(d,_,f,y,x)),null==r?r=1/0:(_=t-r,f=i-r,y=t+r,x=i+r,r*=r);u=c.pop();)if(!(!(d=u.node)||(h=u.x0)>y||(s=u.y0)>x||(o=u.x1)<_||(a=u.y1)=p)<<1|t>=v)&&(u=c[c.length-1],c[c.length-1]=c[c.length-1-l],c[c.length-1-l]=u)}else{var w=t-+this._x.call(null,d.data),N=i-+this._y.call(null,d.data),g=w*w+N*N;if(g=(o=(x+d)/2))?x=o:d=o,(l=s>=(a=(c+v)/2))?c=a:v=a,i=y,!(y=y[_=l<<1|u]))return this;if(!y.length)break;(i[_+1&3]||i[_+2&3]||i[_+3&3])&&(e=i,f=_)}for(;y.data!==t;)if(r=y,!(y=y.next))return this;return(n=y.next)&&delete y.next,r?(n?r.next=n:delete r.next,this):i?(n?i[_]=n:delete i[_],(y=i[0]||i[1]||i[2]||i[3])&&y===(i[3]||i[2]||i[1]||i[0])&&!y.length&&(e?e[f]=y:this._root=y),this):(this._root=n,this)},a.removeAll=function(t){for(var i=0,e=t.length;i1e-6)if(Math.abs(c*r-a*u)>1e-6&&e){var x=h-n,y=_-o,M=r*r+a*a,l=x*x+y*y,d=Math.sqrt(M),p=Math.sqrt(f),v=e*Math.tan((i-Math.acos((M+f-l)/(2*d*p)))/2),b=v/p,w=v/d;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*u)+","+(s+b*c)),this._+="A"+e+","+e+",0,0,"+ +(c*x>u*y)+","+(this._x1=t+w*r)+","+(this._y1=s+w*a)}else this._+="L"+(this._x1=t)+","+(this._y1=s);else;},arc:function(t,_,e,n,o,r){t=+t,_=+_;var a=(e=+e)*Math.cos(n),u=e*Math.sin(n),c=t+a,f=_+u,x=1^r,y=r?n-o:o-n;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+f:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-f)>1e-6)&&(this._+="L"+c+","+f),e&&(y<0&&(y=y%s+s),y>h?this._+="A"+e+","+e+",0,1,"+x+","+(t-a)+","+(_-u)+"A"+e+","+e+",0,1,"+x+","+(this._x1=c)+","+(this._y1=f):y>1e-6&&(this._+="A"+e+","+e+",0,"+ +(y>=i)+","+x+","+(this._x1=t+e*Math.cos(o))+","+(this._y1=_+e*Math.sin(o))))},rect:function(t,i,s,h){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)+"h"+ +s+"v"+ +h+"h"+-s+"Z"},toString:function(){return this._}},t.path=e,Object.defineProperty(t,"__esModule",{value:!0})}); PKty\*eww d3-path.jsnu[// https://d3js.org/d3-path/ v1.0.7 Copyright 2018 Mike Bostock (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.d3 = global.d3 || {}))); }(this, (function (exports) { 'use strict'; var pi = Math.PI, tau = 2 * pi, epsilon = 1e-6, tauEpsilon = tau - epsilon; function Path() { this._x0 = this._y0 = // start of current subpath this._x1 = this._y1 = null; // end of current subpath this._ = ""; } function path() { return new Path; } Path.prototype = path.prototype = { constructor: Path, moveTo: function(x, y) { this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y); }, closePath: function() { if (this._x1 !== null) { this._x1 = this._x0, this._y1 = this._y0; this._ += "Z"; } }, lineTo: function(x, y) { this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y); }, quadraticCurveTo: function(x1, y1, x, y) { this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y); }, bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y); }, arcTo: function(x1, y1, x2, y2, r) { x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error. if (r < 0) throw new Error("negative radius: " + r); // Is this path empty? Move to (x1,y1). if (this._x1 === null) { this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing. else if (!(l01_2 > epsilon)); // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear? // Equivalently, is (x1,y1) coincident with (x2,y2)? // Or, is the radius zero? Line to (x1,y1). else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) { this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); } // Otherwise, draw an arc! else { var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to. if (Math.abs(t01 - 1) > epsilon) { this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); } this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); } }, arc: function(x, y, r, a0, a1, ccw) { x = +x, y = +y, r = +r; var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x + dx, y0 = y + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error. if (r < 0) throw new Error("negative radius: " + r); // Is this path empty? Move to (x0,y0). if (this._x1 === null) { this._ += "M" + x0 + "," + y0; } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0). else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) { this._ += "L" + x0 + "," + y0; } // Is this arc empty? We’re done. if (!r) return; // Does the angle go the wrong way? Flip the direction. if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle. if (da > tauEpsilon) { this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); } // Is this arc non-empty? Draw an arc! else if (da > epsilon) { this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1)); } }, rect: function(x, y, w, h) { this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z"; }, toString: function() { return this._; } }; exports.path = path; Object.defineProperty(exports, '__esModule', { value: true }); }))); PKy\/CCumd/ReactDnDHTML5Backend.min.jsnu[!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).ReactDnDHTML5Backend={})}(this,(function(e){"use strict";function t(e){var t=null;return function(){return null==t&&(t=e()),t}}function r(e,t){for(var r=0;r0}},{key:"leave",value:function(e){var t,r,n=this.entered.length;return this.entered=(t=this.entered.filter(this.isNodeInDocument),r=e,t.filter((function(e){return e!==r}))),n>0&&0===this.entered.length}},{key:"reset",value:function(){this.entered=[]}}])&&r(t.prototype,n),a&&r(t,a),e}(),a=t((function(){return/firefox/i.test(navigator.userAgent)})),i=t((function(){return Boolean(window.safari)}));function o(e,t){for(var r=0;re))return r[s];d=s-1}}var l=e-t[o=Math.max(0,d)],g=l*l;return r[o]+n[o]*l+a[o]*g+i[o]*l*g}}])&&o(t.prototype,r),n&&o(t,n),e}();function u(e){var t=1===e.nodeType?e:e.parentElement;if(!t)return null;var r=t.getBoundingClientRect(),n=r.top;return{x:r.left,y:n}}function d(e){return{x:e.clientX,y:e.clientY}}function c(e,t,r,n,o){var d,c,l,g="IMG"===(d=t).nodeName&&(a()||!(null===(c=document.documentElement)||void 0===c?void 0:c.contains(d))),f=u(g?e:t),v={x:r.x-f.x,y:r.y-f.y},h=e.offsetWidth,p=e.offsetHeight,m=n.anchorX,D=n.anchorY,y=function(e,t,r,n){var a=e?t.width:r,o=e?t.height:n;return i()&&e&&(o/=window.devicePixelRatio,a/=window.devicePixelRatio),{dragPreviewWidth:a,dragPreviewHeight:o}}(g,t,h,p),w=y.dragPreviewWidth,T=y.dragPreviewHeight,E=o.offsetX,b=o.offsetY,N=0===b||b;return{x:0===E||E?E:new s([0,.5,1],[v.x,v.x/h*w,v.x+w-h]).interpolate(m),y:N?b:(l=new s([0,.5,1],[v.y,v.y/p*T,v.y+T-p]).interpolate(D),i()&&g&&(l+=(window.devicePixelRatio-1)*T),l)}}var l,g="__NATIVE_FILE__",f="__NATIVE_URL__",v="__NATIVE_TEXT__",h=Object.freeze({__proto__:null,FILE:g,URL:f,TEXT:v});function p(e,t,r){var n=t.reduce((function(t,r){return t||e.getData(r)}),"");return null!=n?n:r}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var D=(m(l={},g,{exposeProperties:{files:function(e){return Array.prototype.slice.call(e.files)},items:function(e){return e.items}},matchesTypes:["Files"]}),m(l,f,{exposeProperties:{urls:function(e,t){return p(e,t,"").split("\n")}},matchesTypes:["Url","text/uri-list"]}),m(l,v,{exposeProperties:{text:function(e,t){return p(e,t,"")}},matchesTypes:["Text","text/plain"]}),l);function y(e,t){for(var r=0;r-1}))}))[0]||null}function E(e,t){for(var r=0;r 0; } }, { key: "leave", value: function leave(leavingNode) { var previousLength = this.entered.length; this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode); return previousLength > 0 && this.entered.length === 0; } }, { key: "reset", value: function reset() { this.entered = []; } }]); return EnterLeaveCounter; }(); var isFirefox = memoize(function () { return /firefox/i.test(navigator.userAgent); }); var isSafari = memoize(function () { return Boolean(window.safari); }); function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$1(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); } } function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; } var MonotonicInterpolant = /*#__PURE__*/function () { function MonotonicInterpolant(xs, ys) { _classCallCheck$1(this, MonotonicInterpolant); var length = xs.length; // Rearrange xs and ys so that xs is sorted var indexes = []; for (var i = 0; i < length; i++) { indexes.push(i); } indexes.sort(function (a, b) { return xs[a] < xs[b] ? -1 : 1; }); // Get consecutive differences and slopes var dxs = []; var ms = []; var dx; var dy; for (var _i = 0; _i < length - 1; _i++) { dx = xs[_i + 1] - xs[_i]; dy = ys[_i + 1] - ys[_i]; dxs.push(dx); ms.push(dy / dx); } // Get degree-1 coefficients var c1s = [ms[0]]; for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) { var m2 = ms[_i2]; var mNext = ms[_i2 + 1]; if (m2 * mNext <= 0) { c1s.push(0); } else { dx = dxs[_i2]; var dxNext = dxs[_i2 + 1]; var common = dx + dxNext; c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext)); } } c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients var c2s = []; var c3s = []; var m; for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) { m = ms[_i3]; var c1 = c1s[_i3]; var invDx = 1 / dxs[_i3]; var _common = c1 + c1s[_i3 + 1] - m - m; c2s.push((m - c1 - _common) * invDx); c3s.push(_common * invDx * invDx); } this.xs = xs; this.ys = ys; this.c1s = c1s; this.c2s = c2s; this.c3s = c3s; } _createClass$1(MonotonicInterpolant, [{ key: "interpolate", value: function interpolate(x) { var xs = this.xs, ys = this.ys, c1s = this.c1s, c2s = this.c2s, c3s = this.c3s; // The rightmost point in the dataset should give an exact result var i = xs.length - 1; if (x === xs[i]) { return ys[i]; } // Search for the interval x is in, returning the corresponding y if x is one of the original xs var low = 0; var high = c3s.length - 1; var mid; while (low <= high) { mid = Math.floor(0.5 * (low + high)); var xHere = xs[mid]; if (xHere < x) { low = mid + 1; } else if (xHere > x) { high = mid - 1; } else { return ys[mid]; } } i = Math.max(0, high); // Interpolate var diff = x - xs[i]; var diffSq = diff * diff; return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq; } }]); return MonotonicInterpolant; }(); var ELEMENT_NODE = 1; function getNodeClientOffset(node) { var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement; if (!el) { return null; } var _el$getBoundingClient = el.getBoundingClientRect(), top = _el$getBoundingClient.top, left = _el$getBoundingClient.left; return { x: left, y: top }; } function getEventClientOffset(e) { return { x: e.clientX, y: e.clientY }; } function isImageNode(node) { var _document$documentEle; return node.nodeName === 'IMG' && (isFirefox() || !((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.contains(node))); } function getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) { var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth; var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers if (isSafari() && isImage) { dragPreviewHeight /= window.devicePixelRatio; dragPreviewWidth /= window.devicePixelRatio; } return { dragPreviewWidth: dragPreviewWidth, dragPreviewHeight: dragPreviewHeight }; } function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) { // The browsers will use the image intrinsic size under different conditions. // Firefox only cares if it's an image, but WebKit also wants it to be detached. var isImage = isImageNode(dragPreview); var dragPreviewNode = isImage ? sourceNode : dragPreview; var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode); var offsetFromDragPreview = { x: clientOffset.x - dragPreviewNodeOffsetFromClient.x, y: clientOffset.y - dragPreviewNodeOffsetFromClient.y }; var sourceWidth = sourceNode.offsetWidth, sourceHeight = sourceNode.offsetHeight; var anchorX = anchorPoint.anchorX, anchorY = anchorPoint.anchorY; var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight), dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth, dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight; var calculateYOffset = function calculateYOffset() { var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top offsetFromDragPreview.y, // Align at the center offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]); var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug if (isSafari() && isImage) { // We'll have to wait for @3x to see if this is entirely correct y += (window.devicePixelRatio - 1) * dragPreviewHeight; } return y; }; var calculateXOffset = function calculateXOffset() { // Interpolate coordinates depending on anchor point // If you know a simpler way to do this, let me know var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left offsetFromDragPreview.x, // Align at the center offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]); return interpolantX.interpolate(anchorX); }; // Force offsets if specified in the options. var offsetX = offsetPoint.offsetX, offsetY = offsetPoint.offsetY; var isManualOffsetX = offsetX === 0 || offsetX; var isManualOffsetY = offsetY === 0 || offsetY; return { x: isManualOffsetX ? offsetX : calculateXOffset(), y: isManualOffsetY ? offsetY : calculateYOffset() }; } var FILE = '__NATIVE_FILE__'; var URL = '__NATIVE_URL__'; var TEXT = '__NATIVE_TEXT__'; var NativeTypes = /*#__PURE__*/Object.freeze({ __proto__: null, FILE: FILE, URL: URL, TEXT: TEXT }); function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) { var result = typesToTry.reduce(function (resultSoFar, typeToTry) { return resultSoFar || dataTransfer.getData(typeToTry); }, ''); return result != null ? result : defaultValue; } var _nativeTypesConfig; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, FILE, { exposeProperties: { files: function files(dataTransfer) { return Array.prototype.slice.call(dataTransfer.files); }, items: function items(dataTransfer) { return dataTransfer.items; } }, matchesTypes: ['Files'] }), _defineProperty(_nativeTypesConfig, URL, { exposeProperties: { urls: function urls(dataTransfer, matchesTypes) { return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\n'); } }, matchesTypes: ['Url', 'text/uri-list'] }), _defineProperty(_nativeTypesConfig, TEXT, { exposeProperties: { text: function text(dataTransfer, matchesTypes) { return getDataFromDataTransfer(dataTransfer, matchesTypes, ''); } }, matchesTypes: ['Text', 'text/plain'] }), _nativeTypesConfig); function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$2(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); } } function _createClass$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; } var NativeDragSource = /*#__PURE__*/function () { function NativeDragSource(config) { _classCallCheck$2(this, NativeDragSource); this.config = config; this.item = {}; this.initializeExposedProperties(); } _createClass$2(NativeDragSource, [{ key: "initializeExposedProperties", value: function initializeExposedProperties() { var _this = this; Object.keys(this.config.exposeProperties).forEach(function (property) { Object.defineProperty(_this.item, property, { configurable: true, enumerable: true, get: function get() { // eslint-disable-next-line no-console console.warn("Browser doesn't allow reading \"".concat(property, "\" until the drop event.")); return null; } }); }); } }, { key: "loadDataTransfer", value: function loadDataTransfer(dataTransfer) { var _this2 = this; if (dataTransfer) { var newProperties = {}; Object.keys(this.config.exposeProperties).forEach(function (property) { newProperties[property] = { value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes), configurable: true, enumerable: true }; }); Object.defineProperties(this.item, newProperties); } } }, { key: "canDrag", value: function canDrag() { return true; } }, { key: "beginDrag", value: function beginDrag() { return this.item; } }, { key: "isDragging", value: function isDragging(monitor, handle) { return handle === monitor.getSourceId(); } }, { key: "endDrag", value: function endDrag() {// empty } }]); return NativeDragSource; }(); function createNativeDragSource(type, dataTransfer) { var result = new NativeDragSource(nativeTypesConfig[type]); result.loadDataTransfer(dataTransfer); return result; } function matchNativeItemType(dataTransfer) { if (!dataTransfer) { return null; } var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []); return Object.keys(nativeTypesConfig).filter(function (nativeItemType) { var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes; return matchesTypes.some(function (t) { return dataTransferTypes.indexOf(t) > -1; }); })[0] || null; } function _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$3(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); } } function _createClass$3(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$3(Constructor.prototype, protoProps); if (staticProps) _defineProperties$3(Constructor, staticProps); return Constructor; } var OptionsReader = /*#__PURE__*/function () { function OptionsReader(globalContext) { _classCallCheck$3(this, OptionsReader); this.globalContext = globalContext; } _createClass$3(OptionsReader, [{ key: "window", get: function get() { if (this.globalContext) { return this.globalContext; } else if (typeof window !== 'undefined') { return window; } return undefined; } }, { key: "document", get: function get() { if (this.window) { return this.window.document; } return undefined; } }]); return OptionsReader; }(); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck$4(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$4(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); } } function _createClass$4(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$4(Constructor.prototype, protoProps); if (staticProps) _defineProperties$4(Constructor, staticProps); return Constructor; } var HTML5BackendImpl = /*#__PURE__*/function () { function HTML5BackendImpl(manager, globalContext) { var _this = this; _classCallCheck$4(this, HTML5BackendImpl); this.sourcePreviewNodes = new Map(); this.sourcePreviewNodeOptions = new Map(); this.sourceNodes = new Map(); this.sourceNodeOptions = new Map(); this.dragStartSourceIds = null; this.dropTargetIds = []; this.dragEnterTargetIds = []; this.currentNativeSource = null; this.currentNativeHandle = null; this.currentDragSourceNode = null; this.altKeyPressed = false; this.mouseMoveTimeoutTimer = null; this.asyncEndDragFrameId = null; this.dragOverTargetIds = null; this.getSourceClientOffset = function (sourceId) { var source = _this.sourceNodes.get(sourceId); return source && getNodeClientOffset(source) || null; }; this.endDragNativeItem = function () { if (!_this.isDraggingNativeItem()) { return; } _this.actions.endDrag(); if (_this.currentNativeHandle) { _this.registry.removeSource(_this.currentNativeHandle); } _this.currentNativeHandle = null; _this.currentNativeSource = null; }; this.isNodeInDocument = function (node) { // Check the node either in the main document or in the current context return Boolean(node && _this.document && _this.document.body && document.body.contains(node)); }; this.endDragIfSourceWasRemovedFromDOM = function () { var node = _this.currentDragSourceNode; if (_this.isNodeInDocument(node)) { return; } if (_this.clearCurrentDragSourceNode()) { _this.actions.endDrag(); } }; this.handleTopDragStartCapture = function () { _this.clearCurrentDragSourceNode(); _this.dragStartSourceIds = []; }; this.handleTopDragStart = function (e) { if (e.defaultPrevented) { return; } var dragStartSourceIds = _this.dragStartSourceIds; _this.dragStartSourceIds = null; var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died if (_this.monitor.isDragging()) { _this.actions.endDrag(); } // Don't publish the source just yet (see why below) _this.actions.beginDrag(dragStartSourceIds || [], { publishSource: false, getSourceClientOffset: _this.getSourceClientOffset, clientOffset: clientOffset }); var dataTransfer = e.dataTransfer; var nativeType = matchNativeItemType(dataTransfer); if (_this.monitor.isDragging()) { if (dataTransfer && typeof dataTransfer.setDragImage === 'function') { // Use custom drag image if user specifies it. // If child drag source refuses drag but parent agrees, // use parent's node as drag image. Neither works in IE though. var sourceId = _this.monitor.getSourceId(); var sourceNode = _this.sourceNodes.get(sourceId); var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode; if (dragPreview) { var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(), anchorX = _this$getCurrentSourc.anchorX, anchorY = _this$getCurrentSourc.anchorY, offsetX = _this$getCurrentSourc.offsetX, offsetY = _this$getCurrentSourc.offsetY; var anchorPoint = { anchorX: anchorX, anchorY: anchorY }; var offsetPoint = { offsetX: offsetX, offsetY: offsetY }; var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint); dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y); } } try { // Firefox won't drag without setting data dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {}); } catch (err) {} // IE doesn't support MIME types in setData // Store drag source node so we can check whether // it is removed from DOM and trigger endDrag manually. _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not? var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(), captureDraggingState = _this$getCurrentSourc2.captureDraggingState; if (!captureDraggingState) { // Usually we want to publish it in the next tick so that browser // is able to screenshot the current (not yet dragging) state. // // It also neatly avoids a situation where render() returns null // in the same tick for the source element, and browser freaks out. setTimeout(function () { return _this.actions.publishDragSource(); }, 0); } else { // In some cases the user may want to override this behavior, e.g. // to work around IE not supporting custom drag previews. // // When using a custom drag layer, the only way to prevent // the default drag preview from drawing in IE is to screenshot // the dragging state in which the node itself has zero opacity // and height. In this case, though, returning null from render() // will abruptly end the dragging, which is not obvious. // // This is the reason such behavior is strictly opt-in. _this.actions.publishDragSource(); } } else if (nativeType) { // A native item (such as URL) dragged from inside the document _this.beginDragNativeItem(nativeType); } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) { // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable. // Just let it drag. It's a native type (URL or text) and will be picked up in // dragenter handler. return; } else { // If by this time no drag source reacted, tell browser not to drag. e.preventDefault(); } }; this.handleTopDragEndCapture = function () { if (_this.clearCurrentDragSourceNode()) { // Firefox can dispatch this event in an infinite loop // if dragend handler does something like showing an alert. // Only proceed if we have not handled it already. _this.actions.endDrag(); } }; this.handleTopDragEnterCapture = function (e) { _this.dragEnterTargetIds = []; var isFirstEnter = _this.enterLeaveCounter.enter(e.target); if (!isFirstEnter || _this.monitor.isDragging()) { return; } var dataTransfer = e.dataTransfer; var nativeType = matchNativeItemType(dataTransfer); if (nativeType) { // A native item (such as file or URL) dragged from outside the document _this.beginDragNativeItem(nativeType, dataTransfer); } }; this.handleTopDragEnter = function (e) { var dragEnterTargetIds = _this.dragEnterTargetIds; _this.dragEnterTargetIds = []; if (!_this.monitor.isDragging()) { // This is probably a native item type we don't understand. return; } _this.altKeyPressed = e.altKey; if (!isFirefox()) { // Don't emit hover in `dragenter` on Firefox due to an edge case. // If the target changes position as the result of `dragenter`, Firefox // will still happily dispatch `dragover` despite target being no longer // there. The easy solution is to only fire `hover` in `dragover` on FF. _this.actions.hover(dragEnterTargetIds, { clientOffset: getEventClientOffset(e) }); } var canDrop = dragEnterTargetIds.some(function (targetId) { return _this.monitor.canDropOnTarget(targetId); }); if (canDrop) { // IE requires this to fire dragover events e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = _this.getCurrentDropEffect(); } } }; this.handleTopDragOverCapture = function () { _this.dragOverTargetIds = []; }; this.handleTopDragOver = function (e) { var dragOverTargetIds = _this.dragOverTargetIds; _this.dragOverTargetIds = []; if (!_this.monitor.isDragging()) { // This is probably a native item type we don't understand. // Prevent default "drop and blow away the whole document" action. e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = 'none'; } return; } _this.altKeyPressed = e.altKey; _this.actions.hover(dragOverTargetIds || [], { clientOffset: getEventClientOffset(e) }); var canDrop = (dragOverTargetIds || []).some(function (targetId) { return _this.monitor.canDropOnTarget(targetId); }); if (canDrop) { // Show user-specified drop effect. e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = _this.getCurrentDropEffect(); } } else if (_this.isDraggingNativeItem()) { // Don't show a nice cursor but still prevent default // "drop and blow away the whole document" action. e.preventDefault(); } else { e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = 'none'; } } }; this.handleTopDragLeaveCapture = function (e) { if (_this.isDraggingNativeItem()) { e.preventDefault(); } var isLastLeave = _this.enterLeaveCounter.leave(e.target); if (!isLastLeave) { return; } if (_this.isDraggingNativeItem()) { _this.endDragNativeItem(); } }; this.handleTopDropCapture = function (e) { _this.dropTargetIds = []; e.preventDefault(); if (_this.isDraggingNativeItem()) { var _this$currentNativeSo; (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer); } _this.enterLeaveCounter.reset(); }; this.handleTopDrop = function (e) { var dropTargetIds = _this.dropTargetIds; _this.dropTargetIds = []; _this.actions.hover(dropTargetIds, { clientOffset: getEventClientOffset(e) }); _this.actions.drop({ dropEffect: _this.getCurrentDropEffect() }); if (_this.isDraggingNativeItem()) { _this.endDragNativeItem(); } else { _this.endDragIfSourceWasRemovedFromDOM(); } }; this.handleSelectStart = function (e) { var target = e.target; // Only IE requires us to explicitly say // we want drag drop operation to start if (typeof target.dragDrop !== 'function') { return; } // Inputs and textareas should be selectable if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) { return; } // For other targets, ask IE // to enable drag and drop e.preventDefault(); target.dragDrop(); }; this.options = new OptionsReader(globalContext); this.actions = manager.getActions(); this.monitor = manager.getMonitor(); this.registry = manager.getRegistry(); this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument); } /** * Generate profiling statistics for the HTML5Backend. */ _createClass$4(HTML5BackendImpl, [{ key: "profile", value: function profile() { var _this$dragStartSource, _this$dragOverTargetI; return { sourcePreviewNodes: this.sourcePreviewNodes.size, sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size, sourceNodeOptions: this.sourceNodeOptions.size, sourceNodes: this.sourceNodes.size, dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0, dropTargetIds: this.dropTargetIds.length, dragEnterTargetIds: this.dragEnterTargetIds.length, dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0 }; } // public for test }, { key: "setup", value: function setup() { if (this.window === undefined) { return; } if (this.window.__isReactDndBackendSetUp) { throw new Error('Cannot have two HTML5 backends at the same time.'); } this.window.__isReactDndBackendSetUp = true; this.addEventListeners(this.window); } }, { key: "teardown", value: function teardown() { if (this.window === undefined) { return; } this.window.__isReactDndBackendSetUp = false; this.removeEventListeners(this.window); this.clearCurrentDragSourceNode(); if (this.asyncEndDragFrameId) { this.window.cancelAnimationFrame(this.asyncEndDragFrameId); } } }, { key: "connectDragPreview", value: function connectDragPreview(sourceId, node, options) { var _this2 = this; this.sourcePreviewNodeOptions.set(sourceId, options); this.sourcePreviewNodes.set(sourceId, node); return function () { _this2.sourcePreviewNodes.delete(sourceId); _this2.sourcePreviewNodeOptions.delete(sourceId); }; } }, { key: "connectDragSource", value: function connectDragSource(sourceId, node, options) { var _this3 = this; this.sourceNodes.set(sourceId, node); this.sourceNodeOptions.set(sourceId, options); var handleDragStart = function handleDragStart(e) { return _this3.handleDragStart(e, sourceId); }; var handleSelectStart = function handleSelectStart(e) { return _this3.handleSelectStart(e); }; node.setAttribute('draggable', 'true'); node.addEventListener('dragstart', handleDragStart); node.addEventListener('selectstart', handleSelectStart); return function () { _this3.sourceNodes.delete(sourceId); _this3.sourceNodeOptions.delete(sourceId); node.removeEventListener('dragstart', handleDragStart); node.removeEventListener('selectstart', handleSelectStart); node.setAttribute('draggable', 'false'); }; } }, { key: "connectDropTarget", value: function connectDropTarget(targetId, node) { var _this4 = this; var handleDragEnter = function handleDragEnter(e) { return _this4.handleDragEnter(e, targetId); }; var handleDragOver = function handleDragOver(e) { return _this4.handleDragOver(e, targetId); }; var handleDrop = function handleDrop(e) { return _this4.handleDrop(e, targetId); }; node.addEventListener('dragenter', handleDragEnter); node.addEventListener('dragover', handleDragOver); node.addEventListener('drop', handleDrop); return function () { node.removeEventListener('dragenter', handleDragEnter); node.removeEventListener('dragover', handleDragOver); node.removeEventListener('drop', handleDrop); }; } }, { key: "addEventListeners", value: function addEventListeners(target) { // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813 if (!target.addEventListener) { return; } target.addEventListener('dragstart', this.handleTopDragStart); target.addEventListener('dragstart', this.handleTopDragStartCapture, true); target.addEventListener('dragend', this.handleTopDragEndCapture, true); target.addEventListener('dragenter', this.handleTopDragEnter); target.addEventListener('dragenter', this.handleTopDragEnterCapture, true); target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true); target.addEventListener('dragover', this.handleTopDragOver); target.addEventListener('dragover', this.handleTopDragOverCapture, true); target.addEventListener('drop', this.handleTopDrop); target.addEventListener('drop', this.handleTopDropCapture, true); } }, { key: "removeEventListeners", value: function removeEventListeners(target) { // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813 if (!target.removeEventListener) { return; } target.removeEventListener('dragstart', this.handleTopDragStart); target.removeEventListener('dragstart', this.handleTopDragStartCapture, true); target.removeEventListener('dragend', this.handleTopDragEndCapture, true); target.removeEventListener('dragenter', this.handleTopDragEnter); target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true); target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true); target.removeEventListener('dragover', this.handleTopDragOver); target.removeEventListener('dragover', this.handleTopDragOverCapture, true); target.removeEventListener('drop', this.handleTopDrop); target.removeEventListener('drop', this.handleTopDropCapture, true); } }, { key: "getCurrentSourceNodeOptions", value: function getCurrentSourceNodeOptions() { var sourceId = this.monitor.getSourceId(); var sourceNodeOptions = this.sourceNodeOptions.get(sourceId); return _objectSpread({ dropEffect: this.altKeyPressed ? 'copy' : 'move' }, sourceNodeOptions || {}); } }, { key: "getCurrentDropEffect", value: function getCurrentDropEffect() { if (this.isDraggingNativeItem()) { // It makes more sense to default to 'copy' for native resources return 'copy'; } return this.getCurrentSourceNodeOptions().dropEffect; } }, { key: "getCurrentSourcePreviewNodeOptions", value: function getCurrentSourcePreviewNodeOptions() { var sourceId = this.monitor.getSourceId(); var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId); return _objectSpread({ anchorX: 0.5, anchorY: 0.5, captureDraggingState: false }, sourcePreviewNodeOptions || {}); } }, { key: "isDraggingNativeItem", value: function isDraggingNativeItem() { var itemType = this.monitor.getItemType(); return Object.keys(NativeTypes).some(function (key) { return NativeTypes[key] === itemType; }); } }, { key: "beginDragNativeItem", value: function beginDragNativeItem(type, dataTransfer) { this.clearCurrentDragSourceNode(); this.currentNativeSource = createNativeDragSource(type, dataTransfer); this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource); this.actions.beginDrag([this.currentNativeHandle]); } }, { key: "setCurrentDragSourceNode", value: function setCurrentDragSourceNode(node) { var _this5 = this; this.clearCurrentDragSourceNode(); this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced // See: // * https://github.com/react-dnd/react-dnd/pull/928 // * https://github.com/react-dnd/react-dnd/issues/869 var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation // means it has ended and the drag source node disappeared from DOM, // so the browser didn't dispatch the dragend event. // // We need to wait before we start listening for mousemove events. // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event // immediately in some browsers. // // See: // * https://github.com/react-dnd/react-dnd/pull/928 // * https://github.com/react-dnd/react-dnd/issues/869 // this.mouseMoveTimeoutTimer = setTimeout(function () { return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true); }, MOUSE_MOVE_TIMEOUT); } }, { key: "clearCurrentDragSourceNode", value: function clearCurrentDragSourceNode() { if (this.currentDragSourceNode) { this.currentDragSourceNode = null; if (this.window) { this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined); this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true); } this.mouseMoveTimeoutTimer = null; return true; } return false; } }, { key: "handleDragStart", value: function handleDragStart(e, sourceId) { if (e.defaultPrevented) { return; } if (!this.dragStartSourceIds) { this.dragStartSourceIds = []; } this.dragStartSourceIds.unshift(sourceId); } }, { key: "handleDragEnter", value: function handleDragEnter(e, targetId) { this.dragEnterTargetIds.unshift(targetId); } }, { key: "handleDragOver", value: function handleDragOver(e, targetId) { if (this.dragOverTargetIds === null) { this.dragOverTargetIds = []; } this.dragOverTargetIds.unshift(targetId); } }, { key: "handleDrop", value: function handleDrop(e, targetId) { this.dropTargetIds.unshift(targetId); } }, { key: "window", get: function get() { return this.options.window; } }, { key: "document", get: function get() { return this.options.document; } }]); return HTML5BackendImpl; }(); var emptyImage; function getEmptyImage() { if (!emptyImage) { emptyImage = new Image(); emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; } return emptyImage; } var HTML5Backend = function createBackend(manager, context) { return new HTML5BackendImpl(manager, context); }; exports.HTML5Backend = HTML5Backend; exports.NativeTypes = NativeTypes; exports.getEmptyImage = getEmptyImage; Object.defineProperty(exports, '__esModule', { value: true }); }))); PKy\cjs/OptionsReader.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OptionsReader = void 0; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var OptionsReader = /*#__PURE__*/function () { function OptionsReader(globalContext) { _classCallCheck(this, OptionsReader); this.globalContext = globalContext; } _createClass(OptionsReader, [{ key: "window", get: function get() { if (this.globalContext) { return this.globalContext; } else if (typeof window !== 'undefined') { return window; } return undefined; } }, { key: "document", get: function get() { if (this.window) { return this.window.document; } return undefined; } }]); return OptionsReader; }(); exports.OptionsReader = OptionsReader;PKy\_ 0cjs/NativeDragSources/getDataFromDataTransfer.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDataFromDataTransfer = getDataFromDataTransfer; function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) { var result = typesToTry.reduce(function (resultSoFar, typeToTry) { return resultSoFar || dataTransfer.getData(typeToTry); }, ''); return result != null ? result : defaultValue; }PKy\cjs/NativeDragSources/index.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createNativeDragSource = createNativeDragSource; exports.matchNativeItemType = matchNativeItemType; var _nativeTypesConfig = require("./nativeTypesConfig"); var _NativeDragSource = require("./NativeDragSource"); function createNativeDragSource(type, dataTransfer) { var result = new _NativeDragSource.NativeDragSource(_nativeTypesConfig.nativeTypesConfig[type]); result.loadDataTransfer(dataTransfer); return result; } function matchNativeItemType(dataTransfer) { if (!dataTransfer) { return null; } var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []); return Object.keys(_nativeTypesConfig.nativeTypesConfig).filter(function (nativeItemType) { var matchesTypes = _nativeTypesConfig.nativeTypesConfig[nativeItemType].matchesTypes; return matchesTypes.some(function (t) { return dataTransferTypes.indexOf(t) > -1; }); })[0] || null; }PKy\[ [ )cjs/NativeDragSources/NativeDragSource.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NativeDragSource = void 0; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var NativeDragSource = /*#__PURE__*/function () { function NativeDragSource(config) { _classCallCheck(this, NativeDragSource); this.config = config; this.item = {}; this.initializeExposedProperties(); } _createClass(NativeDragSource, [{ key: "initializeExposedProperties", value: function initializeExposedProperties() { var _this = this; Object.keys(this.config.exposeProperties).forEach(function (property) { Object.defineProperty(_this.item, property, { configurable: true, enumerable: true, get: function get() { // eslint-disable-next-line no-console console.warn("Browser doesn't allow reading \"".concat(property, "\" until the drop event.")); return null; } }); }); } }, { key: "loadDataTransfer", value: function loadDataTransfer(dataTransfer) { var _this2 = this; if (dataTransfer) { var newProperties = {}; Object.keys(this.config.exposeProperties).forEach(function (property) { newProperties[property] = { value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes), configurable: true, enumerable: true }; }); Object.defineProperties(this.item, newProperties); } } }, { key: "canDrag", value: function canDrag() { return true; } }, { key: "beginDrag", value: function beginDrag() { return this.item; } }, { key: "isDragging", value: function isDragging(monitor, handle) { return handle === monitor.getSourceId(); } }, { key: "endDrag", value: function endDrag() {// empty } }]); return NativeDragSource; }(); exports.NativeDragSource = NativeDragSource;PKy\f  *cjs/NativeDragSources/nativeTypesConfig.jsnu["use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.nativeTypesConfig = void 0; var NativeTypes = _interopRequireWildcard(require("../NativeTypes")); var _getDataFromDataTransfer = require("./getDataFromDataTransfer"); var _nativeTypesConfig; function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, { exposeProperties: { files: function files(dataTransfer) { return Array.prototype.slice.call(dataTransfer.files); }, items: function items(dataTransfer) { return dataTransfer.items; } }, matchesTypes: ['Files'] }), _defineProperty(_nativeTypesConfig, NativeTypes.URL, { exposeProperties: { urls: function urls(dataTransfer, matchesTypes) { return (0, _getDataFromDataTransfer.getDataFromDataTransfer)(dataTransfer, matchesTypes, '').split('\n'); } }, matchesTypes: ['Url', 'text/uri-list'] }), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, { exposeProperties: { text: function text(dataTransfer, matchesTypes) { return (0, _getDataFromDataTransfer.getDataFromDataTransfer)(dataTransfer, matchesTypes, ''); } }, matchesTypes: ['Text', 'text/plain'] }), _nativeTypesConfig); exports.nativeTypesConfig = nativeTypesConfig;PKy\"Νss cjs/types.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); //# sourceMappingURL=types.js.mapPKy\+hcjs/EnterLeaveCounter.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnterLeaveCounter = void 0; var _js_utils = require("./utils/js_utils"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var EnterLeaveCounter = /*#__PURE__*/function () { function EnterLeaveCounter(isNodeInDocument) { _classCallCheck(this, EnterLeaveCounter); this.entered = []; this.isNodeInDocument = isNodeInDocument; } _createClass(EnterLeaveCounter, [{ key: "enter", value: function enter(enteringNode) { var _this = this; var previousLength = this.entered.length; var isNodeEntered = function isNodeEntered(node) { return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode)); }; this.entered = (0, _js_utils.union)(this.entered.filter(isNodeEntered), [enteringNode]); return previousLength === 0 && this.entered.length > 0; } }, { key: "leave", value: function leave(leavingNode) { var previousLength = this.entered.length; this.entered = (0, _js_utils.without)(this.entered.filter(this.isNodeInDocument), leavingNode); return previousLength > 0 && this.entered.length === 0; } }, { key: "reset", value: function reset() { this.entered = []; } }]); return EnterLeaveCounter; }(); exports.EnterLeaveCounter = EnterLeaveCounter;PKy\܆ (eecjs/HTML5BackendImpl.jsnu["use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.HTML5BackendImpl = void 0; var _EnterLeaveCounter = require("./EnterLeaveCounter"); var _BrowserDetector = require("./BrowserDetector"); var _OffsetUtils = require("./OffsetUtils"); var _NativeDragSources = require("./NativeDragSources"); var NativeTypes = _interopRequireWildcard(require("./NativeTypes")); var _OptionsReader = require("./OptionsReader"); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var HTML5BackendImpl = /*#__PURE__*/function () { function HTML5BackendImpl(manager, globalContext) { var _this = this; _classCallCheck(this, HTML5BackendImpl); this.sourcePreviewNodes = new Map(); this.sourcePreviewNodeOptions = new Map(); this.sourceNodes = new Map(); this.sourceNodeOptions = new Map(); this.dragStartSourceIds = null; this.dropTargetIds = []; this.dragEnterTargetIds = []; this.currentNativeSource = null; this.currentNativeHandle = null; this.currentDragSourceNode = null; this.altKeyPressed = false; this.mouseMoveTimeoutTimer = null; this.asyncEndDragFrameId = null; this.dragOverTargetIds = null; this.getSourceClientOffset = function (sourceId) { var source = _this.sourceNodes.get(sourceId); return source && (0, _OffsetUtils.getNodeClientOffset)(source) || null; }; this.endDragNativeItem = function () { if (!_this.isDraggingNativeItem()) { return; } _this.actions.endDrag(); if (_this.currentNativeHandle) { _this.registry.removeSource(_this.currentNativeHandle); } _this.currentNativeHandle = null; _this.currentNativeSource = null; }; this.isNodeInDocument = function (node) { // Check the node either in the main document or in the current context return Boolean(node && _this.document && _this.document.body && document.body.contains(node)); }; this.endDragIfSourceWasRemovedFromDOM = function () { var node = _this.currentDragSourceNode; if (_this.isNodeInDocument(node)) { return; } if (_this.clearCurrentDragSourceNode()) { _this.actions.endDrag(); } }; this.handleTopDragStartCapture = function () { _this.clearCurrentDragSourceNode(); _this.dragStartSourceIds = []; }; this.handleTopDragStart = function (e) { if (e.defaultPrevented) { return; } var dragStartSourceIds = _this.dragStartSourceIds; _this.dragStartSourceIds = null; var clientOffset = (0, _OffsetUtils.getEventClientOffset)(e); // Avoid crashing if we missed a drop event or our previous drag died if (_this.monitor.isDragging()) { _this.actions.endDrag(); } // Don't publish the source just yet (see why below) _this.actions.beginDrag(dragStartSourceIds || [], { publishSource: false, getSourceClientOffset: _this.getSourceClientOffset, clientOffset: clientOffset }); var dataTransfer = e.dataTransfer; var nativeType = (0, _NativeDragSources.matchNativeItemType)(dataTransfer); if (_this.monitor.isDragging()) { if (dataTransfer && typeof dataTransfer.setDragImage === 'function') { // Use custom drag image if user specifies it. // If child drag source refuses drag but parent agrees, // use parent's node as drag image. Neither works in IE though. var sourceId = _this.monitor.getSourceId(); var sourceNode = _this.sourceNodes.get(sourceId); var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode; if (dragPreview) { var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(), anchorX = _this$getCurrentSourc.anchorX, anchorY = _this$getCurrentSourc.anchorY, offsetX = _this$getCurrentSourc.offsetX, offsetY = _this$getCurrentSourc.offsetY; var anchorPoint = { anchorX: anchorX, anchorY: anchorY }; var offsetPoint = { offsetX: offsetX, offsetY: offsetY }; var dragPreviewOffset = (0, _OffsetUtils.getDragPreviewOffset)(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint); dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y); } } try { // Firefox won't drag without setting data dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {}); } catch (err) {} // IE doesn't support MIME types in setData // Store drag source node so we can check whether // it is removed from DOM and trigger endDrag manually. _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not? var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(), captureDraggingState = _this$getCurrentSourc2.captureDraggingState; if (!captureDraggingState) { // Usually we want to publish it in the next tick so that browser // is able to screenshot the current (not yet dragging) state. // // It also neatly avoids a situation where render() returns null // in the same tick for the source element, and browser freaks out. setTimeout(function () { return _this.actions.publishDragSource(); }, 0); } else { // In some cases the user may want to override this behavior, e.g. // to work around IE not supporting custom drag previews. // // When using a custom drag layer, the only way to prevent // the default drag preview from drawing in IE is to screenshot // the dragging state in which the node itself has zero opacity // and height. In this case, though, returning null from render() // will abruptly end the dragging, which is not obvious. // // This is the reason such behavior is strictly opt-in. _this.actions.publishDragSource(); } } else if (nativeType) { // A native item (such as URL) dragged from inside the document _this.beginDragNativeItem(nativeType); } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) { // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable. // Just let it drag. It's a native type (URL or text) and will be picked up in // dragenter handler. return; } else { // If by this time no drag source reacted, tell browser not to drag. e.preventDefault(); } }; this.handleTopDragEndCapture = function () { if (_this.clearCurrentDragSourceNode()) { // Firefox can dispatch this event in an infinite loop // if dragend handler does something like showing an alert. // Only proceed if we have not handled it already. _this.actions.endDrag(); } }; this.handleTopDragEnterCapture = function (e) { _this.dragEnterTargetIds = []; var isFirstEnter = _this.enterLeaveCounter.enter(e.target); if (!isFirstEnter || _this.monitor.isDragging()) { return; } var dataTransfer = e.dataTransfer; var nativeType = (0, _NativeDragSources.matchNativeItemType)(dataTransfer); if (nativeType) { // A native item (such as file or URL) dragged from outside the document _this.beginDragNativeItem(nativeType, dataTransfer); } }; this.handleTopDragEnter = function (e) { var dragEnterTargetIds = _this.dragEnterTargetIds; _this.dragEnterTargetIds = []; if (!_this.monitor.isDragging()) { // This is probably a native item type we don't understand. return; } _this.altKeyPressed = e.altKey; if (!(0, _BrowserDetector.isFirefox)()) { // Don't emit hover in `dragenter` on Firefox due to an edge case. // If the target changes position as the result of `dragenter`, Firefox // will still happily dispatch `dragover` despite target being no longer // there. The easy solution is to only fire `hover` in `dragover` on FF. _this.actions.hover(dragEnterTargetIds, { clientOffset: (0, _OffsetUtils.getEventClientOffset)(e) }); } var canDrop = dragEnterTargetIds.some(function (targetId) { return _this.monitor.canDropOnTarget(targetId); }); if (canDrop) { // IE requires this to fire dragover events e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = _this.getCurrentDropEffect(); } } }; this.handleTopDragOverCapture = function () { _this.dragOverTargetIds = []; }; this.handleTopDragOver = function (e) { var dragOverTargetIds = _this.dragOverTargetIds; _this.dragOverTargetIds = []; if (!_this.monitor.isDragging()) { // This is probably a native item type we don't understand. // Prevent default "drop and blow away the whole document" action. e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = 'none'; } return; } _this.altKeyPressed = e.altKey; _this.actions.hover(dragOverTargetIds || [], { clientOffset: (0, _OffsetUtils.getEventClientOffset)(e) }); var canDrop = (dragOverTargetIds || []).some(function (targetId) { return _this.monitor.canDropOnTarget(targetId); }); if (canDrop) { // Show user-specified drop effect. e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = _this.getCurrentDropEffect(); } } else if (_this.isDraggingNativeItem()) { // Don't show a nice cursor but still prevent default // "drop and blow away the whole document" action. e.preventDefault(); } else { e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = 'none'; } } }; this.handleTopDragLeaveCapture = function (e) { if (_this.isDraggingNativeItem()) { e.preventDefault(); } var isLastLeave = _this.enterLeaveCounter.leave(e.target); if (!isLastLeave) { return; } if (_this.isDraggingNativeItem()) { _this.endDragNativeItem(); } }; this.handleTopDropCapture = function (e) { _this.dropTargetIds = []; e.preventDefault(); if (_this.isDraggingNativeItem()) { var _this$currentNativeSo; (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer); } _this.enterLeaveCounter.reset(); }; this.handleTopDrop = function (e) { var dropTargetIds = _this.dropTargetIds; _this.dropTargetIds = []; _this.actions.hover(dropTargetIds, { clientOffset: (0, _OffsetUtils.getEventClientOffset)(e) }); _this.actions.drop({ dropEffect: _this.getCurrentDropEffect() }); if (_this.isDraggingNativeItem()) { _this.endDragNativeItem(); } else { _this.endDragIfSourceWasRemovedFromDOM(); } }; this.handleSelectStart = function (e) { var target = e.target; // Only IE requires us to explicitly say // we want drag drop operation to start if (typeof target.dragDrop !== 'function') { return; } // Inputs and textareas should be selectable if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) { return; } // For other targets, ask IE // to enable drag and drop e.preventDefault(); target.dragDrop(); }; this.options = new _OptionsReader.OptionsReader(globalContext); this.actions = manager.getActions(); this.monitor = manager.getMonitor(); this.registry = manager.getRegistry(); this.enterLeaveCounter = new _EnterLeaveCounter.EnterLeaveCounter(this.isNodeInDocument); } /** * Generate profiling statistics for the HTML5Backend. */ _createClass(HTML5BackendImpl, [{ key: "profile", value: function profile() { var _this$dragStartSource, _this$dragOverTargetI; return { sourcePreviewNodes: this.sourcePreviewNodes.size, sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size, sourceNodeOptions: this.sourceNodeOptions.size, sourceNodes: this.sourceNodes.size, dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0, dropTargetIds: this.dropTargetIds.length, dragEnterTargetIds: this.dragEnterTargetIds.length, dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0 }; } // public for test }, { key: "setup", value: function setup() { if (this.window === undefined) { return; } if (this.window.__isReactDndBackendSetUp) { throw new Error('Cannot have two HTML5 backends at the same time.'); } this.window.__isReactDndBackendSetUp = true; this.addEventListeners(this.window); } }, { key: "teardown", value: function teardown() { if (this.window === undefined) { return; } this.window.__isReactDndBackendSetUp = false; this.removeEventListeners(this.window); this.clearCurrentDragSourceNode(); if (this.asyncEndDragFrameId) { this.window.cancelAnimationFrame(this.asyncEndDragFrameId); } } }, { key: "connectDragPreview", value: function connectDragPreview(sourceId, node, options) { var _this2 = this; this.sourcePreviewNodeOptions.set(sourceId, options); this.sourcePreviewNodes.set(sourceId, node); return function () { _this2.sourcePreviewNodes.delete(sourceId); _this2.sourcePreviewNodeOptions.delete(sourceId); }; } }, { key: "connectDragSource", value: function connectDragSource(sourceId, node, options) { var _this3 = this; this.sourceNodes.set(sourceId, node); this.sourceNodeOptions.set(sourceId, options); var handleDragStart = function handleDragStart(e) { return _this3.handleDragStart(e, sourceId); }; var handleSelectStart = function handleSelectStart(e) { return _this3.handleSelectStart(e); }; node.setAttribute('draggable', 'true'); node.addEventListener('dragstart', handleDragStart); node.addEventListener('selectstart', handleSelectStart); return function () { _this3.sourceNodes.delete(sourceId); _this3.sourceNodeOptions.delete(sourceId); node.removeEventListener('dragstart', handleDragStart); node.removeEventListener('selectstart', handleSelectStart); node.setAttribute('draggable', 'false'); }; } }, { key: "connectDropTarget", value: function connectDropTarget(targetId, node) { var _this4 = this; var handleDragEnter = function handleDragEnter(e) { return _this4.handleDragEnter(e, targetId); }; var handleDragOver = function handleDragOver(e) { return _this4.handleDragOver(e, targetId); }; var handleDrop = function handleDrop(e) { return _this4.handleDrop(e, targetId); }; node.addEventListener('dragenter', handleDragEnter); node.addEventListener('dragover', handleDragOver); node.addEventListener('drop', handleDrop); return function () { node.removeEventListener('dragenter', handleDragEnter); node.removeEventListener('dragover', handleDragOver); node.removeEventListener('drop', handleDrop); }; } }, { key: "addEventListeners", value: function addEventListeners(target) { // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813 if (!target.addEventListener) { return; } target.addEventListener('dragstart', this.handleTopDragStart); target.addEventListener('dragstart', this.handleTopDragStartCapture, true); target.addEventListener('dragend', this.handleTopDragEndCapture, true); target.addEventListener('dragenter', this.handleTopDragEnter); target.addEventListener('dragenter', this.handleTopDragEnterCapture, true); target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true); target.addEventListener('dragover', this.handleTopDragOver); target.addEventListener('dragover', this.handleTopDragOverCapture, true); target.addEventListener('drop', this.handleTopDrop); target.addEventListener('drop', this.handleTopDropCapture, true); } }, { key: "removeEventListeners", value: function removeEventListeners(target) { // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813 if (!target.removeEventListener) { return; } target.removeEventListener('dragstart', this.handleTopDragStart); target.removeEventListener('dragstart', this.handleTopDragStartCapture, true); target.removeEventListener('dragend', this.handleTopDragEndCapture, true); target.removeEventListener('dragenter', this.handleTopDragEnter); target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true); target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true); target.removeEventListener('dragover', this.handleTopDragOver); target.removeEventListener('dragover', this.handleTopDragOverCapture, true); target.removeEventListener('drop', this.handleTopDrop); target.removeEventListener('drop', this.handleTopDropCapture, true); } }, { key: "getCurrentSourceNodeOptions", value: function getCurrentSourceNodeOptions() { var sourceId = this.monitor.getSourceId(); var sourceNodeOptions = this.sourceNodeOptions.get(sourceId); return _objectSpread({ dropEffect: this.altKeyPressed ? 'copy' : 'move' }, sourceNodeOptions || {}); } }, { key: "getCurrentDropEffect", value: function getCurrentDropEffect() { if (this.isDraggingNativeItem()) { // It makes more sense to default to 'copy' for native resources return 'copy'; } return this.getCurrentSourceNodeOptions().dropEffect; } }, { key: "getCurrentSourcePreviewNodeOptions", value: function getCurrentSourcePreviewNodeOptions() { var sourceId = this.monitor.getSourceId(); var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId); return _objectSpread({ anchorX: 0.5, anchorY: 0.5, captureDraggingState: false }, sourcePreviewNodeOptions || {}); } }, { key: "isDraggingNativeItem", value: function isDraggingNativeItem() { var itemType = this.monitor.getItemType(); return Object.keys(NativeTypes).some(function (key) { return NativeTypes[key] === itemType; }); } }, { key: "beginDragNativeItem", value: function beginDragNativeItem(type, dataTransfer) { this.clearCurrentDragSourceNode(); this.currentNativeSource = (0, _NativeDragSources.createNativeDragSource)(type, dataTransfer); this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource); this.actions.beginDrag([this.currentNativeHandle]); } }, { key: "setCurrentDragSourceNode", value: function setCurrentDragSourceNode(node) { var _this5 = this; this.clearCurrentDragSourceNode(); this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced // See: // * https://github.com/react-dnd/react-dnd/pull/928 // * https://github.com/react-dnd/react-dnd/issues/869 var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation // means it has ended and the drag source node disappeared from DOM, // so the browser didn't dispatch the dragend event. // // We need to wait before we start listening for mousemove events. // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event // immediately in some browsers. // // See: // * https://github.com/react-dnd/react-dnd/pull/928 // * https://github.com/react-dnd/react-dnd/issues/869 // this.mouseMoveTimeoutTimer = setTimeout(function () { return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true); }, MOUSE_MOVE_TIMEOUT); } }, { key: "clearCurrentDragSourceNode", value: function clearCurrentDragSourceNode() { if (this.currentDragSourceNode) { this.currentDragSourceNode = null; if (this.window) { this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined); this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true); } this.mouseMoveTimeoutTimer = null; return true; } return false; } }, { key: "handleDragStart", value: function handleDragStart(e, sourceId) { if (e.defaultPrevented) { return; } if (!this.dragStartSourceIds) { this.dragStartSourceIds = []; } this.dragStartSourceIds.unshift(sourceId); } }, { key: "handleDragEnter", value: function handleDragEnter(e, targetId) { this.dragEnterTargetIds.unshift(targetId); } }, { key: "handleDragOver", value: function handleDragOver(e, targetId) { if (this.dragOverTargetIds === null) { this.dragOverTargetIds = []; } this.dragOverTargetIds.unshift(targetId); } }, { key: "handleDrop", value: function handleDrop(e, targetId) { this.dropTargetIds.unshift(targetId); } }, { key: "window", get: function get() { return this.options.window; } }, { key: "document", get: function get() { return this.options.document; } }]); return HTML5BackendImpl; }(); exports.HTML5BackendImpl = HTML5BackendImpl;PKy\ɟ$$cjs/OffsetUtils.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNodeClientOffset = getNodeClientOffset; exports.getEventClientOffset = getEventClientOffset; exports.getDragPreviewOffset = getDragPreviewOffset; var _BrowserDetector = require("./BrowserDetector"); var _MonotonicInterpolant = require("./MonotonicInterpolant"); var ELEMENT_NODE = 1; function getNodeClientOffset(node) { var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement; if (!el) { return null; } var _el$getBoundingClient = el.getBoundingClientRect(), top = _el$getBoundingClient.top, left = _el$getBoundingClient.left; return { x: left, y: top }; } function getEventClientOffset(e) { return { x: e.clientX, y: e.clientY }; } function isImageNode(node) { var _document$documentEle; return node.nodeName === 'IMG' && ((0, _BrowserDetector.isFirefox)() || !((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.contains(node))); } function getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) { var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth; var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers if ((0, _BrowserDetector.isSafari)() && isImage) { dragPreviewHeight /= window.devicePixelRatio; dragPreviewWidth /= window.devicePixelRatio; } return { dragPreviewWidth: dragPreviewWidth, dragPreviewHeight: dragPreviewHeight }; } function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) { // The browsers will use the image intrinsic size under different conditions. // Firefox only cares if it's an image, but WebKit also wants it to be detached. var isImage = isImageNode(dragPreview); var dragPreviewNode = isImage ? sourceNode : dragPreview; var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode); var offsetFromDragPreview = { x: clientOffset.x - dragPreviewNodeOffsetFromClient.x, y: clientOffset.y - dragPreviewNodeOffsetFromClient.y }; var sourceWidth = sourceNode.offsetWidth, sourceHeight = sourceNode.offsetHeight; var anchorX = anchorPoint.anchorX, anchorY = anchorPoint.anchorY; var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight), dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth, dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight; var calculateYOffset = function calculateYOffset() { var interpolantY = new _MonotonicInterpolant.MonotonicInterpolant([0, 0.5, 1], [// Dock to the top offsetFromDragPreview.y, // Align at the center offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]); var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug if ((0, _BrowserDetector.isSafari)() && isImage) { // We'll have to wait for @3x to see if this is entirely correct y += (window.devicePixelRatio - 1) * dragPreviewHeight; } return y; }; var calculateXOffset = function calculateXOffset() { // Interpolate coordinates depending on anchor point // If you know a simpler way to do this, let me know var interpolantX = new _MonotonicInterpolant.MonotonicInterpolant([0, 0.5, 1], [// Dock to the left offsetFromDragPreview.x, // Align at the center offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]); return interpolantX.interpolate(anchorX); }; // Force offsets if specified in the options. var offsetX = offsetPoint.offsetX, offsetY = offsetPoint.offsetY; var isManualOffsetX = offsetX === 0 || offsetX; var isManualOffsetY = offsetY === 0 || offsetY; return { x: isManualOffsetX ? offsetX : calculateXOffset(), y: isManualOffsetY ? offsetY : calculateYOffset() }; }PKy\|TTcjs/getEmptyImage.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEmptyImage = getEmptyImage; var emptyImage; function getEmptyImage() { if (!emptyImage) { emptyImage = new Image(); emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; } return emptyImage; }PKy\^cjs/NativeTypes.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TEXT = exports.URL = exports.FILE = void 0; var FILE = '__NATIVE_FILE__'; exports.FILE = FILE; var URL = '__NATIVE_URL__'; exports.URL = URL; var TEXT = '__NATIVE_TEXT__'; exports.TEXT = TEXT;PKy\ZI cjs/MonotonicInterpolant.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonotonicInterpolant = void 0; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var MonotonicInterpolant = /*#__PURE__*/function () { function MonotonicInterpolant(xs, ys) { _classCallCheck(this, MonotonicInterpolant); var length = xs.length; // Rearrange xs and ys so that xs is sorted var indexes = []; for (var i = 0; i < length; i++) { indexes.push(i); } indexes.sort(function (a, b) { return xs[a] < xs[b] ? -1 : 1; }); // Get consecutive differences and slopes var dys = []; var dxs = []; var ms = []; var dx; var dy; for (var _i = 0; _i < length - 1; _i++) { dx = xs[_i + 1] - xs[_i]; dy = ys[_i + 1] - ys[_i]; dxs.push(dx); dys.push(dy); ms.push(dy / dx); } // Get degree-1 coefficients var c1s = [ms[0]]; for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) { var m2 = ms[_i2]; var mNext = ms[_i2 + 1]; if (m2 * mNext <= 0) { c1s.push(0); } else { dx = dxs[_i2]; var dxNext = dxs[_i2 + 1]; var common = dx + dxNext; c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext)); } } c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients var c2s = []; var c3s = []; var m; for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) { m = ms[_i3]; var c1 = c1s[_i3]; var invDx = 1 / dxs[_i3]; var _common = c1 + c1s[_i3 + 1] - m - m; c2s.push((m - c1 - _common) * invDx); c3s.push(_common * invDx * invDx); } this.xs = xs; this.ys = ys; this.c1s = c1s; this.c2s = c2s; this.c3s = c3s; } _createClass(MonotonicInterpolant, [{ key: "interpolate", value: function interpolate(x) { var xs = this.xs, ys = this.ys, c1s = this.c1s, c2s = this.c2s, c3s = this.c3s; // The rightmost point in the dataset should give an exact result var i = xs.length - 1; if (x === xs[i]) { return ys[i]; } // Search for the interval x is in, returning the corresponding y if x is one of the original xs var low = 0; var high = c3s.length - 1; var mid; while (low <= high) { mid = Math.floor(0.5 * (low + high)); var xHere = xs[mid]; if (xHere < x) { low = mid + 1; } else if (xHere > x) { high = mid - 1; } else { return ys[mid]; } } i = Math.max(0, high); // Interpolate var diff = x - xs[i]; var diffSq = diff * diff; return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq; } }]); return MonotonicInterpolant; }(); exports.MonotonicInterpolant = MonotonicInterpolant;PKy\:cjs/BrowserDetector.jsnu["use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isSafari = exports.isFirefox = void 0; var _js_utils = require("./utils/js_utils"); var isFirefox = (0, _js_utils.memoize)(function () { return /firefox/i.test(navigator.userAgent); }); exports.isFirefox = isFirefox; var isSafari = (0, _js_utils.memoize)(function () { return Boolean(window.safari); }); exports.isSafari = isSafari;PKy\^}++esm/OptionsReader.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } export var OptionsReader = /*#__PURE__*/function () { function OptionsReader(globalContext) { _classCallCheck(this, OptionsReader); this.globalContext = globalContext; } _createClass(OptionsReader, [{ key: "window", get: function get() { if (this.globalContext) { return this.globalContext; } else if (typeof window !== 'undefined') { return window; } return undefined; } }, { key: "document", get: function get() { if (this.window) { return this.window.document; } return undefined; } }]); return OptionsReader; }();PKy\yT0esm/NativeDragSources/getDataFromDataTransfer.jsnu[export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) { var result = typesToTry.reduce(function (resultSoFar, typeToTry) { return resultSoFar || dataTransfer.getData(typeToTry); }, ''); return result != null ? result : defaultValue; }PKy\r esm/NativeDragSources/index.jsnu[import { nativeTypesConfig } from './nativeTypesConfig'; import { NativeDragSource } from './NativeDragSource'; export function createNativeDragSource(type, dataTransfer) { var result = new NativeDragSource(nativeTypesConfig[type]); result.loadDataTransfer(dataTransfer); return result; } export function matchNativeItemType(dataTransfer) { if (!dataTransfer) { return null; } var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []); return Object.keys(nativeTypesConfig).filter(function (nativeItemType) { var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes; return matchesTypes.some(function (t) { return dataTransferTypes.indexOf(t) > -1; }); })[0] || null; }PKy\ )esm/NativeDragSources/NativeDragSource.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } export var NativeDragSource = /*#__PURE__*/function () { function NativeDragSource(config) { _classCallCheck(this, NativeDragSource); this.config = config; this.item = {}; this.initializeExposedProperties(); } _createClass(NativeDragSource, [{ key: "initializeExposedProperties", value: function initializeExposedProperties() { var _this = this; Object.keys(this.config.exposeProperties).forEach(function (property) { Object.defineProperty(_this.item, property, { configurable: true, enumerable: true, get: function get() { // eslint-disable-next-line no-console console.warn("Browser doesn't allow reading \"".concat(property, "\" until the drop event.")); return null; } }); }); } }, { key: "loadDataTransfer", value: function loadDataTransfer(dataTransfer) { var _this2 = this; if (dataTransfer) { var newProperties = {}; Object.keys(this.config.exposeProperties).forEach(function (property) { newProperties[property] = { value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes), configurable: true, enumerable: true }; }); Object.defineProperties(this.item, newProperties); } } }, { key: "canDrag", value: function canDrag() { return true; } }, { key: "beginDrag", value: function beginDrag() { return this.item; } }, { key: "isDragging", value: function isDragging(monitor, handle) { return handle === monitor.getSourceId(); } }, { key: "endDrag", value: function endDrag() {// empty } }]); return NativeDragSource; }();PKy\vm*esm/NativeDragSources/nativeTypesConfig.jsnu[var _nativeTypesConfig; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import * as NativeTypes from '../NativeTypes'; import { getDataFromDataTransfer } from './getDataFromDataTransfer'; export var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, { exposeProperties: { files: function files(dataTransfer) { return Array.prototype.slice.call(dataTransfer.files); }, items: function items(dataTransfer) { return dataTransfer.items; } }, matchesTypes: ['Files'] }), _defineProperty(_nativeTypesConfig, NativeTypes.URL, { exposeProperties: { urls: function urls(dataTransfer, matchesTypes) { return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\n'); } }, matchesTypes: ['Url', 'text/uri-list'] }), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, { exposeProperties: { text: function text(dataTransfer, matchesTypes) { return getDataFromDataTransfer(dataTransfer, matchesTypes, ''); } }, matchesTypes: ['Text', 'text/plain'] }), _nativeTypesConfig);PKy\ esm/types.jsnu[PKy\CC77esm/EnterLeaveCounter.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { union, without } from './utils/js_utils'; export var EnterLeaveCounter = /*#__PURE__*/function () { function EnterLeaveCounter(isNodeInDocument) { _classCallCheck(this, EnterLeaveCounter); this.entered = []; this.isNodeInDocument = isNodeInDocument; } _createClass(EnterLeaveCounter, [{ key: "enter", value: function enter(enteringNode) { var _this = this; var previousLength = this.entered.length; var isNodeEntered = function isNodeEntered(node) { return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode)); }; this.entered = union(this.entered.filter(isNodeEntered), [enteringNode]); return previousLength === 0 && this.entered.length > 0; } }, { key: "leave", value: function leave(leavingNode) { var previousLength = this.entered.length; this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode); return previousLength > 0 && this.entered.length === 0; } }, { key: "reset", value: function reset() { this.entered = []; } }]); return EnterLeaveCounter; }();PKy\^|^|^esm/HTML5BackendImpl.jsnu[function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } import { EnterLeaveCounter } from './EnterLeaveCounter'; import { isFirefox } from './BrowserDetector'; import { getNodeClientOffset, getEventClientOffset, getDragPreviewOffset } from './OffsetUtils'; import { createNativeDragSource, matchNativeItemType } from './NativeDragSources'; import * as NativeTypes from './NativeTypes'; import { OptionsReader } from './OptionsReader'; export var HTML5BackendImpl = /*#__PURE__*/function () { function HTML5BackendImpl(manager, globalContext) { var _this = this; _classCallCheck(this, HTML5BackendImpl); this.sourcePreviewNodes = new Map(); this.sourcePreviewNodeOptions = new Map(); this.sourceNodes = new Map(); this.sourceNodeOptions = new Map(); this.dragStartSourceIds = null; this.dropTargetIds = []; this.dragEnterTargetIds = []; this.currentNativeSource = null; this.currentNativeHandle = null; this.currentDragSourceNode = null; this.altKeyPressed = false; this.mouseMoveTimeoutTimer = null; this.asyncEndDragFrameId = null; this.dragOverTargetIds = null; this.getSourceClientOffset = function (sourceId) { var source = _this.sourceNodes.get(sourceId); return source && getNodeClientOffset(source) || null; }; this.endDragNativeItem = function () { if (!_this.isDraggingNativeItem()) { return; } _this.actions.endDrag(); if (_this.currentNativeHandle) { _this.registry.removeSource(_this.currentNativeHandle); } _this.currentNativeHandle = null; _this.currentNativeSource = null; }; this.isNodeInDocument = function (node) { // Check the node either in the main document or in the current context return Boolean(node && _this.document && _this.document.body && document.body.contains(node)); }; this.endDragIfSourceWasRemovedFromDOM = function () { var node = _this.currentDragSourceNode; if (_this.isNodeInDocument(node)) { return; } if (_this.clearCurrentDragSourceNode()) { _this.actions.endDrag(); } }; this.handleTopDragStartCapture = function () { _this.clearCurrentDragSourceNode(); _this.dragStartSourceIds = []; }; this.handleTopDragStart = function (e) { if (e.defaultPrevented) { return; } var dragStartSourceIds = _this.dragStartSourceIds; _this.dragStartSourceIds = null; var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died if (_this.monitor.isDragging()) { _this.actions.endDrag(); } // Don't publish the source just yet (see why below) _this.actions.beginDrag(dragStartSourceIds || [], { publishSource: false, getSourceClientOffset: _this.getSourceClientOffset, clientOffset: clientOffset }); var dataTransfer = e.dataTransfer; var nativeType = matchNativeItemType(dataTransfer); if (_this.monitor.isDragging()) { if (dataTransfer && typeof dataTransfer.setDragImage === 'function') { // Use custom drag image if user specifies it. // If child drag source refuses drag but parent agrees, // use parent's node as drag image. Neither works in IE though. var sourceId = _this.monitor.getSourceId(); var sourceNode = _this.sourceNodes.get(sourceId); var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode; if (dragPreview) { var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(), anchorX = _this$getCurrentSourc.anchorX, anchorY = _this$getCurrentSourc.anchorY, offsetX = _this$getCurrentSourc.offsetX, offsetY = _this$getCurrentSourc.offsetY; var anchorPoint = { anchorX: anchorX, anchorY: anchorY }; var offsetPoint = { offsetX: offsetX, offsetY: offsetY }; var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint); dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y); } } try { // Firefox won't drag without setting data dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {}); } catch (err) {} // IE doesn't support MIME types in setData // Store drag source node so we can check whether // it is removed from DOM and trigger endDrag manually. _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not? var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(), captureDraggingState = _this$getCurrentSourc2.captureDraggingState; if (!captureDraggingState) { // Usually we want to publish it in the next tick so that browser // is able to screenshot the current (not yet dragging) state. // // It also neatly avoids a situation where render() returns null // in the same tick for the source element, and browser freaks out. setTimeout(function () { return _this.actions.publishDragSource(); }, 0); } else { // In some cases the user may want to override this behavior, e.g. // to work around IE not supporting custom drag previews. // // When using a custom drag layer, the only way to prevent // the default drag preview from drawing in IE is to screenshot // the dragging state in which the node itself has zero opacity // and height. In this case, though, returning null from render() // will abruptly end the dragging, which is not obvious. // // This is the reason such behavior is strictly opt-in. _this.actions.publishDragSource(); } } else if (nativeType) { // A native item (such as URL) dragged from inside the document _this.beginDragNativeItem(nativeType); } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) { // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable. // Just let it drag. It's a native type (URL or text) and will be picked up in // dragenter handler. return; } else { // If by this time no drag source reacted, tell browser not to drag. e.preventDefault(); } }; this.handleTopDragEndCapture = function () { if (_this.clearCurrentDragSourceNode()) { // Firefox can dispatch this event in an infinite loop // if dragend handler does something like showing an alert. // Only proceed if we have not handled it already. _this.actions.endDrag(); } }; this.handleTopDragEnterCapture = function (e) { _this.dragEnterTargetIds = []; var isFirstEnter = _this.enterLeaveCounter.enter(e.target); if (!isFirstEnter || _this.monitor.isDragging()) { return; } var dataTransfer = e.dataTransfer; var nativeType = matchNativeItemType(dataTransfer); if (nativeType) { // A native item (such as file or URL) dragged from outside the document _this.beginDragNativeItem(nativeType, dataTransfer); } }; this.handleTopDragEnter = function (e) { var dragEnterTargetIds = _this.dragEnterTargetIds; _this.dragEnterTargetIds = []; if (!_this.monitor.isDragging()) { // This is probably a native item type we don't understand. return; } _this.altKeyPressed = e.altKey; if (!isFirefox()) { // Don't emit hover in `dragenter` on Firefox due to an edge case. // If the target changes position as the result of `dragenter`, Firefox // will still happily dispatch `dragover` despite target being no longer // there. The easy solution is to only fire `hover` in `dragover` on FF. _this.actions.hover(dragEnterTargetIds, { clientOffset: getEventClientOffset(e) }); } var canDrop = dragEnterTargetIds.some(function (targetId) { return _this.monitor.canDropOnTarget(targetId); }); if (canDrop) { // IE requires this to fire dragover events e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = _this.getCurrentDropEffect(); } } }; this.handleTopDragOverCapture = function () { _this.dragOverTargetIds = []; }; this.handleTopDragOver = function (e) { var dragOverTargetIds = _this.dragOverTargetIds; _this.dragOverTargetIds = []; if (!_this.monitor.isDragging()) { // This is probably a native item type we don't understand. // Prevent default "drop and blow away the whole document" action. e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = 'none'; } return; } _this.altKeyPressed = e.altKey; _this.actions.hover(dragOverTargetIds || [], { clientOffset: getEventClientOffset(e) }); var canDrop = (dragOverTargetIds || []).some(function (targetId) { return _this.monitor.canDropOnTarget(targetId); }); if (canDrop) { // Show user-specified drop effect. e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = _this.getCurrentDropEffect(); } } else if (_this.isDraggingNativeItem()) { // Don't show a nice cursor but still prevent default // "drop and blow away the whole document" action. e.preventDefault(); } else { e.preventDefault(); if (e.dataTransfer) { e.dataTransfer.dropEffect = 'none'; } } }; this.handleTopDragLeaveCapture = function (e) { if (_this.isDraggingNativeItem()) { e.preventDefault(); } var isLastLeave = _this.enterLeaveCounter.leave(e.target); if (!isLastLeave) { return; } if (_this.isDraggingNativeItem()) { _this.endDragNativeItem(); } }; this.handleTopDropCapture = function (e) { _this.dropTargetIds = []; e.preventDefault(); if (_this.isDraggingNativeItem()) { var _this$currentNativeSo; (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer); } _this.enterLeaveCounter.reset(); }; this.handleTopDrop = function (e) { var dropTargetIds = _this.dropTargetIds; _this.dropTargetIds = []; _this.actions.hover(dropTargetIds, { clientOffset: getEventClientOffset(e) }); _this.actions.drop({ dropEffect: _this.getCurrentDropEffect() }); if (_this.isDraggingNativeItem()) { _this.endDragNativeItem(); } else { _this.endDragIfSourceWasRemovedFromDOM(); } }; this.handleSelectStart = function (e) { var target = e.target; // Only IE requires us to explicitly say // we want drag drop operation to start if (typeof target.dragDrop !== 'function') { return; } // Inputs and textareas should be selectable if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) { return; } // For other targets, ask IE // to enable drag and drop e.preventDefault(); target.dragDrop(); }; this.options = new OptionsReader(globalContext); this.actions = manager.getActions(); this.monitor = manager.getMonitor(); this.registry = manager.getRegistry(); this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument); } /** * Generate profiling statistics for the HTML5Backend. */ _createClass(HTML5BackendImpl, [{ key: "profile", value: function profile() { var _this$dragStartSource, _this$dragOverTargetI; return { sourcePreviewNodes: this.sourcePreviewNodes.size, sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size, sourceNodeOptions: this.sourceNodeOptions.size, sourceNodes: this.sourceNodes.size, dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0, dropTargetIds: this.dropTargetIds.length, dragEnterTargetIds: this.dragEnterTargetIds.length, dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0 }; } // public for test }, { key: "setup", value: function setup() { if (this.window === undefined) { return; } if (this.window.__isReactDndBackendSetUp) { throw new Error('Cannot have two HTML5 backends at the same time.'); } this.window.__isReactDndBackendSetUp = true; this.addEventListeners(this.window); } }, { key: "teardown", value: function teardown() { if (this.window === undefined) { return; } this.window.__isReactDndBackendSetUp = false; this.removeEventListeners(this.window); this.clearCurrentDragSourceNode(); if (this.asyncEndDragFrameId) { this.window.cancelAnimationFrame(this.asyncEndDragFrameId); } } }, { key: "connectDragPreview", value: function connectDragPreview(sourceId, node, options) { var _this2 = this; this.sourcePreviewNodeOptions.set(sourceId, options); this.sourcePreviewNodes.set(sourceId, node); return function () { _this2.sourcePreviewNodes.delete(sourceId); _this2.sourcePreviewNodeOptions.delete(sourceId); }; } }, { key: "connectDragSource", value: function connectDragSource(sourceId, node, options) { var _this3 = this; this.sourceNodes.set(sourceId, node); this.sourceNodeOptions.set(sourceId, options); var handleDragStart = function handleDragStart(e) { return _this3.handleDragStart(e, sourceId); }; var handleSelectStart = function handleSelectStart(e) { return _this3.handleSelectStart(e); }; node.setAttribute('draggable', 'true'); node.addEventListener('dragstart', handleDragStart); node.addEventListener('selectstart', handleSelectStart); return function () { _this3.sourceNodes.delete(sourceId); _this3.sourceNodeOptions.delete(sourceId); node.removeEventListener('dragstart', handleDragStart); node.removeEventListener('selectstart', handleSelectStart); node.setAttribute('draggable', 'false'); }; } }, { key: "connectDropTarget", value: function connectDropTarget(targetId, node) { var _this4 = this; var handleDragEnter = function handleDragEnter(e) { return _this4.handleDragEnter(e, targetId); }; var handleDragOver = function handleDragOver(e) { return _this4.handleDragOver(e, targetId); }; var handleDrop = function handleDrop(e) { return _this4.handleDrop(e, targetId); }; node.addEventListener('dragenter', handleDragEnter); node.addEventListener('dragover', handleDragOver); node.addEventListener('drop', handleDrop); return function () { node.removeEventListener('dragenter', handleDragEnter); node.removeEventListener('dragover', handleDragOver); node.removeEventListener('drop', handleDrop); }; } }, { key: "addEventListeners", value: function addEventListeners(target) { // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813 if (!target.addEventListener) { return; } target.addEventListener('dragstart', this.handleTopDragStart); target.addEventListener('dragstart', this.handleTopDragStartCapture, true); target.addEventListener('dragend', this.handleTopDragEndCapture, true); target.addEventListener('dragenter', this.handleTopDragEnter); target.addEventListener('dragenter', this.handleTopDragEnterCapture, true); target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true); target.addEventListener('dragover', this.handleTopDragOver); target.addEventListener('dragover', this.handleTopDragOverCapture, true); target.addEventListener('drop', this.handleTopDrop); target.addEventListener('drop', this.handleTopDropCapture, true); } }, { key: "removeEventListeners", value: function removeEventListeners(target) { // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813 if (!target.removeEventListener) { return; } target.removeEventListener('dragstart', this.handleTopDragStart); target.removeEventListener('dragstart', this.handleTopDragStartCapture, true); target.removeEventListener('dragend', this.handleTopDragEndCapture, true); target.removeEventListener('dragenter', this.handleTopDragEnter); target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true); target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true); target.removeEventListener('dragover', this.handleTopDragOver); target.removeEventListener('dragover', this.handleTopDragOverCapture, true); target.removeEventListener('drop', this.handleTopDrop); target.removeEventListener('drop', this.handleTopDropCapture, true); } }, { key: "getCurrentSourceNodeOptions", value: function getCurrentSourceNodeOptions() { var sourceId = this.monitor.getSourceId(); var sourceNodeOptions = this.sourceNodeOptions.get(sourceId); return _objectSpread({ dropEffect: this.altKeyPressed ? 'copy' : 'move' }, sourceNodeOptions || {}); } }, { key: "getCurrentDropEffect", value: function getCurrentDropEffect() { if (this.isDraggingNativeItem()) { // It makes more sense to default to 'copy' for native resources return 'copy'; } return this.getCurrentSourceNodeOptions().dropEffect; } }, { key: "getCurrentSourcePreviewNodeOptions", value: function getCurrentSourcePreviewNodeOptions() { var sourceId = this.monitor.getSourceId(); var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId); return _objectSpread({ anchorX: 0.5, anchorY: 0.5, captureDraggingState: false }, sourcePreviewNodeOptions || {}); } }, { key: "isDraggingNativeItem", value: function isDraggingNativeItem() { var itemType = this.monitor.getItemType(); return Object.keys(NativeTypes).some(function (key) { return NativeTypes[key] === itemType; }); } }, { key: "beginDragNativeItem", value: function beginDragNativeItem(type, dataTransfer) { this.clearCurrentDragSourceNode(); this.currentNativeSource = createNativeDragSource(type, dataTransfer); this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource); this.actions.beginDrag([this.currentNativeHandle]); } }, { key: "setCurrentDragSourceNode", value: function setCurrentDragSourceNode(node) { var _this5 = this; this.clearCurrentDragSourceNode(); this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced // See: // * https://github.com/react-dnd/react-dnd/pull/928 // * https://github.com/react-dnd/react-dnd/issues/869 var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation // means it has ended and the drag source node disappeared from DOM, // so the browser didn't dispatch the dragend event. // // We need to wait before we start listening for mousemove events. // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event // immediately in some browsers. // // See: // * https://github.com/react-dnd/react-dnd/pull/928 // * https://github.com/react-dnd/react-dnd/issues/869 // this.mouseMoveTimeoutTimer = setTimeout(function () { return _this5.window && _this5.window.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true); }, MOUSE_MOVE_TIMEOUT); } }, { key: "clearCurrentDragSourceNode", value: function clearCurrentDragSourceNode() { if (this.currentDragSourceNode) { this.currentDragSourceNode = null; if (this.window) { this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined); this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true); } this.mouseMoveTimeoutTimer = null; return true; } return false; } }, { key: "handleDragStart", value: function handleDragStart(e, sourceId) { if (e.defaultPrevented) { return; } if (!this.dragStartSourceIds) { this.dragStartSourceIds = []; } this.dragStartSourceIds.unshift(sourceId); } }, { key: "handleDragEnter", value: function handleDragEnter(e, targetId) { this.dragEnterTargetIds.unshift(targetId); } }, { key: "handleDragOver", value: function handleDragOver(e, targetId) { if (this.dragOverTargetIds === null) { this.dragOverTargetIds = []; } this.dragOverTargetIds.unshift(targetId); } }, { key: "handleDrop", value: function handleDrop(e, targetId) { this.dropTargetIds.unshift(targetId); } }, { key: "window", get: function get() { return this.options.window; } }, { key: "document", get: function get() { return this.options.document; } }]); return HTML5BackendImpl; }();PKy\Ou!esm/OffsetUtils.jsnu[import { isSafari, isFirefox } from './BrowserDetector'; import { MonotonicInterpolant } from './MonotonicInterpolant'; var ELEMENT_NODE = 1; export function getNodeClientOffset(node) { var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement; if (!el) { return null; } var _el$getBoundingClient = el.getBoundingClientRect(), top = _el$getBoundingClient.top, left = _el$getBoundingClient.left; return { x: left, y: top }; } export function getEventClientOffset(e) { return { x: e.clientX, y: e.clientY }; } function isImageNode(node) { var _document$documentEle; return node.nodeName === 'IMG' && (isFirefox() || !((_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.contains(node))); } function getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) { var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth; var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers if (isSafari() && isImage) { dragPreviewHeight /= window.devicePixelRatio; dragPreviewWidth /= window.devicePixelRatio; } return { dragPreviewWidth: dragPreviewWidth, dragPreviewHeight: dragPreviewHeight }; } export function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) { // The browsers will use the image intrinsic size under different conditions. // Firefox only cares if it's an image, but WebKit also wants it to be detached. var isImage = isImageNode(dragPreview); var dragPreviewNode = isImage ? sourceNode : dragPreview; var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode); var offsetFromDragPreview = { x: clientOffset.x - dragPreviewNodeOffsetFromClient.x, y: clientOffset.y - dragPreviewNodeOffsetFromClient.y }; var sourceWidth = sourceNode.offsetWidth, sourceHeight = sourceNode.offsetHeight; var anchorX = anchorPoint.anchorX, anchorY = anchorPoint.anchorY; var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight), dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth, dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight; var calculateYOffset = function calculateYOffset() { var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top offsetFromDragPreview.y, // Align at the center offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]); var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug if (isSafari() && isImage) { // We'll have to wait for @3x to see if this is entirely correct y += (window.devicePixelRatio - 1) * dragPreviewHeight; } return y; }; var calculateXOffset = function calculateXOffset() { // Interpolate coordinates depending on anchor point // If you know a simpler way to do this, let me know var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left offsetFromDragPreview.x, // Align at the center offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]); return interpolantX.interpolate(anchorX); }; // Force offsets if specified in the options. var offsetX = offsetPoint.offsetX, offsetY = offsetPoint.offsetY; var isManualOffsetX = offsetX === 0 || offsetX; var isManualOffsetY = offsetY === 0 || offsetY; return { x: isManualOffsetX ? offsetX : calculateXOffset(), y: isManualOffsetY ? offsetY : calculateYOffset() }; }PKy\gesm/getEmptyImage.jsnu[var emptyImage; export function getEmptyImage() { if (!emptyImage) { emptyImage = new Image(); emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; } return emptyImage; }PKy\uEbllesm/NativeTypes.jsnu[export var FILE = '__NATIVE_FILE__'; export var URL = '__NATIVE_URL__'; export var TEXT = '__NATIVE_TEXT__';PKy\  esm/MonotonicInterpolant.jsnu[function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } export var MonotonicInterpolant = /*#__PURE__*/function () { function MonotonicInterpolant(xs, ys) { _classCallCheck(this, MonotonicInterpolant); var length = xs.length; // Rearrange xs and ys so that xs is sorted var indexes = []; for (var i = 0; i < length; i++) { indexes.push(i); } indexes.sort(function (a, b) { return xs[a] < xs[b] ? -1 : 1; }); // Get consecutive differences and slopes var dys = []; var dxs = []; var ms = []; var dx; var dy; for (var _i = 0; _i < length - 1; _i++) { dx = xs[_i + 1] - xs[_i]; dy = ys[_i + 1] - ys[_i]; dxs.push(dx); dys.push(dy); ms.push(dy / dx); } // Get degree-1 coefficients var c1s = [ms[0]]; for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) { var m2 = ms[_i2]; var mNext = ms[_i2 + 1]; if (m2 * mNext <= 0) { c1s.push(0); } else { dx = dxs[_i2]; var dxNext = dxs[_i2 + 1]; var common = dx + dxNext; c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext)); } } c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients var c2s = []; var c3s = []; var m; for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) { m = ms[_i3]; var c1 = c1s[_i3]; var invDx = 1 / dxs[_i3]; var _common = c1 + c1s[_i3 + 1] - m - m; c2s.push((m - c1 - _common) * invDx); c3s.push(_common * invDx * invDx); } this.xs = xs; this.ys = ys; this.c1s = c1s; this.c2s = c2s; this.c3s = c3s; } _createClass(MonotonicInterpolant, [{ key: "interpolate", value: function interpolate(x) { var xs = this.xs, ys = this.ys, c1s = this.c1s, c2s = this.c2s, c3s = this.c3s; // The rightmost point in the dataset should give an exact result var i = xs.length - 1; if (x === xs[i]) { return ys[i]; } // Search for the interval x is in, returning the corresponding y if x is one of the original xs var low = 0; var high = c3s.length - 1; var mid; while (low <= high) { mid = Math.floor(0.5 * (low + high)); var xHere = xs[mid]; if (xHere < x) { low = mid + 1; } else if (xHere > x) { high = mid - 1; } else { return ys[mid]; } } i = Math.max(0, high); // Interpolate var diff = x - xs[i]; var diffSq = diff * diff; return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq; } }]); return MonotonicInterpolant; }();PKy\DX)eesm/BrowserDetector.jsnu[import { memoize } from './utils/js_utils'; export var isFirefox = memoize(function () { return /firefox/i.test(navigator.userAgent); }); export var isSafari = memoize(function () { return Boolean(window.safari); });PKz\z WWbootstrap-tagsinput.jsnu[(function ($) { "use strict"; var defaultOptions = { tagClass: function(item) { return 'label label-info'; }, itemValue: function(item) { return item ? item.toString() : item; }, itemText: function(item) { return this.itemValue(item); }, itemTitle: function(item) { return null; }, freeInput: true, addOnBlur: true, maxTags: undefined, maxChars: undefined, confirmKeys: [13, 44], delimiter: ',', delimiterRegex: null, cancelConfirmKeysOnEmpty: false, onTagExists: function(item, $tag) { $tag.hide().fadeIn(); }, trimValue: false, allowDuplicates: false }; /** * Constructor function */ function TagsInput(element, options) { this.isInit = true; this.itemsArray = []; this.$element = $(element); this.$element.hide(); this.isSelect = (element.tagName === 'SELECT'); this.multiple = (this.isSelect && element.hasAttribute('multiple')); this.objectItems = options && options.itemValue; this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : ''; this.inputSize = Math.max(1, this.placeholderText.length); this.$container = $('
'); this.$input = $('').appendTo(this.$container); this.$element.before(this.$container); this.build(options); this.isInit = false; } TagsInput.prototype = { constructor: TagsInput, /** * Adds the given item as a new tag. Pass true to dontPushVal to prevent * updating the elements val() */ add: function(item, dontPushVal, options) { var self = this; if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags) return; // Ignore falsey values, except false if (item !== false && !item) return; // Trim value if (typeof item === "string" && self.options.trimValue) { item = $.trim(item); } // Throw an error when trying to add an object while the itemValue option was not set if (typeof item === "object" && !self.objectItems) throw("Can't add objects when itemValue option is not set"); // Ignore strings only containg whitespace if (item.toString().match(/^\s*$/)) return; // If SELECT but not multiple, remove current tag if (self.isSelect && !self.multiple && self.itemsArray.length > 0) self.remove(self.itemsArray[0]); if (typeof item === "string" && this.$element[0].tagName === 'INPUT') { var delimiter = (self.options.delimiterRegex) ? self.options.delimiterRegex : self.options.delimiter; var items = item.split(delimiter); if (items.length > 1) { for (var i = 0; i < items.length; i++) { this.add(items[i], true); } if (!dontPushVal) self.pushVal(); return; } } var itemValue = self.options.itemValue(item), itemText = self.options.itemText(item), tagClass = self.options.tagClass(item), itemTitle = self.options.itemTitle(item); // Ignore items allready added var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0]; if (existing && !self.options.allowDuplicates) { // Invoke onTagExists if (self.options.onTagExists) { var $existingTag = $(".tag", self.$container).filter(function() { return $(this).data("item") === existing; }); self.options.onTagExists(item, $existingTag); } return; } // if length greater than limit if (self.items().toString().length + item.length + 1 > self.options.maxInputLength) return; // raise beforeItemAdd arg var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false, options: options}); self.$element.trigger(beforeItemAddEvent); if (beforeItemAddEvent.cancel) return; // register item in internal array and map self.itemsArray.push(item); // add a tag element var $tag = $('' + htmlEncode(itemText) + ''); $tag.data('item', item); self.findInputWrapper().before($tag); $tag.after(' '); // Check to see if the tag exists in its raw or uri-encoded form var optionExists = ( $('option[value="' + encodeURIComponent(itemValue) + '"]', self.$element).length || $('option[value="' + htmlEncode(itemValue) + '"]', self.$element).length ); // add
");a(function(){a("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput()})}(window.jQuery); //# sourceMappingURL=bootstrap-tagsinput.min.js.mapPK jG&dist/bootstrap-tagsinput-typeahead.css.twitter-typeahead .tt-query, .twitter-typeahead .tt-hint { margin-bottom: 0; } .twitter-typeahead .tt-hint { display: none; } .tt-menu { position: absolute; top: 100%; left: 0; z-index: 1000; display: none; float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; list-style: none; font-size: 14px; background-color: #ffffff; border: 1px solid #cccccc; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); background-clip: padding-box; cursor: pointer; } .tt-suggestion { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.428571429; color: #333333; white-space: nowrap; } .tt-suggestion:hover, .tt-suggestion:focus { color: #ffffff; text-decoration: none; outline: 0; background-color: #428bca; } PK jGi6%%dist/bootstrap-tagsinput.css.bootstrap-tagsinput { background-color: #fff; border: 1px solid #ccc; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); display: inline-block; padding: 4px 6px; color: #555; vertical-align: middle; border-radius: 4px; max-width: 100%; line-height: 22px; cursor: text; } .bootstrap-tagsinput input { border: none; box-shadow: none; outline: none; background-color: transparent; padding: 0 6px; margin: 0; width: auto; max-width: inherit; } .bootstrap-tagsinput.form-control input::-moz-placeholder { color: #777; opacity: 1; } .bootstrap-tagsinput.form-control input:-ms-input-placeholder { color: #777; } .bootstrap-tagsinput.form-control input::-webkit-input-placeholder { color: #777; } .bootstrap-tagsinput input:focus { border: none; box-shadow: none; } .bootstrap-tagsinput .tag { margin-right: 2px; color: white; } .bootstrap-tagsinput .tag [data-role="remove"] { margin-left: 8px; cursor: pointer; } .bootstrap-tagsinput .tag [data-role="remove"]:after { content: "x"; padding: 0px 2px; } .bootstrap-tagsinput .tag [data-role="remove"]:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); } .bootstrap-tagsinput .tag [data-role="remove"]:hover:active { box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } PK jGlNdist/bootstrap-tagsinput.less.bootstrap-tagsinput { background-color: #fff; border: 1px solid #ccc; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); display: inline-block; padding: 4px 6px; margin-bottom: 10px; color: #555; vertical-align: middle; border-radius: 4px; max-width: 100%; line-height: 22px; cursor: text; input { border: none; box-shadow: none; outline: none; background-color: transparent; padding: 0; margin: 0; width: auto !important; max-width: inherit; &:focus { border: none; box-shadow: none; } } .tag { margin-right: 2px; color: white; [data-role="remove"] { margin-left:8px; cursor:pointer; &:after{ content: "x"; padding:0px 2px; } &:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); &:active { box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); } } } } } PK jGPSoo+dist/bootstrap-tagsinput-angular.min.js.map{"version":3,"sources":["../src/bootstrap-tagsinput-angular.js"],"names":["angular","module","directive","getItemProperty","scope","property","isFunction","$parent","item","undefined","restrict","model","template","replace","link","element","attrs","$","isArray","select","typeaheadSourceArray","typeaheadSource","split","length","tagsinput","options","typeahead","source","itemValue","itemvalue","itemText","itemtext","confirmKeys","confirmkeys","JSON","parse","tagClass","tagclass","i","on","event","indexOf","push","idx","splice","prev","slice","$watch","added","filter","removed"],"mappings":";;;;;AAAAA,QAAQC,OAAO,0BACdC,UAAU,sBAAuB,WAEhC,QAASC,GAAgBC,EAAOC,GAC9B,MAAKA,GAGDL,QAAQM,WAAWF,EAAMG,QAAQF,IAC5BD,EAAMG,QAAQF,GAEhB,SAASG,GACd,MAAOA,GAAKH,IANLI,OAUX,OACEC,SAAU,KACVN,OACEO,MAAO,YAETC,SAAU,6BACVC,SAAS,EACTC,KAAM,SAASV,EAAOW,EAASC,GAC7BC,EAAE,WACKjB,QAAQkB,QAAQd,EAAMO,SACzBP,EAAMO,SAER,IAAIQ,GAASF,EAAE,SAAUF,GACrBK,EAAuBJ,EAAMK,gBAAkBL,EAAMK,gBAAgBC,MAAM,KAAO,KAClFD,EAAkBD,EACjBA,EAAqBG,OAAS,EAC3BnB,EAAMG,QAAQa,EAAqB,IAAIA,EAAqB,IAC1DhB,EAAMG,QAAQa,EAAqB,IACvC,IAEND,GAAOK,UAAUpB,EAAMG,QAAQS,EAAMS,SAAW,MAC9CC,WACEC,OAAW3B,QAAQM,WAAWe,GAAmBA,EAAkB,MAErEO,UAAWzB,EAAgBC,EAAOY,EAAMa,WACxCC,SAAW3B,EAAgBC,EAAOY,EAAMe,UACxCC,YAAc7B,EAAgBC,EAAOY,EAAMiB,aAAeC,KAAKC,MAAMnB,EAAMiB,cAAgB,IAC3FG,SAAWpC,QAAQM,WAAWF,EAAMG,QAAQS,EAAMqB,WAAajC,EAAMG,QAAQS,EAAMqB,UAAY,SAAS7B,GAAQ,MAAOQ,GAAMqB,WAG/H,KAAK,GAAIC,GAAI,EAAGA,EAAIlC,EAAMO,MAAMY,OAAQe,IACtCnB,EAAOK,UAAU,MAAOpB,EAAMO,MAAM2B,GAGtCnB,GAAOoB,GAAG,YAAa,SAASC,GACU,KAApCpC,EAAMO,MAAM8B,QAAQD,EAAMhC,OAC5BJ,EAAMO,MAAM+B,KAAKF,EAAMhC,QAG3BW,EAAOoB,GAAG,cAAe,SAASC,GAChC,GAAIG,GAAMvC,EAAMO,MAAM8B,QAAQD,EAAMhC,KACxB,MAARmC,GACFvC,EAAMO,MAAMiC,OAAOD,EAAK,IAK5B,IAAIE,GAAOzC,EAAMO,MAAMmC,OACvB1C,GAAM2C,OAAO,QAAS,WACpB,GAEIT,GAFAU,EAAQ5C,EAAMO,MAAMsC,OAAO,SAASX,GAAI,MAA2B,KAApBO,EAAKJ,QAAQH,KAC5DY,EAAUL,EAAKI,OAAO,SAASX,GAAI,MAAkC,KAA3BlC,EAAMO,MAAM8B,QAAQH,IAMlE,KAHAO,EAAOzC,EAAMO,MAAMmC,QAGdR,EAAI,EAAGA,EAAIY,EAAQ3B,OAAQe,IAC9BnB,EAAOK,UAAU,SAAU0B,EAAQZ,GAOrC,KAHAnB,EAAOK,UAAU,WAGZc,EAAI,EAAGA,EAAIU,EAAMzB,OAAQe,IAC5BnB,EAAOK,UAAU,MAAOwB,EAAMV,MAE/B","file":"bootstrap-tagsinput-angular.min.js"}PK jGR,00#dist/bootstrap-tagsinput.min.js.map{"version":3,"sources":["../src/bootstrap-tagsinput.js"],"names":["$","TagsInput","element","options","this","isInit","itemsArray","$element","hide","isSelect","tagName","multiple","hasAttribute","objectItems","itemValue","placeholderText","attr","inputSize","Math","max","length","$container","$input","appendTo","before","build","makeOptionItemFunction","key","propertyName","item","makeOptionFunction","value","htmlEncode","htmlEncodeContainer","text","html","doGetCaretPosition","oField","iCaretPos","document","selection","focus","oSel","createRange","moveStart","selectionStart","keyCombinationInList","keyPressEvent","lookupList","found","each","index","keyCombination","which","alt","hasOwnProperty","altKey","shift","shiftKey","ctrl","ctrlKey","defaultOptions","tagClass","toString","itemText","itemTitle","freeInput","addOnBlur","maxTags","undefined","maxChars","confirmKeys","delimiter","delimiterRegex","cancelConfirmKeysOnEmpty","onTagExists","$tag","fadeIn","trimValue","allowDuplicates","prototype","constructor","add","dontPushVal","self","trim","match","remove","items","split","i","pushVal","existing","grep","maxInputLength","beforeItemAddEvent","Event","cancel","trigger","push","data","findInputWrapper","after","optionExists","encodeURIComponent","$option","append","addClass","typeahead","$existingTag","filter","other","beforeItemRemoveEvent","inArray","splice","removeClass","removeAll","pop","refresh","contents","nodeType","nodeValue","option","val","map","extend","source","query","process","processItems","texts","isFunction","success","then","when","updater","matcher","toLowerCase","indexOf","sorter","sort","highlighter","regex","RegExp","replace","typeaheadjs","typeaheadConfig","typeaheadDatasets","isArray","on","proxy","obj","datum","valueKey","event","removeAttr","target","$inputWrapper","prev","next","$prevTag","$nextTag","textLength","ceil","maxLengthReached","substr","preventDefault","closest","destroy","off","removeData","show","input","elt","container","parentNode","fn","tagsinput","arg1","arg2","arg3","results","retVal","Constructor","window","jQuery"],"mappings":";;;;;CAAA,SAAWA,GACT,YAiCA,SAASC,GAAUC,EAASC,GAC1BC,KAAKC,QAAS,EACdD,KAAKE,cAELF,KAAKG,SAAWP,EAAEE,GAClBE,KAAKG,SAASC,OAEdJ,KAAKK,SAAgC,WAApBP,EAAQQ,QACzBN,KAAKO,SAAYP,KAAKK,UAAYP,EAAQU,aAAa,YACvDR,KAAKS,YAAcV,GAAWA,EAAQW,UACtCV,KAAKW,gBAAkBb,EAAQU,aAAa,eAAiBR,KAAKG,SAASS,KAAK,eAAiB,GACjGZ,KAAKa,UAAYC,KAAKC,IAAI,EAAGf,KAAKW,gBAAgBK,QAElDhB,KAAKiB,WAAarB,EAAE,2CACpBI,KAAKkB,OAAStB,EAAE,mCAAqCI,KAAKW,gBAAkB,OAAOQ,SAASnB,KAAKiB,YAEjGjB,KAAKG,SAASiB,OAAOpB,KAAKiB,YAE1BjB,KAAKqB,MAAMtB,GACXC,KAAKC,QAAS,EAohBhB,QAASqB,GAAuBvB,EAASwB,GACvC,GAA4B,kBAAjBxB,GAAQwB,GAAqB,CACtC,GAAIC,GAAezB,EAAQwB,EAC3BxB,GAAQwB,GAAO,SAASE,GAAQ,MAAOA,GAAKD,KAGhD,QAASE,GAAmB3B,EAASwB,GACnC,GAA4B,kBAAjBxB,GAAQwB,GAAqB,CACtC,GAAII,GAAQ5B,EAAQwB,EACpBxB,GAAQwB,GAAO,WAAa,MAAOI,KAOvC,QAASC,GAAWD,GAClB,MAAIA,GACKE,EAAoBC,KAAKH,GAAOI,OAEhC,GAQX,QAASC,GAAmBC,GAC1B,GAAIC,GAAY,CAChB,IAAIC,SAASC,UAAW,CACtBH,EAAOI,OACP,IAAIC,GAAOH,SAASC,UAAUG,aAC9BD,GAAKE,UAAW,aAAcP,EAAON,MAAMX,QAC3CkB,EAAYI,EAAKR,KAAKd,YACbiB,EAAOQ,gBAA2C,KAAzBR,EAAOQ,kBACzCP,EAAYD,EAAOQ,eAErB,OAAO,GAUT,QAASC,GAAqBC,EAAeC,GACzC,GAAIC,IAAQ,CAkBZ,OAjBAjD,GAAEkD,KAAKF,EAAY,SAAUG,EAAOC,GAChC,GAAgC,gBAArB,IAAiCL,EAAcM,QAAUD,EAEhE,MADAH,IAAQ,GACD,CAGX,IAAIF,EAAcM,QAAUD,EAAeC,MAAO,CAC9C,GAAIC,IAAOF,EAAeG,eAAe,WAAaR,EAAcS,SAAWJ,EAAeI,OAC1FC,GAASL,EAAeG,eAAe,aAAeR,EAAcW,WAAaN,EAAeM,SAChGC,GAAQP,EAAeG,eAAe,YAAcR,EAAca,UAAYR,EAAeQ,OACjG,IAAIN,GAAOG,GAASE,EAEhB,MADAV,IAAQ,GACD,KAKZA,EAzoBX,GAAIY,IACFC,SAAU,SAASjC,GACjB,MAAO,oBAETf,UAAW,SAASe,GAClB,MAAOA,GAAOA,EAAKkC,WAAalC,GAElCmC,SAAU,SAASnC,GACjB,MAAOzB,MAAKU,UAAUe,IAExBoC,UAAW,SAASpC,GAClB,MAAO,OAETqC,WAAW,EACXC,WAAW,EACXC,QAASC,OACTC,SAAUD,OACVE,aAAc,GAAI,IAClBC,UAAW,IACXC,eAAgB,KAChBC,0BAA0B,EAC1BC,YAAa,SAAS9C,EAAM+C,GAC1BA,EAAKpE,OAAOqE,UAEdC,WAAW,EACXC,iBAAiB,EA4BnB9E,GAAU+E,WACRC,YAAahF,EAMbiF,IAAK,SAASrD,EAAMsD,EAAahF,GAC/B,GAAIiF,GAAOhF,IAEX,MAAIgF,EAAKjF,QAAQiE,SAAWgB,EAAK9E,WAAWc,QAAUgE,EAAKjF,QAAQiE,WAI/DvC,KAAS,GAAUA,GAAvB,CASA,GALoB,gBAATA,IAAqBuD,EAAKjF,QAAQ2E,YAC3CjD,EAAO7B,EAAEqF,KAAKxD,IAII,gBAATA,KAAsBuD,EAAKvE,YACpC,KAAK,oDAGP,KAAIgB,EAAKkC,WAAWuB,MAAM,SAA1B,CAOA,GAHIF,EAAK3E,WAAa2E,EAAKzE,UAAYyE,EAAK9E,WAAWc,OAAS,GAC9DgE,EAAKG,OAAOH,EAAK9E,WAAW,IAEV,gBAATuB,IAAkD,UAA7BzB,KAAKG,SAAS,GAAGG,QAAqB,CACpE,GAAI8D,GAAaY,EAAKjF,QAAsB,eAAIiF,EAAKjF,QAAQsE,eAAiBW,EAAKjF,QAAQqE,UACvFgB,EAAQ3D,EAAK4D,MAAMjB,EACvB,IAAIgB,EAAMpE,OAAS,EAAG,CACpB,IAAK,GAAIsE,GAAI,EAAGA,EAAIF,EAAMpE,OAAQsE,IAChCtF,KAAK8E,IAAIM,EAAME,IAAI,EAKrB,aAFKP,GACHC,EAAKO,YAKX,GAAI7E,GAAYsE,EAAKjF,QAAQW,UAAUe,GACnCmC,EAAWoB,EAAKjF,QAAQ6D,SAASnC,GACjCiC,EAAWsB,EAAKjF,QAAQ2D,SAASjC,GACjCoC,EAAYmB,EAAKjF,QAAQ8D,UAAUpC,GAGnC+D,EAAW5F,EAAE6F,KAAKT,EAAK9E,WAAY,SAASuB,GAAQ,MAAOuD,GAAKjF,QAAQW,UAAUe,KAAUf,IAAe,EAC/G,KAAI8E,GAAaR,EAAKjF,QAAQ4E,iBAU9B,KAAIK,EAAKI,QAAQzB,WAAW3C,OAASS,EAAKT,OAAS,EAAIgE,EAAKjF,QAAQ2F,gBAApE,CAIA,GAAIC,GAAqB/F,EAAEgG,MAAM,iBAAmBnE,KAAMA,EAAMoE,QAAQ,EAAO9F,QAASA,GAExF,IADAiF,EAAK7E,SAAS2F,QAAQH,IAClBA,EAAmBE,OAAvB,CAIAb,EAAK9E,WAAW6F,KAAKtE,EAIrB,IAAI+C,GAAO5E,EAAE,oBAAsBgC,EAAW8B,IAA2B,OAAdG,EAAsB,YAAcA,EAAa,IAAM,KAAOjC,EAAWgC,GAAY,0CAChJY,GAAKwB,KAAK,OAAQvE,GAClBuD,EAAKiB,mBAAmB7E,OAAOoD,GAC/BA,EAAK0B,MAAM,IAGX,IAAIC,GACFvG,EAAE,iBAAmBwG,mBAAmB1F,GAAa,KAAMsE,EAAK7E,UAAUa,QAC1EpB,EAAE,iBAAmBgC,EAAWlB,GAAa,KAAMsE,EAAK7E,UAAUa,MAIpE,IAAIgE,EAAK3E,WAAa8F,EAAc,CAClC,GAAIE,GAAUzG,EAAE,oBAAsBgC,EAAWgC,GAAY,YAC7DyC,GAAQL,KAAK,OAAQvE,GACrB4E,EAAQzF,KAAK,QAASF,GACtBsE,EAAK7E,SAASmG,OAAOD,GAGlBtB,GACHC,EAAKO,WAGHP,EAAKjF,QAAQiE,UAAYgB,EAAK9E,WAAWc,QAAUgE,EAAKI,QAAQzB,WAAW3C,SAAWgE,EAAKjF,QAAQ2F,iBACrGV,EAAK/D,WAAWsF,SAAS,2BAGvB3G,EAAE,iCAAkCoF,EAAK/D,YAAYD,QACvDgE,EAAK9D,OAAOsF,UAAU,MAAO,IAG3BxG,KAAKC,OACP+E,EAAK7E,SAAS2F,QAAQlG,EAAEgG,MAAM,mBAAqBnE,KAAMA,EAAM1B,QAASA,KAExEiF,EAAK7E,SAAS2F,QAAQlG,EAAEgG,MAAM,aAAenE,KAAMA,EAAM1B,QAASA,WAxDlE,IAAIiF,EAAKjF,QAAQwE,YAAa,CAC5B,GAAIkC,GAAe7G,EAAE,OAAQoF,EAAK/D,YAAYyF,OAAO,WAAa,MAAO9G,GAAEI,MAAMgG,KAAK,UAAYR,GAClGR,GAAKjF,QAAQwE,YAAY9C,EAAMgF,OA8DrCtB,OAAQ,SAAS1D,EAAMsD,EAAahF,GAClC,GAAIiF,GAAOhF,IAWX,IATIgF,EAAKvE,cAELgB,EADkB,gBAATA,GACF7B,EAAE6F,KAAKT,EAAK9E,WAAY,SAASyG,GAAS,MAAO3B,GAAKjF,QAAQW,UAAUiG,IAAW3B,EAAKjF,QAAQW,UAAUe,KAE1G7B,EAAE6F,KAAKT,EAAK9E,WAAY,SAASyG,GAAS,MAAO3B,GAAKjF,QAAQW,UAAUiG,IAAWlF,IAE5FA,EAAOA,EAAKA,EAAKT,OAAO,IAGtBS,EAAM,CACR,GAAImF,GAAwBhH,EAAEgG,MAAM,oBAAsBnE,KAAMA,EAAMoE,QAAQ,EAAO9F,QAASA,GAE9F,IADAiF,EAAK7E,SAAS2F,QAAQc,GAClBA,EAAsBf,OACxB,MAEFjG,GAAE,OAAQoF,EAAK/D,YAAYyF,OAAO,WAAa,MAAO9G,GAAEI,MAAMgG,KAAK,UAAYvE,IAAS0D,SACxFvF,EAAE,SAAUoF,EAAK7E,UAAUuG,OAAO,WAAa,MAAO9G,GAAEI,MAAMgG,KAAK,UAAYvE,IAAS0D,SAChD,KAArCvF,EAAEiH,QAAQpF,EAAMuD,EAAK9E,aACtB8E,EAAK9E,WAAW4G,OAAOlH,EAAEiH,QAAQpF,EAAMuD,EAAK9E,YAAa,GAGxD6E,GACHC,EAAKO,UAGHP,EAAKjF,QAAQiE,QAAUgB,EAAK9E,WAAWc,QACzCgE,EAAK/D,WAAW8F,YAAY,2BAE9B/B,EAAK7E,SAAS2F,QAAQlG,EAAEgG,MAAM,eAAkBnE,KAAMA,EAAM1B,QAASA,MAMvEiH,UAAW,WACT,GAAIhC,GAAOhF,IAKX,KAHAJ,EAAE,OAAQoF,EAAK/D,YAAYkE,SAC3BvF,EAAE,SAAUoF,EAAK7E,UAAUgF,SAErBH,EAAK9E,WAAWc,OAAS,GAC7BgE,EAAK9E,WAAW+G,KAElBjC,GAAKO,WAOP2B,QAAS,WACP,GAAIlC,GAAOhF,IACXJ,GAAE,OAAQoF,EAAK/D,YAAY6B,KAAK,WAC9B,GAAI0B,GAAO5E,EAAEI,MACTyB,EAAO+C,EAAKwB,KAAK,QACjBtF,EAAYsE,EAAKjF,QAAQW,UAAUe,GACnCmC,EAAWoB,EAAKjF,QAAQ6D,SAASnC,GACjCiC,EAAWsB,EAAKjF,QAAQ2D,SAASjC,EASnC,IANA+C,EAAK5D,KAAK,QAAS,MACnB4D,EAAK+B,SAAS,OAAS3E,EAAW8B,IAClCc,EAAK2C,WAAWT,OAAO,WACrB,MAAwB,IAAjB1G,KAAKoH,WACX,GAAGC,UAAYzF,EAAWgC,GAEzBoB,EAAK3E,SAAU,CACjB,GAAIiH,GAAS1H,EAAE,SAAUoF,EAAK7E,UAAUuG,OAAO,WAAa,MAAO9G,GAAEI,MAAMgG,KAAK,UAAYvE,GAC5F6F,GAAO1G,KAAK,QAASF,OAQ7B0E,MAAO,WACL,MAAOpF,MAAKE,YAOdqF,QAAS,WACP,GAAIP,GAAOhF,KACPuH,EAAM3H,EAAE4H,IAAIxC,EAAKI,QAAS,SAAS3D,GACjC,MAAOuD,GAAKjF,QAAQW,UAAUe,GAAMkC,YAG1CqB,GAAK7E,SAASoH,IAAIA,GAAK,GAAMzB,QAAQ,WAMvCzE,MAAO,SAAStB,GACd,GAAIiF,GAAOhF,IAYX,IAVAgF,EAAKjF,QAAUH,EAAE6H,UAAWhE,EAAgB1D,GAExCiF,EAAKvE,cACPuE,EAAKjF,QAAQ+D,WAAY,GAE3BxC,EAAuB0D,EAAKjF,QAAS,aACrCuB,EAAuB0D,EAAKjF,QAAS,YACrC2B,EAAmBsD,EAAKjF,QAAS,YAG7BiF,EAAKjF,QAAQyG,UAAW,CAC1B,GAAIA,GAAYxB,EAAKjF,QAAQyG,aAE7B9E,GAAmB8E,EAAW,UAE9BxB,EAAK9D,OAAOsF,UAAU5G,EAAE6H,UAAWjB,GACjCkB,OAAQ,SAAUC,EAAOC,GACvB,QAASC,GAAazC,GAGpB,IAAK,GAFD0C,MAEKxC,EAAI,EAAGA,EAAIF,EAAMpE,OAAQsE,IAAK,CACrC,GAAIxD,GAAOkD,EAAKjF,QAAQ6D,SAASwB,EAAME,GACvCkC,GAAI1F,GAAQsD,EAAME,GAClBwC,EAAM/B,KAAKjE,GAEb8F,EAAQE,GAGV9H,KAAKwH,MACL,IAAIA,GAAMxH,KAAKwH,IACXxB,EAAOQ,EAAUkB,OAAOC,EAExB/H,GAAEmI,WAAW/B,EAAKgC,SAEpBhC,EAAKgC,QAAQH,GACJjI,EAAEmI,WAAW/B,EAAKiC,MAE3BjC,EAAKiC,KAAKJ,GAGVjI,EAAEsI,KAAKlC,GACLiC,KAAKJ,IAGXM,QAAS,SAAUrG,GAEjB,MADAkD,GAAKF,IAAI9E,KAAKwH,IAAI1F,IACX9B,KAAKwH,IAAI1F,IAElBsG,QAAS,SAAUtG,GACjB,MAAwE,KAAhEA,EAAKuG,cAAcC,QAAQtI,KAAK2H,MAAM1C,OAAOoD,gBAEvDE,OAAQ,SAAUT,GAChB,MAAOA,GAAMU,QAEfC,YAAa,SAAU3G,GACrB,GAAI4G,GAAQ,GAAIC,QAAQ,IAAM3I,KAAK2H,MAAQ,IAAK,KAChD,OAAO7F,GAAK8G,QAASF,EAAO,2BAMlC,GAAI1D,EAAKjF,QAAQ8I,YAAa,CAC1B,GAAIC,GAAkB,KAClBC,KAGAF,EAAc7D,EAAKjF,QAAQ8I,WAC3BjJ,GAAEoJ,QAAQH,IACZC,EAAkBD,EAAY,GAC9BE,EAAoBF,EAAY,IAEhCE,EAAoBF,EAGtB7D,EAAK9D,OAAOsF,UAAUsC,EAAiBC,GAAmBE,GAAG,qBAAsBrJ,EAAEsJ,MAAM,SAAUC,EAAKC,GACpGL,EAAkBM,SACpBrE,EAAKF,IAAIsE,EAAML,EAAkBM,WAEjCrE,EAAKF,IAAIsE,GACXpE,EAAK9D,OAAOsF,UAAU,MAAO,KAC5BxB,IAGPA,EAAK/D,WAAWgI,GAAG,QAASrJ,EAAEsJ,MAAM,SAASI,GACrCtE,EAAK7E,SAASS,KAAK,aACvBoE,EAAK9D,OAAOqI,WAAW,YAEzBvE,EAAK9D,OAAOmB,SACX2C,IAEGA,EAAKjF,QAAQgE,WAAaiB,EAAKjF,QAAQ+D,WACzCkB,EAAK9D,OAAO+H,GAAG,WAAYrJ,EAAEsJ,MAAM,SAASI,GAG4B,IAAhE1J,EAAE,iCAAkCoF,EAAK/D,YAAYD,SACvDgE,EAAKF,IAAIE,EAAK9D,OAAOqG,OACrBvC,EAAK9D,OAAOqG,IAAI,MAEnBvC,IAIPA,EAAK/D,WAAWgI,GAAG,UAAW,QAASrJ,EAAEsJ,MAAM,SAASI,GACtD,GAAIpI,GAAStB,EAAE0J,EAAME,QACjBC,EAAgBzE,EAAKiB,kBAEzB,IAAIjB,EAAK7E,SAASS,KAAK,YAErB,WADAoE,GAAK9D,OAAON,KAAK,WAAY,WAI/B,QAAQ0I,EAAMrG,OAEZ,IAAK,GACH,GAAsC,IAAlCjB,EAAmBd,EAAO,IAAW,CACvC,GAAIwI,GAAOD,EAAcC,MACrBA,GAAK1I,QACPgE,EAAKG,OAAOuE,EAAK1D,KAAK,SAG1B,KAGF,KAAK,IACH,GAAsC,IAAlChE,EAAmBd,EAAO,IAAW,CACvC,GAAIyI,GAAOF,EAAcE,MACrBA,GAAK3I,QACPgE,EAAKG,OAAOwE,EAAK3D,KAAK,SAG1B,KAGF,KAAK,IAEH,GAAI4D,GAAWH,EAAcC,MACD,KAAxBxI,EAAOqG,MAAMvG,QAAgB4I,EAAS,KACxCA,EAASxI,OAAOqI,GAChBvI,EAAOmB,QAET,MAEF,KAAK,IAEH,GAAIwH,GAAWJ,EAAcE,MACD,KAAxBzI,EAAOqG,MAAMvG,QAAgB6I,EAAS,KACxCA,EAAS3D,MAAMuD,GACfvI,EAAOmB,SAQb,GAAIyH,GAAa5I,EAAOqG,MAAMvG,MACdF,MAAKiJ,KAAKD,EAAa,EAEvC5I,GAAON,KAAK,OAAQE,KAAKC,IAAIf,KAAKa,UAAWK,EAAOqG,MAAMvG,UACzDgE,IAEHA,EAAK/D,WAAWgI,GAAG,WAAY,QAASrJ,EAAEsJ,MAAM,SAASI,GACtD,GAAIpI,GAAStB,EAAE0J,EAAME,OAErB,IAAIxE,EAAK7E,SAASS,KAAK,YAEpB,WADAoE,GAAK9D,OAAON,KAAK,WAAY,WAIhC,IAAIkB,GAAOZ,EAAOqG,MAClByC,EAAmBhF,EAAKjF,QAAQmE,UAAYpC,EAAKd,QAAUgE,EAAKjF,QAAQmE,QACpEc,GAAKjF,QAAQ+D,YAAcpB,EAAqB4G,EAAOtE,EAAKjF,QAAQoE,cAAgB6F,KAEjE,IAAhBlI,EAAKd,SACNgE,EAAKF,IAAIkF,EAAmBlI,EAAKmI,OAAO,EAAGjF,EAAKjF,QAAQmE,UAAYpC,GACpEZ,EAAOqG,IAAI,KAIVvC,EAAKjF,QAAQuE,4BAA6B,GAC1CgF,EAAMY,iBAKb,IAAIJ,GAAa5I,EAAOqG,MAAMvG,MACfF,MAAKiJ,KAAKD,EAAa,EAEtC5I,GAAON,KAAK,OAAQE,KAAKC,IAAIf,KAAKa,UAAWK,EAAOqG,MAAMvG,UAC1DgE,IAGHA,EAAK/D,WAAWgI,GAAG,QAAS,qBAAsBrJ,EAAEsJ,MAAM,SAASI,GAC7DtE,EAAK7E,SAASS,KAAK,aAGvBoE,EAAKG,OAAOvF,EAAE0J,EAAME,QAAQW,QAAQ,QAAQnE,KAAK,UAChDhB,IAGCA,EAAKjF,QAAQW,YAAc+C,EAAe/C,YACX,UAA7BsE,EAAK7E,SAAS,GAAGG,QACjB0E,EAAKF,IAAIE,EAAK7E,SAASoH,OAEzB3H,EAAE,SAAUoF,EAAK7E,UAAU2C,KAAK,WAC9BkC,EAAKF,IAAIlF,EAAEI,MAAMY,KAAK,UAAU,OASxCwJ,QAAS,WACP,GAAIpF,GAAOhF,IAGXgF,GAAK/D,WAAWoJ,IAAI,WAAY,SAChCrF,EAAK/D,WAAWoJ,IAAI,QAAS,iBAE7BrF,EAAK/D,WAAWkE,SAChBH,EAAK7E,SAASmK,WAAW,aACzBtF,EAAK7E,SAASoK,QAMhBlI,MAAO,WACLrC,KAAKkB,OAAOmB,SAMdmI,MAAO,WACL,MAAOxK,MAAKkB,QAOd+E,iBAAkB,WAGhB,IAFA,GAAIwE,GAAMzK,KAAKkB,OAAO,GAClBwJ,EAAY1K,KAAKiB,WAAW,GAC1BwJ,GAAOA,EAAIE,aAAeD,GAC9BD,EAAMA,EAAIE,UAEZ,OAAO/K,GAAE6K,KAOb7K,EAAEgL,GAAGC,UAAY,SAASC,EAAMC,EAAMC,GACpC,GAAIC,KAgCJ,OA9BAjL,MAAK8C,KAAK,WACR,GAAI+H,GAAYjL,EAAEI,MAAMgG,KAAK,YAE7B,IAAK6E,EAWE,GAAKC,GAASC,GAId,GAAuB9G,SAApB4G,EAAUC,GAAqB,CAEnC,GAA8B,IAA3BD,EAAUC,GAAM9J,QAAyBiD,SAAT+G,EAChC,GAAIE,GAASL,EAAUC,GAAMC,EAAM,KAAMC,OAEzC,IAAIE,GAASL,EAAUC,GAAMC,EAEnB9G,UAAXiH,GACAD,EAAQlF,KAAKmF,QATjBD,GAAQlF,KAAK8E,OAbbA,GAAY,GAAIhL,GAAUG,KAAM8K,GAChClL,EAAEI,MAAMgG,KAAK,YAAa6E,GAC1BI,EAAQlF,KAAK8E,GAEQ,WAAjB7K,KAAKM,SACLV,EAAE,SAAUA,EAAEI,OAAOY,KAAK,WAAY,YAI1ChB,EAAEI,MAAMuH,IAAI3H,EAAEI,MAAMuH,SAiBN,gBAARuD,GAEHG,EAAQjK,OAAS,EAAIiK,EAAUA,EAAQ,GAEvCA,GAIXrL,EAAEgL,GAAGC,UAAUM,YAActL,CAsB7B,IAAIgC,GAAsBjC,EAAE,UA2D5BA,GAAE,WACAA,EAAE,qEAAqEiL,eAExEO,OAAOC","file":"bootstrap-tagsinput.min.js"}PK jGdist/PK jGvg g ##dist/bootstrap-tagsinput-angular.jsPK jGT+' dist/bootstrap-tagsinput-angular.min.jsPK jG LUUdist/bootstrap-tagsinput.jsPK jG## gdist/bootstrap-tagsinput.min.jsPK jG&dist/bootstrap-tagsinput-typeahead.cssPK jGi6%%(dist/bootstrap-tagsinput.cssPK jGlNdist/bootstrap-tagsinput.lessPK jGPSoo+dist/bootstrap-tagsinput-angular.min.js.mapPK jGR,00#Ldist/bootstrap-tagsinput.min.js.mapPK PKz\~ bootstrap-tagsinput-angular.jsnu[angular.module('bootstrap-tagsinput', []) .directive('bootstrapTagsinput', [function() { function getItemProperty(scope, property) { if (!property) return undefined; if (angular.isFunction(scope.$parent[property])) return scope.$parent[property]; return function(item) { return item[property]; }; } return { restrict: 'EA', scope: { model: '=ngModel' }, template: '', replace: false, link: function(scope, element, attrs) { $(function() { if (!angular.isArray(scope.model)) scope.model = []; var select = $('select', element); var typeaheadSourceArray = attrs.typeaheadSource ? attrs.typeaheadSource.split('.') : null; var typeaheadSource = typeaheadSourceArray ? (typeaheadSourceArray.length > 1 ? scope.$parent[typeaheadSourceArray[0]][typeaheadSourceArray[1]] : scope.$parent[typeaheadSourceArray[0]]) : null; select.tagsinput(scope.$parent[attrs.options || ''] || { typeahead : { source : angular.isFunction(typeaheadSource) ? typeaheadSource : null }, itemValue: getItemProperty(scope, attrs.itemvalue), itemText : getItemProperty(scope, attrs.itemtext), confirmKeys : getItemProperty(scope, attrs.confirmkeys) ? JSON.parse(attrs.confirmkeys) : [13], tagClass : angular.isFunction(scope.$parent[attrs.tagclass]) ? scope.$parent[attrs.tagclass] : function(item) { return attrs.tagclass; } }); for (var i = 0; i < scope.model.length; i++) { select.tagsinput('add', scope.model[i]); } select.on('itemAdded', function(event) { if (scope.model.indexOf(event.item) === -1) scope.model.push(event.item); }); select.on('itemRemoved', function(event) { var idx = scope.model.indexOf(event.item); if (idx !== -1) scope.model.splice(idx, 1); }); // create a shallow copy of model's current state, needed to determine // diff when model changes var prev = scope.model.slice(); scope.$watch("model", function() { var added = scope.model.filter(function(i) {return prev.indexOf(i) === -1;}), removed = prev.filter(function(i) {return scope.model.indexOf(i) === -1;}), i; prev = scope.model.slice(); // Remove tags no longer in binded model for (i = 0; i < removed.length; i++) { select.tagsinput('remove', removed[i]); } // Refresh remaining tags select.tagsinput('refresh'); // Add new items in model as tags for (i = 0; i < added.length; i++) { select.tagsinput('add', added[i]); } }, true); }); } }; }]); PKz\ȧE!bootstrap-tagsinput-typeahead.cssnu[.twitter-typeahead .tt-query, .twitter-typeahead .tt-hint { margin-bottom: 0; } .twitter-typeahead .tt-hint { display: none; } .tt-menu { position: absolute; top: 100%; left: 0; z-index: 1000; display: none; float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; list-style: none; font-size: 14px; background-color: #ffffff; border: 1px solid #cccccc; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); background-clip: padding-box; cursor: pointer; } .tt-suggestion { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.428571429; color: #333333; white-space: nowrap; } .tt-suggestion:hover, .tt-suggestion:focus { color: #ffffff; text-decoration: none; outline: 0; background-color: #428bca; } PKz\74\\bootstrap-tagsinput.cssnu[.bootstrap-tagsinput { background-color: #fff; border: 1px solid #ccc; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); display: inline-block; padding: 4px 6px; color: #555; vertical-align: middle; border-radius: 4px; max-width: 100%; line-height: 22px; cursor: text; } .bootstrap-tagsinput input { border: none; box-shadow: none; outline: none; background-color: transparent; padding: 0 6px; margin: 0; width: auto; max-width: inherit; } .bootstrap-tagsinput.form-control input::-moz-placeholder { color: #777; opacity: 1; } .bootstrap-tagsinput.form-control input:-ms-input-placeholder { color: #777; } .bootstrap-tagsinput.form-control input::-webkit-input-placeholder { color: #777; } .bootstrap-tagsinput input:focus { border: none; box-shadow: none; } .bootstrap-tagsinput .tag { margin-right: 2px; color: white; } .bootstrap-tagsinput .tag [data-role="remove"] { margin-left: 8px; cursor: pointer; } .bootstrap-tagsinput .tag [data-role="remove"]:after { content: "x"; padding: 0px 2px; } .bootstrap-tagsinput .tag [data-role="remove"]:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); } .bootstrap-tagsinput .tag [data-role="remove"]:hover:active { box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } PKz\PSoo&bootstrap-tagsinput-angular.min.js.mapnu[{"version":3,"sources":["../src/bootstrap-tagsinput-angular.js"],"names":["angular","module","directive","getItemProperty","scope","property","isFunction","$parent","item","undefined","restrict","model","template","replace","link","element","attrs","$","isArray","select","typeaheadSourceArray","typeaheadSource","split","length","tagsinput","options","typeahead","source","itemValue","itemvalue","itemText","itemtext","confirmKeys","confirmkeys","JSON","parse","tagClass","tagclass","i","on","event","indexOf","push","idx","splice","prev","slice","$watch","added","filter","removed"],"mappings":";;;;;AAAAA,QAAQC,OAAO,0BACdC,UAAU,sBAAuB,WAEhC,QAASC,GAAgBC,EAAOC,GAC9B,MAAKA,GAGDL,QAAQM,WAAWF,EAAMG,QAAQF,IAC5BD,EAAMG,QAAQF,GAEhB,SAASG,GACd,MAAOA,GAAKH,IANLI,OAUX,OACEC,SAAU,KACVN,OACEO,MAAO,YAETC,SAAU,6BACVC,SAAS,EACTC,KAAM,SAASV,EAAOW,EAASC,GAC7BC,EAAE,WACKjB,QAAQkB,QAAQd,EAAMO,SACzBP,EAAMO,SAER,IAAIQ,GAASF,EAAE,SAAUF,GACrBK,EAAuBJ,EAAMK,gBAAkBL,EAAMK,gBAAgBC,MAAM,KAAO,KAClFD,EAAkBD,EACjBA,EAAqBG,OAAS,EAC3BnB,EAAMG,QAAQa,EAAqB,IAAIA,EAAqB,IAC1DhB,EAAMG,QAAQa,EAAqB,IACvC,IAEND,GAAOK,UAAUpB,EAAMG,QAAQS,EAAMS,SAAW,MAC9CC,WACEC,OAAW3B,QAAQM,WAAWe,GAAmBA,EAAkB,MAErEO,UAAWzB,EAAgBC,EAAOY,EAAMa,WACxCC,SAAW3B,EAAgBC,EAAOY,EAAMe,UACxCC,YAAc7B,EAAgBC,EAAOY,EAAMiB,aAAeC,KAAKC,MAAMnB,EAAMiB,cAAgB,IAC3FG,SAAWpC,QAAQM,WAAWF,EAAMG,QAAQS,EAAMqB,WAAajC,EAAMG,QAAQS,EAAMqB,UAAY,SAAS7B,GAAQ,MAAOQ,GAAMqB,WAG/H,KAAK,GAAIC,GAAI,EAAGA,EAAIlC,EAAMO,MAAMY,OAAQe,IACtCnB,EAAOK,UAAU,MAAOpB,EAAMO,MAAM2B,GAGtCnB,GAAOoB,GAAG,YAAa,SAASC,GACU,KAApCpC,EAAMO,MAAM8B,QAAQD,EAAMhC,OAC5BJ,EAAMO,MAAM+B,KAAKF,EAAMhC,QAG3BW,EAAOoB,GAAG,cAAe,SAASC,GAChC,GAAIG,GAAMvC,EAAMO,MAAM8B,QAAQD,EAAMhC,KACxB,MAARmC,GACFvC,EAAMO,MAAMiC,OAAOD,EAAK,IAK5B,IAAIE,GAAOzC,EAAMO,MAAMmC,OACvB1C,GAAM2C,OAAO,QAAS,WACpB,GAEIT,GAFAU,EAAQ5C,EAAMO,MAAMsC,OAAO,SAASX,GAAI,MAA2B,KAApBO,EAAKJ,QAAQH,KAC5DY,EAAUL,EAAKI,OAAO,SAASX,GAAI,MAAkC,KAA3BlC,EAAMO,MAAM8B,QAAQH,IAMlE,KAHAO,EAAOzC,EAAMO,MAAMmC,QAGdR,EAAI,EAAGA,EAAIY,EAAQ3B,OAAQe,IAC9BnB,EAAOK,UAAU,SAAU0B,EAAQZ,GAOrC,KAHAnB,EAAOK,UAAU,WAGZc,EAAI,EAAGA,EAAIU,EAAMzB,OAAQe,IAC5BnB,EAAOK,UAAU,MAAOwB,EAAMV,MAE/B","file":"bootstrap-tagsinput-angular.min.js"}PKz\غ"bootstrap-tagsinput-angular.min.jsnu[/* * bootstrap-tagsinput v0.7.1 by Tim Schlechter * */ angular.module("bootstrap-tagsinput",[]).directive("bootstrapTagsinput",[function(){function a(a,b){return b?angular.isFunction(a.$parent[b])?a.$parent[b]:function(a){return a[b]}:void 0}return{restrict:"EA",scope:{model:"=ngModel"},template:"",replace:!1,link:function(b,c,d){$(function(){angular.isArray(b.model)||(b.model=[]);var e=$("select",c),f=d.typeaheadSource?d.typeaheadSource.split("."):null,g=f?f.length>1?b.$parent[f[0]][f[1]]:b.$parent[f[0]]:null;e.tagsinput(b.$parent[d.options||""]||{typeahead:{source:angular.isFunction(g)?g:null},itemValue:a(b,d.itemvalue),itemText:a(b,d.itemtext),confirmKeys:a(b,d.confirmkeys)?JSON.parse(d.confirmkeys):[13],tagClass:angular.isFunction(b.$parent[d.tagclass])?b.$parent[d.tagclass]:function(a){return d.tagclass}});for(var h=0;h1)&&(f-=Math.floor(f));var e=Math.abs(f-.5);return wf.h=360*f-100,wf.s=1.5-1.5*e,wf.l=.8-.9*e,wf+""},f.interpolateWarm=hf,f.interpolateCool=yf,f.interpolateSinebow=function(f){var e;return f=(.5-f)*Math.PI,Af.r=255*(e=Math.sin(f))*e,Af.g=255*(e=Math.sin(f+Pf))*e,Af.b=255*(e=Math.sin(f+Bf))*e,Af+""},f.interpolateViridis=Rf,f.interpolateMagma=xf,f.interpolateInferno=Yf,f.interpolatePlasma=gf,Object.defineProperty(f,"__esModule",{value:!0})}); PKz\P3Z3Zd3-scale-chromatic.jsnu[// https://d3js.org/d3-scale-chromatic/ v1.3.3 Copyright 2018 Mike Bostock (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-interpolate'), require('d3-color')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-interpolate', 'd3-color'], factory) : (factory((global.d3 = global.d3 || {}),global.d3,global.d3)); }(this, (function (exports,d3Interpolate,d3Color) { 'use strict'; function colors(specifier) { var n = specifier.length / 6 | 0, colors = new Array(n), i = 0; while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6); return colors; } var category10 = colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"); var Accent = colors("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"); var Dark2 = colors("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"); var Paired = colors("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"); var Pastel1 = colors("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"); var Pastel2 = colors("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"); var Set1 = colors("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"); var Set2 = colors("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"); var Set3 = colors("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"); function ramp(scheme) { return d3Interpolate.interpolateRgbBasis(scheme[scheme.length - 1]); } var scheme = new Array(3).concat( "d8b365f5f5f55ab4ac", "a6611adfc27d80cdc1018571", "a6611adfc27df5f5f580cdc1018571", "8c510ad8b365f6e8c3c7eae55ab4ac01665e", "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e", "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e", "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e", "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30", "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30" ).map(colors); var BrBG = ramp(scheme); var scheme$1 = new Array(3).concat( "af8dc3f7f7f77fbf7b", "7b3294c2a5cfa6dba0008837", "7b3294c2a5cff7f7f7a6dba0008837", "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837", "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837", "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837", "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837", "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b", "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b" ).map(colors); var PRGn = ramp(scheme$1); var scheme$2 = new Array(3).concat( "e9a3c9f7f7f7a1d76a", "d01c8bf1b6dab8e1864dac26", "d01c8bf1b6daf7f7f7b8e1864dac26", "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221", "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221", "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221", "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221", "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419", "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419" ).map(colors); var PiYG = ramp(scheme$2); var scheme$3 = new Array(3).concat( "998ec3f7f7f7f1a340", "5e3c99b2abd2fdb863e66101", "5e3c99b2abd2f7f7f7fdb863e66101", "542788998ec3d8daebfee0b6f1a340b35806", "542788998ec3d8daebf7f7f7fee0b6f1a340b35806", "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806", "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806", "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08", "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08" ).map(colors); var PuOr = ramp(scheme$3); var scheme$4 = new Array(3).concat( "ef8a62f7f7f767a9cf", "ca0020f4a58292c5de0571b0", "ca0020f4a582f7f7f792c5de0571b0", "b2182bef8a62fddbc7d1e5f067a9cf2166ac", "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac", "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac", "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac", "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061", "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061" ).map(colors); var RdBu = ramp(scheme$4); var scheme$5 = new Array(3).concat( "ef8a62ffffff999999", "ca0020f4a582bababa404040", "ca0020f4a582ffffffbababa404040", "b2182bef8a62fddbc7e0e0e09999994d4d4d", "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d", "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d", "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d", "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a", "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a" ).map(colors); var RdGy = ramp(scheme$5); var scheme$6 = new Array(3).concat( "fc8d59ffffbf91bfdb", "d7191cfdae61abd9e92c7bb6", "d7191cfdae61ffffbfabd9e92c7bb6", "d73027fc8d59fee090e0f3f891bfdb4575b4", "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4", "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4", "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4", "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695", "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695" ).map(colors); var RdYlBu = ramp(scheme$6); var scheme$7 = new Array(3).concat( "fc8d59ffffbf91cf60", "d7191cfdae61a6d96a1a9641", "d7191cfdae61ffffbfa6d96a1a9641", "d73027fc8d59fee08bd9ef8b91cf601a9850", "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850", "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850", "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850", "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837", "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837" ).map(colors); var RdYlGn = ramp(scheme$7); var scheme$8 = new Array(3).concat( "fc8d59ffffbf99d594", "d7191cfdae61abdda42b83ba", "d7191cfdae61ffffbfabdda42b83ba", "d53e4ffc8d59fee08be6f59899d5943288bd", "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd", "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd", "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd", "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2", "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2" ).map(colors); var Spectral = ramp(scheme$8); var scheme$9 = new Array(3).concat( "e5f5f999d8c92ca25f", "edf8fbb2e2e266c2a4238b45", "edf8fbb2e2e266c2a42ca25f006d2c", "edf8fbccece699d8c966c2a42ca25f006d2c", "edf8fbccece699d8c966c2a441ae76238b45005824", "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824", "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b" ).map(colors); var BuGn = ramp(scheme$9); var scheme$a = new Array(3).concat( "e0ecf49ebcda8856a7", "edf8fbb3cde38c96c688419d", "edf8fbb3cde38c96c68856a7810f7c", "edf8fbbfd3e69ebcda8c96c68856a7810f7c", "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b", "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b", "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b" ).map(colors); var BuPu = ramp(scheme$a); var scheme$b = new Array(3).concat( "e0f3dba8ddb543a2ca", "f0f9e8bae4bc7bccc42b8cbe", "f0f9e8bae4bc7bccc443a2ca0868ac", "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac", "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e", "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e", "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081" ).map(colors); var GnBu = ramp(scheme$b); var scheme$c = new Array(3).concat( "fee8c8fdbb84e34a33", "fef0d9fdcc8afc8d59d7301f", "fef0d9fdcc8afc8d59e34a33b30000", "fef0d9fdd49efdbb84fc8d59e34a33b30000", "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000", "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000", "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000" ).map(colors); var OrRd = ramp(scheme$c); var scheme$d = new Array(3).concat( "ece2f0a6bddb1c9099", "f6eff7bdc9e167a9cf02818a", "f6eff7bdc9e167a9cf1c9099016c59", "f6eff7d0d1e6a6bddb67a9cf1c9099016c59", "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450", "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450", "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636" ).map(colors); var PuBuGn = ramp(scheme$d); var scheme$e = new Array(3).concat( "ece7f2a6bddb2b8cbe", "f1eef6bdc9e174a9cf0570b0", "f1eef6bdc9e174a9cf2b8cbe045a8d", "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d", "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b", "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b", "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858" ).map(colors); var PuBu = ramp(scheme$e); var scheme$f = new Array(3).concat( "e7e1efc994c7dd1c77", "f1eef6d7b5d8df65b0ce1256", "f1eef6d7b5d8df65b0dd1c77980043", "f1eef6d4b9dac994c7df65b0dd1c77980043", "f1eef6d4b9dac994c7df65b0e7298ace125691003f", "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f", "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f" ).map(colors); var PuRd = ramp(scheme$f); var scheme$g = new Array(3).concat( "fde0ddfa9fb5c51b8a", "feebe2fbb4b9f768a1ae017e", "feebe2fbb4b9f768a1c51b8a7a0177", "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177", "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177", "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177", "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a" ).map(colors); var RdPu = ramp(scheme$g); var scheme$h = new Array(3).concat( "edf8b17fcdbb2c7fb8", "ffffcca1dab441b6c4225ea8", "ffffcca1dab441b6c42c7fb8253494", "ffffccc7e9b47fcdbb41b6c42c7fb8253494", "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84", "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84", "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58" ).map(colors); var YlGnBu = ramp(scheme$h); var scheme$i = new Array(3).concat( "f7fcb9addd8e31a354", "ffffccc2e69978c679238443", "ffffccc2e69978c67931a354006837", "ffffccd9f0a3addd8e78c67931a354006837", "ffffccd9f0a3addd8e78c67941ab5d238443005a32", "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32", "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529" ).map(colors); var YlGn = ramp(scheme$i); var scheme$j = new Array(3).concat( "fff7bcfec44fd95f0e", "ffffd4fed98efe9929cc4c02", "ffffd4fed98efe9929d95f0e993404", "ffffd4fee391fec44ffe9929d95f0e993404", "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04", "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04", "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506" ).map(colors); var YlOrBr = ramp(scheme$j); var scheme$k = new Array(3).concat( "ffeda0feb24cf03b20", "ffffb2fecc5cfd8d3ce31a1c", "ffffb2fecc5cfd8d3cf03b20bd0026", "ffffb2fed976feb24cfd8d3cf03b20bd0026", "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026", "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026", "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026" ).map(colors); var YlOrRd = ramp(scheme$k); var scheme$l = new Array(3).concat( "deebf79ecae13182bd", "eff3ffbdd7e76baed62171b5", "eff3ffbdd7e76baed63182bd08519c", "eff3ffc6dbef9ecae16baed63182bd08519c", "eff3ffc6dbef9ecae16baed64292c62171b5084594", "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594", "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b" ).map(colors); var Blues = ramp(scheme$l); var scheme$m = new Array(3).concat( "e5f5e0a1d99b31a354", "edf8e9bae4b374c476238b45", "edf8e9bae4b374c47631a354006d2c", "edf8e9c7e9c0a1d99b74c47631a354006d2c", "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32", "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32", "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b" ).map(colors); var Greens = ramp(scheme$m); var scheme$n = new Array(3).concat( "f0f0f0bdbdbd636363", "f7f7f7cccccc969696525252", "f7f7f7cccccc969696636363252525", "f7f7f7d9d9d9bdbdbd969696636363252525", "f7f7f7d9d9d9bdbdbd969696737373525252252525", "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525", "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000" ).map(colors); var Greys = ramp(scheme$n); var scheme$o = new Array(3).concat( "efedf5bcbddc756bb1", "f2f0f7cbc9e29e9ac86a51a3", "f2f0f7cbc9e29e9ac8756bb154278f", "f2f0f7dadaebbcbddc9e9ac8756bb154278f", "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486", "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486", "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d" ).map(colors); var Purples = ramp(scheme$o); var scheme$p = new Array(3).concat( "fee0d2fc9272de2d26", "fee5d9fcae91fb6a4acb181d", "fee5d9fcae91fb6a4ade2d26a50f15", "fee5d9fcbba1fc9272fb6a4ade2d26a50f15", "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d", "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d", "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d" ).map(colors); var Reds = ramp(scheme$p); var scheme$q = new Array(3).concat( "fee6cefdae6be6550d", "feeddefdbe85fd8d3cd94701", "feeddefdbe85fd8d3ce6550da63603", "feeddefdd0a2fdae6bfd8d3ce6550da63603", "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04", "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04", "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704" ).map(colors); var Oranges = ramp(scheme$q); var cubehelix = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(300, 0.5, 0.0), d3Color.cubehelix(-240, 0.5, 1.0)); var warm = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(-100, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8)); var cool = d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(260, 0.75, 0.35), d3Color.cubehelix(80, 1.50, 0.8)); var c = d3Color.cubehelix(); function rainbow(t) { if (t < 0 || t > 1) t -= Math.floor(t); var ts = Math.abs(t - 0.5); c.h = 360 * t - 100; c.s = 1.5 - 1.5 * ts; c.l = 0.8 - 0.9 * ts; return c + ""; } var c$1 = d3Color.rgb(), pi_1_3 = Math.PI / 3, pi_2_3 = Math.PI * 2 / 3; function sinebow(t) { var x; t = (0.5 - t) * Math.PI; c$1.r = 255 * (x = Math.sin(t)) * x; c$1.g = 255 * (x = Math.sin(t + pi_1_3)) * x; c$1.b = 255 * (x = Math.sin(t + pi_2_3)) * x; return c$1 + ""; } function ramp$1(range) { var n = range.length; return function(t) { return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; }; } var viridis = ramp$1(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")); var magma = ramp$1(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")); var inferno = ramp$1(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")); var plasma = ramp$1(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")); exports.schemeCategory10 = category10; exports.schemeAccent = Accent; exports.schemeDark2 = Dark2; exports.schemePaired = Paired; exports.schemePastel1 = Pastel1; exports.schemePastel2 = Pastel2; exports.schemeSet1 = Set1; exports.schemeSet2 = Set2; exports.schemeSet3 = Set3; exports.interpolateBrBG = BrBG; exports.schemeBrBG = scheme; exports.interpolatePRGn = PRGn; exports.schemePRGn = scheme$1; exports.interpolatePiYG = PiYG; exports.schemePiYG = scheme$2; exports.interpolatePuOr = PuOr; exports.schemePuOr = scheme$3; exports.interpolateRdBu = RdBu; exports.schemeRdBu = scheme$4; exports.interpolateRdGy = RdGy; exports.schemeRdGy = scheme$5; exports.interpolateRdYlBu = RdYlBu; exports.schemeRdYlBu = scheme$6; exports.interpolateRdYlGn = RdYlGn; exports.schemeRdYlGn = scheme$7; exports.interpolateSpectral = Spectral; exports.schemeSpectral = scheme$8; exports.interpolateBuGn = BuGn; exports.schemeBuGn = scheme$9; exports.interpolateBuPu = BuPu; exports.schemeBuPu = scheme$a; exports.interpolateGnBu = GnBu; exports.schemeGnBu = scheme$b; exports.interpolateOrRd = OrRd; exports.schemeOrRd = scheme$c; exports.interpolatePuBuGn = PuBuGn; exports.schemePuBuGn = scheme$d; exports.interpolatePuBu = PuBu; exports.schemePuBu = scheme$e; exports.interpolatePuRd = PuRd; exports.schemePuRd = scheme$f; exports.interpolateRdPu = RdPu; exports.schemeRdPu = scheme$g; exports.interpolateYlGnBu = YlGnBu; exports.schemeYlGnBu = scheme$h; exports.interpolateYlGn = YlGn; exports.schemeYlGn = scheme$i; exports.interpolateYlOrBr = YlOrBr; exports.schemeYlOrBr = scheme$j; exports.interpolateYlOrRd = YlOrRd; exports.schemeYlOrRd = scheme$k; exports.interpolateBlues = Blues; exports.schemeBlues = scheme$l; exports.interpolateGreens = Greens; exports.schemeGreens = scheme$m; exports.interpolateGreys = Greys; exports.schemeGreys = scheme$n; exports.interpolatePurples = Purples; exports.schemePurples = scheme$o; exports.interpolateReds = Reds; exports.schemeReds = scheme$p; exports.interpolateOranges = Oranges; exports.schemeOranges = scheme$q; exports.interpolateCubehelixDefault = cubehelix; exports.interpolateRainbow = rainbow; exports.interpolateWarm = warm; exports.interpolateCool = cool; exports.interpolateSinebow = sinebow; exports.interpolateViridis = viridis; exports.interpolateMagma = magma; exports.interpolateInferno = inferno; exports.interpolatePlasma = plasma; Object.defineProperty(exports, '__esModule', { value: true }); }))); PKr{\ f==d3-interpolate.jsnu[// https://d3js.org/d3-interpolate/ v1.3.2 Copyright 2018 Mike Bostock (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-color')) : typeof define === 'function' && define.amd ? define(['exports', 'd3-color'], factory) : (factory((global.d3 = global.d3 || {}),global.d3)); }(this, (function (exports,d3Color) { 'use strict'; function basis(t1, v0, v1, v2, v3) { var t2 = t1 * t1, t3 = t2 * t1; return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; } function basis$1(values) { var n = values.length - 1; return function(t) { var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; return basis((t - i / n) * n, v0, v1, v2, v3); }; } function basisClosed(values) { var n = values.length; return function(t) { var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; return basis((t - i / n) * n, v0, v1, v2, v3); }; } function constant(x) { return function() { return x; }; } function linear(a, d) { return function(t) { return a + t * d; }; } function exponential(a, b, y) { return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { return Math.pow(a + t * b, y); }; } function hue(a, b) { var d = b - a; return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a); } function gamma(y) { return (y = +y) === 1 ? nogamma : function(a, b) { return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a); }; } function nogamma(a, b) { var d = b - a; return d ? linear(a, d) : constant(isNaN(a) ? b : a); } var rgb = (function rgbGamma(y) { var color = gamma(y); function rgb(start, end) { var r = color((start = d3Color.rgb(start)).r, (end = d3Color.rgb(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); return function(t) { start.r = r(t); start.g = g(t); start.b = b(t); start.opacity = opacity(t); return start + ""; }; } rgb.gamma = rgbGamma; return rgb; })(1); function rgbSpline(spline) { return function(colors) { var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; for (i = 0; i < n; ++i) { color = d3Color.rgb(colors[i]); r[i] = color.r || 0; g[i] = color.g || 0; b[i] = color.b || 0; } r = spline(r); g = spline(g); b = spline(b); color.opacity = 1; return function(t) { color.r = r(t); color.g = g(t); color.b = b(t); return color + ""; }; }; } var rgbBasis = rgbSpline(basis$1); var rgbBasisClosed = rgbSpline(basisClosed); function array(a, b) { var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i; for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]); for (; i < nb; ++i) c[i] = b[i]; return function(t) { for (i = 0; i < na; ++i) c[i] = x[i](t); return c; }; } function date(a, b) { var d = new Date; return a = +a, b -= a, function(t) { return d.setTime(a + b * t), d; }; } function number(a, b) { return a = +a, b -= a, function(t) { return a + b * t; }; } function object(a, b) { var i = {}, c = {}, k; if (a === null || typeof a !== "object") a = {}; if (b === null || typeof b !== "object") b = {}; for (k in b) { if (k in a) { i[k] = value(a[k], b[k]); } else { c[k] = b[k]; } } return function(t) { for (k in i) c[k] = i[k](t); return c; }; } var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); function zero(b) { return function() { return b; }; } function one(b) { return function(t) { return b(t) + ""; }; } function string(a, b) { var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b am, // current match in a bm, // current match in b bs, // string preceding current number in b, if any i = -1, // index in s s = [], // string constants and placeholders q = []; // number interpolators // Coerce inputs to strings. a = a + "", b = b + ""; // Interpolate pairs of numbers in a & b. while ((am = reA.exec(a)) && (bm = reB.exec(b))) { if ((bs = bm.index) > bi) { // a string precedes the next number in b bs = b.slice(bi, bs); if (s[i]) s[i] += bs; // coalesce with previous string else s[++i] = bs; } if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match if (s[i]) s[i] += bm; // coalesce with previous string else s[++i] = bm; } else { // interpolate non-matching numbers s[++i] = null; q.push({i: i, x: number(am, bm)}); } bi = reB.lastIndex; } // Add remains of b. if (bi < b.length) { bs = b.slice(bi); if (s[i]) s[i] += bs; // coalesce with previous string else s[++i] = bs; } // Special optimization for only a single match. // Otherwise, interpolate each of the numbers and rejoin the string. return s.length < 2 ? (q[0] ? one(q[0].x) : zero(b)) : (b = q.length, function(t) { for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); return s.join(""); }); } function value(a, b) { var t = typeof b, c; return b == null || t === "boolean" ? constant(b) : (t === "number" ? number : t === "string" ? ((c = d3Color.color(b)) ? (b = c, rgb) : string) : b instanceof d3Color.color ? rgb : b instanceof Date ? date : Array.isArray(b) ? array : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : number)(a, b); } function discrete(range) { var n = range.length; return function(t) { return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))]; }; } function hue$1(a, b) { var i = hue(+a, +b); return function(t) { var x = i(t); return x - 360 * Math.floor(x / 360); }; } function round(a, b) { return a = +a, b -= a, function(t) { return Math.round(a + b * t); }; } var degrees = 180 / Math.PI; var identity = { translateX: 0, translateY: 0, rotate: 0, skewX: 0, scaleX: 1, scaleY: 1 }; function decompose(a, b, c, d, e, f) { var scaleX, scaleY, skewX; if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; return { translateX: e, translateY: f, rotate: Math.atan2(b, a) * degrees, skewX: Math.atan(skewX) * degrees, scaleX: scaleX, scaleY: scaleY }; } var cssNode, cssRoot, cssView, svgNode; function parseCss(value) { if (value === "none") return identity; if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView; cssNode.style.transform = value; value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform"); cssRoot.removeChild(cssNode); value = value.slice(7, -1).split(","); return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]); } function parseSvg(value) { if (value == null) return identity; if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); svgNode.setAttribute("transform", value); if (!(value = svgNode.transform.baseVal.consolidate())) return identity; value = value.matrix; return decompose(value.a, value.b, value.c, value.d, value.e, value.f); } function interpolateTransform(parse, pxComma, pxParen, degParen) { function pop(s) { return s.length ? s.pop() + " " : ""; } function translate(xa, ya, xb, yb, s, q) { if (xa !== xb || ya !== yb) { var i = s.push("translate(", null, pxComma, null, pxParen); q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)}); } else if (xb || yb) { s.push("translate(" + xb + pxComma + yb + pxParen); } } function rotate(a, b, s, q) { if (a !== b) { if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)}); } else if (b) { s.push(pop(s) + "rotate(" + b + degParen); } } function skewX(a, b, s, q) { if (a !== b) { q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)}); } else if (b) { s.push(pop(s) + "skewX(" + b + degParen); } } function scale(xa, ya, xb, yb, s, q) { if (xa !== xb || ya !== yb) { var i = s.push(pop(s) + "scale(", null, ",", null, ")"); q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)}); } else if (xb !== 1 || yb !== 1) { s.push(pop(s) + "scale(" + xb + "," + yb + ")"); } } return function(a, b) { var s = [], // string constants and placeholders q = []; // number interpolators a = parse(a), b = parse(b); translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); rotate(a.rotate, b.rotate, s, q); skewX(a.skewX, b.skewX, s, q); scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); a = b = null; // gc return function(t) { var i = -1, n = q.length, o; while (++i < n) s[(o = q[i]).i] = o.x(t); return s.join(""); }; }; } var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); var rho = Math.SQRT2, rho2 = 2, rho4 = 4, epsilon2 = 1e-12; function cosh(x) { return ((x = Math.exp(x)) + 1 / x) / 2; } function sinh(x) { return ((x = Math.exp(x)) - 1 / x) / 2; } function tanh(x) { return ((x = Math.exp(2 * x)) - 1) / (x + 1); } // p0 = [ux0, uy0, w0] // p1 = [ux1, uy1, w1] function zoom(p0, p1) { var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S; // Special case for u0 ≅ u1. if (d2 < epsilon2) { S = Math.log(w1 / w0) / rho; i = function(t) { return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S) ]; }; } // General case. else { var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); S = (r1 - r0) / rho; i = function(t) { var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0) ]; }; } i.duration = S * 1000; return i; } function hsl(hue$$1) { return function(start, end) { var h = hue$$1((start = d3Color.hsl(start)).h, (end = d3Color.hsl(end)).h), s = nogamma(start.s, end.s), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity); return function(t) { start.h = h(t); start.s = s(t); start.l = l(t); start.opacity = opacity(t); return start + ""; }; } } var hsl$1 = hsl(hue); var hslLong = hsl(nogamma); function lab(start, end) { var l = nogamma((start = d3Color.lab(start)).l, (end = d3Color.lab(end)).l), a = nogamma(start.a, end.a), b = nogamma(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); return function(t) { start.l = l(t); start.a = a(t); start.b = b(t); start.opacity = opacity(t); return start + ""; }; } function hcl(hue$$1) { return function(start, end) { var h = hue$$1((start = d3Color.hcl(start)).h, (end = d3Color.hcl(end)).h), c = nogamma(start.c, end.c), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity); return function(t) { start.h = h(t); start.c = c(t); start.l = l(t); start.opacity = opacity(t); return start + ""; }; } } var hcl$1 = hcl(hue); var hclLong = hcl(nogamma); function cubehelix(hue$$1) { return (function cubehelixGamma(y) { y = +y; function cubehelix(start, end) { var h = hue$$1((start = d3Color.cubehelix(start)).h, (end = d3Color.cubehelix(end)).h), s = nogamma(start.s, end.s), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity); return function(t) { start.h = h(t); start.s = s(t); start.l = l(Math.pow(t, y)); start.opacity = opacity(t); return start + ""; }; } cubehelix.gamma = cubehelixGamma; return cubehelix; })(1); } var cubehelix$1 = cubehelix(hue); var cubehelixLong = cubehelix(nogamma); function piecewise(interpolate, values) { var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n); while (i < n) I[i] = interpolate(v, v = values[++i]); return function(t) { var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n))); return I[i](t - i); }; } function quantize(interpolator, n) { var samples = new Array(n); for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1)); return samples; } exports.interpolate = value; exports.interpolateArray = array; exports.interpolateBasis = basis$1; exports.interpolateBasisClosed = basisClosed; exports.interpolateDate = date; exports.interpolateDiscrete = discrete; exports.interpolateHue = hue$1; exports.interpolateNumber = number; exports.interpolateObject = object; exports.interpolateRound = round; exports.interpolateString = string; exports.interpolateTransformCss = interpolateTransformCss; exports.interpolateTransformSvg = interpolateTransformSvg; exports.interpolateZoom = zoom; exports.interpolateRgb = rgb; exports.interpolateRgbBasis = rgbBasis; exports.interpolateRgbBasisClosed = rgbBasisClosed; exports.interpolateHsl = hsl$1; exports.interpolateHslLong = hslLong; exports.interpolateLab = lab; exports.interpolateHcl = hcl$1; exports.interpolateHclLong = hclLong; exports.interpolateCubehelix = cubehelix$1; exports.interpolateCubehelixLong = cubehelixLong; exports.piecewise = piecewise; exports.quantize = quantize; Object.defineProperty(exports, '__esModule', { value: true }); }))); PKr{\d3-interpolate.min.jsnu[// https://d3js.org/d3-interpolate/ v1.3.2 Copyright 2018 Mike Bostock !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-color")):"function"==typeof define&&define.amd?define(["exports","d3-color"],n):n(t.d3=t.d3||{},t.d3)}(this,function(t,n){"use strict";function r(t,n,r,e,o){var a=t*t,u=a*t;return((1-3*t+3*a-u)*n+(4-6*a+3*u)*r+(1+3*t+3*a-3*u)*e+u*o)/6}function e(t){var n=t.length-1;return function(e){var o=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),a=t[o],u=t[o+1],i=o>0?t[o-1]:2*a-u,l=o180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?n:t)}function l(t){return 1==(t=+t)?c:function(n,r){return r-n?function(t,n,r){return t=Math.pow(t,r),n=Math.pow(n,r)-t,r=1/r,function(e){return Math.pow(t+e*n,r)}}(n,r,t):a(isNaN(n)?r:n)}}function c(t,n){var r=n-t;return r?u(t,r):a(isNaN(t)?n:t)}var f=function t(r){var e=l(r);function o(t,r){var o=e((t=n.rgb(t)).r,(r=n.rgb(r)).r),a=e(t.g,r.g),u=e(t.b,r.b),i=c(t.opacity,r.opacity);return function(n){return t.r=o(n),t.g=a(n),t.b=u(n),t.opacity=i(n),t+""}}return o.gamma=t,o}(1);function s(t){return function(r){var e,o,a=r.length,u=new Array(a),i=new Array(a),l=new Array(a);for(e=0;ea&&(o=n.slice(a,o),i[u]?i[u]+=o:i[++u]=o),(r=r[0])===(e=e[0])?i[u]?i[u]+=e:i[++u]=e:(i[++u]=null,l.push({i:u,x:d(r,e)})),a=M.lastIndex;return a180?n+=360:n-t>180&&(t+=360),a.push({i:r.push(o(r)+"rotate(",null,e)-2,x:d(t,n)})):n&&r.push(o(r)+"rotate("+n+e)}(a.rotate,u.rotate,i,l),function(t,n,r,a){t!==n?a.push({i:r.push(o(r)+"skewX(",null,e)-2,x:d(t,n)}):n&&r.push(o(r)+"skewX("+n+e)}(a.skewX,u.skewX,i,l),function(t,n,r,e,a,u){if(t!==r||n!==e){var i=a.push(o(a)+"scale(",null,",",null,")");u.push({i:i-4,x:d(t,r)},{i:i-2,x:d(n,e)})}else 1===r&&1===e||a.push(o(a)+"scale("+r+","+e+")")}(a.scaleX,a.scaleY,u.scaleX,u.scaleY,i,l),a=u=null,function(t){for(var n,r=-1,e=l.length;++r', '
', '
', '
' ].join('')); // define event if (this.options.trigger !== 'manual') { var showCallback_1 = this.show.bind(this); var hideCallback_1 = this.hide.bind(this); var toggleCallback_1 = this.toggle.bind(this); this.options.trigger.split(' ').forEach(function (eventName) { if (eventName === 'hover') { $node.off('mouseenter mouseleave'); $node.on('mouseenter', showCallback_1).on('mouseleave', hideCallback_1); } else if (eventName === 'click') { $node.on('click', toggleCallback_1); } else if (eventName === 'focus') { $node.on('focus', showCallback_1).on('blur', hideCallback_1); } }); } } TooltipUI.prototype.show = function () { var $node = this.$node; var offset = $node.offset(); var $tooltip = this.$tooltip; var title = this.options.title || $node.attr('title') || $node.data('title'); var placement = this.options.placement || $node.data('placement'); $tooltip.addClass(placement); $tooltip.addClass('in'); $tooltip.find('.note-tooltip-content').text(title); $tooltip.appendTo(this.options.target); var nodeWidth = $node.outerWidth(); var nodeHeight = $node.outerHeight(); var tooltipWidth = $tooltip.outerWidth(); var tooltipHeight = $tooltip.outerHeight(); if (placement === 'bottom') { $tooltip.css({ top: offset.top + nodeHeight, left: offset.left + (nodeWidth / 2 - tooltipWidth / 2) }); } else if (placement === 'top') { $tooltip.css({ top: offset.top - tooltipHeight, left: offset.left + (nodeWidth / 2 - tooltipWidth / 2) }); } else if (placement === 'left') { $tooltip.css({ top: offset.top + (nodeHeight / 2 - tooltipHeight / 2), left: offset.left - tooltipWidth }); } else if (placement === 'right') { $tooltip.css({ top: offset.top + (nodeHeight / 2 - tooltipHeight / 2), left: offset.left + nodeWidth }); } }; TooltipUI.prototype.hide = function () { this.$tooltip.removeClass('in'); this.$tooltip.remove(); }; TooltipUI.prototype.toggle = function () { if (this.$tooltip.hasClass('in')) { this.hide(); } else { this.show(); } }; return TooltipUI; }()); var DropdownUI = /** @class */ (function () { function DropdownUI($node, options) { this.$button = $node; this.options = $.extend({}, { target: options.container }, options); this.setEvent(); } DropdownUI.prototype.setEvent = function () { this.$button.on('click', this.toggle.bind(this)); }; DropdownUI.prototype.clear = function () { var $parent = $('.note-btn-group.open'); $parent.find('.note-btn.active').removeClass('active'); $parent.removeClass('open'); }; DropdownUI.prototype.show = function () { this.$button.addClass('active'); this.$button.parent().addClass('open'); var $dropdown = this.$button.next(); var offset = $dropdown.offset(); var width = $dropdown.outerWidth(); var windowWidth = $(window).width(); var targetMarginRight = parseFloat($(this.options.target).css('margin-right')); if (offset.left + width > windowWidth - targetMarginRight) { $dropdown.css('margin-left', windowWidth - targetMarginRight - (offset.left + width)); } else { $dropdown.css('margin-left', ''); } }; DropdownUI.prototype.hide = function () { this.$button.removeClass('active'); this.$button.parent().removeClass('open'); }; DropdownUI.prototype.toggle = function () { var isOpened = this.$button.parent().hasClass('open'); this.clear(); if (isOpened) { this.hide(); } else { this.show(); } }; return DropdownUI; }()); $(document).on('click', function (e) { if (!$(e.target).closest('.note-btn-group').length) { $('.note-btn-group.open').removeClass('open'); } }); $(document).on('click.note-dropdown-menu', function (e) { $(e.target).closest('.note-dropdown-menu').parent().removeClass('open'); }); var ModalUI = /** @class */ (function () { function ModalUI($node, options) { this.options = $.extend({}, { target: options.container || 'body' }, options); this.$modal = $node; this.$backdrop = $('
'); } ModalUI.prototype.show = function () { if (this.options.target === 'body') { this.$backdrop.css('position', 'fixed'); this.$modal.css('position', 'fixed'); } else { this.$backdrop.css('position', 'absolute'); this.$modal.css('position', 'absolute'); } this.$backdrop.appendTo(this.options.target).show(); this.$modal.appendTo(this.options.target).addClass('open').show(); this.$modal.trigger('note.modal.show'); this.$modal.off('click', '.close').on('click', '.close', this.hide.bind(this)); }; ModalUI.prototype.hide = function () { this.$modal.removeClass('open').hide(); this.$backdrop.hide(); this.$modal.trigger('note.modal.hide'); }; return ModalUI; }()); var editor = renderer.create('
'); var toolbar = renderer.create('