Skip to content

Instantly share code, notes, and snippets.

@espinielli
Last active January 17, 2017 17:37
Show Gist options
  • Save espinielli/1018c88657010f8ee93ea4224652e3cf to your computer and use it in GitHub Desktop.
Save espinielli/1018c88657010f8ee93ea4224652e3cf to your computer and use it in GitHub Desktop.
Earth in a Cube I
license: mit
(function() {
var ε = 1e-5, // 1e-6 gives incorrect clipping for cahillKeyes
π = Math.PI,
radians = π / 180,
degrees = 180 / π;
// Creates a polyhedral projection.
// * root: a spanning tree of polygon faces. Nodes are automatically
// augmented with a transform matrix.
// * face: a function that returns the appropriate node for a given {λ, φ}
// point (radians).
// * r: rotation angle for final polyhedron net. Defaults to -π / 6 (for
// butterflies).
d3.geo.polyhedron = function(root, face, r) {
r = r == null ? -π / 6 : r; // TODO automate
var mesh = [];
recurse(root, {transform: [
Math.cos(r), Math.sin(r), 0,
-Math.sin(r), Math.cos(r), 0
]});
function recurse(node, parent) {
node.edges = faceEdges(node.face);
if (parent) {
// Find shared edge.
if (parent.face) {
var shared = node.shared = sharedEdge(node.face, parent.face),
m = matrix(shared.map(parent.project), shared.map(node.project)),
ring = node.face.slice();
ring.push(ring[0]);
var centroid = d3.geo.centroid({type: "Polygon", coordinates: [ring]});
mesh.push(shared.map(function(d) { return d3.geo.interpolate(d, centroid)(ε); }));
node.transform = parent.transform ? multiply(parent.transform, m) : m;
// Replace shared edge in parent edges array.
var edges = parent.edges;
for (var i = 0, n = edges.length; i < n; ++i) {
if (pointEqual(shared[0], edges[i][1]) && pointEqual(shared[1], edges[i][0])) edges[i] = node;
if (pointEqual(shared[0], edges[i][0]) && pointEqual(shared[1], edges[i][1])) edges[i] = node;
}
var edges = node.edges;
for (var i = 0, n = edges.length; i < n; ++i) {
if (pointEqual(shared[0], edges[i][0]) && pointEqual(shared[1], edges[i][1])) edges[i] = parent;
if (pointEqual(shared[0], edges[i][1]) && pointEqual(shared[1], edges[i][0])) edges[i] = parent;
}
} else {
node.transform = parent.transform;
}
}
if (node.children) {
node.children.forEach(function(child) {
recurse(child, node);
});
}
return node;
}
function forward(λ, φ) {
var node = face(λ, φ),
point = node.project([λ * degrees, φ * degrees]),
t;
if (t = node.transform) {
return [
t[0] * point[0] + t[1] * point[1] + t[2],
-(t[3] * point[0] + t[4] * point[1] + t[5])
];
}
point[1] = -point[1];
return point;
}
// Naive inverse! A faster solution would use bounding boxes, or even a
// polygonal quadtree.
if (hasInverse(root)) forward.invert = function(x, y) {
var coordinates = faceInvert(root, [x, -y]);
return coordinates && (coordinates[0] *= radians, coordinates[1] *= radians, coordinates);
};
function faceInvert(node, coordinates) {
var invert = node.project.invert,
t = node.transform,
point = coordinates;
if (t) {
t = inverseTransform(t);
point = [
t[0] * point[0] + t[1] * point[1] + t[2],
(t[3] * point[0] + t[4] * point[1] + t[5])
];
}
if (invert && node === faceDegrees(p = invert(point))) return p;
var p,
children = node.children;
for (var i = 0, n = children && children.length; i < n; ++i) {
if (p = faceInvert(children[i], coordinates)) return p;
}
}
function faceDegrees(coordinates) {
return face(coordinates[0] * radians, coordinates[1] * radians);
}
var clipPolygon = [];
outline({point: function(λ, φ) { clipPolygon.push([λ, φ]); }}, root);
clipPolygon.push(clipPolygon[0]);
var projection = d3.geo.projection(forward).clipPolygon([clipPolygon]);
projection.mesh = mesh;
// this messes up cahillKeyes: is it necessary for the rest of polyhedra?
// var stream_ = projection.stream;
// projection.stream = function(stream) {
// var rotate = projection.rotate(),
// rotateStream = stream_(stream),
// sphereStream = (projection.rotate([0, 0]), stream_(stream));
// projection.rotate(rotate);
// rotateStream.sphere = function() {
// sphereStream.polygonStart();
// sphereStream.lineStart();
// outline(sphereStream, root);
// sphereStream.lineEnd();
// sphereStream.polygonEnd();
// };
// return rotateStream;
// };
return projection;
};
d3.geo.polyhedron.butterfly = function(faceProjection) {
faceProjection = faceProjection || function(face) {
var centroid = d3.geo.centroid({type: "MultiPoint", coordinates: face});
return d3.geo.gnomonic().scale(1).translate([0, 0]).rotate([-centroid[0], -centroid[1]]);
};
var faces = d3.geo.polyhedron.octahedron.map(function(face) {
return {face: face, project: faceProjection(face)};
});
[-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(d, i) {
var node = faces[d];
node && (node.children || (node.children = [])).push(faces[i]);
});
return d3.geo.polyhedron(faces[0], function(λ, φ) {
return faces[
λ < -π / 2 ? φ < 0 ? 6 : 4
: λ < 0 ? φ < 0 ? 2 : 0
: λ < π / 2 ? φ < 0 ? 3 : 1
: φ < 0 ? 7 : 5];
});
};
d3.geo.polyhedron.waterman = function(faceProjection) {
faceProjection = faceProjection || function(face) {
var centroid = face.length === 6 ? d3.geo.centroid({type: "MultiPoint", coordinates: face}) : face[0];
return d3.geo.gnomonic().scale(1).translate([0, 0]).rotate([-centroid[0], -centroid[1]]);
};
var octahedron = d3.geo.polyhedron.octahedron;
var w5 = octahedron.map(function(face) {
var xyz = face.map(cartesian),
n = xyz.length,
a = xyz[n - 1],
b,
hexagon = [];
for (var i = 0; i < n; ++i) {
b = xyz[i];
hexagon.push(spherical([
a[0] * 0.9486832980505138 + b[0] * 0.31622776601683794,
a[1] * 0.9486832980505138 + b[1] * 0.31622776601683794,
a[2] * 0.9486832980505138 + b[2] * 0.31622776601683794
]), spherical([
b[0] * 0.9486832980505138 + a[0] * 0.31622776601683794,
b[1] * 0.9486832980505138 + a[1] * 0.31622776601683794,
b[2] * 0.9486832980505138 + a[2] * 0.31622776601683794
]));
a = b;
}
return hexagon;
});
var cornerNormals = [];
var parents = [-1, 0, 0, 1, 0, 1, 4, 5];
w5.forEach(function(hexagon, j) {
var face = octahedron[j],
n = face.length,
normals = cornerNormals[j] = [];
for (var i = 0; i < n; ++i) {
w5.push([
face[i],
hexagon[(i * 2 + 2) % (2 * n)],
hexagon[(i * 2 + 1) % (2 * n)]
]);
parents.push(j);
normals.push(cross(
cartesian(hexagon[(i * 2 + 2) % (2 * n)]),
cartesian(hexagon[(i * 2 + 1) % (2 * n)])
));
}
});
var faces = w5.map(function(face) {
return {
project: faceProjection(face),
face: face
};
});
parents.forEach(function(d, i) {
var parent = faces[d];
parent && (parent.children || (parent.children = [])).push(faces[i]);
});
return d3.geo.polyhedron(faces[0], face).center([0, 45]);
function face(λ, φ) {
var cosφ = Math.cos(φ),
p = [cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)];
var hexagon = λ < -π / 2 ? φ < 0 ? 6 : 4
: λ < 0 ? φ < 0 ? 2 : 0
: λ < π / 2 ? φ < 0 ? 3 : 1
: φ < 0 ? 7 : 5;
var n = cornerNormals[hexagon];
return faces[
dot(n[0], p) < 0 ? 8 + 3 * hexagon
: dot(n[1], p) < 0 ? 8 + 3 * hexagon + 1
: dot(n[2], p) < 0 ? 8 + 3 * hexagon + 2
: hexagon];
}
};
d3.geo.polyhedron.cahillKeyes = function(faceProjection) {
faceProjection = faceProjection || function(face) {
var centroid = face.length === 6 ? d3.geo.centroid({type: "MultiPoint", coordinates: face}) : face[0];
return d3.geo.cahillKeyes().scale(1);
};
var octahedron = d3.geo.polyhedron.octahedron;
var ck = octahedron.map(function(face) {
var xyz = face.map(cartesian),
n = xyz.length,
a = xyz[n - 1],
b,
θ = 17,
cosθ = Math.cos(θ*radians),
sinθ = Math.sin(θ*radians),
hexagon = [];
for (var i = 0; i < n; ++i) {
b = xyz[i];
hexagon.push(spherical([
a[0] * cosθ + b[0] * sinθ,
a[1] * cosθ + b[1] * sinθ,
a[2] * cosθ + b[2] * sinθ
]), spherical([
b[0] * cosθ + a[0] * sinθ,
b[1] * cosθ + a[1] * sinθ,
b[2] * cosθ + a[2] * sinθ
]));
a = b;
}
return hexagon;
});
var cornerNormals = [];
var parents = [-1, 3, 0, 2, 0, 1, 4, 5];
ck.forEach(function(hexagon, j) {
var face = octahedron[j],
n = face.length,
normals = cornerNormals[j] = [];
for (var i = 0; i < n; ++i) {
ck.push([
face[i],
hexagon[(i * 2 + 2) % (2 * n)],
hexagon[(i * 2 + 1) % (2 * n)]
]);
parents.push(j);
normals.push(cross(
cartesian(hexagon[(i * 2 + 2) % (2 * n)]),
cartesian(hexagon[(i * 2 + 1) % (2 * n)])
));
}
});
var faces = ck.map(function(face) {
return {
project: faceProjection(face),
face: face
};
});
parents.forEach(function(d, i) {
var parent = faces[d];
parent && (parent.children || (parent.children = [])).push(faces[i]);
});
return d3.geo.polyhedron(faces[0], face, 0).center([0, 45]);
function face(λ, φ) {
var cosφ = Math.cos(φ),
p = [cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ)];
var hexagon = λ < -π / 2 ? φ < 0 ? 6 : 4
: λ < 0 ? φ < 0 ? 2 : 0
: λ < π / 2 ? φ < 0 ? 3 : 1
: φ < 0 ? 7 : 5;
var n = cornerNormals[hexagon];
return faces[
dot(n[0], p) < 0 ? 8 + 3 * hexagon
: dot(n[1], p) < 0 ? 8 + 3 * hexagon + 1
: dot(n[2], p) < 0 ? 8 + 3 * hexagon + 2
: hexagon];
}
};
function outline(stream, node, parent) {
var point,
edges = node.edges,
n = edges.length,
edge,
multiPoint = {type: "MultiPoint", coordinates: node.face},
notPoles = node.face.filter(function(d) { return Math.abs(Math.abs(d[1]) - 90) > ε; }),
bounds = d3.geo.bounds({type: "MultiPoint", coordinates: notPoles}),
inside = false,
j = -1,
ring = node.face.slice();
ring.push(ring[0]);
var centroid = node.centroid || d3.geo.centroid({type: "Polygon", coordinates: [ring]});
// First find the shared edge…
if (parent) while (++j < n) {
if (edges[j] === parent) break;
}
++j;
for (var i = 0; i < n; ++i) {
edge = edges[(i + j) % n];
if (Array.isArray(edge)) {
if (!inside) {
stream.point((point = d3.geo.interpolate(edge[0], centroid)(ε))[0], point[1]);
inside = true;
}
stream.point((point = d3.geo.interpolate(edge[1], centroid)(ε))[0], point[1]);
} else {
inside = false;
if (edge !== parent) outline(stream, edge, node);
}
}
}
// TODO generate on-the-fly to avoid external modification.
var octahedron = [
[0, 90],
[-90, 0], [0, 0], [90, 0], [180, 0],
[0, -90]
];
d3.geo.polyhedron.octahedron = [
[0, 2, 1],
[0, 3, 2],
[5, 1, 2],
[5, 2, 3],
[0, 1, 4],
[0, 4, 3],
[5, 4, 1],
[5, 3, 4]
].map(function(face) {
return face.map(function(i) {
return octahedron[i];
});
});
var φ1 = Math.atan(Math.SQRT1_2) * degrees;
var cube = [
[0, φ1], [90, φ1], [180, φ1], [-90, φ1],
[0, -φ1], [90, -φ1], [180, -φ1], [-90, -φ1]
];
d3.geo.polyhedron.cube = [
[0, 3, 2, 1], // N
[0, 1, 5, 4],
[1, 2, 6, 5],
[2, 3, 7, 6],
[3, 0, 4, 7],
[4, 5, 6, 7] // S
].map(function(face) {
return face.map(function(i) {
return cube[i];
});
});
// Finds a shared edge given two clockwise polygons.
function sharedEdge(a, b) {
var x, y, n = a.length, found = null;
for (var i = 0; i < n; ++i) {
x = a[i];
for (var j = b.length; --j >= 0;) {
y = b[j];
if (x[0] === y[0] && x[1] === y[1]) {
if (found) return [found, x];
found = x;
}
}
}
}
// Note: 6-element arrays are used to denote the 3x3 affine transform matrix:
// [a, b, c,
// d, e, f,
// 0, 0, 1] - this redundant row is left out.
// Transform matrix for [a0, a1] -> [b0, b1].
function matrix(a, b) {
var u = subtract(a[1], a[0]),
v = subtract(b[1], b[0]),
φ = angle(u, v),
s = length(u) / length(v);
return multiply([
1, 0, a[0][0],
0, 1, a[0][1]
], multiply([
s, 0, 0,
0, s, 0
], multiply([
Math.cos(φ), Math.sin(φ), 0,
-Math.sin(φ), Math.cos(φ), 0
], [
1, 0, -b[0][0],
0, 1, -b[0][1]
])));
}
// Inverts a transform matrix.
function inverseTransform(m) {
var k = 1 / (m[0] * m[4] - m[1] * m[3]);
return [
k * m[4], -k * m[1], k * (m[1] * m[5] - m[2] * m[4]),
-k * m[3], k * m[0], k * (m[2] * m[3] - m[0] * m[5])
];
}
// Multiplies two 3x2 matrices.
function multiply(a, b) {
return [
a[0] * b[0] + a[1] * b[3],
a[0] * b[1] + a[1] * b[4],
a[0] * b[2] + a[1] * b[5] + a[2],
a[3] * b[0] + a[4] * b[3],
a[3] * b[1] + a[4] * b[4],
a[3] * b[2] + a[4] * b[5] + a[5]
];
}
// Subtracts 2D vectors.
function subtract(a, b) {
return [a[0] - b[0], a[1] - b[1]];
}
// Magnitude of a 2D vector.
function length(v) {
return Math.sqrt(v[0] * v[0] + v[1] * v[1]);
}
// Angle between two 2D vectors.
function angle(a, b) {
return Math.atan2(a[0] * b[1] - a[1] * b[0], a[0] * b[0] + a[1] * b[1]);
}
function dot(a, b) {
for (var i = 0, n = a.length, s = 0; i < n; ++i) s += a[i] * b[i];
return s;
}
function cross(a, b) {
return [
a[1] * b[2] - a[2] * b[1],
a[2] * b[0] - a[0] * b[2],
a[0] * b[1] - a[1] * b[0]
];
}
// Converts 3D Cartesian to spherical coordinates (degrees).
function spherical(cartesian) {
return [
Math.atan2(cartesian[1], cartesian[0]) * degrees,
Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) * degrees
];
}
// Converts spherical coordinates (degrees) to 3D Cartesian.
function cartesian(coordinates) {
var λ = coordinates[0] * radians,
φ = coordinates[1] * radians,
cosφ = Math.cos(φ);
return [
cosφ * Math.cos(λ),
cosφ * Math.sin(λ),
Math.sin(φ)
];
}
// Tests equality of two spherical points.
function pointEqual(a, b) {
return a && b && a[0] === b[0] && a[1] === b[1];
}
// Converts an array of n face vertices to an array of n + 1 edges.
function faceEdges(face) {
var n = face.length,
edges = [];
for (var a = face[n - 1], i = 0; i < n; ++i) edges.push([a, a = face[i]]);
return edges;
}
function hasInverse(node) {
return node.project.invert || node.children && node.children.some(hasInverse);
}
})();
!function(){function t(t){return t?t/Math.sin(t):1}function n(t){return t>0?1:0>t?-1:0}function a(t){return t>1?aa/2:-1>t?-aa/2:Math.asin(t)}function r(t){return t>1?0:-1>t?aa:Math.acos(t)}function e(t){return t>0?Math.sqrt(t):0}function o(t){function n(t,n){var a=Math.cos(t),r=Math.cos(n),o=Math.sin(n),i=r*a,h=-((1-i?Math.log(.5*(1+i))/(1-i):-.5)+e/(1+i));return[h*r*Math.sin(t),h*o]}var r=Math.tan(.5*t),e=2*Math.log(Math.cos(.5*t))/(r*r);return n.invert=function(n,r){var o,i=Math.sqrt(n*n+r*r),h=t*-.5,u=50;if(!i)return[0,0];do{var M=.5*h,s=Math.cos(M),c=Math.sin(M),f=Math.tan(M),v=Math.log(1/s);h-=o=(2/f*v-e*f-i)/(-v/(c*c)+1-e/(2*s*s))}while(Math.abs(o)>ta&&--u>0);var l=Math.sin(h);return[Math.atan2(n*l,i*Math.cos(h)),a(r*l/i)]},n}function i(){var t=aa/2,n=ha(o),a=n(t);return a.radius=function(a){return arguments.length?n(t=a*aa/180):180*(t/aa)},a}function h(n,a){var e=Math.cos(a),o=t(r(e*Math.cos(n/=2)));return[2*e*Math.sin(n)*o,Math.sin(a)*o]}function u(t){function n(t,n){var h=Math.cos(n),u=Math.cos(t/=2);return[(1+h)*Math.sin(t),(e*n>-Math.atan2(u,o)-.001?0:10*-e)+i+Math.sin(n)*r-(1+h)*a*u]}var a=Math.sin(t),r=Math.cos(t),e=t>0?1:-1,o=Math.tan(e*t),i=(1+a-r)/2;return n.invert=function(t,n){var h=0,u=0,M=50;do{var s=Math.cos(h),c=Math.sin(h),f=Math.cos(u),v=Math.sin(u),l=1+f,g=l*c-t,d=i+v*r-l*a*s-n,p=.5*l*s,b=-c*v,q=.5*a*l*c,w=r*f+a*s*v,m=b*q-w*p,S=.5*(d*b-g*w)/m,T=(g*q-d*p)/m;h-=S,u-=T}while((Math.abs(S)>ta||Math.abs(T)>ta)&&--M>0);return e*u>-Math.atan2(Math.cos(h),o)-.001?[2*h,u]:null},n}function M(){var t=aa/9,n=t>0?1:-1,a=Math.tan(n*t),r=ha(u),e=r(t),o=e.stream;return e.parallel=function(e){return arguments.length?(a=Math.tan((n=(t=e*aa/180)>0?1:-1)*t),r(t)):180*(t/aa)},e.stream=function(r){var i=e.rotate(),h=o(r),u=(e.rotate([0,0]),o(r));return e.rotate(i),h.sphere=function(){u.polygonStart(),u.lineStart();for(var r=-180*n;180>n*r;r+=90*n)u.point(r,90*n);for(;n*(r-=t)>=-180;)u.point(r,n*-Math.atan2(Math.cos(r*ea/2),a)*oa);u.lineEnd(),u.polygonEnd()},h},e}function s(t){return t=Math.exp(2*t),(t-1)/(t+1)}function c(t){return.5*(Math.exp(t)-Math.exp(-t))}function f(t){return.5*(Math.exp(t)+Math.exp(-t))}function v(t){return Math.log(t+e(t*t+1))}function l(t){return Math.log(t+e(t*t-1))}function g(t,n){var a=Math.tan(n/2),r=e(1-a*a),o=1+r*Math.cos(t/=2),i=Math.sin(t)*r/o,h=a/o,u=i*i,M=h*h;return[4/3*i*(3+u-3*M),4/3*h*(3+3*u-M)]}function d(t,a){var r=Math.abs(a);return aa/4>r?[t,Math.log(Math.tan(aa/4+a/2))]:[t*Math.cos(r)*(2*Math.SQRT2-1/Math.sin(r)),n(a)*(2*Math.SQRT2*(r-aa/4)-Math.log(Math.tan(r/2)))]}function p(t){function n(t,n){var e=Ma(t,n);if(Math.abs(t)>aa/2){var o=Math.atan2(e[1],e[0]),i=Math.sqrt(e[0]*e[0]+e[1]*e[1]),h=r*Math.round((o-aa/2)/r)+aa/2,u=Math.atan2(Math.sin(o-=h),2-Math.cos(o));o=h+a(aa/i*Math.sin(u))-u,e[0]=i*Math.cos(o),e[1]=i*Math.sin(o)}return e}var r=2*aa/t;return n.invert=function(t,n){var a=Math.sqrt(t*t+n*n);if(a>aa/2){var e=Math.atan2(n,t),o=r*Math.round((e-aa/2)/r)+aa/2,i=e>o?-1:1,h=a*Math.cos(o-e),u=1/Math.tan(i*Math.acos((h-aa)/Math.sqrt(aa*(aa-2*h)+a*a)));e=o+2*Math.atan((u+i*Math.sqrt(u*u-3))/3),t=a*Math.cos(e),n=a*Math.sin(e)}return Ma.invert(t,n)},n}function b(){var t=5,n=ha(p),a=n(t),r=a.stream;return a.lobes=function(a){return arguments.length?n(t=+a):t},a.stream=function(n){var e=a.rotate(),o=r(n),i=(a.rotate([0,0]),r(n));return a.rotate(e),o.sphere=function(){i.polygonStart(),i.lineStart();for(var n=.01,a=0,r=360/t,e=90-180/t;t>a;++a,e-=r)i.point(180,0),-90>e?(i.point(-90,180-e-n),i.point(-90,180-e+n)):(i.point(90,e+n),i.point(90,e-n));i.lineEnd(),i.polygonEnd()},o},a}function q(t){return function(n){var a,r=t*Math.sin(n),e=30;do n-=a=(n+Math.sin(n)-r)/(1+Math.cos(n));while(Math.abs(a)>ta&&--e>0);return n/2}}function w(t,n,r){function e(a,r){return[t*a*Math.cos(r=o(r)),n*Math.sin(r)]}var o=q(r);return e.invert=function(e,o){var i=a(o/n);return[e/(t*Math.cos(i)),a((2*i+Math.sin(2*i))/r)]},e}function m(t,n){var a=2.00276,r=sa(n);return[a*t/(1/Math.cos(n)+1.11072/Math.cos(r)),(n+Math.SQRT2*Math.sin(r))/a]}function S(t){var n=0,a=ha(t),r=a(n);return r.parallel=function(t){return arguments.length?a(n=t*aa/180):180*(n/aa)},r}function T(t,n){return[t*Math.cos(n),n]}function A(t){function n(n,r){var e=a+t-r,o=e?n*Math.cos(r)/e:e;return[e*Math.sin(o),a-e*Math.cos(o)]}if(!t)return T;var a=1/Math.tan(t);return n.invert=function(n,r){var e=Math.sqrt(n*n+(r=a-r)*r),o=a+t-e;return[e/Math.cos(o)*Math.atan2(n,r),o]},n}function Q(t){function n(){var t,n,o,i,h,u,M,s,d,p,b,q=29,w=15,m=Math.sqrt(3);return k.lengthMA=.094*k.lengthMG,k.lengthParallel0to73At0=k.lengthMG/100,k.lengthParallel73to90At0=(k.lengthMG-k.lengthMA-73*k.lengthParallel0to73At0)/17,k.sin60=.866025403784439,k.cos60=.5,k.yTranslate=k.lengthMG*k.sin60,k.pointM=[0,0],k.pointG=[k.lengthMG,0],t=[k.lengthMG,k.lengthMG*Math.tan(30*ea)],k.pointA=[k.lengthMA,0],k.pointB=e(k.pointM,30,k.pointA,45),k.lengthAG=a(k.pointA,k.pointG),k.lengthAB=a(k.pointA,k.pointB),n=a(k.pointM,k.pointB),o=a(k.pointM,t),i=a(t,k.pointG),k.pointD=r(n,o,t,k.pointM),k.pointF=[k.lengthMG,i-n],k.pointE=[t[0]-k.lengthMA*Math.sin(30*ea),t[1]-k.lengthMA*Math.cos(30*ea)],k.lengthGF=a(k.pointG,k.pointF),k.lengthBD=a(k.pointB,k.pointD),k.lengthBDE=k.lengthBD+k.lengthAB,k.lengthGFE=k.lengthGF+k.lengthAB,k.deltaMEq=k.lengthGFE/45,k.lengthAP75=15*k.lengthParallel73to90At0,k.lengthAP73=k.lengthMG-k.lengthMA-73*k.lengthParallel0to73At0,h=[k.pointA[0]+k.lengthAP73*Math.cos(30*ea),k.pointA[1]+k.lengthAP73*Math.sin(30*ea)],k.pointT=e(h,-60,k.pointB,30),u=g(q),M=u.lengthParallel73,s=v(q),d=l(q),p=w*(s+d+M)/73,b=[0,0],k.pointC=[0,0],k.radius=0,p-=s,b=r(p,d,c(q),f(q)),k.pointC[1]=(b[0]*b[0]+b[1]*b[1]-k.pointD[0]*k.pointD[0]-k.pointD[1]*k.pointD[1])/(2*(m*b[0]+b[1]-m*k.pointD[0]-k.pointD[1])),k.pointC[0]=m*k.pointC[1],k.radius=a(k.pointC,k.pointD),k}function a(t,n){var a=t[0]-n[0],r=t[1]-n[1];return Math.sqrt(a*a+r*r)}function r(t,n,a,r){var e=[a[0]+(r[0]-a[0])*t/n,a[1]+(r[1]-a[1])*t/n];return e}function e(t,n,a,r){var e=Math.tan(n*ea),o=Math.tan(r*ea),i=[0,0];return i[0]=(e*t[0]-o*a[0]-t[1]+a[1])/(e-o),i[1]=e*(i[0]-t[0])+t[1],i}function o(t,n,a,r){var e=a[0],o=a[1],i=r[0],h=r[1],u=t[0],M=t[1],s=(i-e)*(i-e)+(h-o)*(h-o),c=2*((i-e)*(e-u)+(h-o)*(o-M)),f=u*u+M*M+e*e+o*o-2*(u*e+M*o)-n*n,v=c*c-4*s*f,l=0,g=0,d=0,p=0;return 0===s?[0,[0,0]]:0>v?[0,[0,0]]:(l=(-c+Math.sqrt(v))/(2*s),g=(-c-Math.sqrt(v))/(2*s),l>=0&&1>=l?(d=e+l*(i-e),p=o+l*(h-o),[1,[d,p]]):g>=0&&1>=g?(d=e+g*(i-e),p=o+g*(h-o),[1,[d,p]]):[0,[0,0]])}function i(t,n){var a=[0,0];return-60===n?(a[0]=t[0]*k.cos60+t[1]*k.sin60,a[1]=-t[0]*k.sin60+t[1]*k.cos60):-120===n?(a[0]=-t[0]*k.cos60+t[1]*k.sin60,a[1]=-t[0]*k.sin60-t[1]*k.cos60):(console.log("rotate: angle "+n+" different than -60 or -120!"),a[0]=t[0]*Math.cos(n*ea)-t[1]*Math.sin(n*ea),a[1]=t[0]*Math.sin(n*ea)+t[1]*Math.cos(n*ea)),a}function h(t){return t>=0?1:-1}function u(t){return Math[t>0?"floor":"ceil"](t)}function M(t){var n=k.deltaMEq*t,a=[0,0];return n<=k.lengthGF?a=[k.pointG[0],n]:(n-=k.lengthGF,a=r(n,k.lengthAB,k.pointF,k.pointE)),a}function s(t){return M(t)}function c(t){return e(k.pointM,2*t/3,s(t),t/3)}function f(t){if(0===t)return[k.pointA+k.lengthAB,0];var n=e(k.pointA,t,k.pointM,2*t/3);return n}function v(t){return a(s(t),c(t))}function l(t){return a(c(t),f(t))}function g(t){var n=[0,0],r=f(t),o=0,i=[0,0];return 30>=t?(n[0]=k.pointA[0]+k.lengthAP73*Math.cos(t*ea),n[1]=k.pointA[1]+k.lengthAP73*Math.sin(t*ea),o=a(r,n)):(n=e(k.pointT,-60,r,t),o=a(r,n),t>44&&(i=e(k.pointT,-60,r,2/3*t),i[0]>n[0]&&(n=i,o=-a(r,n)))),{parallel73:n,lengthParallel73:o}}function d(t){return[k.pointA[0]+k.lengthAP75*Math.cos(t*ea),k.pointA[1]+k.lengthAP75*Math.sin(t*ea)]}function p(t,n){var a,r=[0,6,7,8,5],e=u((t+180)/90+1),o=t+180-90*(e-1)-45,i=h(o);return o=Math.abs(o),5===e&&(e=1),0>n&&(e=r[e]),a=Math.abs(n),[o,a,i,e]}function b(t,n){return[k.pointA[0]+104*(90-n),0]}function q(t,n){return[k.pointG[0]-100*n,0]}function w(t,n){var a=104*(90-n);return[k.pointA[0]+a*Math.cos(t*ea),k.pointA[1]+a*Math.sin(t*ea)]}function m(t,n){return n=n,M(t)}function S(t,n){var a=1560+100*(75-n);return[k.pointA[0]+a*Math.cos(t*ea),k.pointA[1]+a*Math.sin(t*ea)]}function T(t,n){return r(n,15,k.pointE,k.pointD)}function A(t,n){var a=n-15;return r(a,58,k.pointD,k.pointT)}function Q(t,n){var e=d(45),o=g(t),i=o.parallel73,h=a(k.pointT,k.pointB),u=a(k.pointB,e),M=(75-n)*(u+h)/2,s=[0,0];return u>=M?s=r(M,u,e,k.pointB):(M-=u,s=r(M,h,k.pointB,i)),s}function R(t,n){var a,e=g(t),o=v(t),i=l(t),h=n*(o+i+e.lengthParallel73)/73;return o>=h?a=r(h,o,s(t),c(t)):o+i>=h?(h-=o,a=r(h,i,c(t),f(t))):(h=h-o-i,a=r(h,e.lengthParallel73,f(t),e.parallel73)),a}function y(t,n){var e=d(t),o=a(f(t),e),i=g(t),h=i.parallel73,u=i.lengthParallel73,M=(75-n)*(o-u)/2,s=[0,0];return o>=M?s=r(M,o,e,f(t)):(M-=o,s=r(M,-u,f(t),h)),s}function G(t,n,a){var e=n*a/15,o=v(t),i=l(t),h=[0,0];return o>=e?h=r(e,o,s(t),c(t)):(e-=o,h=r(e,i,c(t),f(t))),h}function P(t,n,a){var e,o=g(t),i=o.parallel73,h=v(t),u=l(t),M=o.lengthParallel73,d=a+(n-15)*(h+u+M-a)/58;return h>=d?e=r(d,h,s(t),f(t)):h+u>=d?(d-=h,e=r(d,u,c(t),f(t))):(d=d-h-u,e=r(d,M,f(t),i)),e}function x(t,n){var r,e,i,h,u,M=[0,0];return 0===t?M=n>=75?b(t,n):q(t,n):n>=75?M=w(t,n):0===n?M=m(t,n):n>=73&&30>=t?M=S(t,n):45===t?M=15>=n?T(t,n):73>=n?A(t,n):Q(t,n):29>=t?M=R(t,n):n>=73?M=y(t,n):(e=o(k.pointC,k.radius,c(t),f(t)),h=e[0],i=e[1],r=v(t),1===h?u=r+a(c(t),i):(e=o(k.pointC,k.radius,s(t),c(t)),h=e[0],i=e[1],0===h&&console.log("Something weird!"),u=r-a(c(t),i)),M=15>=n?G(t,n,u):P(t,n,u)),M}function E(t,n){var a=[0,0];if(0===n)a=i(t,-60);else if(1===n)a=i(t,-120),a[0]-=k.lengthMG;else if(2===n)a=i(t,-60),a[0]-=k.lengthMG;else if(3===n)a=i(t,-120),a[0]+=k.lengthMG;else if(4===n)a=i(t,-60),a[0]+=k.lengthMG;else if(5===n)a=i([2*k.lengthMG-t[0],t[1]],-60),a[0]+=k.lengthMG;else if(6===n)a=i([2*k.lengthMG-t[0],t[1]],-120),a[0]-=k.lengthMG;else if(7===n)a=i([2*k.lengthMG-t[0],t[1]],-60),a[0]-=k.lengthMG;else{if(8!==n)return console.log("mj2g: something weird happened!"),a;a=i([2*k.lengthMG-t[0],t[1]],-120),a[0]+=k.lengthMG}return a[1]+=k.yTranslate,a}function B(t,n){var a=t*oa,r=n*oa,e=p(a,r),o=e[0],i=e[1],h=e[2],u=e[3],M=x(o,i),s=E([M[0],h*M[1]],u);return s}var k={lengthMG:t};return n(),B}function R(){var t=1e4,n=ha(Q),a=n(t);return a}function y(t){function n(n,a){for(var r=Math.sin(a),e=Math.cos(a),o=new Array(3),M=0;3>M;++M){var s=t[M];if(o[M]=P(a-s[1],s[3],s[2],e,r,n-s[0]),!o[M][0])return s.point;o[M][1]=E(o[M][1]-s.v[1])}for(var c=u.slice(),M=0;3>M;++M){var f=2==M?0:M+1,v=x(t[M].v[0],o[M][0],o[f][0]);o[M][1]<0&&(v=-v),M?1==M?(v=i-v,c[0]-=o[M][0]*Math.cos(v),c[1]-=o[M][0]*Math.sin(v)):(v=h-v,c[0]+=o[M][0]*Math.cos(v),c[1]+=o[M][0]*Math.sin(v)):(c[0]+=o[M][0]*Math.cos(v),c[1]-=o[M][0]*Math.sin(v))}return c[0]/=3,c[1]/=3,c}t=t.map(function(t){return[t[0],t[1],Math.sin(t[1]),Math.cos(t[1])]});for(var a,r=t[2],e=0;3>e;++e,r=a)a=t[e],r.v=P(a[1]-r[1],r[3],r[2],a[3],a[2],a[0]-r[0]),r.point=[0,0];var o=x(t[0].v[0],t[2].v[0],t[1].v[0]),i=x(t[0].v[0],t[1].v[0],t[2].v[0]),h=aa-o;t[2].point[1]=0,t[0].point[0]=-(t[1].point[0]=.5*t[0].v[0]);var u=[t[2].point[0]=t[0].point[0]+t[2].v[0]*Math.cos(o),2*(t[0].point[1]=t[1].point[1]=t[2].v[0]*Math.sin(o))];return n}function G(){var t=[[0,0],[0,0],[0,0]],n=ha(y),a=n(t),r=a.rotate;return delete a.rotate,a.points=function(e){if(!arguments.length)return t;t=e;var o=d3.geo.centroid({type:"MultiPoint",coordinates:t}),i=[-o[0],-o[1]];return r.call(a,i),n(t.map(d3.geo.rotation(i)).map(B))},a.points([[-150,55],[-35,55],[-92.5,10]])}function P(t,n,e,o,i,h){var u,M=Math.cos(h);if(Math.abs(t)>1||Math.abs(h)>1)u=r(e*i+n*o*M);else{var s=Math.sin(.5*t),c=Math.sin(.5*h);u=2*a(Math.sqrt(s*s+n*o*c*c))}return Math.abs(u)>ta?[u,Math.atan2(o*Math.sin(h),n*i-e*o*M)]:[0,0]}function x(t,n,a){return r(.5*(t*t+n*n-a*a)/(t*n))}function E(t){return t-2*aa*Math.floor((t+aa)/(2*aa))}function B(t){return[t[0]*ea,t[1]*ea]}function k(t,n){var a=e(1-Math.sin(n));return[2/ra*t*a,ra*(1-a)]}function D(t){function n(t,n){return[t,(t?t/Math.sin(t):1)*(Math.sin(n)*Math.cos(t)-r*Math.cos(n))]}var r=Math.tan(t);return n.invert=r?function(t,n){t&&(n*=Math.sin(t)/t);var a=Math.cos(t);return[t,2*Math.atan2(Math.sqrt(a*a+r*r-n*n)-a,r-n)]}:function(t,n){return[t,a(t?n*Math.tan(t)/t:n)]},n}function _(t,n){var a=Math.sqrt(3);return[a*t*(2*Math.cos(2*n/3)-1)/ra,a*ra*Math.sin(n/3)]}function F(t){function n(t,n){return[t*r,Math.sin(n)/r]}var r=Math.cos(t);return n.invert=function(t,n){return[t/r,a(n*r)]},n}function z(t){function n(t,n){return[t*a,(1+a)*Math.tan(.5*n)]}var a=Math.cos(t);return n.invert=function(t,n){return[t/a,2*Math.atan(n/(1+a))]},n}function C(t,n){var a=Math.sqrt(8/(3*aa));return[a*t*(1-Math.abs(n)/aa),a*n]}function j(t,a){var r=Math.sqrt(4-3*Math.sin(Math.abs(a)));return[2/Math.sqrt(6*aa)*t*r,n(a)*Math.sqrt(2*aa/3)*(2-r)]}function H(t,n){var a=Math.sqrt(aa*(4+aa));return[2/a*t*(1+Math.sqrt(1-4*n*n/(aa*aa))),4/a*n]}function I(t,n){var a=(2+aa/2)*Math.sin(n);n/=2;for(var r=0,e=1/0;10>r&&Math.abs(e)>ta;r++){var o=Math.cos(n);n-=e=(n+Math.sin(n)*(o+2)-a)/(2*o*(1+o))}return[2/Math.sqrt(aa*(4+aa))*t*(1+Math.cos(n)),2*Math.sqrt(aa/(4+aa))*Math.sin(n)]}function K(t,n){return[t*(1+Math.cos(n))/Math.sqrt(2+aa),2*n/Math.sqrt(2+aa)]}function J(t,n){for(var a=(1+aa/2)*Math.sin(n),r=0,e=1/0;10>r&&Math.abs(e)>ta;r++)n-=e=(n+Math.sin(n)-a)/(1+Math.cos(n));return a=Math.sqrt(2+aa),[t*(1+Math.cos(n))/a,2*n/a]}function L(t,n){var a=Math.sin(t/=2),r=Math.cos(t),e=Math.sqrt(Math.cos(n)),o=Math.cos(n/=2),i=Math.sin(n)/(o+Math.SQRT2*r*e),h=Math.sqrt(2/(1+i*i)),u=Math.sqrt((Math.SQRT2*o+(r+a)*e)/(Math.SQRT2*o+(r-a)*e));return[va*(h*(u-1/u)-2*Math.log(u)),va*(h*i*(u+1/u)-2*Math.atan(i))]}function N(t,n){var a=Math.tan(n/2);return[t*la*e(1-a*a),(1+la)*a]}function O(t,n){var a=n/2,r=Math.cos(a);return[2*t/ra*Math.cos(n)*r*r,ra*Math.tan(a)]}function U(t,n,a,r,o,i,h,u){function M(e,M){if(!M)return[t*e/aa,0];var s=M*M,c=t+s*(n+s*(a+s*r)),f=M*(o-1+s*(i-u+s*h)),v=(c*c+f*f)/(2*f),l=e*Math.asin(c/v)/aa;return[v*Math.sin(l),M*(1+s*u)+v*(1-Math.cos(l))]}return arguments.length<8&&(u=0),M.invert=function(M,s){var c,f,v=aa*M/t,l=s,g=50;do{var d=l*l,p=t+d*(n+d*(a+d*r)),b=l*(o-1+d*(i-u+d*h)),q=p*p+b*b,w=2*b,m=q/w,S=m*m,T=Math.asin(p/m)/aa,A=v*T;if(xB2=p*p,dxBdφ=(2*n+d*(4*a+6*d*r))*l,dyBdφ=o+d*(3*i+5*d*h),dpdφ=2*(p*dxBdφ+b*(dyBdφ-1)),dqdφ=2*(dyBdφ-1),dmdφ=(dpdφ*w-q*dqdφ)/(w*w),cosα=Math.cos(A),sinα=Math.sin(A),mcosα=m*cosα,msinα=m*sinα,dαdφ=v/aa*(1/e(1-xB2/S))*(dxBdφ*m-p*dmdφ)/S,fx=msinα-M,fy=l*(1+d*u)+m-mcosα-s,δxδφ=dmdφ*sinα+mcosα*dαdφ,δxδλ=mcosα*T,δyδφ=1+dmdφ-(dmdφ*cosα-msinα*dαdφ),δyδλ=msinα*T,denominator=δxδφ*δyδλ-δyδφ*δxδλ,!denominator)break;v-=c=(fy*δxδφ-fx*δyδφ)/denominator,l-=f=(fx*δyδλ-fy*δxδλ)/denominator}while((Math.abs(c)>ta||Math.abs(f)>ta)&&--g>0);return[v,l]},M}function V(t,n){var a=t*t,r=n*n;return[t*(1-.162388*r)*(.87-952426e-9*a*a),n*(1+r/12)]}function W(t){function a(){var t=!1,n=ha(r),a=n(t);return a.quincuncial=function(a){return arguments.length?n(t=!!a):t},a}function r(a){var r=a?function(a,r){var o=Math.abs(a)<aa/2,i=t(o?a:a>0?a-aa:a+aa,r),h=(i[0]-i[1])*Math.SQRT1_2,u=(i[0]+i[1])*Math.SQRT1_2;if(o)return[h,u];var M=e*Math.SQRT1_2,s=h>0^u>0?-1:1;return[s*h-n(u)*M,s*u-n(h)*M]}:function(n,a){var r=n>0?-.5:.5,o=t(n+r*aa,a);return o[0]-=r*e,o};return t.invert&&(r.invert=a?function(n,a){var r=(n+a)*Math.SQRT1_2,o=(a-n)*Math.SQRT1_2,i=Math.abs(r)<.5*e&&Math.abs(o)<.5*e;if(!i){var h=e*Math.SQRT1_2,u=r>0^o>0?-1:1,M=-u*(n+(o>0?1:-1)*h),s=-u*(a+(r>0?1:-1)*h);r=(-M-s)*Math.SQRT1_2,o=(M-s)*Math.SQRT1_2}var c=t.invert(r,o);return i||(c[0]+=r>0?aa:-aa),c}:function(n,a){var r=n>0?-.5:.5,o=t.invert(n+r*e,a),i=o[0]-r*aa;return-aa>i?i+=2*aa:i>aa&&(i-=2*aa),o[0]=i,o}),r}var e=t(aa/2,0)[0]-t(-aa/2,0)[0];return a.raw=r,a}function X(t,r){var e=n(t),o=n(r),i=Math.cos(r),h=Math.cos(t)*i,u=Math.sin(t)*i,M=Math.sin(o*r);t=Math.abs(Math.atan2(u,M)),r=a(h),Math.abs(t-aa/2)>ta&&(t%=aa/2);var s=Y(t>aa/4?aa/2-t:t,r);return t>aa/4&&(M=s[0],s[0]=-s[1],s[1]=-M),s[0]*=e,s[1]*=-o,s}function Y(t,n){if(n===aa/2)return[0,0];var r=Math.sin(n),o=r*r,i=o*o,h=1+i,u=1+3*i,M=1-i,s=a(1/Math.sqrt(h)),c=M+o*h*s,f=(1-r)/c,v=Math.sqrt(f),l=f*h,g=Math.sqrt(l),d=v*M;if(0===t)return[0,-(d+o*g)];var p=Math.cos(n),b=1/p,q=2*r*p,w=(-3*o+s*u)*q,m=(-c*p-(1-r)*w)/(c*c),S=.5*m/v,T=M*S-2*o*v*q,A=o*h*m+f*u*q,Q=-b*q,R=-b*A,y=-2*b*T,G=4*t/aa;if(t>.222*aa||aa/4>n&&t>.175*aa){var P=(d+o*e(l*(1+i)-d*d))/(1+i);if(t>aa/4)return[P,P];var x=P,E=.5*P,B=50;P=.5*(E+x);do{var k=Math.sqrt(l-P*P),D=P*(y+Q*k)+R*a(P/g)-G;if(!D)break;0>D?E=P:x=P,P=.5*(E+x)}while(Math.abs(x-E)>ta&&--B>0)}else{var _,P=ta,B=25;do{var F=P*P,k=e(l-F),z=y+Q*k,D=P*z+R*a(P/g)-G,C=z+(R-Q*F)/k;P-=_=k?D/C:0}while(Math.abs(_)>ta&&--B>0)}return[P,-d-o*e(l-P*P)]}function Z(t,n){for(var a=0,r=1,e=.5,o=50;;){var i=e*e,h=Math.sqrt(e),u=Math.asin(1/Math.sqrt(1+i)),M=1-i+e*(1+i)*u,s=(1-h)/M,c=Math.sqrt(s),f=s*(1+i),v=c*(1-i),l=f-t*t,g=Math.sqrt(l),d=n+v+e*g;if(Math.abs(r-a)<na||0===--o||0===d)break;d>0?a=e:r=e,e=.5*(a+r)}if(!o)return null;var p=Math.asin(h),b=Math.cos(p),q=1/b,w=2*h*b,m=(-3*e+u*(1+3*i))*w,S=(-M*b-(1-h)*m)/(M*M),T=.5*S/c,A=(1-i)*T-2*e*c*w,Q=-2*q*A,R=-q*w,y=-q*(e*(1+i)*S+s*(1+3*i)*w);return[aa/4*(t*(Q+R*g)+y*Math.asin(t/Math.sqrt(f))),p]}function $(t,n,a){if(!t){var r=tn(n,1-a);return[[0,r[0]/r[1]],[1/r[1],0],[r[2]/r[1],0]]}var e=tn(t,a);if(!n)return[[e[0],0],[e[1],0],[e[2],0]];var r=tn(n,1-a),o=r[1]*r[1]+a*e[0]*e[0]*r[0]*r[0];return[[e[0]*r[2]/o,e[1]*e[2]*r[0]*r[1]/o],[e[1]*r[1]/o,-e[0]*e[2]*r[0]*r[2]/o],[e[2]*r[1]*r[2]/o,-a*e[0]*e[1]*r[0]/o]]}function tn(t,n){var r,o,i,h,u;if(ta>n)return h=Math.sin(t),o=Math.cos(t),r=.25*n*(t-h*o),[h-r*o,o+r*h,1-.5*n*h*h,t-r];if(n>=1-ta)return r=.25*(1-n),o=f(t),h=s(t),i=1/o,u=o*c(t),[h+r*(u-t)/(o*o),i-r*h*i*(u-t),i+r*h*i*(u+t),2*Math.atan(Math.exp(t))-aa/2+r*(u-t)/o];var M=[1,0,0,0,0,0,0,0,0],v=[Math.sqrt(n),0,0,0,0,0,0,0,0],l=0;for(o=Math.sqrt(1-n),u=1;Math.abs(v[l]/M[l])>ta&&8>l;)r=M[l++],v[l]=.5*(r-o),M[l]=.5*(r+o),o=e(r*o),u*=2;i=u*M[l]*t;do h=v[l]*Math.sin(o=i)/M[l],i=.5*(a(h)+i);while(--l);return[Math.sin(i),h=Math.cos(i),h/Math.cos(i-o),i]}function nn(t,a,r){var o=Math.abs(t),i=Math.abs(a),h=c(i);if(o){var u=1/Math.sin(o),M=1/(Math.tan(o)*Math.tan(o)),s=-(M+r*h*h*u*u-1+r),f=(r-1)*M,v=.5*(-s+Math.sqrt(s*s-4*f));return[an(Math.atan(1/Math.sqrt(v)),r)*n(t),an(Math.atan(e((v/M-1)/r)),1-r)*n(a)]}return[0,an(Math.atan(h),1-r)*n(a)]}function an(t,n){if(!n)return t;if(1===n)return Math.log(Math.tan(t/2+aa/4));for(var a=1,r=Math.sqrt(1-n),e=Math.sqrt(n),o=0;Math.abs(e)>ta;o++){if(t%aa){var i=Math.atan(r*Math.tan(t)/a);0>i&&(i+=aa),t+=i+~~(t/aa)*aa}else t+=t;e=(a+r)/2,r=Math.sqrt(a*r),e=((a=e)-r)/2}return t/(Math.pow(2,o)*a)}function rn(t,a){var r=(Math.SQRT2-1)/(Math.SQRT2+1),e=Math.sqrt(1-r*r),o=an(aa/2,e*e),i=-1,h=Math.log(Math.tan(aa/4+Math.abs(a)/2)),u=Math.exp(i*h)/Math.sqrt(r),M=en(u*Math.cos(i*t),u*Math.sin(i*t)),s=nn(M[0],M[1],e*e);return[-s[1],n(a)*(.5*o-s[0])]}function en(t,a){var r=t*t,e=a+1,o=1-r-a*a;return[n(t)*aa/4-.5*Math.atan2(o,2*t),-.25*Math.log(o*o+4*r)+.5*Math.log(e*e+r)]}function on(t,n){var a=n[0]*n[0]+n[1]*n[1];return[(t[0]*n[0]+t[1]*n[1])/a,(t[1]*n[0]-t[0]*n[1])/a]}function hn(t){function n(t,n){var e=i(t,n);t=e[0],n=e[1];var h=Math.sin(n),u=Math.cos(n),M=Math.cos(t),s=r(a*h+o*u*M),c=Math.sin(s),f=Math.abs(c)>ta?s/c:1;return[f*o*Math.sin(t),(Math.abs(t)>aa/2?f:-f)*(a*u-o*h*M)]}var a=Math.sin(t),o=Math.cos(t),i=un(t);return i.invert=un(-t),n.invert=function(t,n){var r=Math.sqrt(t*t+n*n),o=-Math.sin(r),h=Math.cos(r),u=r*h,M=-n*o,s=r*a,c=e(u*u+M*M-s*s),f=Math.atan2(u*s+M*c,M*s-u*c),v=(r>aa/2?-1:1)*Math.atan2(t*o,r*Math.cos(f)*h+n*Math.sin(f)*o);return i.invert(v,f)},n}function un(t){var n=Math.sin(t),r=Math.cos(t);return function(t,e){var o=Math.cos(e),i=Math.cos(t)*o,h=Math.sin(t)*o,u=Math.sin(e);return[Math.atan2(h,i*r-u*n),a(u*r+i*n)]}}function Mn(){var t=0,n=ha(hn),a=n(t),r=a.rotate,e=a.stream,o=d3.geo.circle();return a.parallel=function(r){if(!arguments.length)return 180*(t/aa);var e=a.rotate();return n(t=r*aa/180).rotate(e)},a.rotate=function(n){return arguments.length?(r.call(a,[n[0],n[1]-180*(t/aa)]),o.origin([-n[0],-n[1]]),a):(n=r.call(a),n[1]+=180*(t/aa),n)},a.stream=function(t){return t=e(t),t.sphere=function(){t.polygonStart();var n,a=.01,r=o.angle(90-a)().coordinates[0],e=r.length-1,i=-1;for(t.lineStart();++i<e;)t.point((n=r[i])[0],n[1]);for(t.lineEnd(),r=o.angle(90+a)().coordinates[0],e=r.length-1,t.lineStart();--i>=0;)t.point((n=r[i])[0],n[1]);t.lineEnd(),t.polygonEnd()},t},a}function sn(t,n){function a(a,r){var e=qa(a/n,r);return e[0]*=t,e}return arguments.length<2&&(n=t),1===n?qa:1/0===n?fn:(a.invert=function(a,r){var e=qa.invert(a/t,r);return e[0]*=n,e},a)}function cn(){var t=2,n=ha(sn),a=n(t);return a.coefficient=function(a){return arguments.length?n(t=+a):t},a}function fn(t,n){return[t*Math.cos(n)/Math.cos(n/=2),2*Math.sin(n)]}function vn(t,n){for(var a,r=Math.sin(n)*(0>n?2.43763:2.67595),e=0;20>e&&(n-=a=(n+Math.sin(n)-r)/(1+Math.cos(n)),!(Math.abs(a)<ta));e++);return[.85*t*Math.cos(n*=.5),Math.sin(n)*(0>n?1.93052:1.75859)]}function ln(t){function n(n,s){var c,f=Math.abs(s);if(f>r){var v=Math.min(t-1,Math.max(0,Math.floor((n+aa)/M)));n+=aa*(t-1)/t-v*M,c=d3.geo.collignon.raw(n,f),c[0]=c[0]*e/o-e*(t-1)/(2*t)+v*e/t,c[1]=i+4*(c[1]-h)*u/e,0>s&&(c[1]=-c[1])}else c=a(n,s);return c[0]/=2,c}var a=d3.geo.cylindricalEqualArea.raw(0),r=wa*aa/180,e=2*aa,o=d3.geo.collignon.raw(aa,r)[0]-d3.geo.collignon.raw(-aa,r)[0],i=a(0,r)[1],h=d3.geo.collignon.raw(0,r)[1],u=d3.geo.collignon.raw(0,aa/2)[1]-h,M=2*aa/t;return n.invert=function(n,r){n*=2;var s=Math.abs(r);if(s>i){var c=Math.min(t-1,Math.max(0,Math.floor((n+aa)/M)));n=(n+aa*(t-1)/t-c*M)*o/e;var f=d3.geo.collignon.raw.invert(n,.25*(s-i)*e/u+h);return f[0]-=aa*(t-1)/t-c*M,0>r&&(f[1]=-f[1]),f}return a.invert(n,r)},n}function gn(){function t(){var t=180/n;return{type:"Polygon",coordinates:[d3.range(-180,180+t/2,t).map(function(t,n){return[t,1&n?90-1e-6:wa]}).concat(d3.range(180,-180-t/2,-t).map(function(t,n){return[t,1&n?-90+1e-6:-wa]}))]}}var n=2,a=ha(ln),r=a(n),e=r.stream;return r.lobes=function(t){return arguments.length?a(n=+t):n},r.stream=function(n){var a=r.rotate(),o=e(n),i=(r.rotate([0,0]),e(n));return r.rotate(a),o.sphere=function(){d3.geo.stream(t(),i)},o},r}function dn(t){function n(n,a){var r,i,f=1-Math.sin(a);if(f&&2>f){var v,l=aa/2-a,g=25;do{var d=Math.sin(l),p=Math.cos(l),b=h+Math.atan2(d,o-p),q=1+c-2*o*p;l-=v=(l-s*h-o*d+q*b-.5*f*e)/(2*o*d*b)}while(Math.abs(v)>na&&--g>0);r=u*Math.sqrt(q),i=n*b/aa}else r=u*(t+f),i=n*h/aa;return[r*Math.sin(i),M-r*Math.cos(i)]}var e,o=1+t,i=Math.sin(1/o),h=a(i),u=2*Math.sqrt(aa/(e=aa+4*h*o)),M=.5*u*(o+Math.sqrt(t*(2+t))),s=t*t,c=o*o;return n.invert=function(t,n){var i=t*t+(n-=M)*n,f=(1+c-i/(u*u))/(2*o),v=r(f),l=Math.sin(v),g=h+Math.atan2(l,o-f);return[a(t/Math.sqrt(i))*aa/g,a(1-2*(v-s*h-o*l+(1+c-2*o*f)*g)/e)]},n}function pn(){var t=1,n=ha(dn),a=n(t);return a.ratio=function(a){return arguments.length?n(t=+a):t},a}function bn(t,n){return n>-ma?(t=ca(t,n),t[1]+=Sa,t):T(t,n)}function qn(t,n){return Math.abs(n)>ma?(t=ca(t,n),t[1]-=n>0?Sa:-Sa,t):T(t,n)}function wn(t,n){return[3*t/(2*aa)*Math.sqrt(aa*aa/3-n*n),n]}function mn(t){function r(n,a){if(Math.abs(Math.abs(a)-aa/2)<ta)return[0,0>a?-2:2];var r=Math.sin(a),e=Math.pow((1+r)/(1-r),t/2),o=.5*(e+1/e)+Math.cos(n*=t);return[2*Math.sin(n)/o,(e-1/e)/o]}return r.invert=function(r,e){var o=Math.abs(e);if(Math.abs(o-2)<ta)return r?null:[0,n(e)*aa/2];if(o>2)return null;r/=2,e/=2;var i=r*r,h=e*e,u=2*e/(1+i+h);return u=Math.pow((1+u)/(1-u),1/t),[Math.atan2(2*r,1-i-h)/t,a((u-1)/(u+1))]},r}function Sn(){var t=.5,n=ha(mn),a=n(t);return a.spacing=function(a){return arguments.length?n(t=+a):t},a}function Tn(t,n){return[t*(1+Math.sqrt(Math.cos(n)))/2,n/(Math.cos(n/2)*Math.cos(t/6))]}function An(t,n){var a=t*t,r=n*n;return[t*(.975534+r*(-.119161+a*-.0143059+r*-.0547009)),n*(1.00384+a*(.0802894+r*-.02855+199025e-9*a)+r*(.0998909+r*-.0491032))]}function Qn(t,n){return[Math.sin(t)/Math.cos(n),Math.tan(n)*Math.cos(t)]}function Rn(t){function n(n,e){var o=e-t,i=Math.abs(o)<ta?n*a:Math.abs(i=aa/4+e/2)<ta||Math.abs(Math.abs(i)-aa/2)<ta?0:n*o/Math.log(Math.tan(i)/r);return[i,o]}var a=Math.cos(t),r=Math.tan(aa/4+t/2);return n.invert=function(n,e){var o,i=e+t;return[Math.abs(e)<ta?n/a:Math.abs(o=aa/4+i/2)<ta||Math.abs(Math.abs(o)-aa/2)<ta?0:n*Math.log(Math.tan(o)/r)/e,i]},n}function yn(t,n){return[t,1.25*Math.log(Math.tan(aa/4+.4*n))]}function Gn(t){function n(n,a){for(var e,o=Math.cos(a),i=2/(1+o*Math.cos(n)),h=i*o*Math.sin(n),u=i*Math.sin(a),M=r,s=t[M],c=s[0],f=s[1];--M>=0;)s=t[M],c=s[0]+h*(e=c)-u*f,f=s[1]+h*f+u*e;return c=h*(e=c)-u*f,f=h*f+u*e,[c,f]}var r=t.length-1;return n.invert=function(n,e){var o=20,i=n,h=e;do{for(var u,M=r,s=t[M],c=s[0],f=s[1],v=0,l=0;--M>=0;)s=t[M],v=c+i*(u=v)-h*l,l=f+i*l+h*u,c=s[0]+i*(u=c)-h*f,f=s[1]+i*f+h*u;v=c+i*(u=v)-h*l,l=f+i*l+h*u,c=i*(u=c)-h*f-n,f=i*f+h*u-e;var g,d,p=v*v+l*l;i-=g=(c*v+f*l)/p,h-=d=(f*v-c*l)/p}while(Math.abs(g)+Math.abs(d)>ta*ta&&--o>0);if(o){var b=Math.sqrt(i*i+h*h),q=2*Math.atan(.5*b),w=Math.sin(q);return[Math.atan2(i*w,b*Math.cos(q)),b?a(h*w/b):0]}},n}function Pn(){var t=Ta.miller,n=ha(Gn),a=n(t);return a.coefficients=function(a){return arguments.length?n(t="string"==typeof a?Ta[a]:a):t},a}function xn(t,n){var a=Math.sqrt(6),r=Math.sqrt(7),e=Math.asin(7*Math.sin(n)/(3*a));return[a*t*(2*Math.cos(2*e/3)-1)/r,9*Math.sin(e/3)/r]}function En(t,n){for(var a,r=(1+Math.SQRT1_2)*Math.sin(n),e=n,o=0;25>o&&(e-=a=(Math.sin(e/2)+Math.sin(e)-r)/(.5*Math.cos(e/2)+Math.cos(e)),!(Math.abs(a)<ta));o++);return[t*(1+2*Math.cos(e)/Math.cos(e/2))/(3*Math.SQRT2),2*Math.sqrt(3)*Math.sin(e/2)/Math.sqrt(2+Math.SQRT2)]}function Bn(t,n){for(var a,r=Math.sqrt(6/(4+aa)),e=(1+aa/4)*Math.sin(n),o=n/2,i=0;25>i&&(o-=a=(o/2+Math.sin(o)-e)/(.5+Math.cos(o)),!(Math.abs(a)<ta));i++);return[r*(.5+Math.cos(o))*t/1.5,r*o]}function kn(t,n){var a=n*n,r=a*a;return[t*(.8707-.131979*a+r*(-.013791+r*(.003971*a-.001529*r))),n*(1.007226+a*(.015085+r*(-.044475+.028874*a-.005916*r)))]}function Dn(t,n){return[t*(1+Math.cos(n))/2,2*(n-Math.tan(n/2))]}function _n(t,n){if(Math.abs(n)<ta)return[t,0];var a=Math.tan(n),r=t*Math.sin(n);return[Math.sin(r)/a,n+(1-Math.cos(r))/a]}function Fn(t){function n(n,a){var r=e?Math.tan(n*e/2)/e:n/2;if(!a)return[2*r,-t];var o=2*Math.atan(r*Math.sin(a)),i=1/Math.tan(a);return[Math.sin(o)*i,a+(1-Math.cos(o))*i-t]}var e=Math.sin(t);return n.invert=function(n,o){if(Math.abs(o+=t)<ta)return[e?2*Math.atan(e*n/2)/e:n,0];var i,h=n*n+o*o,u=0,M=10;do{var s=Math.tan(u),c=1/Math.cos(u),f=h-2*o*u+u*u;u-=i=(s*f+2*(u-o))/(2+f*c*c+2*(u-o)*s)}while(Math.abs(i)>ta&&--M>0);var v=n*(s=Math.tan(u)),l=Math.tan(Math.abs(o)<Math.abs(u+1/s)?.5*a(v):.5*r(v)+aa/4)/Math.sin(u);return[e?2*Math.atan(e*l)/e:2*l,u]},n}function zn(t,n){var a,r=Math.min(18,36*Math.abs(n)/aa),e=Math.floor(r),o=r-e,i=(a=Qa[e])[0],h=a[1],u=(a=Qa[++e])[0],M=a[1],s=(a=Qa[Math.min(19,++e)])[0],c=a[1];return[t*(u+o*(s-i)/2+o*o*(s-2*u+i)/2),(n>0?aa:-aa)/2*(M+o*(c-h)/2+o*o*(c-2*M+h)/2)]}function Cn(t){function n(n,a){var r=Math.cos(a),e=(t-1)/(t-r*Math.cos(n));return[e*r*Math.sin(n),e*Math.sin(a)]}return n.invert=function(n,r){var e=n*n+r*r,o=Math.sqrt(e),i=(t-Math.sqrt(1-e*(t+1)/(t-1)))/((t-1)/o+o/(t-1));return[Math.atan2(n*i,o*Math.sqrt(1-i*i)),o?a(r*i/o):0]},n}function jn(t,n){function a(n,a){var i=r(n,a),h=i[1],u=h*o/(t-1)+e;return[i[0]*e/u,h/u]}var r=Cn(t);if(!n)return r;var e=Math.cos(n),o=Math.sin(n);return a.invert=function(n,a){var i=(t-1)/(t-1-a*o);return r.invert(i*n,i*a*e)},a}function Hn(){var t=1.4,n=0,a=ha(jn),r=a(t,n);return r.distance=function(r){return arguments.length?a(t=+r,n):t},r.tilt=function(r){return arguments.length?a(t,n=r*aa/180):180*n/aa},r}function In(t,n){var a=Math.tan(n/2),r=Math.sin(aa/4*a);return[t*(.74482-.34588*r*r),1.70711*a]}function Kn(t){function n(n,h){var u=r(Math.cos(h)*Math.cos(n-a)),M=r(Math.cos(h)*Math.cos(n-o)),s=0>h?-1:1;return u*=u,M*=M,[(u-M)/(2*t),s*e(4*i*M-(i-u+M)*(i-u+M))/(2*t)]}if(!t)return d3.geo.azimuthalEquidistant.raw;var a=-t/2,o=-a,i=t*t,h=Math.tan(o),u=.5/Math.sin(o);return n.invert=function(t,n){var e,i,M=n*n,s=Math.cos(Math.sqrt(M+(e=t+a)*e)),c=Math.cos(Math.sqrt(M+(e=t+o)*e));return[Math.atan2(i=s-c,e=(s+c)*h),(0>n?-1:1)*r(Math.sqrt(e*e+i*i)*u)]},n}function Jn(){var t=[[0,0],[0,0]],n=ha(Kn),r=n(0),e=r.rotate;return delete r.rotate,r.points=function(r){if(!arguments.length)return t;t=r;var o=d3.geo.interpolate(r[0],r[1]),i=o(.5),h=d3.geo.rotation([-i[0],-i[1]])(r[0]),u=.5*o.distance,M=(h[0]<0?-1:1)*h[1]*ea,s=a(Math.sin(M)/Math.sin(u));return e.call(h,[-i[0],-i[1],-s*oa]),n(2*u)},r}function Ln(t){function n(t,n){var r=d3.geo.gnomonic.raw(t,n);return r[0]*=a,r}var a=Math.cos(t);return n.invert=function(t,n){return d3.geo.gnomonic.raw.invert(t/a,n)},n}function Nn(){var t=[[0,0],[0,0]],n=ha(Ln),r=n(0),e=r.rotate;return delete r.rotate,r.points=function(r){if(!arguments.length)return t;t=r;var o=d3.geo.interpolate(r[0],r[1]),i=o(.5),h=twoPointEquidistant_rotate(-i[0]*ea,-i[1]*ea,r[0][0]*ea,r[0][1]*ea),u=.5*o.distance,M=(h[0]<0?-1:1)*h[1],s=a(Math.sin(M)/Math.sin(u));return e.call(h,[-i[0],-i[1],-s*oa]),n(u)},r}function On(t,r){if(Math.abs(r)<ta)return[t,0];var e=Math.abs(2*r/aa),o=a(e);if(Math.abs(t)<ta||Math.abs(Math.abs(r)-aa/2)<ta)return[0,n(r)*aa*Math.tan(o/2)];var i=Math.cos(o),h=Math.abs(aa/t-t/aa)/2,u=h*h,M=i/(e+i-1),s=M*(2/e-1),c=s*s,f=c+u,v=M-c,l=u+M;return[n(t)*aa*(h*v+Math.sqrt(u*v*v-f*(M*M-c)))/f,n(r)*aa*(s*l-h*Math.sqrt((u+1)*f-l*l))/f]}function Un(t,r){if(Math.abs(r)<ta)return[t,0];var o=Math.abs(2*r/aa),i=a(o);if(Math.abs(t)<ta||Math.abs(Math.abs(r)-aa/2)<ta)return[0,n(r)*aa*Math.tan(i/2)];var h=Math.cos(i),u=Math.abs(aa/t-t/aa)/2,M=u*u,s=h*(Math.sqrt(1+M)-u*h)/(1+M*o*o);return[n(t)*aa*s,n(r)*aa*e(1-s*(2*u+s))]}function Vn(t,r){if(Math.abs(r)<ta)return[t,0];var o=2*r/aa,i=a(o);if(Math.abs(t)<ta||Math.abs(Math.abs(r)-aa/2)<ta)return[0,aa*Math.tan(i/2)];var h=(aa/t-t/aa)/2,u=o/(1+Math.cos(i));return[aa*(n(t)*e(h*h+1-u*u)-h),aa*u]}function Wn(t,a){if(!a)return[t,0];var r=Math.abs(a);if(!t||r===aa/2)return[0,a];var o=2*r/aa,i=o*o,h=(8*o-i*(i+2)-5)/(2*i*(o-1)),u=h*h,M=o*h,s=i+u+2*M,c=o+3*h,f=2*t/aa,v=f+1/f,l=n(Math.abs(t)-aa/2)*Math.sqrt(v*v-4),g=l*l,d=s*(i+u*g-1)+(1-i)*(i*(c*c+4*u)+12*M*u+4*u*u),p=(l*(s+u-1)+2*e(d))/(4*s+g);return[n(t)*aa*p/2,n(a)*aa/2*e(1+l*Math.abs(p)-p*p)]}function Xn(t,n){return[t*Math.sqrt(1-3*n*n/(aa*aa)),n]}function Yn(t,n){var a=.90631*Math.sin(n),r=Math.sqrt(1-a*a),e=Math.sqrt(2/(1+r*Math.cos(t/=3)));return[2.66723*r*e*Math.sin(t),1.24104*a*e]}function Zn(t,n){var a=Math.cos(n),r=Math.cos(t)*a,o=1-r,i=Math.cos(t=Math.atan2(Math.sin(t)*a,-Math.sin(n))),h=Math.sin(t);return a=e(1-r*r),[h*a-i*o,-i*a-h*o]}function $n(t,n){var a=h(t,n);return[(a[0]+2*t/aa)/2,(a[1]+n)/2]}var ta=1e-6,na=ta*ta,aa=Math.PI,ra=Math.sqrt(aa),ea=aa/180,oa=180/aa,ia=d3.geo.projection,ha=d3.geo.projectionMutator;d3.geo.interrupt=function(t){function n(n,a){for(var r=0>a?-1:1,e=h[+(0>a)],o=0,i=e.length-1;i>o&&n>e[o][2][0];++o);var u=t(n-e[o][1][0],a);return u[0]+=t(e[o][1][0],r*a>r*e[o][0][1]?e[o][0][1]:a)[0],u}function a(){i=h.map(function(n){return n.map(function(n){var a,r=t(n[0][0],n[0][1])[0],e=t(n[2][0],n[2][1])[0],o=t(n[1][0],n[0][1])[1],i=t(n[1][0],n[1][1])[1];return o>i&&(a=o,o=i,i=a),[[r,o],[e,i]]})})}function r(){for(var t=1e-6,n=[],a=0,r=h[0].length;r>a;++a){var o=h[0][a],i=180*o[0][0]/aa,u=180*o[0][1]/aa,M=180*o[1][1]/aa,s=180*o[2][0]/aa,c=180*o[2][1]/aa;n.push(e([[i+t,u+t],[i+t,M-t],[s-t,M-t],[s-t,c+t]],30))}for(var a=h[1].length-1;a>=0;--a){var o=h[1][a],i=180*o[0][0]/aa,u=180*o[0][1]/aa,M=180*o[1][1]/aa,s=180*o[2][0]/aa,c=180*o[2][1]/aa;n.push(e([[s-t,c-t],[s-t,M+t],[i+t,M+t],[i+t,u-t]],30))}return{type:"Polygon",coordinates:[d3.merge(n)]}}function e(t,n){for(var a,r,e,o=-1,i=t.length,h=t[0],u=[];++o<i;){a=t[o],r=(a[0]-h[0])/n,e=(a[1]-h[1])/n;for(var M=0;n>M;++M)u.push([h[0]+M*r,h[1]+M*e]);h=a}return u.push(a),u}function o(t,n){return Math.abs(t[0]-n[0])<ta&&Math.abs(t[1]-n[1])<ta}var i,h=[[[[-aa,0],[0,aa/2],[aa,0]]],[[[-aa,0],[0,-aa/2],[aa,0]]]];t.invert&&(n.invert=function(a,r){for(var e=i[+(0>r)],u=h[+(0>r)],M=0,s=e.length;s>M;++M){var c=e[M];
if(c[0][0]<=a&&a<c[1][0]&&c[0][1]<=r&&r<c[1][1]){var f=t.invert(a-t(u[M][1][0],0)[0],r);return f[0]+=u[M][1][0],o(n(f[0],f[1]),[a,r])?f:null}}});var u=d3.geo.projection(n),M=u.stream;return u.stream=function(t){var n=u.rotate(),a=M(t),e=(u.rotate([0,0]),M(t));return u.rotate(n),a.sphere=function(){d3.geo.stream(r(),e)},a},u.lobes=function(t){return arguments.length?(h=t.map(function(t){return t.map(function(t){return[[t[0][0]*aa/180,t[0][1]*aa/180],[t[1][0]*aa/180,t[1][1]*aa/180],[t[2][0]*aa/180,t[2][1]*aa/180]]})}),a(),u):h.map(function(t){return t.map(function(t){return[[180*t[0][0]/aa,180*t[0][1]/aa],[180*t[1][0]/aa,180*t[1][1]/aa],[180*t[2][0]/aa,180*t[2][1]/aa]]})})},u},(d3.geo.airy=i).raw=o,h.invert=function(t,n){var a=t,e=n,o=25;do{var i,h=Math.sin(a),u=Math.sin(a/2),M=Math.cos(a/2),s=Math.sin(e),c=Math.cos(e),f=Math.sin(2*e),v=s*s,l=c*c,g=u*u,d=1-l*M*M,p=d?r(c*M)*Math.sqrt(i=1/d):i=0,b=2*p*c*u-t,q=p*s-n,w=i*(l*g+p*c*M*v),m=i*(.5*h*f-2*p*s*u),S=.25*i*(f*u-p*s*l*h),T=i*(v*M+p*g*c),A=m*S-T*w;if(!A)break;var Q=(q*m-b*T)/A,R=(b*S-q*w)/A;a-=Q,e-=R}while((Math.abs(Q)>ta||Math.abs(R)>ta)&&--o>0);return[a,e]},(d3.geo.aitoff=function(){return ia(h)}).raw=h,(d3.geo.armadillo=M).raw=u,g.invert=function(t,r){if(t*=3/8,r*=3/8,!t&&Math.abs(r)>1)return null;var e=t*t,o=r*r,i=1+e+o,h=Math.sqrt(.5*(i-Math.sqrt(i*i-4*r*r))),u=a(h)/3,M=h?l(Math.abs(r/h))/3:v(Math.abs(t))/3,s=Math.cos(u),g=f(M),d=g*g-s*s;return[2*n(t)*Math.atan2(c(M)*s,.25-d),2*n(r)*Math.atan2(g*Math.sin(u),.25+d)]},(d3.geo.august=function(){return ia(g)}).raw=g;var ua=Math.log(1+Math.SQRT2);d.invert=function(t,a){if((e=Math.abs(a))<ua)return[t,2*Math.atan(Math.exp(a))-aa/2];var r,e,o=Math.sqrt(8),i=aa/4,h=25;do{var u=Math.cos(i/2),M=Math.tan(i/2);i-=r=(o*(i-aa/4)-Math.log(M)-e)/(o-.5*u*u/M)}while(Math.abs(r)>na&&--h>0);return[t/(Math.cos(i)*(o-1/Math.sin(i))),n(a)*i]},(d3.geo.baker=function(){return ia(d)}).raw=d;var Ma=d3.geo.azimuthalEquidistant.raw;(d3.geo.berghaus=b).raw=p;var sa=q(aa),ca=w(2*Math.SQRT2/aa,Math.SQRT2,aa);(d3.geo.mollweide=function(){return ia(ca)}).raw=ca,m.invert=function(t,n){var a,r,e=2.00276,o=e*n,i=0>n?-aa/4:aa/4,h=25;do r=o-Math.SQRT2*Math.sin(i),i-=a=(Math.sin(2*i)+2*i-aa*Math.sin(r))/(2*Math.cos(2*i)+2+aa*Math.cos(r)*Math.SQRT2*Math.cos(i));while(Math.abs(a)>ta&&--h>0);return r=o-Math.SQRT2*Math.sin(i),[t*(1/Math.cos(r)+1.11072/Math.cos(i))/e,r]},(d3.geo.boggs=function(){return ia(m)}).raw=m,T.invert=function(t,n){return[t/Math.cos(n),n]},(d3.geo.sinusoidal=function(){return ia(T)}).raw=T,(d3.geo.bonne=function(){return S(A).parallel(45)}).raw=A;var fa=w(1,4/aa,aa);(d3.geo.bromley=function(){return ia(fa)}).raw=fa,(d3.geo.cahillKeyes=R).raw=Q,(d3.geo.chamberlin=G).raw=y,k.invert=function(t,n){var r=(r=n/ra-1)*r;return[r>0?t*Math.sqrt(aa/r)/2:0,a(1-r)]},(d3.geo.collignon=function(){return ia(k)}).raw=k,(d3.geo.craig=function(){return S(D)}).raw=D,_.invert=function(t,n){var r=Math.sqrt(3),e=3*a(n/(r*ra));return[ra*t/(r*(2*Math.cos(2*e/3)-1)),e]},(d3.geo.craster=function(){return ia(_)}).raw=_,(d3.geo.cylindricalEqualArea=function(){return S(F)}).raw=F,(d3.geo.cylindricalStereographic=function(){return S(z)}).raw=z,C.invert=function(t,n){var a=Math.sqrt(8/(3*aa)),r=n/a;return[t/(a*(1-Math.abs(r)/aa)),r]},(d3.geo.eckert1=function(){return ia(C)}).raw=C,j.invert=function(t,r){var e=2-Math.abs(r)/Math.sqrt(2*aa/3);return[t*Math.sqrt(6*aa)/(2*e),n(r)*a((4-e*e)/3)]},(d3.geo.eckert2=function(){return ia(j)}).raw=j,H.invert=function(t,n){var a=Math.sqrt(aa*(4+aa))/2;return[t*a/(1+e(1-n*n*(4+aa)/(4*aa))),n*a/2]},(d3.geo.eckert3=function(){return ia(H)}).raw=H,I.invert=function(t,n){var r=.5*n*Math.sqrt((4+aa)/aa),e=a(r),o=Math.cos(e);return[t/(2/Math.sqrt(aa*(4+aa))*(1+o)),a((e+r*(o+2))/(2+aa/2))]},(d3.geo.eckert4=function(){return ia(I)}).raw=I,K.invert=function(t,n){var a=Math.sqrt(2+aa),r=n*a/2;return[a*t/(1+Math.cos(r)),r]},(d3.geo.eckert5=function(){return ia(K)}).raw=K,J.invert=function(t,n){var r=1+aa/2,e=Math.sqrt(r/2);return[2*t*e/(1+Math.cos(n*=e)),a((n+Math.sin(n))/r)]},(d3.geo.eckert6=function(){return ia(J)}).raw=J,L.invert=function(t,n){var a=d3.geo.august.raw.invert(t/1.2,1.065*n);if(!a)return null;var r=a[0],e=a[1],o=20;t/=va,n/=va;do{var i=r/2,h=e/2,u=Math.sin(i),M=Math.cos(i),s=Math.sin(h),c=Math.cos(h),f=Math.cos(e),v=Math.sqrt(f),l=s/(c+Math.SQRT2*M*v),g=l*l,d=Math.sqrt(2/(1+g)),p=Math.SQRT2*c+(M+u)*v,b=Math.SQRT2*c+(M-u)*v,q=p/b,w=Math.sqrt(q),m=w-1/w,S=w+1/w,T=d*m-2*Math.log(w)-t,A=d*l*S-2*Math.atan(l)-n,Q=s&&Math.SQRT1_2*v*u*g/s,R=(Math.SQRT2*M*c+v)/(2*(c+Math.SQRT2*M*v)*(c+Math.SQRT2*M*v)*v),y=-.5*l*d*d*d,G=y*Q,P=y*R,x=(x=2*c+Math.SQRT2*v*(M-u))*x*w,E=(Math.SQRT2*M*c*v+f)/x,B=-(Math.SQRT2*u*s)/(v*x),k=m*G-2*E/w+d*(E+E/q),D=m*P-2*B/w+d*(B+B/q),_=l*S*G-2*Q/(1+g)+d*S*Q+d*l*(E-E/q),F=l*S*P-2*R/(1+g)+d*S*R+d*l*(B-B/q),z=D*_-F*k;if(!z)break;var C=(A*D-T*F)/z,j=(T*_-A*k)/z;r-=C,e=Math.max(-aa/2,Math.min(aa/2,e-j))}while((Math.abs(C)>ta||Math.abs(j)>ta)&&--o>0);return Math.abs(Math.abs(e)-aa/2)<ta?[0,e]:o&&[r,e]};var va=3+2*Math.SQRT2;(d3.geo.eisenlohr=function(){return ia(L)}).raw=L,N.invert=function(t,n){var a=n/(1+la);return[t?t/(la*e(1-a*a)):0,2*Math.atan(a)]};var la=Math.cos(35*ea);(d3.geo.fahey=function(){return ia(N)}).raw=N,O.invert=function(t,n){var a=Math.atan(n/ra),r=Math.cos(a),e=2*a;return[.5*t*ra/(Math.cos(e)*r*r),e]},(d3.geo.foucaut=function(){return ia(O)}).raw=O,d3.geo.gilbert=function(t){function n(n){return t([.5*n[0],a(Math.tan(.5*n[1]*ea))*oa])}var r=d3.geo.equirectangular().scale(oa).translate([0,0]);return t.invert&&(n.invert=function(n){return n=t.invert(n),n[0]*=2,n[1]=2*Math.atan(Math.sin(n[1]*ea))*oa,n}),n.stream=function(n){n=t.stream(n);var e=r.stream({point:function(t,r){n.point(.5*t,a(Math.tan(.5*-r*ea))*oa)},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}});return e.sphere=function(){n.sphere()},e.valid=!1,e},n};var ga=U(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555);(d3.geo.ginzburg4=function(){return ia(ga)}).raw=ga;var da=U(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742);(d3.geo.ginzburg5=function(){return ia(da)}).raw=da;var pa=U(5/6*aa,-.62636,-.0344,0,1.3493,-.05524,0,.045);(d3.geo.ginzburg6=function(){return ia(pa)}).raw=pa,V.invert=function(t,n){var a,r=t,e=n,o=50;do{var i=e*e;e-=a=(e*(1+i/12)-n)/(1+i/4)}while(Math.abs(a)>ta&&--o>0);o=50,t/=1-.162388*i;do{var h=(h=r*r)*h;r-=a=(r*(.87-952426e-9*h)-t)/(.87-.00476213*h)}while(Math.abs(a)>ta&&--o>0);return[r,e]},(d3.geo.ginzburg8=function(){return ia(V)}).raw=V;var ba=U(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762);(d3.geo.ginzburg9=function(){return ia(ba)}).raw=ba,X.invert=function(t,r){var e=n(t),o=n(r),i=-e*t,h=-o*r,u=1>h/i,M=Z(u?h:i,u?i:h),s=M[0],c=M[1];u&&(s=-aa/2-s);var f=Math.cos(c),t=Math.cos(s)*f,r=Math.sin(s)*f,v=Math.sin(c);return[e*(Math.atan2(r,-v)+aa),o*a(t)]},d3.geo.gringorten=W(X),rn.invert=function(t,n){var a=(Math.SQRT2-1)/(Math.SQRT2+1),r=Math.sqrt(1-a*a),e=an(aa/2,r*r),o=-1,i=$(.5*e-n,-t,r*r),h=on(i[0],i[1]),u=Math.atan2(h[1],h[0])/o;return[u,2*Math.atan(Math.exp(.5/o*Math.log(a*h[0]*h[0]+a*h[1]*h[1])))-aa/2]},d3.geo.guyou=W(rn),(d3.geo.hammerRetroazimuthal=Mn).raw=hn;var qa=d3.geo.azimuthalEqualArea.raw;fn.invert=function(t,n){var r=2*a(n/2);return[t*Math.cos(r/2)/Math.cos(r),r]},(d3.geo.hammer=cn).raw=sn,vn.invert=function(t,n){var r=Math.abs(r=n*(0>n?.5179951515653813:.5686373742600607))>1-ta?r>0?aa/2:-aa/2:a(r);return[1.1764705882352942*t/Math.cos(r),Math.abs(r=((r+=r)+Math.sin(r))*(0>n?.4102345310814193:.3736990601468637))>1-ta?r>0?aa/2:-aa/2:a(r)]},(d3.geo.hatano=function(){return ia(vn)}).raw=vn;var wa=41+48/36+37/3600;(d3.geo.healpix=gn).raw=ln,(d3.geo.hill=pn).raw=dn;var ma=.7109889596207567,Sa=.0528035274542;bn.invert=function(t,n){return n>-ma?ca.invert(t,n-Sa):T.invert(t,n)},(d3.geo.sinuMollweide=function(){return ia(bn).rotate([-20,-55])}).raw=bn,qn.invert=function(t,n){return Math.abs(n)>ma?ca.invert(t,n+(n>0?Sa:-Sa)):T.invert(t,n)},(d3.geo.homolosine=function(){return ia(qn)}).raw=qn,wn.invert=function(t,n){return[2/3*aa*t/Math.sqrt(aa*aa/3-n*n),n]},(d3.geo.kavrayskiy7=function(){return ia(wn)}).raw=wn,(d3.geo.lagrange=Sn).raw=mn,Tn.invert=function(t,n){var a=Math.abs(t),o=Math.abs(n),i=aa/Math.SQRT2,h=ta,u=aa/2;i>o?u*=o/i:h+=6*r(i/o);for(var M=0;25>M;M++){var s=Math.sin(u),c=e(Math.cos(u)),f=Math.sin(u/2),v=Math.cos(u/2),l=Math.sin(h/6),g=Math.cos(h/6),d=.5*h*(1+c)-a,p=u/(v*g)-o,b=c?-.25*h*s/c:0,q=.5*(1+c),w=(1+.5*u*f/v)/(v*g),m=u/v*(l/6)/(g*g),S=b*m-w*q,T=(d*m-p*q)/S,A=(p*b-d*w)/S;if(u-=T,h-=A,Math.abs(T)<ta&&Math.abs(A)<ta)break}return[0>t?-h:h,0>n?-u:u]},(d3.geo.larrivee=function(){return ia(Tn)}).raw=Tn,An.invert=function(t,a){var r=n(t)*aa,e=a/2,o=50;do{var i=r*r,h=e*e,u=r*e,M=r*(.975534+h*(-.119161+i*-.0143059+h*-.0547009))-t,s=e*(1.00384+i*(.0802894+h*-.02855+199025e-9*i)+h*(.0998909+h*-.0491032))-a,c=.975534-h*(.119161+.0143059*3*i+.0547009*h),f=-u*(.238322+.2188036*h+.0286118*i),v=u*(.1605788+7961e-7*i+-0.0571*h),l=1.00384+i*(.0802894+199025e-9*i)+h*(3*(.0998909-.02855*i)-.245516*h),g=f*v-l*c,d=(s*f-M*l)/g,p=(M*v-s*c)/g;r-=d,e-=p}while((Math.abs(d)>ta||Math.abs(p)>ta)&&--o>0);return o&&[r,e]},(d3.geo.laskowski=function(){return ia(An)}).raw=An,Qn.invert=function(t,e){var o=t*t,i=e*e,h=i+1,u=t?Math.SQRT1_2*Math.sqrt((h-Math.sqrt(o*o+2*o*(i-1)+h*h))/o+1):1/Math.sqrt(h);return[a(t*u),n(e)*r(u)]},(d3.geo.littrow=function(){return ia(Qn)}).raw=Qn,(d3.geo.loximuthal=function(){return S(Rn).parallel(40)}).raw=Rn,yn.invert=function(t,n){return[t,2.5*Math.atan(Math.exp(.8*n))-.625*aa]},(d3.geo.miller=function(){return ia(yn)}).raw=yn;var Ta={alaska:[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],gs48:[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],gs50:[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],miller:[[.9245,0],[0,0],[.01943,0]],lee:[[.721316,0],[0,0],[-.00881625,-.00617325]]};(d3.geo.modifiedStereographic=Pn).raw=Gn,xn.invert=function(t,n){var r=Math.sqrt(6),e=Math.sqrt(7),o=3*a(n*e/9);return[t*e/(r*(2*Math.cos(2*o/3)-1)),a(3*Math.sin(o)*r/7)]},(d3.geo.mtFlatPolarParabolic=function(){return ia(xn)}).raw=xn,En.invert=function(t,n){var r=n*Math.sqrt(2+Math.SQRT2)/(2*Math.sqrt(3)),e=2*a(r);return[3*Math.SQRT2*t/(1+2*Math.cos(e)/Math.cos(e/2)),a((r+Math.sin(e))/(1+Math.SQRT1_2))]},(d3.geo.mtFlatPolarQuartic=function(){return ia(En)}).raw=En,Bn.invert=function(t,n){var r=Math.sqrt(6/(4+aa)),e=n/r;return Math.abs(Math.abs(e)-aa/2)<ta&&(e=0>e?-aa/2:aa/2),[1.5*t/(r*(.5+Math.cos(e))),a((e/2+Math.sin(e))/(1+aa/4))]},(d3.geo.mtFlatPolarSinusoidal=function(){return ia(Bn)}).raw=Bn,kn.invert=function(t,n){var a,r=n,e=25;do{var o=r*r,i=o*o;r-=a=(r*(1.007226+o*(.015085+i*(-.044475+.028874*o-.005916*i)))-n)/(1.007226+o*(.045255+i*(-0.311325+.259866*o-.005916*11*i)))}while(Math.abs(a)>ta&&--e>0);return[t/(.8707+(o=r*r)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),r]},(d3.geo.naturalEarth=function(){return ia(kn)}).raw=kn,Dn.invert=function(t,n){for(var a=n/2,r=0,e=1/0;10>r&&Math.abs(e)>ta;r++){var o=Math.cos(n/2);n-=e=(n-Math.tan(n/2)-a)/(1-.5/(o*o))}return[2*t/(1+Math.cos(n)),n]},(d3.geo.nellHammer=function(){return ia(Dn)}).raw=Dn;var Aa=W(rn);(d3.geo.peirceQuincuncial=function(){return Aa().quincuncial(!0).rotate([-90,-90,45]).clipAngle(180-1e-6)}).raw=Aa.raw,_n.invert=function(t,e){if(Math.abs(e)<ta)return[t,0];var o,i=t*t+e*e,h=.5*e,u=10;do{var M=Math.tan(h),s=1/Math.cos(h),c=i-2*e*h+h*h;h-=o=(M*c+2*(h-e))/(2+c*s*s+2*(h-e)*M)}while(Math.abs(o)>ta&&--u>0);return M=Math.tan(h),[(Math.abs(e)<Math.abs(h+1/M)?a(t*M):n(t)*(r(Math.abs(t*M))+aa/2))/Math.sin(h),h]},(d3.geo.polyconic=function(){return ia(_n)}).raw=_n,(d3.geo.rectangularPolyconic=function(){return S(Fn)}).raw=Fn;var Qa=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];Qa.forEach(function(t){t[1]*=1.0144}),zn.invert=function(t,n){var a=2*n/aa,r=90*a,e=Math.min(18,Math.abs(r/5)),o=Math.max(0,Math.floor(e));do{var i=Qa[o][1],h=Qa[o+1][1],u=Qa[Math.min(19,o+2)][1],M=u-i,s=u-2*h+i,c=2*(Math.abs(a)-h)/M,f=s/M,v=c*(1-f*c*(1-2*f*c));if(v>=0||1===o){r=(n>=0?5:-5)*(v+e);var l,g=50;do e=Math.min(18,Math.abs(r)/5),o=Math.floor(e),v=e-o,i=Qa[o][1],h=Qa[o+1][1],u=Qa[Math.min(19,o+2)][1],r-=(l=(n>=0?aa:-aa)/2*(h+v*(u-i)/2+v*v*(u-2*h+i)/2)-n)*oa;while(Math.abs(l)>na&&--g>0);break}}while(--o>=0);var d=Qa[o][0],p=Qa[o+1][0],b=Qa[Math.min(19,o+2)][0];return[t/(p+v*(b-d)/2+v*v*(b-2*p+d)/2),r*ea]},(d3.geo.robinson=function(){return ia(zn)}).raw=zn,(d3.geo.satellite=Hn).raw=jn,In.invert=function(t,n){var a=n/1.70711,r=Math.sin(aa/4*a);return[t/(.74482-.34588*r*r),2*Math.atan(a)]},(d3.geo.times=function(){return ia(In)}).raw=In,(d3.geo.twoPointEquidistant=Jn).raw=Kn,(d3.geo.twoPointAzimuthal=Nn).raw=Ln,On.invert=function(t,a){if(Math.abs(a)<ta)return[t,0];if(Math.abs(t)<ta)return[0,aa/2*Math.sin(2*Math.atan(a/aa))];var e=(t/=aa)*t,o=(a/=aa)*a,i=e+o,h=i*i,u=-Math.abs(a)*(1+i),M=u-2*o+e,s=-2*u+1+2*o+h,c=o/s+(2*M*M*M/(s*s*s)-9*u*M/(s*s))/27,f=(u-M*M/(3*s))/s,v=2*Math.sqrt(-f/3),l=r(3*c/(f*v))/3;return[aa*(i-1+Math.sqrt(1+2*(e-o)+h))/(2*t),n(a)*aa*(-v*Math.cos(l+aa/3)-M/(3*s))]},(d3.geo.vanDerGrinten=function(){return ia(On)}).raw=On,Un.invert=function(t,a){if(!t)return[0,aa/2*Math.sin(2*Math.atan(a/aa))];var r=Math.abs(t/aa),e=(1-r*r-(a/=aa)*a)/(2*r),o=e*e,i=Math.sqrt(o+1);return[n(t)*aa*(i-e),n(a)*aa/2*Math.sin(2*Math.atan2(Math.sqrt((1-2*e*r)*(e+i)-r),Math.sqrt(i+e+r)))]},(d3.geo.vanDerGrinten2=function(){return ia(Un)}).raw=Un,Vn.invert=function(t,a){if(!a)return[t,0];var r=a/aa,e=(aa*aa*(1-r*r)-t*t)/(2*aa*t);return[t?aa*(n(t)*Math.sqrt(e*e+1)-e):0,aa/2*Math.sin(2*Math.atan(r))]},(d3.geo.vanDerGrinten3=function(){return ia(Vn)}).raw=Vn,Wn.invert=function(t,a){if(!t||!a)return[t,a];a/=aa;var r=2*n(t)*t/aa,e=(r*r-1+4*a*a)/Math.abs(r),o=e*e,i=2*a,h=50;do{var u=i*i,M=(8*i-u*(u+2)-5)/(2*u*(i-1)),s=(3*i-u*i-10)/(2*u*i),c=M*M,f=i*M,v=i+M,l=v*v,g=i+3*M,d=l*(u+c*o-1)+(1-u)*(u*(g*g+4*c)+c*(12*f+4*c)),p=-2*v*(4*f*c+(1-4*u+3*u*u)*(1+s)+c*(-6+14*u-o+(-8+8*u-2*o)*s)+f*(-8+12*u+(-10+10*u-o)*s)),b=Math.sqrt(d),q=e*(l+c-1)+2*b-r*(4*l+o),w=e*(2*M*s+2*v*(1+s))+p/b-8*v*(e*(-1+c+l)+2*b)*(1+s)/(o+4*l);i-=δ=q/w}while(δ>ta&&--h>0);return[n(t)*(Math.sqrt(e*e+4)+e)*aa/4,aa/2*i]},(d3.geo.vanDerGrinten4=function(){return ia(Wn)}).raw=Wn;var Ra=function(){var t=4*aa+3*Math.sqrt(3),n=2*Math.sqrt(2*aa*Math.sqrt(3)/t);return w(n*Math.sqrt(3)/aa,n,t/6)}();(d3.geo.wagner4=function(){return ia(Ra)}).raw=Ra,Xn.invert=function(t,n){return[t/Math.sqrt(1-3*n*n/(aa*aa)),n]},(d3.geo.wagner6=function(){return ia(Xn)}).raw=Xn,Yn.invert=function(t,n){var r=t/2.66723,e=n/1.24104,o=Math.sqrt(r*r+e*e),i=2*a(o/2);return[3*Math.atan2(t*Math.tan(i),2.66723*o),o&&a(n*Math.sin(i)/(1.24104*.90631*o))]},(d3.geo.wagner7=function(){return ia(Yn)}).raw=Yn,Zn.invert=function(t,n){var r=-.5*(t*t+n*n),e=Math.sqrt(-r*(2+r)),o=n*r+t*e,i=t*r-n*e,h=Math.sqrt(i*i+o*o);return[Math.atan2(e*o,h*(1+r)),h?-a(e*i/h):0]},(d3.geo.wiechel=function(){return ia(Zn)}).raw=Zn,$n.invert=function(t,n){var a=t,e=n,o=25;do{var i,h=Math.cos(e),u=Math.sin(e),M=Math.sin(2*e),s=u*u,c=h*h,f=Math.sin(a),v=Math.cos(a/2),l=Math.sin(a/2),g=l*l,d=1-c*v*v,p=d?r(h*v)*Math.sqrt(i=1/d):i=0,b=.5*(2*p*h*l+2*a/aa)-t,q=.5*(p*u+e)-n,w=.5*i*(c*g+p*h*v*s)+1/aa,m=i*(f*M/4-p*u*l),S=.125*i*(M*l-p*u*c*f),T=.5*i*(s*v+p*g*h)+.5,A=m*S-T*w,Q=(q*m-b*T)/A,R=(b*S-q*w)/A;a-=Q,e-=R}while((Math.abs(Q)>ta||Math.abs(R)>ta)&&--o>0);return[a,e]},(d3.geo.winkel3=function(){return ia($n)}).raw=$n}();
d3 = function() {
var d3 = {
version: "3.1.8"
};
if (!Date.now) Date.now = function() {
return +new Date();
};
var d3_document = document, d3_window = window;
try {
d3_document.createElement("div").style.setProperty("opacity", 0, "");
} catch (error) {
var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
d3_style_prototype.setProperty = function(name, value, priority) {
d3_style_setProperty.call(this, name, value + "", priority);
};
}
d3.ascending = function(a, b) {
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
};
d3.descending = function(a, b) {
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
};
d3.min = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
while (++i < n) if ((b = array[i]) != null && a > b) a = b;
} else {
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
}
return a;
};
d3.max = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
while (++i < n) if ((b = array[i]) != null && b > a) a = b;
} else {
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
}
return a;
};
d3.extent = function(array, f) {
var i = -1, n = array.length, a, b, c;
if (arguments.length === 1) {
while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
while (++i < n) if ((b = array[i]) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
} else {
while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
}
return [ a, c ];
};
d3.sum = function(array, f) {
var s = 0, n = array.length, a, i = -1;
if (arguments.length === 1) {
while (++i < n) if (!isNaN(a = +array[i])) s += a;
} else {
while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
}
return s;
};
function d3_number(x) {
return x != null && !isNaN(x);
}
d3.mean = function(array, f) {
var n = array.length, a, m = 0, i = -1, j = 0;
if (arguments.length === 1) {
while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
} else {
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
}
return j ? m : undefined;
};
d3.quantile = function(values, p) {
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
return e ? v + e * (values[h] - v) : v;
};
d3.median = function(array, f) {
if (arguments.length > 1) array = array.map(f);
array = array.filter(d3_number);
return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
};
d3.bisector = function(f) {
return {
left: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
}
return lo;
},
right: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
}
return lo;
}
};
};
var d3_bisector = d3.bisector(function(d) {
return d;
});
d3.bisectLeft = d3_bisector.left;
d3.bisect = d3.bisectRight = d3_bisector.right;
d3.shuffle = function(array) {
var m = array.length, t, i;
while (m) {
i = Math.random() * m-- | 0;
t = array[m], array[m] = array[i], array[i] = t;
}
return array;
};
d3.permute = function(array, indexes) {
var permutes = [], i = -1, n = indexes.length;
while (++i < n) permutes[i] = array[indexes[i]];
return permutes;
};
d3.zip = function() {
if (!(n = arguments.length)) return [];
for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
zip[j] = arguments[j][i];
}
}
return zips;
};
function d3_zipLength(d) {
return d.length;
}
d3.transpose = function(matrix) {
return d3.zip.apply(d3, matrix);
};
d3.keys = function(map) {
var keys = [];
for (var key in map) keys.push(key);
return keys;
};
d3.values = function(map) {
var values = [];
for (var key in map) values.push(map[key]);
return values;
};
d3.entries = function(map) {
var entries = [];
for (var key in map) entries.push({
key: key,
value: map[key]
});
return entries;
};
d3.merge = function(arrays) {
return Array.prototype.concat.apply([], arrays);
};
d3.range = function(start, stop, step) {
if (arguments.length < 3) {
step = 1;
if (arguments.length < 2) {
stop = start;
start = 0;
}
}
if ((stop - start) / step === Infinity) throw new Error("infinite range");
var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
start *= k, stop *= k, step *= k;
if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
return range;
};
function d3_range_integerScale(x) {
var k = 1;
while (x * k % 1) k *= 10;
return k;
}
function d3_class(ctor, properties) {
try {
for (var key in properties) {
Object.defineProperty(ctor.prototype, key, {
value: properties[key],
enumerable: false
});
}
} catch (e) {
ctor.prototype = properties;
}
}
d3.map = function(object) {
var map = new d3_Map();
for (var key in object) map.set(key, object[key]);
return map;
};
function d3_Map() {}
d3_class(d3_Map, {
has: function(key) {
return d3_map_prefix + key in this;
},
get: function(key) {
return this[d3_map_prefix + key];
},
set: function(key, value) {
return this[d3_map_prefix + key] = value;
},
remove: function(key) {
key = d3_map_prefix + key;
return key in this && delete this[key];
},
keys: function() {
var keys = [];
this.forEach(function(key) {
keys.push(key);
});
return keys;
},
values: function() {
var values = [];
this.forEach(function(key, value) {
values.push(value);
});
return values;
},
entries: function() {
var entries = [];
this.forEach(function(key, value) {
entries.push({
key: key,
value: value
});
});
return entries;
},
forEach: function(f) {
for (var key in this) {
if (key.charCodeAt(0) === d3_map_prefixCode) {
f.call(this, key.substring(1), this[key]);
}
}
}
});
var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
d3.nest = function() {
var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
function map(mapType, array, depth) {
if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;
while (++i < n) {
if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
values.push(object);
} else {
valuesByKey.set(keyValue, [ object ]);
}
}
if (mapType) {
object = mapType();
setter = function(keyValue, values) {
object.set(keyValue, map(mapType, values, depth));
};
} else {
object = {};
setter = function(keyValue, values) {
object[keyValue] = map(mapType, values, depth);
};
}
valuesByKey.forEach(setter);
return object;
}
function entries(map, depth) {
if (depth >= keys.length) return map;
var array = [], sortKey = sortKeys[depth++];
map.forEach(function(key, keyMap) {
array.push({
key: key,
values: entries(keyMap, depth)
});
});
return sortKey ? array.sort(function(a, b) {
return sortKey(a.key, b.key);
}) : array;
}
nest.map = function(array, mapType) {
return map(mapType, array, 0);
};
nest.entries = function(array) {
return entries(map(d3.map, array, 0), 0);
};
nest.key = function(d) {
keys.push(d);
return nest;
};
nest.sortKeys = function(order) {
sortKeys[keys.length - 1] = order;
return nest;
};
nest.sortValues = function(order) {
sortValues = order;
return nest;
};
nest.rollup = function(f) {
rollup = f;
return nest;
};
return nest;
};
d3.set = function(array) {
var set = new d3_Set();
if (array) for (var i = 0; i < array.length; i++) set.add(array[i]);
return set;
};
function d3_Set() {}
d3_class(d3_Set, {
has: function(value) {
return d3_map_prefix + value in this;
},
add: function(value) {
this[d3_map_prefix + value] = true;
return value;
},
remove: function(value) {
value = d3_map_prefix + value;
return value in this && delete this[value];
},
values: function() {
var values = [];
this.forEach(function(value) {
values.push(value);
});
return values;
},
forEach: function(f) {
for (var value in this) {
if (value.charCodeAt(0) === d3_map_prefixCode) {
f.call(this, value.substring(1));
}
}
}
});
d3.behavior = {};
d3.rebind = function(target, source) {
var i = 1, n = arguments.length, method;
while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
return target;
};
function d3_rebind(target, source, method) {
return function() {
var value = method.apply(source, arguments);
return value === source ? target : value;
};
}
d3.dispatch = function() {
var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
return dispatch;
};
function d3_dispatch() {}
d3_dispatch.prototype.on = function(type, listener) {
var i = type.indexOf("."), name = "";
if (i >= 0) {
name = type.substring(i + 1);
type = type.substring(0, i);
}
if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
if (arguments.length === 2) {
if (listener == null) for (type in this) {
if (this.hasOwnProperty(type)) this[type].on(name, null);
}
return this;
}
};
function d3_dispatch_event(dispatch) {
var listeners = [], listenerByName = new d3_Map();
function event() {
var z = listeners, i = -1, n = z.length, l;
while (++i < n) if (l = z[i].on) l.apply(this, arguments);
return dispatch;
}
event.on = function(name, listener) {
var l = listenerByName.get(name), i;
if (arguments.length < 2) return l && l.on;
if (l) {
l.on = null;
listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
listenerByName.remove(name);
}
if (listener) listeners.push(listenerByName.set(name, {
on: listener
}));
return dispatch;
};
return event;
}
d3.event = null;
function d3_eventCancel() {
d3.event.stopPropagation();
d3.event.preventDefault();
}
function d3_eventSource() {
var e = d3.event, s;
while (s = e.sourceEvent) e = s;
return e;
}
function d3_eventSuppress(target, type) {
function off() {
target.on(type, null);
}
target.on(type, function() {
d3_eventCancel();
off();
}, true);
setTimeout(off, 0);
}
function d3_eventDispatch(target) {
var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
dispatch.of = function(thiz, argumentz) {
return function(e1) {
try {
var e0 = e1.sourceEvent = d3.event;
e1.target = target;
d3.event = e1;
dispatch[e1.type].apply(thiz, argumentz);
} finally {
d3.event = e0;
}
};
};
return dispatch;
}
d3.mouse = function(container) {
return d3_mousePoint(container, d3_eventSource());
};
var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
function d3_mousePoint(container, e) {
var svg = container.ownerSVGElement || container;
if (svg.createSVGPoint) {
var point = svg.createSVGPoint();
if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {
svg = d3.select(d3_document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
var ctm = svg[0][0].getScreenCTM();
d3_mouse_bug44083 = !(ctm.f || ctm.e);
svg.remove();
}
if (d3_mouse_bug44083) {
point.x = e.pageX;
point.y = e.pageY;
} else {
point.x = e.clientX;
point.y = e.clientY;
}
point = point.matrixTransform(container.getScreenCTM().inverse());
return [ point.x, point.y ];
}
var rect = container.getBoundingClientRect();
return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
}
var d3_array = d3_arraySlice;
function d3_arrayCopy(pseudoarray) {
var i = -1, n = pseudoarray.length, array = [];
while (++i < n) array.push(pseudoarray[i]);
return array;
}
function d3_arraySlice(pseudoarray) {
return Array.prototype.slice.call(pseudoarray);
}
try {
d3_array(d3_document.documentElement.childNodes)[0].nodeType;
} catch (e) {
d3_array = d3_arrayCopy;
}
var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
array.__proto__ = prototype;
} : function(array, prototype) {
for (var property in prototype) array[property] = prototype[property];
};
d3.touches = function(container, touches) {
if (arguments.length < 2) touches = d3_eventSource().touches;
return touches ? d3_array(touches).map(function(touch) {
var point = d3_mousePoint(container, touch);
point.identifier = touch.identifier;
return point;
}) : [];
};
d3.behavior.drag = function() {
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
function drag() {
this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
}
function mousedown() {
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0;
var w = d3.select(d3_window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
if (origin) {
offset = origin.apply(target, arguments);
offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
} else {
offset = [ 0, 0 ];
}
if (touchId == null) d3_eventCancel();
event_({
type: "dragstart"
});
function point() {
var p = target.parentNode;
return touchId != null ? d3.touches(p).filter(function(p) {
return p.identifier === touchId;
})[0] : d3.mouse(p);
}
function dragmove() {
if (!target.parentNode) return dragend();
var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
moved |= dx | dy;
origin_ = p;
d3_eventCancel();
event_({
type: "drag",
x: p[0] + offset[0],
y: p[1] + offset[1],
dx: dx,
dy: dy
});
}
function dragend() {
event_({
type: "dragend"
});
if (moved) {
d3_eventCancel();
if (d3.event.target === eventTarget) d3_eventSuppress(w, "click");
}
w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null);
}
}
drag.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return drag;
};
return d3.rebind(drag, event, "on");
};
function d3_selection(groups) {
d3_arraySubclass(groups, d3_selectionPrototype);
return groups;
}
var d3_select = function(s, n) {
return n.querySelector(s);
}, d3_selectAll = function(s, n) {
return n.querySelectorAll(s);
}, d3_selectRoot = d3_document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
return d3_selectMatcher.call(n, s);
};
if (typeof Sizzle === "function") {
d3_select = function(s, n) {
return Sizzle(s, n)[0] || null;
};
d3_selectAll = function(s, n) {
return Sizzle.uniqueSort(Sizzle(s, n));
};
d3_selectMatches = Sizzle.matchesSelector;
}
d3.selection = function() {
return d3_selectionRoot;
};
var d3_selectionPrototype = d3.selection.prototype = [];
d3_selectionPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, group, node;
if (typeof selector !== "function") selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(subnode = selector.call(node, node.__data__, i));
if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selector(selector) {
return function() {
return d3_select(selector, this);
};
}
d3_selectionPrototype.selectAll = function(selector) {
var subgroups = [], subgroup, node;
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
subgroup.parentNode = node;
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selectorAll(selector) {
return function() {
return d3_selectAll(selector, this);
};
}
var d3_nsPrefix = {
svg: "http://www.w3.org/2000/svg",
xhtml: "http://www.w3.org/1999/xhtml",
xlink: "http://www.w3.org/1999/xlink",
xml: "http://www.w3.org/XML/1998/namespace",
xmlns: "http://www.w3.org/2000/xmlns/"
};
d3.ns = {
prefix: d3_nsPrefix,
qualify: function(name) {
var i = name.indexOf(":"), prefix = name;
if (i >= 0) {
prefix = name.substring(0, i);
name = name.substring(i + 1);
}
return d3_nsPrefix.hasOwnProperty(prefix) ? {
space: d3_nsPrefix[prefix],
local: name
} : name;
}
};
d3_selectionPrototype.attr = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node();
name = d3.ns.qualify(name);
return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
}
for (value in name) this.each(d3_selection_attr(value, name[value]));
return this;
}
return this.each(d3_selection_attr(name, value));
};
function d3_selection_attr(name, value) {
name = d3.ns.qualify(name);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
function attrConstant() {
this.setAttribute(name, value);
}
function attrConstantNS() {
this.setAttributeNS(name.space, name.local, value);
}
function attrFunction() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
}
function attrFunctionNS() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
}
return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
}
function d3_collapse(s) {
return s.trim().replace(/\s+/g, " ");
}
d3.requote = function(s) {
return s.replace(d3_requote_re, "\\$&");
};
var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
d3_selectionPrototype.classed = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
if (value = node.classList) {
while (++i < n) if (!value.contains(name[i])) return false;
} else {
value = node.getAttribute("class");
while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
}
return true;
}
for (value in name) this.each(d3_selection_classed(value, name[value]));
return this;
}
return this.each(d3_selection_classed(name, value));
};
function d3_selection_classedRe(name) {
return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
}
function d3_selection_classed(name, value) {
name = name.trim().split(/\s+/).map(d3_selection_classedName);
var n = name.length;
function classedConstant() {
var i = -1;
while (++i < n) name[i](this, value);
}
function classedFunction() {
var i = -1, x = value.apply(this, arguments);
while (++i < n) name[i](this, x);
}
return typeof value === "function" ? classedFunction : classedConstant;
}
function d3_selection_classedName(name) {
var re = d3_selection_classedRe(name);
return function(node, value) {
if (c = node.classList) return value ? c.add(name) : c.remove(name);
var c = node.getAttribute("class") || "";
if (value) {
re.lastIndex = 0;
if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
} else {
node.setAttribute("class", d3_collapse(c.replace(re, " ")));
}
};
}
d3_selectionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
return this;
}
if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name);
priority = "";
}
return this.each(d3_selection_style(name, value, priority));
};
function d3_selection_style(name, value, priority) {
function styleNull() {
this.style.removeProperty(name);
}
function styleConstant() {
this.style.setProperty(name, value, priority);
}
function styleFunction() {
var x = value.apply(this, arguments);
if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
}
return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
}
d3_selectionPrototype.property = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") return this.node()[name];
for (value in name) this.each(d3_selection_property(value, name[value]));
return this;
}
return this.each(d3_selection_property(name, value));
};
function d3_selection_property(name, value) {
function propertyNull() {
delete this[name];
}
function propertyConstant() {
this[name] = value;
}
function propertyFunction() {
var x = value.apply(this, arguments);
if (x == null) delete this[name]; else this[name] = x;
}
return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
}
d3_selectionPrototype.text = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.textContent = v == null ? "" : v;
} : value == null ? function() {
this.textContent = "";
} : function() {
this.textContent = value;
}) : this.node().textContent;
};
d3_selectionPrototype.html = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.innerHTML = v == null ? "" : v;
} : value == null ? function() {
this.innerHTML = "";
} : function() {
this.innerHTML = value;
}) : this.node().innerHTML;
};
d3_selectionPrototype.append = function(name) {
name = d3.ns.qualify(name);
function append() {
return this.appendChild(d3_document.createElementNS(this.namespaceURI, name));
}
function appendNS() {
return this.appendChild(d3_document.createElementNS(name.space, name.local));
}
return this.select(name.local ? appendNS : append);
};
d3_selectionPrototype.insert = function(name, before) {
name = d3.ns.qualify(name);
if (typeof before !== "function") before = d3_selection_selector(before);
function insert(d, i) {
return this.insertBefore(d3_document.createElementNS(this.namespaceURI, name), before.call(this, d, i));
}
function insertNS(d, i) {
return this.insertBefore(d3_document.createElementNS(name.space, name.local), before.call(this, d, i));
}
return this.select(name.local ? insertNS : insert);
};
d3_selectionPrototype.remove = function() {
return this.each(function() {
var parent = this.parentNode;
if (parent) parent.removeChild(this);
});
};
d3_selectionPrototype.data = function(value, key) {
var i = -1, n = this.length, group, node;
if (!arguments.length) {
value = new Array(n = (group = this[0]).length);
while (++i < n) {
if (node = group[i]) {
value[i] = node.__data__;
}
}
return value;
}
function bind(group, groupData) {
var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
if (key) {
var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue;
for (i = -1; ++i < n; ) {
keyValue = key.call(node = group[i], node.__data__, i);
if (nodeByKeyValue.has(keyValue)) {
exitNodes[i] = node;
} else {
nodeByKeyValue.set(keyValue, node);
}
keyValues.push(keyValue);
}
for (i = -1; ++i < m; ) {
keyValue = key.call(groupData, nodeData = groupData[i], i);
if (node = nodeByKeyValue.get(keyValue)) {
updateNodes[i] = node;
node.__data__ = nodeData;
} else if (!dataByKeyValue.has(keyValue)) {
enterNodes[i] = d3_selection_dataNode(nodeData);
}
dataByKeyValue.set(keyValue, nodeData);
nodeByKeyValue.remove(keyValue);
}
for (i = -1; ++i < n; ) {
if (nodeByKeyValue.has(keyValues[i])) {
exitNodes[i] = group[i];
}
}
} else {
for (i = -1; ++i < n0; ) {
node = group[i];
nodeData = groupData[i];
if (node) {
node.__data__ = nodeData;
updateNodes[i] = node;
} else {
enterNodes[i] = d3_selection_dataNode(nodeData);
}
}
for (;i < m; ++i) {
enterNodes[i] = d3_selection_dataNode(groupData[i]);
}
for (;i < n; ++i) {
exitNodes[i] = group[i];
}
}
enterNodes.update = updateNodes;
enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
enter.push(enterNodes);
update.push(updateNodes);
exit.push(exitNodes);
}
var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
if (typeof value === "function") {
while (++i < n) {
bind(group = this[i], value.call(group, group.parentNode.__data__, i));
}
} else {
while (++i < n) {
bind(group = this[i], value);
}
}
update.enter = function() {
return enter;
};
update.exit = function() {
return exit;
};
return update;
};
function d3_selection_dataNode(data) {
return {
__data__: data
};
}
d3_selectionPrototype.datum = function(value) {
return arguments.length ? this.property("__data__", value) : this.property("__data__");
};
d3_selectionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i)) {
subgroup.push(node);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_filter(selector) {
return function() {
return d3_selectMatches(this, selector);
};
}
d3_selectionPrototype.order = function() {
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
if (node = group[i]) {
if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
next = node;
}
}
}
return this;
};
d3_selectionPrototype.sort = function(comparator) {
comparator = d3_selection_sortComparator.apply(this, arguments);
for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
return this.order();
};
function d3_selection_sortComparator(comparator) {
if (!arguments.length) comparator = d3.ascending;
return function(a, b) {
return !a - !b || comparator(a.__data__, b.__data__);
};
}
function d3_noop() {}
d3_selectionPrototype.on = function(type, listener, capture) {
var n = arguments.length;
if (n < 3) {
if (typeof type !== "string") {
if (n < 2) listener = false;
for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
return this;
}
if (n < 2) return (n = this.node()["__on" + type]) && n._;
capture = false;
}
return this.each(d3_selection_on(type, listener, capture));
};
function d3_selection_on(type, listener, capture) {
var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
if (i > 0) type = type.substring(0, i);
var filter = d3_selection_onFilters.get(type);
if (filter) type = filter, wrap = d3_selection_onFilter;
function onRemove() {
var l = this[name];
if (l) {
this.removeEventListener(type, l, l.$);
delete this[name];
}
}
function onAdd() {
var l = wrap(listener, d3_array(arguments));
onRemove.call(this);
this.addEventListener(type, this[name] = l, l.$ = capture);
l._ = listener;
}
function removeAll() {
var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match;
for (var name in this) {
if (match = name.match(re)) {
var l = this[name];
this.removeEventListener(match[1], l, l.$);
delete this[name];
}
}
}
return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;
}
var d3_selection_onFilters = d3.map({
mouseenter: "mouseover",
mouseleave: "mouseout"
});
d3_selection_onFilters.forEach(function(k) {
if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
});
function d3_selection_onListener(listener, argumentz) {
return function(e) {
var o = d3.event;
d3.event = e;
argumentz[0] = this.__data__;
try {
listener.apply(this, argumentz);
} finally {
d3.event = o;
}
};
}
function d3_selection_onFilter(listener, argumentz) {
var l = d3_selection_onListener(listener, argumentz);
return function(e) {
var target = this, related = e.relatedTarget;
if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {
l.call(target, e);
}
};
}
d3_selectionPrototype.each = function(callback) {
return d3_selection_each(this, function(node, i, j) {
callback.call(node, node.__data__, i, j);
});
};
function d3_selection_each(groups, callback) {
for (var j = 0, m = groups.length; j < m; j++) {
for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
if (node = group[i]) callback(node, i, j);
}
}
return groups;
}
d3_selectionPrototype.call = function(callback) {
var args = d3_array(arguments);
callback.apply(args[0] = this, args);
return this;
};
d3_selectionPrototype.empty = function() {
return !this.node();
};
d3_selectionPrototype.node = function() {
for (var j = 0, m = this.length; j < m; j++) {
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
var node = group[i];
if (node) return node;
}
}
return null;
};
function d3_selection_enter(selection) {
d3_arraySubclass(selection, d3_selection_enterPrototype);
return selection;
}
var d3_selection_enterPrototype = [];
d3.selection.enter = d3_selection_enter;
d3.selection.enter.prototype = d3_selection_enterPrototype;
d3_selection_enterPrototype.append = d3_selectionPrototype.append;
d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
d3_selection_enterPrototype.node = d3_selectionPrototype.node;
d3_selection_enterPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, upgroup, group, node;
for (var j = -1, m = this.length; ++j < m; ) {
upgroup = (group = this[j]).update;
subgroups.push(subgroup = []);
subgroup.parentNode = group.parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
d3_selectionPrototype.transition = function() {
var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit);
transition.time = Date.now();
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) d3_transitionNode(node, i, id, transition);
subgroup.push(node);
}
}
return d3_transition(subgroups, id);
};
d3.select = function(node) {
var group = [ typeof node === "string" ? d3_select(node, d3_document) : node ];
group.parentNode = d3_selectRoot;
return d3_selection([ group ]);
};
d3.selectAll = function(nodes) {
var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes);
group.parentNode = d3_selectRoot;
return d3_selection([ group ]);
};
var d3_selectionRoot = d3.select(d3_selectRoot);
d3.behavior.zoom = function() {
var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
function zoom() {
this.on("mousedown.zoom", mousedown).on("mousemove.zoom", mousemove).on(d3_behavior_zoomWheel + ".zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
}
zoom.translate = function(x) {
if (!arguments.length) return translate;
translate = x.map(Number);
rescale();
return zoom;
};
zoom.scale = function(x) {
if (!arguments.length) return scale;
scale = +x;
rescale();
return zoom;
};
zoom.scaleExtent = function(x) {
if (!arguments.length) return scaleExtent;
scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
return zoom;
};
zoom.x = function(z) {
if (!arguments.length) return x1;
x1 = z;
x0 = z.copy();
translate = [ 0, 0 ];
scale = 1;
return zoom;
};
zoom.y = function(z) {
if (!arguments.length) return y1;
y1 = z;
y0 = z.copy();
translate = [ 0, 0 ];
scale = 1;
return zoom;
};
function location(p) {
return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
}
function point(l) {
return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
}
function scaleTo(s) {
scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
}
function translateTo(p, l) {
l = point(l);
translate[0] += p[0] - l[0];
translate[1] += p[1] - l[1];
}
function rescale() {
if (x1) x1.domain(x0.range().map(function(x) {
return (x - translate[0]) / scale;
}).map(x0.invert));
if (y1) y1.domain(y0.range().map(function(y) {
return (y - translate[1]) / scale;
}).map(y0.invert));
}
function dispatch(event) {
rescale();
d3.event.preventDefault();
event({
type: "zoom",
scale: scale,
translate: translate
});
}
function mousedown() {
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(d3_window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
d3_window.focus();
d3_eventCancel();
function mousemove() {
moved = 1;
translateTo(d3.mouse(target), l);
dispatch(event_);
}
function mouseup() {
if (moved) d3_eventCancel();
w.on("mousemove.zoom", null).on("mouseup.zoom", null);
if (moved && d3.event.target === eventTarget) d3_eventSuppress(w, "click.zoom");
}
}
function mousewheel() {
if (!translate0) translate0 = location(d3.mouse(this));
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
translateTo(d3.mouse(this), translate0);
dispatch(event.of(this, arguments));
}
function mousemove() {
translate0 = null;
}
function dblclick() {
var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2;
scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
translateTo(p, l);
dispatch(event.of(this, arguments));
}
function touchstart() {
var touches = d3.touches(this), now = Date.now();
scale0 = scale;
translate0 = {};
touches.forEach(function(t) {
translate0[t.identifier] = location(t);
});
d3_eventCancel();
if (touches.length === 1) {
if (now - touchtime < 500) {
var p = touches[0], l = location(touches[0]);
scaleTo(scale * 2);
translateTo(p, l);
dispatch(event.of(this, arguments));
}
touchtime = now;
}
}
function touchmove() {
var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
if (p1 = touches[1]) {
var p1, l1 = translate0[p1.identifier];
p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
scaleTo(d3.event.scale * scale0);
}
translateTo(p0, l0);
touchtime = null;
dispatch(event.of(this, arguments));
}
return d3.rebind(zoom, event, "on");
};
var d3_behavior_zoomInfinity = [ 0, Infinity ];
var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
}, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
return d3.event.wheelDelta;
}, "mousewheel") : (d3_behavior_zoomDelta = function() {
return -d3.event.detail;
}, "MozMousePixelScroll");
function d3_Color() {}
d3_Color.prototype.toString = function() {
return this.rgb() + "";
};
d3.hsl = function(h, s, l) {
return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
};
function d3_hsl(h, s, l) {
return new d3_Hsl(h, s, l);
}
function d3_Hsl(h, s, l) {
this.h = h;
this.s = s;
this.l = l;
}
var d3_hslPrototype = d3_Hsl.prototype = new d3_Color();
d3_hslPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_hsl(this.h, this.s, this.l / k);
};
d3_hslPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_hsl(this.h, this.s, k * this.l);
};
d3_hslPrototype.rgb = function() {
return d3_hsl_rgb(this.h, this.s, this.l);
};
function d3_hsl_rgb(h, s, l) {
var m1, m2;
h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;
s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360; else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
}
var π = Math.PI, ε = 1e-6, ε2 = ε * ε, d3_radians = π / 180, d3_degrees = 180 / π;
function d3_sgn(x) {
return x > 0 ? 1 : x < 0 ? -1 : 0;
}
function d3_acos(x) {
return Math.acos(Math.max(-1, Math.min(1, x)));
}
function d3_asin(x) {
return x > 1 ? π / 2 : x < -1 ? -π / 2 : Math.asin(x);
}
function d3_sinh(x) {
return (Math.exp(x) - Math.exp(-x)) / 2;
}
function d3_cosh(x) {
return (Math.exp(x) + Math.exp(-x)) / 2;
}
function d3_haversin(x) {
return (x = Math.sin(x / 2)) * x;
}
d3.hcl = function(h, c, l) {
return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
};
function d3_hcl(h, c, l) {
return new d3_Hcl(h, c, l);
}
function d3_Hcl(h, c, l) {
this.h = h;
this.c = c;
this.l = l;
}
var d3_hclPrototype = d3_Hcl.prototype = new d3_Color();
d3_hclPrototype.brighter = function(k) {
return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.darker = function(k) {
return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.rgb = function() {
return d3_hcl_lab(this.h, this.c, this.l).rgb();
};
function d3_hcl_lab(h, c, l) {
if (isNaN(h)) h = 0;
if (isNaN(c)) c = 0;
return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
}
d3.lab = function(l, a, b) {
return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
};
function d3_lab(l, a, b) {
return new d3_Lab(l, a, b);
}
function d3_Lab(l, a, b) {
this.l = l;
this.a = a;
this.b = b;
}
var d3_lab_K = 18;
var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
var d3_labPrototype = d3_Lab.prototype = new d3_Color();
d3_labPrototype.brighter = function(k) {
return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.darker = function(k) {
return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.rgb = function() {
return d3_lab_rgb(this.l, this.a, this.b);
};
function d3_lab_rgb(l, a, b) {
var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
x = d3_lab_xyz(x) * d3_lab_X;
y = d3_lab_xyz(y) * d3_lab_Y;
z = d3_lab_xyz(z) * d3_lab_Z;
return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
}
function d3_lab_hcl(l, a, b) {
return l > 0 ? d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : d3_hcl(NaN, NaN, l);
}
function d3_lab_xyz(x) {
return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
}
function d3_xyz_lab(x) {
return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
}
function d3_xyz_rgb(r) {
return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
}
d3.rgb = function(r, g, b) {
return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
};
function d3_rgb(r, g, b) {
return new d3_Rgb(r, g, b);
}
function d3_Rgb(r, g, b) {
this.r = r;
this.g = g;
this.b = b;
}
var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
d3_rgbPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
var r = this.r, g = this.g, b = this.b, i = 30;
if (!r && !g && !b) return d3_rgb(i, i, i);
if (r && r < i) r = i;
if (g && g < i) g = i;
if (b && b < i) b = i;
return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
};
d3_rgbPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
};
d3_rgbPrototype.hsl = function() {
return d3_rgb_hsl(this.r, this.g, this.b);
};
d3_rgbPrototype.toString = function() {
return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
};
function d3_rgb_hex(v) {
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
}
function d3_rgb_parse(format, rgb, hsl) {
var r = 0, g = 0, b = 0, m1, m2, name;
m1 = /([a-z]+)\((.*)\)/i.exec(format);
if (m1) {
m2 = m1[2].split(",");
switch (m1[1]) {
case "hsl":
{
return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
}
case "rgb":
{
return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
}
}
}
if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
if (format != null && format.charAt(0) === "#") {
if (format.length === 4) {
r = format.charAt(1);
r += r;
g = format.charAt(2);
g += g;
b = format.charAt(3);
b += b;
} else if (format.length === 7) {
r = format.substring(1, 3);
g = format.substring(3, 5);
b = format.substring(5, 7);
}
r = parseInt(r, 16);
g = parseInt(g, 16);
b = parseInt(b, 16);
}
return rgb(r, g, b);
}
function d3_rgb_hsl(r, g, b) {
var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
if (d) {
s = l < .5 ? d / (max + min) : d / (2 - max - min);
if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
h *= 60;
} else {
h = NaN;
s = l > 0 && l < 1 ? 0 : h;
}
return d3_hsl(h, s, l);
}
function d3_rgb_lab(r, g, b) {
r = d3_rgb_xyz(r);
g = d3_rgb_xyz(g);
b = d3_rgb_xyz(b);
var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
}
function d3_rgb_xyz(r) {
return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
}
function d3_rgb_parseNumber(c) {
var f = parseFloat(c);
return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
}
var d3_rgb_names = d3.map({
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
gold: "#ffd700",
goldenrod: "#daa520",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavender: "#e6e6fa",
lavenderblush: "#fff0f5",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370db",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#db7093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
});
d3_rgb_names.forEach(function(key, value) {
d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
});
function d3_functor(v) {
return typeof v === "function" ? v : function() {
return v;
};
}
d3.functor = d3_functor;
function d3_identity(d) {
return d;
}
d3.xhr = function(url, mimeType, callback) {
var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (d3_window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)();
"onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
request.readyState > 3 && respond();
};
function respond() {
var s = request.status;
!s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request);
}
request.onprogress = function(event) {
var o = d3.event;
d3.event = event;
try {
dispatch.progress.call(xhr, request);
} finally {
d3.event = o;
}
};
xhr.header = function(name, value) {
name = (name + "").toLowerCase();
if (arguments.length < 2) return headers[name];
if (value == null) delete headers[name]; else headers[name] = value + "";
return xhr;
};
xhr.mimeType = function(value) {
if (!arguments.length) return mimeType;
mimeType = value == null ? null : value + "";
return xhr;
};
xhr.response = function(value) {
response = value;
return xhr;
};
[ "get", "post" ].forEach(function(method) {
xhr[method] = function() {
return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
};
});
xhr.send = function(method, data, callback) {
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
request.open(method, url, true);
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
if (callback != null) xhr.on("error", callback).on("load", function(request) {
callback(null, request);
});
request.send(data == null ? null : data);
return xhr;
};
xhr.abort = function() {
request.abort();
return xhr;
};
d3.rebind(xhr, dispatch, "on");
if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
mimeType = null;
return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
};
function d3_xhr_fixCallback(callback) {
return callback.length === 1 ? function(error, request) {
callback(error == null ? request : null);
} : callback;
}
function d3_dsv(delimiter, mimeType) {
var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
function dsv(url, row, callback) {
if (arguments.length < 3) callback = row, row = null;
var xhr = d3.xhr(url, mimeType, callback);
xhr.row = function(_) {
return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;
};
return xhr.row(row);
}
function response(request) {
return dsv.parse(request.responseText);
}
function typedResponse(f) {
return function(request) {
return dsv.parse(request.responseText, f);
};
}
dsv.parse = function(text, f) {
var o;
return dsv.parseRows(text, function(row, i) {
if (o) return o(row, i - 1);
var a = new Function("d", "return {" + row.map(function(name, i) {
return JSON.stringify(name) + ": d[" + i + "]";
}).join(",") + "}");
o = f ? function(row, i) {
return f(a(row), i);
} : a;
});
};
dsv.parseRows = function(text, f) {
var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
function token() {
if (I >= N) return EOF;
if (eol) return eol = false, EOL;
var j = I;
if (text.charCodeAt(j) === 34) {
var i = j;
while (i++ < N) {
if (text.charCodeAt(i) === 34) {
if (text.charCodeAt(i + 1) !== 34) break;
++i;
}
}
I = i + 2;
var c = text.charCodeAt(i + 1);
if (c === 13) {
eol = true;
if (text.charCodeAt(i + 2) === 10) ++I;
} else if (c === 10) {
eol = true;
}
return text.substring(j + 1, i).replace(/""/g, '"');
}
while (I < N) {
var c = text.charCodeAt(I++), k = 1;
if (c === 10) eol = true; else if (c === 13) {
eol = true;
if (text.charCodeAt(I) === 10) ++I, ++k;
} else if (c !== delimiterCode) continue;
return text.substring(j, I - k);
}
return text.substring(j);
}
while ((t = token()) !== EOF) {
var a = [];
while (t !== EOL && t !== EOF) {
a.push(t);
t = token();
}
if (f && !(a = f(a, n++))) continue;
rows.push(a);
}
return rows;
};
dsv.format = function(rows) {
if (Array.isArray(rows[0])) return dsv.formatRows(rows);
var fieldSet = new d3_Set(), fields = [];
rows.forEach(function(row) {
for (var field in row) {
if (!fieldSet.has(field)) {
fields.push(fieldSet.add(field));
}
}
});
return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {
return fields.map(function(field) {
return formatValue(row[field]);
}).join(delimiter);
})).join("\n");
};
dsv.formatRows = function(rows) {
return rows.map(formatRow).join("\n");
};
function formatRow(row) {
return row.map(formatValue).join(delimiter);
}
function formatValue(text) {
return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
}
return dsv;
}
d3.csv = d3_dsv(",", "text/csv");
d3.tsv = d3_dsv(" ", "text/tab-separated-values");
var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
d3.timer = function(callback, delay, then) {
if (arguments.length < 3) {
if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
then = Date.now();
}
var timer = d3_timer_byId[callback.id];
if (timer && timer.callback === callback) {
timer.then = then;
timer.delay = delay;
} else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = {
callback: callback,
then: then,
delay: delay,
next: d3_timer_queue
};
if (!d3_timer_interval) {
d3_timer_timeout = clearTimeout(d3_timer_timeout);
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
};
function d3_timer_step() {
var elapsed, now = Date.now(), t1 = d3_timer_queue;
while (t1) {
elapsed = now - t1.then;
if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
t1 = t1.next;
}
var delay = d3_timer_flush() - now;
if (delay > 24) {
if (isFinite(delay)) {
clearTimeout(d3_timer_timeout);
d3_timer_timeout = setTimeout(d3_timer_step, delay);
}
d3_timer_interval = 0;
} else {
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
}
d3.timer.flush = function() {
var elapsed, now = Date.now(), t1 = d3_timer_queue;
while (t1) {
elapsed = now - t1.then;
if (!t1.delay) t1.flush = t1.callback(elapsed);
t1 = t1.next;
}
d3_timer_flush();
};
function d3_timer_flush() {
var t0 = null, t1 = d3_timer_queue, then = Infinity;
while (t1) {
if (t1.flush) {
delete d3_timer_byId[t1.callback.id];
t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
} else {
then = Math.min(then, t1.then + t1.delay);
t1 = (t0 = t1).next;
}
}
return then;
}
var d3_timer_frame = d3_window.requestAnimationFrame || d3_window.webkitRequestAnimationFrame || d3_window.mozRequestAnimationFrame || d3_window.oRequestAnimationFrame || d3_window.msRequestAnimationFrame || function(callback) {
setTimeout(callback, 17);
};
var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ];
var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
d3.formatPrefix = function(value, precision) {
var i = 0;
if (value) {
if (value < 0) value *= -1;
if (precision) value = d3.round(value, d3_format_precision(value, precision));
i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
}
return d3_formatPrefixes[8 + i / 3];
};
function d3_formatPrefix(d, i) {
var k = Math.pow(10, Math.abs(8 - i) * 3);
return {
scale: i > 8 ? function(d) {
return d / k;
} : function(d) {
return d * k;
},
symbol: d
};
}
d3.round = function(x, n) {
return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
};
d3.format = function(specifier) {
var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
if (precision) precision = +precision.substring(1);
if (zfill || fill === "0" && align === "=") {
zfill = fill = "0";
align = "=";
if (comma) width -= Math.floor((width - 1) / 4);
}
switch (type) {
case "n":
comma = true;
type = "g";
break;
case "%":
scale = 100;
suffix = "%";
type = "f";
break;
case "p":
scale = 100;
suffix = "%";
type = "r";
break;
case "b":
case "o":
case "x":
case "X":
if (basePrefix) basePrefix = "0" + type.toLowerCase();
case "c":
case "d":
integer = true;
precision = 0;
break;
case "s":
scale = -1;
type = "r";
break;
}
if (basePrefix === "#") basePrefix = "";
if (type == "r" && !precision) type = "g";
if (precision != null) {
if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision));
}
type = d3_format_types.get(type) || d3_format_typeDefault;
var zcomma = zfill && comma;
return function(value) {
if (integer && value % 1) return "";
var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign;
if (scale < 0) {
var prefix = d3.formatPrefix(value, precision);
value = prefix.scale(value);
suffix = prefix.symbol;
} else {
value *= scale;
}
value = type(value, precision);
if (!zfill && comma) value = d3_format_group(value);
var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
if (zcomma) value = d3_format_group(padding + value);
if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint);
negative += basePrefix;
return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix;
};
};
var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;
var d3_format_types = d3.map({
b: function(x) {
return x.toString(2);
},
c: function(x) {
return String.fromCharCode(x);
},
o: function(x) {
return x.toString(8);
},
x: function(x) {
return x.toString(16);
},
X: function(x) {
return x.toString(16).toUpperCase();
},
g: function(x, p) {
return x.toPrecision(p);
},
e: function(x, p) {
return x.toExponential(p);
},
f: function(x, p) {
return x.toFixed(p);
},
r: function(x, p) {
return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
}
});
function d3_format_precision(x, p) {
return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
}
function d3_format_typeDefault(x) {
return x + "";
}
var d3_format_group = d3_identity;
if (d3_format_grouping) {
var d3_format_groupingLength = d3_format_grouping.length;
d3_format_group = function(value) {
var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length,
""), t = [], j = 0, g = d3_format_grouping[0];
while (i > 0 && g > 0) {
t.push(value.substring(i -= g, i + g));
g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength];
}
return t.reverse().join(d3_format_thousandsSeparator || "") + f;
};
}
d3.geo = {};
d3.geo.stream = function(object, listener) {
if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
d3_geo_streamObjectType[object.type](object, listener);
} else {
d3_geo_streamGeometry(object, listener);
}
};
function d3_geo_streamGeometry(geometry, listener) {
if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
d3_geo_streamGeometryType[geometry.type](geometry, listener);
}
}
var d3_geo_streamObjectType = {
Feature: function(feature, listener) {
d3_geo_streamGeometry(feature.geometry, listener);
},
FeatureCollection: function(object, listener) {
var features = object.features, i = -1, n = features.length;
while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
}
};
var d3_geo_streamGeometryType = {
Sphere: function(object, listener) {
listener.sphere();
},
Point: function(object, listener) {
var coordinate = object.coordinates;
listener.point(coordinate[0], coordinate[1]);
},
MultiPoint: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate;
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
},
LineString: function(object, listener) {
d3_geo_streamLine(object.coordinates, listener, 0);
},
MultiLineString: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
},
Polygon: function(object, listener) {
d3_geo_streamPolygon(object.coordinates, listener);
},
MultiPolygon: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
},
GeometryCollection: function(object, listener) {
var geometries = object.geometries, i = -1, n = geometries.length;
while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
}
};
function d3_geo_streamLine(coordinates, listener, closed) {
var i = -1, n = coordinates.length - closed, coordinate;
listener.lineStart();
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
listener.lineEnd();
}
function d3_geo_streamPolygon(coordinates, listener) {
var i = -1, n = coordinates.length;
listener.polygonStart();
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
listener.polygonEnd();
}
d3.geo.area = function(object) {
d3_geo_areaSum = 0;
d3.geo.stream(object, d3_geo_area);
return d3_geo_areaSum;
};
var d3_geo_areaSum, d3_geo_areaRingSum;
var d3_geo_area = {
sphere: function() {
d3_geo_areaSum += 4 * π;
},
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_areaRingSum = 0;
d3_geo_area.lineStart = d3_geo_areaRingStart;
},
polygonEnd: function() {
var area = 2 * d3_geo_areaRingSum;
d3_geo_areaSum += area < 0 ? 4 * π + area : area;
d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
}
};
function d3_geo_areaRingStart() {
var λ00, φ00, λ0, cosφ0, sinφ0;
d3_geo_area.point = function(λ, φ) {
d3_geo_area.point = nextPoint;
λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
sinφ0 = Math.sin(φ);
};
function nextPoint(λ, φ) {
λ *= d3_radians;
φ = φ * d3_radians / 2 + π / 4;
var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(dλ), v = k * Math.sin(dλ);
d3_geo_areaRingSum += Math.atan2(v, u);
λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
}
d3_geo_area.lineEnd = function() {
nextPoint(λ00, φ00);
};
}
function d3_geo_cartesian(spherical) {
var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
}
function d3_geo_cartesianDot(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}
function d3_geo_cartesianCross(a, b) {
return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
}
function d3_geo_cartesianAdd(a, b) {
a[0] += b[0];
a[1] += b[1];
a[2] += b[2];
}
function d3_geo_cartesianScale(vector, k) {
return [ vector[0] * k, vector[1] * k, vector[2] * k ];
}
function d3_geo_cartesianNormalize(d) {
var l = Math.sqrt(d3_geo_cartesianDot(d, d));
d[0] /= l;
d[1] /= l;
d[2] /= l;
}
function d3_geo_cartesianEqual(a, b) {
var dx = b[0] - a[0], dy = b[1] - a[1], dz = b[2] - a[2];
return dx * dx + dy * dy + dz * dz < ε2 * ε2;
}
function d3_geo_spherical(cartesian) {
return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ];
}
function d3_geo_sphericalEqual(a, b, t) {
if (arguments.length < 3) t = ε;
return Math.abs(a[1] - b[1]) < t && (Math.abs(Math.abs(a[1]) - π / 2) < t || d3_geo_sphericalLongitudeDifference(a[0], b[0]) < t);
}
function d3_geo_sphericalLongitudeDifference(λ0, λ1) {
var dλ = Math.abs(λ1 - λ0);
return dλ > π ? 2 * π - dλ : dλ;
}
d3.geo.bounds = function() {
var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;
var bound = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
bound.point = ringPoint;
bound.lineStart = ringStart;
bound.lineEnd = ringEnd;
dλSum = 0;
d3_geo_area.polygonStart();
},
polygonEnd: function() {
d3_geo_area.polygonEnd();
bound.point = point;
bound.lineStart = lineStart;
bound.lineEnd = lineEnd;
if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;
range[0] = λ0, range[1] = λ1;
}
};
function point(λ, φ) {
ranges.push(range = [ λ0 = λ, λ1 = λ ]);
if (φ < φ0) φ0 = φ;
if (φ > φ1) φ1 = φ;
}
function linePoint(λ, φ) {
var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);
if (p0) {
var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);
d3_geo_cartesianNormalize(inflection);
inflection = d3_geo_spherical(inflection);
var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = Math.abs(dλ) > 180;
if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
var φi = inflection[1] * d3_degrees;
if (φi > φ1) φ1 = φi;
} else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
var φi = -inflection[1] * d3_degrees;
if (φi < φ0) φ0 = φi;
} else {
if (φ < φ0) φ0 = φ;
if (φ > φ1) φ1 = φ;
}
if (antimeridian) {
if (λ < λ_) {
if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
} else {
if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
}
} else {
if (λ1 >= λ0) {
if (λ < λ0) λ0 = λ;
if (λ > λ1) λ1 = λ;
} else {
if (λ > λ_) {
if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
} else {
if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
}
}
}
} else {
point(λ, φ);
}
p0 = p, λ_ = λ;
}
function lineStart() {
bound.point = linePoint;
}
function lineEnd() {
range[0] = λ0, range[1] = λ1;
bound.point = point;
p0 = null;
}
function ringPoint(λ, φ) {
if (p0) {
var dλ = λ - λ_;
dλSum += Math.abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
} else λ__ = λ, φ__ = φ;
d3_geo_area.point(λ, φ);
linePoint(λ, φ);
}
function ringStart() {
d3_geo_area.lineStart();
}
function ringEnd() {
ringPoint(λ__, φ__);
d3_geo_area.lineEnd();
if (Math.abs(dλSum) > ε) λ0 = -(λ1 = 180);
range[0] = λ0, range[1] = λ1;
p0 = null;
}
function angle(λ0, λ1) {
return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;
}
function compareRanges(a, b) {
return a[0] - b[0];
}
function withinRange(x, range) {
return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
}
return function(feature) {
φ1 = λ1 = -(λ0 = φ0 = Infinity);
ranges = [];
d3.geo.stream(feature, bound);
ranges.sort(compareRanges);
for (var i = 1, n = ranges.length, a = ranges[0], b, merged = [ a ]; i < n; ++i) {
b = ranges[i];
if (withinRange(b[0], a) || withinRange(b[1], a)) {
if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
} else {
merged.push(a = b);
}
}
var best = -Infinity, dλ;
for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {
b = merged[i];
if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];
}
ranges = range = null;
return [ [ λ0, φ0 ], [ λ1, φ1 ] ];
};
}();
d3.geo.centroid = function(object) {
d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
d3.geo.stream(object, d3_geo_centroid);
var m;
if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ε) {
return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ];
}
};
var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ;
var d3_geo_centroid = {
sphere: function() {
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
},
point: d3_geo_centroidPoint,
lineStart: d3_geo_centroidLineStart,
lineEnd: d3_geo_centroidLineEnd,
polygonStart: function() {
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
},
polygonEnd: function() {
d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
}
};
function d3_geo_centroidPoint(λ, φ) {
if (d3_geo_centroidDimension) return;
++d3_geo_centroidW;
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians);
d3_geo_centroidX += (cosφ * Math.cos(λ) - d3_geo_centroidX) / d3_geo_centroidW;
d3_geo_centroidY += (cosφ * Math.sin(λ) - d3_geo_centroidY) / d3_geo_centroidW;
d3_geo_centroidZ += (Math.sin(φ) - d3_geo_centroidZ) / d3_geo_centroidW;
}
function d3_geo_centroidRingStart() {
var λ00, φ00;
d3_geo_centroidDimension = 1;
d3_geo_centroidLineStart();
d3_geo_centroidDimension = 2;
var linePoint = d3_geo_centroid.point;
d3_geo_centroid.point = function(λ, φ) {
linePoint(λ00 = λ, φ00 = φ);
};
d3_geo_centroid.lineEnd = function() {
d3_geo_centroid.point(λ00, φ00);
d3_geo_centroidLineEnd();
d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
};
}
function d3_geo_centroidLineStart() {
var x0, y0, z0;
if (d3_geo_centroidDimension > 1) return;
if (d3_geo_centroidDimension < 1) {
d3_geo_centroidDimension = 1;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_centroid.point = function(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians);
x0 = cosφ * Math.cos(λ);
y0 = cosφ * Math.sin(λ);
z0 = Math.sin(φ);
d3_geo_centroid.point = nextPoint;
};
function nextPoint(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
d3_geo_centroidW += w;
d3_geo_centroidX += w * (x0 + (x0 = x));
d3_geo_centroidY += w * (y0 + (y0 = y));
d3_geo_centroidZ += w * (z0 + (z0 = z));
}
}
function d3_geo_centroidLineEnd() {
d3_geo_centroid.point = d3_geo_centroidPoint;
}
function d3_true() {
return true;
}
function d3_geo_clipPolygonRejoin(segments, compare, inside, interpolate, listener) {
var subject = [], clip = [];
segments.forEach(function(segment) {
if ((n = segment.length - 1) <= 0) return;
var n, p0 = segment[0], p1 = segment[n];
if (Math.abs(p1[0] - p0[0]) < ε && Math.abs(p1[1] - p0[1]) < ε) {
listener.lineStart();
for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
listener.lineEnd();
return;
}
var a = {
point: p0,
points: segment,
other: null,
visited: false,
entry: true,
subject: true
}, b = {
point: p0,
points: [ p0 ],
other: a,
visited: false,
entry: false,
subject: false
};
a.other = b;
subject.push(a);
clip.push(b);
a = {
point: p1,
points: [ p1 ],
other: null,
visited: false,
entry: false,
subject: true
};
b = {
point: p1,
points: [ p1 ],
other: a,
visited: false,
entry: true,
subject: false
};
a.other = b;
subject.push(a);
clip.push(b);
});
clip.sort(compare);
d3_geo_clipPolygonRejoinLinkCircular(subject);
d3_geo_clipPolygonRejoinLinkCircular(clip);
if (!subject.length) return;
if (inside) for (var i = 1, e = !inside(clip[0].point), n = clip.length; i < n; ++i) {
clip[i].entry = e = !e;
}
var start = subject[0], current, points, point;
while (1) {
current = start;
while (current.visited) if ((current = current.next) === start) return;
points = current.points;
listener.lineStart();
do {
current.visited = current.other.visited = true;
if (current.entry) {
if (current.subject) {
for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.point, current.next.point, 1, listener);
}
current = current.next;
} else {
if (current.subject) {
points = current.prev.points;
for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.point, current.prev.point, -1, listener);
}
current = current.prev;
}
current = current.other;
points = current.points;
} while (!current.visited);
listener.lineEnd();
}
}
function d3_geo_clipPolygonRejoinLinkCircular(array) {
if (!(n = array.length)) return;
var n, i = 0, a = array[0], b;
while (++i < n) {
a.next = b = array[i];
b.prev = a;
a = b;
}
a.next = b = array[0];
b.prev = a;
}
function d3_geo_clip(pointVisible, clipLine, interpolate, polygonContains, sort) {
return function(listener) {
var line = clipLine(listener);
var clip = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
clip.point = pointRing;
clip.lineStart = ringStart;
clip.lineEnd = ringEnd;
segments = [];
polygon = [];
listener.polygonStart();
},
polygonEnd: function() {
clip.point = point;
clip.lineStart = lineStart;
clip.lineEnd = lineEnd;
segments = d3.merge(segments);
if (segments.length) {
d3_geo_clipPolygonRejoin(segments, sort, null, interpolate, listener);
} else if (polygonContains(polygon)) {
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
}
listener.polygonEnd();
segments = polygon = null;
},
sphere: function() {
listener.polygonStart();
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
listener.polygonEnd();
}
};
function point(λ, φ) {
if (pointVisible(λ, φ)) listener.point(λ, φ);
}
function pointLine(λ, φ) {
line.point(λ, φ);
}
function lineStart() {
clip.point = pointLine;
line.lineStart();
}
function lineEnd() {
clip.point = point;
line.lineEnd();
}
var segments, buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygon, ring;
function pointRing(λ, φ, close) {
ringListener.point(λ, φ, close);
ring.push([ λ, φ ]);
}
function ringStart() {
ringListener.lineStart();
ring = [];
}
function ringEnd() {
pointRing(ring[0][0], ring[0][1], true);
ringListener.lineEnd();
var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
ring.pop();
polygon.push(ring);
ring = null;
if (!n) return;
if (clean & 1) {
segment = ringSegments[0];
segment.pop();
var n = segment.length, i = -1, point;
listener.lineStart();
while (++i < n) listener.point((point = segment[i])[0], point[1]);
listener.lineEnd();
return;
}
if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
}
return clip;
};
}
function d3_geo_clipSegmentLength1(segment) {
return segment.length > 1;
}
function d3_geo_clipBufferListener() {
var lines = [], line;
return {
lineStart: function() {
lines.push(line = []);
},
point: function(λ, φ, i, t) {
var point = [ λ, φ ];
if (arguments.length > 2) point.index = i, point.t = t;
line.push(point);
},
lineEnd: d3_noop,
buffer: function() {
var buffer = lines;
lines = [];
line = null;
return buffer;
},
rejoin: function() {
if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
}
};
}
d3.geo.pointInPolygon = d3_geo_pointInPolygon;
function d3_geo_pointInPolygon(point, polygon) {
var point0, meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, polar = false, southPole = false, winding = 0;
d3_geo_area.polygonStart();
for (var i = 0, n = polygon.length; i < n; ++i) {
var ring = polygon[i], m = ring.length;
if (!m) continue;
point0 = point = ring[0];
var λ0 = point[0], φ0 = point[1], j = 1;
d3_geo_area.lineStart();
d3_geo_area.point(λ0 * d3_degrees, φ0 * d3_degrees);
while (true) {
if (j === m) j = 0;
point = ring[j];
var λ = point[0], φ = point[1], angle = λ - λ0, antimeridian = Math.abs(angle) > π;
if (Math.abs(φ + π / 2) < ε) southPole = true;
polarAngle += antimeridian ? angle + (angle >= 0 ? 2 : -2) * π : angle;
if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
d3_geo_cartesianNormalize(arc);
var intersection = d3_geo_cartesianCross(meridianNormal, arc);
d3_geo_cartesianNormalize(intersection);
var φarc = (antimeridian ^ angle >= 0 ? -1 : 1) * d3_asin(intersection[2]);
if (parallel > φarc) {
winding += antimeridian ^ angle >= 0 ? 1 : -1;
}
}
if (j++) d3_geo_area.point((λ0 = λ) * d3_degrees, (φ0 = φ) * d3_degrees), point0 = point; else break;
}
d3_geo_area.lineEnd();
if (Math.abs(polarAngle) > ε) polar = true;
}
d3_geo_area.polygonEnd();
return (!southPole && !polar && d3_geo_areaRingSum < 0 || polarAngle < -ε) ^ winding & 1;
}
var d3_geo_clipAntimeridian = d3_geo_clip(d3_geo_clipAntimeridianVisible, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, d3_geo_clipAntimeridianPolygonContains, d3_geo_clipAntimeridianSort);
function d3_geo_clipAntimeridianLine(listener) {
var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
return {
lineStart: function() {
listener.lineStart();
clean = 1;
},
point: function(λ1, φ1) {
var sλ1 = λ1 > 0 ? π - ε : -π, dλ = Math.abs(λ1 - λ0);
if (Math.abs(dλ - π) < ε) {
listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2);
listener.point(sλ0, φ0);
listener.lineEnd();
listener.lineStart();
listener.point(sλ1, φ0);
listener.point(λ1, φ0);
clean = 0;
} else if (sλ0 !== sλ1 && dλ >= π) {
if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
listener.point(sλ0, φ0);
listener.lineEnd();
listener.lineStart();
listener.point(sλ1, φ0);
clean = 0;
}
listener.point(λ0 = λ1, φ0 = φ1);
sλ0 = sλ1;
},
lineEnd: function() {
listener.lineEnd();
λ0 = φ0 = NaN;
},
clean: function() {
return 2 - clean;
}
};
}
function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
return Math.abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
}
function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
var φ;
if (from == null) {
φ = direction * π / 2;
listener.point(-π, φ);
listener.point(0, φ);
listener.point(π - ε, φ);
listener.point(π - ε, 0);
listener.point(π - ε, -φ);
listener.point(0, -φ);
listener.point(-π, -φ);
listener.point(-π, 0);
listener.point(-π, φ);
} else if (Math.abs(from[0] - to[0]) > ε) {
var s0 = -π, s1 = π - ε, s = (from[0] < to[0] ? 1 : -1) * π;
if (to[0] < from[0]) s0 = π - ε, s1 = -π;
φ = direction * s / 2;
listener.point(s0, φ);
listener.point(0, φ);
listener.point(s1, φ);
} else {
listener.point(to[0], to[1]);
}
}
var d3_geo_clipAntimeridianPoint = [ -π, 0 ];
function d3_geo_clipAntimeridianPolygonContains(polygon) {
return d3_geo_pointInPolygon(d3_geo_clipAntimeridianPoint, polygon);
}
function d3_geo_clipAntimeridianSort(a, b) {
return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]);
}
function d3_geo_clipAntimeridianVisible(λ) {
return Math.abs(Math.abs(λ) - π) > ε;
}
function d3_geo_clipCircle(radius) {
var cr = Math.cos(radius), point = [ radius, 0 ], smallRadius = cr > 0, notHemisphere = Math.abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
return d3_geo_clip(visible, clipLine, interpolate, polygonContains, d3_geo_clipAntimeridianSort);
function visible(λ, φ) {
return Math.cos(λ) * Math.cos(φ) > cr;
}
function clipLine(listener) {
var point0, c0, v0, v00, clean;
return {
lineStart: function() {
v00 = v0 = false;
clean = 1;
},
point: function(λ, φ) {
var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
if (!point0 && (v00 = v0 = v)) listener.lineStart();
if (v !== v0) {
point2 = intersect(point0, point1);
if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
point1[0] += ε;
point1[1] += ε;
v = visible(point1[0], point1[1]);
}
}
if (v !== v0) {
clean = 0;
if (v) {
listener.lineStart();
point2 = intersect(point1, point0);
listener.point(point2[0], point2[1]);
} else {
point2 = intersect(point0, point1);
listener.point(point2[0], point2[1]);
listener.lineEnd();
}
point0 = point2;
} else if (notHemisphere && point0 && smallRadius ^ v) {
var t;
if (!(c & c0) && (t = intersect(point1, point0, true))) {
clean = 0;
if (smallRadius) {
listener.lineStart();
listener.point(t[0][0], t[0][1]);
listener.point(t[1][0], t[1][1]);
listener.lineEnd();
} else {
listener.point(t[1][0], t[1][1]);
listener.lineEnd();
listener.lineStart();
listener.point(t[0][0], t[0][1]);
}
}
}
if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
listener.point(point1[0], point1[1]);
}
point0 = point1, v0 = v, c0 = c;
},
lineEnd: function() {
if (v0) listener.lineEnd();
point0 = null;
},
clean: function() {
return clean | (v00 && v0) << 1;
}
};
}
function polygonContains(polygon) {
return d3_geo_pointInPolygon(point, polygon);
}
function intersect(a, b, two) {
var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);
var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
if (!determinant) return !two && a;
var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
d3_geo_cartesianAdd(A, B);
var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
if (t2 < 0) return;
var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);
d3_geo_cartesianAdd(q, A);
q = d3_geo_spherical(q);
if (!two) return q;
var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;
if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
var δλ = λ1 - λ0, polar = Math.abs(δλ - π) < ε, meridian = polar || δλ < ε;
if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (Math.abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
d3_geo_cartesianAdd(q1, A);
return [ q, d3_geo_spherical(q1) ];
}
}
function code(λ, φ) {
var r = smallRadius ? radius : π - radius, code = 0;
if (λ < -r) code |= 1; else if (λ > r) code |= 2;
if (φ < -r) code |= 4; else if (φ > r) code |= 8;
return code;
}
}
d3.geo.distance = function(a, b) {
var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;
return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);
};
function d3_geo_intersectSegment(from, to) {
this.from = from, this.to = to;
this.normal = d3_geo_cartesianCross(from, to);
this.fromNormal = d3_geo_cartesianCross(this.normal, from);
this.toNormal = d3_geo_cartesianCross(this.normal, to);
}
function d3_geo_intersect(a, b) {
var axb = d3_geo_cartesianCross(a.normal, b.normal);
d3_geo_cartesianNormalize(axb);
var a0 = d3_geo_cartesianDot(axb, a.fromNormal), a1 = d3_geo_cartesianDot(axb, a.toNormal), b0 = d3_geo_cartesianDot(axb, b.fromNormal), b1 = d3_geo_cartesianDot(axb, b.toNormal);
if (a0 > -ε2 && a1 < ε2 && b0 > -ε2 && b1 < ε2) return axb;
if (a0 < ε2 && a1 > -ε2 && b0 < ε2 && b1 > -ε2) {
axb[0] = -axb[0], axb[1] = -axb[1], axb[2] = -axb[2];
return axb;
}
}
function d3_geo_intersectPointOnLine(p, a) {
var a0 = d3_geo_cartesianDot(p, a.fromNormal), a1 = d3_geo_cartesianDot(p, a.toNormal);
p = d3_geo_cartesianDot(p, a.normal);
return Math.abs(p) < ε2 && (a0 > -ε2 && a1 < ε2 || a0 < ε2 && a1 > -ε2);
}
var d3_geo_intersectCoincident = {};
function d3_geo_clipPolygon(polygon) {
var segments = [];
polygon = polygon.map(function(ring) {
var cartesian0;
ring = ring.map(function(point, i) {
var cartesian = d3_geo_cartesian(point = [ point[0] * d3_radians, point[1] * d3_radians ]);
if (i) segments.push(new d3_geo_intersectSegment(cartesian0, cartesian));
cartesian0 = cartesian;
return point;
});
ring.pop();
return ring;
});
var point = polygon[0][0];
return d3_geo_clip(visible, clipLine, interpolate, polygonContains, d3_geo_clipPolygonSort);
function visible(λ, φ) {
return d3_geo_pointInPolygon([ λ, φ ], polygon);
}
function clipLine(listener) {
var point0, λ00, φ00, v00, v0, clean;
return {
lineStart: function() {
point0 = null;
clean = 1;
},
point: function(λ, φ, close) {
if (close) λ = λ00, φ = φ00;
var point = d3_geo_cartesian([ λ, φ ]), v = v0;
if (point0) {
var segment = new d3_geo_intersectSegment(point0, point), intersections = [];
for (var i = 0, j = 100; i < segments.length && j > 0; ++i) {
var s = segments[i], intersection = d3_geo_intersect(segment, s);
if (intersection) {
if (intersection === d3_geo_intersectCoincident || d3_geo_cartesianEqual(intersection, point0) || d3_geo_cartesianEqual(intersection, point) || d3_geo_cartesianEqual(intersection, s.from) || d3_geo_cartesianEqual(intersection, s.to)) {
var t = 1e-4;
λ = (λ + 3 * π + (Math.random() < .5 ? t : -t)) % (2 * π) - π;
φ = Math.min(π / 2 - 1e-4, Math.max(1e-4 - π / 2, φ + (Math.random() < .5 ? t : -t)));
segment = new d3_geo_intersectSegment(point0, point = d3_geo_cartesian([ λ, φ ]));
i = -1, --j;
intersections.length = 0;
continue;
}
var spherical = d3_geo_spherical(intersection);
intersection.distance = d3_geo_clipPolygonDistance(point0, intersection);
intersection.index = i;
intersection.t = d3_geo_clipPolygonDistance(s.from, intersection);
intersection[0] = spherical[0], intersection[1] = spherical[1], intersection.pop();
intersections.push(intersection);
}
}
if (intersections.length) {
clean = 0;
intersections.sort(function(a, b) {
return a.distance - b.distance;
});
for (var i = 0; i < intersections.length; ++i) {
var intersection = intersections[i];
if (v = !v) {
listener.lineStart();
listener.point(intersection[0], intersection[1], intersection.index, intersection.t);
} else {
listener.point(intersection[0], intersection[1], intersection.index, intersection.t);
listener.lineEnd();
}
}
}
if (v) listener.point(λ, φ);
} else {
for (var i = 0, j = 100; i < segments.length && j > 0; ++i) {
var s = segments[i];
if (d3_geo_intersectPointOnLine(point, s)) {
var t = 1e-4;
λ = (λ + 3 * π + (Math.random() < .5 ? t : -t)) % (2 * π) - π;
φ = Math.min(π / 2 - 1e-4, Math.max(1e-4 - π / 2, φ + (Math.random() < .5 ? t : -t)));
point = d3_geo_cartesian([ λ, φ ]);
i = -1, --j;
}
}
if (v00 = v = visible(λ00 = λ, φ00 = φ)) listener.lineStart(), listener.point(λ, φ);
}
point0 = point, v0 = v;
},
lineEnd: function() {
if (v0) listener.lineEnd();
},
clean: function() {
return clean | (v00 && v0) << 1;
}
};
}
function interpolate(from, to, direction, listener) {
if (from == null) {
var n = polygon.length;
polygon.forEach(function(ring, i) {
ring.forEach(function(point) {
listener.point(point[0], point[1]);
});
if (i < n - 1) listener.lineEnd(), listener.lineStart();
});
} else if (from.index !== to.index && from.index != null && to.index != null) {
for (var i = from.index; i !== to.index; i = (i + direction + segments.length) % segments.length) {
var segment = segments[i], point = d3_geo_spherical(direction > 0 ? segment.to : segment.from);
listener.point(point[0], point[1]);
}
}
}
function polygonContains(polygon) {
return d3_geo_pointInPolygon(point, polygon);
}
}
function d3_geo_clipPolygonSort(a, b) {
a = a.point, b = b.point;
return a.index - b.index || a.t - b.t;
}
function d3_geo_clipPolygonDistance(a, b) {
var axb = d3_geo_cartesianCross(a, b);
return Math.atan2(Math.sqrt(d3_geo_cartesianDot(axb, axb)), d3_geo_cartesianDot(a, b));
}
var d3_geo_clipViewMAX = 1e9;
function d3_geo_clipView(x0, y0, x1, y1) {
return function(listener) {
var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), segments, polygon, ring;
var clip = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
listener = bufferListener;
segments = [];
polygon = [];
},
polygonEnd: function() {
listener = listener_;
if ((segments = d3.merge(segments)).length) {
listener.polygonStart();
d3_geo_clipPolygonRejoin(segments, compare, inside, interpolate, listener);
listener.polygonEnd();
} else if (insidePolygon([ x0, y0 ])) {
listener.polygonStart(), listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd(), listener.polygonEnd();
}
segments = polygon = ring = null;
}
};
function inside(point) {
var a = corner(point, -1), i = insidePolygon([ a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0 ]);
return i;
}
function insidePolygon(p) {
var wn = 0, n = polygon.length, y = p[1];
for (var i = 0; i < n; ++i) {
for (var j = 1, v = polygon[i], m = v.length, a = v[0]; j < m; ++j) {
b = v[j];
if (a[1] <= y) {
if (b[1] > y && isLeft(a, b, p) > 0) ++wn;
} else {
if (b[1] <= y && isLeft(a, b, p) < 0) --wn;
}
a = b;
}
}
return wn !== 0;
}
function isLeft(a, b, c) {
return (b[0] - a[0]) * (c[1] - a[1]) - (c[0] - a[0]) * (b[1] - a[1]);
}
function interpolate(from, to, direction, listener) {
var a = 0, a1 = 0;
if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {
do {
listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
} while ((a = (a + direction + 4) % 4) !== a1);
} else {
listener.point(to[0], to[1]);
}
}
function visible(x, y) {
return x0 <= x && x <= x1 && y0 <= y && y <= y1;
}
function point(x, y) {
if (visible(x, y)) listener.point(x, y);
}
var x__, y__, v__, x_, y_, v_, first;
function lineStart() {
clip.point = linePoint;
if (polygon) polygon.push(ring = []);
first = true;
v_ = false;
x_ = y_ = NaN;
}
function lineEnd() {
if (segments) {
linePoint(x__, y__);
if (v__ && v_) bufferListener.rejoin();
segments.push(bufferListener.buffer());
}
clip.point = point;
if (v_) listener.lineEnd();
}
function linePoint(x, y) {
x = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, x));
y = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, y));
var v = visible(x, y);
if (polygon) ring.push([ x, y ]);
if (first) {
x__ = x, y__ = y, v__ = v;
first = false;
if (v) {
listener.lineStart();
listener.point(x, y);
}
} else {
if (v && v_) listener.point(x, y); else {
var a = [ x_, y_ ], b = [ x, y ];
if (clipLine(a, b)) {
if (!v_) {
listener.lineStart();
listener.point(a[0], a[1]);
}
listener.point(b[0], b[1]);
if (!v) listener.lineEnd();
} else if (v) {
listener.lineStart();
listener.point(x, y);
}
}
}
x_ = x, y_ = y, v_ = v;
}
return clip;
};
function corner(p, direction) {
return Math.abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : Math.abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : Math.abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;
}
function compare(a, b) {
return comparePoints(a.point, b.point);
}
function comparePoints(a, b) {
var ca = corner(a, 1), cb = corner(b, 1);
return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
}
function clipLine(a, b) {
var dx = b[0] - a[0], dy = b[1] - a[1], t = [ 0, 1 ];
if (Math.abs(dx) < ε && Math.abs(dy) < ε) return x0 <= a[0] && a[0] <= x1 && y0 <= a[1] && a[1] <= y1;
if (d3_geo_clipViewT(x0 - a[0], dx, t) && d3_geo_clipViewT(a[0] - x1, -dx, t) && d3_geo_clipViewT(y0 - a[1], dy, t) && d3_geo_clipViewT(a[1] - y1, -dy, t)) {
if (t[1] < 1) {
b[0] = a[0] + t[1] * dx;
b[1] = a[1] + t[1] * dy;
}
if (t[0] > 0) {
a[0] += t[0] * dx;
a[1] += t[0] * dy;
}
return true;
}
return false;
}
}
function d3_geo_clipViewT(num, denominator, t) {
if (Math.abs(denominator) < ε) return num <= 0;
var u = num / denominator;
if (denominator > 0) {
if (u > t[1]) return false;
if (u > t[0]) t[0] = u;
} else {
if (u < t[0]) return false;
if (u < t[1]) t[1] = u;
}
return true;
}
function d3_geo_compose(a, b) {
function compose(x, y) {
return x = a(x, y), b(x[0], x[1]);
}
if (a.invert && b.invert) compose.invert = function(x, y) {
return x = b.invert(x, y), x && a.invert(x[0], x[1]);
};
return compose;
}
function d3_geo_resample(project) {
var δ2 = .5, maxDepth = 16;
function resample(stream) {
var λ0, x0, y0, a0, b0, c0;
var resample = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
stream.polygonStart();
resample.lineStart = polygonLineStart;
},
polygonEnd: function() {
stream.polygonEnd();
resample.lineStart = lineStart;
}
};
function point(x, y) {
x = project(x, y);
stream.point(x[0], x[1]);
}
function lineStart() {
x0 = NaN;
resample.point = linePoint;
stream.lineStart();
}
function linePoint(λ, φ) {
var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ), buffer = [];
resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, buffer);
streamLine(buffer, stream);
stream.point(x0, y0);
}
function lineEnd() {
resample.point = point;
stream.lineEnd();
}
function polygonLineStart() {
var λ00, φ00, x00, y00, a00, b00, c00;
lineStart();
resample.point = function(λ, φ) {
linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
resample.point = linePoint;
};
resample.lineEnd = function() {
var buffer = [];
resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, buffer);
streamLine(buffer, stream);
resample.lineEnd = lineEnd;
lineEnd();
};
}
function streamLine(line, stream) {
for (var i = 0, n = line.length, point; i < n; ++i) {
stream.point((point = line[i])[0], point[1]);
}
}
return resample;
}
function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, buffer) {
var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
if (d2 > 4 * δ2 && depth--) {
var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2, tooFar = false;
if (dz * dz / d2 > δ2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || (tooFar = dx2 * dx2 + dy2 * dy2 > 256 * δ2)) {
var s0 = resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, buffer);
buffer.push(p);
var s1 = resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, buffer);
return !tooFar || s0 || s1 || (buffer.pop(), false);
}
}
}
resample.precision = function(_) {
if (!arguments.length) return Math.sqrt(δ2);
maxDepth = (δ2 = _ * _) > 0 && 16;
return resample;
};
return resample;
}
d3.geo.projection = d3_geo_projection;
d3.geo.projectionMutator = d3_geo_projectionMutator;
function d3_geo_projection(project) {
return d3_geo_projectionMutator(function() {
return project;
})();
}
function d3_geo_projectionMutator(projectAt) {
var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
x = project(x, y);
return [ x[0] * k + δx, δy - x[1] * k ];
}), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipPolygon = null, clipExtent = null;
function projection(point) {
point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
return [ point[0] * k + δx, δy - point[1] * k ];
}
function invert(point) {
point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
}
projection.stream = function(stream) {
return d3_geo_projectionRadiansRotate(rotate, preclip(projectResample(postclip(stream))));
};
projection.clipAngle = function(_) {
if (!arguments.length) return clipAngle;
preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
return projection;
};
projection.clipExtent = function(_) {
if (!arguments.length) return clipExtent;
clipExtent = _;
postclip = _ == null ? d3_identity : d3_geo_clipView(_[0][0], _[0][1], _[1][0], _[1][1]);
return projection;
};
projection.scale = function(_) {
if (!arguments.length) return k;
k = +_;
return reset();
};
projection.translate = function(_) {
if (!arguments.length) return [ x, y ];
x = +_[0];
y = +_[1];
return reset();
};
projection.center = function(_) {
if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
λ = _[0] % 360 * d3_radians;
φ = _[1] % 360 * d3_radians;
return reset();
};
projection.rotate = function(_) {
if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
δλ = _[0] % 360 * d3_radians;
δφ = _[1] % 360 * d3_radians;
δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
return reset();
};
projection.clipPolygon = function(_) {
if (!arguments.length) return clipPolygon;
clipAngle = null;
clipPolygon = _;
preclip = _ == null ? d3_geo_clipAntimeridian : d3_geo_clipPolygon(_);
return reset();
};
d3.rebind(projection, projectResample, "precision");
function reset() {
projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
var center = project(λ, φ);
δx = x - center[0] * k;
δy = y + center[1] * k;
return projection;
}
return function() {
project = projectAt.apply(this, arguments);
projection.invert = project.invert && invert;
return reset();
};
}
function d3_geo_projectionRadiansRotate(rotate, stream) {
return {
point: function(x, y) {
y = rotate(x * d3_radians, y * d3_radians), x = y[0];
stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]);
},
sphere: function() {
stream.sphere();
},
lineStart: function() {
stream.lineStart();
},
lineEnd: function() {
stream.lineEnd();
},
polygonStart: function() {
stream.polygonStart();
},
polygonEnd: function() {
stream.polygonEnd();
}
};
}
function d3_geo_equirectangular(λ, φ) {
return [ λ, φ ];
}
(d3.geo.equirectangular = function() {
return d3_geo_projection(d3_geo_equirectangular);
}).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
d3.geo.rotation = function(rotate) {
rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
function forward(coordinates) {
coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
}
forward.invert = function(coordinates) {
coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
};
return forward;
};
function d3_geo_rotation(δλ, δφ, δγ) {
return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_equirectangular;
}
function d3_geo_forwardRotationλ(δλ) {
return function(λ, φ) {
return λ += δλ, [ λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ ];
};
}
function d3_geo_rotationλ(δλ) {
var rotation = d3_geo_forwardRotationλ(δλ);
rotation.invert = d3_geo_forwardRotationλ(-δλ);
return rotation;
}
function d3_geo_rotationφγ(δφ, δγ) {
var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
function rotation(λ, φ) {
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδγ + y * sinδγ))) ];
}
rotation.invert = function(λ, φ) {
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδφ - x * sinδφ))) ];
};
return rotation;
}
d3.geo.circle = function() {
var origin = [ 0, 0 ], angle, precision = 6, interpolate;
function circle() {
var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
interpolate(null, null, 1, {
point: function(x, y) {
ring.push(x = rotate(x, y));
x[0] *= d3_degrees, x[1] *= d3_degrees;
}
});
return {
type: "Polygon",
coordinates: [ ring ]
};
}
circle.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return circle;
};
circle.angle = function(x) {
if (!arguments.length) return angle;
interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
return circle;
};
circle.precision = function(_) {
if (!arguments.length) return precision;
interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
return circle;
};
return circle.angle(90);
};
function d3_geo_circleInterpolate(radius, precision) {
var cr = Math.cos(radius), sr = Math.sin(radius);
return function(from, to, direction, listener) {
if (from != null) {
from = d3_geo_circleAngle(cr, from);
to = d3_geo_circleAngle(cr, to);
if (direction > 0 ? from < to : from > to) from += direction * 2 * π;
} else {
from = radius + direction * 2 * π;
to = radius;
}
var point;
for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) {
listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
}
};
}
function d3_geo_circleAngle(cr, point) {
var a = d3_geo_cartesian(point);
a[0] -= cr;
d3_geo_cartesianNormalize(a);
var angle = d3_acos(-a[1]);
return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
}
d3.geo.graticule = function() {
var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;
function graticule() {
return {
type: "MultiLineString",
coordinates: lines()
};
}
function lines() {
return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {
return Math.abs(x % DX) > ε;
}).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {
return Math.abs(y % DY) > ε;
}).map(y));
}
graticule.lines = function() {
return lines().map(function(coordinates) {
return {
type: "LineString",
coordinates: coordinates
};
});
};
graticule.outline = function() {
return {
type: "Polygon",
coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]
};
};
graticule.extent = function(_) {
if (!arguments.length) return graticule.minorExtent();
return graticule.majorExtent(_).minorExtent(_);
};
graticule.majorExtent = function(_) {
if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];
X0 = +_[0][0], X1 = +_[1][0];
Y0 = +_[0][1], Y1 = +_[1][1];
if (X0 > X1) _ = X0, X0 = X1, X1 = _;
if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
return graticule.precision(precision);
};
graticule.minorExtent = function(_) {
if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
x0 = +_[0][0], x1 = +_[1][0];
y0 = +_[0][1], y1 = +_[1][1];
if (x0 > x1) _ = x0, x0 = x1, x1 = _;
if (y0 > y1) _ = y0, y0 = y1, y1 = _;
return graticule.precision(precision);
};
graticule.step = function(_) {
if (!arguments.length) return graticule.minorStep();
return graticule.majorStep(_).minorStep(_);
};
graticule.majorStep = function(_) {
if (!arguments.length) return [ DX, DY ];
DX = +_[0], DY = +_[1];
return graticule;
};
graticule.minorStep = function(_) {
if (!arguments.length) return [ dx, dy ];
dx = +_[0], dy = +_[1];
return graticule;
};
graticule.precision = function(_) {
if (!arguments.length) return precision;
precision = +_;
x = d3_geo_graticuleX(y0, y1, 90);
y = d3_geo_graticuleY(x0, x1, precision);
X = d3_geo_graticuleX(Y0, Y1, 90);
Y = d3_geo_graticuleY(X0, X1, precision);
return graticule;
};
return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);
};
function d3_geo_graticuleX(y0, y1, dy) {
var y = d3.range(y0, y1 - ε, dy).concat(y1);
return function(x) {
return y.map(function(y) {
return [ x, y ];
});
};
}
function d3_geo_graticuleY(x0, x1, dx) {
var x = d3.range(x0, x1 - ε, dx).concat(x1);
return function(y) {
return x.map(function(x) {
return [ x, y ];
});
};
}
function d3_source(d) {
return d.source;
}
function d3_target(d) {
return d.target;
}
d3.geo.greatArc = function() {
var source = d3_source, source_, target = d3_target, target_;
function greatArc() {
return {
type: "LineString",
coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]
};
}
greatArc.distance = function() {
return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));
};
greatArc.source = function(_) {
if (!arguments.length) return source;
source = _, source_ = typeof _ === "function" ? null : _;
return greatArc;
};
greatArc.target = function(_) {
if (!arguments.length) return target;
target = _, target_ = typeof _ === "function" ? null : _;
return greatArc;
};
greatArc.precision = function() {
return arguments.length ? greatArc : 0;
};
return greatArc;
};
d3.geo.interpolate = function(source, target) {
return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
};
function d3_geo_interpolate(x0, y0, x1, y1) {
var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);
var interpolate = d ? function(t) {
var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
} : function() {
return [ x0 * d3_degrees, y0 * d3_degrees ];
};
interpolate.distance = d;
return interpolate;
}
d3.geo.length = function(object) {
d3_geo_lengthSum = 0;
d3.geo.stream(object, d3_geo_length);
return d3_geo_lengthSum;
};
var d3_geo_lengthSum;
var d3_geo_length = {
sphere: d3_noop,
point: d3_noop,
lineStart: d3_geo_lengthLineStart,
lineEnd: d3_noop,
polygonStart: d3_noop,
polygonEnd: d3_noop
};
function d3_geo_lengthLineStart() {
var λ0, sinφ0, cosφ0;
d3_geo_length.point = function(λ, φ) {
λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);
d3_geo_length.point = nextPoint;
};
d3_geo_length.lineEnd = function() {
d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;
};
function nextPoint(λ, φ) {
var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = Math.abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);
d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);
λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;
}
}
function d3_geo_conic(projectAt) {
var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
p.parallels = function(_) {
if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];
return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
};
return p;
}
function d3_geo_conicEqualArea(φ0, φ1) {
var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
function forward(λ, φ) {
var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
}
forward.invert = function(x, y) {
var ρ0_y = ρ0 - y;
return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
};
return forward;
}
(d3.geo.conicEqualArea = function() {
return d3_geo_conic(d3_geo_conicEqualArea);
}).raw = d3_geo_conicEqualArea;
d3.geo.albers = function() {
return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);
};
d3.geo.albersUsa = function() {
var lower48 = d3.geo.albers();
var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);
var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);
var point, pointStream = {
point: function(x, y) {
point = [ x, y ];
}
}, lower48Point, alaskaPoint, hawaiiPoint;
function albersUsa(coordinates) {
var x = coordinates[0], y = coordinates[1];
point = null;
(lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);
return point;
}
albersUsa.invert = function(coordinates) {
var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;
return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);
};
albersUsa.stream = function(stream) {
var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);
return {
point: function(x, y) {
lower48Stream.point(x, y);
alaskaStream.point(x, y);
hawaiiStream.point(x, y);
},
sphere: function() {
lower48Stream.sphere();
alaskaStream.sphere();
hawaiiStream.sphere();
},
lineStart: function() {
lower48Stream.lineStart();
alaskaStream.lineStart();
hawaiiStream.lineStart();
},
lineEnd: function() {
lower48Stream.lineEnd();
alaskaStream.lineEnd();
hawaiiStream.lineEnd();
},
polygonStart: function() {
lower48Stream.polygonStart();
alaskaStream.polygonStart();
hawaiiStream.polygonStart();
},
polygonEnd: function() {
lower48Stream.polygonEnd();
alaskaStream.polygonEnd();
hawaiiStream.polygonEnd();
}
};
};
albersUsa.precision = function(_) {
if (!arguments.length) return lower48.precision();
lower48.precision(_);
alaska.precision(_);
hawaii.precision(_);
return albersUsa;
};
albersUsa.scale = function(_) {
if (!arguments.length) return lower48.scale();
lower48.scale(_);
alaska.scale(_ * .35);
hawaii.scale(_);
return albersUsa.translate(lower48.translate());
};
albersUsa.translate = function(_) {
if (!arguments.length) return lower48.translate();
var k = lower48.scale(), x = +_[0], y = +_[1];
lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;
alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
return albersUsa;
};
return albersUsa.scale(1070);
};
var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_pathAreaPolygon = 0;
d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
},
polygonEnd: function() {
d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
}
};
function d3_geo_pathAreaRingStart() {
var x00, y00, x0, y0;
d3_geo_pathArea.point = function(x, y) {
d3_geo_pathArea.point = nextPoint;
x00 = x0 = x, y00 = y0 = y;
};
function nextPoint(x, y) {
d3_geo_pathAreaPolygon += y0 * x - x0 * y;
x0 = x, y0 = y;
}
d3_geo_pathArea.lineEnd = function() {
nextPoint(x00, y00);
};
}
var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;
var d3_geo_pathBounds = {
point: d3_geo_pathBoundsPoint,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: d3_noop,
polygonEnd: d3_noop
};
function d3_geo_pathBoundsPoint(x, y) {
if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;
if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;
if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;
if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;
}
function d3_geo_pathBuffer() {
var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointCircle = d3_geo_pathBufferCircle(_);
return stream;
},
result: function() {
if (buffer.length) {
var result = buffer.join("");
buffer = [];
return result;
}
}
};
function point(x, y) {
buffer.push("M", x, ",", y, pointCircle);
}
function pointLineStart(x, y) {
buffer.push("M", x, ",", y);
stream.point = pointLine;
}
function pointLine(x, y) {
buffer.push("L", x, ",", y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
buffer.push("Z");
}
return stream;
}
function d3_geo_pathBufferCircle(radius) {
return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z";
}
var d3_geo_pathCentroid = {
point: d3_geo_pathCentroidPoint,
lineStart: d3_geo_pathCentroidLineStart,
lineEnd: d3_geo_pathCentroidLineEnd,
polygonStart: function() {
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
},
polygonEnd: function() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
}
};
function d3_geo_pathCentroidPoint(x, y) {
if (d3_geo_centroidDimension) return;
d3_geo_centroidX += x;
d3_geo_centroidY += y;
++d3_geo_centroidZ;
}
function d3_geo_pathCentroidLineStart() {
var x0, y0;
if (d3_geo_centroidDimension !== 1) {
if (d3_geo_centroidDimension < 1) {
d3_geo_centroidDimension = 1;
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
} else return;
}
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
x0 = x, y0 = y;
};
function nextPoint(x, y) {
var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
d3_geo_centroidX += z * (x0 + x) / 2;
d3_geo_centroidY += z * (y0 + y) / 2;
d3_geo_centroidZ += z;
x0 = x, y0 = y;
}
}
function d3_geo_pathCentroidLineEnd() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
}
function d3_geo_pathCentroidRingStart() {
var x00, y00, x0, y0;
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
x00 = x0 = x, y00 = y0 = y;
};
function nextPoint(x, y) {
var z = y0 * x - x0 * y;
d3_geo_centroidX += z * (x0 + x);
d3_geo_centroidY += z * (y0 + y);
d3_geo_centroidZ += z * 3;
x0 = x, y0 = y;
}
d3_geo_pathCentroid.lineEnd = function() {
nextPoint(x00, y00);
};
}
function d3_geo_pathContext(context) {
var pointRadius = 4.5;
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointRadius = _;
return stream;
},
result: d3_noop
};
function point(x, y) {
context.moveTo(x, y);
context.arc(x, y, pointRadius, 0, 2 * π);
}
function pointLineStart(x, y) {
context.moveTo(x, y);
stream.point = pointLine;
}
function pointLine(x, y) {
context.lineTo(x, y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
context.closePath();
}
return stream;
}
d3.geo.path = function() {
var pointRadius = 4.5, projection, context, projectStream, contextStream;
function path(object) {
if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius)));
return contextStream.result();
}
path.area = function(object) {
d3_geo_pathAreaSum = 0;
d3.geo.stream(object, projectStream(d3_geo_pathArea));
return d3_geo_pathAreaSum;
};
path.centroid = function(object) {
d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined;
};
path.bounds = function(object) {
d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);
d3.geo.stream(object, projectStream(d3_geo_pathBounds));
return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];
};
path.projection = function(_) {
if (!arguments.length) return projection;
projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
return path;
};
path.context = function(_) {
if (!arguments.length) return context;
contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
return path;
};
path.pointRadius = function(_) {
if (!arguments.length) return pointRadius;
pointRadius = typeof _ === "function" ? _ : +_;
return path;
};
return path.projection(d3.geo.albersUsa()).context(null);
};
function d3_geo_pathProjectStream(project) {
var resample = d3_geo_resample(function(λ, φ) {
return project([ λ * d3_degrees, φ * d3_degrees ]);
});
return function(stream) {
stream = resample(stream);
return {
point: function(λ, φ) {
stream.point(λ * d3_radians, φ * d3_radians);
},
sphere: function() {
stream.sphere();
},
lineStart: function() {
stream.lineStart();
},
lineEnd: function() {
stream.lineEnd();
},
polygonStart: function() {
stream.polygonStart();
},
polygonEnd: function() {
stream.polygonEnd();
}
};
};
}
function d3_geo_azimuthal(scale, angle) {
function azimuthal(λ, φ) {
var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
}
azimuthal.invert = function(x, y) {
var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
};
return azimuthal;
}
var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
return Math.sqrt(2 / (1 + cosλcosφ));
}, function(ρ) {
return 2 * Math.asin(ρ / 2);
});
(d3.geo.azimuthalEqualArea = function() {
return d3_geo_projection(d3_geo_azimuthalEqualArea);
}).raw = d3_geo_azimuthalEqualArea;
var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
var c = Math.acos(cosλcosφ);
return c && c / Math.sin(c);
}, d3_identity);
(d3.geo.azimuthalEquidistant = function() {
return d3_geo_projection(d3_geo_azimuthalEquidistant);
}).raw = d3_geo_azimuthalEquidistant;
function d3_geo_conicConformal(φ0, φ1) {
var cosφ0 = Math.cos(φ0), t = function(φ) {
return Math.tan(π / 4 + φ / 2);
}, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
if (!n) return d3_geo_mercator;
function forward(λ, φ) {
var ρ = Math.abs(Math.abs(φ) - π / 2) < ε ? 0 : F / Math.pow(t(φ), n);
return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
}
forward.invert = function(x, y) {
var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);
return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - π / 2 ];
};
return forward;
}
(d3.geo.conicConformal = function() {
return d3_geo_conic(d3_geo_conicConformal);
}).raw = d3_geo_conicConformal;
function d3_geo_conicEquidistant(φ0, φ1) {
var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;
if (Math.abs(n) < ε) return d3_geo_equirectangular;
function forward(λ, φ) {
var ρ = G - φ;
return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];
}
forward.invert = function(x, y) {
var ρ0_y = G - y;
return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];
};
return forward;
}
(d3.geo.conicEquidistant = function() {
return d3_geo_conic(d3_geo_conicEquidistant);
}).raw = d3_geo_conicEquidistant;
var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
return 1 / cosλcosφ;
}, Math.atan);
(d3.geo.gnomonic = function() {
return d3_geo_projection(d3_geo_gnomonic);
}).raw = d3_geo_gnomonic;
function d3_geo_mercator(λ, φ) {
return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];
}
d3_geo_mercator.invert = function(x, y) {
return [ x, 2 * Math.atan(Math.exp(y)) - π / 2 ];
};
function d3_geo_mercatorProjection(project) {
var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;
m.scale = function() {
var v = scale.apply(m, arguments);
return v === m ? clipAuto ? m.clipExtent(null) : m : v;
};
m.translate = function() {
var v = translate.apply(m, arguments);
return v === m ? clipAuto ? m.clipExtent(null) : m : v;
};
m.clipExtent = function(_) {
var v = clipExtent.apply(m, arguments);
if (v === m) {
if (clipAuto = _ == null) {
var k = π * scale(), t = translate();
clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);
}
} else if (clipAuto) {
v = null;
}
return v;
};
return m.clipExtent(null);
}
(d3.geo.mercator = function() {
return d3_geo_mercatorProjection(d3_geo_mercator);
}).raw = d3_geo_mercator;
var d3_geo_orthographic = d3_geo_azimuthal(function() {
return 1;
}, Math.asin);
(d3.geo.orthographic = function() {
return d3_geo_projection(d3_geo_orthographic);
}).raw = d3_geo_orthographic;
var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
return 1 / (1 + cosλcosφ);
}, function(ρ) {
return 2 * Math.atan(ρ);
});
(d3.geo.stereographic = function() {
return d3_geo_projection(d3_geo_stereographic);
}).raw = d3_geo_stereographic;
function d3_geo_transverseMercator(λ, φ) {
var B = Math.cos(φ) * Math.sin(λ);
return [ Math.log((1 + B) / (1 - B)) / 2, Math.atan2(Math.tan(φ), Math.cos(λ)) ];
}
d3_geo_transverseMercator.invert = function(x, y) {
return [ Math.atan2(d3_sinh(x), Math.cos(y)), d3_asin(Math.sin(y) / d3_cosh(x)) ];
};
(d3.geo.transverseMercator = function() {
return d3_geo_mercatorProjection(d3_geo_transverseMercator);
}).raw = d3_geo_transverseMercator;
d3.geom = {};
d3.svg = {};
function d3_svg_line(projection) {
var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
function line(data) {
var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
function segment() {
segments.push("M", interpolate(projection(points), tension));
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
} else if (points.length) {
segment();
points = [];
}
}
if (points.length) segment();
return segments.length ? segments.join("") : null;
}
line.x = function(_) {
if (!arguments.length) return x;
x = _;
return line;
};
line.y = function(_) {
if (!arguments.length) return y;
y = _;
return line;
};
line.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return line;
};
line.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
return line;
};
line.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return line;
};
return line;
}
d3.svg.line = function() {
return d3_svg_line(d3_identity);
};
function d3_svg_lineX(d) {
return d[0];
}
function d3_svg_lineY(d) {
return d[1];
}
var d3_svg_lineInterpolators = d3.map({
linear: d3_svg_lineLinear,
"linear-closed": d3_svg_lineLinearClosed,
"step-before": d3_svg_lineStepBefore,
"step-after": d3_svg_lineStepAfter,
basis: d3_svg_lineBasis,
"basis-open": d3_svg_lineBasisOpen,
"basis-closed": d3_svg_lineBasisClosed,
bundle: d3_svg_lineBundle,
cardinal: d3_svg_lineCardinal,
"cardinal-open": d3_svg_lineCardinalOpen,
"cardinal-closed": d3_svg_lineCardinalClosed,
monotone: d3_svg_lineMonotone
});
d3_svg_lineInterpolators.forEach(function(key, value) {
value.key = key;
value.closed = /-closed$/.test(key);
});
function d3_svg_lineLinear(points) {
return points.join("L");
}
function d3_svg_lineLinearClosed(points) {
return d3_svg_lineLinear(points) + "Z";
}
function d3_svg_lineStepBefore(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
return path.join("");
}
function d3_svg_lineStepAfter(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
return path.join("");
}
function d3_svg_lineCardinalOpen(points, tension) {
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineCardinalClosed(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
}
function d3_svg_lineCardinal(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineHermite(points, tangents) {
if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
return d3_svg_lineLinear(points);
}
var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
if (quad) {
path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
p0 = points[1];
pi = 2;
}
if (tangents.length > 1) {
t = tangents[1];
p = points[pi];
pi++;
path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
for (var i = 2; i < tangents.length; i++, pi++) {
p = points[pi];
t = tangents[i];
path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
}
}
if (quad) {
var lp = points[pi];
path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
}
return path;
}
function d3_svg_lineCardinalTangents(points, tension) {
var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
while (++i < n) {
p0 = p1;
p1 = p2;
p2 = points[i];
tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
}
return tangents;
}
function d3_svg_lineBasis(points) {
if (points.length < 3) return d3_svg_lineLinear(points);
var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
d3_svg_lineBasisBezier(path, px, py);
while (++i < n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
i = -1;
while (++i < 2) {
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBasisOpen(points) {
if (points.length < 4) return d3_svg_lineLinear(points);
var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
while (++i < 3) {
pi = points[i];
px.push(pi[0]);
py.push(pi[1]);
}
path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
--i;
while (++i < n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBasisClosed(points) {
var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
while (++i < 4) {
pi = points[i % n];
px.push(pi[0]);
py.push(pi[1]);
}
path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
--i;
while (++i < m) {
pi = points[i % n];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBundle(points, tension) {
var n = points.length - 1;
if (n) {
var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
while (++i <= n) {
p = points[i];
t = i / n;
p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
}
}
return d3_svg_lineBasis(points);
}
function d3_svg_lineDot4(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
}
var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
function d3_svg_lineBasisBezier(path, x, y) {
path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
}
function d3_svg_lineSlope(p0, p1) {
return (p1[1] - p0[1]) / (p1[0] - p0[0]);
}
function d3_svg_lineFiniteDifferences(points) {
var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
while (++i < j) {
m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
}
m[i] = d;
return m;
}
function d3_svg_lineMonotoneTangents(points) {
var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
while (++i < j) {
d = d3_svg_lineSlope(points[i], points[i + 1]);
if (Math.abs(d) < 1e-6) {
m[i] = m[i + 1] = 0;
} else {
a = m[i] / d;
b = m[i + 1] / d;
s = a * a + b * b;
if (s > 9) {
s = d * 3 / Math.sqrt(s);
m[i] = s * a;
m[i + 1] = s * b;
}
}
}
i = -1;
while (++i <= j) {
s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
tangents.push([ s || 0, m[i] * s || 0 ]);
}
return tangents;
}
function d3_svg_lineMonotone(points) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
}
d3.geom.hull = function(vertices) {
var x = d3_svg_lineX, y = d3_svg_lineY;
if (arguments.length) return hull(vertices);
function hull(data) {
if (data.length < 3) return [];
var fx = d3_functor(x), fy = d3_functor(y), n = data.length, vertices, plen = n - 1, points = [], stack = [], d, i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
if (fx === d3_svg_lineX && y === d3_svg_lineY) vertices = data; else for (i = 0,
vertices = []; i < n; ++i) {
vertices.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
}
for (i = 1; i < n; ++i) {
if (vertices[i][1] < vertices[h][1] || vertices[i][1] == vertices[h][1] && vertices[i][0] < vertices[h][0]) h = i;
}
for (i = 0; i < n; ++i) {
if (i === h) continue;
y1 = vertices[i][1] - vertices[h][1];
x1 = vertices[i][0] - vertices[h][0];
points.push({
angle: Math.atan2(y1, x1),
index: i
});
}
points.sort(function(a, b) {
return a.angle - b.angle;
});
a = points[0].angle;
v = points[0].index;
u = 0;
for (i = 1; i < plen; ++i) {
j = points[i].index;
if (a == points[i].angle) {
x1 = vertices[v][0] - vertices[h][0];
y1 = vertices[v][1] - vertices[h][1];
x2 = vertices[j][0] - vertices[h][0];
y2 = vertices[j][1] - vertices[h][1];
if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
points[i].index = -1;
continue;
} else {
points[u].index = -1;
}
}
a = points[i].angle;
u = i;
v = j;
}
stack.push(h);
for (i = 0, j = 0; i < 2; ++j) {
if (points[j].index > -1) {
stack.push(points[j].index);
i++;
}
}
sp = stack.length;
for (;j < plen; ++j) {
if (points[j].index < 0) continue;
while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
--sp;
}
stack[sp++] = points[j].index;
}
var poly = [];
for (i = sp - 1; i >= 0; --i) poly.push(data[stack[i]]);
return poly;
}
hull.x = function(_) {
return arguments.length ? (x = _, hull) : x;
};
hull.y = function(_) {
return arguments.length ? (y = _, hull) : y;
};
return hull;
};
function d3_geom_hullCCW(i1, i2, i3, v) {
var t, a, b, c, d, e, f;
t = v[i1];
a = t[0];
b = t[1];
t = v[i2];
c = t[0];
d = t[1];
t = v[i3];
e = t[0];
f = t[1];
return (f - b) * (c - a) - (d - b) * (e - a) > 0;
}
d3.geom.polygon = function(coordinates) {
coordinates.area = function() {
var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1];
while (++i < n) {
area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1];
}
return area * .5;
};
coordinates.centroid = function(k) {
var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
if (!arguments.length) k = -1 / (6 * coordinates.area());
while (++i < n) {
a = b;
b = coordinates[i];
c = a[0] * b[1] - b[0] * a[1];
x += (a[0] + b[0]) * c;
y += (a[1] + b[1]) * c;
}
return [ x * k, y * k ];
};
coordinates.clip = function(subject) {
var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
while (++i < n) {
input = subject.slice();
subject.length = 0;
b = coordinates[i];
c = input[(m = input.length) - 1];
j = -1;
while (++j < m) {
d = input[j];
if (d3_geom_polygonInside(d, a, b)) {
if (!d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
subject.push(d);
} else if (d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
c = d;
}
a = b;
}
return subject;
};
return coordinates;
};
function d3_geom_polygonInside(p, a, b) {
return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
}
function d3_geom_polygonIntersect(c, d, a, b) {
var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
return [ x1 + ua * x21, y1 + ua * y21 ];
}
d3.geom.delaunay = function(vertices) {
var edges = vertices.map(function() {
return [];
}), triangles = [];
d3_geom_voronoiTessellate(vertices, function(e) {
edges[e.region.l.index].push(vertices[e.region.r.index]);
});
edges.forEach(function(edge, i) {
var v = vertices[i], cx = v[0], cy = v[1];
edge.forEach(function(v) {
v.angle = Math.atan2(v[0] - cx, v[1] - cy);
});
edge.sort(function(a, b) {
return a.angle - b.angle;
});
for (var j = 0, m = edge.length - 1; j < m; j++) {
triangles.push([ v, edge[j], edge[j + 1] ]);
}
});
return triangles;
};
d3.geom.voronoi = function(points) {
var size = null, x = d3_svg_lineX, y = d3_svg_lineY, clip;
if (arguments.length) return voronoi(points);
function voronoi(data) {
var points, polygons = data.map(function() {
return [];
}), fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length, Z = 1e6;
if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (points = [],
i = 0; i < n; ++i) {
points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
}
d3_geom_voronoiTessellate(points, function(e) {
var s1, s2, x1, x2, y1, y2;
if (e.a === 1 && e.b >= 0) {
s1 = e.ep.r;
s2 = e.ep.l;
} else {
s1 = e.ep.l;
s2 = e.ep.r;
}
if (e.a === 1) {
y1 = s1 ? s1.y : -Z;
x1 = e.c - e.b * y1;
y2 = s2 ? s2.y : Z;
x2 = e.c - e.b * y2;
} else {
x1 = s1 ? s1.x : -Z;
y1 = e.c - e.a * x1;
x2 = s2 ? s2.x : Z;
y2 = e.c - e.a * x2;
}
var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
polygons[e.region.l.index].push(v1, v2);
polygons[e.region.r.index].push(v1, v2);
});
polygons = polygons.map(function(polygon, i) {
var cx = points[i][0], cy = points[i][1], angle = polygon.map(function(v) {
return Math.atan2(v[0] - cx, v[1] - cy);
}), order = d3.range(polygon.length).sort(function(a, b) {
return angle[a] - angle[b];
});
return order.filter(function(d, i) {
return !i || angle[d] - angle[order[i - 1]] > ε;
}).map(function(d) {
return polygon[d];
});
});
polygons.forEach(function(polygon, i) {
var n = polygon.length;
if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]);
if (n > 2) return;
var p0 = points[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1;
if (Math.abs(dy) < ε) {
var y = y0 < y1 ? -Z : Z;
polygon.push([ -Z, y ], [ Z, y ]);
} else if (dx < ε) {
var x = x0 < x1 ? -Z : Z;
polygon.push([ x, -Z ], [ x, Z ]);
} else {
var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx;
if (Math.abs(z) < ε) {
polygon.push([ dy < 0 ? y : -y, y ]);
} else {
if (z > 0) y *= -1;
polygon.push([ -Z, y ], [ Z, y ]);
}
}
});
if (clip) for (i = 0; i < n; ++i) clip(polygons[i]);
for (i = 0; i < n; ++i) polygons[i].point = data[i];
return polygons;
}
voronoi.x = function(_) {
return arguments.length ? (x = _, voronoi) : x;
};
voronoi.y = function(_) {
return arguments.length ? (y = _, voronoi) : y;
};
voronoi.size = function(_) {
if (!arguments.length) return size;
if (_ == null) {
clip = null;
} else {
size = [ +_[0], +_[1] ];
clip = d3.geom.polygon([ [ 0, 0 ], [ 0, size[1] ], size, [ size[0], 0 ] ]).clip;
}
return voronoi;
};
voronoi.links = function(data) {
var points, graph = data.map(function() {
return [];
}), links = [], fx = d3_functor(x), fy = d3_functor(y), d, i, n = data.length;
if (fx === d3_svg_lineX && fy === d3_svg_lineY) points = data; else for (i = 0; i < n; ++i) {
points.push([ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ]);
}
d3_geom_voronoiTessellate(points, function(e) {
var l = e.region.l.index, r = e.region.r.index;
if (graph[l][r]) return;
graph[l][r] = graph[r][l] = true;
links.push({
source: data[l],
target: data[r]
});
});
return links;
};
voronoi.triangles = function(data) {
if (x === d3_svg_lineX && y === d3_svg_lineY) return d3.geom.delaunay(data);
var points, point, fx = d3_functor(x), fy = d3_functor(y), d, i, n;
for (i = 0, points = [], n = data.length; i < n; ++i) {
point = [ +fx.call(this, d = data[i], i), +fy.call(this, d, i) ];
point.data = d;
points.push(point);
}
return d3.geom.delaunay(points).map(function(triangle) {
return triangle.map(function(point) {
return point.data;
});
});
};
return voronoi;
};
var d3_geom_voronoiOpposite = {
l: "r",
r: "l"
};
function d3_geom_voronoiTessellate(points, callback) {
var Sites = {
list: points.map(function(v, i) {
return {
index: i,
x: v[0],
y: v[1]
};
}).sort(function(a, b) {
return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
}),
bottomSite: null
};
var EdgeList = {
list: [],
leftEnd: null,
rightEnd: null,
init: function() {
EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
EdgeList.leftEnd.r = EdgeList.rightEnd;
EdgeList.rightEnd.l = EdgeList.leftEnd;
EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
},
createHalfEdge: function(edge, side) {
return {
edge: edge,
side: side,
vertex: null,
l: null,
r: null
};
},
insert: function(lb, he) {
he.l = lb;
he.r = lb.r;
lb.r.l = he;
lb.r = he;
},
leftBound: function(p) {
var he = EdgeList.leftEnd;
do {
he = he.r;
} while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
he = he.l;
return he;
},
del: function(he) {
he.l.r = he.r;
he.r.l = he.l;
he.edge = null;
},
right: function(he) {
return he.r;
},
left: function(he) {
return he.l;
},
leftRegion: function(he) {
return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
},
rightRegion: function(he) {
return he.edge == null ? Sites.bottomSite : he.edge.region[d3_geom_voronoiOpposite[he.side]];
}
};
var Geom = {
bisect: function(s1, s2) {
var newEdge = {
region: {
l: s1,
r: s2
},
ep: {
l: null,
r: null
}
};
var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
if (adx > ady) {
newEdge.a = 1;
newEdge.b = dy / dx;
newEdge.c /= dx;
} else {
newEdge.b = 1;
newEdge.a = dx / dy;
newEdge.c /= dy;
}
return newEdge;
},
intersect: function(el1, el2) {
var e1 = el1.edge, e2 = el2.edge;
if (!e1 || !e2 || e1.region.r == e2.region.r) {
return null;
}
var d = e1.a * e2.b - e1.b * e2.a;
if (Math.abs(d) < 1e-10) {
return null;
}
var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
el = el1;
e = e1;
} else {
el = el2;
e = e2;
}
var rightOfSite = xint >= e.region.r.x;
if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
return null;
}
return {
x: xint,
y: yint
};
},
rightOf: function(he, p) {
var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
if (rightOfSite && he.side === "l") {
return 1;
}
if (!rightOfSite && he.side === "r") {
return 0;
}
if (e.a === 1) {
var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
above = fast = dyp >= e.b * dxp;
} else {
above = p.x + p.y * e.b > e.c;
if (e.b < 0) {
above = !above;
}
if (!above) {
fast = 1;
}
}
if (!fast) {
var dxs = topsite.x - e.region.l.x;
above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
if (e.b < 0) {
above = !above;
}
}
} else {
var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
above = t1 * t1 > t2 * t2 + t3 * t3;
}
return he.side === "l" ? above : !above;
},
endPoint: function(edge, side, site) {
edge.ep[side] = site;
if (!edge.ep[d3_geom_voronoiOpposite[side]]) return;
callback(edge);
},
distance: function(s, t) {
var dx = s.x - t.x, dy = s.y - t.y;
return Math.sqrt(dx * dx + dy * dy);
}
};
var EventQueue = {
list: [],
insert: function(he, site, offset) {
he.vertex = site;
he.ystar = site.y + offset;
for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
var next = list[i];
if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
continue;
} else {
break;
}
}
list.splice(i, 0, he);
},
del: function(he) {
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
ls.splice(i, 1);
},
empty: function() {
return EventQueue.list.length === 0;
},
nextEvent: function(he) {
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
if (ls[i] == he) return ls[i + 1];
}
return null;
},
min: function() {
var elem = EventQueue.list[0];
return {
x: elem.vertex.x,
y: elem.ystar
};
},
extractMin: function() {
return EventQueue.list.shift();
}
};
EdgeList.init();
Sites.bottomSite = Sites.list.shift();
var newSite = Sites.list.shift(), newIntStar;
var lbnd, rbnd, llbnd, rrbnd, bisector;
var bot, top, temp, p, v;
var e, pm;
while (true) {
if (!EventQueue.empty()) {
newIntStar = EventQueue.min();
}
if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
lbnd = EdgeList.leftBound(newSite);
rbnd = EdgeList.right(lbnd);
bot = EdgeList.rightRegion(lbnd);
e = Geom.bisect(bot, newSite);
bisector = EdgeList.createHalfEdge(e, "l");
EdgeList.insert(lbnd, bisector);
p = Geom.intersect(lbnd, bisector);
if (p) {
EventQueue.del(lbnd);
EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
}
lbnd = bisector;
bisector = EdgeList.createHalfEdge(e, "r");
EdgeList.insert(lbnd, bisector);
p = Geom.intersect(bisector, rbnd);
if (p) {
EventQueue.insert(bisector, p, Geom.distance(p, newSite));
}
newSite = Sites.list.shift();
} else if (!EventQueue.empty()) {
lbnd = EventQueue.extractMin();
llbnd = EdgeList.left(lbnd);
rbnd = EdgeList.right(lbnd);
rrbnd = EdgeList.right(rbnd);
bot = EdgeList.leftRegion(lbnd);
top = EdgeList.rightRegion(rbnd);
v = lbnd.vertex;
Geom.endPoint(lbnd.edge, lbnd.side, v);
Geom.endPoint(rbnd.edge, rbnd.side, v);
EdgeList.del(lbnd);
EventQueue.del(rbnd);
EdgeList.del(rbnd);
pm = "l";
if (bot.y > top.y) {
temp = bot;
bot = top;
top = temp;
pm = "r";
}
e = Geom.bisect(bot, top);
bisector = EdgeList.createHalfEdge(e, pm);
EdgeList.insert(llbnd, bisector);
Geom.endPoint(e, d3_geom_voronoiOpposite[pm], v);
p = Geom.intersect(llbnd, bisector);
if (p) {
EventQueue.del(llbnd);
EventQueue.insert(llbnd, p, Geom.distance(p, bot));
}
p = Geom.intersect(bisector, rrbnd);
if (p) {
EventQueue.insert(bisector, p, Geom.distance(p, bot));
}
} else {
break;
}
}
for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
callback(lbnd.edge);
}
}
d3.geom.quadtree = function(points, x1, y1, x2, y2) {
var x = d3_svg_lineX, y = d3_svg_lineY, compat;
if (compat = arguments.length) {
x = d3_geom_quadtreeCompatX;
y = d3_geom_quadtreeCompatY;
if (compat === 3) {
y2 = y1;
x2 = x1;
y1 = x1 = 0;
}
return quadtree(points);
}
function quadtree(data) {
var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;
if (x1 != null) {
x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;
} else {
x2_ = y2_ = -(x1_ = y1_ = Infinity);
xs = [], ys = [];
n = data.length;
if (compat) for (i = 0; i < n; ++i) {
d = data[i];
if (d.x < x1_) x1_ = d.x;
if (d.y < y1_) y1_ = d.y;
if (d.x > x2_) x2_ = d.x;
if (d.y > y2_) y2_ = d.y;
xs.push(d.x);
ys.push(d.y);
} else for (i = 0; i < n; ++i) {
var x_ = +fx(d = data[i], i), y_ = +fy(d, i);
if (x_ < x1_) x1_ = x_;
if (y_ < y1_) y1_ = y_;
if (x_ > x2_) x2_ = x_;
if (y_ > y2_) y2_ = y_;
xs.push(x_);
ys.push(y_);
}
}
var dx = x2_ - x1_, dy = y2_ - y1_;
if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;
function insert(n, d, x, y, x1, y1, x2, y2) {
if (isNaN(x) || isNaN(y)) return;
if (n.leaf) {
var nx = n.x, ny = n.y;
if (nx != null) {
if (Math.abs(nx - x) + Math.abs(ny - y) < .01) {
insertChild(n, d, x, y, x1, y1, x2, y2);
} else {
var nPoint = n.point;
n.x = n.y = n.point = null;
insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);
insertChild(n, d, x, y, x1, y1, x2, y2);
}
} else {
n.x = x, n.y = y, n.point = d;
}
} else {
insertChild(n, d, x, y, x1, y1, x2, y2);
}
}
function insertChild(n, d, x, y, x1, y1, x2, y2) {
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = x >= sx, bottom = y >= sy, i = (bottom << 1) + right;
n.leaf = false;
n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
if (right) x1 = sx; else x2 = sx;
if (bottom) y1 = sy; else y2 = sy;
insert(n, d, x, y, x1, y1, x2, y2);
}
var root = d3_geom_quadtreeNode();
root.add = function(d) {
insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);
};
root.visit = function(f) {
d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
};
i = -1;
if (x1 == null) {
while (++i < n) {
insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);
}
--i;
} else data.forEach(root.add);
xs = ys = data = d = null;
return root;
}
quadtree.x = function(_) {
return arguments.length ? (x = _, quadtree) : x;
};
quadtree.y = function(_) {
return arguments.length ? (y = _, quadtree) : y;
};
quadtree.size = function(_) {
if (!arguments.length) return x1 == null ? null : [ x2, y2 ];
if (_ == null) {
x1 = y1 = x2 = y2 = null;
} else {
x1 = y1 = 0;
x2 = +_[0], y2 = +_[1];
}
return quadtree;
};
return quadtree;
};
function d3_geom_quadtreeCompatX(d) {
return d.x;
}
function d3_geom_quadtreeCompatY(d) {
return d.y;
}
function d3_geom_quadtreeNode() {
return {
leaf: true,
nodes: [],
point: null,
x: null,
y: null
};
}
function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
if (!f(node, x1, y1, x2, y2)) {
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
}
}
d3.interpolateRgb = d3_interpolateRgb;
function d3_interpolateRgb(a, b) {
a = d3.rgb(a);
b = d3.rgb(b);
var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
return function(t) {
return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
};
}
d3.transform = function(string) {
var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
return (d3.transform = function(string) {
if (string != null) {
g.setAttribute("transform", string);
var t = g.transform.baseVal.consolidate();
}
return new d3_transform(t ? t.matrix : d3_transformIdentity);
})(string);
};
function d3_transform(m) {
var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
if (r0[0] * r1[1] < r1[0] * r0[1]) {
r0[0] *= -1;
r0[1] *= -1;
kx *= -1;
kz *= -1;
}
this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
this.translate = [ m.e, m.f ];
this.scale = [ kx, ky ];
this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
}
d3_transform.prototype.toString = function() {
return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
};
function d3_transformDot(a, b) {
return a[0] * b[0] + a[1] * b[1];
}
function d3_transformNormalize(a) {
var k = Math.sqrt(d3_transformDot(a, a));
if (k) {
a[0] /= k;
a[1] /= k;
}
return k;
}
function d3_transformCombine(a, b, k) {
a[0] += k * b[0];
a[1] += k * b[1];
return a;
}
var d3_transformIdentity = {
a: 1,
b: 0,
c: 0,
d: 1,
e: 0,
f: 0
};
d3.interpolateNumber = d3_interpolateNumber;
function d3_interpolateNumber(a, b) {
b -= a = +a;
return function(t) {
return a + b * t;
};
}
d3.interpolateTransform = d3_interpolateTransform;
function d3_interpolateTransform(a, b) {
var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
if (ta[0] != tb[0] || ta[1] != tb[1]) {
s.push("translate(", null, ",", null, ")");
q.push({
i: 1,
x: d3_interpolateNumber(ta[0], tb[0])
}, {
i: 3,
x: d3_interpolateNumber(ta[1], tb[1])
});
} else if (tb[0] || tb[1]) {
s.push("translate(" + tb + ")");
} else {
s.push("");
}
if (ra != rb) {
if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
q.push({
i: s.push(s.pop() + "rotate(", null, ")") - 2,
x: d3_interpolateNumber(ra, rb)
});
} else if (rb) {
s.push(s.pop() + "rotate(" + rb + ")");
}
if (wa != wb) {
q.push({
i: s.push(s.pop() + "skewX(", null, ")") - 2,
x: d3_interpolateNumber(wa, wb)
});
} else if (wb) {
s.push(s.pop() + "skewX(" + wb + ")");
}
if (ka[0] != kb[0] || ka[1] != kb[1]) {
n = s.push(s.pop() + "scale(", null, ",", null, ")");
q.push({
i: n - 4,
x: d3_interpolateNumber(ka[0], kb[0])
}, {
i: n - 2,
x: d3_interpolateNumber(ka[1], kb[1])
});
} else if (kb[0] != 1 || kb[1] != 1) {
s.push(s.pop() + "scale(" + kb + ")");
}
n = q.length;
return function(t) {
var i = -1, o;
while (++i < n) s[(o = q[i]).i] = o.x(t);
return s.join("");
};
}
d3.interpolateObject = d3_interpolateObject;
function d3_interpolateObject(a, b) {
var i = {}, c = {}, k;
for (k in a) {
if (k in b) {
i[k] = d3_interpolateByName(k)(a[k], b[k]);
} else {
c[k] = a[k];
}
}
for (k in b) {
if (!(k in a)) {
c[k] = b[k];
}
}
return function(t) {
for (k in i) c[k] = i[k](t);
return c;
};
}
d3.interpolateString = d3_interpolateString;
function d3_interpolateString(a, b) {
var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
a = a + "", b = b + "";
d3_interpolate_number.lastIndex = 0;
for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
if (m.index) s.push(b.substring(s0, s1 = m.index));
q.push({
i: s.length,
x: m[0]
});
s.push(null);
s0 = d3_interpolate_number.lastIndex;
}
if (s0 < b.length) s.push(b.substring(s0));
for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
o = q[i];
if (o.x == m[0]) {
if (o.i) {
if (s[o.i + 1] == null) {
s[o.i - 1] += o.x;
s.splice(o.i, 1);
for (j = i + 1; j < n; ++j) q[j].i--;
} else {
s[o.i - 1] += o.x + s[o.i + 1];
s.splice(o.i, 2);
for (j = i + 1; j < n; ++j) q[j].i -= 2;
}
} else {
if (s[o.i + 1] == null) {
s[o.i] = o.x;
} else {
s[o.i] = o.x + s[o.i + 1];
s.splice(o.i + 1, 1);
for (j = i + 1; j < n; ++j) q[j].i--;
}
}
q.splice(i, 1);
n--;
i--;
} else {
o.x = d3_interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
}
}
while (i < n) {
o = q.pop();
if (s[o.i + 1] == null) {
s[o.i] = o.x;
} else {
s[o.i] = o.x + s[o.i + 1];
s.splice(o.i + 1, 1);
}
n--;
}
if (s.length === 1) {
return s[0] == null ? (o = q[0].x, function(t) {
return o(t) + "";
}) : function() {
return b;
};
}
return function(t) {
for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
return s.join("");
};
}
var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
d3.interpolate = d3_interpolate;
function d3_interpolate(a, b) {
var i = d3.interpolators.length, f;
while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
return f;
}
function d3_interpolateByName(name) {
return name == "transform" ? d3_interpolateTransform : d3_interpolate;
}
d3.interpolators = [ function(a, b) {
var t = typeof b;
return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_Color ? d3_interpolateRgb : t === "object" ? Array.isArray(b) ? d3_interpolateArray : d3_interpolateObject : d3_interpolateNumber)(a, b);
} ];
d3.interpolateArray = d3_interpolateArray;
function d3_interpolateArray(a, b) {
var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
for (;i < na; ++i) c[i] = a[i];
for (;i < nb; ++i) c[i] = b[i];
return function(t) {
for (i = 0; i < n0; ++i) c[i] = x[i](t);
return c;
};
}
var d3_ease_default = function() {
return d3_identity;
};
var d3_ease = d3.map({
linear: d3_ease_default,
poly: d3_ease_poly,
quad: function() {
return d3_ease_quad;
},
cubic: function() {
return d3_ease_cubic;
},
sin: function() {
return d3_ease_sin;
},
exp: function() {
return d3_ease_exp;
},
circle: function() {
return d3_ease_circle;
},
elastic: d3_ease_elastic,
back: d3_ease_back,
bounce: function() {
return d3_ease_bounce;
}
});
var d3_ease_mode = d3.map({
"in": d3_identity,
out: d3_ease_reverse,
"in-out": d3_ease_reflect,
"out-in": function(f) {
return d3_ease_reflect(d3_ease_reverse(f));
}
});
d3.ease = function(name) {
var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
t = d3_ease.get(t) || d3_ease_default;
m = d3_ease_mode.get(m) || d3_identity;
return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
};
function d3_ease_clamp(f) {
return function(t) {
return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
};
}
function d3_ease_reverse(f) {
return function(t) {
return 1 - f(1 - t);
};
}
function d3_ease_reflect(f) {
return function(t) {
return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
};
}
function d3_ease_quad(t) {
return t * t;
}
function d3_ease_cubic(t) {
return t * t * t;
}
function d3_ease_cubicInOut(t) {
if (t <= 0) return 0;
if (t >= 1) return 1;
var t2 = t * t, t3 = t2 * t;
return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
}
function d3_ease_poly(e) {
return function(t) {
return Math.pow(t, e);
};
}
function d3_ease_sin(t) {
return 1 - Math.cos(t * π / 2);
}
function d3_ease_exp(t) {
return Math.pow(2, 10 * (t - 1));
}
function d3_ease_circle(t) {
return 1 - Math.sqrt(1 - t * t);
}
function d3_ease_elastic(a, p) {
var s;
if (arguments.length < 2) p = .45;
if (arguments.length) s = p / (2 * π) * Math.asin(1 / a); else a = 1, s = p / 4;
return function(t) {
return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p);
};
}
function d3_ease_back(s) {
if (!s) s = 1.70158;
return function(t) {
return t * t * ((s + 1) * t - s);
};
}
function d3_ease_bounce(t) {
return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
}
d3.interpolateHcl = d3_interpolateHcl;
function d3_interpolateHcl(a, b) {
a = d3.hcl(a);
b = d3.hcl(b);
var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;
if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
return function(t) {
return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
};
}
d3.interpolateHsl = d3_interpolateHsl;
function d3_interpolateHsl(a, b) {
a = d3.hsl(a);
b = d3.hsl(b);
var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;
if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;
if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
return function(t) {
return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + "";
};
}
d3.interpolateLab = d3_interpolateLab;
function d3_interpolateLab(a, b) {
a = d3.lab(a);
b = d3.lab(b);
var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
return function(t) {
return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
};
}
d3.interpolateRound = d3_interpolateRound;
function d3_interpolateRound(a, b) {
b -= a;
return function(t) {
return Math.round(a + b * t);
};
}
function d3_uninterpolateNumber(a, b) {
b = b - (a = +a) ? 1 / (b - a) : 0;
return function(x) {
return (x - a) * b;
};
}
function d3_uninterpolateClamp(a, b) {
b = b - (a = +a) ? 1 / (b - a) : 0;
return function(x) {
return Math.max(0, Math.min(1, (x - a) * b));
};
}
d3.layout = {};
d3.layout.bundle = function() {
return function(links) {
var paths = [], i = -1, n = links.length;
while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
return paths;
};
};
function d3_layout_bundlePath(link) {
var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
while (start !== lca) {
start = start.parent;
points.push(start);
}
var k = points.length;
while (end !== lca) {
points.splice(k, 0, end);
end = end.parent;
}
return points;
}
function d3_layout_bundleAncestors(node) {
var ancestors = [], parent = node.parent;
while (parent != null) {
ancestors.push(node);
node = parent;
parent = parent.parent;
}
ancestors.push(node);
return ancestors;
}
function d3_layout_bundleLeastCommonAncestor(a, b) {
if (a === b) return a;
var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
while (aNode === bNode) {
sharedNode = aNode;
aNode = aNodes.pop();
bNode = bNodes.pop();
}
return sharedNode;
}
d3.layout.chord = function() {
var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
function relayout() {
var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
chords = [];
groups = [];
k = 0, i = -1;
while (++i < n) {
x = 0, j = -1;
while (++j < n) {
x += matrix[i][j];
}
groupSums.push(x);
subgroupIndex.push(d3.range(n));
k += x;
}
if (sortGroups) {
groupIndex.sort(function(a, b) {
return sortGroups(groupSums[a], groupSums[b]);
});
}
if (sortSubgroups) {
subgroupIndex.forEach(function(d, i) {
d.sort(function(a, b) {
return sortSubgroups(matrix[i][a], matrix[i][b]);
});
});
}
k = (2 * π - padding * n) / k;
x = 0, i = -1;
while (++i < n) {
x0 = x, j = -1;
while (++j < n) {
var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
subgroups[di + "-" + dj] = {
index: di,
subindex: dj,
startAngle: a0,
endAngle: a1,
value: v
};
}
groups[di] = {
index: di,
startAngle: x0,
endAngle: x,
value: (x - x0) / k
};
x += padding;
}
i = -1;
while (++i < n) {
j = i - 1;
while (++j < n) {
var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
if (source.value || target.value) {
chords.push(source.value < target.value ? {
source: target,
target: source
} : {
source: source,
target: target
});
}
}
}
if (sortChords) resort();
}
function resort() {
chords.sort(function(a, b) {
return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
});
}
chord.matrix = function(x) {
if (!arguments.length) return matrix;
n = (matrix = x) && matrix.length;
chords = groups = null;
return chord;
};
chord.padding = function(x) {
if (!arguments.length) return padding;
padding = x;
chords = groups = null;
return chord;
};
chord.sortGroups = function(x) {
if (!arguments.length) return sortGroups;
sortGroups = x;
chords = groups = null;
return chord;
};
chord.sortSubgroups = function(x) {
if (!arguments.length) return sortSubgroups;
sortSubgroups = x;
chords = null;
return chord;
};
chord.sortChords = function(x) {
if (!arguments.length) return sortChords;
sortChords = x;
if (chords) resort();
return chord;
};
chord.chords = function() {
if (!chords) relayout();
return chords;
};
chord.groups = function() {
if (!groups) relayout();
return groups;
};
return chord;
};
d3.layout.force = function() {
var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges;
function repulse(node) {
return function(quad, x1, _, x2) {
if (quad.point !== node) {
var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
if ((x2 - x1) * dn < theta) {
var k = quad.charge * dn * dn;
node.px -= dx * k;
node.py -= dy * k;
return true;
}
if (quad.point && isFinite(dn)) {
var k = quad.pointCharge * dn * dn;
node.px -= dx * k;
node.py -= dy * k;
}
}
return !quad.charge;
};
}
force.tick = function() {
if ((alpha *= .99) < .005) {
event.end({
type: "end",
alpha: alpha = 0
});
return true;
}
var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
for (i = 0; i < m; ++i) {
o = links[i];
s = o.source;
t = o.target;
x = t.x - s.x;
y = t.y - s.y;
if (l = x * x + y * y) {
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
x *= l;
y *= l;
t.x -= x * (k = s.weight / (t.weight + s.weight));
t.y -= y * k;
s.x += x * (k = 1 - k);
s.y += y * k;
}
}
if (k = alpha * gravity) {
x = size[0] / 2;
y = size[1] / 2;
i = -1;
if (k) while (++i < n) {
o = nodes[i];
o.x += (x - o.x) * k;
o.y += (y - o.y) * k;
}
}
if (charge) {
d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
i = -1;
while (++i < n) {
if (!(o = nodes[i]).fixed) {
q.visit(repulse(o));
}
}
}
i = -1;
while (++i < n) {
o = nodes[i];
if (o.fixed) {
o.x = o.px;
o.y = o.py;
} else {
o.x -= (o.px - (o.px = o.x)) * friction;
o.y -= (o.py - (o.py = o.y)) * friction;
}
}
event.tick({
type: "tick",
alpha: alpha
});
};
force.nodes = function(x) {
if (!arguments.length) return nodes;
nodes = x;
return force;
};
force.links = function(x) {
if (!arguments.length) return links;
links = x;
return force;
};
force.size = function(x) {
if (!arguments.length) return size;
size = x;
return force;
};
force.linkDistance = function(x) {
if (!arguments.length) return linkDistance;
linkDistance = typeof x === "function" ? x : +x;
return force;
};
force.distance = force.linkDistance;
force.linkStrength = function(x) {
if (!arguments.length) return linkStrength;
linkStrength = typeof x === "function" ? x : +x;
return force;
};
force.friction = function(x) {
if (!arguments.length) return friction;
friction = +x;
return force;
};
force.charge = function(x) {
if (!arguments.length) return charge;
charge = typeof x === "function" ? x : +x;
return force;
};
force.gravity = function(x) {
if (!arguments.length) return gravity;
gravity = +x;
return force;
};
force.theta = function(x) {
if (!arguments.length) return theta;
theta = +x;
return force;
};
force.alpha = function(x) {
if (!arguments.length) return alpha;
x = +x;
if (alpha) {
if (x > 0) alpha = x; else alpha = 0;
} else if (x > 0) {
event.start({
type: "start",
alpha: alpha = x
});
d3.timer(force.tick);
}
return force;
};
force.start = function() {
var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
for (i = 0; i < n; ++i) {
(o = nodes[i]).index = i;
o.weight = 0;
}
for (i = 0; i < m; ++i) {
o = links[i];
if (typeof o.source == "number") o.source = nodes[o.source];
if (typeof o.target == "number") o.target = nodes[o.target];
++o.source.weight;
++o.target.weight;
}
for (i = 0; i < n; ++i) {
o = nodes[i];
if (isNaN(o.x)) o.x = position("x", w);
if (isNaN(o.y)) o.y = position("y", h);
if (isNaN(o.px)) o.px = o.x;
if (isNaN(o.py)) o.py = o.y;
}
distances = [];
if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
strengths = [];
if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
charges = [];
if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
function position(dimension, size) {
var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
return Math.random() * size;
}
function neighbor() {
if (!neighbors) {
neighbors = [];
for (j = 0; j < n; ++j) {
neighbors[j] = [];
}
for (j = 0; j < m; ++j) {
var o = links[j];
neighbors[o.source.index].push(o.target);
neighbors[o.target.index].push(o.source);
}
}
return neighbors[i];
}
return force.resume();
};
force.resume = function() {
return force.alpha(.1);
};
force.stop = function() {
return force.alpha(0);
};
force.drag = function() {
if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
if (!arguments.length) return drag;
this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
};
function dragmove(d) {
d.px = d3.event.x, d.py = d3.event.y;
force.resume();
}
return d3.rebind(force, event, "on");
};
function d3_layout_forceDragstart(d) {
d.fixed |= 2;
}
function d3_layout_forceDragend(d) {
d.fixed &= ~6;
}
function d3_layout_forceMouseover(d) {
d.fixed |= 4;
d.px = d.x, d.py = d.y;
}
function d3_layout_forceMouseout(d) {
d.fixed &= ~4;
}
function d3_layout_forceAccumulate(quad, alpha, charges) {
var cx = 0, cy = 0;
quad.charge = 0;
if (!quad.leaf) {
var nodes = quad.nodes, n = nodes.length, i = -1, c;
while (++i < n) {
c = nodes[i];
if (c == null) continue;
d3_layout_forceAccumulate(c, alpha, charges);
quad.charge += c.charge;
cx += c.charge * c.cx;
cy += c.charge * c.cy;
}
}
if (quad.point) {
if (!quad.leaf) {
quad.point.x += Math.random() - .5;
quad.point.y += Math.random() - .5;
}
var k = alpha * charges[quad.point.index];
quad.charge += quad.pointCharge = k;
cx += k * quad.point.x;
cy += k * quad.point.y;
}
quad.cx = cx / quad.charge;
quad.cy = cy / quad.charge;
}
var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1;
d3.layout.hierarchy = function() {
var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
function recurse(node, depth, nodes) {
var childs = children.call(hierarchy, node, depth);
node.depth = depth;
nodes.push(node);
if (childs && (n = childs.length)) {
var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
while (++i < n) {
d = recurse(childs[i], j, nodes);
d.parent = node;
c.push(d);
v += d.value;
}
if (sort) c.sort(sort);
if (value) node.value = v;
} else if (value) {
node.value = +value.call(hierarchy, node, depth) || 0;
}
return node;
}
function revalue(node, depth) {
var children = node.children, v = 0;
if (children && (n = children.length)) {
var i = -1, n, j = depth + 1;
while (++i < n) v += revalue(children[i], j);
} else if (value) {
v = +value.call(hierarchy, node, depth) || 0;
}
if (value) node.value = v;
return v;
}
function hierarchy(d) {
var nodes = [];
recurse(d, 0, nodes);
return nodes;
}
hierarchy.sort = function(x) {
if (!arguments.length) return sort;
sort = x;
return hierarchy;
};
hierarchy.children = function(x) {
if (!arguments.length) return children;
children = x;
return hierarchy;
};
hierarchy.value = function(x) {
if (!arguments.length) return value;
value = x;
return hierarchy;
};
hierarchy.revalue = function(root) {
revalue(root, 0);
return root;
};
return hierarchy;
};
function d3_layout_hierarchyRebind(object, hierarchy) {
d3.rebind(object, hierarchy, "sort", "children", "value");
object.nodes = object;
object.links = d3_layout_hierarchyLinks;
return object;
}
function d3_layout_hierarchyChildren(d) {
return d.children;
}
function d3_layout_hierarchyValue(d) {
return d.value;
}
function d3_layout_hierarchySort(a, b) {
return b.value - a.value;
}
function d3_layout_hierarchyLinks(nodes) {
return d3.merge(nodes.map(function(parent) {
return (parent.children || []).map(function(child) {
return {
source: parent,
target: child
};
});
}));
}
d3.layout.partition = function() {
var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
function position(node, x, dx, dy) {
var children = node.children;
node.x = x;
node.y = node.depth * dy;
node.dx = dx;
node.dy = dy;
if (children && (n = children.length)) {
var i = -1, n, c, d;
dx = node.value ? dx / node.value : 0;
while (++i < n) {
position(c = children[i], x, d = c.value * dx, dy);
x += d;
}
}
}
function depth(node) {
var children = node.children, d = 0;
if (children && (n = children.length)) {
var i = -1, n;
while (++i < n) d = Math.max(d, depth(children[i]));
}
return 1 + d;
}
function partition(d, i) {
var nodes = hierarchy.call(this, d, i);
position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
return nodes;
}
partition.size = function(x) {
if (!arguments.length) return size;
size = x;
return partition;
};
return d3_layout_hierarchyRebind(partition, hierarchy);
};
d3.layout.pie = function() {
var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * π;
function pie(data) {
var values = data.map(function(d, i) {
return +value.call(pie, d, i);
});
var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a) / d3.sum(values);
var index = d3.range(data.length);
if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
return values[j] - values[i];
} : function(i, j) {
return sort(data[i], data[j]);
});
var arcs = [];
index.forEach(function(i) {
var d;
arcs[i] = {
data: data[i],
value: d = values[i],
startAngle: a,
endAngle: a += d * k
};
});
return arcs;
}
pie.value = function(x) {
if (!arguments.length) return value;
value = x;
return pie;
};
pie.sort = function(x) {
if (!arguments.length) return sort;
sort = x;
return pie;
};
pie.startAngle = function(x) {
if (!arguments.length) return startAngle;
startAngle = x;
return pie;
};
pie.endAngle = function(x) {
if (!arguments.length) return endAngle;
endAngle = x;
return pie;
};
return pie;
};
var d3_layout_pieSortByValue = {};
d3.layout.stack = function() {
var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
function stack(data, index) {
var series = data.map(function(d, i) {
return values.call(stack, d, i);
});
var points = series.map(function(d) {
return d.map(function(v, i) {
return [ x.call(stack, v, i), y.call(stack, v, i) ];
});
});
var orders = order.call(stack, points, index);
series = d3.permute(series, orders);
points = d3.permute(points, orders);
var offsets = offset.call(stack, points, index);
var n = series.length, m = series[0].length, i, j, o;
for (j = 0; j < m; ++j) {
out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
for (i = 1; i < n; ++i) {
out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
}
}
return data;
}
stack.values = function(x) {
if (!arguments.length) return values;
values = x;
return stack;
};
stack.order = function(x) {
if (!arguments.length) return order;
order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
return stack;
};
stack.offset = function(x) {
if (!arguments.length) return offset;
offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
return stack;
};
stack.x = function(z) {
if (!arguments.length) return x;
x = z;
return stack;
};
stack.y = function(z) {
if (!arguments.length) return y;
y = z;
return stack;
};
stack.out = function(z) {
if (!arguments.length) return out;
out = z;
return stack;
};
return stack;
};
function d3_layout_stackX(d) {
return d.x;
}
function d3_layout_stackY(d) {
return d.y;
}
function d3_layout_stackOut(d, y0, y) {
d.y0 = y0;
d.y = y;
}
var d3_layout_stackOrders = d3.map({
"inside-out": function(data) {
var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
return max[a] - max[b];
}), top = 0, bottom = 0, tops = [], bottoms = [];
for (i = 0; i < n; ++i) {
j = index[i];
if (top < bottom) {
top += sums[j];
tops.push(j);
} else {
bottom += sums[j];
bottoms.push(j);
}
}
return bottoms.reverse().concat(tops);
},
reverse: function(data) {
return d3.range(data.length).reverse();
},
"default": d3_layout_stackOrderDefault
});
var d3_layout_stackOffsets = d3.map({
silhouette: function(data) {
var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o > max) max = o;
sums.push(o);
}
for (j = 0; j < m; ++j) {
y0[j] = (max - sums[j]) / 2;
}
return y0;
},
wiggle: function(data) {
var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
y0[0] = o = o0 = 0;
for (j = 1; j < m; ++j) {
for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
}
s2 += s3 * data[i][j][1];
}
y0[j] = o -= s1 ? s2 / s1 * dx : 0;
if (o < o0) o0 = o;
}
for (j = 0; j < m; ++j) y0[j] -= o0;
return y0;
},
expand: function(data) {
var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
}
for (j = 0; j < m; ++j) y0[j] = 0;
return y0;
},
zero: d3_layout_stackOffsetZero
});
function d3_layout_stackOrderDefault(data) {
return d3.range(data.length);
}
function d3_layout_stackOffsetZero(data) {
var j = -1, m = data[0].length, y0 = [];
while (++j < m) y0[j] = 0;
return y0;
}
function d3_layout_stackMaxIndex(array) {
var i = 1, j = 0, v = array[0][1], k, n = array.length;
for (;i < n; ++i) {
if ((k = array[i][1]) > v) {
j = i;
v = k;
}
}
return j;
}
function d3_layout_stackReduceSum(d) {
return d.reduce(d3_layout_stackSum, 0);
}
function d3_layout_stackSum(p, d) {
return p + d[1];
}
d3.layout.histogram = function() {
var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
function histogram(data, i) {
var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
while (++i < m) {
bin = bins[i] = [];
bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
bin.y = 0;
}
if (m > 0) {
i = -1;
while (++i < n) {
x = values[i];
if (x >= range[0] && x <= range[1]) {
bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
bin.y += k;
bin.push(data[i]);
}
}
}
return bins;
}
histogram.value = function(x) {
if (!arguments.length) return valuer;
valuer = x;
return histogram;
};
histogram.range = function(x) {
if (!arguments.length) return ranger;
ranger = d3_functor(x);
return histogram;
};
histogram.bins = function(x) {
if (!arguments.length) return binner;
binner = typeof x === "number" ? function(range) {
return d3_layout_histogramBinFixed(range, x);
} : d3_functor(x);
return histogram;
};
histogram.frequency = function(x) {
if (!arguments.length) return frequency;
frequency = !!x;
return histogram;
};
return histogram;
};
function d3_layout_histogramBinSturges(range, values) {
return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
}
function d3_layout_histogramBinFixed(range, n) {
var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
while (++x <= n) f[x] = m * x + b;
return f;
}
function d3_layout_histogramRange(values) {
return [ d3.min(values), d3.max(values) ];
}
d3.layout.tree = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
function tree(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0];
function firstWalk(node, previousSibling) {
var children = node.children, layout = node._tree;
if (children && (n = children.length)) {
var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
while (++i < n) {
child = children[i];
firstWalk(child, previousChild);
ancestor = apportion(child, previousChild, ancestor);
previousChild = child;
}
d3_layout_treeShift(node);
var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
if (previousSibling) {
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
layout.mod = layout.prelim - midpoint;
} else {
layout.prelim = midpoint;
}
} else {
if (previousSibling) {
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
}
}
}
function secondWalk(node, x) {
node.x = node._tree.prelim + x;
var children = node.children;
if (children && (n = children.length)) {
var i = -1, n;
x += node._tree.mod;
while (++i < n) {
secondWalk(children[i], x);
}
}
}
function apportion(node, previousSibling, ancestor) {
if (previousSibling) {
var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
vom = d3_layout_treeLeft(vom);
vop = d3_layout_treeRight(vop);
vop._tree.ancestor = node;
shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
if (shift > 0) {
d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
sip += shift;
sop += shift;
}
sim += vim._tree.mod;
sip += vip._tree.mod;
som += vom._tree.mod;
sop += vop._tree.mod;
}
if (vim && !d3_layout_treeRight(vop)) {
vop._tree.thread = vim;
vop._tree.mod += sim - sop;
}
if (vip && !d3_layout_treeLeft(vom)) {
vom._tree.thread = vip;
vom._tree.mod += sip - som;
ancestor = node;
}
}
return ancestor;
}
d3_layout_treeVisitAfter(root, function(node, previousSibling) {
node._tree = {
ancestor: node,
prelim: 0,
mod: 0,
change: 0,
shift: 0,
number: previousSibling ? previousSibling._tree.number + 1 : 0
};
});
firstWalk(root);
secondWalk(root, -root._tree.prelim);
var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
d3_layout_treeVisitAfter(root, function(node) {
node.x = (node.x - x0) / (x1 - x0) * size[0];
node.y = node.depth / y1 * size[1];
delete node._tree;
});
return nodes;
}
tree.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return tree;
};
tree.size = function(x) {
if (!arguments.length) return size;
size = x;
return tree;
};
return d3_layout_hierarchyRebind(tree, hierarchy);
};
function d3_layout_treeSeparation(a, b) {
return a.parent == b.parent ? 1 : 2;
}
function d3_layout_treeLeft(node) {
var children = node.children;
return children && children.length ? children[0] : node._tree.thread;
}
function d3_layout_treeRight(node) {
var children = node.children, n;
return children && (n = children.length) ? children[n - 1] : node._tree.thread;
}
function d3_layout_treeSearch(node, compare) {
var children = node.children;
if (children && (n = children.length)) {
var child, n, i = -1;
while (++i < n) {
if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
node = child;
}
}
}
return node;
}
function d3_layout_treeRightmost(a, b) {
return a.x - b.x;
}
function d3_layout_treeLeftmost(a, b) {
return b.x - a.x;
}
function d3_layout_treeDeepest(a, b) {
return a.depth - b.depth;
}
function d3_layout_treeVisitAfter(node, callback) {
function visit(node, previousSibling) {
var children = node.children;
if (children && (n = children.length)) {
var child, previousChild = null, i = -1, n;
while (++i < n) {
child = children[i];
visit(child, previousChild);
previousChild = child;
}
}
callback(node, previousSibling);
}
visit(node, null);
}
function d3_layout_treeShift(node) {
var shift = 0, change = 0, children = node.children, i = children.length, child;
while (--i >= 0) {
child = children[i]._tree;
child.prelim += shift;
child.mod += shift;
shift += child.shift + (change += child.change);
}
}
function d3_layout_treeMove(ancestor, node, shift) {
ancestor = ancestor._tree;
node = node._tree;
var change = shift / (node.number - ancestor.number);
ancestor.change += change;
node.change -= change;
node.shift += shift;
node.prelim += shift;
node.mod += shift;
}
function d3_layout_treeAncestor(vim, node, ancestor) {
return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
}
d3.layout.pack = function() {
var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
function pack(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0];
root.x = 0;
root.y = 0;
d3_layout_treeVisitAfter(root, function(d) {
d.r = Math.sqrt(d.value);
});
d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
if (padding > 0) {
var dr = padding * k / 2;
d3_layout_treeVisitAfter(root, function(d) {
d.r += dr;
});
d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
d3_layout_treeVisitAfter(root, function(d) {
d.r -= dr;
});
k = Math.max(2 * root.r / w, 2 * root.r / h);
}
d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
return nodes;
}
pack.size = function(x) {
if (!arguments.length) return size;
size = x;
return pack;
};
pack.padding = function(_) {
if (!arguments.length) return padding;
padding = +_;
return pack;
};
return d3_layout_hierarchyRebind(pack, hierarchy);
};
function d3_layout_packSort(a, b) {
return a.value - b.value;
}
function d3_layout_packInsert(a, b) {
var c = a._pack_next;
a._pack_next = b;
b._pack_prev = a;
b._pack_next = c;
c._pack_prev = b;
}
function d3_layout_packSplice(a, b) {
a._pack_next = b;
b._pack_prev = a;
}
function d3_layout_packIntersects(a, b) {
var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
return dr * dr - dx * dx - dy * dy > .001;
}
function d3_layout_packSiblings(node) {
if (!(nodes = node.children) || !(n = nodes.length)) return;
var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
function bound(node) {
xMin = Math.min(node.x - node.r, xMin);
xMax = Math.max(node.x + node.r, xMax);
yMin = Math.min(node.y - node.r, yMin);
yMax = Math.max(node.y + node.r, yMax);
}
nodes.forEach(d3_layout_packLink);
a = nodes[0];
a.x = -a.r;
a.y = 0;
bound(a);
if (n > 1) {
b = nodes[1];
b.x = b.r;
b.y = 0;
bound(b);
if (n > 2) {
c = nodes[2];
d3_layout_packPlace(a, b, c);
bound(c);
d3_layout_packInsert(a, c);
a._pack_prev = c;
d3_layout_packInsert(c, b);
b = a._pack_next;
for (i = 3; i < n; i++) {
d3_layout_packPlace(a, b, c = nodes[i]);
var isect = 0, s1 = 1, s2 = 1;
for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
if (d3_layout_packIntersects(j, c)) {
isect = 1;
break;
}
}
if (isect == 1) {
for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
if (d3_layout_packIntersects(k, c)) {
break;
}
}
}
if (isect) {
if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
i--;
} else {
d3_layout_packInsert(a, c);
b = c;
bound(c);
}
}
}
}
var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
for (i = 0; i < n; i++) {
c = nodes[i];
c.x -= cx;
c.y -= cy;
cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
}
node.r = cr;
nodes.forEach(d3_layout_packUnlink);
}
function d3_layout_packLink(node) {
node._pack_next = node._pack_prev = node;
}
function d3_layout_packUnlink(node) {
delete node._pack_next;
delete node._pack_prev;
}
function d3_layout_packTransform(node, x, y, k) {
var children = node.children;
node.x = x += k * node.x;
node.y = y += k * node.y;
node.r *= k;
if (children) {
var i = -1, n = children.length;
while (++i < n) d3_layout_packTransform(children[i], x, y, k);
}
}
function d3_layout_packPlace(a, b, c) {
var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
if (db && (dx || dy)) {
var da = b.r + c.r, dc = dx * dx + dy * dy;
da *= da;
db *= db;
var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
c.x = a.x + x * dx + y * dy;
c.y = a.y + x * dy - y * dx;
} else {
c.x = a.x + db;
c.y = a.y;
}
}
d3.layout.cluster = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
function cluster(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
d3_layout_treeVisitAfter(root, function(node) {
var children = node.children;
if (children && children.length) {
node.x = d3_layout_clusterX(children);
node.y = d3_layout_clusterY(children);
} else {
node.x = previousNode ? x += separation(node, previousNode) : 0;
node.y = 0;
previousNode = node;
}
});
var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
d3_layout_treeVisitAfter(root, function(node) {
node.x = (node.x - x0) / (x1 - x0) * size[0];
node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
});
return nodes;
}
cluster.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return cluster;
};
cluster.size = function(x) {
if (!arguments.length) return size;
size = x;
return cluster;
};
return d3_layout_hierarchyRebind(cluster, hierarchy);
};
function d3_layout_clusterY(children) {
return 1 + d3.max(children, function(child) {
return child.y;
});
}
function d3_layout_clusterX(children) {
return children.reduce(function(x, child) {
return x + child.x;
}, 0) / children.length;
}
function d3_layout_clusterLeft(node) {
var children = node.children;
return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
}
function d3_layout_clusterRight(node) {
var children = node.children, n;
return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
}
d3.layout.treemap = function() {
var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
function scale(children, k) {
var i = -1, n = children.length, child, area;
while (++i < n) {
area = (child = children[i]).value * (k < 0 ? 0 : k);
child.area = isNaN(area) || area <= 0 ? 0 : area;
}
}
function squarify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while ((n = remaining.length) > 0) {
row.push(child = remaining[n - 1]);
row.area += child.area;
if (mode !== "squarify" || (score = worst(row, u)) <= best) {
remaining.pop();
best = score;
} else {
row.area -= row.pop().area;
position(row, u, rect, false);
u = Math.min(rect.dx, rect.dy);
row.length = row.area = 0;
best = Infinity;
}
}
if (row.length) {
position(row, u, rect, true);
row.length = row.area = 0;
}
children.forEach(squarify);
}
}
function stickify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), remaining = children.slice(), child, row = [];
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while (child = remaining.pop()) {
row.push(child);
row.area += child.area;
if (child.z != null) {
position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
row.length = row.area = 0;
}
}
children.forEach(stickify);
}
}
function worst(row, u) {
var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
while (++i < n) {
if (!(r = row[i].area)) continue;
if (r < rmin) rmin = r;
if (r > rmax) rmax = r;
}
s *= s;
u *= u;
return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
}
function position(row, u, rect, flush) {
var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
if (u == rect.dx) {
if (flush || v > rect.dy) v = rect.dy;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dy = v;
x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
}
o.z = true;
o.dx += rect.x + rect.dx - x;
rect.y += v;
rect.dy -= v;
} else {
if (flush || v > rect.dx) v = rect.dx;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dx = v;
y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
}
o.z = false;
o.dy += rect.y + rect.dy - y;
rect.x += v;
rect.dx -= v;
}
}
function treemap(d) {
var nodes = stickies || hierarchy(d), root = nodes[0];
root.x = 0;
root.y = 0;
root.dx = size[0];
root.dy = size[1];
if (stickies) hierarchy.revalue(root);
scale([ root ], root.dx * root.dy / root.value);
(stickies ? stickify : squarify)(root);
if (sticky) stickies = nodes;
return nodes;
}
treemap.size = function(x) {
if (!arguments.length) return size;
size = x;
return treemap;
};
treemap.padding = function(x) {
if (!arguments.length) return padding;
function padFunction(node) {
var p = x.call(treemap, node, node.depth);
return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
}
function padConstant(node) {
return d3_layout_treemapPad(node, x);
}
var type;
pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
padConstant) : padConstant;
return treemap;
};
treemap.round = function(x) {
if (!arguments.length) return round != Number;
round = x ? Math.round : Number;
return treemap;
};
treemap.sticky = function(x) {
if (!arguments.length) return sticky;
sticky = x;
stickies = null;
return treemap;
};
treemap.ratio = function(x) {
if (!arguments.length) return ratio;
ratio = x;
return treemap;
};
treemap.mode = function(x) {
if (!arguments.length) return mode;
mode = x + "";
return treemap;
};
return d3_layout_hierarchyRebind(treemap, hierarchy);
};
function d3_layout_treemapPadNull(node) {
return {
x: node.x,
y: node.y,
dx: node.dx,
dy: node.dy
};
}
function d3_layout_treemapPad(node, padding) {
var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
if (dx < 0) {
x += dx / 2;
dx = 0;
}
if (dy < 0) {
y += dy / 2;
dy = 0;
}
return {
x: x,
y: y,
dx: dx,
dy: dy
};
}
d3.random = {
normal: function(µ, σ) {
var n = arguments.length;
if (n < 2) σ = 1;
if (n < 1) µ = 0;
return function() {
var x, y, r;
do {
x = Math.random() * 2 - 1;
y = Math.random() * 2 - 1;
r = x * x + y * y;
} while (!r || r > 1);
return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
};
},
logNormal: function() {
var random = d3.random.normal.apply(d3, arguments);
return function() {
return Math.exp(random());
};
},
irwinHall: function(m) {
return function() {
for (var s = 0, j = 0; j < m; j++) s += Math.random();
return s / m;
};
}
};
d3.scale = {};
function d3_scaleExtent(domain) {
var start = domain[0], stop = domain[domain.length - 1];
return start < stop ? [ start, stop ] : [ stop, start ];
}
function d3_scaleRange(scale) {
return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
}
function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
return function(x) {
return i(u(x));
};
}
function d3_scale_nice(domain, nice) {
var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
if (x1 < x0) {
dx = i0, i0 = i1, i1 = dx;
dx = x0, x0 = x1, x1 = dx;
}
if (nice = nice(x1 - x0)) {
domain[i0] = nice.floor(x0);
domain[i1] = nice.ceil(x1);
}
return domain;
}
function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
if (domain[k] < domain[0]) {
domain = domain.slice().reverse();
range = range.slice().reverse();
}
while (++j <= k) {
u.push(uninterpolate(domain[j - 1], domain[j]));
i.push(interpolate(range[j - 1], range[j]));
}
return function(x) {
var j = d3.bisect(domain, x, 1, k) - 1;
return i[j](u[j](x));
};
}
d3.scale.linear = function() {
return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
};
function d3_scale_linear(domain, range, interpolate, clamp) {
var output, input;
function rescale() {
var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
output = linear(domain, range, uninterpolate, interpolate);
input = linear(range, domain, uninterpolate, d3_interpolate);
return scale;
}
function scale(x) {
return output(x);
}
scale.invert = function(y) {
return input(y);
};
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.map(Number);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.rangeRound = function(x) {
return scale.range(x).interpolate(d3_interpolateRound);
};
scale.clamp = function(x) {
if (!arguments.length) return clamp;
clamp = x;
return rescale();
};
scale.interpolate = function(x) {
if (!arguments.length) return interpolate;
interpolate = x;
return rescale();
};
scale.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
scale.tickFormat = function(m, format) {
return d3_scale_linearTickFormat(domain, m, format);
};
scale.nice = function() {
d3_scale_nice(domain, d3_scale_linearNice);
return rescale();
};
scale.copy = function() {
return d3_scale_linear(domain, range, interpolate, clamp);
};
return rescale();
}
function d3_scale_linearRebind(scale, linear) {
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
}
function d3_scale_linearNice(dx) {
dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
return dx && {
floor: function(x) {
return Math.floor(x / dx) * dx;
},
ceil: function(x) {
return Math.ceil(x / dx) * dx;
}
};
}
function d3_scale_linearTickRange(domain, m) {
var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
extent[0] = Math.ceil(extent[0] / step) * step;
extent[1] = Math.floor(extent[1] / step) * step + step * .5;
extent[2] = step;
return extent;
}
function d3_scale_linearTicks(domain, m) {
return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
}
function d3_scale_linearTickFormat(domain, m, format) {
var precision = -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01);
return d3.format(format ? format.replace(d3_format_re, function(a, b, c, d, e, f, g, h, i, j) {
return [ b, c, d, e, f, g, h, i || "." + (precision - (j === "%") * 2), j ].join("");
}) : ",." + precision + "f");
}
d3.scale.log = function() {
return d3_scale_log(d3.scale.linear().domain([ 0, Math.LN10 ]), 10, d3_scale_logp, d3_scale_powp, [ 1, 10 ]);
};
function d3_scale_log(linear, base, log, pow, domain) {
function scale(x) {
return linear(log(x));
}
scale.invert = function(x) {
return pow(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return domain;
if (x[0] < 0) log = d3_scale_logn, pow = d3_scale_pown; else log = d3_scale_logp,
pow = d3_scale_powp;
linear.domain((domain = x.map(Number)).map(log));
return scale;
};
scale.base = function(_) {
if (!arguments.length) return base;
base = +_;
return scale;
};
scale.nice = function() {
linear.domain(d3_scale_nice(domain, nice).map(log));
return scale;
};
scale.ticks = function() {
var extent = d3_scaleExtent(linear.domain()), ticks = [];
if (extent.every(isFinite)) {
var b = Math.log(base), i = Math.floor(extent[0] / b), j = Math.ceil(extent[1] / b), u = pow(extent[0]), v = pow(extent[1]), n = base % 1 ? 2 : base;
if (log === d3_scale_logn) {
ticks.push(-Math.pow(base, -i));
for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(-Math.pow(base, -i) * k);
} else {
for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(Math.pow(base, i) * k);
ticks.push(Math.pow(base, i));
}
for (i = 0; ticks[i] < u; i++) {}
for (j = ticks.length; ticks[j - 1] > v; j--) {}
ticks = ticks.slice(i, j);
}
return ticks;
};
scale.tickFormat = function(n, format) {
if (arguments.length < 2) format = d3_scale_logFormat;
if (!arguments.length) return format;
var b = Math.log(base), k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12,
Math.floor) : (e = 1e-12, Math.ceil), e;
return function(d) {
return d / pow(b * f(log(d) / b + e)) <= k ? format(d) : "";
};
};
scale.copy = function() {
return d3_scale_log(linear.copy(), base, log, pow, domain);
};
function nice() {
return log === d3_scale_logp ? {
floor: floor,
ceil: ceil
} : {
floor: function(x) {
return -ceil(-x);
},
ceil: function(x) {
return -floor(-x);
}
};
}
function floor(x) {
return Math.pow(base, Math.floor(Math.log(x) / Math.log(base)));
}
function ceil(x) {
return Math.pow(base, Math.ceil(Math.log(x) / Math.log(base)));
}
return d3_scale_linearRebind(scale, linear);
}
var d3_scale_logFormat = d3.format(".0e");
function d3_scale_logp(x) {
return Math.log(x < 0 ? 0 : x);
}
function d3_scale_powp(x) {
return Math.exp(x);
}
function d3_scale_logn(x) {
return -Math.log(x > 0 ? 0 : -x);
}
function d3_scale_pown(x) {
return -Math.exp(-x);
}
d3.scale.pow = function() {
return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);
};
function d3_scale_pow(linear, exponent, domain) {
var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
function scale(x) {
return linear(powp(x));
}
scale.invert = function(x) {
return powb(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return domain;
linear.domain((domain = x.map(Number)).map(powp));
return scale;
};
scale.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
scale.tickFormat = function(m, format) {
return d3_scale_linearTickFormat(domain, m, format);
};
scale.nice = function() {
return scale.domain(d3_scale_nice(domain, d3_scale_linearNice));
};
scale.exponent = function(x) {
if (!arguments.length) return exponent;
powp = d3_scale_powPow(exponent = x);
powb = d3_scale_powPow(1 / exponent);
linear.domain(domain.map(powp));
return scale;
};
scale.copy = function() {
return d3_scale_pow(linear.copy(), exponent, domain);
};
return d3_scale_linearRebind(scale, linear);
}
function d3_scale_powPow(e) {
return function(x) {
return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
};
}
d3.scale.sqrt = function() {
return d3.scale.pow().exponent(.5);
};
d3.scale.ordinal = function() {
return d3_scale_ordinal([], {
t: "range",
a: [ [] ]
});
};
function d3_scale_ordinal(domain, ranger) {
var index, range, rangeBand;
function scale(x) {
return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
}
function steps(start, step) {
return d3.range(domain.length).map(function(i) {
return start + step * i;
});
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = [];
index = new d3_Map();
var i = -1, n = x.length, xi;
while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
return scale[ranger.t].apply(scale, ranger.a);
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
rangeBand = 0;
ranger = {
t: "range",
a: arguments
};
return scale;
};
scale.rangePoints = function(x, padding) {
if (arguments.length < 2) padding = 0;
var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
rangeBand = Math.abs(step);
ranger = {
t: "rangePoints",
a: arguments
};
return scale;
};
scale.rangeBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
range = steps(start + step * outerPadding, step);
if (reverse) range.reverse();
rangeBand = step * (1 - padding);
ranger = {
t: "rangeBands",
a: arguments
};
return scale;
};
scale.rangeRoundBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
range = steps(start + Math.round(error / 2), step);
if (reverse) range.reverse();
rangeBand = Math.round(step * (1 - padding));
ranger = {
t: "rangeRoundBands",
a: arguments
};
return scale;
};
scale.rangeBand = function() {
return rangeBand;
};
scale.rangeExtent = function() {
return d3_scaleExtent(ranger.a[0]);
};
scale.copy = function() {
return d3_scale_ordinal(domain, ranger);
};
return scale.domain(domain);
}
d3.scale.category10 = function() {
return d3.scale.ordinal().range(d3_category10);
};
d3.scale.category20 = function() {
return d3.scale.ordinal().range(d3_category20);
};
d3.scale.category20b = function() {
return d3.scale.ordinal().range(d3_category20b);
};
d3.scale.category20c = function() {
return d3.scale.ordinal().range(d3_category20c);
};
var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
d3.scale.quantile = function() {
return d3_scale_quantile([], []);
};
function d3_scale_quantile(domain, range) {
var thresholds;
function rescale() {
var k = 0, q = range.length;
thresholds = [];
while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
return scale;
}
function scale(x) {
if (isNaN(x = +x)) return NaN;
return range[d3.bisect(thresholds, x)];
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.filter(function(d) {
return !isNaN(d);
}).sort(d3.ascending);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.quantiles = function() {
return thresholds;
};
scale.copy = function() {
return d3_scale_quantile(domain, range);
};
return rescale();
}
d3.scale.quantize = function() {
return d3_scale_quantize(0, 1, [ 0, 1 ]);
};
function d3_scale_quantize(x0, x1, range) {
var kx, i;
function scale(x) {
return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
}
function rescale() {
kx = range.length / (x1 - x0);
i = range.length - 1;
return scale;
}
scale.domain = function(x) {
if (!arguments.length) return [ x0, x1 ];
x0 = +x[0];
x1 = +x[x.length - 1];
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.copy = function() {
return d3_scale_quantize(x0, x1, range);
};
return rescale();
}
d3.scale.threshold = function() {
return d3_scale_threshold([ .5 ], [ 0, 1 ]);
};
function d3_scale_threshold(domain, range) {
function scale(x) {
return range[d3.bisect(domain, x)];
}
scale.domain = function(_) {
if (!arguments.length) return domain;
domain = _;
return scale;
};
scale.range = function(_) {
if (!arguments.length) return range;
range = _;
return scale;
};
scale.copy = function() {
return d3_scale_threshold(domain, range);
};
return scale;
}
d3.scale.identity = function() {
return d3_scale_identity([ 0, 1 ]);
};
function d3_scale_identity(domain) {
function identity(x) {
return +x;
}
identity.invert = identity;
identity.domain = identity.range = function(x) {
if (!arguments.length) return domain;
domain = x.map(identity);
return identity;
};
identity.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
identity.tickFormat = function(m, format) {
return d3_scale_linearTickFormat(domain, m, format);
};
identity.copy = function() {
return d3_scale_identity(domain);
};
return identity;
}
d3.svg.arc = function() {
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
function arc() {
var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0,
a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
}
arc.innerRadius = function(v) {
if (!arguments.length) return innerRadius;
innerRadius = d3_functor(v);
return arc;
};
arc.outerRadius = function(v) {
if (!arguments.length) return outerRadius;
outerRadius = d3_functor(v);
return arc;
};
arc.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return arc;
};
arc.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return arc;
};
arc.centroid = function() {
var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
return [ Math.cos(a) * r, Math.sin(a) * r ];
};
return arc;
};
var d3_svg_arcOffset = -π / 2, d3_svg_arcMax = 2 * π - 1e-6;
function d3_svg_arcInnerRadius(d) {
return d.innerRadius;
}
function d3_svg_arcOuterRadius(d) {
return d.outerRadius;
}
function d3_svg_arcStartAngle(d) {
return d.startAngle;
}
function d3_svg_arcEndAngle(d) {
return d.endAngle;
}
d3.svg.line.radial = function() {
var line = d3_svg_line(d3_svg_lineRadial);
line.radius = line.x, delete line.x;
line.angle = line.y, delete line.y;
return line;
};
function d3_svg_lineRadial(points) {
var point, i = -1, n = points.length, r, a;
while (++i < n) {
point = points[i];
r = point[0];
a = point[1] + d3_svg_arcOffset;
point[0] = r * Math.cos(a);
point[1] = r * Math.sin(a);
}
return points;
}
function d3_svg_area(projection) {
var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
function area(data) {
var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
return x;
} : d3_functor(x1), fy1 = y0 === y1 ? function() {
return y;
} : d3_functor(y1), x, y;
function segment() {
segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
} else if (points0.length) {
segment();
points0 = [];
points1 = [];
}
}
if (points0.length) segment();
return segments.length ? segments.join("") : null;
}
area.x = function(_) {
if (!arguments.length) return x1;
x0 = x1 = _;
return area;
};
area.x0 = function(_) {
if (!arguments.length) return x0;
x0 = _;
return area;
};
area.x1 = function(_) {
if (!arguments.length) return x1;
x1 = _;
return area;
};
area.y = function(_) {
if (!arguments.length) return y1;
y0 = y1 = _;
return area;
};
area.y0 = function(_) {
if (!arguments.length) return y0;
y0 = _;
return area;
};
area.y1 = function(_) {
if (!arguments.length) return y1;
y1 = _;
return area;
};
area.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return area;
};
area.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
interpolateReverse = interpolate.reverse || interpolate;
L = interpolate.closed ? "M" : "L";
return area;
};
area.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return area;
};
return area;
}
d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
d3.svg.area = function() {
return d3_svg_area(d3_identity);
};
d3.svg.area.radial = function() {
var area = d3_svg_area(d3_svg_lineRadial);
area.radius = area.x, delete area.x;
area.innerRadius = area.x0, delete area.x0;
area.outerRadius = area.x1, delete area.x1;
area.angle = area.y, delete area.y;
area.startAngle = area.y0, delete area.y0;
area.endAngle = area.y1, delete area.y1;
return area;
};
d3.svg.chord = function() {
var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
function chord(d, i) {
var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
}
function subgroup(self, f, d, i) {
var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
return {
r: r,
a0: a0,
a1: a1,
p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
};
}
function equals(a, b) {
return a.a0 == b.a0 && a.a1 == b.a1;
}
function arc(r, p, a) {
return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
}
function curve(r0, p0, r1, p1) {
return "Q 0,0 " + p1;
}
chord.radius = function(v) {
if (!arguments.length) return radius;
radius = d3_functor(v);
return chord;
};
chord.source = function(v) {
if (!arguments.length) return source;
source = d3_functor(v);
return chord;
};
chord.target = function(v) {
if (!arguments.length) return target;
target = d3_functor(v);
return chord;
};
chord.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return chord;
};
chord.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return chord;
};
return chord;
};
function d3_svg_chordRadius(d) {
return d.radius;
}
d3.svg.diagonal = function() {
var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
function diagonal(d, i) {
var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
x: p0.x,
y: m
}, {
x: p3.x,
y: m
}, p3 ];
p = p.map(projection);
return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
}
diagonal.source = function(x) {
if (!arguments.length) return source;
source = d3_functor(x);
return diagonal;
};
diagonal.target = function(x) {
if (!arguments.length) return target;
target = d3_functor(x);
return diagonal;
};
diagonal.projection = function(x) {
if (!arguments.length) return projection;
projection = x;
return diagonal;
};
return diagonal;
};
function d3_svg_diagonalProjection(d) {
return [ d.x, d.y ];
}
d3.svg.diagonal.radial = function() {
var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
diagonal.projection = function(x) {
return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
};
return diagonal;
};
function d3_svg_diagonalRadialProjection(projection) {
return function() {
var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
return [ r * Math.cos(a), r * Math.sin(a) ];
};
}
d3.svg.symbol = function() {
var type = d3_svg_symbolType, size = d3_svg_symbolSize;
function symbol(d, i) {
return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
}
symbol.type = function(x) {
if (!arguments.length) return type;
type = d3_functor(x);
return symbol;
};
symbol.size = function(x) {
if (!arguments.length) return size;
size = d3_functor(x);
return symbol;
};
return symbol;
};
function d3_svg_symbolSize() {
return 64;
}
function d3_svg_symbolType() {
return "circle";
}
function d3_svg_symbolCircle(size) {
var r = Math.sqrt(size / π);
return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
}
var d3_svg_symbols = d3.map({
circle: d3_svg_symbolCircle,
cross: function(size) {
var r = Math.sqrt(size / 5) / 2;
return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
},
diamond: function(size) {
var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
},
square: function(size) {
var r = Math.sqrt(size) / 2;
return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
},
"triangle-down": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
},
"triangle-up": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
}
});
d3.svg.symbolTypes = d3_svg_symbols.keys();
var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
function d3_transition(groups, id) {
d3_arraySubclass(groups, d3_transitionPrototype);
groups.id = id;
return groups;
}
var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = {
ease: d3_ease_cubicInOut,
delay: 0,
duration: 250
};
d3_transitionPrototype.call = d3_selectionPrototype.call;
d3_transitionPrototype.empty = d3_selectionPrototype.empty;
d3_transitionPrototype.node = d3_selectionPrototype.node;
d3.transition = function(selection) {
return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();
};
d3.transition.prototype = d3_transitionPrototype;
d3_transitionPrototype.select = function(selector) {
var id = this.id, subgroups = [], subgroup, subnode, node;
if (typeof selector !== "function") selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) {
if ("__data__" in node) subnode.__data__ = node.__data__;
d3_transitionNode(subnode, i, id, node.__transition__[id]);
subgroup.push(subnode);
} else {
subgroup.push(null);
}
}
}
return d3_transition(subgroups, id);
};
d3_transitionPrototype.selectAll = function(selector) {
var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
transition = node.__transition__[id];
subnodes = selector.call(node, node.__data__, i);
subgroups.push(subgroup = []);
for (var k = -1, o = subnodes.length; ++k < o; ) {
d3_transitionNode(subnode = subnodes[k], k, id, transition);
subgroup.push(subnode);
}
}
}
}
return d3_transition(subgroups, id);
};
d3_transitionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i)) {
subgroup.push(node);
}
}
}
return d3_transition(subgroups, this.id, this.time).ease(this.ease());
};
d3_transitionPrototype.tween = function(name, tween) {
var id = this.id;
if (arguments.length < 2) return this.node().__transition__[id].tween.get(name);
return d3_selection_each(this, tween == null ? function(node) {
node.__transition__[id].tween.remove(name);
} : function(node) {
node.__transition__[id].tween.set(name, tween);
});
};
function d3_transition_tween(groups, name, value, tween) {
var id = groups.id;
return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
} : (value = tween(value), function(node) {
node.__transition__[id].tween.set(name, value);
}));
}
d3_transitionPrototype.attr = function(nameNS, value) {
if (arguments.length < 2) {
for (value in nameNS) this.attr(value, nameNS[value]);
return this;
}
var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
function attrTween(b) {
return b == null ? attrNull : (b += "", function() {
var a = this.getAttribute(name), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttribute(name, i(t));
});
});
}
function attrTweenNS(b) {
return b == null ? attrNullNS : (b += "", function() {
var a = this.getAttributeNS(name.space, name.local), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttributeNS(name.space, name.local, i(t));
});
});
}
return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween);
};
d3_transitionPrototype.attrTween = function(nameNS, tween) {
var name = d3.ns.qualify(nameNS);
function attrTween(d, i) {
var f = tween.call(this, d, i, this.getAttribute(name));
return f && function(t) {
this.setAttribute(name, f(t));
};
}
function attrTweenNS(d, i) {
var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
return f && function(t) {
this.setAttributeNS(name.space, name.local, f(t));
};
}
return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
};
d3_transitionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.style(priority, name[priority], value);
return this;
}
priority = "";
}
var interpolate = d3_interpolateByName(name);
function styleNull() {
this.style.removeProperty(name);
}
function styleString(b) {
return b == null ? styleNull : (b += "", function() {
var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.style.setProperty(name, i(t), priority);
});
});
}
return d3_transition_tween(this, "style." + name, value, styleString);
};
d3_transitionPrototype.styleTween = function(name, tween, priority) {
if (arguments.length < 3) priority = "";
function styleTween(d, i) {
var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name));
return f && function(t) {
this.style.setProperty(name, f(t), priority);
};
}
return this.tween("style." + name, styleTween);
};
d3_transitionPrototype.text = function(value) {
return d3_transition_tween(this, "text", value, d3_transition_text);
};
function d3_transition_text(b) {
if (b == null) b = "";
return function() {
this.textContent = b;
};
}
d3_transitionPrototype.remove = function() {
return this.each("end.transition", function() {
var p;
if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
});
};
d3_transitionPrototype.ease = function(value) {
var id = this.id;
if (arguments.length < 1) return this.node().__transition__[id].ease;
if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
return d3_selection_each(this, function(node) {
node.__transition__[id].ease = value;
});
};
d3_transitionPrototype.delay = function(value) {
var id = this.id;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0;
} : (value |= 0, function(node) {
node.__transition__[id].delay = value;
}));
};
d3_transitionPrototype.duration = function(value) {
var id = this.id;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0);
} : (value = Math.max(1, value | 0), function(node) {
node.__transition__[id].duration = value;
}));
};
d3_transitionPrototype.each = function(type, listener) {
var id = this.id;
if (arguments.length < 2) {
var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
d3_transitionInheritId = id;
d3_selection_each(this, function(node, i, j) {
d3_transitionInherit = node.__transition__[id];
type.call(node, node.__data__, i, j);
});
d3_transitionInherit = inherit;
d3_transitionInheritId = inheritId;
} else {
d3_selection_each(this, function(node) {
node.__transition__[id].event.on(type, listener);
});
}
return this;
};
d3_transitionPrototype.transition = function() {
var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if (node = group[i]) {
transition = Object.create(node.__transition__[id0]);
transition.delay += transition.duration;
d3_transitionNode(node, i, id1, transition);
}
subgroup.push(node);
}
}
return d3_transition(subgroups, id1);
};
function d3_transitionNode(node, i, id, inherit) {
var lock = node.__transition__ || (node.__transition__ = {
active: 0,
count: 0
}), transition = lock[id];
if (!transition) {
var time = inherit.time;
transition = lock[id] = {
tween: new d3_Map(),
event: d3.dispatch("start", "end"),
time: time,
ease: inherit.ease,
delay: inherit.delay,
duration: inherit.duration
};
++lock.count;
d3.timer(function(elapsed) {
var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = [];
return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1;
function start(elapsed) {
if (lock.active > id) return stop();
lock.active = id;
event.start.call(node, d, i);
transition.tween.forEach(function(key, value) {
if (value = value.call(node, d, i)) {
tweened.push(value);
}
});
if (!tick(elapsed)) d3.timer(tick, 0, time);
return 1;
}
function tick(elapsed) {
if (lock.active !== id) return stop();
var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
while (n > 0) {
tweened[--n].call(node, e);
}
if (t >= 1) {
stop();
event.end.call(node, d, i);
return 1;
}
}
function stop() {
if (--lock.count) delete lock[id]; else delete node.__transition__;
return 1;
}
}, 0, time);
return transition;
}
}
d3.svg.axis = function() {
var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
function axis(g) {
g.each(function() {
var g = d3.select(this);
var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".tick.minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", ".tick").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
var tick = g.selectAll(".tick.major").data(ticks, String), tickEnter = tick.enter().insert("g", "path").attr("class", "tick major").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
d3.transition(path));
var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
this.__chart__ = scale1;
tickEnter.append("line");
tickEnter.append("text");
var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
switch (orient) {
case "bottom":
{
tickTransform = d3_svg_axisX;
subtickEnter.attr("y2", tickMinorSize);
subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
lineEnter.attr("y2", tickMajorSize);
textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
text.attr("dy", ".71em").style("text-anchor", "middle");
pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
break;
}
case "top":
{
tickTransform = d3_svg_axisX;
subtickEnter.attr("y2", -tickMinorSize);
subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
lineEnter.attr("y2", -tickMajorSize);
textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
text.attr("dy", "0em").style("text-anchor", "middle");
pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
break;
}
case "left":
{
tickTransform = d3_svg_axisY;
subtickEnter.attr("x2", -tickMinorSize);
subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
lineEnter.attr("x2", -tickMajorSize);
textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
text.attr("dy", ".32em").style("text-anchor", "end");
pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
break;
}
case "right":
{
tickTransform = d3_svg_axisY;
subtickEnter.attr("x2", tickMinorSize);
subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
lineEnter.attr("x2", tickMajorSize);
textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
text.attr("dy", ".32em").style("text-anchor", "start");
pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
break;
}
}
if (scale.ticks) {
tickEnter.call(tickTransform, scale0);
tickUpdate.call(tickTransform, scale1);
tickExit.call(tickTransform, scale1);
subtickEnter.call(tickTransform, scale0);
subtickUpdate.call(tickTransform, scale1);
subtickExit.call(tickTransform, scale1);
} else {
var dx = scale1.rangeBand() / 2, x = function(d) {
return scale1(d) + dx;
};
tickEnter.call(tickTransform, x);
tickUpdate.call(tickTransform, x);
}
});
}
axis.scale = function(x) {
if (!arguments.length) return scale;
scale = x;
return axis;
};
axis.orient = function(x) {
if (!arguments.length) return orient;
orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
return axis;
};
axis.ticks = function() {
if (!arguments.length) return tickArguments_;
tickArguments_ = arguments;
return axis;
};
axis.tickValues = function(x) {
if (!arguments.length) return tickValues;
tickValues = x;
return axis;
};
axis.tickFormat = function(x) {
if (!arguments.length) return tickFormat_;
tickFormat_ = x;
return axis;
};
axis.tickSize = function(x, y) {
if (!arguments.length) return tickMajorSize;
var n = arguments.length - 1;
tickMajorSize = +x;
tickMinorSize = n > 1 ? +y : tickMajorSize;
tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
return axis;
};
axis.tickPadding = function(x) {
if (!arguments.length) return tickPadding;
tickPadding = +x;
return axis;
};
axis.tickSubdivide = function(x) {
if (!arguments.length) return tickSubdivide;
tickSubdivide = +x;
return axis;
};
return axis;
};
var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
top: 1,
right: 1,
bottom: 1,
left: 1
};
function d3_svg_axisX(selection, x) {
selection.attr("transform", function(d) {
return "translate(" + x(d) + ",0)";
});
}
function d3_svg_axisY(selection, y) {
selection.attr("transform", function(d) {
return "translate(0," + y(d) + ")";
});
}
function d3_svg_axisSubdivide(scale, ticks, m) {
subticks = [];
if (m && ticks.length > 1) {
var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
while (++i < n) {
for (j = m; --j > 0; ) {
if ((v = +ticks[i] - j * d) >= extent[0]) {
subticks.push(v);
}
}
}
for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
subticks.push(v);
}
}
return subticks;
}
d3.svg.brush = function() {
var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
function brush(g) {
g.each(function() {
var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
tz.enter().append("g").attr("class", function(d) {
return "resize " + d;
}).style("cursor", function(d) {
return d3_svg_brushCursor[d];
}).append("rect").attr("x", function(d) {
return /[ew]$/.test(d) ? -3 : null;
}).attr("y", function(d) {
return /^[ns]/.test(d) ? -3 : null;
}).attr("width", 6).attr("height", 6).style("visibility", "hidden");
tz.style("display", brush.empty() ? "none" : null);
tz.exit().remove();
if (x) {
e = d3_scaleRange(x);
bg.attr("x", e[0]).attr("width", e[1] - e[0]);
redrawX(g);
}
if (y) {
e = d3_scaleRange(y);
bg.attr("y", e[0]).attr("height", e[1] - e[0]);
redrawY(g);
}
redraw(g);
});
}
function redraw(g) {
g.selectAll(".resize").attr("transform", function(d) {
return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
});
}
function redrawX(g) {
g.select(".extent").attr("x", extent[0][0]);
g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
}
function redrawY(g) {
g.select(".extent").attr("y", extent[0][1]);
g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
}
function brushstart() {
var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
if (dragging) {
origin[0] = extent[0][0] - origin[0];
origin[1] = extent[0][1] - origin[1];
} else if (resizing) {
var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
origin[0] = extent[ex][0];
origin[1] = extent[ey][1];
} else if (d3.event.altKey) center = origin.slice();
g.style("pointer-events", "none").selectAll(".resize").style("display", null);
d3.select("body").style("cursor", eventTarget.style("cursor"));
event_({
type: "brushstart"
});
brushmove();
d3_eventCancel();
function mouse() {
var touches = d3.event.changedTouches;
return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
}
function keydown() {
if (d3.event.keyCode == 32) {
if (!dragging) {
center = null;
origin[0] -= extent[1][0];
origin[1] -= extent[1][1];
dragging = 2;
}
d3_eventCancel();
}
}
function keyup() {
if (d3.event.keyCode == 32 && dragging == 2) {
origin[0] += extent[1][0];
origin[1] += extent[1][1];
dragging = 0;
d3_eventCancel();
}
}
function brushmove() {
var point = mouse(), moved = false;
if (offset) {
point[0] += offset[0];
point[1] += offset[1];
}
if (!dragging) {
if (d3.event.altKey) {
if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
origin[0] = extent[+(point[0] < center[0])][0];
origin[1] = extent[+(point[1] < center[1])][1];
} else center = null;
}
if (resizingX && move1(point, x, 0)) {
redrawX(g);
moved = true;
}
if (resizingY && move1(point, y, 1)) {
redrawY(g);
moved = true;
}
if (moved) {
redraw(g);
event_({
type: "brush",
mode: dragging ? "move" : "resize"
});
}
}
function move1(point, scale, i) {
var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
if (dragging) {
r0 -= position;
r1 -= size + position;
}
min = Math.max(r0, Math.min(r1, point[i]));
if (dragging) {
max = (min += position) + size;
} else {
if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
if (position < min) {
max = min;
min = position;
} else {
max = position;
}
}
if (extent[0][i] !== min || extent[1][i] !== max) {
extentDomain = null;
extent[0][i] = min;
extent[1][i] = max;
return true;
}
}
function brushend() {
brushmove();
g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
d3.select("body").style("cursor", null);
w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
event_({
type: "brushend"
});
d3_eventCancel();
}
}
brush.x = function(z) {
if (!arguments.length) return x;
x = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.y = function(z) {
if (!arguments.length) return y;
y = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.extent = function(z) {
var x0, x1, y0, y1, t;
if (!arguments.length) {
z = extentDomain || extent;
if (x) {
x0 = z[0][0], x1 = z[1][0];
if (!extentDomain) {
x0 = extent[0][0], x1 = extent[1][0];
if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
}
}
if (y) {
y0 = z[0][1], y1 = z[1][1];
if (!extentDomain) {
y0 = extent[0][1], y1 = extent[1][1];
if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
}
}
return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
}
extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
if (x) {
x0 = z[0], x1 = z[1];
if (y) x0 = x0[0], x1 = x1[0];
extentDomain[0][0] = x0, extentDomain[1][0] = x1;
if (x.invert) x0 = x(x0), x1 = x(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
}
if (y) {
y0 = z[0], y1 = z[1];
if (x) y0 = y0[1], y1 = y1[1];
extentDomain[0][1] = y0, extentDomain[1][1] = y1;
if (y.invert) y0 = y(y0), y1 = y(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
}
return brush;
};
brush.clear = function() {
extentDomain = null;
extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
return brush;
};
brush.empty = function() {
return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
};
return d3.rebind(brush, event, "on");
};
var d3_svg_brushCursor = {
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 d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
d3.time = {};
var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
function d3_time_utc() {
this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
}
d3_time_utc.prototype = {
getDate: function() {
return this._.getUTCDate();
},
getDay: function() {
return this._.getUTCDay();
},
getFullYear: function() {
return this._.getUTCFullYear();
},
getHours: function() {
return this._.getUTCHours();
},
getMilliseconds: function() {
return this._.getUTCMilliseconds();
},
getMinutes: function() {
return this._.getUTCMinutes();
},
getMonth: function() {
return this._.getUTCMonth();
},
getSeconds: function() {
return this._.getUTCSeconds();
},
getTime: function() {
return this._.getTime();
},
getTimezoneOffset: function() {
return 0;
},
valueOf: function() {
return this._.valueOf();
},
setDate: function() {
d3_time_prototype.setUTCDate.apply(this._, arguments);
},
setDay: function() {
d3_time_prototype.setUTCDay.apply(this._, arguments);
},
setFullYear: function() {
d3_time_prototype.setUTCFullYear.apply(this._, arguments);
},
setHours: function() {
d3_time_prototype.setUTCHours.apply(this._, arguments);
},
setMilliseconds: function() {
d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
},
setMinutes: function() {
d3_time_prototype.setUTCMinutes.apply(this._, arguments);
},
setMonth: function() {
d3_time_prototype.setUTCMonth.apply(this._, arguments);
},
setSeconds: function() {
d3_time_prototype.setUTCSeconds.apply(this._, arguments);
},
setTime: function() {
d3_time_prototype.setTime.apply(this._, arguments);
}
};
var d3_time_prototype = Date.prototype;
var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S";
var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
function d3_time_interval(local, step, number) {
function round(date) {
var d0 = local(date), d1 = offset(d0, 1);
return date - d0 < d1 - date ? d0 : d1;
}
function ceil(date) {
step(date = local(new d3_time(date - 1)), 1);
return date;
}
function offset(date, k) {
step(date = new d3_time(+date), k);
return date;
}
function range(t0, t1, dt) {
var time = ceil(t0), times = [];
if (dt > 1) {
while (time < t1) {
if (!(number(time) % dt)) times.push(new Date(+time));
step(time, 1);
}
} else {
while (time < t1) times.push(new Date(+time)), step(time, 1);
}
return times;
}
function range_utc(t0, t1, dt) {
try {
d3_time = d3_time_utc;
var utc = new d3_time_utc();
utc._ = t0;
return range(utc, t1, dt);
} finally {
d3_time = Date;
}
}
local.floor = local;
local.round = round;
local.ceil = ceil;
local.offset = offset;
local.range = range;
var utc = local.utc = d3_time_interval_utc(local);
utc.floor = utc;
utc.round = d3_time_interval_utc(round);
utc.ceil = d3_time_interval_utc(ceil);
utc.offset = d3_time_interval_utc(offset);
utc.range = range_utc;
return local;
}
function d3_time_interval_utc(method) {
return function(date, k) {
try {
d3_time = d3_time_utc;
var utc = new d3_time_utc();
utc._ = date;
return method(utc, k)._;
} finally {
d3_time = Date;
}
};
}
d3.time.year = d3_time_interval(function(date) {
date = d3.time.day(date);
date.setMonth(0, 1);
return date;
}, function(date, offset) {
date.setFullYear(date.getFullYear() + offset);
}, function(date) {
return date.getFullYear();
});
d3.time.years = d3.time.year.range;
d3.time.years.utc = d3.time.year.utc.range;
d3.time.day = d3_time_interval(function(date) {
var day = new d3_time(1970, 0);
day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
return day;
}, function(date, offset) {
date.setDate(date.getDate() + offset);
}, function(date) {
return date.getDate() - 1;
});
d3.time.days = d3.time.day.range;
d3.time.days.utc = d3.time.day.utc.range;
d3.time.dayOfYear = function(date) {
var year = d3.time.year(date);
return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
};
d3_time_daySymbols.forEach(function(day, i) {
day = day.toLowerCase();
i = 7 - i;
var interval = d3.time[day] = d3_time_interval(function(date) {
(date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
return date;
}, function(date, offset) {
date.setDate(date.getDate() + Math.floor(offset) * 7);
}, function(date) {
var day = d3.time.year(date).getDay();
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
});
d3.time[day + "s"] = interval.range;
d3.time[day + "s"].utc = interval.utc.range;
d3.time[day + "OfYear"] = function(date) {
var day = d3.time.year(date).getDay();
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
};
});
d3.time.week = d3.time.sunday;
d3.time.weeks = d3.time.sunday.range;
d3.time.weeks.utc = d3.time.sunday.utc.range;
d3.time.weekOfYear = d3.time.sundayOfYear;
d3.time.format = function(template) {
var n = template.length;
function format(date) {
var string = [], i = -1, j = 0, c, p, f;
while (++i < n) {
if (template.charCodeAt(i) === 37) {
string.push(template.substring(j, i));
if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
string.push(c);
j = i + 1;
}
}
string.push(template.substring(j, i));
return string.join("");
}
format.parse = function(string) {
var d = {
y: 1900,
m: 0,
d: 1,
H: 0,
M: 0,
S: 0,
L: 0
}, i = d3_time_parse(d, template, string, 0);
if (i != string.length) return null;
if ("p" in d) d.H = d.H % 12 + d.p * 12;
var date = new d3_time();
date.setFullYear(d.y, d.m, d.d);
date.setHours(d.H, d.M, d.S, d.L);
return date;
};
format.toString = function() {
return template;
};
return format;
};
function d3_time_parse(date, template, string, j) {
var c, p, i = 0, n = template.length, m = string.length;
while (i < n) {
if (j >= m) return -1;
c = template.charCodeAt(i++);
if (c === 37) {
p = d3_time_parsers[template.charAt(i++)];
if (!p || (j = p(date, string, j)) < 0) return -1;
} else if (c != string.charCodeAt(j++)) {
return -1;
}
}
return j;
}
function d3_time_formatRe(names) {
return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
}
function d3_time_formatLookup(names) {
var map = new d3_Map(), i = -1, n = names.length;
while (++i < n) map.set(names[i].toLowerCase(), i);
return map;
}
function d3_time_formatPad(value, fill, width) {
value += "";
var length = value.length;
return length < width ? new Array(width - length + 1).join(fill) + value : value;
}
var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
var d3_time_formatPads = {
"-": "",
_: " ",
"0": "0"
};
var d3_time_formats = {
a: function(d) {
return d3_time_dayAbbreviations[d.getDay()];
},
A: function(d) {
return d3_time_days[d.getDay()];
},
b: function(d) {
return d3_time_monthAbbreviations[d.getMonth()];
},
B: function(d) {
return d3_time_months[d.getMonth()];
},
c: d3.time.format(d3_time_formatDateTime),
d: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
e: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
H: function(d, p) {
return d3_time_formatPad(d.getHours(), p, 2);
},
I: function(d, p) {
return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
},
j: function(d, p) {
return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3);
},
L: function(d, p) {
return d3_time_formatPad(d.getMilliseconds(), p, 3);
},
m: function(d, p) {
return d3_time_formatPad(d.getMonth() + 1, p, 2);
},
M: function(d, p) {
return d3_time_formatPad(d.getMinutes(), p, 2);
},
p: function(d) {
return d.getHours() >= 12 ? "PM" : "AM";
},
S: function(d, p) {
return d3_time_formatPad(d.getSeconds(), p, 2);
},
U: function(d, p) {
return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2);
},
w: function(d) {
return d.getDay();
},
W: function(d, p) {
return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2);
},
x: d3.time.format(d3_time_formatDate),
X: d3.time.format(d3_time_formatTime),
y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 100, p, 2);
},
Y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
},
Z: d3_time_zone,
"%": function() {
return "%";
}
};
var d3_time_parsers = {
a: d3_time_parseWeekdayAbbrev,
A: d3_time_parseWeekday,
b: d3_time_parseMonthAbbrev,
B: d3_time_parseMonth,
c: d3_time_parseLocaleFull,
d: d3_time_parseDay,
e: d3_time_parseDay,
H: d3_time_parseHour24,
I: d3_time_parseHour24,
L: d3_time_parseMilliseconds,
m: d3_time_parseMonthNumber,
M: d3_time_parseMinutes,
p: d3_time_parseAmPm,
S: d3_time_parseSeconds,
x: d3_time_parseLocaleDate,
X: d3_time_parseLocaleTime,
y: d3_time_parseYear,
Y: d3_time_parseFullYear
};
function d3_time_parseWeekdayAbbrev(date, string, i) {
d3_time_dayAbbrevRe.lastIndex = 0;
var n = d3_time_dayAbbrevRe.exec(string.substring(i));
return n ? i += n[0].length : -1;
}
function d3_time_parseWeekday(date, string, i) {
d3_time_dayRe.lastIndex = 0;
var n = d3_time_dayRe.exec(string.substring(i));
return n ? i += n[0].length : -1;
}
function d3_time_parseMonthAbbrev(date, string, i) {
d3_time_monthAbbrevRe.lastIndex = 0;
var n = d3_time_monthAbbrevRe.exec(string.substring(i));
return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
}
function d3_time_parseMonth(date, string, i) {
d3_time_monthRe.lastIndex = 0;
var n = d3_time_monthRe.exec(string.substring(i));
return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
}
function d3_time_parseLocaleFull(date, string, i) {
return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
}
function d3_time_parseLocaleDate(date, string, i) {
return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
}
function d3_time_parseLocaleTime(date, string, i) {
return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
}
function d3_time_parseFullYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 4));
return n ? (date.y = +n[0], i += n[0].length) : -1;
}
function d3_time_parseYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
}
function d3_time_expandYear(d) {
return d + (d > 68 ? 1900 : 2e3);
}
function d3_time_parseMonthNumber(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
}
function d3_time_parseDay(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.d = +n[0], i += n[0].length) : -1;
}
function d3_time_parseHour24(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.H = +n[0], i += n[0].length) : -1;
}
function d3_time_parseMinutes(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.M = +n[0], i += n[0].length) : -1;
}
function d3_time_parseSeconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.S = +n[0], i += n[0].length) : -1;
}
function d3_time_parseMilliseconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 3));
return n ? (date.L = +n[0], i += n[0].length) : -1;
}
var d3_time_numberRe = /^\s*\d+/;
function d3_time_parseAmPm(date, string, i) {
var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
return n == null ? -1 : (date.p = n, i);
}
var d3_time_amPmLookup = d3.map({
am: 0,
pm: 1
});
function d3_time_zone(d) {
var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
}
d3.time.format.utc = function(template) {
var local = d3.time.format(template);
function format(date) {
try {
d3_time = d3_time_utc;
var utc = new d3_time();
utc._ = date;
return local(utc);
} finally {
d3_time = Date;
}
}
format.parse = function(string) {
try {
d3_time = d3_time_utc;
var date = local.parse(string);
return date && date._;
} finally {
d3_time = Date;
}
};
format.toString = local.toString;
return format;
};
var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
d3.time.format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
function d3_time_formatIsoNative(date) {
return date.toISOString();
}
d3_time_formatIsoNative.parse = function(string) {
var date = new Date(string);
return isNaN(date) ? null : date;
};
d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
d3.time.second = d3_time_interval(function(date) {
return new d3_time(Math.floor(date / 1e3) * 1e3);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 1e3);
}, function(date) {
return date.getSeconds();
});
d3.time.seconds = d3.time.second.range;
d3.time.seconds.utc = d3.time.second.utc.range;
d3.time.minute = d3_time_interval(function(date) {
return new d3_time(Math.floor(date / 6e4) * 6e4);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 6e4);
}, function(date) {
return date.getMinutes();
});
d3.time.minutes = d3.time.minute.range;
d3.time.minutes.utc = d3.time.minute.utc.range;
d3.time.hour = d3_time_interval(function(date) {
var timezone = date.getTimezoneOffset() / 60;
return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 36e5);
}, function(date) {
return date.getHours();
});
d3.time.hours = d3.time.hour.range;
d3.time.hours.utc = d3.time.hour.utc.range;
d3.time.month = d3_time_interval(function(date) {
date = d3.time.day(date);
date.setDate(1);
return date;
}, function(date, offset) {
date.setMonth(date.getMonth() + offset);
}, function(date) {
return date.getMonth();
});
d3.time.months = d3.time.month.range;
d3.time.months.utc = d3.time.month.utc.range;
function d3_time_scale(linear, methods, format) {
function scale(x) {
return linear(x);
}
scale.invert = function(x) {
return d3_time_scaleDate(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
linear.domain(x);
return scale;
};
scale.nice = function(m) {
return scale.domain(d3_scale_nice(scale.domain(), function() {
return m;
}));
};
scale.ticks = function(m, k) {
var extent = d3_scaleExtent(scale.domain());
if (typeof m !== "function") {
var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
if (!i) return linear.ticks(m).map(d3_time_scaleDate);
if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
m = methods[i];
k = m[1];
m = m[0].range;
}
return m(extent[0], new Date(+extent[1] + 1), k);
};
scale.tickFormat = function() {
return format;
};
scale.copy = function() {
return d3_time_scale(linear.copy(), methods, format);
};
return d3_scale_linearRebind(scale, linear);
}
function d3_time_scaleDate(t) {
return new Date(t);
}
function d3_time_scaleFormat(formats) {
return function(date) {
var i = formats.length - 1, f = formats[i];
while (!f[1](date)) f = formats[--i];
return f[0](date);
};
}
function d3_time_scaleSetYear(y) {
var d = new Date(y, 0, 1);
d.setFullYear(y);
return d;
}
function d3_time_scaleGetYear(d) {
var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
return y + (d - d0) / (d1 - d0);
}
var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) {
return d.getMonth();
} ], [ d3.time.format("%b %d"), function(d) {
return d.getDate() != 1;
} ], [ d3.time.format("%a %d"), function(d) {
return d.getDay() && d.getDate() != 1;
} ], [ d3.time.format("%I %p"), function(d) {
return d.getHours();
} ], [ d3.time.format("%I:%M"), function(d) {
return d.getMinutes();
} ], [ d3.time.format(":%S"), function(d) {
return d.getSeconds();
} ], [ d3.time.format(".%L"), function(d) {
return d.getMilliseconds();
} ] ];
var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
d3_time_scaleLocalMethods.year = function(extent, m) {
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
};
d3.time.scale = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
};
var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
return [ m[0].utc, m[1] ];
});
var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) {
return d.getUTCMonth();
} ], [ d3.time.format.utc("%b %d"), function(d) {
return d.getUTCDate() != 1;
} ], [ d3.time.format.utc("%a %d"), function(d) {
return d.getUTCDay() && d.getUTCDate() != 1;
} ], [ d3.time.format.utc("%I %p"), function(d) {
return d.getUTCHours();
} ], [ d3.time.format.utc("%I:%M"), function(d) {
return d.getUTCMinutes();
} ], [ d3.time.format.utc(":%S"), function(d) {
return d.getUTCSeconds();
} ], [ d3.time.format.utc(".%L"), function(d) {
return d.getUTCMilliseconds();
} ] ];
var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
function d3_time_scaleUTCSetYear(y) {
var d = new Date(Date.UTC(y, 0, 1));
d.setUTCFullYear(y);
return d;
}
function d3_time_scaleUTCGetYear(d) {
var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
return y + (d - d0) / (d1 - d0);
}
d3_time_scaleUTCMethods.year = function(extent, m) {
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
};
d3.time.scale.utc = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
};
d3.text = function() {
return d3.xhr.apply(d3, arguments).response(d3_text);
};
function d3_text(request) {
return request.responseText;
}
d3.json = function(url, callback) {
return d3.xhr(url, "application/json", callback).response(d3_json);
};
function d3_json(request) {
return JSON.parse(request.responseText);
}
d3.html = function(url, callback) {
return d3.xhr(url, "text/html", callback).response(d3_html);
};
function d3_html(request) {
var range = d3_document.createRange();
range.selectNode(d3_document.body);
return range.createContextualFragment(request.responseText);
}
d3.xml = function() {
return d3.xhr.apply(d3, arguments).response(d3_xml);
};
function d3_xml(request) {
return request.responseXML;
}
return d3;
}();
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="map.css">
<title>Earth in a Cube I</title>
</head>
<body>
<div id="map"></div>
<script src="d3.v3.1.8.js"></script>
<script src="d3.geo.projection.min.js"></script>
<script src="d3.geo.polyhedron.js"></script>
<script src="topojson.v1.min.js"></script>
<script src="map.js"></script>
body {
background: #fff;
}
#top {
width: 960px;
height: 100px;
margin: 0 auto;
position: relative;
}
#heading {
position: absolute;
top: 30px;
left: 350px;
width: 420px;
}
#heading h1 {
font-size: 3.5em;
margin: 0;
}
/*#mapinacube {
margin: -120px 0 -100px -200px;
float: left;
}
*/
h2 {
clear: left;
}
.author a, .meta a {
color: #000;
}
.author, .meta {
color: #666;
font-style: italic;
font-size: small;
}
.globe {
cursor: move;
}
.background {
stroke: none;
fill: #ccf;
}
.outline {
stroke: #000;
stroke-width: 1px;
fill: none;
}
.graticule {
stroke: #000;
stroke-width: .25px;
stroke-opacity: .5;
fill: none;
}
.land {
stroke: #000;
stroke-width: .5px;
fill: #9f9;
}
.boundary {
stroke: #000;
stroke-width: .5px;
stroke-opacity: .7;
fill: none;
}
.face {
stroke: #000;
stroke-width: .5px;
stroke-dasharray: 8,3;
fill: none;
}
.vertex {
fill: #000;
}
var ε = 1e-6,
π = Math.PI,
radians = π / 180,
degrees = 180 / π,
θ = Math.atan(Math.SQRT1_2) * degrees;
// Converts spherical coordinates (degrees) to 3D Cartesian.
function cartesian(coordinates) {
var λ = coordinates[0] * radians,
φ = coordinates[1] * radians,
cosφ = Math.cos(φ);
return [
cosφ * Math.cos(λ),
cosφ * Math.sin(λ),
Math.sin(φ)
];
}
// Converts 3D cartesian to spherical coordinates (degrees).
function spherical(cartesian) {
var m = Math.sqrt(cartesian[0] * cartesian[0] + cartesian[1] * cartesian[1] + cartesian[2] * cartesian[2]);
return [
Math.atan2(cartesian[1], cartesian[0]) * degrees,
Math.asin(cartesian[2] / m) * degrees
];
}
// map in a cube.
(function() {
var vertices = [
[0, θ], [90, θ], [180, θ], [-90, θ],
[0, -θ], [90, -θ], [180, -θ], [-90, -θ]
];
var polyhedron = [
[0, 3, 2, 1], // N
[0, 1, 5, 4],
[1, 2, 6, 5],
[2, 3, 7, 6],
[3, 0, 4, 7],
[4, 5, 6, 7] // S
].map(function(face) {
return face.map(function(i) {
return vertices[i];
});
});
var faces = polyhedron.map(function(face, i) {
var centroid = d3.geo.centroid({type: "MultiPoint", coordinates: face});
if (Math.abs(Math.abs(centroid[1]) - 90) < ε) centroid[0] = 0;
var ring = face.map(function(d) { return [((d[0] + 180) % 360 - 180) * radians, d[1] * radians]; });
face.centroid = centroid;
return {
face: face,
polygon: [ring],
project: d3.geo.gnomonic().scale(1).translate([0, 0]).rotate([-centroid[0], -centroid[1]])
};
});
// Connect each face to a parent face.
[-1, 4, 5, 2, 0, 1].forEach(function (d, i) {
var node = faces[d];
node && (node.children || (node.children = [])).push(faces[i]);
});
var width = 900,
height = 400,
rotate = [30, 0, 0],
rotation = d3.geo.rotation(rotate);
var projection = d3.geo.polyhedron(faces[0], face, 1 * π / 2)
.translate([ Math.atan(Math.SQRT1_2) * width / 2 + 45, height / 2])
// .translate([ width / 2, height / 2])
.rotate(rotate)
// .center([10, 50])
.scale(90);
var path = d3.geo.path().projection(projection);
var svg = d3.select("#map").append("svg")
.attr("width", width)
.attr("height", height);
svg.append("path")
.datum({type: "Sphere"})
.attr("class", "background")
.attr("d", path);
svg.append("path")
.datum(d3.geo.graticule())
.attr("class", "graticule")
.attr("d", path);
svg.append("path")
.datum({type: "MultiLineString", coordinates: projection.mesh.map(function(segment) {
return segment.map(rotation.invert);
})})
.attr("class", "face")
.attr("d", path);
svg.append("path")
.datum({type: "Sphere"})
.attr("class", "outline")
.attr("d", path);
d3.json("world-110m.json", function(error, world) {
var land = topojson.feature(world, world.objects.land);
svg.insert("path", ".graticule")
.datum(land)
.attr("class", "land")
.attr("d", path);
});
function face(λ, φ) {
var point = [λ, φ],
face = null,
inside = 0;
for (var i = 0, n = faces.length; i < n; ++i) {
face = faces[i];
if (d3.geo.pointInPolygon(point, face.polygon)) return face;
}
}
d3.select(self.frameElement).style("height", height + "px");
})();
�PNG

IHDR��+��x(iCCPiccX��YTK����@r�C�9��8�$Q�ar΂�Y$�� `AAy��`DP��������� ���v��ٚ���ܺu뫪[�����I
F1�`fHpus'�F��G(��Q�vvV)���Y�!�Hy*�a�����ɇE�C��O9���&�GF��G��q��x���A�T�o �n`�-�����`�`c��H�H?�7�b�~��p��9�' Q=�`]�?��nDG&$$l�"X��v��æ��$���5��BeL�����������C���#�6ƌ�[uP���C��Po[3#�n�Ϧ�~�c�s[�e��`|HƖF����`+�"7�"�(��h��6�� sض�� ��ڶ��O!��e�(��:��D#���+���e�'�;6�����
r��n�6����Nd��g/�F�:l���!Q��ˑI�}q"X?���|�-�J�r�����bl��������#�e���Xx�ݶ>\F 6sؚg�!*��w�'ш�m��>�da���m�� �V��A.oA@�L� �m���@$� �-���e�&�;��A����f-�"�_�[wY�Y��"|Dp����F[!w}�RBk�5�#0��k�5ƚcM��x���� ��%� ����{ ��|� `�c1#���|ش���'�P俘�5A��n���9�[-��VE�u�w4;�ȢU�������"�2������w��9�m9���6 �?+c�G��V��1G>���ߚp
���=�:��-�~���<�æ'���a�[b'෎B�”����;i�A��z�hJ|�Ɔ0
���M0@"2�@ %����؈�[�c�a3nC���!�����-�Tв��e�c�V��]frLd� �q���� .���2&%���>0�87��̺?AXǁ}� 8�@�ŠT�jp \-�:�=����5��`̂�`� ��X .H��!%H҅L +�r�� ?(���A��4(*�*��
t ��A�Kh���A+(E�bE��P�( ���ڍ�CE�PGP'Q��JT�Չz�D���Q�0�iavX��5`#�v�}�Hx?�
�Õ�e� Y��</��h4-���9z'���@�G������ft7�)z=�^��1�i���q��a�0�0���&�d�c�c�Xv�8Vٛn�@l"6{[���`ǰ�8� '�����H�h�1\�w �7�[����R�2�r�
�:D�Ou��&�� �UjFjQj-j[j�ԙ�g�ۨS�S��0ш���8���)��Ls�� �<--��&�=m��B�ڻ����t�tRtFt��b�N�]��{I7������xw|4�$���D�B/GO���O�/�o�B����A�����!�!����1� #5��#�q?c �5�猋L,L�L�L!L�L��1M2�ŘM�}��0W1�fc�Y�Y�X�,�Yβ�agŲ��YY�X/���β1���9�ų���`a���؉����Wه�W8�8 8('8.s<����é�I�L���\�"p�pq��j��FsKq�s�q�q���a���!��\�yŋ��u�M��}Ȼ���g��W�w�o���_�?�?��&�����@�@��-�O6�!�PH�&�
� �V� �
� �:$T/4,L#�!�+�+�%<+" b-�O�V�(�����h�h��1q1��b-b���D��Z�7x =��J�g�XI � �Ӓ�R()U)����(i5����2M�P�J��t�������r�rVr��Z�ȋȻ˟��_SPUV8��Z�Y�B�b��7%)%�R��3e���r�r�򜊴
E�L�*����q�.�_j�j�j�զ�EԽ�K՟k�j�i�k���hj&k^�\�Rӊֺ��U[V;H������gw���t*tFt �^�gtG��Hz�z����}���OH�|1T0�4l2�a�e�d�a ����0��4)6yk*d�gZk:k�j�h�a�1�4?e���G$k���Iݖt���Ŗﭤ�"�ڬQ��9�olDmBmZl�-�6�v�N�.®�kog_b��A�a�C�#��Nj�ߝ �2�^����˙�y�s��c�l�Wy�$�n�nn��8wg���&y�Tw�5�[|w��{�ܞ��7�0�!�i��x�x]��I�%U���ޥ޳d#ry�G�'�g��CɦL���f�N�����M����������� ���\B�r-�94(�;�?,>l \:�X�H�VD^�l�e��((jwTk4+��0F"�h�h�nlI�R�s\c<S|h�ýR{O�H0M8��N$'v��wp�h�AR�~h����d��#���T�9t��!�Cه�n;�w�����fGk���<������tJ@J� �E'�R}R�)���L'���P�(�X?�{�/S-�, ��5tJ�Tu6SvB�X�uNs.!75w!oO޽|��������B���"�������Ń%�%����'J��9��L��r9_yZ�ʙ�3/*�*�+�*�U�U�:��=�q��<����.�^�v��Q����{1�US;U�������˲�+����@CLç+^W��Z^�j�h����_�M,M��P�������V�ցk׺ڴۚ���/\�^r��F�M��Gn��J����1���9ֵ���m��Ϻ����X޹�c�s�נ��]����iݻv_�~���U6=R}�ԧ���X�qk�f�����O��t>5~����������Ρ�w=y��b�e�˹W��V_x�y�:�8����m�;�w�#j#7F�G�w|�z�<6�!����#��'&j&�&�O�N���4>>�:s�3���/_���������\�����y�� * ]�v�o��|_���ĵT���ܻ�2�����䯶5˵7�!���H���\(__�]� ����o�_��6���a�]BQ��Sh
s������gh&i��f�xՙ<�O�t�.��r$qvpS�yS�� ` ;���[D��~t��RҜ�#2e�rr�����N);��� ���R'��iTj����z�]�c���Ό�u�S�A�
F��t&�d�t�l��q�����6[��v@9�u�ug:IW+�`���v=���s݋�$�C���E����;�_p%�/h.�;�4,.�6b$�=�*�`lc�P�L�ȳO=�yBrŁG�+ >Zsl2��j�}Zp��� '{2�N�e+���=�ך?Y�]�\"]Z\�*'�i��W���87~A�:����;��u�~�s4�_�s�dco�ٶ��u�M���:�ƾ�'o�����r����Ξ;���>������ ���->����hr��3�A�!�����/�_&�r~�������m�΍d�ƼwS�����x���ѓVS��>ML��T}>����,~��\۷����E��?L���=V�V����չ6������PJ�;���%{,+��C@mI#O�CG�g�gb 0*3Y2����6��s0pp�r�t�N���4-���=D�E�Ŭ�u%d%>J�KJ}�.�1���=-G���/S�PXT�P�QZV>�⠲�Z�f��U�@C_cR3KKSkD;e�Ҏ�:�ueuG�*�# � � �����LL]��͹�W��,�,/XeX��x�Z�iڋ;p8���fv�8�<p�D΁���w�{ݓ�H�뽗��s�r�7�/��t����K��H����$�M�d�b :�5N4^e�~�U��>ߤ�����9�p���#�GN�<Q�:�N��s2"�*k0����W���`���X�ĩ4�tYYO�\�@�]�ѳ���p�I�x��q��e�zˆ�+�W�7~oi�i�l-���6r}C�&�V`GJ繮��/�?ݙ��}w�ս��}zv<j����b�ف�Oz��>[�?'�Px������7^�ocߥ�ԍ��_� 6��1m�s��'�i�_Ef����.�~O^b_nX%�Y��\6$Ϛ���9�?j>��C7`�0�/\���=�2�$:�-� ��*�*���-�+;�#�3� �3� ����B�`�P����k�hQ�h���X����[�0I �%%$� �/�/��D�^�H^B�Y�Dᩢ���eF�r���6�o�B�V�S4ؐ8!�ٮE��&kݑ�C���+�ۨg����`�!�� �c9�)��3Q�q��� )�)��@k�Y�f�$;3{��ǃNN�;Īs�K�k���;����]���=w�a�3�u�T�L����(�r�����?@�HAPR09��&�_����]�?vw�v<[����%6԰�1�������&��<�z�1%�DFꅴ��O2�N~����rj5{9g1w.�W�\!�(���d�4o�yy�Ҋ��og�9�/�0\#tѿ�Rݷ�j��:�b-��jj�o��V������>wJu�ޮ��a�ջy�����⏢��+T<�}vfH������S��F,�l?~��5{�vEjc��~��(X5�I���c=U�H�I Cvx�4J'@�0���j��D)��d���l�0(@r�����h aHr���L���&P8�8r�����n�Š�'��d��ВhotzÏ����
bS�s8O�#*=�&jY�j$7����m����G�Sӗ1(0t2�3�c
fZb>���R�*���f�6��8�8U9�qEssp�����������'�-�N�D ^rG��o�D�ʊN�ՈI�I|���
����������{"��@T�)�(W�PaW�WPkP��մҒ��h��h��� �3��ҟ5�1l5j0�19kzƬԼ�X`�g�c�e�a�j{���AG~�Y���g����\��T��=�wq�����C�')xk�C|.S����T�ƅ(�:�ņ�D\��z=���>A/�* �?9����C?�$��:��Z���1�Yv*)'9��`�د�c9㙕��c�Ǫ�/�\����b����~-��Ѝ�[]� ݊={��>�~���z��3���_�GDߗ��O�M�MA��|�X��.�$����a �?`@X� P����Dp
T��|�� q���C�P;���@!q&Պz��:p(\?G3���i�G��:V[�c��Pa�N �r ��Mڝ�?�J��� {y�����YdY^�����M�p9~r6pQ�y�yN�������O�"0�
 y K
/�t���W�����.U %c++#G#7)ߣp^񘒿����*��ڊ��ư����Wu.�V��d��1�1� �r���_��5�������}�����m�����nW�[��^��
w�z����k�E�q��m���h|!�y&\9bOd:�|���?�w:Qy߾��d���Fq:z��J�͉Ki��qo3Ͳ�frN�a� ~�/A��,#���(��uN��Lu�Ō:�e��+�O�2[�Z��N_w��~�Mg���wl{����O>��w������`�s����Q~�.w�b ���1h�ʘf�I���5p����|�� �Q������K|������@�
H��<���!
t��A�(nd�CPŨ{�X�����Ђh?�U �8b��F�{8g��aja�4�ҴSt���� < ?_2u17�\d�ckb���s�[�ǚ7�/�?Z �-#+/�(zH,U�P��m�7ҋ��r�
�1JY�u*}���<��1Z��ou�u��N������T��2g%:X�X>���m��8�;�:}r�q�u����ѽ[ӳ�K��C��ɧ��Y�W,Y��L�����b�v�����7�{&a}�O�@��ۇ�?=J9���{b&M'=;c*�$�l6.'$w(ߠ����8�d�tX����#�#guϝ>�VM�驕�˽�V�0tո��I�9�s-������nu|���d���m�o��壤�b����=������ԫ�� áoGF�F��1�`�t�J��>�lf��/��������-;7�0�u����b�w��m?t~�.)/]^Z�]��ĭ��Z��������/�_�k�k��ޮ뮗o���������y��>/.�_��V����B��:�����<k�3��l�ņ��?��@�ߓ���� cHRMz&�����u0�`:�p��Q<bKGD�������tIME��?� �IDATx��w�\Wy���uz�ޛz��b˽����|CH�@!���B�B!�blc�q/��WY�m�޻���;������J;[$��y����ڙ�f��s���<�B �H$�D"�H$ɛ�T�D"�H$�D"�H$')�%�D"�H$�DrZ �D"�H$�D"�HN ��H$�D"�H$�i���D"�H$�D"9-�X"�H$�D"�H$�RK$�D"�H$��@
`�D"�H$�D"��H,�H$�D"�H$��)�%�D"�H$�DrZ �D"�H$�D"�HN ��H$�D"�H$�i���D"�H$�D"9-�X"�H$�D"�H$�RK$���.�T�T�D"�H$��)�%c�qV�ZŪ��B��ÑH$�S�a��u<��'ػoߩ>�D�:����%K��aÆS}(��M���1�8�/�/?�A���b��ex�w�K"���p]��Vq�ݷ�n����]�;�O�aI$��!��w��>���ݛ��� O�!I$�7!RKF�뺼��E���gx� ��w�?>���r�J<W�`�D��y�-[�-w�¾�>�������׿�Mv<Շ'�H^Gd�Y������-�������_f˖-2�L"�L(����dx�dz�=�?�_x�����!V����}���ܹsQU��"���!X��+�z׏���]׿��]]<�?�Ѣ���'���(�r�W"��B,��k����q�g.�vZ-
�>������?����V9VH$� A
`ɨ���ȿ��K���vz-V�Bx�@,@G?w����s�=���,���HNc/]�-w�J�q���mCƃ�=�����L���w��m����x!�����˗��K�s�q��.�fZ͐߯��j6ܲ���z���r��H$�F��$%��'��+7����{��Y��z)�B�6��>��|�_?Β%KN��J$�S�ˋs�7�m��/_yԄ5ِ����]b�������}�Y"��������lT6+~�x���ϳ��'?��ݻe:�D"7RKJ����?��\��WQ?�~��-�(
��$}�_s�W��^8Շ-�HN2�^~���g����|���EQH������8��y�]"��d>��ϲ#��s?q.�S��}��*L�t���|>��g�)�%ɸ�X2"=�?|��\��i��8��-�(
���������"z�O���%�I⥗q��7�\�E��#` ~�Z���rvz;��w�F{Gǩ>�Dr���g>���^~�l��V7�Y�4�\:���r6��G��H$�B����?�!y�r����'O�����<Z� �\�zP����E�=������z�L�r�OE"��@^Z�_��s>v�H�ⷀ�(��Ajfװ⥕�zy ��'���ӑH$'���ӴW`��P3�� �4U#ٔ$��/���]A<�5��d�H,9&��}?������-l;�u ��S>��~�ej�gL?է$�HN/-Zč��D�� �f>�XxD�{8�D��U�|y%k����Ys�����$� �ӟ����������oM�(k*�h0��+wp�E��H$��H$�B
`ɰ����x�Շ�����|����� ���I“����!l��9k�>5�D2����}h.�D����$#TL�`��Ulxm#���"�H��ӓH$������ؗ�˂���=EU�l��
�=ߺ��Ͻ�������d���O︓�W=��Mg�SQUu�hN X �����7��#�H�:c֩>E�D2�A�}p.����o�Xy��IIV-Y��[�>y:e��>M�D2N\��_���� ���={�ⷀ�(TO�&����ygSQQq�OS"��A�X2����S~���L��)L�h��;���LPY_ ���o�C�U�=g��>U�D2��27��=�����/�cE�"N�%�ꥫزr+SZ�P^^~�OW"��˲������M���s��V=.�{8�3�������2g����N��J$�7RK������ժ'�R������RAMc n�ˋO��ңH,��AY��en��f��: ><�i��!$+���\����v2�u����l6�7��M^�}� >y>�3j'<U���f���_��铦S]S=��J$�75RK��]?��e�0���J�0* ��Q�T��px��/�H�D�d�%�t��(����/$�L��- cA"u֭Z��u�hkj�B�`�� Cj ���Yܵ��?q��c��@�6���;x���Ln�DMmͩ>}�D�:F
` ����r�/���YL�pji�F-��0�tx�7�a�MfΖ�X��!K_y��r �,� �႒Z���� 䨙RM�!��WWK,�������G���s{����]J��Z�<F��Ts�xxLY0�M{6���h�i����T_�D�:E
�Ӝ��;�����8�)�M9���p�A�!,*x�D�(�g�I����x��׸��[�N�p��/� �'D��R9TME34*j+ՅX��/�'5�th���LOO���V����\�ϗS7�p����� ql��~�t�n[ǪgW�T�H]}ݩ���u���1�=�7?~3 ?��I�L���1 `�TU�U��:���ה��L�6�T_�Dr��l�rn����7���/��4N���(F�􀎇GyM9��0�^]͎�;��:����S}i$�twus��~“��-_x u��EAє�=Q&XG��2󜙬ڼ�5ϯ��R�`�Dr4R����7����\�ŋh=�ul�q`�킊�
Bm!��A� L�<�T_�D2HQ����tWu��B�&>}�p쬍�z�!�����ԇY��*�������H�I���n~���5���/^I���! e���O��MU?q㈋ˬsg�j�J�<����&�-�H� �i��?��|����֯���y�c_�-`@�^���ז���������ک������$���8�Ê�+���iO�s�7�uB��$۟-Fߟ�GyuѦ(+��b��-̚6�D"q�/�Dr�����_��UQ�g�'8y��NX���[V��O+i�k��X���������s�����w}��4��P����*�8���<����z@��APFڼ Q��fA 7�� ̙<����S}�$���qY�r?��m�������׵]쬍6�t���{�UI-qV.^Ɇe9s�����d�iKoO/���v~��7��(�j*��z@?��$..3Ι��mky��W��2M�H�H$(B�S�%y]�8/-z��^�Y���w�zv+��"����נ�����}�w���\�|*��`<xHL+�EQ���?C���YQ��[���>�w�ϝ�u�Y'%�$�H�.�W������sW�jtS?�њ�� ��b���.Ω��ߴ�E�,f�9����?���)��ɦ����n���o~��~�-���Q�}>O����'�����u̜5�T_6�Dr���4�q-^ĵ_� ��޻(o,'Z|��x��߮wH�*���xUUE��jA�Zi !�X���rH, o��a�Z��s�ߚ���b<ۗ%ՙ����_�� �9��? %���z,[���~v;�c�x�^M�/�fh�!�`� �;���G�Lm�׫��om��^�M���_�:�UU��J$� �t�������\�/� �F±�}YB������B`e,<�#��=/��c�o��L�:E.�K$�1R��q]��ȵ�}����Ք����L. ��*�����>T�j���9�V� �������.n�u����sm�\*G�,B�/�/>� ��Μs��� ��<^]�?��6:���?�F�߳��� �ف,x�JN�TP����s?|�Vm�y�7���8՗R"yӓ�����E/q��.-Y�Hu�0�� S
����i�������L磝��w���ImRK$�)R��B��s��o|���y ��Q �tw�d]��,J1y���>z�����CG?����ҳ��?� ��~��� f��%���[�����|אߝh,<�@���!?�Qн��g��-Z+��ڷ)++�[��a�6_���X6�]{Ѩ�/����2�h����Q! ���^{�5v޽�[o����9VH$�!RQ��y���������L92�0�H�@8���5:�z�S1�^+<xF�  . S?���{����k���˗���)��iY�t)7��z�{x�����߫�J0ĵ]�����M���fhcn�R�\��_����������ۃ\ەH&����W����\|���N�SOp#h��_��D�ϥrÊ�g^}&���'?�Iv��-�
��4D
�7)O>�$_��+\���nV���<hD����'�~��fh( �k*��y�#|� gɒ%��0%�7��,ᦟ�L_M/�~�R̐9��T�Ĉ`�_�g��qE���I�����������Sr=%�73���a�X���<����k+d�M��E���!�8��4]cλ����6>��gϞ=RK$�R� y��'�����m�x��돪�S �����^߄Kӵ!�hEQ(o(���+��ڵ��‹��P%�7 //^�Mw�LnR��?{�h��UU �&V;��;M�#QQ .��������<�U"y����˻�S1��@4�:�Ա@8�k�&���7<��-�(
��3����s���?�޽{��HN#�~��Ѓ���K�|)Ms���
�� ���`/�:C��+�@ek%��| _�����3:�G+���Y����x�M0Wp����%�ߪ�ĉ`� ��<Fh|�����lHp�/e}���߿��N�u�Hތ\��ϰ/���s���^:6D�R�S�'B���5Ŋ�`�MZ�ia��/�#���K$�R����������y�t- Z��P*�:�=q)G���1��R˕߻�o��M�z�S}��������8��ga�Mq�D��v�'�=��s<̀9aF4��P�X�y�x+7��[o����][���ƿ��X�{j@g��Q>)Iݙ�#��-3b��.��2�%�������2��)���>���ɚ`��4A
�7 ���^�}�^�r>m ێMQT��jB�l�I��x&8A��&.��"~p����9Շ-����������a��F���j*�H���$��7X�4P��w�����Mmc����>:::N���H�l\w�װ�8�5�i_݉��h=��dubL�WG�j�/D����X�o�B H� �]6�9�:����O�s�N)�%�79���_��>����λy������L9JI�윍��Es�1!��|G=8��=�����h`��
�j�6��}�%bE�1kƉ��ɛ��� �`���MDɦ�#�Q��+�_R��<��xRh�J�J�<������Յ�?��}�];v�m�z�ښ�F�'�ZK$od�|����q*���0s�9��u#\A�,B�&���� US���_�k��' �����ngm���*q���}���<�NM"y#���~r��x���ʴ����jI���h��p�,�(�ˁv�n����5*O?�4f�d��N��H���x17�v��L���<��(�m��]4S�0�1mWU��4�r�(I������M�$�s=��t���}̭����/����u�ֲc�&����b'��K$o$\�����.�l��/~?��mT$��-�Lj�]�mR5�r¢��� ��;A�4~����N���\
� `=��j*5�kHi��1����ʊ��H$���o`���]<�� &��d�_2U)M�*(���=����g&J�;o�iZ�i�AUc^���}�_�"X"9�k��3�C�&��t�@$0.*UUQ��D��w{������l*ˁ՝��s;W��A*�kI&�D��^��ݻ����@<?y�D���,����e߾<o}뇨�m��
�"eT$���t��S֜� �u-w�(pA����h�RR?��.����~�3��AUU�ɹ���!k�ߠ�}��x|��L��I��(�����=�G��ˬ�g��Wm�r�/y���O��H$�;/Y�Mw܌�@a��MF��p]�(V'B�j����휍�o�S��PuuB&��c�-��v���� �P^V���xTTԱp�;ho�x��߰gϞ�r�%�7
�l�n���v��.�K������
�{�L҉7F'L��ݱ<q���L��UU#h`g�bݯ@p�__@�� ���wX�z� ����d#�����sy�a���ы�A4�w?|==O q\�c��0��ٴ~����ǣ>z�OG"yݰ䕥���[s<~|!�x���j�l�~��Wǣ�V�" N��
!ps.fW���^�$�G�,+��ɳ9�������-�wK,���in����ܙ��o�--Ӱ�<�mE�={v��'�����M|-���<;o��Bل�N��@�/�P��S�g�K?v)�B����Y�rՉ���� S��`������w1�#��vɴ1�_�Ӎ�<F���&,�u\�M0�6<<j�k��O?�4a;,��$�5B^y�Un���-).��E�#�!mK�����~� ���4͟LZ�Z,�� �l�`|�0��Lrƴ��4!�T?�@]7��� �d����ݻ���Z�-9�����{�c������Gmm�`愇e�0 MSymͳ��v�tI �؄F��Z`W#�0(~���a��ҍ�JE��DV�2zxL;k+׭d�V�Z�Jm]�I�L$ɉEF��@<��#����2��M�휶1������)� !�<EU�5 wq�v�4Z����<��"Ir��y�.{�[5T����h��+�)D:J1�-�n�"�Yۿ�Q��I넉_�8�ufM=U�#D���rm�Nف��)�sλ���={����H^������_>ĪU{��꿧���”  �y.�ma[�j-W�S�\�w�EA7��B������Mr��oa��ؗ�pR�o��[���-?���V���A"��d�~��'~ō���Y�>���MFx�p3�i?�{j뀅'�S ���?��v�4�|j7<rO��Swb�)�u]�-_Ώ��1=�=\��N���N�).vY?���?�_I��ڸ��]xbBӮ��+e�uD�Hj]r�,�`M;4�.�����裿f߾}'�C�H^����������k۹�OQS����᪪G��2 ��9F�/mA?��\��sm������`FLr�\q��s6v�O�~Ͽ����.n�ŭRK$o�~�������{\��ж��`$�c9����N����Nq��P��}]�-�!�r�~a!߽�����?��s�HN&��b�J~����(���]��k覎2��6N����������3|<.�s���E�`#j��Oxd�it]�0�N�.����{7���x�'8p�� �����^~�q�.�������o� "����tu`�r'��
Q`����eq�/~ �5��?��0�g��tS��������.n��V._yB�G"��X�~#���g��k�|�+�����(���#\qT��h���A
�7�=�p1�d길��m�ү_�Wn�
/���);?��dP������>��ֻ��!2F���;�{�h��fj^�7l�l��� �����T��fexu�Sd2��9��H1�HZ['s���e��<���'��H$����>z�1�,����-��Ë��h��T7�Vmf�{��}4Sñ��Oɉ�M�d{��rc�!Y2y�\�OW�;��ﺑիV���H$���S\������"��ϫh<���QTUWq���FJ��
�T `�q9:D��*�4G��Y�\�?W�����,]�����Dr")�����=\���:#`��V��ͩ&�����B�X�e�h�J��e��o�`�>����8����E]���?���tvv��k#��D�������Y�tkQ��TMe��0�׏pN�|Ax~��D;ԗ���s�Tgʏ�#���y���Ijf���֭YwR�Q"�L R�q�E���o~��|�j�Ϩ?j�j <�Wt!BtJS�=�㛌;�_�h�!-��vj-������}�e˖�.�>I$���wOp7���5Ǎ�ܗ=�O�;Y����n�*c����=q"@ A:�G� �(#�-� �\r�ho��������>9G"9I��i~���Y�l����\����` BEE5�Sp��_s7�w{v�p2�2�2�I�>��`e,��a�+�9_��x��ߎs�÷�m6n�xҎQ"�L R��p]����̵_� ���k��U7�8,�A��K�� ���T�`!��8� �X��U�U|����}�U�W��<L"y��y�`��������}����e0$ b��"����\����O��\�LW�H$�2���󠾾��.�K::l~��{���=�G"9Id�Y~�ӻY�z߰�W�C͍�Q�}{{�2�'B 1�ϯ�{�#�'�r��e 'Ä!���q2�ll���+0.5�귿ʖ�[��D�B
������E|������G�̺cFFEA35�YuQ����� N�c�C<ẍ́�H���e�e|����W��+֬]#E�� ��e˗s�]��?���~��#�����XA۲�r'6�R0�1C&� ���:ӈ�Jy�z��s)x��4�|����n�����z}$��eY�r�ml��}T��R�[Y�x�V�l]�0��L�3T�}� �f�����*�L��^���- ����h����'��>z�w�������c�)�%�7R�NB������o|�����ⷀ4�c\Q`�PO]��i�����ڹ(�B�.������z�j����ayu�k�r�-t�wp���=���UP/.83h��NN�w�7#�?Q"�J[���&�B� ��1mC�����+���N���'����B��u]��Į]Y��ΏS[;:� �W�<��}��$k��ߞh�ȧ�x�!�[@UUtc�/�ub��C����("���>+��չ��U���ϲk�.9VH$o�~���3O�������3��HtSGx�{Xӵ�ֺ�H�X�p�.<K1�P�A�������5˗/?��,��������w�Lo]/���;���p�t#du���������GP
��Ùh�GS�]~���d4u|:5��m����[ng` 5��G"9�!��w�������xԑ_��s��9s��[?�6�գ���k�Q 7�V��M=��OM|��;d�����FS��/i~$�{�<&}r���'ٳg����)�_<��\w�u���~v�� �4S�ޘD7�S1X{�yk
�k� UYQ� I>|߇��/�K�,9��-���%K�r�7�nK��/���_���_3d�O� ���@l���6�����B� L�����ʒ̯��BYY5o{�G���z����th��o|�[���x�[�����1oGSuԄG��
B��H�_87�CqL� �3���<���N�!7�#��oEQF��������0����O���'>�޽{��H^�H|�y��'��]��_+ sF�l �$b��A�����IO�VP��:@;���(#�?�oE���������g��Y�'X�`�%�x�M��-.��%�1r_�t3h�>�M#d�B4=~,�!�#h��!�=�#��ND��*0� %�GDQ���N�[o�)��}�߰Dr���W�N>���K?@uu㸶���V�Ka&t��i�6�ɏ��� �#.bk����d'���9�\*G0<�uCGQG�.��1�-ә�Ź|���"X"y#�)�����"��5�Ij�o�T�
�P5�(FO�_�(�
k qդ*�}û����<��I;w�d����"~��s<.��B���/~������=��v\����Y��)���B$J�A�ҙ���U���j����tv��q�]tw�Lȶ%��u�} ׭䢋�GMMSIeǢ����۞!r�N�<Xw���������d�d��-�JQ�(���X��-��9+c����;t���rVIYv���L�l*�4��~���&X"y�"�)���Ϗ�c��ؙ4�р���V3�q�Dh�vҍ�
u�c��5>�[���� �t!߸�<���N��K$������|�-x�\���9��$�;���H�/�=��.d�(�RRm~��vF'� �<�h��gX�������PQQ�[���<��ӟ�Cgg�n_"���!D5^��1�_!�t?/�z��� |e�x[��E4#�g���-�h�o��0�&��ܘ���������h`d�;�n�h��c;%9_ �yM�Y����L>��`���RK$�3�>��g?����e���3ia۸�h�����7��k'�R��w�XNޟ`k��p�/K�f.�ʅ�����'~{Ү�D2//^̍�݈�P��O�C�<Bn WR�3��p��pE-q\PEppl"�0�J�����#A<�+I�͈��*(��6�2�`�[�UU�s��d߾ ?��/��88���H��W��u��( ����F�����
�°��l.���߼��Q�Y}ħ��G?k5]��c�m�<�R�;�g���m�F�U�����qr�H`�eS�X;k�Z�s,��� ��L��W�5���̧عs����)�O2?��X� 3�fS/��2@a\i=���h
��)��N�'3\��GXU�q9H�Y�溺iLY0����ˏ�c�x䉓v$�cQ�����\�q�?��`e��`!�T#d���v]�Vӵ1gg���1G��{Ķ�y���$�jTƷ86�\���:.��tt��w�C8p`��#��!��Ʒ��r.��/H&+q]gX�gU�Lf�����C�����~�� %
�t��؁Y��^6B~*������"�>�#^����"r�\�b�(~-3l�Z���t�9��V�BQ̐�0�}�l�>����y�m�6��H$�v���_��t��;�c�c�_Nf��ӇP�Y#h��VGx�����(E��*�SytS���P3��͐��`�m\�� ��G�)�5Ƙ��Lo� t�"�j��Jx�g0�&3g�Ӷ%��x�n��&��:�>4�XY ��V5�w�k�����!p�A�M(:����2�s-���alPPȥr ]�yTUE�T��s=�ﰱQA��l��E(*�fz�G��^r�*�GGiɑ��C:=@0����d����װs�ZZ��b�/��T\����!.���յ����������5��:�K�ͫk�µgL���!�T��a����M����LKQP���:B`���:*��q�s<<��Ә���0�2GU�q$����g�aӧ=����a�1IQjg�ү���[ͼ9󨨨�5�H$��'����3_��>0����W Pşd:.�cZ�_�:��2��K=T;k�~Ԧ��#�(
k��p?��X��w�!?�Ƕ�Hj�/�����<��ʲ��GAA ��@$0�sͥr���/�q�me,��J �i��I:��� �:�Θ5�O\"����W?Ke��,(��#�`!پ,�hp�㉿#?�q� ��&�����c\���*�k��`��4]#:4�x�G�����R9�XA�@�@ ($�I��֯_Ǟ=[il�#�O��$�R�,���G<�p��,��꺆�ض���躊��֝��� �`�ΕLj:�Kι��ƙG=GUU%K�;�A_� Os�;؋b��#Ӏ F�����g���'D�R�3�Sy�~���ů2�R�q��*B\�-.�(d��P�{8��iϴ���Osƴ3�����o�D"+R���^~�&��d_�*�T��ng�b��hQT�(>��VR$���<?�ѵ]��'gcgm��G[m�q���B�+�<�81V u�`v�=����]���ooP<[?�ь�Ea\
��W�uS��s=�y������ã��+f���_��7�y��KNK^Y�ͷߌ8S��o�&����%��X9 ��� c�8�RD��Bv �(��r�=r߇��BƇ��{s�C��s<�6g��gQQV7���!�dRD"�� ��e�bU�"x; RKN�l�[o��ݻ���mCm�P�+]7�m �t�`öelڶ�\&Kk�l�y%�Z�!�1H�A"\A�M�ul]� ��q`M��)y����of�C�ם8�[@Q��/�r��Q��D�_p�� �r�<�gUQK��/���meW�.^z�%��L���z®�D"R�`���}ܿ�~�~p*Ӈ�EA�;o�*��H
����<۟4[9 +g�����rQ4u��j�j*���ú����+ S�5]C�4%XU�z89��I��+�C !@P4�'�G���j� �d34|���Gm�/���y�3f͘�o�Drl^y�n����}�<"�Ȱ��p"Xx�|*O0W��#Q5�>�-��ё�c9ʼno��wA{�W�>1#GO�ݼG��,3*.$I�[� !��s�v�h4q���<(//'�dÆ��۷���)�%'�t:�O�36m����[jj��z��(���m[��w1��"Y˙3.bZ�<�
�����($T�ZIPK�I��Btlj'�lo��z,B3�J��;Z����� ��D�ċ_�|�f߫x�K(�s]��*�9�X�;R�9�`��l޽�W�*�&QS[S�H$��D
�ȃ<����>2�iM+�=GAtZ?�9����(�� q`�\�h���n!�+��VD�!��Ƃ�!3�8h�V���&U4�r���B*�Q�y0Rk�?��H��|��kEC�b�������A�Z�2i�6�zi��{�c��H�����"jG�>s����HN���l7��f��2\��� F�%�::\�,4S#}i�HR����/|�~����@ο׃ƄD��D�4���ɧ�h�F(:�u��ұ��i5� ��)��c��e �����iσ��r��A����Z)�%'���~��~V����W�=��M�|�6�l����V���H$ �h�� UB��k�b1���t�t�;��1�TD�z}a.ӓAQ̈9� b�})�2��������Ͱ9n� �O��]��XWCogN0K�@����؎����.�H��v��Nc�ֵ���*�k����=!�H"�)�O�=��������<�\0������Z�(j�NW5�bM^!��s����1�&�p3`����K�����zP/i��**���`<H0��Ҙ��#��n�:����~��Xө
��F�(�x "�j����L-c괩�ޯDr,<�c���r��5�q��� ���@A��y�<��Ș�JA�UP8$� ;k�i�asB��G�[S��xf�����=O�� 8PFe�q\5���ɤ0Ms�����"�bP�c���44��Kc,��������?²e;x�{?Emm#�3Cv���n\�E��zYM�m7!@Q`͆��QW��!��5N �@;yES�£��hP��'���Yg��o�l����t���{%�� �D�uR2���oS�t�����{��4��Ҍ9=<f�;��V��u4U7Q['E�Dr2����������8���2��I%�_8d�0\ZO)�PX ;gӐTU����`����GEQ�����..� ��Ю�G��C��t =�������{�0+���ٞ�Fiu·��.V�"� �\gݵ�7���7����X�&M�~%��p�W���m��FgE'o���0LcTⷀ�z�y�Ћ��qa>�ȯ�󅯕��h�yb��08n ��!�Xx�8��E��N�P9��(װ����f�D"�Er "8�� �Fss�t��L���<���,]������#�_��;�� �1���Gӌ1��[9�W��c�E͌ʣ����z�b��xC �N�ϙ
�DG���x������4�ͤ�j6�\-��4�f�/�ƙ��U��]O�F�%m��e�y�X�n9�^�"X"9�H<�������K�| -g���ASt8L�KK�� �oZee-<�#R! b _0gB�(
V���ݕ�����F�xT���l�����WH�VPJ��{�G�?K (I<+(�S[����'��xF=�iI~���3c�4ZZZF��J$��.k׭�[̊]+���o�-�<Q4a��Gp�Nq�y�Ep�`
UU D't�+<A>�GQ��pє���`!���U:�����(�?&��7�e�I$�G��B:t4Zźukٵk ���D��vm$o~��zy�'X�x���%�_!�\��b�8���8�kc�+!B�a�+ 4���2��𐅺��tm#l`LP��a=06c�R� �Lo�|:O�,<!iχcF�^����T��՘�P(B(<\�z�t��Č�(�p���>6��/g��ki�k�5��IB
� ��<�}�Y�����ۿ�6��5���Wj�pL3+! ߜ���W@�@ь!�J�����Wӵ�Xc���E)�]�᭢�eatS���iVW�b��a�����Z.�x�$�ke,zVf��kaV�h�^��D37|��7�L����HF��ylڴ���;�SF=u�+1��1���oJ���r!�/�����������z��Q։ �΃�w�L�Vuu��<���)�M��i�]�DX�e���sÚ^���AYY9�x5�֭e�΍L��F$��$���>z��Q�_���6��e�E��u|q?J�륋����X��A*. ���[������GH���DQ�y���q]�ǂ�yd��Pv�h��DWLP����]�ʽϰ��e����<+J�a�u�..�ϛ͊ +X��
&7M����I@
� �u]�����?�뮠i^ӸRp
)��T�^�� _+�=��J(򣛃��l?��(����ӯ� �=gбVE�\pZ�M����x�����]A ��z�r�b���l����J�M���v5ӦΡ>9�}
mu������`�����,9��<��[���#�f���̺p��qSWu0���jO��_B0�/��w@Ew��0=x�-��('\ !����8���rBDp��P m}���_�����O���^��/��G��8�|�@ �i��HL(++�����kװu�z�M�B8|k"%o:����Y�t �����5�y��WU�nYK_��d��P0\�����`��R��Ͽ�(��}�OK �p
!�gF��LWTUW���Ѓ���$;�r� �����팘�6�<����[ �q4� ��f�˼��Wx��Խ�������ŷ�9L>w2�6�嵧^c���TUUM���H$��x�����%���k�����f���}�1�����;����PP�}w�)��� ��⡣D���-���s�4�#�`�w]--s �`�Uh�T*���nڏ�*��I�2V1�\h�T�E��ܟTA���N�� f&.����M�1 ���³/g�·����Y.�Oee� y�K�\O�o{�ç?�m�3��1;�ط�zT�ww�͡��������Kg���A ����߬_�� 5i*��܉�v��3*"�.�+(��� �fB�����֑���*El�m�W ��,��vڨ ��!�ϡ�*�����B@"�����u�ְi�ZfΜF(��%o~2� ��s˗��k����o�|>K{�j����j,>� CL��`#g���t�t��i~{ �C��b�߂��<���_L����1�r��e '�膎���g}C� j����6=���߱��D5�p��]����AM��!\��r�~��1x�����n�e��v`�=�<sf̡��b®�D"����u]/]�?^�i����Q?�#`�u6�[z*�0ҟ3����r���1 ECC����BݠG3 �9M+�2�w��-�\���Xa�y�ZA�ܣ`V0�ɥr�������dzv�€Ie� M�p�|>��yA�g�y���s�9 ����"XrL<�c�ƍ<��tu
>�/
��#�,�cF�9�6k��6pޔwӱ����71��ڌ�1��_q�,}$[c~���Mݎ1�'�
L��<�l�?�� _����h�4^�)��� �Ǽ�UA35�=Y�צ����d�jT�m����2x�K,���"�b ���X�v7��3f �f�#9=����qǝ�]��{������-��w7͍S)KV y�����4�@h�{%o�p�?=��.*g%�6g&~�c�_8$�]��żr8\�-����*���L&"Z�U�J�����ND�A�Y��9�j��9-��9��u)��^ �DM��~�v!f�/`{{���;�⬹ (++;a�%���c��<^^�2�^w-������U��
���x�R:�qIu��  �)���b�1����EQ�3v�FX��
V�:4ؗx]���@;2�=��.���Y2}̠�����A(�����>� �����s��;ٶw5�wl`���-�����z���r*++�JrBV�Z�o�?v���S��BP�m����U7S_�J(��f6:v�|�s4VOeR���Ī�!���9�\*P� .L�T]� �C�u�B�;
S0�3�ƈ��y+G���4TN��͒M���4�c����f4����5kV�n�r�<� ����,y�c�67�x [����w���M����W=�c��6�$�ن�(��_7oY9 c��1oeY���tvv���J�/ �h��sV��ݞC#��=|1��́�p��9�h���sB�c+����?}�{Qu�Dm-��u�4��Gh���a�j�CVgպiXP�ZB]a,���A˼:�N��1�?�|Ʉ�[H$��c������<���5�Ϯ�ڨ�4�d��>���s=��<v��u\������V�6up���=Ү���~�d T�1R ͈Y��qၫh
��\���s(B�mvv�a��%l�Yƶ��� �`�j7�����ʤU3�Cs���qɹ�P]]-T�!��|��u+[Sۙs�Yd�m7G8+��Y�0�u�(��j� U�y�*��xc^��e�hJ)��'R��K>�� ����D��w�u�c%��/^�Zơ���0Jk�FҬ'����
��e�m�H$��ML��p��1��&�f�J֮]�ܹs0��%o~<������gq�U��flF�hi��������a��~��m�x��a�����lݱ�?�� �nZBl�N���b����|Q��z�A���\��'~ h��XUG��q�r�����e]�[�Ŏgwqpm7��4����#f�P�l�p�*�_>�c��w��~A���w�s� ;�Ex#t(@Qx�@�pFi=�}��K.��b��+$� D
�1���O����W����?�~؉��(��͢j��B����� ��)��i�Yg��OXM)�Ŋc;�I�Rj�M)9*��.N�������u\�M0$���,�^�QO n�7���?����1jΨ�|R����4-�'R&1���|�_��y�SWWW�g$yS��k�r�On�����|�݄'�t�X�{1�~� gϻE�'��D��������TV�S]�D���܏�p���H�����dz3���q�
Y/�e_ p]��>¸.۟E5��2����DjB��4���a*u�'j��زrXV~ܦW�
E���̪U+X��5��?SF�%E�����٩r�Mmm�e�fq9����*�\vPk��v���g�ƥh�.g_;�Xm!�� B?b9q���ɮ�ۿ������q�/�"RA���K�s<�����C��\H�~�*�a^㕔�Zطr�{��T�� ��V�T����(�iʧ%� ��E�#NQ�l����8�tW�lo�]K��OYDk"C"��kq�6w}�n.��2)�%� D
�Q�䓿��^�ۿ�6�4wp-D"�|Ѭ�xx�G�?�c9��!̠/�4]��Z(����x�W����{tI �G)�]�-�Fkfi5����niJo�Ph{�X�D���:��� %|;�G�C�f�@���RX�(�^
ƃL�b
���wY0c � %F�7'K_}��n��L[�+�p9f�@i�j#$�"�2���vRn �(*�a��燈`UQ ��Tśشt#+�/����"���=Jk����Q��(~9��+�S�u�Hp�?��_��`�~������&c� ��J�,�Q {�o!���Te��8�\M�'������0L"�$۶mL��-E����&�T�� ���������FJ��4_���x�e�k����;8�ܿ�F͌*TMe�3����}�j�DkF�S��2~�4UEx��5N�!��J�J4C+������0�WpF�4�N����D����^�*��� �I&|��tj��V?˳��'?������z`e-���>�t{���F�TF���2��Xփ��(�2WS��I�(U
���r�[��bRK$����W��������+��4��>���8��F�9�l_=������SytS/}«*�:�@����H)j<J�X�뢛zIi�q*\�Rq�AӬ衺��5�M��#�?�׆7�)���E!� �|a3?��1�e&�-�[���qY��Rn��f���|�b�Q��!�X}7�a���سkn�T��8�c�.�� F�� q��D��Lw���=�iAtR��� �Ю�/F�*�=�+F_J
Qf'� \1d��u\:6d�{ػl?��0�-�h�F�;M0,y�n�}k*��(���g������ܗ=O�� � ..�� ��� �R[�Dc�T֬Y���+�={�4�:���׮'�Or�%茶�����D��@G�~\��4�#F�s� �^�=^'5�9�Ө�^N�;����1����ž]�qbi"�o�e[6�����]�z��p��X�E�>�n ��9�|:�t�D4C#��klKy��Lwk����s �AT�0�j$bԔ7 '�4�t:��/>�*�)��� �!Z��<zw���7��g�d�Ҥ�Rdz2�y���>�ܶ˘�xS�3��L���C�3(������b�,���7�����6"�ҳ$��H\"��կ����0󢳨<'L4-����⹃�o�p',��9�`,X����)���h�&}H��MTJ������FX��v��@iЎ�i"#G���䉢 F0<J�"񺩓O�u�tm;�aQ��FˣԞU��ymUm�Mj+�͒7��.���nB��8������C� FC�2�P��S�G����=�Y��5ܜ�� ���g�<��u"^As�T��Z6Ĥ�v��H|Z��/j!S��\��9 ���yaێ����U����i �'i5�2���20B�g| M�0�{��)1�X��p�I���H$v���m�b`��x� ]7�#��Nb��Ulذ�Y���I�!_���q�J.����6�i:��aY�1�`8pp7�,��T�7�#r��w�8о�՛�W����yz^�#�'h��f^�et��%U������Z,�Y�M���d�"�3��6b��������a&L�Ɛ%;gce,����EU�s��R��'Hw��\�Ǭ���T65.��6��3�)���=��nc� �H�DZ���q_NrN�5�{��Vj����jx�5Ӊ�af�������t��%�N3pp����\�Oni���Bά���������+�J8�"X"R���?�o~�"W\�aU �{Iԗnu�(��r�C�w���M��9?�6<f[��6L�lvtQ���HN�)�0GU�2���\�;
�����]�\�~��r$N���Z���W��i�V����\13���9
�}8�8�YI��>�"uL�:y�ې�1Y�t 7��&��
g�,"�����0TM����t�:�f��4�Q��}�j6w�B���D�2��j��Ay����)Ԕ����lZ�
�A� �6)-�`�ű?�<�w]x;k�����E�������z��EyK��, ��19o��lY�+�O�*<�{�x�N�˰~�*�"M$��d����5�B���?��a��T?�X�h6
�p���֮]���k�6m
���#k�7&_��/~/��=��6��d���8ΨE����M��۸�s)���G�I+
d�4�7���{C�2�hcec���L��Kkr�53H��Y���I=��"����\��m=$�Ofn���WN"��hk�����m��ݯ�e���Dj��"!��<v���[U�����,ٮ<b]��'_E��8(��B4��}�>vXOݜ<�#�ۡ�{s�\HE�����"�H}r2�U-���y�����j tW`�-'���Dw ��Y̮�����T%�h�o#��G?��_~��K$�@
����_��ӯr�eìY Ie{i�o�|jrT�)L8��o �~��n�a��謪�9�!��Yap��VI�S�OYD-0B�y�`+k�f?%�6
!��e �C�z�&vޏܖ"� ��_l+��O����VGYM�0���8I%ɴ�Ƽ-���K�pí7�����o�K���Jz��� Nf� �01*�&�����ҵ4VL'�(G�T��  ��u�d�#c��݈�E ^�Vu��pl��=�r�g��#�>+G������г�-�b�:���>��AjfT�)�]"{��tA/���ظl 哒����.�z���nY��]���;��g��U��ng�����QQ��i�s�G������h�0�{�h4Nee�֭a۶�L��F$rrj�%�����vy1�{�� �]��u] ���U��;_ 0�"��G�h���oH+$���aѲ'Y��Z�_����_䱰�j�z-��M�%��(
�Ūٿ{n<K����u��H�O��?����@!�ՍTUTpt���x;k��]���88����.�<B|z�吏w�Y�b�s Փ��!�]�,;g��};}�=��ӌm����� ̦��� � DZ���?����D�I��uTGZ�M�Q�h�*�H<��0���Fmm+���۾�E]H,���HNg�>���}<��+���8��s�u�\&K{������PUUWILa�-�ɰ߳vBK34��o�5��r���pm?�rD�=
\p�V��#�+�QE����c9��Q���4 US����s<B��>���i���xe����ļ�gN�6%�_/]n���=�Xy��w8 �  ��
�{2T��$��r�H5 �1X�r��n��V�����t���]���L#��f.�m��}��ze}��q�C>�c��]lzj;�vk�FT-'>_G��y��K2E;������
�3��k/�l��j��|��n��q��u��X��e�śэ97O���n}�{��ٻ� ��������D�|>G&�"���*OPVVϺukعs��MD����H�8!�����L��.�fX�[��P��ܨ"��;��GiJc�(8=��WM4)~��A�b��t��3��V�@�������'h���i���8�k�@;f�zT4�X�y�m��I�IMUSQ�y���:��NEE�6ng��-D����q���� ��[\�NҾ���O�"���ļ��G����+X��O<��/�j����F��(�Y^�kx+�@�L&��j�f�|>G p�������I $ �&G�E����8�R�瞛9�܅���q_'��tC
�c������^΂�d��x��0tT ��4��6����Aá�Fቢ!ӑ+�#Q0�����o���3�an\t����G_G!�]��s�4�E��|*�4����]����h��]�������� \�Oj��B.���� �R��'�'� 0c֌1oS��d�+K����1j̼z&�����TA!ݛ&��7R�� :qB�(�zD�V@w�~6��D��D�"��[?Rk��a����`tds& � Om��XCEf�#@�� ��2f�/�9<��SɁ���Cߦ ��
���M#`��T�WS[ъ��ѷ����v��Zl9Rj���Ryҫ<j��tv@�����r"MA�J��"c����K«'_VQ �ˑ�e�"���j! �H�Lֲn�Zv��Jss����p]��}����\v��+~ �=�U�Q+�୯@g�~R�ĦȊ>R��D�$���n����)�! ѱ��X���S��Y�C�Px�g�Rw�h���~J��ϧ8k�U�"��� �ٱ���.���t?�v�@*����D�T�aql�8���6��iv.ڍ�h�[g0���b���4�h������b �UP7��/sؚ#���mg�ͦA(�4����m�1����v���V�yx�{8c�L���'�zI$�Rý���=܏f�ik�I"Q�G%�p(�& ܃����&�<ׯ-�<�P<�#L5m�Q�}�J��W�X�k�����u���(��w��msdw�1X0,I� qha! �j�_86;o�0C�o��;����:�S��6/��̴��Y3ǴM�������C�MLzK+���O��7�n�6�c�j�(Tq�?�u��
��+w���.o�v�h���+�*d2Y��_N�vZ�iF(�_D�p�� �v� +-�b��kU�3oaZ�9ThMT�-�U�e��ԗO�<YG،�:�Zun+��a��X1�d�&e�:bn^�A��N�s]XnUW1 s�/1ʍB�/C��~�� M�3H��P�l*�*0C"�0��g`o��\ e�c�N�o>�% �(~ �d�X5�ׯcϞm46��K�f��,~���8p��-o�+jjF�@����ضuLc,!]�Y���$�Ud3iz�]4B�&����viTF����0{�Svv;������ >H]m ���8��6�uټa�xɩQ�h�<[�Z%��| �7z��dU����]͎�X�q [�/��a(�U&�pp�e�k�j*���c[6FH�/����k����I��LT���g�.^[� v['m����5�Lo��Fh�l"�$� ����t]Ƕ��a���϶��rYL3�̙sY�j5���̚5����q_+��tA
�#�����_܉Q"��� U��4�@ �m�p=���N�l�XE崑W�<���Z ���膎�)�c�`Z�hҠ �g휍�)� he� �����_k�m�g��ҕG!�휍@��ǩ�B�KIVP��6n�E�N�*�L�M#h���g�ھq���N{��.Fx#d��ި$�t�{x��/�B̘)#�ot֭[ύ7ߌ��9����2�(�#��Xtm�ow���<��y�0<B�Ј��@�� @���V�G�+'H�ٵ����I��ٽ����� cF��:� ���E�?W\� ����`*2��<��8�X�ʲ�b�A� �P�J]y�͔�������~���J2^FY��/D~�G��>�w�9�#՛B�@ 0�<�ʣj*�[�Us֬˱�6{ڷ�WB$FA%՞��bf��%lw�kx�� B%��B@yy9�h%6�c���44���78�l��n� ۷�}����2�^+
X��~�'T�5QU����m(U��8�}���U�B�P�=�����P���z~��l�ͼ��%0 ��Bt]G�4�n_��2@ٌx�l�-�Y�aF�y�z��X��i�Ӷ����S��m�F��2��^J]p*���u��)���f��UU�<���]�]��� W8�oɠHp�E�'/�sQطw+�,bsv1�������>���(@�=G~e�5�a�&�`hHͯ��h�>����s�RKU��cۤS)B����s�F����x���Lk�Fe��I)H|�<�0��+�8�Θ����6ʢ��1���a`Yy��T���Lh�:�H,��3#�Q}i �4�4S��~�ء�F�P����fP����3.Q+(�3y�Yz��&�� �̰� �NKxb�k�(&��O���R�,^�‚�k������iE�P<D�3˾5����G���UR����H(�2}��oT6m�����P W]��ԇ�Q�M��Iĝ©J���L#U�d��8�i�^�Hձ[�����'����o
��0i����Nzv�+�������W�"r�B�v��B�
�(��o\RP��ԋ���Y�S�(��|!W�3d��'��\�wc6 !��4 *���) ���3����z"d:� d�P��`}��?=t�v���4��&��MW��0�h4��6���&#����-���Lm=sL5���<**� �+ذa���"� L:����e�����]���i���E�6Xlc�� +�a���JE����Vv�_uY"UAڳ�˩�L!
�(����++�fK�rr^������?J2Q1��|>����tw�ڦ?��P9���筛w�]�gvÅ蚁�m�V��� 19D�!HOG��K�z3���jWٲl#{�n!�ͱ}���9*�ǖ�[0��\��m�t����m�"�����ˤI���8����g乕>�f�;����
���z4; (OԒN��%��>���i��Ƕ�A|lA�(��m�f�ޝ�ڳ���V U�a���2����d滦��W�Y�d-ӦN��`����'�W�z�+��0�� u�)4WΤw�� ���*��zt��ql�+�m�Ng'��ذB�s=�A�>��o�7����8G��C�T���du�F�z���x����*p�c�<�?��O�V��_3���'�#9@Dd)��a��^�Nڇ��[P�G;>T����#G���C>��k]/����4�+�ȮR�u6Q�jc��(*��7��%DcS�N�1KN=�7oᗿ|ϫ�=W�=UU�$���� �2j*h��J}�T��M4TN�.1�t�=�S�"?�v.����.�xp��B�� ctӑߎҖƘfa���&^w�����*��N�q��>������L���䘗����I�Ғ���9,+G"Q>8����.8���p$LMu= US�/�F�ق�"�n��I���K�#O�'��8h�>a?���1�էU��&�MLF�н���� �6f�_D(8��É���ƒ��
��
֯_�޽R���x�+v������oM� �Ef�>S���<���ojK�pe�΍]���T;���P�~�k6.az�ʈ��qم�GU�?�ϾWO�A6�YFd�JyK�tly���1�l>#���D�{v�{o^�A�IPm�Q�l#Y��<^Kf��+w`u�l|i���3�G}�<����mc�1<��d�<�����gq,��qPU���_bO�&\�<A¡���t/�S�=�-�(�� �H �@�_{ ��K�����ށ�]l޹�����+��t�>���@h�Kyk�v �*�ߡ�}�fj��HF@
`��'��~�UW}�3���k�L��{z6��w-DXO�D��غk���GM 5�����)�
�K��Ѥ�j��[Xx�ٴIA�s=?�ys)?�u\P����c9~���b�m��|1b��~4۱�~Ǟ���u|���L��'�s�=GÁ�̺����k���_��q�u0�<o����v�o��(
ݛ����ݸ�B���̭���&_IK�,<��7�l��{q~��G���a�d�'���� 6l��<J6�=��$�@ਈ���� !�\�4)O�ae,�w��r��(F>���;���n7��)Q6%N�.B("�N��2�zu,=��x�G �W�����3�v]��׺h�,`Rՙ�u9>DZ��P�a'���������8xT�`0HuyUf �~��NtW!:X=6��)v��N�.J(&p`�~b�:ʣuh���kT&H�:��4�gPS96�bY���hj~G�p�C�Nc�A������W�r�5����iB���R��ͦ�dO�!����} ���mn'0EJ���O"�DK�L�%� ��4�� 1�T���M���h���uK��'%K�/qmA��,S*�&h�P� b��Q��V&��fRݙ��a��
Zjg���߷��(�� ���ǚ�[�y�+.��A�Lw��/nc��=TG[�����ǰ��9����&�F��c�v<�� �]��l�TΚv%�P�`0L$;fˣ��g��A�c�2��7,�խ��_�@m��|y �p' �W��A�Eu��N���a^z�E6l\AssUUU�Hބ����w�q?�{��:�����w�������]�H�؃�3)�� Eq]����"�3��9%z�/̄�MdF�LRn���O�"���jQ�$��Ir!���Wx�w��F[˟�������q<�+��z���s� ��z�`��s����VQ *�_�,�(��\?�9 �Ԯ)�>,���^d�m�<�d���F34_���q�B�+矛0F���4�JeF����(�#�HFjɻ���T̋�FM{�AZ�[ikk+��%'��X�~w�u�t�����Sw��a�B>��u]z��� n�b�/� �������QX<��6;o�Z�_?8�ڦKw��!�(�Y�W�LT�4�w]�l6���B�⿗*��$ RW��Ԧ��VϦ.4 �+Jߖ ���B�.��q�t�q����S��=���(�� ���5�u��9��'��
M��-P��H����X--��E�뜾�>y� ^~y���*~ ̱��4��`��X��y::��ق\y;��*�h�\6��"�� ��dRlܲ�U�̤��L���`����#SsM�$�ϲm�:�`?����ȋ^B�Mf�œ?ڲrd�i���im�IC�$*�k�D�8��m[h�A$����H(��8�:�T?Z� ��� B���3;g������@g?�.��]�tm�{e��2��SNuEM�ӎ��i۞�lݳ��S�f� il��������40��M��ŋcG�dl��OUUl;�/.6�(��������=K����m#�/�r�T�/C74�R_Q� ��+v��Ͽ�g�m���I������/�D�&���<� _�����G�����(UU0 � [^cO��lĨP8бς�VA$G�L�m_C�^�[ ���z�G0Z��1Pl9�ȡz���T�(<G4�R(
�B*rA�:y۲qrN���DA3dbFM�� �p#l�g#�̈I � �����i~t��@�Q�BK$�
�'(dnz��2J�F��������:f���k��MC�Јi���6�+ر�� ���-�kA��4̫�_;@Gj'�l/'�>�IG�2�.bg+ԟWI��D�M��ٟ�4������}�%'��زe+?�Ń�۟��>�Ւ�_����:�ܵ�����s�D+#Ŷhv�&\6:�[�`\U�n�E�4C#j�T���������R?�� ���\���#���86�X�ߏU^kl�&�H���)����iW�l�p�8��R���a Sk�jʠ�n��i�GbY����N��-P��X�֭a׮-������U���P�/���|�3��6�����D]��fS(�o��궧X�c ��nߝ=�K�6��9d��'�G+I��h�l��j �.lA(��пޢ�v��4��P�p N_� z�{\?����g �n6��"X8�0�g���}���`� �}Z�p8ʬ���<���Y:��ERd2�{���G1�r��������,n�iW1�+��e`�C����s>�[.� �M�G&ӏ�Þ/@S�d+g��U �(���#��j��t.-����G^�J��|c�<��c��_���ɪM/�l���ʘ�r. ���]��� �yٮ<��,�@4��W7�w�Z[��gw��쥭�I�CK$�pZ
`��X��e���������/��x�쨔�P0Lk�Lf6�O,U��_�s\v�@o/�H���f�=6�����Sε]B�Ш'��:�M�}��'��(�#Ftm���������Avf0=��1�&�X�@�7�� �`$X�XU\0�
�Cj� �ͺ��F� R)�W"����9)V�7���K�P5uDC��q�\*�2�o����kXY��ne,"呣��H�ǩ<#A�z�-�V���O���U*.
Q=/I��b`����%�{ֻ����63fL���aT�ɉ��<�m�Σ����n�O��7KZ�/�;w���κ��o���*��5k�d"�Qe0����fQ�����D�^
ņ��*��n�89�Wv�'O�,���r�`d� ��u��x��/c��{����$TV�2�n6S�ff��T��P��%���e�bdl����h�@ p�D�"����x���kװc�&�Li#�� c`���z�E�6�p�[���L
M��۹<��I�N 0>�Y��ߕA�S]�L��^��+������ A�������L�aa��r ��]�k1<�u�b�񱰳6��3���h8A&�"I����Q �uݒ @��|ü��Ih=�/o�o�Mצn�� ����0��;�l��f�]Q&��fz�"��_�Y��d��˙1y>����[QT��4�1|&�������l�_�-��c�Թ~���������߅븘��r�o��6�벿k;k��Ȗ}��?�GS� �~�G ��s�t��۩�]�������u�t-�ј�����y�;>ƶm�X�|�'�P>��nɛ��N��˫������O}����ۊ"Tj��������P���j�fR�B6�f���]]�70��l����֓�3$��n���� ���:C+����6Gå�z�wH�fmҝi̐I  �������, !�m\U� ��/��o�T8G����r�,�N@:��5��t�����a��Q��!�2x, ^?�C������!9+B�5�M�w�H��"�EX��.ZZ&1c�9|�_`��3�����I&���}�_�o��G?�o�}}!��q���86�\�=6���X�E��d�����0��N�g]���E�~���o���e_�����*����)o/I��/���Pd�hq�"د%�'Ҷm�� ���9��"1T�_���}|�V%�c�J��&�p�=qeee$�u�[���[�3}�TB���p�O*�◿|�%K6�4�[��$�rYOev���k�յ���p}�0���E���Ɗil�^���j��5"��u��Ō�s��O�n_���3��(A�+�c;��}�q�ݚ&���٭��f��Hc�/Dm�7�:�X4M�����-�2w��4�g1)>-o�H5���Dy��Å罓��B���5�Ķ繃��T!ظy%�f��͠y44���:����ͧ�Zi���ٲmvަ������a??� ��c��%�M?Kw�F,% ��g1c�|?�/���p�١+���f5\Dn���n�����kɹ)�J���}lظ�^�=3fL�����|!%�7�Wio`\�eٲ�\w�w��g@mmS��~��̞��H��uU$�̟v9�~�Ϊ�,o��z �k��n:{7�W6@�)^R�#QTߕ8۟�LG��0B��`g�!��p����C��7�Z�l���\�8� ?�YUTTE=ʩVQ9C{�G(��wӴ ���k �s-��|} ������������C�P���P��c��0��\��8�~�=/XD"Ib��a�y��8�/}�>��q�72k֬qE%���<�n��#����/~ ��җ��� ��;P�B��gG�*��)?+L��:�w��f)k��Ɉ��cAr����1����{�֡�sN�F�U�o���ѹ8C]�<�Ϻ�,-��86�|M�K�����������B6���� ����<�l�OE>��L)h�N8!�I��A0�v�����Q��O� �\p�5���p������$�ɓz��d�Y��>^}u�y�'��9yⷀ�, ",�azz��C�V�4M�})��K8Cxy/E�\�Dv]1�G܏�u^}z ���rrg^s&���9d�_x��Rt�.��g_A&�*�����
�\.���Gg� 5����NGA������.��
�I�������cY96o]Ū5/�>���3Z9�6��:�Q�+1y/C�1�sf��H8~�vrV� �`�9t�@�t��`�^6�/A[��� 'ӹ�����U�|O� ��ͼ��C �̼��Ⴁ�f�����<r�������%Yj%� r�D�]��ז��/�k��> m��J��N��^�Ԗy�c#מ�BBJ���� ��} �}9�L��@����w@��� ���*��Yi TJNiT�f�u���K�� ��7 ��M�gy��1&��m�����%D�]ǯ/�M���V���y0� �A�q��e�C��V�*F�K1 B`�m����<V�k�m���]Ń����� O�M�{u���^Θt��]"�8 \�?���q���SQ1��Q2�!زe+<����藏��l>��M/�xϣ�߿���:��^�`t�KU.�$R¶-�D*"d{�Ŭ����te�u��ᣧEӫ�qT�FA����?���@�$۝g�S��2.�YoAx.�� FT�}����fA4�չ ��'8���y�\��� NLJ� �#j�G�ǡ���D��_(����u���6n��� ��3gV�.ܒ�Ų,n����[��;��$��FWf3~�<���0� ��������?K�!�!���˨l>�*�4�DM���ߔ�%~&s��Z�f0�b>��
�L�D�c ��mc�u�� B<ץ{{{�͜�[)OԐH����Ѵ�ŷl�@��� �c�ճ��={��O���$h�G��)��a������~����jLn�ͫ+�D{z;-�È���[��,ڌ,u�' OQ�Mw�>�#,�����c���ښ?�ޱ���:���ٴe9��!X�})�3/Q~�F�Y5�����iЦ�MUe�aǪ�jq��`֬�����#����g/ ��X,��9-��W^y�������58S�u� �=�δ��D��ﱨ����N���}�ݾ�|��ʳc���FO{s�\B8WAg~7��A�C�pV��J��s�.�>T(+�����dJ�$���k��S~��|Ɵl��a���޿���h
���q{ O�u���`됙ֱ����� ��T��+��e����K�H���۶]��Yb���9�
��Vz��*d@B���q���M�~r �^Z��19sιx���n��^<������g?�a.������>�!شy3=�8�}�'�Y��3�v�O�lZG˻��>7AŜ85�+��VF(*�X�@(�1�e���I���� �������϶_�E�PM������X�pa�_2�q�n��&���┪��d2)�&/���������b���Ť��gTU�0�`P���&��8%��_LH��g �c���PS�ʚ5+Y�~g�y��'�u��ƛٲ��w���hllCU5��,�ca��6~ �l?�ML�2���ݤ��В�N8����ͯm`ߞ�M.u�ˈ�����j3w�e��dR��J $�駹~��s g�} �ə�{t:�tҵ���[r��y�i��憩c�g�(����� ��w��U�r ��ކ�lh_��Rm�4G޷��i�}}]�!cZWW;�W���5�Q>���O���_cӿ%O���h�F�>D�5DO`뗭�tb�e��ռ��1�oyŃƺ)���{H �ckyVu<Á�j*/ S6%���;�k��?��c�f��eY45M��/˃�� .8�Hd���M�i!�-Z�7��>����4�p8:���KgW;3DC�dL38�L#D,\��<�n?]���E�5�]l[����t�oދR���7���[:Y��5lxl��#l��b��zh�@"�����~��[�d��(�B�:�a��;b�S��V��cG��?YVP��i.A�9C��M���ݣMx�F\�H�Lo+k����]�%ן������r�9�(�+E��w��Ut�=��D�o8��_��m�9c�T�4c��Tk6�̦ݯQo����+�淾�e�\BM�lcp�X�r7�|=����} ]7H�����E���<����vS���`"�fjE�dE�[~��s~�|<4$m_����t�������b�͢k�ᨨ�߰�U�'�&\8�/��|�Z4�w��Ou!�Α�f� ���l6��8�ñQ��P�'Ҟ�aY9l�"O �``��\.G 0�R����:��������S"~�&�@�X����Db�յ�z�J֮]μys����L<B����e�^����#������������0'���.�>�#vv�fj�|�Z�-��U�$j�h���48�{]k���o�� �2�(s0˾�{���/)��5��&1��@SRo`Fݹ��[��gr��� �ƽ`��*���86��e��y��n�վ'h��$u +I���gv�T$k)5���0I�z1�C�ۺu��l���,��k�`glr�T�}y��.*[��n���M �M�rYD-�����Ϋ L�J� P Kd�ݻ��Յ�IDAT|��.M����
5s� %C�`�3�(�;�Kf�%�� ����i�m��e�4�ٳb�w��}.��R����Ӗ7�~��g���o哟�6 �PU���b�A��O��Ue �%��i�_@�5�
���Z9�`w�ɾͻ 6j��+lٱ���{���O�9�j�������Ut���Lo �n뮧ΜNg~'���Q�SUE�ێ���m�ܠ�U�bo>�<vt�h�e��ݮc9 � 3�*A�R�=��%���������;ʮ�<�D;�}r��r����&�
$Eɚ�,K�pm�x���Yk�x��VY���ǖ(yhYCK2E1I")J$Ev�s7ЍF�U�*�������SU@P
�$�������9�����y��}��1X,#A��Q�w}슍Ӷ�-^��=A�⹍]z%I��ʒ0��JH,^[def���<]C�8~��ӯsf�5f*#̵���⭣/PȎ�x�����W���������yۿ�>n��z�O�ާ��r�#�{����$��P.�u�� ���y���iy ������9�R Y�7-���'�n�1d@e���Qe! `e��5��S��'�_�����
��r��˜(|��sory�8#WO��w�N�J�#bjƖ�~o��������ɶ]#�έ�i<�z�B,�=�b �u�Z�0bM��ws�h���Km<��a-��]]Ü>}�3g����� ww�_��_cqQ��~�I~#���$ɔ˅�I��8��>� ���iI����0K�s,ǯ�u�XI Y�1 ��b %Ӎ�[!ӕ�<W��W 1���}��)����%2хb�5�I2��u�m���T&�z��Q*�pj�%�3�����e� �㑁�%�}��\��5���]��������I X�� ڦcճ�S+�Z,Rm b{dG�Y<�B,��}m��!m���I�%�����`s�D��Y���m*V2���"W�5Ol���g���� �}�RiM3a[�M��V��q$ z{w�� ~�7��{�CX֭c'��>~�CM����o��O�>�� ���ޝ�6QXy"�dl�4��2�� 7�:�>m�n:��a�d����s�}�u�pq��cuG�� Pu���2z���m3v�2�t��Df0�����: Bj���a� ���̩������GVej�ڦ2hI���n��@�튍�)�����Sw07��W U4C�b� ��R��o8'������ٳ=qܪrKӬ��ڮ޼@��ur=9�w���!w9d��넝U�n#5���}��ʐ슓�'|v��O��y���I�
G���ӧ� Ux�g�Xγ��aTUl�Tu= €���(w����0�nWl���n
�����$�^ȡ�pl���%.��r3c4
6��i�=QT��L�9�w2�S{~�T:Äw��s
o�� ��_���[� ^���8�#�
%wu%IRɡf�cQGU�m�Ʌ�$Xt�|�#��6� I��4�ѻ���Zx�K��D&ӊiZ7��kT�e��4c 3� ��% ˊ7I�ٳ�9x��^�~�W(�c<��O��ѷ�uQMөժ��� ��澑$���m�^4�bii�r��!jMӘ�2�;�|���:wuav�TO�� �cG�-���%ѥ����m���v�(J�Y�0, �� �����K2m+�x�� v f%�W4ry�vޣ��KK�\�r���Y��v��a�������l7]��Z���G��X�$vj�|�M׸��+���5 �*#k2zL#$��<�0`��
�էx������Ӓ�BS���41vR� �pK��U�3��e���AL3ǿ�w�����$�>�Z⇖��g?�e~���g�nJ�Ee�gC���T*%<�m�o�Hz>�D]3HXi:3ô�;�$�3�>ӆ_��{(�1�a����N���,��=C,[��76&���s>=ۣ^�#k2f�DP���m����uI�ψ"Tn���\�07&�� �a�T4]۰� *�C����s���F�h�FY��Q��np�wF�Za >�v�~���SfWz| ��F�µ��{3�!Y��N��Mk�DK 3e˙h��Tq]�hQP�\��ǻ����7�۷�����ۍ7����O��y�=I�;I�^b��
}�֑`UըT�\��6��*�6�IZ}ߧ�\m�[͛�e1\]�6��v�s<^���TO�N�q:���.֙:7C�-S�*2�Z���ʔO������'�l��q��TF���A ���:h�ݛ�H�(�����2�\��܊����UEmt�wS�(*�S�R)a�� �v bnz�nϑyOd��>�K��2a�'nI�VI��N����a��빏�ÿ��D����?EGG�-���Dk�خ���oDȕ�s�s�%��_: �����*Ƒ���W�w�����[�3VF�x� zz��c+�
�S�X\!Oa���u���� �L,��%��޾G�o�K:�GS4dEbt�,/��5Ǧ%��75�[{��uQ��4�S #<��'xp�ȧ:�4 ӰH'�dSm����+�;,Sk��~�g�{c��2�Ώ�0n�9N�ae����5�kbo���YI ͺa �H�����Z�ژ����D�W�� g�"���G"������<�܇�ˡ��~( ��ٟ�/|����cǁ[>ԦaaVCm4$oe|�olr�v���R��I&3k�2�f�0��&z0j����T��|��1�(�-О�'����5L����\p���͝����U�i��9��kXƺ�\I��ch�ƈݼ�;��to�q ���7v���@�D;@�꿿Ynre��3֑���GN�!�E�g{©�6H�D����Ms�۩��J�P���G�����8(��*k����I���6B�%I��~������������x��Q~�?��~����cĒ1dE�^�1vv���ef�D,):�H�9�&'��
�o���ZLl��#F u]Aj����j����뷉0��צy �cb��5>@��oF&����̇���>�[�7��t<���T�%�.�%qP&���h����*�
��!=������$�i�-���$ ���ܦ#���7�n����%�ד�+���]����M��wH�D,�lc��…��ݻ�~N�6���_�us<��'�����e�)�RV��2��EH��+'��g���;���%�CRd$E�Fk��TM5Y(LbU� ����I�o+;iji�b�!O~��m'����ʈT*����c)bFM�nk_�J��g�U�By۫�J������� �������w>Ow�1+N"�&�ja�w?=];�[��~0*�)����ybz
y�b��t�{�k=���(3g�X�.��T�&� �{�H��~l�(}��Vg�or�#��$IT*��9^{�%�7s�V���^��V������?x���_+���/�K|�k/��mv�:������\5l��^l�J��K��G�^C�4 ���$K�I�h����չzy�j��:LW��X
׵!�L*G�Vd�r��.���=I3}˓�"\� m�.�$Ib�� ��Y��4�|6qi�r�eY��3nA��:@_߅��pm�M|3��S�ֈ˴�`Y��.W��$ے�GB��T �=� ��| H�(8��zI�S�H���{��Ŋ� Ӗ!�+����u0�s����}܈7��?��o�x�{�D&A�����*�~;���� ��\�̅7x���M�g1�J�;������p)7,!/�S�9��K��}}�Ð��e�~�mv?���^�$��b�IZ}t���%;H�Sĭ$�&�e��r��ǡ�L�E<S�<�����:c��5D<�$ d���}��up�:���őe�u��қaaa��$A�H"���s�9`��\�I��˳0�2M�HR<�����3gNq��v��A,�}R������p�O<��"�"��b�4�Wl׽S.8�m�'I��:lj�V0�b��-�B��� e���q����y�'�(��S���@&����+I4����b��<���V�V��y�6r�}�az�
�X���4�d"K"�&f%��R����-L��������� P�,73 �%�H���X
]�����ͯ�,K����^Z3=�f��l�Ǭ��p� ��[_{���eJ�5v��p��i�r�h�����h�Q�Qt��4�P�*���(
��}�f�O�Wy��gH$[;����p�P�/|�������3?˾}!߆��X^d�0O*��2c���������� ��<�x<u��EUTR�Z�^z[�07?A�L��ҋ�*(��D9��Ȕ�+b$�ɛg�PE�1�cj��F�^^v��tV�$at%m�7�!����v�8��5JH����Y�: C�KU̔)~�&�[�d�$ݘ��ж�x�bY�1��M��VP4�j7�j�Z�:閐6��f'יC�����*Y%���;�����#"����H�M� �Y0R:F^���:�����j�Z�F����8a�TEg_��M Rk!�pc.U�60+�A|���M��n�첈���x�M�X@ -R��!���⨪���"�r�D2@ݮs��1N��D�3yb�ͳ4��-�M����}�;��8���y.��=$8rB�e�1�&7�a]׹e'X�
�E|?X��z=ǦZ-�H�6�<Af\�ޖN�$A�R�� �l�d���%)��Μ9͕+�$���u��_��_�^O5;����X��cɅŸ��E�T*%��,��Q�X�\��U0���X��G�;��ޡG��� ���z���DWt~~�Z�D*�m�B�aWX��V��8uL3֌)�:��ZeKDl+��r�@ay�t&O����ڌ��!�ȭS�ED �@U�5���j���Cw� �#K���6�k������Y�b����T�L����NVo�0�Lnڞao��dӭw���('�R)7�1�n��9W���Ad9������''�Ln����}� ㇆��� /��O�<�$��@&�*� �t3�.��DJ�Ri�Jni�JVd�V�|���l'-�����)]��u�rm�%�*���eЕ�
�*c����W��i�q#O7�/�����s^��Pv)I�s�7�)߂;g����]�3wq��\#%Æ��Pw#n��a9�$떎�0 ��voI�=�î
�.#fl�S�UȒ0)��s����"e6����"�J|��"�%ؽw�]�_7�%���ä�u�w-TU%�p����GiK 0r��?҅$C�\nj����sˑq Ƕ�86��+�zu�A���ɪ�,:�9��e4��0�R����zz���Q&�.357��'?˕+�87�*W���5�������
��M�#=���d, *�.;��-ߍ,K ���`����kvy" �* 65����{㌝ ��Z��ź����n�Ip��+H��iZ���%�Ri��NΞ=���%��wwna�/��S*Y<�����"����z������V��!�#�i�%�������X=*��Pu Q��)���.��~KK�s� ��=I"�n���5��!�+�j�qP�9�%��\�i���FR!�j���$ aie��W_e�=���U�+��vE�%�u۳՚�Ӓ렣�U�pðH&�7H���YWT�D<C<�b��!v<H_�^���W�Ki���r�0 �c�E���݉�H|�s��Gy�T*}[�q��
����/�x���$>~��@�tL#������5")�����$�q����y75ʊF*�i����J�JK�9f�K���o�9��p%��M)S�����H���B
�oV!�ܚ�'��$�;>����} \/�Y���fi��Ii����/�p��稔�t��t��^�c�̛n�#,EU�c:�"~���"3�s��é:���$�w;o��r�����0��]u�7BHH[_n�兯��Y7ٳo��}�9�<&f~�#���z`C�+!!#�z.����*�/Q�1��'H>&�Na&MtS2������ɗ稟Q��2Y�D��܆�)U��Ss�Fx�B�]-��%�Kf��ʛ�ma�N=���/�wYd�� ��F=��k��] Y(M2�9ǎ��0�)������
K�X^�T<��0�= C��J�a�e�nؘF��H�E$m]7�fV����z��ln��9ӊx&��Ip�'!bJb�cߞ# !�ɐN�s��&&F������"|������‚�p{��AQD4R���$I���و�A�iZ�:Ʌ��\���+�$�V �3��6����s�0�?ܼ�%I�4�f�> C����^�BKK'�[G~ ��0�L��^)���6B�>>u��ŷX���Ջ�P4�9|�\� ǩ����
��h�y��DϺ�{x��,���U*%��#Oђm'K�6A����y̺��:[ޟ^>�����R�O��9t��Lfێ�>��� ?��������Iy�:tg�7B�� ]_�DE݁ H$�(��0O�z5p�c�e U�)U�[<E~_r��9$��RCVd�䪫q4����3�f]RYD l�$IRc#� �#!�#R��wބ�a�Ssye��D�R��L
�{T�e� �x_� �0 ���-c�?h� �՗��s��� N�v���|TC�i~�VaWmܚ�sk� ��� ��6E�Dg'�x����%��}�}�������C��� �g�{e���[�O;�/��7'�p렏4X���n����\a��ܛ���.MV(����=�X�^f�4����vHp�����ڑ^EQ����X�N�/F�K�G�%ԤD%Xf�8�ӺL��IR�M�/�첈 �q�Uڵa��a�]�`! .���y�JD���o��� �^�c۵��������u�o������]ò�n�⽓�fI&�8w�4��W���O�o�q����m&&�f��0�L��0�q���V�7"�돿�D�z�k
X�,fם��6u����t����6}�D�D2��5ۉ��$�k��p.v�ܭGs)
Lύ�_a�p�/�}�"ٙ������0t�0 ���m�D3�b��ݲ����z����
3 �d�"F-����a��o,�h�meA���ܖd��LO/��o� {��$��m���}|���K_��=�c�}��/��l,�@�$J�aH3�ܶ�D,�@U5TU%|<��ql$�;v<��Ї����|�Y�$j+5Q���(*r���Լٜ��HbVQS65�r뢓z��a�9�LynB�/��|�_��w=�U��
jR"��L��{:H���а�խ�7ur�"����6��a���x��f�MF�$�����<��ԸuW�Y���!n8U���g{�a��ݾ��V�9�I=V��|�fޗC���~���̧qv9<��]gxAB�0S��7F�S� �P �>7�le���~RI2�uEUR?�����e����5��)޷��XZ��;���k%���$�c�w�ADm��fu ����� Q��Ò$aX&��8�3�k��ܣVh����=K�"c�Mf/̑_�A_fߺ��;%���j�s��8���bm��%����sYK~#ө;}� �ȋ�yM��{������[8w�,SSctww�J����Q���O����|y��}����� IR�8�g����}�z� �1�� ��,C�Z�Z� F��Z%���P�R![��?���GH&��v��W���}_H��t���b�j�-���߷�4N�g��I��T,rv�eƬ�$+�=�!��QY�Q?����q:��͜\�sp]U��{�v�o�Hq���M���q��*h�F&�rO����Z#��j�4M��A��{�����xk�!����� ^y�[ �����w��>~��K����g�<�?�)z�,m[e��<�fƑ$�d2I�V���(И%3�e ����9+r;�$ ���K̩�H�&�_�ن!������,:����+��N�A�n4݈��H7DEFXkc�"#��s��ZSj,!���0d��E@›�qj��-����q���n�ԋu4K�� �Su�@�Λ�fUWqm���>a
�+��%H���T��o�c��T�!�&�T��p3���A@@�@;%����<�0Ů=���w��"$�������m����GOO�7�=�̞Z��W�hW�9�����c�Uv�~��Td��9��A,['�W5��%� Ӕ�Ca���X��R��|�`ܤO9���,�Ͻ΃�!o�0qv/]��n�HP5Ip��_��n��VU#a`fM�� 2]�Ħs��b 3! _<�Ź�Т��L�׭ő��VI�ZWYA~o�k$6��c�M:�B���w����{s��~3b�4��c�F@>�'�s������� P�T������>=͏��ߡ����]�4�^� 䢈���ȯ�{7��0 YZ�crfӈsm�����Y�^�Xf��e�i��S�R�ҚcH�u ��~�,I��������F%���2�-�z ����12v��3/�}L�c_;+��T��,���U<���?��۫i�c���-����5:�ۖ$Gcqk њ�!���6�'�na[�XK~զT������������0���4���9{�2G��H7---����>�k�@��k�ɟ|�'��iv�:ܜ���A@�~��|�K�Ob�m�� ��u�������\�|�'�/�[�$IT�3�˴�Q]�b�m����F�� ��W�6$\�|�9�n0�� ����1>R���>�"��+:�v�nn�}�' �0�); �j����O�Y���a����x˚s�H��b�����j��DŽ��f]��w��K�AH<�cYr�851;� 3�q�Z�<�kFPmW�WB��}�o�ցV�����]2r��;�C�؈�9s�����q�*���O"���~�,TY�Vd��<׎N`�I����˴�#?���� &޺F,�A<@O���t�9��.ŋU��t�B&-򥝴e�xs�/X*����g�,�������$�uTc��s#!vU������W���x�0��l4�����/
s�(�gk���t�w�7��h�1ڈ�,"�qll��e���۟��_��^;�]�y���Ip$W ��X,yO�o���b9Ν;����}9��J%>��/r��>�@g�G~#�xQ,Z۹�$A�l{c��VXX�������+�e�V�iB��K5f�'8w�-j �´D�V�^m���_��t�
�������6�� ���n�r��_�j������ט��"i!��F|�e.EK}�w>�����]��D~s�*����FX���}�Y�[�k����k3�%��R�(��� �L�O�}��l}3x^Ⱦ}s��iN�z���NZZZ�����}�W��#����7��?�*?�#���mvDw���=|_t.D�����,�$i.]:�����Ĭ�M ��YMɉ��[���Pٮͥ��d�DŽ벡�Hܒ��� s��P 1kWl!�o�F2NIil���p*��P��`���u�PI�܀�wf��2/~���ʠ�
��� ���� 6��/#�*����!!�r]82��^�Ǣ[����ףA\�&E�����V����EUSW��nId������c�lq=<G!$IB35r=y���K�;F.gh�wNp�������y�\�|�Q�TŔP����"W_�e��~ �[�x��3�:L� ݠ�T$�Wk\�x3��X*z\G�dBBA� ��k,�Ѳ������~��{HZy޹�
mWH�y���EQ�œL]���V�Ho>���A��xB�|%�V!�rs���E����pjn�%��5� ������u��^�ܜ�6����y�K�VA�-t��\]�b��ѕ��p{�6f~���6���^-�
��4��M�Z� ����s�={���1z{��ړ�b���������~�'�:;{����*��Lo�W��P웒_�XQ��aQ^)��O���b���x*�� X_ \Q��/�ô��
Qu�x�7�}���Y�.^�%�KK�KtW�c�n�(��q�F†�XR�W��(�
�8�2�\��~� �N�����IWj��i�D�Mٴ���n9&q+�c��}�׌��W�׶k�ۚ�{TPU�0���O���B�U��*<��8~�4�N����> ���@��~��|�3ħ>�?�s�!EtL�l.��k77����'[�`���E�N�#K�+�-�����izC# Y��G�BJ�"���`�Mc�5 ��L�BV����*fEQ��!��)7nD%����&�^����M�pD~� B!������Z��0��L EWy�3o1��Ur���A�j).W���]vI�%5'��f��%p��+K�e�TGrßx�iY3� e�k<�Cєf��9�� h
��[wE�Tc�3�ͮ������w��^E�ވ�KH����01,I���Z��rd�G��?� ]]y��n��~XW���/�Ţ�����B*lcve��TF���Ը�?@��)��$�m��t�ɶR.��b��C�%�˱��D��&�8EYQa++T�l�RH}�NmΥE��u'�D�XܢX^���Q��n��ߵWG:1FfO�0o������2�x���l-�a���Z��]������}�����
�b-V��ygs�)��$���������$XU�fԑp{�~���b���J3�8�x����3gNq��e��F$
�����i����'�)�� IR#�B�V�4庑�����U�i�J����z�sX8��ҩT������x��JMBW,-���/�>]�����S����u���3�*+Xf]ӑ����^��k�qlJ��
u��c�x����5Ư^�̹7(�
,�W����+�+$�V��y�L6Kp�k��\72S�e���ݓ��"�ٵZ�j�|Ϟ�������ZD��f^�\��a�􅀈��p]�x<M�<��c;v�S�ޤ����>~(�C�_~�e���� ?���+���74�QB��*�jW@����V���3>y��N�ٹk��]��[��0t1�"�\�c�ȅ�R-q��\Qߠ�q!�5Bb���֮�L\Y�����*��l�i�u�y�U�,���, ��pL��6^�C�d����4��"wXBj��F��� ����y�Tg��9
�e�x���2��d_ �S��T#�S��Z�C�#`�b� 6�]wHu% �Y^=WA��8�Y�M�a4�ٞ��m�7)�"̹��4�>�|�~��4n�G�$I�Co5�!�=�9��\���JY�CސU��,O-S:��/=�C<N{�N>����p/==��u�?�����+|�K_cj�������0ȦZ�M��. ��h2A4?�ĻL�4��<��>��G_at�4K�iF������0 �=��|���e2n7WO�1q�*���B�d�1�J0�����A�t�~�u���J�����'�RBI�I%r\�p��AOm>#x�� µ}3c�;E�;�����]�17*���3�� -�� �t�}~S�(:���JQ��������rh�H�qz�n�wp&q]�J�����)�{�N�y�T�H4;�CC��������U�E���� '����M��v�w E�jU�C�am�D�\.1��a�N"��|�.�l��� ���Z�Ғ�F��fn/�L.�p��=��C(�J0v�2G����wX�Pd�ױ�:�j�J����Q$ uͻ.B<�cn~�񉋼s�E�W��6u��k瘜ᵷ��sg�Q)�DTY���6)��q����9���-�sG� ���8�z}S㰻A���P��V$|�\�����7�ƽk*n�� �um���Cn��y��#���ۧy�W���o�u?���'�A��o�������o�r�\�pv��q�zӺ> #s��w���-�����$�m#��D�����U���pD�E�MB������WO������hI����oBUA��E!��H����E%/��݈�ɲ�$X@s�Q�����J@�LQ�H��s�v�c��ӹ��x�ř�^d�\���6�=I�{2����y|�C s��q�^Z���+�?����S'��N��s��㳴�F2���l+i�k6�((Dzc1!���+6��c� ��u�CQ����fl�� a4湢��T|�G�U����0n(hH��߸�ҋ.���D���v������8x`]]]wt�?h���/���_y��E~�S��W�XY�V�Җ�c��
�+�,^[��Pĵq�3V�"��a��NLp��[������&(��:~�T��by����<|�C\z���6z-��Z<��'y|���߾C�suj��U%�n��}�Y�zc|�z��f]�6 ��|첍$I$� dE�^�o:�p�h�`�í�x��7n��%$��Β�4���'�d2["��8N��ZC�d,+����h�xyy�x<�e�{�'��bc�Lf�7B�7%���ͺmרV+�rm���r���\��Ν��b�/��~D�\�_�^y�,�o�cZ[��T
���q��*"jB"!���޲���(\;;���,J2�6뢞i�P�#<t�z;v>�/�JH6�N�V�TY�O_�mz<���3q��sW�v����n�I3�x�����V�_>ŵ�9�+Wq�a �R��R/��2͵k#�9� �i\�Jћc�8C�)re� �������|�o����x�ڬGLOQ�@({XR�-'DRG��yIӌoko���'�������{���w-""l�1|ߥR)Q�ר׫�R���?�'O^��7�gǎ��I����k��>o�}����u��?�5z{w���(r��1W#"(�� �M�t�u.~��^P`�|�zX�@H׆PN�&/JU�0 � �&(~�B��0��c��dW\�*m0�*�2z\�^�7�2�� I���Б �Z��H�Dq��W����h��S�B���� A�#g����Ft�,��}�F�^��P�0^"�H�
F�����*��0�=���{�*׮\�'?�����(�J;���$#g��6�J�R��T�+��Y2�����o�hN7��oL$q>�-�&"�NU�8j����ni@vKH���"r� $�We�N�i�׍�!��޴�<��8o��1�^'O?�qTU�V��uz�w����?ቇ�G{{�{�����}�����?�]^{��f�9ÉS�pa�M.�����{A[H��i��)̬�̤���RG��PŖ�J��� \t4?���5Ξ9F�]&�k�Z)�
z����bj�2�d �� �%60�M}$I"�j���1��2FF[�?Ca|)7��p��o�toH0@e���C�A�h�X�a�q:s���֟���)���je���G�� ��Q&�H4��[�f�]�a��T�B��LfPUK"r9�������VE�r<��0Lr�<�L'gΜbd�,{��²�w��
�j��}� ���%~�'�]]}���aXMw�������f~ �@Q4���V+7\�oN�UU#��:a3~v�T���:���~�4ՠ\/pb�yj^���ݬ�XY������.=�z�I����NK_ ���j��4J���Y���c��qږ�x�mF.�a�r����\�{�7^�.;��#��9�~�#��ϑ�����0б���� ��!��(S�c�_�H*�'˰dO����{J��AQT�Uљ��8�q��z7�J� �D�Cj<�2�JQt��;/��+��:�(j����^�$������…+|�{��}��d2����>�5�o ���?�����
������ ��HB�t����(���:T*E<�# W �$���U$IH��$��2הwpv�02�c�g�]�^�6*�w�,źo�$4MG� <ϥR)�8�/��;�ߢ������I�<���Յ �$7�k��5����턆���5cL��qc�nH�dGrKY���T��AH�P��9�-3��<F-�"��bt<���)��p�G>�e�X��bM/�Қ�f``1+���o�Tc�T�?��=.���Y|���չ��$�b�x�I�̞Y`�Ң��*���,TV�fG;�Vn��4E�J[h���|�Y3�a�����Nݡ^���$E8b���ݒ�HH�˜����,p`ϣ�����2�8�w��!��Q���N~��5�}�YZZ�?���Ap��i~���F������Ӵ�a�U��6�x\���iBG��ާ9��}Xr
{*�X�2��,��}�v�-��*�\HP�q��]>�15Ng�0��8�P�!ҩ<}=;����u���=d��f'T���R�U���Wl攋X���7�ٝ��03b��Y�w�X[WԹ[D��қ����+3+�R��?J:��-Yq4�"6�����#��Q,.�Je�Y��3�
�)I�~�0����\�r�����0 �<�j���:�b ��US�0�t:C>���ӧ�x�4����4��,|��^�����!o�5�O���n�W�D�\�r3��N<D�"'�J�7����$S*P�a"��qU*e��/����/}����k�9�D��=����L �DI���/2���$��j*�w[���1C�f�F�$���L�t?�J˃)R;,��.��ߒLdX��Z�D"#�ST �8}�%NO�H:�#�ɜ8�*�fК�#��B[�g��Z�M� �`�h�;��8�vM[ox%����J+�f���?���Γ����ZZ:��Z�Ҙ���ƍ�z���)��/�đ#�H�������>��/ p?���������o����*�p��E�XY��j���y�h�j�1���bص:����"�O!�+1Y?����\��@�\�8���I ��6���`d�+�*�<�A�tGfK��f�����t�TVDG��RE�i���"�lb��R}],Rd�%���g��4m�Z�.��LmD���͛p��+�J���0�~�v���u�HlH�:�7� O�QE��]WH��F��� �t��C`��Ǹzi����o����[gf�*��:�t�^��X+Rx)�)���" oV u�t��/ EW(��.WUe��uC���o�p��\ё�+6v���N<�b�ad��.��p��Y���ϐ�d�%�;U�VO���$m;�����o?���g>D>���#�'O����o3R�'��'ņ��Q]�#��8�� �d s�=C�I�QU�ޞ>��{0�8cg.3��ޜ�٩���9H�����Cq����y?�n�Jdx��T���>�aXh���� �x�Tj�|�������7� A��yu�ƕ�S8� �;��T�\�w|����󹬈���JU(1�G�Q�W�U��'fvא��e��NzһoKZ�Jˤ��F�M�l �}�Ba�t:�$덱ضY��c�86���V�`�z�F��*ݎc�Uiΐ�� sB2�����ӧOp��Iڿ�����g>�>=�'>�����M�?E��Ri��N�����j�5��7^+UU1 �J�Dn��k�s W)u��=`S����&�T[���ƴ���R-�����?<K�����D���j�oUW�Q^��UW�\�� O�8�n5~g@�Zƒ��i�q�����f��e�*�T��eJ���8?�c����[:���ӌaY����n}� DT[�9j�E�0�5�i��Zut;n�w���������,��v��F���0�}�`n�����Y}���N����;�!G�����?�ǿAW������g����I�KT��F�PkΦ��� � ��A�%Nf M�`��f����Y��Σ13�����HT+e�:�<o��K�� ց�\N8�[{�F�NՁ�Mc�$E�n+���+�M�XIqGn�sƊµ�'��GRa��
W��&ٖ��`'�':B�A��.�/r��#t��Y:^ao�c<��Or��;��)L������0�#oV`�|�F�U��.�ʵ/b���e�Z�̙sor�~����TZb,����Oї;@}�g��
��6|�D*���QL'�����ܸ*������/p�k�� ���f�R�{/Gn��R�Z�F�XiKT�fV�ۄ
1Ƿt�@�s�g�|�֖��P�.q�v�ܑ8�!�3�Y~���5�{�C?T���/����_�4:������(��;��bIT�5*�"��;�N曛�H���1=E��@�0��&0�&V�F�;E��\<v����ۻ�t:K[k7�J�s������� �p͊�p�J�I��0��l�gǹ<r��S�Q����z\�V�Q/�� Mgnr�dEF�U*˕�"�����$Y�L��s� N��L_�"�����+y���{v?<ϥTZ!�iin�t��qj��ݓ`��XYY$�(v��Zc�0 oJ��0���!�J� ����v7�ѻD���m���$�$�醳�Ϳ+O��>���'8{�>xKS�A�����H��ѿCG��s~#�6ˊc�":k�����*���K��Jϋ�9��kC�P�������1v\� ��lϚw�j<���y.V_��G��,��n�=&F�ne�%Wx��XR�g�Yv�<J2!�ɕJ����5ϧ$��-Mr����\��%�Gk�+���0���6t�sx=���*D�o�iw��䷆��Ѻ�A(
Ll���8�w���n��ȥ^������F����O�R�u��ڬ�s�!J%�?��O��SO��h���Ï�;�ꫯ�˿���ÿ���ne�[GT��4��hf3 ��=bf������"g��M�CY��Te��N�=Afwm�ct�4������jgD�avn�sS�� .���v:����D������"F�*:�v����M]�� ��R�wb�8��J�U�.�85dW�\x�W^g�d�Tg�]��H�M�h�D���1������{�CO�ߵ�|����]�� �����ط�1�)!��_��PT�����Wy�2G��I�Lҗ�ρ��#�������?�,������2�?I�P��kt��~��k+�[:��Αߑ]w.�P��� uܚK�\%6����sxؤ�bM�Az��U�C1cu�k��'̻4]C351K)���n���y���;\��Q��9r�}�.���4'羃|�H�'MHHm�f��k<����_�g<�������+�ս���#|��_�Z�����/��G����b�x���E�|��C8P���JOvqk� ��1��f��a��qx�YZ�AN}�׎N��e���d�·���c�0:w�7F�ʄ{���=�|�D|�Jx�Z�Q�j�ěg��_��޹�<�?���XEE+=�3��5�_��L��[b�Q��p�$�w�W�0�{t#\�ԩ��J?@&�%j��!�q⛜��&������ͼ�:��d�������X�;������f2�M o�B�}ߧ\.��� �PXjlV�[2���ސ�h�+� ��C"�n���"O��1���'8s�m��� ���_������ߒ��Bjg�yR�u���h-D�0�rD�ڼ�z]��ox^B�+ӧ ;�t�k�^���ʴ���j��u���d���%&Γ�O�+�G�72�ۨ,!QY�p��8�g�9����'=�m�z+-��j�u�7|�$f�'8o���i좋W��z�"Sˣh���bg���xV���֑���7�욦���2"��n6ɯ���7�VG�CaP��n���UU�]$�����Q�8�v˲L�Vi����:��̿�x�X,v������ /|���������_���� ��QG$�6 ��j��$�R�Jr�T[j5�H��U -������Q�*�5:�LA�% &&������8��4F�@�A
��ZAH7"��CVdTSmV[�7M��j��,)\��+F��Iqm���:��Ϟf�Rw>�Zja�\�j�̎ ��P���0�� �|ק0U��˳�sI~��Ys5b �
�l�Ԫ�&���T���5�T�Kr��¹
����#�iA�5�� 13����w�Ź9�գd��{��ZCYN�j 1_�F��*�?ڵ�L, B�M�(r�UKe��=�� >G�PBj���&��R�+2��<3/�!�n�� D�U�5N �<ܮ�TWD���7b��FS��Ƞ��D�L���{��e&���S�?�3O|ӌc�u�'�sn��+dvǑ ��3��E����<p��x���_���C����]�� �/_��� �:�=�3��i��l裏km����q�����J;��`7V� �3�)Z[�Ȧ��8Ȏ�y�������Ρ#���>s�o�]�fGhK����q��x�L��[U6EEQT��&x��?�������cCd��TKU��$Ց�J�d�3̼�Hy����5o�T��wEF5n�{�������<�%��'��<LovZ#�IQ��3�����:@_�f��uJ�B��J����{�K��D&����VD��t���C��X\�嗿AGG/�~c�T��eL3F,�-B$�
֒ໟ ��
�rð��;#ז���k�ӧO�P��_��_caA�C�:;�o�� Y��aX@H�\ ���$�E�RBt,o/�6R������ZKZ��e3���YZgXYZ�vͧ�c�0��U"Œ��~��>��N�J�#��ڮ�l�Hfʌ~k�\iO��I��p�Aj�2q#��[�!\�s#GY\��s}N{�� c��4�T'�lǨ�ߵ�g�����gM���Z�>���F��['�k�od��{�S�*+�S�;"G�IQT��冺p�3/�o�!?�wN��)c�^#��m��G��h<@�t|_���t��I~�w��=�!,˺O�����7����6��ۿ���[������ �������MI��j��!bM&�G����V���M��dFY���+�����V�(�pa�mN�z���I$�g�XUU�ԄQ�J�Yi��b"I���"�4�����V�B�$_�3�?� ��&��E�v��<�L�U��{~�Nu7�ҏ�Ў��\��]O���H�|9U�ū�\x�����8f>Ƴ��$��q�����v�L��$Y���u ]�h��q��x��w��F� Tޖ���(}��I���A���a���1 ��玱�'�/A<Ǖ�ƋL������c��9�0 q�.Օjs�W5UU!ӗ���o��bT�K��U�}&�^�d�[>����ژ�.ѲK��j�'�z��_�@f(��q��B�faf�qR u@t�BDAB�mwi�����|�׾M+����� O>�cd29�g�y��׹����P��8�*�ӫyL���=!�ȐLf8|�i�ſ����.���ߓ��np��%>���J�b���,�L�X,��h����I�ʣ{q��i
K�t�w��6���Lf��o���0��dˈ�Lf���\����ʳ��${��m'q+�嗾�(8^�7ǿΞ��'ݕB�4�M�T�⟎1{t���dԤ��[%b#�X�mL��dib�z��b�5CbUU ˢ�ՙ`��z�d��덮�T�W�P�s�3���L��0�s����(�؈F���D�i ���k��4��[�<ϣTZ!��m9�Dl�%\׹��Aw��x���� �4��wҩ�����w^d\�$itݸ�w�$I�H�ٳ�9t���L�/��P*Y<��ߠ���.6�R���و�"�����D��0�,�Vt�j�jӻd-��5 ��1W��+T$��Vz[wb�6�j�x<��X2:z��5Kf8�j��D���Ƚ]#� )��0�[������� ��#;Hai��� �i���o�,����� �3�r�I�4�l���O������Gq�}���� � ?p�kW.oI~#�w�� ��&��$��a�뜤�s'K߲]'ðSnS�J~E��^�G� P�q�R�;Z#V���덽].������:��s�I�}|�������w����'��v~��/@�^i�m���D3*��`Yq��wӛ���H���(ZR��u�GVeb��O��Y�Қ�� Z�U��,_!�;�̵�$�Ye�L �.�2�,�f JS�"ck"G�JYȒ�����*0���T.�@I\yy��H���}��|?-���JS0T��PY ]�R����y�ӯ��V��-O�졟��e��|�a�Jd��S͎��� �]7QUY���9^?�-N����,�_;M����� ��A�� <�ޔ�°alS^�����S0-���vb���,�m!՚s��p��#)�����F�@Ʌ��]�M�����6�����i��Ɋ5��/��Xbi��� U��e����2��2��$f�D���3Ue�YnI��]_����ѩUk\y�
+�%>��_��>N"gfi���oQ�;Aדyb��1Z^�g��
�ӝnn
R�,����E�����۪�ǥK�����#���}��f[���=A����ι�o��{�!�m�Y�<Ee��p�S���M�֚�"��a�� ���Aj�b +\�<�Rv���&Q[�!kbF?�3���™��βt�@�:�#{>�����I�%��_�9��S��h�Nv(�� V5uK$�ix%�薾�߁����Нޅe����5���l�s"~GF]�5�����:����Q����yn���vI�j'����&9��=4�,+ސ���&/� � �n����"�c7T7榦H���wvr��IΝ;��{�ܡ��Z-�SO}��λ!���Kt�dY�^�4�pn_����yX�L�]��-<���}�d J�b�� a[��V`�9ڲ}X �@YVhm�"��9��ש+E�m�uDWQdUƩ9�}��\e����U��=��(�������I��߻�L��J�B�^fr�2���Y��b�2�aZȎFLK�K&ť%{��'�&E��!��5燆,y�QD~MӼ�y�H�V���=��{�XL�u�{G#�>׵I&oM�o��Ȳ�i����4s�����I�}|��='�_����}�����yঝ�{ ��u㦛4EQ�L�d,O�Hri�8-�Ra@�To��ʪ��X��!��EM�2�XF�P����R3׳y,�*� ����>�v���ƌ���T�E�ӭ���G'P�2|��ߦ�m���]�N��͡�s��{�����oQ5�ٹk�<�:������"�R<U�����pp�S�d;��v���y�a66�Z���+�N�b|�,g/��ɩ�Yj�D�����yl�c<��G���l��5b�Q������Rm�!֧��:v���� 0Cv~x� �kx��n��1}�<�x6Fvg��KI�:��\=u���)b�$Y� i�$1�Cb��!�avt���������"n~�twE���S��]�ҷ<�!�ߜ�~-��]��##�˱�T������h{ �ӑ���T]�^�'=��Ã�G��oZ��mmC|�3����6��G�p��%������>�Ӎ腍
��V�e^|�+L[g��s<<�1����i7�rJ�������7�[ͬ��F^��,#WNs~� N,���1z�mER�0U �� 倦bf �� r��$z,�� ���h��Ӓi%e�Җ�'�u���t�����Y�c5�)�t��'��Z,슍�� ��*�r[�!!so-��z���# ������6�,7
v����3�ꍿUj%��[^��9����7��Ri��\G��w���>"i+6 j�
�r��w'3�[��X���~N�>�ŋ�ٻ�#'��� O>�I:;�}#u�t�hF�{gkŰ�"��X�l=�vv��E���V�j�����e�� �)V�ʯ��H���[d�6�b�\} �K�L���3�����)2���Ǧ1��Z?D6�'"�g�D"M<�DU5��VZr� �`x� �!�zu��y��.��<M�V�/��={���t��=o~�D'x3�J~-4��]kP<�ayyEQ6T�lVɯC<�޶(���2�uno�'o����_�C���������{J����/���
O?��0<��J����y���a[z!����+\�>��{8a�t{zU~\��yZ\�t�LF�"���y>��J�P|�ɹQ�~e��s�r�x�:��nB�|�oΟʲ̵w&��4{��3ܷ�)�n�t�Q���{���> �]�Z�\���|�ѓ�X�2s|���IZ�]�I=î�G��nV1���D�\l�7���g^�t�;��f�g9~�R8Gm�!W�C�~���C芉iY�՗J+(��Փ%�\��`u�bn:��D{�X��.�h��KU���?YA�4^��K�+m<���<|���4{���}/9����MGj��|m�]d�y*�
'g�g�#�ɭ�� �(^b+���c3�I=͑��R\d��.���w�����NH��D�l3�f���#�{?�؍sS�$�'�������ɘ �خGi�q��E>���� ��S?A:�&��MP��8?r�+sg97�2<�D�#)��G����־F����h݊����,���!�$13�7�}�+��zF � ����E� ̔��xh���I����I��H�&I�QR�8{�(�F����T+��=�v��+7D���vy';ҏ�Qq��4Kr���z�� �������F��$I̼�Ž��2�� �'F_��ſ@� :r]ض�nn�v���#�� }���껙Q�:9��0 )�P���݅�Ul7� ��+�u��I���}]����hm����S���e׮ab����=�/�үP��y��O��9����vV��j�$L��Jd�=�v��Ƒ�7�eYi�X<�.�j��X+�E[$Y�Z*��e��-�|��u��j:��^�t��Q���(L;6���Յ�y���N�Z���Y�s�N��� %�z#6]�0t�D<�������w/��d��Z��S����? �蝵�J�=��]{��g�Z-5������7�繍\�8�$�y.��l;9�L�|�k�o���9TU���]O�;��x���&��w�^�qw����_��_�#G>Jo�Nl�ެ�FrcIZ���װ�6槶���JRk!U�$�1(��I�ą�VS���Y��B,ȣ�~��H���i��uf
�I��Y��єE�Bv�v�& �u��a(f�C?$���
v�a��]���w6�|�ab��Ƽ�ِ�HA��XV�ζAz���I���A����N�a�w�l ���X� ��*�oH�j����t�w�a� �1�~�#]dwǣ�����,� ��}�bq�4o�S���9�^�L�+2����.�zLoȝ�\���4�+^�2wm���?N6�����k���B�4ff�1:vM2io�n�(�Bɛ�_&��r�6�D��V I�v��s�̬�1g]��C�['��Ĉ��_��X:W"<�᡾��Ͷ4�#I��(���N�k&v=�k_�2�|�;��H�K�����H$�x��O��fn ���1v�/^������g�?��e�V�ƕ+�1���-m2�'���Y�z�fyi���e�^9��k/22u�)� ��9�eb��N=���^���D�.��^[�eMW�j>Dnwp���1��ϱ83�!'P�ζ^ұV��<�X9����ÅS'q�B�_Z,aW��13n"�� k�̝Z�m� ��Yq�[)sv�e���̮\c�|�|�ݸ3�A�ʪ��* V������bUθ^-:����0)�7��~�L�֒Z���T*�FA�����$�ہd2M>�͙3��������3�S�ʯ�*�J����d��^���݈�Tto8������l?��)� �)Vp]�Е�U���t=�F��,�-Ю�nWY)͓LD> !�Wβ!�'�Ә�g�/'�L�s%G�y����cmtew��>L��Ms�����K�\��J�A�Z�Fi��[uH�t�@���� ���f�F�9����I�P�)���{���#��̯�� ����K�U4�� YM1�%���v=E��kו��g�O<��9���}���� �����>Ł�a�iz��^��8u<�%�1�ca �my��$ ]3���ɚ�E�����p�*JL�!-^[@�����OR�VA�� I���*k*�,ȣdw�n�}Q^o$�u뮸���[w�3a�?'+i(^�1�I��_�s:;�1 ׍�f���P��RY�[��$[),/1v��V����CZ��h���R5q^�'S.H�Z�� ҝ�AFk��꡿m��}$���*a4\T����u�gu��'���;�cA�?�SrPu3e�����HP]�q�8=���S)��-�U셫�̿Z��c�x���<�%��D�ut�bqy�#/�R�#&�ii���|4]�0,�Nf.OS,/��2Q����w}|�ǰ��i�$ 3i&m�>��.��A�7&dπ�,]]d컓���xl��䳝B��ԩ�k�����=�-.O����)&k���=f��o���vv�ڹ�����s����_H&wr��y��o,�91�]¸K}١>�r��3�R��Q�Y!�ў�ݲ��Zl۵� P��㜙��i��0:u���;T��!�.�w�P]�{�ٝ�+�5�v�M�Қ�uQ1k3�2��kIJf���s�s��,���r���}�͔X+��8�D;��ÞwX�Rb�tgTƙ��,T�;�$Y" T���Pb�E���Ok�[<���嫧�K�'��E���=��׺�T*{�H� H� �b���7,L���D$XnJ��*�lt��?E4O��L-�=ۮ7�c����WH�3d2��9s�k�.30��}�� Ð_���ʊ��O��=�=�
���r���a�T T��ۊ:�D�#��Z�J$�Z��E��,��Y��%.�2BGn�t*����dEA�e&�]㭯��)Ɓ�9��!�r{iO Б ��ajqj�'/����(��"��ߴ�**�W�0�0�� L�A/'���4R'T�P�����߻;WR�zT*l��e%�p�"�iz�@Oj�g@jO������A~����$�������<���>\W� _��<����R�������m»N��=���xEQ/z�X,є��pt�}a 6���|��k:��]�0�I]7oKJ'5fa�bf�<7�3�����"�!�dH��">�3;6�^NS�Ux��_0r�s�q�}>���U�"�hY��ٓ��T<[H(uSge��������aIǛU�:~�x"��8������u�i�����hM��}�0�����Ľ��Jԍ"�h�RYt��um��"�X��3g��x��@
I��X1� b�J�{��뵆"@�kMh4Mfr�
g.�����Ϡ��"�XB�Z�2��"mW���Ȼ��9���p���ԧ�+��W��)�fw�ì,/2Sct�4���I&�tu bh1���~���_czv����誉�d�*�u�V�a5�����Y�$|��w|4��"J�������a�H�D�_Zb���+��v�B��L�s�,,ΰ�8O�R��؋�f�� �#V��m�~u���p���Y^���$[ؽ{��=Hۈ������?$�<��O�Ͷ46�ܰy�e� �%�hWwҧ���-�G�OK0Hwb/�~��mm��n�� I�������r� ���ц]��2A{e�Nj�I�;A����(��c;�Ku!��� eǑ��Ssn*��e3nk���%�\ Ǭ0=~��3�9���� �i�i�w� ;�9y�A?�� ���n��J�j��K%���(�ٴHP�,�^haW�#��$� �K3\�������SQt����=׻-���$j����xˊm��NlH�F�\.�i�d�]#S��O�ll[��C�ո.�ͨPB6�%�j�̙�LL\����=��x�ǿ�w���ـ|��6ë;A�Qk� �Z�A�xW���c���Ž��H$��)�����"A��c�\~q����p��g�$I��92r'���r��Ã��&��aZ&�xE֙��ʱ����3/02y�ey���Z��N��S_��n�,�.�@/%i�9��4;� �x��s~#Fb���A@�^hx�l��oD~��V��4������� "�A�cY�w��
Wz�n���݇Y\,����'�ɼ;r�q ����_��?��<� ~�$� <�k8��G�t4MD��*��$g
���':\�]�u<�# D�um�G�ø=�[� ي�j�Ag���A��a�I�|��x���4Z[I�`/�,��,$."�;dv&�d�xH���NC�$K��K� ������_����}��Ex��c,,O11u �J��d�W.^����X,�m��?J��F�p���8�lF���Re|� cW�0se������J�R���eTYoԆ�j�ʚE�q�솓�X�#��s�u��,<I��p���s�%2�b��]�i ��:.��
�D���� ���.Q���r��� X��<H[��T2�Re�j�N�<n�2��)�ƯB��N(��a�.P��
q#�ѓ�p�A’��_�*R�%ߟE�7i��(�ڭ�i�MC�x���zM�o��XY�rT�s�;ҏ���\?ƌ{�J���(�sL\��eř�G��pJ
*�ejs6ᲆ\�PJ������ �ؽ{�v/[��˗�W}|�?M6�m�?d��P_�H@�X�I�l!��ξt�{i���ϴӚ馸\��٣$��4�mt���u��:��2�濆��C��,�\�dk�dg�D.��i�
$ֈ���x(��a7��7��kn���f�4�D&�խS���g�pۖp���.^eqr��\?�n����j�%�E�ʑ�u��zH{]�'��=A���������`+�U*�$>@k�Y��\�wƿ��c��N�-�Q)�T�S�7�7�]H��@��ӜQ���ۉ0 �ׅ+�iZȲzCDҽ�,+8N��7�%�%�]B����l6G"��ٳg������=#����ۿ����s�.�����/�s$]7�wovZ�D�Wt�cH���h�N��aIgfY\��������څ��b �$��8�x��C�ٽ�Ab1AL�:3���N��|�F�o��&��f��}
�j3�?�!Y�n瘕�;������?B�^bV�`i q� ��K�>Q�)R�8�C��6_�>�hswdUU���h�����ֵ�7�+x�ɯ�./yϞCLL���|�={v�������>����W�̷�}���T���X!i��;�b�4D�44Mod}�
k���yA��^�z�86�+�\�&5�qTm����$A�R������1�ڇP��� �k�%�A�죻c���O0=2AXR1r*%o����-ۋ�S��� �\��I���;B��Y���sin��ԉ�_�`�B�����{��z��������%.�oRRgY�Z`���Sy���zsVH�DH�ȧԨTJ~@�Z3�Y�^�-{<��Y�$v�R����M��M���})�vǩ5�|&a(6��j��1 �A�Wb�R)���_�Z�,C� н�{��EUWQ,���#��%�V�h-AI&!gɧ;Qd�ba���+L�g1��=�I��vl���y���;`���#�gvj��� 3�� v�W����e��#ۓ�F� y����0Ji�ƿ ��iR��Ew�s=/ l�
j�*�3�_{���>GkK��P��S�g��p=�$�V�����w_�v+X�m$fz���hsw���M��G>A2��w���Ȳ����˗G��?�c���gI�V �TU%���ƙ�CV��"�EFCQ4�&�d�Ar�0$�R-��0CGG?���w�D�^�^�ri�
C�8�*6+��h>�b3`�bE��.Ld�`ȣj�ty��t��BBdE&ݙ$�'�'֫S��X�OS�(��s�cIt]C7T�<�!K���I�lŔ�t%v��c\�t-��Ɛ����d�\��F�D��ԥW�o=M���� g\#fP�Tq� ��ʤ�zf���\^�X,��EN��G��:#�I �j����ټ��k�js,h-��~ v ��|>O,��ܹ3LO������Z������ܹy>��_xO;����uQ�9���mE��)$�F櫍aXM���Q��:I3OX�X��E�Qj1�z���~����RȲLB&����U]%����R�U��#����)�6o'z�B�4�e�Q�U�Z�nhF���Z�-$�)R�,�DYQ֭Qg6 æ[���V����ڶ��(��9_��;�������ߨ�*IR�,�%n���^���_]�����x�K��x���04�O>�w�>�c�+��_�3����x꩟���Ǜ�7��G�9����4:�z#��lv�#o��a@��A���Z��r�j#��h�Λ}?؎��+�8{�M�Z���8�p�!膎�H̯L����/���%��5�Y:[�\(��K�숣[bv5 $��_�&��ٲ!!N���;�WC�w�Ħ�i x��x�Ї0t���A�^�>� �8j=�Ύ�3�p3���}�nD;�nW�Z!�FGW��Z�L�.ў��ާH�r�/N��=L"�R_ߣ\*2==���N�p�Y����l�h6J,ګ��a6+���/����8V�"ۓ�J��#�a�fY���S%�/����LR�gY��P���r�1��C�m�췚s���,�{[Iw����薁�k�yG/q���B C���������#;0b�K�#��9^ӕ�s<<[�]���QI���Mؐ�
��
��A�P�+ z���v!+13IO�N2f;f%C���=��qp�S�ci��5�A;⏳��Q:҃ t���s�ޮ!�4��@�o~�k�z�Ν�������������ϑH$��7�7�:{���~�k�)��<���Ry���0سM��#I��f����%��ݱ+l$S�_�bV�H�ۼ!�YB�ܝ�(\Ȳ�7Ќ�#O�����I0�!ߍ#I擐v����� 
��y�g�b��h�N �t:E_� =����<��aYe~a
�EG����3�#�ezQ�b���k�����ӑ��8��j��:�B����;V�(�zs;�DJ�� ��3�S�W�ݲ�{Z��- ��Z3;�4-�q1u����� ��E��g�}\�T��?�#����?������O�:DJ����x���yDqY�}n7"�+ƐbM�Js�^<7i����g^gqn�'���T���QZ���D���>�T^��⋬t_&�� �bO&����Y�Je�ƒ;>�Ra��sob��TS��;���daa]�8y� *�2�T�ar��[���ԉ���(.�9 ����So�mF�H� �w�쭒_uK�w�
�U�{Wq�D>����3��u�YD�AG�<̩S8~�e���iiiyw�>�c�s��o|�/~�|��?����6�/Da�t; �f����j�
��p�4���)��ľ�J�E�c�E���k4?wm�Y��PX���wx�s������0���!�چ���ʼ;F�)�\�ba{ɥ|�F�{�:Ȫ�fh��r��� C���a�3m�}ק�X"Iq(��y�� �"kŶ�x�G�R���\�x�4{Z�����4��52!�d���(J#�/�h�|TL=���׹�l� +�\]!��c6��o����'O��"�������i�bb���Z��S�Tы�u�F�B�X�"�%.�=�詋ij1�v���A���N�!���E�/G�3K<'�Nб��˧���w���I0� ��c:��B(H���� ��Ԙ?�By�f���s�\�L6ق���y�X��4� Ð0���s<��881��{~���t��TSE�t���n�(��4G�� �q�.��%B'$m���2�fК颷e=Í�f�q�����d3�h�N�^c�0N ���GU3|�k_$�P�yDR���^����T*1~����kv d �5����֞�20N�AI�c�)�1�i���}�f�)߻�Y�S��uF&��17>G���Ѫ��
����=� �/n���I������ԮӘ��s�q�jS���r�E��z \�r����*�2�#���;�4οtEQ)N���vq��XF�q81�<N�f��j�"�I� �L��BoR��eG#��΃�p֩��<�iZk��l���������"βntK]%������n���ZC��%���u�n7���$8אC��+3��R�/|�˼��%>��Hgg�{}*�;/A�h+b��<�
��S�[���FP�Uc?�ݺd"���yfǦ� ���ݤ�yb�����@��¼<��(�\��$����N3�r�Z���h�����0:�Bq���+�cy��2��;��o��n��ٿ��M��ZCλڙ1Sz#͹��Z�ufo��j��|g�^���t���[!�6��?b�/X�E�c���%�3��M3�}z�Q�~��N�Ioo�}|��)����6���W�������̺�2��Apü�v"
���htb ٵ�\T*�Ʀ'l�b����! �(ؽ��-Y��,���K̔FH��q����8^�xe#��έ?fMA3�LoH��U�.R/אT��H�Du�&>�Ů�G1c8r��U�\�v�N~���^���O�?F6�kv£L]7�׫�j�K�L��ҩ��5����:��Ӗ\J�077�w^��{�O;E�Reiy�x"Iw���L Y��]cX���]� �S�k\9���%\�C�$��%�Ž ���$+r��K�i�k!ӑ!�Mb�H�,��<BBtSoF'�5����ʩvM�07�+192N�XE �(i�MG�$<WK$i��_������q��c�MtSG5Ԧ���^����u@I�aan�`��eE�-�蒭�f%_�V��#Y[߇��^,��?���BKK����{�|�aȕ+c|� ���O����eH��O��<M��̵�󜯼��`��G{H��Hv%�wX� `�T+V� h��eķ�-^r �0�L3}b��6��n��ݺ+�uU3an9��f��Np�M��X:�n��2x��P@��I�^c�6F�Z`j�/���L�_FϩL�αP�,�P�,3yj�G?Ng��"319�;�� ��B<C3�uǦH
�RoN���kF�l� �kS�U1M �4oXk#�`D&�G�yb�1���_O��m!����q��Mb��@ѹ��%���-�byN�>���(}}=$����X,�/�)/�t����Lgg߻�n����_w�]�h�!��l_Q%2 �' Dţ т1�:�P�.����7��v��4n$3a2�<Ņ�7�S/�.��gLс��g4z�{�����W����'�o�O1�e�8G��Bo�nz�w4Ɲ4v ��ghq�ȯ���� b�8v#Cw년��WQ4,k���%j�lu�~5E!��gAQT �l�;���ط���ٻ��{�y\O~o�,�><���=z�3g����q���{�{F�������O�>?���ov�:���ɽn��+ӧ(��#�����t��ˮ�͸��k�NK��A��5�[�g��{�g��ƈ Ȥ�R�(I�Q�O�m�,�YQ�ґ5�ٳ���S�*8�P[� 'M��# t�Z�!�$4��
����#�"O5�t�Ƃ**��$��<��0̆���/�0 ��q�n�V���A�J�\���[�����e�ط���OU5�q�-�1�Sk��Z$�t�4h����?w�W��{,N.��H#)F��L��c*+��Onx��5:ﵕ:��
� K/:�b��~dSfa~���9��Kݩ��a��X���J�S����7�zL�H4L�d�q�ʖ�B7��*��҄)���#x�C�c[+(�v�Y��� ���!����~���k��o{;-A066������z����P���1旧x��w�aƿ�B����d������U􀠥ʜ;�Rp���,)+$���Jmv�e|ѱ���pGh$pl۶���s]��N�f��B��47tx�� �=���>�l�y!!V"&
d�������+,�gq�*����������J�������B��Ȭ�+�]�1̤��1I�x8��"�lkl �F��:��i�6$���Gj���5� y�B"��Vr��$���gc���:����5�rm��^B�G������SLM�38ط�9��b��|�|������{���6� ��sqk�A�,����5�$��U*�cS�U���=7aHә8e�QY�2�t�Ї��%n%�=����ٯp�}]��qDW �]s���d��yb�'���9���y���3е����ζ�8��Z�ȲD��T+e�u�UٳK�lA��ح;�ד�X��{OE��4ۮ5�����u����A~�^�h�O�� �P�d2�������#�<}�q�}�ӧߤ���|�> ��w�N��0��^�������~�2<�o��NMy�vf9�.|_���9�U�-�T#f�ѴU���
-����-��ߠ�1�<������jO�Nd:F�/�ei����sq��,�/��v�]1��r`�q�0��Y�V�֖N��P��:q���X,ќ��V+�je����:a�(K�>���{w?�#|�0t�1t��|7�'6Ѣ��
b��Lfn������`Kahp?�j�8?�����g)��-ש.W��T����h
~c�ؔGf?v�f���^����Ln~�����o1�pv�%V�i$ ����tnEr4��';��u�3n��*��"����� ����������Y�W���w (� �)Q�Q/�D=C�{A��(4A�"E��$J�@"@�3���陶��ˬ�J�n^w����U�U�$jGd�Lw��~�^{P�L��IDAT���*�`$ ����Ck��.D��?���Uj�u�*ǶT ��X\s������0?���#GF��񮽟�����_�M�&����Ȓ̃��?�k\_z���Nϗ�d�KT��O�eEN���X=*w��Ɲ��U�ԇV|ϧժ�h�PoV�_��ژC�T4�H='W��W'�Z��\m����,է�_ s
B�G�t2�L��ױo�xA*��-e�:^aM�G�t�\��T��p��@��P��P��`��`��r��� �8w�Ρ���)�)e6���R_�a���*���RS����d�O�齔$4-�0�����j e�L&���m/@p�r�6�lቪ��[���t���~B[�O��m7�Tz(���y�:�����-��D�^�W~�7x�K��?����ًm7cJh�=���z$3�O�kC�tdY�)�~:ʵ�gʡ٬�E��Y9�Z���v�r����\���.�0�@!_��/��(N�����,�/r��%�O����Y�V���a��Sȗ�u���:J=�rTMŲ,E�Ѭ�`�&׮����l���O��']G�O"���ē��߭�����z��Iud��y�> ���s�6[ϤݶYYYL�ϫ��D�?��2�Ͽ���0�� a���bOp��=�?�����?����w�I��6�H��a���� �96T��$h�M�N ]3S5�F����K<��xf�NUJ� �^_���m�1����L�|����*�'z��C�6��r�tw +R ��X,J�!����M��@� |ߍ���i��ݺ���������~*�.|��_�2��J�VM���\VVc�Ð\��.��0��~\�n�682�i18p��Gޠ�����{\��e&��P�զ>�B/��^���]�Z�i,4Qt5V�]�(��,�2?6ϝ�ޡuC�h�MN|��p��q��>��?u���z(�J͐�h�N{?sfQ*����q"��'����PT{,d {ô��7��*���(���FFN���_�̙�����X��K���\�6�O�����4Y��x{����C_��D#/f��T(�A��k6��Ω�/��3���h��T �+����rg�#�,����1�dee 54��nqy��\\�6�[�+,o�(�����/Q�/xD���Y%!�����,q��wm��Y�����!!��f� ���c>�f�`� �t��S>�#�eb䞬j�H
��C�@c�锲�$���F�l6���o�$ M3�����]:'.zZ;J�v
�E����ȲJ��=Oj ��������v����\]7���}�/3>~�Ç<q.p+�l6��_�U�~�
��� ��i�R(�X��}d�{~�Qbs��7 EQ�s�q�v�W��s�<�F�F.W�2�]����h�Ċ�yZ�2�����,�3�s�|�B�k�85O�2��O�`�:��G˩!�-���W(�J� G�{�7��R)w���F �n��G��7?�_�1�ˍY�{��Q���
^mv�Vue�̦�Qq�M:�;� F�j�EL3C>W���6���X�<�or��?xww:6&��3�{~��}x��7�x�:��}>H�\~f��E����g8.\��_�+����CC�JE � ��(i��U�z��(�h�6o��ə{�u�nH1�e�A�4#��*|z
*��_�����kt-���B�7���Ʊ�ES��Y=���3T*�X�B�rY�cފ�&����r�X�Ct�[�f:g��-w"�#y"^�w&��K�s��M����������GӮ�vm�V�(�bU�6�����ee�f �ʯP�6 ����tt�Ѱ����ǩ���K��)&>�d����=jwl��U$E�ܿ���հJ��;>n��m�8-�� (� �,�ϠI����C���W��6GV+Ѿ%1꿁���o�Y>��WY�Mu�(�ѭ'`O�~��x�"Ѩ6X��d���GNl��l��������2<i+��8z��տ���7^���kG�l�ܽ{���k޻x�S�{�k�o36{�������2���xL�Ö�WY9�pr�M�M\�����sE���ުRo.3_�����0��Gpt�O�N��e�'���9n����� ,U��L���<Z&?�%[�R�Q�WI��4S�i8Da�LA�� ��K�$�ߦ�f
��]}~ ���6�&@�$K�9�(�hUmdEޢ���ݰ��ezԃds9TU۴���z�\��T
����D8�Q�t�|�Mm�v|������m�b�M1���3"�5���'�
�/�V�+Ug�f�H��](�*��}\�r��w�s��Lsg�ڶm�տ�%�{�&?�S�������<9��A9-�> ���&������d6X��ޖ�z����w��-�2�ab�Mz*���Q�-�ݧ:�Bo�>dY�Ѩ���������.���?b����Lo��}Âɕ+������|�C^²���M��ۿ�{��jm������?���W�|/� 3��L�a��� 'o��=��Y¿�wh�u#\����ߍ�Z����O6�q��8m�Gq}>�7)> G�ݒX�%�l��ޮ 뭎v~�x�Op��=�z�9y�8�b�]��"��/^�/���_�����[J^� H��T-�*�N�����׮~���5��G�ݿ��|T��2�(���ۨ����B��m�8MgU,�R��u�8��+35�m��<�`�~�5�<��
јL��ٴZ�Xl#ZC�V��,���u���6�ൡ�*��
��b{ �V�zs�o}��\��.GF_�q�ض� ZX�����\��U7�/�$�ёc|� ��#� #��^�"���Ωc��������/2qvg2dnf�;��"ם�*Z)=Y����n��*9�O�Q:i2ո���)N� /��'��ɐv������ї9s� JŊ��Gyο��D��<�E��Q����Ds�E�����Q,>��*Ip��%���7ȘY�;����c�P�����_����|��ttT����aȭ[�������[7�K�$�7|z>]"B���2zV��-�2���2_e|���~�ݹKL5�so��V�qw�#&�Kt}դ�.
�y����"hmَ �Jt�\�|(��3 ��v��k��9��\�!���� ��(�NXN�!�CqLysO�%@tU�f�jj:��44K̲oe�YB���h��Tڣ��H���=�}ߧV[�P(?q?H�6�'HTS��k�A�i�r����Q�4�]�Z dY�X�x��–��c X�s�
|=Z���P��助Z�F�EP,������ܾ}��'�o���8����<}4�O��_x�����X1�ɧ٬Ŕb%�����v�0�=�MB��P�e�l�z�J>_��M��$��&��"ceٿ���e�禰��r7Օy��N���u�ms��e���?��|�կ��M3(�;�p�m�V��A���w���No�0Y���~�SG�D�d�0�hQ��U79N ��2п����u�ٹI� H��+EM�:���(�T���u\�u����(�?�H��m7(+��UY���L�Y�uWձ����q���F��ӯ1>>�7��K���K
�gv_ċ�=�ar��E��_�i����```��;7����L�����b9��P.wq��K ����""I������s�X��Pg��(��3Pt�XEA���8MGcGxƆAHc���[�\��E
J7��1 +���^)���0�lL��㹩 M
�͡�����N�$�)�/]�� -�Nu~���W�X}�s%�z{��,]]���/��$���X����=�v��0�4M2��N|�S�ߤ1�fea�����d(V�NV��9O��a���Sa�qY�Qc�r�|�@>_�T�H7���f�Y.|�6n�Fa /�t �L�!��Ҭ�y�W��ni����H�Bx�6����K>Wa�9�Jc��U�P�s�3���ط��Ͽ��/�Jek 8�"�^��?�_� ל������<T&S�cS��<4��z�@�Tg� =���]�(��Z��׊t�V��D #� ��ѡK�m�R�k�l��A��ٴ�+I���\B?ܓ����B�p�����¶}���"�j*�j Y�q[.�" ����뱂�;-�����_'9�,
5S�Ֆ(+O���)�������{S܎�:�V��$�X���$փ��>�ɸ�m7���'� ��ݶ��� �u�v�L �|�������|���a._���[W8}�Ė�^���s?��p�� ���[V{�e]7�,��5����YJ����(�A�+�D��&����iZ:�,��G���g����n��������w����mZ~�g��l�(�R����#�w�g�� ���}j�uƧop��g>���$uɗ���/ t`�����eeR�'1*g���/+�dIB��tN]��>�&� �V�1 sӂ��,�h4D��X�^Ax;�(�݌��j��j5�</ն�ͱ /�6�n�)�M" ��񗙝��o���Ƨ>�Ir�gWLx/b�����W����/���>�[�l'8Q*����n��Ǔ��wޑ��� U�詌�po����r������j���8c��v����]�������_��{8ۊR5۵���i�!��Ib�h�E�Ln
�;�H
��o����r}�Ew�@v�&��+���w&��Ѻ�'���R�[�Q�٬��c"1^6�'��c� �B�M����4����x�*�35��~��wƹ��;\�ݛ,ݬ1yn�h^�x��9�^�ͨu�"8!�g�xg ��"!^�]: ���虽a?yt�W�Q}���q.��>����)f:Q���L� �#�?�Mf;/1��$���W��>A�I���"-c�����|�K_�������K���Oxh=���w%�?��A�2� ��a-􌎪�H����d����H��M�v���+��9�O9�{m�������m7ڢב�i8im/CVzyj�P��ֶԭ�O�t�P�\� }�٬��<OGGϖ��Q�a<�:/I�P��n��d��M�*�4�*u�� ø��l����Q�"D"����lU�w�|�rEzzF�t�<7n\�̙SO�Q�3?�ܽ����7���m�{�=OX� �n7��(������j5�$Դ�H
�B����������9�]{�t�$c�0�=Y�@��<l^�k�td�R� UUD^a��B^�9����ٛ�;��4k5��{�|�̽�+����';�*+�SS�d�,�xF8���7$
�2�\�Fc�n�ci��_���R!�w���B'�Ő�L���Fm���^E2��n7�~׆`�DQ�m7 !��k��_�0��`m��ç��]~����}�{&��"^ģ�+��;���������������m���D�����\�� �n���C(��Ø���F&c��&+�-k�ly5����(�RP ž����6:=G���f��@�0=�}i��ժc���@�o%*�k<Y�c!/ ��b`������Ǡ��4ϥ���2����l����:�#_���e �-��6�ݠ٬���>�67��S�t�48!X&ĝV��ɏ�itw ����#�2W><���,��&AK��ܦq��i��O��?��#ol�ɲL�(G�ƾ�)�����5�o��o0}w���}³�����l&�h2ZY��]�^�<��;d>��`�*��]�!4u��dY�\�Z�GY�8��I������f�T�L9�|������/����޼#w����?�'̖g�����L)y�}Pd4S���*�[�.�A��r� �"c�W�SA�$ UW������ �k�m�����3E�L�h��{�C_О��!��6��N��3���OGW�����z:��k��N��nF�U_c�3��X �m��繩�ܳ��$Ě�;>ͦX_eYN�
�n�b&���o?�.�������ғA������I��~�?��] )fB)�����V#��*(����N4�uay� �oIG[U�P���lQ(T�YQ% �����K����^��d�
�}����PB�\��ah�N��a���zȊ��,��2=s����d�O��:;��$��U�ݳ���w~���!�z���Y���3;L��IWy�h4����o�/�|6������v�BM%�͡�:���������]�DRK�l�A�ZD��N������}��������� �E<��1~뭷�{��������Сmo�$��G׵�j��h�Zut}�����|l���^��1 �(��,�,1W�t8�H%js5.��%2� V�Z];�Պ���(��}+�D�g�;��cXVðR�)Z�F��9)0�@��ff����c�X���g���}ܼs���@V+rf���#_�O�T�V�����Mb2���n��K���$��J�S$&��'(j=t����8�K#_��'�>��� o����<ݝ��*���,�\�r��Ѿ�8M�b!��d;,OX���S@WT�ä8��8�ê�d���vf��go�_:����: Y������tV�ÈV���Mo��'f�Ǫ�x�/������;>��'7T�>w�<����,�.�����Ϥ#�YH��ƶ���ZN�a |km$���WVv��' ������.�i8xm=� �����*�f ���+����fa��$$�VoJ��;�R�A�ju�R�˲�l���FE,/ϓ����
�~�U����P�mĝ��sShN�̶ ��nb��@ӴTd0����%I²r�@�f�����6��2_�Ÿ��{3H/��Y]��u#�5p�v����h6눽�كߵ�OQT�0�Z]�3�잭�:����_b�|���g��0��p��[����9��3��8���(�cﮮ� v&#W������o��;���ѯ�������bz�}���t��G����0,��<a��P�`�s�<��#��dr�����o�s$s芢�y�^���q�X�j��V"��i:�����f�0 �z|����sj�e)n���G��o�|y�J�/�E<;������'��_���_fd��_�ĂEt��Bd�a��x3�,�՛��8M�б�9 �t1TYK)275�D�]�")\~���}�n3��� Sm~�����˔�D$�ON7rMU?��7�Ɖd~�Y��n�m�;��*c9T4���C_�K��㔋])�_�fz��*c���Y�b5���JW� ���r`�I� ���C�P�X� ���x�I������� {�3c��F,��)F��� ��E�)hE�����~
�dEI�� �2�r'Wo|�/�����;���>x�p��|��^��>�_�d������K�_Z�|��y~����}u>��>��1�؃�v.�,�*v��Ga��Tg"0s&zFOg�w�ݒ��*^�g��AH�{c�MT�q�-Y]���-��v��fhh��~ˊ����ୂ` ��L����'��3]Aೲ�:�V+��-u��x�1�N�y���� ;N�V��a��rE� H�����Л_G�u�׫qTu�����,ւ���q��eN�Z/�����ߤ^���g�}}#��8�JM��m7��fZD�,�+
�wl+���J���Њ`��q� �B��z:/oY�$n�9��h�tq��+Xy�/|���i�am��H�Es�"���\�3� 2��C�4�_�r����1��|׮��:�1]׈��j:C+I<v�TU�R��0�5
�G⚑�X=��&���}��ֆ�%[�bt�u���]ӪW�{}�>�� GO֝py�6��"��7���������}��/@�����6��׿������?������;N"~/`��db`SSx8y���~z{��m:1h_K��T��� f�����bql�;�z���EF>;D����Ev��=�L��aF:O`m�e�
�Ԭ=Y���PFQ��Hm?v�ű*tTz9s�3?��JwJGO��G)̏��j�a��V#�A�5#Nl��^d' �$�븜�&���go`�جT���?A�0C�C��B����{'�2F���nP�]�\���M\׉��Y�Hw���̱��b<A4D�t�bb�&ݧ+��������qt�(C�C|t�?�?�#�m>���I&o=w�z���5[(c����\� Yc�nc��i!�1v�}�sȚ"(Ϫ�钔���С>���{���6A��D���r��郟I��{�
�u b�@�VJ�g$��b����+t���z����'�W�1>s��k�`'�S};N�z���X��O�w�u�:����\�x�;w�q��QL���o`�y>�韤��ـ�G�e�������S1Z���}\�W�H)��l1�Ckq���1��Ә���bqI^�����uf�'x0{�Pq)d:Y�αT�C� �($�}\�H�tF��px�%f��yX��'~��^���'\��=��g�ʹ����H��i����b�bA�葵G��>��_1���h�ZFA�^���X����9���=�)N�����6Z�D
�׃_�gi#��P���a,��?�/@�������_�5����_�����ӀD��b��~@,V���?k�?�f=U���~��K?�v 􍦂;?6�h& W�.,Ns�~�ei���+,��"�t��p�'��Z|}#!� ��e�s#�K�A��K I�e�0x�5��ծ���r�4c��?�u��Jۿ6�l.W$�Y+j��g)�w'ݤ�<K�̧�q�@���8�F���s�2��'�����ͫ繿|�L��A��O���K�4FNG3����?�� ����f��]>5k�Kg�c~rM6��Jqeؠ\��2rBlȴ6=w�|��3�1�t�ҁ�e��?�E\�������6����N��#���o���]���>N+����Ī�nk�w;���0�E[��
�fj)����;� �~�N��a��TVdMt���f��>�q������"���v��� ��`!<UO��u�VA��kº ���V��Dh��?.��8N<)�]��B�)3H �=�]�$�����ҥ���~�_�(}|�S���Q�=,@m�x�u^ �sb� ���l6���o�-lv2�|��$�Mtl����oa�J��:� �y
���}��p�m�;���x��֤�ڌ߻Ƀ�kd���z�xI�0t �06}�W�}�B�ƒ�h��t��S_��U��.1���wf-�]��=J%\׍;�[����7�?)�w0���hKc ���%�-<��@AǷ�^�qڱ�]v�5�y��
l%��?�|��_z1�"�$�h��������˿�u��#|�S?�&�;��X�It�Ue7���X\�%�/Ŋ�-Vj�45*�ʥ.�e��y�cs�c3�t�e{��R����ɂ3���G��xJ��_ڏ����x���,Ǥ/�W8���C�ֿOwv����D._��5L�L&��������n$�n�t��[K�D���u,k�^Ə��jҲ�(�����^�GU��*B�,�q���<�����?��u���ӨM���L�������}���y���'�5k��? �t>u;�="µ]Z36���D��e�xYV�o=`9�����d�穔��X-z<�v���gy^������]d�;9�����3�ɗ�[>�gi�w��m�d�٧vT�:� IAH��UR"� �n�(��A���p�V�z�蘄��vqmW��O�J�)%{��l�6�g�t�;ëǾL��B&�}�z>�݊�-3OM��]a7�}*e/ l��iZ;J2���ب�P7�v�6��uҽ�Dgcyy���q+e�<Oл����L� ��w�$�?�G�<��!q��8#)�x����2�i����y}�m�i?ѷ:��c'� �?�b$L3�a>��S3c���r{���}�Ц�7���� z�ü~�k� %z����S�%�A0�􀡾C\��o��`�Ρ?֏�4��.q��
}��iG�i������H�I�*��L����]���ߋ ��o*dEĊ��L�j����m7���^4%rȲ����b-����os��w�o�����������}[~�FGG9v�׮M255���g�}o_-Ŵ���n�r�h�4V�&�l6Ogg�� ��=��y^�R��U��P.[��=1��*AOk���6��-�\���4S�u\��'�?�����sU�^�*�\�L&�- �tvc �|�NE�<�M-v.�/��Lm�vNk�I��G���|���O��/�Q�A(�t}ߣ�R����(���
����wX*��{�J�+2��N�� ����
�JI���3s�v�d����ϸ�V�Z�������,Q�Zfy����fo�0p��ß?+� m(fZ�Vޢ�[®���V�nՈBP* ZU�����2�l�~�F{Ʋ�<� ,_��93E�h=���ИkP(���a(@���ȊL����,<�# B���_Ȋ���q[.�jkC�P�eUF7�_�en�H��s�P��2�Ɩ��UC�� 8kn�wa�`�j��d��ѓ?[� l�E���4�Mi�b�����̫ ��L�]��$A� � -�m��&�� h���zn X\;;]��@U��=�����<���ϣ�*�z�n>��x")�gJ�z}%��?kP I�����Tn����
�,�D���c��-��a�j5����orMF� �����e�Î�=��� i5�8NER�}��ޡ���5�i� PQG]�KK���'�[%�"�MV tu�!K�^I�
^=��k���l6Oٻ�@ʲs�6++�d����� ��Dzr����0�G�ԁ,���G�*��,+�����y��08� ��_������ߥ��g��"~�Ɩ�Bww7�}� �:.|��p��1bA���)1-D���D�if�AI��]����t������K/I2ab�:���_Q�`_� n�6�9@��ABb��,���pz����jK�sE>��$�fQ,U�.V�"A�K,��WH����뺩��N�Q���K��Ç_I&��P�/�T����)TUcr�&7ާ{a�#o�Im��~����cS8(���C�4d�t�5Re�f�{� � �ٮ1>���q��� �����"#!Ѭ7P-����,��f�n���I�Ep��am-['�<��Ja$K���-u\%$���2K�D�Bd)g�k����qf��Z~���K�s�����}�a��}���T~�����>�r��}?`��0>�3��F�m �I��L UW�m���A ��#=5�Nӡ��"S\DN�!�TME��g9�Qh�&(u��Ap���w|���e�~��A$�;"zL�[\Gxu[VM׶��*�PX���� 8���k�e�*�8[�a��rrl�����Gn�n�[8�-f�c��(�#�m#I;�����+W����O I33ܻw�}����?�d;�"l���*�ri�P̯/��F�<�=(H���O|�% d �G�TL�" ��]��lEyr�#�����$b��i�X��W�ݶ ����>��&��aH&�K���+Ɖ�Pc�n3�ш��6��+�O2<z���E._�!�F�P)~�V���O~E��u�n�NJ��
�f2��~o/�o��Ś&Jlõ� �a~����<�o_�v�g�t\E%|���X�kgl�݄$ e�?�.�<x� ��������-�������2�5��d`aa���?"�頣�+]��t�Kgo>�H�;������{?�L3�����_�m�6_؂�gj��ߦ����f..r���Gx��OR)uǔ�&�n�Y�%�)>���������:k�t[��W�s��]�$I�(2L/>䣻ߡژ#�w�8v<O,(�®$��K����v����81���&P�t04x�J����q~��_���E�N�%{���x�.�!�n}@tf�ZH9I���i2o?�гB\�s<�oLc��Pti1�H� m����,RӤ�1�4F���DR��wo��;s������5��Nrr��8u�� ���-�G>Hg0B�у3`+U2][+(EA(luL+gaX�"����X%�_E�������X�h����v�f�� z>U$ߕ%[ʢ�
�ק ��rw��P�}OtP��OD������Z@��
����s���X^���Qt1S���f�=�R4�.qmY�W�A \}O�ߝ�S��P�vm7=/�)�M��X�r{����r��cW�A����n� /Mܶ}m��
��' c%�ʼn��v��ֵ��{��%��8��_�� D�P���V�u�����,����4�ʑ�Q-�x>��$��aju$�
���!-���DQ� {s-ׂ�'=Ӓm�����΍˨� ���w�e]7�\i��D��n!h��6Q$�I� ���Q�!�-`Y����ktTzc5��b��8m��cX��R<*������op��U�'9v�uz:q\;�Y}gV��p���K"%�
���yκ뽗�w�;��<O��ɲw�x.�E�݆(���( O�D��s�!����]$I����v��;��J�;��iq��)fg���7~�S�NR,��{�^ŶU�daa� Α�u��ѹ�6|��� ?>`&�8)���Y~���P*vrh�K��t��S���\���7 ���q����\��o��ޑ���?E�(�$�����um�����i2�8v,�"YTʩ̪w� Y������;LM=�ҕw���=��*��r��\��n0Q�A�) j��z��C�PJL�<�i70t�0 v�YQ�z��5|L��u��ht?� T޴�8�g�9�|c��_A�t�ߪ��S�f��"��D/+������\�e��*�[�G%�/1�u���� N��y�M�~��A�M��S��$#�G����B�BwG?}�C�u ��9JY��RgڻM���max��R7N�eIƴL���h���Yf �
�lEt�(
�k�������W�Ț�̍|�� �w��U�
Z��*�ǁ��H����"��@p�ަ��B5V��^�$' �k{H��%wZ�
�kC��竪JD������9v� U�rk����;�'л
���k�mǂN殬���gEQ�fw���$�kEx����A�,˩�գ�(���r=�o�Y�,�1K�N2�\lM#��)�(�����ЀU�d/y���\=��F��:!�o�J�F���"go���e�6�۽���}��]dŝc�>��芉�o&�Z�&$���2)Ro�Hl��k"�J*j�=5+4�+��-nN�����t�h4V����<�b��4��D��E�f�ƃ�봛6}�Q*�ntÌ�7���KM36���j�r���k|~�����H�_}_���O6�G��� ~]�y��Z EQj��yޚ��,��`ee�K��%�-r���h�ǎ�Ľ{����ѣ�(����Ƌ��'v���dbvv��ϑ�uQ�l'6HA��6Wض�ND�t��nR,t0:zu��&hz�n�n@m�$ ����|���F�H��T��h��){ü����M!�+W�aHF8���=�# �x�#�������1�[� 9�fH�Y��� ?��7�8��ܛ��ͫ��:�h�/]'�*�=��ɢ*b�n�2��^�\�$5Y�>��������9���V�,�w�z�+++d�y��{�/����`�(��3'ߡ%/��j��2yy%ķC߷�&u^�
�9���i/zU ?tq'a�� f@�ˢ=��5J_� �|�;��1_r��&��_��e>��`�o?�n��|b�w��q> �˥�t�lm3X ��&�$k2�!��2�|��lDG����2�a���7y�����'�D�+y$M�� ��]�;$)VI�?�:���`d |��E'ş���,�~�fh�g��R5�(B`�#�#kZ����E����x^�ni i:˾�c;��U��TT�0�R��ۤ1�kա��[����L&��dXJ����X�"Io�Z�abYO�Q�D��{� Xt}&'����qGU8�n;-�&��f����B �(H�o��ߵ�(J*6��IA��]QQ�����m;��� �:n�;��[?�R� J�M*�K�m��%�a��F3?K�Y��P���
$L�BSe� �o�4j+8�v<�%�]T��$]W�ӕǮ�j'UP�5� �/����ro��*��'�B�?�IW� �b'�}�ܹs�@�:䳤���P:�I�@���EUS[�<�[�D��y���}���w�BQ���������㳎�B`�����_#]���Q|�{DŽX^^�ڵ�F�ӧ�|�}�"8}�U�]��|�F�T*��ڽ�bG>p`���q.]�@��M�Ա��� ���ku�"Q/��aX��C�kR*V(�K�ڀ�9���{�a�n�D��e7�[��m�Y��G��{�&��v��M�ߤ�sA���"-3�B���(eR��~-˂��Ї|_x'�s���C>��-��~�v�<�b��(��։Y4i+ f��|��'��)�2s�rLӈ�-����s��+� �t�H6� H:�Q�XmD�V����� �g�O>�O�C ���������W!���9���9�}�W�:��jt+��L�P�c�?A����&�"��a��C�E�A�$�^��p��t��/����}���)�V�Q���_��W����mT�`���x�<ʱ&�J��^@�(��0�$�亲hE���P�F��(��+DC 2��� Vt���d*tsw�0�n{mߍ�����8m�>��Ap�8M�0�7[�⵽�^<��KR$�����0��=��z5U(�/��M�l!Gc�I�>��8�����d��٬�y����g�(Y? Қ.���$q���l����z�&k�P�ߢx�s����26v�V�Aggߺ�[�zZ�l�m�秨ח1 �<K�J�:�]-�TxI\O� i�Z���n{C�+�8����y���%8���{(u���Zd�Y�}9
�9��9J#9V����P��[��Q��I��"ɲ6��v���\��>o�2���� ��坳_g��-.�x�ٹ j�e =�!%8aN4�5\��"Y�um� ���OS(��dr���o��������-���S
�cy
��C~���b���G��E��jUE!��[qEY�
++KDQD.Wx&9�x�V��b���n!��������;)"H�š��,�G
��8�݁�v����}�0�̙77e(�!���'8�
/�������pȋ��;��eq��<�Õ+){(��^���^<����
�Ӏ�J�,��x�V�����],H�$�lֹu�"����ٛv(e&f����o0�q�W�}�ns���%���o��g~ 9�0 �(��ɑ��1�L �5@qu�J�ZBō+1�$���C�`~i�w����F_��]����3�r/fA��@�Q��s7���9.]�Uw���n�ejaC�a�b�TQԸbib��l!�a��*��-�U(W<L�E�6��� c��q%ܲ2��:?����4�&�MRh ��:�0�ez��z������X���׽���!��FY��̡�Q����E�������"�ȃ�S�sE����`���+��P�-���D������ p�D���݌�hDQDk�ŝo�1�}�C�N �V�&?D9�&۳^�3���<ͥ���فXY���Y��\Q��-]_}w�o��zmO�Uw)��ٵ��v��3'@�$I�����^��~�g{(��j�Da�$K��Z���lI��T��e7� ������)�"��,+����kV��n�h4j@D.W|�
�Nc���'��0 �q�v�@���w�w>/��V� 9��c�Q `Yb/[Z��^����c��=?�u������(�i'�"���,KO�
]��̗��XZ���pa�?=��bk�U�ƣ���5U�-���n����f����o�}���K�O^���1ؗ������o1�\��c)��t�mǦ��&c�֝��zTkK���e j��2<������߅Q�G���7��/��������/���;��U
�Y$YF�t���K�G�A<�]g�yc
-+ S1�wo;��}~�W��]�5k�����Z�:���x$�y/nlq~��=��=�� ��С�Oe&���'y�� \�z���~::^�����0M�cǎp��u�\�D��G��E�e��>r��}\�.��4�(��p��q\���Oc�@`% �bW'c����G��X��m�\��s׿�`�zz�1 ���~�[|�?H.[�0Lt�biya�TH���mVs��k�Ƴ���aYY2�\j�.�i�]+(� Y���k���7(�49��C�
�yU���>��ѵ��ʡ2R>�UT[sܼz���o���f�t��1t�1�HY�Ҋ����n*1�O�}ߍ����j����N04pC7SeY��ia:�R7�j��1�{�ϼ�����FF�`fr<�/��?�20U��|t�Y�s�1�;�)�{�|>Gg����C}�J)�CgG/�,S.v��� ��"C��%L&�5f��H6Vak�о� ��+[B4�������_�̟��)��������
���zF����i8d��o�("�C|��o���/�M���(�ށEUUA����A�g{�vL�̺k.IB��i:{�/H�I���!� ��g �w|ܦ+����n�,߭�Ovp�ț;�m�@����F<����ڃ5Y[�n��XV]ן�x<K�̝�sp�9d]��Ͱ�����a|�&��s�8�:���]��p��ad�V�Ֆ�d
{N�N���{X�������@׍؛W<���%m� %����ׯm�x�����wt�F�C��na� B� X9��P�/bћ`f�����]��+T �a����}��Gj���<�/���2�����O�˝�}
S�ɇ�t���UV���M~��o�
j D�$������ϕ8d�2_�̟����P�-�Y�fP�BtC��p��M4(3@6��g�Ul�%
�{�_�y^�����F@�ܼ!����ߵn1 �! ���f�Y~�'�^�K�=H�d��)�)Al#����� ����E
�2�re���o��)�}�,׮}���� �"����ap�� nݺ̵kW�T���JO}�� ⥔��+���鴫*�aR�U��1�`K��HVK(�a觊��m��_��֨�p�2
�z���dQT���<5����b���T���W~��q��^a��(膑nB���B�М��R$�-��F�)u�v<W���cm�IP��^�ݾu���.�}:}'�b�����ldR���Ý ��G�
�rdND�����itɤ��H���c
�������xNK�ת��[k�$�(L�\��R�=ϣ�n�"5:A`��������Oww?�r��A�rc�C��9N �}�B��G�0���� Xv���C����͘y�zS,v�$0L�[�0��{����Zy��������SAPE�U��+S̟���S��r?�$�R_�����#?j�>�VKVdܶ��I$E"[���3 ���m�� PT�`
�d���6UUP���zU�FE) �=�cd6Sw�Ap#�{�}Wt�eE���}�t�0���O�����V���*��Ӟ���3�qlG��k��iZh�F�,��?{�k���.�����Zc��
ͥRG*�#X5��U����{G�m#IR���;Q��FQ�s���D�����,-�r���� �m��Q����"�li�r��й�w��K����}!���ڮ��:�Z� =aA8&LN�����K�ߥm-1��.r���I��頨*�G�Ȏ�sU��>ݯ��:\&ߟCVe������� }r�\G6�ު�R�ʳ�F����IVh�m�f�����և�ʊ3C�(R�w���u��$�]���W�d��^g�E�f�h� �Ew9"9�m7�'F�N��*f �v#�����㴐e�lv����a������Ȋ�MP�s��ǜ<;�����$�{����>�z�D��t���X?o�V�@o���W~������W?���/f�_��'����/����sܸq���~r��_Z��{�K�����mH^NU����Gx�Ka�9�d�V�Q a������뺩Za��L��›Q� ���u죯oaro�
߻� ��os�� �*�1u�Kco᜙���:��Sԛ+j-j��Q2[f�r�"�n�s%Ig8��XV���8�a����8,.ϱ�4M�����]�>����&�V��i9���U�PuA� �$P ���%�Nv�1R� �,,�2�0�d��yTE[�p�tOx���!�z���L/ާڜGS 2Vn� �ee��e��&3�I��>~<s��
:���C��C�]�᥇d�t���f֠�TǨ���@�U�:g�*���$h��ܯ]�14A���}�Y��}8�ˆV����9��l��WG��e�d��폸�� �?]$ߙjW�̚h���o_'י[煛sym��9YS�� ����zR$vAN�AV�-��7�n�� �+ S�<u�X�$4+���:����4�M��ց`eg �w}ڵ6F�@7�u��0 ��a�^�J4La�vab�B�')��F��w�3�F�i�F��^�ZC��NH�Ù;\���\'�݀�蹮K����,A0)�%ӶDQH&�'��>�˜N�V�x7�vB{������ �N}�\��i½�Ul��
�]����5�]�آLj�� ��Y�V�lvsz�,���;ܜ}�'`�^�?ۿ�w4� �C�e ��X3CRd�bg�5��Pi�m�u���M�*�X�fl�
��ާi�S�� �%�:��rp�K��4��Nj��j0>u�vq��P���E�����h�|�����4����>�}� k�L�Yɹ뺑v4��Z�[�zO)P'�`���N���|�z���k#���l�A�yN��"�QB�P�-s���(�ʉ����% ��/p��;<8J��B�El{�AtN^}�e.]��7�� ���Cl����#�0�u����ꢪ�b'���zB�Otu�4�Ω�j�p�.�s����n��XV���t[�lV�+�b�Y*�.d ��y~��$�و�7z����>!��C���*��J'��]��[\��#��ϐъ(�@�iZd2�x�I]s�a��۩�q.WL�������^�kee�+7>�{g� ��m��^fb��o���Wx�O�L�� :B�6Qa�-MA35�0©; {$�):3���q��r��J��h4�����N���zGJ4�u���|������"��-��U�J�����M7�)�Q�t��2��C��T��u��r�
CA�<�{�6��D��,��0ws�����Km�j����ԃ1�gڭ�� �Z7pG�(vmd$�ا�� X�\Ƶ]�� ���9���D1�������5(�ny���[�\��K��Jh�F��N�Sw�d #o`��]���$�ۮ����n!�(J�O��12�<�����ҡS`��t���tM�C�.��E*|�`��XkSa��٦~˥�܏�oѣ:V`�(fn�� ����rv��?�g�z���T2�誅� �b�8����}&foaYz��W�s�k;Y{��H��HՈ-+ \=[Q�$���F*³��M�ann���Y�{�\.�Ą�IP2M�l��m�k�]������5/ݣ�e��`.�v�i�l����O�f��.M�����u��3����h=�] nUEU�m�0�yK���d�P
������sϲX��yң�ke�>��2٨�;���#?Fgg_�s�o\�Uk�*���'�S(�B�PQ2&.�7���L?#�7�����u19~%I&�����Aӄ�f��@�:��w#��v�B��e:uR@�4--ȋ�t����f~���R����w�x !2(�2�f� ~H6�祗>��������?Ņ �x��r��a����=���D�)����\��7o�x
�b왜�Nö�)5Xtv�x�t�u�"33��s��R���b�(*n�p��+tu�c�4MO���$.\� KS����U&f�P��h����+�>�]��r��l���e�>���C�z�DX%�B��������kM��P)w�����ϕ�ZuE�X��/h4V0M E�R��,�Q��4˷��E~���ÑN��cԝen_�BǙ����R� Su5U�M���.<P}ק]O��†���or�W��+�_��|s����Ԗ��!� Fr��,�l�py���o�y�?<I��
n�o�S�wm� Q'�[*�G�|+햯v����L^��7�c��� ��0?9��m�l�Qj*��!v�N*���H�C�� ��m���S�ܦ���O��*���S�@��86�ITU�ql�M~��' ���
YF֠��‡��C��%a]%Sά&m���?oEF��[x%oFa��O �(�ۍos&8�"7���"S̠�S��� �`��u�!�jK�����i��o��{��j����O-�DQ��
�Z�07�c]�.qo��SYzOu��8�֏(h���[J4�(��j�8m�*�8�I�{F���Z<�0�|ߥ�jE�\1�;��Wm E���ӡ�H�G��.�٧��? '���J����o�����M톞E$s�������v,��ã�-I�l��߸�34Kϑ�m)�GaD����&!+1v|GX�= gJJ%lj,,N��JG���"��
�rg��k�{m%����at͠�j�V?) �sX�O��X���h M��rYUR�>={�Ro0�9��a"@��?}�3�����_.w<��'��ql`�,�$�\��_7�Xt�[�f��������e�NCQ�X�ƌ�� VV�8w�-��.Μys�f��^y� �_�����[�9s�BaoU�_Ŀ���ă���s��Z�8Z����toM�g�"��`Q����"���̕m7�9�:�s��-:�z�e���pb3���Bdž�‚�Q���or��9�F�Żo��_d)w�r��;D>�W�3�p���{��np�Wi�U�}z�԰�6�'h���<��p�eg�[\�����+�� *�8�(����� Y�լՖ0M+v:�ݤ�n�^��/�Q2�0ͯ��?���os�O��?�����6Zۢ��=t*E`WmQ�-fPt�0i��ˢ�����,K����ޞ�5�0�Z�o -��.����w��Al��m7�{*�&���5w��:�$Kx�C4i�[ڿ!�M�16c����dN/�:�E&�et�$gN|���?ƫǾ���0wg� ����ss��o�a�d�L&߫(��m?�!<���}�C>ٽ��p��(Hl`��դC�Rלo!��92�:��09u���y
���i�F�+ǥߺ��K�dʙ�Bs�jȊ�j���}�����k{93o��\�
c�A(��>.�\�+6��춒��wݦ+�� �Z�4��d�٧�{ ��Q���zR)uo�Ռ��V�!f��L��x,,M�оF��e������9�ص|���a�l�Ě����K����Mҍy 8a�4U$ J� #��"��Y&��v�k l�y�(J'������*^Q�B;[펋��En��h�B��V�T��d򸮍�W��k�]���w�*������8��("+���$$YB��^�ܧ2�@���B�����<���F�Y4|��\W���S��XBXʶ�ޟ������_㝛�΅KoS>���x�:� ����]��
�C�֧��w+ 8�b�w}�&amt��F��/zz�(��V�Rig�w���X�T�c�R�7;�d�NXb~��wm��}���ϗ8q�{� 8}�5�ǧ����׼��k�r;�y�~�3� @�'>�:/��͛שT����s�% |�% Ct}�=�F���tv}?�����ݤZ]�=̤�5�� �L���A��g�޻��P 98tz�$i��dL�-Z�g/�.��^��Ns�+)���<�7�t� ����q��L��9��)��;ՃU0�
F�X.�"�,�must�ds�t��٬�y�la]�1Y����b��'ğ�t����4 z����4˯����ۜ��Qd�����׉L��O�c 7�(HD�]J�?٬eEN��j
[��guN��I^��g�J.��j�t -*�n �I՟�̙��w�Nh�������G+��<��?�)$j�B@k;�q��l�r��l6O����#��ß�S/�A�zI�q�6�z�f��$��� �EDiqb��VF��&��oS:(�L���;�6]TC�(��[L_���Ф�WJ﻽� ���>�$Ɍ?�Nc��!k��� Ȏ�ym����?��Ď���,@pk��l���ި��B�w���($I�\�%��M�M
�i�����h�W�$$ڍ�P� i ���b�lek[B"�l������7q���)yt]i6��B�#n tV� `h܆�ݙ���E�d̼���}�� ��&�A��h�����r��w�3u�}��0̍����~�l6p��L>�X�=W����v��2Ð{����0M�P޴h�Ql'E�۷/��0E�ҳ%l�͘����Zm�B���jȲ���ȲB���>O�y� ���Jt����,"�"캍��薾�5@�%���^������)��ָ$W�u _v�x������kgͳV�k����;?��x���?���ց�$T]E�HLߝ�K%c��=/�ӡ?�DM=Q{�n��\�n��1��׃߽(�%�k�0c����`�m����S��0 x���dp����V�l{�Ǐ���\�_��Ƨ?�&���D�^Ŀ���0���q��Y�_�F�ܻ�"I`� QU}�T���!J����m����f���I%ʲ2�(�PI6 K$Fk���b�F��Wާ�<�v~�����J�>�p�L�����-f� �L�I۪q���4�e��
�YUa�AF?��|w�PS�����=��F�D(�z{F�׫�v���s�k(�ٺD�!��%C��̥��y$���<�~�8w��<�9�½E�ǫ�:d;�,��Ӭ�кd̂N���� ��� �cWTY�q���O ����y�����E �m�_*Q1�)+�d�YA�tdYaf~�[���YM:�W��%3sk�i�|���p�Ѵ���&Ǟ���J>_L;�b�G|�e����H�w�EA��j�3j��f� +9��� �W)��qn��a(�ڢ���߆a���Db��i.6��1��� �:LDD���k���C�v�0
8;��t}.�U1���W���%�ŝ���A�H��ҟv/B�e4C����a ��(�]k�;�P��{��N@����}�#�/捃 [����*d��8���R�l���˪����`t�����4���7|4�pJq緞�/������� �34�Uz:��8��s��-�Νg�������dm~� ����7K�A���f=��͡k:����]]�O�{��(�qj�e4M'�+<�yZ�N D��K���ql8�em/��IX\�"KKs,,L����D�d��H�Z�7��<�Fc%��{J�?XV� h��$�k�3��?B>� ��t9��zm{�w��Ȫ�<h-�Dz#��`���↓�(�����ߦ٨s��y�?M���0����R��ֱ�J4sv~�Q_��[қ>/�ݎY�c��zuh��܊�3�z�d Ì�(�c��ڙ߽���+1^��l�bm-=�����j�l�1S��w���}(��2G���A��C���]����g���?G&�|�/��f<S �k��W_��� \�v�R��bQ��D (��n�����|�t��q�h6�uFo4zjdY uٌ�n"r�iچ������=�Jc�_�տ���4'��-A��7q���1_`�͑��ɲ��S�{\ž&�?;L��@����ꨆ�&m�]T'���*tI�X�Xĩ�X�E��:Q���d |��:�ab�a��|�H��dyy�w�V�x�������R�� h� �<ĉ?x��?C[,s����Zw��5�Y�0��>�&�_ɜe���ɖ$ ���5���X�Y�1ߠ�p�8ByH�&����"a3t��9~�7�&v~�������p�ׯQ��rt�u2V�1�����g�'���0�S��ز~�8�%��`ۍ���N��a���ia�p�.3����
�0g���U�,�<�L}�����(V[V u����`�� �����a$Y�:Q�q���5r���`�{S��Uo1��Jd{v����v��ҞMA�4�KMdM�S�=��1M���D�7��(���7�N�3��X��k /�$I �@���V���
���8�lGvG�E��*G�4�%�>��P����$�j5b�,��p��|t�{�[6�bt��\j�n����� �]�_Ĭz�������Ьu�-�p0Mk݈�ee��K[JV���=��0 h4jx�K>_�0�M���:�$8�m>�����b'�Lp>_bii����MA������M��"?�b[�&��qs�}j}ct�ܱ�gk7�w�q(��j�b}K� �[Ү��[|�%U��ϝ�n������}�f�i����Cܽq���I���M;ފ��eT�.�p��dI& �\��S'�)��+�VI� �UUuW�w��J��:u�G��z6E��n����4�5�F>�����H��,+�� +�;�g6�/I02r �W����;|��_~�5�E���g�A�0�9s�۷�p��%��n����t5�l�B9�K�~l�A�����kT崴���
��U����� �Y�{�id���ҋL<�K�^C�-���S��WV�,,M31s ��; ߙǵ]�-�f�\W��p �`��ӒY� �������G�_E7���6 C���tX[pXYYH-�$ Z�&aaYYZ���J-���k���}��4Co�Ӭ���:A; �i��G�|�؟��.c��*�;Db�S�q/[��[�Ԩd�i8h��'@X�4�}��v1��0#4�m2�n;E�(�v��W~��� e���w�{o���)�����34�$Tx �H�n�˳�z��}/�^R{�L������ifS�,����s�Ո;������#���/s|�St�t�����<Bqi�Ľ�c����������|����YC(p+
��__d�� �8@�J�>���� }��sgs�Q(��eY^Gw�eY�9����w�1s��6��/=X"�"��쎓�m�$��;��ub�{�;ω�]��e��rk˴�$EB�Tr=f�ƍ��B<W(�
��>[.v3��ёcT�=i�2��h�k�/\"8�H������J�s\��Ez�����HlH Ê;#k�_Ҷ:5���n\�}:L6�zӴ�fs[�' 8�y���% >��-TU�����r۳�Jb�H ����,,�P���-o6� ����zZ�~R$��43\��6��g)�j�)X<����wm$���ѤĒm��7�"�6�8��wgѤ,�N���/������n��?�X�'P�;�6?gI�ܐ��^M������%�|�b'��:������ލڭZF:���ˎ�z�����i��S�.�l�R���k�yo���twR(�H�$�x�G�ѻg��/�Q�,?����}�������E<�x.�O�������)��T:�� jʆ!�?�]g Э�@�V ��U6V�3���*ؕ��\E�٬�i�l\L3����?Mӫ���C��b����/�$�é�����S�������;�, �� }!fe�/jҍ{��&�=욍�ȴ�M�Z��/�>�������R�y�YW)�Ֆb�� �,�:.�Ks���\��������q�P�?��Ԝ9�����8V��݌�;I��
~;`y|��Z@=Ӡt��*YDaD��Z&V� �@�_�X�"�$�Y˘�z-W�荬���8��s_������})+ c��;����*��W�C���g_�)�z�czP2�,�l���Z���I��G���d2�M��zP,�� A���u��}ð��]WL,=�,)�~��e�g:(�z�,��]b�r���i������i|����1n|�&���RO��Ln���k�!C����}�\�ȃ�:O�Pv����a�ǒ6EQ(���� �8#�e�]k��v/@��N��H�ANá�,�����2dUFBb��"��¦VG� EW�v��$&�w�q��,�##�(�R�ð0�Y����?av�>��?����5�[ ]�� ���j����(��ŵJ:w��ē@��9��>�| ]׷�x*���5���a��J�=�}t�d���;��;,(�²nii���Y���t?�(->�H��V�A.W��<�$���=��g1ϸ�E��{�F�۟��J� �v���p� #k<�J�[��~w���\�~��ju�_��9:�*�L>�I�.j�% �b~�!^�2R)`i��oX� t:܀�+sس��S�r����'�ɡ�
��!����� ��MI ��2�kS*u�V�A8�h�������{/�u���_�С3��mx}D�m�l7E��w]/�3?����׾��>��� C���C<|x�K�.��T(�:h6k�����i��5��2M+'F:�$��ݝ��:1�ОLt]T�M#Ý�������� �)*���ee�u�����,4S[�z�t!��ʛS�7��iU["��Xy�Hq��N'�Rg�aw�6�f�\� o�n��F-��Sd���>��� s����U�ݿ��� z
� ���_�./�03�JLL�����B�c?~��ׇ�%�z's�I�_#�}�}y�$� It����sƉu2��j�����'�0q�4g��g�Y����炙{Y��.�J�����1��a�� #�������f���~ �YV�|#�|NL��>�{�ca���ɻ"��$і�<�E�4YG
T:�C�+��z��ص�<����k��Jy��w�>͇��'�!f� ���&�ia�mwѨ0E�r��^����\��u��E��#ڲ��G� ��(�0�&F�@�t욘+�wX�I�-���bd� u,���6َ�PfՕ� P$$5���8�G� �u���E1۱)G���hrw�"��; ����1I�D�����w,���
d/;3 NX��`A��әc����^(�8�;|��⣑(;;���^�v��1<|�\��nx�����Z(�R�{�S>��n
l6�OGY�� W�ߥ1��ұ,f��d����)�&j�{ ~��e�-�tCO�ZO�vզ}]����P����?N�̲�9q]��A��Q�gyb��4�ԭ)�.OI>K��� �����M� �e.���2���B�l6��i,��p��G�QH��%�W��� �`�S�3|�C�M� xn�Z�:��_�z���1�,
��������/1<|x�wBQ��k�Y�-��Bo�>t��?��?�W���t�ߧ�\0C���3==�ٳ���l1��*��9]7�����Z�^F2W�z�>!$I �/�MӰW�Y��l�.Q$�]BS<�ö[�N���m�a�(T�+bӊ-
�sab�m���#U�5
:+ ����= ��}H6�G;BStE4M�V�������~��� ��@�i^;�U�N&'J,�ϣb�{^�^lc�lTS"۝��q�7�A�/���1^��8�g��"�W@�lEn$R��DQ2�����?�X�$蘊*"5Y���aM r��� #�sSAY����)ı���D9)�x��i
��0 �m�����@�f�v�2��XO��SL�՘N���F:�n� L#��稘}tf��}���G&(�җ��X����7p4��+����~p���ܶ;���ڮ`=<�qa�,r]9���ZF�P)<w�N��i:h����S�dY�mc�.��g���7�2� ���:&�^����5�h�[��Ѯ��GQ�g{~@���*�d:,����� �I1ӵ!G�ar�.w�w�je㮴�.�X�!���<�"��m��vF1�U��(b��j������]�!R���a| �`�v�I&���{ ��ܚrs�P��D�#I�����f����k$�*���:N�mcY�m�_$pl�� ?��u��t&WVd|����MQ��H�f�"�W�,a,?"��5O$$Z�&���t���_`d�8�By��L�}�戮LN�����6W�?���P��Fu,��l�%D=�^m��p�B���Sɾ�t�UE�\�"�+�s����l��e�q��z�\V�&��A��ϗS�^�n>�l��PG���uӶ����N�K� �i����2�bt��9��J�F km$ X�
���7����>���,�btt���r�2�l���ALS�Ӓ���]��� �nI�KVT:ʽ��w��������L��g���1� �&���ׯ�C�t�L7���$ O��fh�s�|����-Z�69���Hp�/���ee�� ��4���1��nQ�W)�tU������Y�����-�0����,�>TK�./������1�W~�S��$�����M͟�5P�=JO�(˷��NO� W�I^���5BV�+p|����"�n�9$ ��mc��G(�����k��m��Ɲ��"�tT�B�i�YQ�@�Dd��Zʍ������j5��3�Nl��#k���w��ߠ/��b���ϗy���d���ϕɘy�߆������+Ϭ��ų2� V�b��1$M��Y|n 81@#k�w�{/+B=�i:i��,"���PF6rF� ��((�DAa�!!�>�z+o��K���:�v"����{>Ff�V)+2��I+\av�>�����A�B���jk��1K�{cQ�v��Yљ�>�p�$�lGl�<,� XX�y��vL��n�-���Y�bn.xn�`Y8���F6�I��a(-}���3e�V��n����k^��F����i�4�Q�m�?btd�`b��������G>��At~�����۞CD�G�{��8����ΥE���vn�% B7@��!�m�
^% 5��E� XB" ���Y�X��7~�B�ģ�_1�/T�U�޽Ƈ�G��s��F*'9=�c�q�ǩd�Xl<�x$�,� ���E� ����ǀf�����l�@_��"�l.9fO�+�J.WJg�m[��L&����>+
� 4m��&��z�k���I�j5��gK/~4l�����댎c���O�9R%'y�Ւ$�˕0����|�s�}���,> ��dfii�K�Χ ��Y�e�V����[�+�L.[�4�ܼz���>"P\��f��O19>F�����LL�df�>-�F~0K��޸�ӿ'�D��)r"���C8����O6��\�����K�����Pd���>�۳4�9r���dvz���f�ǹw�:SswX�g�G�ܻz�� 7�8�K�r��������Bmf5_���g�/� w����ܝ�����ᵼU������m���[�3�f�J�v�E���S�0��C�n�H��}I�f���j�\p��$ 8�6
� �q�"�dt+�t|����� �Y\�eyy�B�B6+���Y�s%*�.�zĝ�70����c�EVpS�-r斋9�/�dU����-f�s:�7g���|G���` A�o������'�
��3YE���9��D��kA#��yY*͞�m��n���4��,E� ��wu��wE�m���L�#ό��e3�<��+װ��bǺ�mj�F�{ӗ�<UDf�q��m� S����~�ѕ"ceq]'u�K���`[�Uc�S!*�ׅ�� ����L�$��so��3�i��k�bCN
NE�bU�O��z*짪z�0�� ���n�)Y{�{�!A���n��|��y���h����,��Sd2yt]{�����ƶm\W�_� ���Sd�݀z�Ƈw�A��ʯ�9㱵-�� ���r�� ��.�EQ�Z��J�|�O�<6+xʚ�L�P���O���u�4��Nr������Z��t�`�� �B/##G����R+�k+,�1r:�7�[M�.2=y���}X�(����㴙�gee�J��\6�E))�k� X~D� ����A�j�*�j�v ��v Hh�O��L擓�N�I��YF�U�ҥw���С�[bC�� �XkϬp�&C�L&���ql;�~��O}�\n�*�/�ߍ��0<44���4.�#�)���K~<�#��n"���|x��-�l/,��!?���nWYX���=�멲,?�����),R*b� � ]�M�L}ק]k��Ӆ'�L�%$""�Ɨ��v8�aZ��X��P!�X7�����%n_�L�1D&�eqi;j�]�j����o����;z�����9���]�|�s�>$G�2y�b�H!�IG����#T*��e�)�hv���I��9zt�$f�� D��M��3 Ba�7�,�/������CQ�t��</5��l��<1+��O$ׂᵖ' �}7�=� ]�d[X�||tI����<xp�J������� ��
��J��^��P��}�f��?"�@������sVq�=�R�T��xV��Vd7�N��m��b��[ٌUY��
KH8���šdl�ߋ��������nn��$��i9)EskW�k��҂�F�j*f��Q��7'�m��ُ�F�]V$L-G��<��Gd��]t(Q�5+S�&(����ݨ��&�{�%iu�I���Mh}'�ـ����}�}�M.WD����T�$#ښQ�U���o]O������F������'������|��XT)��XA� <�aff���EL3���`ۭt|F�m��ܭ�q���L�����򚅙76-�Ea���������{�� � �pCa��ȗ�,m�Y&r!�opl���z���ar��G��7i��Ͳ?�*'�?�eeb�F���Ȩ4Zu&���td���
]�d�R]^`�~����x���:��I1�ɕ+��.]]C��e� e蝁�(�n�a�=^\Iր(
�<������njQ��Ni��ȲL�q0x���nB��֑e��Omk��$� ��Y�g3G��F��jB�����:��k��W^y�Ba�vn/�߽�X0@6�exx���.]�H.�EGG�3��>="|?�%^�e�#7�8'�����5�ȾÜ<�)�f�����"��"��i�>��3��B�n.�p����z�HE�Qe-�:��/��x���],�!�G4mrh�U�(�gBd�0�Ѩ�(2�nr�����K�*�C9��
��}�!�0�iW���e
�X(����
`x��Eǩ���l��ݯ��M�����W�Z�8�����t�TU)��k��{,.�"��MI�o� �f�l�T �����Y�Y�C���lB;LT�}�}L�F��^_���,��$ Kf��s��a?��G?*��bZ���KK�ܼy�r�������S W+׎�FS5���(�6L�$IB� ��@�ы�Sm"z&I�:룭DDD��C��km""t]߳N��9�d]��O�O�(TU <�#"ڕ:��D��N��u��`*�^��'x���;~:K�[O������X��S��(�{�]�cS�`��$VV)��t�z�� �aR6�5Zs���dz A�^�X�j*MwwJ�� ��"Irڭ�-N��DqK"��c�����<{�����'kV���6�F�˗�#:M�X�0L<�%��dz�F
\�eB9݊�㴑ei�9�Dž��(���k@���g���rE,+���,++��%�����k�o"ι�Ð�����| gx��Cǩ�߹0Sv��7� ���T�n��UK���o �۫߻͵]���tD��u+.����W��t���e��-�1����0�5�v�A�( ��ݣV|@�����›#�����"�V����2���߻�B�H6S����2??�`�~J��j���K���N�l~W�)�|&�mͅ?��"�\[D�j$:������/����,�=�z}�L&GWW���=����y�^t��h��`���ÇOs��C~�w�ӧOP,�\��E��;�GF�YX������r��e�v��Ok�O���~�bT�s��������A�t�{���OY"�uѭ���l��b���+Dw�H�%�/M3wa���&�I�k�fT"����i��0�B�+,Y�0b�������M�vUɳ�sͱ�8�ٹ� ��ܰ���yZ ��e�|���_��0����8��#��<Dgq/p�6(t���k�z��Q�ff� �ę�9>�)r�bL���$��e�0���|��&g���w'Y��d����2��ഄ�i"£��$�>�*��Np�[w(�}��ںB$J: ��j�DE�%<O������Bz���)[@�n����N��Hڤ�6`�����Q,-�16vU�9t�4�L���L�G��}E�OH�(db�^o����h�l���0��:Bfo��XlP�.�3ڈ�$옚�#�+I�w��� ���'���M��x���$ �`���]˶E�㥾܆el����*Q(Ĭ�d�™e��IDAT��m�覾�9eEQ�2*�7(8��u���F���t��6r,�[��<���c�e���43��� ot��ڞ��(�h������j�߬X[D2��g�u��}�^e598��N�<�7�Ǐ�N����������{2S�{��k����l�0��JXV�ju�z� ���
���y���m{��WDD�Yc�y���W��+!��C~�U��x/ C1�ᦌ��M~�pK�n���~HD½b�5�����r����n7(��y_�+����J�V�=�Mm��q����i�"QD�\,��V��|k�f��J����� �|�L�ɥ[̨�YX��Rs8m�[���`��F���C�������1�[y��w~� ~�F�E"@��N �?�i��*�m����3Yҙs�A���i�j�!�P�.q��Y��㑪��W �4쾠�6�8����(�8~�U.]��{�}��G�P*����_���=�au&xf�/�'��\�x� 8*a�t�v �$I��42X����k2�c ��ɩ��JH��NM1v��޿�ԥi�y�~�r�`��=ԬX��߿O��`�tV�z�
�Q$j���:�Rs�r�.}��3c<|p���^ئ�s�jm���#��L���{��\���
y���}�0�uU�0 ���ct�i��m�JG7^+ 'Wȕ�d*�����h����re$����vF�e��C�UF�A�T�'V��>���9\���d+Ya��2$]�� ����&�xw�����8��c�(Y�UU#���� s�ɗx.4 �@QĂ-�� ����.I��"���-���@Q4��;L>_�4�_���;�"�N^��V�Y
��QF��ћ4M�n��ܘ!$��U�v'8�q�Bi\5T���'�太�;�P�����C̜)�m<��$��De�i�X�l���A�V�������]�Y�tm�vM���xo��AOqߦ�C��������J YYº�e�,Q���犩Z�NAp��-|�~��z�%!���C?�'xw!��^������noR�C���o'O���g�?�+��4?����*���޶��m�����`H#�#
�>賂�b�)�d,��4\-g�nV;��tOO����o�-�-P(x������Lw��gz��}opN�?3��>���ϓ��k~^�o��p�(�(�&�Q,�������G]2��(
��lW��
^e3���� �
׮D�^��Zm~�?�\� �Ü�K�W�E�=�nK�N���b��MF���=��:\{�S�?c�&��a��i�Q�ab��nd��4k,����b�E��&�� ��H$��T�ph2۸dz�n�|Dcu���'��N�>�M�7��#I���WᎴ�]�+=�L .��v���Kx���ws+��FƐ��/�[!_�aee�k�>AU5�9���]P�#|�KYy�;׌�8mTUö��v����k7�t�g?~�Z����~5� ��?���}�\��ry�j��s�IRfQ��yB�2�c$Ix�f!���$%I���3l���+?�~�ϸ���,�>�]������YjM�`�ų*��fh��8�����DD�� ���k$$h�F�P�⨍�whJ ,y��]xL����coc��\�Ys��i�0���(ƀ���
�Of�_���ݟpo�2�����u>��G��-388�=�QLꌩgX�;��@q���.��2�������k�n֍�|�R�ʉ�שW��^���<�:G����2�^ؚ��
2 ��������C�;��,�躑�A
��F.�r!�6Q1��`vҗ��S�~^�$1�D�M��Q*U��#]O�ŵێ*'17~�~&�0�vI�C_�mW��|H(��5���3�е:��$:���w}3Z�>�L�D�^��DW����O' V��{�$IB5�<�݉�x���,4]�m<��=���
f����%$�z�(N�����a�ĸ�CGX����#�Ig�=�.[�>}�թQ3'PTe2��%�Bl�!�#l��Ϋm��l�n'������5�9T�=���<�����Dꛫ���H��¹so�VGϟ�w��{>�A(�j��I�9IDn�i��AU5��z������kg牌�ޏ�����c��ΖI-������d�Z��>�*�"7 �\�j�c�~�����{w� N�w�G�+s��;̭��Ip�����r�*T��?y����~�BakWNU?�����Y �@r���c��E��!���(�����
z��Z���8�*�U���f 8s��o�:����jdbm ά
��O���� ��"k ���B�:���s���En��]7x�_��qɲ+ �`�b�6����7�(
y�կr�җ\��SS���_�࿎�W
��H:u������T����/��[��x��B��YV�r����&d"I�����Z[��-�kLN����Οx��G.�k�,��?z���R���CLJv�
��� ��mhҪ�R+3ra��#L�7 V�?�#1>z#)´I���[]b��A���mnݹĽ�K,�f�$���?`�}�堍Ō�]��ǫ� c,J������k\����#��P�F�����F�%Ir^���"�Qda�)���j�a�JT&*�V�eEF��o.R\�����.�{np��`�v#����G:��Tnð� Rї8��41����3��i19y� �Suڽ_r"��SE��/�$�����R}KǨH;!�$��M��1ۓ�P��PM�'��
����Йu�
�i�F���Wdt�n��O�,˘Es���$Ih���Y��޸����~�oσ`EQ�%Yj�f��>���w �o0P�u;�}(�o��^@�U�N����Cea��yE��i<nS��(k�:�(�]Y$���]�m��L�6Z$�|Ap�E����z^n+��~�*b��T ��Z��� ;&�b�s:�~� pV�ܺO�Q�b��'��e�낖�a.��!q���+���v�]4�$���c,�]����s�E���|ڦ��B�e���'��e�� ݐ(�r���� ��1��;�Ϳ�9�Y$�QL"�8A�f�Ĵv���2��6��R��]�g08�h���u>V�pl� �5�#c��pb� |_��eS� 2V:ő�+�A����F;B�2��;>s��W��z�u������� �nfr%I�4�4X��ow�o��<_D�YeYVs��̏w�}j#�UU�w���<&�$��.p��������Rh6W��׾ç�~ƍ_099A�>p���2���0M�s��p��5�_�J�>F�T;��Ϻrbs��?�$c�6ŢP��D�������!^9�o\�������:�G@���ꜚz��<��On��ǜ;�.�� S�On����^[���&��1DP*S?TǮج<Z����Tk�L��a�:������ޥ4Y`��(fMGQ��b�\���[����ç����2��SocA��o7������o��i�/�Ԛ��q�$Y���R���ZA����yH�Dɬ�(1G�ΑD˫s��vm�$@A$�O�MӜm1\��4�~Q�n�Je ���n�݃��|_��V*��v�%���ev����ƹ�Zm�N���(�K��$<K�]���"�_>�1����)dEO3��gն][J�ZA��G�1
�Za���BI<���ڋ���[aG��|�'p�|���y����I�&�CtK�7��"��'1� )V��y5$�][�2w�#�W)�K��`$@)�9��w�0�r*����n�t�n�Q�3T[� ̒�l�e'���(���u d�w�����)��sY�Y�`����O�0��"�)�b�0�q:�v�J��'%���\�j?qp�N��m���.b�TŲ�|�O MS�J�1q�3�� L̋:N;�U:����i�G�;>�C���
��B�DHz�Q�N<I35�P�úP�u8 𛅬�b�)��Z��3p��[^����[��%$�!���0�NQ+o����*�Rbyv���۸�!�[�2�4�K�2R��VT���Q�92~���$�i�����_�qڹ`TV��B��m�KX(6q]'�� �0��� �rM�M�ۀ�=�5�$N����([�!I���E�_� M�x��_=��˺���^ʽ����߽h�[�[N����~�[|��ܸ�SS�^v����_I b�x� ܼy��ׯ100�Z0���L�d�п�r꓆aQ,�1M+��2ꄨ����X� N@J�m#�
�U�P�)���"����V�&b�~ej�W�xM�ѩ�;' qt�(�* uc�bbV1t�镛�M��Y���+�i��+��T�WPu)Q3O11t��9��u�Ř��Gum�sG��B�����-�|�03_ΰ�l�����Kܺr���y��C�U �DSu�8�iL��
�r��)����`i�.�s�OI��� `����`�,:�*��A� FkS�:�GE��Ml��ɲ#�ʄ)v��u��oGi�A(����a��}��wIo�����j���4��.�ı_��b��v�ٙ�k����#�1�f>�tAE+���d
�f��Y�ϕ�B��U����;Tǫ��� ZgL(2v��j�� CUU$Y��x�Zs�~��u<��!ķ��$I(�g�@I���=�:8m 8�ڋmMT�>y��_�2^`r�t>k�$�h,�Q� �x^ v ͳ�y���P+�
.���N��?`�p�R��Bw�\g#ΊX��N����SF9�}?U9}� �#�<gE?�.b�ż���Q��3��K�X��\�|�n�B5�� L "��ŽL�`ee1��S$)wP%/d�1�N�b��/%��blp��C�8u�-N��NU����*��q�ay~��Z2��lz���zcdB��@�P���o����7=|GX�B�L����j�x�$&���ۂ�$۴)�un\����7��� F�&y����Nn�&YΕ$���m<_�n�AU�Ap�)\,Vvey�����?�8Xv�e��wcd�hѥvs6���|�����/P���o�Æ�=w�3�g!x�=���ݢЪ�կ~�?���W?���)j��kƽ����+ �t]��7_���ϸy���
���l�'��!Ibt��A�v`@��TP$F����f���\:��B˲��4Mgr�$G�����m������S��@q�R7��*�v�Π�!�z!AJ��]���.�|��B$GeڻFs��ҕ&r9A++T�=?�*�+#L�cyv�[W/6 r�;_�O�Ԅ���R�ҽ���<U��7&??��ˬ��y�t���2��n�R0+Ȓ����*o�躆��<�w��Ϯ10>�U1�*��(
f�@*��m�D�\���_�v��&:�`L��\�*8v{�x������,!���Dw��iHI�r-�8��Lf�W���&'O�QbvQ�.�5�J���Ap<|r��P���<`fˣj���~êX��xz�)�1�O�^� JYekעы��.�k Zp�PP�;>�z�����"��6ΪC�Z8p� "���Ht5TU��7a��&�� � ʟ�$��0�"�L�%�Za�1H�~@;Y&�9�k{,|�Ʊ�}&�n����'T�E�+ԑ���RuG�b��AU��J��Qb���fsI�)�k[�K�A�n��0�ɓ�vu�$I�u��ZEߗP�A`����]��4�0 x��!��*�RmS�[t�Lt��u;,/ϥ�C-�T$��%IL���&���S#g�W-�_�Edy�f�� q�<�V��Da�Ec@�$E�%�}>�{��7;����zA�A�n�l�f���IW�b�;3� %:+7}�J��/}��O�[��u]��G�/����Ye�{KXl)��,����)��E�c�yb�#����Y{�,��w�����}
�"�Ͽ�ŽA�Ā��fAw{C�t:M4��Q�y�yN+���U>��"/~��S�_�C�5���D�������/?�֭� LP(�wy�8��
�#���b�B �*�Y}�e)�PFyg���hg�N�(�(+���8� �V���>a��#�s�B 2c���8�e�Xek�� +3��p��o�0�e��E�5��E���ث &� �5Pl��;�r�D�4��|��
O�<a��SoN��V���[G8���U��y�g�s����,sb�5j�A,K��v��i�9�4�vaGj���U���-�Y01+& i��8:u� ���+*�����Ft��u���������f�>Y�y�L-V�����ݨ�v�˟�=�BQ.\x7�*�Z��}�Bj���`�9ѐ%���Z��X�ۋ[�1W�"gm��-��X��b[�\�!�m`���l�:dEִ�[�A��H�/|]@�#���+�����DX7!�]�sorE��bCb�~�zx���a$YJ�o=,K���ME{�IT��L���q���܎�����(�GߡZ�� 0��� �����Ё$Ò$a&��I����!�Q��^1�h�6�R5�0m,�f,�{������k�}�'j���R7�����:������}�e�XV���g4˔�[:}�x�044�$I��\|��������I�$��J���*���afn<auu�^L�c ���k�-{�n�d���"+2�.�� "
"�8A�z�7�+6z|�%��ob�l������>�]����0 �A۟{�9�x�_ell���9�(��^�$x��6w��208ʡ�)�.�E!%���5MۗS7�Yjz�K�� Ct�Ķ�r���P%���M����\j�!�_x19�����=cE!���a� ~�Z@a:B"���_��/���?�ܹ3/}���_y ����\��!�o�JA��N����A���f:��S(S��Ĭ�g���lƸ�i��.�UH�R�]~,����$s���&#��N%�MI�0�{{�����o;k��Ua��n]�B��@2`��!
�6ĩ`Q���4�w�6��K��̙7x����e�v��׹q�Sn_���+�~{EVxr� �<�$�bɔG� `�d��f��S��'8v����KF�Zwo\%4;�F.��?d!!�
+�K���p��;Ȓ��'ʲ�o��RuϗZ6��yy���dt*1_�ݽ'���t�Q�p/yiGXJ;.�s�����=�d7����W�w��y��ԇX����o�LIVd4��<�v]?I(��ޜ�2R��9M߭�vJB?�o�
?`���V�ªX�'۪C�uZ�®EQ�3�$ ~�G�ԞA����EJ�1��S$I�ϝf�*Y��y bO<ʄ~}�Ι��ye�� {��3���e|ߥ^:Ю_�a��#� ��(U@���q��I�TI�.D"/��BY7�̽}�K�^�k]i'l�L�@��_8���݋n�iZXV���g��-Q���Q4����t Ş�$1�v3U�URj(���d�˲,a����q�2�x�4Ƴa�o������os�8G�5E�Hgz�>ZEA���� Ti�Fk�E�X�@5�\[AєܪIVdܦ+ ;�o��p��+��x���������y���x��_�R��>|��4V� O�Y���{ܛ���� ���v嵛�9T�C�A��L���[�$�ˍl0�$%-���fa�\�_f���{����188��㥚퉝N+���)�(��\�[�[<P�m��C�(�7�x�7��g�����k�J��/���/�Y�wR|�z}"��HrK�V���9��[�b������r� BTU��{�����n7�u�B��u�M�e�v#*��1��_���=�� <!��[�w�(�Yu�k�Ek���^��q[����$�t{��j��p�ӻ�-��#gx����S8�s���hk5�M^��ՋhE�����������Vx��4��P=\a�� ձ
��xN���q���"4"�1rc��4�YX�e��.�u<
��/YUQ)���Z��Wrd��f�j5rJ�i
;�n�ǺM���t������ќvq5M�J!r�{PV��=5gx���m��Y[[�ѣ[������n�_��a�C�|��TU��n2<<���G��UA�ސ���C�-��ցͺ�����' B�^ܼe��$ ���ۢ�]�q�T]}�k���6�Z!/i�&��Q,�A�Y�Dt��(ư�M���&�ݖ+�S=�` ��kMF�3 �'�|71Z9�(���ڶb)Bu�bpPhHt+�$� ��e���A�C�3��N�E���0L��ږ�<{we�X�$q���t:-^}�+=�_��3%���AQ�E�ܝ���0M �.��4���"��I�h�P.�7�8 �N���i�L#�/���iYV���0L�Ǩ��w�e�Ն:N���ǏX�]�Y�k#S3���� �ޛW�nz!�+
\u2A��j�Զ|_�E�.&+�E�8�#�>��,S(�r��:=����ט�:��I!I�h�&��f�4���]����t�T�iL������K��.�m�0����y�_�{ �h��!�R���#DQ�����c�����}G4��XV�����ؘ�!�X.q ���6�����[�����z��� �a_��1�nݠP�"Ir:�.cۢӫ��mV���~�y��UЮ=ϡ�\EQ��>��I��;\��8���G��[�B�k*��`�e��6\�b4T�8��o���M�JX��f��E���s��� �ffp��������ڿa��*��V��cs��{L �gef���EZC䆉�L�g�I���9�Ee��ZP�K>��~����op��4W[(��'��c*,�N}�S�r������M
����$���a�4��2�'GFϢ(*ss�)��s'G����)y�Z�|Vp����ʻ��=R�V��X UR1W�8m=�����;��vD����y�<�HTZ�QK�YxsLE7�s�q.<�SA�#
"���Y41J#�F��7?a�İ8���\"�E��w|욍f�B�j��W�"A��?�8��,u(� ���F��8��5���>���:Q41 �6{�2�W���Q��P5!���S�fs5e�l�?ꅹ!(�m@Jg~u\�!I�2 8Ӗ�tZ9�/�������*I�^�� �y�������5��TqXP�[
ž:�aR,VX\|����jP� �X0�FV�j��a�#�j��b,���L��
�����˲L�4ȩ�7�8�0� 2��,�p�"42̒)�D�Y���N�����f��{8+�&q�Џ����\о����;��F���u��� ��T�ڸ6�^f�p����I����C;�l%��Y�:����eM3h�V�ш����,.># }t�vq�������g�$U��7<��G?�m��Ns��;��EV�yё=O�v�*lY�8�Y[[�P(��2i����3���ٳo0?�ʿ���o~�������z/6~�0�d�w����O�~�*��S��Lbf���f�Qg�0ȩ�Cx���Z�$IL�T�7�q]��>�֕+����۪o>1{'! ��?$�����I��d�� 5�W��4��;�Y}�L�m���eŦ�!�%���h�g8�k�Y����8L����w����<_��!��� �#���ԌQ�~�o��w�����yʣE��8T�̷Oq��?C��'���~��<��Ʌ_A�3�$����&^����ٓG��6���:�"m�%�
¬�,��Ҿ140��$�������.����c�?�c������Xf�z�#���aX8N�Fc���Q:��$��t��w�ڽ�DT�]����=�)�$��-f3Z܋�$N<�|n��\�i�����' �(ܵ�6�0�m�$qB����Q�+mT�`;�q�Zlm�Yd 8�Ќޓ��Kذ�]A������p� �+,!���iԥ
�GNQ��fD$�:��� ���IՒeY�Ff M����(�qک��N�\MY-2{UPTUeiiEQ8|�D_��k.�6#꾔�� �Ŭ���4�B��F� j��t����.dh��6Q$l�v�3M�^��^����:��8\?����Wg1�U�(PeeU���0W{ޭ����5��H℻����x��.�}j���??�-���\._��� �b�Fc]7�u�$X\xƭ{�so�K��!����"�� ;N;���N�E�@6Z$�72-�0 S�csK,{���t���װ�}�?��ɉ�r��ky��=�0���{H�Me�+�C~)*]��B����6Ʊc�h4\�����W�W����/���/���7�u�
7oޤV�Z}q�\ټTo�`���)�}�.������,�q� i�s��)4K�_T;}���Dnw�]�q��p0�����S4�ҤE�'5y��Cꯖx�?{�b�����|��k�F�X�_����OQ.r���(��2�:���8��<ܦ˄~���aj�֌Y���9 9Ѱ�4욅j����Q48�c ��3q������=w`�$ YR8>u��'ޢ������� v�O�H�Y��4:��Z�~ȃ���l���s��C���vðojQVm~�*�v+��i��/�3+X�w�c�:̆a����ԂbנP������b����<ZMB���@��u}���*�W9>9�g��3��/"7�k{(��Yޞ"��:> :tF���;����SA�� ���9�(��=��b��<m s��HmjO{����,��R{K�����|�w7FV��tH�D�X�0̞:� �(Z�v����EwH��}uo�,T�٤�����ȧ^��n@p��fvz�N`���������xt��3���GHu�6Q4%�C�g�W3�=��lm$I�k{����ϖ����L �����v���Y��ᣏ����g����˴Z�y'X��⥟r��G8�6�'_a�ЩM�=O�ۦ\��_��Y$��N�` ��N��a��>��di�i�H�L���3�~^�ǿř3or��� ���(�� :��:�f^�����|��E�����5�"�Gq��qd�����#���oc�?����8���� l ^{��ܹƵkW�T����/D5O���CXU��J��>�6�]�jFx��^�����:Ӎ;H�ڔ�Jxm!~��`��tI
�;�Ȳ��8�1 ��SVe��iq�/�0��(�w�ک2k�"wn\����ܽs���ƨ��� �������O�r�C������ E�j(�u��Ě�7.�:��C�IO)Nڬ<Y������o�g��i\�C�����o�����*����g9T<���i.��%�~�Ɲ�����?��9�\{���K�����G$(!��ٶ��md�vQu��bfG�EML�za�$A��`~~�(
�T�(���
]7sjW��v�ح�G��� �&Yy��͏��>�! ���t�(����x�$��:���o/Q�`�^|��k{n f��c�d�W�Y���}�Y��w��(�"��S%׽"IZK-���h�Ap�� ;�jG���w|���"E�N���Wt�n;��E!��峘�*Rګ�9[|�"2���~�E\�A��Q�(H��잾_���ݫ$IB�R����C�)�0���� :���T���G���9����G4�+
� f�M��Bշ�ϩg��"�/@�� ��0 �Xcv�>a�Ei� l�Ru�� �J�9�55��w�k�$XZq�z��� �'��F���l�;=���35y��]I�3�k�3�
��p��O8q�5����ޤ��3�礖�{_��"�������V�//�]7�Ն���nF�be�@_��RU5�ڏ-g�>���3�Ͽˑ#g��\UU�� u�x����I"�K��ߋ]U�p�V:
�EQ:"�P,VRl�������ݗ �(~a0#�s�����M�^�L�4D�>��@px4�+�D�N�PF�u���'�(�\��4mܠ�G����|AH����O�g�嵅��^�q(��Vyg %w�%
C�KM�>���1TC�U1&�>�P�LB�*+���c�:v��.�,�h� ���գ�'��O�b��>IA�r��SC�X
����Q+�x�������_���KȎΛg�R�J���m�G�dtͤVfj�u�0��mn���k>��5�>�]N ��/��22th�߯�j���H��KB�+���E!�v#@3���v��g�x���n0::� j(��Ӧ ä�ia6��NzQ�i� J�0O�?D�(��|TOxd���& ۠6Ycez�`��I��9B�hl�&�-dYؖ8kN� 8
#�+B��/OjY��N����,�����)�8��@��vJf���)��Y�)}�4��qt��.�q&xo�ANo�n�l�:I�I�O�A�`U�R���T�sR��b�`S����a،�FU��*0K�� ��������4 k� ��i�~��n03s����M��{�XSq
�v.&�d,�~��7h�]d��MycBAS��78I�.H7��&�kt~7���ʄ^HLH�v�x��&
�x;���+��>�0� B�r����S��,r��O�<t
'l��� ���x�ﻔJ՞��O ՝����8���2��p���x2{�ť9
V��<O�gZb�^��<|>�����Ǐ�8ސy *�σU%
L�����=�_��J� YS�|DFQ�Ǝ�ie������w���� �$~�0�a�>}���{\�|�bq������M�n7�B���M�7�q�N.ޑm��ŏ?�wL�}�ʓUN��STF*�ѱ �u��n�Ì�$�Ҏ]�� ��b����1tt0��UI�b` ������ʅ_;���tKC�ʌ�5���_A-�Dw ��W��F���N03w�Y�
��tCG������`{uN ��+ǿ�ԡ�h��A�o�$[�el�H�8�P�0G��ra��8�*�1�O]`h`|K�(�L1��n7r�� %��g��n7rѴ�N�eY��ǏoQ*՘�<��%������$ ��� ��nC3��"�� �P>\��������s2 &f��m;R Ĝ��� +2f���f(��t�.��=1
":��ݗ�I�C���h���L ��[�~�/����C��(��-=O�5S��(��i����xL�'���W<�V#�m9����yB]:c��y�r�`���`M�h69�S� ]ӝ׏>��
e��N�W����~*$����ߪ��wGl�8���m�~��ר��-#�A�Pf~~�Fc�ju��sŒ�B%da�)�,Q,V|߁��/�,K�Xi��V��)�����$ �nug��v[�۲���6�������9�tn3v�v�U��yȀbG�O�>�,iL�g�[`~q�сc躎�{�徊?;�Q�4F��.��S)�r�&I�Jy�N*hY-׷�i˔��$��l���ଈ_.שׇw��3�^������<�g)�{+2TU��i�8��QUش���0:zM+����w���"�/<0M��Ǐ2;��/��D�0��� q����$A= ��"�����?��L�R�R>��!����/.�[��Q9T�����H�U��ʋ��Yڞ�(�p[.vu���m�Ȋ�Q0���&@�D �/|\��I�P�C�OP�)2"I�mx��g�=ns�O��թ_gjL(0��"+���әG��O��`�,��,�50?3M���ԅ\l��n�iƮ����������nP*�EUr��Y��j)�h���$ɩR����TE2����,���3?�M�<�[?<_��:Ӯ���<�����E�$ ���l��R�ц �Ž�8�w�3��+T]E�f�� �2V�"��v����
�z�~KH���K���-M߻��a��؏�s�#!��'I����|�؟���N�v��Й��n�[
{��p_Ox��˷ZL:��W�.e u�
vf=�t��f�����{N�δ%�=0SWz��6�ߣG�R(�6��еv&������;y׽��/��Nn��O�q���j�J�nR,�YXx�z�z��xG�tE7x?k�|��R!tho{|�B���ǬJ������iV�r͆�� �o�,��
�>]�p�<E���=g���{���e2c�G��ssy4}Y��;����Jz-��ؽ���.�릣Q: S,T(�(�Ο��O���Q���=A�s�ڧ Ot%���Y�=߹>��Fc�bQ�3/B�s�ȴT�������@�,�'���������,��dn� _~yq_ X���j�2��i�+e��S?��Q� �A��q�յ����n߿D{��VPy�?x ��)�,�Zj�� VqgJ3�s�{e(����$
"� �?�8X�4,��R����� �����C�|>���&������� �( �>��~���� �3�N�B�"
cH�|�D�I\r���E�� õCi57���� �}� �B��^# }J�*����bJ��̤�{M4�p]�0 �n����vR�,������G��V8|��a�x�a�>�b9�C�|^��I@b9~�o7�*� �KH��O��s�ga�z�Dw?� T+}�` ��Q��5����'_>���ᬸ�}�£ϰ�d��Xaי��_��G�y��l��$Y���Eo��P�u�$IB9���~�m�@sh,4��(�wV2^O[9�7H���&R��O��
@M<?�+h��]�4�\"�F���>���ۂ��HR!��E}�B[�W�O��+@�}w�D�[����ʖ56 �.��8K����_� ���-�4M<K��"I2����YmQ4�m��$A�����e��%*S�MbK�@p[x�fŭ�� �:k���e��)j�!�0H-��a*e ��U��Z��|�0�T�r��k}��7���8,/��8mt����� ~ ���� zz痍Ax��{���ڸn����r��y*��:� �i�fˋ�(�h6W��"�Y���t��`�7�w��ə��N]UU?N���o�?��7���"�p����m35u�����@���[���<9�u3��d��9�|Y�i�up]!�nY��MS�aim��������;c� s�;��N�-�L��7��6E"�"C/��;tkB?$��vIm�Da��M_�$��;�}���K����*�S���w�Tꄁ���� _eZ�����>YCQU�SU'`��2�?��2Y&�\�^Z���_�iu�-�v��L���\t�L���$�3+��:%��[ǴZ l�� ��&�;�c<�I�՞���S?�C�:��C�Sۍ�V(fIt �!h�p������H,��a�E/
�������LT%c/��m�N�3 Au�JLo�$N�vHHց[��Q �8N���1�x�ν��;���oR��Y^�Gv�G� �i�p0�7?� th���b��f�����VgV���o2a,'T����v��TL*�-��\�j?��l�0��7!��q�׬`&�J��^%��Y��cL�����;�_�����S!�i. ��^���p6�׿��q�N�N�.Ӵ��"KK�4��viO�kGi�[̖g�Jv��a@xi7���v�QaY���C�`ii��*�q��`i��Y�#������mb6fu ��,1�t��c���.�G�͊S����ݿ����0�"��rV9<ql�cr����^�(mwO���繘�y�V=b_�r+%�����O~��LM�dj�L�����$�����"��1M;� �$9�#��� ��|�H�$[
�E���<M���/��?���ߣX|�`/���k�
��Ol��������
q]�1M{��iF/��� 𺞟�}�sR
UU��/��� ~����G�9���� LՑY(>' V��n��Fq>˓EF�aU�[b�5�E�v�] �� H�d�������
G�h��£9�f��_��/M���HYBA#�\�~Ȕ�&G����an��):�/�z�!Z�Y�����8C����*ẝTpL��3�#:�v�zl�� �������讨$I���Buk��r�ƍ1�(e��(
{J����˲>�iZ��ϙ�f�Pɕ��dL�_�b��vr��i3��B���-7cM�;��o�̾鸥Z Y�yz�)qS�u ���k�<��j_L��R��?���>o�63���-��{{��B��� j5������ ��>��b�2�u�\X����n��x�J����% ��6�M�S��b�N.2�`��L�����f� D�
�}�KUF��i�� ,TW��I��*G����C5_GY"�"�(웒+�R�J�=q���g3��p��]���#˲RAAc���N��li�}����q�s�h�d�JV����ef��g�|����H�$��=/�% ��w���MHH�������M���n �~CQd$Y���m��^�O:xa�hsr����|%g
�b����$�pRQ��S��>���gq% ��5>��O��ܹw�� 9�� _z60 k�Z�`;����.�F�+
�J:�(�v�/eY��� �ϯ����[����J?AЗ�}�����&�%*�"66�� B��ܼ��W8N���u=�R?��p��g|�ŏ���_9�+�.��~�'
"сQ�ܺD�$� �� N��� ��xG�Q�+��vV�܀$N0l#����6],�""B2cܧ�`��o���bs��e>#t"�G��pwu��W_�{�z�k����>����QHy���)��cœ�
�Ǐ�Wr=gC� �y��!I��W���.���:���컲jf&d�W�Y_�B����'S�"1A ,�gx��7����e(�+���NEQ>�����iF>��"l ���,k����w��]JCE��.I�����0Tt��P���T�g7��QW �w|/�>���K���H5ww�/��U��c|���z}Y�(�MQ*�P#��;�v��PER���h��a2ü]�QL���$�˜����Ø�@1_��y�8���ǚ�������3M�w��*�>���$v:�t�BŲ
;�݀`Y�W�$j���nQ��҄���(I�Xa����c?8K����{3B3Ļ?ǖeS*��eIk�y=7�_r���B̨�)����hf�E���@����E�#3�N��%9��R��o�$q���~�� ���H.V92p�R��m����(zbr��n�%"��= �Ny�C���o� e 8�3˘i/�f!��|\,I�=�R���X�������^}�����rM��y֠-4��� ��W&<�8�$m�����n�����gμ�Ç3�ٟ�..��R��q����_K ON�g�K�!j��I�k�A.�ߋ�$���nTh1$�#j�����]��1�n��9��a&�=,�P7]&ms�IU��c/�#�8��Q0v�� ܴ�km��$ ��>������W�KO�:<��e����6�.{��*<�}�v����Ӭ���-���`���å)�ޚf��:�VR��*ec��3��8��u)��[���(
�U�"(!@���:��H���l�6�v����f*>�w�)Ȋ�m���~B���i��9��v�)��]��a�t����;N�@j�(2A�y�x�Mq���u�@¾@p�yTI��y�9SBBy�
<���0
� o?�$�h��`w�]JH�I��z8M��r�8�0,��y��cV�w�S�ǎ"K2���G��i��n��2;����eܶ��ʘ�_��v�&p� ڗ�����`MdUFӵt��Vl ���{c�y��:�, !�#f_�g�|lL�E1ug��v3�<��ݛ��� �<Z�ab?��iz�Ċ�M@�*m��Q �[��u���E��W�$1��$q�–����K��,��IZJ��~�=��[H���:Y�[�枞�� ׮��C����E��_��9�G��T���(�I"�P���]�A̍?�K�V…��S� ������@A��q�LN��Xb��,��8�O�O�R;p�̌~,
*N�l�;>WI� �q��\jF�_/H���,,//��?�T����8����N�#YK���a��m���d�q��|~%Iڢ�,�O& �8ܓe�$��+oq��>�臜:u�j�z ��2�m0|��O�>�ʕ/)������s�jY���Uv�)�
T����T�BEa
�v��I���;�я�V�FE���8���!'@5�E(2��� �b�*�. �iNU��s3P� e�����9K�X�L�K�r�4;+��. �8!}%���3>t��u(��4֖�q�cT]er�<e�1�4�`�C�S
e\�͡ѓ����!�h���fRN�َ˜]X�H�Ju�4���n
���L��WYVz`ɺ�"yIrJ4$y´�<� ^uә��7������a�������uZQ�8Ml���i���q��\��6�A�XfŘ��-!�uR�k[�I�j��A� �������(���I��Yڎ�r�q��4Z,^nй�py��>���F)Ȭ�o��)����ϫ���?�'E�� :7/^�ލ�(�Lm�J�V|���k��J�l����I�޴�A���WA��kDaD�[@����vi��(.�3>~t��L�a(��-�"�|�ݷ��Ap��ȑ�|�3�ŞF5�������_��.��`O������2��=���z��`����-
�^:��=x��m�����̀�e�=�W�h��!A Fp��� ���a�]�7�?���0ӹM�F���>��OgYz�ByҦ:Q�~U]Ű����$qҳ�۶k�G�άq�ۼy�[��52�7�2�z+XoI"4Z>��Q���c�-<bai�cG�s��k.�(���K��M����(�J; �-.>��l�iƁ����S�/��(�/.>%|�y����z������|م�Iq��˺��E�~c/�+�S��b��cx��w�x�
�.��cǎP��f�_ƾ�5!�u��1�<�˕+_R( `a(�酤y�ɨ7��*`��?�&m/f�~�����O�(��^�8����yڻ'�$�j�P~v|T]%��8F��-�8��r�.]�(��
�F��`R;V���e�u�_��N�:�P�0�9���i<�M\8�U�0&
c�:��O���"��Y�g�=�#�g����+�fb�(�'_cqu�յ%t�"���P*ef�G&>%T�{O�6*D������H$#��Q.�糛yM꺙����-���m��2ccS]wU|�#�m���0L|�M� ��`A� ӎ��/�3�N�},37?͜v�h�U�0���`'ȭpz�n���� ���k.�����N �۲�k[B���b��,��ڳ ��a����)������8U|�7.l��~��L�D�D�ͯ�y�Fm�&�n۬�F������uH�Ó(��X�c&I������8�M��+6F��� XB� �W:,>XB����ȮI�繸����IBJ|� ��]�8�Ap�'�y�;K�j_�3�`��a?�C���ٳo�>��
�HDQ��/�N �@N������`�>��0����=�0���=�~�P@Q4��V[Jn��O�yW���Oe9�w�\�[Jm��y�I���۔����H-}m����H6�_M�@>f�;����H/��cLԙ2��ߢX�䟧�j
���b��X 0M�Zm�r����S�^�P(qx�d��*�l6W�,{����^�eX[[��l�з��v�Y� �5q���H��6��Ǐ�;�.��c�/P��_EQ)�{_�Θ{�)�d������P�Th���{ϋ"x睯���_p��gLM�^��ʿ�~�=!^q��I�߿��_~A�4���dߪ�CPl�\aTQ� I��m��̓�f�r��W�И_�z�Lg�ű��Q讻�1�/���M�2��:�]v�?�RŨ��)�4:���c��C|���C�8H�v���*?��(��H�o���s�q��Y�A2�f�k����?����i�$da�
+k�h��O?�]���#
V�Zy�r�0�Y���P7zFQ��h}��Y\o%�∹��%�"q����i�<�K�X�ĉW��s!��i�wr$@�G�;�`I������]3�U�]����ڟA,Q.pw���'�N�[��*H�D�H�*�;��r�d �ާ�� f�C��Ф��A/��AS����ߛ$1�� �? �P�U�?�w8<~���g8�m�^�����9|r�� Ð��it�ȓ�0 P%GY!j���sX����&����=IBV22�FG�bE��H��W9�1�[g�%IB34� O���=�c���;�`UU1�k� s3 �(�� ����R�9��??�����16�` g�d���.��v E��}�7>gmm����Vߴ�,��:��^�LGC�i����^:�d�+��� ň~�:�'h]7y�� ���T*�{'�;���'Ծ/D/��R���n�����8�j�%m-^eF��诔�|{3�UTe��~����B/��%25�8H��'�����35~f��ia��l�^j& >�]dtd�ju@��V�( 1 ���� �q@��)�Y�B �ѝ�䍒,�8�ѣ; �244������4r�7I�i��X^��\�Q*U��:R�'A�^����*�MQ�����B�$�������is�M���0����ʏ~�n޼ȑ#/A�_v����ir��Y�޽������T��g � ���'$�3��"�"�����F�ri����BTC�տ�j�
��Og>Ogj(�B������M�`l�)�BBBZq����pw����4����w����#���F��N}K+sk�S*�L��: �ޛ�P-R�����<\�̕�>����-<d�6���G\~�C|ɡ�P� c֦��^��K�i�Ui�$9�p]�8�r��A�[$IL�)�9��p��k=��X
�6���y��@�"���c����#��S�~���`_�ck+� Oqw�"_�6��,��
Ok��$� ��(��z�A��(8M��<
#�cU�B7�#a����2�8����w��,gTU�\�`Z۫y��Zk�.�iF
�:t���9=����'����tg�ǝ �< �fb��g��q�<��!����Y�)�M�G~��/8�g��P��]�ۉ���ce+`��3�Ϣ<G#��0���i�$+μH�8m<�%����c�q������-VW9s�-J��X(���q�a���5�h�Iw=V�1��Y�(jϝg!��~W��;E��e����E�8J����O�F���u��0�(1���ksܙ�ėw~µ���6�^Ѩ��) �v�YȪ �1�U�'� �
�`�/��W��_�R���PQ��W�޶�0����Tl�|� �`b�#���nE.��� ����j�ٳ�8mdY�(���K\��!cc��J�D���
���ܹsH8t�� �N��Z͔�7(�f~+���Iu��}�B�F&I�S�$Ir.h�-s���x�կ��Gq���9D���e�� b���^����ܸq���q
h8�FV�j�[4�+�Jծ(Y� �K���/�5��=*���=�,_C��|�~���]u�B?$�B]��w(r��~�'�C܆�Q]4���B�)�(J��z��x����w�=M�8~�<�B�b��)�8���V�i�ו�M�<QĨ���\`�8��W)KȪĽ�E��wn\A� TGӎl�wc��>�f�s9j_�N��8fyyYVҤ�`*Ȏ����k�v�ӧ_���x�
�w�F��' �
G��V��Q$�|
���y2Ӌ�����V��1�v�U�]�Zޞ�UV�Q��)� �s��ӇTǫbv��ˆΜ��������3�Q�_��*��0�n�����2�Z���c���[!�ә�����l���!�j��$�m��B߸���O�@��U�6F��n���h�� �$Ih���r!�k�!~��,�]��w��$���j6��mkc�1diB���f`�u;��_n�,��>��*�b9�(�����3�z�[��z�#B :W�52
u?J��w�����}OE��/���h���v�R�����ӦX��(j.�&IR�ZYH<|z���.~�1Z8J�^���M��������
��Q���+6�_�h��#��N|���9:��$IWE�l6��]�]��t�X��Hfov��}�:�հ,{x˔�;�v���g?�mN�~�Ç��-��,A���ƍψ�W^y���=��)������e��4}ϙߝB�":(JoE� �FQD��[>'�� ��t5 ���vӴ��7�>���W?���#T�/g��2�o�u�7�x�˗?�֭� L�T��.�8�$N�(jW�KY������[��:c�x��6��<���%FN wM���R"a���l$Ytm2:gD$IB��qL�$ll�%I"NY�;� k[������wM7nb�n�!7�Κ<K�tUQ�\e� j.4��1������Q� W�9���g����'������d�yZ��k-ԗ��f�T1�vK ��}��qL����Μy3�q�w:�$�� �������)��-�`��kF�Bi���R) 2Pc5xJ\u��;w�dUtݦ���l}��Q���+�5B?�w|ʣe��\��U*c���� �c�y��w9<r��;;�mc�ٽ\��P(c�]� r��;�������{�}��.|��#�r����8��S� ar� �&�"z*�`F�]�\_t�MY�U�� W��&z�Q ��U]�ٷX�5�P��˚����!b|~�����E�^�\��:��:0� �'IL�:�� ���$�� ��,-��������k���ѷ�qF[�<��y�u%h��Z����t}�7����R��� ��T�5,��㴈�hW�.V�t`�]Y���s'h��G��[{Dtd��wl쪝ۍ�~�� ����{>��-� I$Q�wOf�t�ܹ蠪j��!
*��I�%�P.W�~n3vF��=7�(��~��e�m6W0M���cLM��k޾��$�-s��O(����wr��A�o��R����=�,�ƶVG���>��\ύ��f�,��=(��w�� �i��JU4M' ������ŋp��ɗI �7h��;��ŋr��-'�V�J�A�Q�b�6�v#���%%ܾw��黼�{�^��?�g��:��7&��ɔY5S�$V�m$��[,b���!^�#��PX)�~H�V� 8�����ט;%@�_�$ I���()ۃt�&�d���BH��Q�2p��g�3�=~�@e���?aV���_:F�p�P�{�2��2X��X(#�`e"Te�陪��E[� *����ny�ό�I/�����~ɒ��b��9z��'I��L/��i��:t7�Ң��F�\���2m�g��:|�C�'��~�k�Pߝ�)+)nl��0�o��~�<;�[8�ǯm`�L�U.��K��1�[��'k�xk��1V�$��,I��'��N���[�$/^�41- ô��V�����fI�8t�g'����{X�C��L_����="���!�v��IY:�yb�����]��X�S�KG��ɲ�3��w!��NP.��}�mS*�zz.3����B]��J��  +�~?;!��T�06v$ޟ��췘�$ Qnt�&Ĝ���-����%�B`p��r�Α���43���V�?�Y��#�Q�0�Ն(���n?��~jW�cۅTK��l�#� �sߠd׹{�*�h����=��,TS�o��~�ۜ���x��f���95�6�s���z���VK&*�8m��z��YVr�^�s��=:�n���-�j����վ��z�����'?�Z�w�Iv�2������UU��Zݶ8E���a� �f� �����q��o���7�#��u�}3��U��ڦ��X_���k��g�+���\�O��e�#0������/~��۷8�s'8�(�����i�4��i'x�9:h6W�r�C4�����6?�ٿ`v�~'��;]�л Y�s��m�LdE��t͢���Ea����6]�P��8�i=kӹ*s�z�P$�"�(���T-X�u��Ғ\���y���a�n7h�Ϙxk �h�[�Hf%�� ��>�[X�~�_�P����{� �`��(jQ�ѽ�Q��=���=�[I)�,S����"�u�V��l�'@c���~b��j�����W�A��R��ړ)^[Du�0��i���[@��V��]�l���a��q�qL�kq��j�! ]en�)-ks|oZ���(���p6��$Ip�PB�z1�5�$�k �%��N�3�G��_}�б!4k���>����������}�_����C�<�
�ݝX��6���k��t�͵� ��g��O�V%�P�A��W�i&8�>1��� )Ի�Z�)T]�r�mU�~���z�1���eh��(��}��lDb?@5��\}#+#c�4���jw�qb}żjF�|��2�~>�ۯ���i�z��$ ��M�nn*�Ʊ��(
7�'�?�N3�e��(���8�������*�q���P���Pm'��m�k,�~��c׻��(��}$D4��͋���
ʵ`�t��,�k
����~��]*�jϽ^gY��dK�};�G�Y��V���$V,1ǻ��C~;��J�OVP��{8N�$N���n�F��۱��E� @��|���C���׈��5a�%FC^��t z�\;�w���� �"c�d�;�=[�����|c㚆a@��L�:�-(�"x����y�?���㭷ޠXܟ@���>��`/%�?LAp�3�A���4�
���q���t�ۺ��2,--���-*��M���;|y�#�#&��ګ��7d�푐j��I��4G�ܚ$e~º���V�J�-���pr�\�3{��O�iҒ��0L:�QQ)�1�I&ר�l�3)����!�O���=�gm��=�[�H�De��ƒ�\}DI�hW�$� ����Ӻ�DBO-J��a\���ԶD��Y�n�q.��-�\]]dz�>�nR.�<��.����]��&���{��<TE���;��������y�꺑���&e�#�ߡT��kK��.��O��TK�TK�ܛ��7�@�H�+Y�� 8��-�'��~�k{�a�Uݚ����a���/?7��)$I�����_a�~�ԍE!����j�=�t
���l��]�����U<JԐ������Ud4[C3�K�r�z4o����U�z��)TM�D(�k�FGt�K��M�PB׻��.���u,w�Ya�8��P�Z���kk�]S��8�ڵOY^��Q�&�� �T� ���s;]��g�m����I��I.��8m���s�0 ��0MVc<���I���礪G�b����3�2�06��^ǝiUU�˷�mu}{?^Y�p�6w�|I��B�:�յ�N������`Y�i6W{R����3��a��M:!����g�b�6}�s�+K[FE� ���3|�;�R�댏ݳK��[��:mw�6�T���% \����/�z�C�M] î��Y�B\����,+i'�E�z${E�����ϡCǹp��-��X�$e�����:�{V�s)iQ#��XƲ�~�PU=oJm�T8h𛝣�� 7���0`mM��ݮs�+��ãG�����&_��{
�+����o4�����\��Q:<���y.�v�.��B�Vk5�?����x-,��ɩ�x��?����Vy�?y���c��t��)��ҍ'�F���� $$!�%!��uU���"�6�'�J�TŲ�ML��0, �D� 4MGUUJ��U��Xcٺ�r�C���ʕ�� 8��S��� 1+(m>��x�N���O>�έ+� ��; ��'�"�]�C\���w:-\סT�m[�_OJ�\dK�w��Z^��ѣ[�ɱcg��n"!��tZ�� ꡪ�i�j5�r�C=�����(�Zd�>��/���Ѯ��>AP8����qL��Ķ��S�����F�T:�*�GNR.
��Gs7�G�)�ҢD� �eE^W+�9P���x�6�%H��&p�4C#�,������E�2�����%*�z�3Z�j4Vv�b�VaX;ʐ�.,��c� �Od 8�Q
�X��Wuu_I��hb�r�)b��69:~~ߢF�:�S���qc$IB��D����-cf
��=��K�> �BΟw�Dj݃����M�`ie��7?A� ���2���f`W؜��C�Ӣ�n��4S[5�ʜ�.Q(���"�U��r�-Ӵ)��ߙ��e���]�4 躑 ���O���T|��(�����vJÞ'���un��Vk-����κnR(���{B��B�>���e�n������-w=���K���� ƿ>إ���hB+bM�H~��߽I��2�����5��;�+���w�>�;K�@B�������u��F84v�b���:d,���t#��%��ZJG�Vt/ �����9�Cn*�
�>Н��~"^�*��*�B������:�[DR�#x�Wdva�vӴ��0��]9�Ξ}���U�ſ����/}�/k���[��� 6·�~��W?�����jc�v�D��JgNj{&n��湄$Ӱ��"�n�z~��ŕ�x�߻@q��g8�D���w� E�6tC1����KHxY�s`-!ᬸ<�4���9<v*z���L գX��X\fn�1� ��PFA�U1э� �m0rz���:L\���?䣋�#�2w>c~f��ѳ���n�����.��+U�qڄa@�\��%��uݤ�\�7�풯��9?�M�P���׺ބ��<��y�xY ����Y\��׿���Xf���8�i12|���@!&�62=2SN��Q(*���IM��w����"� �$,���&V��Jo
�eMfez�h�^<�yP�EY�$U(��ͬq�_�����FkG�u��.R�����Ȳ�'�}�0(�� Npd�<ɪ�����vO��n}TC%p��J�HH;���'M��z-�����C?j_�̵Z�= [a�n7rFP7�H��E c{,I��g?F�eΟwτ1�=��F�~�G3���������_�x�#�����Eѝl�n7q�6q�"R�B)�@��k�����#yӽ���L PP�udY�׵�P���-R��LAn���g��9¾��Ȅ���6 �R����4��� X�ۍM�(2謭-�
�e���3�QyW�2rp3���8~��;�σ_o5`��m���N���_��g�.]]]dn�1Wo}��So�]�X��ޒ伸�=��}��t���u:m\�e||2Ջi�5s�]x�K��̋L�=���s�����%C-`yy�J��B�o���yNjse I}~����(�׎ӡV��=z��Z������;�����/����w��i���o�ƍ��~���(�j-��d��q��e�QJ3 �N�A�$�:;A�E�B���<]�#<�(�ƹ���&$�CB7D3���cI��w|dMF5v��&q�{�e� ���ɽ{,wf)G� �w��b�-)���I��
ӏ�!�x���<!!�#Ts��$)�q��)����TN��yʭO�1Ӻ����4� ���s��*4��r_�n��DRk�8m�(ܤF(I����ǏoS,V9~�Bϛc6C������ �ë7?�ƽ�y�o� C�L������i��KV�l��(�������7(5��y���22xx=q��� ����ї(���lJ��Nb�R�ځPgw�8���"o+p�m$�..��+�q��S:x!h�K~���3�������C'*2x*k�Z�g����FJ�������BI����CQ�(aiz���>�24p����V.�ʶ�r����G�t
����K|���u�3g��c&�$�I�M�V�T#dѸGg��׾�mp���Zj��b�
A_�u=퐋�> S�]�zzS���f�=�M�g�u]�0,,����o��?�Va��q�uB3�y�vQ�fP.ט�{B��B�6�麈���������#��<�?&:�B�\�@mw$I"Nb܆���]�|�J@g������sַ8}�T����t����'�8�1O�>�ҥ��رs�=�hl��g�~q��%�A!�t��}�%�}��A��G�� MP� v�;�xg���e�����y��kH��e^���,˄a$)+�M�$�v|�- :fq���P_*߲,15u�0T�'����|�%~��oM�x�� ܹs��W�P.S���}?"*�=W�Du�H�Q�����a�8�6��?���x���Б!�΍���:kN.`���D����^DDA��)���F�`��V�"x�rd�,���ד'��$��#'�vx�x@�h鹟��d w��jZ5UJ�%����e��2���dB�5���D�n����:� (�I��(4���q�5�}�����e���Y?�C�\�ر��R�� � �Y]]a~~���'����sw8�\P��X�9��aX"ɕ C���k� ��R�4 =�Y^���-v/��@{��]��-]��J�����^����a��]��������c�J���,��߃�Yd�N����h���h,cƦ$O���h1�= �X�� �w@���@�ϛ�/���l�;>�{mNN�q��,1n�����7�]#�/���B�2�f�����?��K�<�j��J�F�}/�w{L�j�b�-��v�M���^]7R+��� ��&I�H��)��S�����ؑa����{��,��n���{a0C�����HZ/�k��>��\�g��(��^�4 ��~�����L��vh�ZL��D;�Q>T�A�}���-ɂ#)Ҧ�"�}��{�f���+�p�VJ������m��{p���$ ���TV֩�͜5�����@ m�b�^�X ��$��D�����3^{�kLL�I�ZI�����_A~�����EJ�*�i�8�M����A�; r��|�{���^�;�����Ȍ�G�l���������K���%~.t]����<|x�k׮�i�|��4 }'VYU<��Z+�(bnq����?�L�P�3�>�kW7�=����$I��}a���G1��l�BK��iK,^Y������h��_(�(m���|�!���\���L�,��w{�d/���5f>XĤĉ�cF)������~���)*��@��w����Q(��GU��2� �*��s��Α#��zɉ��!�`I�]`p`�C�GQՃ��˒�(�����<I(�4֖x��*#C�1��xJXz�Źg4�gT��H��4:(����ȢC+<v�§�(]w��8a��
�GS�;�>����?�R�\�t ��0��XNm1^�/cF-�ԡ�m��e/��e�{�c+���wm� ���f���={����R�}R���8>�VO��ݮc6��qN0��������4�k����w��2��'s��Kd#�V��cEP������I�2�vy7S��?)�ƛE�X($I�cg|3T��Z'`����u:�t��{9��J�s]�Q�e� >2pAg]mY�Q�K4ڋ4�g�CɾE��"����)X%�8� �0g�IH8�.K?����_0:r�o�@�u�}7��q����vE�0��[Y>�q�+�yn^���]�^�GR2f�PQ�{�|������o|���S�j�{� Ea�
�;EǬ�-�oU]��n�z�[g1f�l��q���X�+�j)�$I���{�����T��?����K���%�&L��ԩ<yr�˗/R� 36v��n~�˸�Z#<t�������3�A��Gޙ�X�=��t�,m�@�N�Ă��*����;�����s��D{����_a�}��{�����s�2�}�#>���Xv��Yg՝í-R�ms��� o�V�峑���󠄜����F�dm��E�۟�DOl�[�I�uE�v z�~):�s�r�eh188���}�ݹ��k���ydEBׄjs�Tza *�"���4-<��; ��b�E��*�bm�$RUe>�Ŋ���S��=f�kzan� �rnw�āѧ��O�B�F��"��_=�()J�j#|��(ʛF'v^Ӑfs�R��®[�wa�)���X��<���c:�E*���$LI�0�F^ĊB�{� 8�����Ȃ
�r�ɨ~�b�r��U��ﺝ�����)}pߕY������K!U�d�($I"e�=4�Zd���B)���?�s�ޮI(��=%~�� ���jwI�$I9%R�k�yeA���ި��-���i�}]�dۥ�G޶���e{�k\'I"躦���4����F�ۃ{cd�7ߔd1�Q� w�h_�y��9~��}�� �(��>�N|/χ�7C�(ʋ�q�2��j�ẝT�i��w��9/ u�=�����M^{��LM�FU��r����N��q��.Q(�7<��U�_��hh8�ء�o_����=��&�RuSg�q��f� UU�BQ
�w�����|��/A��K�CX�űcGx��1׮]�Tdpp0�S�7�߶�t�-�?��[��ub\�͙�J�,wP!L'��=�"�bܦ�]�����%I��u������D�m �h�3����ej���^M��������� st�,k�,����e�f�tѬ��uUC�<V�r��n�w�%Et�?]��ۜ>�N*��}t:�������4vb����\$IF��m�����:A�Ŝ�a���n�J��̜���"^ʥR I�R`+�jh���TqE�3�Y11p���w��^ic��-�TVe$Y���uV5T1��奎Ø�kK �^�䡷Pq=��2�R�˗��[������Z\,�ҙ�YR,�D�m���M��s��TN�Nߒ�p�� vcG=�H$����*��Ӻ�3a�CB���KdZKKϐe�b�|b<B�hmm)���[�s4I����":�ږ���� ��]Ms�U�����LG=%���(���v?�$rof!֥��Y�*D�Z��ә푘_ܿH]��$I"�T�I�K�r��r�� �r�0@������g�Q7����)6�_���|"�ͥ&��7)ܙ����^�k�'I-7 ��`�n��Qǣ(�x(I�~�}�?�����v�3����趿£:Ib ��i����fr}�%����m�p�����������s}��,ľ��b�ߌ�Fc%-�lm�x���)=w����u�r�_��
�w�t���M���q����ļx ]��?���5��ַ^�C`����m�92���4_~y�B��Q �8�7�8����˲����w?��l$�aLih�L'� �N��n����J��k��Lh��=EW(��(0�*r=�/4y��C�����rU��ﲸ8�k�~���Q�ė)��o��BH�|��,�Xe ��8�~)�2�1��+w�xf��4�P}<��q��6����8Q�")� ss3LO��4-��z�����(I�FcM�җ����AeR�b���D��od^Ϣ
�.6� 8S��q-�y����[�e����Y�PVdt{�DXVe�C�����+�f
��z �1��d��G���fZU�R�4�LO�C�5*��th�qk束�G��Wɬ'DSڲ~�*A����HK��4��6�"?B3�-��A�~f��0&p!"UX���(��ҡژb�>��Urcd
��t�Lp?!I��GJ�<�Z�(�n;��R��}��'wQ�B��k"�2Q�tC E��}�V��AC�J�����)Ib��Y�8���0U����
��(��x��I"�����s�y�g�]��tL��I�7���o�6��TD��0l��ﱲ�@�PA��W�˒��2�w�4YZZ�e�aR�d z������t{��?��ƅ�o26p�v�����[ޗ��u;]Z�=��Ϯ�� Uk���`|��m��2��LM��i���+�����}a�]�8m.^� SS�9q������-�?!���}E��*�U�Q�,�э�Y>8*�F��@" �}�t�Gf�&r���A���g[:�mQ(�05uσ���[��c���75^�=�P(099�/,���0�4��aIV����>g��7��&��p�o���zMIN;�]&�I��u�m���"�Dr�j)]z���(v!aX��Z��gϦi,�2P'�H$TE�a8s�M&'��,�Ks�1��k�V���/p4���$�8���I�X��F�>�+��|��C#'�e���94�IJ�L���gyл(��O���O�Tapp]�:0R>W���
ˑ�,l[-ͺRa�����(�g���-y�7�\��ՋR�L�\k�ڡ�4�$I���L}�.2�Z����c�(!�Y� �2�mtu_I�?����ȱ�}�����ܼu�@�ZC�L�$F׭<�Ί ��N�����Vk-p1Ѵ����fk�����m�'�]�����&���쉍 8p��@p�$�^)�1J��_���<]dr� �$Ԑ�%��$X�T(�����'���*2>~4�NO�]����J�*�4[ ��m'���W��׾õ��ڲ� O���^8@tΒ���^�`ք��ӓ���E���v�u��;@J��� H ׅ}u��8N����Dɲ̓����IDAT�� ��LAp�!�P!�Q����Ig�e�V����{,�ϰps�ΊKq������H�Q�`XI�=
�KM���aޛ��ⷙ��IJ�ض�3�Nr�P��m��̮��t0�x&dfg�0���C�9w�]��ƩU����>���PU�8N�}'�7^td{Il�a�s�Ǐ��iٙ�G;� �E��yy�ٽ�y�T{��t��)�OI�i�f�� I�h�� �ء�.X8�_���A���R�����LM�eu��o��o��{�R,���26�K�E<���bq�����('�R���$��u�"�� �:��gO}e��c#��7��d������=�lu��G���Qt���e{���,z������]�C���e����g�B����T^31v�CJ�����H����퀥O:�ѿI,��� Hs6N����O?���ݦV�T��� �"� ��Xw K�`~�)����V��8�i��}����;��{s#�n'Q���{m?�$I��n��(�iz�T�6�$��K�4֔���zƱ��0�fWE� ��^H�$=�`�%�Y0����$�����Ϟ�19���_�6�;�<�Je æ�XA�����tr�����z�fsUU7u�2�,!���������4��G�V ��p���,�`� 8�$�g��������� �G�����9t�̅�U���I�PU�|�?��@p�$|�ŏ�4�ӧ_ߔ0f�M��Z�Y�G� �������� �m�lfݬ��!_\�1��b[�m���>�ڪ��p�Aе@�`_ ��畒����{�f�&++ y���{(ID!J�D��m�.���Ӕ�QF׵���N�MG�s6O�uH5U�4
H���$��'�i8K~g�;��@�6TS%
CV������ �|���+�9[�:S'P5+eI�f��~�]�oz�HH�|�gȒ��¯�����n�(�U��ܦ\�1P��� �����t�gQP��[�[l�1��!����e��F_�;D���/�j��b�����
<{��X� ����|���B��(9s��"���������v2�^V��E� �
K��c�e�'^�������o�F��?�����w�B��� ��p��%��!�܄�0HA���1�x�H���#�{�Ux�Y"�c������y�.D��H�$�S�H��x=�����+�2�e0f%�A:�!^a��C�N�8½W��|L����@iWQ$I���+���H���6�]��C_']����n�����.��s:#OQ$��a袚'I�2t�J��*I��0���=*�>�mep�M���8W��x������ �{&Xt+��f�mH�t�0H�D;�`Y�ЉYq��V�)V��$N��²�,v����+D��bwE$)�N=���ʏ"��{�?�U�=:[T�Ͽ�:������Ȳ~^�7ə�Y�e�0Q�I�D5I��-?���EF. �.\��k�v�뚂�� �0��+2���(��k�$ ~3$z`qt�YA�u�X̱�Gu4�;z�YTU%�A>��M3�#���@�ܹ��했nLH�]J�����W��iZ]���8�9�$�y��.�� ��U#bC��0������=��vG�͋�R���������S�i�[$IB���/�P�ŋ��8N;��� ����7 ѹ� ����DQ�He��<k�Xp�����7C?��6�7i_�(<=Dm�����q&�W9:���a�h��q]���������h������
S.1P�q8��ҭ��l�!��&��.�}õH����/��b������D�_����ׯ���$�b�N�DF1�<7�.�;����f`ۅ��OU�T:�{� �f�55(�lo��t7�(JJ�wд� ����:�����=�w�>�'?�>�ϟ�R��2�����(
LMfv�W�\�T�V� �FQ�m�Ǫ*�x�]��Š���~}
�f�� �"��b���j1+�w�M�P{E�ߩ�'��i2rb���"� ������Ì֎�h.3�<$t)�Q%�����x=ӠeE������pn�kDA�����\c����.Ǿ7��Ǐ���E7�Z�2 ��/�3A���)�2=}7�'�uc��"�Y�u'�j�!�
��=UMQD"�uo�Y��(�������(�<��tvZ�8HXj?�U��6ZEJ+��xA� �M�ѡ��g��0�k{B���� ��O���xc��\8�nO�g:++Kܼy UU���$�z�}D��yx����u6s(��� X�%I��h�=�8�3Ј#A}�M��>1�d EW]a϶��[zJB0Z��+ �������Pd�.�
��媜=�f���4�硸�մ8�������t����a�+���#���D�mC�+~�a���Lp�0�4�Uz��@'���e�Zy�J���}�)A �fws���(U�V�.� �C��M����":��JðH��0�C? {E�d,�4�m��$!���Y\|��Iw�I���8�Q�K�tV����#���O`Z��q�8�ITi�{! ��ϳz�A�@�83Ʉ�
���rb�M��'�ghp]7����ޝ!��7)��݋���w���"_��1���p
~�__�o1;�E�����S'ΧclI.V�i�.�Z�z�����y�`UUX[[��O� ]79s浟K5{�=�IGHv�׳�F�4l����=�K-�z�Bg�$,k���ﲱ�^��7�_A���f�iZ.&�SW]�8��_�󫯾Õ+7��?�ԩ�T����e/p�Q(8zt���\�r�Je�ju��k��&M`��m�9}�:Oh��g}����{�TF�B��pV̲ٓZ-@� ?N��]""!�n�"��i�.��o$�^jS�2h�\��:�Ē�ڙ➊��,��B�����������n"?,s|�5�$n����~��oN0��C'95���y6������J�<@�\GJ�n�0�}���I��,-=ò
LN����({�
��u����\$IFӌ<��Z��8�ҙ����0֕�3a��� ��4Xj�ЎVi/���$z�!ڴ�g�7���sJE�T}���MNjD�����g��=�:��?�f�s��'��a�<}��$�DI~�����ޕ�'���2l*�(37���( �Y��� 7��b,I���;>q�n�6�&�>G~�fi;j$I���oj�8�z�A��0 {�b�!�]��� 8��q���"��Oy��o� �6Σ�<e�yN�hE����j{U�O��0�soe��w��kڽt/Xt��Tɼ;�@��DU�����>(����[X.9�=�sޭ;�$ �����]ܵ� FE�(�����;������q$ \�e�����!��H�̳���0l��|��`T7�۝��>]&�_��p�C��~�W9z� �RE�Q5)��m����!�����:wR����/�������K��A����k[Y �+�N���)�~�WH�����\TU��V)���U꫋�K�2��,r����^��a�¬��M�Ð �R���b~��Z��W�k֝��y���U�_�eaY�=�?�� ��%~j�n����f!��g�W�H�{~~�[o�ϧ�^�ʕ�9vl�Zmw����5^�>¶mN�8ʣG��v�
��(���/r���Λ O�=�I�*����߿D�P�W��s�ESp.^���niə1���nw_U���ܾ[Z�^!!(.��F�J"Ŭ,��-�C���aI���H$��c��u���-�n9Hwj���A��R*UYYY�S����kEj�U�����:I�0ss��gwQt���$v��
k/���7��f��(J �ð���lv�lT^�w.F�U�n�$�;q������2@�IL+�0�a�������J��� ܿxfm�f�P� ���Qxr�����$��9|.dd�,2��+�9�=�~�=un3��TUcb�0��q���(���E�~C�e5Sk��(��A����MEf��4����{t�E<!!
CB?�,���!�"I����n��h[E &��ʻ�r$q���!?�pt\P�7��������,����je�\�{H-REedV�ʬʪ�ޞ��ޙ�!H`� �����~X��rA.99����v�t��z���tW�ȌȌ ��r�&����s�kf�f�f��%�Y��~�*{������A0K<�LvӄW���`�'�sp�y�� ���^H�O����d0|H��L&�|���C�>HHl{=ن�Ƹ�`�3(��e�L�������`�����$Q癒h�b+u�VKc$������d
������-��02}�(k�+(姑˖!$��k�+�=j@o�,�Ȱ��I�+�X?� {wG�wqb��ؽcj2�3��%b:�̋'���}~}�ff`� Px�����E����*|�O�Ek ��� X^Y@�8���](�K����/E�S5�X�0!���2�\9 M���?cB�N>�l�VBU5x���:s�q�_�,�ŭA��Xc ��9��!IbR�i&���??��L�W��_�$�{RZ���"��7�Ƨ�~��W�a�ޝ(K�?���x�G �0p��!ܾ}�/_B���,�`�����{A�
�-�ƍ�3X�؀Ss1������k�$�qLxF�(��s�U�B�5Ͳ*���+�����%�>YBӫACP�������3��H��nbXDa�檃�=��}�gd�w�����9w䫩ö�t�c̾:I�����w>��ŋ+�f �� S�cGq?��y5�wS�V��(������u�;�n��L[�W��n&��i[�N$���3���A0c�i�0�"4;�]��X�����א��C�l�q �R�������� �;>�����Oե*���8f|��}�# �;�N q �J%(��+W�@�L
ű��8��8͞�������⇿+��Ä�.�G�" ���]`/��>��5�@?�b@O�aĚ{M�:�π`�遁A5���v��e��S�(�A�ҥTUm`Eqb � ,*�Aok��֎8�i�43CӰ[��n��8���%�"����K�q!�p'��J����b��� #3�y��8��F��������j2��! C���>!}&��� .¨izR,q��E��]r���l�� �%||�G|��t��svG������?y�x�7P��74/0L-��{����(OCV��*N���P��.��T<���o�U\{|;�1]܋��G��P#��՛ga; ;��'gE��w�� Q'@7��V���˗�B�4����� |�u+�Q�^/�G�d��
~yл"�����\�b��Ͽ�T��O��͈�jσGk6�KG��f~��<������G}����cϞ x�x�������~�<�^��Ri6��#c��J��<Z��'�y�^Q���
�����s��}*�y3 &Y�|�GD#�1�x6B/D��s����A�8�G��~��W����ț�8��u��5� ���WQE)�A�r�'�Y�6��:x��u�wE�=���}��� 2B�|������5̞��j(�[��ӏq瓻PVs0,�(Ys���Aӵ$)�d�f�%4U,-=����^A XB�YK:�Pb5}� @�t�v=g� � (#����o���<fg���d�5���.4�B$y�˃S��(S���`n�ć��(����%H��o�s��p�vn_��F���H2�,.]������ -����N��;Y$�,]20m@)؍�� ���܋�UъwŇ��] �8D@����� �m�C
�C?���P4��g& n���'!�:�',�ڣ�{ӡ�olEC�h^�����Cx�3�HC��(��5�� �r-c �|isOTIn�nގ3C6K8I-��Q\�́�em�2KcH�D�j�:26��B�g%IRj���\\GJ Q�( �� ���!����E8N���z����9��������(�s�U8
Q"v������uH��|6�����ބ�����O�0)Ȏt�m�Adۮ'�XR�0�y.2�܈�D 0\�� -���n|u�P*M��,Hm����~��y(�޵�_R���+o25z�v7n\�(�x��<+��z����A��-kH,k@����_��b��M�%�Z�cd2�۠u^��x����b���%,��X�/N-w�FB�����na����k׾ƾ}�_С�x��i^y�%\��%�^��,�T��t� ����S�
�I>: �m�;���a�,�!%�F�H���,A5i���>€py�W���f��P��ߝa�в:�j�o`jj��4�5��uX�͓�8�Gq��H��k��f��=�U<@-�7��ե�Ͼ]7P�W�Z��ׯa�� �\,����gM������=yΊ���ع�`�l.O����ېe�v�-���p�:���X76���:���'��=�Īkk�|� ��
9-�TDرc^:�.��N<��Q� ��b+����&B/����� �r{��i�����X, �c���z2{�Q�1 �+`jj'�߿�ryzL:��Wv���3�8v�` �Mב���f��Q�����`Z=�lm���؀s��n� �loۮ��_ ����`Y�נ� �P��a3�S���Qh�0�5�5N�\q�$�wi��:n޼���G8r�[[�^fpm�Բ����D�Z��+�4h}E|!�@��ApK���A�5�vˢ��'����pZ����5/0�r�-%͚F���A��]7*rp��X�q ����,������p=K���Md���E3���V�qx�k��t������&k��Lf�}N0ĸr�Sȱ�C�O�ƭ��w�є�N�M�Ui�[5R�+���~�~��<������(
�������/�ޕ}D�%��z X�%�1�k;1Y� ~[�#'L'��/,<��5�����hok6kP��� ��l֑���
�n���UH��l6���9s��ǧq��8��0���!TU�ɓ��ܹ�p���ر��� *I��wqu�ST�Ǹ���q��|��.����al�,v�d ��B�Y� nu�C��E4k8��� hq��y��Q��DG����ʍ/д�Q~5C��&!�"<�# q��'�\��ɝ�ݻ����%:!��$�g_��C�� rf <�9/�r��󹂷�� v��Lg���o��G�={��V�Wp��5h��#GN��PW�T� � �vc`���@b`�A0�t���+���A0 ��ʿ�(
��PB�ϕ��tg~���dR������;��3�DQ�� ������S������F���T$C�t��ӨV����f�D�u�����W���=�٘`EQ�z���@�e����f�vc�����},�?�T�!*�Pk�^�#A>Q�j���n���쬝�ޝG*Jqa,�s;�
A&���@P��bϽ{װ��'O�M3��)��i�Ѩ!�+�$ K/��*CZ�E�~�Nݕ�#���`>#(��@��u�E9�?����߲��P���q��|�E>_���|����X\|@@�P�t_h4����� �����{�
�g�X\z�_��X�/��oB�P�(*&&f�t�݂{+�v#Uc��P&����{g��f��~�,��9�|���'��]—~M�Q.�蠥o��*%����:��8M4�u
����+�H�`�f=�E�~,�R�m/$t{���Y���l�������U��s ��u�\�{I ���>��*r�������F �l1����"C�ԩw��gg��W���C/,�6�xL�(
�x����4nܸ�����|�Ɨ:\�{O��!/,������.Q@Dpk.����򎰬�dV���V� ��%F�~���I���6dUFy����C<���ϰ&>Bv��l���w�ݚ�8�9���tm ;��3s �.���g�To�c�v�{�Qޗ^?UL��6ֱ���]������s�x�s����Ǿ���i�1T*+�w�:r���'���o�=. &5Q,N���mדn�xE68E��M�6Q9��ߦ��z*��(*|�M)|�����$��̎�A��3��ĀU���\H����X��
��$��k�k����aY��(���7/$�
�͡���@���{ �(h6kE���0���
c���>(�޼ ;�B�eH��>�\���
EW�g7�Q���]��x��>�@ � �b �8�����i��q�k�jkx��?�6����V>�t�J׶a���;�`���w�]L�5���u��ir>(�0��n��ch6��4c�䒺���•��|bI�,趖�r�-M3P*Mcy�1l��|��s_B���?�.`�d��&��x��ׯ �׮}����x��`zjg��#��^KEX[[����XD�c�ת�=G�����<&�;��&<ϡq�'����k� ��ۨkm�P%��nQ�F���Ǐ�BQT�J��9��4��m���I #1QQ���R��E>���m�\��k���d0Y��2�0�Bs�Z���+���"4�T(7� À,�y�q�1j�^{�;�t�
>��x��f��{��/�C�e������O{�`I�_:�/�%��^���8�G�q�%�|5��J QiF�TI �� �#@hu�9�S�г���]Ț<�%ͦ� �fWϝ�R�fߚ��މ� nbQ�bF�77����� yjF��8��Zē�M<���!����ڍu�2�Duy|�fa&���a~�q�*u���ű#�B.[D������2�ݻ�����W�(��󨋱�p�&��ɶwDJ�9�� 8N�ũm �ǿ�k�� ��hT��]PHEz��\��O��K�w�y�M�r�$BR$85gS�c�����!�wj`�s���֐���r�ɟ��ϰs�~h�pUmR�uE���A�ϛ55H���Ց������4��4�\�ʣeS
D}�n��p�Z�� ��E4�X������#ce0싣(j�JVod�3@��իg�hTq��PU-Q9�R�(�&��c(' �r"�'-��(2|�C�w�%IF�Q���v�#�5 l�Es�0 R��Bg�n  h-'��(�$�s�7���Q�A��7�?�f�����`Y���Ňh6];̌1<|t �?����(�-P�Y�4��ů�z{�^�!�>�n �#������U�&}�f����$��9}���c�_~�g(g����:VV��ޣk��܉��NH�4V�ˣ5�owy�,Y�� �j��l���������C�������8B���0�-a�'�h*�J��~]��DÐ''v������5�\�93�Ѩ�P(oK.D��
�<�]h' G.�2��}ZU5|�[o�ڵ������N}k ̈́��x��� �:���(�qw�<n����C���i���#H���a��� ��8�!�YD�p�n:���9���8��!M��l��?�U2���.�
� ��Ks%18�nN���@o���US�Y0IY�R�rk����Xk <����@�T���,�{�f�� �ݻ������}�Q��#�-BQZ�K���~ P������� z%�P�0�� ���v��FѢ�N��������*,+;VA�g���U���bq��}�*��._;��^�:�5J�rœ(A��Y��"`���%�}��`��Q�RYE.W�*�iv�<�����ݻ���T��Q$��ju�k'���m�����_EI܅�W��-�(�U?fKD�m��A����w)̅~��]���8�����,+��J��<�\�˗��q�8y������0��͡�'d�C�43���5�6�j���z�<�<ؔ��cǛҬ���~���;b�(Q�����("e�s�Ģi��f�2��!� ��q>�n�4sX\|�uP,Nv7�#|u�g(�#���tl�� n%@�މw��3�|�m���z�QT�q��N�m��j��Z�2�,� �n� \��)��=��=/�\�ID%�N����I�5� �(�ծ��o{!4�",,<@E�{�
�ũ�j� |���`ϞC8q��H�P�l��>�1�յD]���v��
���hTj>Y�x �Lql�)t�<�����m��(�P��#���#{$))*CH �V IJ���������S��G���6Ls�ş��x��!dYƩS���_��ׯ�T�E6[��ƃ��4{���]���Hȣ0����g��@(K���I��Jj���]v.B��3@"?BF���Bb�d L�OBVe�m;܆K]� �(�z�&u�e9�����=4o�_�����Џ���C<�l� �����x��k׿���#LO��O��ט��F�* ����������ёm�������� ��I=��vOFu݄�6{�<QajY\����"T��V�Tt��B�
GjV���zs5h3��=����eHW&q��v�8<�]A>_ڒ
(۽�~�c��t)<ρ���È��f5h��� E��)m�;!�^��X#q?� q̀��E��``WmȚ EW ���4��Ί ���A�co��gзP��޵qC0"��nN.W���7$R-��F�
U�������AU���C3L�$IR:W;8 �yQ����)��a F�fqoj[û��i �ɡμQ��r{+Y�;:���tn��͂�2�\�M�V�tLN�²�=�{c �z���7 (� �T\���� ^��;'"f1�(J���y�h�_ޱ�������Qi�ݱ�jtxC ���w�^�ef�e��=��+)��{' # ��$�����8M����_‘#'���\�16u�8�Q��v-��w_H���1��(�^��,<�ƨVח��C93�Rqj,�a�V[C�0� � ��X�˃��*���{a����� �C�^I�dϺn>����������~�}��5:~�ަ�e���k�x� �]��Ri��:nC:�@iO����!��Q =���*�}���jBc�I��^��K�C7�W��\o"p����c >C�l00�b1��M��>ܚ ����9\����L �.���dy�\c���R�Pr�]�5e��/���_<���)!�L��ɩYȲ���0���v����ڄ*�f� q�0U���v۬G��ӄ��ږ����Uw�dYA6[@��� ��;��ء��'n�εu{�>����zI�(�����+Ȇ��l��I��N�>1dU��oL��DI�ҍ%�?�`�f˧k�/fqHx����ŝ];���ϕdw�:����O177��MY�����O����]��Ď����*�]h���}ء�ʥ
�}y�{u,�_��gV��`��P2�n��� �I��A�R��m�ڨ]�pt�[P� &F?)H�)4b,cH,f�S��ठV[K�e�BGh4jI7����.����p��A�@ڃ:�u���w-�^���uy�Ynj�� ����}]Ѿ ���M�y�捠��@Ϗ�>��h�Z%�B��ldYN
���v���h3�P����B��I�hB��� q��͏nb�i��v+�v������K�R=XV6��w׋�_�i$3�bz��B
Ʋ�ly?��g� ��#e��� x��k���c׵;<��Zо��������q���8p��0xDQ��jh6ki^2j�]A&���}�gǒ��v��v�痬ȤDhL�eZ�i�Z
�-�0 P���X�HUש04�N�����E �~g����^_O�ʺ�u��ϟ@��_���+~��@׷?g�m�xCQ���˸z�<���K<���|3@��F��ȧ3F
�qC��T��VGFE��Y�.�fi��������C�R����}x��m m^�� x�D�;>|�~�k&���O�>$~��Qt�� ]I��<�n��q�Ͽ•���Q��+Y�_�A5T��r�{}
���)���`; h�]ӱ��Qqg��<���|{��!��H?`i�1�����7U���nj%�������lvp�|�9�I�u*� YV�(Z�I�0��A�3�|1�r�YKTq;'�#\8�)�uw~}zj^���wC���㫰�ldg2`1�]s�|�AT��3d� o��bO�,c�+ҭ"�{��3xG����η�cr���� ~y�N���~����;v��:�Hs���E�z_oۮC�-h�L��6�6��I� S�a�t{r/ap �&^��>vY'�,p��a�u@�!)Թ�E0I���o��*b�h.�`73xy��#��q�&�JZ�Eq`,���g�
��:��<��bq"MV�t��ӽ'�`����9%������b�� ��9�D�q�8f��F�o� H�=�����8v��줊��g�!��O8j�[*��x<�pT��t���{��6�=�Ob1y6���eH��ju�'}�٬# }�����ϛ���߿ۮ#�)����}�~���G_,�v��w����o�W�9=�8��8vڭ���- 8u{��D/���#G$�5�n\׆��Ia� e�5�u&{����8pj4ji#�c,-=�(ʉl����Oq�ķ�o߱�^?/8��������o:���DZG�w������9�������+����
/ ڀ*�݂��z��.�� �E�f:��a�/�ń���Y�j���uL�wB���������/��I�����⥗��3����1�Z ��R�x�oobA���U)c���|#� ������P�YdM�j�)}Z1�$r�*�%��$��_�EH������j��'�Rt%��2�=Mp7[lp��U�kv�ځ��%��J��:dSFu��;_�ƃ�7q��y,6�⋇� Д�p�ݼ͔qtϛ(�;Q�ѣ۰�,&&v t�9��@��=�� ����ܫ�u�mT���ȴ�'RU>��@0�Z�'}�iRC��t�����8��$��_��W�=�"3g�ڏ���s�?F튋կ�]�!��#�����\��
B�X���`=���o�p���̷qt�M�>K+����e� ��mtQ�Z];��At9ss����ð6_�{�z*̏3Z�\,+ AH
W��F�:-_(�
S�"g�����5 ����䱧t 9{έK�W���%�b}B�$K���$^���_W��C
#��K��r*˔tm�E�䓿�if�k�������:�?����δ��(j�4i�qL�dܯtӵ1S�E�Pb*�(!�"x�3����w�^g2�����U4�q����$9�2Ғ5�AUu�E����1�8�ې*��JJݍ����~�ٲSrv]��W����9���5S��Y:t�^c�a�C�
��M����M4�И-����ػ�~������\���Y�;�'n9���Xt 8��<�\�1#I�në�� ~5�H���]�a86ƌ 7o_���&'�; ���5��F�8���ۘ�?�;�@ކq3*�Kp]���Ft:��`!.fۍ-��㘊���e;�J�xQoTPm��ˋ��+Ǿ3�0YU���m�F �* ��Z0��0��ZiM��g������$��e<|�����?����/@0^�����W^��kw��g_��1Q�QJ)��=�=Uyԏ� ���^݃b(�U9Ţ�]��-���H�?e�>��? ��E�u\ADF�ø��q��Mg� �GML)��7�QL�d �iڄ�'_=���d�|ׁ�Qo�����������GaY�N�( �����ع��PB� �<3eH���EQ���^ybH6-e��0T*�0�l"��&����(
~"$2�^Aaֆ���� �42�5Y�����q��9<�j ��t��w_�/�����3s��a�v�{��~S�^���e�~q ��)������ī�)�E>;CϤɑ��+�a�Zm}� m�0 ����4�M�1I��0����u���fmè�`n�4-�3QZ^Ԥ�\*�`"�;
��[z���y'D�^�2(�
Q�1��#�m�՝�� ĕ��C�=Q�D�E࣏~�|�������U�P.NC�����t��3Jp��{*&��v�|V����~!���R�}߇m7`� ����*����g29(�UU��SR��~�if����g�w��JjY�tv�u�D%6cH���śZ���Y���p
��k'`�j- �D����Z��@@e8;+EQaYy<yr�����=��م]�1=����|��Y�7�o��}����(c �����M�9��#_���[����A�RE�a����cl �42���� Sz9�"��"
���D� ^0�\a0�N{��u����Q� ~���t�DQ��g��u��2L#3t��])zY�}����>'r��Z��iA�3�Á_Q*�5\[� xe�q����o�����^�~Na�&^>�\y����9c���L]77H�ȣ����q ����u�(�z!]�+��v���/�(F�)H4Y���U4�m̼4��l�sQcR�6-�aW{r����?̣�VÞ�q����F+���O���(���s��M�Ͻ�����5�u��;���F��ty�9hu�%��%����%II�`h�p���v2��vLt�3�� c屣0��;����W!j�?���G�+��;���`h&�� �>���qd�)��-Lw��MȒ �m� p &`�G�:P�4�A�5/~��rU�Mӟ�9p�!�j׮ �+� ]lk�霶*�]�JTdS� c� �=��XGn��#E��\�Ѹb_�Ց^)ao&�w ���&��*-s�[(Lb��0MsS�N~}Ͼ�-�AE���7�� ���{<x�S���w����4�hT���X=).�W/'Xz-\m���5b�/��;1�7b
r��|8�@'|4�u�j�PU-�J��q��"���{'-� �,�2��l��8M�9�US�cj���aa�>\�F�0=I�}���w[��ێ�ُ�b���A� �p�$)�Nf[��l��v��K��R�R�m���U�1��y����}\�x��;� {�_s ���sR{^���&���, 7S��BW�˃�/b|��_É�x��;����}�H������$Qa�{����!�[Vn葊n��<�c4� h��t������7?ǧ����:���`��|�ÿ�o�>��d2�?J��/�s ˲p��1<��g?: }JGv&�� `䆳Jh>�+J"Tcx��!X� k���ǣ�s�$a���_����a��0��7 I��!n��6�O��O*����G �ix��?����4yZXx��Ň(��077UU2��<��}��:$IN*����daP̻k��d��_�h��A0��zIG��0�|��ba��4ffv#k�����n �a���̢\��a�}��}�<D�ۘ Pb]�in}C6$I��8s旈���;G��&��M}�5|i6}k�|DZ��V�������~{����*�y����N�(f�{a��U���_�Mh�B�Yj� ����'������͢��YO��0]���EB�YXȋ�N���-9�޶��E!L3�̤tf�t�/����AT�9��J�<9�"S�����ڈ���8� �|{ #3��Q�N�C�����0 P�U�(
2��X:�����p�&��b��v���޳#ΟU�#͍r��A�J?���w�q�%6�<hD�Gxc�Dڬ��߽��|����СW6XWmw�u��i��[Q?����43[��s1>�w�k?}68���?�� A������k}�s��ps0
41>\�v�����r8q T����y��xO�4[\|#a ~=�ǕG���k��S��gBK�%'L�Vl����������/�s�l6�#�c��"N����*�Nm x�n�8�iFw��>;,k㩌 ���am�/D�xr�1n���ݯ�L=��]3c �w+����h�6` ��>�^�`���:U� I2���֭ (���gϡ-�_��Y~�̛2V�*_���?&0�"��-sF�\�YQԮ`6�"ČA�����@0u{�C3@�(�N�L�q�j2��n��ۺ?��d�oD9QZ ̭[��&��&G��3������Lf�dV��x�."� ���CQz?OI��K�1 Z����"��=x}�?���������;��)I�@�0�S�<g��
��|��,[�<�CLD9�6$INg;����,Q|�mH���E��gt�cT�7$%4c�����(J�R��?3�GFQQ�@N�<���|A ϕk�B��zr�FS�gp;� �–��< Ä�[XZz���e���&㛝/��9�AχX6���iXK8��o)����%���w�9# C��V������-��wc߾�c����yp�=�h��s�0��L��N%�^�~�!�?Lj��nb���#`w�򹉁���.���
�\p������A@N ���g>�@{��� ���5�����\�"� I�0ud
��������|�dsٱ��oz���@dsY�w�wq��/�ّ���b ��
�5= ���o��*��N
:�������˘=1���;DE�g4?�µ<��2f���
M��������`9@ I._���cvv,+��"��}�r�J���:^J�rY��# �603����t��Zm=�g��uY\z�KW?��4P*�t�h񄕄C��p�l����/��G^!���,<�IRi� � �M�i���0� �ܹ �LNNl���������p5�~��^A*�v���~���rny}9a
�'�����0t �('*��@�w��YQc�\{'xjj.��񬙾�"T��O�da�%0lȲ��'�|są�$I��4 ��%~�z���HU�� ���u�7�az ��9��T� (��!��y^�m�� �e\�z5U|e�!��Ɣ�$�p�4�� ؉c��.��Y*"�^���,gEQ��FY'%II��4����a����!��T·��:>��gػ�(�y-��N��[0�V��Z_��ɬ;�iE �栣(D�A̫Q���>��TH�~����ئ�Ä�әyL�v����B>�N�6hC���$v��v{?��O G�("tާ8������wl@���O�V��W(�w��I��'v��{�ſ�������c=���x�����r88���q���0�� �ЃD���"A�F�.�u7Ux~nXB?�n V1���W�1���
�y>��s����+7V�r����nXS&>���|,���������e�0F���>�fA�2�u�I�UKE)UY �`�@��{ u��@GQ��#U%�g�|��{_H�)J�5��hA�m�FqA�ULN�<��� ���䄃cQ�-��G�EA�L���/y���X����(�' �޽�8�>�y����!��0&�RO����(c��(�f:���&�~Zx��Tlw�sm�@�������L�(�)>�:��\|��Q�$~�a�-�3�TVEDQN�G���rL
݁KljMo�k?� 4W���|��i��[.�F�fk֜�&��m��8&�<��͟/y����]�ٲP�h6���l��TUM@�G��F_�4����q�%�K���8�t�����P�]^�!��`�n�Q����/���]8q⍤p�
���Q*��������ÿ��Nz�Z�=>2�=��s�s�|>��_:��Ƞ\�A97 M3�D��k��:�<�a��RÆ,K`Lh�+�d���8�@�>�6�]��1������H���ZWV>����Gs=��1�M�O����G��/>�+'^A�X�E��� � F.�á��X���3�����=h��3(�2��1��B5ԑԣG ީ��h %������[���~L� �+��5����…%4ϊ88�:��~�}8��#�'�p��04������]7099�̟�i�a؄�:��T��=����N�UMI�BI��E�TԦ�sJ73ֳ8��;������[�s��A�U��y�F M��|����TUK�yN��K��.�,��</Q�U���;��54�h���1�\.�1w�^CƘ������fe$�7.�Y�Y@� �yNf[�8��|�;��~ֽ@0�##����D�8ƕ+_�P�H��ܮ��i�"/�^����Q1��v[��i�$$%%�[=�c'VC!��R��-)һ�uH��+c��3� {��vN��uxmBBO~�- l��Tu��q���<�5�������1�E�f��~AI>�4I<�H�����
�m�]m�à���h�a�^��u��jڟ�Ē"��
:��}���`����M��?�)��)���[���9un�g�� �����F�g������i%IB.Wؖ=��6��~EQ�v����oz]Hơ�-sSJ+�j�_b\�~yp�c�ɲ��_Uն�R�`���9g=�}B�������=D�����2��5�Ԋt���q��U|��/q��1K��]�op���p�r9>p�o<�ُ�š�P�) �����_��y�a�� ��s�J?;���&��l3|�gg��x��?�\���EQD�i@�� �v��� ITp�rG���� '2?���.��<ţG��(
r�DQc�Q��!A��� c ���(=OL�A��L&��c�w����bM�P�;(��[_ca�!
�2��i4�:._? UW0=���穪��i)�:�����n��%ꋃu2�d!Btsn���'R[�|~rl�ǓZ�ȃq;�������>�Ԏͱ��q%a| ��e�N��i��QQ�ҥ/�>���::�$�����(��ݛ�w���u}���x7����"E�����l�@~����)՗��+I3����~.�#DQسS���5�Y��s�T�������@b#�;�a�bgP1�w�� ^L�<'�>�fTȲ�(R7����s��R������<g��w N�v�f���v�_������ }����_>j3L��Ͷ��n��R��������t��Jea�[�zwK�ľԔ�� g��n����2l�}�XZz�(�`F���Q5u��w�(��X1�Z궞�����,����/YV���O� E�b{lf E�-'kX�0$���K7p��+�����#gt�,f� ���D ��}�.�����C��T.�w=^�߀�f�8v�(\y�/?�
ٝ�7��Ga�� +2���B�%���0��(&�٧��;>~�������w�,i'(
#0����ro�z �,N�Ĉ�.>��+%�.�8����ѣ�(&�{�� ��-�" �Tٰ[�DV�7w3�h��q��)�e���o���q�bqrl�nu�y7��^��E��yaQ�����{����W�^[���߆���Lk����lR�Ʋ���˻L|f)����(3��O*iV�(i��t@�4�Ba2�Ryˢm��" ��t����XD`�%���:α ����;$�O]h�� �]����:N�|��g��i��n�tϢԾ�_pڪad��]�k� �(Is˟�M��R�,8� �TU�ee��f�m�����V/bO�8>W� ���\�����Y �+3��M�y�F*�E �֜���.R&'n�2~����IR���/(�{�J��M�,���txsu�g#��Be��<���`!�?�~��^��lK1R��6��w�֌��_DZ1!�$��l�ۂT+k�w�:ʥ遊eQ¶0 ��E�~V����|<Q���Y0�bee!G �������|��
@�ӄ$��f�m� ����d�hۍ�4�}�Pb���YVڬ�̱��ֵ�p�F�f �͌��EQ�C_K(��=:�#�:���1�cO��� h�����1�9��2����;�����q��M��=��Dyl��71^�ߐ�d2x��˸s����r�s�M���6U�U]� ��DN@>M�?x��ij�A�zw�V���/n�����vv�^ � ��pq��7q���É�w���/011�!�Wùa.s� �P,N`Ϟ�=��T� �nND�$�Q]7�y������P��Y����n<wJh&؅�6!�,+���s�<r �!!��9����7�Z]K�n�{�������;1��t획+�0L��iZ���d]%��,�V��P��ƻ�3�մ��� .h6���7�;x�[�$�W���F���T�y�<��5���lZ��$����ARqf)U���z�$�/禍N:�pk��(�;��Aq��`�ʦ
�\̆'��dI�
�:�B�k� ; �,�xB�^�|���tl;���Ԩ�Һ�S[N�WN�qQJ�'?d�ah6�a��R9)n���x�8y^nJ+�f�{�2�r� ؁i��z����Y`��⋳m� ��(���V���#��P����I�DH�ݼx����.,�
v\Cњ��g��a�H� ��+XZz�\��L&;�>���� �[-���<�a����p�M ��~M{��t����˝(H�0�-gE���nb���0�c�<H��K�`�Ta{��a�M>�ڮ�*�<��'�%X�$X%�k.��oFd���gb�8�� |��Ǹ{�.�w����/�oPX�������/���g�ߓGv��?�����+�2�5=H��\��#
#�A�׿x��
�9�GGa̎ʖ(���+VP���`�M|�� �*B�5���X���V 1����;�)���%Q [f��IH��f CWO9�����R��A��d
P�k�����̈́�[�t��OK�e�e����%���"�S��o���06��p[�����8��h��˲�z���׿�����G�\�:�㻿\|��N:��g��m[s��z�A�m7��o?OT��n]����y��'��*EM�iv@
�x���l�0��y/s_�aA���i���m��'E�nT;)��������^P�%\&Z�� �Z_�,)P�G]�8����mTj��#��XC.[h;vۮ�4�=����(��3��L��!r����ڻ7�<l.�j�[kOi�4"!!��L����MA0W��w��7��g�m �>WJE���Z�.Irb5ڱ��o�����3�\A������W��^���"+M�����ChM���%\��5�(����C� ����(t̲�B����� �����&dYN�o��D���Zr�3� �$�WVr���>o�1�j��43q���Ҟ+XVa�y�V�1*�~�ެ���i�kЦ��^T�Z{� ��G�/��>��C�����~wA� ��i��o��K�]ƅ��Q�W�U�X9�
ʲ*oI�ʭ� `=g�+�0F�Ь�5������B37�:�]�>��^��{�5���G����ꘙ� !��ϕ0?l�*+=� ��h��(w��4$��95�W�OW��$i��m��� m�y���YEIª�ꊼ�@ݼ�v��^�����86nN�% ����:���C�r%�r��0��vp0~EԖEcCJ��.J;�vL�B'�U���D{~�����;���#=A Z4�#{ �ku�Z�-�a�o� ڻ�0�^������
|�C&�� �x��Jz �p�-���cq��r1���2X���l�U<\��0�ݻ�P���s\��)�<��Jm ����Mϗ�4��A��h�u�������% R�W`��T�l���i*$eG��J���]����#�z ��&����@�Zt���E�����|o88��zzN4���� 4 %��b��*�Е�A�` �]O:z��drx�xo��{�2� �\�)��{ȘXZ�,amm W����8u�;=iϛ����X�� �lsIA-[�XV��'%q�-�r�u*��S��0��^�&��F2R�-y�w �7g3�֋i�f+�5��o����?�ꮫ(�0�-�(�p|/L�b;����フ�>�w������Q.����70t]�;�~�>�������b'M�o&���� c n݅fi��;��#�b�~�[ Z��o,@@m����.o�������dmm�L�w:q� i����X��;A��(R��5��؝�=�؈j)��Q5��ʦsX��8Q�N�������)�� ���6��p��Hl���b�%��5��S@>_���?C�4���,��p{*`D��8���2Lwm+A X���BJ����DX__���2N��`˟�[Q������ѻ\٘�p�Yƻ���jZ�7,I���(z5hᙙ�g�����RW��]�����kK��O�T��{�󨪏Q ��r7���ÕkXX�U����&J�iXB �f!fqBz�)GQ��6�b�����h�=+�g� ;��o)�'掓$!�t�0� 2���� #����0�޳��(�^���ݤ �|%IJNRx�:��T�Rq�8���64�ģ�7�T]�(`<b��h�&��@0\�z��śo��0|�~�l(PD�U�3s�ÿK�jB��Tc@Qz�_ԕ��٭̟��>����p�M>H��f��L&�
~ C���Ϳ�ϲĸ��f����S<2��;}���#����L1�TR$n��:!X�`̡�9���'��� �?�R�wK�� M�������/�ĥ3�P:P��Ń�%��#cD~�(@�`CD�di$.@@c�s}
���Tn ?�q A�˕���1l��KG�T誛��V����A0ў j��5��]�f��e��fh��Hg��x, �]aԲ6Z�p�锣>�0 Q�W?M�'�fmd��Y��Ǧ~ �l��4>��?azz' cs`�)���o{r�ա�֖`�ٱ�� RP� �j�j=c qL
���;��ٜv 0�j�׫�狩�Ԩ��� �Ѩ�s὎ɭѸN;͵_�R�t6��UѠ��3~q# ����|��縳~ѱ��oC= ��
��
q���I ��ui� ����D���E�.��9YP�������+��}U7���|]�`��t��[�t ��R}K���nj��Z������d��ye �4�� �@w��霻U�v��� ���ԯ�Y���?�5�."��ù�b��A�Ob�O|��2�Ͻ
�����p��i<�}����_g� �k��0tc(���}�#��������Q�ѨAU�M�o�y�Po�)��,����4}�>è���
r�bZ��e9�o�?���!� �;K��'�u��z�8N g��_X[]•��@��`N��;DQ��+�NՁj��9;�x�>�� \��%;t ���E� ����{���� \>s�� ��Q�����/��B�]+ ��,���� �x�@|�Ì~���(
p�&l�@Zt�1�&7$�d�E��f@������!��p28N3���S� �'��W%?�Np�����G� ��2d�Ş����:4�H�DQ�Zm�LnH*@��kvxL^���@���K�2���/��صkOQ ��q�Pa�)��-eu1��?��%�f �%���TۮuU�WpJ)_[��/Ws��(�,�W�Q�I����Z%ơ�sK�����>��F%�{6x'�f7� �E!V+�xZ��O����x��L�*[������Df���3��� ��Bfڂf� r~6L����W�<�?��S�|�5��}�X�q>�af_�O3�N�.�^X ���,+��ԶL�͞V:��1\�٦�L`|���(N
r.���}�F��TzoF��%��o��c-�
>�j�u蚎K�?���{x�����P�M���0Sڏ7����?�w��'�����ڳ M�����`�<�aM���^{�8����6SLޯ>�<��|�Է�U�W�i�Нs�+�j�t�j�h��4�� 7��Vla�V[C.W����ZA�w��v��F������{&��\ܬ_0Fෛ��0��?¹;������S-��+�2�a ��B��ŀ�<F�c�9�s����ߞū'^E���K�oC����(
���p�g���Y���h[���C���0@��8�G�f `W��-L�{����*nݺ�bLM� u<��6�5��ʦ��<q�*��1i���%�h�E��qH����n|ck4��\�4�����1��t�u؍�*�U
�n��'ɭ��w� �(B���l�0bR�,VظXj�$���m� ��`�����c���=��|)�����a�0��c�J�+ch4�0 ��� c�Pq�ҥ/����󇷵�ĕX��i�fA� lbj�2j���l�Ƹ0 W��Q��%��
�|&�T�{L��s��F�}�EQH-���}���O��K3�������h�~�^A ��+��$���J/h��c\�z�a�?�C�x��1�M�O����jʌ�u]�ޒ�up��rOxRi'������(NUvG ^�<�z� $TN+��oWQF�D4�uܼy��$������|~"��N��#:��NVU=���ׅ_ Ӂ,��}�� M%�хK���ѓ���×g~��O��?�_!��.<�*v��o( ��M-�z]�/�Z����xPw��8�Q��'��
��(A� 4����ς�~k�>�=?�;���U
=�E�RC���[DQ�z}����DJ��@thړj �pt�E!����Wo����ž�3�K���<��Q�n����m��@�8x�5F��oƕ;W�џ�7^?�\.7���&� �[��/p��%:
; #uL�`�o���|3
����m��  [jO���Pe w�\A�<����|]Dw&q�s��&2�܆���d�y�`�!����C�����A�м3��n2���Z���:�*�
�;���# 8���7֪TV:�R�E;�n� fp��B�FOH� Mӱw�� �1�"�i7�!���
�T<.��C�$(��F��� ���!t�H;X�'8 C\�xA�'3�۷�r��Z
�E��hi�+:o�L3�^Ti]�TVa��^�Rk3�i��Rz��(i2�X�8���ȃ�'�EI�.@î�£������9hY�����p�G����Q�Q�DX;UL)P_j�����?�t�L��#��s���f��o��uv���Z_�WR&�Vf y��^����DaZh�.�뤘���m8� ]7��r�R���#QMfƷoT"��;�Gl�z<�.0������l�(*�f�A�-x��׿�=|��?�e�R��n��^Xҽtf�,+�e��L��u�$K�.,�ju���'���s���\�8���E��g< �˄a�����KQ�t�t�
�ó�8v]���� �V Iʖ�cx��.�g������2J��DN��g;}~EIL�fn�EFen;���b`���<�.��O�??�;o��l&��K�[/�oI(����]|�3���L���'�_008u��nIEz�!�(F��2�or~��C�����"<�<��7k��#�4)[V�o׀�b��
��nK�FJ���>���3����q����]#�����0 �hT���VN%��0�5�vy*���1uS6�C�q�F��0 ��4��\��jX]}�&�-�jb 2���V���TUI��(j�׷��n=����������
׵���老����B#�+�������A%4���w|�1~L�lS�Ҷ��[o�':N�}6Q��q�A��TtK��/���=�~|_��9�=��d`fbO��[k���ʧȼ&��� B����%E���Z#:�&whT��!�C@CA�Q ���>�(�)�a�y�n3 U齎���\�7�����]�WRèψkK4U�>����a�"�Y.̵]���h�e�o_�ﻘ���8~o�p|����,����m�6��_�?6��F ��LT��Y]�zKKO099;Ժ1(k������,cy�)L3�~nǨTV������<�*)[���u~y1��I1ȵqf �6�/��A�V>�E�~A�wud��j��ng +���[}�����<��0˔�8դ�Ѻ���I���
�(�S%&a�&��>� ������x�;�!��y��� �[���w����^ą/."�;7:f��p�[�7&���J�x�ȳȊ��Z_��_���˨;U�%�L���&�v3��g2���n!� x�9�����|�٬��8�s��8nQ��o$�k�u�rškN��}Z\{mj�J̪�b���h��D7̫��W<�`��� �9�Ey�6���7�
ss�0 �M��x.��}u���euҿ�S�c' k �p���`�Y���;)�5������Á�(](�-���&�(�[���{u�n���t���� ���|q駸��3�r�����'O����Ӹ��Or�XD�-�i#\0e셦�pl�W.c�x�#�> eE~�� �$��v��ESQ���8���>5�a��ʯ���_���/� �(P2*+
D���r�&�0H���M� ў�ח����՘��=W��I�յŶ.� ����n6�h6ɒkrrKK���r��q�������է9��F�yu���R�o6���O���;099�f��nB�t�ڵh-�Q�8Q���C�`��/�_���K�w~���{ױcǞ����,�t��_Â���n�m����=j�[˯Z 8�¤�
����V�ˌ1T*���{�?P��#�T��@���&��RƍjЬ�Si›<�8�Q�W�zT�_������, �������jx�ͷp����������!?�����YDA�(�6$�D��G�šE��<���/�c��2̼�����2�����D����\�R@0�FF��uF���}�Na,�蓠��U�{G�r���T�Ų�#��x��,6қH�N6���s� ~�f��A����*����oz�RL�rB�n&� ����+dY���>�����]�"�?/f�"N�ϤĮE��8c,Mb��D���C&����R?b���8���
poa/-$��4rڡ��hc1$i��KTIr�"\� ƀ�4 ��y�
b���K��_�|��W�:���W�v ŐNTPz�@�h�FA��y���n09���WW?B���(���dEQ8EID�Ӝ���J)wh�4��$��>%!�F�HD����R�Oi��*�R��n=9�����T (d�E!���g�Tqez�sQ(�?ca赞(�M�j���h��� ��0y�:$��:l���J=�z�%[.W�Ç7��� X�T�j���_�f�\8Xv�s��BrT��_�����?]�X\��wQo��X(o�~����U�������o�kqmA X��4�����aY9躉��C���1e0����@� ^�j���
�w�Y�;.���y��"��:�xƑ��/��5�� ��
�bC�D����.� ��Bn2�­'\rw z!7�b(���������;��?���/�oa躎S'O�Ɨ7q�s��fP�)���7��~>Q�<�s�� a���������7���V*��?������ ����-��h���)er����(�����*��76��ꦣ��*�r�S�1��W@���j�1�@p��VאˍgC���5\[[L)`�+Y������]������v�\�~N�$�Y[?��R=%OZ�7�_5@�L&�&L�<xp �|�wJ��V��Ք�U�q�p��� ԰A,�����բeYI�`�ķWjF�{u�*�y�q�Ы{'H�۲V[�Åk��?��oOœ�Ѭ�0�^��-d��0�5�E ��@�D�QY��v́�j���u�W>���(�)@�4 2� ����"#�b��Z*�w��;h Z��_�pk.��&��K�{,@@�(�)c�h �y�C��4��(�;
*���u3�(Q�b��df[M�) �+*@6K`s�}�E����|��Ǟ\Ԅ�m& ��D��:
� xu��Y5\�[�l5������6q! �S$$ID���_��/����ȑ�R�tI��˖P,N�w]���P(m;:�[��:�חQ(����ٲ�q�wK�v�n�xe�$q��|��s��Ԟ��^��=`���yT�T����` ��T���>� ~;�|R�� �*#�Cx ,f4#��~%�(Բ,c�@�������-~���ց���4 ��k/��;���O��5k�4S30NAh(�N�c��,b+A�2��`�b�%GJo�o� ̟@�8 EQSo?�s�M��I�Ա(�@� ��W!o� 1�h�3X��$�:�n�¹���6/b�#����njf����B��� �Ǿ����F�A �z����<Z 099������$����'l���UE�Ek6�?-��];��s�Dc���|��5���S�� ˲�(
�8ʹ��Ū6 ���y.,+3��h���<;�o�� c ��*L3���nDI7��U�y�v�,�݋(ϗ!+
����f��5�Y�Der$������ X��Y��j?�S^���!���n�Χq�yQk/�+�b�:��Jb��1��IZ��mVтj*�4 ��@����<\ƥ�"]�M��G����z�$w�l�-��=S�n� ��Q���*Bs�j�3v�Z��9� ���:�$�W.:[�����y�s�-`h4������ïabb�������m@>W����g�ց� K+��t�>I��f�撫�4Z�F�68�m��$ ��=|+���p^4�VF�F��xX\�$��*��|k�ud��� Br]��\t<J�1\�w�5��)#���D�X��I��Q
���e����]�e��2<�'�[� ~��ò,�8�^}���| s�Di�` �kz�5y ���GB{ ����"$Bă ��<8�D����X���{O��k�M7w�A6���Q�`Y������g^9�*C��z�f�� ���Ap�Q��0���o��E��
���a.s!���*8�s��w��֘����
��`����V�qh6��h��Ri
��$Ν�5 #�b��m �f��8�`P���@u�͂l&h�S�$ x��!dY�iv.|n��aZ3���-� ��&���瞵4Z������\z&�a��s���ioŋtd��t�^QoT���_bi�fOMCR$� [( K�D��BVZV�qS��g� Q�[��BV;E���@G>Y��d����(Fư�d5�1n�����-m������tU� ��!�b A4�s;wQ�V[��@ @k������q���)�k)�f����1��WI>�cx��F���
�%Ы��˙���0HD�h}m�a�v=À��粽�P<��~����o`߾�P-U�E����̔�2��hQ*�|y��X�<���#]A /�s�pƢd�h�yͳ�����4���\����(�'G>>�ps/� �����̅4�������ؙ\� ^Q��DL�2�����"�U~ ��d��v�!���xq�kz�+d�Yچ1EY�Q�_�������O���ր���<2� �:�'7����ga�(�(#F���ܚ �R���ݎ�ۇ��O�!b��
���n��6V�B������O�1L3 ���l��M�0L0���
�0S'x��`�sẍdVӀ��H��a�9���?%5�O�N49�$�f�sa� h��-�@��\G.WH(b���ЃQ���`����z��
���� �1�Ǐ�@呋Q�YM��A@>��a����=(��L&�- ��q� e���f��)H�q����&C">��oQ(L$#�%
�]a����/�g�s�`X�}�}h���� �Eb�(l��e�ײeui��d�~r�͍�%�7o��-�c�&�����kc����ѡ�*� �#~h!gM �ZCqy�3F�������u�����$�j�|�C�~V��T3B�xMN�Ii��!�""�0�U���'ܹ��[5Lv��E,�N�:)gw��t��c��9�@k�m7�8v��i&t�C�W�m~�H�)�s��S���u������ρ|��޽�f�ˢ9S�;�Fb��y�g��7��;Ns�b� �._��w�޽G�(�Ⱦ��4)Dq`�̡��namm�]C&��diG��EQjӤ�F�6 ��u�,���B$I�ee���J�����������[�MD��h��:$IN<��<�l4j����֍�;��VG<��{�����w�\���˰+�Ne�-�EQ�E�X8��M|�E��z�eY��� ��:����/��{�!��l�y�3^�߁�f�8< �p��0� �g{�`3xMzf�Q#F:\�k&Y�����X�ٔq�;E���?�;���Țe4�5��I��귞�N��V��z� -��d��s�& ���^�E�0�H���j躉0 :fv��k��t��l6l��X��$%B�
�׫x��.����λ���=���Տe�J\�nn*Z�l���4bz����1�P(BU��^e� S��A����o�,�c �Xim��TL�O��\�v����Ɓ��ȩ�]Kgu�{)@I�&�XVvK����8��DQF�Q�aX}�%퉘繩�s��n���]�����v���5!�"�3$��N�!�"U�
P �:��Xt���cT�0� (ε�<��tf�;�mR�m��E~�� ��J�| "ͯ�uf������m/
�N� �0 dY�������2�u{v�G�tO=σ�==�yH��FQ�V i�b��u��8��}/�Qo ��t.�l������n�ӧ�����<�,�lC�{�����pŽ�0#���"�hv�4-��}�î�[ 麅(�5��/d�Pd ��4X���>v�O0��JJeo���;�$��*��39#�F��K��\��rif伒�T�˧��8g��(�ee�iFb�uj2�U�ki��.���sGzNq��W����xB�� ���'7@�P4ZF��$�C��.p���0*O�ƪ������Ox����-�^�ߑ��r8�� n/�1zҡ�0B��L��J�� ��[ Z����+X����ts'� �#b_�U�,�z��Ι�Ie� ���i{A0O���Եk�5�|z���k�&~��[XH�����C����!�8�1��� %F�?��P�D�y4Q*��a����٬'���3Q����I�M�0�PTh�|����2�,E���"c0M}l��v���3{��;�Á`ƨ�oY9|���a�99r�>��Z�(EQ�:lbj�A��f2Cjni6��g��!,�YGG�f �����~�=,%�
�뺸�p��w��흰� �a A��S�@�fij�I�Xk���G�T���f����1uqUC� �PGW��M�� ��L����:�U�h?���i.�S�I��#���l�K�l7][Dk/G�,�J���(���v��hK�����V[G�`,J�5�dQ4��&�"��Ň�L��i�{��Q�����HL(lK��\,,<@>_B����Kk��t�[vwA�mi��� m �� <�A���ria�Ѩ��˵����u3��A�����oy���T6���� ���_ץYoà�E����`�\�dv�[��v�ܭ�ױ�U@�>N @a&}�u���=;��o����0���"�h\E����ԯ�%7H�Y�1���=�/����'_G>?��8���\��;6�3�z!�Б��&D/%hV�b��*�3y���!����xp�.$���}G��jOq+ڤ|���77��e �����0�|R��B� �ÑAp�����!��ϕ@0S2m#HQZӴPJ�ǣ��h�LU�����3��!���3���JJ��]W26}N<)z�qL�*��*b��i�mqc�u�l����$�x���pۖ�Pxu��6K2 |z�/U5p�ěPUu[�8���Z q�$N$��860�ճ�8N;CQn*�Ժ�Rj���� ���pc�sL|��<_��S��Xm��[=��fs�G�PY�F� H���S�i��� {MZF� �c��"AQ˕0F�%��Q �����D-��T�XN ��C�4��
�}��IDAT%+�Yo�~���ԁ�i��+42�u�� y��D i\�~��0$i� ��
�Ȥ`}��D�"��B�T,.>J=�����g�ϳ����$a��X-��חp��iLM��i��-�����ݢ�����I��kc���D4ud�%�v��� �^�;�a&�惁�^A��f�&`nXW������/�C�L �|�+Z�Y�� �"���eYAG�<��'�f� � dH*�R��B{H?Q>kb��2s(����m��uX�:u|4�� xA��|VT���0Z�#?B� `�{q��m|�W��㯠P(����/��X��9�?���h&ؚ�Pz�"�wH�SV��&��ɳJ���:��,#S� ?�.����a�i�>X�ٜı#�����C�K+���n�=�]� �� ��(;Q����Ñ@0%pNB�5zllBކ��vJ��nO8�sDz<��� ~������j�<�7�Z&~�m�A�9m��@�z�s��&�b��0tض�����1��[��
�mC��1f��Z]���_C����P��ؓ��bSd�$�02��8Ģw�1�|_���&�6f���0��� n�E�4�'h��ʯ1�V>���X�`��Q!�V���f�e�N�8�����C5[����(���8**�Ϗ������b���kGp[���nb�� �Q����`V?�\��2:��u;}�|����)��y2uz tP'�I�$h����L&;�.�f��Z�<�D�j3_S� ��tYV�j�k<�=��TY~�X]]��K_ �+b��cC��,Kɾ��a::Թ��:}��Ud�Ł�h�U���r�`Y���2Y��W�"��DM�;��������z������i ds�(L�[�\Eq���:���9[�f��؜�z���8;��ZY8Nׯ AQ����נ��'�VG��o烣�_��t�`K����؇KW.��/.����(��_�t�x�#������xt�1�~�%2s
3y���z0n�:�Y�*y -:��ts �&#?��$K�ܯ���o���
�����a�>4�g���AH��#Z�K?���x���K�dr#�������\��Ϛ���F��97�Rt۸� ������e�M�/U��� =�A�5�b�23����h���>jA�̛һc�Vb�1�{bb��� �\.� ����UH�����_�X\|�m��׿7v��A��/tH\O�E� ��$�gq���>�fO3�|:�=S�0�T���$�ɚ�a�����yL��n����f�$��u���ܖH34d&-�vf�"b�� �1�nI��Q�gp��|�(��6�(��i�."?�g{�ےN���GJ��� ��}E�� j� ��H�����h�.|�M:�
L3�������Kί�����$9����0M�i 5����������Qn���("�כ��~��Bx���>��g���V:�++ �v�K�rE�<��Hk����S����|,,>�Dy�PJ>�(
,k8�BnU�-���R��� $�A#}?�Զ��v��둒�� ��E�iZ=h�HȠN��4��#N�I@�V��0�~˼лs�~<uo�: A�l}�}��w��E��" �N�8�����4n���C�P*�>���w4��,�9�{�����_œ6a�LDA�Jj��$��t�c����
�q�?q#7��j�P3*.��:*���r����;'a���ob� �o�� �)���j7������Lg��/��Ӕ�&n�`���v6�x88�6��W��.��� ����=ؽ�4=� ���ʩ�"��F�5 �u��ɻO< ��'Ӵ�� b (�'��u�$IE�\:!��b��P � <�8q��7��������r����%��D�?�(���!��͓T�|�}�e�6GQ�0���]���Qba�>���<QD�4Ck�ȕ�)�,b]UI"/�(h�cA ?�� :g~�����K�Y�S%�ȧ���8���O�Sp�ë'�ٌY��@] �,��]5������mf_�Z4!��$����|����8������~��U�(��Av �
[���wc���?�q�yd�E����l��~`q�.^���E63謠�yF��]Yy�7��if����"�F�'4��@0�lJU�� ��a��c(�./lI�44�M� @U�\�m�G��u�qܿ�[cez�=�}�h�F������a���[�m^('������"����9qf�;����4EQ:^!t]����?�~�}Z���h���� �I�c���8�q�����g���ٻؿ{?��-��8���L&������n����1a�(p�]��0�jMH4=3��V Μ� �Xr F�8�S�sD�R� }�wj��\k"�H�+;�����y�k���ūK����y{$C@\`�e ��7 EDGLQd�1C�Y밇y�<J��� Q���<��~��TJD����i��tދ�G�.ш�%v���v~� ] 󤡽�����;�z>h7�f[I��w�-+;V�f�EQ���砪
��|�9e�lX������3�D ���I�����'t��bQ ]�z
��yHƐ�TJ��(BS6N^Ľ�$[VnpE1i-�g.\�+�@�U�8���{�0rF�.��I-P��f���(��D֒�O���@IZ��,d)Ů����i�WS��]qC������J���� �AM[Vd@$�o�`�b*� ͵&�/�A��qp�d�w� �1 ��=�G][�e�� S:|�0��j���n2�+$ �yZ������~���eQ$3�ԝj +�}������.�<�]s1Q�h��.��*�<cXYy��7/�0,�:����������p����w<�� cTE�3l�6u��@����F��o�ة �$��ڸEX�=��09� �0)����nj٢=��_����)t�b�mY&��6��'��o8��8��A�]Fyk
١"p�~ۃw�eEƱ��G}�_����������eYx���q�������`� (:���#��0S�BFi"��{P�� ������?a�:vD]��o�;�qD4h��B�h�Ld:�ƚ� 4��X���{�܇n�()�҅3X���W�g�&��0��ӡ������B��|�h�^BY��?�1���Y��AH���nl$�@sw��7n�J:��o�8[VG-�Q�N2;��ʃ�Y����r�~A��67xzv�(
���XV6Q���1�X,CUu\�~��s�O`�4�K��C?�����5{���*,����S�n��]YR�� �D�]Ljc@H�p�s��(
aY��&��A@�{�m����0�h�Xx�w����I���1�+I@����(���]�^���3�t��95�h��:�^ӣn�&�M�6��ˆ��%��kx0 fǞ�#pv�R�c�5��>���-y�|�K�.4�L� ��+RԦ���l\��;Yι�H�aX�d�G��t?�dv0�u��ܻ��׿���w����ۄ,i =��<�O ��VW�R{&���o�u�qm��?�l� �:�0��Y�v `��kۮ����$ o�����/}���Ňx��.��$&�h>vCb��_���aH=�,�գ��.q�m7�90�Fi��,|_��Fj����8�D�m�&�,+`,Fx=�:g~�<4MOm��^�>c;�/���8�Ԫ����w\�J�&rGt(���]�G��&AշW��b��׸�>�wͣ\��A� �{�i����ąO/�♋�88��}�L ���M�I�S�\+��,�Ԇ^�����'8Hf1�D�$�5��B�h�,-��h�4���Sd'�����3 ��PŭOn��ͧX���qłS��3K8��T2+5xp���Ɗ���}�|v��%NQ�5|XV��M����+��Թ%�k��w�E���:�ƍ�S�G�<8� �ρ'�N*�[M t�HAn{'��^FQ�̎� �u崃�-Ah�#�2A$���l�c@>_��� �+ 4K˅:TU�gc���\���[�.�ɓ;x��w��� �Rj�0U.��=6y�, }0��,�Y��6 k &�E����8��J��5�~t���xT����(�#�# `����za
vE�CR�59]��<����4K������B*���H�HȊ1FvH~���FA�A���"u,�Q�o��uR>��EP0G��6��;�&�7n��=GQ��(-Fr�.?�뺈�0Q���0̡���������)$�U�U�7�K��¿ō�/p{�+��h� �ԙ�!�t�u�PU#��l��x�4�z���q�� ms�)���C��Je �\���%���M`��#i���OH��B���b`ldk�˲<2��_PwVN(���h��(
���.���|6xw��N��� ��l���U׻�on�����I�\�*x5hh��(|��gp�`�����i�Z�r��/���8¹���U��3(�f1Di8c����J4F��SC"����>�ݳwq`��o|&��= ]���[���_�k__C�Pf�HE%DQ$�d�J�(���&�=j��f��4h��������lM��B1(��*rJ��A9f1Cc����г:f_�m)��E���,)p�(��H���9��L��b��+Ѝ�U�tra�AA� ��,�D��X1� ƶ�c�*5���@�F'�.��9�X�����D��;�^�v#���[��E:�m7�Nsh4�0 k��X�-:4��5O���u1�>�i��(����@�v-�;���m;� ��:��"j��d��?��Bf��o��Wʽw��>��S���n��@�1�`��O������o645�=�͊iZP5���DC^�$���W-Q��t�^d<^��_]�sܨ���#��ݘ;���"c���� �)-�������1C:^ÝܺKX���tR���D\*Q������Z*��4��J����pk.$UJ�8I���M��W���1�lvx�W��)n_��d�,l�0���.*����ڋZ�1��u4�<���� �������S���,�]1��n���M4�
��$T�uOۃ1��cr����z��x��>DQD�<���~v��!�[GY��l�L����,�ۼ�l�m�a� d29�����
Y�{�/�,�0����}������l����_��X���rƏ�]�.-�q�f=)���r.ڷ�뤵���) ö�[f���4-���d'�~�NX=9�qR�NԶWV?B�MZN��O��ڀY0�1��"
�E#�1s�Sn!����G���đ���Qu���(4M����]|��3�|�2�K0 �Ѩڃӕ7�I�7l����\Ǔ+O���c�9�57A��Y0v�q䇇��]�,���� ���,Q��|R�<�g�Y�4�g�! 9)e�(tm�c�i7�� h����u]���PU���l��4���
oCQ����M��K��v��xNh��th����(
�YRL���IA�YK�!���!2�BOV���0~���d6��� ]�:r�� *|�k׾B���?��E�a �$�v�=�:%ﬣ�ʶ�o�-�mH�{5L��U%;YV���:��z:7��,�>,�
<φ��(d&1[��'��F��?� �"u ���6���.-��]`.~ig� V�.�����v�eUF�G�T�$��}���h<&��GqD�\�@
�mbQ�©8T��Z�>Q"q�(�`Mx��_?�l� r�" c8a�vp�8 ��k�cY�a�XV.Q,��/�����_��=�0 zZ������_]�\���!���� �P���b��$�/�X���ً�HEh�I�H8,Q-� )���<;]+�<��(���G6[���C��L���z�*.�|���b6{+?���y.T����s�ݻQ155�\m��CQ�d_kvPk�8���W!I���m??��0��hTǤ;����!�y���������(�&z�3� n6k�F��\�86�Eђ�� e!�9���յD�lx'�͂Ԟ[�WE��-���/�w�1H��F�
��k��/�E�w%��/}�]��ܡœ�|��~�c���Yi�����gq�W�p�ȉo�'��= UU������}�+g�� �����on*��v@�D0Мسv<�κ Q��
e&�õ+���Wؽ� Q�� G�z�"iX�2%C!��Z:KC�`����hT�l��lP�� �*��
�y��<���c���ٞ����f �����<Y����\���� &$4x��:�8F�YKf�ߘ�O{�5�����/�s�|�pw�n}���3�(���_�V�����q�J�4�@6��ad����T��n&�ԖJkg��u$Mî�4;J�?���˩U��3�:���;WE ~� P=n^��K�mN�^Qa��)�W����FX��.�8AJ�|��d��"Ҽor�Ч1E#E��%/b=K�R,�C���|ׇ��a̖ Wz�"g�G`h�7��ةC�81��huE��v#��&��e���}�c�7*��:x9���.���2>��Z��j���)��De����:y^�o�q��5TV�C7e �(����,+�hI'SJ ��f�����\�����[�d^�P1��\�0�!}}��R�Q�*��C���s�>B6[��#/���;l�6� �8�(B���'Kw`ZY����y= T*�(&�������,��f�(�`��ZC� P(L�}DFU5���ju�L�>�\��-,��fLn��E�����S�;�Q M3Q�����_B>ل�W�������[LH��d�6�R#��{�M�_��,���ùK�p�?��ɗO"��=��^���P|�{�짟���+((�,=,@@s�����Nf��莴�!)yH��A�f��qbGxG~x3ߚ���2��O��~�w��&zuh�^%1��A0��k6뉢gf����Zm-�ZoDr�(]7aY�TH�h���q�R�� ���h�(�P��#�/#�����c,��f��$�szv�#�{�M�����߈�g��u ;v��O�gؽ�І�c�uH�M��Zdy6$ �x� 4�5�����"W���eYM�i��fl��F�y.� �m��R��̑}��T� �Tu���a#<DQ�ry:M�}�E�YK=H9�S��.Q�LCe}7���t��ŽB
dy���T��\� ��t]�5�C�/��"p�)-��$ ���ó=����و���� ��C����"�b�nH����^��"S�t�_��"byc� c���EQ���P�_C�T��쾞��s�
*\����ABY�a`���8C�s%�?��ٹ�t��5{���f��x�mJN��GVP��#tC��s����|�K�?�b���r(�
Y�S��� ��8L��eX��<�IA�3�8�_�����ː"��)������X�x϶3����嗿���<����!�*E���SȲ�=�������*�R�T�K�i4��t��m�F�P������FQ�z} ��TB��ƪ}�u;EI�:�U��]rr(���"�� ��zb9�k[���-��g�N��~�'���F��bg�&�s���"�B��EC?�o�d����/K�o�Q@���>��w���?�5�<�&����?l�x�OCQ|�����Ͽ�峗Q�/�*oO���y�
�sEd'���W 扏$w��r'��%�=���@iwrQD�q��9|r����@0Y?� E���;�f&IEE��6��g���WW��?a8>�ge%I�if��Z�I��kE���rŴ�8�E�0��RQ�0,(��xp{۩�t#8N3��* �-���I��rz6�{����<����=��9�T�t�[��m�
���4v�:�q����׺���>�As�L*�䥜I��rz<>���A@���1������(�-�͇�i7��T�|cyQ��mdj�މmӮcey�dcݼO]F�_B��
�� p�����$"�#�QL����*>K����\m� ���� �e(��Z#y n�%���i���Sq(�B�u�R&�K��N�,ƴ�֩͒N���m��zN�
г:�3<8���Nm��s�Kʲ��6�G[8=��U#��_��0�9~*(h���ӂ ܽpO�>D, ��E -��,(�ͣ�R�<����c���/���+�Ze��?��!��<�8J�V*�MO�J�I���k���U�)&�8u�Q*�F��R4�ɋ ��>���ط�(~u��`�C���|� ]��$�W*$l���dzh�&��:��8�7��>GQ�Je��TUK������jDQ�Zm �L����}Q/+�a�1�z��zY��i����E2�:����UMŃ����X������Q�M�ҭOa�y��q��q����CJӆڑ�30̿�������?�w�~�L湝� �{���o/�%.|~ �}d'���z#�����k �����(d��WQPfp|�ۘ��Ot�����De�a���'r�o�E ���RY�,k�L����q�&�f��>�U�1*���%Ȳ���i�;��V�Ѩ$bV����1L=&���o�Q��N���h��X�\�V�@��]�����O�k�A��mB���s��1h�W�P.m�=��g2�������1���LR�QR A��:�N�����ڌ���m5�|h���޶���*i��*��nq��;�v��.�����fH;"L�l���Y�{'kr:�����(H�T��e�6u�5�rF�H-������$��+P YT-�
U�秀9�CR��j� R�h�5S��v�.�]N�D������Q ���
&+qx�����[�5�d�UC&�Oi�ݼ�9%��^���a"�ɫ4|x� ׵�l�a�u��8�Q�&�o�%�9,]^�ҕ4o�X�Q���5�^�ïF��3!HTS��o��ܻ�ЏĐ{`�l\���_�W}�k��� ��L������|�E������o|�ӗ��r����G��q[�|r�1~�k�u|��Op���ؿ��o��?����xb�Z-�,a�$�ԞIk@������?jDQ��_�=โ�4�b��ǏP��"�)�]iU���4�m�<8�U7���q�+8x�#>x4�6[��E�j�5(���˷�f�h��a�%Ȃ� �>�z�Ea���=�C������m� I�a�N��^����vc�������}�����ӌ{��CUU��ֻ8��\��<�{r�Mn_��ʓ
�^}
�|��a@���h�7p��=�/������}矡P�o����rk��s!4;*"��oI�@2K��Z]ZP�Ϡ�����*W��$e�s�KZ�;�b88��ѫ��ZL���1=�cl����(�
ð��'W����Č��m7R�޵L���L0��M��f`nn?��a���?��w�������u�=b�0��0ͭV�7
�qOKEQ1*괶� s`����'Zm�c<�@�f��l9XV�gѐ�7%S-y��p]{��FX�,�q����`���7����~JynS�3��d����Np��uVт������"X��rH)�u�4�Ш�d�Q��\mҼ�������$��;�_�����>���\WW{���nx�� D#��H�H�)J��fi4K#�%�3��P�4#=��$���UW���2��^>�'"�fU���՜W+W7�*Ü�8�|{��Lu������:�b�M�Uy�XV8e������X�Z�͕
�l!b9˾ו" �Ă�M[���,���Kܜ�F>י��Ǣ}�z�ry6�I/�if�d��0D2$ef�,�1����`w�!F��1�}����XS>��A�I"ѐ�P 5��g4̒N~�Iǃ豘�1˥c�əE�J�q�5�m[�=��k��� Ð7/~�{���?���1��ͱ�J�!�?�W���cc��QLX�1K,y֑�, Q�X9���/�o#�&�]�9�b��ƶ�/���2�t��^���֦�෵�)�i�{��Ap�����+�~l '�6��,�JTDX{�CX,����-v����1�s�g��U��y*��Q]���L���=�΃_���,^ɒL�����E����!x��|� ��]�=��WNr�#�sz
�6%�XHH�^�e��,���k~����eU^qR����漍Q+��}��{߻mZn��`I���+8�M:-z�ֳa�̹4MO�%��B8���{���5�g �Eos x��}��ҵ/��n.�+��܊�7�%l���)��9L3euW{/�2��z�m 8�?�$�l��J�=�j�[�^���FL�cf�F��ߑ��,ó�~�L&��Ľ+~ ��&T�����Jq�q�D�}q�$G�8 �>��$���X�z���Z'��0��;���-DT�ҽ��aI�Ju��g_cR9A��YJC���eE��K��]���=�.�2N�I�MI�ǩ|
3c��Q� )�J���5K�I��.� q.v�&]J�jK�M�����
����b�T�i��W�.� u�Ų��u���?�
�Rφ!�����[�;bw1ρ*kض�`�<�GL�R��LEWzB�����M50�4)#K.U$�領�F L�<�
��'�~n�P�Iu�",K�J��ԙ)*�ܛ�O>��݅�yH�����
צO�׵+�c4�4/�BB|�K��l�ý��É�/��w��nM:�X%wz�
�����7�7a9�����u��`,K6���
~E�l���U�s��8��R�̯����6m�J�:�]�a��F��́�ry>ҍX��.ޏx�G��XU��֨VQe����>ӳWy��78�8�H��
�xy�G�~�#'�%�(�}���]j � ���9����f�o��г���Z�������~p�A�]|7a�ȃs捳~�Mr�YJ����`��K��]���_�k�kE���B�$�Q�œv,u.��]��ч�O�-�eiQXX��^_�;k��+��E���VפS��eQٰ��� x����ݨ�+�
~�_�Qc7����9r�⺠6�ȉ^?�ݭ��P��I���hm�xl�O�.G ��N�HQ�B�Y��;c3'�����a��xG��MY�o�����e߾V� �8��W�׋VP,,c�H5;�����)�aFঙ�KTj?:��`��}\�ʽ�T�N��#
���6HM�f������[d�=]����gU���rS��j�����B���|<�#]L��o~��ˮ_�Q5���� ���1�����`Wm��62ƒ��-�����=;���V9���}�R����…Stt�S,vl��!��~��z;�x��#����z5�/� ]7"�H&�����ͳV2�o�i Z�d$YF�%dI�m:����?�����K�=�@ӫ��ݽy�&o~� .>�����G�m�Z����7��{wx��/�� s,,�Ķ�d2.\8��o�5���t��\�p�L>ˮ�{HmS��٬E�PT�a�%��N�z����j�`�XV3��*�YJ^��ӹ �}q�V+'�9 �s�V��;��1M޲����@�R���{���+B�I��<���Q��/8�����] ~�N��rUaH��ȴrwl����e��������ޕ�{bi�/�E�H��Ho���Jl�ơ(
]���L���_~g�A�]|7�H��<p��\<z�7^|�t����`��o2u^��]]�[r�� ;^b��z���3\��<� ?M�P�,D�Ѩ'�i�����X�|�+�Q���C�و2���hnG��l-���W�6r��x�%z��Z�<ϣRY���7���U�j�� 8V�M�3���.�)��F Y�a��KIrB$��Z+\W$A�jR�{�^{�[�R9��l[�7~�DWW?{�܏a�7 �eY�v{�͎���5�p.U�U4MKׄ���PX=ύķ��v3�k򒪟P���[�
-U�]�s�]=����IM(������k[ůdEFQ-9����UT%�v�Ƴ�U��lUDl���˳<\�%]L'�T�.�|eU4^S[ֻ B%ڳ����tX�Pf��E��}<�����~�|._;Eya������2�������m�N��J2 {�ĝJ�0���tUU]�n'H�P�����P����=�h�z:��0���_���̜�c��"��.�y�����#��t:�c����:7�o����> '_�J�-��SL�����c:��b��!���*�n����Ko��6�M��թSo��7B>����Q2�N��;i���(z~c���bI�^Kz��R �+����
��(�D�b�s�{�X�q��8ѻQ)�&�@6���^!N�����5�v����f���$9qDX l���0қJ˲h=�<{�һ JEn�4����{��}�n1��O�"!� s��NE�4����f��Z��*��;�L���׿��t��n,�L&����r��?�:�4���l�C`5�UP��`9���P;��]�ǽ��v_��y�׫��g:���6g������Z�$I��ض 4�����������bu�X,j3��.�"���� ����d�A��:���"��"�Wu6�s+�( 2���m��*�n���;?�� KRL������
:c\��i�@p�R��-�I��|�����gb�PTe^k�������o�݈驺�����F����iz�c�(Z"��.�mQ�.D
�2A �x�a�͍s����/�G���u2�d/f�\RY� ;! � �" �z�MwI�D�?���Fp��!+7��� $�H��ո�89Gd����:�k35���3�0һ/I��a�m��� �����⟱���d�^�^���� � f��r t]�������~�#L�[�[�߃,�)# H�A.] ��d�ӗg(}O��L����� S?�"S�t?�&Sʠ�
f�����԰�1*Q<���`7N]g��M��!�?���U����K_cϞ�(����J$Ě`�MG$cŸ��հ���9��ܦm�ZAh��:����������?~���u�[��"�[�Wo��H�k�Z X�l,D�_�j�`d�������f#>�,K+�un�.���o��<����,^�0��Goi�s7�����0q,G���4�z�
o�X�a'���Ԟ71nh ����!O?��C��w���r��Ǎ������z�-�` �� �fk�{�t w��ڶ+�+�`I��;]F;�ͻ��r�P������)(��HX$�� �7݈7�;�$�RX�� 麱m�YQUT*^|/�����f�:����@�臭F��m�ĵ� ���|���j���)�!�����K��Z2v�}N�8ڶ�� 8�^�}�bӣ%��*��l�Ls���hZ����-��0 y���P*u�{���H�����;�cD"I�{�˫�*��&cU�p�0�f&�~��۶�^�V�&�WzUc%���X�\a�{�uf�TQ啣���]� |QU��e-b�H�4���j���1c6 �a ��ʘ)*1�YB�w��m}��c�^83c��Z�@m�udYŻ�2Ա3�N@g�L'bc�8�Đ�ֻ� �x�Z& ��>��?4�
�U���j���" I��X���F�a�24)ű�g��p������ �Sװ{��ݣ�\�2�#m&L3g����|�b���Á������|S�_}��LL�����ek�5�Ʃ�=��<#����P@�2�׷ޞ'>eY���Hccm��������Wi|�O�]qm`��zQ������1^���y.�Z9Q����)�Y�-o�������>'�lGl=��T�֧��,ˤ�'O�J�Cyf�,��O��T�A�B��"�/�>Ĉ�,�vW���N�}����t����������w���>�w��X1��<{��0un�W���(!�B�\w�-�79�� X��99K�-�<��,-�! �'i�F
MkͰǕ_�DFv�Ә5??���oe���=���Ȑ��� ڳP�����
��@�`�uh4j�R� G�~��A����G`a{�wi����'X�"I�Yɂ*@y;���f�qv{������C!�#��k��������o"��������7<�gM�sk����-x��2$IX��c.��Z��j��)�cZ��R��c˪�o�A�8Y�q�<u�f����Mf�eU���(����)6’,� U]ŵ\̌�)m����\�E�UR91O����ph֛��\z�"W�=ť���. �p-�|�p:0t�����s�a�$�]����b��fK����$ d��
��0$$I"��#�jD��<�]-D?�K�;ڎ#��b�5�~/��V(�ʈ>lUA��d�o�� �zm�̹1���<N��Tf��K��������26��ݻ�]un�A���)I����Ƀ�'����Z]�4S���o��$��EK������߭Vo �դ-#N �\#�[?a�Vąa�%@�h��$��[��*��ݣV�F�4�&P(%Ur�uY\�*�[����,Ih��l��� W_e,� =]�\�:M�t�W�̚��Z�rIs�k��=���- �쪍�*�����8E���^n�f���
O<�8�|�\j�໱j��y&vM0}~:���X ��\Y�13��)�_�c!vâz�I�<Ȟ�6��tO˲���� �Ym���\�N�B;��E��AJ۹h��'kض�����q� XTL,\׍�Ԛ �,�$�z9�V�.��a��ھ�`�.)���P��ʻ������25}��A���%e�s?$�o�)�R|�"�cnX�< ���IR8���ݽ1,�D�L�X�@Q� o�b�B�+y'B�FD��x��f"����N��Z���:��/�⛖�-�� ���U��n��q ��o/�X�����lQQ|!F{=n6��A�[���09O�\ear� kӇ�pNi�'�m<���Bo�9>�ŷΡ�U:K�M�ƙ�����\����ȊƊ�^������ْЙ��jQ�N���A�~�3�����w���
�t/i�u1���ŚqX�\��X�i�4nZ4-2�K��(_��Q�ѡ�1ҷ����H-]"\��N��[/244�޽lX�;f��r�Q��&.��%�X]7���c�$�YZ��?\��r�ۮ}�eY����ɼ�6���4�~�X�+8�^���
�8\�AK��F��>��:A�G�u�x�Μ=¤}e���7���;�6y����#��ʢ{�^YQE���}<�n�֓r�/� dUn;�M�RVz`��7����=�����ˎ}ߍ��P(0�k���Ӽ���d��k�` ��K�XU 3g�x�}l�4e��I�{:�C��&c��o��^BU�U[׋����2 �vE��(�2�\1zV"�ӮP�%zU��R� +,o��"{\�,�i�|~�g$!@�͛����$�ʡik�"Q�)�g �\��c�H׍�N��f*,$���x�1�b;���������n��[�a��]�����gC����uzx}^��tu��(�7Q��c����=�$"A:u���cUa���1�Zl�դ
��[�J$��E���:��{B�@x�^ �S"cY��p���.H��� B�������y,E��jM��r��^ ��f��Yl��ܱE���1����{�?�(Ã��w�a 2}q� �O�8���7'�.�x`����������}ٌZt4m�Z���s �wj>� w��� M��,�Н�� Y�y!�7-#�f�.�ôI�] �g�w$�ި!��`b�!4]O�sI��~��j9J�e�'�Y�}���A���-�C "�� �ԭ
f�j���N&����8�D�x� ��"b���T~�p]7Q�VU�z�F�^�0�d��6������*�yE�P؞EVk��o�Z���9d2��3��0�\3��bb_������;�2_y���H
I1��q�ާ�4�i3�8CjX!�_;Q�vdE�� �ٽz��uI��;~��$v=2Ʃ��y�K�r�{)�J�>�]|7֍B����=�8sCc�����]���W UL��G�s���~��� ��ߋYD��c�l6�}7ʘ��T��)�b�W���B�C�7�V3������}��k'�(By�=�ͱH��\� Xj����ҏ�x\�:��ڳLq���$['edQTy��*y3�#�m�O\-t���-*�9@TM����R���k�th|��
�y.�,�VD�c�T�0���.�@TEs����f�ȑ����-�kA��86��}%ܭF �Uug�繑O��SK�x�Z��U+e.׏����3�C� �����>����.��%"����N�����%~6��0ıl��Y|�%se�>�C�A:�a.�;�鯞C�L{��tu�����Je�,���)�E�t���=�H� �c��s
����t7�b��ZVHۍ��������)d2�;��L ����Vv1Z8�����M��z��2�N��L��х���L�Zfj�
��E�d��L�l�A��C�mI�}B�B��������J��Y�QCUU2�\[A�J ��sz�^AU�Dɼ�k�Ȳ��z��$�D��=�[ڋX�^D��W��J?�fb�y~€kG�Zd�M�����AR���xض͑����s_��=ȹo\��3 ���!�e.�Dnw�T~cz*���,x�'�E� %1/�i���N��֘xb�#Ǐp�G�?�����m�.��|>��=��z�o���� ���2<e�ً��K�[�l6ddf.�0�j�]�ط���b�ڤ&�5��>%�0R�R�[�|7��q��h�mnbA�Ą�},���%������yn�#���}Ou� ���c�!�j��+L-\aj�2ӋW��x�˼��w
e�b!��͙I� g�^��<7�}���EEŶ��a�c X�;!�%I2�����ۍV:t��_)ZE���kI����E�0A��"��L����-U�Ν8�
�c��c��;,�A���+���@Q���&n�O��a�v�e5��� �ѽ��T� M�[ɱ�N�|���`�9����=tSG3�v]����]�g�k����Ccf��C�2��&�M5ț� iF���k&��'vC�,Q,t��a�����z��� �H�(�U�����[s<� J�=�e���@7L��N�<��S���m��Tj�M�y+�2}�c���6�����"a���q��ApI2�4ӌ��ږ��J!���,K���E�c��V�+�~;~[C�w <�AQ�e��v�H�II/�if�drQ��i�CA�.Ă��\>lF��ۛ[[��3���L��¶$����=]ד��S7�F.I2����L�Q��*q�Г�S9���_@����߉fl�Ȋ�f�y�w�$���Jۂ�"�_���w���_�� g�����s�ǻ ��Ɔ#��qp�=\:v��/&7�#�#��-p��MJC%�wu�m�ch!R٠'�î��x 8\ބEE3Q��u3�fm�o�j�����($+Q�����eE��$���2^Zp����������V�H������J�ꁪ���;�B�0��LI'�RN3���\�B�>���2�,��,c���)L�@��LT`]׍@�L6�O2YV��f�\���Ķ�jggo$��&voW�=k�>W� ��G]�Nhl��&��l*���Y�fOO_cqq>��ڶ��Ӈ��*<��G�u� �Ɲ�q/��`�wˤ�F�����셷p�:��)����z����K�Y���A,������Vb�8$�2Ua�e�ݍ'y�#�0 � `qqUU9��{�`���򝉯�P���t:C:�A�5TmI��}l��6ʲX \� 2�6�:�3~�*��ߧ��
��1�����}��y��,�|'�Z7��]��DS[������d2y4M0�fg����B��M:�i;�m � �Ȳ�$���U�l�s�����}����i�B���yBc�� ��iY���WT~���}�5h��1��H��:�۵�_~c?��b�H�o�a�� �{�Z$��r"L��ʳ���s%����I��%�v�Q���}�<�-z���1\ڲȬ�*�~C�#���6���w��p�}y�����Ev ���kk �.���l6�������gy�7�����3Ӕ�Kt�w#�o�FT��,^�a̗�;�$�IϜ�� �8#/�T�o!���7���q,|�'�_�t޸qU5�~��o\�ҵ�M�o���h�����f�
�c�ɭ_�_#��,�K�G9>K}�
�{e:��q Oi_����ei�Bg�����
���|��d��2�re�� g;z�c�����L&H����kP�����>��3R,��絼���H�s�f{��6����0˙3ob�Y #�ٳoQ.����~ X٦g#S�G�� ,��D"Vމs�E��~���.\>��so�t�d֤&�����)#m@4䚡m���Y�"�j�'ddd��&7_��;}?���[����Q�� �NG�3��eM`�ŷ�g7>^,���on�{8�ٷ������</魕e�,5M������ F����:����m�| ��Pbf���N�XX����㨪�����.�g�<?����ۢ*,�Q�+֣:��Stt�D�3�� �pK���'���Z�Hj���)�s�V@��D��� �m}��E���<�B�${�>'�����~�1�������� x���0��j\�����Iv��G��|�k�/�*���mS�U�!�������@e�� ����8=}��<�.����ttn�}gd3����������ο��� ���g��ѽ =0H�x���Q����)�N�q� W�^fxdHQ�WX\�K�L3M.W��� !���h��V�)^��)�ڶ��(��%<�cz���}\�rYViZ �o^�R�e�r���q:�4��aY L3�,>�-���a��&`YV0�Td�ш�5֟2��r�Q�l �}�0�_��� ·/Rz�F�{�b!K�B#~��F@@��N.���d�<���([��NgW��xܛ�*@�뵕��e�&��/:a�|�ry�F�N:�=˃͆�/�F��픓P����;V Cصk/���������C�^�駿�f�I�]l oH�w�8��
�X��d�ioH�=B����9$�"��:v#{MfN�ӳ�k������1�K6I� ���� Y�][B�pm��#e
ӻx��h��A��A 䭍��ڑRv� �˒�m����}��o�N`��<'J�*�~���p���+LO_ò��]���x��{gq2��%�O��n's�H|�==��'>� `�����k��p-Q!�bF+%�ǡ^�%ɥ[�<n��� `SZ��^����8�琥^�F��K4�Ҟo���Je��F�7z��
=�L���yC���`����J�"�*=����ڇ�
1�|������Q�`����Y:�����M���Z.n3�N�R�����H88|���?�1����ŧ���ڵkS ���nl):::�����/��_�|��ȃ��l#�dH�v�9}�"��>��1t9�X�@H�Խ.x�7N�]�6��Bf'�;�0i4j��L��_��O� �=�,���W���`r�
/�@� �&0 ����*�c�ϭ��',Pj-�G�?�X۶����z@�u=�j�����'�>s���/P��B��=BB���]�!ǚ4J���9��2�lRY^-DF4�`iӾ�a�y�e�!�RתϼP(Q��[���N�i�\�L��҂[����T��[�����OR�U"{)�~iKߝ��4�Du���o?��jD� �׻6˲��Ӷ��k�G�l�p��_G/*����q��� v}<}k�n�HHn���JVe&�M��p��~���Z�a,���h�u�m��P���%�OT�/�&ַ8�Y~[�'�!@F �[�y��or�z��s�}����<����(�y#!�J�hMcYMj�
�U'�ʒ����#b��y.�l��
w�~��+���H�D_��0�R]$e�J����������c�Z� �7"E���Ej���lDef]k�k��8LS�rŭS/Q��8�m�L&�eYI"c-�Iǵ���NQ���{H�DyP�s1J:��f8'E���Bm��gyȚ�g{�G��j����㙟}��������}��O�Ħ��{�������?����K�e���E����z�΍�o��0�{�����ɦt�
f�^��WY�����P���y�a�iK Bl� �=
��$3_���ט�>�j��~�����&�tl��x�$o�x��]�����7� S7�rs��?�����\��E2�u���"8�Ox����|ϣV����"3 �1� �̹�E�*���M0�w|��&f�\KH���Y�.≉�E!O�H��K�Q�l�6�I�� ,�����w#ϼRY@�d������}�jFtKѓS��t�24�M��Ϲv�%���'���������U���GۥM�f�SDZ�����mS"�lA@�<�aM��W����c�����Ns�� ���f�$~��[������&��!��f�#��'!�
�o�$ur�v?���u:� �Dd�<O6[�6�[DZ�V)���c�e��� v�z�F��yǒ]���hԐ$�f�l����s�����Tʦ���f3�3�|�l6��VYW�F�Je� ����i�d�Z�X�:�Z��ֈ�m�J�^��'��p���g���|ߣZ]L�����{�|�Ҫ�V+G=��M��N��^�������c%�:M[�@�$x�>�y#��hԒ�ɭ��ȧ,+�k:;��vI�c�_奅?a��
��оlQ�XUK�e�4<�é�`=%���� ,!Q�*��M�������ϰ{��M�n���V���S�}�W���^9F�N�ŷӒ!$ B\�ŷ}�=i2{nT�2y�v�®�A�"�����U���˯|��G_B�%�EQ=���GiU�B�����W�O!D!E6�����2�l6�%�B�D�L�_�o�.'g^�/;�H�>v��y�e��R{�@��g�P�w�ϖ�5�|~���Je�\���,�xV� ̖'�9w��癯N��j�=�*�-������O��P�����׿�KG��ᷞ%��Ɓ��"��#.+2���,7�0�-�0 �\���%{���^tc㋲�qPi6k�h��Y� JT:���� �Laۢb�^yk!���lְ�&��"�+a�&��E�����)���q�����/�#���'y��{�����=�<I��١l�'��R�t�Ku'~l�BU�ȣ��Ǐi���%�����~���<˥�'1GƟM6��$o`�[ ���QuE���˂F-)��^���_�d�% �i���g�^����|3%h�a�z5B��q�>7z-q�+�ή;7��Υ�� L�l�^��#� �,�3[?�ŋ'�ַ~�w��~�����N�x����1<��D�6AP�.b&�BG�V Wƽ���i�����˭~�PU E�����J�+I�T�b�CT�+ ��M�{&�juEQW��}�ju�T*�)� K}��z%9~k�a@�!�қ���*��$�^;���x�����K���_Aϒ��~>S�0�^� I��M�3E{ZKrR�D��,�8 ��.[ޮ}��Du������8T�������M�.��]�y�}O���_���.����q�.v͢��V�t>M�`R�ȡ��97�:���ʅ��ٽ�>��J!�`�aH���_��oS�/�P�̥70� )#��c/3?7M&��^��>Aps���]F��� �$Ο?���.�C[I��t�� ���z��W_� �=s<��Q������[w�
��T곌�CӴD�)/p��
��U+�A�3�8͙�op�泜�����w95�3�Y�k7-U�Y�̣�:��#!a� ��ore�4�^� .g_����|�>R�:��
9����T(+2���(7P�%�!n���|/T�v'�ܷ�'��c%��eբ�mu�I�O��wl��j&�k�86��>�Bp�٬b�M �$�+�T�$E�@p9��3�P���o�!7o���_`ll ���^�~�W>˃>C6[����"mw�IJ��w�I�@+mS�6��*c�5҃:��YTMM�\����Zdd{8M��`U-|�GKi[`YMZB�6Sg��Y���?���YF
9��a\�!�.,��y^�Q���>A�G�"n�u����3r����cI���!h!ff��W��}����? .^<�W���|�C��?�#tuu20�lj�9s�4cc��E����b)�@�����Q�B=�Ց�L�oe��~��_���r�.I����Sf)��,�'C��2��$�I׳ |�DH�sQ��V���(�FuÐz��,+�R�-� b�ԈB }I����Q{֜X�Kw
A-�M��L�7�u�6����m�a�,7Q4=�/cuJ���e)��ݰ��6�$%{���� ���K�z����?`׮][:�]|7��������寿±W��1�I�#����j3u�|s�kߚa�r�� ��+�/zJ%YBOit��|t�k�/�ͯ|��k���&��E=2U������i>�O��>N�؅���q�
���m��8�鋇�z�,��6�ݣ����ih�N�V&|N�x��h�5^~�+d�9���B�np��Yʳخ��/s����2#}����"]��}Ϡk�2��b7��^bU�����P�֢��a�՛��Ή?�X��䟐��=# >��ؓ#�?�Gv��具x��_����X���c�����/q���/��}i�� U��8X`�{���ߓ�Ʈ ^lUXY�i�>C#k0urm��`�-m��*f �oW�j�uTU��F�5t�l�@���\���*K�.���d��Uz��@p�vg@p��_}�r��� �K�o]]]<�Ի��_�4�>�!2����'�A""w�-h�����
�Ү�X�Ki�s]f�׹�p�j8C�3C�;M� Q+�ZtݦK�bӯ��)�t1M�Ȳ��I��:ְAR ��P��C�貁>�����T8|��h�H�s������H��O��UO�� �n�ZBž/�s*�i��
eٝ��
C��v`�2�7}��]�P����)*�����O>������?���`h����s�� ���� 8 C碊���G+C��,�ۦE�Ҟ��& �n1?5��b��x�k�W_�=B9��{m�,I2���V+' ���<O�\���?��j���R%8�?V��:�]/�>7���O�0 �
~�m� �#A�: ��f&bw����:Wk��G}�6�0���~;�m I��UA�V �r��B�FRng �+��&_��/�h�c��g?���薏uߍ���i<�y�[�q��c��Kd���������!��Q_�s�wγ��$���I��{1����h� iܴQ�Ԍ�T�R�]���nΜx�cG_"e��* @����G?����,�˔���$<�y�p�=�22��{FF�Z]��7�E�VE1d~�w��>v���� �y���ٽ�^�j��Os��s�Z|� ��8>�<��I�������G�e �u�����DHT*�\�x���"��<g���o�j���yQ��m�n�2���:��o�&`�vS(�7Ed��h���3��~����?�.�_~�������"�N��}�z=Y��Oc��᭕`�V#c�`�F/��G��[� [���]"�s�L�m��FDcj����Η����F^�u2�<�a����r�vӡ���?q��������$Q*�x�������x��o  �_amv�T����NQ�e}�팸�/I�6�lK�$I4�5r�2j�kS�r��!� !%��f��̚�i�ԄJ�M; � PuuK�k`I��L �ԑL�Y<S��3t�9��A��x���rr�9��{(�#K�4�t�\��}/���0v]��2���j��� ^B�ީ��� h��:��n25u�k�.D����b���xT�aȥK���?�u>����O|��������AN�8̉ǘ���-�v����� �ˆJ��a����Ҏ7?�m��w��'�(��a$���>�����4��atx�m��VΧ�f���8}�M��{ j�^Ĭ�z���i�j鸝��܍F�Je>�"�;�*I03s����
�x������$Wn}��ͧ$I��>�2���Ð�B���j�y��h �PT�M =��9���� �xEBBjK1̪X��/�w�~�������������u����}~�0o���]Er]���A�gy4�|��>���:�z��/\���I���Iv)���}��g�|����aFz��w�ara��:�|�:�� �2Il��]��3��3\�|����8D���P��j��֗8r�;�= ��&�+R�wа��u�yV�b��0�8��<ǣ�k�����_��0:���>� �����?�>x����~�����n�?�1��t����ĭ)�:��d�\�=�ы�1�sa(l��c@�Y�dI"}��:�/��ћ�ĸϦ�`��`UYc����8'��ߛ`߇v3�� ��ѽ�3���M�%<[$<R���!!!���u�V'=�[EY� ������i_ ��x4�5 #��M��@�i4j��ƒ]�F�����ڎWIe���wdy����`|�������O� ��iz����P/_y��D�����~B�9���։-o� n�(�q��qll�A�Y�^�P��q�w�9s�kǮ"��avj��uD�W3�dN�$�� }і�\l���������ZX���oz�@�S,�S45��{8q� ��<L�1���!L#��<��4]70�4��3�"��
15�nD��2U��dS�j��}y�ӌ��v&<�Id��$ *�^~��v��<��/�oσ�(�Ǝ��Q�9�!�/����?��?� ��{>��9��"��Ü8q��Ǐ21����a(����f躢�\h��}�Z�� ln$b�Z���~[#n�p]�V]��,�R7]}�?�bBR|Kvl IBUuff��2��� S(t�m-�e�f������^�q/���Ӷ����t�L& ��P�J����<���[�!�)Ұ*��b�
�4���!����+��0�l�a3}�K�_��K��::CiW!j�{�jq��O�e����Ȫ��ĄU�����5�$?���1<4����]軱Q.����_r�:�?��WU� �����Y��/Gx��AO�0]}(���kg(��=v/�|�m"Lq��'�����P:����>�����$-e�����ߝ����3��!T�%�k��>��v��@���g�5��󓪡,���E��Љ�{��8��c�~�������f�+��2��~T]e��"7��d��$�&��V���ޫ�2�O���G��d�O��4����ws����{אU )Tȫ�4�0?s���b���t�/ݮºJTgk|��w����|����x������H����!X5Kd5��`�L4C�2W��_Nq0�0O��a<{�e5����4ӔJ=;V%��3ǢX�Z��7��꺁if������U�����~�w�=�l����~���� ]s�={�����������Ȟ '6�M�@�j?�vC��\^��Rr;��*z۪�a@>���y����Ie0�%�+%񏪪8�%��I�6���p���G�)��3,����0������^��M-��X�s��Γ�4���I�6���M$EBϬ�R��r�=�H��&O��^|�+z�1��EʍY�F'������ ��?��D�& �0��k�O/y�P-z�X�v|�^�T�n�� �=��ll�+T�E���]::z7 "D�G(��fj��!�/�������g~����� ٗ�߻�o���l��[�3mOX��K�������0hUv��U)c�~Dwf]������û�\d�y���i���300�i����A$��_�KU���G!��U�JeaY��i�ۢ�G���,+F*z&�t��ɗ�]*N��߳��� e�lvI��v�h��W_�m����y(�eT�4�B���n���r��K���Y.TpB��"���T�I�<=AJ4��՗ �t�|`7�]y.�����a��1̼��}fV�� ���}�����lK�.�;�� �/���9Y?�c�y��CC��� �9=ǹ���� 'uƴ�8��a���l1��:������(�ZV���+\�=��-f�n0�x������! C̬����<����?���ވN�s�,�oR��Q����� ���F6lH�y|ܘ�D�P��0�����ɗ9���|�3�S��PEe��^Ɔ���>���u��=*�y^>�5�}�������}f�S���y��{%
�Y��4�j�#r�}�Ci��mY�;R�sC�5��.������XS.~�A��t�9�����П�2v���E�s=��E���ҫ���gS�o���'?��5�Q`i�+��ᆼ�abY�z5l�V��a��jێ�O��o:�k{�\U�7��������$�w����!'N��s��%~���={�܃���F,X�iƶ�z[�8�҆|��z�Z��� E�V���2�+�b�e�ƭ
���$"+����<���=�"��������z�spƦyr�t1-�m�H��<�_��s�L|h�����ȡ�:��:��S�+�zo��m�/���7�z���Bq��y��{ L�5����=�!<�EQķ���0v� �aK~�a��"� �~�"�-�F�
�%I�D�
��y�b�-Hd2�mo[׷�FL��Ι �+1�����U~�g���z�Ԃ �ʕ���}���m<�5.,̐��v���l� �f���{�ә�!X�G@kg��<�eqq�TJ��
��>J���~�������\N|Wg/�����(�%j�ۉ�Ɖ��[�@��׋juEQ��X���D��86�c�����Rq ������<��q��2�V)��
��&#����X����j6���W���Y{�C<t�
����i��ē]<�!�Cg�)�e7t�~�"��9��:�{3d{2�cxօ��_��/������g?����+�ɽ��wc'cff���c��<�S�0z�(>>�r�3�<ǕoL��� �N����k�b�3���͍� �v���i����c�c��(�H����9�������_b|�4]�|T�D��U��M��������k4�*�if�KL��������9��k�9}�U�kd�k�;�ԧmrN��cc{�ma�{�m&d�fx��/s����w�r�������
���#�v�B1~ZJ�>� ]L�:A���^7��i,��W~�5��<�O�K���0P@�e�y���y��U��f�\69z���pp���{� �}|샟FU�--r�ӊ t݌`�:�΃���\���&�6 #�C���q��:�T{��4 ~�7����O�[^��|�M��?���O�+���u������iީ�~��]��X�LPL}��l�A&�O���ϭ@��g��F���l�faq���av�/��U\��O~�^�2���tN�PU������Uy�ļ������L2+] [,P�� �hr���|��̛ ���T~�±Y �Z.s�>2Gi$��Y��OZXGe�゚���! }\Wп�^�8��:6�ݤѨR*���L�O���0� /Q&��&��Q(t$U�[=>�A$"w�`m%$I��x�������5~�g����=[�iǹ��?��8N��}�'�6o/�����F,��d294MK��By8ܒ��f��\��r���F �*��YU����|��ȭ>���L!�Z:��,��VYQ���R�,.�q� X$�S[~'b�k�eI�0 �,ї��m5��*p-�{�3��&��/]�3�ˌ|O�� �5m������ϿJ�9���A�=��t��9���/��ϵ��&���p��� Ő�S���޲�A�6W����/x��~�?��sk���;�L���ǥc�x���d�3t��<:��W|�s%�7l��ß��}�btx_��S�E���b2��B��2�s���A�����g�fB���8x�qRfDZ�����(2����'N�η��3Μ;���MN�{��sg81�]��orj�8�ȕٓH ��~�=#�v�0s���!�2�z������H�z:�4-�U��fԫ�1��P��q��������o 0�� � ����)����c��n
7�� ܀LG%��nT�#��|
I����F����C��.2i4S�����b�lBB����-��eU/ BJ��T�X�>�=��~k4�x��a����'�B������2H�z�H%Wq3�s��ٓ �e5�>��lU����Ko�§>��m�_���>���ͯ�����s���A�`����0 wL�y#/��l�� �,�A�^�,U�����H�3h��hQ�$��_X�m�}Mbm�e����T���YF��w�J��x�5o)%��g{�
&�^�s)��>�P�C������5w3{c������Ez+�Z�+��^q�=�P
�=�In8��5���o��1޵�>����(��
qA �i�l��Z�:� IҺ��־�8��[UՒ>��7^T�1�v�F��9QY(R�ױ��)к���w�Ր$�0�y_�n~��)���7>����߷eA7I�(
��r��aΞ=����}�c������'�=F��hTq]�.:N~3;�����z�lv��3Gl��x��J$ E��q�7oN��8���7��S��G}�K�T�L�[0|�O���<�Zme�+�!��8�vr+�l���x K��v�͂_ �߯]����Kt=��kǖ�� nk�_���"g�r���w����t:M쿾�~�x^��w7�[�N��PH��v;�93�[�&�޺���0�F��!��R������y���D��I���n�xd�Y��wS�x�k�p�� ���iԙ<�� �x�#tu��h��ݐe�|.�idȦ
����oR������^�ƣ l��y�jU.^<���N�{��~���|�8�kg �+,f�a>쐹� ?���Y�{xr�����m^:���,}�#���Opp�I� ���K��m��Vb��+ �,�By���Y�)�(3��(f�D��d,��B*��$Y����ظƠr#�9V����ؼji����E���W�с�;�P��@v7 C� ���o��=G"
�&c��,4��O[��Q6��
1�0�-�p-�`��w��U��H�������Z#)��B�Z���&�u�����ۿ��W擟�~��hK���� cc��o��ӽ�� �I�bE���Xhʉ��o�~�G��:���F��tI�T �D�M C���ś�V���X�W�~CYV�^N����=D���"��STh^�<>��S7����d��;�$��{��\�ԥWq�6�L���� a�z\�;C�h����f��� Y�1��i�g�v��_>�����,��{ /��d��*-��[K���bUU"�"�lVT�����R"N�� !>���<)�+ K\�O�w,m��m� ֬B�a��K���?����O~�|��-�F��y�TJ,�Ν;���L��R�/ ��y����0�HQEEӴ���aD�ߙ�F���׫d2��Xgq��<�YU�K�Մ�-�ai��}����\�:��,�o9ikXm���vs�k�Z�w����;v����~[�==s�j�
{"?jY�T_m����VG2�27޸��k�O�ؽ%�˭��^󜀪��S��dF�Ԇq�|��2f��Y0��s�8��g8��c<��?��?�-����.�oK�r9����ұ˼���e�|�H�P�'�)����Dܺ ����>F��bݘ����/q|�y�^�.�'Q50�]*���<J�i| I qNܣ~�{��`�8��b�6g/�I�(�����w�!RF*�^)����`Y�Je1Z0�d�(p��y�_z�K�����|o�Bj݄u+�3n�`��6F���T�ue1r˩���Q�G x��9 B�-��Rƺ=!�*#!!�jg�\���5�K�׽�JeY�#����Ko��V%INl���9��XZ��o�f7\�����JWWȧ>�m�q ���[����j�]�FW�aB)\ϢdgC�u�HmXK��q�H �A�Y��+/귔Z�����h���h����ʲ��y��Zϣ$-����x���~�VDSl�EbF�@m���JA����O�C���gW�>:2C�(�c�t�/2\f�>E�颷0ʕ맸R;����
p��`�-\��̚���rɊ���Y��F��ȃ��BS��^�a����V+�w#�5������B]�&�-$U��&HU������PA]ƍ��؋ޛ%`,*�u�����n5bF��+>� �ҥ�|��?����G>����z9q�0/^��o�Tjs��AP�,`��u���c%�������~�۶i6k�_y��}��qM�n������Z�Y�G�^&�ʬ�D�� �B���B0��]���A���K�V����u�<�\"�4��n(����i�8�(� -�`7�n�JT�[#��������+�ߘ�9���r{ҏ�o�QJŎ-��֐�l&Go�(�L��,Ui�Lo
-�s�� ���7y|�c|�g��ѱ�t�� �����\�=�'�-��W�aY��F y�2}����- �,˔J��t�"�ry� G/?�5��=s��
R� z@������h�I8��[@����oQ�q0��=J1_B�5D�U��n����5�����m�J�J��+�9~�U��������fnp��]�J����tޟ%߽q����`��k���L-_@V�1� ��[�A��p�pÂ�{z���Y��=+�"�O�/��u7_� �]th��V�jFג"���hԶ�����a� X���~�?P(����`D{n�����b�/�O��w�Z�'XlԬ�y7��9VDU�RYH*q�iI� �1M6��.�,�kҗ�wr�`?��c�h�p�f$��b��}_��2��/2��"]�^�
��>�J�|������_�=5TSf��9������K���Ms����'�0l� ���6N݁҅h�*�9*��y�9��w=Jw�@�mW�Z�/�ZN螩T&��~�� �ݭ��^�a��:�a��s���v���bfK� ƎcaY�Ϊ٬%�V*��5��*��$I��r@�y/��/��������ǿoG�Z;;;����ĉ�\�r���Q�����a�o��t�f��,+��Mض���;���A��=�k�ML��Ҍ��ۯCQ�d�#��ă{#�(rRת�a@�^��if���r:�� �V+#I�2��vI�����fr�v�klz�$ �HS�٠,Ob�j���0��*:~�U��5#m,��IHx���goR����Ɠ�꺏��Q }k���" ų��J��<AY�1eq��S\���{�I>���]�v��+�]|7��(��۽��0;Yal��x�]cdv�/��Pd�Ԫ�u�ۜh|���u��2�iâ�^.����n�e��(c��ɹ�tx�t#��\����g�>TE�V�S���M�J.S ��nj��%��׹~�"�F���If�WX��dnv�+��G��?��9Q"�MoZq9�$W�KH��m4S�Ho���`oe�P{�M��8dU�$E"4]��f�D>[\���j��(�R�\�7�=^+Ǧ٬'}�B�YNM��}!n��*�NF�tq�����e���'L�����g�=�����n�i����?Ƕu&&Ɨ�`I�"��f�E�b o��m$��?����f��?���H���yyUw3cY�����7N�1;��g9�8  IR/z�[��>�f�u"3�����6�"���sC9N��� p�t�c\����'��k� u�c��%R�4zNP�W�RD�*VU$㊅�t�S���$�v�*��4�K!�~?=]C(�JQ��]֟�A]�&�+&������#�H����3�}��'<6�|[{�c`�/c�
C�s���}��Q�D0b�"��~`��,��z�Żp��q�����}�O~�o��\���EOO''N�ɵk���&�Y]+������Q|�E����d=�QQ�ߣ0䶶��D\���fN7��41�齩���IDAT�qx��ի���"�/E�}���EF��D���6�8I Ir��9�(���G]Za�s1��J;��.c6��"ì���%W���QR#
��Z(�� ��6����kb�62�mE�f���o�38��v�����-��l4TE!ovқ��…
o}�%��?��?���΂_� ����|>Ϟ� ���t���i �b#!Ip��1��_���fz�
fIG^4�/w�߼�a�}�^����%�͐M�Hy��"�\���= ���ʵ�|���������FI��p�խצ�s�3<w�KLO]A�Q��i���^�^ ��$ۙ�y�vCk�`��p��!��VαVe ����=�녬
�/�����:#�ɘ/)�*����6_K �J6��}��/�]�F��ȯ�v������8ֆ�%�����|�K���'~��n��h�111�a�|��m����ʷU%��� �xƀŠ���T)�j�Ǧ$@W��0̨��hQj�z��!�xb���c���yN�4n��^�L��X*�&Y�# c��)`I�\l�uR�%�$��o�� �QU �wq.�F?�:�����P4�ŅY4����<���oXL�_��,�d5��~�g �k �x�&�Υ�d ��]�U��Se����ׯ3�?ȡ��������DKe�_�r��N/%�L�����go٘�g{�&WTiL3�K�/�k:�*��u]�-=Oi�2��S��;�`\�B��0�����c�����;��C�������ᶼ��Eww7]]%N�8̍7��$���.�#��ʨ�F&��1����mI�Y������$E�2-J29�o�����K�/� �Ѵe�|�,���QU�t:��q\���m!�h�ؖ*v��JkB; �D 5���!��zD�v��8n�:�Ne_BV.�8�:�5dE{��dO�$�I1��diE�ۘk������<���s�-�*7��077Ù�p��1>��cdx�m9�]|7�Hd�Y���v�<G�!�����=��k�$�����z�Ϲ^>�h�^:�]������?��� �P,���*�ӌ*N"��NgH�N_{�#7�Ʃ��9u��� F��ch[�� �5*���*]�&g/r��t>�3��n�A��!ӗ"S�n�L|��h�����]��~o=~ ��D�E��-��8b�-�l�/�th#�R������qZ)T�qScEM��6�J�M\׎���9 Xd�]��ߡ�<�g>��[�obb���o�%�c01�D��+����9���Hz��;��:�B�Q�TfTUO*��iFTfAY �ඍO;#� y�X�#�;+Rv�>Vq��5�b��8aoBUU%��D�渇VT1l�Ѧ3}[”��F:280B�r <���12f�7�}�T)MO~��^��;��*4�MAc���<G�[�n#! �aM�w|dMF�dE�m����F=Ҋ̵秸'�4������PU=��7ٲ���G&�[�y��F����A��ĶS1T�<���}#���L謚���F���m���ko}�qbg��x�]Ѣʥ�gϾ� /|������{wG�`���馳���or�����l�`��Wا� �kY����kB ���7��h5x��w�8�Q���@UU<O��b��L&�e���r"�$Ը=�߃��C\�& ��l��`���<BQ_|Wq�T��[��]) ��o�L.^D�='U55�������X� Ð�\���\`W�I���6ӝ�
M�+W.��_�� >�w�6���o�ɹ ����l6���0W�����
}���`���ȉƷ�2NQ*�3��KG�����g�J(��T�=ϋ:�A.WL&�F�ʳ������7����'x����Me7}aRoV8r������4�*���>�)�-^H*��̥6e1�^��T���YzJ�6������cU-� ����qh���ר7�̝[���]�׷݈=Vm[X��[E����mR7�'��&�c�(p���W�&G���ַ����c|�s?��8��ك��׾���~���1|?�Br� ��<�V����kG �I6�1؍AO (R�t"%��jOh|1�ډ LT2E�@���Y�a��i �7m�g�!���l6�׫h����R���?�^[ѷW�ƶI._�P,�yads�j*��Ź�o102Foq����ͧ0��s<AєԚY�.�2��-��i��$KH���p�9��Ϳ�`_��za����w)Ra�p]�Z�B �r�q�0�4`���'b��P�ݚP�FBT�j��}�3�7���FbEF�},X 2�R,�|�+�{^ ��'�Z���<�8�N���
ᤳg��嗿ă��?�;6kEOO��N�<�����[�!�n��;~�0�@��BK�\$���|�ͬ�{q�ocS��B��/HM3�����8D�Q����,o�ui���Y9�f#��o_�R�3F� �`YM|�Cӌ��|ti�t�+O"�T,�*��`ǧ�� �����/O����ɿ>��ת|�ݟn���FBU���+��җ���ԧ~������]|7�pd2v��ҥ3�8q�b��|����aH�Q� �b���n���7���=Ϯ��2y�0��󓍲��I���*�x��k9 �r����< Į�x����=���=�K.7�o��{� i�����5�
~�eQ�m��ȊL*�����B�_׎�r)����*�fs��9ҍ.zz�6݋�V� ز���G$b���a�-�,���c�~؛���u\�q�{�LM��/�����(�z11��LF��_�T������l ��!;R�u����%
��j 5X�F3I��d��%U��$��0�F=Q7�T:���*�چ߹��+6�a⭙J-�0�a�m7�m+��N%��j��j =榙��l�M����û}/�lp�� ��B���93k�*�0���*��a�b��9�����
L����o.��������ZrO�>�XA��g���6��-����q���8 ��K`y��M�E�6���w^O�c�[,IR� �wˏ��|;��E�XT��!�R� ��ٷx�/s��?�S?�#������T�s�ěLNN��1�a�"1%�l6��P�,�AU�����Z&���$x�.�G,��hTi6��A:�<��|3�Dˆ�V�(�V+���;�4˲�Մ.L&�9=����P�..>G37O�O_͋Xw����B$+ B��[�l�ß?F�:��{���w.i��
׮]���;]]��pߍw@��i���͹s�9y�8�r�6�%�R]��+_�w<��-�����ճ�u�22�]3� �PڬT��H�i��RTE��r��42��ގҙ��݂�g�r�GK�LM_��7 �EW0�����޺m�����4���z��|���0�m�
��6��#�������6�I�]CV�l'b˪����&B,Dd��c�d�),��PQ�^,�sqq��_�W���/��/�q�����)��>O*�CWW�F ˪#�rz㖅����t:y���n;6X�,�8v$t־�D �b���8�op��E&�E�� ��X�+�}{���[TU�٬%bP��~�d2�eBmqE+��R��a@&�E�5:rt����p�k�g��x
EU1�dRyYWDp�롨b��Z��H3#P�k��
,IȚL��d��y�a�?�� ]�4�0 ����@>^glۊ�cä�vc�\��d
UUi4�ʻ��Q�5X&Dծ�!V^n�_m�5T\-N�2�;cA��ĄȖG�^���Ξ}��^�K��3��L[�u����ѡs��u��2�<���YZۉ%����\ь�����&-�-
���l�H�2m�qH4���:,Ir�<��̷js~T���劑�[���؋Q[�O.W�l'�� ��H���mgOIЬ5)��(]>��xK-$�B
=%Z8�}���mz�_w����R�۲�P����w��'tw�|�S���_� ���;$R��ܳ�S������tu ���x��z��ɓ�ӥ�p��SdR9v�����AL#eՅj�,+T�\�����)ut"�j"�oE��֐$��+�z��(|���1��|��|1���® �&�9��}A����5��lfM$YڔO�����j�)I���v��D�0P ���&�+�v�r���ۦ�������0�����eY�����7�x�Y~�W~��������]����+�_�� �*��Շe5�f �&>C&����f }y��0��A�L�w+Ӓ]��uc��DJ���fDT�63�~i7��
���fD� %b1��'�@�cS(t,��
���F*���_X5~�e7�_�bz�
'���옡Y�S�/Mi���1��K�ʪ�
��0��� �� Bܥ1�d�D���xtj����@�{+Tu�dë(*aH��.�=�b��0����f�%�t:��Ab���w�`XP���P�NE<�Ū�!�Iz��0��l�8����W�̃��c�o===tu9z�5&'�޷#�p��U�}�#��o{��� %BZqu��eY����{�]ⶐؚH�x����L߼F�ص�w\|��^M�p�-��v�c
��s�f �f�����"�4=Q�I��������ar�n��QTq��ja *��fj��׈� m��<2�A4u��8��'�ַ~��>�O}������z���N �49t� ǎ����'��&�ε%c�y.����4��}�L1� ��o,���i�Aw�=��_6�T��r�ݰ�W�NqM;B�c� ��?#s`�]��Ma�d�R�^�V�{�/����Vu荘�����z��fhhfԟ) ��=}��l��e��0�:��5�]]���N"�Έ-��jT�����ΈA��E��eh4���W�x��ʯ��;��{k���2>>�o�Ư31��b�|iS�����&��E�r�0Mb��%��2eḺ�a��ڶ-��L�T*�읊��1 &V ��K��i\=�t=:��d6�5ʍY&/q}� gn�B����"����w���=�{��n䕬�6��$`I��\OT�uMО%�+6֜õo�0�\��6��O~��Rϲq�O&�UOX³v���X tL3��h��}#@8�<7���m��������w�s���n�ɴ'Ѷو�B,*4=}��G������?}giϫEOO==��:u�+W���7�i� �1������[UU �IJIkG�Q#�����}��'C��ڲD�������%�:6��.�b/���;�F R��i��L!9~�$o4�m�+��P��u=*� ]7h4�- ��� �t
�"1S���VHR+�=K��j�(���pp.��U80�����G� ss7���>��P���_� ���;, �����ȑW8}�$==#m�����?�p�����;ٶذ��N&�[��z��I+v{[�m p\�3����?eߧD��a�*�:S�9z/��O'^�������{>��&F�@K�b�"K������@pԛ��>��~[�1��'��I��N�w|􌎪k(�B ������z�} ۭ�>ss��f�l���s�a�)l[lrb5ڝI�j����K�l����0��O�o��������ٻc�a#!�rB�� �V��j$��HE 5���x�JrR������_o�^K(�k������Ө�N>_����Z똦x #턅��g�q�ʫ�p� ������v�{�����������|�Y�i
a��u��$~�a�x���/�P9�а�8������B�65pxS�jU�j���Z�ޥH��H��K*ϫϵ1�B��̲� ��Jf[���.;���m�߾���v��+,Ν;ʋ/~�������?yǮg#���MOO'Ǐ�ҥ� L��i ~]�!�+�ȼ��]�fff�\����=��{�j�eﱢ( U>�K�s �mjC�� +�=�$�F�V����Uj�y��e�7��c� ����M/{bJ'����� C�*�1yj��4CnwzM���h)�� �~y����k���j��$���_��al,����f``����l��w������r����>}zK 8|�C^e2�����
a����H��愯��-<W����_�����ޮ��a�M̬Ii���[.���K׳��}ϧ���̙����>c��x�Ps��3p7��[��1��������B�0����nZ�|m���O�kF"B�.��Vo�B�;R}��¼� �J�~ڹH��f������_��O��;���Z ������կp�=�S,v��j�q��D��+_ǒb�P �׫��R/n쭻�����J��0 �SDZI�-|��4��k6��r���\���O��������y�կ�/�_�w�c�Ɵ�������)�}_zACVE%�V,K2N����P�]q�\�3sj�G��NV��Թ��Y�K
va��=HO_/c�(庰��D�5�'ѳ�J�G���&���hT#�qe� b }�[F_�i� ����PA����`l?��{�G���L�ar�����?��g����w�Z6�����us���={�������o��#�̖J=Q����v���V���%a�8� �c�K��6aR�W�$y�֡�{�T۹��ٌ��V�n��z䛾������Hb�c���#j�2��~���&f���~* B�y��T?C��=/I��Wt ��E���_gb�3��m;�v�.����4�Gy�7�x�3g6�c���٫L�^B�LL�$���!V� ��m�n {[�K8�͕ٓ�(�Ɂ܍�t12FRY+m� 8���u҅���4���t區`��pzJ_����`US��!8�C� /a���s<�����G�?���U��m��1P�U�$�l�U�4,�����TƒOp;�1�o�u*�����ea�8����w|�������]�z���~�G� �L�����nW�Z�{ J-�A�Q�u�y�'��n蹊�(�7o��e��y��zBY�f��&N⹳^���0�4�aR.ϡ������"�Tv����p���|�»�ݟ}��|�ǵ\R�(��ĕj�I��x��׾{��&�e��Q�'<�OM��И|m�L���~ƻ���9�y�B�U� �ĤU��ju*y/���� ��b�i�Pl0c�⭴�f��$A&�1�qQ�eM3��F�Qރe@��<1c)ݺ3�w�ŋ����>�G?�?�c?zG�c����EG��ƱcG��۵l�ny�������BGdۖ���l$I�����W*�ӹ5ׄ햂�8Q������Oq�G�G��[!�f ��7$<{�o����=o�}"�\>�a�-o� ,N�����SnP ����V�� �\��]�b��è�A�^���縭F�Q������~~�>A߶�ٮ� ���;64M��G�*����^���!A�Sm,��_�o�:律�|�({��T9��R�GUur�¶�i���$T�o̞�B� �#y��Y�Ӷ��Q4!<o 7�?�6W#]L��@� 8�B\�M*7+����[����z [A�k�����3��V������!~��%�jK X��+cq&�u�^K�ݡ�f"��
@6s�Dժ�*8�÷��Ǹ�U~�~������� ���N�z�=���i{��w  � 7�3@Wz�����NgI�s ewc���kT*�d�y@�Ĭ�D�Y�q (�J.Wܐ�d,e��bg���s���94M�^�&��K�g���ȴ~�}�C�;���8MB�LL ����Y��_��7}|��x�.�>�~�b� SO��9¾]��~�{<FWi�H'*��캱�`k�`H��&�^�R?OM�H��Q���������E��~�R2?Žñ�P��-����KYVs\6ar��i������?����'��ul7:;;�̙��9s����z.o�rZ��}{�� �B�21���oD#`�{)���d�b� �Ѩ��\�A�H0m�*0���s�� �^�i&�q˩�T�[�ok�|��Y*1d����Ðju!�d�$�l&Ge�œ}sD^V h ���v�:�_�ʡ�O�I�H�2��O�Qk�`W�Y�w��r��0���'��{�_� ���;<4M����7EO�j���z���=�KS�w�&{�o��]L����鋌�ܛ|��|i��s��=:�D�V���K�!����:+���M��?�6[#]J�f���`ke���Ɗ=��[�th�f�ኦ�v����W�� ���?��3�d�j�Mgwc�b�Q#�/��4i�k��#t݈lcC����m7���X���id�����!n�?�����W�$Ittt��3O��?�c<��G�����%��e�Z&3d��,m��*f�&�_���{"�l�)�/��b�����E1uo5�+I���髉�W+Гe8w�(����}:���C�u��ggX����p��:�]�1�f�8ٺ!%,EI��`���)�y���=�sEL=CWq������ʪQrK�A��@��i��� ����U<����½�XI�P��8�ٵ��vYVH�7V�]���{�(J��}ߞ�$`X�r �v�m6�0����|� �;��|�O|��w�eю���`dd�S��p��y| i�%�ݍܧ�B�A^�<�-�V\kb{�����D,.Β�6e�&�+ DZ���Ap����h�u�f"fOT���~��Z`K�V,@��k�r���ka?�'z�%�Z# C*����9�a]�Ao,p}�,�ŕϭ*�Kd� �>�p� Mx� �fd�57 ˪����x`���O��ۻ�c�t��w�����C�s��k�:u���%�` XX��W����F����X3oМ����1R:@G��lFd������ x���s��k���uܾE�}�-�`ML�n�������o���4�M�s-Bm���57 ~[�q��`�fCzZO�9�� �ʫ׸��s|����b���^I�z��a�$���MD>_Z�op o/��u=�����:�Bo�f�ju!R�������?�(���O�8����7� ޡR���O?�/����C�[�eq�f�VN6a�l!Qf�{��:ɤstt�&� �YX��(��M�q�훪�d2+'�b���+L*�`5����ט�2�x�R����|�E�ځu)���y���6��:��3�\�GAѕ%[�(y')�_���+�q�����"D��t*��E\�j�jr}�z-�� 1�����J�D�QE��O��*�*����,�f�T*Y�l?Z���F:R��Q.�F���x��1���?��|�ӟ�c��UZoW�EFG�9q�0'O���GI�sȲ��X�ja�������������k�aq2E�}/�D֋��r�-����8V4v�Ap�ǻ��z�X��V�Z��$I�ә-�<����,�b�����gW�}�ò�����W$�n�R���ͬu�l��{E�1�:�`��y���@�*f"�P�WZ\O66��U�~�_������~?==wN�c�� ���߈�u��ᅲ�'�����J��E��8���o��;MϣE�Tl�!�,[,�nr��� �m��\��բ�g��̨������ ����n�]GQ��C�V�
~}{BP����l#k��ڶ&��@�]� �=u;�����י}��H�����6Jd��~v7�;ʲ�aU �m�B����PU� ��+������U,����d2�����2�����L�Ƨ?�#�޽��@mid$����}����3�{�)�:v��$ CǦѨR�W ?��Ѹ�
k;�X�eY��}��
�F�t:K�d�� �q�����Q!�z[��Q�Wq.���tUQy��orb�Y>Xb�PsGj�xn�k��v�<�T7}=�ܷ�)�z�s/�ᙽ���{�,n`q���Q9g1�N�\��Ks��gi�u��N��Ƅ%��DU��~�x�f)<ϥ\�GQ42�,���Ѩ&���0BbOՍ|��ED�����u�!%��(J�3���^�
���0�����~��Ї>p�����$Q(����Ü8q��{D� t�@�M���ZE�(��<��� h���Z�����B��S������NE+�նa��`۶�0I �c[��������0��_9jQ��w(@���/gu��B3��������-�M�,Y�[�Ƒ2R���7h�d�W��,!ip��k�V]M' XP�SA�!j���������~���w&����n�
�0���={�ӧOqu���#�V)�ˡF�ε]���g{�_���[��7��&z&%ILr��3\�p��g��Je�fsk��r�`Y^��Wd3�IK�)��79|�� �� ��X�Z@p�]��{~�@{^�T��`�j%��vLt� �w��NH�fj+ރ�Ds��9�qo�3tw��g��
o�����o4� �h3�uko`�ʳ폥M}���%!�
��b&�t&�� aM�����5�E���bbb��@mgl���x챇�����{��tuu��DV-�4�t:�a��u#�����M�L��u�L�Y�ڠ��s]'�\�U�Z\�#�+F�R9�W��gqa�W_���4#� ]Jq�I����O1w�LF.��'��{�=NOa�]�������8)��#�y��7O?�=�S�Z�p�����p`�# ���E�8����q,��E|�o��+�ʪ��������/���u+_�DDkW6E
1,aW���� ����F�aAM�����A��gQ�=������3?�#<���vl>�S!I�|>����Ǚ��U�#���˪'�ي�F;��9�^_hi;�y.���|Ǧ���A�W|���q� 8fD �#j?�~�(N^�5ϦѨ�����.+��{��4������mV����F�o�t����ܕ�]��d����Ϋ�*J�ύ�Y�]9��� �t�H�DU�D[!�:i}�<����,,���/�:��?�'?���h� w����i��^^{�y�?�5JO� =ڏ��x��U��,=��*���Խ2�z=C�N�zB��U�e^}�<{�y��W8|��L�'�6y����d3�U�/�Ă �,J�������EN_�ӓ�r��+LO_��������d!-�A�U�H6.x��SE�Ƶ�H�ʧ��I��8�
�J��&��Un��d���jt������{�X�#���Z�"���U'��m�7p�7߮k�د�?��M��N�.a&U=]חU�4 ���U��B>��`Ϟ=��j�c����}��W�_04t���>�`�nj�ek����J�ʊ�y����zm�U�Y��D�9~ׄMmM�� �Vˑ8LM�����B��c�(I2��<GO=����УX���_g��<�SǮ�HJHW�������Ύ�(����Gon�{v?����ju�W_�k��Y�ݤ�c�}�DU��D��M*%z`���e5��&�R�m}�b>^�q��Jc#%��X�{�>[!���f2G�������zT��~RP$�NJ����w�r��Ş�A�'+�y����g?�#<��{�u}��{'�$I�FG�8~� N�>���������� 5t׵�$�,˛b^l%<ϥZ]LQ[�����6��,�@�ry>��m�7rL���%sm�i�׿ry.�!n�Z�u��?^�� ~[�gir�m+�{�]�0��.�5���^�� �3W_���i��F�Q�%��F�_%=����q��Ξ=�U�ɧ;I�S��(+b�m6�5��U�œ��g���&�;����ߡ������ ���߸H�R�۷�K�s���dzҤKi���b(i�����*So�P��rp��7��/��unL_���ט�?M��~<����x���c��$���֤�-�`�s������Δ_b2�7��\_<�>�1�=�䇳� ����K$���d�T!��فMK(�TCE�U/t�6Nx�����<G��Va, �fݢv֥�v�{�>�a��x#iYM��?Xx~f2���l���$6A�oi�VH�)B��)<U=�B�M3n��i��o�*==�C?� ���Q��;%��سg�������Q���
�����^�D�JDqN�iF�Z��0��yض�)u�[C�H���kV(��~�4�F���8��=��(B�i-�ؖGU�J��޷�Z��'^��ŗ�x(M�D'�'�|c��T�"C�2_�AJϱo�,�A&�����3�4�}� t��������.v��K!߁PK�� �-�fS����h�a��w+�9.��%��J'ƄJmeM��[{��ͫЀP������<�gIE�ϭ�!�*�\U�D�ZPsdY�@k������!��������!@p���A��s��02�?��%:zl�e��.�$'�XJ����_!�-lk ��Y��&�iF>���|��"�_�0L|?h��m�>�^/G띚T�۝�P�u��ʨ�Q�w���,+���:�z�06�FC�d�F��L��q����E^��s8r�޽�J��fh� �CF P�n��8s�(��
�'�0�������י�;�K_�������O388���pߍ�����g�����k�}�T�I��UIS�,^+s�[ױ�=�z�R(t�����ߡV)sq���7��oR:��4Z ߛ'ߓ'[ʢ�e.ϓ���(��y}qfҲ�Ԫe��x� �HY��1�R�lpc�=��(��1s�*����/Ws�*�Y���" C��2s&���{>��#���>��vq-=���uB?�w|��r| ��b �<���C���h���C�Q���ّ�'������`|}�z��6�4�t6Rol��T~�7�����O011� �����CC=����_��=��� �E__3�f)��麑$�CIߊ繫
����V�5MO*�+'�hs+�^ E�²�����d�}� �0\՟�u�\9 �Xj���s\?<����!��01��z�G}���A,�~�2��X��4����3J�.J�r�"��!�#���2��`����i:��E���m�'%]�YS���V1͹U5^���N�Yil�h�JRqk6�Ieg���:�����oܟ�
�%I��=���c��7��p�P{���?��>���ўWC�����}?��ϟgpp�i$�������B���E޿n����aBT���j�Fj��-�+/�m�H��mW_�:�H�s��F���{�n�ߢX��$��Ξ�x��</yaȎq�V����D��DOb�� �v�T�B����]�!�z�U,jt����U����:z\�z��/���#ܰNq�q���q����Wy��^��G���~�����v�]|7��F>�g��\?{�7_9Bn G�@��(�FZ'ݙ�~�&t�l�)�� ���5��nT��쟢�Ja4��2�F�Stل�sS�dF0�̪�&I`Y�
�R��l�%漫 k��pǐj��C�M�)��Y���Ӥ{�U�� ���*�'�Ȋ�:� nâ�!N�!���w�$gy�W�<9�l���$i� ��� !iW$"H$�p����t�}α}8&8`c0AH(�$P@(g��6js�;;�s��_U��N���٤��tIH;��=]U����<F�@Q��L�c�F;���3�̯!vseE�3;���Hc�H�F�X{dz�U��*z�@�1�H�X,V�YѠ;W�|>�eH~ f]7PU!"��]P�R��O� 6k�|�5'~.\HSS�;� Y���w!�=�� �|>��|�j��G0 ���+�9���\L���d��3�W߽U- �����g��+��`>�Ų�R��L�zٶI,��R�K�V<Y�ٹ{V�(N��\��b���0�$��F�G�`�;�<�o鋖b����g �g�sIg��LU�B!��8��]T8�����Y[Y�J�?U802��;2ƛ҈�OQ�. X�E4���=�Z�e�t^�e��� �b�D�Y�҄�� �80�*r��.Q *�B��ܹ����7����y���w�^UBcc#�l���v�����XLT1�YD"qt}�竔��s��/�H>��4�P ��_:} ��j�Y,��E�B��Tf�����W�̯h�W���f��b�b�X��eſ���h���(�?c�^��8Mp��u���br�o���&dm��n�Z �6��R��sU�E&F��edy��/qNr���gO��P�����ձ����������Gi�h��!���J���A��˩K6"+2�;vo⨴g� Mo��jIL+�EAM* �d�o6��� S.dD�gDZ������h�V<ϣ�x�.{+m�=,_�:��nZ�^��A�m��Bӊ:�*�iS��c:FT�_E-?'x6<��*Z8E=�O0�
�=�J���ъ[��wm_��?0��w�t�g�LՕ�Z��b��1�h4�뺥V�Z<���A�s���yF"�I-���� �,��g?�6�D��������פ� X���DB��{�����]D>_�E�0�Fa�/|#�^���$���r�-��|�8F� ��Qn�``���{�Wz/���-ˤX��&�]h�j�E]]3�x���6r��K��C/!K
y3�ً.��e�޶���~���+�EL��G͌�� ۶JU��3�޺���Q4M�㍌�!BD
�R�kr[�\��s]wֶ��3>a�h<B����8x��������b��WJ��iZi~/�ض�5���J�ܹ����>��۸��K^�����&�ښٰ�%���GSS��9�D"qTU)m�FAA�@��8�o�Y��#��B�H$N$����ȑϖڞ�g`-~ߞ��>rI���&�d�j+���(�$M�fQ��� ���?Ǐ�A,P�,7Ms^E��:d�i��>�w�Xض5��,��d��9phRw=9����G$aа8ES_u�)�Z����¿�e����}�������0��8䴧���%��p`��>��XG���F<�K�!ڬ�/����h��`�X��)D^�Y:H�q�)�ٞ3�*#E]���L�XO[�Q5^���x,���a��ϒ�;�<!�n�������V�l�>�Dc];��r
&�@TW��6m��"ZDÈ��"'��<�]���kXy =�O�X=W���<���Ǧ��������0|`����,L�C]}cY�%ښ���l[���;���T�b�_ރST� �{��\Fg3�2l`�6w����1����g��s5��-�0��I:����[r�m�Q�S��vI�]���0h��IN��t&�晐e�tz�|>K"QG$2�aK�&6V��8y��/���u�b�b��F��B�����o odA�
�Z�Fz:�ֲM3|WS�wUW�
����_��|�!!�UU�D"� ����8���P!�%����q1�&X�:?�o*�����!��ʍ|��)Q�v�m�o�gƪ~����˫��v"[X����� S��[_��G�{��:֬Y�+���fZZٰ�E���MSS' �3̐� a�ocY�REr6�5O������k�ں�"��'Ef\�TןV2� f���#�M�Xb� Š�*h���9>����6&�k�V6PD��B4�(}���5.rm��G>�e��$:b�3'���eSQ9�� ��� �:��������?��8䌠�����Kؿe?k�ZK�3NC{�x�k
�B��z �[�a�u=�Y�ס���7@�jĚ"���.�j
,a:�I�22t��wS0�lۻ����h���ZEkoa�Y���ndY��(=�"�(m ��:¶��ɥ�$Z3ޔ`��5&��ES�\�X�vl�$��� ���E�=yfw:<�#?�GVd"��㪎��.�=�a�ˇ�;M,^�������e�ht,6a��6��� U��EAS���݆nj�f�"�ҿ��O��=\w���� ��x���QU�����p�٫Pc^�T��S�X�2�<p��m��Si���� �1�8�@<NuH1klS(���Xl�h���i&3�cO�͖m/�s�^=�<������V�CyZ[�Y�y6 ;��$p�k1�ɍF�ܮ�k�3Q�s��_����s�q�&~U]��Ħ��-���`�N,§s���ʕ��LwuBAb��@ �-�*�����i�i���Z��];vl��n��o_�G?������NKK MM�l��G�����x|�1���, �\l[�V��L������S ��o�k�w�4����J�m:��Y��T�y����yӋ߀���W̶�u<�;%�S;.�_+�J�b��.�N��
S�Xr����$4�`�giX�D�g>��ʁ�x�/��\� ���eK���}�,Br� ڡ��g�>�>��Dw���z<<\����2�Kv�>:��H�9�T��^�e� Q�d�p���A�d�Ы�v�wtG��W{�B�J��=��S�芬 M� sC� � n9����h>�-:���6m̬���D�)�o�$,�euU�W�U��� ���\۝U{�G1S�q���Y���vh�P)�9n�GS�����nl��g+#�����[~^�.��*�䈜@�X� �W|��6 ں�럒N�� 7|����P�NA�R {�!'Bo��Lp���;���yL]��-}�/�go�-�L����ŲLl�ƶl��߁�ϓ�����x��Z�"�;vm&3���#<���^dOn=�.�ű��$�u,￀��h�6a�.\����u��VlDI�f�<�ò�I.��� � �_����ڴ�M Nf[��r�Ҝ�0���@DV��(�hm ����K�̡G��y�~E��eǎ <��=�����ǯ��� �����TϦM/s��!g�́��DZ}��zcm��'~-�*]�X��K�. �*V,��q��}eUU/ݛf�P�W���ɲ�5M��
��TyBQ��|��Ȍ�^�V(ų|�-�A�$��v}Ȳ��G�m�_#xUo��)�7?G�9:Zl��YI����,(.��O]ϲe˪~���9����cE�rv���KO�DjA���:<ף0b��z�L�E���:A.JH�H�?M��E�H�ı�ӌ�5ⴏ -��ue(ĆH�'I�����-���Y��z�.<�wj5��j�F������ï[.�%� ��kP�-G���[S��,O����5�d�h�|���"x�Jp`����X�7��"X�U�mQ2��`�47uN�@�əq�w�n�I�� ��{�M;�� �R�s0c)�b���?eY,�y��y����P��B�R4����,^�����r ��
����2G�^'�ϒ�\�B>;mu �eY��B��Ƕ-r� �wn�0"46��yB��9��VD����عgCC���oR�� rdtie��� b�$��6y �z.⢳�Ͳ���N���|��#�2�:y�!��M��y.�eMi$̮
����rP��J���l�.������8~��򪪢���ܻA���~�?�߭[_��g�fժ.>���j�:gmmm46�ظ�D0��GKyԶm���J3�����OM�ch�^��/W��u=��c�3�}�_0�?�u�y�o�g�-~��j �g�D��o R�u|N���]]31^��T�ȃa8�S��K��ၽX�Lj4�Svm�/�@���?u=�Os� �9I�R������������D�Q�+F�ymԵ�O�ұ
#{2�N����bLl��6-�<�)��ed\<r�9E�u<��(�D�11�RF%�w1�����ֳy��.��5'S�2��ht\��7?Fl%D�&/ �ʯfhe��EW��g���b�L�rTWy��<�L��j����$#�<|USiY�̨{�W�z���g��Ot�-�bA8G��9�DpnN՞鏯�B�m�ƶMLS�'u�·\�#���<��=��� _��O;GƓE�Rb1���]of�����`q�JXV��ѡ�|q,���4����96ly��C���웰� ځ����bu���\ =JCCKɉ9�-׃�~��ˮ=[�����v��+�2���@z�ob߱�x9�%���ZY��"�����Ў$1��:��r{ҹ��X,*�-�ǿ'a���v�y�!��Uu��k��̪
az�J5N:�a�*�;�9͋%����}"�U���b>WƋ���%g��Ƨ?�难ƙJ[[ �q���E0�� DJ(�@���O�� �4��<>[~���u�Œ~k�����Y= S:�Yx��z�&��?-�񺪜�e̝{&QoY&�BM3f��N����Q��E�U#~�5�����>-���� $G'��((�y��s- ͅg���P���$� �?�<6����=�;דhNL�s�c3�a�ÿ�p��#X )���gS<�?h��f��[�t��1����㉝���8ޖ$�M2�ل�7E�H7��{�����CkK7�Șco ��pbˑ�y:��>L��D�Ƅ
p��<��U���:�Q�8�~ܑ�M�n�3�cy��f���(]��]��u\RI����,u}��� �C���~�9�"oW��~���8�C2Y?�\�L�2�r9�}�>v�|�o��/��y����-��>�-���T�������+%��,��L֗�=gC�a��<��h���E��A�4�~���q)b&X��/������BuL�
Y�ozŐ��Y��s�bSd��CۇYT�}�U\x����\T��nL�FD+sIb���tX�mK.�� ��߃��e�o9�g\�α���+u~�f����i�Š�1�U
F�E�y� `��$ޫ\#C6!~�m{�瞻�+ڸ�������%�*�k9p� ��=D�� WI�0 q���Ì�������v�3�S�=O�aD�J�5e�L-~A\w�d���{�)]0��n��_���FJI%lY�/�'K��\U�7 �� �w�]+ë��!Z��]��t��ew�I2�x=�w��N�1�R�BAa`���yً��S7�1�Br�ǹ�����S�x�Wh�k"�(fL%Dfnn0��MG)�Ng�r>�j�L3M��ԧ;�N|����r�� �ߴ��u��?�Bv�G������9]o��n�� �����\L2^��L$)�ьG�'�����<���9�|�ֳ'8.;�3g�0�.e�:.FҘs~�T"8�.��:��V%�wm��6D8��(�R�x�7��"�
�h��E�����ݭ>��x�Yd�,���"�����瞻����k_�J(~�d��^������mmKimm�s5F�?���*���4 e���2�ٷ������k) :���� ӵ@*U?k�X�f�\.[�i�D�X~�(h�K%���w��s �V-6��]�п�|��?����w����~����&�6e��Lض��9M=� ��tUtU�J_3}>A7���1\��s��f��y��i����R� ��X�X,�i�}�,&�WØ�]�3���Yg���J���hj�gÆ��߿���ED�����=�hTl�;�� ��lvض=����{��XVџѝ���ԜoH��s���:�Pz�Z�߀�� � 4ml�AD!�M��`��<�Z�us]��ӻ� ��b�dY��+E�j#{����sD�5TE����<�������짮gٲ���j��
��3�X,ƛ^1/>��[OS#zL�8l1�#��dž}���A�_�v��͒��n[BG�"��z�j룭��Ύ^Rj ;�ngQ�J.���������܅n�y��+H&�b�s��D������P�2F�^ܔ�!?�9�s�%l
,�V�±���Z����"�̛%�IF�~p���*Z��#��MF�%M�����j�����E��������W}��s.��[�Į���$ڞ�}�~�m�-_��WY�(�sa��E,Z��7��?Y��\��Z��AE�P�S,���@�
�$Z{˙�$�=�BA�w��a��_}B���up�I���mۯB ��]�71tl�֖N��<�wm���ؿ��9��_�.���?�ܕo����Tr]a�(S���.�:E��L8pJ�+ǿIn��k"p��S_�"�F�g2�46����rv-+a�>�$�z�)[�[�=
�<�k��Q� �@�n߾�'���s�� ۞�Hkk+�� l��{�졣��l�n۶H���Œ��"��X�S,
�2��rb:��0���s5躁i�.
�oqs{�e���i��jq�;5�A>�hv�8&a8)���&~���lvt�����d*��j6F�KDt���=�$�d��Vc�_ځˑ+fx�OЯ,�s��������t�8�'���7���~�<�߈f�֪D�uѧ��w��
:;��ʦ"Xĩ�ιK�ƪ�7�޸�����J�si֮}��J�Dk<ȏ�1�Ɯ+�ǣ�j��6m\�E�hSf���}ʢ�^H��ɖdM8�?GES�����e�����4ߩ�@g2#~�I����W��H$�vσ����k�Jp���S��c�c|��7��F����b���o�?�/#uu�eK�R��"��p�D݄�����dF��Ȭ <���ޅ+�hY�eY��R�a%x�K&3J4� ���[ =J1_`���,�Y�H�(�~��ٽ�b�@]c#��(��]����O`�"��'g��S��d�d�s�S!ګ�i�t5M/ ˩*�AR�Q�H����^�Ƃ��EJ�����{N0��!;��o�r�/l�=���ܹ�G���.� �jDkk+��Mlذ��;w�ݽtV�2DZI��H$�K�n�,��첿��BU.��!��0�D�Ջ�]7(��BA\K�EU����r2�QZj�ma"�4�����n-������o��ͦQ�&�w<���3{ʖ��q�R�x��g��w���s��>K��%5;�S ��j=rrj��f��� v�;��K�B���r����cOi�R+�C۶q%�_<�O�}��A#;�%���Ej+JǓʑO牦���+7�*�b�(�F�(+'���š���>���/�����9��O�{�L��v:�W��p]Q����nY&�\�X,>M�h�z�;ؿ�Y��?۞�W^����W��?� �i��y^IH�Dj��G�a��DyU��.�b�V�5�y�o�$���j�Y�: 1J�5�6I��Hԕ��T�>�0��Ŧ�d2���C47wLy^�����>Y ��C6��dݤż�g�0�"�Tô��b�@�X ��3��p���DM3JU(AT�"�X,��g�Fce��{�G:=��j3�i8�C.��4��b�RF�L��y.;wn�׿�o{�9\s������y��W�喟㺍���WO{m:���� �T�����A�����3�8��P)o�VH �P���j��|<�=1(H��e���V��c`�MMm��ɚ?@t����J�obrUՈD�'� �{EDZI$���*�fG���'������[|�i���� ��󶷼�]۶�o�>��M�h  �,����0�`�ߴ�<���ho̒�6ȏQ:��׵]l�FVdU)�,�3gb�6�������i�����O�9ڦŶ'�����RM5}X��G�tz��J�0ʢi:�d���36G�g��7�`{���x�/�����'Z[۸����\�E�w�.���=��g�R��u&x�|��:��[�b�-n�� �'\��(��s��rs=��,�'��D�����i�z��c�u�3U�E^v�w����E��L6;2c%E���}�Yq�_d��R �܇E<�W� ^K8P�J^9?pFt��1�g�i�B�B!_2ߚk׫�{��x�{.��H�ߛ��inn���� ֲu����=���8�Ã��5θq��% ��/MrG�
�u�7Fj'~a�:6͂�.\�ヸ?F����� gʮ�� :h
D�1S,Z� ��?:%�2�� c���ǾG���l-��|��o�G�9g���,�Y0o�w*
�����q�E�c�ڧٲ�UZZz��SS��|>G��+��$I�c���X-C��E�9�j��}�xr�9M!���]Sl,�-�uU[�Uv�F5j#�=�c��/��2�vՒ�5-�Ыw���rEp0/U,
c�rcI�IL���12��/|�0�h�$���&������/^���� fA�s&3J��'��%��
�zGG�gl��r��N~jR r9�9l�&�NZPJ���G�4�\.S���fG���y�(��?�Y�& M�P=���s9S55�ϝIl
��bi!/L�b�㓽D��N.,\+���X��:��`��H$6e�������\!�Kc�c9�㿟�w��]w�+���X�fu��R9MMMtww�~�Z6o�Ȓ%��E�9 ������C� l�X�9�w�u]��I$R5���Ɍ�(*�dC�z�l�j�fG�<��q(�7ٟe�������Y��lt0�[n�F5���fG�Db�*��|�Ćz�ߐӧ|��B����s��=\qťtt�����l��7r��E��@]�ţ�����{?;�C�y�Լ�v΄�Gx���0�h�b�b��١,��`��M�ꨆZ����r����L�bˊ�Ӆ��h�ZLc8��U0i�o�-�ǖ�k�<�\.���6�UU5��z2��R��xl�&��q\R��YgÎGd�&�H�� ?��w��w���~:�'Y���_�M7������00�����e=����R F��NYV�Ǔ�ri�)‡m�&�F�dR���b�D�hÈ�XM �$I.�O�7ñ���T�����V߽�O!r'#ܧ��3�CE�4� ����3f0��F�顪����'Q����i�M�k�'~'�o�TWׄ�� %��u_�n��ۿ������>T��R>}}�\s�4m�{���%򥇆�P_�\�u�iz).mh��׀�G���ژJ�G�(�D"�R�p`�T 2�Q</0��DU����Ju$ �d?.� ������t}Gm�����h�A<��q\FG�&݋
�?��߱j�B������N���,�
p�k]�8��sY��E^}u��]�Ru�����&U���r�<�ᡣl���^=��� �x�2?�GR$��ĸ#ES��۹T�=ף�- 1��sP �l�`ͩl�6��ɶ��:60�w� W� È`�E�JR�v��1�*�,�Z�Ůvu�T�m��[��a s�u����7���!cȲLCC��{o��_�g��&<�E�e��T��Y��#��Τ�[�M�H.������K&3L$+�2$�b6V���#�!��׷m ��͙��ȧ��3U�A���*Acm��)7!��ޠ�%*k��y��.��7�nT|�Q�9�cl��͎"ˊ�_�=B*Uy"��#\��������k������}5�� �I����g��n6lX˺u/���Ecck՛@�,�����:)cⷾ�ـ��!4M+��#"�̒�r�d2#~BC|���,FbT���"�B~R�Qp��m�7��lܡ<�ct�Ѩ�z.r�׊��^� �i�"L�~����y�-���/����5��p�k]�Y��,6n|�͛7�����h�����؜P2U��� f�1�-G�#;�ň�.���)�zTGQ'?|U �|u"XB"?����[�k!�ӡ�-��t4C��^=�Ȏ,�����<w�1%S,��f�*b�E #�a̽��0~����g��������y@�*ȲLcc#oz��o�� \p��hk�Z��g��6]\b�W̧��;4<|�d�S�1'�X,A4��V�tz�w��v�uØ�}�q�R��t����p�f袐p{�̮�8��Y��Qb��_�p]�_���2+��Bn�<��~�������Hi�[,�m�h4>��`@UU�ŭ��������w֬}4�<$I���� �Y��Ev������I�m����u=Eax��<�_��T�x��J�O�|DŽ���D��^��{����i�(fB8���� R8�9���*!�b-�ۑ�Rn�V��\�y�*�;��7����o�kjm
���4�a�r�2�lY�ƍ�in����Z��q�!�M�q]�]{6Ѹ2���0O�˳��B��9��Z ��ɝI<���YHJe"��U-=>����R�g��6�V�Cȱ̜����jI��d�=����-}�x<��h~�Y2��A%����,SjʪY�h��������|d ���a5�$!I---\x�y����u��/�����੎�i:�̨M$�Dg����`����l1�[��%�M���HɁ8���3� ���Eb��Vg� �性[��W�w��g)�ȲB4'���@TU�4�X�Y�xK�@v۟��<�f����n�E��d M~<���ʭ�~��|�ü�W��EHmD�E ش�e6m�H_�95�*�B��G���Z�(��1�;�l?"8�T�>c{*Ɯ�c�nB�۲����N/��/~�)��؟��\.�T������=Ct�ɾ�>"X�7�
�|�?r�y����V�7 �!�y��(˖��k�^}u3�T+ �5Yؖ����Ri����$�6��2�_>@v������:b�՝�c��Ҩ���x��R�E�hW�'<^;����^]s�`��D��$+2FB�0l�8~�D#�ߢ�6�e��ډ�tzE�UӴ��ӡi���#MM.k�\�ҥ��=�H�D{{;+W.���k�����֎[��1I�I��)���I�(��I.����2��c�r���x�q����4�*�ͦI��J Ga\39�ײ�x�7cd�lX�$�Ҟ�I�H��ep�?�%���^�؃o�E�{PU.ߔH�{^�U���}p����X���سg ����ԧ���w�=�'��z��.֯_˖-�Y�h土 ���H�7��~�l*�ƙ6e����'��"�{&�9��þ����7 ،�j��Ţ?~��unAE:=\V>�Lm�Nj߀ �Y�|y5�N��$���w|�����+.����5'~!�!!�b1���g�66n\O2�BSScM����b� �UѨ�7�d�,k{#u�&�^�h���.?�u]��y!~#eλ��e�C��K1[�W��fj����"�3o�X�dd�9��J�%ʡ�aa�Y��,��(��S3��XBU5C�ww������f�ի/ +��]]]��v�����hl\Hww's�i���Ҭ�h7V�^ ��P�U�Z+:#
�:ޏ�ba)����q�(:>@,&�x(Y�f4�]���9AQ&��9]��V���&PU}�kFQ���u�[� �/������F�0�-s3�g��ܽ�Un�����/ +������d���l߾���eU�~�at��D=�h�s)�����+�bN~���l�O\KN)g{&2���o@��?6C5�R���g+��9�9�ՍJy��C3�=˲�,K�f�=1"X�axx����W���Y��C����n��
���x<�…=�߿� ֓H4���4�"X���&�le���d+- 80� uE�x��k�U��f�e�"Z�U�l*�����`T)�'�`�AV�IǑ�0�&v��HS�XK����~�fzI�R~^�<I+U�� ��Q�/a��R�J[�MU�G?���6�W_��S�����7�ӟ�'�h+ �T%���h]7�����8�che4��i4�(��6h,r$�e�^���Ա��$���X��(���1�i� ��$$i�%I����GL���S�K��2��"۶b�'WM7����}��sâ�V�g� ��Yߜ����@`���$���y�Z_NUk�c���*w��m>��?���='��2;�$���Hgg�ׯe׮�tv.!1*�2s�`�<QkP����z��c�W�=W��,I�˲���t�1�[^��t�y`�b�0e�{.�7@U5���*� �u#����\�M�!�����ϢEu�^�!:::���NB2�D"AOO�bÆ����'�-�"�K��f�ES5Y���?�ܛ�nA��pLI��~�F �������bY�'��B��q}Ns�%lM�V��*Z��X{�DZ��h�/�!ي��Dl!I��`DZ��FQU!~���>�n�雤R֬�P(~Oq-ZLCC�_����ŋbW�V(�J9�b�)����c�8�\�w�q�R�d%q(�cS,P�ht��X�*�86�!�j��wMS}!����+9��61��bޟ�͓��I����\�b1O���J12�p|Gژ/v ��zi�@�%��\)�r�ů��]�˯��c���E��y%���^��K���}SQU��\v�z�{��.�]�n>��?8)�!����D{{ �׿Ȟ={hk[L4)K۶M6;�gȎ���G�jY�s,�n���xUϛ��l���zs{.w$c:�E�������o�������Gf�L\�!�M�(�h��͈��B���JP8|� =t��Q֬����5�ӍP��G2������w�aú�W�ż�I.��0"D��Y��;l`Xۏ�#.�]���]$YFA̹Ɉ�4n��̙ؖM$��$!!K����2|hhB|�]���F̘�X������+��,����M�����9 2�2D���ְ`��F��6��`�hv�)���`I�[o�g"�>�����iBoo�����߅����]T����ض��G&����A��K�_�A۝8Vl�G�F�H��Z�e�i4M��v8�j��ׅ�r"Q7N+�XUJ ��Xj�K��*��"M�K�˺����S9pϢ5{�,K~�ݬ�Lh�Jd���t����q/��τ�QXS!I☻vm������1W\q�II-����fZ[�ظ�E���OK�Bb���۶�f��z�Xl�x�0���v�\E���ͦ�$y�&neH��u�����|��*~�ޯ�,�%����V�7�LeY-uq��S�"+�ZU���Z���VU8xp?�>z+��k�\FWWW͎:
���)���v��n�%Z�L��l��7 �'([ n;F�P�r� n���FH�ɓ(��1��|.��y膎m� �jn��m1��c���=�gtks�L�%Z/6�L��P#��/�]�-� @������±��,l^��M\�V#���ů:�� 6J;�S}��$�/~��a>������pA{��dI?����C�¶#��-�V�E�o5��r`����Gy�㥑$�x<U�9q���0f�R 2u#�ج�QA�6��� �4q��m��/����}�H$R��Bdk���WĝR>�L�LY����Ȭ��c��A�c� tUU���*�T�"�3�B`Ħ���mb���c���c�F~�&~���媫>\�9��|ZZZhnn`Æ�8p���n����`�=�K���0m��}�Q,����Z� I�hbΛ���5���%�M�y�X�&�7 8V���,�f�7 �() �����?n-�,�D��嵋�4&����
U������w��,�f��tw��7 �!!ӐL&���d���lذa���c�7�g �/~����N8��,�3Ki�#:܂1܀1\�1؄wD';�e��(���X�I�.B�P@�5d�Z<]�TBBF���1��: yO=�C �h��ҥ�d��(C#G� =����*�~g��|��.�Ѽ�Ȭ�J�3��#�^<ʢ�s��I�ו�`���9ɲv�+��?��"���~D���O~�Z�,Y�td<�Y�t)�b�����ɕ`۶��2�0��m�����7=�%�ϕ�f%ߛ [3X�Ng?���ϻ�F+X����,Xg�Aױm[X�5k�;p� ��帿z�G�P(+i�9)��dz8�^+�,�6���ڶma�֤��@�n߾����7�a)��5e�oȩCkk+��ul�����k�\�s� ���'�Z+��Rg4��nR� � �B!�WDb�DEK墪Z���q��@-���x����gw��%�����ۡ�*�U�����O�Ec�˕W^Nwww�>�3�P���@2�d��n����ƍ��k����b<��+�/��� ���ԅ�DhtpN��X��\��h�v�Y̢�shp�P���w9�#1����"���L��@��H�6Ѣ�,n� .�
�%��A��L��
E.`i��h���׽��T7�B�v sxp/��I������υtY�1�ǵ_��}�h(+oq��4K[."j$�\�O%��_������?��ly<Od�����CC��O�����Ә�K�!�=�+</��� }c,�_���D��슈ȸ��m{�0V�Ɋ
K�cAL�h�����<&x��-ϒ$�͎��S��-��-Z�g� �r0�0�ˊ4�<�o����&0��T�9*��}b��_O�a��9<ϭH`&z��]�-]$B��㩧~���/��>Q�y��z����Аb�Ɨ8|x���Β�ՅaZy�7@�u��8e{��-ʕ6��c�ƲL2�����\O���Ȑ_P����iZiE�U���d�RM�o@�VIT���g����z�+�����P�O(�CBf!�H�x�v���ƍ�����R-�o�灬*�5v�Ѻ]7p=�dIF�/G�$S���Z�lXBGd)M�"���\�Q��a B��I����,�i��`�́<�Wؚ���V6����R�jD�TtC�&@<�"��Q<b2pl/F��>�5��b�M����*�����c�� l;B�}�TB±^�ad1}碫�?����#���'巙�GQTdY�P������9�����P��!,]� Ms��_�(�,X��|�@�XD�e��:fߞL���8�/,��i�����޾<�`^0h��>:x���C���m� ��+O��؎������|�EY�`-�3������8��={ks.'����h��D�ie�2�)��<B�z�㕷~
wi���K�۷���g�欳����?]�1CNM�a�Z��� È�ͦ��A<�h�WK]#��u]�X,Ys�(:)r��C<�IJ�9�|M�e��E��+�����:3������N�J�y@*;�N��h{~��@�^FOOϼ|.�;� )�x<Β%�پ}#�7o����_�Ύe�F��ǃ � L�Eq0�WW�@"�������>:[әX�¦�h3��k��#�r��8;"ȻR� /�淲��<��ˤ��]b�8K{.`�K�1��jhF �H=�.-IF�@��m;Ȋ�"+�x���;�W�KF��p��-��bo[��X49�K��""I��Y\�!����[ \rGFyᅇؽ�)��/���[��+��߿�XLᮻnA�innG����0�-��3�f��\ ���X��$����]����'Ș�8��߽�k��<�x,�a�ʊ��, ���-J�� D�m�H�V��o4�f`#�Y�zXy~�����0]j?M$fo{��|����gرc#/�x?˗�p���Wu̐S��"������ $�us^+hZ �͒S���_�B!�m���e�ض5k�H��Ϛf�'K#"b���b{�3��mϵ�����g֍D�3����'��۞C�;� )�X,Ʋe�l��
�7o����Dbf,L,��s���t&�B�Lf�T��t�����UAQE�Iss R��6��,L����z-���>����Yb�sٻ~��a� E��n�Y0q,=��hʘ1���
���Y�m"ޜ 7X ���^���D}������$�"�uu�s~/�,ZO׮� ۶���}��P���,Y����(7��45-dѢ�9;ɋ�\�!c�E�T)C���7����ȪD�c󴊢��Qң#�Z���l����Q6n�q��ZJ<6s� �m�"��zn�
`�p�7�*���aYVi�v6����3~�u� i��Jy��eR_�\S!�e��;7���?笳:���t̐S�@���� ��{)�HyI��&۶��l`^ůe �tTh�N6;Z�ǯ��o0�iF�C+��5�"�.��ÀG2�0�) ��Y6+�g����C<��45I~�s(~g"�!!�F9�lذ�W_�LKK�x��Z���Jݞ�m���O��.�L$�)Z[:�oh&�H�i����S�R���{@s��}�v�S�i��2�� ��WzLG��3��m�6����������c�_��C�,�x==���RQө�Z��lv����9y�2�ry���l��������� ������F�����ٹ����9���pY���k*�?���~f4{��Grl��bC��L̪�$�����GD��n�C��m �=D�����$"�tv,Ę��Zd;SƶO�X�A��r̪e� ��B�E#���v�"�y�෣LjF�
��b�f~�������s�B�{����Fss�6��}���ֶx�"X̷Kd2#ضI2�P�6a�>Q��i�<�\���mM����-��UK+El�JF_�f��EQ0���(�U�?bm188�C���6�+��,4�*�P��TH$��s��W���W7�ںp� �m�d2�D��(~-?�O#���umL�X�Y׊ (�O�m�Ƣ(�(��lŊ����J9���y�����E�I�ғDpK��%� m�Ъ/&�8����T�(+csܫ�m���q����m�P��� ��k�E��xq7������w! MUG,4�8�C*Հ��躨|8��,O��u��A}�Nz�f�n,ۦ����4�쪪`�v�]O�{��uEٕ&�.�m�z�Yv1 �-Ӟ��~� e�g�/��R5+�]XK����Je_�A��ظ��z��xY�*��%I.�dV��9>��'ngժn>��Tt��ӓ@�_�"{�쥳sI�1S�ynI>����`A��T׋�*��g�o��`Y4� �L!�����s�u]r9a��J5���*����Y{�.�H�Tb��,I0<<Ƚ�~���h(~+ �!!U`�/��4[�n��mA)�ql��ab�Ĭ���b���-š��4��"8�@�f�E��2\<�� �G5�*^��[8��3��$K����vh��k��q~3v�]��Lt���^&��24:@]�iR�T��9��#f��⡲���>��/ٱ�Q���Y�x�!�===�X����͟p��o�Q���q6�x���e�dxS(dK��ດ$�݆'xf���aL����^��i[�TkQI�v86|�l�!b�8�o�Ρ�pU�e�Χ��uwR�Њ��e�UM�0�e/��Y�J\�=OT�������t&3�$I$�qNڢoY��qV���<�]�6����E���O~�� 9�imm���� ֲk�.�����;){�W�\K&�e�T��E�2ؐ�m�x�n���hQ�dFQU�dW ��L�ډ^�D��:s�� �NE-�yD4���.Ǖ~�XV� ���W������o$I I�Ns�]�ƢE)֬����0�\BR%����]��/>Y��%�B7"��9��&�����؜�؍�z�v<�e�˥��k����j ��e�x�AFє�*���;�#ZE�g~X�D��`m��N�)����q�h��Pl��7a�h��N�x���^�x�q��9��`�@6�>z'{�>͍7~)���F���� V������ �E<^~�V�P�qL"�(�qN��������$dy��������!� ��dI)���}�]��|-I�r<v�����,^�����S�]�Xб�dbjT{4M/���`�u�4����e��wym���."��I�`�P���}�y��ʲL����:��k׫<���ַ�͵�^[�υ�Y���������kٱc ������<��Q$I.�)�Z2�Ҵ�93��bC.5kTܣ4?���(���>k8�Vh�,��#�<�#�AӴRwG�� ��^�s|e'��(/�x�Q�(�'�����,r�m�dɒFV�������9�3�P���M�J"x˖W1� m�ڷMՈ�#��֔-H���Ls<���a�i��� ����D�ղE��y�G�Q�(�z�`�v�M�PK�0��H�$�6��~q7�uK�O�,nE%}\���k�l�+�]������/��/!��q��ڸ����?�����\D�[M����[����(�f�t�˲L����l\L*��[�t g���#�
�w>�1{?�;J�j��uM�|��4���lY�a�~ֲL��[�g_�V"�=Oa�wI� �6mQ����NҹRXT}Ewx���S�HW�fG�4c���<�ݻ_嗿���ދ��G?Rֹ���477������/�u����S֦��#ȲB4�� �����P�h��38�3�e6ED�� ��ʼnmϳ�_�?����Q����y��C��>~�$�J�3`��%Qlijhgǡut6�����hL��_~�+:X��Ctvv�����8$d�h�ƅ^� /<�޽��� lݿ���.��Z��X��Hd���"��vh�b�G��RUt6E�5���=#�I�3��ȳ�`� Z�#�HEU� "�0&���g��tn<H��O]�y�L1@.���m���I���_�����|������W�/7�C�$���y�����p5_����c�6�BUU�Dʙ{�|Q&�� ���a�b��KV���=�U��}e�� y�9��0��3�g�\.M�H����{�%M����Y�ql�����2 ���umt}�Q���DtyU��s�e��J��Jr�|>K<� �= (����Ќ�M��سg ?��?s�%og͚�e�gșMSS���_�"�7odɒsg��f2#�fX|��|�SD�IDAT���<�Q�54�lv�ϸ._���B�ޑ1��9�PI۴��~'�]���y���Z�������4 T��[ �$Փt���*��n`�����ן��՗���>/�{�3��!!���7��E��l��y�7���t,Ùc��LY�"�d��$ID"q�U�ޖ��V�x��ܻX<No�*�Ý n�̙8�������k$ d��ۓ���1I�(����>H�Dr�Α�.�̤�G����X�-e1A��u�~/� ?��w)vr� �
+�!%dYf��~n��������ȑ�S�91×�+9�w�H��aD���_��G>"��"�Y���2<z��C;Z�A�"4^`�&�m t-ʑ��ܤ5��Zs��Y�����m��߿t=�Wi,*)xI�D4�`xx��GPW�PqD�����IFF�&܏�}j�ٳ��n�&�W��}�Қn!�/}}}\}��h�(����8��H��|�;���,+��� :�\2�Q<b�DU�O�$��J��q|�Q�3Ào�76].B��0"�f����#�Xi�|���-�b.Gvo�w��"���R�����5�l�
pHH��u���[ņ kپ}��ݤRu�R dY&OP�b�1VymH�%ڐb�dU;��D#�gdt+9�����㫻��O�Q =R��Ŵ�`@���:KH�R��U��������+����~��� �G��'�fɒ%�n�rz!�2 ��mo���� �I*U?��d2�(�2c�x:J���V��u]�T���x��1�?�6��|������uA��G�?L�.����h꣩�}�<�p�.�Dx9TR�$ �u(��b�m
Hض��e��<��4�d�#��I<�"K�U���<�����[��Ͼ�5�\�����5�� 9��$���z,�bÆ�ظq=K��7�{�N���/~g���p�B�|'���-���;��*�e�R��-�,�ϥM;�ڶ��ye�P���hE]��Ɍ����˲��i�ߏy�[�g���hkk �s ���Ԑd2�����&x��;ؿ��J�$ц�������L$+ed:��;��c�����c�%�E+�W��d�2�lqb%�۴qL#jLٞ\�k�����3�$�����|��c`�T�Un��D"#|�cW��7dZEa���������>Ş=�J�
a`�L9{V ������D��|>��� �B~�j$ �c�dr���$F��3\
�<��г` mmݨ�e������G0�[n��aDp]۞�
�y�b���c~�s��]XV�� �{K �A�g�g�n�����/��}� � 9��$�E�q�5W��i~�����I�������X�1::4��W.u�͕x<�i�Ͳ�o�EL�H:3Ķ����գ��*F@f�_���^Y�G0zbQ���r���|>�-��#��h�W(�5 �!!5����O~�c���<���ٻw'����7���jn�c"X� ����oh�TԂ9�( +}�����������d� �����)�`���G�H��܈&G���3�KR�;���V�e��,� ?��7H&�\u��������e�U�V��o�o���/�}�&,���yF�j��\.�aD0��n�L���(� ���J-�TK-ҹA�=F\��:���A��c �l��"C���܉3���y޼fc���Xe����%�����t�32"��aDI$��u�d>���y(��������*7���\w���]�?��3Y�Y�h!W_�M�W��>�Y �F�*�0���҆�Td2�6�kAp<�2K��B�PU���.�z�!O���"�hɌn��q0���j��6�%r�,��b͗���������/��5�� l� ���(��}�ܹ�M�6�L����0�H���s0#eelNG��N)8~��S<�L��<�h����0 3cr`p;�^� 3g"��i�y�xd��� ��8w�ÿd�{ ��4�|>���F���|������MM.k�\�ҥKk���ڠ���e�z��7������,��꪿D����6j�r�(€F�Ul�X�SU������
u�u‰]���õ����Y��l������ � #R�b�R,�-�o��1��`Y��`��d�i\��0"D�14����8U���Ҩ�>�M ��+lݺ��o�vI�V����#h����d��ٸq=��gϒ�;��D\W�toO&3�,+���mw��������DĠaD����3t�ڞ�:p{ �����oaZ����ǃ��a��[,[���՗�����
���y"��x�B�����Vq�4Ʋm�B!���~���n��E�m���7�ŢX�*~et�HD�v�c���4-1C�t�b�H�!^��լ��`۴xb�s��Ic];��P(d�4}Na��.�|��&/�!U���͂������.*�;���c�b 4m�� fR�ƍ�,�EځC;��#?b�'iy��Ѭo�#�b�h��K�8����.X�{45��;.�<ϭ�;�R b�l\��$)ضXp���t��90�����7@�e<OtĈ���o��طo;w��m>�����+�!!I�� tu��~�Z���͂˫��ՙ̨o�$����y~�o�>TU!���L������3�Gٟ�/��zIX{�K:=�;M�nxU��)rī�&����� w��]z{X��Ctt�QG�$\����#mmm�^})]]1�~�nv��F5c^���gPU�&�7@��R�pf��b��>�F����h��D��vD������x�16SB�%�i�܅�� A.7��(F���SU�G?�'�P��̙���m|�K��������&� :�x�;� -�R4�lx��� �ͭ�KY�E�-�xpl�1��|��F�ňŒ�/�
h��B1>��?/��u��4��G��(�J4'���|3���;���*k���r~��;\s�%��}� �oH�H����я�F������J&3Z�߈��h�A6���q3��y�te�8����|8Njג0 UU�d�~��K&3��i5��.����� #&�(088���~�� �~�Q(~kMX �g��$==��߿��דH���T~%X� ���AO-�`�R�8�i⺎?S���Au��q���!RgIF��֔�е@�d<u�呷Ә�P��y�hM���(p���&��r�
�oHMX���d���{nE��Y�x��kU�1���0(2�E��ױ�x���o�eIZ\E34Q5ə8��c;�yz���h3��/$�s���eY��@�WZ�� ���YÒD���4E�J�������~,G����Y�:R���yH�sٵ�U~�����K��%�| t{�3��M��5�~�Z���K{�""�HţVA���V�6���;t����wq��� !I���U�u]L3��h~>w���bsѶMlۚq#�xT>���DG���5����5o��k�P�����$]]�8P��i�i���E��?FQ�&S��*)�%���9Rm)�]�k.�=��к�{���M�"IFG�QU�dbU�������� ��j��C�R;�,Y�a�܍����]X����sb�`iY�b���=lX�@�f�A��f�-q�!�CQE;��y�������X�w� ��0����dEQ+2t�\��-FE�K�ײ,���B�4�,I �j)��;?�����G�<f����vm������"֬Y���Ԍ��ZZذa-����e�X���,K�rr�4uuM5���
!~�۳��D��A��1��@�e\�ex�(��#���l*��+�~��p��{�VZZ���2������x�
���D*��E�N6n3� �3>�,ˤX,����%T�$��bi�20w�EA� �<�i�K�Q4����5��Y�W~�*�c�,��o\�繥 ��>#��x����q�q�� +�!�B�R�����q���.�U;�M.�!ON�Y&�pd� ��?�.�E2�{���Rߝ�q��h�$"(�"r�e���mb�/_œ].��hoY�w�|�����������"��\SWs�����~�cc۶/x�R�g�բiF)�S�4?���q�Iy���O
9�LL��ϊϝ;7�������l>�я��/Q�k���V���ذa-����x���e|o�<�m$�Z�gM�J�\��b��cWT-��`3�P��n)6j>梲o�5�zJU���}<��44x\y�����w> pH� $�J���ɾ};ظq������bV�#U-�*a���"�p"�`~vd-�$_ȑH�Q,I[�M���:±�V"ر\�FsǨS�ѕ�d=�n��a��П�3�m�� ��V>��kY�$�:
�?�-[�$��o��qb3V�c�`a7��҃�6=�f�1o�iX'V��õ]̬��P����6m���1 �$o<�}��,@�%\���ss�=C)�R��q��d��亮�����yL�뺎/n-,�*僚f���R�YTX���]$�3@� ׵��rq]���R)���QU�_ՙ|���x���y��z��ǯ=�_��3���6Slذ�Ç���E<�U{�W�2�Ǔ�z�|>[q�9X���W\;��W�A�i��>��B!�,+������^��z��rU�������wQ_o��g^�+$�!!'�d2�…��޽�M�6PW�N]�D,f��6�Jp]�ϲU�����ܡәZ��i�$�������8F:�Iƈ����B�Y � 6_`Q�Y���Ȋx_���L"8����oo�ȑ���}���%�� �w�-[�$y�_I-Z0�;��ċM������dk�Y��[t�lGU5<ϱD8��`�6���$E�-��[^�AZ�:�����d�Y��tJ��@�:ض�a˲�m�\.��
Uo��m��I�����繥*l�����Ѹ�٫�z��e�
|"U�NE�X̗����������ӿ��s��ԧ>yҾ?!����hhH�a�Z��*�E�uDZ�Ǔ��R1�4�f-¢�-�GM6��e���U�*�x� �%}�+Q(�0��-.���I�r��o*e�����D
����@"�`��~N�&:H��K�=����� i��糢�1--.'F$)5;��*x�ƌ��E oe�x���!�{-Y�{%X�$]!=2��1�����Fi�h&,�bf��'�a߾g��?�\(~CN(˖-GUm���hZ# �L���͎`����e8td/�"���KD�����EI�Уb��s=
#&�i���]��M��g���Tia-�eLt� ��C�E��aD�4U��"vI.�?�++�R�h.���0�D"1�����E,�"KT�Y
l�8�^�����b�)������3��͊-\��'��������$�׿���Ӌ`!~�؂Xg�m���liTh�Ϻ��w��Ĭ��m[��SC���op�Q��y޼���Q�v"X�۞���ӿ ��C�{� pH�I"�H���˖-�ټyMM]$uXV�|>C2YB�B�� ��"8X��U;�M����/l]MK9���w�2��:�U�:.�l��e 6��H���DGi7v:,ː��y���ر�Qn��K������$$�x�.]F4*s�7�Ht�����y%��d�n�Ū�AsCC{G84��X�Zj7tl+oačR�k�\�]O�fߋ(dL�x��X�w!�>6?'⁄��O4�
6�Q����������0 ��i~ �Z����<ϥP��&�Z����A���GQ4���+eRI�>��=,]��g?���� �H �7lx�Çhj�`�%��<�e�H�&uM��
�B!���W��m�b1���F*���7y1�5���d�;��D.�����w�����< ������� ��I �!!'�X,����l��2�7o�������fB1���妟/�M�X��TK�X�w���n�$�Ѽ� ϼ��fi��#:���Y�E"�(r�Ga�G��M<����*�������<�ܯٲ�!��O�Boo��>BBfbɒ~�����NKKmm�X�C.��c�fs� ^Qf�x�B��QA��6�iMFK�I��rp�A���0=��x�ۯ��u��{E��,�me��X, �R�.���� �H��$I�K^նA˲�ך%#���lY��\(~CNB�ذ�E<DK�B��H�J�ߺi���j�XT��X�m���|3�HY�N�bBl�U��:��Y$i�� � �bM��V��>���y��ij"��=I�8$�$�F9묕�[�<6���u����f�?�b1_�����t�֪�A�J�L�`���x;;������H�"�]�%?�'ZEQe�� �:����%�����K�*�?� �7?�׿~c(~CN z{���h�_����>�D����X�V�f�ډ�4D���v���*�E���y�r��)�����9�����O�"[�)��WB�1H��-��VqeY*�!N�� ���}z��m<��/X��%���������T���/��~Z[b i&��� �/�%T��ي�/��a�WDӌ�����e�$yZ� ck�|>[�6�ol����Bg��ߓH(�CBN"��{�ֽ��]�hk[Tuk_�x�K&#�#��� A��\Dp�ښH�f| %�u�0wm�PuEWD;t��X��QLQuY��z�H_�u�6.��b�v�ri�z����X(~CN9.\Doo�����Mg碲��`&��]�lE[�MưM�`��� ז$I�Uyw+���_�jJӧ 벚jl�<���<^��6h�s���e1�c�F�v�;o�_����2�����\φ kپ}+--�46��u�*J�x�UT�:�H�s�A^�i*��p]�\.�z���"8��W'��E�`xx�� ==q֬�,�'�0�2$�!�J�/}�x<�#��ʱc��*M���l6��G�4���@I��Db(�B>�)�Е�e�8�]V�E�d��y[#ţ6��`$�l��7q��^�s<̜��9��{6�E�KY�}����q�-�9_z���}�o�R(~CNI.��b��������������i)�y
���mbs�1�O���,�I���<v�f��{���@Y4�f!�Ҽ�э'��8�UA��A̋e�>�u9xp'O?}��>��O���R.g�}6�_�$�/��k������F�~Yy���ⷚ�)Y�f�+t�x�K6;�,�e�M>E�(rx�z��Hd2��u׿��g~O�
pH�)���\x�����lݺ�����R 6�"�b���[.�W�Ů���h�|�uH$�k�TT���`羍��.z\ThT]-;"�s=
�ZDd��{�oh[�¶�����û��"=�Ҋ��#���޽O�կ~�%K���s �%]]]\x�*������L���y[�>ϞÛ�v�w��^$����z<D��]�Q4����rt�1����L� ��Zm�=��| ���T5O[}x��'�WQe�UA�J����ؽ{ �������ÜߐS���V::ZY��Ev��΢Eg���,�M\ם�d���Q�� �����aDg���N��i�h��2I��u���atݘ��|>í��?��Y��Ctuu��5B*#�!!�����]� /<�֭[hk[@,����=�#�&��N��=���K׵���)��Ĝqyb[B�.����cd��FE%UW�\�0�vm�B�@�!���4���g�!�4�����n╽�Аl�)َ�z���7q��K|�K�ݞCN Z[[�����/]����� 3��8:��uC�?�2�yYZ^�$�+�Mm��1��<�ZJ�p��>@a�H��.z�� ��xl�&V�-b�*o%�VK���ef�� c��s�<�={�p�=���}=��G������(�����lcݺٺu }}�%��{qn���ZT~�\ρ��L�T��!4� �L��=Y�)�~�x�d �?��߳|y;�W_Jggg͎R=a tH�)H<���H<^��Gn�ȑ�s?������6/I�HEQ��28��-�Ţh�*g����N-��/c�M�qT=���
�\q�vh��(f� ���5���fC�~�xCG9��a���9v�(���C��6�/��ߐ�Y�Y�b9?���gv9��Km�ǎ ���ۉ��f�.�mY+F|��<�-�@!S`��{ݓC�UF^�x�W�J4Nz}DZ���km�
�cW��A>��a.�={�r���x+W^�愿jY�t)��jd������ms֟f:�maۓ�5�6K�W��A:E.���s�<��ѡ�k��<�0����Y��b1Ϗ��X���+�������7d�8$�%��/}�d��Gnc``_�s;��8�b�H$Z����<6<�.�IMuQ#�]K�( �8���1�P����`l���
�b�t����H�sD[�Ж��÷������ �o�i��(,[����{�����ȑ�x�Ǧ]�`�4���(�"*���!���9^��YB��)���[��X������ ���S��x<��S��9��^<p~���f ����m���W��K/�d�]cCBj͒%}\}�e�{��^Ys��H���1�+oY&��X�Q��/�Z��x��=�aD�ǹII���S
يf���X����-���W\B{{[�>����@�����ΪU�~� ���f;I��Zh���t=RU��TLv��8#4E�����"!�ugv!5ZD��U����[Ȋh�v�b��j���Dz"o�"�2�|��z��-�|����?\І��ȲLSSo~���W?Eǂ^�D�Rw�J�a��1�`��F�@�%$$��"�����6�{�q�Yo�2�S��P�RU�0�`!�]כS��뺾I�̹�{�l�[�/W_�A���ߟ6:.$�TF�$���Y��� ^dӦ ���;c�,�����-ɲm�GU+�:��\e�>��En����V}�
�Q��8��3�3Q,��я��U�p�����-\[�b����S����_MM���w��n��'�8è���w����`a �aT]��<X�`9M�K���)� Z��@��h�bVT�]��.�H��6�eE��m�߽���&.��,]�ߐ�Y�Y�r%��/��{���K��O=z���9����ȏ���v>���X��|�,8M�^��S��;ш�N��"�;U����nϞ��|�?p����}�$#���� Y�Y�xW_}%�:�=��'�5s;t$�㉊�f ~�y�0��,�4D��<FFj/~b��Y��
��g���7g����S�P���444p�u���"��?g߾�TbT8$F��yq8�$�Dp˲( (���G���j*]��xc��x@K�FT��F~4Oa�����BE�޿����">��ϲj�*jٺr��e���?�o}�x�����(L����s=}���z�(q��P�T�������z���yH��,���GU�)�+AT�TLs�!~����r���w���!!�7c"x �:̽���,L�a-6�4�� �\M�_�;v�
�#���y.��CFd^�o�D�q��|E"X� �Ks�-��ʕ�\~�%��=� [�CBNb�K�,fǎ�lڴ�T�����Yť�y������\�d�#��s]�Lf��F�5i��Rأ.�
���ĈL�H���8d�f�7�Qԩ����/��.:�:��U�q�����!g�$������e��}���M�M��+ 3g�9�h�D�������jC6޺�r�.^5m��8����iUWD����\.[U��qD�m���<�c�ޭ�r�7�����w��0�z���SI�hhh������_d��m,\�b��YD��rE#��;!�N�$$I�X̓ͦ�F�Ft^�NTU�4 x������OY���a��;��7�z�0�
��KX 9�hmm媫.���੧�f���̦݄�U�X,1�m��,cl��wNks�7 ;�b[�6�1]?�>�����)ܡUT��w��� Ο��xHȩ�[�����s�[^؂�XԺ���zH���Wn=<쬋{Pea�r��}�������i�cX'o)�~�N� *L��aYc�"�h+���M�����=� �o��$I��/�#�8�C�L.��0j%I"��u]t=��(��{�Q�o�2k>�5�g�%��"�e�8�%�044��w��ׇnϧ a8$�4#�H�`A{�ngӦ�$�-4662ճ��\r�����GDPro�$�&"�У8���F�����9�:���5�7őd �`M� VP�������m|�#��7�����,�]L[���x�BGO�b�q� ��)�ٽ&��&���GS ��F<����THtݨ:i.`>�m!I2�:{�f�#aY➡(2{�l��?��������?�� 9�ijj����u�^dϞ=tt�񻭊�"�Y@�tt=��:��?�ׅ�d�i��TUG���z��ԆX������f͇�����$d�8$�4$�L������;ٸqÔ"��<,��4 ��V��fG�u�h4^j+��N��ļ&���(����b⽺v���DKg�� ܡUE��s?M���5�� /�o�k���>�z��!����&�)�?�e~ƤMY�Qk)����&b3�B!�,˾�|u���
`�m�s��n/��ӡC{��/��?��7s�e��]"!����immbݺٷo?mm�Qu�ᕪjض��Xh��n���C.�FQTC�X̝� ��h���U���C<��ʹ���Ys9�ݡ�=]pH�iJ*��Q{�K:=J,�t�/���m�b��V"��.QGc� k�e��=d��I\��̛�q�w����yB?��GH�L�ُ��\.hC^s,]�O̊��ݏ��2t�ݍ, �g�uْa�Y +�e��NJ�7���3��" _2��Zu�7�B�{�i�D"�/�eY�u]�l��>z+�|��\uՕ� _�k�����X�~- �j&��G��R,��y8�H��!�oYV�F㢣KV(r���ߛ���T�qq˿O�������x��ij�+������y=���
���Ә1���nj�\��4 8�E<�:a��Lf���RI�/�GFٹ{#M ���灮��EZ���Γu��.xI�-�%$dU�o=Bts�/|� ������Y�bF�����Č����`8��AF�u�,c�����-�܅�7K.�G>��["��`���$ ��(rD"�aI8�ˮ]�y��[y�W�]3����ӂ��VS���� ��m�D�d�)�
�m�3�ѹ��q��ѡP�"I2�X��a\�Y�S�w%(��e��gU��4����S�����������y?����`����tuuq��,c�ٳ�� <��7�TUmB$��0� ˊ+`�cW��z�F9k�������qwC���"IH8��S��4�&�/}�Ka�7$���K��=�r�y��W����$�IB����6��Db3�q�"s��&�W� %�;vl�'��⋗�O|�d�����ΪU���?Ķ�� ��ر�R��,���s��˝
av%�/��_i���D�8�='�JPÈ���.����"�2����B�{�V�CB���$ v�{�6n\O,VO*�0�"���_Q5�(��W�-�$K�ձ���/yj���({�7�q^+���H��~�2�Gr�ɗ��\pJ,�CBN��\��7x�W�sdt���D4�����w4p~��H$�f<�e #-1�P} dmZ�)�Tb�3&~7��ӿ`��6>�O��r����N}}� ^d`�(�����1\W�Q�q�mkB|X�L��)�eI������UߨE��}�v�� ����r,X0�2?�+�3������
ZZ�z�n��9Q�k�-vcUU�� g|%�P�R,�m���@Ve�v���de��)f�<���9���|�+_� .��BB���/�c︆��`�֝ر<��6k���W4�3��+^ �V��K���@�>���,]�� 7\��JH�)�y��%���Ba�?�CC�P!
Eò,gn�H�߀H$�o�*��±c<��}$�P������3�D"A��o��֭����M"���� ��u}fQ Vq]1;�(JՕY�KX@E#B���B�ūl��}C|��_�MozS(~CB�aيe4ǚy�_3b��y6�����T�?���Pe�sx�����r*BNj�%K����??tH�i��J�C47��Eq]�H$wNf��[���e˲�<��x��缢��'��9����_��3���uRSZZ���'�������```�����8�f]//�^�e #�����٪wp]�1 �΢���f���w���/����y�;��ߐ�Y���K����/I�:B��������s]I:5f�AT�g�Y��3�O?}K�4��7$� �;�<.���
{y��_222��k��F�X�0� p{._��bqLӜ�*�,�ѣ����������3�S��RS����H&M}�v�=X�AL9�r #Z�BxL+�v*~]�2q]#EUt��`l1��7\p���ن��i��=����������ݻ��.e���<�o�>�g/fUU��� N�ߝ;7��w�lY3����N�釄�6�{�\v�P,���'�"�M��.,�r3,�u��2H�T����pS.�j�,��� ����in�|�^�)�8$� ����/|����<r+ǎ��v]�,��2��@˲B>��X�Ӟ�����e������?X�b��~�!!g �|�����*���Wػw���ql?T���}>&{Ό�8� ��~��gw����p�O;$�cժU\q�0��<���y4M�P�Ut!~G�ey��s��b�y��$�W���������3�P�����RI��������ok+���%Mӫ��e�h4�,���\�<,"�<\��g�e˖����n�����}�!!g_�&��������Os���i��m[s�ߟƪ�S��<�c׮Wy衟pᅋC�琐9p��g�z�%��Ay�v�²�e�/<�%�E�U����4����=����l����_��s啗���}B>אǩ��
��7���D�ٚ��@G"�99�J�L4G�e���E�$��m[<�ԯع�q���/��W��bHH��\x�|�;��_���=z`�{ũ�=EQK9���<�={�p�}���o^�u�}�d�jH�i�Yg���+?��桇n�u=xf<�#�AUU�ѹ���XiMP
�,?�������5k.����|�!'�S��2/��q���1<8xhN��<�,�(
����l*��R��,��)����/}>�!!5B�$V�Z���?�����)7�D �r
�<�����]w��~����Ǯ>٧rưb�r���re����gd2#3�y!~��4}Λ��Ŷ�bЦ�X�s�M�ҥ-�^�!��:O�grb9��^!!!�F<���H<��Gn�ȑU�x�G>��� &��\n�`Q��y���0ͽ|��ׇ�7$��Ȳ̊+����?���<�_ eT�O�hI
��E$ ���޽[��o���x��>͐�3��K������z��ɴU`��B� "�hM7Т�(�=�*�i�я��+:X��R:;;N�gr�8u�^!!!�N"�����s�;�m>��*,�,�enV��v詌�d��?p��\�'��� ��BB�EQX�|?������m�֑N��˥1���>�IxȲB��#�˒N�a�s��'������K?�+BB�I�X�d �\s%�H�_��?��B���a�V�D"ql�²���4�b���o9��n���R���O�rB����F 9e����?Qy�[/����rS\W�W(�B4Z�s�lx�K>��u�*���p�-����k>L�)U�
9q]�u����|��~�_hlleddÈ���,�(*���UaYV�6�J��Q�H$>�w]����u��ql�/�=22Hcc+G���;�ŵ�^�����h�v�?ʐ�3�uٱc?�ɭ�v���PU �9�aD��ȼ=�3�Q@�+�Z���y~����쳻���Khoo 7�^�8$�5ʱc����~�Аě�|)�� )'�ȶm������R��s9��K� Dp*U��7�h4�UW]βeKO��Ð�3��X�v-_�ʟq������EFYV|1������ �$ I�}�,�t� �LfE�KQj��D�-eO<�R:��J���Ã;v�;����������0������&"x'?�ɭ8N��� �Ϣ�y� �&���%���&I��g��`Ŋv�����
� y s��~���9z��Mo����E3��2�86�Dݼ?(�E�O��hh�X��C,[�,������y����;����8� p]J��b)q�?3���,�&3�,+D"1CM$$)ɒ/|Žf�������y�K�y�w��+B�rp]���E%ز�x�{?B"QB�e:=�$I�bqdy� zIQG���O��7�z�h{��k�����d�DHH��!��׷�;6�y�&R�6�m�v]�Lf�D�n^���!q�M�D}���՗�|��P����$���Y����~�tt,�����30�
ڟ��hU �����߃�t\�A� ��8�f�����~&8����XUY<�������k������]�� 9 H�Dcc]]��[�{��aѢ'd A�$,�D��i_O�att�������m� �:C��#�!!�q����k�6o�D"�:����\�����G���?�&�T�ի/ �oH�)�… ikk�'?�.��=tuu�::q|�v|[�e�(�����ݙܞo��[\u����7�!!'I�hjj����u�ֲ{�.���b����sA�L�x��1�K�ahh�_��{,X��s~è��"� !�L����޽�ټy#�D ���D��:���Ѹol1�*����!˰fM(~CBN%z{{I� ��&"�V,�.�?`*L��,˨ju��"�w w���\r�����Qhxr����L[[3�ֽȾ}{io�%1�M˲��8�S�P�׿�1��:k�\Fww����BN�  �J���ξ};��{ض�i�Œ�Z��e���C����/gٲP����j,Yҏa���މ�ֳhQ�]�q���$< v��½��'���o��+.?!�!!!����BKK#�׿��im]D$�7�(*�Y���R'�����!~��[hn��������>�M�I$�!!!%&���$�B[�K��GUU #2o�/Ip�]��q�s��W��W!!�0K�.C��<�ீ$�/�XW#�%I����*>�c���s��G?�����������X���/p��aZZz�Ţ�"�eY¶-\�EQ4t]���<����;|�×���s�?���L(�CBB&�`���d��d��\.C<��A*�9���c��m|�W��7$�4`��x^����~</Q��TK8�ˮ]�x�[x�����'�=�CHH�,����Аb��8|�MM]�&�%)�P9z�0O>� R)��r,Xp�?��S�P���L"�J������[ٴi#�x=�d�H��%I"���oep�>��X�tiX� 9MX�|���7��IJ�pႲg�+���ݹs#O<q'��ɧ?�����CBBʤ�����$�׿��#�46Ώ"����΋/��d���W^�…�� �8$$dJR� v�c�&6m�@k��j���$0M����}���󟿞���P����f�X������i����g�U���y��_�lY3��� '�m���TH{{;uu�y����g��+��C�2�P���LK2���w!;vlf���46v�L�jrlI�b��3�������/!�!!�1˗�@Ql��6��v��:��(G���>{7}}�|��;�o7$$�J:::Ɖ�46v�L+
>|�g����z��
-Zx��r�)F(�CBBf$�H�ti�6�̖-�ii�!���e(
��¯ټ���ɟ|�%K���2G�-[F4*s��ES�b���g�� ��m��>{7�����p��fHH��/200@s��ѹ�C+
9r�G��T�⪫�`��P��L&�!!!���Y�b�ֽ�֭[hm]@,���X���ٰ�~�������ߐ�3���~�|��ߡ�k%��-�.jg�c�wO=� ���C�r����������ik[TuN�,ñcGy�������W!3
������Ţ�s�Y�]� ۶m��m!�h����b����|��w��ZHHH��������o}��dɅ444N���N�Em�'�`ٲ��9$� ������:֭{���ч��C�axx����/ZZ�P���J�1R6���|�K��0�<��m ���U^=���l�x(~CB�p�����/��O��7����wS�x��z���*�<r g����>�ٓ�vBBB�s�]�W���>}�v��\�� I���Q���ikӸ��0�7dvBR�T�o�cTu�lD=��=l��_��WB������?��_���u �/�g<�c��-<������E\�gN�� �g�9�֬��:���B�X(��r� w��mzz���>�o%�4 �!!!�L&��׾�� �D0L/�]�巿��]��������������������������C3n�y�Ǟ=[������7������d�~HH� ⬳�����s��1�e��� ���� /�g͚���u��B�iB(�CBB�"�"XUGx��<<�}���8x����?�=���Ɛ$�U�V�����ٟ]>c��޽۸����~��5'��CBBN0+V��#��;½��۶��s�Yছ�K���f͇��
�oH��8$$�j�_����<��m=zp�܎,�=�|���|�s��oH�kY�Y�r%��_��O��2�;�Į��{�q����xW^��d�rHH�Ib�ҥ|�����A~����q&�`�,���+Vtp�����q�O9�4C��u� �������%���]Nkk'����]g?��GY�tiE��!!!g��q�F>�����}3�XYV8r����M���}�������S 9������;���p�>��O�(�/~��������/���=\[�TL(�CBBj±cC��~�l6�;�q%�<r'�4��W�aٲe�*$$ ����w|� ��� dY�;��5�\����{*�@ 93 D�O~r���{��n����reG(~C�D(�CBBj�ѣG���;x��'���������ߏ,��!!!cx�Nj/�ȟ���2_�����o�0��}j!!!���c�Nn��^~y3�zכ���?���o�N�� ��eֆ��@��#]�%�=+p��œS�l/s��_�&������Z��4M5ϳ�^ڶ����u�a~=�C�yVk��ײ,5���G0\3D�D�D�D�D�D�D�D�D�D�D�D�D�Dx٨�.�-�%tEXtdate:create2017-01-15T22:27:04+01:00B�g�%tEXtdate:modify2017-01-15T22:27:04+01:003��IEND�B`�
!function(){function t(n,t){function r(t){var r,e=n.arcs[0>t?~t:t],o=e[0];return n.transform?(r=[0,0],e.forEach(function(n){r[0]+=n[0],r[1]+=n[1]})):r=e[e.length-1],0>t?[r,o]:[o,r]}function e(n,t){for(var r in n){var e=n[r];delete t[e.start],delete e.start,delete e.end,e.forEach(function(n){o[0>n?~n:n]=1}),f.push(e)}}var o={},i={},u={},f=[],c=-1;return t.forEach(function(r,e){var o,i=n.arcs[0>r?~r:r];i.length<3&&!i[1][0]&&!i[1][1]&&(o=t[++c],t[c]=r,t[e]=o)}),t.forEach(function(n){var t,e,o=r(n),f=o[0],c=o[1];if(t=u[f])if(delete u[t.end],t.push(n),t.end=c,e=i[c]){delete i[e.start];var a=e===t?t:t.concat(e);i[a.start=t.start]=u[a.end=e.end]=a}else i[t.start]=u[t.end]=t;else if(t=i[c])if(delete i[t.start],t.unshift(n),t.start=f,e=u[f]){delete u[e.end];var s=e===t?t:e.concat(t);i[s.start=e.start]=u[s.end=t.end]=s}else i[t.start]=u[t.end]=t;else t=[n],i[t.start=f]=u[t.end=c]=t}),e(u,i),e(i,u),t.forEach(function(n){o[0>n?~n:n]||f.push([n])}),f}function r(n,r,e){function o(n){var t=0>n?~n:n;(s[t]||(s[t]=[])).push({i:n,g:a})}function i(n){n.forEach(o)}function u(n){n.forEach(i)}function f(n){"GeometryCollection"===n.type?n.geometries.forEach(f):n.type in l&&(a=n,l[n.type](n.arcs))}var c=[];if(arguments.length>1){var a,s=[],l={LineString:i,MultiLineString:u,Polygon:u,MultiPolygon:function(n){n.forEach(u)}};f(r),s.forEach(arguments.length<3?function(n){c.push(n[0].i)}:function(n){e(n[0].g,n[n.length-1].g)&&c.push(n[0].i)})}else for(var h=0,p=n.arcs.length;p>h;++h)c.push(h);return{type:"MultiLineString",arcs:t(n,c)}}function e(r,e){function o(n){n.forEach(function(t){t.forEach(function(t){(f[t=0>t?~t:t]||(f[t]=[])).push(n)})}),c.push(n)}function i(n){return l(u(r,{type:"Polygon",arcs:[n]}).coordinates[0])>0}var f={},c=[],a=[];return e.forEach(function(n){"Polygon"===n.type?o(n.arcs):"MultiPolygon"===n.type&&n.arcs.forEach(o)}),c.forEach(function(n){if(!n._){var t=[],r=[n];for(n._=1,a.push(t);n=r.pop();)t.push(n),n.forEach(function(n){n.forEach(function(n){f[0>n?~n:n].forEach(function(n){n._||(n._=1,r.push(n))})})})}}),c.forEach(function(n){delete n._}),{type:"MultiPolygon",arcs:a.map(function(e){var o=[];if(e.forEach(function(n){n.forEach(function(n){n.forEach(function(n){f[0>n?~n:n].length<2&&o.push(n)})})}),o=t(r,o),(n=o.length)>1)for(var u,c=i(e[0][0]),a=0;n>a;++a)if(c===i(o[a])){u=o[0],o[0]=o[a],o[a]=u;break}return o})}}function o(n,t){return"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return i(n,t)})}:i(n,t)}function i(n,t){var r={type:"Feature",id:t.id,properties:t.properties||{},geometry:u(n,t)};return null==t.id&&delete r.id,r}function u(n,t){function r(n,t){t.length&&t.pop();for(var r,e=s[0>n?~n:n],o=0,i=e.length;i>o;++o)t.push(r=e[o].slice()),a(r,o);0>n&&f(t,i)}function e(n){return n=n.slice(),a(n,0),n}function o(n){for(var t=[],e=0,o=n.length;o>e;++e)r(n[e],t);return t.length<2&&t.push(t[0].slice()),t}function i(n){for(var t=o(n);t.length<4;)t.push(t[0].slice());return t}function u(n){return n.map(i)}function c(n){var t=n.type;return"GeometryCollection"===t?{type:t,geometries:n.geometries.map(c)}:t in l?{type:t,coordinates:l[t](n)}:null}var a=g(n.transform),s=n.arcs,l={Point:function(n){return e(n.coordinates)},MultiPoint:function(n){return n.coordinates.map(e)},LineString:function(n){return o(n.arcs)},MultiLineString:function(n){return n.arcs.map(o)},Polygon:function(n){return u(n.arcs)},MultiPolygon:function(n){return n.arcs.map(u)}};return c(t)}function f(n,t){for(var r,e=n.length,o=e-t;o<--e;)r=n[o],n[o++]=n[e],n[e]=r}function c(n,t){for(var r=0,e=n.length;e>r;){var o=r+e>>>1;n[o]<t?r=o+1:e=o}return r}function a(n){function t(n,t){n.forEach(function(n){0>n&&(n=~n);var r=o[n];r?r.push(t):o[n]=[t]})}function r(n,r){n.forEach(function(n){t(n,r)})}function e(n,t){"GeometryCollection"===n.type?n.geometries.forEach(function(n){e(n,t)}):n.type in u&&u[n.type](n.arcs,t)}var o={},i=n.map(function(){return[]}),u={LineString:t,MultiLineString:r,Polygon:r,MultiPolygon:function(n,t){n.forEach(function(n){r(n,t)})}};n.forEach(e);for(var f in o)for(var a=o[f],s=a.length,l=0;s>l;++l)for(var h=l+1;s>h;++h){var p,v=a[l],g=a[h];(p=i[v])[f=c(p,g)]!==g&&p.splice(f,0,g),(p=i[g])[f=c(p,v)]!==v&&p.splice(f,0,v)}return i}function s(n,t){function r(n){u.remove(n),n[1][2]=t(n),u.push(n)}var e,o=g(n.transform),i=m(n.transform),u=v(),f=0;for(t||(t=h),n.arcs.forEach(function(n){var r=[];n.forEach(o);for(var i=1,f=n.length-1;f>i;++i)e=n.slice(i-1,i+2),e[1][2]=t(e),r.push(e),u.push(e);n[0][2]=n[f][2]=1/0;for(var i=0,f=r.length;f>i;++i)e=r[i],e.previous=r[i-1],e.next=r[i+1]});e=u.pop();){var c=e.previous,a=e.next;e[1][2]<f?e[1][2]=f:f=e[1][2],c&&(c.next=a,c[2]=e[2],r(c)),a&&(a.previous=c,a[0]=e[0],r(a))}return n.arcs.forEach(function(n){n.forEach(i)}),n}function l(n){for(var t,r=-1,e=n.length,o=n[e-1],i=0;++r<e;)t=o,o=n[r],i+=t[0]*o[1]-t[1]*o[0];return.5*i}function h(n){var t=n[0],r=n[1],e=n[2];return Math.abs((t[0]-e[0])*(r[1]-t[1])-(t[0]-r[0])*(e[1]-t[1]))}function p(n,t){return n[1][2]-t[1][2]}function v(){function n(n,t){for(;t>0;){var r=(t+1>>1)-1,o=e[r];if(p(n,o)>=0)break;e[o._=t]=o,e[n._=t=r]=n}}function t(n,t){for(;;){var r=t+1<<1,i=r-1,u=t,f=e[u];if(o>i&&p(e[i],f)<0&&(f=e[u=i]),o>r&&p(e[r],f)<0&&(f=e[u=r]),u===t)break;e[f._=t]=f,e[n._=t=u]=n}}var r={},e=[],o=0;return r.push=function(t){return n(e[t._=o]=t,o++),o},r.pop=function(){if(!(0>=o)){var n,r=e[0];return--o>0&&(n=e[o],t(e[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(e[u]===r)return u!==--o&&(i=e[o],(p(i,r)<0?n:t)(e[i._=u]=i,u)),u},r}function g(n){if(!n)return y;var t,r,e=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,f){f||(t=r=0),n[0]=(t+=n[0])*e+i,n[1]=(r+=n[1])*o+u}}function m(n){if(!n)return y;var t,r,e=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,f){f||(t=r=0);var c=0|(n[0]-i)/e,a=0|(n[1]-u)/o;n[0]=c-t,n[1]=a-r,t=c,r=a}}function y(){}var d={version:"1.6.14",mesh:function(n){return u(n,r.apply(this,arguments))},meshArcs:r,merge:function(n){return u(n,e.apply(this,arguments))},mergeArcs:e,feature:o,neighbors:a,presimplify:s};"function"==typeof define&&define.amd?define(d):"object"==typeof module&&module.exports?module.exports=d:this.topojson=d}();
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment