From 10452fc3951ba134ab0cc55c57de82f78c421f46 Mon Sep 17 00:00:00 2001 From: vheun Date: Sun, 21 Jun 2015 19:36:24 -0400 Subject: [PATCH 001/266] initial commit --- dataPointInterfaces/default/index.js | 71 + dataPointInterfaces/default/www/button.png | Bin 0 -> 5690 bytes dataPointInterfaces/default/www/button_.png | Bin 0 -> 5820 bytes dataPointInterfaces/default/www/index.html | 32 + dataPointInterfaces/emptyExample/index.js | 71 + .../emptyExample/www/index.html | 23 + dataPointInterfaces/invisible/index.js | 71 + dataPointInterfaces/invisible/www/button.png | Bin 0 -> 5690 bytes dataPointInterfaces/invisible/www/button_.png | Bin 0 -> 5820 bytes dataPointInterfaces/invisible/www/index.html | 32 + hardwareInterfaces/arduinoYun/index.js | 408 + hardwareInterfaces/emptyExample/index.js | 97 + libraries/HybridObjectsUtilities.js | 154 + libraries/HybridObjectsWebFrontend.js | 865 + libraries/LICENSE_BOOTSTRAP | 21 + libraries/LICENSE_DROPZONE | 20 + libraries/LICENSE_ZEROCLIPBOARD | 8 + libraries/css/bootstrap-theme.min.css | 7 + libraries/css/bootstrap.min.css | 7 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes libraries/js/ZeroClipboard.js | 1031 ++ libraries/js/ZeroClipboard.swf | Bin 0 -> 2157 bytes libraries/js/bootstrap-theme.min.css | 7 + libraries/js/bootstrap.min.css | 7 + libraries/js/build.js | 13476 ++++++++++++++++ libraries/js/dropzone.js | 1720 ++ libraries/js/dropzone.js__.js | 1795 ++ libraries/objectDefaultFiles/bird.png | Bin 0 -> 25844 bytes libraries/objectDefaultFiles/index.html | 12 + libraries/objectDefaultFiles/object.css | 6 + libraries/objectDefaultFiles/object.js | 64 + package.json | 33 + server.js | 1176 ++ 37 files changed, 21502 insertions(+) create mode 100755 dataPointInterfaces/default/index.js create mode 100755 dataPointInterfaces/default/www/button.png create mode 100755 dataPointInterfaces/default/www/button_.png create mode 100755 dataPointInterfaces/default/www/index.html create mode 100644 dataPointInterfaces/emptyExample/index.js create mode 100644 dataPointInterfaces/emptyExample/www/index.html create mode 100755 dataPointInterfaces/invisible/index.js create mode 100755 dataPointInterfaces/invisible/www/button.png create mode 100755 dataPointInterfaces/invisible/www/button_.png create mode 100755 dataPointInterfaces/invisible/www/index.html create mode 100644 hardwareInterfaces/arduinoYun/index.js create mode 100755 hardwareInterfaces/emptyExample/index.js create mode 100644 libraries/HybridObjectsUtilities.js create mode 100644 libraries/HybridObjectsWebFrontend.js create mode 100644 libraries/LICENSE_BOOTSTRAP create mode 100644 libraries/LICENSE_DROPZONE create mode 100644 libraries/LICENSE_ZEROCLIPBOARD create mode 100644 libraries/css/bootstrap-theme.min.css create mode 100644 libraries/css/bootstrap.min.css create mode 100644 libraries/fonts/glyphicons-halflings-regular.eot create mode 100644 libraries/fonts/glyphicons-halflings-regular.svg create mode 100644 libraries/fonts/glyphicons-halflings-regular.ttf create mode 100644 libraries/fonts/glyphicons-halflings-regular.woff create mode 100644 libraries/fonts/glyphicons-halflings-regular.woff2 create mode 100755 libraries/js/ZeroClipboard.js create mode 100755 libraries/js/ZeroClipboard.swf create mode 100644 libraries/js/bootstrap-theme.min.css create mode 100644 libraries/js/bootstrap.min.css create mode 100644 libraries/js/build.js create mode 100644 libraries/js/dropzone.js create mode 100644 libraries/js/dropzone.js__.js create mode 100755 libraries/objectDefaultFiles/bird.png create mode 100755 libraries/objectDefaultFiles/index.html create mode 100755 libraries/objectDefaultFiles/object.css create mode 100644 libraries/objectDefaultFiles/object.js create mode 100644 package.json create mode 100644 server.js diff --git a/dataPointInterfaces/default/index.js b/dataPointInterfaces/default/index.js new file mode 100755 index 0000000..af31b88 --- /dev/null +++ b/dataPointInterfaces/default/index.js @@ -0,0 +1,71 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkPositionID the id of the link that is related to the call + * @param {number} inputData the data that needs to be processed + * @param {number} inputMode the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ + +exports.render = function (objectID, linkPositionID, inputData, inputMode, callback) { + var outputData = inputData; + var outputMode = inputMode; + callback(objectID, linkPositionID, outputData, outputMode); +}; + +/* // example for delay +exports.render = function (objectID, linkPositionID, inputData, inputMode, callback) { + var outputData = inputData; + var outputMode = inputMode; + setTimeout(function() { + callback(objectID, linkPositionID, outputData, outputMode); + }, 1000); +}; + */ \ No newline at end of file diff --git a/dataPointInterfaces/default/www/button.png b/dataPointInterfaces/default/www/button.png new file mode 100755 index 0000000000000000000000000000000000000000..221abcfb0c6816a0b603cf80efcb641e751036dc GIT binary patch literal 5690 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 literal 0 HcmV?d00001 diff --git a/dataPointInterfaces/default/www/index.html b/dataPointInterfaces/default/www/index.html new file mode 100755 index 0000000..79390d8 --- /dev/null +++ b/dataPointInterfaces/default/www/index.html @@ -0,0 +1,32 @@ + + + + +IO + + + + + + \ No newline at end of file diff --git a/dataPointInterfaces/emptyExample/index.js b/dataPointInterfaces/emptyExample/index.js new file mode 100644 index 0000000..af31b88 --- /dev/null +++ b/dataPointInterfaces/emptyExample/index.js @@ -0,0 +1,71 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkPositionID the id of the link that is related to the call + * @param {number} inputData the data that needs to be processed + * @param {number} inputMode the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ + +exports.render = function (objectID, linkPositionID, inputData, inputMode, callback) { + var outputData = inputData; + var outputMode = inputMode; + callback(objectID, linkPositionID, outputData, outputMode); +}; + +/* // example for delay +exports.render = function (objectID, linkPositionID, inputData, inputMode, callback) { + var outputData = inputData; + var outputMode = inputMode; + setTimeout(function() { + callback(objectID, linkPositionID, outputData, outputMode); + }, 1000); +}; + */ \ No newline at end of file diff --git a/dataPointInterfaces/emptyExample/www/index.html b/dataPointInterfaces/emptyExample/www/index.html new file mode 100644 index 0000000..03c3dd5 --- /dev/null +++ b/dataPointInterfaces/emptyExample/www/index.html @@ -0,0 +1,23 @@ + + + + +IO + + + + \ No newline at end of file diff --git a/dataPointInterfaces/invisible/index.js b/dataPointInterfaces/invisible/index.js new file mode 100755 index 0000000..af31b88 --- /dev/null +++ b/dataPointInterfaces/invisible/index.js @@ -0,0 +1,71 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkPositionID the id of the link that is related to the call + * @param {number} inputData the data that needs to be processed + * @param {number} inputMode the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ + +exports.render = function (objectID, linkPositionID, inputData, inputMode, callback) { + var outputData = inputData; + var outputMode = inputMode; + callback(objectID, linkPositionID, outputData, outputMode); +}; + +/* // example for delay +exports.render = function (objectID, linkPositionID, inputData, inputMode, callback) { + var outputData = inputData; + var outputMode = inputMode; + setTimeout(function() { + callback(objectID, linkPositionID, outputData, outputMode); + }, 1000); +}; + */ \ No newline at end of file diff --git a/dataPointInterfaces/invisible/www/button.png b/dataPointInterfaces/invisible/www/button.png new file mode 100755 index 0000000000000000000000000000000000000000..221abcfb0c6816a0b603cf80efcb641e751036dc GIT binary patch literal 5690 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 literal 0 HcmV?d00001 diff --git a/dataPointInterfaces/invisible/www/index.html b/dataPointInterfaces/invisible/www/index.html new file mode 100755 index 0000000..492ac63 --- /dev/null +++ b/dataPointInterfaces/invisible/www/index.html @@ -0,0 +1,32 @@ + + + + +IO + + + + + \ No newline at end of file diff --git a/hardwareInterfaces/arduinoYun/index.js b/hardwareInterfaces/arduinoYun/index.js new file mode 100644 index 0000000..8ffbfa8 --- /dev/null +++ b/hardwareInterfaces/arduinoYun/index.js @@ -0,0 +1,408 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + +var fs = require('fs'); +var HybridObjectsUtilities = require(__dirname+'/../../libraries/HybridObjectsUtilities'); +ledBlinker(); + +const serialBautRate = 115200; // boutrate for connection to arudino +const serialSource = "/dev/ttyATH0"; // this is pointing to the arduino + + +/** + * @desc Constructor for each object value + **/ + +function ObjectValue() { + this.name = ""; + this.value = null; + this.mode = "f"; // this is for (f) floating point, (d) digital or (s) step and finally (m) media + this.rotation = 0; + this.x = 0; + this.y = 0; + this.scale = 1; + this.plugin = "default"; + this.pluginParameter = null; + this.index = null; + this.type = "arduinoYun"; // todo "arduinoYun", "virtual", "edison" +} + +// lookup table for fast serial communication +var ArduinoLookupTable = []; + +//initialisation of the socket connection + +var serialport = require("serialport"); +var SerialP = serialport.SerialPort; // localize object constructor +var serialPort = new SerialP(serialSource, { + parser: serialport.parsers.readline("\n"), + baudrate: serialBautRate +}, false); + +serialPort.on('error', function (err) { +}); + +function serialServer(serialPort, objectExp, objectLookup, ArduinoLookupTable, globalVariables, __dirname,pluginModules, callback) { + if (globalVariables.debug) console.log("opneserial"); + serialPort.open(); + serialPort.on("open", function () { + + if (globalVariables.debug) console.log('Serial port opened'); + var dataSwitch = 0; + var pos = null; + var objID = null; + var obj = null; + var object = null; + var arrayID = null; + var valueMode = ""; + var value = null; + var thisName = ""; + var thisPlugin = "default"; + var amount = 0; + //var okCounter = 0; + + serialPort.on('data', function (data) { + switch (dataSwitch) { + case 0: + if (data === "f") { + if (globalVariables.clear === true) { + valueMode = "f"; + dataSwitch = 1; + } + } + else if (data === "d") { + if (globalVariables.clear === true) { + valueMode = "d"; + dataSwitch = 1; + } + } + else if (data === "p") { // positive step value + if (globalVariables.clear === true) { + valueMode = "p"; + dataSwitch = 1; + } + } + else if (data === "n") {// negative step value + if (globalVariables.clear === true) { + valueMode = "n"; + dataSwitch = 1; + } + } + else if (data === "a") { + if (globalVariables.debug) console.log("add"); + if (globalVariables.clear === false) { + dataSwitch = 20; + } + else { + dataSwitch = 0; + } + } + else if (data === "okbird") { + globalVariables.clear = false; + ArduinoLookupTable = []; + + serialPort.write(" \n"); + serialPort.write("okbird\n"); + + if (globalVariables.debug) console.log("ok as respond"); + dataSwitch = 0; + } + else if (data === "def") { + if (globalVariables.debug) console.log("developer"); + dataSwitch = 40; + } + else if (data === "c") { + if (globalVariables.debug) console.log("clear"); + dataSwitch = 50; + + } + break; + case 1: + // console.log(valueMode); + arrayID = parseInt(data); + dataSwitch = 2; + break; + case 2: + value = parseFloat(data); + // console.log(value); + if (typeof ArduinoLookupTable[arrayID] !== 'undefined') { + var objKey2 = HybridObjectsUtilities.readObject(objectLookup, ArduinoLookupTable[arrayID].obj); + var valueKey = ArduinoLookupTable[arrayID].pos; + + if (objectExp.hasOwnProperty(objKey2)) { + if (objectExp[objKey2].objectValues.hasOwnProperty(valueKey)) { + objectExp[objKey2].objectValues[valueKey].value = value; + objectExp[objKey2].objectValues[valueKey].mode = valueMode; + // console.log("valuemode = "+objectExp[objKey2].objectValues[valueKey].mode); + callback(objKey2, valueKey, objectExp, pluginModules); + + + } + } + } + + dataSwitch = 0; + break; + case 20: + object = data.split("\t"); + dataSwitch = 21; + break; + case 21: + arrayID = parseInt(data); + dataSwitch = 23; + break; + case 23: + thisPlugin = data; + obj = object[1]; + pos = object[0]; + + HybridObjectsUtilities.createFolder(obj, __dirname, globalVariables.debug); + + var objectID = HybridObjectsUtilities.getObjectIdFromTarget(obj, __dirname); + + objID = pos + objectID; + + if (typeof objectID !== "undefined" && objectID != null) { + + if (objectID.length > 13) { + + /* for (var key in objectExp[objectID].objectValues) { + if (arrayID === objectExp[objectID].objectValues[key].index) { + delete objectExp[objectID].objectValues[key]; + } + }*/ + + if (globalVariables.debug) console.log("I will save: " + obj + " and: " + pos + " id: " + arrayID); + + if (objectExp.hasOwnProperty(objectID)) { + + if (!objectExp[objectID].objectValues.hasOwnProperty(objID)) { + var thisObject = objectExp[objectID].objectValues[objID] = new ObjectValue(); + thisObject.x = HybridObjectsUtilities.randomIntInc(0, 200) - 100; + thisObject.y = HybridObjectsUtilities.randomIntInc(0, 200) - 100; + thisObject.frameSizeX = 47; + thisObject.frameSizeY = 47; + } + + ArduinoLookupTable.push({obj: obj, pos: objID}); + + //todo check if this is written to file in the right way + // todo this adds no value just error possibility... + // writeObjectToFile(obj); + + // here you need to add the id of the object + var thisObj = objectExp[objectID].objectValues[objID]; + thisObj.name = pos; + thisObj.plugin = thisPlugin; + // this clames the datapoint to be of type serial.... + thisObj.type = "arduinoYun"; + thisObj.index = arrayID; + } + } + } + objectID = undefined; + + var plugin = "default"; // this might not be relevant + + dataSwitch = 0; + break; + case 40: + if (parseInt(data) === 1) { + globalVariables.developer = true; + } + else { + globalVariables.developer = false; + } + dataSwitch = 0; + break; + case 50: + amount = parseInt(data); +//clear.log("clearforreal"); + clearIO(objectExp, obj, __dirname, amount, globalVariables); + + // check links as well + /* var objectID = HybridObjectsUtilities.getObjectIdFromTarget(obj, __dirname); + + if (typeof objectID !== "undefined" && objectID != null) { + + if (objectID.length > 13) { + + if (globalVariables.debug) console.log(objectID + " " + key + " " + amount); + + for (var key in objectExp[objectID].objectValues) { + if (objectExp[objectID].objectValues[key].index >= amount) { + delete objectExp[objectID].objectValues[key]; + } + } + } + } + objectID = undefined; + + clear = true; +*/ + + + + dataSwitch = 0; + break; + } + + }); + + + // this is for when the server is started... + + serialPort.write(" \n"); + serialPort.write("okbird\n"); + + }); + if (globalVariables.debug) console.log("no problem"); +} + + + +function serialSender(serialPort, objectExp, obj, linkPos, processedValue, mode) { + + + // console.log(obj+ " "+ linkPos + " " +processedValue + " " + mode); + if(objectExp.hasOwnProperty(obj)) + if(objectExp[obj].objectValues.hasOwnProperty(linkPos)){ + + var objTemp = objectExp[obj].objectValues[linkPos]; + + // console.log("send: "+mode); + + if (objTemp.type === "arduinoYun") { + if(mode == "f") serialPort.write("f\n"); + else if(mode == "d") serialPort.write("d\n"); + else if(mode == "p") serialPort.write("p\n"); + else if(mode == "n") serialPort.write("n\n"); + serialPort.write(objTemp.index + "\n"); + serialPort.write(processedValue + "\n"); + // console.log("processed "+processedValue); + }} +} + + +function clearIO (objectExp, obj, Odirname, amount ,globalVariables) { + // check links as well + var objectID = HybridObjectsUtilities.getObjectIdFromTarget(obj, Odirname); + + if (typeof objectID !== "undefined" && objectID != null) { + + if (objectID.length > 13) { + + if (globalVariables.debug) console.log("------del---"); + + + for (var key in objectExp[objectID].objectValues) { + if (globalVariables.debug) console.log("key in: " +objectID + " " + key + " " + amount); + var indexKey = objectExp[objectID].objectValues[key].index; + if (indexKey >= amount) { + if (globalVariables.debug) console.log("del:" + objectID + " " + key + " " + amount); + delete objectExp[objectID].objectValues[key]; + } + if (globalVariables.debug) console.log("index is: " + indexKey); + } + } + } + objectID = undefined; + + globalVariables.clear = true; + + if (globalVariables.debug) if(globalVariables.clear) {console.log("its all cleared");}; +} + +// todo simplify API with clean calls for communicating with the object +function addIO () { +// this has to be filled with content +} + +function writeIO () { +// this has to be filled with content +} + +function developerIO () { +// this has to be filled with content +} + + + +exports.receive= function (objectExp, objectLookup,globalVariables, dirnameO, pluginModules, callback){ + serialServer(serialPort, objectExp, objectLookup, ArduinoLookupTable, globalVariables, dirnameO,pluginModules, callback); +}; + +exports.send= function(objectExp,obj, pos, value, mode){ + serialSender(serialPort, objectExp, obj, pos, value, mode) +}; + +exports.init= function(){ + serialPort.write(" \n"); + serialPort.write("okbird\n"); + + }; + + + +/** + * @desc blinking the LED of the Arduino in a defined interval. This indicates if the code is still running. + **/ + +function ledBlinker() { + fs.writeFile("/sys/devices/platform/leds-gpio/leds/ds:green:usb/brightness", 0, "utf8", function () { + }); + setInterval(function () { + fs.writeFile("/sys/devices/platform/leds-gpio/leds/ds:green:usb/brightness", 1, "utf8", function () { + }); + setTimeout(function () { + fs.writeFile("/sys/devices/platform/leds-gpio/leds/ds:green:usb/brightness", 0, "utf8", function () { + }); + }, 300); + ledBlink = false; + }, 4000); +} + +var ledBlink = false; \ No newline at end of file diff --git a/hardwareInterfaces/emptyExample/index.js b/hardwareInterfaces/emptyExample/index.js new file mode 100755 index 0000000..ad79731 --- /dev/null +++ b/hardwareInterfaces/emptyExample/index.js @@ -0,0 +1,97 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + +var fs = require('fs'); +var HybridObjectsUtilities = require(__dirname+'/../../libraries/HybridObjectsUtilities'); + +/** + * @desc prototype for an interface input. The input is something like a server that waits for incoming data. + * @param {object} objectExp is the object that holds all data about the object. - check structure in main program. + * @param {object} objectLookup holds object names with their ids + * @param {boolean} clear tells the system to hold until new data is written and then it continues again. + * @param {boolean} developer is set to true means that the developer tools are accessible. + * @param {string} directoryName is set to the root of the main program + * @param {function} callback sends back the values that just has been changed and should be run with the engine. + * @note you have to give the call back an object and possition like so: callback(objKey2, valueKey); + * @note when adding a new object to objectExp. make sure that the object has the type of your folder name. + * @note make sure that the name of the new object is added to objectLookup. The ID is the object name + uuidTime() from the HybridObjectsUtilities file. + **/ + +exports.receive= function (objectExp, objectLookup, clear, developer, directoryName, callback){ + + // todo simplify the API to "clear", "add", "write", "developer" + +}; + +/** + * @desc prototype for an interface output. The output is something like a sender that sends present data to an external source. + * @param {object} objectExp is the object that holds all data about the object. - check structure in main program. + * @param {string} object defines the object that the output should change. + * @param {string} position defines the data point within the object + * @param {number} value defines the actual value that is send to the object. + **/ + +exports.send= function(objectExp, object, position, value){ + +}; + +/** + * @desc prototype for an interface init. The init reinitialize the communication with the external source. + * @note program the init so that it can be called anytime there is a change to the amount of objects. + **/ + +exports.init= function(){ + +}; + +/** + * @desc debug switch. + * @param {boolean} debugEx represents if debugging is switched on in the main programm. + **/ + +exports.debug = function (debugE){ + debug = debugE; +}; \ No newline at end of file diff --git a/libraries/HybridObjectsUtilities.js b/libraries/HybridObjectsUtilities.js new file mode 100644 index 0000000..2f8737c --- /dev/null +++ b/libraries/HybridObjectsUtilities.js @@ -0,0 +1,154 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkPositionID the id of the link that is related to the call + * @param {value} inputData the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ + + var debug = false; +var xml2js = require('xml2js'); +var fs = require('fs'); + +exports.writeObject = function (objectLookup, folder, id) { + objectLookup[folder] = {id: id}; +} + + + + +exports.readObject = function (objectLookup, folder) { + if (objectLookup.hasOwnProperty(folder)) { + return objectLookup[folder].id + } + else return null; +} + +exports.createFolder = function (folderVar, dirnameO, debug) { + + var folder = dirnameO + '/objects/' + folderVar + '/'; + + if (!fs.existsSync(folder)) { + fs.mkdirSync(folder, 0766, function (err) { + if (err) { + console.log(err); + res.send("ERROR! Can't make the directory! \n"); // echo the result back + } + }); + + try { + // fs.createReadStream(__dirname + "/objects/object.css").pipe(fs.createWriteStream(__dirname + "/objects/" + folderVar + "/object.css")); + fs.createReadStream(dirnameO + "/libraries/objectDefaultFiles/object.js").pipe(fs.createWriteStream(dirnameO + "/objects/" + folderVar + "/object.js")); + fs.createReadStream(dirnameO + "/libraries/objectDefaultFiles/index.html").pipe(fs.createWriteStream(dirnameO + "/objects/" + folderVar + "/index.html")); + fs.createReadStream(dirnameO + "/libraries/objectDefaultFiles/bird.png").pipe(fs.createWriteStream(dirnameO + "/objects/" + folderVar + "/bird.png")); + + } catch (e) { + if (debug) console.log("Could not copy source files"); + } + + // writeObjectToFile(tempFolderName); + } + + +} + +exports.randomIntInc = function (low, high) { + return Math.floor(Math.random() * (high - low + 1) + low); +} + +exports.uuidTime= function () { + var dateUuidTime = new Date(); + var abcUuidTime = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + var stampUuidTime = parseInt(Math.floor((Math.random() * 199) + 1) + "" + dateUuidTime.getTime()).toString(36); + while (stampUuidTime.length < 12) stampUuidTime = abcUuidTime.charAt(Math.floor(Math.random() * abcUuidTime.length)) + stampUuidTime; + return stampUuidTime +} + + +exports.getObjectIdFromTarget = function (folderName, dirnameO) { + + var xmlFile = dirnameO + '/objects/' + folderName + '/target/target.xml'; + + if (fs.existsSync(xmlFile)) { + + var resultXML = ""; + xml2js. + Parser(). + parseString(fs.readFileSync(xmlFile, "utf8"), + function (err, result) { + for(var first in result) { + resultXML = result[first].Tracking[0].ImageTarget[0].$.name; + break; + } + }); + + return resultXML; + } else return null; +} + +/** + * @desc + * @param + * @param + * @return + **/ + +exports.writeObjectToFile = function (objectExp, object, dirnameO) { + var outputFilename = dirnameO + '/objects/' + objectExp[object].folder + '/object.json'; + fs.writeFile(outputFilename, JSON.stringify(objectExp[object]), function (err) { + if (err) { + console.log(err); + } else { + if (debug) console.log("JSON saved to " + outputFilename); + } + }); +} diff --git a/libraries/HybridObjectsWebFrontend.js b/libraries/HybridObjectsWebFrontend.js new file mode 100644 index 0000000..26ae052 --- /dev/null +++ b/libraries/HybridObjectsWebFrontend.js @@ -0,0 +1,865 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + + +var HybridObjectsUtilities = require(__dirname+'/HybridObjectsUtilities'); +var fs = require('fs'); +var changeCase = require('change-case'); +var debug = false; + + + +exports.printFolder = function (objectExp, dirnameO, debug, objectInterfaceFolder, objectLookup) { + var resText = "" + + "" + + "" + + "" + + "" + + ' \n' + + ' \n' + + // ""+ + "" + + '' +// background:repeating-linear-gradient(-45deg, #e4f6ff, #e4f6ff 5px, white 5px, white 10px);" >\n'+ + "
" + + + "
" + + "
" + + "

Hybrid Object - Administration

" + + "
" + + + + "
" + + "
    "; + + + var tempFiles = ""; + var objectPath = dirnameO + "/objects"; + var tempFiles = fs.readdirSync(objectPath).filter(function (file) { + return fs.statSync(objectPath + '/' + file).isDirectory(); + }); + + if (debug) { + console.log("----------------------- objects"); + for (var keykey in objectExp) { + console.log(keykey); + } + + console.log("----------------------- objects"); + for (var keykey in objectExp) { + console.log(keykey); + } + + console.log("----------------------- object lookup"); + + for (var keykey in objectLookup) { + console.log(keykey + " = " + JSON.stringify(objectLookup[keykey])); + } + console.log("----------------------- end" + Math.random()); + } + // remove hidden directories + if (typeof tempFiles[0] !== "undefined") { + while (tempFiles[0][0] === ".") { + tempFiles.splice(0, 1); + } + + for (var i = 0; i < tempFiles.length; i++) { + resText += "
  • " + + "
    " + + "
    " + + "" + tempFiles[i] + "" + + "
    " + + "
    "; + + if (objectExp.hasOwnProperty(HybridObjectsUtilities.readObject(objectLookup, tempFiles[i])) && fs.existsSync(objectPath + "/" + tempFiles[i] + "/target/target.xml")) { + resText += + " "; + } else { + resText += + " "; + } + + + resText += " " + + " " + + + // "
    "+ + // "
    "+ + + // "
    " + + ' ' + + "
    " + + "" + + "" + + " " + + "
    " + + //"
    "+ + "
    " + + "
  • "; + + + } + + } + + resText += + "
" + + "
" + + "
" + + "" + + "" + + "
" + + "
" + + " " + + "
" + + "
" + + "
" + + ' ' + + ' ' + + + 'Upload Backup' + + + '' + + ' ' + + + '

' + + '
' + + '
' + + '
' + + '
' + + "
" + + + + ' ' + + "
" + + + // "upload default files"+ + + + ' '; + + resText += ""; + return resText; + +} + + + + +exports.uploadInfoText = function (parm, objectLookup, objectExp, knownObjects, sockets) { + var objectName = HybridObjectsUtilities.readObject(objectLookup, parm); //parm + thisMacAddress; + + + var uploadInfoTexttempArray = objectExp[objectName].objectLinks; + var uploadInfoTexttempArrayValue = objectExp[objectName].objectValues; + var infoCount = 0; + + + var ArduinoINstance = 0; + + // objectExp[objectName] + + for (subKey in objectExp) { + if (subKey === objectName) { + break; + } + ArduinoINstance++; + } + var text = '\n' + + '\n' + + '\n' + + ' \n' + + ' \n' + + '\n' + + '\n' + + '
\n' + + '
\n' + + '
\n' + + '

Hybrid Object - ' + parm + ' - Info    back

\n' + + '
\n' + + '
\n' + + '
\n' + + '
\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n'; + + infoCount = 0; + for (subKey in uploadInfoTexttempArrayValue) { + text += ""; + infoCount++; + } + + if (infoCount === 0) { + text += ""; + } + + text += + ' \n' + + '
IndexI/O NameValue
" + infoCount + "" + uploadInfoTexttempArrayValue[subKey].name + "" + uploadInfoTexttempArrayValue[subKey].value + "
- -
\n' + + '
\n' + + '
\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + /* '\n'+ + ' \n'+ + ' \n'+ + ' \n'+*/ + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + '
General Info
Arduino Instance'+ArduinoINstance+'
ip' + objectExp[objectName].ip + '
version' + objectExp[objectName].version + '
sockets' + sockets.sockets + '
connected' + sockets.connected + '
notConnected' + sockets.notConnected + '
\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n'; + + infoCount = 0; + for (subKey in knownObjects) { + text += ''; + infoCount++; + } + + if (infoCount === 0) { + text += ""; + } + + text += + ' \n' + + '
Known Objects
' + subKey + '' + knownObjects[subKey] + '
no Object found
\n' + + '
\n' + + '
\n' + + + '
\n' + + '
\n' + + + '
\n' + + '
\n' + + + '
\n' + + '
\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n'; + + + infoCount = 0; + for (subKey in uploadInfoTexttempArray) { + text += '\n'; + infoCount++; + } + + if (infoCount === 0) { + text += ""; + } + + text += + ' \n' + + '
Active Link IDOriginLocation in O.Destination\n' + + ' Location in D.
' + subKey + '' + uploadInfoTexttempArray[subKey].ObjectA + '' + uploadInfoTexttempArray[subKey].locationInA.slice(0, (uploadInfoTexttempArray[subKey].ObjectA.length * -1)) + '' + uploadInfoTexttempArray[subKey].ObjectB + '' + uploadInfoTexttempArray[subKey].locationInB.slice(0, (uploadInfoTexttempArray[subKey].ObjectA.length * -1)) + '
no Link found
\n' + + '
\n' + + '
\n' + + '
\n' + + '\n' + + '\n' + + ''; + + + return text; + + + // var tempFolderName = tempFiles[i] + macAddress.replace(/:/gi, ''); + + // fill objectExp with objects named by the folders in objects + // objectExp[tempFolderName] = new ObjectExp(); + // objectExp[tempFolderName].folder = tempFiles[i]; +} + + + +exports.uploadTargetText = function (parm, objectLookup, objectExp) { + if(debug) console.log("target content"); + var objectName = ""; + if (objectExp.hasOwnProperty(HybridObjectsUtilities.readObject(objectLookup, parm))) { + + objectName = HybridObjectsUtilities.readObject(objectLookup, parm); + } else { + objectName = parm + HybridObjectsUtilities.uuidTime(); + } + + var text = '\n' + + '\n' + + '\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + '\n' + + '\n' + + '
\n' + + '
\n' + + '
\n' + + '

Hybrid Object - ' + parm + ' - Target    back

\n' + + '
\n' + + '
\n' + + '
\n' + + '
\n' + + ' 1. Upload your target source image (jpg only, < 0.5 MB)
' + + ' 2. Login to the Vuforia Target Manager.
' + + ' 3. Create a new or open a Device Databases.
' + + ' 4. Create a target for your Object and name it exactly:
    ' + objectName + '
' + + ' 5. Make sure that only this one Target is Activated.
' + + ' 6. Download the database and then upload it here:
' + + ' (You can just drag and drop the files anywhere in the striped area)' + + '
' + + '
' + + ' ' + + ' ' + + ' ' + + ' ' + + '

' + + '
' + + '
' + + '
' + + '
' + + ' ' + + '  Upload Target zip and jpg Files ' + + ' ' + + '
' + + '
' + + ' ' + + ' ' + + '
' + + '' + + '' + + '' + + + + ''; + + return text; + +} + + + + +exports.uploadTargetContent = function (parm, dirname0, objectInterfaceFolder) { + if(debug) console.log("interface content"); + var text = + + ''; + + var objectPath = dirname0 + "/objects/"; + + var objectPath2 = dirname0 + "/objects/" + parm; + + var tempFiles = fs.readdirSync(objectPath).filter(function (file) { + return fs.statSync(objectPath + '/' + file).isDirectory(); + }); + + + var fileList; + // List all files in a directory in Node.js recursively in a synchronous fashion + /* var walkSync = function(dir, filelist) { + var fs = fs || require('fs'), + files = fs.readdirSync(dir); + filelist = filelist || []; + files.forEach(function(file) { + if (fs.statSync(dir + '/' + file).isDirectory()) { + filelist = walkSync(dir +'/'+ file + '/', filelist); + folderDepth++; + filelist.push("<"); + filelist.push(file); + } + else { + if(file[0] !== "." ) + filelist.push(file); + } + } + ); + if(folderDepth !==0){ + filelist.push(">");} + + return filelist; + };*/ + + var walk = function (dir) { + var results = []; + var list = fs.readdirSync(dir); + list.forEach(function (file) { + file = dir + '/' + file; + var stat = fs.statSync(file); + if (stat && stat.isDirectory()) results = results.concat(walk(file)); + else results.push(file) + }); + return results + }; + + var listeliste = walk(objectPath2); + + // var folderContent = walkSync(objectPath,fileList); + var folderSpace = ""; + + + var folderOrigin = "/obj/"; + + var llist; + + folderOld = ""; + + text += + '\n' + + '\n' + + '\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + '\n' + + '\n' + + '
\n' + + '
\n' + + '
\n' + + '

Hybrid Object - ' + parm + ' - File    back

\n' + + '
\n' + + '
\n' + + '
\n' + + '
\n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n' + + ' \n'; + + + for (var i = 0; i < listeliste.length; i++) { + + var content = listeliste[i].replace(objectPath2 + '/', '').split("/"); + + if (content[1] !== undefined) { + if (content[0] !== folderOld) { + + // console.log("---" + content[0]); + + text += ''; + + } + // console.log("-"+content[0]); + // console.log(content[0]+" / "+content[1]); + + if (content[1][0] !== "." && content[1][0] !== "_") { + if (debug)console.log(content[1]); + var fileTypeF = changeCase.lowerCase(content[1].split(".")[1]); + + text += '' + content[1] + ''; + } + + + folderOld = content[0]; + } else { + if (content[0][0] !== "." && content[0][0] !== "_") { + var fileTypeF2 = changeCase.lowerCase(content[0].split(".")[1]);//.toLowerCase(); + text += '' + content[0] + ''; + + } else { + text += 'delete'; + } + } + + } + + } + + text += + + '' + + '' + + ' \n' + + '
Object Folder
  ' + content[0] + ''; + + var dateiTobeRemoved = parm + '/' + content[0]; + text += "
" + + "" + + ""; + + text += 'delete
'; + + var dateiTobeRemoved = parm + '/' + content[0] + '/' + content[1]; + text += "
" + + "" + + ""; + if (debug) console.log(dateiTobeRemoved); + text += 'delete
'; + + var dateiTobeRemoved = parm + '/' + content[0]; + text += "
" + + "" + + ""; + + + if (content[0] === "object.json" || content[0] === "object.css" || content[0] === "object.js") { + text += 'delete
\n' + + '
\n' + + 'Drag and Drop your interface files anywhere on this window. Make sure that index.html is your startpoint.' + + ' You can drop all your files at the same time.

' + + 'object.json holds all relevant information about your object.' + + ' You need to include object.css and object.js at the beginning of your interface index.html page.
' + + + '

' + + '
' + + '
' + + '
' + + '
' + + ' ' + + "                " + + "Add Interface Files" + + "                " + + ' ' + + ' ' + + + ' ' + + ' ' + + '\n' + + '\n'; + + return text; + +} \ No newline at end of file diff --git a/libraries/LICENSE_BOOTSTRAP b/libraries/LICENSE_BOOTSTRAP new file mode 100644 index 0000000..9858866 --- /dev/null +++ b/libraries/LICENSE_BOOTSTRAP @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2011-2015 Twitter, Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/libraries/LICENSE_DROPZONE b/libraries/LICENSE_DROPZONE new file mode 100644 index 0000000..ea0b20a --- /dev/null +++ b/libraries/LICENSE_DROPZONE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 lev-kuznetsov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/libraries/LICENSE_ZEROCLIPBOARD b/libraries/LICENSE_ZEROCLIPBOARD new file mode 100644 index 0000000..cfd4a0d --- /dev/null +++ b/libraries/LICENSE_ZEROCLIPBOARD @@ -0,0 +1,8 @@ +MIT License +Copyright (c) 2009-2014 Jon Rohan, James M. Greene + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/libraries/css/bootstrap-theme.min.css b/libraries/css/bootstrap-theme.min.css new file mode 100644 index 0000000..cff38df --- /dev/null +++ b/libraries/css/bootstrap-theme.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file diff --git a/libraries/css/bootstrap.min.css b/libraries/css/bootstrap.min.css new file mode 100644 index 0000000..976dada --- /dev/null +++ b/libraries/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group .list-group-item:first-child{border-top:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tfoot>tr:first-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tfoot>tr:first-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>td{border-top:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/libraries/fonts/glyphicons-halflings-regular.eot b/libraries/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libraries/fonts/glyphicons-halflings-regular.ttf b/libraries/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 zcmd?Sd0-pWwLh*qi$?oCk~i6sWlOeWJC3|4juU5JNSu9hSVACzERcmjLV&P^utNzg zIE4Kr1=5g!SxTX#Ern9_%4&01rlrW`Z!56xXTGQR4C z3vR~wXq>NDx$c~e?;ia3YjJ*$!C>69a?2$lLyhpI!CFfJsP=|`8@K0|bbMpWwVUEygg0=0x_)HeHpGSJagJNLA3c!$EuOV>j$wi! zbo{vZ(s8tl>@!?}dmNHXo)ABy7ohD7_1G-P@SdJWT8*oeyBVYVW9*vn}&VI4q++W;Z+uz=QTK}^C75!`aFYCX# zf7fC2;o`%!huaTNJAB&VWrx=szU=VLhwnbT`vc<#<`4WI6n_x@AofA~2d90o?1L3w z9!I|#P*NQ)$#9aASijuw>JRld^-t)Zhmy|i-`Iam|IWkguaMR%lhi4p~cX-9& zjfbx}yz}s`4-6>D^+6FzihR)Y!GsUy=_MWi_v7y#KmYi-{iZ+s@ekkq!@Wxz!~BQwiI&ti z>hC&iBe2m(dpNVvSbZe3DVgl(dxHt-k@{xv;&`^c8GJY%&^LpM;}7)B;5Qg5J^E${ z7z~k8eWOucjX6)7q1a%EVtmnND8cclz8R1=X4W@D8IDeUGXxEWe&p>Z*voO0u_2!! zj3dT(Ki+4E;uykKi*yr?w6!BW2FD55PD6SMj`OfBLwXL5EA-9KjpMo4*5Eqs^>4&> z8PezAcn!9jk-h-Oo!E9EjX8W6@EkTHeI<@AY{f|5fMW<-Ez-z)xCvW3()Z#x0oydB zzm4MzY^NdpIF9qMp-jU;99LjlgY@@s+=z`}_%V*xV7nRV*Kwrx-i`FzI0BZ#yOI8# z!SDeNA5b6u9!Imj89v0(g$;dT_y|Yz!3V`i{{_dez8U@##|X9A};s^7vEd!3AcdyVlhVk$v?$O442KIM1-wX^R{U7`JW&lPr3N(%kXfXT_`7w^? z=#ntx`tTF|N$UT?pELvw7T*2;=Q-x@KmDUIbLyXZ>f5=y7z1DT<7>Bp0k;eItHF?1 zErzhlD2B$Tm|^7DrxnTYm-tgg`Mt4Eivp5{r$o9e)8(fXBO4g|G^6Xy?y$SM*&V52 z6SR*%`%DZC^w(gOWQL?6DRoI*hBNT)xW9sxvmi@!vI^!mI$3kvAMmR_q#SGn3zRb_ zGe$=;Tv3dXN~9XuIHow*NEU4y&u}FcZEZoSlXb9IBOA}!@J3uovp}yerhPMaiI8|SDhvWVr z^BE&yx6e3&RYqIg;mYVZ*3#A-cDJ;#ms4txEmwm@g^s`BB}KmSr7K+ruIoKs=s|gOXP|2 zb1!)87h9?(+1^QRWb(Vo8+@G=o24gyuzF3ytfsKjTHZJ}o{YznGcTDm!s)DRnmOX} z3pPL4wExoN$kyc2>#J`k+<67sy-VsfbQ-1u+HkyFR?9G`9r6g4*8!(!c65Be-5hUg zZHY$M0k(Yd+DT1*8)G(q)1&tDl=g9H7!bZTOvEEFnBOk_K=DXF(d4JOaH zI}*A3jGmy{gR>s}EQzyJa_q_?TYPNXRU1O;fcV_&TQZhd{@*8Tgpraf~nT0BYktu*n{a~ub^UUqQPyr~yBY{k2O zgV)honv{B_CqY|*S~3up%Wn%7i*_>Lu|%5~j)}rQLT1ZN?5%QN`LTJ}vA!EE=1`So z!$$Mv?6T)xk)H8JTrZ~m)oNXxS}pwPd#);<*>zWsYoL6iK!gRSBB{JCgB28C#E{T? z5VOCMW^;h~eMke(w6vLlKvm!!TyIf;k*RtK)|Q>_@nY#J%=h%aVb)?Ni_By)XNxY)E3`|}_u}fn+Kp^3p4RbhFUBRtGsDyx9Eolg77iWN z2iH-}CiM!pfYDIn7;i#Ui1KG01{3D<{e}uWTdlX4Vr*nsb^>l0%{O?0L9tP|KGw8w z+T5F}md>3qDZQ_IVkQ|BzuN08uN?SsVt$~wcHO4pB9~ykFTJO3g<4X({-Tm1w{Ufo zI03<6KK`ZjqVyQ(>{_aMxu7Zm^ck&~)Q84MOsQ-XS~{6j>0lTl@lMtfWjj;PT{nlZ zIn0YL?kK7CYJa)(8?unZ)j8L(O}%$5S#lTcq{rr5_gqqtZ@*0Yw4}OdjL*kBv+>+@ z&*24U=y{Nl58qJyW1vTwqsvs=VRAzojm&V zEn6=WzdL1y+^}%Vg!ap>x%%nFi=V#wn# zUuheBR@*KS)5Mn0`f=3fMwR|#-rPMQJg(fW*5e`7xO&^UUH{L(U8D$JtI!ac!g(Ze89<`UiO@L+)^D zjPk2_Ie0p~4|LiI?-+pHXuRaZKG$%zVT0jn!yTvvM^jlcp`|VSHRt-G@_&~<4&qW@ z?b#zIN)G(}L|60jer*P7#KCu*Af;{mpWWvYK$@Squ|n-Vtfgr@ZOmR5Xpl;0q~VILmjk$$mgp+`<2jP z@+nW5Oap%fF4nFwnVwR7rpFaOdmnfB$-rkO6T3#w^|*rft~acgCP|ZkgA6PHD#Of| zY%E!3tXtsWS`udLsE7cSE8g@p$ceu*tI71V31uA7jwmXUCT7+Cu3uv|W>ZwD{&O4Nfjjvl43N#A$|FWxId! z%=X!HSiQ-#4nS&smww~iXRn<-`&zc)nR~js?|Ei-cei$^$KsqtxNDZvl1oavXK#Pz zT&%Wln^Y5M95w=vJxj0a-ko_iQt(LTX_5x#*QfQLtPil;kkR|kz}`*xHiLWr35ajx zHRL-QQv$|PK-$ges|NHw8k6v?&d;{A$*q15hz9{}-`e6ys1EQ1oNNKDFGQ0xA!x^( zkG*-ueZT(GukSnK&Bs=4+w|(kuWs5V_2#3`!;f}q?>xU5IgoMl^DNf+Xd<=sl2XvkqviJ>d?+G@Z5nxxd5Sqd$*ENUB_mb8Z+7CyyU zA6mDQ&e+S~w49csl*UePzY;^K)Fbs^%?7;+hFc(xz#mWoek4_&QvmT7Fe)*{h-9R4 zqyXuN5{)HdQ6yVi#tRUO#M%;pL>rQxN~6yoZ)*{{!?jU)RD*oOxDoTjVh6iNmhWNC zB5_{R=o{qvxEvi(khbRS`FOXmOO|&Dj$&~>*oo)bZz%lPhEA@ zQ;;w5eu5^%i;)w?T&*=UaK?*|U3~{0tC`rvfEsRPgR~16;~{_S2&=E{fE2=c>{+y} zx1*NTv-*zO^px5TA|B```#NetKg`19O!BK*-#~wDM@KEllk^nfQ2quy25G%)l72<> zzL$^{DDM#jKt?<>m;!?E2p0l12`j+QJjr{Lx*47Nq(v6i3M&*P{jkZB{xR?NOSPN% zU>I+~d_ny=pX??qjF*E78>}Mgts@_yn`)C`wN-He_!OyE+gRI?-a>Om>Vh~3OX5+& z6MX*d1`SkdXwvb7KH&=31RCC|&H!aA1g_=ZY0hP)-Wm6?A7SG0*|$mC7N^SSBh@MG z9?V0tv_sE>X==yV{)^LsygK2=$Mo_0N!JCOU?r}rmWdHD%$h~~G3;bt`lH& zAuOOZ=G1Mih**0>lB5x+r)X^8mz!0K{SScj4|a=s^VhUEp#2M=^#WRqe?T&H9GnWa zYOq{+gBn9Q0e0*Zu>C(BAX=I-Af9wIFhCW6_>TsIH$d>|{fIrs&BX?2G>GvFc=<8` zVJ`#^knMU~65dWGgXcht`Kb>{V2oo%<{NK|iH+R^|Gx%q+env#Js*(EBT3V0=w4F@W+oLFsA)l7Qy8mx_;6Vrk;F2RjKFvmeq} zro&>@b^(?f))OoQ#^#s)tRL>b0gzhRYRG}EU%wr9GjQ#~Rpo|RSkeik^p9x2+=rUr}vfnQoeFAlv=oX%YqbLpvyvcZ3l$B z5bo;hDd(fjT;9o7g9xUg3|#?wU2#BJ0G&W1#wn?mfNR{O7bq747tc~mM%m%t+7YN}^tMa24O4@w<|$lk@pGx!;%pKiq&mZB z?3h<&w>un8r?Xua6(@Txu~Za9tI@|C4#!dmHMzDF_-_~Jolztm=e)@vG11bZQAs!tFvd9{C;oxC7VfWq377Y(LR^X_TyX9bn$)I765l=rJ%9uXcjggX*r?u zk|0!db_*1$&i8>d&G3C}A`{Fun_1J;Vx0gk7P_}8KBZDowr*8$@X?W6v^LYmNWI)lN92yQ;tDpN zOUdS-W4JZUjwF-X#w0r;97;i(l}ZZT$DRd4u#?pf^e2yaFo zbm>I@5}#8FjsmigM8w_f#m4fEP~r~_?OWB%SGWcn$ThnJ@Y`ZI-O&Qs#Y14To( zWAl>9Gw7#}eT(!c%D0m>5D8**a@h;sLW=6_AsT5v1Sd_T-C4pgu_kvc?7+X&n_fct znkHy(_LExh=N%o3I-q#f$F4QJpy>jZBW zRF7?EhqTGk)w&Koi}QQY3sVh?@e-Z3C9)P!(hMhxmXLC zF_+ZSTQU`Gqx@o(~B$dbr zHlEUKoK&`2gl>zKXlEi8w6}`X3kh3as1~sX5@^`X_nYl}hlbpeeVlj#2sv)CIMe%b zBs7f|37f8qq}gA~Is9gj&=te^wN8ma?;vF)7gce;&sZ64!7LqpR!fy)?4cEZposQ8 zf;rZF7Q>YMF1~eQ|Z*!5j0DuA=`~VG$Gg6B?Om1 z6fM@`Ck-K*k(eJ)Kvysb8sccsFf@7~3vfnC=<$q+VNv)FyVh6ZsWw}*vs>%k3$)9| zR9ek-@pA23qswe1io)(Vz!vS1o*XEN*LhVYOq#T`;rDkgt86T@O`23xW~;W_#ZS|x zvwx-XMb7_!hIte-#JNpFxskMMpo2OYhHRr0Yn8d^(jh3-+!CNs0K2B!1dL$9UuAD= zQ%7Ae(Y@}%Cd~!`h|wAdm$2WoZ(iA1(a_-1?znZ%8h72o&Mm*4x8Ta<4++;Yr6|}u zW8$p&izhdqF=m8$)HyS2J6cKyo;Yvb>DTfx4`4R{ zPSODe9E|uflE<`xTO=r>u~u=NuyB&H!(2a8vwh!jP!yfE3N>IiO1jI>7e&3rR#RO3_}G23W?gwDHgSgekzQ^PU&G5z&}V5GO? zfg#*72*$DP1T8i`S7=P;bQ8lYF9_@8^C(|;9v8ZaK2GnWz4$Th2a0$)XTiaxNWfdq z;yNi9veH!j)ba$9pke8`y2^63BP zIyYKj^7;2don3se!P&%I2jzFf|LA&tQ=NDs{r9fIi-F{-yiG-}@2`VR^-LIFN8BC4 z&?*IvLiGHH5>NY(Z^CL_A;yISNdq58}=u~9!Ia7 zm7MkDiK~lsfLpvmPMo!0$keA$`%Tm`>Fx9JpG^EfEb(;}%5}B4Dw!O3BCkf$$W-dF z$BupUPgLpHvr<<+QcNX*w@+Rz&VQz)Uh!j4|DYeKm5IC05T$KqVV3Y|MSXom+Jn8c zgUEaFW1McGi^44xoG*b0JWE4T`vka7qTo#dcS4RauUpE{O!ZQ?r=-MlY#;VBzhHGU zS@kCaZ*H73XX6~HtHd*4qr2h}Pf0Re@!WOyvres_9l2!AhPiV$@O2sX>$21)-3i+_ z*sHO4Ika^!&2utZ@5%VbpH(m2wE3qOPn-I5Tbnt&yn9{k*eMr3^u6zG-~PSr(w$p> zw)x^a*8Ru$PE+{&)%VQUvAKKiWiwvc{`|GqK2K|ZMy^Tv3g|zENL86z7i<c zW`W>zV1u}X%P;Ajn+>A)2iXZbJ5YB_r>K-h5g^N=LkN^h0Y6dPFfSBh(L`G$D%7c` z&0RXDv$}c7#w*7!x^LUes_|V*=bd&aP+KFi((tG*gakSR+FA26%{QJdB5G1F=UuU&koU*^zQA=cEN9}Vd?OEh| zgzbFf1?@LlPkcXH$;YZe`WEJ3si6&R2MRb}LYK&zK9WRD=kY-JMPUurX-t4(Wy{%` zZ@0WM2+IqPa9D(^*+MXw2NWwSX-_WdF0nMWpEhAyotIgqu5Y$wA=zfuXJ0Y2lL3#ji26-P3Z?-&0^KBc*`T$+8+cqp`%g0WB zTH9L)FZ&t073H4?t=(U6{8B+uRW_J_n*vW|p`DugT^3xe8Tomh^d}0k^G7$3wLgP& zn)vTWiMA&=bR8lX9H=uh4G04R6>C&Zjnx_f@MMY!6HK5v$T%vaFm;E8q=`w2Y}ucJ zkz~dKGqv9$E80NTtnx|Rf_)|3wxpnY6nh3U9<)fv2-vhQ6v=WhKO@~@X57N-`7Ppc zF;I7)eL?RN23FmGh0s;Z#+p)}-TgTJE%&>{W+}C`^-sy{gTm<$>rR z-X7F%MB9Sf%6o7A%ZHReD4R;imU6<9h81{%avv}hqugeaf=~^3A=x(Om6Lku-Pn9i zC;LP%Q7Xw*0`Kg1)X~nAsUfdV%HWrpr8dZRpd-#%)c#Fu^mqo|^b{9Mam`^Zw_@j@ zR&ZdBr3?@<@%4Z-%LT&RLgDUFs4a(CTah_5x4X`xDRugi#vI-cw*^{ncwMtA4NKjByYBza)Y$hozZCpuxL{IP&=tw6ZO52WY3|iwGf&IJCn+u(>icK zZB1~bWXCmwAUz|^<&ysd#*!DSp8}DLNbl5lRFat4NkvItxy;9tpp9~|@ z;JctShv^Iq4(z+y7^j&I?GCdKMVg&jCwtCkc4*@O7HY*veGDBtAIn*JgD$QftP}8= zxFAdF=(S>Ra6(4slk#h%b?EOU-96TIX$Jbfl*_7IY-|R%H zF8u|~hYS-YwWt5+^!uGcnKL~jM;)ObZ#q68ZkA?}CzV-%6_vPIdzh_wHT_$mM%vws9lxUj;E@#1UX?WO2R^41(X!nk$+2oJGr!sgcbn1f^yl1 z#pbPB&Bf;1&2+?};Jg5qgD1{4_|%X#s48rOLE!vx3@ktstyBsDQWwDz4GYlcgu$UJ zp|z_32yN72T*oT$SF8<}>e;FN^X&vWNCz>b2W0rwK#<1#kbV)Cf`vN-F$&knLo5T& z8!sO-*^x4=kJ$L&*h%rQ@49l?7_9IG99~xJDDil00<${~D&;kiqRQqeW5*22A`8I2 z(^@`qZoF7_`CO_e;8#qF!&g>UY;wD5MxWU>azoo=E{kW(GU#pbOi%XAn%?W{b>-bTt&2?G=E&BnK9m0zs{qr$*&g8afR_x`B~o zd#dxPpaap;I=>1j8=9Oj)i}s@V}oXhP*{R|@DAQXzQJekJnmuQ;vL90_)H_nD1g6e zS1H#dzg)U&6$fz0g%|jxDdz|FQN{KJ&Yx0vfuzAFewJjv`pdMRpY-wU`-Y6WQnJ(@ zGVb!-8DRJZvHnRFiR3PG3Tu^nCn(CcZHh7hQvyd7i6Q3&ot86XI{jo%WZqCPcTR0< zMRg$ZE=PQx66ovJDvI_JChN~k@L^Pyxv#?X^<)-TS5gk`M~d<~j%!UOWG;ZMi1af< z+86U0=sm!qAVJAIqqU`Qs1uJhQJA&n@9F1PUrYuW!-~IT>l$I!#5dBaiAK}RUufjg{$#GdQBkxF1=KU2E@N=i^;xgG2Y4|{H>s` z$t`k8c-8`fS7Yfb1FM#)vPKVE4Uf(Pk&%HLe z%^4L>@Z^9Z{ZOX<^e)~adVRkKJDanJ6VBC_m@6qUq_WF@Epw>AYqf%r6qDzQ~AEJ!jtUvLp^CcqZ^G-;Kz3T;O4WG45Z zFhrluCxlY`M+OKr2SeI697btH7Kj`O>A!+2DTEQ=48cR>Gg2^5uqp(+y5Sl09MRl* zp|28!v*wvMd_~e2DdKDMMQ|({HMn3D%%ATEecGG8V9>`JeL)T0KG}=}6K8NiSN5W< z79-ZdYWRUb`T}(b{RjN8>?M~opnSRl$$^gT`B27kMym5LNHu-k;A;VF8R(HtDYJHS zU7;L{a@`>jd0svOYKbwzq+pWSC(C~SPgG~nWR3pBA8@OICK$Cy#U`kS$I;?|^-SBC zBFkoO8Z^%8Fc-@X!KebF2Ob3%`8zlVHj6H;^(m7J35(_bS;cZPd}TY~qixY{MhykQ zV&7u7s%E=?i`}Ax-7dB0ih47w*7!@GBt<*7ImM|_mYS|9_K7CH+i}?*#o~a&tF-?C zlynEu1DmiAbGurEX2Flfy$wEVk7AU;`k#=IQE*6DMWafTL|9-vT0qs{A3mmZGzOyN zcM9#Rgo7WgB_ujU+?Q@Ql?V-!E=jbypS+*chI&zA+C_3_@aJal}!Q54?qsL0In({Ly zjH;e+_SK8yi0NQB%TO+Dl77jp#2pMGtwsgaC>K!)NimXG3;m7y`W+&<(ZaV>N*K$j zLL~I+6ouPk6_(iO>61cIsinx`5}DcKSaHjYkkMuDoVl>mKO<4$F<>YJ5J9A2Vl}#BP7+u~L8C6~D zsk`pZ$9Bz3teQS1Wb|8&c2SZ;qo<#F&gS;j`!~!ADr(jJXMtcDJ9cVi>&p3~{bqaP zgo%s8i+8V{UrYTc9)HiUR_c?cfx{Yan2#%PqJ{%?Wux4J;T$#cumM0{Es3@$>}DJg zqe*c8##t;X(4$?A`ve)e@YU3d2Balcivot{1(ahlE5qg@S-h(mPNH&`pBX$_~HdG48~)$x5p z{>ghzqqn_t8~pY<5?-To>cy^6o~mifr;KWvx_oMtXOw$$d6jddXG)V@a#lL4o%N@A zNJlQAz6R8{7jax-kQsH6JU_u*En%k^NHlvBB!$JAK!cYmS)HkLAkm0*9G3!vwMIWv zo#)+EamIJHEUV|$d|<)2iJ`lqBQLx;HgD}c3mRu{iK23C>G{0Mp1K)bt6OU?xC4!_ zZLqpFzeu&+>O1F>%g-%U^~yRg(-wSp@vmD-PT#bCWy!%&H;qT7rfuRCEgw67V!Qob z&tvPU@*4*$YF#2_>M0(75QxqrJr3Tvh~iDeFhxl=MzV@(psx%G8|I{~9;tv#BBE`l z3)_98eZqFNwEF1h)uqhBmT~mSmT8k$7vSHdR97K~kM)P9PuZdS;|Op4A?O<*%!?h` zn`}r_j%xvffs46x2hCWuo0BfIQWCw9aKkH==#B(TJ%p}p-RuIVzsRlaPL_Co{&R0h zQrqn=g1PGjQg3&sc2IlKG0Io#v%@p>tFwF)RG0ahYs@Zng6}M*d}Xua)+h&?$`%rb z;>M=iMh5eIHuJ5c$aC`y@CYjbFsJnSPH&}LQz4}za9YjDuao>Z^EdL@%saRm&LGQWXs*;FzwN#pH&j~SLhDZ+QzhplV_ij(NyMl z;v|}amvxRddO81LJFa~2QFUs z+Lk zZck)}9uK^buJNMo4G(rSdX{57(7&n=Q6$QZ@lIO9#<3pA2ceDpO_340B*pHlh_y{>i&c1?vdpN1j>3UN-;;Yq?P+V5oY`4Z(|P8SwWq<)n`W@AwcQ?E9 zd5j8>FT^m=MHEWfN9jS}UHHsU`&SScib$qd0i=ky0>4dz5ADy70AeIuSzw#gHhQ_c zOp1!v6qU)@8MY+ zMNIID?(CysRc2uZQ$l*QZVY)$X?@4$VT^>djbugLQJdm^P>?51#lXBkdXglYm|4{L zL%Sr?2f`J+xrcN@=0tiJt(<-=+v>tHy{XaGj7^cA6felUn_KPa?V4ebfq7~4i~GKE zpm)e@1=E;PP%?`vK6KVPKXjUXyLS1^NbnQ&?z>epHCd+J$ktT1G&L~T)nQeExe;0Z zlei}<_ni ztFo}j7nBl$)s_3odmdafVieFxc)m!wM+U`2u%yhJ90giFcU1`dR6BBTKc2cQ*d zm-{?M&%(={xYHy?VCx!ogr|4g5;V{2q(L?QzJGsirn~kWHU`l`rHiIrc-Nan!hR7zaLsPr4uR zG{En&gaRK&B@lyWV@yfFpD_^&z>84~_0Rd!v(Nr%PJhFF_ci3D#ixf|(r@$igZiWw za*qbXIJ_Hm4)TaQ=zW^g)FC6uvyO~Hg-#Z5Vsrybz6uOTF>Rq1($JS`imyNB7myWWpxYL(t7`H8*voI3Qz6mvm z$JxtArLJ(1wlCO_te?L{>8YPzQ})xJlvc5wv8p7Z=HviPYB#^#_vGO#*`<0r%MR#u zN_mV4vaBb2RwtoOYCw)X^>r{2a0kK|WyEYoBjGxcObFl&P*??)WEWKU*V~zG5o=s@ z;rc~uuQQf9wf)MYWsWgPR!wKGt6q;^8!cD_vxrG8GMoFGOVV=(J3w6Xk;}i)9(7*U zwR4VkP_5Zx7wqn8%M8uDj4f1aP+vh1Wue&ry@h|wuN(D2W;v6b1^ z`)7XBZ385zg;}&Pt@?dunQ=RduGRJn^9HLU&HaeUE_cA1{+oSIjmj3z+1YiOGiu-H zf8u-oVnG%KfhB8H?cg%@#V5n+L$MO2F4>XoBjBeX>css^h}Omu#)ExTfUE^07KOQS znMfQY2wz?!7!{*C^)aZ^UhMZf=TJNDv8VrrW;JJ9`=|L0`w9DE8MS>+o{f#{7}B4P z{I34>342vLsP}o=ny1eZkEabr@niT5J2AhByUz&i3Ck0H*H`LRHz;>3C_ru!X+EhJ z6(+(lI#4c`2{`q0o9aZhI|jRjBZOV~IA_km7ItNtUa(Wsr*Hmb;b4=;R(gF@GmsRI`pF+0tmq0zy~wnoJD(LSEwHjTOt4xb0XB-+ z&4RO{Snw4G%gS9w#uSUK$Zbb#=jxEl;}6&!b-rSY$0M4pftat-$Q)*y!bpx)R%P>8 zrB&`YEX2%+s#lFCIV;cUFUTIR$Gn2%F(3yLeiG8eG8&)+cpBlzx4)sK?>uIlH+$?2 z9q9wk5zY-xr_fzFSGxYp^KSY0s%1BhsI>ai2VAc8&JiwQ>3RRk?ITx!t~r45qsMnj zkX4bl06ojFCMq<9l*4NHMAtIxDJOX)H=K*$NkkNG<^nl46 zHWH1GXb?Og1f0S+8-((5yaeegCT62&4N*pNQY;%asz9r9Lfr;@Bl${1@a4QAvMLbV6JDp>8SO^q1)#(o%k!QiRSd0eTmzC< zNIFWY5?)+JTl1Roi=nS4%@5iF+%XztpR^BSuM~DX9q`;Mv=+$M+GgE$_>o+~$#?*y zAcD4nd~L~EsAjXV-+li6Lua4;(EFdi|M2qV53`^4|7gR8AJI;0Xb6QGLaYl1zr&eu zH_vFUt+Ouf4SXA~ z&Hh8K@ms^`(hJfdicecj>J^Aqd00^ccqN!-f-!=N7C1?`4J+`_f^nV!B3Q^|fuU)7 z1NDNT04hd4QqE+qBP+>ZE7{v;n3OGN`->|lHjNL5w40pePJ?^Y6bFk@^k%^5CXZ<+4qbOplxpe)l7c6m%o-l1oWmCx%c6@rx85hi(F=v(2 zJ$jN>?yPgU#DnbDXPkHLeQwED5)W5sH#-eS z%#^4dxiVs{+q(Yd^ShMN3GH)!h!@W&N`$L!SbElXCuvnqh{U7lcCvHI#{ZjwnKvu~ zAeo7Pqot+Ohm{8|RJsTr3J4GjCy5UTo_u_~p)MS&Z5UrUc|+;Mc(YS+ju|m3Y_Dvt zonVtpBWlM718YwaN3a3wUNqX;7TqvAFnVUoD5v5WTh~}r)KoLUDw%8Rrqso~bJqd> z_T!&Rmr6ebpV^4|knJZ%qmzL;OvG3~A*loGY7?YS%hS{2R0%NQ@fRoEK52Aiu%gj( z_7~a}eQUh8PnyI^J!>pxB(x7FeINHHC4zLDT`&C*XUpp@s0_B^!k5Uu)^j_uuu^T> z8WW!QK0SgwFHTA%M!L`bl3hHjPp)|wL5Var_*A1-H8LV?uY5&ou{hRjj>#X@rxV>5%-9hbP+v?$4}3EfoRH;l_wSiz{&1<+`Y5%o%q~4rdpRF0jOsCoLnWY5x?V)0ga>CDo`NpqS) z@x`mh1QGkx;f)p-n^*g5M^zRTHz%b2IkLBY{F+HsjrFC9_H(=9Z5W&Eymh~A_FUJ} znhTc9KG((OnjFO=+q>JQZJbeOoUM77M{)$)qQMcxK9f;=L;IOv_J>*~w^YOW744QZ zoG;!b9VD3ww}OX<8sZ0F##8hvfDP{hpa3HjaLsKbLJ8 z0WpY2E!w?&cWi7&N%bOMZD~o7QT*$xCRJ@{t31~qx~+0yYrLXubXh2{_L699Nl_pn z6)9eu+uUTUdjHXYs#pX^L)AIb!FjjNsTp7C399w&B{Q4q%yKfmy}T2uQdU|1EpNcY zDk~(h#AdxybjfzB+mg6rdU9mDZ^V>|U13Dl$Gj+pAL}lR2a1u!SJXU_YqP9N{ose4 zk+$v}BIHX60WSGVWv;S%zvHOWdDP(-ceo(<8`y@Goy%4wDu>57QZNJc)f>Ls+}9h7 z^N=#3q3|l?aG8K#HwiW2^PJu{v|x5;awYfahC?>_af3$LmMc4%N~JwVlRZa4c+eW2 zE!zosAjOv&UeCeu;Bn5OQUC=jtZjF;NDk9$fGbxf3d29SUBekX1!a$Vmq_VK*MHQ4)eB!dQrHH)LVYNF%-t8!d`@!cb z2CsKs3|!}T^7fSZm?0dJ^JE`ZGxA&a!jC<>6_y67On0M)hd$m*RAzo_qM?aeqkm`* zXpDYcc_>TFZYaC3JV>{>mp(5H^efu!Waa7hGTAts29jjuVd1vI*fEeB?A&uG<8dLZ z(j6;-%vJ7R0U9}XkH)1g>&uptXPHBEA*7PSO2TZ+dbhVxspNW~ZQT3fApz}2 z_@0-lZODcd>dLrYp!mHn4k>>7kibI!Em+Vh*;z}l?0qro=aJt68joCr5Jo(Vk<@i) z5BCKb4p6Gdr9=JSf(2Mgr=_6}%4?SwhV+JZj3Ox^_^OrQk$B^v?eNz}d^xRaz&~ zKVnlLnK#8^y=If2f1zmb~^5lPLe?%l}>?~wN4IN((2~U{e9fKhLMtYFj)I$(y zgnKv?R+ZpxA$f)Q2l=aqE6EPTK=i0sY&MDFJp!vQayyvzh4wee<}kybNthRlX>SHh z7S}9he^EBOqzBCww^duHu!u+dnf9veG{HjW!}aT7aJqzze9K6-Z~8pZAgdm1n~aDs z8_s7?WXMPJ3EPJHi}NL&d;lZP8hDhAXf5Hd!x|^kEHu`6QukXrVdLnq5zbI~oPo?7 z2Cbu8U?$K!Z4_yNM1a(bL!GRe!@{Qom+DxjrJ!B99qu5b*Ma%^&-=6UEbC+S2zX&= zQ!%bgJTvmv^2}hhvNQg!l=kbapAgM^hruE3k@jTxsG(B6d=4thBC*4tzVpCYXFc$a zeqgVB^zua)y-YjpiibCCdU%txXYeNFnXcbNj*D?~)5AGjL+!!ij_4{5EWKGav0^={~M^q}baAFOPzxfUM>`KPf|G z&hsaR*7(M6KzTj8Z?;45zX@L#xU{4n$9Q_<-ac(y4g~S|Hyp^-<*d8+P4NHe?~vfm z@y309=`lGdvN8*jw-CL<;o#DKc-%lb0i9a3%{v&2X($|Qxv(_*()&=xD=5oBg=$B0 zU?41h9)JKvP0yR{KsHoC>&`(Uz>?_`tlLjw1&5tPH3FoB%}j;yffm$$s$C=RHi`I3*m@%CPqWnP@B~%DEe;7ZT{9!IMTo1hT3Q347HJ&!)BM2 z3~aClf>aFh0_9||4G}(Npu`9xYY1*SD|M~9!CCFn{-J$u2&Dg*=5$_nozpoD2nxqq zB!--eA8UWZlcEDp4r#vhZ6|vq^9sFvRnA9HpHch5Mq4*T)oGbruj!U8Lx_G%Lby}o zTQ-_4A7b)5A42vA0U}hUJq6&wQ0J%$`w#ph!EGmW96)@{AUx>q6E>-r^Emk!iCR+X zdIaNH`$}7%57D1FyTccs3}Aq0<0Ei{`=S7*>pyg=Kv3nrqblqZcpsCWSQl^uMSsdj zYzh73?6th$c~CI0>%5@!Ej`o)Xm38u0fp9=HE@Sa6l2oX9^^4|Aq%GA z3(AbFR9gA_2T2i%Ck5V2Q2WW-(a&(j#@l6wE4Z`xg#S za#-UWUpU2U!TmIo`CN0JwG^>{+V#9;zvx;ztc$}@NlcyJr?q(Y`UdW6qhq!aWyB5xV1#Jb{I-ghFNO0 zFU~+QgPs{FY1AbiU&S$QSix>*rqYVma<-~s%ALhFyVhAYepId1 zs!gOB&weC18yhE-v6ltKZMV|>JwTX+X)Y_EI(Ff^3$WTD|Ea-1HlP;6L~&40Q&5{0 z$e$2KhUgH8ucMJxJV#M%cs!d~#hR^nRwk|uuCSf6irJCkSyI<%CR==tftx6d%;?ef zYIcjZrP@APzbtOeUe>m-TW}c-ugh+U*RbL1eIY{?>@8aW9bb1NGRy@MTse@>= za%;5=U}X%K2tKTYe9gjMcBvX%qrC&uZ`d(t)g)X8snf?vBe3H%dG=bl^rv8Z@YN$gd9yveHY0@Wt0$s zh^7jCp(q+6XDoekb;=%y=Wr8%6;z0ANH5dDR_VudDG|&_lYykJaiR+(y{zpR=qL3|2e${8 z2V;?jgHj7}Kl(d8C9xWRjhpf_)KOXl+@c4wrHy zL3#9U(`=N59og2KqVh>nK~g9>fX*PI0`>i;;b6KF|8zg+k2hViCt}4dfMdvb1NJ-Rfa7vL2;lPK{Lq*u`JT>S zoM_bZ_?UY6oV6Ja14X^;LqJPl+w?vf*C!nGK;uU^0GRN|UeFF@;H(Hgp8x^|;ygh? zIZx3DuO(lD01ksanR@Mn#lti=p28RTNYY6yK={RMFiVd~k8!@a&^jicZ&rxD3CCI! zVb=fI?;c#f{K4Pp2lnb8iF2mig)|6JEmU86Y%l}m>(VnI*Bj`a6qk8QL&~PFDxI8b z2mcsQBe9$q`Q$LfG2wdvK`M1}7?SwLAV&)nO;kAk`SAz%x9CDVHVbUd$O(*aI@D|s zLxJW7W(QeGpQY<$dSD6U$ja(;Hb3{Zx@)*fIQaW{8<$KJ&fS0caI2Py^clOq9@Irt z7th7F?7W`j{&UmM==Lo~T&^R7A?G=K_e-zfTX|)i`pLitlNE(~tq*}sS1x2}Jlul6 z5+r#4SpQu8h{ntIv#qCVH`uG~+I8l+7ZG&d`Dm!+(rZQDV*1LS^WfH%-!5aTAxry~ z4xl&rot5ct{xQ$w$MtVTUi6tBFSJWq2Rj@?HAX1H$eL*fk{Hq;E`x|hghRkipYNyt zKCO=*KSziiVk|+)qQCGrTYH9X!Z0$k{Nde~0Wl`P{}ca%nv<6fnYw^~9dYxTnTZB&&962jX0DM&wy&8fdxX8xeHSe=UU&Mq zRTaUKnQO|A>E#|PUo+F=Q@dMdt`P*6e92za(TH{5C*2I2S~p?~O@hYiT>1(n^Lqqn zqewq3ctAA%0E)r53*P-a8Ak32mGtUG`L^WVcm`QovX`ecB4E9X60wrA(6NZ7z~*_DV_e z8$I*eZ8m=WtChE{#QzeyHpZ%7GwFHlwo2*tAuloI-j2exx3#x7EL^&D;Re|Kj-XT- zt908^soV2`7s+Hha!d^#J+B)0-`{qIF_x=B811SZlbUe%kvPce^xu7?LY|C z@f1gRPha1jq|=f}Se)}v-7MWH9)YAs*FJ&v3ZT9TSi?e#jarin0tjPNmxZNU_JFJG z+tZi!q)JP|4pQ)?l8$hRaPeoKf!3>MM-bp06RodLa*wD=g3)@pYJ^*YrwSIO!SaZo zDTb!G9d!hb%Y0QdYxqNSCT5o0I!GDD$Z@N!8J3eI@@0AiJmD7brkvF!pJGg_AiJ1I zO^^cKe`w$DsO|1#^_|`6XTfw6E3SJ(agG*G9qj?JiqFSL|6tSD6vUwK?Cwr~gg)Do zp@$D~7~66-=p4`!!UzJDKAymb!!R(}%O?Uel|rMH>OpRGINALtg%gpg`=}M^Q#V5( zMgJY&gF)+;`e38QHI*c%B}m94o&tOfae;og&!J2;6ENW}QeL73jatbI1*9X~y=$Dm%6FwDcnCyMRL}zo`0=y7=}*Uw zo3!qZncAL{HCgY!+}eKr{P8o27ye+;qJP;kOB%RpSesGoHLT6tcYp*6v~Z9NCyb6m zP#qds0jyqXX46qMNhXDn3pyIxw2f_z;L_X9EIB}AhyC`FYI}G3$WnW>#NMy{0aw}nB%1=Z4&*(FaCn5QG(zvdG^pQRU25;{wwG4h z@kuLO0F->{@g2!;NNd!PfqM-;@F0;&wK}0fT9UrH}(8A5I zt33(+&U;CLN|8+71@g z(s!f-kZZZILUG$QXm9iYiE*>2w;gpM>lgM{R9vT3q>qI{ELO2hJHVi`)*jzOk$r)9 zq}$VrE0$GUCm6A3H5J-=Z9i*biw8ng zi<1nM0lo^KqRY@Asucc#DMmWsnCS;5uPR)GL3pL=-IqSd>4&D&NKSGHH?pG;=Xo`w zw~VV9ddkwbp~m>9G0*b?j7-0fOwR?*U#BE#n7A=_fDS>`fwatxQ+`FzhBGQUAyIRZ??eJt46vHBlR>9m!vfb6I)8!v6TmtZ%G6&E|1e zOtx5xy%yOSu+<9Ul5w5N=&~4Oph?I=ZKLX5DXO(*&Po>5KjbY7s@tp$8(fO|`Xy}Y z;NmMypLoG7r#Xz4aHz7n)MYZ7Z1v;DFHLNV{)to;(;TJ=bbMgud96xRMME#0d$z-S z-r1ROBbW^&YdQWA>U|Y>{whex#~K!ZgEEk=LYG8Wqo28NFv)!t!~}quaAt}I^y-m| z8~E{9H2VnyVxb_wCZ7v%y(B@VrM6lzk~|ywCi3HeiSV`TF>j+Ijd|p*kyn;=mqtf8&DK^|*f+y$38+9!sis9N=S)nINm9=CJ<;Y z!t&C>MIeyou4XLM*ywT_JuOXR>VkpFwuT9j5>667A=CU*{TBrMTgb4HuW&!%Yt`;#md7-`R`ouOi$rEd!ErI zo#>qggAcx?C7`rQ2;)~PYCw%CkS(@EJHZ|!!lhi@Dp$*n^mgrrImsS~(ioGak>3)w zvop0lq@IISuA0Ou*#1JkG{U>xSQV1e}c)!d$L1plFX5XDXX5N7Ns{kT{y5|6MfhBD+esT)e7&CgSW8FxsXTAY=}?0A!j_V9 zJ;IJ~d%av<@=fNPJ9)T3qE78kaz64E>dJaYab5uaU`n~Zdp2h{8DV%SKE5G^$LfuOTRRjB;TnT(Jk$r{Pfe4CO!SM_7d)I zquW~FVCpSycJ~c*B*V8?Qqo=GwU8CkmmLFugfHQ7;A{yCy1OL-+X=twLYg9|H=~8H znnN@|tCs^ZLlCBl5wHvYF}2vo>a6%mUWpTds_mt*@wMN4-r`%NTA%+$(`m6{MNpi@ zMx)8f>U4hd!row@gM&PVo&Hx+lV@$j9yWTjTue zG9n0DP<*HUmJ7ZZWwI2x+{t3QEfr6?T}2iXl=6e0b~)J>X3`!fXd9+2wc1%cj&F@Z zgYR|r5Xd5jy9;YW&=4{-0rJ*L5CgDPj9^3%bp-`HkyBs`j1iTUGD4?WilZ6RO8mIE z+~Joc?GID6K96dyuv(dWREK9Os~%?$$FxswxQsoOi8M?RnL%B~Lyk&(-09D0M?^Jy zWjP)n(b)TF<-|CG%!Vz?8Fu&6iU<>oG#kGcrcrrBlfZMVl0wOJvsq%RL9To%iCW@)#& zZAJWhgzYAq)#NTNb~3GBcD%ZZOc43!YWSyA7TD6xkk)n^FaRAz73b}%9d&YisBic(?mv=Iq^r%Ug zzHq-rRrhfOOF+yR=AN!a9*Rd#sM9ONt5h~w)yMP7Dl9lfpi$H0%GPW^lS4~~?vI8Z z%^ToK#NOe0ExmUsb`lLO$W*}yXNOxPe@zD*90uTDULnH6C?InP3J=jYEO2d)&e|mP z1DSd0QOZeuLWo*NqZzopA+LXy9)fJC00NSX=_4Mi1Z)YyZVC>C!g}cY(Amaj%QN+bev|Xxd2OPD zk!dfkY6k!(sDBvsFC2r^?}hb81(WG5Lt9|riT`2?P;B%jaf5UX<~OJ;uAL$=Ien+V zC!V8u0v?CUa)4*Q+Q_u zkx{q;NjLcvyMuU*{+uDsCQ4U{JLowYby-tn@hatL zy}X>9y08#}oytdn^qfFesF)Tt(2!XGw#r%?7&zzFFh2U;#U9XBO8W--#gOpfbJ`Ey z|M8FCKlWQrOJwE;@Sm02l9OBr7N}go4V8ur)}M@m2uWjggb)DC4s`I4d7_8O&E(j; z?3$9~R$QDxNM^rNh9Y;6P7w+bo2q}NEd6f&_raor-v`UCaTM3TT8HK2-$|n{N@U>_ zL-`P7EXoEU5JRMa)?tNUEe8XFis+w8g9k(QQ)%?&Oac}S`2V$b?%`DwXBgja&&fR@ zH_XidF$p1wA)J|Wk1;?lCl?fgc)=TB3>Y8;BoMqHwJqhL)Tgydv9(?(TBX)fq%=~C zmLj!iX-kn7QA(9snzk0LRf<%SzO&~IhLor6A3f*U^UcoAygRe!H#@UCv$JUP&vPxs zeDj$1%#<2T1!e|!7xI+~_VXLl5|jHqvOhU7ZDUGee;HnkcPP=_k_FFxPjXg*9KyI+ zIh0@+s)1JDSuKMeaDZ3|<_*J8{TUFDLl|mXmY8B>Wj_?4mC#=XjsCKPEO=p0c&t&Z zd1%kHxR#o9S*C?du*}tEHfAC7WetnvS}`<%j=o7YVna)6pw(xzkUi7f#$|^y4WQ{7 zu@@lu=j6xr*11VEIY+`B{tgd(c3zO8%nGk0U^%ec6h)G_`ki|XQXr!?NsQkxzV6Bn1ea9L+@ z(Zr7CU_oXaW>VOdfzENm+FlFQ7Se0ROrNdw(QLvb6{f}HRQ{$Je>(c&rws#{dFI^r zZ4^(`J*G0~Pu_+p5AAh>RRpkcbaS2a?Fe&JqxDTp`dIW9;DL%0wxX5;`KxyA4F{(~_`93>NF@bj4LF!NC&D6Zm+Di$Q-tb2*Q z&csGmXyqA%Z9s(AxNO3@Ij=WGt=UG6J7F;r*uqdQa z?7j!nV{8eQE-cwY7L(3AEXF3&V*9{DpSYdyCjRhv#&2johwf{r+k`QB81%!aRVN<& z@b*N^xiw_lU>H~@4MWzgHxSOGVfnD|iC7=hf0%CPm_@@4^t-nj#GHMug&S|FJtr?i z^JVrobltd(-?Ll>)6>jwgX=dUy+^n_ifzM>3)an3iOzpG9Tu;+96TP<0Jm_PIqof3 zMn=~M!#Ky{CTN_2f7Y-i#|gW~32RCWKA4-J9sS&>kYpTOx#xVNLCo)A$LUme^fVNH z@^S7VU^UJ0YR8?Oy$^IYuG*bm|g;@aX~i60%`7XLy*AYpYvZ^F^U(!|RW z*C!rJ@+7TGdL=nNd1gv^%B+;Fcr$y)i0!GRsZXRHPs>QVGVR{9r_#&Qd(wL|5;H;> zD>HUw=4CF++&{7$<8G@j*nGjhEO%BQYfjeItp4mPvY*JYb1HKd!{HJ9*)(3%BR%{Pp?AM&*yHAJsW({ivOzj*qS!-7|XEn6@zo z3L*tBT%<4RxoAh>q{0n_JBmgW6&8hx?kL(_^k%VL>?xjAyrKBmSl`$=V|SK}ELl}@ zd|d0eo#RfG`bw9SK3%r4Y+rdvc}w}~ixV%tqawbdqvE-WcgE+BUpxMT%F@btm76MG zn=oQRWWuTm+a{dy)Oc2V4yX(@M{QAkx>(QB59*`dLT`Pz3Lsj9iB=HSHAiCq()ns|Cr)1*c605Cx}3V&x}Lg?b+6Q?)z7Kl zQh&1Hx`y6JY-Cwvd*ozeps}a1xAA0CR+Da;+O(i)P1C;SjOI}Dtmf6tPqo-Bl`U78 zv$kYgPntPp@G)n1an9tEoL*Vumu9`>_@I(;+5+fBa-*?fEx=mTEjZ7wq}#@Gd5_cW z!mP{N=yqEntDo)|>oy6{9cu+-3*GTnmb^`O0^FzRPO^&aG`f@F_R*aQ_e{F+_9%NW z4KG_B`@X3EVV9L>?_RNDMddA>w=e0KfAiw5?#i1NFT%Zz#nuv(&!yIU>lVxmzYKQ` zzJ*0w9<&L4aJ6A;0j|_~i>+y(q-=;2Xxhx2v%CYY^{} z^J@LO()eLo|7!{ghQ+(u$wxO*xY#)cL(|miH2_ck2yN{mu4O9=hBW*pM_()-_YdH#Ru{JtwJ^R2}3?!>>m1pohh zrn(!xCjE0Q&EH1QK?zA%sxVh&H99cObJUY$veZhQ)MLu-h%`!*G)s$2k;~+A z)Kk->Ri?`oGDEJEtI*wijm(s5f$W78FH{+qBxiU{~kq((J3uK{m z$|C8K#j-?hm8H@x%VfFqpnvu@xn1s%J7uNZC9C99a<_b1J|mx%)$%!6gPU|~<@2&m zz99GDp`|a%m*iggvfL;4%X;~WY>)@!tMWB@P`)k?$;0x9JSrRI8?s3rlgH(o@`OAo zn{f*gZ#t2u6K??hx|aElOM`Xd0t+SAIUEHvFw%?Wsm$s zUXq{6UU?a>Nc@@Xlb_2k9M1Ctr<#+O?yd}rv z_wu&=_t$!Yngd@N_AUj}T; z#*Ce|%XZr_sQcsWcsl{pCnnj+c8ZNIMmx<;w=-g$Q>BU;9k;w|zQ;4!W32Xg2Cd?{ zvmO3kuKQ^Hv;o>6ZHP8ZJ2`4~Bx?N;cf<0fi=!*G^^WzbTF3e$b&d^qqB{>nqLG81 zs94bBh%|Vj+hLu=!8(b9brJ>ZBns9^6s(gdSVyP9qnu2_I{Sg8j-rloG6{d`De5We zDe5WeY3ga}Y3ga}Y3ga}Y3ga}Y3ga}d8y~6o|k%F>UpW>rJk31Ug~+N=cS&HdOqs; zsOO`ek9t1p`Kafko{xGy>iMbXr=FjBxZMYc8a#gL`Kjlpo}YSt>iMY`pk9DF0qO*( z6QE9jIsxhgs1u-0kUBx8D@eT{^@7w3QZGooAoYUO3sNscy%6<6)C*BBM7L`dk$Xk%6}eZQXgo#!75P`>Uy*-B{uTLGUy*-B{uTLGUy*-B{uTLG))v8{5gt_uj9!t5)^yb-JtjRGrhi zYInOUNJxNyf_yKX01)K=WP|Si>HqEj|B{eUl?MR<)%<1&{(~)D+NPwKxWqT-@~snp zg9KCz1VTZDiS?UH`PRk1VPM{29cgT9=D?!Wc_@}qzggFv;gb@2cJQAYWWtpEZ7?y@jSVqjx${B5UV@SO|wH<<0; z{><1KdVI%Ki}>~<`46C0AggwUwx-|QcU;iiZ{NZu`ur>hd*|Hb(|6veERqxu=b@5Bab=rqptGxd{QJg!4*-i_$sES~)AB46}Fjg|ea#e@?J}z%CUJ zOsLWRQR1#ng^sD)A4FDuY!iUhzlgfJh(J@BRqd&P#v2B`+saBx>m+M&q7vk-75$NH%T5pi%m z5FX?`2-5l53=a&GkC9^NZCLpN5(DMKMwwab$FDIs?q>4!!xBS}75gX_5;(luk;3Vl zLCLd5a_8`Iyz}K}+#RMwu6DVk3O_-}n>aE!4NaD*sQn`GxY?cHe!Bl9n?u&g6?aKm z-P8z&;Q3gr;h`YIxX%z^o&GZZg1=>_+hP2$$-DnL_?7?3^!WAsY4I7|@K;aL<>OTK zByfjl2PA$T83*LM9(;espx-qB%wv7H2i6CFsfAg<9V>Pj*OpwX)l?^mQfr$*OPPS$ z=`mzTYs{*(UW^ij1U8UfXjNoY7GK*+YHht(2oKE&tfZuvAyoN(;_OF>-J6AMmS5fB z^sY6wea&&${+!}@R1f$5oC-2J>J-A${@r(dRzc`wnK>a7~8{Y-scc|ETOI8 zjtNY%Y2!PI;8-@a=O}+{ap1Ewk0@T`C`q!|=KceX9gK8wtOtIC96}-^7)v23Mu;MH zhKyLGOQMujfRG$p(s`(2*nP4EH7*J57^=|%t(#PwCcW7U%e=8Jb>p6~>RAlY4a*ts=pl}_J{->@kKzxH|8XQ5{t=E zV&o`$D#ZHdv&iZWFa)(~oBh-Osl{~CS0hfM7?PyWUWsr5oYlsyC1cwULoQ4|Y5RHA2*rN+EnFPnu z`Y_&Yz*#550YJwDy@brZU>0pWV^RxRjL221@2ABq)AtA%Cz?+FG(}Yh?^v)1Lnh%D zeM{{3&-4#F9rZhS@DT0E(WRkrG!jC#5?OFjZv*xQjUP~XsaxL2rqRKvPW$zHqHr8Urp2Z)L z+)EvQeoeJ8c6A#Iy9>3lxiH3=@86uiTbnnJJJoypZ7gco_*HvKOH97B? zWiwp>+r}*Zf9b3ImxwvjL~h~j<<3shN8$k-$V1p|96I!=N6VBqmb==Bec|*;HUg?) z4!5#R*(#Fe)w%+RH#y{8&%%!|fQ5JcFzUE;-yVYR^&Ek55AXb{^w|@j|&G z|6C-+*On%j;W|f8mj?;679?!qY86c{(s1-PI2Wahoclf%1*8%JAvRh1(0)5Vu37Iz z`JY?RW@qKr+FMmBC{TC7k@}fv-k8t6iO}4K-i3WkF!Lc=D`nuD)v#Na zA|R*no51fkUN3^rmI;tty#IK284*2Zu!kG13!$OlxJAt@zLU`kvsazO25TpJLbK&;M8kw*0)*14kpf*)3;GiDh;C(F}$- z1;!=OBkW#ctacN=je*Pr)lnGzX=OwgNZjTpVbFxqb;8kTc@X&L2XR0A7oc!Mf2?u9 zcctQLCCr+tYipa_k=;1ETIpHt!Jeo;iy^xqBES^Ct6-+wHi%2g&)?7N^Yy zUrMIu){Jk)luDa@7We5U!$$3XFNbyRT!YPIbMKj5$IEpTX1IOtVP~(UPO2-+9ZFi6 z-$3<|{Xb#@tABt0M0s1TVCWKwveDy^S!!@4$s|DAqhsEv--Z}Dl)t%0G>U#ycJ7cy z^8%;|pg32=7~MJmqlC-x07Sd!2YX^|2D`?y;-$a!rZ3R5ia{v1QI_^>gi(HSS_e%2 zUbdg^zjMBBiLr8eSI^BqXM6HKKg#@-w`a**w(}RMe%XWl3MipvBODo*hi?+ykYq)z ziqy4goZw0@VIUY65+L7DaM5q=KWFd$;W3S!Zi>sOzpEF#(*3V-27N;^pDRoMh~(ZD zJLZXIam0lM7U#)119Hm947W)p3$%V`0Tv+*n=&ybF&}h~FA}7hEpA&1Y!BiYIb~~D z$TSo9#3ee02e^%*@4|*+=Nq6&JG5>zX4k5f?)z*#pI-G(+j|jye%13CUdcSP;rNlY z#Q!X%zHf|V)GWIcEz-=fW6AahfxI~y7w7i|PK6H@@twdgH>D_R@>&OtKl}%MuAQ7I zcpFmV^~w~8$4@zzh~P~+?B~%L@EM3x(^KXJSgc6I=;)B6 zpRco2LKIlURPE*XUmZ^|1vb?w*ZfF}EXvY13I4af+()bAI5V?BRbFp`Sb{8GRJHd* z4S2s%4A)6Uc=PK%4@PbJ<{1R6+2THMk0c+kif**#ZGE)w6WsqH z`r^DL&r8|OEAumm^qyrryd(HQ9olv$ltnVGB{aY?_76Uk%6p;e)2DTvF(;t=Q+|8b zqfT(u5@BP);6;jmRAEV057E*2d^wx@*aL1GqWU|$6h5%O@cQtVtC^isd%gD7PZ_Io z_BDP5w(2*)Mu&JxS@X%%ByH_@+l>y07jIc~!@;Raw)q_;9oy@*U#mCnc7%t85qa4? z%_Vr5tkN^}(^>`EFhag;!MpRh!&bKnveQZAJ4)gEJo1@wHtT$Gs6IpznN$Lk-$NcM z3ReVC&qcXvfGX$I0nfkS$a|Pm%x+lq{WweNc;K>a1M@EAVWs2IBcQPiEJNt}+Ea8~WiapASoMvo(&PdUO}AfC~>ZGzqWjd)4no( ziLi#e3lOU~sI*XPH&n&J0cWfoh*}eWEEZW%vX?YK!$?w}htY|GALx3;YZoo=JCF4@ zdiaA-uq!*L5;Yg)z-_`MciiIwDAAR3-snC4V+KA>&V%Ak;p{1u>{Lw$NFj)Yn0Ms2*kxUZ)OTddbiJM}PK!DM}Ot zczn?EZXhx3wyu6i{QMz_Ht%b?K&-@5r;8b076YDir`KXF0&2i9NQ~#JYaq*}Ylb}^ z<{{6xy&;dQ;|@k_(31PDr!}}W$zF7Jv@f%um0M$#=8ygpu%j(VU-d5JtQwT714#f0z+Cm$F9JjGr_G!~NS@L9P;C1? z;Ij2YVYuv}tzU+HugU=f9b1Wbx3418+xj$RKD;$gf$0j_A&c;-OhoF*z@DhEW@d9o zbQBjqEQnn2aG?N9{bmD^A#Um6SDKsm0g{g_<4^dJjg_l_HXdDMk!p`oFv8+@_v_9> zq;#WkQ!GNGfLT7f8m60H@$tu?p;o_It#TApmE`xnZr|_|cb3XXE)N^buLE`9R=Qbg zXJu}6r07me2HU<)S7m?@GzrQDTE3UH?FXM7V+-lT#l}P(U>Fvnyw8T7RTeP`R579m zj=Y>qDw1h-;|mX-)cSXCc$?hr;43LQt)7z$1QG^pyclQ1Bd!jbzsVEgIg~u9b38;> zfsRa%U`l%did6HzPRd;TK{_EW;n^Ivp-%pu0%9G-z@Au{Ry+EqEcqW=z-#6;-!{WA z;l+xC6Zke>dl+(R1q7B^Hu~HmrG~Kt575mzve>x*cL-shl+zqp6yuGX)DDGm`cid! znlnZY=+a5*xQ=$qM}5$N+o!^(TqTFHDdyCcL8NM4VY@2gnNXF|D?5a558Lb*Yfm4) z_;0%2EF7k{)i(tTvS`l5he^KvW%l&-suPwpIlWB_Za1Hfa$@J!emrcyPpTKKM@NqL z?X_SqHt#DucWm<3Lp}W|&YyQE27zbGP55=HtZmB(k*WZA79f##?TweCt{%5yuc+Kx zgfSrIZI*Y57FOD9l@H0nzqOu|Bhrm&^m_RK6^Z<^N($=DDxyyPLA z+J)E(gs9AfaO`5qk$IGGY+_*tEk0n_wrM}n4G#So>8Dw6#K7tx@g;U`8hN_R;^Uw9JLRUgOQ?PTMr4YD5H7=ryv)bPtl=<&4&% z*w6k|D-%Tg*F~sh0Ns(h&mOQ_Qf{`#_XU44(VDY8b})RFpLykg10uxUztD>gswTH} z&&xgt>zc(+=GdM2gIQ%3V4AGxPFW0*l0YsbA|nFZpN~ih4u-P!{39d@_MN)DC%d1w z7>SaUs-g@Hp7xqZ3Tn)e z7x^sC`xJ{V<3YrmbB{h9i5rdancCEyL=9ZOJXoVHo@$$-%ZaNm-75Z-Ry9Z%!^+STWyv~To>{^T&MW0-;$3yc9L2mhq z;ZbQ5LGNM+aN628)Cs16>p55^T^*8$Dw&ss_~4G5Go63gW^CY+0+Z07f2WB4Dh0^q z-|6QgV8__5>~&z1gq0FxDWr`OzmR}3aJmCA^d_eufde7;d|OCrKdnaM>4(M%4V`PxpCJc~UhEuddx9)@)9qe_|i z)0EA%&P@_&9&o#9eqZCUCbh?`j!zgih5sJ%c4(7_#|Xt#r7MVL&Q+^PQEg3MBW;4T zG^4-*8L%s|A}R%*eGdx&i}B1He(mLygTmIAc^G(9Si zK7e{Ngoq>r-r-zhyygK)*9cj8_%g z)`>ANlipCdzw(raeqP-+ldhyUv_VOht+!w*>Sh+Z7(7(l=9~_Vk ztsM|g1xW`?)?|@m2jyAgC_IB`Mtz(O`mwgP15`lPb2V+VihV#29>y=H6ujE#rdnK` zH`EaHzABs~teIrh`ScxMz}FC**_Ii?^EbL(n90b(F0r0PMQ70UkL}tv;*4~bKCiYm zqngRuGy`^c_*M6{*_~%7FmOMquOEZXAg1^kM`)0ZrFqgC>C%RJvQSo_OAA(WF3{euE}GaeA?tu5kF@#62mM$a051I zNhE>u>!gFE8g#Jj95BqHQS%|>DOj71MZ?EYfM+MiJcX?>*}vKfGaBfQFZ3f^Q-R1# znhyK1*RvO@nHb|^i4Ep_0s{lZwCNa;Ix<{E5cUReguJf+72QRZIc%`9-Vy)D zWKhb?FbluyDTgT^naN%l2|rm}oO6D0=3kfXO2L{tqj(kDqjbl(pYz9DykeZlk4iW5 zER`)vqJxx(NOa;so@buE!389-YLbEi@6rZG0#GBsC+Z0fzT6+d7deYVU;dy!rPXiE zmu73@Jr&~K{-9MVQD}&`)e>yLNWr>Yh8CXae9XqfvVQ&eC_;#zpoaMxZ0GpZz7xjx z`t_Q-F?u=vrRPaj3r<9&t6K=+egimiJ8D4gh-rUYvaVy zG($v+3zk5sMuOhjxkH7bQ}(5{PD3Mg?!@8PkK&w>n7tO8FmAmoF30_#^B~c(Q_`4L zYWOoDVSnK|1=p{+@`Fk^Qb81Xf89_S`RSTzv(a4ID%71nll%{Wad$!CKfeTKkyC?n zCkMKHU#*nz_(tO$M)UP&ZfJ#*q(0Gr!E(l5(ce<3xut+_i8XrK8?Xr7_oeHz(bZ?~8q5q~$Rah{5@@7SMN zx9PnJ-5?^xeW2m?yC_7A#WK*B@oIy*Y@iC1n7lYKj&m7vV;KP4TVll=II)$39dOJ^czLRU>L> z68P*PFMN+WXxdAu=Hyt3g$l(GTeTVOZYw3KY|W0Fk-$S_`@9`K=60)bEy?Z%tT+Iq z7f>%M9P)FGg3EY$ood+v$pdsXvG? zd2q3abeu-}LfAQWY@=*+#`CX8RChoA`=1!hS1x5dOF)rGjX4KFg!iPHZE2E=rv|A} zro(8h38LLFljl^>?nJkc+wdY&MOOlVa@6>vBki#gKhNVv+%Add{g6#-@Z$k*ps}0Y zQ=8$)+Nm||)mVz^aa4b-Vpg=1daRaOU)8@BY4jS>=5n#6abG@(F2`=k-eQ9@u# zxfNFHv=z2w@{p1dzSOgHokX1AUGT0DY4jQI@YMw)EWQ~q5wmR$KQ}Y;(HPMSQCwzu zdli|G?bj(>++CP)yQ4s6YfpDc3KqPmquQSxg%*EnTWumWugbDW5ef%8j-rT#3rJu? z)5n;4b2c*;2LIW%LmvUu6t1~di~}0&Svy}QX#ER|hDFZwl!~zUP&}B1oKAxIzt~so zb!GaJYOb#&qRUjEI1xe_`@7qv_-LggQ$JE8+{ryT4%ldwC5ete+{G3C#g@^oxfY3#F zcLlj(l2G8>tC<5XWV|6_DZQZ7ow?MD8EZ9mM2oV~WoV-uoExmbwpzc6eMV}%J_{3l zW(4t2a-o}XRlU|NSiYn!*nR(Sc>*@TuU*(S77gfCi7+WR%2b;4#RiyxWR3(u5BIdf zo@#g4wQjtG3T$PqdX$2z8Zi|QP~I^*9iC+(!;?qkyk&Q7v>DLJGjS44q|%yBz}}>i z&Ve%^6>xY<=Pi9WlwpWB%K10Iz`*#gS^YqMeV9$4qFchMFO}(%y}xs2Hn_E}s4=*3 z+lAeCKtS}9E{l(P=PBI;rsYVG-gw}-_x;KwUefIB@V%RLA&}WU2XCL_?hZHoR<7ED zY}4#P_MmX(_G_lqfp=+iX|!*)RdLCr-1w`4rB_@bI&Uz# z!>9C3&LdoB$r+O#n);WTPi;V52OhNeKfW6_NLnw zpFTuLC^@aPy~ZGUPZr;)=-p|b$-R8htO)JXy{ecE5a|b{{&0O%H2rN&9(VHxmvNly zbY?sVk}@^{aw)%#J}|UW=ucLWs%%j)^n7S%8D1Woi$UT}VuU6@Sd6zc2+t_2IMBxd zb4R#ykMr8s5gKy=v+opw6;4R&&46$V+OOpDZwp3iR0Osqpjx))joB*iX+diVl?E~Q zc|$qmb#T#7Kcal042LUNAoPTPUxF-iGFw>ZFnUqU@y$&s8%h-HGD`EoNBbe#S>Y-4 zlkeAP>62k~-N zHQqXXyN67hGD6CxQIq_zoepU&j0 zYO&}<4cS^2sp!;5))(aAD!KmUED#QGr48DVlwbyft31WlS2yU<1>#VMp?>D1BCFfB z_JJ-kxTB{OLI}5XcPHXUo}x~->VP%of!G_N-(3Snvq`*gX3u0GR&}*fFwHo3-vIw0 zeiWskq3ZT9hTg^je{sC^@+z3FAd}KNhbpE5RO+lsLgv$;1igG7pRwI|;BO7o($2>mS(E z$CO@qYf5i=Zh6-xB=U8@mR7Yjk%OUp;_MMBfe_v1A(Hqk6!D})x%JNl838^ZA13Xu zz}LyD@X2;5o1P61Rc$%jcUnJ>`;6r{h5yrEbnbM$$ntA@P2IS1PyW^RyG0$S2tUlh z8?E(McS?7}X3nAAJs2u_n{^05)*D7 zW{Y>o99!I9&KQdzgtG(k@BT|J*;{Pt*b|?A_})e98pXCbMWbhBZ$t&YbNQOwN^=F) z_yIb_az2Pyya2530n@Y@s>s>n?L79;U-O9oPY$==~f1gXro5Y z*3~JaenSl_I}1*&dpYD?i8s<7w%~sEojqq~iFnaYyLgM#so%_ZZ^WTV0`R*H@{m2+ zja4MX^|#>xS9YQo{@F1I)!%RhM{4ZUapHTKgLZLcn$ehRq(emb8 z9<&Nx*RLcS#)SdTxcURrJhxPM2IBP%I zf1bWu&uRf{60-?Gclb5(IFI*!%tU*7d`i!l@>TaHzYQqH4_Y*6!Wy0d-B#Lz7Rg3l zqKsvXUk9@6iKV6#!bDy5n&j9MYpcKm!vG7z*2&4G*Yl}iccl*@WqKZWQSJCgQSj+d ze&}E1mAs^hP}>`{BJ6lv*>0-ft<;P@`u&VFI~P3qRtufE11+|#Y6|RJccqo27Wzr}Tp|DH z`G4^v)_8}R24X3}=6X&@Uqu;hKEQV^-)VKnBzI*|Iskecw~l?+R|WKO*~(1LrpdJ? z0!JKnCe<|m*WR>m+Qm+NKNH<_yefIml z+x32qzkNRrhR^IhT#yCiYU{3oq196nC3ePkB)f%7X1G^Ibog$ZnYu4(HyHUiFB`6x zo$ty-8pknmO|B9|(5TzoHG|%>s#7)CM(i=M7Nl=@GyDi-*ng6ahK(&-_4h(lyUN-oOa$` zo+P;C4d@m^p9J4c~rbi$rq9nhGxayFjhg+Rqa{l#`Y z!(P6K7fK3T;y!VZhGiC#)|pl$QX?a)a9$(4l(usVSH>2&5pIu5ALn*CqBt)9$yAl; z-{fOmgu><7YJ5k>*0Q~>lq72!XFX6P5Z{vW&zLsraKq5H%Z26}$OKDMv=sim;K?vsoVs(JNbgTU8-M%+ zN(+7Xl}`BDl=KDkUHM9fLlV)gN&PqbyX)$86!Wv!y+r*~kAyjFUKPDWL3A)m$@ir9 zjJ;uQV9#3$*`Dqo1Cy5*;^8DQcid^Td=CivAP+D;gl4b7*xa9IQ-R|lY5tIpiM~9- z%Hm9*vDV@_1FfiR|Kqh_5Ml0sm?abD>@peo(cnhiSWs$uy&$RYcd+m`6%X9FN%?w}s~Q=3!pJzbN~iJ}bbM*PPi@!E0eN zhKcuT=kAsz8TQo76CMO+FW#hr6da({mqpGK2K4T|xv9SNIXZ}a=4_K5pbz1HE6T}9 zbApW~m0C`q)S^F}B9Kw5!eT)Bj_h9vlCX8%VRvMOg8PJ*>PU>%yt-hyGOhjg!2pZR4{ z=VR_*?Hw|aai##~+^H>3p$W@6Zi`o4^iO2Iy=FPdEAI58Ebc~*%1#sh8KzUKOVHs( z<3$LMSCFP|!>fmF^oESZR|c|2JI3|gucuLq4R(||_!8L@gHU8hUQZKn2S#z@EVf3? zTroZd&}JK(mJLe>#x8xL)jfx$6`okcHP?8i%dW?F%nZh=VJ)32CmY;^y5C1^?V0;M z<3!e8GZcPej-h&-Osc>6PU2f4x=XhA*<_K*D6U6R)4xbEx~{3*ldB#N+7QEXD^v=I z+i^L+V7_2ld}O2b-(#bmv*PyZI4|U#Q5|22a(-VLOTZc3!9ns1RI-? zA<~h|tPH0y*bO1#EMrsWN>4yJM7vqFZr?uw$H8*PhiHRQg1U9YoscX-G|gck+SSRX!(e7@~eeUEw+POsT;=W9J&=EV`cUc{PIg_#TQVGnZsQbCs7#Q-)v#BicxLw#Fb?#)8TYbu zN)5R=MI1i7FHhF|X}xEl=sW~`-kf;fOR^h1yjthSw?%#F{HqrY2$q>7!nbw~nZ8q9 zh{vY! z%i=H!!P&wh z7_E%pB7l5)*VU>_O-S~d5Z!+;f{pQ4e86*&);?G<9*Q$JEJ!ZxY;Oj5&@^eg0Zs!iLCAR`2K?MSFzjX;kHD6)^`&=EZOIdW>L#O`J zf~$M4}JiV}v6B-e{NUBGFgj-*H%NG zfY0X(@|S8?V)drF;2OQcpDl2LV=~=%gGx?_$fbSsi@%J~taHcMTLLpjNF8FkjnjyM zW;4sSf6RHaa~LijL#EJ0W2m!BmQP(f=%Km_N@hsBFw%q#7{Er?y1V~UEPEih87B`~ zv$jE%>Ug9&=o+sZVZL7^+sp)PSrS;ZIJac4S-M>#V;T--4FXZ*>CI7w%583<{>tb6 zOZ8gZ#B0jplyTbzto2VOs)s9U%trre`m=RlKf{I_Nwdxn(xNG%zaVNurEYiMV3*g| z``3;{j7`UyfFrjlEbIJN{0db|r>|LA@=vX9CHFZYiexnkn$b%8Rvw0TZOQIXa;oTI zv@j;ZP+#~|!J(aBz9S{wL7W%Dr1H)G-XUNt9-lP?ijJ-XEj1e*CI~-Xz@4(Xg;UoG z{uzBf-U+(SHe}6oG%;A*93Zb=oE>uTb^%qsL>|bQf?7_6=KIiPU`I|r;YcZ!YG7y~ zQu@UldAwz$^|uoz3mz1;An-WVBtefSh-pv<`n&TU3oM!hrEI?l@v8A4#^$4t&~T32 zl*J=1q~h+60sNc43>0aVvhzyfjshgPYZoQ(OOh>LbUIoblb@1z~zp?))n?^)q6WGuDh}gMUaA9|X z3qq-XlcNldy5==T4rq*~g@XVY!9sYZjo#R7 zr{n)r5^S{9+$+8l7IVB*3_k5%-TBY@C%`P@&tZf>82sm#nfw7L%92>nN$663yW!yt zhS>EfLcE_Z)gv-Y^h1;xj(<4nD4GY{C-nWUgQc9cMmH{qpa!uEznrGF^?bbJHApScQ$j>$JZHAX80DdXu z--AMgrA0$Otdd#N9#!cg2Z~N8&lj1d+wDh+^ZObWJ$J)_h(&2#msu>q0B$DEERy{1 zCJN{7M@%#E@8pda`@u!v@{gcT3bA*>g*xYLXlbb&o@1vX*x+l}Voys6o~^_7>#GB| z*r!R%kA9k%J`?m>1tMHB9x$ZRe0$r~ui}X}jOC)9LH=Po*2SLdtf3^4?VKnu2ox&mV~0oDgi` z;9d}P$g~9%ThTK8s}5ow2V4?(-lU*ed8ro|}mU}pk% z;bqB0bx3AOk<0Joeh}Vl@_7Po&C`Cg>>gff>e7fu41U3Ic{JQu1W%+!Gvz3GDO2ixKd;KF6UEw8F_cDAh08gB>@ zaRH2Q96sBJ>`4aXvrF0xPtIWoA1pPsRQtU~xDtnEfTJnl{A9u5pR^K8=UdNq%T8F$)FbN> zgK+_(BF#D>R>kK!M#OT~=@@}3yAYqm33?{Bv?2iBr|-aRK0@uapzuXI)wE0=R@m^7 zQ`wLBn(M*wg!mgmQT1d!@3<2z>~rmDW)KG0*B4>_R6LjiI0^9QT8gtDDT|Lclxppm z+OeL6H3QpearJAB%1ellZ6d*)wBQ(hPbE=%?y6i^uf%`RXm*JW*WQ%>&J+=V(=qf{ zri~yItvTZbII+7S0>4Q0U9@>HnMP$X>8TqAfD(vAh};2P{QK)ik`a6$W$nG<{bR2Ufd!^iE z#1K58$gW!xpeYHeehuhQCXZ9p%N8m zB+l~T_u-Ycr!U>!?xu!!*6rNxq37{`DhMMfY6NpD3Jw zkYQDstvt30Hc_SaZuuMP2YrdW@HsPMbf^Y9lI<9$bnMil2X7`Ba-DGLbzgqP>mxwe zf1&JkDH54D3nLar2KjJ3z`*R+rUABq4;>>4Kjc2iQEj7pVLcZYZ~pteAG4rm1{>PQy=!QiV5G|tVk)53 zP?Azw+N)Yq3zZ`dW7Q9Bq@Y*jSK0<1f`HM;_>GH57pf_S%Ounz_yhTY8lplQSM`xx zU{r-Deqs+*I~sLI$Oq`>i`J1kJ(+yNOYy$_>R3Jfi680<|^u#J@aY%Q>O zqfI~sCbk#3--^zMkV&Yj0D(R^rK}+_npgPr_4^kYuG=pO%$C_7v{s@-{M-P@RL3^<`kO@b=YdKMuccfO1ZW# zeRYE%D~CMAgPlo?T!O6?b|pOZv{iMWb;sN=jF%=?$Iz_5zH?K;aFGU^8l7u%zHgiy z%)~y|k;Es-7YX69AMj^epGX#&^c@pp+lc}kKc`5CjPN4Z$$e58$Yn*J?81%`0~A)D zPg-db*pj-t4-G9>ImW4IMi*v#9z^9VD9h@9t;3jMAUVxt=oor+16yHf{lT|G4 zya6{4#BxFw!!~UTRwXXawKU4iz$$GMY6=Z8VM{2@0{=5A0+A#p6$aT3ubRyWMWPq9 zCEH5(Il0v4e4=Yxg(tDglfYAy!UpC>&^4=x7#6_S&Ktds)a8^`^tp6RnRd{KImB^o z2n=t#>iKx<*evmvoE{+fH#@WXGWs$)Uxrtf?r>AaxV0?kf0o@oDboJ6z0cgP@A$;k>SK1UqC?Q_ zk_I?j74;}uNXhOf_5ZxQSgB4otDEb9JJrX1kq`-o%T>g%M5~xXf!2_4P~K64tKgXq z&KHZ0@!cPvUJG4kw-0;tPo$zJrU-Nop>Uo65Pm|yaNvKjhi7V1g98;^N1~V3% zTR>yWa+X2FJ_wpPwz3i^6AGwOa_VMS-&`*KoKgF2&oR10Jn6{!pvVG@n=Jk@vjNuY zL~P7aDGhg~O9G^!bHi$8?G9v9Gp0cmekYkK;(q=47;~gI>h-kx-ceM{ml$#8KI$4ltyjaqP zki^cyDERloAb)dcDBU4na9C(pfD{P@eBGA}0|Rb)p{ISqi60=^FUEdF!ok{Gs;vb) zfj9(#1QA64w*ud^YsN5&PeiI>c`VioE8h)e}W%S9NMA55Gs zrWL6l+@3CKd@8(UQLTwe12SGWMqRn+j)QZRj*g)Xua)%ayzpqs{pD(WWESJYL3{M$ z%qkpM`jFoqLYVv6{IbCkL?fEiJj$VG=$taup&RL9e{s(Sgse2xVJlw0h74EXJKt2eX|dxz{->0)3W`JN7Bv!rLvRZc z0tAOZ2yVe4g9iq826qXAg`f!*+}(o1;1FDb>kKexumFS40KvK0yH1_@Z=LgWZ+}(Y zwYsa;OLz6tTA%gS=>8$=Z7pLh>|K2QElL)E=Q*(n*H`8R`8={-@4mTD-SWBOYRxV? zmF(-rJB8^Wlp?319rTrh^?QEP?|Msxrv?WbJ-+id+V#F2Y4(JPJ6U9bv+U1cIIH^W z)lg$_=g^Ma>2~Pyd_YOAv29Cb-U6DJO?NxnW7~QP*SmYi*vdUVuW#LWQ_u0`hymZi zaQS3Nb^4`ro$>0G%zbXmr5|D|iq0R<;S@?kr0j5Ruq87-Z1>crx%EzVZ9#U;{?}ti zW2W%*9MQg3Nbh%Ti6LhDd|-aFSgXoPG`mHlUU1iCHr>ru>DX?W_#13(`u*!Plu2OP z6jk=2>BC0l)aw;HCmxoYD1i4b%m$1`DYC_^L~ zIEAnFcHvad=-aO3(_MI=9#`z6-9*_!&$?<%meb5;jGd5Qp=MGf z6BD{%`L#TAOq%z%@*ib95Ey7NbUF=BlszVk3Iu3imD&*91N-ij%hW?W@~2TtdHTfP z#n0@Xd7X8Dyu36n{k#PwQ~T~X7mAO^cNV+z<HO@3X-# z_@rAn$k~(l@kciCC;&Qd*fWRI>=;fL{UPlciNDWyj$bX<#r^(r;EE8wwUVQm&7~QY zCXRj!**r^xybAEPq>h3W$uvI1j=yNIyzkE_D7fpGw)OV{U*Uwm{xB;mEg2(|y|ICd zMdQVqzMb-=XM6|E-a9kNh)^9lY`-DjhhHD1w5lufRcy+QLgJ47!fFne86#F; zX{ufroVBEZJOY?rDo!;Te6aOZ^1SO!dYRxQ*2njyA~dCWawn)>!*k7~>8Ikt&e*0>>V5ZbO|*1+2LFOqVe zXHb!aMk03^h%&9L8GMy7UDI2Kev>V@(R}*Iu6x+!Hn4~D@wj`P%#Hdbf(lK{+DD7f zJ&(v*mhn_e(R$^5L#bM^^Q@-!*b!l|+Xrb(q*MRFJYnrE7*xko!SJOy9LngR2|q5k zY`Ioiu+YBfzF{Labszk-E#*BYQk>$()=xWEGZRKwY)*UxP}0dGuPLZOkNJDI9Hy zFjfwiK6RjhH#rHW#B0(MW}i%V`943<6@Z*Nd^JEP5uZonXm=u%AM>{H^U@&Jy*i0s za_Da^xI6pMtXzHc{e~_ZcnKP*;=YL2Z^RmzDl{dJTk7*}E_h*NvgnhnxVKB59Duh~ zqouS_WoOR*{UvUw_K#OWz;gMracr%8>QQ&V*jv!8)ho;U8}9~8EU{N<=Z_gR%IpMT zbkePUG_afm=#|iIfFmdqkpLMGxY5D$`?I}&T7>TexU@v zkBx09kG)O;09ckj#(_Uov6vv{{HOcr-%H#DUQ@*GzF8Zh{iSM13%fuB%>wjdU@3Nf zlnYE!GTyNrqes|;nLFXfWU*Wg-9wmr=NBd$nCk+H?iwNvcd0Wab^3CT9a`>3V~oWI z9=_H+N-Q=MQ(io4u4mpdQ;k&5FXnKV5M7R`@WJ9h(GrAirO#XXOU{qQpk^B^Vd=Dt{wiqT zg-#j9J~@o%H2;W9mg)o6@*Vo;BSs2*4HAHpDk02mndAsov08R_48zJZ@J)s7+hyCo zy*0L#y)?AqZt-wX%+_Vx`8*A95OLHvs1$k~{h-_N_vov_gHJE=`X>L?5K+ zD?u59=mjtImMvd1GsDytuYp{IyUkW&?h zF>$#`n$~bZ)KN0B$XGeMYh&`;g8 zo_2-koaO6+8O!+L>SpIQbG(i;QW9UJi{Ecewlo?s&D!^>i$|#jaW}#HJuxt|W48=? zb^Y&O$a1s5ddr8DIt!sD!t=y1g(d4GR(s;s-HfV$GXl&m;+sAAxB^rk(3_NjE$p#L z*t4em?tA0d+XwRxN^OQwzbDZMuSE0J1)Ky{mq)^t4bnSl*)s>zNM@mMdtd78&ebHN z`!(|lE5q-p+TsRaNnMXwALaN5QIZ2IUi^Z22tsN5>nvIO+YU}Q*xh6}ee6@rR~<&1 z(PB4z>9ZBUMXZwSMmd9-aKKsmJeJq^G|#JclOh*xf0?^e0(`40nsg1z)(48;4}B_( zGwPI)yo|{oX{dVDL-5-aMGr;~vU1cPtJP5JM(sswz&Q`e<@0?y{YhsO9YK8EYJA;L z>7oG_Mts+(wCBC*Md82#XdKw&J*IizR?9k^rf1r{Ot-&>V^ke{9nI9zavlcNkIJtN z7T>?o|4rENk-?|lewZ(EfdR;%BUrzKJ^UkCpsM)EA9QHBVV8trT&*O(9?FO{MLTFL z=5P0H+T6C^jAuX0k4U;~GM!x`!X2N~3_n?qXY$HI>x@(DHEy&Q3ucT1R6fj28wX!I zC=&d$@bJ_v^%?W2Ngl}e8ww`b%BrN-PzGH;$@B2Ky1?%GMkm#~Okj(-Admyy;qya| zOi73kr_pwt?5Nj3p=&H>81!w#>Agj z(QXx{j0r=pTl>micAI_5vUw<3`Sht?Z}-j2Wx~F8DKCUQrsXl2?W8hur42(F_ zsSJ)_36&x6A|YkY6c<2a94SXbv~d>4CC4nkDPvf9Z5Fys^6^5r0j5=E>Cgy_Dk@tS z%?c}9!qB?t6t8(XMH%le8UeNWp@Nsma~Ql+^3Bo%_npMryeQJz4V=BAqE~T?dejng z3ge{fjCHoNAfYBvsfq;G%VL|j7t z`X0sy1EEgpyD;)tS1x+fnv-?C@glP0{RCW}Ma?3qpoq_&IJAYOy3G#s`rsh5=3>`K zkj``=;|*x5HSjZC zXNvPLh372q;=+6ja|SC!R-`JcL}}wwskajjTUGTpL(1zkN-p?BA2lmf+J3WsB7!k`0Brx8^cLTF9h)r+LZ$vsZo}`OpOs)?c6$hclR!R#MAeh|_DY|9r zy+_3c%IO9h9X?ksp?an&>Lw;QeQ`T-Ku6HaK~H?E9-Z5$cZu{YU;1+-6B$|JD;%!^ zt(4l>F8}a-UkC4YtOxFHckhl4VKr6P$P_O*U!)IDory%}Wz`YeFx6TO{y2Y${SBm?H9cTWV=WWJ z`_*CGso!ZN>l@~_jkeXtV}fczfA{TUkyeD>)i3|NFGcCsBmK3HXp&ol_@GVs7PIpfULy!hi zs+%KYgS%(n7_z_}6)hblk~W#LZ@&2)fwm6xkFP%&Ju|MFWbNiTwy{{g-pV1RK`L&=RE2D z4|g;~vd8xd|teYS%w!IlT4W$&FTrk-hcTADX!P?*f1YWEIRwq$Ys%^(Z9w&HT$>} zsMD#6Df=uJrX!JHP7<>Or;e_Cf=}`!`qR=i8fBj)$6Lxx{HRzd8Tnzd0p>kSps{OG zKJkml>bUj8$u|F=``l(-aMxWBC@CGZ#FXClQZ<4|&%jN}Tkg#q8z)=>Ly{$i0`rjU zvt|QddO&i=91e?h3>s~i;+6{ z8X4i6a1wDLrSuE#W(zhan+U*Zq+8p3a))JFVF4ffaV51K^YgTso~3;Y*NmM; zx8T?y-N0uyWY(8=me-HUC9xtABvX5~%yg+Cp&XF$Bq=OcK6T*D7eZ2EmIoCFWm{$S z1PNw8HDpe5hHeCusN8kdeb&f2#=3M^A~7YwJ7FRrhq*)PG9x?JIAaC{MV}5}g#7R$-Ly%)4=IUkRCGOR|XTMjn&okRmFjaO^YF5^* z@)#MCBOBezD)*xQNxydlUyN?dW{fS(s-T`gv*0BEnk}`BdmrbmPO8q8y(X$AA}*RH%I7Av!~84pudHb&%Q5-j zt?=6x(iR?<^_7X0v6Ys#VAL}dKk^hcjI=|EY;kPcZ_w<*H`_*|N7SacaM1ERD@6ab zg`!iTm7$URV+lpW_{V$ruR&A>jrX68k4x2wo$45}&wf7o<|o(@B!u-L@bKyQBAGwy z4#}UrRAu>^>Vb6k2-th^>WjvP;Nl|i3WrjWv3ISkj{m{eAcQIW^_ndxSX@|8T(ASJ z?_$fcP2u*6uOBk-{d>^ z0vWlfGQMvysI%R=iE|A+!!Nw?C917EU*_$`;;)px?s83CRd3i_jBN)k#nR5t$dJ(+ z_sP;wG@Ad)^(3LRj7q}0b2O(b`|i0~5SYb%Sjk^*5ISZ-Ab+}DGu$-X1n^TF1Ndw_ zF|e*1)cI2%`TR&AW~XpqpFb!=3cHbS>np9hYD_Mr5}y5Y`SY^r7isA2Q4(z zazRQEqWDKT2zIEbjSYdCPi1ZOGz80Nsl}gxO^DWMY0AV<2K&OL{&^6#@L1?lXu#6xSMh%3^5c*}oM6DQGY#(a^@z<&D zF(43I9e&5`h|A$5!+UFuOH0>F3$shBV4`0#M4RSB8=6F0ZgIbq<2LQ$Hh^(kAJu=! zt8ZGXTacD{(3W{V1$j_{Jc)Ka7t6u}ho`4kF+4@t_0!mCBn z)}o%eA}L)_L?=jw6BIfll7tb3n}?*yLt&XADa=rW>qz=_6s9ziOd5sXjil>FVFx3r zf>Feewk0v#W9>Gp4GacTRr>Sd2T6dWi-{YX`v!D)kCWzG5xQB=?es5ON(%nkwUhNl zV>@xkWWWv*N+{e$(SrExvN6BXzU(Hxlx27{VYHf+LpIbTO+Yu(ltMk<;)3A(LU@ytVYFkYvTa79idMtUFhfxx?P!)2F`prNWW#Fub#l>N2s@nh&n_ zA4{#}|AIs9|A4P0ZF%fy=hDN!t#ifH<)4u2kirK~JUpjQ-J+~cXOZI&dIts;P}UeXslP6zKvpEKSN-$y>kJ^nw2tC9bv zo(|lT@?vZ!{_l|d^8Yh)eEBh*5ABh+Lzjw+?V)o z#P-W7361>E(Y4;@`sv;VKn G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/libraries/fonts/glyphicons-halflings-regular.woff2 b/libraries/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/libraries/js/ZeroClipboard.js b/libraries/js/ZeroClipboard.js new file mode 100755 index 0000000..136e4a9 --- /dev/null +++ b/libraries/js/ZeroClipboard.js @@ -0,0 +1,1031 @@ +/*! +* ZeroClipboard +* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface. +* Copyright (c) 2014 Jon Rohan, James M. Greene +* Licensed MIT +* http://zeroclipboard.org/ +* v1.3.5 +*/ +(function(window) { + "use strict"; + var currentElement; + var flashState = { + bridge: null, + version: "0.0.0", + disabled: null, + outdated: null, + ready: null + }; + var _clipData = {}; + var clientIdCounter = 0; + var _clientMeta = {}; + var elementIdCounter = 0; + var _elementMeta = {}; + var _amdModuleId = null; + var _cjsModuleId = null; + var _swfPath = function() { + var i, jsDir, tmpJsPath, jsPath, swfPath = "ZeroClipboard.swf"; + if (document.currentScript && (jsPath = document.currentScript.src)) {} else { + var scripts = document.getElementsByTagName("script"); + if ("readyState" in scripts[0]) { + for (i = scripts.length; i--; ) { + if (scripts[i].readyState === "interactive" && (jsPath = scripts[i].src)) { + break; + } + } + } else if (document.readyState === "loading") { + jsPath = scripts[scripts.length - 1].src; + } else { + for (i = scripts.length; i--; ) { + tmpJsPath = scripts[i].src; + if (!tmpJsPath) { + jsDir = null; + break; + } + tmpJsPath = tmpJsPath.split("#")[0].split("?")[0]; + tmpJsPath = tmpJsPath.slice(0, tmpJsPath.lastIndexOf("/") + 1); + if (jsDir == null) { + jsDir = tmpJsPath; + } else if (jsDir !== tmpJsPath) { + jsDir = null; + break; + } + } + if (jsDir !== null) { + jsPath = jsDir; + } + } + } + if (jsPath) { + jsPath = jsPath.split("#")[0].split("?")[0]; + swfPath = jsPath.slice(0, jsPath.lastIndexOf("/") + 1) + swfPath; + } + return swfPath; + }(); + var _camelizeCssPropName = function() { + var matcherRegex = /\-([a-z])/g, replacerFn = function(match, group) { + return group.toUpperCase(); + }; + return function(prop) { + return prop.replace(matcherRegex, replacerFn); + }; + }(); + var _getStyle = function(el, prop) { + var value, camelProp, tagName, possiblePointers, i, len; + if (window.getComputedStyle) { + value = window.getComputedStyle(el, null).getPropertyValue(prop); + } else { + camelProp = _camelizeCssPropName(prop); + if (el.currentStyle) { + value = el.currentStyle[camelProp]; + } else { + value = el.style[camelProp]; + } + } + if (prop === "cursor") { + if (!value || value === "auto") { + tagName = el.tagName.toLowerCase(); + if (tagName === "a") { + return "pointer"; + } + } + } + return value; + }; + var _elementMouseOver = function(event) { + if (!event) { + event = window.event; + } + var target; + if (this !== window) { + target = this; + } else if (event.target) { + target = event.target; + } else if (event.srcElement) { + target = event.srcElement; + } + ZeroClipboard.activate(target); + }; + var _addEventHandler = function(element, method, func) { + if (!element || element.nodeType !== 1) { + return; + } + if (element.addEventListener) { + element.addEventListener(method, func, false); + } else if (element.attachEvent) { + element.attachEvent("on" + method, func); + } + }; + var _removeEventHandler = function(element, method, func) { + if (!element || element.nodeType !== 1) { + return; + } + if (element.removeEventListener) { + element.removeEventListener(method, func, false); + } else if (element.detachEvent) { + element.detachEvent("on" + method, func); + } + }; + var _addClass = function(element, value) { + if (!element || element.nodeType !== 1) { + return element; + } + if (element.classList) { + if (!element.classList.contains(value)) { + element.classList.add(value); + } + return element; + } + if (value && typeof value === "string") { + var classNames = (value || "").split(/\s+/); + if (element.nodeType === 1) { + if (!element.className) { + element.className = value; + } else { + var className = " " + element.className + " ", setClass = element.className; + for (var c = 0, cl = classNames.length; c < cl; c++) { + if (className.indexOf(" " + classNames[c] + " ") < 0) { + setClass += " " + classNames[c]; + } + } + element.className = setClass.replace(/^\s+|\s+$/g, ""); + } + } + } + return element; + }; + var _removeClass = function(element, value) { + if (!element || element.nodeType !== 1) { + return element; + } + if (element.classList) { + if (element.classList.contains(value)) { + element.classList.remove(value); + } + return element; + } + if (value && typeof value === "string" || value === undefined) { + var classNames = (value || "").split(/\s+/); + if (element.nodeType === 1 && element.className) { + if (value) { + var className = (" " + element.className + " ").replace(/[\n\t]/g, " "); + for (var c = 0, cl = classNames.length; c < cl; c++) { + className = className.replace(" " + classNames[c] + " ", " "); + } + element.className = className.replace(/^\s+|\s+$/g, ""); + } else { + element.className = ""; + } + } + } + return element; + }; + var _getZoomFactor = function() { + var rect, physicalWidth, logicalWidth, zoomFactor = 1; + if (typeof document.body.getBoundingClientRect === "function") { + rect = document.body.getBoundingClientRect(); + physicalWidth = rect.right - rect.left; + logicalWidth = document.body.offsetWidth; + zoomFactor = Math.round(physicalWidth / logicalWidth * 100) / 100; + } + return zoomFactor; + }; + var _getDOMObjectPosition = function(obj, defaultZIndex) { + var info = { + left: 0, + top: 0, + width: 0, + height: 0, + zIndex: _getSafeZIndex(defaultZIndex) - 1 + }; + if (obj.getBoundingClientRect) { + var rect = obj.getBoundingClientRect(); + var pageXOffset, pageYOffset, zoomFactor; + if ("pageXOffset" in window && "pageYOffset" in window) { + pageXOffset = window.pageXOffset; + pageYOffset = window.pageYOffset; + } else { + zoomFactor = _getZoomFactor(); + pageXOffset = Math.round(document.documentElement.scrollLeft / zoomFactor); + pageYOffset = Math.round(document.documentElement.scrollTop / zoomFactor); + } + var leftBorderWidth = document.documentElement.clientLeft || 0; + var topBorderWidth = document.documentElement.clientTop || 0; + info.left = rect.left + pageXOffset - leftBorderWidth; + info.top = rect.top + pageYOffset - topBorderWidth; + info.width = "width" in rect ? rect.width : rect.right - rect.left; + info.height = "height" in rect ? rect.height : rect.bottom - rect.top; + } + return info; + }; + var _cacheBust = function(path, options) { + var cacheBust = options == null || options && options.cacheBust === true && options.useNoCache === true; + if (cacheBust) { + return (path.indexOf("?") === -1 ? "?" : "&") + "noCache=" + new Date().getTime(); + } else { + return ""; + } + }; + var _vars = function(options) { + var i, len, domain, str = [], domains = [], trustedOriginsExpanded = []; + if (options.trustedOrigins) { + if (typeof options.trustedOrigins === "string") { + domains.push(options.trustedOrigins); + } else if (typeof options.trustedOrigins === "object" && "length" in options.trustedOrigins) { + domains = domains.concat(options.trustedOrigins); + } + } + if (options.trustedDomains) { + if (typeof options.trustedDomains === "string") { + domains.push(options.trustedDomains); + } else if (typeof options.trustedDomains === "object" && "length" in options.trustedDomains) { + domains = domains.concat(options.trustedDomains); + } + } + if (domains.length) { + for (i = 0, len = domains.length; i < len; i++) { + if (domains.hasOwnProperty(i) && domains[i] && typeof domains[i] === "string") { + domain = _extractDomain(domains[i]); + if (!domain) { + continue; + } + if (domain === "*") { + trustedOriginsExpanded = [ domain ]; + break; + } + trustedOriginsExpanded.push.apply(trustedOriginsExpanded, [ domain, "//" + domain, window.location.protocol + "//" + domain ]); + } + } + } + if (trustedOriginsExpanded.length) { + str.push("trustedOrigins=" + encodeURIComponent(trustedOriginsExpanded.join(","))); + } + if (typeof options.jsModuleId === "string" && options.jsModuleId) { + str.push("jsModuleId=" + encodeURIComponent(options.jsModuleId)); + } + return str.join("&"); + }; + var _inArray = function(elem, array, fromIndex) { + if (typeof array.indexOf === "function") { + return array.indexOf(elem, fromIndex); + } + var i, len = array.length; + if (typeof fromIndex === "undefined") { + fromIndex = 0; + } else if (fromIndex < 0) { + fromIndex = len + fromIndex; + } + for (i = fromIndex; i < len; i++) { + if (array.hasOwnProperty(i) && array[i] === elem) { + return i; + } + } + return -1; + }; + var _prepClip = function(elements) { + if (typeof elements === "string") throw new TypeError("ZeroClipboard doesn't accept query strings."); + if (!elements.length) return [ elements ]; + return elements; + }; + var _dispatchCallback = function(func, context, args, async) { + if (async) { + window.setTimeout(function() { + func.apply(context, args); + }, 0); + } else { + func.apply(context, args); + } + }; + var _getSafeZIndex = function(val) { + var zIndex, tmp; + if (val) { + if (typeof val === "number" && val > 0) { + zIndex = val; + } else if (typeof val === "string" && (tmp = parseInt(val, 10)) && !isNaN(tmp) && tmp > 0) { + zIndex = tmp; + } + } + if (!zIndex) { + if (typeof _globalConfig.zIndex === "number" && _globalConfig.zIndex > 0) { + zIndex = _globalConfig.zIndex; + } else if (typeof _globalConfig.zIndex === "string" && (tmp = parseInt(_globalConfig.zIndex, 10)) && !isNaN(tmp) && tmp > 0) { + zIndex = tmp; + } + } + return zIndex || 0; + }; + var _deprecationWarning = function(deprecatedApiName, debugEnabled) { + if (deprecatedApiName && debugEnabled !== false && typeof console !== "undefined" && console && (console.warn || console.log)) { + var deprecationWarning = "`" + deprecatedApiName + "` is deprecated. See docs for more info:\n" + " https://github.com/zeroclipboard/zeroclipboard/blob/master/docs/instructions.md#deprecations"; + if (console.warn) { + console.warn(deprecationWarning); + } else { + console.log(deprecationWarning); + } + } + }; + var _extend = function() { + var i, len, arg, prop, src, copy, target = arguments[0] || {}; + for (i = 1, len = arguments.length; i < len; i++) { + if ((arg = arguments[i]) != null) { + for (prop in arg) { + if (arg.hasOwnProperty(prop)) { + src = target[prop]; + copy = arg[prop]; + if (target === copy) { + continue; + } + if (copy !== undefined) { + target[prop] = copy; + } + } + } + } + } + return target; + }; + var _extractDomain = function(originOrUrl) { + if (originOrUrl == null || originOrUrl === "") { + return null; + } + originOrUrl = originOrUrl.replace(/^\s+|\s+$/g, ""); + if (originOrUrl === "") { + return null; + } + var protocolIndex = originOrUrl.indexOf("//"); + originOrUrl = protocolIndex === -1 ? originOrUrl : originOrUrl.slice(protocolIndex + 2); + var pathIndex = originOrUrl.indexOf("/"); + originOrUrl = pathIndex === -1 ? originOrUrl : protocolIndex === -1 || pathIndex === 0 ? null : originOrUrl.slice(0, pathIndex); + if (originOrUrl && originOrUrl.slice(-4).toLowerCase() === ".swf") { + return null; + } + return originOrUrl || null; + }; + var _determineScriptAccess = function() { + var _extractAllDomains = function(origins, resultsArray) { + var i, len, tmp; + if (origins != null && resultsArray[0] !== "*") { + if (typeof origins === "string") { + origins = [ origins ]; + } + if (typeof origins === "object" && "length" in origins) { + for (i = 0, len = origins.length; i < len; i++) { + if (origins.hasOwnProperty(i)) { + tmp = _extractDomain(origins[i]); + if (tmp) { + if (tmp === "*") { + resultsArray.length = 0; + resultsArray.push("*"); + break; + } + if (_inArray(tmp, resultsArray) === -1) { + resultsArray.push(tmp); + } + } + } + } + } + } + }; + var _accessLevelLookup = { + always: "always", + samedomain: "sameDomain", + never: "never" + }; + return function(currentDomain, configOptions) { + var asaLower, allowScriptAccess = configOptions.allowScriptAccess; + if (typeof allowScriptAccess === "string" && (asaLower = allowScriptAccess.toLowerCase()) && /^always|samedomain|never$/.test(asaLower)) { + return _accessLevelLookup[asaLower]; + } + var swfDomain = _extractDomain(configOptions.moviePath); + if (swfDomain === null) { + swfDomain = currentDomain; + } + var trustedDomains = []; + _extractAllDomains(configOptions.trustedOrigins, trustedDomains); + _extractAllDomains(configOptions.trustedDomains, trustedDomains); + var len = trustedDomains.length; + if (len > 0) { + if (len === 1 && trustedDomains[0] === "*") { + return "always"; + } + if (_inArray(currentDomain, trustedDomains) !== -1) { + if (len === 1 && currentDomain === swfDomain) { + return "sameDomain"; + } + return "always"; + } + } + return "never"; + }; + }(); + var _objectKeys = function(obj) { + if (obj == null) { + return []; + } + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + keys.push(prop); + } + } + return keys; + }; + var _deleteOwnProperties = function(obj) { + if (obj) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + delete obj[prop]; + } + } + } + return obj; + }; + var _safeActiveElement = function() { + try { + return document.activeElement; + } catch (err) {} + return null; + }; + var _detectFlashSupport = function() { + var hasFlash = false; + if (typeof flashState.disabled === "boolean") { + hasFlash = flashState.disabled === false; + } else { + if (typeof ActiveXObject === "function") { + try { + if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) { + hasFlash = true; + } + } catch (error) {} + } + if (!hasFlash && navigator.mimeTypes["application/x-shockwave-flash"]) { + hasFlash = true; + } + } + return hasFlash; + }; + function _parseFlashVersion(flashVersion) { + return flashVersion.replace(/,/g, ".").replace(/[^0-9\.]/g, ""); + } + function _isFlashVersionSupported(flashVersion) { + return parseFloat(_parseFlashVersion(flashVersion)) >= 10; + } + var ZeroClipboard = function(elements, options) { + if (!(this instanceof ZeroClipboard)) { + return new ZeroClipboard(elements, options); + } + this.id = "" + clientIdCounter++; + _clientMeta[this.id] = { + instance: this, + elements: [], + handlers: {} + }; + if (elements) { + this.clip(elements); + } + if (typeof options !== "undefined") { + _deprecationWarning("new ZeroClipboard(elements, options)", _globalConfig.debug); + ZeroClipboard.config(options); + } + this.options = ZeroClipboard.config(); + if (typeof flashState.disabled !== "boolean") { + flashState.disabled = !_detectFlashSupport(); + } + if (flashState.disabled === false && flashState.outdated !== true) { + if (flashState.bridge === null) { + flashState.outdated = false; + flashState.ready = false; + _bridge(); + } + } + }; + ZeroClipboard.prototype.setText = function(newText) { + if (newText && newText !== "") { + _clipData["text/plain"] = newText; + if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setText === "function") { + flashState.bridge.setText(newText); + } else { + flashState.ready = false; + } + } + return this; + }; + ZeroClipboard.prototype.setSize = function(width, height) { + if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setSize === "function") { + flashState.bridge.setSize(width, height); + } else { + flashState.ready = false; + } + return this; + }; + var _setHandCursor = function(enabled) { + if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setHandCursor === "function") { + flashState.bridge.setHandCursor(enabled); + } else { + flashState.ready = false; + } + }; + ZeroClipboard.prototype.destroy = function() { + this.unclip(); + this.off(); + delete _clientMeta[this.id]; + }; + var _getAllClients = function() { + var i, len, client, clients = [], clientIds = _objectKeys(_clientMeta); + for (i = 0, len = clientIds.length; i < len; i++) { + client = _clientMeta[clientIds[i]].instance; + if (client && client instanceof ZeroClipboard) { + clients.push(client); + } + } + return clients; + }; + ZeroClipboard.version = "1.3.5"; + var _globalConfig = { + swfPath: _swfPath, + trustedDomains: window.location.host ? [ window.location.host ] : [], + cacheBust: true, + forceHandCursor: false, + zIndex: 999999999, + debug: true, + title: null, + autoActivate: true + }; + ZeroClipboard.config = function(options) { + if (typeof options === "object" && options !== null) { + _extend(_globalConfig, options); + } + if (typeof options === "string" && options) { + if (_globalConfig.hasOwnProperty(options)) { + return _globalConfig[options]; + } + return; + } + var copy = {}; + for (var prop in _globalConfig) { + if (_globalConfig.hasOwnProperty(prop)) { + if (typeof _globalConfig[prop] === "object" && _globalConfig[prop] !== null) { + if ("length" in _globalConfig[prop]) { + copy[prop] = _globalConfig[prop].slice(0); + } else { + copy[prop] = _extend({}, _globalConfig[prop]); + } + } else { + copy[prop] = _globalConfig[prop]; + } + } + } + return copy; + }; + ZeroClipboard.destroy = function() { + ZeroClipboard.deactivate(); + for (var clientId in _clientMeta) { + if (_clientMeta.hasOwnProperty(clientId) && _clientMeta[clientId]) { + var client = _clientMeta[clientId].instance; + if (client && typeof client.destroy === "function") { + client.destroy(); + } + } + } + var htmlBridge = _getHtmlBridge(flashState.bridge); + if (htmlBridge && htmlBridge.parentNode) { + htmlBridge.parentNode.removeChild(htmlBridge); + flashState.ready = null; + flashState.bridge = null; + } + }; + ZeroClipboard.activate = function(element) { + if (currentElement) { + _removeClass(currentElement, _globalConfig.hoverClass); + _removeClass(currentElement, _globalConfig.activeClass); + } + currentElement = element; + _addClass(element, _globalConfig.hoverClass); + _reposition(); + var newTitle = _globalConfig.title || element.getAttribute("title"); + if (newTitle) { + var htmlBridge = _getHtmlBridge(flashState.bridge); + if (htmlBridge) { + htmlBridge.setAttribute("title", newTitle); + } + } + var useHandCursor = _globalConfig.forceHandCursor === true || _getStyle(element, "cursor") === "pointer"; + _setHandCursor(useHandCursor); + }; + ZeroClipboard.deactivate = function() { + var htmlBridge = _getHtmlBridge(flashState.bridge); + if (htmlBridge) { + htmlBridge.style.left = "0px"; + htmlBridge.style.top = "-9999px"; + htmlBridge.removeAttribute("title"); + } + if (currentElement) { + _removeClass(currentElement, _globalConfig.hoverClass); + _removeClass(currentElement, _globalConfig.activeClass); + currentElement = null; + } + }; + var _bridge = function() { + var flashBridge, len; + var container = document.getElementById("global-zeroclipboard-html-bridge"); + if (!container) { + var opts = ZeroClipboard.config(); + opts.jsModuleId = typeof _amdModuleId === "string" && _amdModuleId || typeof _cjsModuleId === "string" && _cjsModuleId || null; + var allowScriptAccess = _determineScriptAccess(window.location.host, _globalConfig); + var flashvars = _vars(opts); + var swfUrl = _globalConfig.moviePath + _cacheBust(_globalConfig.moviePath, _globalConfig); + var html = ' '; + container = document.createElement("div"); + container.id = "global-zeroclipboard-html-bridge"; + container.setAttribute("class", "global-zeroclipboard-container"); + container.style.position = "absolute"; + container.style.left = "0px"; + container.style.top = "-9999px"; + container.style.width = "15px"; + container.style.height = "15px"; + container.style.zIndex = "" + _getSafeZIndex(_globalConfig.zIndex); + document.body.appendChild(container); + container.innerHTML = html; + } + flashBridge = document["global-zeroclipboard-flash-bridge"]; + if (flashBridge && (len = flashBridge.length)) { + flashBridge = flashBridge[len - 1]; + } + flashState.bridge = flashBridge || container.children[0].lastElementChild; + }; + var _getHtmlBridge = function(flashBridge) { + var isFlashElement = /^OBJECT|EMBED$/; + var htmlBridge = flashBridge && flashBridge.parentNode; + while (htmlBridge && isFlashElement.test(htmlBridge.nodeName) && htmlBridge.parentNode) { + htmlBridge = htmlBridge.parentNode; + } + return htmlBridge || null; + }; + var _reposition = function() { + if (currentElement) { + var pos = _getDOMObjectPosition(currentElement, _globalConfig.zIndex); + var htmlBridge = _getHtmlBridge(flashState.bridge); + if (htmlBridge) { + htmlBridge.style.top = pos.top + "px"; + htmlBridge.style.left = pos.left + "px"; + htmlBridge.style.width = pos.width + "px"; + htmlBridge.style.height = pos.height + "px"; + htmlBridge.style.zIndex = pos.zIndex + 1; + } + if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setSize === "function") { + flashState.bridge.setSize(pos.width, pos.height); + } else { + flashState.ready = false; + } + } + return this; + }; + ZeroClipboard.prototype.on = function(eventName, func) { + var i, len, events, added = {}, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; + if (typeof eventName === "string" && eventName) { + events = eventName.toLowerCase().split(/\s+/); + } else if (typeof eventName === "object" && eventName && typeof func === "undefined") { + for (i in eventName) { + if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") { + this.on(i, eventName[i]); + } + } + } + if (events && events.length) { + for (i = 0, len = events.length; i < len; i++) { + eventName = events[i].replace(/^on/, ""); + added[eventName] = true; + if (!handlers[eventName]) { + handlers[eventName] = []; + } + handlers[eventName].push(func); + } + if (added.noflash && flashState.disabled) { + _receiveEvent.call(this, "noflash", {}); + } + if (added.wrongflash && flashState.outdated) { + _receiveEvent.call(this, "wrongflash", { + flashVersion: flashState.version + }); + } + if (added.load && flashState.ready) { + _receiveEvent.call(this, "load", { + flashVersion: flashState.version + }); + } + } + return this; + }; + ZeroClipboard.prototype.off = function(eventName, func) { + var i, len, foundIndex, events, perEventHandlers, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; + if (arguments.length === 0) { + events = _objectKeys(handlers); + } else if (typeof eventName === "string" && eventName) { + events = eventName.split(/\s+/); + } else if (typeof eventName === "object" && eventName && typeof func === "undefined") { + for (i in eventName) { + if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") { + this.off(i, eventName[i]); + } + } + } + if (events && events.length) { + for (i = 0, len = events.length; i < len; i++) { + eventName = events[i].toLowerCase().replace(/^on/, ""); + perEventHandlers = handlers[eventName]; + if (perEventHandlers && perEventHandlers.length) { + if (func) { + foundIndex = _inArray(func, perEventHandlers); + while (foundIndex !== -1) { + perEventHandlers.splice(foundIndex, 1); + foundIndex = _inArray(func, perEventHandlers, foundIndex); + } + } else { + handlers[eventName].length = 0; + } + } + } + } + return this; + }; + ZeroClipboard.prototype.handlers = function(eventName) { + var prop, copy = null, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; + if (handlers) { + if (typeof eventName === "string" && eventName) { + return handlers[eventName] ? handlers[eventName].slice(0) : null; + } + copy = {}; + for (prop in handlers) { + if (handlers.hasOwnProperty(prop) && handlers[prop]) { + copy[prop] = handlers[prop].slice(0); + } + } + } + return copy; + }; + var _dispatchClientCallbacks = function(eventName, context, args, async) { + var handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers[eventName]; + if (handlers && handlers.length) { + var i, len, func, originalContext = context || this; + for (i = 0, len = handlers.length; i < len; i++) { + func = handlers[i]; + context = originalContext; + if (typeof func === "string" && typeof window[func] === "function") { + func = window[func]; + } + if (typeof func === "object" && func && typeof func.handleEvent === "function") { + context = func; + func = func.handleEvent; + } + if (typeof func === "function") { + _dispatchCallback(func, context, args, async); + } + } + } + return this; + }; + ZeroClipboard.prototype.clip = function(elements) { + elements = _prepClip(elements); + for (var i = 0; i < elements.length; i++) { + if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) { + if (!elements[i].zcClippingId) { + elements[i].zcClippingId = "zcClippingId_" + elementIdCounter++; + _elementMeta[elements[i].zcClippingId] = [ this.id ]; + if (_globalConfig.autoActivate === true) { + _addEventHandler(elements[i], "mouseover", _elementMouseOver); + } + } else if (_inArray(this.id, _elementMeta[elements[i].zcClippingId]) === -1) { + _elementMeta[elements[i].zcClippingId].push(this.id); + } + var clippedElements = _clientMeta[this.id].elements; + if (_inArray(elements[i], clippedElements) === -1) { + clippedElements.push(elements[i]); + } + } + } + return this; + }; + ZeroClipboard.prototype.unclip = function(elements) { + var meta = _clientMeta[this.id]; + if (meta) { + var clippedElements = meta.elements; + var arrayIndex; + if (typeof elements === "undefined") { + elements = clippedElements.slice(0); + } else { + elements = _prepClip(elements); + } + for (var i = elements.length; i--; ) { + if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) { + arrayIndex = 0; + while ((arrayIndex = _inArray(elements[i], clippedElements, arrayIndex)) !== -1) { + clippedElements.splice(arrayIndex, 1); + } + var clientIds = _elementMeta[elements[i].zcClippingId]; + if (clientIds) { + arrayIndex = 0; + while ((arrayIndex = _inArray(this.id, clientIds, arrayIndex)) !== -1) { + clientIds.splice(arrayIndex, 1); + } + if (clientIds.length === 0) { + if (_globalConfig.autoActivate === true) { + _removeEventHandler(elements[i], "mouseover", _elementMouseOver); + } + delete elements[i].zcClippingId; + } + } + } + } + } + return this; + }; + ZeroClipboard.prototype.elements = function() { + var meta = _clientMeta[this.id]; + return meta && meta.elements ? meta.elements.slice(0) : []; + }; + var _getAllClientsClippedToElement = function(element) { + var elementMetaId, clientIds, i, len, client, clients = []; + if (element && element.nodeType === 1 && (elementMetaId = element.zcClippingId) && _elementMeta.hasOwnProperty(elementMetaId)) { + clientIds = _elementMeta[elementMetaId]; + if (clientIds && clientIds.length) { + for (i = 0, len = clientIds.length; i < len; i++) { + client = _clientMeta[clientIds[i]].instance; + if (client && client instanceof ZeroClipboard) { + clients.push(client); + } + } + } + } + return clients; + }; + _globalConfig.hoverClass = "zeroclipboard-is-hover"; + _globalConfig.activeClass = "zeroclipboard-is-active"; + _globalConfig.trustedOrigins = null; + _globalConfig.allowScriptAccess = null; + _globalConfig.useNoCache = true; + _globalConfig.moviePath = "ZeroClipboard.swf"; + ZeroClipboard.detectFlashSupport = function() { + _deprecationWarning("ZeroClipboard.detectFlashSupport", _globalConfig.debug); + return _detectFlashSupport(); + }; + ZeroClipboard.dispatch = function(eventName, args) { + if (typeof eventName === "string" && eventName) { + var cleanEventName = eventName.toLowerCase().replace(/^on/, ""); + if (cleanEventName) { + var clients = currentElement && _globalConfig.autoActivate === true ? _getAllClientsClippedToElement(currentElement) : _getAllClients(); + for (var i = 0, len = clients.length; i < len; i++) { + _receiveEvent.call(clients[i], cleanEventName, args); + } + } + } + }; + ZeroClipboard.prototype.setHandCursor = function(enabled) { + _deprecationWarning("ZeroClipboard.prototype.setHandCursor", _globalConfig.debug); + enabled = typeof enabled === "boolean" ? enabled : !!enabled; + _setHandCursor(enabled); + _globalConfig.forceHandCursor = enabled; + return this; + }; + ZeroClipboard.prototype.reposition = function() { + _deprecationWarning("ZeroClipboard.prototype.reposition", _globalConfig.debug); + return _reposition(); + }; + ZeroClipboard.prototype.receiveEvent = function(eventName, args) { + _deprecationWarning("ZeroClipboard.prototype.receiveEvent", _globalConfig.debug); + if (typeof eventName === "string" && eventName) { + var cleanEventName = eventName.toLowerCase().replace(/^on/, ""); + if (cleanEventName) { + _receiveEvent.call(this, cleanEventName, args); + } + } + }; + ZeroClipboard.prototype.setCurrent = function(element) { + _deprecationWarning("ZeroClipboard.prototype.setCurrent", _globalConfig.debug); + ZeroClipboard.activate(element); + return this; + }; + ZeroClipboard.prototype.resetBridge = function() { + _deprecationWarning("ZeroClipboard.prototype.resetBridge", _globalConfig.debug); + ZeroClipboard.deactivate(); + return this; + }; + ZeroClipboard.prototype.setTitle = function(newTitle) { + _deprecationWarning("ZeroClipboard.prototype.setTitle", _globalConfig.debug); + newTitle = newTitle || _globalConfig.title || currentElement && currentElement.getAttribute("title"); + if (newTitle) { + var htmlBridge = _getHtmlBridge(flashState.bridge); + if (htmlBridge) { + htmlBridge.setAttribute("title", newTitle); + } + } + return this; + }; + ZeroClipboard.setDefaults = function(options) { + _deprecationWarning("ZeroClipboard.setDefaults", _globalConfig.debug); + ZeroClipboard.config(options); + }; + ZeroClipboard.prototype.addEventListener = function(eventName, func) { + _deprecationWarning("ZeroClipboard.prototype.addEventListener", _globalConfig.debug); + return this.on(eventName, func); + }; + ZeroClipboard.prototype.removeEventListener = function(eventName, func) { + _deprecationWarning("ZeroClipboard.prototype.removeEventListener", _globalConfig.debug); + return this.off(eventName, func); + }; + ZeroClipboard.prototype.ready = function() { + _deprecationWarning("ZeroClipboard.prototype.ready", _globalConfig.debug); + return flashState.ready === true; + }; + var _receiveEvent = function(eventName, args) { + eventName = eventName.toLowerCase().replace(/^on/, ""); + var cleanVersion = args && args.flashVersion && _parseFlashVersion(args.flashVersion) || null; + var element = currentElement; + var performCallbackAsync = true; + switch (eventName) { + case "load": + if (cleanVersion) { + if (!_isFlashVersionSupported(cleanVersion)) { + _receiveEvent.call(this, "onWrongFlash", { + flashVersion: cleanVersion + }); + return; + } + flashState.outdated = false; + flashState.ready = true; + flashState.version = cleanVersion; + } + break; + + case "wrongflash": + if (cleanVersion && !_isFlashVersionSupported(cleanVersion)) { + flashState.outdated = true; + flashState.ready = false; + flashState.version = cleanVersion; + } + break; + + case "mouseover": + _addClass(element, _globalConfig.hoverClass); + break; + + case "mouseout": + if (_globalConfig.autoActivate === true) { + ZeroClipboard.deactivate(); + } + break; + + case "mousedown": + _addClass(element, _globalConfig.activeClass); + break; + + case "mouseup": + _removeClass(element, _globalConfig.activeClass); + break; + + case "datarequested": + if (element) { + var targetId = element.getAttribute("data-clipboard-target"), targetEl = !targetId ? null : document.getElementById(targetId); + if (targetEl) { + var textContent = targetEl.value || targetEl.textContent || targetEl.innerText; + if (textContent) { + this.setText(textContent); + } + } else { + var defaultText = element.getAttribute("data-clipboard-text"); + if (defaultText) { + this.setText(defaultText); + } + } + } + performCallbackAsync = false; + break; + + case "complete": + _deleteOwnProperties(_clipData); + if (element && element !== _safeActiveElement() && element.focus) { + element.focus(); + } + break; + } + var context = element; + var eventArgs = [ this, args ]; + return _dispatchClientCallbacks.call(this, eventName, context, eventArgs, performCallbackAsync); + }; + if (typeof define === "function" && define.amd) { + define([ "require", "exports", "module" ], function(require, exports, module) { + _amdModuleId = module && module.id || null; + return ZeroClipboard; + }); + } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports && typeof window.require === "function") { + _cjsModuleId = module.id || null; + module.exports = ZeroClipboard; + } else { + window.ZeroClipboard = ZeroClipboard; + } +})(function() { + return this; +}()); \ No newline at end of file diff --git a/libraries/js/ZeroClipboard.swf b/libraries/js/ZeroClipboard.swf new file mode 100755 index 0000000000000000000000000000000000000000..55ccf9608ed3cf01db575de40c0be1bfc5440a80 GIT binary patch literal 2157 zcmV-z2$J_hS5pr43;+Ol+I?2tQ`^`TzgL!YC1D%efJ4Zavmqf6femD{3n3(6;{X9n zFeKYFAHJ5aY$ZZ+C7F+QI?e2Kr+-1;voC$x_N9IAAJCbOOlEiA`_Sq1t^YvNBbfl+ zZmU7Z=lpcO&$$u@i2oZx@!ugdh*2SV9wGFrzQ16E=A4>7yHzM=4t7n;odxOMNW=4* zv)Sza{{F=N^n~ryvy(G3Guhl!c4}%IG{)US%cBS5mV0evK6FrEuI3m`&#{_lP_CUOI)A228dy(g_HMT6 z*tM1hIqBdkG(Kw*xM;Sjrr|c2GvBh_SoVG=#3>r+Xbz*E-L3Hv3!a!p)0c zKSSZQ_^&_wGY=F0tMZIFcHT6aRhv3B^ymIRDG0#>q&sw%O`-&vK-}AZ|4~F7I=)OK zmOaO?>SC$-nrU7%oWum%3&y9c+bx$Z1w6lJ8#S_M+a{xyxY63JGAGs*F4nQE8E(_0 zhhn+u7#B$F-dREgL^)QV^GVS|hnp+FD;&dsSE|Z!T=-mzTEEU1?5yRJ^!a zezjgI?5r)ldb+i+xw%w0V-t6&Wq9DX(;R7+d9*-1sx+zNvd1mv97gNRD+VP$0qDj} zy=7_PDY+T;PR&rK?y8y7dPg(AP;O;1d(_EvC6u|BaoEpVhQn^2QNF8;WHLXV_}KuU z$Nh3t++y{mgC_U~%CmYI={@VNXY~@r)XW_Ut%pscRn2@IAHVi$;7vC4a*6;)uHjVMGZNri~ z4lL$Hced7Gdz1YVAD&uKw-YbD318|JP)5WFc5mCo@A;>6$(oUXl8cWAR=Xs%pk;H+qvrV?iQ)Tnulo{(K;M!n%l zHHYqRLEE5!W`jz!R?9aGvnJ%%R`QP$Ach@WGaxk>jIv(ZDKEV$Jz3h4kJ+8=W3W(q zx*>Jgoz3|16b_&~i<-%$V4(rtuM1qQ{RC~h*O%cnT<$@D?veXhRXw!ri@m_GW z;Z;bt;4rYDPr`msi`WRu;Gy4U?+=C@>)MOte{E6v$Cs}!jnjNu8I%Pi-AIoL=p0Uu z56MFlL)oF+(B#lmdM5pxiwjtkWKQ9GqOo{yVw+%&;0WOaf<=M}!4knTiS!U5N`x2@ z;zZ~rLV^fMBBY4WM{qyE0|cjuaE=IrL>MB%1tMG|!X+YHCiof=M+g}s_!hyctYU(v z+_wE(<|~a?Z&ohpmv``6?)!Esh0y!9euZX$UZtM^y+((JktQ5{ zsfmd`gygDN6)uC>`zn7_<@M|I`jjXn|Nh~FBuc`2@EzeIk~|K+-*VrzQyGNX>ZipU zco-K)FmN~VSKqc%(32OV?bT6;`rQ#2@ex^)e~rV81h~Z=1o_lVd{jISI%682(h!0~ zNc&4oN~{HmNL2!f2<@s+9K)#@gg_kx{dxuerg#p6lPVuR+Z#*4j7Q;d0O;4@VO9Jl zNubuMP!*v9i6nmy6-W{ZDi8!-R=(zf5^jC(ub_&m&eL(A59q{;tgq+v$zm42&3+pM z)Ti3|ba99a3ej&vC<#IV_gi)On^ZqSz^W_7PcgWv+|fVFyf1yu9qBVCiZh`iY>p3n zqsMZ`xlQi^5aS}U(t8Z7 z13jV}0LKM@M+3Mg1)E=40jGMpeFSo;#3!O3p@H^MsT2W&UJhgFnxA8+!sRNPxys{Q jWh+-H=PDBXeSt28SA&3RsxNr4bpJQ|0FeIxQ+=8*M*tao literal 0 HcmV?d00001 diff --git a/libraries/js/bootstrap-theme.min.css b/libraries/js/bootstrap-theme.min.css new file mode 100644 index 0000000..cff38df --- /dev/null +++ b/libraries/js/bootstrap-theme.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file diff --git a/libraries/js/bootstrap.min.css b/libraries/js/bootstrap.min.css new file mode 100644 index 0000000..976dada --- /dev/null +++ b/libraries/js/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group .list-group-item:first-child{border-top:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tfoot>tr:first-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tfoot>tr:first-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>td{border-top:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/libraries/js/build.js b/libraries/js/build.js new file mode 100644 index 0000000..e973ae2 --- /dev/null +++ b/libraries/js/build.js @@ -0,0 +1,13476 @@ + +/** + * Require the given path. + * + * @param {String} path + * @return {Object} exports + * @api public + */ + +function require(path, parent, orig) { + var resolved = require.resolve(path); + + // lookup failed + if (null == resolved) { + orig = orig || path; + parent = parent || 'root'; + var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); + err.path = orig; + err.parent = parent; + err.require = true; + throw err; + } + + var module = require.modules[resolved]; + + // perform real require() + // by invoking the module's + // registered function + if (!module._resolving && !module.exports) { + var mod = {}; + mod.exports = {}; + mod.client = mod.component = true; + module._resolving = true; + module.call(this, mod.exports, require.relative(resolved), mod); + delete module._resolving; + module.exports = mod.exports; + } + + return module.exports; +} + +/** + * Registered modules. + */ + +require.modules = {}; + +/** + * Registered aliases. + */ + +require.aliases = {}; + +/** + * Resolve `path`. + * + * Lookup: + * + * - PATH/index.js + * - PATH.js + * - PATH + * + * @param {String} path + * @return {String} path or null + * @api private + */ + +require.resolve = function(path) { + if (path.charAt(0) === '/') + path = path.slice(1); + + var paths = [ + path, + path + '.js', + path + '.json', + path + '/index.js', + path + '/index.json' + ]; + + for (var i = 0; i < paths.length; i++) { + var path = paths[i]; + if (require.modules.hasOwnProperty(path)) + return path; + if (require.aliases.hasOwnProperty(path)) + return require.aliases[path]; + } +}; + +/** + * Normalize `path` relative to the current path. + * + * @param {String} curr + * @param {String} path + * @return {String} + * @api private + */ + +require.normalize = function(curr, path) { + var segs = []; + + if ('.' != path.charAt(0)) + return path; + + curr = curr.split('/'); + path = path.split('/'); + + for (var i = 0; i < path.length; ++i) { + if ('..' == path[i]) { + curr.pop(); + } else if ('.' != path[i] && '' != path[i]) { + segs.push(path[i]); + } + } + + return curr.concat(segs).join('/'); +}; + +/** + * Register module at `path` with callback `definition`. + * + * @param {String} path + * @param {Function} definition + * @api private + */ + +require.register = function(path, definition) { + require.modules[path] = definition; +}; + +/** + * Alias a module definition. + * + * @param {String} from + * @param {String} to + * @api private + */ + +require.alias = function(from, to) { + if (!require.modules.hasOwnProperty(from)) { + throw new Error('Failed to alias "' + from + '", it does not exist'); + } + require.aliases[to] = from; +}; + +/** + * Return a require function relative to the `parent` path. + * + * @param {String} parent + * @return {Function} + * @api private + */ + +require.relative = function(parent) { + var p = require.normalize(parent, '..'); + + /** + * lastIndexOf helper. + */ + + function lastIndexOf(arr, obj) { + var i = arr.length; + while (i--) { + if (arr[i] === obj) + return i; + } + return - 1; + } + + /** + * The relative require() itself. + */ + + function localRequire(path) { + var resolved = localRequire.resolve(path); + return require(resolved, parent, path); + } + + /** + * Resolve relative to the parent. + */ + + localRequire.resolve = function(path) { + var c = path.charAt(0); + if ('/' == c) + return path.slice(1); + if ('.' == c) + return require.normalize(p, path); + + // resolve deps by returning + // the dep in the nearest "deps" + // directory + var segs = parent.split('/'); + var i = lastIndexOf(segs, 'deps') + 1; + if (!i) + i = 0; + path = segs.slice(0, i + 1).join('/') + '/deps/' + path; + return path; + }; + + /** + * Check if module is defined at `path`. + */ + + localRequire.exists = function(path) { + return require.modules.hasOwnProperty(localRequire.resolve(path)); + }; + + return localRequire; +}; +require.register("component-emitter/index.js", function(exports, require, module) { + + /** + * Expose `Emitter`. + */ + + module.exports = Emitter; + + /** + * Initialize a new `Emitter`. + * + * @api public + */ + + function Emitter(obj) { + if (obj) + return mixin(obj); + }; + + /** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + + function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; + } + + /** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.on = + Emitter.prototype.addEventListener = function(event, fn) { + this._callbacks = this._callbacks || {}; + (this._callbacks[event] = this._callbacks[event] || []) + .push(fn); + return this; + }; + + /** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.once = function(event, fn) { + var self = this; + this._callbacks = this._callbacks || {}; + + function on() { + self.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; + }; + + /** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.off = + Emitter.prototype.removeListener = + Emitter.prototype.removeAllListeners = + Emitter.prototype.removeEventListener = function(event, fn) { + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks[event]; + if (!callbacks) + return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks[event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; + }; + + /** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + + Emitter.prototype.emit = function(event) { + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks[event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; + }; + + /** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + + Emitter.prototype.listeners = function(event) { + this._callbacks = this._callbacks || {}; + return this._callbacks[event] || []; + }; + + /** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + + Emitter.prototype.hasListeners = function(event) { + return !! this.listeners(event).length; + }; + +}); +require.register("enyo-dropzone/index.js", function(exports, require, module) { + + + /** + * Exposing dropzone + */ + module.exports = require("./lib/dropzone.js"); + +}); +require.register("enyo-dropzone/lib/dropzone.js", function(exports, require, module) { + /* + # + # More info at [www.dropzonejs.com](http://www.dropzonejs.com) + # + # Copyright (c) 2012, Matias Meno + # + # Permission is hereby granted, free of charge, to any person obtaining a copy + # of this software and associated documentation files (the "Software"), to deal + # in the Software without restriction, including without limitation the rights + # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + # copies of the Software, and to permit persons to whom the Software is + # furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included in + # all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + # THE SOFTWARE. + # + */ + + + (function() { + var Dropzone, Em, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { + for (var key in parent) { + if (__hasProp.call(parent, key)) + child[key] = parent[key]; + } + function ctor() { + this.constructor = child; + } + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + child.__super__ = parent.prototype; + return child; + }, + __slice = [].slice; + + Em = typeof Emitter !== "undefined" && Emitter !== null ? Emitter : require("emitter"); + + noop = function() {}; + + Dropzone = (function(_super) { + var extend; + + __extends(Dropzone, _super); + + /* + This is a list of all available events you can register on a dropzone object. + + You can register an event handler like this: + + dropzone.on("dragEnter", function() { }); + */ + + + Dropzone.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached"]; + + Dropzone.prototype.defaultOptions = { + url: null, + method: "post", + withCredentials: false, + parallelUploads: 2, + uploadMultiple: false, + maxFilesize: 256, + paramName: "file", + createImageThumbnails: true, + maxThumbnailFilesize: 10, + thumbnailWidth: 100, + thumbnailHeight: 100, + maxFiles: null, + params: {}, + clickable: true, + ignoreHiddenFiles: true, + acceptedFiles: null, + acceptedMimeTypes: null, + autoProcessQueue: true, + autoQueue: true, + addRemoveLinks: false, + previewsContainer: null, + dictDefaultMessage: "Drop files here to upload", + dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", + dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", + dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", + dictInvalidFileType: "You can't upload files of this type.", + dictResponseError: "Server responded with {{statusCode}} code.", + dictCancelUpload: "Cancel upload", + dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", + dictRemoveFile: "Remove file", + dictRemoveFileConfirmation: null, + dictMaxFilesExceeded: "You can not upload any more files.", + accept: function(file, done) { + return done(); + }, + init: function() { + return noop; + }, + forceFallback: false, + fallback: function() { + var child, messageElement, span, _i, _len, _ref; + this.element.className = "" + this.element.className + " dz-browser-not-supported"; + _ref = this.element.getElementsByTagName("div"); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + child = _ref[_i]; + if (/(^| )dz-message($| )/.test(child.className)) { + messageElement = child; + child.className = "dz-message"; + continue; + } + } + if (!messageElement) { + messageElement = Dropzone.createElement("
"); + this.element.appendChild(messageElement); + } + span = messageElement.getElementsByTagName("span")[0]; + if (span) { + span.textContent = this.options.dictFallbackMessage; + } + return this.element.appendChild(this.getFallbackForm()); + }, + resize: function(file) { + var info, srcRatio, trgRatio; + info = { + srcX: 0, + srcY: 0, + srcWidth: file.width, + srcHeight: file.height + }; + srcRatio = file.width / file.height; + trgRatio = this.options.thumbnailWidth / this.options.thumbnailHeight; + if (file.height < this.options.thumbnailHeight || file.width < this.options.thumbnailWidth) { + info.trgHeight = info.srcHeight; + info.trgWidth = info.srcWidth; + } else { + if (srcRatio > trgRatio) { + info.srcHeight = file.height; + info.srcWidth = info.srcHeight * trgRatio; + } else { + info.srcWidth = file.width; + info.srcHeight = info.srcWidth / trgRatio; + } + } + info.srcX = (file.width - info.srcWidth) / 2; + info.srcY = (file.height - info.srcHeight) / 2; + return info; + }, + /* + Those functions register themselves to the events on init and handle all + the user interface specific stuff. Overwriting them won't break the upload + but can break the way it's displayed. + You can overwrite them if you don't like the default behavior. If you just + want to add an additional event handler, register it on the dropzone object + and don't overwrite those options. + */ + + drop: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragstart: noop, + dragend: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragenter: function(e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragover: function(e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragleave: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + paste: noop, + reset: function() { + return this.element.classList.remove("dz-started"); + }, + addedfile: function(file) { + var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results, + _this = this; + if (this.element === this.previewsContainer) { + this.element.classList.add("dz-started"); + } + file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim()); + file.previewTemplate = file.previewElement; + this.previewsContainer.appendChild(file.previewElement); + _ref = file.previewElement.querySelectorAll("[data-dz-name]"); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + node = _ref[_i]; + node.textContent = file.name; + } + _ref1 = file.previewElement.querySelectorAll("[data-dz-size]"); + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + node = _ref1[_j]; + node.innerHTML = this.filesize(file.size); + } + if (this.options.addRemoveLinks) { + file._removeLink = Dropzone.createElement("" + this.options.dictRemoveFile + ""); + file.previewElement.appendChild(file._removeLink); + } + removeFileEvent = function(e) { + e.preventDefault(); + e.stopPropagation(); + if (file.status === Dropzone.UPLOADING) { + return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() { + return _this.removeFile(file); + }); + } else { + if (_this.options.dictRemoveFileConfirmation) { + return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() { + return _this.removeFile(file); + }); + } else { + return _this.removeFile(file); + } + } + }; + _ref2 = file.previewElement.querySelectorAll("[data-dz-remove]"); + _results = []; + for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { + removeLink = _ref2[_k]; + _results.push(removeLink.addEventListener("click", removeFileEvent)); + } + return _results; + }, + removedfile: function(file) { + var _ref; + if ((_ref = file.previewElement) != null) { + _ref.parentNode.removeChild(file.previewElement); + } + return this._updateMaxFilesReachedClass(); + }, + thumbnail: function(file, dataUrl) { + var thumbnailElement, _i, _len, _ref, _results; + file.previewElement.classList.remove("dz-file-preview"); + file.previewElement.classList.add("dz-image-preview"); + _ref = file.previewElement.querySelectorAll("[data-dz-thumbnail]"); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + thumbnailElement = _ref[_i]; + thumbnailElement.alt = file.name; + _results.push(thumbnailElement.src = dataUrl); + } + return _results; + }, + error: function(file, message) { + var node, _i, _len, _ref, _results; + file.previewElement.classList.add("dz-error"); + if (typeof message !== "String" && message.error) { + message = message.error; + } + _ref = file.previewElement.querySelectorAll("[data-dz-errormessage]"); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + node = _ref[_i]; + _results.push(node.textContent = message); + } + return _results; + }, + errormultiple: noop, + processing: function(file) { + file.previewElement.classList.add("dz-processing"); + if (file._removeLink) { + return file._removeLink.textContent = this.options.dictCancelUpload; + } + }, + processingmultiple: noop, + uploadprogress: function(file, progress, bytesSent) { + var node, _i, _len, _ref, _results; + _ref = file.previewElement.querySelectorAll("[data-dz-uploadprogress]"); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + node = _ref[_i]; + _results.push(node.style.width = "" + progress + "%"); + } + return _results; + }, + totaluploadprogress: noop, + sending: noop, + sendingmultiple: noop, + success: function(file) { + return file.previewElement.classList.add("dz-success"); + }, + successmultiple: noop, + canceled: function(file) { + return this.emit("error", file, "Upload canceled."); + }, + canceledmultiple: noop, + complete: function(file) { + if (file._removeLink) { + return file._removeLink.textContent = this.options.dictRemoveFile; + } + }, + completemultiple: noop, + maxfilesexceeded: noop, + maxfilesreached: noop, + previewTemplate: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
" + }; + + extend = function() { + var key, object, objects, target, val, _i, _len; + target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + for (_i = 0, _len = objects.length; _i < _len; _i++) { + object = objects[_i]; + for (key in object) { + val = object[key]; + target[key] = val; + } + } + return target; + }; + + function Dropzone(element, options) { + var elementOptions, fallback, _ref; + this.element = element; + this.version = Dropzone.version; + this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\n*/g, ""); + this.clickableElements = []; + this.listeners = []; + this.files = []; + if (typeof this.element === "string") { + this.element = document.querySelector(this.element); + } + if (!(this.element && (this.element.nodeType != null))) { + throw new Error("Invalid dropzone element."); + } + if (this.element.dropzone) { + throw new Error("Dropzone already attached."); + } + Dropzone.instances.push(this); + this.element.dropzone = this; + elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {}; + this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {}); + if (this.options.forceFallback || !Dropzone.isBrowserSupported()) { + return this.options.fallback.call(this); + } + if (this.options.url == null) { + this.options.url = this.element.getAttribute("action"); + } + if (!this.options.url) { + throw new Error("No URL provided."); + } + if (this.options.acceptedFiles && this.options.acceptedMimeTypes) { + throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); + } + if (this.options.acceptedMimeTypes) { + this.options.acceptedFiles = this.options.acceptedMimeTypes; + delete this.options.acceptedMimeTypes; + } + this.options.method = this.options.method.toUpperCase(); + if ((fallback = this.getExistingFallback()) && fallback.parentNode) { + fallback.parentNode.removeChild(fallback); + } + if (this.options.previewsContainer) { + this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, "previewsContainer"); + } else { + this.previewsContainer = this.element; + } + if (this.options.clickable) { + if (this.options.clickable === true) { + this.clickableElements = [this.element]; + } else { + this.clickableElements = Dropzone.getElements(this.options.clickable, "clickable"); + } + } + this.init(); + } + + Dropzone.prototype.getAcceptedFiles = function() { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.accepted) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.getRejectedFiles = function() { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (!file.accepted) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.getFilesWithStatus = function(status) { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.status === status) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.getQueuedFiles = function() { + return this.getFilesWithStatus(Dropzone.QUEUED); + }; + + Dropzone.prototype.getUploadingFiles = function() { + return this.getFilesWithStatus(Dropzone.UPLOADING); + }; + + Dropzone.prototype.getActiveFiles = function() { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.init = function() { + var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1, + _this = this; + if (this.element.tagName === "form") { + this.element.setAttribute("enctype", "multipart/form-data"); + } + if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) { + this.element.appendChild(Dropzone.createElement("
" + this.options.dictDefaultMessage + "
")); + } + if (this.clickableElements.length) { + setupHiddenFileInput = function() { + if (_this.hiddenFileInput) { + document.body.removeChild(_this.hiddenFileInput); + } + _this.hiddenFileInput = document.createElement("input"); + _this.hiddenFileInput.setAttribute("type", "file"); + if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) { + _this.hiddenFileInput.setAttribute("multiple", "multiple"); + } + _this.hiddenFileInput.className = "dz-hidden-input"; + if (_this.options.acceptedFiles != null) { + _this.hiddenFileInput.setAttribute("accept", _this.options.acceptedFiles); + } + _this.hiddenFileInput.style.visibility = "hidden"; + _this.hiddenFileInput.style.position = "absolute"; + _this.hiddenFileInput.style.top = "0"; + _this.hiddenFileInput.style.left = "0"; + _this.hiddenFileInput.style.height = "0"; + _this.hiddenFileInput.style.width = "0"; + document.body.appendChild(_this.hiddenFileInput); + return _this.hiddenFileInput.addEventListener("change", function() { + var file, files, _i, _len; + files = _this.hiddenFileInput.files; + if (files.length) { + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + _this.addFile(file); + } + } + return setupHiddenFileInput(); + }); + }; + setupHiddenFileInput(); + } + this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL; + _ref1 = this.events; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + eventName = _ref1[_i]; + this.on(eventName, this.options[eventName]); + } + this.on("uploadprogress", function() { + return _this.updateTotalUploadProgress(); + }); + this.on("removedfile", function() { + return _this.updateTotalUploadProgress(); + }); + this.on("canceled", function(file) { + return _this.emit("complete", file); + }); + this.on("complete", function(file) { + if (_this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) { + return setTimeout((function() { + return _this.emit("queuecomplete"); + }), 0); + } + }); + noPropagation = function(e) { + e.stopPropagation(); + if (e.preventDefault) { + return e.preventDefault(); + } else { + return e.returnValue = false; + } + }; + this.listeners = [ + { + element: this.element, + events: { + "dragstart": function(e) { + return _this.emit("dragstart", e); + }, + "dragenter": function(e) { + noPropagation(e); + return _this.emit("dragenter", e); + }, + "dragover": function(e) { + var efct; + try { + efct = e.dataTransfer.effectAllowed; + } catch (_error) {} + e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy'; + noPropagation(e); + return _this.emit("dragover", e); + }, + "dragleave": function(e) { + return _this.emit("dragleave", e); + }, + "drop": function(e) { + noPropagation(e); + return _this.drop(e); + }, + "dragend": function(e) { + return _this.emit("dragend", e); + } + } + } + ]; + this.clickableElements.forEach(function(clickableElement) { + return _this.listeners.push({ + element: clickableElement, + events: { + "click": function(evt) { + if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(".dz-message")))) { + return _this.hiddenFileInput.click(); + } + } + } + }); + }); + this.enable(); + return this.options.init.call(this); + }; + + Dropzone.prototype.destroy = function() { + var _ref; + this.disable(); + this.removeAllFiles(true); + if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) { + this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); + this.hiddenFileInput = null; + } + delete this.element.dropzone; + return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1); + }; + + Dropzone.prototype.updateTotalUploadProgress = function() { + var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref; + totalBytesSent = 0; + totalBytes = 0; + activeFiles = this.getActiveFiles(); + if (activeFiles.length) { + _ref = this.getActiveFiles(); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + totalBytesSent += file.upload.bytesSent; + totalBytes += file.upload.total; + } + totalUploadProgress = 100 * totalBytesSent / totalBytes; + } else { + totalUploadProgress = 100; + } + return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); + }; + + Dropzone.prototype.getFallbackForm = function() { + var existingFallback, fields, fieldsString, form; + if (existingFallback = this.getExistingFallback()) { + return existingFallback; + } + fieldsString = "
"; + if (this.options.dictFallbackText) { + fieldsString += "

" + this.options.dictFallbackText + "

"; + } + fieldsString += "
"; + fields = Dropzone.createElement(fieldsString); + if (this.element.tagName !== "FORM") { + form = Dropzone.createElement("
"); + form.appendChild(fields); + } else { + this.element.setAttribute("enctype", "multipart/form-data"); + this.element.setAttribute("method", this.options.method); + } + return form != null ? form : fields; + }; + + Dropzone.prototype.getExistingFallback = function() { + var fallback, getFallback, tagName, _i, _len, _ref; + getFallback = function(elements) { + var el, _i, _len; + for (_i = 0, _len = elements.length; _i < _len; _i++) { + el = elements[_i]; + if (/(^| )fallback($| )/.test(el.className)) { + return el; + } + } + }; + _ref = ["div", "form"]; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + tagName = _ref[_i]; + if (fallback = getFallback(this.element.getElementsByTagName(tagName))) { + return fallback; + } + } + }; + + Dropzone.prototype.setupEventListeners = function() { + var elementListeners, event, listener, _i, _len, _ref, _results; + _ref = this.listeners; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elementListeners = _ref[_i]; + _results.push((function() { + var _ref1, _results1; + _ref1 = elementListeners.events; + _results1 = []; + for (event in _ref1) { + listener = _ref1[event]; + _results1.push(elementListeners.element.addEventListener(event, listener, false)); + } + return _results1; + })()); + } + return _results; + }; + + Dropzone.prototype.removeEventListeners = function() { + var elementListeners, event, listener, _i, _len, _ref, _results; + _ref = this.listeners; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elementListeners = _ref[_i]; + _results.push((function() { + var _ref1, _results1; + _ref1 = elementListeners.events; + _results1 = []; + for (event in _ref1) { + listener = _ref1[event]; + _results1.push(elementListeners.element.removeEventListener(event, listener, false)); + } + return _results1; + })()); + } + return _results; + }; + + Dropzone.prototype.disable = function() { + var file, _i, _len, _ref, _results; + this.clickableElements.forEach(function(element) { + return element.classList.remove("dz-clickable"); + }); + this.removeEventListeners(); + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + _results.push(this.cancelUpload(file)); + } + return _results; + }; + + Dropzone.prototype.enable = function() { + this.clickableElements.forEach(function(element) { + return element.classList.add("dz-clickable"); + }); + return this.setupEventListeners(); + }; + + Dropzone.prototype.filesize = function(size) { + var string; + if (size >= 1024 * 1024 * 1024 * 1024 / 10) { + size = size / (1024 * 1024 * 1024 * 1024 / 10); + string = "TiB"; + } else if (size >= 1024 * 1024 * 1024 / 10) { + size = size / (1024 * 1024 * 1024 / 10); + string = "GiB"; + } else if (size >= 1024 * 1024 / 10) { + size = size / (1024 * 1024 / 10); + string = "MiB"; + } else if (size >= 1024 / 10) { + size = size / (1024 / 10); + string = "KiB"; + } else { + size = size * 10; + string = "b"; + } + return "" + (Math.round(size) / 10) + " " + string; + }; + + Dropzone.prototype._updateMaxFilesReachedClass = function() { + if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) { + if (this.getAcceptedFiles().length === this.options.maxFiles) { + this.emit('maxfilesreached', this.files); + } + return this.element.classList.add("dz-max-files-reached"); + } else { + return this.element.classList.remove("dz-max-files-reached"); + } + }; + + Dropzone.prototype.drop = function(e) { + var files, items; + if (!e.dataTransfer) { + return; + } + this.emit("drop", e); + files = e.dataTransfer.files; + if (files.length) { + items = e.dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry != null)) { + this._addFilesFromItems(items); + } else { + this.handleFiles(files); + } + } + }; + + Dropzone.prototype.paste = function(e) { + var items, _ref; + if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) { + return; + } + this.emit("paste", e); + items = e.clipboardData.items; + if (items.length) { + return this._addFilesFromItems(items); + } + }; + + Dropzone.prototype.handleFiles = function(files) { + var file, _i, _len, _results; + _results = []; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + _results.push(this.addFile(file)); + } + return _results; + }; + + Dropzone.prototype._addFilesFromItems = function(items) { + var entry, item, _i, _len, _results; + _results = []; + for (_i = 0, _len = items.length; _i < _len; _i++) { + item = items[_i]; + if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) { + if (entry.isFile) { + _results.push(this.addFile(item.getAsFile())); + } else if (entry.isDirectory) { + _results.push(this._addFilesFromDirectory(entry, entry.name)); + } else { + _results.push(void 0); + } + } else if (item.getAsFile != null) { + if ((item.kind == null) || item.kind === "file") { + _results.push(this.addFile(item.getAsFile())); + } else { + _results.push(void 0); + } + } else { + _results.push(void 0); + } + } + return _results; + }; + + Dropzone.prototype._addFilesFromDirectory = function(directory, path) { + var dirReader, entriesReader, + _this = this; + dirReader = directory.createReader(); + entriesReader = function(entries) { + var entry, _i, _len; + for (_i = 0, _len = entries.length; _i < _len; _i++) { + entry = entries[_i]; + if (entry.isFile) { + entry.file(function(file) { + if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') { + return; + } + file.fullPath = "" + path + "/" + file.name; + return _this.addFile(file); + }); + } else if (entry.isDirectory) { + _this._addFilesFromDirectory(entry, "" + path + "/" + entry.name); + } + } + }; + return dirReader.readEntries(entriesReader, function(error) { + return typeof console !== "undefined" && console !== null ? typeof console.log === "function" ? console.log(error) : void 0 : void 0; + }); + }; + + Dropzone.prototype.accept = function(file, done) { + if (file.size > this.options.maxFilesize * 1024 * 1024) { + return done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); + } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) { + return done(this.options.dictInvalidFileType); + } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) { + done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)); + return this.emit("maxfilesexceeded", file); + } else { + return this.options.accept.call(this, file, done); + } + }; + + Dropzone.prototype.addFile = function(file) { + var _this = this; + file.upload = { + progress: 0, + total: file.size, + bytesSent: 0 + }; + this.files.push(file); + file.status = Dropzone.ADDED; + this.emit("addedfile", file); + this._enqueueThumbnail(file); + return this.accept(file, function(error) { + if (error) { + file.accepted = false; + _this._errorProcessing([file], error); + } else { + file.accepted = true; + if (_this.options.autoQueue) { + _this.enqueueFile(file); + } + } + return _this._updateMaxFilesReachedClass(); + }); + }; + + Dropzone.prototype.enqueueFiles = function(files) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + this.enqueueFile(file); + } + return null; + }; + + Dropzone.prototype.enqueueFile = function(file) { + var _this = this; + if (file.status === Dropzone.ADDED && file.accepted === true) { + file.status = Dropzone.QUEUED; + if (this.options.autoProcessQueue) { + return setTimeout((function() { + return _this.processQueue(); + }), 0); + } + } else { + throw new Error("This file can't be queued because it has already been processed or was rejected."); + } + }; + + Dropzone.prototype._thumbnailQueue = []; + + Dropzone.prototype._processingThumbnail = false; + + Dropzone.prototype._enqueueThumbnail = function(file) { + var _this = this; + if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { + this._thumbnailQueue.push(file); + return setTimeout((function() { + return _this._processThumbnailQueue(); + }), 0); + } + }; + + Dropzone.prototype._processThumbnailQueue = function() { + var _this = this; + if (this._processingThumbnail || this._thumbnailQueue.length === 0) { + return; + } + this._processingThumbnail = true; + return this.createThumbnail(this._thumbnailQueue.shift(), function() { + _this._processingThumbnail = false; + return _this._processThumbnailQueue(); + }); + }; + + Dropzone.prototype.removeFile = function(file) { + if (file.status === Dropzone.UPLOADING) { + this.cancelUpload(file); + } + this.files = without(this.files, file); + this.emit("removedfile", file); + if (this.files.length === 0) { + return this.emit("reset"); + } + }; + + Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) { + var file, _i, _len, _ref; + if (cancelIfNecessary == null) { + cancelIfNecessary = false; + } + _ref = this.files.slice(); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) { + this.removeFile(file); + } + } + return null; + }; + + Dropzone.prototype.createThumbnail = function(file, callback) { + var fileReader, + _this = this; + fileReader = new FileReader; + fileReader.onload = function() { + var img; + img = document.createElement("img"); + img.onload = function() { + var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3; + file.width = img.width; + file.height = img.height; + resizeInfo = _this.options.resize.call(_this, file); + if (resizeInfo.trgWidth == null) { + resizeInfo.trgWidth = _this.options.thumbnailWidth; + } + if (resizeInfo.trgHeight == null) { + resizeInfo.trgHeight = _this.options.thumbnailHeight; + } + canvas = document.createElement("canvas"); + ctx = canvas.getContext("2d"); + canvas.width = resizeInfo.trgWidth; + canvas.height = resizeInfo.trgHeight; + drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); + thumbnail = canvas.toDataURL("image/png"); + _this.emit("thumbnail", file, thumbnail); + if (callback != null) { + return callback(); + } + }; + return img.src = fileReader.result; + }; + return fileReader.readAsDataURL(file); + }; + + Dropzone.prototype.processQueue = function() { + var i, parallelUploads, processingLength, queuedFiles; + parallelUploads = this.options.parallelUploads; + processingLength = this.getUploadingFiles().length; + i = processingLength; + if (processingLength >= parallelUploads) { + return; + } + queuedFiles = this.getQueuedFiles(); + if (!(queuedFiles.length > 0)) { + return; + } + if (this.options.uploadMultiple) { + return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); + } else { + while (i < parallelUploads) { + if (!queuedFiles.length) { + return; + } + this.processFile(queuedFiles.shift()); + i++; + } + } + }; + + Dropzone.prototype.processFile = function(file) { + return this.processFiles([file]); + }; + + Dropzone.prototype.processFiles = function(files) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.processing = true; + file.status = Dropzone.UPLOADING; + this.emit("processing", file); + } + if (this.options.uploadMultiple) { + this.emit("processingmultiple", files); + } + return this.uploadFiles(files); + }; + + Dropzone.prototype._getFilesWithXhr = function(xhr) { + var file, files; + return files = (function() { + var _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.xhr === xhr) { + _results.push(file); + } + } + return _results; + }).call(this); + }; + + Dropzone.prototype.cancelUpload = function(file) { + var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref; + if (file.status === Dropzone.UPLOADING) { + groupedFiles = this._getFilesWithXhr(file.xhr); + for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) { + groupedFile = groupedFiles[_i]; + groupedFile.status = Dropzone.CANCELED; + } + file.xhr.abort(); + for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) { + groupedFile = groupedFiles[_j]; + this.emit("canceled", groupedFile); + } + if (this.options.uploadMultiple) { + this.emit("canceledmultiple", groupedFiles); + } + } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) { + file.status = Dropzone.CANCELED; + this.emit("canceled", file); + if (this.options.uploadMultiple) { + this.emit("canceledmultiple", [file]); + } + } + if (this.options.autoProcessQueue) { + return this.processQueue(); + } + }; + + Dropzone.prototype.uploadFile = function(file) { + return this.uploadFiles([file]); + }; + + Dropzone.prototype.uploadFiles = function(files) { + var file, formData, handleError, headerName, headerValue, headers, input, inputName, inputType, key, option, progressObj, response, updateProgress, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref, _ref1, _ref2, _ref3, _ref4, + _this = this; + xhr = new XMLHttpRequest(); + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.xhr = xhr; + } + xhr.open(this.options.method, this.options.url, true); + xhr.withCredentials = !!this.options.withCredentials; + response = null; + handleError = function() { + var _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = files.length; _j < _len1; _j++) { + file = files[_j]; + _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr)); + } + return _results; + }; + updateProgress = function(e) { + var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results; + if (e != null) { + progress = 100 * e.loaded / e.total; + for (_j = 0, _len1 = files.length; _j < _len1; _j++) { + file = files[_j]; + file.upload = { + progress: progress, + total: e.total, + bytesSent: e.loaded + }; + } + } else { + allFilesFinished = true; + progress = 100; + for (_k = 0, _len2 = files.length; _k < _len2; _k++) { + file = files[_k]; + if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) { + allFilesFinished = false; + } + file.upload.progress = progress; + file.upload.bytesSent = file.upload.total; + } + if (allFilesFinished) { + return; + } + } + _results = []; + for (_l = 0, _len3 = files.length; _l < _len3; _l++) { + file = files[_l]; + _results.push(_this.emit("uploadprogress", file, progress, file.upload.bytesSent)); + } + return _results; + }; + xhr.onload = function(e) { + var _ref; + if (files[0].status === Dropzone.CANCELED) { + return; + } + if (xhr.readyState !== 4) { + return; + } + response = xhr.responseText; + if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { + try { + response = JSON.parse(response); + } catch (_error) { + e = _error; + response = "Invalid JSON response from server."; + } + } + updateProgress(); + if (!((200 <= (_ref = xhr.status) && _ref < 300))) { + return handleError(); + } else { + return _this._finished(files, response, e); + } + }; + xhr.onerror = function() { + if (files[0].status === Dropzone.CANCELED) { + return; + } + return handleError(); + }; + progressObj = (_ref = xhr.upload) != null ? _ref : xhr; + progressObj.onprogress = updateProgress; + headers = { + "Accept": "application/json", + "Cache-Control": "no-cache", + "X-Requested-With": "XMLHttpRequest" + }; + if (this.options.headers) { + extend(headers, this.options.headers); + } + for (headerName in headers) { + headerValue = headers[headerName]; + xhr.setRequestHeader(headerName, headerValue); + } + formData = new FormData(); + if (this.options.params) { + _ref1 = this.options.params; + for (key in _ref1) { + value = _ref1[key]; + formData.append(key, value); + } + } + for (_j = 0, _len1 = files.length; _j < _len1; _j++) { + file = files[_j]; + this.emit("sending", file, xhr, formData); + } + if (this.options.uploadMultiple) { + this.emit("sendingmultiple", files, xhr, formData); + } + if (this.element.tagName === "FORM") { + _ref2 = this.element.querySelectorAll("input, textarea, select, button"); + for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { + input = _ref2[_k]; + inputName = input.getAttribute("name"); + inputType = input.getAttribute("type"); + if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { + _ref3 = input.options; + for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) { + option = _ref3[_l]; + if (option.selected) { + formData.append(inputName, option.value); + } + } + } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== "checkbox" && _ref4 !== "radio") || input.checked) { + formData.append(inputName, input.value); + } + } + } + for (_m = 0, _len4 = files.length; _m < _len4; _m++) { + file = files[_m]; + formData.append("" + this.options.paramName + (this.options.uploadMultiple ? "[]" : ""), file, file.name); + } + return xhr.send(formData); + }; + + Dropzone.prototype._finished = function(files, responseText, e) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.status = Dropzone.SUCCESS; + this.emit("success", file, responseText, e); + this.emit("complete", file); + } + if (this.options.uploadMultiple) { + this.emit("successmultiple", files, responseText, e); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) { + return this.processQueue(); + } + }; + + Dropzone.prototype._errorProcessing = function(files, message, xhr) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.status = Dropzone.ERROR; + this.emit("error", file, message, xhr); + this.emit("complete", file); + } + if (this.options.uploadMultiple) { + this.emit("errormultiple", files, message, xhr); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) { + return this.processQueue(); + } + }; + + return Dropzone; + + })(Em); + + Dropzone.version = "3.8.6"; + + Dropzone.options = {}; + + Dropzone.optionsForElement = function(element) { + if (element.getAttribute("id")) { + return Dropzone.options[camelize(element.getAttribute("id"))]; + } else { + return void 0; + } + }; + + Dropzone.instances = []; + + Dropzone.forElement = function(element) { + if (typeof element === "string") { + element = document.querySelector(element); + } + if ((element != null ? element.dropzone : void 0) == null) { + throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); + } + return element.dropzone; + }; + + Dropzone.autoDiscover = true; + + Dropzone.discover = function() { + var checkElements, dropzone, dropzones, _i, _len, _results; + if (document.querySelectorAll) { + dropzones = document.querySelectorAll(".dropzone"); + } else { + dropzones = []; + checkElements = function(elements) { + var el, _i, _len, _results; + _results = []; + for (_i = 0, _len = elements.length; _i < _len; _i++) { + el = elements[_i]; + if (/(^| )dropzone($| )/.test(el.className)) { + _results.push(dropzones.push(el)); + } else { + _results.push(void 0); + } + } + return _results; + }; + checkElements(document.getElementsByTagName("div")); + checkElements(document.getElementsByTagName("form")); + } + _results = []; + for (_i = 0, _len = dropzones.length; _i < _len; _i++) { + dropzone = dropzones[_i]; + if (Dropzone.optionsForElement(dropzone) !== false) { + _results.push(new Dropzone(dropzone)); + } else { + _results.push(void 0); + } + } + return _results; + }; + + Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i]; + + Dropzone.isBrowserSupported = function() { + var capableBrowser, regex, _i, _len, _ref; + capableBrowser = true; + if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { + if (!("classList" in document.createElement("a"))) { + capableBrowser = false; + } else { + _ref = Dropzone.blacklistedBrowsers; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + regex = _ref[_i]; + if (regex.test(navigator.userAgent)) { + capableBrowser = false; + continue; + } + } + } + } else { + capableBrowser = false; + } + return capableBrowser; + }; + + without = function(list, rejectedItem) { + var item, _i, _len, _results; + _results = []; + for (_i = 0, _len = list.length; _i < _len; _i++) { + item = list[_i]; + if (item !== rejectedItem) { + _results.push(item); + } + } + return _results; + }; + + camelize = function(str) { + return str.replace(/[\-_](\w)/g, function(match) { + return match.charAt(1).toUpperCase(); + }); + }; + + Dropzone.createElement = function(string) { + var div; + div = document.createElement("div"); + div.innerHTML = string; + return div.childNodes[0]; + }; + + Dropzone.elementInside = function(element, container) { + if (element === container) { + return true; + } + while (element = element.parentNode) { + if (element === container) { + return true; + } + } + return false; + }; + + Dropzone.getElement = function(el, name) { + var element; + if (typeof el === "string") { + element = document.querySelector(el); + } else if (el.nodeType != null) { + element = el; + } + if (element == null) { + throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector or a plain HTML element."); + } + return element; + }; + + Dropzone.getElements = function(els, name) { + var e, el, elements, _i, _j, _len, _len1, _ref; + if (els instanceof Array) { + elements = []; + try { + for (_i = 0, _len = els.length; _i < _len; _i++) { + el = els[_i]; + elements.push(this.getElement(el, name)); + } + } catch (_error) { + e = _error; + elements = null; + } + } else if (typeof els === "string") { + elements = []; + _ref = document.querySelectorAll(els); + for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { + el = _ref[_j]; + elements.push(el); + } + } else if (els.nodeType != null) { + elements = [els]; + } + if (!((elements != null) && elements.length)) { + throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector, a plain HTML element or a list of those."); + } + return elements; + }; + + Dropzone.confirm = function(question, accepted, rejected) { + if (window.confirm(question)) { + return accepted(); + } else if (rejected != null) { + return rejected(); + } + }; + + Dropzone.isValidFile = function(file, acceptedFiles) { + var baseMimeType, mimeType, validType, _i, _len; + if (!acceptedFiles) { + return true; + } + acceptedFiles = acceptedFiles.split(","); + mimeType = file.type; + baseMimeType = mimeType.replace(/\/.*$/, ""); + for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) { + validType = acceptedFiles[_i]; + validType = validType.trim(); + if (validType.charAt(0) === ".") { + if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== - 1) { + return true; + } + } else if (/\/\*$/.test(validType)) { + if (baseMimeType === validType.replace(/\/.*$/, "")) { + return true; + } + } else { + if (mimeType === validType) { + return true; + } + } + } + return false; + }; + + if (typeof jQuery !== "undefined" && jQuery !== null) { + jQuery.fn.dropzone = function(options) { + return this.each(function() { + return new Dropzone(this, options); + }); + }; + } + + if (typeof module !== "undefined" && module !== null) { + module.exports = Dropzone; + } else { + window.Dropzone = Dropzone; + } + + Dropzone.ADDED = "added"; + + Dropzone.QUEUED = "queued"; + + Dropzone.ACCEPTED = Dropzone.QUEUED; + + Dropzone.UPLOADING = "uploading"; + + Dropzone.PROCESSING = Dropzone.UPLOADING; + + Dropzone.CANCELED = "canceled"; + + Dropzone.ERROR = "error"; + + Dropzone.SUCCESS = "success"; + + /* + + Bugfix for iOS 6 and 7 + Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios + based on the work of https://github.com/stomita/ios-imagefile-megapixel + */ + + + detectVerticalSquash = function(img) { + var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy; + iw = img.naturalWidth; + ih = img.naturalHeight; + canvas = document.createElement("canvas"); + canvas.width = 1; + canvas.height = ih; + ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + data = ctx.getImageData(0, 0, 1, ih).data; + sy = 0; + ey = ih; + py = ih; + while (py > sy) { + alpha = data[(py - 1) * 4 + 3]; + if (alpha === 0) { + ey = py; + } else { + sy = py; + } + py = (ey + sy) >> 1; + } + ratio = py / ih; + if (ratio === 0) { + return 1; + } else { + return ratio; + } + }; + + drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { + var vertSquashRatio; + vertSquashRatio = detectVerticalSquash(img); + return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); + }; + + /* + # contentloaded.js + # + # Author: Diego Perini (diego.perini at gmail.com) + # Summary: cross-browser wrapper for DOMContentLoaded + # Updated: 20101020 + # License: MIT + # Version: 1.2 + # + # URL: + # http://javascript.nwbox.com/ContentLoaded/ + # http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE + */ + + + contentLoaded = function(win, fn) { + var add, doc, done, init, poll, pre, rem, root, top; + done = false; + top = true; + doc = win.document; + root = doc.documentElement; + add = (doc.addEventListener ? "addEventListener" : "attachEvent"); + rem = (doc.addEventListener ? "removeEventListener" : "detachEvent"); + pre = (doc.addEventListener ? "" : "on"); + init = function(e) { + if (e.type === "readystatechange" && doc.readyState !== "complete") { + return; + }(e.type === "load" ? win : doc)[rem](pre + e.type, init, false); + if (!done && (done = true)) { + return fn.call(win, e.type || e); + } + }; + poll = function() { + var e; + try { + root.doScroll("left"); + } catch (_error) { + e = _error; + setTimeout(poll, 50); + return; + } + return init("poll"); + }; + if (doc.readyState !== "complete") { + if (doc.createEventObject && root.doScroll) { + try { + top = !win.frameElement; + } catch (_error) {} + if (top) { + poll(); + } + } + doc[add](pre + "DOMContentLoaded", init, false); + doc[add](pre + "readystatechange", init, false); + return win[add](pre + "load", init, false); + } + }; + + Dropzone._autoDiscoverFunction = function() { + if (Dropzone.autoDiscover) { + return Dropzone.discover(); + } + }; + + contentLoaded(window, Dropzone._autoDiscoverFunction); + + }).call(this); + +}); +require.register("enyo-opentip/index.js", function(exports, require, module) { + // Copyright (c) 2012 Matias Meno + + + // The index.js file for component + var Opentip = require("./lib/opentip.js"); + + + var Adapter = require("./lib/adapter-component.js"); + + // Add the adapter to the list + Opentip.addAdapter(new Adapter()); + + + // Exposing the Opentip class + module.exports = Opentip; +}); +require.register("enyo-opentip/lib/opentip.js", function(exports, require, module) { + /* + # + # Opentip v2.4.6 + # + # More info at [www.opentip.org](http://www.opentip.org) + # + # Copyright (c) 2012, Matias Meno + # Graphics by Tjandra Mayerhold + # + # Permission is hereby granted, free of charge, to any person obtaining a copy + # of this software and associated documentation files (the "Software"), to deal + # in the Software without restriction, including without limitation the rights + # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + # copies of the Software, and to permit persons to whom the Software is + # furnished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included in + # all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + # THE SOFTWARE. + # + */ + + var Opentip, firstAdapter, i, mouseMoved, mousePosition, mousePositionObservers, position, vendors, _i, _len, _ref, + __slice = [].slice, + __indexOf = [].indexOf || function(item) { + for (var i = 0, l = this.length; i < l; i++) { + if (i in this && this[i] === item) + return i; + } + return - 1; + }, + __hasProp = {}.hasOwnProperty; + + Opentip = (function() { + Opentip.prototype.STICKS_OUT_TOP = 1; + + Opentip.prototype.STICKS_OUT_BOTTOM = 2; + + Opentip.prototype.STICKS_OUT_LEFT = 1; + + Opentip.prototype.STICKS_OUT_RIGHT = 2; + + Opentip.prototype["class"] = { + container: "opentip-container", + opentip: "opentip", + header: "ot-header", + content: "ot-content", + loadingIndicator: "ot-loading-indicator", + close: "ot-close", + goingToHide: "ot-going-to-hide", + hidden: "ot-hidden", + hiding: "ot-hiding", + goingToShow: "ot-going-to-show", + showing: "ot-showing", + visible: "ot-visible", + loading: "ot-loading", + ajaxError: "ot-ajax-error", + fixed: "ot-fixed", + showEffectPrefix: "ot-show-effect-", + hideEffectPrefix: "ot-hide-effect-", + stylePrefix: "style-" + }; + + function Opentip(element, content, title, options) { + var elementsOpentips, hideTrigger, methodToBind, optionSources, prop, styleName, _i, _j, _len, _len1, _ref, _ref1, _ref2, _tmpStyle, + _this = this; + + this.id = ++Opentip.lastId; + this.debug("Creating Opentip."); + Opentip.tips.push(this); + this.adapter = Opentip.adapter; + elementsOpentips = this.adapter.data(element, "opentips") || []; + elementsOpentips.push(this); + this.adapter.data(element, "opentips", elementsOpentips); + this.triggerElement = this.adapter.wrap(element); + if (this.triggerElement.length > 1) { + throw new Error("You can't call Opentip on multiple elements."); + } + if (this.triggerElement.length < 1) { + throw new Error("Invalid element."); + } + this.loaded = false; + this.loading = false; + this.visible = false; + this.waitingToShow = false; + this.waitingToHide = false; + this.currentPosition = { + left: 0, + top: 0 + }; + this.dimensions = { + width: 100, + height: 50 + }; + this.content = ""; + this.redraw = true; + this.currentObservers = { + showing: false, + visible: false, + hiding: false, + hidden: false + }; + options = this.adapter.clone(options); + if (typeof content === "object") { + options = content; + content = title = void 0; + } else if (typeof title === "object") { + options = title; + title = void 0; + } + if (title != null) { + options.title = title; + } + if (content != null) { + this.setContent(content); + } + if (options["extends"] == null) { + if (options.style != null) { + options["extends"] = options.style; + } else { + options["extends"] = Opentip.defaultStyle; + } + } + optionSources = [options]; + _tmpStyle = options; + while (_tmpStyle["extends"]) { + styleName = _tmpStyle["extends"]; + _tmpStyle = Opentip.styles[styleName]; + if (_tmpStyle == null) { + throw new Error("Invalid style: " + styleName); + } + optionSources.unshift(_tmpStyle); + if (!((_tmpStyle["extends"] != null) || styleName === "standard")) { + _tmpStyle["extends"] = "standard"; + } + } + options = (_ref = this.adapter).extend.apply(_ref, [{} + ].concat(__slice.call(optionSources))); + options.hideTriggers = (function() { + var _i, _len, _ref1, _results; + + _ref1 = options.hideTriggers; + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + hideTrigger = _ref1[_i]; + _results.push(hideTrigger); + } + return _results; + })(); + if (options.hideTrigger && options.hideTriggers.length === 0) { + options.hideTriggers.push(options.hideTrigger); + } + _ref1 = ["tipJoint", "targetJoint", "stem"]; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + prop = _ref1[_i]; + if (options[prop] && typeof options[prop] === "string") { + options[prop] = new Opentip.Joint(options[prop]); + } + } + if (options.ajax && (options.ajax === true || !options.ajax)) { + if (this.adapter.tagName(this.triggerElement) === "A") { + options.ajax = this.adapter.attr(this.triggerElement, "href"); + } else { + options.ajax = false; + } + } + if (options.showOn === "click" && this.adapter.tagName(this.triggerElement) === "A") { + this.adapter.observe(this.triggerElement, "click", function(e) { + e.preventDefault(); + e.stopPropagation(); + return e.stopped = true; + }); + } + if (options.target) { + options.fixed = true; + } + if (options.stem === true) { + options.stem = new Opentip.Joint(options.tipJoint); + } + if (options.target === true) { + options.target = this.triggerElement; + } else if (options.target) { + options.target = this.adapter.wrap(options.target); + } + this.currentStem = options.stem; + if (options.delay == null) { + options.delay = options.showOn === "mouseover" ? 0.2 : 0; + } + if (options.targetJoint == null) { + options.targetJoint = new Opentip.Joint(options.tipJoint).flip(); + } + this.showTriggers = []; + this.showTriggersWhenVisible = []; + this.hideTriggers = []; + if (options.showOn && options.showOn !== "creation") { + this.showTriggers.push({ + element: this.triggerElement, + event: options.showOn + }); + } + if (options.ajaxCache != null) { + options.cache = options.ajaxCache; + delete options.ajaxCache; + } + this.options = options; + this.bound = {}; + _ref2 = ["prepareToShow", "prepareToHide", "show", "hide", "reposition"]; + for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { + methodToBind = _ref2[_j]; + this.bound[methodToBind] = (function(methodToBind) { + return function() { + return _this[methodToBind].apply(_this, arguments); + }; + })(methodToBind); + } + this.adapter.domReady(function() { + _this.activate(); + if (_this.options.showOn === "creation") { + return _this.prepareToShow(); + } + }); + } + + Opentip.prototype._setup = function() { + var hideOn, hideTrigger, hideTriggerElement, i, _i, _j, _len, _len1, _ref, _ref1, _results; + + this.debug("Setting up the tooltip."); + this._buildContainer(); + this.hideTriggers = []; + _ref = this.options.hideTriggers; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + hideTrigger = _ref[i]; + hideTriggerElement = null; + hideOn = this.options.hideOn instanceof Array ? this.options.hideOn[i] : this.options.hideOn; + if (typeof hideTrigger === "string") { + switch (hideTrigger) { + case "trigger": + hideOn = hideOn || "mouseout"; + hideTriggerElement = this.triggerElement; + break; + case "tip": + hideOn = hideOn || "mouseover"; + hideTriggerElement = this.container; + break; + case "target": + hideOn = hideOn || "mouseover"; + hideTriggerElement = this.options.target; + break; + case "closeButton": + break; + default: + throw new Error("Unknown hide trigger: " + hideTrigger + "."); + } + } else { + hideOn = hideOn || "mouseover"; + hideTriggerElement = this.adapter.wrap(hideTrigger); + } + if (hideTriggerElement) { + this.hideTriggers.push({ + element: hideTriggerElement, + event: hideOn, + original: hideTrigger + }); + } + } + _ref1 = this.hideTriggers; + _results = []; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + hideTrigger = _ref1[_j]; + _results.push(this.showTriggersWhenVisible.push({ + element: hideTrigger.element, + event: "mouseover" + })); + } + return _results; + }; + + Opentip.prototype._buildContainer = function() { + this.container = this.adapter.create("
"); + this.adapter.css(this.container, { + position: "absolute" + }); + if (this.options.ajax) { + this.adapter.addClass(this.container, this["class"].loading); + } + if (this.options.fixed) { + this.adapter.addClass(this.container, this["class"].fixed); + } + if (this.options.showEffect) { + this.adapter.addClass(this.container, "" + this["class"].showEffectPrefix + this.options.showEffect); + } + if (this.options.hideEffect) { + return this.adapter.addClass(this.container, "" + this["class"].hideEffectPrefix + this.options.hideEffect); + } + }; + + Opentip.prototype._buildElements = function() { + var headerElement, titleElement; + + this.tooltipElement = this.adapter.create("
"); + this.backgroundCanvas = this.adapter.wrap(document.createElement("canvas")); + this.adapter.css(this.backgroundCanvas, { + position: "absolute" + }); + if (typeof G_vmlCanvasManager !== "undefined" && G_vmlCanvasManager !== null) { + G_vmlCanvasManager.initElement(this.adapter.unwrap(this.backgroundCanvas)); + } + headerElement = this.adapter.find(this.tooltipElement, "." + this["class"].header); + if (this.options.title) { + titleElement = this.adapter.create("

"); + this.adapter.update(titleElement, this.options.title, this.options.escapeTitle); + this.adapter.append(headerElement, titleElement); + } + if (this.options.ajax && !this.loaded) { + this.adapter.append(this.tooltipElement, this.adapter.create("
")); + } + if (__indexOf.call(this.options.hideTriggers, "closeButton") >= 0) { + this.closeButtonElement = this.adapter.create("Close"); + this.adapter.append(headerElement, this.closeButtonElement); + } + this.adapter.append(this.container, this.backgroundCanvas); + this.adapter.append(this.container, this.tooltipElement); + this.adapter.append(document.body, this.container); + this._newContent = true; + return this.redraw = true; + }; + + Opentip.prototype.setContent = function(content) { + this.content = content; + this._newContent = true; + if (typeof this.content === "function") { + this._contentFunction = this.content; + this.content = ""; + } else { + this._contentFunction = null; + } + if (this.visible) { + return this._updateElementContent(); + } + }; + + Opentip.prototype._updateElementContent = function() { + var contentDiv; + + if (this._newContent || (!this.options.cache && this._contentFunction)) { + contentDiv = this.adapter.find(this.container, "." + this["class"].content); + if (contentDiv != null) { + if (this._contentFunction) { + this.debug("Executing content function."); + this.content = this._contentFunction(this); + } + this.adapter.update(contentDiv, this.content, this.options.escapeContent); + } + this._newContent = false; + } + this._storeAndLockDimensions(); + return this.reposition(); + }; + + Opentip.prototype._storeAndLockDimensions = function() { + var prevDimension; + + if (!this.container) { + return; + } + prevDimension = this.dimensions; + this.adapter.css(this.container, { + width: "auto", + left: "0px", + top: "0px" + }); + this.dimensions = this.adapter.dimensions(this.container); + this.dimensions.width += 1; + this.adapter.css(this.container, { + width: "" + this.dimensions.width + "px", + top: "" + this.currentPosition.top + "px", + left: "" + this.currentPosition.left + "px" + }); + if (!this._dimensionsEqual(this.dimensions, prevDimension)) { + this.redraw = true; + return this._draw(); + } + }; + + Opentip.prototype.activate = function() { + return this._setupObservers("hidden", "hiding"); + }; + + Opentip.prototype.deactivate = function() { + this.debug("Deactivating tooltip."); + this.hide(); + return this._setupObservers("-showing", "-visible", "-hidden", "-hiding"); + }; + + Opentip.prototype._setupObservers = function() { + var observeOrStop, removeObserver, state, states, trigger, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, _ref2, + _this = this; + + states = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + for (_i = 0, _len = states.length; _i < _len; _i++) { + state = states[_i]; + removeObserver = false; + if (state.charAt(0) === "-") { + removeObserver = true; + state = state.substr(1); + } + if (this.currentObservers[state] === !removeObserver) { + continue; + } + this.currentObservers[state] = !removeObserver; + observeOrStop = function() { + var args, _ref, _ref1; + + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if (removeObserver) { + return (_ref = _this.adapter).stopObserving.apply(_ref, args); + } else { + return (_ref1 = _this.adapter).observe.apply(_ref1, args); + } + }; + switch (state) { + case "showing": + _ref = this.hideTriggers; + for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { + trigger = _ref[_j]; + observeOrStop(trigger.element, trigger.event, this.bound.prepareToHide); + } + observeOrStop((document.onresize != null ? document : window), "resize", this.bound.reposition); + observeOrStop(window, "scroll", this.bound.reposition); + break; + case "visible": + _ref1 = this.showTriggersWhenVisible; + for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) { + trigger = _ref1[_k]; + observeOrStop(trigger.element, trigger.event, this.bound.prepareToShow); + } + break; + case "hiding": + _ref2 = this.showTriggers; + for (_l = 0, _len3 = _ref2.length; _l < _len3; _l++) { + trigger = _ref2[_l]; + observeOrStop(trigger.element, trigger.event, this.bound.prepareToShow); + } + break; + case "hidden": + break; + default: + throw new Error("Unknown state: " + state); + } + } + return null; + }; + + Opentip.prototype.prepareToShow = function() { + this._abortHiding(); + this._abortShowing(); + if (this.visible) { + return; + } + this.debug("Showing in " + this.options.delay + "s."); + if (this.container == null) { + this._setup(); + } + if (this.options.group) { + Opentip._abortShowingGroup(this.options.group, this); + } + this.preparingToShow = true; + this._setupObservers("-hidden", "-hiding", "showing"); + this._followMousePosition(); + if (this.options.fixed && !this.options.target) { + this.initialMousePosition = mousePosition; + } + this.reposition(); + return this._showTimeoutId = this.setTimeout(this.bound.show, this.options.delay || 0); + }; + + Opentip.prototype.show = function() { + var _this = this; + + this._abortHiding(); + if (this.visible) { + return; + } + this._clearTimeouts(); + if (!this._triggerElementExists()) { + return this.deactivate(); + } + this.debug("Showing now."); + if (this.container == null) { + this._setup(); + } + if (this.options.group) { + Opentip._hideGroup(this.options.group, this); + } + this.visible = true; + this.preparingToShow = false; + if (this.tooltipElement == null) { + this._buildElements(); + } + this._updateElementContent(); + if (this.options.ajax && (!this.loaded || !this.options.cache)) { + this._loadAjax(); + } + this._searchAndActivateCloseButtons(); + this._startEnsureTriggerElement(); + this.adapter.css(this.container, { + zIndex: Opentip.lastZIndex++ + }); + this._setupObservers("-hidden", "-hiding", "-showing", "-visible", "showing", "visible"); + if (this.options.fixed && !this.options.target) { + this.initialMousePosition = mousePosition; + } + this.reposition(); + this.adapter.removeClass(this.container, this["class"].hiding); + this.adapter.removeClass(this.container, this["class"].hidden); + this.adapter.addClass(this.container, this["class"].goingToShow); + this.setCss3Style(this.container, { + transitionDuration: "0s" + }); + this.defer(function() { + var delay; + + if (!_this.visible || _this.preparingToHide) { + return; + } + _this.adapter.removeClass(_this.container, _this["class"].goingToShow); + _this.adapter.addClass(_this.container, _this["class"].showing); + delay = 0; + if (_this.options.showEffect && _this.options.showEffectDuration) { + delay = _this.options.showEffectDuration; + } + _this.setCss3Style(_this.container, { + transitionDuration: "" + delay + "s" + }); + _this._visibilityStateTimeoutId = _this.setTimeout(function() { + _this.adapter.removeClass(_this.container, _this["class"].showing); + return _this.adapter.addClass(_this.container, _this["class"].visible); + }, delay); + return _this._activateFirstInput(); + }); + return this._draw(); + }; + + Opentip.prototype._abortShowing = function() { + if (this.preparingToShow) { + this.debug("Aborting showing."); + this._clearTimeouts(); + this._stopFollowingMousePosition(); + this.preparingToShow = false; + return this._setupObservers("-showing", "-visible", "hiding", "hidden"); + } + }; + + Opentip.prototype.prepareToHide = function() { + this._abortShowing(); + this._abortHiding(); + if (!this.visible) { + return; + } + this.debug("Hiding in " + this.options.hideDelay + "s"); + this.preparingToHide = true; + this._setupObservers("-showing", "visible", "-hidden", "hiding"); + return this._hideTimeoutId = this.setTimeout(this.bound.hide, this.options.hideDelay); + }; + + Opentip.prototype.hide = function() { + var _this = this; + + this._abortShowing(); + if (!this.visible) { + return; + } + this._clearTimeouts(); + this.debug("Hiding!"); + this.visible = false; + this.preparingToHide = false; + this._stopEnsureTriggerElement(); + this._setupObservers("-showing", "-visible", "-hiding", "-hidden", "hiding", "hidden"); + if (!this.options.fixed) { + this._stopFollowingMousePosition(); + } + if (!this.container) { + return; + } + this.adapter.removeClass(this.container, this["class"].visible); + this.adapter.removeClass(this.container, this["class"].showing); + this.adapter.addClass(this.container, this["class"].goingToHide); + this.setCss3Style(this.container, { + transitionDuration: "0s" + }); + return this.defer(function() { + var hideDelay; + + _this.adapter.removeClass(_this.container, _this["class"].goingToHide); + _this.adapter.addClass(_this.container, _this["class"].hiding); + hideDelay = 0; + if (_this.options.hideEffect && _this.options.hideEffectDuration) { + hideDelay = _this.options.hideEffectDuration; + } + _this.setCss3Style(_this.container, { + transitionDuration: "" + hideDelay + "s" + }); + return _this._visibilityStateTimeoutId = _this.setTimeout(function() { + _this.adapter.removeClass(_this.container, _this["class"].hiding); + _this.adapter.addClass(_this.container, _this["class"].hidden); + _this.setCss3Style(_this.container, { + transitionDuration: "0s" + }); + if (_this.options.removeElementsOnHide) { + _this.debug("Removing HTML elements."); + _this.adapter.remove(_this.container); + delete _this.container; + return delete _this.tooltipElement; + } + }, hideDelay); + }); + }; + + Opentip.prototype._abortHiding = function() { + if (this.preparingToHide) { + this.debug("Aborting hiding."); + this._clearTimeouts(); + this.preparingToHide = false; + return this._setupObservers("-hiding", "showing", "visible"); + } + }; + + Opentip.prototype.reposition = function() { + var position, stem, _ref, + _this = this; + + position = this.getPosition(); + if (position == null) { + return; + } + stem = this.options.stem; + if (this.options.containInViewport) { + _ref = this._ensureViewportContainment(position), position = _ref.position, stem = _ref.stem; + } + if (this._positionsEqual(position, this.currentPosition)) { + return; + } + if (!(!this.options.stem || stem.eql(this.currentStem))) { + this.redraw = true; + } + this.currentPosition = position; + this.currentStem = stem; + this._draw(); + this.adapter.css(this.container, { + left: "" + position.left + "px", + top: "" + position.top + "px" + }); + return this.defer(function() { + var rawContainer, redrawFix; + + rawContainer = _this.adapter.unwrap(_this.container); + rawContainer.style.visibility = "hidden"; + redrawFix = rawContainer.offsetHeight; + return rawContainer.style.visibility = "visible"; + }); + }; + + Opentip.prototype.getPosition = function(tipJoint, targetJoint, stem) { + var additionalHorizontal, additionalVertical, offsetDistance, position, stemLength, targetDimensions, targetPosition, unwrappedTarget, _ref; + + if (!this.container) { + return; + } + if (tipJoint == null) { + tipJoint = this.options.tipJoint; + } + if (targetJoint == null) { + targetJoint = this.options.targetJoint; + } + position = {}; + if (this.options.target) { + targetPosition = this.adapter.offset(this.options.target); + targetDimensions = this.adapter.dimensions(this.options.target); + position = targetPosition; + if (targetJoint.right) { + unwrappedTarget = this.adapter.unwrap(this.options.target); + if (unwrappedTarget.getBoundingClientRect != null) { + position.left = unwrappedTarget.getBoundingClientRect().right + ((_ref = window.pageXOffset) != null ? _ref : document.body.scrollLeft); + } else { + position.left += targetDimensions.width; + } + } else if (targetJoint.center) { + position.left += Math.round(targetDimensions.width / 2); + } + if (targetJoint.bottom) { + position.top += targetDimensions.height; + } else if (targetJoint.middle) { + position.top += Math.round(targetDimensions.height / 2); + } + if (this.options.borderWidth) { + if (this.options.tipJoint.left) { + position.left += this.options.borderWidth; + } + if (this.options.tipJoint.right) { + position.left -= this.options.borderWidth; + } + if (this.options.tipJoint.top) { + position.top += this.options.borderWidth; + } else if (this.options.tipJoint.bottom) { + position.top -= this.options.borderWidth; + } + } + } else { + if (this.initialMousePosition) { + position = { + top: this.initialMousePosition.y, + left: this.initialMousePosition.x + }; + } else { + position = { + top: mousePosition.y, + left: mousePosition.x + }; + } + } + if (this.options.autoOffset) { + stemLength = this.options.stem ? this.options.stemLength : 0; + offsetDistance = stemLength && this.options.fixed ? 2 : 10; + additionalHorizontal = tipJoint.middle && !this.options.fixed ? 15 : 0; + additionalVertical = tipJoint.center && !this.options.fixed ? 15 : 0; + if (tipJoint.right) { + position.left -= offsetDistance + additionalHorizontal; + } else if (tipJoint.left) { + position.left += offsetDistance + additionalHorizontal; + } + if (tipJoint.bottom) { + position.top -= offsetDistance + additionalVertical; + } else if (tipJoint.top) { + position.top += offsetDistance + additionalVertical; + } + if (stemLength) { + if (stem == null) { + stem = this.options.stem; + } + if (stem.right) { + position.left -= stemLength; + } else if (stem.left) { + position.left += stemLength; + } + if (stem.bottom) { + position.top -= stemLength; + } else if (stem.top) { + position.top += stemLength; + } + } + } + position.left += this.options.offset[0]; + position.top += this.options.offset[1]; + if (tipJoint.right) { + position.left -= this.dimensions.width; + } else if (tipJoint.center) { + position.left -= Math.round(this.dimensions.width / 2); + } + if (tipJoint.bottom) { + position.top -= this.dimensions.height; + } else if (tipJoint.middle) { + position.top -= Math.round(this.dimensions.height / 2); + } + return position; + }; + + Opentip.prototype._ensureViewportContainment = function(position) { + var needsRepositioning, newSticksOut, originals, revertedX, revertedY, scrollOffset, stem, sticksOut, targetJoint, tipJoint, viewportDimensions, viewportPosition; + + stem = this.options.stem; + originals = { + position: position, + stem: stem + }; + if (!(this.visible && position)) { + return originals; + } + sticksOut = this._sticksOut(position); + if (!(sticksOut[0] || sticksOut[1])) { + return originals; + } + tipJoint = new Opentip.Joint(this.options.tipJoint); + if (this.options.targetJoint) { + targetJoint = new Opentip.Joint(this.options.targetJoint); + } + scrollOffset = this.adapter.scrollOffset(); + viewportDimensions = this.adapter.viewportDimensions(); + viewportPosition = [position.left - scrollOffset[0], position.top - scrollOffset[1]]; + needsRepositioning = false; + if (viewportDimensions.width >= this.dimensions.width) { + if (sticksOut[0]) { + needsRepositioning = true; + switch (sticksOut[0]) { + case this.STICKS_OUT_LEFT: + tipJoint.setHorizontal("left"); + if (this.options.targetJoint) { + targetJoint.setHorizontal("right"); + } + break; + case this.STICKS_OUT_RIGHT: + tipJoint.setHorizontal("right"); + if (this.options.targetJoint) { + targetJoint.setHorizontal("left"); + } + } + } + } + if (viewportDimensions.height >= this.dimensions.height) { + if (sticksOut[1]) { + needsRepositioning = true; + switch (sticksOut[1]) { + case this.STICKS_OUT_TOP: + tipJoint.setVertical("top"); + if (this.options.targetJoint) { + targetJoint.setVertical("bottom"); + } + break; + case this.STICKS_OUT_BOTTOM: + tipJoint.setVertical("bottom"); + if (this.options.targetJoint) { + targetJoint.setVertical("top"); + } + } + } + } + if (!needsRepositioning) { + return originals; + } + if (this.options.stem) { + stem = tipJoint; + } + position = this.getPosition(tipJoint, targetJoint, stem); + newSticksOut = this._sticksOut(position); + revertedX = false; + revertedY = false; + if (newSticksOut[0] && (newSticksOut[0] !== sticksOut[0])) { + revertedX = true; + tipJoint.setHorizontal(this.options.tipJoint.horizontal); + if (this.options.targetJoint) { + targetJoint.setHorizontal(this.options.targetJoint.horizontal); + } + } + if (newSticksOut[1] && (newSticksOut[1] !== sticksOut[1])) { + revertedY = true; + tipJoint.setVertical(this.options.tipJoint.vertical); + if (this.options.targetJoint) { + targetJoint.setVertical(this.options.targetJoint.vertical); + } + } + if (revertedX && revertedY) { + return originals; + } + if (revertedX || revertedY) { + if (this.options.stem) { + stem = tipJoint; + } + position = this.getPosition(tipJoint, targetJoint, stem); + } + return { + position: position, + stem: stem + }; + }; + + Opentip.prototype._sticksOut = function(position) { + var positionOffset, scrollOffset, sticksOut, viewportDimensions; + + scrollOffset = this.adapter.scrollOffset(); + viewportDimensions = this.adapter.viewportDimensions(); + positionOffset = [position.left - scrollOffset[0], position.top - scrollOffset[1]]; + sticksOut = [false, false]; + if (positionOffset[0] < 0) { + sticksOut[0] = this.STICKS_OUT_LEFT; + } else if (positionOffset[0] + this.dimensions.width > viewportDimensions.width) { + sticksOut[0] = this.STICKS_OUT_RIGHT; + } + if (positionOffset[1] < 0) { + sticksOut[1] = this.STICKS_OUT_TOP; + } else if (positionOffset[1] + this.dimensions.height > viewportDimensions.height) { + sticksOut[1] = this.STICKS_OUT_BOTTOM; + } + return sticksOut; + }; + + Opentip.prototype._draw = function() { + var backgroundCanvas, bulge, canvasDimensions, canvasPosition, closeButton, closeButtonInner, closeButtonOuter, ctx, drawCorner, drawLine, hb, position, stemBase, stemLength, _i, _len, _ref, _ref1, _ref2, + _this = this; + + if (!(this.backgroundCanvas && this.redraw)) { + return; + } + this.debug("Drawing background."); + this.redraw = false; + if (this.currentStem) { + _ref = ["top", "right", "bottom", "left"]; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + position = _ref[_i]; + this.adapter.removeClass(this.container, "stem-" + position); + } + this.adapter.addClass(this.container, "stem-" + this.currentStem.horizontal); + this.adapter.addClass(this.container, "stem-" + this.currentStem.vertical); + } + closeButtonInner = [0, 0]; + closeButtonOuter = [0, 0]; + if (__indexOf.call(this.options.hideTriggers, "closeButton") >= 0) { + closeButton = new Opentip.Joint(((_ref1 = this.currentStem) != null ? _ref1.toString() : void 0) === "top right" ? "top left" : "top right"); + closeButtonInner = [this.options.closeButtonRadius + this.options.closeButtonOffset[0], this.options.closeButtonRadius + this.options.closeButtonOffset[1]]; + closeButtonOuter = [this.options.closeButtonRadius - this.options.closeButtonOffset[0], this.options.closeButtonRadius - this.options.closeButtonOffset[1]]; + } + canvasDimensions = this.adapter.clone(this.dimensions); + canvasPosition = [0, 0]; + if (this.options.borderWidth) { + canvasDimensions.width += this.options.borderWidth * 2; + canvasDimensions.height += this.options.borderWidth * 2; + canvasPosition[0] -= this.options.borderWidth; + canvasPosition[1] -= this.options.borderWidth; + } + if (this.options.shadow) { + canvasDimensions.width += this.options.shadowBlur * 2; + canvasDimensions.width += Math.max(0, this.options.shadowOffset[0] - this.options.shadowBlur * 2); + canvasDimensions.height += this.options.shadowBlur * 2; + canvasDimensions.height += Math.max(0, this.options.shadowOffset[1] - this.options.shadowBlur * 2); + canvasPosition[0] -= Math.max(0, this.options.shadowBlur - this.options.shadowOffset[0]); + canvasPosition[1] -= Math.max(0, this.options.shadowBlur - this.options.shadowOffset[1]); + } + bulge = { + left: 0, + right: 0, + top: 0, + bottom: 0 + }; + if (this.currentStem) { + if (this.currentStem.left) { + bulge.left = this.options.stemLength; + } else if (this.currentStem.right) { + bulge.right = this.options.stemLength; + } + if (this.currentStem.top) { + bulge.top = this.options.stemLength; + } else if (this.currentStem.bottom) { + bulge.bottom = this.options.stemLength; + } + } + if (closeButton) { + if (closeButton.left) { + bulge.left = Math.max(bulge.left, closeButtonOuter[0]); + } else if (closeButton.right) { + bulge.right = Math.max(bulge.right, closeButtonOuter[0]); + } + if (closeButton.top) { + bulge.top = Math.max(bulge.top, closeButtonOuter[1]); + } else if (closeButton.bottom) { + bulge.bottom = Math.max(bulge.bottom, closeButtonOuter[1]); + } + } + canvasDimensions.width += bulge.left + bulge.right; + canvasDimensions.height += bulge.top + bulge.bottom; + canvasPosition[0] -= bulge.left; + canvasPosition[1] -= bulge.top; + if (this.currentStem && this.options.borderWidth) { + _ref2 = this._getPathStemMeasures(this.options.stemBase, this.options.stemLength, this.options.borderWidth), stemLength = _ref2.stemLength, stemBase = _ref2.stemBase; + } + backgroundCanvas = this.adapter.unwrap(this.backgroundCanvas); + backgroundCanvas.width = canvasDimensions.width; + backgroundCanvas.height = canvasDimensions.height; + this.adapter.css(this.backgroundCanvas, { + width: "" + backgroundCanvas.width + "px", + height: "" + backgroundCanvas.height + "px", + left: "" + canvasPosition[0] + "px", + top: "" + canvasPosition[1] + "px" + }); + ctx = backgroundCanvas.getContext("2d"); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.clearRect(0, 0, backgroundCanvas.width, backgroundCanvas.height); + ctx.beginPath(); + ctx.fillStyle = this._getColor(ctx, this.dimensions, this.options.background, this.options.backgroundGradientHorizontal); + ctx.lineJoin = "miter"; + ctx.miterLimit = 500; + hb = this.options.borderWidth / 2; + if (this.options.borderWidth) { + ctx.strokeStyle = this.options.borderColor; + ctx.lineWidth = this.options.borderWidth; + } else { + stemLength = this.options.stemLength; + stemBase = this.options.stemBase; + } + if (stemBase == null) { + stemBase = 0; + } + drawLine = function(length, stem, first) { + if (first) { + ctx.moveTo(Math.max(stemBase, _this.options.borderRadius, closeButtonInner[0]) + 1 - hb, - hb); + } + if (stem) { + ctx.lineTo(length / 2 - stemBase / 2, - hb); + ctx.lineTo(length / 2, - stemLength - hb); + return ctx.lineTo(length / 2 + stemBase / 2, - hb); + } + }; + drawCorner = function(stem, closeButton, i) { + var angle1, angle2, innerWidth, offset; + + if (stem) { + ctx.lineTo( - stemBase + hb, 0 - hb); + ctx.lineTo(stemLength + hb, - stemLength - hb); + return ctx.lineTo(hb, stemBase - hb); + } else if (closeButton) { + offset = _this.options.closeButtonOffset; + innerWidth = closeButtonInner[0]; + if (i % 2 !== 0) { + offset = [offset[1], offset[0]]; + innerWidth = closeButtonInner[1]; + } + angle1 = Math.acos(offset[1] / _this.options.closeButtonRadius); + angle2 = Math.acos(offset[0] / _this.options.closeButtonRadius); + ctx.lineTo( - innerWidth + hb, - hb); + return ctx.arc(hb - offset[0], - hb + offset[1], _this.options.closeButtonRadius, - (Math.PI / 2 + angle1), angle2, false); + } else { + ctx.lineTo( - _this.options.borderRadius + hb, - hb); + return ctx.quadraticCurveTo(hb, - hb, hb, _this.options.borderRadius - hb); + } + }; + ctx.translate( - canvasPosition[0], - canvasPosition[1]); + ctx.save(); + (function() { + var cornerStem, i, lineLength, lineStem, positionIdx, positionX, positionY, rotation, _j, _ref3, _results; + + _results = []; + for (i = _j = 0, _ref3 = Opentip.positions.length / 2; 0 <= _ref3 ? _j < _ref3 : _j > _ref3; i = 0 <= _ref3 ? ++_j : --_j) { + positionIdx = i * 2; + positionX = i === 0 || i === 3 ? 0 : _this.dimensions.width; + positionY = i < 2 ? 0 : _this.dimensions.height; + rotation = (Math.PI / 2) * i; + lineLength = i % 2 === 0 ? _this.dimensions.width : _this.dimensions.height; + lineStem = new Opentip.Joint(Opentip.positions[positionIdx]); + cornerStem = new Opentip.Joint(Opentip.positions[positionIdx + 1]); + ctx.save(); + ctx.translate(positionX, positionY); + ctx.rotate(rotation); + drawLine(lineLength, lineStem.eql(_this.currentStem), i === 0); + ctx.translate(lineLength, 0); + drawCorner(cornerStem.eql(_this.currentStem), cornerStem.eql(closeButton), i); + _results.push(ctx.restore()); + } + return _results; + })(); + ctx.closePath(); + ctx.save(); + if (this.options.shadow) { + ctx.shadowColor = this.options.shadowColor; + ctx.shadowBlur = this.options.shadowBlur; + ctx.shadowOffsetX = this.options.shadowOffset[0]; + ctx.shadowOffsetY = this.options.shadowOffset[1]; + } + ctx.fill(); + ctx.restore(); + if (this.options.borderWidth) { + ctx.stroke(); + } + ctx.restore(); + if (closeButton) { + return (function() { + var crossCenter, crossHeight, crossWidth, hcs, linkCenter; + + crossWidth = crossHeight = _this.options.closeButtonRadius * 2; + if (closeButton.toString() === "top right") { + linkCenter = [_this.dimensions.width - _this.options.closeButtonOffset[0], _this.options.closeButtonOffset[1]]; + crossCenter = [linkCenter[0] + hb, linkCenter[1] - hb]; + } else { + linkCenter = [_this.options.closeButtonOffset[0], _this.options.closeButtonOffset[1]]; + crossCenter = [linkCenter[0] - hb, linkCenter[1] - hb]; + } + ctx.translate(crossCenter[0], crossCenter[1]); + hcs = _this.options.closeButtonCrossSize / 2; + ctx.save(); + ctx.beginPath(); + ctx.strokeStyle = _this.options.closeButtonCrossColor; + ctx.lineWidth = _this.options.closeButtonCrossLineWidth; + ctx.lineCap = "round"; + ctx.moveTo( - hcs, - hcs); + ctx.lineTo(hcs, hcs); + ctx.stroke(); + ctx.beginPath(); + ctx.moveTo(hcs, - hcs); + ctx.lineTo( - hcs, hcs); + ctx.stroke(); + ctx.restore(); + return _this.adapter.css(_this.closeButtonElement, { + left: "" + (linkCenter[0] - hcs - _this.options.closeButtonLinkOverscan) + "px", + top: "" + (linkCenter[1] - hcs - _this.options.closeButtonLinkOverscan) + "px", + width: "" + (_this.options.closeButtonCrossSize + _this.options.closeButtonLinkOverscan * 2) + "px", + height: "" + (_this.options.closeButtonCrossSize + _this.options.closeButtonLinkOverscan * 2) + "px" + }); + })(); + } + }; + + Opentip.prototype._getPathStemMeasures = function(outerStemBase, outerStemLength, borderWidth) { + var angle, distanceBetweenTips, halfAngle, hb, rhombusSide, stemBase, stemLength; + + hb = borderWidth / 2; + halfAngle = Math.atan((outerStemBase / 2) / outerStemLength); + angle = halfAngle * 2; + rhombusSide = hb / Math.sin(angle); + distanceBetweenTips = 2 * rhombusSide * Math.cos(halfAngle); + stemLength = hb + outerStemLength - distanceBetweenTips; + if (stemLength < 0) { + throw new Error("Sorry but your stemLength / stemBase ratio is strange."); + } + stemBase = (Math.tan(halfAngle) * stemLength) * 2; + return { + stemLength: stemLength, + stemBase: stemBase + }; + }; + + Opentip.prototype._getColor = function(ctx, dimensions, color, horizontal) { + var colorStop, gradient, i, _i, _len; + + if (horizontal == null) { + horizontal = false; + } + if (typeof color === "string") { + return color; + } + if (horizontal) { + gradient = ctx.createLinearGradient(0, 0, dimensions.width, 0); + } else { + gradient = ctx.createLinearGradient(0, 0, 0, dimensions.height); + } + for (i = _i = 0, _len = color.length; _i < _len; i = ++_i) { + colorStop = color[i]; + gradient.addColorStop(colorStop[0], colorStop[1]); + } + return gradient; + }; + + Opentip.prototype._searchAndActivateCloseButtons = function() { + var element, _i, _len, _ref; + + _ref = this.adapter.findAll(this.container, "." + this["class"].close); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + element = _ref[_i]; + this.hideTriggers.push({ + element: this.adapter.wrap(element), + event: "click" + }); + } + if (this.currentObservers.showing) { + this._setupObservers("-showing", "showing"); + } + if (this.currentObservers.visible) { + return this._setupObservers("-visible", "visible"); + } + }; + + Opentip.prototype._activateFirstInput = function() { + var input; + + input = this.adapter.unwrap(this.adapter.find(this.container, "input, textarea")); + return input != null ? typeof input.focus === "function" ? input.focus() : void 0 : void 0; + }; + + Opentip.prototype._followMousePosition = function() { + if (!this.options.fixed) { + return Opentip._observeMousePosition(this.bound.reposition); + } + }; + + Opentip.prototype._stopFollowingMousePosition = function() { + if (!this.options.fixed) { + return Opentip._stopObservingMousePosition(this.bound.reposition); + } + }; + + Opentip.prototype._clearShowTimeout = function() { + return clearTimeout(this._showTimeoutId); + }; + + Opentip.prototype._clearHideTimeout = function() { + return clearTimeout(this._hideTimeoutId); + }; + + Opentip.prototype._clearTimeouts = function() { + clearTimeout(this._visibilityStateTimeoutId); + this._clearShowTimeout(); + return this._clearHideTimeout(); + }; + + Opentip.prototype._triggerElementExists = function() { + var el; + + el = this.adapter.unwrap(this.triggerElement); + while (el.parentNode) { + if (el.parentNode.tagName === "BODY") { + return true; + } + el = el.parentNode; + } + return false; + }; + + Opentip.prototype._loadAjax = function() { + var _this = this; + + if (this.loading) { + return; + } + this.loaded = false; + this.loading = true; + this.adapter.addClass(this.container, this["class"].loading); + this.setContent(""); + this.debug("Loading content from " + this.options.ajax); + return this.adapter.ajax({ + url: this.options.ajax, + method: this.options.ajaxMethod, + onSuccess: function(responseText) { + _this.debug("Loading successful."); + _this.adapter.removeClass(_this.container, _this["class"].loading); + return _this.setContent(responseText); + }, + onError: function(error) { + var message; + + message = _this.options.ajaxErrorMessage; + _this.debug(message, error); + _this.setContent(message); + return _this.adapter.addClass(_this.container, _this["class"].ajaxError); + }, + onComplete: function() { + _this.adapter.removeClass(_this.container, _this["class"].loading); + _this.loading = false; + _this.loaded = true; + _this._searchAndActivateCloseButtons(); + _this._activateFirstInput(); + return _this.reposition(); + } + }); + }; + + Opentip.prototype._ensureTriggerElement = function() { + if (!this._triggerElementExists()) { + this.deactivate(); + return this._stopEnsureTriggerElement(); + } + }; + + Opentip.prototype._ensureTriggerElementInterval = 1000; + + Opentip.prototype._startEnsureTriggerElement = function() { + var _this = this; + + return this._ensureTriggerElementTimeoutId = setInterval((function() { + return _this._ensureTriggerElement(); + }), this._ensureTriggerElementInterval); + }; + + Opentip.prototype._stopEnsureTriggerElement = function() { + return clearInterval(this._ensureTriggerElementTimeoutId); + }; + + return Opentip; + + })(); + + vendors = ["khtml", "ms", "o", "moz", "webkit"]; + + Opentip.prototype.setCss3Style = function(element, styles) { + var prop, value, vendor, vendorProp, _results; + + element = this.adapter.unwrap(element); + _results = []; + for (prop in styles) { + if (!__hasProp.call(styles, prop)) + continue; + value = styles[prop]; + if (element.style[prop] != null) { + _results.push(element.style[prop] = value); + } else { + _results.push((function() { + var _i, _len, _results1; + + _results1 = []; + for (_i = 0, _len = vendors.length; _i < _len; _i++) { + vendor = vendors[_i]; + vendorProp = "" + (this.ucfirst(vendor)) + (this.ucfirst(prop)); + if (element.style[vendorProp] != null) { + _results1.push(element.style[vendorProp] = value); + } else { + _results1.push(void 0); + } + } + return _results1; + }).call(this)); + } + } + return _results; + }; + + Opentip.prototype.defer = function(func) { + return setTimeout(func, 0); + }; + + Opentip.prototype.setTimeout = function(func, seconds) { + return setTimeout(func, seconds ? seconds * 1000 : 0); + }; + + Opentip.prototype.ucfirst = function(string) { + if (string == null) { + return ""; + } + return string.charAt(0).toUpperCase() + string.slice(1); + }; + + Opentip.prototype.dasherize = function(string) { + return string.replace(/([A-Z])/g, function(_, character) { + return "-" + (character.toLowerCase()); + }); + }; + + mousePositionObservers = []; + + mousePosition = { + x: 0, + y: 0 + }; + + mouseMoved = function(e) { + var observer, _i, _len, _results; + + mousePosition = Opentip.adapter.mousePosition(e); + _results = []; + for (_i = 0, _len = mousePositionObservers.length; _i < _len; _i++) { + observer = mousePositionObservers[_i]; + _results.push(observer()); + } + return _results; + }; + + Opentip.followMousePosition = function() { + return Opentip.adapter.observe(document.body, "mousemove", mouseMoved); + }; + + Opentip._observeMousePosition = function(observer) { + return mousePositionObservers.push(observer); + }; + + Opentip._stopObservingMousePosition = function(removeObserver) { + var observer; + + return mousePositionObservers = (function() { + var _i, _len, _results; + + _results = []; + for (_i = 0, _len = mousePositionObservers.length; _i < _len; _i++) { + observer = mousePositionObservers[_i]; + if (observer !== removeObserver) { + _results.push(observer); + } + } + return _results; + })(); + }; + + Opentip.Joint = (function() { + function Joint(pointerString) { + if (pointerString == null) { + return; + } + if (pointerString instanceof Opentip.Joint) { + pointerString = pointerString.toString(); + } + this.set(pointerString); + this; + } + + Joint.prototype.set = function(string) { + string = string.toLowerCase(); + this.setHorizontal(string); + this.setVertical(string); + return this; + }; + + Joint.prototype.setHorizontal = function(string) { + var i, valid, _i, _j, _len, _len1, _results; + + valid = ["left", "center", "right"]; + for (_i = 0, _len = valid.length; _i < _len; _i++) { + i = valid[_i]; + if (~string.indexOf(i)) { + this.horizontal = i.toLowerCase(); + } + } + if (this.horizontal == null) { + this.horizontal = "center"; + } + _results = []; + for (_j = 0, _len1 = valid.length; _j < _len1; _j++) { + i = valid[_j]; + _results.push(this[i] = this.horizontal === i ? i : void 0); + } + return _results; + }; + + Joint.prototype.setVertical = function(string) { + var i, valid, _i, _j, _len, _len1, _results; + + valid = ["top", "middle", "bottom"]; + for (_i = 0, _len = valid.length; _i < _len; _i++) { + i = valid[_i]; + if (~string.indexOf(i)) { + this.vertical = i.toLowerCase(); + } + } + if (this.vertical == null) { + this.vertical = "middle"; + } + _results = []; + for (_j = 0, _len1 = valid.length; _j < _len1; _j++) { + i = valid[_j]; + _results.push(this[i] = this.vertical === i ? i : void 0); + } + return _results; + }; + + Joint.prototype.eql = function(pointer) { + return (pointer != null) && this.horizontal === pointer.horizontal && this.vertical === pointer.vertical; + }; + + Joint.prototype.flip = function() { + var flippedIndex, positionIdx; + + positionIdx = Opentip.position[this.toString(true)]; + flippedIndex = (positionIdx + 4) % 8; + this.set(Opentip.positions[flippedIndex]); + return this; + }; + + Joint.prototype.toString = function(camelized) { + var horizontal, vertical; + + if (camelized == null) { + camelized = false; + } + vertical = this.vertical === "middle" ? "" : this.vertical; + horizontal = this.horizontal === "center" ? "" : this.horizontal; + if (vertical && horizontal) { + if (camelized) { + horizontal = Opentip.prototype.ucfirst(horizontal); + } else { + horizontal = " " + horizontal; + } + } + return "" + vertical + horizontal; + }; + + return Joint; + + })(); + + Opentip.prototype._positionsEqual = function(posA, posB) { + return (posA != null) && (posB != null) && posA.left === posB.left && posA.top === posB.top; + }; + + Opentip.prototype._dimensionsEqual = function(dimA, dimB) { + return (dimA != null) && (dimB != null) && dimA.width === dimB.width && dimA.height === dimB.height; + }; + + Opentip.prototype.debug = function() { + var args; + + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if (Opentip.debug && ((typeof console !== "undefined" && console !== null ? console.debug : void 0) != null)) { + args.unshift("#" + this.id + " |"); + return console.debug.apply(console, args); + } + }; + + Opentip.findElements = function() { + var adapter, content, element, optionName, optionValue, options, _i, _len, _ref, _results; + + adapter = Opentip.adapter; + _ref = adapter.findAll(document.body, "[data-ot]"); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + element = _ref[_i]; + options = {}; + content = adapter.data(element, "ot"); + if (content === "" || content === "true" || content === "yes") { + content = adapter.attr(element, "title"); + adapter.attr(element, "title", ""); + } + content = content || ""; + for (optionName in Opentip.styles.standard) { + optionValue = adapter.data(element, "ot" + (Opentip.prototype.ucfirst(optionName))); + if (optionValue != null) { + if (optionValue === "yes" || optionValue === "true" || optionValue === "on") { + optionValue = true; + } else if (optionValue === "no" || optionValue === "false" || optionValue === "off") { + optionValue = false; + } + options[optionName] = optionValue; + } + } + _results.push(new Opentip(element, content, options)); + } + return _results; + }; + + Opentip.version = "2.4.6"; + + Opentip.debug = false; + + Opentip.lastId = 0; + + Opentip.lastZIndex = 100; + + Opentip.tips = []; + + Opentip._abortShowingGroup = function(group, originatingOpentip) { + var opentip, _i, _len, _ref, _results; + + _ref = Opentip.tips; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + opentip = _ref[_i]; + if (opentip !== originatingOpentip && opentip.options.group === group) { + _results.push(opentip._abortShowing()); + } else { + _results.push(void 0); + } + } + return _results; + }; + + Opentip._hideGroup = function(group, originatingOpentip) { + var opentip, _i, _len, _ref, _results; + + _ref = Opentip.tips; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + opentip = _ref[_i]; + if (opentip !== originatingOpentip && opentip.options.group === group) { + _results.push(opentip.hide()); + } else { + _results.push(void 0); + } + } + return _results; + }; + + Opentip.adapters = {}; + + Opentip.adapter = null; + + firstAdapter = true; + + Opentip.addAdapter = function(adapter) { + Opentip.adapters[adapter.name] = adapter; + if (firstAdapter) { + Opentip.adapter = adapter; + adapter.domReady(Opentip.findElements); + adapter.domReady(Opentip.followMousePosition); + return firstAdapter = false; + } + }; + + Opentip.positions = ["top", "topRight", "right", "bottomRight", "bottom", "bottomLeft", "left", "topLeft"]; + + Opentip.position = {}; + + _ref = Opentip.positions; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + position = _ref[i]; + Opentip.position[position] = i; + } + + Opentip.styles = { + standard: { + "extends": null, + title: void 0, + escapeTitle: true, + escapeContent: false, + className: "standard", + stem: true, + delay: null, + hideDelay: 0.1, + fixed: false, + showOn: "mouseover", + hideTrigger: "trigger", + hideTriggers: [], + hideOn: null, + removeElementsOnHide: false, + offset: [0, + 0], + containInViewport: true, + autoOffset: true, + showEffect: "appear", + hideEffect: "fade", + showEffectDuration: 0.3, + hideEffectDuration: 0.2, + stemLength: 5, + stemBase: 8, + tipJoint: "top left", + target: null, + targetJoint: null, + cache: true, + ajax: false, + ajaxMethod: "GET", + ajaxErrorMessage: "There was a problem downloading the content.", + group: null, + style: null, + background: "#fff18f", + backgroundGradientHorizontal: false, + closeButtonOffset: [5, + 5], + closeButtonRadius: 7, + closeButtonCrossSize: 4, + closeButtonCrossColor: "#d2c35b", + closeButtonCrossLineWidth: 1.5, + closeButtonLinkOverscan: 6, + borderRadius: 5, + borderWidth: 1, + borderColor: "#f2e37b", + shadow: true, + shadowBlur: 10, + shadowOffset: [3, + 3], + shadowColor: "rgba(0, 0, 0, 0.1)" + }, + glass: { + "extends": "standard", + className: "glass", + background: [[0, "rgba(252, 252, 252, 0.8)"], [0.5, "rgba(255, 255, 255, 0.8)"], [0.5, "rgba(250, 250, 250, 0.9)"], [1, "rgba(245, 245, 245, 0.9)"]], + borderColor: "#eee", + closeButtonCrossColor: "rgba(0, 0, 0, 0.2)", + borderRadius: 15, + closeButtonRadius: 10, + closeButtonOffset: [8, 8] + }, + dark: { + "extends": "standard", + className: "dark", + borderRadius: 13, + borderColor: "#444", + closeButtonCrossColor: "rgba(240, 240, 240, 1)", + shadowColor: "rgba(0, 0, 0, 0.3)", + shadowOffset: [2, 2], + background: [[0, "rgba(30, 30, 30, 0.7)"], [0.5, "rgba(30, 30, 30, 0.8)"], [0.5, "rgba(10, 10, 10, 0.8)"], [1, "rgba(10, 10, 10, 0.9)"]] + }, + alert: { + "extends": "standard", + className: "alert", + borderRadius: 1, + borderColor: "#AE0D11", + closeButtonCrossColor: "rgba(255, 255, 255, 1)", + shadowColor: "rgba(0, 0, 0, 0.3)", + shadowOffset: [2, 2], + background: [[0, "rgba(203, 15, 19, 0.7)"], [0.5, "rgba(203, 15, 19, 0.8)"], [0.5, "rgba(189, 14, 18, 0.8)"], [1, "rgba(179, 14, 17, 0.9)"]] + } + }; + + Opentip.defaultStyle = "standard"; + + if (typeof module !== "undefined" && module !== null) { + module.exports = Opentip; + } else { + window.Opentip = Opentip; + } + +}); +require.register("enyo-opentip/lib/adapter-component.js", function(exports, require, module) { + var $, Adapter, _ref, + __slice = [].slice; + + $ = (_ref = window.jQuery) != null ? _ref : require("jquery"); + + module.exports = Adapter = (function() { + function Adapter() {} + + Adapter.prototype.name = "component"; + + Adapter.prototype.domReady = function(callback) { + return $(callback); + }; + + Adapter.prototype.create = function(html) { + return $(html); + }; + + Adapter.prototype.wrap = function(element) { + element = $(element); + if (element.length > 1) { + throw new Error("Multiple elements provided."); + } + return element; + }; + + Adapter.prototype.unwrap = function(element) { + return $(element)[0]; + }; + + Adapter.prototype.tagName = function(element) { + return this.unwrap(element).tagName; + }; + + Adapter.prototype.attr = function() { + var args, element, _ref1; + + element = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + return (_ref1 = $(element)).attr.apply(_ref1, args); + }; + + Adapter.prototype.data = function() { + var args, element, _ref1; + + element = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + return (_ref1 = $(element)).data.apply(_ref1, args); + }; + + Adapter.prototype.find = function(element, selector) { + return $(element).find(selector)[0]; + }; + + Adapter.prototype.findAll = function(element, selector) { + return $(element).find(selector); + }; + + Adapter.prototype.update = function(element, content, escape) { + element = $(element); + if (escape) { + return element.text(content); + } else { + return element.html(content); + } + }; + + Adapter.prototype.append = function(element, child) { + return $(element).append(child); + }; + + Adapter.prototype.remove = function(element) { + return $(element).remove(); + }; + + Adapter.prototype.addClass = function(element, className) { + return $(element).addClass(className); + }; + + Adapter.prototype.removeClass = function(element, className) { + return $(element).removeClass(className); + }; + + Adapter.prototype.css = function(element, properties) { + return $(element).css(properties); + }; + + Adapter.prototype.dimensions = function(element) { + return { + width: $(element).outerWidth(), + height: $(element).outerHeight() + }; + }; + + Adapter.prototype.scrollOffset = function() { + return [window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop]; + }; + + Adapter.prototype.viewportDimensions = function() { + return { + width: document.documentElement.clientWidth, + height: document.documentElement.clientHeight + }; + }; + + Adapter.prototype.mousePosition = function(e) { + if (e == null) { + return null; + } + return { + x: e.pageX, + y: e.pageY + }; + }; + + Adapter.prototype.offset = function(element) { + var offset; + + offset = $(element).offset(); + return { + left: offset.left, + top: offset.top + }; + }; + + Adapter.prototype.observe = function(element, eventName, observer) { + return $(element).bind(eventName, observer); + }; + + Adapter.prototype.stopObserving = function(element, eventName, observer) { + return $(element).unbind(eventName, observer); + }; + + Adapter.prototype.ajax = function(options) { + var _ref1, _ref2; + + if (options.url == null) { + throw new Error("No url provided"); + } + return $.ajax({ + url: options.url, + type: (_ref1 = (_ref2 = options.method) != null ? _ref2.toUpperCase() : void 0) != null ? _ref1 : "GET" + }).done(function(content) { + return typeof options.onSuccess === "function" ? options.onSuccess(content) : void 0; + }).fail(function(request) { + return typeof options.onError === "function" ? options.onError("Server responded with status " + request.status) : void 0; + }).always(function() { + return typeof options.onComplete === "function" ? options.onComplete() : void 0; + }); + }; + + Adapter.prototype.clone = function(object) { + return $.extend({}, object); + }; + + Adapter.prototype.extend = function() { + var sources, target; + + target = arguments[0], sources = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + return $.extend.apply($, [target].concat(__slice.call(sources))); + }; + + return Adapter; + + })(); + +}); +require.register("component-jquery/index.js", function(exports, require, module) { + /*! + * jQuery JavaScript Library v1.9.1 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-2-4 + */ + (function( window, undefined ) { + + // Can't do this because several apps including ASP.NET trace + // the stack via arguments.caller.callee and Firefox dies if + // you try to trace through "use strict" call chains. (#13335) + // Support: Firefox 18+ + //"use strict"; + var + // The deferred used on DOM ready + readyList, + // A central reference to the root jQuery(document) + rootjQuery, + // Support: IE<9 + // For `typeof node.method` instead of `node.method !== undefined` + core_strundefined = typeof undefined, + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + location = window.location, + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + // Map over the $ in case of overwrite + _$ = window.$, + // [[Class]] -> type pairs + class2type = {}, + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + core_version = "1.9.1", + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + + jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + // Return a 'clean' array + this.toArray() : + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( - 1 ); + }, + + eq: function( i ) { + var len = this.length, + j = + i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice + }; + + // Give the init function the jQuery prototype for later instantiation + jQuery.fn.init.prototype = jQuery.fn; + + jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; + }; + + jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { + // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { + // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch ( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + })( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } + : + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return - 1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + } + }); + + jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch (e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch (e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); + }; + + // Populate the class2type map + jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + }); + + function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); + } + + // All jQuery objects should point back to these + rootjQuery = jQuery(document); + // String to Object options format cache + var optionsCache = {}; + + // Convert String-formatted options into Object-formatted ones and store in cache + function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; + } + + /* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ + jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > - 1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > - 1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; + }; + jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ + ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ + ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } + }); + jQuery.support = (function() { + + var support, all, a, + input, select, fragment, + opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
a"; + + // Support tests won't run in some limited or non-browser environments + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + if ( !all || !a || !all.length ) { + return {}; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + support = { + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.5/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + checkOn: !!input.value, + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Tests for enctype support on a form (#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", + + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: document.compatMode === "CSS1Compat", + + // Will be defined later + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true, + boxSizingReliable: true, + pixelPosition: false + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch ( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php + for ( i in { + submit: true, + change: true, + focusin: true + }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
t
"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {}).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { + width: "4px" + }).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {}).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
"; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; + })(); + + var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + + function internalData( elem, name, data, pvt /* Internal Use Only */ + ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; + } + + function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var i, l, thisCache, + isNode = elem.nodeType, + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } + } + + jQuery.extend({ + cache: {}, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } + }); + + jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( !name.indexOf( "data-" ) ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + // Try to fetch any internally stored data first + return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + } + + this.each(function() { + jQuery.data( this, key, value ); + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } + }); + + function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + + data + "" === data ? + data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; + } + + // checks a cache object for emptiness + function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; + } + jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + hooks.cur = fn; + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } + }); + + jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } + }); + var nodeHook, boolHook, + rclass = /[\t\r\n]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + + jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch ( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } + }); + + jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = - 1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, notxml, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + // In IE9+, Flash objects don't have .getAttribute (#12945) + // Support: IE9+ + if ( typeof elem.getAttribute !== core_strundefined ) { + ret = elem.getAttribute( name ); + } + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( rboolean.test( name ) ) { + // Set corresponding property to false for boolean attributes + // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 + if ( !getSetAttribute && ruseDefault.test( name ) ) { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } else { + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } + }); + + // Hook for boolean attributes + boolHook = { + get: function( elem, name ) { + var + // Use .prop to determine if this attribute is understood as boolean + prop = jQuery.prop( elem, name ), + // Fetch it accordingly + attr = typeof prop === "boolean" && elem.getAttribute( name ), + detail = typeof prop === "boolean" ? + getSetInput && getSetAttribute ? + attr != null : + // oldIE fabricates an empty string for missing boolean attributes + // and conflates checked/selected into attroperties + ruseDefault.test( name ) ? + elem[ jQuery.camelCase( "default-" + name ) ] : + !!attr : + // fetch an attribute node for properties not recognized as boolean + elem.getAttributeNode( name ); + + return detail && detail.value !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } + }; + + // fix oldIE value attroperty + if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return jQuery.nodeName( elem, "input" ) ? + // Ignore the value *property* by using defaultValue + elem.defaultValue : + ret && ret.specified ? ret.value : undefined; + }, + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; + } + + // IE6/7 do not support getting/setting some attributes with get/setAttribute + if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? + ret.value : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); + } + + + // Some attributes require a special call on IE + // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx + if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret == null ? undefined : ret; + } + }); + }); + + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); + } + + if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; + } + + // Safari mis-reports the default selected property of an option + // Accessing the parent's selectedIndex property fixes it + if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); + } + + // IE6/7 call enctype encoding + if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; + } + + // Radios and checkboxes getter/setter + if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); + } + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); + }); + var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + + function returnTrue() { + return true; + } + + function returnFalse() { + return false; + } + + /* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ + jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + event.isTrigger = true; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {})[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {})[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur != this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ + elem: cur, + handlers: matches + }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ + elem: this, + handlers: handlers.slice( delegateCount ) + }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + } + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== document.activeElement && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === document.activeElement && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + }); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } + }; + + jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + + jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; + }; + + // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding + // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html + jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } + }; + + // Create mouseenter/leave events using mouseover/out and event-time checks + jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; + }); + + // IE submit delegation + if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; + } + + // IE change delegation and checkbox/radio fix + if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; + } + + // Create "bubbling" focus and blur events + if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ + focus: "focusin", + blur: "focusout" + }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); + } + + jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ + one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } + }); + /*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ + (function( window, undefined ) { + + var i, + cachedruns, + Expr, + getText, + isXML, + compile, + hasDuplicate, + outermostContext, + // Local document vars + setDocument, + document, + docElem, + documentIsXML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + sortOrder, + // Instance-specific data + expando = "sizzle" + - (new Date()), + preferredDoc = window.document, + support = {}, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + // Array methods + arr = [], + pop = arr.pop, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return - 1; + }, + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + rsibling = /[\x20\t\r\n\f]*[+~]/, + rnative = /^[^{]+\{\s*\[native code/, + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, + funescape = function( _, escaped ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + return high !== high ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + + // Use a stripped-down slice if we can't use a native one + try { + slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; + } catch ( e ) { + slice = function( i ) { + var elem, + results = []; + while ( (elem = this[i++]) ) { + results.push( elem ); + } + return results; + }; + } + + /** + * For feature detection + * @param {Function} fn The function to test for native support + */ + function isNative( fn ) { + return rnative.test( fn + "" ); + } + + /** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ + function createCache() { + var cache, + keys = []; + + return (cache = function( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + }); + } + + /** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ + function markFunction( fn ) { + fn[ expando ] = true; + return fn; + } + + /** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ + function assert( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } + } + + function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( !documentIsXML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + + // QSA path + if ( support.qsa && !rbuggyQSA.test(selector) ) { + old = true; + nid = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch (qsaError) {} finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); + } + + /** + * Detect xml + * @param {Element|Object} elem An element or a document + */ + isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; + }; + + /** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ + setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsXML = isXML( doc ); + + // Check if getElementsByTagName("*") returns only elements + support.tagNameNoComments = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if attributes should be retrieved by attribute nodes + support.attributes = assert(function( div ) { + div.innerHTML = ""; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }); + + // Check if getElementsByClassName can be trusted + support.getByClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = ""; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }); + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + support.getByName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "
"; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = doc.getElementsByName && + // buggy browsers will return fewer than the correct 2 + doc.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + doc.getElementsByName( expando + 0 ).length; + support.getIdNotName = !doc.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + + // IE6/7 return modified attributes + Expr.attrHandle = assert(function( div ) { + div.innerHTML = ""; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }) ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; + + // ID find and filter + if ( support.getIdNotName ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.tagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Name + Expr.find["NAME"] = support.getByName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; + + // Class + Expr.find["CLASS"] = support.getByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { + return context.getElementsByClassName( className ); + } + }; + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21), + // no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ]; + + if ( (support.qsa = isNative(doc.querySelectorAll)) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE8 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = ""; + if ( div.querySelectorAll("[i^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + var compare; + + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { + if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { + if ( a === doc || contains( preferredDoc, a ) ) { + return - 1; + } + if ( b === doc || contains( preferredDoc, b ) ) { + return 1; + } + return 0; + } + return compare & 4 ? - 1 : 1; + } + + return a.compareDocumentPosition ? - 1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? - 1 : + b === doc ? 1 : + aup ? - 1 : + bup ? 1 : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? - 1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + // Always assume the presence of duplicates if sort doesn't + // pass them to our comparison function (as in Google Chrome). + hasDuplicate = false; + [0, 0].sort( sortOrder ); + support.detectDuplicates = hasDuplicate; + + return document; + }; + + Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); + }; + + Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyQSA always contains :focus, so no need for an existence check + if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; + }; + + Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); + }; + + Sizzle.attr = function( elem, name ) { + var val; + + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( !documentIsXML ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( documentIsXML || support.attributes ) { + return elem.getAttribute( name ); + } + return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? + name : + val && val.specified ? val.value : null; + }; + + Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); + }; + + // Document sorting and removing duplicates + Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + i = 1, + j = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; + }; + + function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return - 1; + } + } + } + + return a ? 1 : - 1; + } + + // Returns a function to use in pseudos for input types + function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; + } + + // Returns a function to use in pseudos for buttons + function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; + } + + // Returns a function to use in pseudos for positionals + function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = + argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); + } + + /** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ + getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; + }; + + Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + find: {}, + + relative: { + ">": { + dir: "parentNode", + first: true + }, + " ": { + dir: "parentNode" + }, + "+": { + dir: "previousSibling", + first: true + }, + "~": { + dir: "previousSibling" + } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = + ( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = + ( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[4] ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { + return true; + }; + } + + nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > - 1 : + operator === "$=" ? check && result.slice( - check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > - 1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( - 4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > - 1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifider + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsXML ? + elem.getAttribute("xml:lang") || elem.getAttribute("lang") : + elem.lang) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } + while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } + }; + + // Add button/input type pseudos + for ( i in { + radio: true, + checkbox: true, + file: true, + password: true, + image: true + }) { + Expr.pseudos[ i ] = createInputPseudo( i ); + } + for ( i in { + submit: true, + reset: true + }) { + Expr.pseudos[ i ] = createButtonPseudo( i ); + } + + function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push( { + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); + } + + function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; + } + + function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; + } + + function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; + } + + function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; + } + + function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + // ...intermediate processing is necessary + [] : + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > - 1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); + } + + function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > - 1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } + ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); + } + + function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; + } + + compile = Sizzle.compile = function( selector, group /* Internal Use Only */ + ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; + }; + + function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; + } + + function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && !documentIsXML && + Expr.relative[ tokens[1].type ] ) { + + context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + documentIsXML, + results, + rsibling.test( selector ) + ); + return results; + } + + // Deprecated + Expr.pseudos["nth"] = Expr.pseudos["eq"]; + + // Easy API for creating new setFilters + function setFilters() {} + Expr.filters = setFilters.prototype = Expr.pseudos; + Expr.setFilters = new setFilters(); + + // Initialize with the default document + setDocument(); + + // Override sizzle attribute retrieval + Sizzle.attr = jQuery.attr; + jQuery.find = Sizzle; + jQuery.expr = Sizzle.selectors; + jQuery.expr[":"] = jQuery.expr.pseudos; + jQuery.unique = Sizzle.uniqueSort; + jQuery.text = Sizzle.getText; + jQuery.isXMLDoc = Sizzle.isXML; + jQuery.contains = Sizzle.contains; + + + })( window ); + var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + + jQuery.fn.extend({ + find: function( selector ) { + var i, ret, self, + len = this.length; + + if ( typeof selector !== "string" ) { + self = this; + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + ret = []; + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, this[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true) ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > - 1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : - 1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } + }); + + jQuery.fn.andSelf = jQuery.fn.addBack; + + function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } + while ( cur && cur.nodeType !== 1 ); + + return cur; + } + + jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {}).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } + }, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret ); + }; + }); + + jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } + }); + + // Implement the identical functionality for filter and not + function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); + } + function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; + } + + var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
", "
" ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + col: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + + wrapMap.optgroup = wrapMap.option; + wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; + wrapMap.th = wrapMap.td; + + jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, + + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch (e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function( value ) { + var isFunc = jQuery.isFunction( value ); + + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( !isFunc && typeof value !== "string" ) { + value = jQuery( value ).not( this ).detach(); + } + + return this.domManip( [ value ], true, function( elem ) { + var next = this.nextSibling, + parent = this.parentNode; + + if ( parent ) { + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + }); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, table, callback ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, table ? self.html() : undefined ); + } + self.domManip( args, table, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + node, + i + ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery.ajax({ + url: node.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } + }); + + function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); + } + + // Replace/restore the type attribute of script elements for safe DOM manipulation + function disableScript( elem ) { + var attr = elem.getAttributeNode("type"); + elem.type = ( attr && attr.specified ) + "/" + elem.type; + return elem; + } + function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; + } + + // Mark scripts as having already been evaluated + function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } + } + + function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } + } + + function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } + } + + jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; + }); + + function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; + } + + // Used in buildFragment, fixes the defaultChecked property + function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } + } + + jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + // Ensure a safe fragment + safe = createSafeFragment( context ), + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + // String was a bare or + wrap[1] === "
" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== - 1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ + acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + } + }); + var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { + BODY: "block" + }, + cssShow = { + position: "absolute", + visibility: "hidden", + display: "block" + }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + + // return a css property mapped to a potentially vendor prefixed property + function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; + } + + function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + } + + function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; + } + + jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + var bool = typeof state === "boolean"; + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } + }); + + jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Exclude the following css properties to add px + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch (e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } + }); + + // NOTE: we've included the "window" in window.getComputedStyle + // because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; + } else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; + } + + function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; + } + + function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; + } + + function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; + } + + // Try to determine the default display value of an element + function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery(" From 3ae9cb4714c905026c8d0b5f6897b6ab1a4c87a2 Mon Sep 17 00:00:00 2001 From: Marc Teyssier Date: Mon, 3 Aug 2015 19:35:46 -0400 Subject: [PATCH 010/266] feat(template) : Adding templateModule, template loading etc --- libraries/templateModule.js | 203 ++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 libraries/templateModule.js diff --git a/libraries/templateModule.js b/libraries/templateModule.js new file mode 100644 index 0000000..e3cd93e --- /dev/null +++ b/libraries/templateModule.js @@ -0,0 +1,203 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +var fs = require('fs'); +var path = require('path'); +var cheerio = require('cheerio'); +var templates = []; + +exports.loadAllModules = function(allModules, callback) { + var templatePath = '/../templates/'; + var index = 0; + var that = this; + + var loadOneTemplate = function (index) { + + var name = allModules[index]; + console.log('Loading template: ' + name); + var filePath = path.join(__dirname, templatePath + name + ".html"); + fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){ + + if (!err){ + // TODO : Injex variables + templates[name] = data; + console.log(name + " loaded !"); + index++; + if (index < allModules.length) { + loadOneTemplate(index); + } else { + callback(); + } + + }else{ + console.log(err); + } + }); + + } + loadOneTemplate(0); + +} + +exports.injectTemplate = function() { + return null; +} + +exports.getTemplates = function(){ + return templates; +} + +exports.loadTemplate = function(templateName, data) +{ + + var htmlTemplate = templates[templateName] + + if(typeof data !== 'undefined') { + for(var i=0;i"; + } + newHtml += ""; + subObject.append(newHtml); // append the content + } + } + } // end if != string + } // end key extraction + } + return elementToUpdate.html(); + } + + + exports.getTemplateData = function() { + var ajax = ""; + var d = new Date(); + + var monitor = [ + { + "variables" : [ + {"index":"0", "IOName" : "led", "value": d.getDate() }, + {"index":"1", "IOName" : "knob", "value": d.getMilliseconds() }, + {"index":"2", "IOName" : "timerTarget", "value": d.getSeconds()}, + {"index":"3", "IOName" : "virtualKnob", "value":"0.55"} + ], + "links" : [ + {"id": "EV1inyjn", "origin" : "HybridLightcv8ofwf2qppj","locationO" : "knob","destination" : "timerTarget","locationD" : "timerTarget" }, + {"id": "cg17208z", "origin" : "HybridLightcv8ofwf2qppj","locationO" : "timer","destination" : "timerTarget","locationD" : "ledCircle" } + ] + }]; + + +// updateElement("Test", monitor); + + ajax = monitor; + + return ajax; + +} From f3a8e7c244a58ceb57b7e7dcc5913946342d239c Mon Sep 17 00:00:00 2001 From: Marc Teyssier Date: Mon, 3 Aug 2015 19:39:18 -0400 Subject: [PATCH 011/266] feat(template) : WebFrontend optimized with JSON object insertion --- libraries/HybridObjectsUtilities.js | 2 +- libraries/HybridObjectsWebFrontend.js | 927 ++++++++------------------ 2 files changed, 270 insertions(+), 659 deletions(-) diff --git a/libraries/HybridObjectsUtilities.js b/libraries/HybridObjectsUtilities.js index 2f8737c..57f485b 100644 --- a/libraries/HybridObjectsUtilities.js +++ b/libraries/HybridObjectsUtilities.js @@ -55,7 +55,7 @@ * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ - var debug = false; +var debug = false; var xml2js = require('xml2js'); var fs = require('fs'); diff --git a/libraries/HybridObjectsWebFrontend.js b/libraries/HybridObjectsWebFrontend.js index 26ae052..7ddfdc8 100644 --- a/libraries/HybridObjectsWebFrontend.js +++ b/libraries/HybridObjectsWebFrontend.js @@ -44,42 +44,61 @@ */ + var HybridObjectsUtilities = require(__dirname+'/HybridObjectsUtilities'); +var templateModule = require(__dirname+'/templateModule'); +var testModule = require(__dirname+'/templateModule'); var fs = require('fs'); var changeCase = require('change-case'); var debug = false; +var cheerio = require('cheerio'); +var baseTemplate = null; +var realoadInterfaceTimeout = null; + +var loadBaseTemplate = function() { + var base = templateModule.loadTemplate("base"); + + //get the objects + var objectPath = __dirname + '\\..\\objects'; + var tempFiles = fs.readdirSync(objectPath).filter(function (file) { + return fs.statSync(objectPath + '/' + file).isDirectory(); + }); + var sidebarElems = ""; + + if (typeof tempFiles[0] !== "undefined") { + while (tempFiles[0][0] === ".") { + tempFiles.splice(0, 1); + } + + for (var i = 0; i < tempFiles.length; i++) { + var notActiveClass = ""; + if (!fs.existsSync(objectPath + "/" + tempFiles[i] + "/target/target.xml")) { + notActiveClass = "not-active"; + } + + sidebarElems += '
  • '+tempFiles[i]+'
  • \n'; + } + } + + var sidebarTemplate = templateModule.loadTemplate("sidebar", [{"sidebarList" : sidebarElems }]); + var headerTemplate = templateModule.loadTemplate("header"); + $ = cheerio.load(base); + $("#header-content").append(headerTemplate); + baseTemplate = $('#sidebar-content').append(sidebarTemplate); + console.log(__dirname); + return $.html(); +} exports.printFolder = function (objectExp, dirnameO, debug, objectInterfaceFolder, objectLookup) { - var resText = "" + - "" + - "" + - "" + - "" + - ' \n' + - ' \n' + - // ""+ - "" + - '' +// background:repeating-linear-gradient(-45deg, #e4f6ff, #e4f6ff 5px, white 5px, white 10px);" >\n'+ - "
    " + - - "
    " + - "
    " + - "

    Hybrid Object - Administration

    " + - "
    " + - - - "
    " + - "
      "; + if(baseTemplate == null) baseTemplate = loadBaseTemplate(); + clearInterval(realoadInterfaceTimeout); + $ = cheerio.load(baseTemplate); var tempFiles = ""; + console.log(dirnameO); var objectPath = dirnameO + "/objects"; var tempFiles = fs.readdirSync(objectPath).filter(function (file) { return fs.statSync(objectPath + '/' + file).isDirectory(); @@ -97,520 +116,249 @@ exports.printFolder = function (objectExp, dirnameO, debug, objectInterfaceFolde } console.log("----------------------- object lookup"); - for (var keykey in objectLookup) { console.log(keykey + " = " + JSON.stringify(objectLookup[keykey])); } console.log("----------------------- end" + Math.random()); } - // remove hidden directories + + // remove hidden directories if (typeof tempFiles[0] !== "undefined") { while (tempFiles[0][0] === ".") { tempFiles.splice(0, 1); } for (var i = 0; i < tempFiles.length; i++) { - resText += "
    • " + - "
      " + - "
      " + - "" + tempFiles[i] + "" + - "
      " + - "
      "; - - if (objectExp.hasOwnProperty(HybridObjectsUtilities.readObject(objectLookup, tempFiles[i])) && fs.existsSync(objectPath + "/" + tempFiles[i] + "/target/target.xml")) { - resText += - " "; - } else { - resText += - " "; - } + var dataObject = []; + + dataObject.push({"name" : tempFiles[i] }); + dataObject.push({"objectInterfaceFolder" : objectInterfaceFolder}); - resText += " " + - " " + - - // "
      "+ - // "
      "+ - - // "
      " + - ' ' + - "
      " + - "" + - "" + - " " + - "" + - //"
      "+ - "
      " + - "
    • "; + var objectTemplate = templateModule.loadTemplate("home-object", dataObject); + // objectTemplate = templateModule.updateTemplate(tempFiles[i],objectTemplate, dataObject, false); + $("#main-content").append(objectTemplate); + $("#main-content").addClass("transparent"); } - } + } // end if unedf - resText += - "
    " + - "
    " + - "
    " + - "" + - "" + - "
    " + - "
    " + - " " + - "
    " + - "" + - "
    " + - ' ' + - ' ' + - - 'Upload Backup' + - - '' + - ' ' + - - '

    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - "
    " + - - - ' ' + - "
    " + - - // "upload default files"+ - - - ' '; - - resText += ""; - return resText; + var objectTemplate = templateModule.loadTemplate("home-object-add", dataObject); + $("#main-content").append(objectTemplate); + + return $.html(); } +exports.uploadInfoText = function (parm, objectLookup, objectExp, knownObjects, io, serverSockets) { + var objectName = HybridObjectsUtilities.readObject(objectLookup, parm); //parm + thisMacAddress; + var infoCount = 0; -exports.uploadInfoText = function (parm, objectLookup, objectExp, knownObjects, sockets) { - var objectName = HybridObjectsUtilities.readObject(objectLookup, parm); //parm + thisMacAddress; + var ArduinoINstance = 0; + if(baseTemplate == null) baseTemplate = loadBaseTemplate(); + $ = cheerio.load(baseTemplate); + clearInterval(realoadInterfaceTimeout); + + var dataMonitor = []; + try { + dataMonitor.push({"name" : parm }); + dataMonitor.push({"ip" : objectExp[objectName].ip }); + dataMonitor.push({"version" : objectExp[objectName].version }); + dataMonitor.push({"sockets" : serverSockets.sockets.toString() }); + dataMonitor.push({"socketsConnected" : serverSockets.connected.toString() }); + dataMonitor.push({"socketsNotConnected" : serverSockets.notConnected.toString() }); + } catch(e) { + dataMonitor.push({"name" : parm }); + dataMonitor.push({"ip" : "Object not loaded" }); + } - var uploadInfoTexttempArray = objectExp[objectName].objectLinks; - var uploadInfoTexttempArrayValue = objectExp[objectName].objectValues; - var infoCount = 0; + var monitorTemplate = templateModule.loadTemplate("monitor", dataMonitor); + var sockets = null; - var ArduinoINstance = 0; + io.sockets.on('connection', function (socket) { + sockets = socket; + }); - // objectExp[objectName] + function GetAndSendData() { + var d = new Date(); + + var uploadInfoTexttempArray = objectExp[objectName].objectLinks; + var uploadInfoTexttempArrayValue = objectExp[objectName].objectValues; + + if(Object.getOwnPropertyNames(uploadInfoTexttempArrayValue).length != 0) { + // add the variables + var infoCount = 0; + var jsonVariables = []; + for (subKey in uploadInfoTexttempArrayValue) { + jsonVariables.push({ + "index":infoCount, + "IOName" : uploadInfoTexttempArrayValue[subKey].name, + "value" : uploadInfoTexttempArrayValue[subKey].value + }); + infoCount++; + } + //test + jsonVariables.push({ + "test": infoCount, + "value" : "test", + "IOName" : d.getMilliseconds() + }); + + // add the links + infoCount = 0; + var jsonObjects = []; + for (subKey in knownObjects) { + jsonObjects.push({ + "connected":subKey, + "number" : knownObjects[subKey] + }); + infoCount++; + } + if (infoCount === 0) { + jsonObjects.push({ + "no":"no Object found", + }); + } - for (subKey in objectExp) { - if (subKey === objectName) { - break; - } - ArduinoINstance++; - } - var text = '\n' + - '\n' + - '\n' + - ' \n' + - ' \n' + - '\n' + - '\n' + - '
    \n' + - '
    \n' + - '
    \n' + - '

    Hybrid Object - ' + parm + ' - Info    back

    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n'; - - infoCount = 0; - for (subKey in uploadInfoTexttempArrayValue) { - text += ""; - infoCount++; - } + // add the links + infoCount = 0; + var jsonLinks = []; + for (subKey in uploadInfoTexttempArray) { + jsonLinks.push({ + "id": subKey, + "origin" : uploadInfoTexttempArray[subKey].ObjectA, + "locationO" : uploadInfoTexttempArray[subKey].locationInA.slice(0, (uploadInfoTexttempArray[subKey].ObjectA.length * -1)), + "destination" : uploadInfoTexttempArray[subKey].ObjectB, + "locationD" : uploadInfoTexttempArray[subKey].locationInB.slice(0, (uploadInfoTexttempArray[subKey].ObjectA.length * -1)) + }); + infoCount++; + } - if (infoCount === 0) { - text += ""; - } + if (infoCount === 0) { + jsonLinks.push({ + "id": "no link founds" + }); + } - text += - ' \n' + - '
    IndexI/O NameValue
    " + infoCount + "" + uploadInfoTexttempArrayValue[subKey].name + "" + uploadInfoTexttempArrayValue[subKey].value + "
    - -
    \n' + - '
    \n' + - '
    \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - /* '\n'+ - ' \n'+ - ' \n'+ - ' \n'+*/ - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - '
    General Info
    Arduino Instance'+ArduinoINstance+'
    ip' + objectExp[objectName].ip + '
    version' + objectExp[objectName].version + '
    sockets' + sockets.sockets + '
    connected' + sockets.connected + '
    notConnected' + sockets.notConnected + '
    \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n'; - - infoCount = 0; - for (subKey in knownObjects) { - text += ''; - infoCount++; - } + var jsonUpdate = [{ + "variables" : jsonVariables, + "links" : jsonLinks, + "objects" : jsonObjects + }]; - if (infoCount === 0) { - text += ""; - } + var updatedMonitor = templateModule.updateTemplate(parm, monitorTemplate,jsonUpdate, true ); - text += - ' \n' + - '
    Known Objects
    ' + subKey + '' + knownObjects[subKey] + '
    no Object found
    \n' + - '
    \n' + - '
    \n' + - - '
    \n' + - '
    \n' + - - '
    \n' + - '
    \n' + - - '
    \n' + - '
    \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n'; - - - infoCount = 0; - for (subKey in uploadInfoTexttempArray) { - text += '\n'; - infoCount++; - } + //send the JSOn to the + if(sockets) { + sockets.emit("getSomeData",updatedMonitor); + } + } else { + console.log("error loading the data"); + } - if (infoCount === 0) { - text += ""; } - text += - ' \n' + - '
    Active Link IDOriginLocation in O.Destination\n' + - ' Location in D.
    ' + subKey + '' + uploadInfoTexttempArray[subKey].ObjectA + '' + uploadInfoTexttempArray[subKey].locationInA.slice(0, (uploadInfoTexttempArray[subKey].ObjectA.length * -1)) + '' + uploadInfoTexttempArray[subKey].ObjectB + '' + uploadInfoTexttempArray[subKey].locationInB.slice(0, (uploadInfoTexttempArray[subKey].ObjectA.length * -1)) + '
    no Link found
    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - '\n' + - '\n' + - ''; + realoadInterfaceTimeout = setInterval(GetAndSendData, 100); - return text; + GetAndSendData(); + $("#main-content").append(monitorTemplate); + return $.html(); +} - // var tempFolderName = tempFiles[i] + macAddress.replace(/:/gi, ''); - // fill objectExp with objects named by the folders in objects - // objectExp[tempFolderName] = new ObjectExp(); - // objectExp[tempFolderName].folder = tempFiles[i]; -} +exports.uploadTargetText = function (parm, objectLookup, objectExp) { + if(baseTemplate == null) baseTemplate = loadBaseTemplate(); + $ = cheerio.load(baseTemplate); + clearInterval(realoadInterfaceTimeout); + var dataTarget = []; -exports.uploadTargetText = function (parm, objectLookup, objectExp) { if(debug) console.log("target content"); + var objectName = ""; - if (objectExp.hasOwnProperty(HybridObjectsUtilities.readObject(objectLookup, parm))) { + if (objectExp.hasOwnProperty(HybridObjectsUtilities.readObject(objectLookup, parm))) { objectName = HybridObjectsUtilities.readObject(objectLookup, parm); } else { objectName = parm + HybridObjectsUtilities.uuidTime(); } + console.log(__dirname); - var text = '\n' + - '\n' + - '\n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - '\n' + - '\n' + - '
    \n' + - '
    \n' + - '
    \n' + - '

    Hybrid Object - ' + parm + ' - Target    back

    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - ' 1. Upload your target source image (jpg only, < 0.5 MB)
    ' + - ' 2. Login to the Vuforia Target Manager.
    ' + - ' 3. Create a new or open a Device Databases.
    ' + - ' 4. Create a target for your Object and name it exactly:
        ' + objectName + '
    ' + - ' 5. Make sure that only this one Target is Activated.
    ' + - ' 6. Download the database and then upload it here:
    ' + - ' (You can just drag and drop the files anywhere in the striped area)' + - '
    ' + - '
    ' + - ' ' + - ' ' + - ' ' + - ' ' + - '

    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - ' ' + - '  Upload Target zip and jpg Files ' + - ' ' + - '
    ' + - '
    ' + - ' ' + - ' ' + - '
    ' + - '' + - '' + - '' + - - - ''; - - return text; + dataTarget.push({"name" : parm }); + dataTarget.push({"objectName" : objectName}); -} + var targetTemplate = templateModule.loadTemplate("target", dataTarget); + $("#main-content").append(targetTemplate); + $("#main-content").addClass("big"); + return $.html(); +} exports.uploadTargetContent = function (parm, dirname0, objectInterfaceFolder) { - if(debug) console.log("interface content"); - var text = - ''; + if(baseTemplate == null) baseTemplate = loadBaseTemplate(); + $ = cheerio.load(baseTemplate); + clearInterval(realoadInterfaceTimeout); - var objectPath = dirname0 + "/objects/"; + var dataInterface = []; + dataInterface.push({"name" : parm}); + var rowItems = ""; + //object variables + var objectPath = dirname0 + "/objects/"; var objectPath2 = dirname0 + "/objects/" + parm; - - var tempFiles = fs.readdirSync(objectPath).filter(function (file) { + var tempFiles = fs.readdirSync(objectPath).filter(function (file) { return fs.statSync(objectPath + '/' + file).isDirectory(); }); - var fileList; - // List all files in a directory in Node.js recursively in a synchronous fashion - /* var walkSync = function(dir, filelist) { - var fs = fs || require('fs'), - files = fs.readdirSync(dir); - filelist = filelist || []; - files.forEach(function(file) { - if (fs.statSync(dir + '/' + file).isDirectory()) { - filelist = walkSync(dir +'/'+ file + '/', filelist); - folderDepth++; - filelist.push("<"); - filelist.push(file); - } - else { - if(file[0] !== "." ) - filelist.push(file); - } - } - ); - if(folderDepth !==0){ - filelist.push(">");} - - return filelist; - };*/ - var walk = function (dir) { var results = []; var list = fs.readdirSync(dir); @@ -624,242 +372,105 @@ exports.uploadTargetContent = function (parm, dirname0, objectInterfaceFolder) { }; var listeliste = walk(objectPath2); - - // var folderContent = walkSync(objectPath,fileList); - var folderSpace = ""; - - - var folderOrigin = "/obj/"; - - var llist; - - folderOld = ""; - - text += - '\n' + - '\n' + - '\n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - '\n' + - '\n' + - '
    \n' + - '
    \n' + - '
    \n' + - '

    Hybrid Object - ' + parm + ' - File    back

    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - '
    \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n' + - ' \n'; - + var folderOld = ""; + var text ="0"; for (var i = 0; i < listeliste.length; i++) { var content = listeliste[i].replace(objectPath2 + '/', '').split("/"); + var dataRowItem = []; + var rowClass = "", + fileName= content[0], + iconType = "glyphicon-file", + formAction= "", + linkClass = "", + deleteFunction= "", + formId= "", + filePath= "/"; if (content[1] !== undefined) { - if (content[0] !== folderOld) { - - // console.log("---" + content[0]); - - text += ''; - + if (content[0] !== folderOld) { // if it's a folder + // console.log("---" + content[0]); + filePath = parm + '/' + content[0]; + formId = "2delete" + i + content[0] ; + formAction = objectInterfaceFolder + "content/" + parm ; + dataRowItem.push({"iconType" : "glyphicon-folder-open"}); + dataRowItem.push({"fileName" : fileName}); + dataRowItem.push({"formAction" : formAction}); + dataRowItem.push({"formId" : formId}); + dataRowItem.push({"filePath" : filePath}); + dataRowItem.push({"rowClass" : "folder not-active"}); + dataRowItem.push({"linkClass" : linkClass}); + + rowItems += templateModule.loadTemplate("interface-rowitem", dataRowItem); + dataRowItem = []; } - // console.log("-"+content[0]); - // console.log(content[0]+" / "+content[1]); - if (content[1][0] !== "." && content[1][0] !== "_") { - if (debug)console.log(content[1]); + if (content[1][0] !== "." && content[1][0] !== "_") { // if it's target and co var fileTypeF = changeCase.lowerCase(content[1].split(".")[1]); - text += '' + content[1] + ''; + fileName = content[1]; + filePath = '/obj/' + parm + '/' + content[0] + '/' + content[1]; } - folderOld = content[0]; + } else { if (content[0][0] !== "." && content[0][0] !== "_") { var fileTypeF2 = changeCase.lowerCase(content[0].split(".")[1]);//.toLowerCase(); - text += '' + content[0] + ''; - - } else { - text += 'delete'; - } } - } - } + dataRowItem.push({"rowClass" : rowClass}); + dataRowItem.push({"iconType" : iconType}); + dataRowItem.push({"fileName" : fileName}); + dataRowItem.push({"formAction" : formAction}); + dataRowItem.push({"formId" : formId}); + dataRowItem.push({"filePath" : filePath}); + dataRowItem.push({"linkClass" : linkClass}); - text += - - '' + - '' + - ' \n' + - '
    Object Folder
      ' + content[0] + ''; - - var dateiTobeRemoved = parm + '/' + content[0]; - text += "
    " + - "" + - ""; - - text += 'delete
    '; - - var dateiTobeRemoved = parm + '/' + content[0] + '/' + content[1]; - text += "
    " + - "" + - ""; - if (debug) console.log(dateiTobeRemoved); - text += 'delete
    '; - var dateiTobeRemoved = parm + '/' + content[0]; - text += "
    " + - "" + - ""; + filePath = parm + '/' + content[0]; + formId = "1delete" + i + content[0] ; + formAction = objectInterfaceFolder + "content/" + parm ; //we can recompose that + if (content[0] === "index.html" || content[0] === "object.json" || content[0] === "object.css" || content[0] === "object.js") { + linkClass = "not-active"; + } - if (content[0] === "object.json" || content[0] === "object.css" || content[0] === "object.js") { - text += 'delete
    \n' + - '
    \n' + - 'Drag and Drop your interface files anywhere on this window. Make sure that index.html is your startpoint.' + - ' You can drop all your files at the same time.

    ' + - 'object.json holds all relevant information about your object.' + - ' You need to include object.css and object.js at the beginning of your interface index.html page.
    ' + - - '

    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - ' ' + - "                " + - "Add Interface Files" + - "                " + - ' ' + - ' ' + - - ' ' + - ' ' + - '\n' + - '\n'; - - return text; + dataInterface.push({"rowItems" : rowItems}); + var interfaceTemplate = templateModule.loadTemplate("interface", dataInterface); + $("#main-content").append(interfaceTemplate); + + return $.html(); } \ No newline at end of file From 145ceef8de582d6901bf1f27ffc99bee08ec08a0 Mon Sep 17 00:00:00 2001 From: Marc Teyssier Date: Mon, 3 Aug 2015 19:48:02 -0400 Subject: [PATCH 012/266] feat(template) : update package.json --- package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 32065f2..95ec93e 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "change-case": "^2.2.0", "archiver": "^0.14.2", "decompress-zip": "^0.1.0", + "cheerio": "2.5.0", "formidable": "^1.0.16", "fstream": "^1.0.4", "express": "^4.11.0", @@ -19,9 +20,12 @@ "ip": "^0.3.2", "socket.io-client": "^1.2.0", "watch": "^0.13.0", + "readdir": "0.0.13", + "ip": "^0.3.2", "serialport": "^1.4.6", "unzip": "^0.1.11", - "xml2js": "^0.4.4" + "xml2js": "^0.4.4", + "watch": "0.13.0" }, "devDependencies": {}, "scripts": { @@ -29,5 +33,6 @@ "start": "node server.js" }, "author": "Valentin Heun (http://openhybrid.com/)", + "contributors": "Marc Teyssier (http://marcteyssier.com)", "license": "Mozilla Public" } From 79b96c0a455e4089d4a04c5d40f1d9cf6863a4ce Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Mon, 3 Aug 2015 20:20:30 -0400 Subject: [PATCH 013/266] clean up and move assets Removed assets in libraries folder Renamed public folder --- .../webInterface}/css/bootstrap-theme.min.css | 0 .../webInterface}/css/bootstrap.min.css | 0 .../webInterface}/css/style.css | 0 .../webInterface}/css/style.less | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../webInterface}/img/logo.png | Bin .../webInterface}/js/ZeroClipboard.js | 0 .../webInterface}/js/ZeroClipboard.swf | Bin .../webInterface}/js/build.js | 0 .../webInterface}/js/dropzone.js | 0 .../webInterface}/js/dropzone.js__.js | 0 .../webInterface}/js/jquery-1.11.3.min.js | 0 server.js | 56 ++++++++---------- 17 files changed, 25 insertions(+), 31 deletions(-) rename {public => libraries/webInterface}/css/bootstrap-theme.min.css (100%) rename {public => libraries/webInterface}/css/bootstrap.min.css (100%) rename {public => libraries/webInterface}/css/style.css (100%) rename {public => libraries/webInterface}/css/style.less (100%) rename {public => libraries/webInterface}/fonts/glyphicons-halflings-regular.eot (100%) rename {public => libraries/webInterface}/fonts/glyphicons-halflings-regular.svg (100%) rename {public => libraries/webInterface}/fonts/glyphicons-halflings-regular.ttf (100%) rename {public => libraries/webInterface}/fonts/glyphicons-halflings-regular.woff (100%) rename {public => libraries/webInterface}/fonts/glyphicons-halflings-regular.woff2 (100%) rename {public => libraries/webInterface}/img/logo.png (100%) rename {public => libraries/webInterface}/js/ZeroClipboard.js (100%) rename {public => libraries/webInterface}/js/ZeroClipboard.swf (100%) rename {public => libraries/webInterface}/js/build.js (100%) rename {public => libraries/webInterface}/js/dropzone.js (100%) rename {public => libraries/webInterface}/js/dropzone.js__.js (100%) rename {public => libraries/webInterface}/js/jquery-1.11.3.min.js (100%) diff --git a/public/css/bootstrap-theme.min.css b/libraries/webInterface/css/bootstrap-theme.min.css similarity index 100% rename from public/css/bootstrap-theme.min.css rename to libraries/webInterface/css/bootstrap-theme.min.css diff --git a/public/css/bootstrap.min.css b/libraries/webInterface/css/bootstrap.min.css similarity index 100% rename from public/css/bootstrap.min.css rename to libraries/webInterface/css/bootstrap.min.css diff --git a/public/css/style.css b/libraries/webInterface/css/style.css similarity index 100% rename from public/css/style.css rename to libraries/webInterface/css/style.css diff --git a/public/css/style.less b/libraries/webInterface/css/style.less similarity index 100% rename from public/css/style.less rename to libraries/webInterface/css/style.less diff --git a/public/fonts/glyphicons-halflings-regular.eot b/libraries/webInterface/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from public/fonts/glyphicons-halflings-regular.eot rename to libraries/webInterface/fonts/glyphicons-halflings-regular.eot diff --git a/public/fonts/glyphicons-halflings-regular.svg b/libraries/webInterface/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from public/fonts/glyphicons-halflings-regular.svg rename to libraries/webInterface/fonts/glyphicons-halflings-regular.svg diff --git a/public/fonts/glyphicons-halflings-regular.ttf b/libraries/webInterface/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from public/fonts/glyphicons-halflings-regular.ttf rename to libraries/webInterface/fonts/glyphicons-halflings-regular.ttf diff --git a/public/fonts/glyphicons-halflings-regular.woff b/libraries/webInterface/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from public/fonts/glyphicons-halflings-regular.woff rename to libraries/webInterface/fonts/glyphicons-halflings-regular.woff diff --git a/public/fonts/glyphicons-halflings-regular.woff2 b/libraries/webInterface/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from public/fonts/glyphicons-halflings-regular.woff2 rename to libraries/webInterface/fonts/glyphicons-halflings-regular.woff2 diff --git a/public/img/logo.png b/libraries/webInterface/img/logo.png similarity index 100% rename from public/img/logo.png rename to libraries/webInterface/img/logo.png diff --git a/public/js/ZeroClipboard.js b/libraries/webInterface/js/ZeroClipboard.js similarity index 100% rename from public/js/ZeroClipboard.js rename to libraries/webInterface/js/ZeroClipboard.js diff --git a/public/js/ZeroClipboard.swf b/libraries/webInterface/js/ZeroClipboard.swf similarity index 100% rename from public/js/ZeroClipboard.swf rename to libraries/webInterface/js/ZeroClipboard.swf diff --git a/public/js/build.js b/libraries/webInterface/js/build.js similarity index 100% rename from public/js/build.js rename to libraries/webInterface/js/build.js diff --git a/public/js/dropzone.js b/libraries/webInterface/js/dropzone.js similarity index 100% rename from public/js/dropzone.js rename to libraries/webInterface/js/dropzone.js diff --git a/public/js/dropzone.js__.js b/libraries/webInterface/js/dropzone.js__.js similarity index 100% rename from public/js/dropzone.js__.js rename to libraries/webInterface/js/dropzone.js__.js diff --git a/public/js/jquery-1.11.3.min.js b/libraries/webInterface/js/jquery-1.11.3.min.js similarity index 100% rename from public/js/jquery-1.11.3.min.js rename to libraries/webInterface/js/jquery-1.11.3.min.js diff --git a/server.js b/server.js index f1d270b..1f46c4d 100644 --- a/server.js +++ b/server.js @@ -586,17 +586,11 @@ function objectWebServer() { webServer.use(bodyParser.json()); // devine a couple of static directory routs webServer.use("/obj", express.static(__dirname + '/objects/')); - webServer.use("/public", express.static(__dirname + '/public')); - webServer.use(express.static(__dirname + '/public')); + if (globalVariables.developer === true) { - webServer.use("/target/js", express.static(__dirname + '/libraries/js/')); - webServer.use("/target", express.static(__dirname + '/libraries/js/')); - webServer.use("/content/js", express.static(__dirname + '/libraries/js/')); - webServer.use("/content/fonts", express.static(__dirname + '/libraries/fonts/')); - webServer.use("/js", express.static(__dirname + '/libraries/js/')); - webServer.use("/info/js", express.static(__dirname + '/libraries/js/')); - webServer.use("/test", express.static(__dirname + '/WebInterface/')); + webServer.use("/public", express.static(__dirname + '/webInterface/public')); + webServer.use(express.static(__dirname + '/webInterface/public')); } // use the cors cross origin REST model @@ -608,7 +602,7 @@ function objectWebServer() { // **************************************************************************************************************** webServer.post('/object/*/link/*/', function (req, res) { - // if(globalVariables.debug) console.log("post 1"); + // if(globalVariables.debug) console.log("post 1"); var updateStatus = "nothing happened"; @@ -623,7 +617,7 @@ function objectWebServer() { socketUpdater(); // write the object state to the permanent storage. - HybridObjectsUtilities.writeObjectToFile(objectExp, req.params[0], __dirname); + HybridObjectsUtilities.writeObjectToFile(objectExp, req.params[0], __dirname); res.send(updateStatus); } }); @@ -631,7 +625,7 @@ function objectWebServer() { // changing the size and possition of an item. *1 is the object *2 is the link id // **************************************************************************************************************** webServer.post('/object/*/size/*/', function (req, res) { - // if(globalVariables.debug) console.log("post 2"); + // if(globalVariables.debug) console.log("post 2"); var updateStatus = "nothing happened"; var thisObject = req.params[0]; var thisValue = req.params[1]; @@ -664,7 +658,7 @@ function objectWebServer() { // delete a link. *1 is the object *2 is the link id // **************************************************************************************************************** webServer.delete('/object/*/link/*/', function (req, res) { - if(globalVariables.debug) console.log("delete 1"); + if (globalVariables.debug) console.log("delete 1"); if (globalVariables.debug) console.log("i got a delete message"); var thisLinkId = req.params[1]; @@ -697,21 +691,21 @@ function objectWebServer() { // request a link. *1 is the object *2 is the link id // **************************************************************************************************************** webServer.get('/object/*/link/:id', function (req, res) { - // if(globalVariables.debug) console.log("get 1"); + // if(globalVariables.debug) console.log("get 1"); res.send(objectExp[req.params[0]].objectLinks[req.params.id]); }); // request all link. *1 is the object // **************************************************************************************************************** webServer.get('/object/*/link', function (req, res) { - // if(globalVariables.debug) console.log("get 2"); + // if(globalVariables.debug) console.log("get 2"); res.send(objectExp[req.params[0]].objectLinks); }); // request a zip-file with the object stored inside. *1 is the object // **************************************************************************************************************** webServer.get('/object/*/zipBackup/', function (req, res) { - // if(globalVariables.debug) console.log("get 3"); + // if(globalVariables.debug) console.log("get 3"); res.writeHead(200, { 'Content-Type': 'application/zip', 'Content-disposition': 'attachment; filename=HybridObjectBackup.zip' @@ -728,7 +722,6 @@ function objectWebServer() { // Send the programming interface static web content // **************************************************************************************************************** webServer.get('/obj/dataPointInterfaces/*/*/', function (req, res) { // watch out that you need to make a "/" behind request. - // if(globalVariables.debug) console.log("get 4"); res.sendFile(__dirname + "/dataPointInterfaces/" + req.params[0] + '/www/' + req.params[1]); }); @@ -736,7 +729,7 @@ function objectWebServer() { // general overview of all the hybrid objects - html respond // **************************************************************************************************************** webServer.get('/object/*/html', function (req, res) { - // if(globalVariables.debug) console.log("get 5"); + // if(globalVariables.debug) console.log("get 5"); var msg = "" + req.params[0] + ""; msg += "\s*$/g, - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
    ", "
    " ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "
    "; msg += "Values for " + req.params[0] + ":
    "; @@ -787,26 +780,26 @@ function objectWebServer() { // sends json object for a specific hybrid object. * is the object name // **************************************************************************************************************** webServer.get('/object/*/', function (req, res) { - // if(globalVariables.debug) console.log("get 7"); + // if(globalVariables.debug) console.log("get 7"); res.json(objectExp[req.params[0]]); }); webServer.get('/object/*/thisObject', function (req, res) { - // if(globalVariables.debug) console.log("get 8"); + // if(globalVariables.debug) console.log("get 8"); res.json(objectExp[req.params[0]]); }); // sends all json object values for a specific hybrid object. * is the object name // **************************************************************************************************************** webServer.get('/object/*/value', function (req, res) { - // if(globalVariables.debug) console.log("get 9"); + // if(globalVariables.debug) console.log("get 9"); res.json(objectExp[req.params[0]].objectValues); }); // sends a specific value for a specific hybrid object. * is the object name :id is the value name // **************************************************************************************************************** webServer.get('/object/*/value/:id', function (req, res) { - // if(globalVariables.debug) console.log("get 10"); + // if(globalVariables.debug) console.log("get 10"); res.send({value: objectExp[req.params[0]].objectValues[req.params.id].value}); }); @@ -814,7 +807,7 @@ function objectWebServer() { // **************************************************************************************************************** webServer.get('/object/*/value/full/:id', function (req, res) { - // if(globalVariables.debug) console.log("get 11"); + // if(globalVariables.debug) console.log("get 11"); res.json(objectExp[req.params[0]].objectValues[req.params.id]); }); @@ -823,41 +816,40 @@ function objectWebServer() { // **************************************************************************************************************** - if (globalVariables.developer === true) { // sends the info page for the object :id // **************************************************************************************************************** webServer.get(objectInterfaceFolder + 'info/:id', function (req, res) { - // if(globalVariables.debug) console.log("get 12"); + // if(globalVariables.debug) console.log("get 12"); res.send(HybridObjectsWebFrontend.uploadInfoText(req.params.id, objectLookup, objectExp, knownObjects, io, sockets)); }); // sends the content page for the object :id // **************************************************************************************************************** webServer.get(objectInterfaceFolder + 'content/:id', function (req, res) { - // if(globalVariables.debug) console.log("get 13"); + // if(globalVariables.debug) console.log("get 13"); res.send(HybridObjectsWebFrontend.uploadTargetContent(req.params.id, __dirname, objectInterfaceFolder)); }); // sends the target page for the object :id // **************************************************************************************************************** webServer.get(objectInterfaceFolder + 'target/:id', function (req, res) { - // if(globalVariables.debug) console.log("get 14"); + // if(globalVariables.debug) console.log("get 14"); res.send(HybridObjectsWebFrontend.uploadTargetText(req.params.id, objectLookup, objectExp, globalVariables.debug)); // res.sendFile(__dirname + '/'+ "index2.html"); }); webServer.get(objectInterfaceFolder + 'target/*/*/', function (req, res) { - // if(globalVariables.debug) console.log("get 15"); + // if(globalVariables.debug) console.log("get 15"); res.sendFile(__dirname + '/' + req.params[0] + '/' + req.params[1]); }); // sends the object folder?? //todo what is this for? // **************************************************************************************************************** webServer.get(objectInterfaceFolder, function (req, res) { - // if(globalVariables.debug) console.log("get 16"); - res.send(HybridObjectsWebFrontend.printFolder(objectExp, __dirname, globalVariables.debug, objectInterfaceFolder, objectLookup)); + // if(globalVariables.debug) console.log("get 16"); + res.send(HybridObjectsWebFrontend.printFolder(objectExp, __dirname, globalVariables.debug, objectInterfaceFolder, objectLookup)); }); // **************************************************************************************************************** @@ -865,7 +857,7 @@ function objectWebServer() { // **************************************************************************************************************** webServer.post(objectInterfaceFolder + "contentDelete/:id", function (req, res) { - // if(globalVariables.debug) console.log("post 21"); + // if(globalVariables.debug) console.log("post 21"); if (req.body.action === "delete") { var folderDel = __dirname + '/objects/' + req.body.folder; @@ -895,6 +887,8 @@ function objectWebServer() { }); + } +} /** * @desc Check for incoming MSG from other objects or the User. Make changes to the objectValues if changes occur. From af66a324bd963f388b27c410cea77c73dd89278b Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Mon, 3 Aug 2015 21:03:51 -0400 Subject: [PATCH 014/266] Adjusting the interface --- libraries/HybridObjectsWebFrontend.js | 2 +- package.json | 2 +- server.js | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libraries/HybridObjectsWebFrontend.js b/libraries/HybridObjectsWebFrontend.js index 7ddfdc8..a278baf 100644 --- a/libraries/HybridObjectsWebFrontend.js +++ b/libraries/HybridObjectsWebFrontend.js @@ -59,7 +59,7 @@ var loadBaseTemplate = function() { var base = templateModule.loadTemplate("base"); //get the objects - var objectPath = __dirname + '\\..\\objects'; + var objectPath = __dirname + '/../objects'; var tempFiles = fs.readdirSync(objectPath).filter(function (file) { return fs.statSync(objectPath + '/' + file).isDirectory(); }); diff --git a/package.json b/package.json index 95ec93e..d30a201 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "change-case": "^2.2.0", "archiver": "^0.14.2", "decompress-zip": "^0.1.0", - "cheerio": "2.5.0", + "cheerio": "0.19.0", "formidable": "^1.0.16", "fstream": "^1.0.4", "express": "^4.11.0", diff --git a/server.js b/server.js index 1f46c4d..2bd5c48 100644 --- a/server.js +++ b/server.js @@ -589,8 +589,8 @@ function objectWebServer() { if (globalVariables.developer === true) { - webServer.use("/public", express.static(__dirname + '/webInterface/public')); - webServer.use(express.static(__dirname + '/webInterface/public')); + webServer.use("/public", express.static(__dirname + '/libraries/webInterface/')); + webServer.use(express.static(__dirname + '/libraries//webInterface/')); } // use the cors cross origin REST model @@ -617,7 +617,7 @@ function objectWebServer() { socketUpdater(); // write the object state to the permanent storage. - HybridObjectsUtilities.writeObjectToFile(objectExp, req.params[0], __dirname); + HybridObjectsUtilities.writeObjectToFile(objectExp, req.params[0], __dirname); res.send(updateStatus); } }); @@ -658,7 +658,7 @@ function objectWebServer() { // delete a link. *1 is the object *2 is the link id // **************************************************************************************************************** webServer.delete('/object/*/link/*/', function (req, res) { - if (globalVariables.debug) console.log("delete 1"); + if(globalVariables.debug) console.log("delete 1"); if (globalVariables.debug) console.log("i got a delete message"); var thisLinkId = req.params[1]; @@ -848,8 +848,8 @@ function objectWebServer() { // sends the object folder?? //todo what is this for? // **************************************************************************************************************** webServer.get(objectInterfaceFolder, function (req, res) { - // if(globalVariables.debug) console.log("get 16"); - res.send(HybridObjectsWebFrontend.printFolder(objectExp, __dirname, globalVariables.debug, objectInterfaceFolder, objectLookup)); + // if(globalVariables.debug) console.log("get 16"); + res.send(HybridObjectsWebFrontend.printFolder(objectExp, __dirname, globalVariables.debug, objectInterfaceFolder, objectLookup)); }); // **************************************************************************************************************** From 0727b987fbbf7231e539fcae08a5795c4ccc1a50 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Mon, 3 Aug 2015 21:39:01 -0400 Subject: [PATCH 015/266] clean up interface integration --- libraries/css/bootstrap-theme.min.css | 7 - libraries/css/bootstrap.min.css | 7 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes libraries/js/ZeroClipboard.js | 1031 -- libraries/js/ZeroClipboard.swf | Bin 2157 -> 0 bytes libraries/js/bootstrap-theme.min.css | 7 - libraries/js/bootstrap.min.css | 7 - libraries/js/build.js | 13476 ---------------- libraries/js/dropzone.js | 1720 -- libraries/js/dropzone.js__.js | 1795 -- .../{ => webInterface}/LICENSE_BOOTSTRAP | 0 libraries/{ => webInterface}/LICENSE_DROPZONE | 0 .../{ => webInterface}/LICENSE_ZEROCLIPBOARD | 0 server.js | 419 + 18 files changed, 419 insertions(+), 18338 deletions(-) delete mode 100644 libraries/css/bootstrap-theme.min.css delete mode 100644 libraries/css/bootstrap.min.css delete mode 100644 libraries/fonts/glyphicons-halflings-regular.eot delete mode 100644 libraries/fonts/glyphicons-halflings-regular.svg delete mode 100644 libraries/fonts/glyphicons-halflings-regular.ttf delete mode 100644 libraries/fonts/glyphicons-halflings-regular.woff delete mode 100644 libraries/fonts/glyphicons-halflings-regular.woff2 delete mode 100755 libraries/js/ZeroClipboard.js delete mode 100755 libraries/js/ZeroClipboard.swf delete mode 100644 libraries/js/bootstrap-theme.min.css delete mode 100644 libraries/js/bootstrap.min.css delete mode 100644 libraries/js/build.js delete mode 100644 libraries/js/dropzone.js delete mode 100644 libraries/js/dropzone.js__.js rename libraries/{ => webInterface}/LICENSE_BOOTSTRAP (100%) rename libraries/{ => webInterface}/LICENSE_DROPZONE (100%) rename libraries/{ => webInterface}/LICENSE_ZEROCLIPBOARD (100%) diff --git a/libraries/css/bootstrap-theme.min.css b/libraries/css/bootstrap-theme.min.css deleted file mode 100644 index cff38df..0000000 --- a/libraries/css/bootstrap-theme.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.1.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file diff --git a/libraries/css/bootstrap.min.css b/libraries/css/bootstrap.min.css deleted file mode 100644 index 976dada..0000000 --- a/libraries/css/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.1.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group .list-group-item:first-child{border-top:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tfoot>tr:first-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tfoot>tr:first-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>td{border-top:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/libraries/fonts/glyphicons-halflings-regular.eot b/libraries/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a4953fff68df523aa7656497ee339d6026d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20127 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libraries/fonts/glyphicons-halflings-regular.ttf b/libraries/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc609ab6f21774de0cb7e01360095584f65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45404 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 G`u_lkUM?>H diff --git a/libraries/fonts/glyphicons-halflings-regular.woff2 b/libraries/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18028 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 diff --git a/libraries/js/ZeroClipboard.js b/libraries/js/ZeroClipboard.js deleted file mode 100755 index 136e4a9..0000000 --- a/libraries/js/ZeroClipboard.js +++ /dev/null @@ -1,1031 +0,0 @@ -/*! -* ZeroClipboard -* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface. -* Copyright (c) 2014 Jon Rohan, James M. Greene -* Licensed MIT -* http://zeroclipboard.org/ -* v1.3.5 -*/ -(function(window) { - "use strict"; - var currentElement; - var flashState = { - bridge: null, - version: "0.0.0", - disabled: null, - outdated: null, - ready: null - }; - var _clipData = {}; - var clientIdCounter = 0; - var _clientMeta = {}; - var elementIdCounter = 0; - var _elementMeta = {}; - var _amdModuleId = null; - var _cjsModuleId = null; - var _swfPath = function() { - var i, jsDir, tmpJsPath, jsPath, swfPath = "ZeroClipboard.swf"; - if (document.currentScript && (jsPath = document.currentScript.src)) {} else { - var scripts = document.getElementsByTagName("script"); - if ("readyState" in scripts[0]) { - for (i = scripts.length; i--; ) { - if (scripts[i].readyState === "interactive" && (jsPath = scripts[i].src)) { - break; - } - } - } else if (document.readyState === "loading") { - jsPath = scripts[scripts.length - 1].src; - } else { - for (i = scripts.length; i--; ) { - tmpJsPath = scripts[i].src; - if (!tmpJsPath) { - jsDir = null; - break; - } - tmpJsPath = tmpJsPath.split("#")[0].split("?")[0]; - tmpJsPath = tmpJsPath.slice(0, tmpJsPath.lastIndexOf("/") + 1); - if (jsDir == null) { - jsDir = tmpJsPath; - } else if (jsDir !== tmpJsPath) { - jsDir = null; - break; - } - } - if (jsDir !== null) { - jsPath = jsDir; - } - } - } - if (jsPath) { - jsPath = jsPath.split("#")[0].split("?")[0]; - swfPath = jsPath.slice(0, jsPath.lastIndexOf("/") + 1) + swfPath; - } - return swfPath; - }(); - var _camelizeCssPropName = function() { - var matcherRegex = /\-([a-z])/g, replacerFn = function(match, group) { - return group.toUpperCase(); - }; - return function(prop) { - return prop.replace(matcherRegex, replacerFn); - }; - }(); - var _getStyle = function(el, prop) { - var value, camelProp, tagName, possiblePointers, i, len; - if (window.getComputedStyle) { - value = window.getComputedStyle(el, null).getPropertyValue(prop); - } else { - camelProp = _camelizeCssPropName(prop); - if (el.currentStyle) { - value = el.currentStyle[camelProp]; - } else { - value = el.style[camelProp]; - } - } - if (prop === "cursor") { - if (!value || value === "auto") { - tagName = el.tagName.toLowerCase(); - if (tagName === "a") { - return "pointer"; - } - } - } - return value; - }; - var _elementMouseOver = function(event) { - if (!event) { - event = window.event; - } - var target; - if (this !== window) { - target = this; - } else if (event.target) { - target = event.target; - } else if (event.srcElement) { - target = event.srcElement; - } - ZeroClipboard.activate(target); - }; - var _addEventHandler = function(element, method, func) { - if (!element || element.nodeType !== 1) { - return; - } - if (element.addEventListener) { - element.addEventListener(method, func, false); - } else if (element.attachEvent) { - element.attachEvent("on" + method, func); - } - }; - var _removeEventHandler = function(element, method, func) { - if (!element || element.nodeType !== 1) { - return; - } - if (element.removeEventListener) { - element.removeEventListener(method, func, false); - } else if (element.detachEvent) { - element.detachEvent("on" + method, func); - } - }; - var _addClass = function(element, value) { - if (!element || element.nodeType !== 1) { - return element; - } - if (element.classList) { - if (!element.classList.contains(value)) { - element.classList.add(value); - } - return element; - } - if (value && typeof value === "string") { - var classNames = (value || "").split(/\s+/); - if (element.nodeType === 1) { - if (!element.className) { - element.className = value; - } else { - var className = " " + element.className + " ", setClass = element.className; - for (var c = 0, cl = classNames.length; c < cl; c++) { - if (className.indexOf(" " + classNames[c] + " ") < 0) { - setClass += " " + classNames[c]; - } - } - element.className = setClass.replace(/^\s+|\s+$/g, ""); - } - } - } - return element; - }; - var _removeClass = function(element, value) { - if (!element || element.nodeType !== 1) { - return element; - } - if (element.classList) { - if (element.classList.contains(value)) { - element.classList.remove(value); - } - return element; - } - if (value && typeof value === "string" || value === undefined) { - var classNames = (value || "").split(/\s+/); - if (element.nodeType === 1 && element.className) { - if (value) { - var className = (" " + element.className + " ").replace(/[\n\t]/g, " "); - for (var c = 0, cl = classNames.length; c < cl; c++) { - className = className.replace(" " + classNames[c] + " ", " "); - } - element.className = className.replace(/^\s+|\s+$/g, ""); - } else { - element.className = ""; - } - } - } - return element; - }; - var _getZoomFactor = function() { - var rect, physicalWidth, logicalWidth, zoomFactor = 1; - if (typeof document.body.getBoundingClientRect === "function") { - rect = document.body.getBoundingClientRect(); - physicalWidth = rect.right - rect.left; - logicalWidth = document.body.offsetWidth; - zoomFactor = Math.round(physicalWidth / logicalWidth * 100) / 100; - } - return zoomFactor; - }; - var _getDOMObjectPosition = function(obj, defaultZIndex) { - var info = { - left: 0, - top: 0, - width: 0, - height: 0, - zIndex: _getSafeZIndex(defaultZIndex) - 1 - }; - if (obj.getBoundingClientRect) { - var rect = obj.getBoundingClientRect(); - var pageXOffset, pageYOffset, zoomFactor; - if ("pageXOffset" in window && "pageYOffset" in window) { - pageXOffset = window.pageXOffset; - pageYOffset = window.pageYOffset; - } else { - zoomFactor = _getZoomFactor(); - pageXOffset = Math.round(document.documentElement.scrollLeft / zoomFactor); - pageYOffset = Math.round(document.documentElement.scrollTop / zoomFactor); - } - var leftBorderWidth = document.documentElement.clientLeft || 0; - var topBorderWidth = document.documentElement.clientTop || 0; - info.left = rect.left + pageXOffset - leftBorderWidth; - info.top = rect.top + pageYOffset - topBorderWidth; - info.width = "width" in rect ? rect.width : rect.right - rect.left; - info.height = "height" in rect ? rect.height : rect.bottom - rect.top; - } - return info; - }; - var _cacheBust = function(path, options) { - var cacheBust = options == null || options && options.cacheBust === true && options.useNoCache === true; - if (cacheBust) { - return (path.indexOf("?") === -1 ? "?" : "&") + "noCache=" + new Date().getTime(); - } else { - return ""; - } - }; - var _vars = function(options) { - var i, len, domain, str = [], domains = [], trustedOriginsExpanded = []; - if (options.trustedOrigins) { - if (typeof options.trustedOrigins === "string") { - domains.push(options.trustedOrigins); - } else if (typeof options.trustedOrigins === "object" && "length" in options.trustedOrigins) { - domains = domains.concat(options.trustedOrigins); - } - } - if (options.trustedDomains) { - if (typeof options.trustedDomains === "string") { - domains.push(options.trustedDomains); - } else if (typeof options.trustedDomains === "object" && "length" in options.trustedDomains) { - domains = domains.concat(options.trustedDomains); - } - } - if (domains.length) { - for (i = 0, len = domains.length; i < len; i++) { - if (domains.hasOwnProperty(i) && domains[i] && typeof domains[i] === "string") { - domain = _extractDomain(domains[i]); - if (!domain) { - continue; - } - if (domain === "*") { - trustedOriginsExpanded = [ domain ]; - break; - } - trustedOriginsExpanded.push.apply(trustedOriginsExpanded, [ domain, "//" + domain, window.location.protocol + "//" + domain ]); - } - } - } - if (trustedOriginsExpanded.length) { - str.push("trustedOrigins=" + encodeURIComponent(trustedOriginsExpanded.join(","))); - } - if (typeof options.jsModuleId === "string" && options.jsModuleId) { - str.push("jsModuleId=" + encodeURIComponent(options.jsModuleId)); - } - return str.join("&"); - }; - var _inArray = function(elem, array, fromIndex) { - if (typeof array.indexOf === "function") { - return array.indexOf(elem, fromIndex); - } - var i, len = array.length; - if (typeof fromIndex === "undefined") { - fromIndex = 0; - } else if (fromIndex < 0) { - fromIndex = len + fromIndex; - } - for (i = fromIndex; i < len; i++) { - if (array.hasOwnProperty(i) && array[i] === elem) { - return i; - } - } - return -1; - }; - var _prepClip = function(elements) { - if (typeof elements === "string") throw new TypeError("ZeroClipboard doesn't accept query strings."); - if (!elements.length) return [ elements ]; - return elements; - }; - var _dispatchCallback = function(func, context, args, async) { - if (async) { - window.setTimeout(function() { - func.apply(context, args); - }, 0); - } else { - func.apply(context, args); - } - }; - var _getSafeZIndex = function(val) { - var zIndex, tmp; - if (val) { - if (typeof val === "number" && val > 0) { - zIndex = val; - } else if (typeof val === "string" && (tmp = parseInt(val, 10)) && !isNaN(tmp) && tmp > 0) { - zIndex = tmp; - } - } - if (!zIndex) { - if (typeof _globalConfig.zIndex === "number" && _globalConfig.zIndex > 0) { - zIndex = _globalConfig.zIndex; - } else if (typeof _globalConfig.zIndex === "string" && (tmp = parseInt(_globalConfig.zIndex, 10)) && !isNaN(tmp) && tmp > 0) { - zIndex = tmp; - } - } - return zIndex || 0; - }; - var _deprecationWarning = function(deprecatedApiName, debugEnabled) { - if (deprecatedApiName && debugEnabled !== false && typeof console !== "undefined" && console && (console.warn || console.log)) { - var deprecationWarning = "`" + deprecatedApiName + "` is deprecated. See docs for more info:\n" + " https://github.com/zeroclipboard/zeroclipboard/blob/master/docs/instructions.md#deprecations"; - if (console.warn) { - console.warn(deprecationWarning); - } else { - console.log(deprecationWarning); - } - } - }; - var _extend = function() { - var i, len, arg, prop, src, copy, target = arguments[0] || {}; - for (i = 1, len = arguments.length; i < len; i++) { - if ((arg = arguments[i]) != null) { - for (prop in arg) { - if (arg.hasOwnProperty(prop)) { - src = target[prop]; - copy = arg[prop]; - if (target === copy) { - continue; - } - if (copy !== undefined) { - target[prop] = copy; - } - } - } - } - } - return target; - }; - var _extractDomain = function(originOrUrl) { - if (originOrUrl == null || originOrUrl === "") { - return null; - } - originOrUrl = originOrUrl.replace(/^\s+|\s+$/g, ""); - if (originOrUrl === "") { - return null; - } - var protocolIndex = originOrUrl.indexOf("//"); - originOrUrl = protocolIndex === -1 ? originOrUrl : originOrUrl.slice(protocolIndex + 2); - var pathIndex = originOrUrl.indexOf("/"); - originOrUrl = pathIndex === -1 ? originOrUrl : protocolIndex === -1 || pathIndex === 0 ? null : originOrUrl.slice(0, pathIndex); - if (originOrUrl && originOrUrl.slice(-4).toLowerCase() === ".swf") { - return null; - } - return originOrUrl || null; - }; - var _determineScriptAccess = function() { - var _extractAllDomains = function(origins, resultsArray) { - var i, len, tmp; - if (origins != null && resultsArray[0] !== "*") { - if (typeof origins === "string") { - origins = [ origins ]; - } - if (typeof origins === "object" && "length" in origins) { - for (i = 0, len = origins.length; i < len; i++) { - if (origins.hasOwnProperty(i)) { - tmp = _extractDomain(origins[i]); - if (tmp) { - if (tmp === "*") { - resultsArray.length = 0; - resultsArray.push("*"); - break; - } - if (_inArray(tmp, resultsArray) === -1) { - resultsArray.push(tmp); - } - } - } - } - } - } - }; - var _accessLevelLookup = { - always: "always", - samedomain: "sameDomain", - never: "never" - }; - return function(currentDomain, configOptions) { - var asaLower, allowScriptAccess = configOptions.allowScriptAccess; - if (typeof allowScriptAccess === "string" && (asaLower = allowScriptAccess.toLowerCase()) && /^always|samedomain|never$/.test(asaLower)) { - return _accessLevelLookup[asaLower]; - } - var swfDomain = _extractDomain(configOptions.moviePath); - if (swfDomain === null) { - swfDomain = currentDomain; - } - var trustedDomains = []; - _extractAllDomains(configOptions.trustedOrigins, trustedDomains); - _extractAllDomains(configOptions.trustedDomains, trustedDomains); - var len = trustedDomains.length; - if (len > 0) { - if (len === 1 && trustedDomains[0] === "*") { - return "always"; - } - if (_inArray(currentDomain, trustedDomains) !== -1) { - if (len === 1 && currentDomain === swfDomain) { - return "sameDomain"; - } - return "always"; - } - } - return "never"; - }; - }(); - var _objectKeys = function(obj) { - if (obj == null) { - return []; - } - if (Object.keys) { - return Object.keys(obj); - } - var keys = []; - for (var prop in obj) { - if (obj.hasOwnProperty(prop)) { - keys.push(prop); - } - } - return keys; - }; - var _deleteOwnProperties = function(obj) { - if (obj) { - for (var prop in obj) { - if (obj.hasOwnProperty(prop)) { - delete obj[prop]; - } - } - } - return obj; - }; - var _safeActiveElement = function() { - try { - return document.activeElement; - } catch (err) {} - return null; - }; - var _detectFlashSupport = function() { - var hasFlash = false; - if (typeof flashState.disabled === "boolean") { - hasFlash = flashState.disabled === false; - } else { - if (typeof ActiveXObject === "function") { - try { - if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) { - hasFlash = true; - } - } catch (error) {} - } - if (!hasFlash && navigator.mimeTypes["application/x-shockwave-flash"]) { - hasFlash = true; - } - } - return hasFlash; - }; - function _parseFlashVersion(flashVersion) { - return flashVersion.replace(/,/g, ".").replace(/[^0-9\.]/g, ""); - } - function _isFlashVersionSupported(flashVersion) { - return parseFloat(_parseFlashVersion(flashVersion)) >= 10; - } - var ZeroClipboard = function(elements, options) { - if (!(this instanceof ZeroClipboard)) { - return new ZeroClipboard(elements, options); - } - this.id = "" + clientIdCounter++; - _clientMeta[this.id] = { - instance: this, - elements: [], - handlers: {} - }; - if (elements) { - this.clip(elements); - } - if (typeof options !== "undefined") { - _deprecationWarning("new ZeroClipboard(elements, options)", _globalConfig.debug); - ZeroClipboard.config(options); - } - this.options = ZeroClipboard.config(); - if (typeof flashState.disabled !== "boolean") { - flashState.disabled = !_detectFlashSupport(); - } - if (flashState.disabled === false && flashState.outdated !== true) { - if (flashState.bridge === null) { - flashState.outdated = false; - flashState.ready = false; - _bridge(); - } - } - }; - ZeroClipboard.prototype.setText = function(newText) { - if (newText && newText !== "") { - _clipData["text/plain"] = newText; - if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setText === "function") { - flashState.bridge.setText(newText); - } else { - flashState.ready = false; - } - } - return this; - }; - ZeroClipboard.prototype.setSize = function(width, height) { - if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setSize === "function") { - flashState.bridge.setSize(width, height); - } else { - flashState.ready = false; - } - return this; - }; - var _setHandCursor = function(enabled) { - if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setHandCursor === "function") { - flashState.bridge.setHandCursor(enabled); - } else { - flashState.ready = false; - } - }; - ZeroClipboard.prototype.destroy = function() { - this.unclip(); - this.off(); - delete _clientMeta[this.id]; - }; - var _getAllClients = function() { - var i, len, client, clients = [], clientIds = _objectKeys(_clientMeta); - for (i = 0, len = clientIds.length; i < len; i++) { - client = _clientMeta[clientIds[i]].instance; - if (client && client instanceof ZeroClipboard) { - clients.push(client); - } - } - return clients; - }; - ZeroClipboard.version = "1.3.5"; - var _globalConfig = { - swfPath: _swfPath, - trustedDomains: window.location.host ? [ window.location.host ] : [], - cacheBust: true, - forceHandCursor: false, - zIndex: 999999999, - debug: true, - title: null, - autoActivate: true - }; - ZeroClipboard.config = function(options) { - if (typeof options === "object" && options !== null) { - _extend(_globalConfig, options); - } - if (typeof options === "string" && options) { - if (_globalConfig.hasOwnProperty(options)) { - return _globalConfig[options]; - } - return; - } - var copy = {}; - for (var prop in _globalConfig) { - if (_globalConfig.hasOwnProperty(prop)) { - if (typeof _globalConfig[prop] === "object" && _globalConfig[prop] !== null) { - if ("length" in _globalConfig[prop]) { - copy[prop] = _globalConfig[prop].slice(0); - } else { - copy[prop] = _extend({}, _globalConfig[prop]); - } - } else { - copy[prop] = _globalConfig[prop]; - } - } - } - return copy; - }; - ZeroClipboard.destroy = function() { - ZeroClipboard.deactivate(); - for (var clientId in _clientMeta) { - if (_clientMeta.hasOwnProperty(clientId) && _clientMeta[clientId]) { - var client = _clientMeta[clientId].instance; - if (client && typeof client.destroy === "function") { - client.destroy(); - } - } - } - var htmlBridge = _getHtmlBridge(flashState.bridge); - if (htmlBridge && htmlBridge.parentNode) { - htmlBridge.parentNode.removeChild(htmlBridge); - flashState.ready = null; - flashState.bridge = null; - } - }; - ZeroClipboard.activate = function(element) { - if (currentElement) { - _removeClass(currentElement, _globalConfig.hoverClass); - _removeClass(currentElement, _globalConfig.activeClass); - } - currentElement = element; - _addClass(element, _globalConfig.hoverClass); - _reposition(); - var newTitle = _globalConfig.title || element.getAttribute("title"); - if (newTitle) { - var htmlBridge = _getHtmlBridge(flashState.bridge); - if (htmlBridge) { - htmlBridge.setAttribute("title", newTitle); - } - } - var useHandCursor = _globalConfig.forceHandCursor === true || _getStyle(element, "cursor") === "pointer"; - _setHandCursor(useHandCursor); - }; - ZeroClipboard.deactivate = function() { - var htmlBridge = _getHtmlBridge(flashState.bridge); - if (htmlBridge) { - htmlBridge.style.left = "0px"; - htmlBridge.style.top = "-9999px"; - htmlBridge.removeAttribute("title"); - } - if (currentElement) { - _removeClass(currentElement, _globalConfig.hoverClass); - _removeClass(currentElement, _globalConfig.activeClass); - currentElement = null; - } - }; - var _bridge = function() { - var flashBridge, len; - var container = document.getElementById("global-zeroclipboard-html-bridge"); - if (!container) { - var opts = ZeroClipboard.config(); - opts.jsModuleId = typeof _amdModuleId === "string" && _amdModuleId || typeof _cjsModuleId === "string" && _cjsModuleId || null; - var allowScriptAccess = _determineScriptAccess(window.location.host, _globalConfig); - var flashvars = _vars(opts); - var swfUrl = _globalConfig.moviePath + _cacheBust(_globalConfig.moviePath, _globalConfig); - var html = ' '; - container = document.createElement("div"); - container.id = "global-zeroclipboard-html-bridge"; - container.setAttribute("class", "global-zeroclipboard-container"); - container.style.position = "absolute"; - container.style.left = "0px"; - container.style.top = "-9999px"; - container.style.width = "15px"; - container.style.height = "15px"; - container.style.zIndex = "" + _getSafeZIndex(_globalConfig.zIndex); - document.body.appendChild(container); - container.innerHTML = html; - } - flashBridge = document["global-zeroclipboard-flash-bridge"]; - if (flashBridge && (len = flashBridge.length)) { - flashBridge = flashBridge[len - 1]; - } - flashState.bridge = flashBridge || container.children[0].lastElementChild; - }; - var _getHtmlBridge = function(flashBridge) { - var isFlashElement = /^OBJECT|EMBED$/; - var htmlBridge = flashBridge && flashBridge.parentNode; - while (htmlBridge && isFlashElement.test(htmlBridge.nodeName) && htmlBridge.parentNode) { - htmlBridge = htmlBridge.parentNode; - } - return htmlBridge || null; - }; - var _reposition = function() { - if (currentElement) { - var pos = _getDOMObjectPosition(currentElement, _globalConfig.zIndex); - var htmlBridge = _getHtmlBridge(flashState.bridge); - if (htmlBridge) { - htmlBridge.style.top = pos.top + "px"; - htmlBridge.style.left = pos.left + "px"; - htmlBridge.style.width = pos.width + "px"; - htmlBridge.style.height = pos.height + "px"; - htmlBridge.style.zIndex = pos.zIndex + 1; - } - if (flashState.ready === true && flashState.bridge && typeof flashState.bridge.setSize === "function") { - flashState.bridge.setSize(pos.width, pos.height); - } else { - flashState.ready = false; - } - } - return this; - }; - ZeroClipboard.prototype.on = function(eventName, func) { - var i, len, events, added = {}, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; - if (typeof eventName === "string" && eventName) { - events = eventName.toLowerCase().split(/\s+/); - } else if (typeof eventName === "object" && eventName && typeof func === "undefined") { - for (i in eventName) { - if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") { - this.on(i, eventName[i]); - } - } - } - if (events && events.length) { - for (i = 0, len = events.length; i < len; i++) { - eventName = events[i].replace(/^on/, ""); - added[eventName] = true; - if (!handlers[eventName]) { - handlers[eventName] = []; - } - handlers[eventName].push(func); - } - if (added.noflash && flashState.disabled) { - _receiveEvent.call(this, "noflash", {}); - } - if (added.wrongflash && flashState.outdated) { - _receiveEvent.call(this, "wrongflash", { - flashVersion: flashState.version - }); - } - if (added.load && flashState.ready) { - _receiveEvent.call(this, "load", { - flashVersion: flashState.version - }); - } - } - return this; - }; - ZeroClipboard.prototype.off = function(eventName, func) { - var i, len, foundIndex, events, perEventHandlers, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; - if (arguments.length === 0) { - events = _objectKeys(handlers); - } else if (typeof eventName === "string" && eventName) { - events = eventName.split(/\s+/); - } else if (typeof eventName === "object" && eventName && typeof func === "undefined") { - for (i in eventName) { - if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") { - this.off(i, eventName[i]); - } - } - } - if (events && events.length) { - for (i = 0, len = events.length; i < len; i++) { - eventName = events[i].toLowerCase().replace(/^on/, ""); - perEventHandlers = handlers[eventName]; - if (perEventHandlers && perEventHandlers.length) { - if (func) { - foundIndex = _inArray(func, perEventHandlers); - while (foundIndex !== -1) { - perEventHandlers.splice(foundIndex, 1); - foundIndex = _inArray(func, perEventHandlers, foundIndex); - } - } else { - handlers[eventName].length = 0; - } - } - } - } - return this; - }; - ZeroClipboard.prototype.handlers = function(eventName) { - var prop, copy = null, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; - if (handlers) { - if (typeof eventName === "string" && eventName) { - return handlers[eventName] ? handlers[eventName].slice(0) : null; - } - copy = {}; - for (prop in handlers) { - if (handlers.hasOwnProperty(prop) && handlers[prop]) { - copy[prop] = handlers[prop].slice(0); - } - } - } - return copy; - }; - var _dispatchClientCallbacks = function(eventName, context, args, async) { - var handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers[eventName]; - if (handlers && handlers.length) { - var i, len, func, originalContext = context || this; - for (i = 0, len = handlers.length; i < len; i++) { - func = handlers[i]; - context = originalContext; - if (typeof func === "string" && typeof window[func] === "function") { - func = window[func]; - } - if (typeof func === "object" && func && typeof func.handleEvent === "function") { - context = func; - func = func.handleEvent; - } - if (typeof func === "function") { - _dispatchCallback(func, context, args, async); - } - } - } - return this; - }; - ZeroClipboard.prototype.clip = function(elements) { - elements = _prepClip(elements); - for (var i = 0; i < elements.length; i++) { - if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) { - if (!elements[i].zcClippingId) { - elements[i].zcClippingId = "zcClippingId_" + elementIdCounter++; - _elementMeta[elements[i].zcClippingId] = [ this.id ]; - if (_globalConfig.autoActivate === true) { - _addEventHandler(elements[i], "mouseover", _elementMouseOver); - } - } else if (_inArray(this.id, _elementMeta[elements[i].zcClippingId]) === -1) { - _elementMeta[elements[i].zcClippingId].push(this.id); - } - var clippedElements = _clientMeta[this.id].elements; - if (_inArray(elements[i], clippedElements) === -1) { - clippedElements.push(elements[i]); - } - } - } - return this; - }; - ZeroClipboard.prototype.unclip = function(elements) { - var meta = _clientMeta[this.id]; - if (meta) { - var clippedElements = meta.elements; - var arrayIndex; - if (typeof elements === "undefined") { - elements = clippedElements.slice(0); - } else { - elements = _prepClip(elements); - } - for (var i = elements.length; i--; ) { - if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) { - arrayIndex = 0; - while ((arrayIndex = _inArray(elements[i], clippedElements, arrayIndex)) !== -1) { - clippedElements.splice(arrayIndex, 1); - } - var clientIds = _elementMeta[elements[i].zcClippingId]; - if (clientIds) { - arrayIndex = 0; - while ((arrayIndex = _inArray(this.id, clientIds, arrayIndex)) !== -1) { - clientIds.splice(arrayIndex, 1); - } - if (clientIds.length === 0) { - if (_globalConfig.autoActivate === true) { - _removeEventHandler(elements[i], "mouseover", _elementMouseOver); - } - delete elements[i].zcClippingId; - } - } - } - } - } - return this; - }; - ZeroClipboard.prototype.elements = function() { - var meta = _clientMeta[this.id]; - return meta && meta.elements ? meta.elements.slice(0) : []; - }; - var _getAllClientsClippedToElement = function(element) { - var elementMetaId, clientIds, i, len, client, clients = []; - if (element && element.nodeType === 1 && (elementMetaId = element.zcClippingId) && _elementMeta.hasOwnProperty(elementMetaId)) { - clientIds = _elementMeta[elementMetaId]; - if (clientIds && clientIds.length) { - for (i = 0, len = clientIds.length; i < len; i++) { - client = _clientMeta[clientIds[i]].instance; - if (client && client instanceof ZeroClipboard) { - clients.push(client); - } - } - } - } - return clients; - }; - _globalConfig.hoverClass = "zeroclipboard-is-hover"; - _globalConfig.activeClass = "zeroclipboard-is-active"; - _globalConfig.trustedOrigins = null; - _globalConfig.allowScriptAccess = null; - _globalConfig.useNoCache = true; - _globalConfig.moviePath = "ZeroClipboard.swf"; - ZeroClipboard.detectFlashSupport = function() { - _deprecationWarning("ZeroClipboard.detectFlashSupport", _globalConfig.debug); - return _detectFlashSupport(); - }; - ZeroClipboard.dispatch = function(eventName, args) { - if (typeof eventName === "string" && eventName) { - var cleanEventName = eventName.toLowerCase().replace(/^on/, ""); - if (cleanEventName) { - var clients = currentElement && _globalConfig.autoActivate === true ? _getAllClientsClippedToElement(currentElement) : _getAllClients(); - for (var i = 0, len = clients.length; i < len; i++) { - _receiveEvent.call(clients[i], cleanEventName, args); - } - } - } - }; - ZeroClipboard.prototype.setHandCursor = function(enabled) { - _deprecationWarning("ZeroClipboard.prototype.setHandCursor", _globalConfig.debug); - enabled = typeof enabled === "boolean" ? enabled : !!enabled; - _setHandCursor(enabled); - _globalConfig.forceHandCursor = enabled; - return this; - }; - ZeroClipboard.prototype.reposition = function() { - _deprecationWarning("ZeroClipboard.prototype.reposition", _globalConfig.debug); - return _reposition(); - }; - ZeroClipboard.prototype.receiveEvent = function(eventName, args) { - _deprecationWarning("ZeroClipboard.prototype.receiveEvent", _globalConfig.debug); - if (typeof eventName === "string" && eventName) { - var cleanEventName = eventName.toLowerCase().replace(/^on/, ""); - if (cleanEventName) { - _receiveEvent.call(this, cleanEventName, args); - } - } - }; - ZeroClipboard.prototype.setCurrent = function(element) { - _deprecationWarning("ZeroClipboard.prototype.setCurrent", _globalConfig.debug); - ZeroClipboard.activate(element); - return this; - }; - ZeroClipboard.prototype.resetBridge = function() { - _deprecationWarning("ZeroClipboard.prototype.resetBridge", _globalConfig.debug); - ZeroClipboard.deactivate(); - return this; - }; - ZeroClipboard.prototype.setTitle = function(newTitle) { - _deprecationWarning("ZeroClipboard.prototype.setTitle", _globalConfig.debug); - newTitle = newTitle || _globalConfig.title || currentElement && currentElement.getAttribute("title"); - if (newTitle) { - var htmlBridge = _getHtmlBridge(flashState.bridge); - if (htmlBridge) { - htmlBridge.setAttribute("title", newTitle); - } - } - return this; - }; - ZeroClipboard.setDefaults = function(options) { - _deprecationWarning("ZeroClipboard.setDefaults", _globalConfig.debug); - ZeroClipboard.config(options); - }; - ZeroClipboard.prototype.addEventListener = function(eventName, func) { - _deprecationWarning("ZeroClipboard.prototype.addEventListener", _globalConfig.debug); - return this.on(eventName, func); - }; - ZeroClipboard.prototype.removeEventListener = function(eventName, func) { - _deprecationWarning("ZeroClipboard.prototype.removeEventListener", _globalConfig.debug); - return this.off(eventName, func); - }; - ZeroClipboard.prototype.ready = function() { - _deprecationWarning("ZeroClipboard.prototype.ready", _globalConfig.debug); - return flashState.ready === true; - }; - var _receiveEvent = function(eventName, args) { - eventName = eventName.toLowerCase().replace(/^on/, ""); - var cleanVersion = args && args.flashVersion && _parseFlashVersion(args.flashVersion) || null; - var element = currentElement; - var performCallbackAsync = true; - switch (eventName) { - case "load": - if (cleanVersion) { - if (!_isFlashVersionSupported(cleanVersion)) { - _receiveEvent.call(this, "onWrongFlash", { - flashVersion: cleanVersion - }); - return; - } - flashState.outdated = false; - flashState.ready = true; - flashState.version = cleanVersion; - } - break; - - case "wrongflash": - if (cleanVersion && !_isFlashVersionSupported(cleanVersion)) { - flashState.outdated = true; - flashState.ready = false; - flashState.version = cleanVersion; - } - break; - - case "mouseover": - _addClass(element, _globalConfig.hoverClass); - break; - - case "mouseout": - if (_globalConfig.autoActivate === true) { - ZeroClipboard.deactivate(); - } - break; - - case "mousedown": - _addClass(element, _globalConfig.activeClass); - break; - - case "mouseup": - _removeClass(element, _globalConfig.activeClass); - break; - - case "datarequested": - if (element) { - var targetId = element.getAttribute("data-clipboard-target"), targetEl = !targetId ? null : document.getElementById(targetId); - if (targetEl) { - var textContent = targetEl.value || targetEl.textContent || targetEl.innerText; - if (textContent) { - this.setText(textContent); - } - } else { - var defaultText = element.getAttribute("data-clipboard-text"); - if (defaultText) { - this.setText(defaultText); - } - } - } - performCallbackAsync = false; - break; - - case "complete": - _deleteOwnProperties(_clipData); - if (element && element !== _safeActiveElement() && element.focus) { - element.focus(); - } - break; - } - var context = element; - var eventArgs = [ this, args ]; - return _dispatchClientCallbacks.call(this, eventName, context, eventArgs, performCallbackAsync); - }; - if (typeof define === "function" && define.amd) { - define([ "require", "exports", "module" ], function(require, exports, module) { - _amdModuleId = module && module.id || null; - return ZeroClipboard; - }); - } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports && typeof window.require === "function") { - _cjsModuleId = module.id || null; - module.exports = ZeroClipboard; - } else { - window.ZeroClipboard = ZeroClipboard; - } -})(function() { - return this; -}()); \ No newline at end of file diff --git a/libraries/js/ZeroClipboard.swf b/libraries/js/ZeroClipboard.swf deleted file mode 100755 index 55ccf9608ed3cf01db575de40c0be1bfc5440a80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2157 zcmV-z2$J_hS5pr43;+Ol+I?2tQ`^`TzgL!YC1D%efJ4Zavmqf6femD{3n3(6;{X9n zFeKYFAHJ5aY$ZZ+C7F+QI?e2Kr+-1;voC$x_N9IAAJCbOOlEiA`_Sq1t^YvNBbfl+ zZmU7Z=lpcO&$$u@i2oZx@!ugdh*2SV9wGFrzQ16E=A4>7yHzM=4t7n;odxOMNW=4* zv)Sza{{F=N^n~ryvy(G3Guhl!c4}%IG{)US%cBS5mV0evK6FrEuI3m`&#{_lP_CUOI)A228dy(g_HMT6 z*tM1hIqBdkG(Kw*xM;Sjrr|c2GvBh_SoVG=#3>r+Xbz*E-L3Hv3!a!p)0c zKSSZQ_^&_wGY=F0tMZIFcHT6aRhv3B^ymIRDG0#>q&sw%O`-&vK-}AZ|4~F7I=)OK zmOaO?>SC$-nrU7%oWum%3&y9c+bx$Z1w6lJ8#S_M+a{xyxY63JGAGs*F4nQE8E(_0 zhhn+u7#B$F-dREgL^)QV^GVS|hnp+FD;&dsSE|Z!T=-mzTEEU1?5yRJ^!a zezjgI?5r)ldb+i+xw%w0V-t6&Wq9DX(;R7+d9*-1sx+zNvd1mv97gNRD+VP$0qDj} zy=7_PDY+T;PR&rK?y8y7dPg(AP;O;1d(_EvC6u|BaoEpVhQn^2QNF8;WHLXV_}KuU z$Nh3t++y{mgC_U~%CmYI={@VNXY~@r)XW_Ut%pscRn2@IAHVi$;7vC4a*6;)uHjVMGZNri~ z4lL$Hced7Gdz1YVAD&uKw-YbD318|JP)5WFc5mCo@A;>6$(oUXl8cWAR=Xs%pk;H+qvrV?iQ)Tnulo{(K;M!n%l zHHYqRLEE5!W`jz!R?9aGvnJ%%R`QP$Ach@WGaxk>jIv(ZDKEV$Jz3h4kJ+8=W3W(q zx*>Jgoz3|16b_&~i<-%$V4(rtuM1qQ{RC~h*O%cnT<$@D?veXhRXw!ri@m_GW z;Z;bt;4rYDPr`msi`WRu;Gy4U?+=C@>)MOte{E6v$Cs}!jnjNu8I%Pi-AIoL=p0Uu z56MFlL)oF+(B#lmdM5pxiwjtkWKQ9GqOo{yVw+%&;0WOaf<=M}!4knTiS!U5N`x2@ z;zZ~rLV^fMBBY4WM{qyE0|cjuaE=IrL>MB%1tMG|!X+YHCiof=M+g}s_!hyctYU(v z+_wE(<|~a?Z&ohpmv``6?)!Esh0y!9euZX$UZtM^y+((JktQ5{ zsfmd`gygDN6)uC>`zn7_<@M|I`jjXn|Nh~FBuc`2@EzeIk~|K+-*VrzQyGNX>ZipU zco-K)FmN~VSKqc%(32OV?bT6;`rQ#2@ex^)e~rV81h~Z=1o_lVd{jISI%682(h!0~ zNc&4oN~{HmNL2!f2<@s+9K)#@gg_kx{dxuerg#p6lPVuR+Z#*4j7Q;d0O;4@VO9Jl zNubuMP!*v9i6nmy6-W{ZDi8!-R=(zf5^jC(ub_&m&eL(A59q{;tgq+v$zm42&3+pM z)Ti3|ba99a3ej&vC<#IV_gi)On^ZqSz^W_7PcgWv+|fVFyf1yu9qBVCiZh`iY>p3n zqsMZ`xlQi^5aS}U(t8Z7 z13jV}0LKM@M+3Mg1)E=40jGMpeFSo;#3!O3p@H^MsT2W&UJhgFnxA8+!sRNPxys{Q jWh+-H=PDBXeSt28SA&3RsxNr4bpJQ|0FeIxQ+=8*M*tao diff --git a/libraries/js/bootstrap-theme.min.css b/libraries/js/bootstrap-theme.min.css deleted file mode 100644 index cff38df..0000000 --- a/libraries/js/bootstrap-theme.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.1.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file diff --git a/libraries/js/bootstrap.min.css b/libraries/js/bootstrap.min.css deleted file mode 100644 index 976dada..0000000 --- a/libraries/js/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.1.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group .list-group-item:first-child{border-top:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tfoot>tr:first-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tfoot>tr:first-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:first-child>td{border-top:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/libraries/js/build.js b/libraries/js/build.js deleted file mode 100644 index e973ae2..0000000 --- a/libraries/js/build.js +++ /dev/null @@ -1,13476 +0,0 @@ - -/** - * Require the given path. - * - * @param {String} path - * @return {Object} exports - * @api public - */ - -function require(path, parent, orig) { - var resolved = require.resolve(path); - - // lookup failed - if (null == resolved) { - orig = orig || path; - parent = parent || 'root'; - var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); - err.path = orig; - err.parent = parent; - err.require = true; - throw err; - } - - var module = require.modules[resolved]; - - // perform real require() - // by invoking the module's - // registered function - if (!module._resolving && !module.exports) { - var mod = {}; - mod.exports = {}; - mod.client = mod.component = true; - module._resolving = true; - module.call(this, mod.exports, require.relative(resolved), mod); - delete module._resolving; - module.exports = mod.exports; - } - - return module.exports; -} - -/** - * Registered modules. - */ - -require.modules = {}; - -/** - * Registered aliases. - */ - -require.aliases = {}; - -/** - * Resolve `path`. - * - * Lookup: - * - * - PATH/index.js - * - PATH.js - * - PATH - * - * @param {String} path - * @return {String} path or null - * @api private - */ - -require.resolve = function(path) { - if (path.charAt(0) === '/') - path = path.slice(1); - - var paths = [ - path, - path + '.js', - path + '.json', - path + '/index.js', - path + '/index.json' - ]; - - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - if (require.modules.hasOwnProperty(path)) - return path; - if (require.aliases.hasOwnProperty(path)) - return require.aliases[path]; - } -}; - -/** - * Normalize `path` relative to the current path. - * - * @param {String} curr - * @param {String} path - * @return {String} - * @api private - */ - -require.normalize = function(curr, path) { - var segs = []; - - if ('.' != path.charAt(0)) - return path; - - curr = curr.split('/'); - path = path.split('/'); - - for (var i = 0; i < path.length; ++i) { - if ('..' == path[i]) { - curr.pop(); - } else if ('.' != path[i] && '' != path[i]) { - segs.push(path[i]); - } - } - - return curr.concat(segs).join('/'); -}; - -/** - * Register module at `path` with callback `definition`. - * - * @param {String} path - * @param {Function} definition - * @api private - */ - -require.register = function(path, definition) { - require.modules[path] = definition; -}; - -/** - * Alias a module definition. - * - * @param {String} from - * @param {String} to - * @api private - */ - -require.alias = function(from, to) { - if (!require.modules.hasOwnProperty(from)) { - throw new Error('Failed to alias "' + from + '", it does not exist'); - } - require.aliases[to] = from; -}; - -/** - * Return a require function relative to the `parent` path. - * - * @param {String} parent - * @return {Function} - * @api private - */ - -require.relative = function(parent) { - var p = require.normalize(parent, '..'); - - /** - * lastIndexOf helper. - */ - - function lastIndexOf(arr, obj) { - var i = arr.length; - while (i--) { - if (arr[i] === obj) - return i; - } - return - 1; - } - - /** - * The relative require() itself. - */ - - function localRequire(path) { - var resolved = localRequire.resolve(path); - return require(resolved, parent, path); - } - - /** - * Resolve relative to the parent. - */ - - localRequire.resolve = function(path) { - var c = path.charAt(0); - if ('/' == c) - return path.slice(1); - if ('.' == c) - return require.normalize(p, path); - - // resolve deps by returning - // the dep in the nearest "deps" - // directory - var segs = parent.split('/'); - var i = lastIndexOf(segs, 'deps') + 1; - if (!i) - i = 0; - path = segs.slice(0, i + 1).join('/') + '/deps/' + path; - return path; - }; - - /** - * Check if module is defined at `path`. - */ - - localRequire.exists = function(path) { - return require.modules.hasOwnProperty(localRequire.resolve(path)); - }; - - return localRequire; -}; -require.register("component-emitter/index.js", function(exports, require, module) { - - /** - * Expose `Emitter`. - */ - - module.exports = Emitter; - - /** - * Initialize a new `Emitter`. - * - * @api public - */ - - function Emitter(obj) { - if (obj) - return mixin(obj); - }; - - /** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - - function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; - } - - /** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - - Emitter.prototype.on = - Emitter.prototype.addEventListener = function(event, fn) { - this._callbacks = this._callbacks || {}; - (this._callbacks[event] = this._callbacks[event] || []) - .push(fn); - return this; - }; - - /** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - - Emitter.prototype.once = function(event, fn) { - var self = this; - this._callbacks = this._callbacks || {}; - - function on() { - self.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; - }; - - /** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - - Emitter.prototype.off = - Emitter.prototype.removeListener = - Emitter.prototype.removeAllListeners = - Emitter.prototype.removeEventListener = function(event, fn) { - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks[event]; - if (!callbacks) - return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks[event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - return this; - }; - - /** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - - Emitter.prototype.emit = function(event) { - this._callbacks = this._callbacks || {}; - var args = [].slice.call(arguments, 1) - , callbacks = this._callbacks[event]; - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; - }; - - /** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - - Emitter.prototype.listeners = function(event) { - this._callbacks = this._callbacks || {}; - return this._callbacks[event] || []; - }; - - /** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - - Emitter.prototype.hasListeners = function(event) { - return !! this.listeners(event).length; - }; - -}); -require.register("enyo-dropzone/index.js", function(exports, require, module) { - - - /** - * Exposing dropzone - */ - module.exports = require("./lib/dropzone.js"); - -}); -require.register("enyo-dropzone/lib/dropzone.js", function(exports, require, module) { - /* - # - # More info at [www.dropzonejs.com](http://www.dropzonejs.com) - # - # Copyright (c) 2012, Matias Meno - # - # Permission is hereby granted, free of charge, to any person obtaining a copy - # of this software and associated documentation files (the "Software"), to deal - # in the Software without restriction, including without limitation the rights - # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - # copies of the Software, and to permit persons to whom the Software is - # furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included in - # all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - # THE SOFTWARE. - # - */ - - - (function() { - var Dropzone, Em, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { - for (var key in parent) { - if (__hasProp.call(parent, key)) - child[key] = parent[key]; - } - function ctor() { - this.constructor = child; - } - ctor.prototype = parent.prototype; - child.prototype = new ctor(); - child.__super__ = parent.prototype; - return child; - }, - __slice = [].slice; - - Em = typeof Emitter !== "undefined" && Emitter !== null ? Emitter : require("emitter"); - - noop = function() {}; - - Dropzone = (function(_super) { - var extend; - - __extends(Dropzone, _super); - - /* - This is a list of all available events you can register on a dropzone object. - - You can register an event handler like this: - - dropzone.on("dragEnter", function() { }); - */ - - - Dropzone.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached"]; - - Dropzone.prototype.defaultOptions = { - url: null, - method: "post", - withCredentials: false, - parallelUploads: 2, - uploadMultiple: false, - maxFilesize: 256, - paramName: "file", - createImageThumbnails: true, - maxThumbnailFilesize: 10, - thumbnailWidth: 100, - thumbnailHeight: 100, - maxFiles: null, - params: {}, - clickable: true, - ignoreHiddenFiles: true, - acceptedFiles: null, - acceptedMimeTypes: null, - autoProcessQueue: true, - autoQueue: true, - addRemoveLinks: false, - previewsContainer: null, - dictDefaultMessage: "Drop files here to upload", - dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", - dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", - dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", - dictInvalidFileType: "You can't upload files of this type.", - dictResponseError: "Server responded with {{statusCode}} code.", - dictCancelUpload: "Cancel upload", - dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", - dictRemoveFile: "Remove file", - dictRemoveFileConfirmation: null, - dictMaxFilesExceeded: "You can not upload any more files.", - accept: function(file, done) { - return done(); - }, - init: function() { - return noop; - }, - forceFallback: false, - fallback: function() { - var child, messageElement, span, _i, _len, _ref; - this.element.className = "" + this.element.className + " dz-browser-not-supported"; - _ref = this.element.getElementsByTagName("div"); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - child = _ref[_i]; - if (/(^| )dz-message($| )/.test(child.className)) { - messageElement = child; - child.className = "dz-message"; - continue; - } - } - if (!messageElement) { - messageElement = Dropzone.createElement("
    "); - this.element.appendChild(messageElement); - } - span = messageElement.getElementsByTagName("span")[0]; - if (span) { - span.textContent = this.options.dictFallbackMessage; - } - return this.element.appendChild(this.getFallbackForm()); - }, - resize: function(file) { - var info, srcRatio, trgRatio; - info = { - srcX: 0, - srcY: 0, - srcWidth: file.width, - srcHeight: file.height - }; - srcRatio = file.width / file.height; - trgRatio = this.options.thumbnailWidth / this.options.thumbnailHeight; - if (file.height < this.options.thumbnailHeight || file.width < this.options.thumbnailWidth) { - info.trgHeight = info.srcHeight; - info.trgWidth = info.srcWidth; - } else { - if (srcRatio > trgRatio) { - info.srcHeight = file.height; - info.srcWidth = info.srcHeight * trgRatio; - } else { - info.srcWidth = file.width; - info.srcHeight = info.srcWidth / trgRatio; - } - } - info.srcX = (file.width - info.srcWidth) / 2; - info.srcY = (file.height - info.srcHeight) / 2; - return info; - }, - /* - Those functions register themselves to the events on init and handle all - the user interface specific stuff. Overwriting them won't break the upload - but can break the way it's displayed. - You can overwrite them if you don't like the default behavior. If you just - want to add an additional event handler, register it on the dropzone object - and don't overwrite those options. - */ - - drop: function(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - dragstart: noop, - dragend: function(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - dragenter: function(e) { - return this.element.classList.add("dz-drag-hover"); - }, - dragover: function(e) { - return this.element.classList.add("dz-drag-hover"); - }, - dragleave: function(e) { - return this.element.classList.remove("dz-drag-hover"); - }, - paste: noop, - reset: function() { - return this.element.classList.remove("dz-started"); - }, - addedfile: function(file) { - var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results, - _this = this; - if (this.element === this.previewsContainer) { - this.element.classList.add("dz-started"); - } - file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim()); - file.previewTemplate = file.previewElement; - this.previewsContainer.appendChild(file.previewElement); - _ref = file.previewElement.querySelectorAll("[data-dz-name]"); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - node = _ref[_i]; - node.textContent = file.name; - } - _ref1 = file.previewElement.querySelectorAll("[data-dz-size]"); - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - node = _ref1[_j]; - node.innerHTML = this.filesize(file.size); - } - if (this.options.addRemoveLinks) { - file._removeLink = Dropzone.createElement("" + this.options.dictRemoveFile + ""); - file.previewElement.appendChild(file._removeLink); - } - removeFileEvent = function(e) { - e.preventDefault(); - e.stopPropagation(); - if (file.status === Dropzone.UPLOADING) { - return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() { - return _this.removeFile(file); - }); - } else { - if (_this.options.dictRemoveFileConfirmation) { - return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() { - return _this.removeFile(file); - }); - } else { - return _this.removeFile(file); - } - } - }; - _ref2 = file.previewElement.querySelectorAll("[data-dz-remove]"); - _results = []; - for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { - removeLink = _ref2[_k]; - _results.push(removeLink.addEventListener("click", removeFileEvent)); - } - return _results; - }, - removedfile: function(file) { - var _ref; - if ((_ref = file.previewElement) != null) { - _ref.parentNode.removeChild(file.previewElement); - } - return this._updateMaxFilesReachedClass(); - }, - thumbnail: function(file, dataUrl) { - var thumbnailElement, _i, _len, _ref, _results; - file.previewElement.classList.remove("dz-file-preview"); - file.previewElement.classList.add("dz-image-preview"); - _ref = file.previewElement.querySelectorAll("[data-dz-thumbnail]"); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - thumbnailElement = _ref[_i]; - thumbnailElement.alt = file.name; - _results.push(thumbnailElement.src = dataUrl); - } - return _results; - }, - error: function(file, message) { - var node, _i, _len, _ref, _results; - file.previewElement.classList.add("dz-error"); - if (typeof message !== "String" && message.error) { - message = message.error; - } - _ref = file.previewElement.querySelectorAll("[data-dz-errormessage]"); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - node = _ref[_i]; - _results.push(node.textContent = message); - } - return _results; - }, - errormultiple: noop, - processing: function(file) { - file.previewElement.classList.add("dz-processing"); - if (file._removeLink) { - return file._removeLink.textContent = this.options.dictCancelUpload; - } - }, - processingmultiple: noop, - uploadprogress: function(file, progress, bytesSent) { - var node, _i, _len, _ref, _results; - _ref = file.previewElement.querySelectorAll("[data-dz-uploadprogress]"); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - node = _ref[_i]; - _results.push(node.style.width = "" + progress + "%"); - } - return _results; - }, - totaluploadprogress: noop, - sending: noop, - sendingmultiple: noop, - success: function(file) { - return file.previewElement.classList.add("dz-success"); - }, - successmultiple: noop, - canceled: function(file) { - return this.emit("error", file, "Upload canceled."); - }, - canceledmultiple: noop, - complete: function(file) { - if (file._removeLink) { - return file._removeLink.textContent = this.options.dictRemoveFile; - } - }, - completemultiple: noop, - maxfilesexceeded: noop, - maxfilesreached: noop, - previewTemplate: "
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    " - }; - - extend = function() { - var key, object, objects, target, val, _i, _len; - target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - for (_i = 0, _len = objects.length; _i < _len; _i++) { - object = objects[_i]; - for (key in object) { - val = object[key]; - target[key] = val; - } - } - return target; - }; - - function Dropzone(element, options) { - var elementOptions, fallback, _ref; - this.element = element; - this.version = Dropzone.version; - this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\n*/g, ""); - this.clickableElements = []; - this.listeners = []; - this.files = []; - if (typeof this.element === "string") { - this.element = document.querySelector(this.element); - } - if (!(this.element && (this.element.nodeType != null))) { - throw new Error("Invalid dropzone element."); - } - if (this.element.dropzone) { - throw new Error("Dropzone already attached."); - } - Dropzone.instances.push(this); - this.element.dropzone = this; - elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {}; - this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {}); - if (this.options.forceFallback || !Dropzone.isBrowserSupported()) { - return this.options.fallback.call(this); - } - if (this.options.url == null) { - this.options.url = this.element.getAttribute("action"); - } - if (!this.options.url) { - throw new Error("No URL provided."); - } - if (this.options.acceptedFiles && this.options.acceptedMimeTypes) { - throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); - } - if (this.options.acceptedMimeTypes) { - this.options.acceptedFiles = this.options.acceptedMimeTypes; - delete this.options.acceptedMimeTypes; - } - this.options.method = this.options.method.toUpperCase(); - if ((fallback = this.getExistingFallback()) && fallback.parentNode) { - fallback.parentNode.removeChild(fallback); - } - if (this.options.previewsContainer) { - this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, "previewsContainer"); - } else { - this.previewsContainer = this.element; - } - if (this.options.clickable) { - if (this.options.clickable === true) { - this.clickableElements = [this.element]; - } else { - this.clickableElements = Dropzone.getElements(this.options.clickable, "clickable"); - } - } - this.init(); - } - - Dropzone.prototype.getAcceptedFiles = function() { - var file, _i, _len, _ref, _results; - _ref = this.files; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - if (file.accepted) { - _results.push(file); - } - } - return _results; - }; - - Dropzone.prototype.getRejectedFiles = function() { - var file, _i, _len, _ref, _results; - _ref = this.files; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - if (!file.accepted) { - _results.push(file); - } - } - return _results; - }; - - Dropzone.prototype.getFilesWithStatus = function(status) { - var file, _i, _len, _ref, _results; - _ref = this.files; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - if (file.status === status) { - _results.push(file); - } - } - return _results; - }; - - Dropzone.prototype.getQueuedFiles = function() { - return this.getFilesWithStatus(Dropzone.QUEUED); - }; - - Dropzone.prototype.getUploadingFiles = function() { - return this.getFilesWithStatus(Dropzone.UPLOADING); - }; - - Dropzone.prototype.getActiveFiles = function() { - var file, _i, _len, _ref, _results; - _ref = this.files; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) { - _results.push(file); - } - } - return _results; - }; - - Dropzone.prototype.init = function() { - var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1, - _this = this; - if (this.element.tagName === "form") { - this.element.setAttribute("enctype", "multipart/form-data"); - } - if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) { - this.element.appendChild(Dropzone.createElement("
    " + this.options.dictDefaultMessage + "
    ")); - } - if (this.clickableElements.length) { - setupHiddenFileInput = function() { - if (_this.hiddenFileInput) { - document.body.removeChild(_this.hiddenFileInput); - } - _this.hiddenFileInput = document.createElement("input"); - _this.hiddenFileInput.setAttribute("type", "file"); - if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) { - _this.hiddenFileInput.setAttribute("multiple", "multiple"); - } - _this.hiddenFileInput.className = "dz-hidden-input"; - if (_this.options.acceptedFiles != null) { - _this.hiddenFileInput.setAttribute("accept", _this.options.acceptedFiles); - } - _this.hiddenFileInput.style.visibility = "hidden"; - _this.hiddenFileInput.style.position = "absolute"; - _this.hiddenFileInput.style.top = "0"; - _this.hiddenFileInput.style.left = "0"; - _this.hiddenFileInput.style.height = "0"; - _this.hiddenFileInput.style.width = "0"; - document.body.appendChild(_this.hiddenFileInput); - return _this.hiddenFileInput.addEventListener("change", function() { - var file, files, _i, _len; - files = _this.hiddenFileInput.files; - if (files.length) { - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - _this.addFile(file); - } - } - return setupHiddenFileInput(); - }); - }; - setupHiddenFileInput(); - } - this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL; - _ref1 = this.events; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - eventName = _ref1[_i]; - this.on(eventName, this.options[eventName]); - } - this.on("uploadprogress", function() { - return _this.updateTotalUploadProgress(); - }); - this.on("removedfile", function() { - return _this.updateTotalUploadProgress(); - }); - this.on("canceled", function(file) { - return _this.emit("complete", file); - }); - this.on("complete", function(file) { - if (_this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) { - return setTimeout((function() { - return _this.emit("queuecomplete"); - }), 0); - } - }); - noPropagation = function(e) { - e.stopPropagation(); - if (e.preventDefault) { - return e.preventDefault(); - } else { - return e.returnValue = false; - } - }; - this.listeners = [ - { - element: this.element, - events: { - "dragstart": function(e) { - return _this.emit("dragstart", e); - }, - "dragenter": function(e) { - noPropagation(e); - return _this.emit("dragenter", e); - }, - "dragover": function(e) { - var efct; - try { - efct = e.dataTransfer.effectAllowed; - } catch (_error) {} - e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy'; - noPropagation(e); - return _this.emit("dragover", e); - }, - "dragleave": function(e) { - return _this.emit("dragleave", e); - }, - "drop": function(e) { - noPropagation(e); - return _this.drop(e); - }, - "dragend": function(e) { - return _this.emit("dragend", e); - } - } - } - ]; - this.clickableElements.forEach(function(clickableElement) { - return _this.listeners.push({ - element: clickableElement, - events: { - "click": function(evt) { - if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(".dz-message")))) { - return _this.hiddenFileInput.click(); - } - } - } - }); - }); - this.enable(); - return this.options.init.call(this); - }; - - Dropzone.prototype.destroy = function() { - var _ref; - this.disable(); - this.removeAllFiles(true); - if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) { - this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); - this.hiddenFileInput = null; - } - delete this.element.dropzone; - return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1); - }; - - Dropzone.prototype.updateTotalUploadProgress = function() { - var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref; - totalBytesSent = 0; - totalBytes = 0; - activeFiles = this.getActiveFiles(); - if (activeFiles.length) { - _ref = this.getActiveFiles(); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - totalBytesSent += file.upload.bytesSent; - totalBytes += file.upload.total; - } - totalUploadProgress = 100 * totalBytesSent / totalBytes; - } else { - totalUploadProgress = 100; - } - return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); - }; - - Dropzone.prototype.getFallbackForm = function() { - var existingFallback, fields, fieldsString, form; - if (existingFallback = this.getExistingFallback()) { - return existingFallback; - } - fieldsString = "
    "; - if (this.options.dictFallbackText) { - fieldsString += "

    " + this.options.dictFallbackText + "

    "; - } - fieldsString += "
    "; - fields = Dropzone.createElement(fieldsString); - if (this.element.tagName !== "FORM") { - form = Dropzone.createElement("
    "); - form.appendChild(fields); - } else { - this.element.setAttribute("enctype", "multipart/form-data"); - this.element.setAttribute("method", this.options.method); - } - return form != null ? form : fields; - }; - - Dropzone.prototype.getExistingFallback = function() { - var fallback, getFallback, tagName, _i, _len, _ref; - getFallback = function(elements) { - var el, _i, _len; - for (_i = 0, _len = elements.length; _i < _len; _i++) { - el = elements[_i]; - if (/(^| )fallback($| )/.test(el.className)) { - return el; - } - } - }; - _ref = ["div", "form"]; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - tagName = _ref[_i]; - if (fallback = getFallback(this.element.getElementsByTagName(tagName))) { - return fallback; - } - } - }; - - Dropzone.prototype.setupEventListeners = function() { - var elementListeners, event, listener, _i, _len, _ref, _results; - _ref = this.listeners; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - elementListeners = _ref[_i]; - _results.push((function() { - var _ref1, _results1; - _ref1 = elementListeners.events; - _results1 = []; - for (event in _ref1) { - listener = _ref1[event]; - _results1.push(elementListeners.element.addEventListener(event, listener, false)); - } - return _results1; - })()); - } - return _results; - }; - - Dropzone.prototype.removeEventListeners = function() { - var elementListeners, event, listener, _i, _len, _ref, _results; - _ref = this.listeners; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - elementListeners = _ref[_i]; - _results.push((function() { - var _ref1, _results1; - _ref1 = elementListeners.events; - _results1 = []; - for (event in _ref1) { - listener = _ref1[event]; - _results1.push(elementListeners.element.removeEventListener(event, listener, false)); - } - return _results1; - })()); - } - return _results; - }; - - Dropzone.prototype.disable = function() { - var file, _i, _len, _ref, _results; - this.clickableElements.forEach(function(element) { - return element.classList.remove("dz-clickable"); - }); - this.removeEventListeners(); - _ref = this.files; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - _results.push(this.cancelUpload(file)); - } - return _results; - }; - - Dropzone.prototype.enable = function() { - this.clickableElements.forEach(function(element) { - return element.classList.add("dz-clickable"); - }); - return this.setupEventListeners(); - }; - - Dropzone.prototype.filesize = function(size) { - var string; - if (size >= 1024 * 1024 * 1024 * 1024 / 10) { - size = size / (1024 * 1024 * 1024 * 1024 / 10); - string = "TiB"; - } else if (size >= 1024 * 1024 * 1024 / 10) { - size = size / (1024 * 1024 * 1024 / 10); - string = "GiB"; - } else if (size >= 1024 * 1024 / 10) { - size = size / (1024 * 1024 / 10); - string = "MiB"; - } else if (size >= 1024 / 10) { - size = size / (1024 / 10); - string = "KiB"; - } else { - size = size * 10; - string = "b"; - } - return "" + (Math.round(size) / 10) + " " + string; - }; - - Dropzone.prototype._updateMaxFilesReachedClass = function() { - if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) { - if (this.getAcceptedFiles().length === this.options.maxFiles) { - this.emit('maxfilesreached', this.files); - } - return this.element.classList.add("dz-max-files-reached"); - } else { - return this.element.classList.remove("dz-max-files-reached"); - } - }; - - Dropzone.prototype.drop = function(e) { - var files, items; - if (!e.dataTransfer) { - return; - } - this.emit("drop", e); - files = e.dataTransfer.files; - if (files.length) { - items = e.dataTransfer.items; - if (items && items.length && (items[0].webkitGetAsEntry != null)) { - this._addFilesFromItems(items); - } else { - this.handleFiles(files); - } - } - }; - - Dropzone.prototype.paste = function(e) { - var items, _ref; - if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) { - return; - } - this.emit("paste", e); - items = e.clipboardData.items; - if (items.length) { - return this._addFilesFromItems(items); - } - }; - - Dropzone.prototype.handleFiles = function(files) { - var file, _i, _len, _results; - _results = []; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - _results.push(this.addFile(file)); - } - return _results; - }; - - Dropzone.prototype._addFilesFromItems = function(items) { - var entry, item, _i, _len, _results; - _results = []; - for (_i = 0, _len = items.length; _i < _len; _i++) { - item = items[_i]; - if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) { - if (entry.isFile) { - _results.push(this.addFile(item.getAsFile())); - } else if (entry.isDirectory) { - _results.push(this._addFilesFromDirectory(entry, entry.name)); - } else { - _results.push(void 0); - } - } else if (item.getAsFile != null) { - if ((item.kind == null) || item.kind === "file") { - _results.push(this.addFile(item.getAsFile())); - } else { - _results.push(void 0); - } - } else { - _results.push(void 0); - } - } - return _results; - }; - - Dropzone.prototype._addFilesFromDirectory = function(directory, path) { - var dirReader, entriesReader, - _this = this; - dirReader = directory.createReader(); - entriesReader = function(entries) { - var entry, _i, _len; - for (_i = 0, _len = entries.length; _i < _len; _i++) { - entry = entries[_i]; - if (entry.isFile) { - entry.file(function(file) { - if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') { - return; - } - file.fullPath = "" + path + "/" + file.name; - return _this.addFile(file); - }); - } else if (entry.isDirectory) { - _this._addFilesFromDirectory(entry, "" + path + "/" + entry.name); - } - } - }; - return dirReader.readEntries(entriesReader, function(error) { - return typeof console !== "undefined" && console !== null ? typeof console.log === "function" ? console.log(error) : void 0 : void 0; - }); - }; - - Dropzone.prototype.accept = function(file, done) { - if (file.size > this.options.maxFilesize * 1024 * 1024) { - return done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); - } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) { - return done(this.options.dictInvalidFileType); - } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) { - done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)); - return this.emit("maxfilesexceeded", file); - } else { - return this.options.accept.call(this, file, done); - } - }; - - Dropzone.prototype.addFile = function(file) { - var _this = this; - file.upload = { - progress: 0, - total: file.size, - bytesSent: 0 - }; - this.files.push(file); - file.status = Dropzone.ADDED; - this.emit("addedfile", file); - this._enqueueThumbnail(file); - return this.accept(file, function(error) { - if (error) { - file.accepted = false; - _this._errorProcessing([file], error); - } else { - file.accepted = true; - if (_this.options.autoQueue) { - _this.enqueueFile(file); - } - } - return _this._updateMaxFilesReachedClass(); - }); - }; - - Dropzone.prototype.enqueueFiles = function(files) { - var file, _i, _len; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - this.enqueueFile(file); - } - return null; - }; - - Dropzone.prototype.enqueueFile = function(file) { - var _this = this; - if (file.status === Dropzone.ADDED && file.accepted === true) { - file.status = Dropzone.QUEUED; - if (this.options.autoProcessQueue) { - return setTimeout((function() { - return _this.processQueue(); - }), 0); - } - } else { - throw new Error("This file can't be queued because it has already been processed or was rejected."); - } - }; - - Dropzone.prototype._thumbnailQueue = []; - - Dropzone.prototype._processingThumbnail = false; - - Dropzone.prototype._enqueueThumbnail = function(file) { - var _this = this; - if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { - this._thumbnailQueue.push(file); - return setTimeout((function() { - return _this._processThumbnailQueue(); - }), 0); - } - }; - - Dropzone.prototype._processThumbnailQueue = function() { - var _this = this; - if (this._processingThumbnail || this._thumbnailQueue.length === 0) { - return; - } - this._processingThumbnail = true; - return this.createThumbnail(this._thumbnailQueue.shift(), function() { - _this._processingThumbnail = false; - return _this._processThumbnailQueue(); - }); - }; - - Dropzone.prototype.removeFile = function(file) { - if (file.status === Dropzone.UPLOADING) { - this.cancelUpload(file); - } - this.files = without(this.files, file); - this.emit("removedfile", file); - if (this.files.length === 0) { - return this.emit("reset"); - } - }; - - Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) { - var file, _i, _len, _ref; - if (cancelIfNecessary == null) { - cancelIfNecessary = false; - } - _ref = this.files.slice(); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) { - this.removeFile(file); - } - } - return null; - }; - - Dropzone.prototype.createThumbnail = function(file, callback) { - var fileReader, - _this = this; - fileReader = new FileReader; - fileReader.onload = function() { - var img; - img = document.createElement("img"); - img.onload = function() { - var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3; - file.width = img.width; - file.height = img.height; - resizeInfo = _this.options.resize.call(_this, file); - if (resizeInfo.trgWidth == null) { - resizeInfo.trgWidth = _this.options.thumbnailWidth; - } - if (resizeInfo.trgHeight == null) { - resizeInfo.trgHeight = _this.options.thumbnailHeight; - } - canvas = document.createElement("canvas"); - ctx = canvas.getContext("2d"); - canvas.width = resizeInfo.trgWidth; - canvas.height = resizeInfo.trgHeight; - drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); - thumbnail = canvas.toDataURL("image/png"); - _this.emit("thumbnail", file, thumbnail); - if (callback != null) { - return callback(); - } - }; - return img.src = fileReader.result; - }; - return fileReader.readAsDataURL(file); - }; - - Dropzone.prototype.processQueue = function() { - var i, parallelUploads, processingLength, queuedFiles; - parallelUploads = this.options.parallelUploads; - processingLength = this.getUploadingFiles().length; - i = processingLength; - if (processingLength >= parallelUploads) { - return; - } - queuedFiles = this.getQueuedFiles(); - if (!(queuedFiles.length > 0)) { - return; - } - if (this.options.uploadMultiple) { - return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); - } else { - while (i < parallelUploads) { - if (!queuedFiles.length) { - return; - } - this.processFile(queuedFiles.shift()); - i++; - } - } - }; - - Dropzone.prototype.processFile = function(file) { - return this.processFiles([file]); - }; - - Dropzone.prototype.processFiles = function(files) { - var file, _i, _len; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - file.processing = true; - file.status = Dropzone.UPLOADING; - this.emit("processing", file); - } - if (this.options.uploadMultiple) { - this.emit("processingmultiple", files); - } - return this.uploadFiles(files); - }; - - Dropzone.prototype._getFilesWithXhr = function(xhr) { - var file, files; - return files = (function() { - var _i, _len, _ref, _results; - _ref = this.files; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - file = _ref[_i]; - if (file.xhr === xhr) { - _results.push(file); - } - } - return _results; - }).call(this); - }; - - Dropzone.prototype.cancelUpload = function(file) { - var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref; - if (file.status === Dropzone.UPLOADING) { - groupedFiles = this._getFilesWithXhr(file.xhr); - for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) { - groupedFile = groupedFiles[_i]; - groupedFile.status = Dropzone.CANCELED; - } - file.xhr.abort(); - for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) { - groupedFile = groupedFiles[_j]; - this.emit("canceled", groupedFile); - } - if (this.options.uploadMultiple) { - this.emit("canceledmultiple", groupedFiles); - } - } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) { - file.status = Dropzone.CANCELED; - this.emit("canceled", file); - if (this.options.uploadMultiple) { - this.emit("canceledmultiple", [file]); - } - } - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - }; - - Dropzone.prototype.uploadFile = function(file) { - return this.uploadFiles([file]); - }; - - Dropzone.prototype.uploadFiles = function(files) { - var file, formData, handleError, headerName, headerValue, headers, input, inputName, inputType, key, option, progressObj, response, updateProgress, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref, _ref1, _ref2, _ref3, _ref4, - _this = this; - xhr = new XMLHttpRequest(); - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - file.xhr = xhr; - } - xhr.open(this.options.method, this.options.url, true); - xhr.withCredentials = !!this.options.withCredentials; - response = null; - handleError = function() { - var _j, _len1, _results; - _results = []; - for (_j = 0, _len1 = files.length; _j < _len1; _j++) { - file = files[_j]; - _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr)); - } - return _results; - }; - updateProgress = function(e) { - var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results; - if (e != null) { - progress = 100 * e.loaded / e.total; - for (_j = 0, _len1 = files.length; _j < _len1; _j++) { - file = files[_j]; - file.upload = { - progress: progress, - total: e.total, - bytesSent: e.loaded - }; - } - } else { - allFilesFinished = true; - progress = 100; - for (_k = 0, _len2 = files.length; _k < _len2; _k++) { - file = files[_k]; - if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) { - allFilesFinished = false; - } - file.upload.progress = progress; - file.upload.bytesSent = file.upload.total; - } - if (allFilesFinished) { - return; - } - } - _results = []; - for (_l = 0, _len3 = files.length; _l < _len3; _l++) { - file = files[_l]; - _results.push(_this.emit("uploadprogress", file, progress, file.upload.bytesSent)); - } - return _results; - }; - xhr.onload = function(e) { - var _ref; - if (files[0].status === Dropzone.CANCELED) { - return; - } - if (xhr.readyState !== 4) { - return; - } - response = xhr.responseText; - if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { - try { - response = JSON.parse(response); - } catch (_error) { - e = _error; - response = "Invalid JSON response from server."; - } - } - updateProgress(); - if (!((200 <= (_ref = xhr.status) && _ref < 300))) { - return handleError(); - } else { - return _this._finished(files, response, e); - } - }; - xhr.onerror = function() { - if (files[0].status === Dropzone.CANCELED) { - return; - } - return handleError(); - }; - progressObj = (_ref = xhr.upload) != null ? _ref : xhr; - progressObj.onprogress = updateProgress; - headers = { - "Accept": "application/json", - "Cache-Control": "no-cache", - "X-Requested-With": "XMLHttpRequest" - }; - if (this.options.headers) { - extend(headers, this.options.headers); - } - for (headerName in headers) { - headerValue = headers[headerName]; - xhr.setRequestHeader(headerName, headerValue); - } - formData = new FormData(); - if (this.options.params) { - _ref1 = this.options.params; - for (key in _ref1) { - value = _ref1[key]; - formData.append(key, value); - } - } - for (_j = 0, _len1 = files.length; _j < _len1; _j++) { - file = files[_j]; - this.emit("sending", file, xhr, formData); - } - if (this.options.uploadMultiple) { - this.emit("sendingmultiple", files, xhr, formData); - } - if (this.element.tagName === "FORM") { - _ref2 = this.element.querySelectorAll("input, textarea, select, button"); - for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { - input = _ref2[_k]; - inputName = input.getAttribute("name"); - inputType = input.getAttribute("type"); - if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { - _ref3 = input.options; - for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) { - option = _ref3[_l]; - if (option.selected) { - formData.append(inputName, option.value); - } - } - } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== "checkbox" && _ref4 !== "radio") || input.checked) { - formData.append(inputName, input.value); - } - } - } - for (_m = 0, _len4 = files.length; _m < _len4; _m++) { - file = files[_m]; - formData.append("" + this.options.paramName + (this.options.uploadMultiple ? "[]" : ""), file, file.name); - } - return xhr.send(formData); - }; - - Dropzone.prototype._finished = function(files, responseText, e) { - var file, _i, _len; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - file.status = Dropzone.SUCCESS; - this.emit("success", file, responseText, e); - this.emit("complete", file); - } - if (this.options.uploadMultiple) { - this.emit("successmultiple", files, responseText, e); - this.emit("completemultiple", files); - } - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - }; - - Dropzone.prototype._errorProcessing = function(files, message, xhr) { - var file, _i, _len; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - file.status = Dropzone.ERROR; - this.emit("error", file, message, xhr); - this.emit("complete", file); - } - if (this.options.uploadMultiple) { - this.emit("errormultiple", files, message, xhr); - this.emit("completemultiple", files); - } - if (this.options.autoProcessQueue) { - return this.processQueue(); - } - }; - - return Dropzone; - - })(Em); - - Dropzone.version = "3.8.6"; - - Dropzone.options = {}; - - Dropzone.optionsForElement = function(element) { - if (element.getAttribute("id")) { - return Dropzone.options[camelize(element.getAttribute("id"))]; - } else { - return void 0; - } - }; - - Dropzone.instances = []; - - Dropzone.forElement = function(element) { - if (typeof element === "string") { - element = document.querySelector(element); - } - if ((element != null ? element.dropzone : void 0) == null) { - throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); - } - return element.dropzone; - }; - - Dropzone.autoDiscover = true; - - Dropzone.discover = function() { - var checkElements, dropzone, dropzones, _i, _len, _results; - if (document.querySelectorAll) { - dropzones = document.querySelectorAll(".dropzone"); - } else { - dropzones = []; - checkElements = function(elements) { - var el, _i, _len, _results; - _results = []; - for (_i = 0, _len = elements.length; _i < _len; _i++) { - el = elements[_i]; - if (/(^| )dropzone($| )/.test(el.className)) { - _results.push(dropzones.push(el)); - } else { - _results.push(void 0); - } - } - return _results; - }; - checkElements(document.getElementsByTagName("div")); - checkElements(document.getElementsByTagName("form")); - } - _results = []; - for (_i = 0, _len = dropzones.length; _i < _len; _i++) { - dropzone = dropzones[_i]; - if (Dropzone.optionsForElement(dropzone) !== false) { - _results.push(new Dropzone(dropzone)); - } else { - _results.push(void 0); - } - } - return _results; - }; - - Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i]; - - Dropzone.isBrowserSupported = function() { - var capableBrowser, regex, _i, _len, _ref; - capableBrowser = true; - if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { - if (!("classList" in document.createElement("a"))) { - capableBrowser = false; - } else { - _ref = Dropzone.blacklistedBrowsers; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - regex = _ref[_i]; - if (regex.test(navigator.userAgent)) { - capableBrowser = false; - continue; - } - } - } - } else { - capableBrowser = false; - } - return capableBrowser; - }; - - without = function(list, rejectedItem) { - var item, _i, _len, _results; - _results = []; - for (_i = 0, _len = list.length; _i < _len; _i++) { - item = list[_i]; - if (item !== rejectedItem) { - _results.push(item); - } - } - return _results; - }; - - camelize = function(str) { - return str.replace(/[\-_](\w)/g, function(match) { - return match.charAt(1).toUpperCase(); - }); - }; - - Dropzone.createElement = function(string) { - var div; - div = document.createElement("div"); - div.innerHTML = string; - return div.childNodes[0]; - }; - - Dropzone.elementInside = function(element, container) { - if (element === container) { - return true; - } - while (element = element.parentNode) { - if (element === container) { - return true; - } - } - return false; - }; - - Dropzone.getElement = function(el, name) { - var element; - if (typeof el === "string") { - element = document.querySelector(el); - } else if (el.nodeType != null) { - element = el; - } - if (element == null) { - throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector or a plain HTML element."); - } - return element; - }; - - Dropzone.getElements = function(els, name) { - var e, el, elements, _i, _j, _len, _len1, _ref; - if (els instanceof Array) { - elements = []; - try { - for (_i = 0, _len = els.length; _i < _len; _i++) { - el = els[_i]; - elements.push(this.getElement(el, name)); - } - } catch (_error) { - e = _error; - elements = null; - } - } else if (typeof els === "string") { - elements = []; - _ref = document.querySelectorAll(els); - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - el = _ref[_j]; - elements.push(el); - } - } else if (els.nodeType != null) { - elements = [els]; - } - if (!((elements != null) && elements.length)) { - throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector, a plain HTML element or a list of those."); - } - return elements; - }; - - Dropzone.confirm = function(question, accepted, rejected) { - if (window.confirm(question)) { - return accepted(); - } else if (rejected != null) { - return rejected(); - } - }; - - Dropzone.isValidFile = function(file, acceptedFiles) { - var baseMimeType, mimeType, validType, _i, _len; - if (!acceptedFiles) { - return true; - } - acceptedFiles = acceptedFiles.split(","); - mimeType = file.type; - baseMimeType = mimeType.replace(/\/.*$/, ""); - for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) { - validType = acceptedFiles[_i]; - validType = validType.trim(); - if (validType.charAt(0) === ".") { - if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== - 1) { - return true; - } - } else if (/\/\*$/.test(validType)) { - if (baseMimeType === validType.replace(/\/.*$/, "")) { - return true; - } - } else { - if (mimeType === validType) { - return true; - } - } - } - return false; - }; - - if (typeof jQuery !== "undefined" && jQuery !== null) { - jQuery.fn.dropzone = function(options) { - return this.each(function() { - return new Dropzone(this, options); - }); - }; - } - - if (typeof module !== "undefined" && module !== null) { - module.exports = Dropzone; - } else { - window.Dropzone = Dropzone; - } - - Dropzone.ADDED = "added"; - - Dropzone.QUEUED = "queued"; - - Dropzone.ACCEPTED = Dropzone.QUEUED; - - Dropzone.UPLOADING = "uploading"; - - Dropzone.PROCESSING = Dropzone.UPLOADING; - - Dropzone.CANCELED = "canceled"; - - Dropzone.ERROR = "error"; - - Dropzone.SUCCESS = "success"; - - /* - - Bugfix for iOS 6 and 7 - Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios - based on the work of https://github.com/stomita/ios-imagefile-megapixel - */ - - - detectVerticalSquash = function(img) { - var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy; - iw = img.naturalWidth; - ih = img.naturalHeight; - canvas = document.createElement("canvas"); - canvas.width = 1; - canvas.height = ih; - ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0); - data = ctx.getImageData(0, 0, 1, ih).data; - sy = 0; - ey = ih; - py = ih; - while (py > sy) { - alpha = data[(py - 1) * 4 + 3]; - if (alpha === 0) { - ey = py; - } else { - sy = py; - } - py = (ey + sy) >> 1; - } - ratio = py / ih; - if (ratio === 0) { - return 1; - } else { - return ratio; - } - }; - - drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { - var vertSquashRatio; - vertSquashRatio = detectVerticalSquash(img); - return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); - }; - - /* - # contentloaded.js - # - # Author: Diego Perini (diego.perini at gmail.com) - # Summary: cross-browser wrapper for DOMContentLoaded - # Updated: 20101020 - # License: MIT - # Version: 1.2 - # - # URL: - # http://javascript.nwbox.com/ContentLoaded/ - # http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE - */ - - - contentLoaded = function(win, fn) { - var add, doc, done, init, poll, pre, rem, root, top; - done = false; - top = true; - doc = win.document; - root = doc.documentElement; - add = (doc.addEventListener ? "addEventListener" : "attachEvent"); - rem = (doc.addEventListener ? "removeEventListener" : "detachEvent"); - pre = (doc.addEventListener ? "" : "on"); - init = function(e) { - if (e.type === "readystatechange" && doc.readyState !== "complete") { - return; - }(e.type === "load" ? win : doc)[rem](pre + e.type, init, false); - if (!done && (done = true)) { - return fn.call(win, e.type || e); - } - }; - poll = function() { - var e; - try { - root.doScroll("left"); - } catch (_error) { - e = _error; - setTimeout(poll, 50); - return; - } - return init("poll"); - }; - if (doc.readyState !== "complete") { - if (doc.createEventObject && root.doScroll) { - try { - top = !win.frameElement; - } catch (_error) {} - if (top) { - poll(); - } - } - doc[add](pre + "DOMContentLoaded", init, false); - doc[add](pre + "readystatechange", init, false); - return win[add](pre + "load", init, false); - } - }; - - Dropzone._autoDiscoverFunction = function() { - if (Dropzone.autoDiscover) { - return Dropzone.discover(); - } - }; - - contentLoaded(window, Dropzone._autoDiscoverFunction); - - }).call(this); - -}); -require.register("enyo-opentip/index.js", function(exports, require, module) { - // Copyright (c) 2012 Matias Meno - - - // The index.js file for component - var Opentip = require("./lib/opentip.js"); - - - var Adapter = require("./lib/adapter-component.js"); - - // Add the adapter to the list - Opentip.addAdapter(new Adapter()); - - - // Exposing the Opentip class - module.exports = Opentip; -}); -require.register("enyo-opentip/lib/opentip.js", function(exports, require, module) { - /* - # - # Opentip v2.4.6 - # - # More info at [www.opentip.org](http://www.opentip.org) - # - # Copyright (c) 2012, Matias Meno - # Graphics by Tjandra Mayerhold - # - # Permission is hereby granted, free of charge, to any person obtaining a copy - # of this software and associated documentation files (the "Software"), to deal - # in the Software without restriction, including without limitation the rights - # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - # copies of the Software, and to permit persons to whom the Software is - # furnished to do so, subject to the following conditions: - # - # The above copyright notice and this permission notice shall be included in - # all copies or substantial portions of the Software. - # - # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - # THE SOFTWARE. - # - */ - - var Opentip, firstAdapter, i, mouseMoved, mousePosition, mousePositionObservers, position, vendors, _i, _len, _ref, - __slice = [].slice, - __indexOf = [].indexOf || function(item) { - for (var i = 0, l = this.length; i < l; i++) { - if (i in this && this[i] === item) - return i; - } - return - 1; - }, - __hasProp = {}.hasOwnProperty; - - Opentip = (function() { - Opentip.prototype.STICKS_OUT_TOP = 1; - - Opentip.prototype.STICKS_OUT_BOTTOM = 2; - - Opentip.prototype.STICKS_OUT_LEFT = 1; - - Opentip.prototype.STICKS_OUT_RIGHT = 2; - - Opentip.prototype["class"] = { - container: "opentip-container", - opentip: "opentip", - header: "ot-header", - content: "ot-content", - loadingIndicator: "ot-loading-indicator", - close: "ot-close", - goingToHide: "ot-going-to-hide", - hidden: "ot-hidden", - hiding: "ot-hiding", - goingToShow: "ot-going-to-show", - showing: "ot-showing", - visible: "ot-visible", - loading: "ot-loading", - ajaxError: "ot-ajax-error", - fixed: "ot-fixed", - showEffectPrefix: "ot-show-effect-", - hideEffectPrefix: "ot-hide-effect-", - stylePrefix: "style-" - }; - - function Opentip(element, content, title, options) { - var elementsOpentips, hideTrigger, methodToBind, optionSources, prop, styleName, _i, _j, _len, _len1, _ref, _ref1, _ref2, _tmpStyle, - _this = this; - - this.id = ++Opentip.lastId; - this.debug("Creating Opentip."); - Opentip.tips.push(this); - this.adapter = Opentip.adapter; - elementsOpentips = this.adapter.data(element, "opentips") || []; - elementsOpentips.push(this); - this.adapter.data(element, "opentips", elementsOpentips); - this.triggerElement = this.adapter.wrap(element); - if (this.triggerElement.length > 1) { - throw new Error("You can't call Opentip on multiple elements."); - } - if (this.triggerElement.length < 1) { - throw new Error("Invalid element."); - } - this.loaded = false; - this.loading = false; - this.visible = false; - this.waitingToShow = false; - this.waitingToHide = false; - this.currentPosition = { - left: 0, - top: 0 - }; - this.dimensions = { - width: 100, - height: 50 - }; - this.content = ""; - this.redraw = true; - this.currentObservers = { - showing: false, - visible: false, - hiding: false, - hidden: false - }; - options = this.adapter.clone(options); - if (typeof content === "object") { - options = content; - content = title = void 0; - } else if (typeof title === "object") { - options = title; - title = void 0; - } - if (title != null) { - options.title = title; - } - if (content != null) { - this.setContent(content); - } - if (options["extends"] == null) { - if (options.style != null) { - options["extends"] = options.style; - } else { - options["extends"] = Opentip.defaultStyle; - } - } - optionSources = [options]; - _tmpStyle = options; - while (_tmpStyle["extends"]) { - styleName = _tmpStyle["extends"]; - _tmpStyle = Opentip.styles[styleName]; - if (_tmpStyle == null) { - throw new Error("Invalid style: " + styleName); - } - optionSources.unshift(_tmpStyle); - if (!((_tmpStyle["extends"] != null) || styleName === "standard")) { - _tmpStyle["extends"] = "standard"; - } - } - options = (_ref = this.adapter).extend.apply(_ref, [{} - ].concat(__slice.call(optionSources))); - options.hideTriggers = (function() { - var _i, _len, _ref1, _results; - - _ref1 = options.hideTriggers; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - hideTrigger = _ref1[_i]; - _results.push(hideTrigger); - } - return _results; - })(); - if (options.hideTrigger && options.hideTriggers.length === 0) { - options.hideTriggers.push(options.hideTrigger); - } - _ref1 = ["tipJoint", "targetJoint", "stem"]; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - prop = _ref1[_i]; - if (options[prop] && typeof options[prop] === "string") { - options[prop] = new Opentip.Joint(options[prop]); - } - } - if (options.ajax && (options.ajax === true || !options.ajax)) { - if (this.adapter.tagName(this.triggerElement) === "A") { - options.ajax = this.adapter.attr(this.triggerElement, "href"); - } else { - options.ajax = false; - } - } - if (options.showOn === "click" && this.adapter.tagName(this.triggerElement) === "A") { - this.adapter.observe(this.triggerElement, "click", function(e) { - e.preventDefault(); - e.stopPropagation(); - return e.stopped = true; - }); - } - if (options.target) { - options.fixed = true; - } - if (options.stem === true) { - options.stem = new Opentip.Joint(options.tipJoint); - } - if (options.target === true) { - options.target = this.triggerElement; - } else if (options.target) { - options.target = this.adapter.wrap(options.target); - } - this.currentStem = options.stem; - if (options.delay == null) { - options.delay = options.showOn === "mouseover" ? 0.2 : 0; - } - if (options.targetJoint == null) { - options.targetJoint = new Opentip.Joint(options.tipJoint).flip(); - } - this.showTriggers = []; - this.showTriggersWhenVisible = []; - this.hideTriggers = []; - if (options.showOn && options.showOn !== "creation") { - this.showTriggers.push({ - element: this.triggerElement, - event: options.showOn - }); - } - if (options.ajaxCache != null) { - options.cache = options.ajaxCache; - delete options.ajaxCache; - } - this.options = options; - this.bound = {}; - _ref2 = ["prepareToShow", "prepareToHide", "show", "hide", "reposition"]; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - methodToBind = _ref2[_j]; - this.bound[methodToBind] = (function(methodToBind) { - return function() { - return _this[methodToBind].apply(_this, arguments); - }; - })(methodToBind); - } - this.adapter.domReady(function() { - _this.activate(); - if (_this.options.showOn === "creation") { - return _this.prepareToShow(); - } - }); - } - - Opentip.prototype._setup = function() { - var hideOn, hideTrigger, hideTriggerElement, i, _i, _j, _len, _len1, _ref, _ref1, _results; - - this.debug("Setting up the tooltip."); - this._buildContainer(); - this.hideTriggers = []; - _ref = this.options.hideTriggers; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - hideTrigger = _ref[i]; - hideTriggerElement = null; - hideOn = this.options.hideOn instanceof Array ? this.options.hideOn[i] : this.options.hideOn; - if (typeof hideTrigger === "string") { - switch (hideTrigger) { - case "trigger": - hideOn = hideOn || "mouseout"; - hideTriggerElement = this.triggerElement; - break; - case "tip": - hideOn = hideOn || "mouseover"; - hideTriggerElement = this.container; - break; - case "target": - hideOn = hideOn || "mouseover"; - hideTriggerElement = this.options.target; - break; - case "closeButton": - break; - default: - throw new Error("Unknown hide trigger: " + hideTrigger + "."); - } - } else { - hideOn = hideOn || "mouseover"; - hideTriggerElement = this.adapter.wrap(hideTrigger); - } - if (hideTriggerElement) { - this.hideTriggers.push({ - element: hideTriggerElement, - event: hideOn, - original: hideTrigger - }); - } - } - _ref1 = this.hideTriggers; - _results = []; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - hideTrigger = _ref1[_j]; - _results.push(this.showTriggersWhenVisible.push({ - element: hideTrigger.element, - event: "mouseover" - })); - } - return _results; - }; - - Opentip.prototype._buildContainer = function() { - this.container = this.adapter.create("
    "); - this.adapter.css(this.container, { - position: "absolute" - }); - if (this.options.ajax) { - this.adapter.addClass(this.container, this["class"].loading); - } - if (this.options.fixed) { - this.adapter.addClass(this.container, this["class"].fixed); - } - if (this.options.showEffect) { - this.adapter.addClass(this.container, "" + this["class"].showEffectPrefix + this.options.showEffect); - } - if (this.options.hideEffect) { - return this.adapter.addClass(this.container, "" + this["class"].hideEffectPrefix + this.options.hideEffect); - } - }; - - Opentip.prototype._buildElements = function() { - var headerElement, titleElement; - - this.tooltipElement = this.adapter.create("
    "); - this.backgroundCanvas = this.adapter.wrap(document.createElement("canvas")); - this.adapter.css(this.backgroundCanvas, { - position: "absolute" - }); - if (typeof G_vmlCanvasManager !== "undefined" && G_vmlCanvasManager !== null) { - G_vmlCanvasManager.initElement(this.adapter.unwrap(this.backgroundCanvas)); - } - headerElement = this.adapter.find(this.tooltipElement, "." + this["class"].header); - if (this.options.title) { - titleElement = this.adapter.create("

    "); - this.adapter.update(titleElement, this.options.title, this.options.escapeTitle); - this.adapter.append(headerElement, titleElement); - } - if (this.options.ajax && !this.loaded) { - this.adapter.append(this.tooltipElement, this.adapter.create("
    ")); - } - if (__indexOf.call(this.options.hideTriggers, "closeButton") >= 0) { - this.closeButtonElement = this.adapter.create("Close"); - this.adapter.append(headerElement, this.closeButtonElement); - } - this.adapter.append(this.container, this.backgroundCanvas); - this.adapter.append(this.container, this.tooltipElement); - this.adapter.append(document.body, this.container); - this._newContent = true; - return this.redraw = true; - }; - - Opentip.prototype.setContent = function(content) { - this.content = content; - this._newContent = true; - if (typeof this.content === "function") { - this._contentFunction = this.content; - this.content = ""; - } else { - this._contentFunction = null; - } - if (this.visible) { - return this._updateElementContent(); - } - }; - - Opentip.prototype._updateElementContent = function() { - var contentDiv; - - if (this._newContent || (!this.options.cache && this._contentFunction)) { - contentDiv = this.adapter.find(this.container, "." + this["class"].content); - if (contentDiv != null) { - if (this._contentFunction) { - this.debug("Executing content function."); - this.content = this._contentFunction(this); - } - this.adapter.update(contentDiv, this.content, this.options.escapeContent); - } - this._newContent = false; - } - this._storeAndLockDimensions(); - return this.reposition(); - }; - - Opentip.prototype._storeAndLockDimensions = function() { - var prevDimension; - - if (!this.container) { - return; - } - prevDimension = this.dimensions; - this.adapter.css(this.container, { - width: "auto", - left: "0px", - top: "0px" - }); - this.dimensions = this.adapter.dimensions(this.container); - this.dimensions.width += 1; - this.adapter.css(this.container, { - width: "" + this.dimensions.width + "px", - top: "" + this.currentPosition.top + "px", - left: "" + this.currentPosition.left + "px" - }); - if (!this._dimensionsEqual(this.dimensions, prevDimension)) { - this.redraw = true; - return this._draw(); - } - }; - - Opentip.prototype.activate = function() { - return this._setupObservers("hidden", "hiding"); - }; - - Opentip.prototype.deactivate = function() { - this.debug("Deactivating tooltip."); - this.hide(); - return this._setupObservers("-showing", "-visible", "-hidden", "-hiding"); - }; - - Opentip.prototype._setupObservers = function() { - var observeOrStop, removeObserver, state, states, trigger, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, _ref2, - _this = this; - - states = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - for (_i = 0, _len = states.length; _i < _len; _i++) { - state = states[_i]; - removeObserver = false; - if (state.charAt(0) === "-") { - removeObserver = true; - state = state.substr(1); - } - if (this.currentObservers[state] === !removeObserver) { - continue; - } - this.currentObservers[state] = !removeObserver; - observeOrStop = function() { - var args, _ref, _ref1; - - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - if (removeObserver) { - return (_ref = _this.adapter).stopObserving.apply(_ref, args); - } else { - return (_ref1 = _this.adapter).observe.apply(_ref1, args); - } - }; - switch (state) { - case "showing": - _ref = this.hideTriggers; - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - trigger = _ref[_j]; - observeOrStop(trigger.element, trigger.event, this.bound.prepareToHide); - } - observeOrStop((document.onresize != null ? document : window), "resize", this.bound.reposition); - observeOrStop(window, "scroll", this.bound.reposition); - break; - case "visible": - _ref1 = this.showTriggersWhenVisible; - for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) { - trigger = _ref1[_k]; - observeOrStop(trigger.element, trigger.event, this.bound.prepareToShow); - } - break; - case "hiding": - _ref2 = this.showTriggers; - for (_l = 0, _len3 = _ref2.length; _l < _len3; _l++) { - trigger = _ref2[_l]; - observeOrStop(trigger.element, trigger.event, this.bound.prepareToShow); - } - break; - case "hidden": - break; - default: - throw new Error("Unknown state: " + state); - } - } - return null; - }; - - Opentip.prototype.prepareToShow = function() { - this._abortHiding(); - this._abortShowing(); - if (this.visible) { - return; - } - this.debug("Showing in " + this.options.delay + "s."); - if (this.container == null) { - this._setup(); - } - if (this.options.group) { - Opentip._abortShowingGroup(this.options.group, this); - } - this.preparingToShow = true; - this._setupObservers("-hidden", "-hiding", "showing"); - this._followMousePosition(); - if (this.options.fixed && !this.options.target) { - this.initialMousePosition = mousePosition; - } - this.reposition(); - return this._showTimeoutId = this.setTimeout(this.bound.show, this.options.delay || 0); - }; - - Opentip.prototype.show = function() { - var _this = this; - - this._abortHiding(); - if (this.visible) { - return; - } - this._clearTimeouts(); - if (!this._triggerElementExists()) { - return this.deactivate(); - } - this.debug("Showing now."); - if (this.container == null) { - this._setup(); - } - if (this.options.group) { - Opentip._hideGroup(this.options.group, this); - } - this.visible = true; - this.preparingToShow = false; - if (this.tooltipElement == null) { - this._buildElements(); - } - this._updateElementContent(); - if (this.options.ajax && (!this.loaded || !this.options.cache)) { - this._loadAjax(); - } - this._searchAndActivateCloseButtons(); - this._startEnsureTriggerElement(); - this.adapter.css(this.container, { - zIndex: Opentip.lastZIndex++ - }); - this._setupObservers("-hidden", "-hiding", "-showing", "-visible", "showing", "visible"); - if (this.options.fixed && !this.options.target) { - this.initialMousePosition = mousePosition; - } - this.reposition(); - this.adapter.removeClass(this.container, this["class"].hiding); - this.adapter.removeClass(this.container, this["class"].hidden); - this.adapter.addClass(this.container, this["class"].goingToShow); - this.setCss3Style(this.container, { - transitionDuration: "0s" - }); - this.defer(function() { - var delay; - - if (!_this.visible || _this.preparingToHide) { - return; - } - _this.adapter.removeClass(_this.container, _this["class"].goingToShow); - _this.adapter.addClass(_this.container, _this["class"].showing); - delay = 0; - if (_this.options.showEffect && _this.options.showEffectDuration) { - delay = _this.options.showEffectDuration; - } - _this.setCss3Style(_this.container, { - transitionDuration: "" + delay + "s" - }); - _this._visibilityStateTimeoutId = _this.setTimeout(function() { - _this.adapter.removeClass(_this.container, _this["class"].showing); - return _this.adapter.addClass(_this.container, _this["class"].visible); - }, delay); - return _this._activateFirstInput(); - }); - return this._draw(); - }; - - Opentip.prototype._abortShowing = function() { - if (this.preparingToShow) { - this.debug("Aborting showing."); - this._clearTimeouts(); - this._stopFollowingMousePosition(); - this.preparingToShow = false; - return this._setupObservers("-showing", "-visible", "hiding", "hidden"); - } - }; - - Opentip.prototype.prepareToHide = function() { - this._abortShowing(); - this._abortHiding(); - if (!this.visible) { - return; - } - this.debug("Hiding in " + this.options.hideDelay + "s"); - this.preparingToHide = true; - this._setupObservers("-showing", "visible", "-hidden", "hiding"); - return this._hideTimeoutId = this.setTimeout(this.bound.hide, this.options.hideDelay); - }; - - Opentip.prototype.hide = function() { - var _this = this; - - this._abortShowing(); - if (!this.visible) { - return; - } - this._clearTimeouts(); - this.debug("Hiding!"); - this.visible = false; - this.preparingToHide = false; - this._stopEnsureTriggerElement(); - this._setupObservers("-showing", "-visible", "-hiding", "-hidden", "hiding", "hidden"); - if (!this.options.fixed) { - this._stopFollowingMousePosition(); - } - if (!this.container) { - return; - } - this.adapter.removeClass(this.container, this["class"].visible); - this.adapter.removeClass(this.container, this["class"].showing); - this.adapter.addClass(this.container, this["class"].goingToHide); - this.setCss3Style(this.container, { - transitionDuration: "0s" - }); - return this.defer(function() { - var hideDelay; - - _this.adapter.removeClass(_this.container, _this["class"].goingToHide); - _this.adapter.addClass(_this.container, _this["class"].hiding); - hideDelay = 0; - if (_this.options.hideEffect && _this.options.hideEffectDuration) { - hideDelay = _this.options.hideEffectDuration; - } - _this.setCss3Style(_this.container, { - transitionDuration: "" + hideDelay + "s" - }); - return _this._visibilityStateTimeoutId = _this.setTimeout(function() { - _this.adapter.removeClass(_this.container, _this["class"].hiding); - _this.adapter.addClass(_this.container, _this["class"].hidden); - _this.setCss3Style(_this.container, { - transitionDuration: "0s" - }); - if (_this.options.removeElementsOnHide) { - _this.debug("Removing HTML elements."); - _this.adapter.remove(_this.container); - delete _this.container; - return delete _this.tooltipElement; - } - }, hideDelay); - }); - }; - - Opentip.prototype._abortHiding = function() { - if (this.preparingToHide) { - this.debug("Aborting hiding."); - this._clearTimeouts(); - this.preparingToHide = false; - return this._setupObservers("-hiding", "showing", "visible"); - } - }; - - Opentip.prototype.reposition = function() { - var position, stem, _ref, - _this = this; - - position = this.getPosition(); - if (position == null) { - return; - } - stem = this.options.stem; - if (this.options.containInViewport) { - _ref = this._ensureViewportContainment(position), position = _ref.position, stem = _ref.stem; - } - if (this._positionsEqual(position, this.currentPosition)) { - return; - } - if (!(!this.options.stem || stem.eql(this.currentStem))) { - this.redraw = true; - } - this.currentPosition = position; - this.currentStem = stem; - this._draw(); - this.adapter.css(this.container, { - left: "" + position.left + "px", - top: "" + position.top + "px" - }); - return this.defer(function() { - var rawContainer, redrawFix; - - rawContainer = _this.adapter.unwrap(_this.container); - rawContainer.style.visibility = "hidden"; - redrawFix = rawContainer.offsetHeight; - return rawContainer.style.visibility = "visible"; - }); - }; - - Opentip.prototype.getPosition = function(tipJoint, targetJoint, stem) { - var additionalHorizontal, additionalVertical, offsetDistance, position, stemLength, targetDimensions, targetPosition, unwrappedTarget, _ref; - - if (!this.container) { - return; - } - if (tipJoint == null) { - tipJoint = this.options.tipJoint; - } - if (targetJoint == null) { - targetJoint = this.options.targetJoint; - } - position = {}; - if (this.options.target) { - targetPosition = this.adapter.offset(this.options.target); - targetDimensions = this.adapter.dimensions(this.options.target); - position = targetPosition; - if (targetJoint.right) { - unwrappedTarget = this.adapter.unwrap(this.options.target); - if (unwrappedTarget.getBoundingClientRect != null) { - position.left = unwrappedTarget.getBoundingClientRect().right + ((_ref = window.pageXOffset) != null ? _ref : document.body.scrollLeft); - } else { - position.left += targetDimensions.width; - } - } else if (targetJoint.center) { - position.left += Math.round(targetDimensions.width / 2); - } - if (targetJoint.bottom) { - position.top += targetDimensions.height; - } else if (targetJoint.middle) { - position.top += Math.round(targetDimensions.height / 2); - } - if (this.options.borderWidth) { - if (this.options.tipJoint.left) { - position.left += this.options.borderWidth; - } - if (this.options.tipJoint.right) { - position.left -= this.options.borderWidth; - } - if (this.options.tipJoint.top) { - position.top += this.options.borderWidth; - } else if (this.options.tipJoint.bottom) { - position.top -= this.options.borderWidth; - } - } - } else { - if (this.initialMousePosition) { - position = { - top: this.initialMousePosition.y, - left: this.initialMousePosition.x - }; - } else { - position = { - top: mousePosition.y, - left: mousePosition.x - }; - } - } - if (this.options.autoOffset) { - stemLength = this.options.stem ? this.options.stemLength : 0; - offsetDistance = stemLength && this.options.fixed ? 2 : 10; - additionalHorizontal = tipJoint.middle && !this.options.fixed ? 15 : 0; - additionalVertical = tipJoint.center && !this.options.fixed ? 15 : 0; - if (tipJoint.right) { - position.left -= offsetDistance + additionalHorizontal; - } else if (tipJoint.left) { - position.left += offsetDistance + additionalHorizontal; - } - if (tipJoint.bottom) { - position.top -= offsetDistance + additionalVertical; - } else if (tipJoint.top) { - position.top += offsetDistance + additionalVertical; - } - if (stemLength) { - if (stem == null) { - stem = this.options.stem; - } - if (stem.right) { - position.left -= stemLength; - } else if (stem.left) { - position.left += stemLength; - } - if (stem.bottom) { - position.top -= stemLength; - } else if (stem.top) { - position.top += stemLength; - } - } - } - position.left += this.options.offset[0]; - position.top += this.options.offset[1]; - if (tipJoint.right) { - position.left -= this.dimensions.width; - } else if (tipJoint.center) { - position.left -= Math.round(this.dimensions.width / 2); - } - if (tipJoint.bottom) { - position.top -= this.dimensions.height; - } else if (tipJoint.middle) { - position.top -= Math.round(this.dimensions.height / 2); - } - return position; - }; - - Opentip.prototype._ensureViewportContainment = function(position) { - var needsRepositioning, newSticksOut, originals, revertedX, revertedY, scrollOffset, stem, sticksOut, targetJoint, tipJoint, viewportDimensions, viewportPosition; - - stem = this.options.stem; - originals = { - position: position, - stem: stem - }; - if (!(this.visible && position)) { - return originals; - } - sticksOut = this._sticksOut(position); - if (!(sticksOut[0] || sticksOut[1])) { - return originals; - } - tipJoint = new Opentip.Joint(this.options.tipJoint); - if (this.options.targetJoint) { - targetJoint = new Opentip.Joint(this.options.targetJoint); - } - scrollOffset = this.adapter.scrollOffset(); - viewportDimensions = this.adapter.viewportDimensions(); - viewportPosition = [position.left - scrollOffset[0], position.top - scrollOffset[1]]; - needsRepositioning = false; - if (viewportDimensions.width >= this.dimensions.width) { - if (sticksOut[0]) { - needsRepositioning = true; - switch (sticksOut[0]) { - case this.STICKS_OUT_LEFT: - tipJoint.setHorizontal("left"); - if (this.options.targetJoint) { - targetJoint.setHorizontal("right"); - } - break; - case this.STICKS_OUT_RIGHT: - tipJoint.setHorizontal("right"); - if (this.options.targetJoint) { - targetJoint.setHorizontal("left"); - } - } - } - } - if (viewportDimensions.height >= this.dimensions.height) { - if (sticksOut[1]) { - needsRepositioning = true; - switch (sticksOut[1]) { - case this.STICKS_OUT_TOP: - tipJoint.setVertical("top"); - if (this.options.targetJoint) { - targetJoint.setVertical("bottom"); - } - break; - case this.STICKS_OUT_BOTTOM: - tipJoint.setVertical("bottom"); - if (this.options.targetJoint) { - targetJoint.setVertical("top"); - } - } - } - } - if (!needsRepositioning) { - return originals; - } - if (this.options.stem) { - stem = tipJoint; - } - position = this.getPosition(tipJoint, targetJoint, stem); - newSticksOut = this._sticksOut(position); - revertedX = false; - revertedY = false; - if (newSticksOut[0] && (newSticksOut[0] !== sticksOut[0])) { - revertedX = true; - tipJoint.setHorizontal(this.options.tipJoint.horizontal); - if (this.options.targetJoint) { - targetJoint.setHorizontal(this.options.targetJoint.horizontal); - } - } - if (newSticksOut[1] && (newSticksOut[1] !== sticksOut[1])) { - revertedY = true; - tipJoint.setVertical(this.options.tipJoint.vertical); - if (this.options.targetJoint) { - targetJoint.setVertical(this.options.targetJoint.vertical); - } - } - if (revertedX && revertedY) { - return originals; - } - if (revertedX || revertedY) { - if (this.options.stem) { - stem = tipJoint; - } - position = this.getPosition(tipJoint, targetJoint, stem); - } - return { - position: position, - stem: stem - }; - }; - - Opentip.prototype._sticksOut = function(position) { - var positionOffset, scrollOffset, sticksOut, viewportDimensions; - - scrollOffset = this.adapter.scrollOffset(); - viewportDimensions = this.adapter.viewportDimensions(); - positionOffset = [position.left - scrollOffset[0], position.top - scrollOffset[1]]; - sticksOut = [false, false]; - if (positionOffset[0] < 0) { - sticksOut[0] = this.STICKS_OUT_LEFT; - } else if (positionOffset[0] + this.dimensions.width > viewportDimensions.width) { - sticksOut[0] = this.STICKS_OUT_RIGHT; - } - if (positionOffset[1] < 0) { - sticksOut[1] = this.STICKS_OUT_TOP; - } else if (positionOffset[1] + this.dimensions.height > viewportDimensions.height) { - sticksOut[1] = this.STICKS_OUT_BOTTOM; - } - return sticksOut; - }; - - Opentip.prototype._draw = function() { - var backgroundCanvas, bulge, canvasDimensions, canvasPosition, closeButton, closeButtonInner, closeButtonOuter, ctx, drawCorner, drawLine, hb, position, stemBase, stemLength, _i, _len, _ref, _ref1, _ref2, - _this = this; - - if (!(this.backgroundCanvas && this.redraw)) { - return; - } - this.debug("Drawing background."); - this.redraw = false; - if (this.currentStem) { - _ref = ["top", "right", "bottom", "left"]; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - position = _ref[_i]; - this.adapter.removeClass(this.container, "stem-" + position); - } - this.adapter.addClass(this.container, "stem-" + this.currentStem.horizontal); - this.adapter.addClass(this.container, "stem-" + this.currentStem.vertical); - } - closeButtonInner = [0, 0]; - closeButtonOuter = [0, 0]; - if (__indexOf.call(this.options.hideTriggers, "closeButton") >= 0) { - closeButton = new Opentip.Joint(((_ref1 = this.currentStem) != null ? _ref1.toString() : void 0) === "top right" ? "top left" : "top right"); - closeButtonInner = [this.options.closeButtonRadius + this.options.closeButtonOffset[0], this.options.closeButtonRadius + this.options.closeButtonOffset[1]]; - closeButtonOuter = [this.options.closeButtonRadius - this.options.closeButtonOffset[0], this.options.closeButtonRadius - this.options.closeButtonOffset[1]]; - } - canvasDimensions = this.adapter.clone(this.dimensions); - canvasPosition = [0, 0]; - if (this.options.borderWidth) { - canvasDimensions.width += this.options.borderWidth * 2; - canvasDimensions.height += this.options.borderWidth * 2; - canvasPosition[0] -= this.options.borderWidth; - canvasPosition[1] -= this.options.borderWidth; - } - if (this.options.shadow) { - canvasDimensions.width += this.options.shadowBlur * 2; - canvasDimensions.width += Math.max(0, this.options.shadowOffset[0] - this.options.shadowBlur * 2); - canvasDimensions.height += this.options.shadowBlur * 2; - canvasDimensions.height += Math.max(0, this.options.shadowOffset[1] - this.options.shadowBlur * 2); - canvasPosition[0] -= Math.max(0, this.options.shadowBlur - this.options.shadowOffset[0]); - canvasPosition[1] -= Math.max(0, this.options.shadowBlur - this.options.shadowOffset[1]); - } - bulge = { - left: 0, - right: 0, - top: 0, - bottom: 0 - }; - if (this.currentStem) { - if (this.currentStem.left) { - bulge.left = this.options.stemLength; - } else if (this.currentStem.right) { - bulge.right = this.options.stemLength; - } - if (this.currentStem.top) { - bulge.top = this.options.stemLength; - } else if (this.currentStem.bottom) { - bulge.bottom = this.options.stemLength; - } - } - if (closeButton) { - if (closeButton.left) { - bulge.left = Math.max(bulge.left, closeButtonOuter[0]); - } else if (closeButton.right) { - bulge.right = Math.max(bulge.right, closeButtonOuter[0]); - } - if (closeButton.top) { - bulge.top = Math.max(bulge.top, closeButtonOuter[1]); - } else if (closeButton.bottom) { - bulge.bottom = Math.max(bulge.bottom, closeButtonOuter[1]); - } - } - canvasDimensions.width += bulge.left + bulge.right; - canvasDimensions.height += bulge.top + bulge.bottom; - canvasPosition[0] -= bulge.left; - canvasPosition[1] -= bulge.top; - if (this.currentStem && this.options.borderWidth) { - _ref2 = this._getPathStemMeasures(this.options.stemBase, this.options.stemLength, this.options.borderWidth), stemLength = _ref2.stemLength, stemBase = _ref2.stemBase; - } - backgroundCanvas = this.adapter.unwrap(this.backgroundCanvas); - backgroundCanvas.width = canvasDimensions.width; - backgroundCanvas.height = canvasDimensions.height; - this.adapter.css(this.backgroundCanvas, { - width: "" + backgroundCanvas.width + "px", - height: "" + backgroundCanvas.height + "px", - left: "" + canvasPosition[0] + "px", - top: "" + canvasPosition[1] + "px" - }); - ctx = backgroundCanvas.getContext("2d"); - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.clearRect(0, 0, backgroundCanvas.width, backgroundCanvas.height); - ctx.beginPath(); - ctx.fillStyle = this._getColor(ctx, this.dimensions, this.options.background, this.options.backgroundGradientHorizontal); - ctx.lineJoin = "miter"; - ctx.miterLimit = 500; - hb = this.options.borderWidth / 2; - if (this.options.borderWidth) { - ctx.strokeStyle = this.options.borderColor; - ctx.lineWidth = this.options.borderWidth; - } else { - stemLength = this.options.stemLength; - stemBase = this.options.stemBase; - } - if (stemBase == null) { - stemBase = 0; - } - drawLine = function(length, stem, first) { - if (first) { - ctx.moveTo(Math.max(stemBase, _this.options.borderRadius, closeButtonInner[0]) + 1 - hb, - hb); - } - if (stem) { - ctx.lineTo(length / 2 - stemBase / 2, - hb); - ctx.lineTo(length / 2, - stemLength - hb); - return ctx.lineTo(length / 2 + stemBase / 2, - hb); - } - }; - drawCorner = function(stem, closeButton, i) { - var angle1, angle2, innerWidth, offset; - - if (stem) { - ctx.lineTo( - stemBase + hb, 0 - hb); - ctx.lineTo(stemLength + hb, - stemLength - hb); - return ctx.lineTo(hb, stemBase - hb); - } else if (closeButton) { - offset = _this.options.closeButtonOffset; - innerWidth = closeButtonInner[0]; - if (i % 2 !== 0) { - offset = [offset[1], offset[0]]; - innerWidth = closeButtonInner[1]; - } - angle1 = Math.acos(offset[1] / _this.options.closeButtonRadius); - angle2 = Math.acos(offset[0] / _this.options.closeButtonRadius); - ctx.lineTo( - innerWidth + hb, - hb); - return ctx.arc(hb - offset[0], - hb + offset[1], _this.options.closeButtonRadius, - (Math.PI / 2 + angle1), angle2, false); - } else { - ctx.lineTo( - _this.options.borderRadius + hb, - hb); - return ctx.quadraticCurveTo(hb, - hb, hb, _this.options.borderRadius - hb); - } - }; - ctx.translate( - canvasPosition[0], - canvasPosition[1]); - ctx.save(); - (function() { - var cornerStem, i, lineLength, lineStem, positionIdx, positionX, positionY, rotation, _j, _ref3, _results; - - _results = []; - for (i = _j = 0, _ref3 = Opentip.positions.length / 2; 0 <= _ref3 ? _j < _ref3 : _j > _ref3; i = 0 <= _ref3 ? ++_j : --_j) { - positionIdx = i * 2; - positionX = i === 0 || i === 3 ? 0 : _this.dimensions.width; - positionY = i < 2 ? 0 : _this.dimensions.height; - rotation = (Math.PI / 2) * i; - lineLength = i % 2 === 0 ? _this.dimensions.width : _this.dimensions.height; - lineStem = new Opentip.Joint(Opentip.positions[positionIdx]); - cornerStem = new Opentip.Joint(Opentip.positions[positionIdx + 1]); - ctx.save(); - ctx.translate(positionX, positionY); - ctx.rotate(rotation); - drawLine(lineLength, lineStem.eql(_this.currentStem), i === 0); - ctx.translate(lineLength, 0); - drawCorner(cornerStem.eql(_this.currentStem), cornerStem.eql(closeButton), i); - _results.push(ctx.restore()); - } - return _results; - })(); - ctx.closePath(); - ctx.save(); - if (this.options.shadow) { - ctx.shadowColor = this.options.shadowColor; - ctx.shadowBlur = this.options.shadowBlur; - ctx.shadowOffsetX = this.options.shadowOffset[0]; - ctx.shadowOffsetY = this.options.shadowOffset[1]; - } - ctx.fill(); - ctx.restore(); - if (this.options.borderWidth) { - ctx.stroke(); - } - ctx.restore(); - if (closeButton) { - return (function() { - var crossCenter, crossHeight, crossWidth, hcs, linkCenter; - - crossWidth = crossHeight = _this.options.closeButtonRadius * 2; - if (closeButton.toString() === "top right") { - linkCenter = [_this.dimensions.width - _this.options.closeButtonOffset[0], _this.options.closeButtonOffset[1]]; - crossCenter = [linkCenter[0] + hb, linkCenter[1] - hb]; - } else { - linkCenter = [_this.options.closeButtonOffset[0], _this.options.closeButtonOffset[1]]; - crossCenter = [linkCenter[0] - hb, linkCenter[1] - hb]; - } - ctx.translate(crossCenter[0], crossCenter[1]); - hcs = _this.options.closeButtonCrossSize / 2; - ctx.save(); - ctx.beginPath(); - ctx.strokeStyle = _this.options.closeButtonCrossColor; - ctx.lineWidth = _this.options.closeButtonCrossLineWidth; - ctx.lineCap = "round"; - ctx.moveTo( - hcs, - hcs); - ctx.lineTo(hcs, hcs); - ctx.stroke(); - ctx.beginPath(); - ctx.moveTo(hcs, - hcs); - ctx.lineTo( - hcs, hcs); - ctx.stroke(); - ctx.restore(); - return _this.adapter.css(_this.closeButtonElement, { - left: "" + (linkCenter[0] - hcs - _this.options.closeButtonLinkOverscan) + "px", - top: "" + (linkCenter[1] - hcs - _this.options.closeButtonLinkOverscan) + "px", - width: "" + (_this.options.closeButtonCrossSize + _this.options.closeButtonLinkOverscan * 2) + "px", - height: "" + (_this.options.closeButtonCrossSize + _this.options.closeButtonLinkOverscan * 2) + "px" - }); - })(); - } - }; - - Opentip.prototype._getPathStemMeasures = function(outerStemBase, outerStemLength, borderWidth) { - var angle, distanceBetweenTips, halfAngle, hb, rhombusSide, stemBase, stemLength; - - hb = borderWidth / 2; - halfAngle = Math.atan((outerStemBase / 2) / outerStemLength); - angle = halfAngle * 2; - rhombusSide = hb / Math.sin(angle); - distanceBetweenTips = 2 * rhombusSide * Math.cos(halfAngle); - stemLength = hb + outerStemLength - distanceBetweenTips; - if (stemLength < 0) { - throw new Error("Sorry but your stemLength / stemBase ratio is strange."); - } - stemBase = (Math.tan(halfAngle) * stemLength) * 2; - return { - stemLength: stemLength, - stemBase: stemBase - }; - }; - - Opentip.prototype._getColor = function(ctx, dimensions, color, horizontal) { - var colorStop, gradient, i, _i, _len; - - if (horizontal == null) { - horizontal = false; - } - if (typeof color === "string") { - return color; - } - if (horizontal) { - gradient = ctx.createLinearGradient(0, 0, dimensions.width, 0); - } else { - gradient = ctx.createLinearGradient(0, 0, 0, dimensions.height); - } - for (i = _i = 0, _len = color.length; _i < _len; i = ++_i) { - colorStop = color[i]; - gradient.addColorStop(colorStop[0], colorStop[1]); - } - return gradient; - }; - - Opentip.prototype._searchAndActivateCloseButtons = function() { - var element, _i, _len, _ref; - - _ref = this.adapter.findAll(this.container, "." + this["class"].close); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - element = _ref[_i]; - this.hideTriggers.push({ - element: this.adapter.wrap(element), - event: "click" - }); - } - if (this.currentObservers.showing) { - this._setupObservers("-showing", "showing"); - } - if (this.currentObservers.visible) { - return this._setupObservers("-visible", "visible"); - } - }; - - Opentip.prototype._activateFirstInput = function() { - var input; - - input = this.adapter.unwrap(this.adapter.find(this.container, "input, textarea")); - return input != null ? typeof input.focus === "function" ? input.focus() : void 0 : void 0; - }; - - Opentip.prototype._followMousePosition = function() { - if (!this.options.fixed) { - return Opentip._observeMousePosition(this.bound.reposition); - } - }; - - Opentip.prototype._stopFollowingMousePosition = function() { - if (!this.options.fixed) { - return Opentip._stopObservingMousePosition(this.bound.reposition); - } - }; - - Opentip.prototype._clearShowTimeout = function() { - return clearTimeout(this._showTimeoutId); - }; - - Opentip.prototype._clearHideTimeout = function() { - return clearTimeout(this._hideTimeoutId); - }; - - Opentip.prototype._clearTimeouts = function() { - clearTimeout(this._visibilityStateTimeoutId); - this._clearShowTimeout(); - return this._clearHideTimeout(); - }; - - Opentip.prototype._triggerElementExists = function() { - var el; - - el = this.adapter.unwrap(this.triggerElement); - while (el.parentNode) { - if (el.parentNode.tagName === "BODY") { - return true; - } - el = el.parentNode; - } - return false; - }; - - Opentip.prototype._loadAjax = function() { - var _this = this; - - if (this.loading) { - return; - } - this.loaded = false; - this.loading = true; - this.adapter.addClass(this.container, this["class"].loading); - this.setContent(""); - this.debug("Loading content from " + this.options.ajax); - return this.adapter.ajax({ - url: this.options.ajax, - method: this.options.ajaxMethod, - onSuccess: function(responseText) { - _this.debug("Loading successful."); - _this.adapter.removeClass(_this.container, _this["class"].loading); - return _this.setContent(responseText); - }, - onError: function(error) { - var message; - - message = _this.options.ajaxErrorMessage; - _this.debug(message, error); - _this.setContent(message); - return _this.adapter.addClass(_this.container, _this["class"].ajaxError); - }, - onComplete: function() { - _this.adapter.removeClass(_this.container, _this["class"].loading); - _this.loading = false; - _this.loaded = true; - _this._searchAndActivateCloseButtons(); - _this._activateFirstInput(); - return _this.reposition(); - } - }); - }; - - Opentip.prototype._ensureTriggerElement = function() { - if (!this._triggerElementExists()) { - this.deactivate(); - return this._stopEnsureTriggerElement(); - } - }; - - Opentip.prototype._ensureTriggerElementInterval = 1000; - - Opentip.prototype._startEnsureTriggerElement = function() { - var _this = this; - - return this._ensureTriggerElementTimeoutId = setInterval((function() { - return _this._ensureTriggerElement(); - }), this._ensureTriggerElementInterval); - }; - - Opentip.prototype._stopEnsureTriggerElement = function() { - return clearInterval(this._ensureTriggerElementTimeoutId); - }; - - return Opentip; - - })(); - - vendors = ["khtml", "ms", "o", "moz", "webkit"]; - - Opentip.prototype.setCss3Style = function(element, styles) { - var prop, value, vendor, vendorProp, _results; - - element = this.adapter.unwrap(element); - _results = []; - for (prop in styles) { - if (!__hasProp.call(styles, prop)) - continue; - value = styles[prop]; - if (element.style[prop] != null) { - _results.push(element.style[prop] = value); - } else { - _results.push((function() { - var _i, _len, _results1; - - _results1 = []; - for (_i = 0, _len = vendors.length; _i < _len; _i++) { - vendor = vendors[_i]; - vendorProp = "" + (this.ucfirst(vendor)) + (this.ucfirst(prop)); - if (element.style[vendorProp] != null) { - _results1.push(element.style[vendorProp] = value); - } else { - _results1.push(void 0); - } - } - return _results1; - }).call(this)); - } - } - return _results; - }; - - Opentip.prototype.defer = function(func) { - return setTimeout(func, 0); - }; - - Opentip.prototype.setTimeout = function(func, seconds) { - return setTimeout(func, seconds ? seconds * 1000 : 0); - }; - - Opentip.prototype.ucfirst = function(string) { - if (string == null) { - return ""; - } - return string.charAt(0).toUpperCase() + string.slice(1); - }; - - Opentip.prototype.dasherize = function(string) { - return string.replace(/([A-Z])/g, function(_, character) { - return "-" + (character.toLowerCase()); - }); - }; - - mousePositionObservers = []; - - mousePosition = { - x: 0, - y: 0 - }; - - mouseMoved = function(e) { - var observer, _i, _len, _results; - - mousePosition = Opentip.adapter.mousePosition(e); - _results = []; - for (_i = 0, _len = mousePositionObservers.length; _i < _len; _i++) { - observer = mousePositionObservers[_i]; - _results.push(observer()); - } - return _results; - }; - - Opentip.followMousePosition = function() { - return Opentip.adapter.observe(document.body, "mousemove", mouseMoved); - }; - - Opentip._observeMousePosition = function(observer) { - return mousePositionObservers.push(observer); - }; - - Opentip._stopObservingMousePosition = function(removeObserver) { - var observer; - - return mousePositionObservers = (function() { - var _i, _len, _results; - - _results = []; - for (_i = 0, _len = mousePositionObservers.length; _i < _len; _i++) { - observer = mousePositionObservers[_i]; - if (observer !== removeObserver) { - _results.push(observer); - } - } - return _results; - })(); - }; - - Opentip.Joint = (function() { - function Joint(pointerString) { - if (pointerString == null) { - return; - } - if (pointerString instanceof Opentip.Joint) { - pointerString = pointerString.toString(); - } - this.set(pointerString); - this; - } - - Joint.prototype.set = function(string) { - string = string.toLowerCase(); - this.setHorizontal(string); - this.setVertical(string); - return this; - }; - - Joint.prototype.setHorizontal = function(string) { - var i, valid, _i, _j, _len, _len1, _results; - - valid = ["left", "center", "right"]; - for (_i = 0, _len = valid.length; _i < _len; _i++) { - i = valid[_i]; - if (~string.indexOf(i)) { - this.horizontal = i.toLowerCase(); - } - } - if (this.horizontal == null) { - this.horizontal = "center"; - } - _results = []; - for (_j = 0, _len1 = valid.length; _j < _len1; _j++) { - i = valid[_j]; - _results.push(this[i] = this.horizontal === i ? i : void 0); - } - return _results; - }; - - Joint.prototype.setVertical = function(string) { - var i, valid, _i, _j, _len, _len1, _results; - - valid = ["top", "middle", "bottom"]; - for (_i = 0, _len = valid.length; _i < _len; _i++) { - i = valid[_i]; - if (~string.indexOf(i)) { - this.vertical = i.toLowerCase(); - } - } - if (this.vertical == null) { - this.vertical = "middle"; - } - _results = []; - for (_j = 0, _len1 = valid.length; _j < _len1; _j++) { - i = valid[_j]; - _results.push(this[i] = this.vertical === i ? i : void 0); - } - return _results; - }; - - Joint.prototype.eql = function(pointer) { - return (pointer != null) && this.horizontal === pointer.horizontal && this.vertical === pointer.vertical; - }; - - Joint.prototype.flip = function() { - var flippedIndex, positionIdx; - - positionIdx = Opentip.position[this.toString(true)]; - flippedIndex = (positionIdx + 4) % 8; - this.set(Opentip.positions[flippedIndex]); - return this; - }; - - Joint.prototype.toString = function(camelized) { - var horizontal, vertical; - - if (camelized == null) { - camelized = false; - } - vertical = this.vertical === "middle" ? "" : this.vertical; - horizontal = this.horizontal === "center" ? "" : this.horizontal; - if (vertical && horizontal) { - if (camelized) { - horizontal = Opentip.prototype.ucfirst(horizontal); - } else { - horizontal = " " + horizontal; - } - } - return "" + vertical + horizontal; - }; - - return Joint; - - })(); - - Opentip.prototype._positionsEqual = function(posA, posB) { - return (posA != null) && (posB != null) && posA.left === posB.left && posA.top === posB.top; - }; - - Opentip.prototype._dimensionsEqual = function(dimA, dimB) { - return (dimA != null) && (dimB != null) && dimA.width === dimB.width && dimA.height === dimB.height; - }; - - Opentip.prototype.debug = function() { - var args; - - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - if (Opentip.debug && ((typeof console !== "undefined" && console !== null ? console.debug : void 0) != null)) { - args.unshift("#" + this.id + " |"); - return console.debug.apply(console, args); - } - }; - - Opentip.findElements = function() { - var adapter, content, element, optionName, optionValue, options, _i, _len, _ref, _results; - - adapter = Opentip.adapter; - _ref = adapter.findAll(document.body, "[data-ot]"); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - element = _ref[_i]; - options = {}; - content = adapter.data(element, "ot"); - if (content === "" || content === "true" || content === "yes") { - content = adapter.attr(element, "title"); - adapter.attr(element, "title", ""); - } - content = content || ""; - for (optionName in Opentip.styles.standard) { - optionValue = adapter.data(element, "ot" + (Opentip.prototype.ucfirst(optionName))); - if (optionValue != null) { - if (optionValue === "yes" || optionValue === "true" || optionValue === "on") { - optionValue = true; - } else if (optionValue === "no" || optionValue === "false" || optionValue === "off") { - optionValue = false; - } - options[optionName] = optionValue; - } - } - _results.push(new Opentip(element, content, options)); - } - return _results; - }; - - Opentip.version = "2.4.6"; - - Opentip.debug = false; - - Opentip.lastId = 0; - - Opentip.lastZIndex = 100; - - Opentip.tips = []; - - Opentip._abortShowingGroup = function(group, originatingOpentip) { - var opentip, _i, _len, _ref, _results; - - _ref = Opentip.tips; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - opentip = _ref[_i]; - if (opentip !== originatingOpentip && opentip.options.group === group) { - _results.push(opentip._abortShowing()); - } else { - _results.push(void 0); - } - } - return _results; - }; - - Opentip._hideGroup = function(group, originatingOpentip) { - var opentip, _i, _len, _ref, _results; - - _ref = Opentip.tips; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - opentip = _ref[_i]; - if (opentip !== originatingOpentip && opentip.options.group === group) { - _results.push(opentip.hide()); - } else { - _results.push(void 0); - } - } - return _results; - }; - - Opentip.adapters = {}; - - Opentip.adapter = null; - - firstAdapter = true; - - Opentip.addAdapter = function(adapter) { - Opentip.adapters[adapter.name] = adapter; - if (firstAdapter) { - Opentip.adapter = adapter; - adapter.domReady(Opentip.findElements); - adapter.domReady(Opentip.followMousePosition); - return firstAdapter = false; - } - }; - - Opentip.positions = ["top", "topRight", "right", "bottomRight", "bottom", "bottomLeft", "left", "topLeft"]; - - Opentip.position = {}; - - _ref = Opentip.positions; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - position = _ref[i]; - Opentip.position[position] = i; - } - - Opentip.styles = { - standard: { - "extends": null, - title: void 0, - escapeTitle: true, - escapeContent: false, - className: "standard", - stem: true, - delay: null, - hideDelay: 0.1, - fixed: false, - showOn: "mouseover", - hideTrigger: "trigger", - hideTriggers: [], - hideOn: null, - removeElementsOnHide: false, - offset: [0, - 0], - containInViewport: true, - autoOffset: true, - showEffect: "appear", - hideEffect: "fade", - showEffectDuration: 0.3, - hideEffectDuration: 0.2, - stemLength: 5, - stemBase: 8, - tipJoint: "top left", - target: null, - targetJoint: null, - cache: true, - ajax: false, - ajaxMethod: "GET", - ajaxErrorMessage: "There was a problem downloading the content.", - group: null, - style: null, - background: "#fff18f", - backgroundGradientHorizontal: false, - closeButtonOffset: [5, - 5], - closeButtonRadius: 7, - closeButtonCrossSize: 4, - closeButtonCrossColor: "#d2c35b", - closeButtonCrossLineWidth: 1.5, - closeButtonLinkOverscan: 6, - borderRadius: 5, - borderWidth: 1, - borderColor: "#f2e37b", - shadow: true, - shadowBlur: 10, - shadowOffset: [3, - 3], - shadowColor: "rgba(0, 0, 0, 0.1)" - }, - glass: { - "extends": "standard", - className: "glass", - background: [[0, "rgba(252, 252, 252, 0.8)"], [0.5, "rgba(255, 255, 255, 0.8)"], [0.5, "rgba(250, 250, 250, 0.9)"], [1, "rgba(245, 245, 245, 0.9)"]], - borderColor: "#eee", - closeButtonCrossColor: "rgba(0, 0, 0, 0.2)", - borderRadius: 15, - closeButtonRadius: 10, - closeButtonOffset: [8, 8] - }, - dark: { - "extends": "standard", - className: "dark", - borderRadius: 13, - borderColor: "#444", - closeButtonCrossColor: "rgba(240, 240, 240, 1)", - shadowColor: "rgba(0, 0, 0, 0.3)", - shadowOffset: [2, 2], - background: [[0, "rgba(30, 30, 30, 0.7)"], [0.5, "rgba(30, 30, 30, 0.8)"], [0.5, "rgba(10, 10, 10, 0.8)"], [1, "rgba(10, 10, 10, 0.9)"]] - }, - alert: { - "extends": "standard", - className: "alert", - borderRadius: 1, - borderColor: "#AE0D11", - closeButtonCrossColor: "rgba(255, 255, 255, 1)", - shadowColor: "rgba(0, 0, 0, 0.3)", - shadowOffset: [2, 2], - background: [[0, "rgba(203, 15, 19, 0.7)"], [0.5, "rgba(203, 15, 19, 0.8)"], [0.5, "rgba(189, 14, 18, 0.8)"], [1, "rgba(179, 14, 17, 0.9)"]] - } - }; - - Opentip.defaultStyle = "standard"; - - if (typeof module !== "undefined" && module !== null) { - module.exports = Opentip; - } else { - window.Opentip = Opentip; - } - -}); -require.register("enyo-opentip/lib/adapter-component.js", function(exports, require, module) { - var $, Adapter, _ref, - __slice = [].slice; - - $ = (_ref = window.jQuery) != null ? _ref : require("jquery"); - - module.exports = Adapter = (function() { - function Adapter() {} - - Adapter.prototype.name = "component"; - - Adapter.prototype.domReady = function(callback) { - return $(callback); - }; - - Adapter.prototype.create = function(html) { - return $(html); - }; - - Adapter.prototype.wrap = function(element) { - element = $(element); - if (element.length > 1) { - throw new Error("Multiple elements provided."); - } - return element; - }; - - Adapter.prototype.unwrap = function(element) { - return $(element)[0]; - }; - - Adapter.prototype.tagName = function(element) { - return this.unwrap(element).tagName; - }; - - Adapter.prototype.attr = function() { - var args, element, _ref1; - - element = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - return (_ref1 = $(element)).attr.apply(_ref1, args); - }; - - Adapter.prototype.data = function() { - var args, element, _ref1; - - element = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - return (_ref1 = $(element)).data.apply(_ref1, args); - }; - - Adapter.prototype.find = function(element, selector) { - return $(element).find(selector)[0]; - }; - - Adapter.prototype.findAll = function(element, selector) { - return $(element).find(selector); - }; - - Adapter.prototype.update = function(element, content, escape) { - element = $(element); - if (escape) { - return element.text(content); - } else { - return element.html(content); - } - }; - - Adapter.prototype.append = function(element, child) { - return $(element).append(child); - }; - - Adapter.prototype.remove = function(element) { - return $(element).remove(); - }; - - Adapter.prototype.addClass = function(element, className) { - return $(element).addClass(className); - }; - - Adapter.prototype.removeClass = function(element, className) { - return $(element).removeClass(className); - }; - - Adapter.prototype.css = function(element, properties) { - return $(element).css(properties); - }; - - Adapter.prototype.dimensions = function(element) { - return { - width: $(element).outerWidth(), - height: $(element).outerHeight() - }; - }; - - Adapter.prototype.scrollOffset = function() { - return [window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop]; - }; - - Adapter.prototype.viewportDimensions = function() { - return { - width: document.documentElement.clientWidth, - height: document.documentElement.clientHeight - }; - }; - - Adapter.prototype.mousePosition = function(e) { - if (e == null) { - return null; - } - return { - x: e.pageX, - y: e.pageY - }; - }; - - Adapter.prototype.offset = function(element) { - var offset; - - offset = $(element).offset(); - return { - left: offset.left, - top: offset.top - }; - }; - - Adapter.prototype.observe = function(element, eventName, observer) { - return $(element).bind(eventName, observer); - }; - - Adapter.prototype.stopObserving = function(element, eventName, observer) { - return $(element).unbind(eventName, observer); - }; - - Adapter.prototype.ajax = function(options) { - var _ref1, _ref2; - - if (options.url == null) { - throw new Error("No url provided"); - } - return $.ajax({ - url: options.url, - type: (_ref1 = (_ref2 = options.method) != null ? _ref2.toUpperCase() : void 0) != null ? _ref1 : "GET" - }).done(function(content) { - return typeof options.onSuccess === "function" ? options.onSuccess(content) : void 0; - }).fail(function(request) { - return typeof options.onError === "function" ? options.onError("Server responded with status " + request.status) : void 0; - }).always(function() { - return typeof options.onComplete === "function" ? options.onComplete() : void 0; - }); - }; - - Adapter.prototype.clone = function(object) { - return $.extend({}, object); - }; - - Adapter.prototype.extend = function() { - var sources, target; - - target = arguments[0], sources = 2 <= arguments.length ? __slice.call(arguments, 1) : []; - return $.extend.apply($, [target].concat(__slice.call(sources))); - }; - - return Adapter; - - })(); - -}); -require.register("component-jquery/index.js", function(exports, require, module) { - /*! - * jQuery JavaScript Library v1.9.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2013-2-4 - */ - (function( window, undefined ) { - - // Can't do this because several apps including ASP.NET trace - // the stack via arguments.caller.callee and Firefox dies if - // you try to trace through "use strict" call chains. (#13335) - // Support: Firefox 18+ - //"use strict"; - var - // The deferred used on DOM ready - readyList, - // A central reference to the root jQuery(document) - rootjQuery, - // Support: IE<9 - // For `typeof node.method` instead of `node.method !== undefined` - core_strundefined = typeof undefined, - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - location = window.location, - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - // Map over the $ in case of overwrite - _$ = window.$, - // [[Class]] -> type pairs - class2type = {}, - // List of deleted data cache ids, so we can reuse them - core_deletedIds = [], - core_version = "1.9.1", - // Save a reference to some core methods - core_concat = core_deletedIds.concat, - core_push = core_deletedIds.push, - core_slice = core_deletedIds.slice, - core_indexOf = core_deletedIds.indexOf, - core_toString = class2type.toString, - core_hasOwn = class2type.hasOwnProperty, - core_trim = core_version.trim, - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - // Used for matching numbers - core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - // Used for splitting on whitespace - core_rnotwhite = /\S+/g, - // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, - rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }, - // The ready event handler - completed = function( event ) { - - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } - }, - // Clean-up method for dom ready events - detach = function() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } - }; - - jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: core_version, - - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return core_slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - // Return a 'clean' array - this.toArray() : - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; - }, - - slice: function() { - return this.pushStack( core_slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( - 1 ); - }, - - eq: function( i ) { - var len = this.length, - j = + i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: core_push, - sort: [].sort, - splice: [].splice - }; - - // Give the init function the jQuery prototype for later instantiation - jQuery.fn.init.prototype = jQuery.fn; - - jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; - }; - - jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger("ready").off("ready"); - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - return !isNaN( parseFloat(obj) ) && isFinite( obj ); - }, - - type: function( obj ) { - if ( obj == null ) { - return String( obj ); - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ core_toString.call(obj) ] || "object" : - typeof obj; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !core_hasOwn.call(obj, "constructor") && - !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || core_hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw new Error( msg ); - }, - - // data: string of html - // context (optional): If specified, the fragment will be created in this context, defaults to document - // keepScripts (optional): If true, will include scripts passed in the html string - parseHTML: function( data, context, keepScripts ) { - if ( !data || typeof data !== "string" ) { - return null; - } - if ( typeof context === "boolean" ) { - keepScripts = context; - context = false; - } - context = context || document; - - var parsed = rsingleTag.exec( data ), - scripts = !keepScripts && []; - - // Single tag - if ( parsed ) { - return [ context.createElement( parsed[1] ) ]; - } - - parsed = jQuery.buildFragment( [ data ], context, scripts ); - if ( scripts ) { - jQuery( scripts ).remove(); - } - return jQuery.merge( [], parsed.childNodes ); - }, - - parseJSON: function( data ) { - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - if ( data === null ) { - return data; - } - - if ( typeof data === "string" ) { - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - if ( data ) { - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return ( new Function( "return " + data ) )(); - } - } - } - - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - parseXML: function( data ) { - var xml, tmp; - if ( !data || typeof data !== "string" ) { - return null; - } - try { - if ( window.DOMParser ) { - // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { - // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - } catch ( e ) { - xml = undefined; - } - if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - })( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Use native String.trim function wherever possible - trim: core_trim && !core_trim.call("\uFEFF\xA0") ? - function( text ) { - return text == null ? - "" : - core_trim.call( text ); - } - : - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - core_push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( core_indexOf ) { - return core_indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return - 1; - }, - - merge: function( first, second ) { - var l = second.length, - i = first.length, - j = 0; - - if ( typeof l === "number" ) { - for ( ; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var retVal, - ret = [], - i = 0, - length = elems.length; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return core_concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = core_slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - // Multifunctional method to get and set values of a collection - // The value/s can optionally be executed if it's a function - access: function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; - }, - - now: function() { - return ( new Date() ).getTime(); - } - }); - - jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch (e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch (e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); - }; - - // Populate the class2type map - jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); - }); - - function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || type !== "function" && - ( length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj ); - } - - // All jQuery objects should point back to these - rootjQuery = jQuery(document); - // String to Object options format cache - var optionsCache = {}; - - // Convert String-formatted options into Object-formatted ones and store in cache - function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; - } - - /* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ - jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > - 1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > - 1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( list && ( !fired || stack ) ) { - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; - }; - jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ - ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var action = tuple[ 0 ], - fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ - ) { - var i = 0, - resolveValues = core_slice.call( arguments ), - length = resolveValues.length, - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } - }); - jQuery.support = (function() { - - var support, all, a, - input, select, fragment, - opt, eventName, isSupported, i, - div = document.createElement("div"); - - // Setup - div.setAttribute( "className", "t" ); - div.innerHTML = "
    IDValue
    a"; - - // Support tests won't run in some limited or non-browser environments - all = div.getElementsByTagName("*"); - a = div.getElementsByTagName("a")[ 0 ]; - if ( !all || !a || !all.length ) { - return {}; - } - - // First batch of tests - select = document.createElement("select"); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName("input")[ 0 ]; - - a.style.cssText = "top:1px;float:left;opacity:.5"; - support = { - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: div.firstChild.nodeType === 3, - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: a.getAttribute("href") === "/a", - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.5/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) - checkOn: !!input.value, - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Tests for enctype support on a form (#6743) - enctype: !!document.createElement("form").enctype, - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", - - // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode - boxModel: document.compatMode === "CSS1Compat", - - // Will be defined later - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true, - boxSizingReliable: true, - pixelPosition: false - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Support: IE<9 - try { - delete div.test; - } catch ( e ) { - support.deleteExpando = false; - } - - // Check if we can trust getAttribute("value") - input = document.createElement("input"); - input.setAttribute( "value", "" ); - support.input = input.getAttribute( "value" ) === ""; - - // Check if an input maintains its value after becoming a radio - input.value = "t"; - input.setAttribute( "type", "radio" ); - support.radioValue = input.value === "t"; - - // #11217 - WebKit loses check when the name is after the checked attribute - input.setAttribute( "checked", "t" ); - input.setAttribute( "name", "t" ); - - fragment = document.createDocumentFragment(); - fragment.appendChild( input ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php - for ( i in { - submit: true, - change: true, - focusin: true - }) { - div.setAttribute( eventName = "on" + i, "t" ); - - support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; - } - - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - // Run tests that need a body at doc ready - jQuery(function() { - var container, marginDiv, tds, - divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - container = document.createElement("div"); - container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; - - body.appendChild( container ).appendChild( div ); - - // Support: IE8 - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - div.innerHTML = "
    t
    "; - tds = div.getElementsByTagName("td"); - tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Support: IE8 - // Check if empty table cells still have offsetWidth/Height - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - // Check box-sizing and margin behavior - div.innerHTML = ""; - div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; - support.boxSizing = ( div.offsetWidth === 4 ); - support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); - - // Use window.getComputedStyle because jsdom on node.js will break without it. - if ( window.getComputedStyle ) { - support.pixelPosition = ( window.getComputedStyle( div, null ) || {}).top !== "1%"; - support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { - width: "4px" - }).width === "4px"; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - marginDiv = div.appendChild( document.createElement("div") ); - marginDiv.style.cssText = div.style.cssText = divReset; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - - support.reliableMarginRight = - !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {}).marginRight ); - } - - if ( typeof div.style.zoom !== core_strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.innerHTML = ""; - div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); - - // Support: IE6 - // Check if elements with layout shrink-wrap their children - div.style.display = "block"; - div.innerHTML = "
    "; - div.firstChild.style.width = "5px"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); - - if ( support.inlineBlockNeedsLayout ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); - - // Null elements to avoid leaks in IE - container = div = tds = marginDiv = null; - }); - - // Null elements to avoid leaks in IE - all = select = fragment = opt = a = input = null; - - return support; - })(); - - var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, - rmultiDash = /([A-Z])/g; - - function internalData( elem, name, data, pvt /* Internal Use Only */ - ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, ret, - internalKey = jQuery.expando, - getByName = typeof name === "string", - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // Avoids exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( getByName ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; - } - - function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var i, l, thisCache, - isNode = elem.nodeType, - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - for ( i = 0, l = name.length; i < l; i++ ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - } else if ( jQuery.support.deleteExpando || cache != cache.window ) { - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } - } - - jQuery.extend({ - cache: {}, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - // Do not set data on non-element because it will not be cleared (#8335). - if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { - return false; - } - - var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; - - // nodes accept data unless otherwise specified; rejection can be conditional - return !noData || noData !== true && elem.getAttribute("classid") === noData; - } - }); - - jQuery.fn.extend({ - data: function( key, value ) { - var attrs, name, - elem = this[0], - i = 0, - data = null; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - attrs = elem.attributes; - for ( ; i < attrs.length; i++ ) { - name = attrs[i].name; - - if ( !name.indexOf( "data-" ) ) { - name = jQuery.camelCase( name.slice(5) ); - - dataAttr( elem, name, data[ name ] ); - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return jQuery.access( this, function( value ) { - - if ( value === undefined ) { - // Try to fetch any internally stored data first - return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; - } - - this.each(function() { - jQuery.data( this, key, value ); - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } - }); - - function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - + data + "" === data ? + data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; - } - - // checks a cache object for emptiness - function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; - } - jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - hooks.cur = fn; - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } - }); - - jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } - }); - var nodeHook, boolHook, - rclass = /[\t\r\n]/g, - rreturn = /\r/g, - rfocusable = /^(?:input|select|textarea|button|object)$/i, - rclickable = /^(?:a|area)$/i, - rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, - ruseDefault = /^(?:checked|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - getSetInput = jQuery.support.input; - - jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch ( e ) {} - }); - }, - - addClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call( this, j, this.className ) ); - }); - } - - if ( proceed ) { - // The disjunction here is for better compressibility (see removeClass) - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - " " - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - elem.className = jQuery.trim( cur ); - - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = arguments.length === 0 || typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call( this, j, this.className ) ); - }); - } - if ( proceed ) { - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - "" - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - elem.className = value ? jQuery.trim( cur ) : ""; - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.match( core_rnotwhite ) || []; - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space separated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - // Toggle whole class name - } else if ( type === core_strundefined || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // If the element has a class name or if we're passed "false", - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var ret, hooks, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var val, - self = jQuery(this); - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } - }); - - jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, option, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? - max : - one ? index : 0; - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // oldIE doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - // Don't return options that are disabled or in a disabled optgroup - ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && - ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = - 1; - } - return values; - } - } - }, - - attr: function( elem, name, value ) { - var hooks, notxml, ret, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === core_strundefined ) { - return jQuery.prop( elem, name, value ); - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( notxml ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - - } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, value + "" ); - return value; - } - - } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - // In IE9+, Flash objects don't have .getAttribute (#12945) - // Support: IE9+ - if ( typeof elem.getAttribute !== core_strundefined ) { - ret = elem.getAttribute( name ); - } - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var name, propName, - i = 0, - attrNames = value && value.match( core_rnotwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( (name = attrNames[i++]) ) { - propName = jQuery.propFix[ name ] || name; - - // Boolean attributes get special treatment (#10870) - if ( rboolean.test( name ) ) { - // Set corresponding property to false for boolean attributes - // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 - if ( !getSetAttribute && ruseDefault.test( name ) ) { - elem[ jQuery.camelCase( "default-" + name ) ] = - elem[ propName ] = false; - } else { - elem[ propName ] = false; - } - - // See #9699 for explanation of this approach (setting first, then removal) - } else { - jQuery.attr( elem, name, "" ); - } - - elem.removeAttribute( getSetAttribute ? name : propName ); - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to default in case type is set after value during creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return ( elem[ name ] = value ); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabindex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - } - } - }); - - // Hook for boolean attributes - boolHook = { - get: function( elem, name ) { - var - // Use .prop to determine if this attribute is understood as boolean - prop = jQuery.prop( elem, name ), - // Fetch it accordingly - attr = typeof prop === "boolean" && elem.getAttribute( name ), - detail = typeof prop === "boolean" ? - getSetInput && getSetAttribute ? - attr != null : - // oldIE fabricates an empty string for missing boolean attributes - // and conflates checked/selected into attroperties - ruseDefault.test( name ) ? - elem[ jQuery.camelCase( "default-" + name ) ] : - !!attr : - // fetch an attribute node for properties not recognized as boolean - elem.getAttributeNode( name ); - - return detail && detail.value !== false ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { - // IE<8 needs the *property* name - elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); - - // Use defaultChecked and defaultSelected for oldIE - } else { - elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; - } - - return name; - } - }; - - // fix oldIE value attroperty - if ( !getSetInput || !getSetAttribute ) { - jQuery.attrHooks.value = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return jQuery.nodeName( elem, "input" ) ? - // Ignore the value *property* by using defaultValue - elem.defaultValue : - ret && ret.specified ? ret.value : undefined; - }, - set: function( elem, value, name ) { - if ( jQuery.nodeName( elem, "input" ) ) { - // Does not return so that setAttribute is also used - elem.defaultValue = value; - } else { - // Use nodeHook if defined (#1954); otherwise setAttribute is fine - return nodeHook && nodeHook.set( elem, value, name ); - } - } - }; - } - - // IE6/7 do not support getting/setting some attributes with get/setAttribute - if ( !getSetAttribute ) { - - // Use this for any attribute in IE6/7 - // This fixes almost every IE6/7 issue - nodeHook = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? - ret.value : - undefined; - }, - set: function( elem, value, name ) { - // Set the existing or create a new attribute node - var ret = elem.getAttributeNode( name ); - if ( !ret ) { - elem.setAttributeNode( - (ret = elem.ownerDocument.createAttribute( name )) - ); - } - - ret.value = value += ""; - - // Break association with cloned elements by also using setAttribute (#9646) - return name === "value" || value === elem.getAttribute( name ) ? - value : - undefined; - } - }; - - // Set contenteditable to false on removals(#10429) - // Setting to empty string throws an error as an invalid value - jQuery.attrHooks.contenteditable = { - get: nodeHook.get, - set: function( elem, value, name ) { - nodeHook.set( elem, value === "" ? false : value, name ); - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); - } - - - // Some attributes require a special call on IE - // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx - if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret == null ? undefined : ret; - } - }); - }); - - // href/src property should get the full normalized URL (#10299/#12915) - jQuery.each([ "href", "src" ], function( i, name ) { - jQuery.propHooks[ name ] = { - get: function( elem ) { - return elem.getAttribute( name, 4 ); - } - }; - }); - } - - if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Note: IE uppercases css property names, but if we were to .toLowerCase() - // .cssText, that would destroy case senstitivity in URL's, like in "background" - return elem.style.cssText || undefined; - }, - set: function( elem, value ) { - return ( elem.style.cssText = value + "" ); - } - }; - } - - // Safari mis-reports the default selected property of an option - // Accessing the parent's selectedIndex property fixes it - if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - return null; - } - }); - } - - // IE6/7 call enctype encoding - if ( !jQuery.support.enctype ) { - jQuery.propFix.enctype = "encoding"; - } - - // Radios and checkboxes getter/setter - if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); - } - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }); - }); - var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - - function returnTrue() { - return true; - } - - function returnFalse() { - return false; - } - - /* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ - jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = core_hasOwn.call( event, "type" ) ? event.type : event, - namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - event.isTrigger = true; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {})[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { - event.preventDefault(); - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = core_slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {})[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur != this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ - elem: cur, - handlers: matches - }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ - elem: this, - handlers: handlers.slice( delegateCount ) - }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - } - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== document.activeElement && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === document.activeElement && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - - beforeunload: { - postDispatch: function( event ) { - - // Even when returnValue equals to undefined Firefox will still show alert - if ( event.result !== undefined ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - }); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } - }; - - jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === core_strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - - jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; - }; - - // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding - // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html - jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - } - }; - - // Create mouseenter/leave events using mouseover/out and event-time checks - jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" - }, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; - }); - - // IE submit delegation - if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; - } - - // IE change delegation and checkbox/radio fix - if ( !jQuery.support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; - } - - // Create "bubbling" focus and blur events - if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ - focus: "focusin", - blur: "focusout" - }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0, - handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - }); - } - - jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ - one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } - }); - /*! - * Sizzle CSS Selector Engine - * Copyright 2012 jQuery Foundation and other contributors - * Released under the MIT license - * http://sizzlejs.com/ - */ - (function( window, undefined ) { - - var i, - cachedruns, - Expr, - getText, - isXML, - compile, - hasDuplicate, - outermostContext, - // Local document vars - setDocument, - document, - docElem, - documentIsXML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - sortOrder, - // Instance-specific data - expando = "sizzle" + - (new Date()), - preferredDoc = window.document, - support = {}, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - // Array methods - arr = [], - pop = arr.pop, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return - 1; - }, - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors - operators = "([*^$|!~]?=)", - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + - "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", - // Prefer arguments quoted, - // then not containing pseudos/brackets, - // then attribute selectors/non-parenthetical expressions, - // then anything else - // These preferences are here to reduce the number of selectors - // needing tokenize in the PSEUDO preFilter - pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - rsibling = /[\x20\t\r\n\f]*[+~]/, - rnative = /^[^{]+\{\s*\[native code/, - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - rescape = /'|\\/g, - rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, - funescape = function( _, escaped ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - return high !== high ? - escaped : - // BMP codepoint - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - - // Use a stripped-down slice if we can't use a native one - try { - slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; - } catch ( e ) { - slice = function( i ) { - var elem, - results = []; - while ( (elem = this[i++]) ) { - results.push( elem ); - } - return results; - }; - } - - /** - * For feature detection - * @param {Function} fn The function to test for native support - */ - function isNative( fn ) { - return rnative.test( fn + "" ); - } - - /** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ - function createCache() { - var cache, - keys = []; - - return (cache = function( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key += " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key ] = value); - }); - } - - /** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ - function markFunction( fn ) { - fn[ expando ] = true; - return fn; - } - - /** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ - function assert( fn ) { - var div = document.createElement("div"); - - try { - return fn( div ); - } catch (e) { - return false; - } finally { - // release memory in IE - div = null; - } - } - - function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( !documentIsXML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { - push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); - return results; - } - } - - // QSA path - if ( support.qsa && !rbuggyQSA.test(selector) ) { - old = true; - nid = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && context.parentNode || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, slice.call( newContext.querySelectorAll( - newSelector - ), 0 ) ); - return results; - } catch (qsaError) {} finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); - } - - /** - * Detect xml - * @param {Element|Object} elem An element or a document - */ - isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; - }; - - /** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ - setDocument = Sizzle.setDocument = function( node ) { - var doc = node ? node.ownerDocument || node : preferredDoc; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsXML = isXML( doc ); - - // Check if getElementsByTagName("*") returns only elements - support.tagNameNoComments = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if attributes should be retrieved by attribute nodes - support.attributes = assert(function( div ) { - div.innerHTML = ""; - var type = typeof div.lastChild.getAttribute("multiple"); - // IE8 returns a string for some attributes even when not present - return type !== "boolean" && type !== "string"; - }); - - // Check if getElementsByClassName can be trusted - support.getByClassName = assert(function( div ) { - // Opera can't find a second classname (in 9.6) - div.innerHTML = ""; - if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { - return false; - } - - // Safari 3.2 caches class attributes and doesn't catch changes - div.lastChild.className = "e"; - return div.getElementsByClassName("e").length === 2; - }); - - // Check if getElementById returns elements by name - // Check if getElementsByName privileges form controls or returns elements by ID - support.getByName = assert(function( div ) { - // Inject content - div.id = expando + 0; - div.innerHTML = "
    "; - docElem.insertBefore( div, docElem.firstChild ); - - // Test - var pass = doc.getElementsByName && - // buggy browsers will return fewer than the correct 2 - doc.getElementsByName( expando ).length === 2 + - // buggy browsers will return more than the correct 0 - doc.getElementsByName( expando + 0 ).length; - support.getIdNotName = !doc.getElementById( expando ); - - // Cleanup - docElem.removeChild( div ); - - return pass; - }); - - // IE6/7 return modified attributes - Expr.attrHandle = assert(function( div ) { - div.innerHTML = ""; - return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && - div.firstChild.getAttribute("href") === "#"; - }) ? - {} : - { - "href": function( elem ) { - return elem.getAttribute( "href", 2 ); - }, - "type": function( elem ) { - return elem.getAttribute("type"); - } - }; - - // ID find and filter - if ( support.getIdNotName ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - - return m ? - m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? - [m] : - undefined : - []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.tagNameNoComments ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Name - Expr.find["NAME"] = support.getByName && function( tag, context ) { - if ( typeof context.getElementsByName !== strundefined ) { - return context.getElementsByName( name ); - } - }; - - // Class - Expr.find["CLASS"] = support.getByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { - return context.getElementsByClassName( className ); - } - }; - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21), - // no need to also add to buggyMatches since matches checks buggyQSA - // A support test would require too much code (would include document ready) - rbuggyQSA = [ ":focus" ]; - - if ( (support.qsa = isNative(doc.querySelectorAll)) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explictly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // IE8 - Some boolean attributes are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - - // Opera 10-12/IE8 - ^= $= *= and empty values - // Should not select anything - div.innerHTML = ""; - if ( div.querySelectorAll("[i^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || - docElem.mozMatchesSelector || - docElem.webkitMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - // Document order sorting - sortOrder = docElem.compareDocumentPosition ? - function( a, b ) { - var compare; - - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { - if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { - if ( a === doc || contains( preferredDoc, a ) ) { - return - 1; - } - if ( b === doc || contains( preferredDoc, b ) ) { - return 1; - } - return 0; - } - return compare & 4 ? - 1 : 1; - } - - return a.compareDocumentPosition ? - 1 : 1; - } : - function( a, b ) { - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Parentless nodes are either documents or disconnected - } else if ( !aup || !bup ) { - return a === doc ? - 1 : - b === doc ? 1 : - aup ? - 1 : - bup ? 1 : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? - 1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - // Always assume the presence of duplicates if sort doesn't - // pass them to our comparison function (as in Google Chrome). - hasDuplicate = false; - [0, 0].sort( sortOrder ); - support.detectDuplicates = hasDuplicate; - - return document; - }; - - Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); - }; - - Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - // rbuggyQSA always contains :focus, so no need for an existence check - if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } - - return Sizzle( expr, document, null, [elem] ).length > 0; - }; - - Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); - }; - - Sizzle.attr = function( elem, name ) { - var val; - - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - if ( !documentIsXML ) { - name = name.toLowerCase(); - } - if ( (val = Expr.attrHandle[ name ]) ) { - return val( elem ); - } - if ( documentIsXML || support.attributes ) { - return elem.getAttribute( name ); - } - return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? - name : - val && val.specified ? val.value : null; - }; - - Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); - }; - - // Document sorting and removing duplicates - Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - i = 1, - j = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( ; (elem = results[i]); i++ ) { - if ( elem === results[ i - 1 ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - return results; - }; - - function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return - 1; - } - } - } - - return a ? 1 : - 1; - } - - // Returns a function to use in pseudos for input types - function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; - } - - // Returns a function to use in pseudos for buttons - function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; - } - - // Returns a function to use in pseudos for positionals - function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = + argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); - } - - /** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ - getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - for ( ; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (see #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; - }; - - Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - find: {}, - - relative: { - ">": { - dir: "parentNode", - first: true - }, - " ": { - dir: "parentNode" - }, - "+": { - dir: "previousSibling", - first: true - }, - "~": { - dir: "previousSibling" - } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = + ( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = + ( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[5] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[4] ) { - match[2] = match[4]; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeName ) { - if ( nodeName === "*" ) { - return function() { - return true; - }; - } - - nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > - 1 : - operator === "$=" ? check && result.slice( - check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > - 1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( - 4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > - 1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifider - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsXML ? - elem.getAttribute("xml:lang") || elem.getAttribute("lang") : - elem.lang) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } - while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), - // not comment, processing instructions, or others - // Thanks to Diego Perini for the nodeName shortcut - // Greater than "@" means alpha characters (specifically not starting with "#" or "?") - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } - }; - - // Add button/input type pseudos - for ( i in { - radio: true, - checkbox: true, - file: true, - password: true, - image: true - }) { - Expr.pseudos[ i ] = createInputPseudo( i ); - } - for ( i in { - submit: true, - reset: true - }) { - Expr.pseudos[ i ] = createButtonPseudo( i ); - } - - function tokenize( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( tokens = [] ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push( { - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); - } - - function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; - } - - function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var data, cache, outerCache, - dirkey = dirruns + " " + doneName; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { - if ( (data = cache[1]) === true || data === cachedruns ) { - return data === true; - } - } else { - cache = outerCache[ dir ] = [ dirkey ]; - cache[1] = matcher( elem, context, xml ) || cachedruns; - if ( cache[1] === true ) { - return true; - } - } - } - } - } - }; - } - - function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; - } - - function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; - } - - function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - // ...intermediate processing is necessary - [] : - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > - 1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); - } - - function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > - 1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } - ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); - } - - function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - // A counter to specify which element is currently being matched - var matcherCachedRuns = 0, - bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, expandContext ) { - var elem, j, matcher, - setMatched = [], - matchedCount = 0, - i = "0", - unmatched = seed && [], - outermost = expandContext != null, - contextBackup = outermostContext, - // We must always have either seed elements or context - elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); - - if ( outermost ) { - outermostContext = context !== document && context; - cachedruns = matcherCachedRuns; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - for ( ; (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - cachedruns = ++matcherCachedRuns; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; - } - - compile = Sizzle.compile = function( selector, group /* Internal Use Only */ - ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !group ) { - group = tokenize( selector ); - } - i = group.length; - while ( i-- ) { - cached = matcherFromTokens( group[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - } - return cached; - }; - - function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; - } - - function select( selector, context, results, seed ) { - var i, tokens, token, type, find, - match = tokenize( selector ); - - if ( !seed ) { - // Try to minimize operations if there is only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && !documentIsXML && - Expr.relative[ tokens[1].type ] ) { - - context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; - if ( !context ) { - return results; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && context.parentNode || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, slice.call( seed, 0 ) ); - return results; - } - - break; - } - } - } - } - } - - // Compile and execute a filtering function - // Provide `match` to avoid retokenization if we modified the selector above - compile( selector, match )( - seed, - context, - documentIsXML, - results, - rsibling.test( selector ) - ); - return results; - } - - // Deprecated - Expr.pseudos["nth"] = Expr.pseudos["eq"]; - - // Easy API for creating new setFilters - function setFilters() {} - Expr.filters = setFilters.prototype = Expr.pseudos; - Expr.setFilters = new setFilters(); - - // Initialize with the default document - setDocument(); - - // Override sizzle attribute retrieval - Sizzle.attr = jQuery.attr; - jQuery.find = Sizzle; - jQuery.expr = Sizzle.selectors; - jQuery.expr[":"] = jQuery.expr.pseudos; - jQuery.unique = Sizzle.uniqueSort; - jQuery.text = Sizzle.getText; - jQuery.isXMLDoc = Sizzle.isXML; - jQuery.contains = Sizzle.contains; - - - })( window ); - var runtil = /Until$/, - rparentsprev = /^(?:parents|prev(?:Until|All))/, - isSimple = /^.[^:#\[\.,]*$/, - rneedsContext = jQuery.expr.match.needsContext, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - - jQuery.fn.extend({ - find: function( selector ) { - var i, ret, self, - len = this.length; - - if ( typeof selector !== "string" ) { - self = this; - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - ret = []; - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, this[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; - return ret; - }, - - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false) ); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true) ); - }, - - is: function( selector ) { - return !!selector && ( - typeof selector === "string" ? - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - rneedsContext.test( selector ) ? - jQuery( selector, this.context ).index( this[0] ) >= 0 : - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - ret = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - cur = this[i]; - - while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { - if ( pos ? pos.index(cur) > - 1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - } - cur = cur.parentNode; - } - } - - return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : - 1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( jQuery.unique(all) ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } - }); - - jQuery.fn.andSelf = jQuery.fn.addBack; - - function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } - while ( cur && cur.nodeType !== 1 ); - - return cur; - } - - jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {}).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } - }, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( this.length > 1 && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret ); - }; - }); - - jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } - }); - - // Implement the identical functionality for filter and not - function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem ) { - return ( elem === qualifier ) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; - }); - } - function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; - } - - var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /
    ", "
    " ], - tr: [ 2, "", "
    " ], - col: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
    ", "
    " ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - - wrapMap.optgroup = wrapMap.option; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; - wrapMap.th = wrapMap.td; - - jQuery.fn.extend({ - text: function( value ) { - return jQuery.access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - wrapAll: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapAll( html.call(this, i) ); - }); - } - - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); - - if ( this[0].parentNode ) { - wrap.insertBefore( this[0] ); - } - - wrap.map(function() { - var elem = this; - - while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { - elem = elem.firstChild; - } - - return elem; - }).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapInner( html.call(this, i) ); - }); - } - - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - }); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each(function(i) { - jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); - } - }).end(); - }, - - append: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.insertBefore( elem, this.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - // keepData is for internal use only--do not document - remove: function( selector, keepData ) { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function () { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return jQuery.access( this, function( value ) { - var elem = this[0] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch (e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function( value ) { - var isFunc = jQuery.isFunction( value ); - - // Make sure that the elements are removed from the DOM before they are inserted - // this can help fix replacing a parent with child elements - if ( !isFunc && typeof value !== "string" ) { - value = jQuery( value ).not( this ).detach(); - } - - return this.domManip( [ value ], true, function( elem ) { - var next = this.nextSibling, - parent = this.parentNode; - - if ( parent ) { - jQuery( this ).remove(); - parent.insertBefore( elem, next ); - } - }); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, table, callback ) { - - // Flatten any nested arrays - args = core_concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, table ? self.html() : undefined ); - } - self.domManip( args, table, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - table = table && jQuery.nodeName( first, "tr" ); - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( - table && jQuery.nodeName( this[i], "table" ) ? - findOrAppend( this[i], "tbody" ) : - this[i], - node, - i - ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Hope ajax is available... - jQuery.ajax({ - url: node.src, - type: "GET", - dataType: "script", - async: false, - global: false, - "throws": true - }); - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } - }); - - function findOrAppend( elem, tag ) { - return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); - } - - // Replace/restore the type attribute of script elements for safe DOM manipulation - function disableScript( elem ) { - var attr = elem.getAttributeNode("type"); - elem.type = ( attr && attr.specified ) + "/" + elem.type; - return elem; - } - function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; - } - - // Mark scripts as having already been evaluated - function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } - } - - function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } - } - - function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } - } - - jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" - }, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - core_push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; - }); - - function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; - } - - // Used in buildFragment, fixes the defaultChecked property - function fixDefaultChecked( elem ) { - if ( manipulation_rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } - } - - jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - // Ensure a safe fragment - safe = createSafeFragment( context ), - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !jQuery.support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - // String was a bare or - wrap[1] === "
    " && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !jQuery.support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== - 1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ - acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = jQuery.support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== core_strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - core_deletedIds.push( id ); - } - } - } - } - } - }); - var iframe, getStyles, curCSS, - ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity\s*=\s*([^)]*)/, - rposition = /^(top|right|bottom|left)$/, - // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" - // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rmargin = /^margin/, - rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), - rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), - rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), - elemdisplay = { - BODY: "block" - }, - cssShow = { - position: "absolute", - visibility: "hidden", - display: "block" - }, - cssNormalTransform = { - letterSpacing: 0, - fontWeight: 400 - }, - cssExpand = [ "Top", "Right", "Bottom", "Left" ], - cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; - - // return a css property mapped to a potentially vendor prefixed property - function vendorPropName( style, name ) { - - // shortcut for names that are not vendor prefixed - if ( name in style ) { - return name; - } - - // check for vendor prefixed names - var capName = name.charAt(0).toUpperCase() + name.slice(1), - origName = name, - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in style ) { - return name; - } - } - - return origName; - } - - function isHidden( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - } - - function showHide( elements, show ) { - var display, elem, hidden, - values = [], - index = 0, - length = elements.length; - - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - values[ index ] = jQuery._data( elem, "olddisplay" ); - display = elem.style.display; - if ( show ) { - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !values[ index ] && display === "none" ) { - elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( elem.style.display === "" && isHidden( elem ) ) { - values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); - } - } else { - - if ( !values[ index ] ) { - hidden = isHidden( elem ); - - if ( display && display !== "none" || !hidden ) { - jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); - } - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( index = 0; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - if ( !show || elem.style.display === "none" || elem.style.display === "" ) { - elem.style.display = show ? values[ index ] || "" : "none"; - } - } - - return elements; - } - - jQuery.fn.extend({ - css: function( name, value ) { - return jQuery.access( this, function( elem, name, value ) { - var len, styles, - map = {}, - i = 0; - - if ( jQuery.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - }, - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - var bool = typeof state === "boolean"; - - return this.each(function() { - if ( bool ? state : isHidden( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - }); - } - }); - - jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Exclude the following css properties to add px - cssNumber: { - "columnCount": true, - "fillOpacity": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - style = elem.style; - - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); - // Fixes bug #9237 - type = "number"; - } - - // Make sure that NaN and null values aren't set. See: #7116 - if ( value == null || type === "number" && isNaN( value ) ) { - return; - } - - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } - - // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, - // but it would mean to define eight (for every problematic property) identical functions - if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - - // Wrapped to prevent IE from throwing errors when 'invalid' values are provided - // Fixes bug #5509 - try { - style[ name ] = value; - } catch (e) {} - } - - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var num, val, hooks, - origName = jQuery.camelCase( name ); - - // Make sure that we're working with the right name - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - //convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Return, converting to number if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; - } - return val; - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; - } - }); - - // NOTE: we've included the "window" in window.getComputedStyle - // because jsdom on node.js will break without it. - if ( window.getComputedStyle ) { - getStyles = function( elem ) { - return window.getComputedStyle( elem, null ); - }; - - curCSS = function( elem, name, _computed ) { - var width, minWidth, maxWidth, - computed = _computed || getStyles( elem ), - // getPropertyValue is only needed for .css('filter') in IE9, see #12537 - ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, - style = elem.style; - - if ( computed ) { - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right - // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels - // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret; - }; - } else if ( document.documentElement.currentStyle ) { - getStyles = function( elem ) { - return elem.currentStyle; - }; - - curCSS = function( elem, name, _computed ) { - var left, rs, rsLeft, - computed = _computed || getStyles( elem ), - ret = computed ? computed[ name ] : undefined, - style = elem.style; - - // Avoid setting ret to empty string here - // so we don't default to auto - if ( ret == null && style && style[ name ] ) { - ret = style[ name ]; - } - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - // but not position css attributes, as those are proportional to the parent element instead - // and we can't measure the parent instead because it might trigger a "stacking dolls" problem - if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { - - // Remember the original values - left = style.left; - rs = elem.runtimeStyle; - rsLeft = rs && rs.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - rs.left = elem.currentStyle.left; - } - style.left = name === "fontSize" ? "1em" : ret; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - rs.left = rsLeft; - } - } - - return ret === "" ? "auto" : ret; - }; - } - - function setPositiveNumber( elem, value, subtract ) { - var matches = rnumsplit.exec( value ); - return matches ? - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : - value; - } - - function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i = extra === ( isBorderBox ? "border" : "content" ) ? - // If we already have the right measurement, avoid augmentation - 4 : - // Otherwise initialize for horizontal or vertical properties - name === "width" ? 1 : 0, - val = 0; - - for ( ; i < 4; i += 2 ) { - // both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // at this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - // at this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // at this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; - } - - function getWidthOrHeight( elem, name, extra ) { - - // Start with offset property, which is equivalent to the border-box value - var valueIsBorderBox = true, - val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - styles = getStyles( elem ), - isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // some non-html elements return undefined for offsetWidth, so check for null/undefined - // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 - // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 - if ( val <= 0 || val == null ) { - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name, styles ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; - } - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; - } - - // we need the check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - } - - // use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; - } - - // Try to determine the default display value of an element - function css_defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - // Use the already-created iframe if possible - iframe = ( iframe || - jQuery(" + + + + + + + diff --git a/libraries/webInterface/views/layouts/main.handlebars b/libraries/webInterface/views/layouts/main.handlebars new file mode 100644 index 0000000..4390384 --- /dev/null +++ b/libraries/webInterface/views/layouts/main.handlebars @@ -0,0 +1,19 @@ + + + + + Reality + + + + + + + {{{body}}} + + diff --git a/package.json b/package.json index 0890d57..920911d 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,16 @@ "cors": "^2.5.0", "decompress-zip": "^0.1.0", "express": "^4.11.0", + "express-handlebars": "^3.0.0", "formidable": "^1.0.16", "fs-extra": "^0.12.0", "fstream": "^1.0.4", "getmac": "^1.0.6", "ip": "^0.3.2", + "kodi-ws": "^2.3.0", "lodash": "^3.10.1", + "monaco-editor": "^0.5.1", + "mpd": "^1.3.0", "node-watch": "^0.3.4", "onoff": "^1.0.3", "serialport": "^3.0.1", @@ -24,15 +28,13 @@ "socket.io-client": "^1.2.0", "unzip": "^0.1.11", "watch": "^0.13.0", - "xml2js": "^0.4.4", - "mpd": "^1.3.0", - "kodi-ws": "^2.3.0" + "xml2js": "^0.4.4" }, "repository": { "type": "git", "url": "https://github.com/openhybrid/object" }, - "devDependencies": { }, + "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js" diff --git a/server.js b/server.js index 4cc60b2..359d87e 100644 --- a/server.js +++ b/server.js @@ -111,9 +111,20 @@ var dgram = require('dgram'); // UDP Broadcasting library var ip = require("ip"); // get the device IP address library var bodyParser = require('body-parser'); // body parsing middleware var express = require('express'); // Web Sever library +var exphbs = require('express-handlebars'); // View Template library + // constrution for the werbserver using express combined with socket.io var webServer = express(); +webServer.set('views', 'libraries/webInterface/views'); + +webServer.engine('handlebars', exphbs({ + defaultLayout: 'main', + layoutsDir: 'libraries/webInterface/views/layouts', + partialsDir: 'libraries/webInterface/views/partials' +})); +webServer.set('view engine', 'handlebars'); + var http = require('http').createServer(webServer).listen(serverPort, function () { cout('webserver + socket.io is listening on port: ' + serverPort); }); @@ -803,6 +814,7 @@ function objectWebServer() { if (globalVariables.developer === true) { webServer.use("/libraries", express.static(__dirname + '/libraries/webInterface/')); + webServer.use("/libraries/monaco-editor/", express.static(__dirname + '/node_modules/monaco-editor/')); } // use the cors cross origin REST model @@ -977,6 +989,22 @@ function objectWebServer() { res.send(HybridObjectsWebFrontend.uploadTargetContent(req.params.id, __dirname, objectInterfaceFolder)); }); + webServer.get(objectInterfaceFolder + 'edit/:id/*', function (req, res) { + HybridObjectsWebFrontend.editContent(req, res); + }); + + webServer.put(objectInterfaceFolder + 'edit/:id/*', function (req, res) { + // TODO insecure, requires sanitization of path + console.log('PUT', req.path, req.body.content); + fs.writeFile(__dirname + '/' + req.path.replace('edit', 'objects'), req.body.content, function(err) { + if (err) { + throw err; + } + // Success! + res.end(''); + }); + }); + // sends the target page for the object :id // **************************************************************************************************************** webServer.get(objectInterfaceFolder + 'target/:id', function (req, res) { From fc47d3d05d1d49a3cbd82a693259262b6294ca04 Mon Sep 17 00:00:00 2001 From: James Hobin Date: Tue, 28 Jun 2016 11:03:28 -0400 Subject: [PATCH 184/266] Load editor files in parallel; Resize iframe based on content --- libraries/webInterface/js/editor.js | 82 +++++++++++++++++++---------- 1 file changed, 53 insertions(+), 29 deletions(-) diff --git a/libraries/webInterface/js/editor.js b/libraries/webInterface/js/editor.js index d2579c2..9f794df 100644 --- a/libraries/webInterface/js/editor.js +++ b/libraries/webInterface/js/editor.js @@ -1,43 +1,67 @@ require.config({paths: {'vs': '/libraries/monaco-editor/min/vs'}}); var container = document.getElementById('editor-container'); +var previewFrame = document.getElementById('preview-frame'); var xhr = new XMLHttpRequest(); var saveTimeout = null; +var editor = null; xhr.open('GET', path); xhr.onload = function() { - require(['vs/editor/editor.main'], function() { - var editor = monaco.editor.create(container, { - value: xhr.responseText, - language: 'html' - }); - - editor.addListener('contentChanged', updatePreview); - var previewFrame = document.getElementById('preview-frame'); - - function updatePreview() { - var value = editor.getValue(); - if (saveTimeout) { - window.clearTimeout(saveTimeout); - } - saveTimeout = window.setTimeout(save, 250); - } + if (editor) { + editor.setValue(xhr.responseText); + } +}; - function save() { - var saveXhr = new XMLHttpRequest(); - saveXhr.open('PUT', document.location); - saveXhr.onload = function() { - previewFrame.src = previewFrame.src; - }; - var formData = new FormData(); - formData.append('content', editor.getValue()); - saveXhr.setRequestHeader('Content-Type', 'application/json'); - saveXhr.send(JSON.stringify({content: editor.getValue()})); - saveTimeout = null; - } +require(['vs/editor/editor.main'], function() { + var value = ''; + if (xhr.readyState === 4) { // if xhr is done + value = xhr.responseText; + } + + editor = monaco.editor.create(container, { + value: value, + language: 'html' }); -}; + + editor.addListener('contentChanged', updatePreview); + + function updatePreview() { + var value = editor.getValue(); + if (saveTimeout) { + window.clearTimeout(saveTimeout); + } + saveTimeout = window.setTimeout(save, 250); + } + + function save() { + var saveXhr = new XMLHttpRequest(); + saveXhr.open('PUT', document.location); + saveXhr.onload = function() { + previewFrame.src = previewFrame.src; + }; + var formData = new FormData(); + formData.append('content', editor.getValue()); + saveXhr.setRequestHeader('Content-Type', 'application/json'); + saveXhr.send(JSON.stringify({content: editor.getValue()})); + saveTimeout = null; + } +}); + +previewFrame.addEventListener('load', function() { + var data = { + pos: 'fake', + obj: 'also fake' + }; + previewFrame.contentWindow.postMessage(JSON.stringify(data), '*'); +}); + +window.addEventListener('message', function(e) { + var data = JSON.parse(e.data); + previewFrame.width = data.width; + previewFrame.height = data.height; +}); xhr.send(); From 6e86b22dbadb8449da609b29714899b0a971c324 Mon Sep 17 00:00:00 2001 From: James Hobin Date: Tue, 28 Jun 2016 11:03:51 -0400 Subject: [PATCH 185/266] Increase size of editor view --- libraries/webInterface/views/edit.handlebars | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/webInterface/views/edit.handlebars b/libraries/webInterface/views/edit.handlebars index cb0088d..31a5f10 100644 --- a/libraries/webInterface/views/edit.handlebars +++ b/libraries/webInterface/views/edit.handlebars @@ -1,4 +1,4 @@ -
    +

    @@ -8,10 +8,10 @@

    -
    +
    -
    +
    From 4507ef63061687a7d9ae08cdfe433d2444d04ec8 Mon Sep 17 00:00:00 2001 From: James Hobin Date: Fri, 5 Aug 2016 17:04:22 -0400 Subject: [PATCH 186/266] Fix action --- server.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server.js b/server.js index 359d87e..7e966bb 100644 --- a/server.js +++ b/server.js @@ -678,7 +678,7 @@ function actionSender(action) { var HOST = '255.255.255.255'; var message; - message = new Buffer(JSON.stringify({action: action})); + message = new Buffer(JSON.stringify(action)); // creating the datagram var client = dgram.createSocket('udp4'); @@ -841,7 +841,7 @@ function objectWebServer() { delete objectExp[req.params[0]].objectLinks[thisLinkId]; cout("deleted link: " + thisLinkId); // cout(objectExp[req.params[0]].objectLinks); - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objectExp[req.params[0]].ip}})); + actionSender({action: 'reloadLink', id: req.params[0], ip: objectExp[req.params[0]].ip}); HybridObjectsUtilities.writeObjectToFile(objectExp, req.params[0], __dirname); res.send("deleted: " + thisLinkId + " in object: " + req.params[0]); @@ -885,7 +885,7 @@ function objectWebServer() { if (!thisObject.endlessLoop) { // call an action that asks all devices to reload their links, once the links are changed. - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objectExp[req.params[0]].ip}})); + actionSender({action: 'reloadLink', id: req.params[0], ip: objectExp[req.params[0]].ip}); updateStatus = "added"; cout("added link: " + req.params[1]); // check if there are new connections associated with the new link. @@ -943,7 +943,7 @@ function objectWebServer() { if ((typeof req.body.x === "number" && typeof req.body.y === "number" && typeof req.body.scale === "number") || (typeof req.body.matrix === "object" )) { HybridObjectsUtilities.writeObjectToFile(objectExp, req.params[0], __dirname); - actionSender(JSON.stringify({reloadObject: {id: thisObject, ip: objectExp[thisObject].ip}})); + actionSender({action: 'reloadObject', id: thisObject, ip: objectExp[thisObject].ip}); updateStatus = "added object"; } From cc0bfdf7864bf40ec86f79fa43697f8fae5da692 Mon Sep 17 00:00:00 2001 From: James Hobin Date: Fri, 5 Aug 2016 17:04:52 -0400 Subject: [PATCH 187/266] Add memory upload --- server.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/server.js b/server.js index 7e966bb..b44bb1b 100644 --- a/server.js +++ b/server.js @@ -902,6 +902,56 @@ function objectWebServer() { } }); + + // Handler of new memory uploads + webServer.post('/object/:id/memory', function (req, res) { + var objId = req.params.id; + if (!objectExp.hasOwnProperty(objId)) { + res.status(404); + res.send('Object ' + objId + ' not found'); + return; + } + + var obj = objectExp[objId]; + + var memoryDir = __dirname + '/objects/' + obj.folder + '/memory/'; + if (!fs.existsSync(memoryDir)) { + fs.mkdirSync(memoryDir); + } + + var form = new formidable.IncomingForm({ + uploadDir: memoryDir, + keepExtensions: true, + accept: 'image/jpeg' + }); + + form.on('error', function(err) { + res.status(500); + res.send(err); + throw err; + }); + + form.on('fileBegin', function(name, file) { + if (name === 'memoryThumbnailImage') { + file.path = form.uploadDir + '/memoryThumbnail.jpg'; + } else { + file.path = form.uploadDir + '/memory.jpg'; + } + }); + + form.parse(req, function(err, fields) { + if (obj) { + obj.memory = JSON.parse(fields.memoryInfo); + HybridObjectsUtilities.writeObjectToFile(objectExp, objId, __dirname); + actionSender({action: 'loadMemory', id: objId, ip: obj.ip}); + } + + res.status(200); + res.send('received'); + }); + }); + + // changing the size and possition of an item. *1 is the object *2 is the datapoint id // **************************************************************************************************************** From 0ba43e4cf102396f48094e3121a26c67af77aeb7 Mon Sep 17 00:00:00 2001 From: James Hobin Date: Fri, 5 Aug 2016 17:05:14 -0400 Subject: [PATCH 188/266] Fix usage of formidable and Archiver --- server.js | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/server.js b/server.js index b44bb1b..405909a 100644 --- a/server.js +++ b/server.js @@ -1085,7 +1085,7 @@ function objectWebServer() { var Archiver = require('archiver'); - var zip = Archiver('zip', false); + var zip = Archiver.create('zip', false); zip.pipe(res); zip.directory(__dirname + "/objects/" + req.params[0], req.params[0] + "/"); zip.finalize(); @@ -1223,10 +1223,7 @@ function objectWebServer() { file.path = form.uploadDir + "/" + file.name; }); - form.parse(req, function (err, fields, files) { - var old_path = files.file.path, - file_size = files.file.size; - }); + form.parse(req); form.on('end', function () { var folderD = form.uploadDir; @@ -1352,11 +1349,7 @@ function objectWebServer() { } }); - form.parse(req, function (err, fields, files) { - var old_path = files.file.path, - file_size = files.file.size; - // new_path = path.join(__dirname, '/uploads/', files.file.name); - }); + form.parse(req); form.on('end', function () { var folderD = form.uploadDir; From c8d19a1f449746e9beb4263fac67ac4993a666c2 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Tue, 30 Aug 2016 01:07:24 -0400 Subject: [PATCH 189/266] new reference --- libraries/hardwareInterfaces.js | 4 +- .../nodes}/default/gui/index.html | 0 .../nodes/default}/index.js | 14 +- .../nodes}/invisible/gui/index.html | 0 .../nodes/invisible}/index.js | 12 +- libraries/nodes/logicNode/gui/index.html | 88 ++++++++++++ libraries/nodes/logicNode/index.js | 103 ++++++++++++++ libraries/objectDefaultFiles/object.js | 7 +- libraries/webFrontend.js | 6 +- server.js | 126 +++++++++++------- 10 files changed, 293 insertions(+), 67 deletions(-) rename {nodes => libraries/nodes}/default/gui/index.html (100%) rename {nodes/invisible => libraries/nodes/default}/index.js (90%) rename {nodes => libraries/nodes}/invisible/gui/index.html (100%) rename {nodes/default => libraries/nodes/invisible}/index.js (92%) create mode 100755 libraries/nodes/logicNode/gui/index.html create mode 100755 libraries/nodes/logicNode/index.js diff --git a/libraries/hardwareInterfaces.js b/libraries/hardwareInterfaces.js index 3dd8051..4208fe8 100644 --- a/libraries/hardwareInterfaces.js +++ b/libraries/hardwareInterfaces.js @@ -75,7 +75,7 @@ exports.write = function (objectName, nodeName, number, mode, unit, unitMin, uni // console.log("writeIOToServer obj: "+objectName + " name: "+nodeName+ " value: "+value+ " mode: "+mode); if (objects.hasOwnProperty(objectKey)) { if (objects[objectKey].nodes.hasOwnProperty(nodeUuid)) { - var thisItem = objects[objectKey].nodes[nodeUuid].item; + var thisItem = objects[objectKey].nodes[nodeUuid].item[0]; thisItem.number = number; thisItem.mode = mode; thisItem.unit = unit; @@ -215,7 +215,7 @@ exports.reset = function (){ exports.readCall = function (objectName, nodeName, item) { if (callBacks.hasOwnProperty(objectName)) { if (callBacks[objectName].nodes.hasOwnProperty(nodeName)) { - callBacks[objectName].nodes[nodeName].callBack(item); + callBacks[objectName].nodes[nodeName].callBack(item[0]); } } }; diff --git a/nodes/default/gui/index.html b/libraries/nodes/default/gui/index.html similarity index 100% rename from nodes/default/gui/index.html rename to libraries/nodes/default/gui/index.html diff --git a/nodes/invisible/index.js b/libraries/nodes/default/index.js similarity index 90% rename from nodes/invisible/index.js rename to libraries/nodes/default/index.js index 0460cfb..c3635ef 100755 --- a/nodes/invisible/index.js +++ b/libraries/nodes/default/index.js @@ -48,17 +48,21 @@ * It defines how this value should be transformed before sending it to the destination. * @param {object} objectID Origin object in which the related link is saved. * @param {string} linkID the id of the link that is related to the call - * @param {number} inputData the data that needs to be processed + * @param {object} inputData the data that needs to be processed * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ +var outputData = []; exports.render = function (objectID, linkID, inputData, callback) { - var outputData = {}; + + var outputData = []; var key; - for(key in inputData) - { - outputData[key] = inputData[key]; + for (var i = 0; i < inputData.length; i++) { + if(outputData.length === i) outputData[i] = {}; + for (key in inputData[0]) { + outputData[i][key] = inputData[i][key]; + } } callback(objectID, linkID, outputData); diff --git a/nodes/invisible/gui/index.html b/libraries/nodes/invisible/gui/index.html similarity index 100% rename from nodes/invisible/gui/index.html rename to libraries/nodes/invisible/gui/index.html diff --git a/nodes/default/index.js b/libraries/nodes/invisible/index.js similarity index 92% rename from nodes/default/index.js rename to libraries/nodes/invisible/index.js index 0460cfb..740f3b5 100755 --- a/nodes/default/index.js +++ b/libraries/nodes/invisible/index.js @@ -52,15 +52,17 @@ * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ +var outputData = []; exports.render = function (objectID, linkID, inputData, callback) { - var outputData = {}; + var outputData = outputData; var key; - for(key in inputData) - { - outputData[key] = inputData[key]; + for (var i = 0; i < inputData.length; i++) { + if(!outputData[i]) outputData[i] = {}; + for (key in inputData[0]) { + outputData[i][key] = inputData[i][key]; + } } - callback(objectID, linkID, outputData); }; diff --git a/libraries/nodes/logicNode/gui/index.html b/libraries/nodes/logicNode/gui/index.html new file mode 100755 index 0000000..8c940aa --- /dev/null +++ b/libraries/nodes/logicNode/gui/index.html @@ -0,0 +1,88 @@ + + + + + + IO + + + +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libraries/nodes/logicNode/index.js b/libraries/nodes/logicNode/index.js new file mode 100755 index 0000000..9814031 --- /dev/null +++ b/libraries/nodes/logicNode/index.js @@ -0,0 +1,103 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkID the id of the link that is related to the call + * @param {number} inputData the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ + +/** + + [callbacks] + + */ +var outputData = []; +exports.render = function (objectID, linkID, inputData, callback, logicAddress /* between 0-3 */, objects) { + if(!logicAddress) logicAddress = 0; if(!objects) objects = {}; +/** + if link has INPUT then process from main object. + + + + + + + if link has OUTPUT then check main links for links and process callbacks + + + output array + + */ + +var outputData = outputData; + var key; + for (var i = 0; i < inputData.length; i++) { + if(!outputData[i]) outputData[i] = {}; + for (key in inputData[0]) { + outputData[i][key] = inputData[i][key]; + } + } + + callback(objectID, linkID, outputData); +}; + +/* // example for delay + exports.render = function (objectID, linkID, inputData, callback) { + var outputData = {}; + for(key in inputData) + { + outputData[key] = inputData[key]; + } + + setTimeout(function() { + callback(objectID, linkPositionID, outputData); + }, 1000); + }; + */ diff --git a/libraries/objectDefaultFiles/object.js b/libraries/objectDefaultFiles/object.js index b88e68d..2a24bc2 100644 --- a/libraries/objectDefaultFiles/object.js +++ b/libraries/objectDefaultFiles/object.js @@ -86,7 +86,6 @@ if (realityObject.socketIoRequest.status == 200) { // function for resizing the windows. window.addEventListener("message", function (MSG) { - console.log("test"); var msgContent = JSON.parse(MSG.data); for (var key in realityObject.messageCallBacks) { @@ -353,7 +352,7 @@ function HybridObject() { if (!unitMin) unitMin = 0; if (!unitMax) unitMax = 1; - var thisItem = {number: number, mode: mode, unit: unit, unitMin: unitMin, unitMax: unitMax}; + var thisItem = [{number: number, mode: mode, unit: unit, unitMin: unitMin, unitMax: unitMax},{},{},{}]; if (!node in _this.oldNumberList) { _this.oldNumberList[node] = null; @@ -383,7 +382,7 @@ function HybridObject() { this.read = function (node, msg) { if (msg.node === node) { - return msg.item; + return msg.item[0].number; } else { return undefined; } @@ -399,7 +398,7 @@ function HybridObject() { if (typeof thisMsg.node !== "undefined") { if (thisMsg.node === node) { if (typeof thisMsg.item !== "undefined") - callback(thisMsg.item); + callback(thisMsg.item[0].number); } } }); diff --git a/libraries/webFrontend.js b/libraries/webFrontend.js index 0eefa41..748e293 100644 --- a/libraries/webFrontend.js +++ b/libraries/webFrontend.js @@ -371,7 +371,7 @@ exports.uploadInfoContent = function (parm, objectLookup, objects, knownObjects, for (subKey in uploadInfoTexttempArrayValue) { var thisHtmlNode = uploadInfoTexttempArrayValue[subKey]; - text += "
    "; + text += ""; infoCount++; } @@ -472,8 +472,8 @@ exports.uploadInfoContent = function (parm, objectLookup, objects, knownObjects, infoCount = 0; for (subKey in uploadInfoTexttempArray) { - if(uploadInfoTexttempArray[subKey].hasOwnProperty("nameA")) - text += '\n'; + if(uploadInfoTexttempArray[subKey].hasOwnProperty("namesA")) + text += '\n'; else text += '\n'; diff --git a/server.js b/server.js index 7c565bb..0197a40 100644 --- a/server.js +++ b/server.js @@ -97,7 +97,7 @@ console.log(parseInt(version.replace(/\./g, ""))); // All objects are stored in this folder: const objectPath = __dirname + "/objects"; // All visual UI representations for IO Points are stored in this folder: -const nodePath = __dirname + "/nodes"; +const nodePath = __dirname + "/libraries/nodes"; // All visual UI representations for IO Points are stored in this folder: const blockPath = __dirname + "/blocks"; // All interfaces for different hardware such as Arduino Yun, PI, Philips Hue are stored in this folder. @@ -134,8 +134,8 @@ var utilities = require(__dirname + '/libraries/utilities'); // The web frontend a developer is able to see when creating new user interfaces. var webFrontend = require(__dirname + '/libraries/webFrontend'); // Definition for a simple API for hardware interfaces talking to the server. -// This is used for the interfaces defined in the hardwareInterfaces folder. -var hardwareInterfaces = require(__dirname + '/libraries/hardwareInterfaces'); +// This is used for the interfaces defined in the hardwareAPI folder. +var hardwareAPI = require(__dirname + '/libraries/hardwareInterfaces'); var util = require("util"); // node.js utility functionality var events = require("events"); // node.js events used for the socket events. @@ -207,7 +207,7 @@ function Link() { // if origin location is a Logic Node then set to Logic Node output location (which is a number between 0 and 3) otherwise null this.logicA = null; // Defines the type of the link origin. Currently this function is not in use. - this.nameA = ""; + this.namesA = ["",""]; // The destination object to where the origin object is sending data to. // At this point the destination object accepts all incoming data and routs the data according to the link data sent. this.objectB = null; @@ -217,7 +217,7 @@ function Link() { // if destination location is a Logic Node then set to logic block input location (which is a number between 0 and 3) otherwise null this.logicB = null; // Defines the type of the link destination. Currently this function is not in use. - this.nameB = ""; + this.namesB = ["",""]; // check that there is no endless loop in the system this.loop = false; // Will be used to test if a link is still able to find its destination. @@ -234,7 +234,7 @@ function Node() { // the name of each link. It is used in the Reality Editor to show the IO name. this.name = ""; // the actual data of the node - this.item = new Data(); // todo maybe value + this.item = [new Data(), {}, {}, {}]; // todo maybe value // Reality Editor: This is used to possition the UI element within its x axis in 3D Space. Relative to Marker origin. this.x = 0; // Reality Editor: This is used to possition the UI element within its y axis in 3D Space. Relative to Marker origin. @@ -261,6 +261,8 @@ function Node() { function Logic() { this.name = ""; + // data for logic blocks. depending on the blockSize which one is used. + this.item = [new Data(), new Data(), new Data(), new Data()]; // Reality Editor: This is used to possition the UI element within its x axis in 3D Space. Relative to Marker origin. this.x = 0; // Reality Editor: This is used to possition the UI element within its y axis in 3D Space. Relative to Marker origin. @@ -268,7 +270,7 @@ function Logic() { // Reality Editor: This is used to scale the UI element in 3D Space. Default scale is 1. this.scale = 1; // Unconstrained positioning in 3D space - this.matrix = null; + this.matrix = []; // if showLastSettingFirst is true then lastSetting is the name of the last block that was moved or set. this.lastSetting = false; @@ -288,6 +290,8 @@ function Logic() { [[null, 0], [null, 0], [null, 0], [null, 0]] ];*/ + this.appearance = "logicNode"; + this.links = {}; this.blocks = {}; @@ -432,8 +436,12 @@ function Protocols() { if (msgContent.node in objects[msgContent.object].nodes) { var objectItem = objects[msgContent.object].nodes[msgContent.node].item; - for (var key in msgContent.item) { - objectItem[key] = msgContent.item[key]; + + for (var i = 0; i < msgContent.item.length; i++) { + if(objectItem.length === i) objectItem[i] = {}; + for (var key in msgContent.item[i]) { + objectItem[i][key] = msgContent.item[i][key]; + } } return {object:msgContent.object, node:msgContent.node, item: objectItem}; @@ -446,7 +454,7 @@ return null }; this.R0 = { send: function (object, node, item) { - return JSON.stringify({obj: object, pos: node, value: item.number, mode: item.mode})}, + return JSON.stringify({obj: object, pos: node, value: item[0].number, mode: item[0].mode})}, receive: function (message) { if (!message) return null; var msgContent = JSON.parse(message); @@ -460,8 +468,8 @@ return null var objectItem = objects[msgContent.obj].nodes[msgContent.pos].item; - objectItem.number = msgContent.value; - objectItem.mode = msgContent.mode; + objectItem[0].number = msgContent.value; + objectItem[0].mode = msgContent.mode; return {object:msgContent.obj, node:msgContent.pos, item: objectItem}; } @@ -531,7 +539,7 @@ for (var i = 0; i < nodeFolderList.length; i++) { cout("Initialize System: "); cout("Loading Hardware interfaces"); // set all the initial states for the Hardware Interfaces in order to run with the Server. -hardwareInterfaces.setup(objects, objectLookup, globalVariables, __dirname, nodeAppearanceModules, function (objectKey, nodeKey, item, objects, nodeAppearanceModules) { +hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeAppearanceModules, function (objectKey, nodeKey, item, objects, nodeAppearanceModules) { //these are the calls that come from the objects before they get processed by the object engine. // send the saved value before it is processed @@ -555,29 +563,29 @@ startSystem(); cout("started"); // get the directory names of all available souappearancerces for the 3D-UI -var hardwareInterfacesFolderList = fs.readdirSync(hardwarePath).filter(function (file) { +var hardwareAPIFolderList = fs.readdirSync(hardwarePath).filter(function (file) { return fs.statSync(hardwarePath + '/' + file).isDirectory(); }); // remove hidden directories -while (hardwareInterfacesFolderList[0][0] === ".") { - hardwareInterfacesFolderList.splice(0, 1); +while (hardwareAPIFolderList[0][0] === ".") { + hardwareAPIFolderList.splice(0, 1); } // add all appearances to the nodeAppearanceModules object. Iterate backwards because splice works inplace -for (var i = hardwareInterfacesFolderList.length - 1; i >= 0; i--) { +for (var i = hardwareAPIFolderList.length - 1; i >= 0; i--) { //check if hardwareInterface is enabled, if it is, add it to the hardwareInterfaceModules - if (require(hardwarePath + "/" + hardwareInterfacesFolderList[i] + "/index.js").enabled) { - hardwareInterfaceModules[hardwareInterfacesFolderList[i]] = require(hardwarePath + "/" + hardwareInterfacesFolderList[i] + "/index.js"); + if (require(hardwarePath + "/" + hardwareAPIFolderList[i] + "/index.js").enabled) { + hardwareInterfaceModules[hardwareAPIFolderList[i]] = require(hardwarePath + "/" + hardwareAPIFolderList[i] + "/index.js"); } else { - hardwareInterfacesFolderList.splice(i, 1); + hardwareAPIFolderList.splice(i, 1); } } cout("ready to start internal servers"); -hardwareInterfaces.reset(); +hardwareAPI.reset(); -cout("found " + hardwareInterfacesFolderList.length + " internal server"); +cout("found " + hardwareAPIFolderList.length + " internal server"); cout("starting internal Server."); /** @@ -629,24 +637,30 @@ function loadObjects() { objects[tempFolderName] = JSON.parse(fs.readFileSync(__dirname + "/objects/" + objectFolderList[i] + "/object.json", "utf8")); objects[tempFolderName].ip = ip.address(); - // adding the values to the arduino lookup table so that the serial connection can take place. - // todo this is maybe obsolete. - for (var nodeKey in objects[tempFolderName].nodes) { - ArduinoLookupTable.push({object: objectFolderList[i], node: nodeKey}); + if(objects[tempFolderName].objectValues) + { + objects[tempFolderName].nodes = objects[tempFolderName].objectValues; + delete objects[tempFolderName].objectValues; } - // todo the sizes do not really save... + if(objects[tempFolderName].objectLinks) + { + objects[tempFolderName].links = objects[tempFolderName].objectLinks; + delete objects[tempFolderName].objectLinks; + } + + - // todo new Data points are never writen in to the file. So this full code produces no value - // todo Instead keep the board clear=false forces to read the data points from the arduino every time. - // todo this is not true the nodes are writen in to the object. the sizes are wrong - // if not uncommented the code does not connect to the arduino side. - // data comes always from the arduino.... - // clear = true; + for (var nodeKey in objects[tempFolderName].nodes) { + + if(!objects[tempFolderName].nodes[nodeKey].item[3]){ + var tempItem = objects[tempFolderName].nodes[nodeKey].item; + objects[tempFolderName].nodes[nodeKey].item = []; + objects[tempFolderName].nodes[nodeKey].item = [tempItem, {}, {}, {}]; + } + } cout("I found objects that I want to add"); - cout("---"); - cout(ArduinoLookupTable); - cout("---"); + } catch (e) { objects[tempFolderName].ip = ip.address(); @@ -659,7 +673,7 @@ function loadObjects() { } } - hardwareInterfaces.reset(); + hardwareAPI.reset(); } /********************************************************************************************************************** @@ -703,7 +717,7 @@ function startSystem() { function exit() { var mod; - hardwareInterfaces.shutdown(); + hardwareAPI.shutdown(); process.exit(); } @@ -1119,17 +1133,17 @@ function objectWebServer() { // Version 1 webServer.get('/obj/dataPointInterfaces/*/*/', function (req, res) { // watch out that you need to make a "/" behind request. - res.sendFile(__dirname + "/nodes/" + req.params[0] + '/gui/' + req.params[1]); + res.sendFile(nodePath + "/" + req.params[0] + '/gui/' + req.params[1]); }); // Version 2 webServer.get('/dataPointInterfaces/*/*/', function (req, res) { // watch out that you need to make a "/" behind request. - res.sendFile(__dirname + "/nodes/" + req.params[0] + '/gui/' + req.params[1]); + res.sendFile(nodePath + "/" + req.params[0] + '/gui/' + req.params[1]); }); // Version 3 #### Active Version webServer.get('/nodes/*/*/', function (req, res) { // watch out that you need to make a "/" behind request. - res.sendFile(__dirname + "/nodes/" + req.params[0] + '/gui/' + req.params[1]); + res.sendFile(nodePath + "/" + req.params[0] + '/gui/' + req.params[1]); }); // **************************************************************************************************************** @@ -1559,7 +1573,7 @@ function objectWebServer() { //todo send init to internal modules cout("have created a new object"); - hardwareInterfaces.reset(); + hardwareAPI.reset(); cout("have initialized the modules"); var fileList = [folderD + "/target/target.jpg", folderD + "/target/target.xml", folderD + "/target/target.dat"]; @@ -1658,7 +1672,7 @@ function createObjectFromTarget(Objects, objects, folderVar, __dirname, objectLo //serialPort.write("ok\n"); // todo send init to internal - hardwareInterfaces.reset(); + hardwareAPI.reset(); cout("weiter im text " + objectIDXML); utilities.writeObjectToFile(objects, objectIDXML, __dirname); @@ -1704,7 +1718,7 @@ function socketServer() { } if(msgContent !== null){ - hardwareInterfaces.readCall(msgContent.object, msgContent.node, msgContent.item); + hardwareAPI.readCall(msgContent.object, msgContent.node, msgContent.item); sendMessagetoEditors({ object: msgContent.object, @@ -1749,7 +1763,7 @@ function messagetoSend(msgContent, socketID) { io.sockets.connected[socketID].emit('object', JSON.stringify({ object: msgContent.object, node: msgContent.node, - item: objects[msgContent.object].nodes[msgContent.node].blocks[msgContent.block].item + item: objects[msgContent.object].nodes[msgContent.node].item }));// socket.emit('object', msgToSend); } } @@ -1768,6 +1782,19 @@ function messagetoSend(msgContent, socketID) { function objectEngine(object, node, objects, nodeAppearanceModules) { // cout("engine started"); + + /** If(Logic Node){ + nodeAppearanceModules["logic"](object, linkKey, thisNode.item, function (object, link, processedData) { + enginePostProcessing(object, link, processedData); + + in call back check for all links assosiated with the main link source. + + }, objects); + } + + */ + + for (var linkKey in objects[object].links) { if (objects[object].links[linkKey].nodeA === node) { @@ -1799,11 +1826,14 @@ function enginePostProcessing(object, link, processedData) { var objSend = objects[thisLink.objectB].nodes[thisLink.nodeB]; - for (var key in processedData) { - objSend.item[key] = processedData[key]; + for (var i = 0; i < processedData.length; i++) { + if(objSend.item.length === i) objSend.item[i] = {}; + for (var key in processedData[i]) { + objSend.item[i][key] = processedData[i][key]; + } } - hardwareInterfaces.readCall(thisLink.objectB, thisLink.nodeB, objSend.item); + hardwareAPI.readCall(thisLink.objectB, thisLink.nodeB, objSend.item); /* if (hardwareInterfaceModules.hasOwnProperty(objSend.type)) { hardwareInterfaceModules[objSend.type].read(thisLink.objectB, thisLink.nodeB, objSend.item, objSend.type); From 07dc5fe6e2bd51cf1568fa875d262f48fb42eac4 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Fri, 23 Sep 2016 18:10:12 -0400 Subject: [PATCH 190/266] EV3 hardware module update + Robotic Arm --- hardwareInterfaces/EV3/index.js | 643 +++++++++++++++++++ hardwareInterfaces/EV3/module/Ev3.js | 306 +++++++++ hardwareInterfaces/EV3/module/README.md | 53 ++ hardwareInterfaces/EV3/module/package.json | 29 + hardwareInterfaces/referenceExample/index.js | 2 +- libraries/objectDefaultFiles/bird.png | Bin 25844 -> 16296 bytes libraries/objectDefaultFiles/object.js | 11 +- server.js | 13 +- 8 files changed, 1048 insertions(+), 9 deletions(-) create mode 100755 hardwareInterfaces/EV3/index.js create mode 100644 hardwareInterfaces/EV3/module/Ev3.js create mode 100644 hardwareInterfaces/EV3/module/README.md create mode 100644 hardwareInterfaces/EV3/module/package.json diff --git a/hardwareInterfaces/EV3/index.js b/hardwareInterfaces/EV3/index.js new file mode 100755 index 0000000..0a20b27 --- /dev/null +++ b/hardwareInterfaces/EV3/index.js @@ -0,0 +1,643 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * Modified by Carsten on 12/06/15. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * Set to true to enable the hardware interface + **/ +exports.enabled = true; + +if (exports.enabled) { + + + var speed =0; // global variable for the speed of the robot. + var server = require(__dirname + '/../../libraries/hardwareInterfaces'); + server.enableDeveloperUI(true); + var stop_command_tilt = false; + var stop_command_grip=false; + + + + var Ev3 = require ("./module/Ev3.js"); + var Ev3_base = Ev3.base; + + var bot_brick = new Ev3_base("/dev/tty.WhiteLOW-SerialPort"); + var top_brick = new Ev3_base("/dev/tty.EV3-SerialPort"); // put your bluetooth socket. + var motor_output_top = {"a": 0, "b":0,"c":0, "d":0}; + var motor_output_bot = {"a": 0, "b":0,"c":0, "d":0}; + var top_ready = false; // boolean to check if top EV3 Brick has been connected to the computer + var bot_ready = false; // boolean to check if bot EV3 Brick has been connected to the computer + var bot_target = undefined; // bot and top targets are the brick objects used to control the robot arm + var top_target = undefined; + /* ----------------------------------------------------------------------------------------------------------------- */ + //all global variables used for calibrating top brick + var prev_f_twist = 100; // default to white (not moving) + var f_twist= 100; // default to white (not moving) + var u_tilt = ""; // default to white (not moving) + var tilt_calibrated = false; // boolean check for if grip rotation and tilt have been calibrated + var grip_calibrated = false; // boolean check for if grip rotation and tilt have been calibrated + var forearm_touch_sensor = false; + var first_pass = true; + /* ----------------------------------------------------------------------------------------------------------------- */ + // all global variables used for calibrating bottom brick + var shoulder_calibrated = false; + var base_color = ""; + var shoulder_color = ""; + /* ----------------------------------------------------------------------------------------------------------------- */ + // below are completion checks for every element of calibration + var grip_ready = true; + var shoulder_ready = true; + var forearm_twist_ready = true; + var upper_tilt_ready = true; + /* ----------------------------------------------------------------------------------------------------------------- */ + // below are boolean checks for boundry movement using reality editor + var shoulder_forwards = true; + var shoulder_backwards = true; + var arm_upwards = true; + var arm_downwards = true; + var arm_twist_cw = true; // arm twist in clockwise directoin + var arm_twist_ccw = true; // arm twist in counter clock wise direciton + /* ----------------------------------------------------------------------------------------------------------------- */ + // below are the rotation angles set by the user for the robot to calibrate with + + var base_angle_correction = 0; // used by all interfaces to set the base angle of rotation. + var shoulder_angle_correction = Math.PI/2; // used for right and left base interfaces to control shoulder rotation angle. + var upper_tilt_angle_correction =0; // used by top upper tilt interface to control upper tilt angle + var shoulder_stop_point =400; // the interface is 800 pixels wide, the halfway point is 400. Used for right and left shoulder interfaces. + var grip_stop_point =300; // the interface is 600 pixels long, the halfway point is 300. Used for gripper interface. + + var forearm_angle_correction = 0; + var grip_angle_correction = 0; + + var forearm_starting_height = 0; + var gripper_open = true; + var grabbing = false; + /* ----------------------------------------------------------------------------------------------------------------- */ + // below are booleans used for markers that have both touch movement and movement based off of the phones rotation. Both should not be possible at once, or oscilations happen. + var shoulder_tilting = false; + var forearm_tilting = false; + + var joint_grip_active = false; + var grip_tilting = false; + var forearm_locked = false; // used by Gripper + /* ----------------------------------------------------------------------------------------------------------------- */ + // below are booleans used for certain stops which require kicking the motor in the opposite direction + var forearm_stopping = false; + var shoulder_stopping = false; + + var test = 0; + var grip_val = 0; + + bot_brick.connect(function(){ // this function connects the bottom brick to the computer via bluetooth. It initializes all the sensors as well. + bot_brick.start_program(function(target){ + bot_ready=true; + bot_target=target; + target.registerSensor(2, target.S_TYPE_COLOR, target.SM_COL_RINTENSITY); + target.registerSensorListener(2, function (result) { + base_color = result; + }); + target.registerSensor(1, target.S_TYPE_COLOR, target.SM_COL_COLOR); + target.registerSensorListener(1, function (result) { // registers sensor in the base which looks up at the main arm + // in this callback which is performed on every reading the sensor checks if it is at one of the boundaries and if it is sets a boolean representing movement in that direction to be false + shoulder_color = result; + if(result == Ev3.COL_RED) + shoulder_forwards=false; + else if(result == Ev3.COL_BLACK) + shoulder_backwards=false; + else{ + shoulder_forwards=true; + shoulder_backwards=true; + } + + }); + target.registerSensor(3,target.S_TYPE_TOUCH,0); + target.registerSensorListener(3,function(result){ // the red button to reset the system and cause calibration to begin + if(result){ + grip_ready=false; + shoulder_ready=false; + forearm_twist_ready=false; + upper_tilt_ready=false; + tilt_calibrated=false; + first_pass=true; + grip_calibrated=false; + shoulder_calibrated=false; + motor_output_top = {"a": 0, "b":0,"c":0, "d":0}; + motor_output_bot = {"a": 0, "b":0,"c":0, "d":0}; + } + }); + + }) + }); + // + top_brick.connect(function(){ // connects top brick to ev3 + top_brick.start_program(function(target){ + top_ready=true; + top_target = target; // target is what is used to send commands to the robot + target.registerSensor(1,target.S_TYPE_TOUCH,0); + target.registerSensorListener(1,function(result){ + forearm_touch_sensor = result; + }); + + target.registerSensor(3, target.S_TYPE_COLOR, target.SM_COL_COLOR); + target.registerSensorListener(3, function (result) { + //console.log("Result has value:" + result + "and prev value was " + f_twist_res); + prev_f_twist = f_twist; + f_twist = result; + if(result == Ev3.COL_RED){ + arm_twist_ccw=false; + } + else if(result == Ev3.COL_BROWN){ + arm_twist_cw=false; + } + else{ + arm_twist_cw=true; + arm_twist_ccw=true; + } + }); + target.registerSensor(2, target.S_TYPE_COLOR, target.SM_COL_COLOR); + target.registerSensorListener(2, function (result) { + u_tilt = result; + if(result == Ev3.COL_NULL || result==Ev3.COL_BLACK || result==Ev3.COL_BROWN || result == Ev3.COL_GREEN){ + arm_downwards=false; + //stopForearm(); + } + else if(result == Ev3.COL_WHITE) + arm_upwards=false; + else{ + arm_upwards=true; + arm_downwards=true; + } + //console.log(result); + }); + }) + }); + + var main_loop = setInterval(function(){ // main loop of the entire system. Runs 10 times/second. First checks if bot/top are connected, then pulls readings from them, and then check if the robot needs to be calibrated. If all aspects of the robot arm are ready, then it takes whatever is stored in the database for motor speeds and sets it to the robot arm. + if(bot_ready && top_ready){ + bot_target.pullReadings(); + top_target.pullReadings(); + if(shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready){ + var top_output = top_target.getOutputSequence(motor_output_top["a"], motor_output_top["b"], motor_output_top["c"], motor_output_top["d"]); + if (top_output) { + top_target.sp.write(top_output, function (err, len) { + if (err) { + + console.log(motor_output_top); + console.log(top_output); + console.log(JSON.stringify([].slice.call(arguments))); + } + }); + } + + var bot_output = bot_target.getOutputSequence(motor_output_bot["a"], motor_output_bot["b"], motor_output_bot["c"], motor_output_bot["d"]); + if (bot_output) { + bot_target.sp.write(bot_output, function (err, len) { + if (err) { + console.log(motor_output_bot); + console.log(bot_output); + console.log(JSON.stringify([].slice.call(arguments))); + } + }); + } + } + else { // means that the robot needs to be calibrated and calibration routine begins. + if (!first_pass) { + resetForearmTwist(f_twist); + } + else { + motor_output_top['d'] = 5; + first_pass = false; + } + if (!tilt_calibrated) + tilt_calibrated = resetUpperTilt(u_tilt); + if (!grip_calibrated) + grip_calibrated = resetGrip(forearm_touch_sensor); + else{ + console.log("The motor speed is: " + motor_output_top['b']); + } + if (!shoulder_calibrated) + shoulder_calibrated = resetShoulder(shoulder_color); + console.log("Im writing a command with values" + motor_output_top["a"], motor_output_top["b"], motor_output_top["c"], motor_output_top["d"]); + var top_output = top_target.getOutputSequence(motor_output_top["a"], motor_output_top["b"], motor_output_top["c"], motor_output_top["d"]); + top_target.sp.write(top_output, function () {}); + var bot_output = bot_target.getOutputSequence(motor_output_bot["a"], motor_output_bot["b"], motor_output_bot["c"], motor_output_bot["d"]); + bot_target.sp.write(bot_output, function () {}); + } + + } + },100); + + + + function map(x, in_min, in_max, out_min,out_max) { + if (x > in_max) x = in_max; + if (x < in_min) x = in_min; + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; + } + function stopForearm(){ // function to kick back the motor in the opposite directino to stop arm moving from inertia + if(motor_output_top['a'] >5){ + if(motor_output_top['a']>40) + motor_output_top['a']=-20; + else if(motor_output_top['a']>15) + motor_output_top['a']=-5; + else + motor_output_top['a']=-3; + setTimeout(function(){ + motor_output_top['a']=0; + forearm_stopping=false; + },100); + } + else{ + motor_output_top['a']=0; + forearm_stopping=false; + } + motor_output_top['d']=0; + } + + function stopShoulder(){ //function to kick back the motor in the opposite directino to stop arm moving from inertia + if(Math.abs(motor_output_bot.c) >15){ + if(motor_output_bot.c>40){ + motor_output_bot.c=-20; + motor_output_bot.b=-20; + } + else if(motor_output_bot.c>15){ + motor_output_bot.c=-5; + motor_output_bot.b=-5; + } + else if(motor_output_bot.b<-40){ + motor_output_bot.c=20; + motor_output_bot.b=20; + } + else{ + motor_output_bot.c=5; + motor_output_bot.b=5; + } + setTimeout(function(){ + motor_output_bot.b=0; + motor_output_bot.c=0; + shoulder_stopping=false; + },100); + } + else{ + motor_output_bot.b=0; + motor_output_bot.c=0; + shoulder_stopping=false; + } + } + + + + function resetForearmTwist(value){ // used by calibration + if(value == Ev3.COL_BLACK) { // sees black and at middle point + motor_output_top['d'] = 0; + forearm_twist_ready=true; // forearm will be fully calibrated and rotate perfectly to be middle. + } + else if(value == Ev3.COL_BROWN) + motor_output_top['d']= 10; + else if(value == Ev3.COL_RED) + motor_output_top['d']= -8; + } + + function resetUpperTilt(value){ // used by calibration + if(value != Ev3.COL_WHITE){ + motor_output_top['a'] = -35; + return false; + } + else{ + motor_output_top['a']=35; + setTimeout(function(){ + motor_output_top['a']=0; + upper_tilt_ready=true; + },2550); + return true; // shoulder will be perfectly vertical and fully calibrated + } + } + + function resetGrip(value){// used by calibration + if(!value){ + motor_output_top['c'] = 13; + return false; + } + else{ + motor_output_top['c'] = -30; + motor_output_bot.d=-10; + //motor_output_top['b'] = -30; + console.log("he's going up sir"); + setTimeout(function(){ + motor_output_top['c'] = 0; + motor_output_top['b'] = 0; + motor_output_bot.d=0; + gripper_open=true; + grip_ready=true; + console.log("command has been sent"); + },2800); + return true; // grip has hit the touch sensor and is fully calibrated + } + } + + function resetShoulder(value){// used by calibration + if(value != Ev3.COL_RED){ + motor_output_bot['c'] = -12; + motor_output_bot['b'] = -12; + return false; + } + else{ + motor_output_bot['c'] = 30; + motor_output_bot['b'] = 30; + setTimeout(function(){ + motor_output_bot['c'] = 0; + motor_output_bot['b'] = 0; + shoulder_ready=true; + },2000); + return true; // shoulder will be perfectly vertical and fully calibrated + } + } + + function resetBase(value){ // used by calibration + if(value >= 98){ + motor_output_bot['a']= 0; + } + else + motor_output_bot['a']= 20; + } + + + + + + + server.addNode("Gripper6AxisEV3", "Vertical Touch", "default"); + server.addNode("Gripper6AxisEV3", "Horizontal Touch", "default"); + server.addNode("Gripper6AxisEV3", "pitch", "default"); + server.addNode("Gripper6AxisEV3", "Height Tracking", "default"); + server.addNode("Gripper6AxisEV3", "roll", "default"); + server.addNode("Gripper6AxisEV3", "Upper Tilt + Top Joint", "default"); + server.addNode("Gripper6AxisEV3", "Grip Rotation", "default"); + server.addNode("Gripper6AxisEV3", "Grip Tilt", "default"); + server.addNode("Gripper6AxisEV3", "grab", "default"); + server.addNode("Gripper6AxisEV3", "kickback joint tilt", "default"); + + server.addNode("TopForearm6AxisEV3", "Vertical Touch_ft", "default"); + server.addNode("TopForearm6AxisEV3", "Horizontal Touch_ft", "default"); + server.addNode("TopForearm6AxisEV3", "pitch_ft", "default"); + server.addNode("TopForearm6AxisEV3", "Height Tracking_ft", "default"); + server.addNode("TopForearm6AxisEV3", "Forearm Rotation", "default"); + + server.addNode("TopUpperTilt6AxisEV3", "yaw_ut", "default"); + server.addNode("TopUpperTilt6AxisEV3", "Vertical Touch_ut", "default"); + server.addNode("TopUpperTilt6AxisEV3", "roll_ut", "default"); + + server.addNode("RightUpperTilt6AxisEV3", "yaw_ur", "default"); + server.addNode("RightUpperTilt6AxisEV3", "Horizontal Touch_ur", "default"); + server.addNode("RightUpperTilt6AxisEV3", "pitch_ur", "default"); + server.addNode("RightUpperTilt6AxisEV3", "Upper Tilt", "default"); + server.addNode("RightUpperTilt6AxisEV3", "Arm + Shoulder", "default"); + server.addNode("RightUpperTilt6AxisEV3", "kickback arm", "default"); + server.addNode("RightUpperTilt6AxisEV3", "kickback arm + shoulder", "default"); + + server.addNode("RightShoulder6AxisEV3", "Horizontal Touch_sr", "default"); + server.addNode("RightShoulder6AxisEV3", "pitch_sr", "default"); + + server.addNode("RightBase6AxisEV3", "pitch_br", "default"); + server.addNode("RightBase6AxisEV3", "yaw_br", "default"); + server.addNode("RightBase6AxisEV3", "kickback_br", "default"); + server.addNode("RightBase6AxisEV3", "Base Rotation", "default"); + server.addNode("RightBase6AxisEV3", "Base Joint", "default"); + /** + * ******************************* + */ + + server.addReadListener("RightUpperTilt6AxisEV3", "Upper Tilt", function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + forearm_tilting=true; + speed = value; + test = value; + + } + } + }); + + + server.addReadListener("Gripper6AxisEV3", "Upper Tilt + Top Joint", function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + speed = value; + if(!arm_downwards && speed >0 && !forearm_stopping){ + forearm_stopping=true; + stopForearm(); + speed =0; + } + else { + speed = value; + if (!arm_downwards && speed > 0 && !forearm_stopping) { + forearm_stopping = true; + stopForearm(); + } + else if (!arm_upwards && speed < 0 && !forearm_stopping) { + forearm_stopping = true; + stopForearm(); + } + else { + motor_output_top['a'] = speed; + } + // console.log("gripval: " + grip_val); + speed = Math.floor(grip_val); + motor_output_top['c'] = speed; + } + + } + } + }); + server.addReadListener("Gripper6AxisEV3", "Grip Rotation", function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + speed = value; + motor_output_top.b = speed; + + } + } + }); + server.addReadListener("Gripper6AxisEV3", "Grip Tilt", function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + grip_val=value; + + } + } + }); + server.addReadListener("Gripper6AxisEV3", "grab", function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + if(!grabbing){ + grabbing=true; + if(gripper_open){ + motor_output_bot.d=15; + gripper_open=false; + } + else{ + motor_output_bot.d=-15; + gripper_open=true; + } + setTimeout(function(){ + motor_output_bot.d=0; + grabbing=false; + },1500); + } + + } + } + }); + server.addReadListener("TopForearm6AxisEV3", "Forearm Rotation", function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + speed = value; + if(speed < 0 && !arm_twist_cw){ + motor_output_top['d']=0; + } + if(speed > 0 && !arm_twist_ccw){ + motor_output_top['d']=0; + } + motor_output_top.d = speed; + + } + } + }); + server.addReadListener("RightUpperTilt6AxisEV3","Arm + Shoulder" , function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + speed = -value; + shoulder_tilting = true; + if (!shoulder_forwards && speed < 0) + speed = 0; + else if (!shoulder_backwards && speed > 0) + speed = 0; + motor_output_bot.b = speed; + motor_output_bot.c = speed; + speed = Math.floor(-5 / 7 * value + test); + if (!arm_downwards && speed > 0 && !forearm_stopping) { + forearm_stopping = true; + stopForearm(); + speed = 0; + } + else if (!arm_upwards && speed < 0 && !forearm_stopping) { + forearm_stopping = true; + stopForearm(); + speed = 0; + } + else + motor_output_top.a = speed; + + } + } + }); + server.addReadListener("RightBase6AxisEV3","Base Rotation" , function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + speed = value; + motor_output_bot.a = value; + + } + } + }); + server.addReadListener("RightBase6AxisEV3","Base Joint" , function (item) { + if(bot_ready && top_ready) { + if (shoulder_ready && upper_tilt_ready && forearm_twist_ready && grip_ready) { // makes sure that calibration is not running + var value = Math.floor(map(item.number,0,1,-100,100)); + + // code + //console.log("base joint " + value); + speed = value; + + if(!shoulder_forwards && speed <0) + speed=0; + else if(!shoulder_backwards && speed >0) + speed =0; + // console.log("I recieved a value of " + value + " and speed: " + speed + " and i should go down " + shoulder_forwards); + motor_output_bot['b'] = speed; + motor_output_bot['c'] = speed; + + } + } + }); + + server.addEventListener("reset", function () { + + }); + + server.addEventListener("shutdown", function () { + console.log("shutting down from exports.shutdown!"); + if(top_target!==undefined) + top_target.disconnect(); + if(bot_target!==undefined) + bot_target.disconnect(); + return; + }); + server.enableDeveloperUI(true); +} diff --git a/hardwareInterfaces/EV3/module/Ev3.js b/hardwareInterfaces/EV3/module/Ev3.js new file mode 100644 index 0000000..0ca467c --- /dev/null +++ b/hardwareInterfaces/EV3/module/Ev3.js @@ -0,0 +1,306 @@ +var SP = require("serialport"); +var SerialPort = SP.SerialPort; +var util = require('util'); + +var Sensor = function(port,type,mode){ + var port = port; + var type = type; + this.mode = mode; + this.callbacks = []; + var pull_command = null; + this.request_counter = -1; + + this.pushCallback = function(callback){ + this.callbacks.push(callback); + }; + + this.pullReading = function(counter,sp){ + this.request_counter = counter; + //construct buffer + pull_command = new Buffer("0B00"+counter+"0001009A000"+ (port-1) + type +"0"+ mode +"60","hex"); + //console.log(pull_command.toString("hex")); + sp.write(pull_command); + } + +} + + + +Sensor.prototype.processData = function(counter){ + if(counter != this.request_counter){ + return + } +} + + +//inherited sensors +var ColorSensor = function(port,type,mode){ + //paratistic inheritance + //http://www.crockford.com/javascript/inheritance.html + var sensor = new Sensor(port,type,mode); + sensor.processData =function(counter,value){ + if(counter != this.request_counter){ + return + } + var payload = value.substr(10,2); + + //if mode is light intensity, change the result to numeric value + if(this.mode == 0 || this.mode ==1 ){ + payload = parseInt(payload,16); + } + + for(var i=0; i < this.callbacks.length ; i++){ + this.callbacks[i](payload); + } + } + + return sensor; +} + +var TouchSensor = function(port,type,mode){ + //paratistic inheritance + //http://www.crockford.com/javascript/inheritance.html + var sensor = new Sensor(port,type,mode); + sensor.processData = function(counter,value){ + if(counter != this.request_counter){ + return + } + + var payload = value.substr(10,2); + var result = false; + if(payload == "00") { result = false; } else if(payload == "64") { result=true; } + for(var i=0; i < this.callbacks.length ; i++){ + this.callbacks[i](result); + } + } + + return sensor; +} + +module.exports.COL_NULL = "00"; +module.exports.COL_BLACK = "0c"; +module.exports.COL_BLUE = "19"; +module.exports.COL_GREEN = "25"; +module.exports.COL_YELLOW = "32"; +module.exports.COL_RED = "3e"; +module.exports.COL_WHITE = "4b"; +module.exports.COL_BROWN = "57"; + +//---------------base class----------------- +var Ev3_base = function(btport){ + + //All sequence read from reverse engineering + this.INIT_SEQ =new Buffer([0x07,0x00,0x00,0x00,0x80,0x00,0x00,0x02,0x01]); + this.INIT_DOWNLOAD_SEQ = new Buffer("2500010001920F0100002F6D6E742F72616D6469736B2F70726A732F6D6F62696C652E72626600", "hex"); + + + this.PROGRAM_SEQ = new Buffer("B10002000193004C45474FAC0000006500020002000000280000000000000008000000AB0000000000000000000000841200841300820000820000841C01820000820000842E2E2F617070732F427269636B2050726F6772616D2F4F6E427269636B496D6167653132008400821B08300060858332000000403482020046646046821300348202004768604782080031604430006005444161820B00A5000161A6000140820400A300010086404082C1FF0A0A", "hex"); + this.STOP_DOWNLOAD_SEQ = new Buffer("0600030001980000", "hex"); + + //single motor + //this.RUN_PROGRAM_SEQ = new Buffer("2D000400800020C00801842F6D6E742F72616D6469736B2F70726A732F6D6F62696C652E7262660040440301404440", "hex" ); + //this.PROGRAM_SEQ = new Buffer("B10002000193004C45474FAC0000006500020002000000280000000000000008000000AB0000000000000000000000841200841300820000820000841C01820000820000842E2E2F617070732F427269636B2050726F6772616D2F4F6E427269636B496D6167653132008400821B08300060858332000000403482020046646046821300348202004768604782080031604430006005444161820B00A5000161A6000140820400A300010086404082C1FF0A0A", "hex"); + + //multi - motor + //this.RUN_PROGRAM_SEQ = new Buffer("2D000400800020C00801842F6D6E742F72616D6469736B2F70726A732F6D6F62696C652E7262660040440301404440", "hex" ); + //this.PROGRAM_SEQ = new Buffer("140102000193004C45474F0F01000065000500050000004C00000000000000080000000B01000000000000000000000C01000000000000000000000D01000000000000000000000E0100000000000000000000841200841300820000820000841C01820000820000842E2E2F617070732F427269636B2050726F6772616D2F4F6E427269636B496D6167653132008400821B08300060858332000000403482020046646046821300348205004768604782080031604430006005444161820B00A5000161A6000140820400A30001004162820B00A5000262A6000240820400A30002004163820B00A5000463A6000440820400A30004004164820B00A5000864A6000840820400A30008008640408285FF0A0A0A0A0A", "hex"); + + //multi - motor - single touch sensor + this.RUN_PROGRAM_SEQ = new Buffer("2D000400800020C00801842F6D6E742F72616D6469736B2F70726A732F6D6F62696C652E7262660040440301404440", "hex" ); + this.PROGRAM_SEQ = new Buffer("140102000193004C45474F0F01000065000500050000004C00000000000000080000000B01000000000000000000000C01000000000000000000000D01000000000000000000000E0100000000000000000000841200841300820000820000841C01820000820000842E2E2F617070732F427269636B2050726F6772616D2F4F6E427269636B496D6167653132008400821B08300060858332000000403482020046646046821300348205004768604782080031604430006005444161820B00A5000161A6000140820400A30001004162820B00A5000262A6000240820400A30002004163820B00A5000463A6000440820400A30004004164820B00A5000864A6000840820400A30008008640408285FF0A0A0A0A0A", "hex"); + + this.sensors = []; + + this.OUTPUT_HEADER_SEQ = "000004"; + this.OUTPUT_DELIMITER_SEQ = "30"; + this.OUTPUT_BODY_SEQ = "407E018200008"; + this.TERMINATE_SEQ = new Buffer("070055008000000201","hex"); + + this.sp = new SerialPort(btport, { + parser: SP.parsers.raw + }, false); + + this.getOutputSequence = function(a,b,c,d){ + //modify header + var header = this.OUTPUT_HEADER_SEQ; + + var body_a = ""; + if(a !== null) body_a = this.OUTPUT_DELIMITER_SEQ + this.getHexOutput(a) + this.OUTPUT_BODY_SEQ + "301000000830100000040"; + + var body_b = ""; + if(b !== null) body_b = this.OUTPUT_DELIMITER_SEQ + this.getHexOutput(b) + this.OUTPUT_BODY_SEQ + "302000000830200000040"; + + var body_c = ""; + if(c !== null) body_c = this.OUTPUT_DELIMITER_SEQ + this.getHexOutput(c) + this.OUTPUT_BODY_SEQ + "303000000830300000040"; + + var body_d = ""; + if(d !== null) body_d = this.OUTPUT_DELIMITER_SEQ + this.getHexOutput(d) + this.OUTPUT_BODY_SEQ + "304000000830400000040"; + + //get counter + // console.log(this.getCounter()); + var size = ((this.getCounter()+header+body_a+body_b+body_c+body_d).length/2).toString(16); //check this + var prefix = size + "00" + this.getCounter() + header ; + var body = prefix + body_a + body_b + body_c + body_d; + try { + return new Buffer( body.toUpperCase(), "hex"); + } catch(e) { + console.log(body.toUpperCase()); + debugger; + } + }; + var counter = 0; + this.getCounter = function(){ + var cstring = counter.toString(16); + if(cstring.length == 1){ + cstring = "000"+ cstring ; + //console.log(cstring); + } else if (cstring.length == 2){ + cstring = "00" + cstring; + } else if (cstring.length == 3){ + cstring = "0" + cstring; + } + counter++; + if (counter > 0xffff) { + console.log('fixed everything Kappa'); + counter = 0; + } + return cstring; + } + + this.getHexOutput = function(output){ + var res = ""; + if(output < 0 && output >= -32) { + output = 256 + output; + res = output.toString(16); + + } + else if ( output < -32 ){ + output = 256 + output; + res = output.toString(16); + res = "81" + res; + } + + if (output >= 0 && output < 32) { + res = output.toString(16); + } + else if ( output >= 32 ) { + res = output.toString(16); + res = "81" + res; + } + + //one digit + if (res.length == 1){ + res = "0" +res; + } + + return res; + } + + this.loadProgram = function(callback){ + var connection = this.sp; + var main = this; + connection.write(main.INIT_DOWNLOAD_SEQ,function(){ + connection.write(main.PROGRAM_SEQ,function(){ + connection.write(main.STOP_DOWNLOAD_SEQ,function(){ + if(callback != null) callback(); + //setupSensor(); + }); + }); + }); + }; +}; + +//-------------- Sensor --------------------- +Ev3_base.prototype.S_TYPE_IR = 0; +Ev3_base.prototype.S_TYPE_TOUCH = "10"; +Ev3_base.prototype.S_TYPE_COLOR = "1d"; +Ev3_base.prototype.S_TYPE_USONIC = 0; +Ev3_base.prototype.S_TYPE_GYRO = 0; + + +//color sensor modes +Ev3_base.prototype.SM_COL_RINTENSITY = 0; +Ev3_base.prototype.SM_COL_AINTENSITY = 1; +Ev3_base.prototype.SM_COL_COLOR = 2; + +Ev3_base.prototype.sensorResponse = function(counter,value){ + for (var i =0 ; i4 || port<1) {return; }//should return error + if(type == this.S_TYPE_COLOR){ + this.sensors[port-1] = new ColorSensor(port,type,mode); + } + + if(type == this.S_TYPE_TOUCH){ + this.sensors[port-1] = new TouchSensor(port,type,mode); + } +} + +Ev3_base.prototype.registerSensorListener = function(port,callback){ + this.sensors[port-1].pushCallback(callback); +} + +Ev3_base.prototype.pullReadings = function(){ + //console.log("There are this many sensors: " + this.sensors.length); + for (var i =0 ; i (http://wenchaojames.wordpress.com/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/wenchaojiang/Ev3NodeJsBtAPI/issues" + } +} diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index 0e319e4..69973ad 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -47,7 +47,7 @@ /** * Set to true to enable the hardware interface **/ -exports.enabled = true; +exports.enabled = false; if (exports.enabled) { var server = require(__dirname + '/../../libraries/hardwareInterfaces'); diff --git a/libraries/objectDefaultFiles/bird.png b/libraries/objectDefaultFiles/bird.png index 7d9186c6bd04733380a11a0f0c31a62b3cb1259f..9a5a9be97a2be272a9b2d8993a635d44dd123e18 100755 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 25844 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 YM(oz', ''); From 4ce2c2a8f8fa605d2b2e57a7703c368a667b227c Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Wed, 28 Sep 2016 16:42:13 -0400 Subject: [PATCH 191/266] robot --- .gitignore | 2 +- hardwareInterfaces/EV3/index.js | 8 +- libraries/objectDefaultFiles/object.js | 35 ++ objects/6AxisScripts/6AxisScripts.js | 107 ++++++ objects/6AxisScripts/bird.png | Bin 0 -> 16296 bytes objects/Gripper6AxisEV3/bird.png | Bin 0 -> 16296 bytes objects/Gripper6AxisEV3/index.html | 223 +++++++++++ objects/Gripper6AxisEV3/object.json | 354 ++++++++++++++++++ objects/Gripper6AxisEV3/target/target.dat | Bin 0 -> 67106 bytes objects/Gripper6AxisEV3/target/target.jpg | Bin 0 -> 183994 bytes objects/Gripper6AxisEV3/target/target.xml | 6 + objects/RightBase6AxisEV3/bird.png | Bin 0 -> 16296 bytes objects/RightBase6AxisEV3/index.html | 119 ++++++ objects/RightBase6AxisEV3/object.json | 188 ++++++++++ objects/RightBase6AxisEV3/style.css | 4 + objects/RightBase6AxisEV3/target/target.dat | Bin 0 -> 35998 bytes objects/RightBase6AxisEV3/target/target.jpg | Bin 0 -> 39863 bytes objects/RightBase6AxisEV3/target/target.xml | 6 + objects/RightShoulder6AxisEV3/bird.png | Bin 0 -> 16296 bytes objects/RightShoulder6AxisEV3/index.html | 130 +++++++ objects/RightShoulder6AxisEV3/object.json | 102 +++++ .../RightShoulder6AxisEV3/target/target.dat | Bin 0 -> 27144 bytes .../RightShoulder6AxisEV3/target/target.jpg | Bin 0 -> 20777 bytes .../RightShoulder6AxisEV3/target/target.xml | 6 + objects/RightUpperTilt6AxisEV3/bird.png | Bin 0 -> 16296 bytes objects/RightUpperTilt6AxisEV3/index.html | 138 +++++++ objects/RightUpperTilt6AxisEV3/object.json | 268 +++++++++++++ .../RightUpperTilt6AxisEV3/target/target.dat | Bin 0 -> 41722 bytes .../RightUpperTilt6AxisEV3/target/target.jpg | Bin 0 -> 76677 bytes .../RightUpperTilt6AxisEV3/target/target.xml | 6 + objects/TopForearm6AxisEV3/bird.png | Bin 0 -> 16296 bytes objects/TopForearm6AxisEV3/index.html | 174 +++++++++ objects/TopForearm6AxisEV3/object.json | 205 ++++++++++ objects/TopForearm6AxisEV3/target/target.dat | Bin 0 -> 28657 bytes objects/TopForearm6AxisEV3/target/target.jpg | Bin 0 -> 21363 bytes objects/TopForearm6AxisEV3/target/target.xml | 6 + objects/TopUpperTilt6AxisEV3/bird.png | Bin 0 -> 16296 bytes objects/TopUpperTilt6AxisEV3/index.html | 140 +++++++ objects/TopUpperTilt6AxisEV3/object.json | 142 +++++++ .../TopUpperTilt6AxisEV3/target/target.dat | Bin 0 -> 38960 bytes .../TopUpperTilt6AxisEV3/target/target.jpg | Bin 0 -> 74919 bytes .../TopUpperTilt6AxisEV3/target/target.xml | 6 + objects/obj45/bird.png | Bin 0 -> 16296 bytes objects/obj45/index.html | 75 ++++ objects/obj45/object.json | 148 ++++++++ objects/obj45/target/target.dat | Bin 0 -> 68842 bytes objects/obj45/target/target.jpg | Bin 0 -> 25489 bytes objects/obj45/target/target.xml | 6 + objects/obj47/bird.png | Bin 0 -> 16296 bytes objects/obj47/index.html | 11 + objects/obj47/object.json | 67 ++++ objects/obj47/target/target.dat | Bin 0 -> 78871 bytes objects/obj47/target/target.jpg | Bin 0 -> 22403 bytes objects/obj47/target/target.xml | 6 + 54 files changed, 2683 insertions(+), 5 deletions(-) create mode 100644 objects/6AxisScripts/6AxisScripts.js create mode 100755 objects/6AxisScripts/bird.png create mode 100755 objects/Gripper6AxisEV3/bird.png create mode 100644 objects/Gripper6AxisEV3/index.html create mode 100644 objects/Gripper6AxisEV3/object.json create mode 100644 objects/Gripper6AxisEV3/target/target.dat create mode 100644 objects/Gripper6AxisEV3/target/target.jpg create mode 100644 objects/Gripper6AxisEV3/target/target.xml create mode 100755 objects/RightBase6AxisEV3/bird.png create mode 100644 objects/RightBase6AxisEV3/index.html create mode 100644 objects/RightBase6AxisEV3/object.json create mode 100644 objects/RightBase6AxisEV3/style.css create mode 100644 objects/RightBase6AxisEV3/target/target.dat create mode 100644 objects/RightBase6AxisEV3/target/target.jpg create mode 100644 objects/RightBase6AxisEV3/target/target.xml create mode 100755 objects/RightShoulder6AxisEV3/bird.png create mode 100644 objects/RightShoulder6AxisEV3/index.html create mode 100644 objects/RightShoulder6AxisEV3/object.json create mode 100644 objects/RightShoulder6AxisEV3/target/target.dat create mode 100644 objects/RightShoulder6AxisEV3/target/target.jpg create mode 100644 objects/RightShoulder6AxisEV3/target/target.xml create mode 100755 objects/RightUpperTilt6AxisEV3/bird.png create mode 100644 objects/RightUpperTilt6AxisEV3/index.html create mode 100644 objects/RightUpperTilt6AxisEV3/object.json create mode 100644 objects/RightUpperTilt6AxisEV3/target/target.dat create mode 100644 objects/RightUpperTilt6AxisEV3/target/target.jpg create mode 100644 objects/RightUpperTilt6AxisEV3/target/target.xml create mode 100755 objects/TopForearm6AxisEV3/bird.png create mode 100644 objects/TopForearm6AxisEV3/index.html create mode 100644 objects/TopForearm6AxisEV3/object.json create mode 100644 objects/TopForearm6AxisEV3/target/target.dat create mode 100644 objects/TopForearm6AxisEV3/target/target.jpg create mode 100644 objects/TopForearm6AxisEV3/target/target.xml create mode 100755 objects/TopUpperTilt6AxisEV3/bird.png create mode 100644 objects/TopUpperTilt6AxisEV3/index.html create mode 100644 objects/TopUpperTilt6AxisEV3/object.json create mode 100644 objects/TopUpperTilt6AxisEV3/target/target.dat create mode 100644 objects/TopUpperTilt6AxisEV3/target/target.jpg create mode 100644 objects/TopUpperTilt6AxisEV3/target/target.xml create mode 100755 objects/obj45/bird.png create mode 100644 objects/obj45/index.html create mode 100644 objects/obj45/object.json create mode 100644 objects/obj45/target/target.dat create mode 100644 objects/obj45/target/target.jpg create mode 100644 objects/obj45/target/target.xml create mode 100755 objects/obj47/bird.png create mode 100644 objects/obj47/index.html create mode 100644 objects/obj47/object.json create mode 100644 objects/obj47/target/target.dat create mode 100644 objects/obj47/target/target.jpg create mode 100644 objects/obj47/target/target.xml diff --git a/.gitignore b/.gitignore index 10ce942..9c1c595 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,7 @@ lib-cov .DS_Store # ignore personal objects in the object folder. -objects/* +##objects/* # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release diff --git a/hardwareInterfaces/EV3/index.js b/hardwareInterfaces/EV3/index.js index 0a20b27..a1a8537 100755 --- a/hardwareInterfaces/EV3/index.js +++ b/hardwareInterfaces/EV3/index.js @@ -255,11 +255,11 @@ if (exports.enabled) { if (!grip_calibrated) grip_calibrated = resetGrip(forearm_touch_sensor); else{ - console.log("The motor speed is: " + motor_output_top['b']); + // console.log("The motor speed is: " + motor_output_top['b']); } if (!shoulder_calibrated) shoulder_calibrated = resetShoulder(shoulder_color); - console.log("Im writing a command with values" + motor_output_top["a"], motor_output_top["b"], motor_output_top["c"], motor_output_top["d"]); + // console.log("Im writing a command with values" + motor_output_top["a"], motor_output_top["b"], motor_output_top["c"], motor_output_top["d"]); var top_output = top_target.getOutputSequence(motor_output_top["a"], motor_output_top["b"], motor_output_top["c"], motor_output_top["d"]); top_target.sp.write(top_output, function () {}); var bot_output = bot_target.getOutputSequence(motor_output_bot["a"], motor_output_bot["b"], motor_output_bot["c"], motor_output_bot["d"]); @@ -364,14 +364,14 @@ if (exports.enabled) { motor_output_top['c'] = -30; motor_output_bot.d=-10; //motor_output_top['b'] = -30; - console.log("he's going up sir"); + // console.log("he's going up sir"); setTimeout(function(){ motor_output_top['c'] = 0; motor_output_top['b'] = 0; motor_output_bot.d=0; gripper_open=true; grip_ready=true; - console.log("command has been sent"); + // console.log("command has been sent"); },2800); return true; // grip has hit the touch sensor and is fully calibrated } diff --git a/libraries/objectDefaultFiles/object.js b/libraries/objectDefaultFiles/object.js index 87ab76d..12ecd27 100644 --- a/libraries/objectDefaultFiles/object.js +++ b/libraries/objectDefaultFiles/object.js @@ -49,6 +49,7 @@ var realityObject = { projectionMatrix: [], visibility: "visible", sendMatrix: false, + sendAcceleration: false, sendFullScreen: false, height: "100%", width: "100%", @@ -110,6 +111,7 @@ realityObject.messageCallBacks.mainCall = function (msgContent) { height: realityObject.height, width: realityObject.width, sendMatrix: realityObject.sendMatrix, + sendAcceleration: realityObject.sendAcceleration, fullScreen: realityObject.sendFullScreen } ) @@ -183,6 +185,16 @@ function HybridObject() { } }; + this.addAccelerationListener = function (callback) { + console.log("got this"); + realityObject.messageCallBacks.AccelerationCall = function (msgContent) { + if (typeof msgContent.acceleration !== "undefined") { + callback(msgContent.acceleration); + } + } + }; + + /** ************************************************************ */ @@ -204,11 +216,32 @@ function HybridObject() { height: realityObject.height, width: realityObject.width, sendMatrix: realityObject.sendMatrix, + sendAcceleration: realityObject.sendAcceleration, + fullScreen: realityObject.sendFullScreen + }), "*"); + } + }; + + // subscriptions + this.subscribeToAcceleration = function () { + realityObject.sendAcceleration = true; + if (typeof realityObject.node !== "undefined") { + parent.postMessage(JSON.stringify( + { + version: realityObject.version, + node: realityObject.node, + object: realityObject.object, + height: realityObject.height, + width: realityObject.width, + sendMatrix: realityObject.sendMatrix, + sendAcceleration: realityObject.sendAcceleration, fullScreen: realityObject.sendFullScreen }), "*"); } }; + + /** ************************************************************ */ @@ -229,6 +262,7 @@ function HybridObject() { height: realityObject.height, width: realityObject.width, sendMatrix: realityObject.sendMatrix, + sendAcceleration: realityObject.sendAcceleration, fullScreen: realityObject.sendFullScreen }), "*"); } @@ -253,6 +287,7 @@ function HybridObject() { height: realityObject.height, width: realityObject.width, sendMatrix: realityObject.sendMatrix, + sendAcceleration: realityObject.sendAcceleration, fullScreen: realityObject.sendFullScreen }), "*"); } diff --git a/objects/6AxisScripts/6AxisScripts.js b/objects/6AxisScripts/6AxisScripts.js new file mode 100644 index 0000000..f411f0a --- /dev/null +++ b/objects/6AxisScripts/6AxisScripts.js @@ -0,0 +1,107 @@ +function scaleData(data){ + //data is a JSON object that dependent on the interface might contain: pitch,yaw,roll,height,touchX,touchY + // its job is to take this data and scale it between 0 and 1 + var scaledData = {}; + if(data.pitch) + scaledData.pitch = map(data.pitch.value-data.pitch.init,-1,1,0,1); + if(data.yaw){ + var yaw = data.yaw.value; + yaw = scaleYaw(yaw); + var init_yaw = scaleYaw(data.yaw.init); + scaledData.yaw=map(yaw-init_yaw+.5,0,1,0,1); + } + if(data.roll){ + var roll = scaleRoll(data.roll.value); + var init_roll = scaleRoll(data.roll.init); + scaledData.roll=map(roll-init_roll+.5,0,1,0,1); + } + if(data.height){ + var height = (((10001-(20000/data.height.value))/9999)+1)/2; + height = map(height,.9971,1,0,1); + var init_height = (((10001-(20000/data.height.init))/9999)+1)/2; + init_height = map(init_height,.9971,1,0,1); + scaledData.height=map(height-init_height+.5,0,1,0,1); + } + if(data.touchX){ + scaledData.touchX = map(data.touchX.value-data.touchX.init,-350,350,0,1); + } + if(data.touchY){ + scaledData.touchY = map(data.touchY.value-data.touchY.init,-350,350,0,1); + } + return scaledData; +} + +function scaleYaw(value){ + if(value>0 && value 1 || sharpness < 0) + sharpness = .5; + if(max_value > 1 || max_value < 0) + max_value = .5; + value = (value-1/2)*2; + if(negate) + value *= -1; + if(Math.abs(value)>error){ + if(mapping_type == "exponential") + speed = mapExponential(Math.abs(value),sharpness,max_value); + else if(mapping_type == "linear") + speed = mapLinear(Math.abs(value),sharpness,max_value); + else + speed = mapLogistic(Math.abs(value),sharpness,max_value); + } + speed *= value/Math.abs(value); + + hybridObj.write(ioPoint,map(speed,-1,1,0,1)); +} + +function mapExponential(value,sharpness,max_value){ + var scale = 5+(sharpness-.5)*7; + return max_value*(1-Math.pow(Math.E,-scale*value)); +} +function mapLinear(value,sharpness,max_value){ + var value = (1+2*(sharpness-.5))*value; + if(value > max_value) + value = max_value; + return value; +} +function mapLogistic(value,sharpness,max_value){ + var scale = 10+(sharpness-.5)*10; + return max_value/(1+Math.pow(Math.E,-scale*(value-.5))); +} +function map(x, in_min, in_max, out_min,out_max) { + if (x > in_max) x = in_max; + if (x < in_min) x = in_min; + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; +} \ No newline at end of file diff --git a/objects/6AxisScripts/bird.png b/objects/6AxisScripts/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/Gripper6AxisEV3/bird.png b/objects/Gripper6AxisEV3/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/Gripper6AxisEV3/index.html b/objects/Gripper6AxisEV3/index.html new file mode 100644 index 0000000..05bbd09 --- /dev/null +++ b/objects/Gripper6AxisEV3/index.html @@ -0,0 +1,223 @@ + + + + +EV3 + + + + + +
    +
    + +
    +
    + + + \ No newline at end of file diff --git a/objects/Gripper6AxisEV3/object.json b/objects/Gripper6AxisEV3/object.json new file mode 100644 index 0000000..7245ecd --- /dev/null +++ b/objects/Gripper6AxisEV3/object.json @@ -0,0 +1,354 @@ +{ + "objectId": "Gripper6AxisEV3a1a22x6p9s3m", + "name": "Gripper6AxisEV3", + "ip": "192.168.1.21", + "version": "1.7.0", + "protocol": "R1", + "tcs": null, + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "ya1gnxzr": { + "objectA": "Gripper6AxisEV3a1a22x6p9s3m", + "objectB": "Gripper6AxisEV3a1a22x6p9s3m", + "nodeA": "Gripper6AxisEV3a1a22x6p9s3mroll", + "nodeB": "Gripper6AxisEV3a1a22x6p9s3mGrip Tilt", + "logicA": false, + "logicB": false, + "namesA": [ + "Gripper6AxisEV3", + "roll" + ], + "namesB": [ + "Gripper6AxisEV3", + "Grip Tilt" + ], + "loop": false + }, + "Oi0ztecf": { + "objectA": "Gripper6AxisEV3a1a22x6p9s3m", + "objectB": "Gripper6AxisEV3a1a22x6p9s3m", + "nodeA": "Gripper6AxisEV3a1a22x6p9s3mpitch", + "nodeB": "Gripper6AxisEV3a1a22x6p9s3mGrip Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "Gripper6AxisEV3", + "pitch" + ], + "namesB": [ + "Gripper6AxisEV3", + "Grip Rotation" + ], + "loop": false + }, + "q6w47a4f": { + "objectA": "Gripper6AxisEV3a1a22x6p9s3m", + "objectB": "Gripper6AxisEV3a1a22x6p9s3m", + "nodeA": "Gripper6AxisEV3a1a22x6p9s3mHeight Tracking", + "nodeB": "Gripper6AxisEV3a1a22x6p9s3mkickback joint tilt", + "logicA": false, + "logicB": false, + "namesA": [ + "Gripper6AxisEV3", + "Height Tracking" + ], + "namesB": [ + "Gripper6AxisEV3", + "kickback joint tilt" + ], + "loop": false + }, + "jxqm8pr3": { + "objectA": "Gripper6AxisEV3a1a22x6p9s3m", + "objectB": "Gripper6AxisEV3a1a22x6p9s3m", + "nodeA": "Gripper6AxisEV3a1a22x6p9s3mkickback joint tilt", + "nodeB": "Gripper6AxisEV3a1a22x6p9s3mUpper Tilt + Top Joint", + "logicA": false, + "logicB": false, + "namesA": [ + "Gripper6AxisEV3", + "kickback joint tilt" + ], + "namesB": [ + "Gripper6AxisEV3", + "Upper Tilt + Top Joint" + ], + "loop": false + }, + "zrXkgfpj": { + "objectA": "Gripper6AxisEV3a1a22x6p9s3m", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "Gripper6AxisEV3a1a22x6p9s3mHorizontal Touch", + "nodeB": "RightBase6AxisEV3V78ogdk6csbeBase Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "Gripper6AxisEV3", + "Horizontal Touch" + ], + "namesB": [ + "RightBase6AxisEV3", + "Base Rotation" + ], + "loop": false + }, + "0NF1tag9": { + "objectA": "Gripper6AxisEV3a1a22x6p9s3m", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "Gripper6AxisEV3a1a22x6p9s3mVertical Touch", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm + shoulder", + "logicA": false, + "logicB": false, + "namesA": [ + "Gripper6AxisEV3", + "Vertical Touch" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "kickback arm + shoulder" + ], + "loop": false + } + }, + "nodes": { + "Gripper6AxisEV3a1a22x6p9s3mVertical Touch": { + "name": "Vertical Touch", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 206.33318058931354, + "y": -219.58932768143177, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mHorizontal Touch": { + "name": "Horizontal Touch", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 286.34371729911595, + "y": 234.17319305738692, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mpitch": { + "name": "pitch", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -326.09581366211023, + "y": 0.01635377259526649, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mHeight Tracking": { + "name": "Height Tracking", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 405.910473623587, + "y": 10.225202127854573, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mroll": { + "name": "roll", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -269.02284327182906, + "y": 230.94073829488525, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mUpper Tilt + Top Joint": { + "name": "Upper Tilt + Top Joint", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -30.702437297203232, + "y": -224.20098426852292, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mGrip Rotation": { + "name": "Grip Rotation", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -103.46392104317124, + "y": 3.552950305227114, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mGrip Tilt": { + "name": "Grip Tilt", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 154.76352955665993, + "y": -13.788654253356526, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mgrab": { + "name": "grab", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -6.5617496283020955, + "y": 233.9308623102952, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "Gripper6AxisEV3a1a22x6p9s3mkickback joint tilt": { + "name": "kickback joint tilt", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -274.72902860564864, + "y": -223.52884918892732, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/Gripper6AxisEV3/target/target.dat b/objects/Gripper6AxisEV3/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..c88c72e6e48076b78bb6d8ad64ec56ba2c51c96c GIT binary patch literal 67106 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 z zC!hs_2N_+NnJ1wo;j5OWV~HDc&eG2&%vG_@wai7=MQ>X-5KgmFnpNf-qQ*<^K-FJ} z68^a#W&b>1!5PLGsc&2*_sEo-+KDx_-zhvX%Jl#Lv7hd*$k~_TU0?SW8W+V zcHg2_!}Tk&gW&fd!D7Da>t0(OT1Z9Kb|x4_$@J9a?msLtzNJO4;z9995=wU{dY|Ae{C`^lu7_@?y0C}voQJnds&#xk8z$ZL^0-P9 ze`PjO+a!*#!x?vIyLRk$>Iynx6!PSF^l3$CzWoByohJ!AHFbfySdgTmg0K^7+fMzr zQv;|HRKPdy!1`udRoeCE5t&?Gtnyw($=xe7e1?LhZC|%F+Lzo;jbolYHZ z-i-V7pgk29{OGHLf4?LS9T&UL5mU75s;?qr&#rHWpZ8^or)b^1 zBI4iePc%+w1a*5Mf;}bVd8w38+f(wF79hp7uO$U}nc^rmS{<{d|KM`qb<~hFaq8>! z)Or|>(Tn{qqNT=NKMuaxu94u!3Inl9{TD_S&mb>M`VngIU`j#Zikq7|o(z#k;^V(Q zs*xa}UB8ZR(d;gucgO`iT-U_oX#Y7!bHaCIR7L&8yi!hq zqsSf?APikJt^jT~l~e_qFD%WhUTR^TYeQv0`7cqCqtvB8-Q!o{9r8LB!{wjLvCxC| zIbfdnEY>jgetIYv9SldIC@QjxIv|Y6wD5!Cb1JnCvQMEi71zKXM|+h3-TmN(e%eZ+~pCK}{9F~nC*V*b;TAPZ)ALRXE&{Mxj% ztyK0aV37hBpAqnU8?eLc1*&kf2K-+fvI93#$_K5Y?_NwnU9bQ&l>Fm4HAdG=*BOTn zhNDZN1^d>{t{U}Cq^Vc526a}+hpT!|AeH1eg8^m4<7S4q=}J)yb18GwH-xraZrzdc zX-Yd*>uByeT$EA1r(%1@)5nv0Z@$;9<%{%lK2kapYuawR+>+-NLheYkWGzaE&mEP4 zaoYT}dBBn3Euv9cK5XWkI))$PpSC2FCUQ0C9~%LN)b-RYpTpvy{&3%ue=he!Ib|{xqjJ7hp)yf2YrTpq?1a)yj=u z8XF&skB*-m%0o6-2A@By7P_$$k2LHDu4d!DcYu7*zlehaw;OKtQx+-~BNlGuKFd=O zy<@#ruul)=N*5*pN=~`{`=4idaYrgrifoK~a)jMwWSgf;{QYxdz1*qeXjR^G0E;UZ zS8kbDW`cAd^e*dpo498AjRpFH-MUy)B z<~!=CMTZ-$O#+){#zRcYu3`zK4(b9d1FS}G`nhn?kTu{M>yB9*n+QY6+%SusjBdPoexWoHAn&W+g}rGLMk;yQc}JOz~Ue5HV^ zIPfVYdfGCqOz9{ra~pQkwP_x+JHc2DI=hP8mXT~yLZC?MwV_5eXunlf_QY zoeg$g`pqVh9UalqF|guH24JteDvHD8n|dPaSGt?TmoLZt|SyNSo zh$UNxVHGvNnNd6QmrR~$LOVmMgwK9_kzQ+6&MLi0XhIMMcWrkaEYAdR*W@apFIBbG zULkLk?3N_0d3V$#iW!;IQC8t$9*5mMoZ4sGcv8p7`K%2jVd=p#U z)U)lfx!8HD(+56TS+D6t*`syzMNd&Tol0dV<|iMvU}GgCuTP8-Vjr#MK(rCu|L*4U+)!aU{M-bivxi9d+Y zHHvmc`I*gk&Djdh(!PjE+>GKAQq!@NG|yBO<%&v=tSoH)i*Hl5VOGr|wcx)^VP68BQ4qMid>@`Rt`BcV$G^WMqA` zY#K3J8wxnYzWLnK6OKTm+MGIX@GM{L3^lV?Nj&+fO8eArf(%^?|2j-vVL|%>nDA8d zyxnTwH79q6gaN*q686IRGSv@}+vHc}Z=~`SIHi<_#&nkPVL5i~ye6i~!{i4+J9F!j zgU8)lgjBWHcCGshmj!EQ$me+);i7PL%;z$WWrU7D3FKd=6b*Ayg}6BW3*)&^kA&=B zk9(wVu73#GOVa5i{}mpAd^dLdhMLnZSvtty=fTx2>1cAuAHGP2@oM#It_bzARTsxO z$yTvWGAHa3!i!o!;PdE+T>dS*t{B8KihLy(H}G#TX*3;KeT5mPlm1f#r@kZ*u|xvf zqAKz^w80(>oiSx~6Zm^}@sTB+IK zS+*k%IvHzS=gu)tMoe_VJqd~QjPm;7LSqZpTgdgOFT!Q`T}(*ofz+6!P~~@g`oTp@ z4{qOs#086YZt9xnORBHbthsz^9Y!8XkOrlDPrg0CjLNkl4!?+o*U=97N{`TzjWNva zz-l!LIHMRI#xMy}Gd}tDD>`WnM(MXW9vwR!SuNrv@)=gn(vP&vv=rr7i@y_UrxaW| znZWG(Gd}Jf?%EXAN4fqLe9E904TLuyoF9zn9X2_q%^NbD8C$^&-_^DGYkf27U~O>W zWig622%$Vfx9L>-wC#9e{1?rj6g)Hb7u~HyloqEFVpx@4)vby2neayHNn4d-lGXpyzuSfP56YxD~wz_ar^DuU1Itm#m{U>$Y9{!R}$J~d`Ve_Gt^x#_pF?^rMK9PHpeJj zwsf=Hfn!#{+VorDH>3ZdX78BUUA>9@$@w+;N!C9-re3Jwq=w8jsE)>D~1t zbWhrdI-~R^(&oosafQPQ{_SUAaPI4%_PxHXNd>Zwq2byb<%4M>_Uy7_5c7o*?#qC4 z$oOsdKyH=3g+{p0RNP@BLVmIk7Ur=wli^aJ!KPE3NcWF4Pp*3ke`ie1?QOB`1KbDQOm3Ys&hCOA-&n$WP%Nrm-&oqZ)UUAbq&8gVS4Kce1`G#D=cj`z!2 zR(O;@`G6^)NcHhMgj6I~ByT?3RD%yZ5d}tpok$NY=(s?LaAQz@Vru!5DC){d*TC;& z1YX~Df=_?Ji=ZF9cCw3jR9Rek51EYB)>^0;3xE78gHHq?aB!_q0+{bHI|!XzguSlj zr0zWoi}j~W1i?PxkCj=uN%i6aSp$S%kJeSJFmMd;hquk(s*>S_VQF3^-Zo+WXc=?& zLubfAe>5ZZ+{8E)t`3)zxoc=^G=y0|d31@w;3MN5Kx z_T6Xcv5(a|?<0}lin+&2r10Fze`|}62qqXOY{FdVQbQ6v7Vo=n!al`DPkk#~?b2Mp z>OWxf4k*nDR0o_bojIu>`m$JiLyY23$%-E#5vLkxI4Oa-+ay&na%MCvn z20!1#)ZBNc5Cdnxe&6?=x04uQSsnQV*YpxA&YQ=1#N@9BN$QxTvz1^gDRWniOzliVPn9u!dSh;jpb$?iFC3$XYUfs5C)3pQC%otz&(x2fK z3h`;=#yxzROyl1t$F($Eh;oM)mSs)J#m66C-Np*0@JV)@x6ZJ!-X6~kFD~Qb-d{Fw zGl=P18h-vjQ}cDNkFQ>!v3{+Hj#;e3*HM(cLDP8(EgTvk#}gn=uC*MqQXhX3dAX0J z_-4wSmAo6bR==lTZdEHHqy^s}dmF0l^D#!Tqwy8vPwt#wN$|scF zOuD!X4S${)8>W_tDI?Z}FAIlJGflHUmzG1ow+mrp_44CF>g|-0;OT?L`T$4F-|iIHwT}Ng z&NuqGNJeq*%yiAG*yYFnk3RY~TnQtfJ=bxHl|?n6!42(`IgQ^)fP5?vGfGOuW%=0?UPmjdEUPNR zM@MS8G);L|MZ^mhP!z-d8@FRH>+C)J1_bC`Hp=wWTxlqg3q3~gt@F4 z?3!o(Z!z8Lv?t`#Q-nN1v5{`_`BOUoTqL(Q5BFEYaGanINxtFERuPb8w=0R8x_BuW0;aTWhpa-F@huH1!sb^0N%`q>mn7hi$?C)>( z!ESSM=Z=t^iB8T6XCiA=!&IYg{qSJhS@zNk4}+O04hI48!{o?TmbT$#gdUp3@qI{$z#2hmjF9d4k~h&sPLWhHm=Z|#cplk`UGX}|bjJd zOiUyHO^Efv-@1PNfOb9~6qf9a&lw3bgx|$hEdV)JkK?mbvw9}Bj{xeo)o1>nU)QfD zwEn17_=}t74fmZqllHgbMq^%Z^{Nz3MFd3Pr6Ir|EZ3(xe{&;ksZtk#&6{n8iiV17 z_9HB+V2>qYvbJ4-7o34)W$d=N-;lp~J=KLL8e%iZQ>@@%R}z$3G{L(FB_ce%uw_UM zpQ9Nu)-nIdZ_{zgP%EPv-5MsF7QjKDnhcK6ywexxKi4wQmLlfGoQw6I{@ZWUKkV8` z$Qpf<5Uj6nS9U}%rHa#3Z?39`Lxb5i(_>EQlT)f1zc~19vZ5ygLQBb3)cFI`iPKbG zQ!QHDhzWMN&Dk%S!wdX zF^O(lH~z~$R<;3!WSrFxs2j_$-ISfdvFR7WYq_C{)LL4iLaXSmG#~$E1x39K)%M=e z+NAol3?@fKCSZa4h27vv3YHqdVe#N+lnfu(kN+}F@x6?F;cNV>p$9ygfc6~p_cw|4 zuz>-en=bJX{9P)zxsLxLVqKm_*Bc%)Bs+)m(>a^ZA0p(nD+XHRbpJ`m4;)C!W`&DC zzhyq)VUv?3B;UJ@dSWsn!#iBu=eSZr2jNY$s{sqBOm+MGM+Ain*xEmbr6^-CzJj2r zv>*5S4n%x;fB>R76b48zi~RgYW%?D)+hQ0wk%4>e=Ky3to46~1$1RbCn8+7(0l6X(dFWA4a;kO9i7F@9XO_sd(}1ydM#=_ZBm zma~zeZOhJ}0u$sA|MEK)Omv^I;muqQeN8|lCq6XZF*y%v`%y{I;WQ@mtRz+hED z*qIpr59}YUZDTJf6na+pcEC+H@Xt=pPTI|eRk3yDo6<cmp|$wL%G=}wt~a0(XJ_J*l#MUgU8JCB zp-p4s@l+x?N+QTk?0IGeoXMrkqSY7J7uSmx%?_1-e|0(Bz8~DgWl~1=#_q^u zYLib@RJ4BF+L^I7aMf$t34x>k(^`n=$_F;gO3W!{#wsTMvsmYPYMxe_j2pE|EpU}4 z^I(ld)z2taJ=&E5CvJ*?(^M_K3m;eCP_C9T$RK0Sz^Z+%}oW_{_o-} zPEWSNOhAR!SG3pnta>BRt4ehXTvbeCVLGK#(B+}v4LO)aCRZuq0~p^x%Y|`>K87`U z-PHwcajy-(UBhAxH#&L{^UMS&**YnSYTbhu#|IH6^`nh2M7F9A#`>Ds7=CL_os5V` z%L^$HCm^x?@FX6CypF4-*;BzjmmITThBDB6EH?c10|r@2VUu`iQ-oA1ylo|E%d1OsTnVRZ6FC+oyL0;>2~iz6-ot zJ74Gcv5I=XpEKsaRp}#kVoFu{IwE3SNnM%jB|asHp3YEwzQXUO%PLkO)*UX4l$XeJ z-%xsS@kLqYsDX}mS?xh3#_APb7oX6%-s;r)8R~)_CWQN*lbkFHqd>Sf;$-gPO8DO} zGXDpNrx!&217;AIa-gYJ^W-9+Pxoax(UUs@o02iIK5i)ko<-XHw-w#;@(4}AlGY}? ze8MO7fZuPEb(7`tnD6o5vzfEhxB!$oyBh$^e?z6T7%FD9!xwP9F<=N&u=ev z?kkd~rcmeQnf3wpb=ABxDKO!ZpP_*fhWk-ftBU4cZCq_#@w+}!#u?dr$a5WyW_h^-Qoow(-}rG#HaH@iavjL8bg?Q0 zgHrrTrhP(jIAbSnE#y{;LF+PEMVdRqP!sry{J)mI11zdD{r;Ajfnk^#hAJ>rsY($T zn)D9Rn@ABvs&r5(0{2@?+}-?=P1zVX5Tj;eOk8UcU5&<|i5d%_Mq^h*EPx0iqEhF7 zF8k+sd|>c$%U9lV-t(Tz>B%`)b39;nJdo&Z=bS)@u6=%e8cer3~S|k*`kt{Fbuh+A) zD}0g~y|G~NCpf3)vc~^0b3BoA(F&n`EsP9m`%uZ8YGd&m!fgZ;RPjV;`*@qF&_ z{l@>Xr>u1sPMe!8ngNq4b$423$5-xt2F#1Ma!qY`QGMXEZJi(}!fJKrMXUCn&XUpjDwHFFN?pAXJ5K;1?QgH?)y*r zQZ)9?w|s7hOoyM8d&sjNx|yTX!0t5sUGL7!HT37jUOBYvxlE6G$e8hcG2t-8SVqK{ zG8RU>Ayu*a;yC6OV_&kZOC_Vn_c^5A!O6VTUV2AHY5_2UmcPet^&5S$ehSU_5wEM<%u54o&C!W({&~6)pwhm4~DTG}XDvPD4lqBrT$cAN5mC#{3GB=oAH1p(D zbdK=%iR@2C=?X1V%Tm$IL7caR6m|UM;qfV5gDczpWEaIh(XSeab1+&mO2&R=)96aD zb{VyR?Gku+q_bn@a_3hDshq+qzwt+n_+a#%ar-8@!f8e*yeyAf3CEP;q37Xok+S`i zke^1#s-Voo^7&C3g#{Ce#cj`tp;VW&MEw#Ss_Jidvu910T1TBW^X?1O4R52WanT4XA~kqI)061^Bb9Us)UF=X#9OK6uthp~ z_1MSa*71l4z7~m&Oj4X(QKo?c>I8!EcCp%3!My#zVBH^JVE*fG<*lz@EJyJOM>>%5 zuMF}GtcGJMWD~xAsxP{nY?-%{ni`XDz~zWs5w-C+SIIM8_&Qfs4YEl;tO1^ruixb~ z!rV5m^aiF>XAx)-i1mX80@8$xkD0t1lg`Iu&STE<;^pm*FWELRXTk5di8dK&QxNNV zDcY;0&g3CQ;Kp)MgRv#<1?`S2nXI-vlF*hwgkz$41*D2;j3@d|N0kaCKNAxpiRInH zYI`3BN&r!N@GHN}8Y1d+&f=rBHzH%hagm(?5Z#7jr`8AY$}R0|@|E?;eK%lHePet( z`=UH~lmjRP(+wZh3TtjVY^&G(s>`N}c}XdkH2IN+xPrKX+k*jS{Em~|mDw9gY>ZlP z^;wN{qPps_(2sq?h$TYnGUBy~kW&+3ZU92(echx)Q(G{RQk{U-SNf*fLd?Kn#Vu8q zWKLKDzPSw6Ca#F+AinJxu~xiM6;eY^5$(xpiz-&fq9`Bkl$guS<;eK_=6&%T%}j_S zBFksMKcTjvn(k6&G80o0@tgoplpLFkj?_kCK}sn+(Ti~t7x?8Rz28}{pdYA>KBgx3 zOV`sUmI2+z==4VU@tBne2t2=DdA>8#!nU;29(p?{(XPeWyuTbxZ6W|k=BpSIU5Wmq zMP`e6+JMV*7d;Qtc0~;x-uA!zNEH$s4{Zt_a^}?`1d=zN9{(%{F8W(oXm^)dewLcO z$u54qUn^zutme|idMoB@XRGU0lW9|t@==O%#Z;eji^pQM+=~|VNCM9l`;$WmLN6V| zIf2_)2(9((tL>|yr)37nis|U<(w0(VVpqM!%YZ<_qQiesCkpw>^4tr7?)|s+hRv{M z(|-n&cH?$D+Vh82_IIu!(rYRp-ymAyE8r+v(lR?sI|=41?qa-G_an8&c51Ls>DW*Q zi;eJn8xG`s927V;25cAD?!?DvWR&!SF2Ol=NRgoAC;C5Ia_i3Pc^jAEocxzaGc=0- zu7xkPE9?zBH6$|p4Vd@Khq2_?StJ}Y;KO{AN2c5*A-p!naG6nU$rcax3GKN#w&IsB zFhB5q4|Qree($hip%kJzGS{EswNWAO+1fqR$xO~_ux2`BL%7Q_*MDEh4adeItXe2o zmrY1JuAaO*Z*|Wh`fUpH;ImLtXb+ow5uEpj6{Q^V84Vn@WOV~LbH!v-(?HYRujI84 z^JqwE*aigqO@#l3`FLpx>ysg_X3mMx1rH!W^n{pqoKlV7WOZHz=rcMgORIn-UA$A} z%U7CYZ7SkjKuX>TCpp@dQcJZ_$Jk$)w{OML&#@o*uOE(KiC6(4oYu23%y!B-xuJ?I z+MiE6JUYhSrDn%u@_zUWy`>~>>>V8Li>u!uc0*qE%SESQZKP{S&(4yO{q*j+I-#{o zRspXIhfGwLe|E`)w(%X!IwfV22yR0zX@}<7U+K057{Me`ArOnS+WHWdib)ZwLTuYk zgjSg(6P|+U$|)HcV0&*`%_Ao+ZXpr#&n_qH(AdpRgya)*;4C~NSM_7}uq#vVPjWY7 z-tBzr(94JW#MSw~2zJT{yNNYm?_3eXYg4$}}A;mwx$Zcy!Ots%Kl69(iTd z*nR6{$9(7%Vny?;57~Ald7*F&<1L0(iXJKUQau}_+WtY-#o`EMdKfv$wvsXyM;|4n zyyU~LkREuM7JwW<^{k2Bw>!TX(kBt;mEOu}9E37@0$O9Kr)@FVdc=jtaJteu1`jeX zZkRas&eo8cr-XdM;Yd6$bQ;zS+w0qJLoze5!Gv^7(gQm5%oia=b}vYU2BpbBs03yf zJ8q6)9@!{u-p9xI)9Jyy>Ov7a#>%uW#_!J83S#j+aZ~)1R1&gb9?>v zORmZBX&@k|%Fy^$=0*#dwAyz5l>! ztrb6>+YpDHmBEsi9oKOuaQM@Q2!NO;iqtVq&u6TL(T{Cv}mN?H?ZpsbaU6B3{ zR0gx&%ET;EKu+*rlgY_#D70|MiJbI?&`*~_lErP7UcT=%2yYtPvK>MYYiS*@9#u+#ohS|A6~Rj0r@I5Qkz?Q%B0 zg0Et#UAwP+OQR*y2@~zg$Fxu^@j>(pzsWKO6$J{%v*6Qq2Y8e`p)aRWx9{6ooBL&E zlOPg&7yX}T0w&ftr?#VgJe(oY{?)vW#Kq(6Y3;b6iW|tG(Zc>clPCf1y&Cw1+wZim zCOH3j;acI6t~mN!3EdWtsH>9{|6(3y&fAU#j3>kBun|RB#MI9edMq^E(Oz=)7W+c2 z!z39a;twQij=zkM&(qR!N$zb8J1M+9(GwVJVwBFVrLX?YWy4mSOKrE7T<9zTP=g&I z(y$t_(X|;gSVQD((8RmbbGnyNUeAjbzKhZjj()i&X#-y!@X7Nf(-6M>Bg3mi|9l$q z;-1rG)Yx%(#APt;ucB{x_d`4^@TE$8yAOX-S`WhT-{T;Dqx#L6eKD%geKY{Z)au*< z^wh(x%=;r|LQ|o0b1_Eg--WBO-+$T9JltW<4I=ZInp?>2v##VgAbcYmBe;<~y}TaI z9aI?y=)QLR^bs?3Cpt~8vkHA1Ylx`@tid>sGnnDj3Y3qmFr-GL;J!P|3jgSw>kNOoM)AygpnkYwbN9qID#IrKdxUY`ZNQb~0L?B{R%e@(#hyrYc= z)8aSY{P&)p>4SE(dfLk6)gxCa^;M(G@{*@KKPt6 z69&2Q`QNmKX=LP+6)CZi9Jd^w0WopYiN4%}qD9#6^ua=Q(UHXJzJs{x0h0W&Daosn zpxXjA?u-Hz%l^;|YBDOm3a!pl3&ZYT%Z`kEr-t;O z^sa9g_w4(|urm1<7_bq>sy3m8Xpn9jH7OZ7m5__ee!F^jY-fl~J_Nw-5 zpj~^t7L^BajlXhb+)?-RReTkA3sugjADVkd{fav5Q7)SASw2C%k!D%))22LbK{`h& zOiCu<=CJb4KTb4<%P0EY(0s7(*xgFE;bu}ZN%S2&(7}L^WYx$ySk1_?6V4;N>kJp^mpylfOzy;NqHFju^H~5{QNR#YWH>A=#*pK7IPvv#|1Kxh*AA@oqhNA-vIUZ9@WIIl00+TCz`2eK z8=F&~lky9&6dnud9YlO*cm84@I#^!6J)6_ks^8v1eMaB4~w+AUY}-52!bl5Nk} z$!&MxdP3h+ZB(+YjyV9PJz9@R>Hbpkoq1In z@3n^z72R@+Nc4ZcI!Zd!gl@y0t-7qvL$q^?GuJ%ND=Xhrh~#5tKDr3#h$f}B4@j-n z8MIgndbUbfUrDTsFJdk0P{dpE`k?t-+n+?;(_Q6>II5MJOtdPt>)E=2y*ifTW8s_8 zC{vdvjGjmg<1qomv??abCZ+**v0v2`4NJQe8ax;`JMj-`Eh%N7OX(I9>cOhR9{63c9EzJ;3~B zXqg)u&2FwB&E%O9Lw^Us>I2&VL3uQp(JCe};45Ce+LCz@Tq7YH=TEB60?i(O8tlPW zg!pw@UA7)>1ey9`l9ChEk{Qjs9!Uu^yc1S$xXh;+dWQ+*3gBTPb2(`whbT-+g`k&-$SA>*hXuB{kct&)+63M%}a-wYMfDcm9cNRmau^`fw zip}^d0JICRHk4R2^_ZlDiW^$W`*NZ#&<;PZB7bVGBMXl$is)YC3z2xKDbat64~JY9^P(h}bl+h~RSPFml75{CQq z_gq1H9$OwM923efyVkW^G=CGT6p8dGE4JP(vmsp?n{jiOKliWR0WEwia+c_+;kUt_a$9VCe^oj z(80CY0Ty!L*x@Bt>GQ%MF}H_HqvwRo#&OIgG)c_otc6=<)`(Cycbl6LX?$aUc*)<{ zl21@~9m2k(wU~e1Sf9Z64)8Ia!X-7U2~4Uby-O?)^w+vLvI=|4kh$U%(z*s7)uef7&@qXD9a4>ann(l=>161&w+SCJw7tXkY`f_s?jcZVKs+$0Y6RM6$x-o2;B-cyOfJ zK~|p!&5!GeZ%F;Ylv|c7SbcsX{7Jc?#sbY9s5>jM1!jiu1d<7N>*kw zFXTFUlQ@r6!cy{2Fh==bL@^dveoCf}q)Fg|F^eZ9f&A@dpCTp&JA5gBpfkxjVq$_hUI?D9f%@j_ugB}p!- z1%dKF|0V;9>SD+WhaX6FF#M6;3lxnU;p_F422X`9n$S@ocfJiK8r`!xzfe-ef+%WO zFL$zE>^80Ci+~nSi2K%{miYZiIoD>vt~fjWBr~T6yp*M#B#%4`h$U@3I7%D7(#X$O!>-+;$bUeVDjDTmy98E8gmJnwFeYzZu=BN9Ael9U`?QpCov z>Jdh9@4JQ7{pWdIn+<$sMhZhJN!W?lhQ4BVa?jNt74Y6U4|Zl;p!oVmEyydVG8}4} z&$;$JMc!p@Ui_rSwDE*POmSSG-rEB9o=HYHKf({ymh6-p!YVgpeMf2&J--K*!O!0o z(yBakX~L1wSVWrn#+c8(hX?#EYyRrF%K))yt$Ns5X(F2*at>@lsir|& zEoI&ULBQ@`cqg5E5vEFLM9!}`vl4=od7+%D5DqURb>V-D;nqhJyoNzNsxYfM6K z%i}4i0k0gPE{q&37W64R?aWu~=;w5&<|-?XO03`_Qu?Jn9Ge{;zt76+#XzyQwIFis z?2Z7k$$%Z*!2ISKni30N?1CkH9yW>J@8Ur%rDdU8;UDE0MCVi_xn;?Yo}g}i?^w8T zFUJ`i3*z?wSix~_h!f-sf_Xiw_pfu@5^#D}{kL=Y9^-}k&_!f6U9U||p6Kq6!uszVZbvT+?tCAjsWqhG4b%YwWvEHX9d%B8osMu7V@ny(Qj^Z% z@p<(UAVno6Qd9Y0a1{Ovx>4vR)SR&rQZGrXOOk)(z_I3`9SqXq^yv|!V9Oj&a-Uxj zuaNcZvLt4U0wUARs>zEp`e2_n4^`7!#~PAghqK{6YM$aAff84L;aBYUXfk>|yltc! z`E2i;_rO!!Cr$6)v%1hRY(42m&dp;i=GNv5;d}}(?rUGqN(ASP#vec66}lXev*w#i zEF^84!8#s+85zWJl{c=B@*uC5Ckq7d62 zxfkz~_+At7g)iO_bD;kc?ex1#*p&$qbVNX;w;tn2L;~P5=-8jAUyqS%-8jc-Z$41o zw~sY`#kqT?bNL%RxIiR=?ufkuAmS6At6PCYj9a+TlC$(4DDQiOSI&ru{5@SV)}dE_ zO`K&tf6hcG!bn^sh;3I0CrNhHSb1MG^Wb+&-;@da-`uH))Ilc={wQlp>J zQLTO6T(0-lzSoVtDJPlhJJuJ!)|7~W7B=$vQP728ujSD3Iy{?8qV}RX7-iq9!zAC% z3+p&mwhYi(o$wc&6P{(uJyPgkT~De@NEPba`I`*-?|#h(W($a#=t?MU8ub_p+~-1V zO2!~ZHsFC;*~K)^bzg43y_=oi{WnN((ljx-oDiJMM^*?LTxTH>p=Avpt|k@>BDUW? zLof053BNlEOq1llwaw`6X=?ZEWSS+Gz;Ex+sU5z#pl zB1HQeSGSAHJ~QJdbOY4mc!}fQAJ4wImfbPcj0BU^%z={`EiM4(09$E#fv5se6<==2 z7|bvV(aXO14UNK$5jw;TOlVUYLWicfqLT@QpY^e(yGeldYa_|KyNs?MVD0)c-GI@# zd}~W=my0~|nwXS`d<{tq)JVd5dfh{KRFm0{y|gSc z6SGBJ;$7n70%I?IOv~i;_JKl@IBiQpOJ;~N3NPvcZI|dQP?+D=ApS=kh{w7wHM;k* zBH6M;yv=7>E0mNvl_5&*1s7YR$;lowrVOaj;SYw_8+Q(Cbl+j2=Mj75Bq>j`OtZ4R zk7jBG)(@i)>KeLQBDl;sem=t6O-rMDJAFey%o_}eznoF9f0M$g(L_f~N$55{Nth#I z0Xmd5{ZC)0qR*^vB#U7)!(Nf-h<>uv8IdX<5G>Uq{{M6*i9TZ_rX}n#D@Br^!t(Q9_96IIB z3cM^*9^@fPuPm!^xfe7Z71atozr*Yl6Y$aB@?PPgk%SaNTl`!g;&Ou(}_A-NbA#hlabDD zlOmHvPvT5rwJe8))t8vOSYEn>bg&Y%}h8n5#Iq!-MekD7j)@A3>7TQP>u_z3E%4%(ryaV%J z1?z2r6n{FlwKNy!-yBF*UJKoM^aL9St8Ju5{FG@nY0V$Q*MZfkOY1T!Go(x`NmtK+ zRo$%wL)dt3S-#cj_;M{1ZHs%_Bowg~G1m&=0aJ1f{~iuR5O!2~sFt?VaM#4%k)kLT zs=->bm;z&7H(Fy#DdK;BTgyqy*-3e*g_e#-hh^xI>es`0+5dfa7!+9meA#mkr8bO8+%8C#MtOanlYj8x~D2 zsGnyWUa!G9fgHYk*;;c?C#5h@xgmb=m2dodc%(lmukEpGEI+hbKRoN0dO&BbHQ(`f z59RG6gP9g}59*7S09)H+u=zkJh&%}iSe2C$b$z9yOMERxiR^+`j5WyJvNp5CJFk;u2Wpb2 zkGn}w1@aDGT7|g5zeG~ac z)iDwHOC{Ep<+<;EppL3jP2e}Vv4gSPhfkqy2cDJbY!tU7jpO!@;vIiOo?P<(e?=y5 zXZ{~hO9KQH00saE0000003B5#7ta6y08Ie^01E&B0Ap`%W@%?GX>Mk3g^TkCK5VA2`AM!)5GpQ^mlTm>BnnX=Myf0+4J8)= zXRv56FaAekR=L<#Dy7w|M0)cx$%HH*3=xR`=Ip;ozsmc6?WbY-4WI(l@I+1*}JLGHQ=sMzgXB3JHsd%F4-Kyma}R z`gILWEp5YFM#d(lX1DJ@cxYp5XYb(t#KY6;srR$Mpx}_uu<(eOH?eW?Zxa$TGT&!q z=Y05>TUbxY_t=uqkfw z=CSBAFIhQDqh93mcLAFId$vUoZAy_oGpzF#LKxWrOPOqF0VaD`2TeIW§X{t+a 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 + + + \ No newline at end of file diff --git a/objects/RightShoulder6AxisEV3/object.json b/objects/RightShoulder6AxisEV3/object.json new file mode 100644 index 0000000..7c25f1f --- /dev/null +++ b/objects/RightShoulder6AxisEV3/object.json @@ -0,0 +1,102 @@ +{ + "objectId": "RightShoulder6AxisEV35Z5j0vl9jkf1", + "name": "RightShoulder6AxisEV3", + "ip": "192.168.1.21", + "version": "1.7.0", + "protocol": "R1", + "tcs": null, + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "JpOZ15sv": { + "objectA": "RightShoulder6AxisEV35Z5j0vl9jkf1", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "RightShoulder6AxisEV35Z5j0vl9jkf1pitch_sr", + "nodeB": "RightBase6AxisEV3V78ogdk6csbeBase Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "RightShoulder6AxisEV3", + "pitch_sr" + ], + "namesB": [ + "RightBase6AxisEV3", + "Base Rotation" + ], + "loop": false + }, + "Mzwzvgf3": { + "objectA": "RightShoulder6AxisEV35Z5j0vl9jkf1", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "RightShoulder6AxisEV35Z5j0vl9jkf1Horizontal Touch_sr", + "nodeB": "RightBase6AxisEV3V78ogdk6csbekickback_br", + "logicA": false, + "logicB": false, + "namesA": [ + "RightShoulder6AxisEV3", + "Horizontal Touch_sr" + ], + "namesB": [ + "RightBase6AxisEV3", + "kickback_br" + ], + "loop": false + } + }, + "nodes": { + "RightShoulder6AxisEV35Z5j0vl9jkf1Horizontal Touch_sr": { + "name": "Horizontal Touch_sr", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 106.7825790514363, + "y": -5.291976945324677, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightShoulder6AxisEV35Z5j0vl9jkf1pitch_sr": { + "name": "pitch_sr", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -117.67724213327551, + "y": -3.7922077912494387, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/RightShoulder6AxisEV3/target/target.dat b/objects/RightShoulder6AxisEV3/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..2c95802d06bfd36ac8d33a1cebc37db0c499eff7 GIT binary patch literal 27144 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

    qHhKa?_u#v^Cut5pL$%a()aXTc*4xM_|BNUjW$ z!>E4VRQqMz^Za3q6_snX_4rDsG1ZrCX|-azI5hrDivB&H<|8ismiz%qpjcaqt>iYj9o4^(-6Kz=^}1SioXf67zp8Pf4CTa*+P zR_rlQ^(?!5Cbltqta&^8*}*bF%VD#_5KqF?Y6C6SBYv{ z^XNYeW8=ZIB+x0q z+KSfciY%Ut>zy`37?N4yE@_6z6-w5b$4s)qOIN2erC46v&)2B|AN+W=kD#AUrJNoH zC|pR?p8y4WdyIq!zizAOn4H6jUYp8SvHA{qsU-cg6A(#e2c~+wrnH$*1?#abQ=~i2 zcb+eOGj>AIQC7BO<{Pg*%C?=k6K-O77irSA1HeTj>r`&~<-nZ9PJOn#^S^?Q4|8si z{e5nM{ZT!l!2z-=LNv8T8^xtZ6@8-J;O3nbgc{50ZPdWxs;OCtKre_pBTND49cDV2 zCm)hxDZW|T^O%i8IDBziB3^%RfHit=K-(&frBBlQNBH7_C0bEoz622gt`6ROwU|!s zrOZ$xKL2=fZ@f{>ROa=~NqxH>?D?0rYjK*Ae_P{7*-B++12aiKDGvM>k8SK0uU5pCwLnrcMKb{-WHI`fxO+c@hk04L!2pGByx0I}ICtyeq zJ_UvWT^hxTYL8jSb9!=R21c;E^`~OBQO9FfHcD^CqxX4KC$^k-^MK|$Ac?2h0t|A; z^V2`TG~v5qci-?tSH;CG>V>?_;9P}0U=9HqOv02I#W#g;59sW}tsKV-ER!)^H1B1e z(F-p^e1qrj2jYUfHcA?XSXicG?%AKg4PmGXHXBi;NX@Qt=5H9wrrpV=hX4)yqGNno zDmu+4d+C&^Gp!-aczjbwk4$8q=&axSJu|4k1NJ5!u-d56?$aFr zqoxgM+M~KZEvF3EINgbmQ}5kA-%C>%osE73$Fp*@VX1PInlfsPTpgJsS$VH-n}u6f zI8$~ z_HVA?#{~Sp5!2UUH|?hl+`WWez2)y@y(BE^oFpwx;VSrdh)P*Cqn3-0SpZJ9f{X2k zLsrJ4e;B(4RuQ}T?;}4V4~K3a&s$#ByTIjxe*T@DnxcD_w0i@?kKFBU3`%wu?VkhW z6s#`f$7-v+&krGs!E|98qDhoDW?q6SHD7AdYgd#aQ=6j>HX`*cZy$`)+OAe@d@5q0u#K&M5MP^84?mW_j)X-p>Sh4Mtjz zj@5y4*G*X-(PxLA9!9kvW&AHTVgzYsYric`=t@5BRKdZm{A?)>=d^kH2L8dE2CIUk zK|Agrh+ht%9Tow#j3zYKtaADSg8Qnbohrw0nJ7p&MuH!f7{lf(c_`F(z{uIi0G{Bz#DN|rsMlBkLY7w zFqKjs(aEzMlJ&)xa(f3J1m=ktktH*O=ePMhf6h(9{wJLI&YptIyWMzM&ww?7o=sgP zWdg>~NCb1t-}9!!zX%9rw^0>t#p`vyF+tF4IluEhHc4@;rjuMcf?>76o40%yrWB(I z(amy+SMNGpG5vV|S^G(GRO_>-P~W`7B!8fqCfzglr+fxpZ@Zq(h2+%e4b*x6FSx05 zr2YQyBMx7#-Q7HQ>bk=o$X)W+Ze2Uza9T_KWUxr!qjQWmd(BU}BA?XMgnn|)G6HRQ zZVtZ%X-A~A7=@M6^nk9?79fGZQFg9Q{1uFhvSxk(iEKZl*Zk`(5DOmpu*mzG;*{1I z+&dI6PzzZz;&kC+C-fD~-Va=j5Fo%tdBVaWG>6gzo{kjC zlltqc0kCDxR8ca=l)YigxyHj=150Zbzu(or46*d%)V~)R1@k};;mcz;a%swTU$Goa z9?ziQd0*uQH1-)jvq5gb>&La_li|GA6?QWhgc#dh1ga7t1!bgLw%DmUJ0sA0%`8-_ z^w`h`*M-)XXAOGL%|Dw$H~^u`4My{pD>Z~>jXFo|=azb0K2|EZ@IY1s9!f2`Z0~-dFQIHn2eI!JC&fOLp0@bGzVPM6mQoVEegGW`kZKTOF@z1{ zq4L5SUxnKkS_qvDTDBSAEc%7WHqSa4;(X)IU71@oudC;5AK7@%{l%N%UA7~FU{y97 z14LXT-#bAMZSE^;viqUEl5U+~j5=WlXL9#7L|t}d#(uh`yK7zC_g#o=dgPZ2OBqlQ zuN4f0CSXbbP7OTEz3usr8&wprD79F#(|18cXRlP%pnWRoY~QhsBI7IllCQ`d?bv81 zHAa(q1Ktxcow(5YZoxR8V#^cda5??E2CCLMI#LpuaE@JPIp?UPb586hO1^N08rmtQ zUW;{p8sW96Bz;1RJBa1**H6xMvxkkTi754=^(-gxU+Ob(_@>dBuS#XIoZdl;J~xn0 z&ai%3W)&NL=9;2LP~RVPId$vw&38NeCyuzjk=?t%v2&ox3|g!9dN9! zl84t-7>}pw_jdH&`>QIlsf^{vCk38oCeWLx_N-t*)Pn^~9P`p>>GoNxF^T^`BT6qn zhlqdgIu#XT=_px9g3Z^yH^ZJ%Jk_hSdER4a=@jI4C!X;Zr8NjxccfZt)6(vL`z*(~ zy8GxdoyUvny-xW;b@%gTo<;vW`c*r5Lt3uFCyJ$D`p?9k&>S_C$pui;Y$8-QZohS> zbCqPaydv3tM#%>QtxN2;+>;8yrNNQ_(H*&lqzLlVr819uilxg7n7?1EoYC2xlC`mP z!V@u6rRx98XnY5&a8CiCpm@#AlLa#k zY0{lvbtb?4umGLZ{w%M)E+(I#tFjOPoId=XM{(1lj7ZA0^4205acf9VY9gAO%1aux zp_Y=__v}4$^gd_ZwUBgQN&E1;srEE4<|%cTd7_D?xDF;+f~N($V0H4F_VaOpyeI8o zdadyQG^G&=Z>k2#O4-NO)+P~CQWeCPd9Y)%9ELxe)e5@{kO-sd(G9P{`*oESwYHCw zueTlJ1A)XJRFs>H)4dYi2bE73JkhnrLJ97xoUBcqT-b|oXn7^}+Y6~wuEPI5n%QWUT1(i5Bl<3C( zzOw45vH_!Mq6DbRz~lC;{@KcgbYi9Yk|@Ndegg>P0smZByol?M9q(P;^$)P@bElIj zd${T7OAcA$`Oxt%aP7Z|^Q8j2T~6olDT5sy<7T-t4Y?<{FBIqX?QxyJeIq0gs&Sj| zfIl8eo~t2M5tFB>Ci6UDZHb!KwvUY&*!46uCWBs{`UYTm+2$E z52E05T3G;-qc~I2L++r*PJ)m?S8-Fd9|-XgHS_qF48P!4nEi1ZZ@? z6#-3tGddsJKFiVh^D3)sm7Q7erOe@|AKx0p1MVsG>w40R(FBYLOYdUp^jWLQx-4F0 zdoO*Gy$s95MemZ#eMqv8KV49Jb7+R{xoB=?h4rwKEpu2L4TzpZv)*q!XveUr#HtAN zbQt*6{(0A!5fmcy(lt=4SG3y)!pW2Za08K&u*`e^fzrZec(oQ^!#3wI?ck#E2mC)xt-*e)9z{9H&w@TWjn2`l!SF*Kt4U1-u z|GBkmD{?MnUMTga7&Vtzo5)BeZS@8?J8cL4h{6vdIacb0ep#AaTfa{?66>GeyrFr9 z$K^6mUinN60$Rjow=mLfZ=-xlz)ZX})^w~C_Zaz7nEj&g4Id=rQk@VD2wLmMR@(HY za@$ceyD?RDF9JCObF~mJ2HqQS@0_r7G&AF~8RTSM+JOSch$zGvE82TCM?PwQh{x>W zB8}HE^ESeZ5>i`uBMlM zXE$-!e5}7i+!yLWogis$a?pb4h@TKQ$Fqy$O$&IQuVk3hnx>jVqNDZ{-hktT+c1nh>95tw$P zq4*iY2=rN$#?Ie_>9am*dM(Y-UXOr8)iCYq7m`6zYoMVG+XPk7uso2wEaw<+zt9ep zF04Zgj-cDqc&S6ZL0F!vp?Mf1n#6|PmsQ`B^#v(^AzCMHY;(DMlhM*!UnH#X>Crd#1*@=v@cHwKFIyTk;1K30eqgi79yM3qQ=ZAQMX znWw*(|J9@M5|=>1-%hhS5+l`uoZtCC*Nan*CmfZ`AJB!ODAHuYl=bq0<9L+pqA!$h zW!FI5yr!yOSp{48NojM}HkATzHs((%N1jj`<*uqP!O!rLluL{TVFvY2{OZHhEFD)0~q!|%t4rC!Eii-V& zp2momMz@7h5U1>+;H|&)PP$7R%!fDhO&PYrYYJO}Z&}hOKI5V>#B#KH{ecPj3@2kg!`{anIp|~uw&EfU;dER3BokJ+SlH=fj7zsKe8N4Z8NH+|Uds@% zj94qO`QD}|!sdGCi>cwotz+$gplSm+OH|Mo%*Zf`2uZTa_aeMh4Vr1vtZM#O=N4SX zs3nzl`(5~+bj!i=&f(uyRbb^0Fh|isB;Ga+My^soQy8pkPA^$N=Zx16f^*eFjw1^I zzEgVGW*X}_rB^ZmNMx|(06Rd$zj^o#I7v>=rn~XJ*&<%VM2HaY)~@6!eA3`Cpzp|c zj`yFPYGDhr&>dL1`%jvbitWb@fT@ZTo9PSCc>T+jz<))ehbDLfKdp(R;gbH;LKIW3 zBR9-g4o;&fi0eX7G8cIWkW!sOci}75>)LUwbE%u#0wpsJPx-mcbW~GoW}h<%=^S3) z6}GX|^Sm2?tECdZ@uukE`t-dSYIe7MAeN8kHS$iJZlWJ%^{u_J-Ywh*kss|xHgA~| zbL?ONpb>?{wX$T)zZ1hosdF}WtrguE1?ivNv*>Gyz-!(Ay4FJhj5{UfAX`{#RMpX@(f4B%iff9 zeS0i#@L|=q9qhFJd88F_xpNk=@G-T9-?I>jxsye+e4BF9w=C$>)(@Y8U|BADGjLyg zsNilw9iVtx1VRH+d%~{Pe0cMvk{UGltlD>Ov+Ii7^+T^mm$Z53Ordw-1i;UOFBeXw zxzZK&&yzj?5gUBE*Pd>^`^_y+c`5T3eg=By%3lqLFO8Uk1NNNDR6vT!`Y#RiEm9ad zSw-n#WbJM9paMyc%_)xlH}H+ah-Rn@e^;`~t8+Y|#}1#E7y50c9oKYOPNiNn*$^V- zGEW!)#Z5Gc(2k8fijB+du=^Y9f+?133Q(3izUdxmO8;5XBJ45Bx|FnIq2`p<6w3qT z0vrM$u>$D}LXdv7idtM`U(rIU?wS>?JoB~aoIdB0mse^2?};o+qcgqwui|N!>9K%3Mce zv0I8==p*O+<2PR?TObchWV$t<0~UtUxs>8MYS_G49})QZM8)@cL}c^X@C+hl_q4%XU1c~7$_)@kQX00ra&uz^jULlXN^z83CB>NLE& zgbb%pCvYzYls-hrPi|(Jwsp+N{oti}4EozS8~_>}(ch}@Wo!(Lcc=@Wq;1j}+awIs z8AtRWr7LL{psM#8`iNohy(%W>#YOujFdNE@%JDTOX1$YnKJ{+G2?K%04=$UhPb$n5 z997_|nR+NM5@chU6l)J;;tJ6EM+5AwWNsFPWUFS@UXYQPGm*M}FmxTh0HvN^-q>G6 z%!E=h#__~LaCL3o-$~oGf&W09WpA`xSnGyK(L(i??LG)0+q0F%0L_+JoTq~F3oXy7V5`=8s(nTQ)-a$Za^(wix z@PmWr#CIH9cXPT$M%cLVJyGy8cXetfu%7)HZ=UI205(3O^JMPYa_BphX8wWod5vo5 zC8$zMzS^K>1~Db(ygJRtkfRS%ihhb|_r`btp+Bhm)Yy3hRqmjzM>7Wygu??DUK5|C zsv7?Xx>=nGn!i5K^=9Que$9UD#w-ck0XXL%?Yz7w0TPne>)qrR2ZzmLWm~y_^MiV= zLr!X-U(Iaj!{%`Rv_yo;i7q^FZ}_XXsTWl?e80@DIH{9f?P;gR8K;7`%?u9$FZ}e` zDA~D_CmUC5a99PjBP2T&>V@ooO=2My0KlGLW~w?zJ&$ZsuPW#exKVdW`^{6#ANbn( zy5_q2?%FHA;UY%fD8o-*cKrivUU4u(3Jy;{=iZlVF*)&Pp8*FiXeNF|gQ*;L`|wbBslIDy&>ITu1$VPoij^)Z;9^Qo75*t$ z0$Io8dPno{z*h{lOIR2XVJDvo+$w|f#q7LUJg;&@OxTt!h z10yPov}k~4g)s82j8M{`^FUjJjsy;duM9?+aaP5i3p7auGCzC6d=Cp>dcJEfw_dxN_ zufK>j8Fq8|6PI3RKSd-#Z#|JI;RAFxLo)}98FUG%gns%F#F7Cip=lY&*r2?^@kQPXP%9#{|Y=L8edl`O{JxK$$$K@th)=l z2g)6UJ~i4Qp`X$Lcqnoh(|)Iz8uoDx-Ae#9-z+I5v^kS&>)f;m&Vor{k<$7bgQr~4 zpI%%z%#{IH2Vx`vBsd?u5vJLlcW>-NA(_J(UjHU7vR3#o2BZn{=`vju=j$A4{mA&x zs*lv9z<|6QNJ_rO%d>jyZGAjtB(a@8t+q-(1yqNm9>{Ow;yq`^kq0p1?o2#DKRhVb}&VFOvem_7TwL%N%dU_k!0IyD-uv!-f=Pzf-G0S{go3OfEzqf=oSkHAMynRGpQb{) z@5%hf?P5MZ&EPf>cZpJXUKKVu@mXGL-NBD~6}jG9cZBHV(GD6lnh8tZYK6%Ww2af6 z#Qjq~s<$k_Sm9vKX7l&>a9y`gSiZsH>!bWx0q%^+Dg>65e(VZ9iA?Bmzqi~lc)a?`}V+#Q|6 z17aoOS6EGO93GBO6~kaME3SO<&tve zW24dBbe&PO1k#vSdB`HxGY8gkHTI31|LmK}E&zu{9n$oW985_=;OfDZf z-PkNEDA6UnLyymo-4v0*+AhlIDNqy+oZC*MXder|z^0k6WAhD0y1z}mFpdS99C4I9 z^#NMBRi2tP;hl}}&WC$Yb_60f$J`HI{Bce_^JH1n38RcwVD`2ukg^l?#ZjVULxKMcGJbgZkk+;Ojr7HZ2fl>?xh3RJvdy@zt(+e&**w>W3|nACC{S z1Cpq^#igx(A$!BUXCB}hnWA)UQfdb{_DHj1o5izZ!sKVb0+;luuqI?E6<^V8LXI*Z z#is7h7gGHPlD7kSqHAw<9hQOC0Gh4=2dADVE$mX5j6$1kyANp;2sesH+&afQOGX+} z*@N+YqShXAJoe@O$%x-Bdm7W6rH{<)Z3Qm8Prj$Mc=t;J`|)sX5IgAe>GGj|!gxJw znuQWg4W(()^|8HJK17`5%kt5A=Vih`iZl>G`4wr|hx>s~1PivxqbKJs{AyJ|9^9iT zXBT%%uQob1N58MWtEqS;itsLkvmgBISSrrLx0j}fg!Ep*>S2@jbu?d|3h!k74!Qid z#c%wtPQS;tG(>T@1ot!C=$0{jpjD1qXh-gi+hm@iLz2ssaq|35S0P=!%!kXB5&d<} zj)b0}7uxcGp2-5ivsz^4ul(6luJE~urods8{FI52MC^El?uk+l$>Y@X&I@Lr?p>wv zWm$@akAA-e3a!u*+K15jZ76c%=&N+|dPZIA)s^DvQnAC#4(nh`iR_$6ANOPR9;LnC zTat?YfnMvv%ah3EhO27&9Q`vRksGogZNO<2gIX^``Q85A;dyO2z|Z|#Jvq~K4tw5TvYk!+M-d2im}T=<1+(s*fz8zdD9 zp`Q-!#EN0OPF_TKs}DTzRz}pUh)KcKf7n(v^OtvYpSj>7I{oE-${XAlJn?Og65(G| z0-FPQc{8M>sA>hxkrgy-cjKY3@vNuo7lSs&^nmi5!5n-WGE+zS1Z>+bxT#ziwIBI7 z%tFg3JLc=sBmG~WZ*z43O(@sfZ*vJR@)Z`bR2lHbY>B56&p6~6CcYn#*`vaA2~#$~ zX0%aPHzlRMA*qiq1(^#MRugDRSLV=nY&u~iTg-H7m$kM=I*kt{oB-bzp)ze}gQHTxl{nEd13XUvqpISF!?=RE>3S0=lTRLC;jh(0Y7XR{w|^I= zx0uj5T{XLFQ?mS5c7B%iPQMwnfd3gfvw|mCt59XUI#&M!iO??)1oeg5HM6}+jeM16 zbByh|gqPXj9I~kykA|0s8VY8M*>qtV1x4m<^Q^|kV0qPB?7Lg#%5$OFo!TuWMm*tf zxZR51sLJ0H-L#EYYSV%L1p;)u-+f-G)7PZ>maPg-IZip+|2Bu~x{1l3eHU=ycggVr zz7WywFuN-$mw0Ydlr%cRZlK~ei6O54fdcPWFdyt#7t@}hf8xcJ{|rOid87U8Zk+WT zJ0It8Cp_HX$ulGV_U+85O(!tzI#P3?J2q*fS&t0q1tuJHizHM+KiCf*n0q$Gjq0kr z?tFia$elUxJo)q~3((R87M?FK0r7w&HL7&*#)>`vy@t@aJ|VBem+w#^A)wConkiw5 z8w12jY$yd9gnng&DMHoPZFdp&_RjM;2t)lHWBg7|Q}2ay1z-a#el{UO#w-|+Qt}&x z6V{y*);VHWjnW1dv;o9;< z$}g48iXA#@)3boFO~~FOoGK#~eGIuwS);bk^G+>yUQ{nj{a}BBZuptA&&vP=Z+zVr zrdD<4vyle2lbSsjPUpJf4>KE;EZf>D%6;Eh#x$(GPR>ynqUB3$yblL;d`SZ7vH1|HV>kIpGZZ`OtuJ(UYU!8PR|hmM z%S0-k!MS_O)J9_xOr9NEQH6pg7Tr5}jn>jDrU-WPvE7DO`7EJ+hvvNWmOH-Tuj{<>M?W~y| zNENsfe|qv^H$rGTa&OsG%JI|dh`ZrB+@DK%Qz2r_GBh2O>_n?7b!SN~@7>hZ9ton} z*vGhnJNvdNF(zoBYa|XKWBH!hx{b@OL%yck5 zWsoqgs~`VAKN)jX)*2o^#VI3n zI717=v;)*YmB{9KrQR;+RHh{~TK_7yyIJU27rFRQ4dP5u-953Xc<{Q^Ii9HtlgIIw z0QIvb8c3YEjY$n|Rb+hB=UodvLRV)P_%A5HNBvzsZ>7~?g@|Xl-`txyKlvXBBBMLe zOqXU9FojX@3N_@}uK4rQ%H9Db6@MJtLSvG4OlW55_c3r4VJruF&`Ehb{jKS=nO%p= zv&$i`Zx)3{9?}(-w<9nD)u~g36iul3?2U}Ie5tW5*Ws@Zfi2-r`_6DK;{}%)_|B=l zp(&Gjxr$GOAu#Iw_-0C4VfZNL!$w9Fvxja2$bU49-(={n_QR4L(tG(n3Kvr9F?T9<)5DqAPhRGt7 z4)P*%6jKxZtE(}vzbMBd>AQ=4{mVZx_aSSg9B%7UeexO5TISq@OedjYJMr8|mO_9= zZEadtf{?XleTr%V2Z&7`WYYuVQf$UW`IK;Ik%o4a0zT zToF^8?o3MU0)y*lz}@7lF-#Jv7D%4c`YvD z_1Bk6^t70BM@`po#bbQDLxAVdocRmJ2E>!5#;Vedr~?aKl`mo(HO-@VLq7lDI4VI_ zWqZFtG!|wUp{-HYfV>~5r5sT~X|sJQFZ55Z26u0Mb$R?#fjhj5OzAIeI0J+eNiKla zpu;eBGzUtX$~$jL2a|SA@6qZHJTY;qSZ!zKQfNw;DeeP=m;#Umim)pAjY78t6+TalJ6SUYRcil0-~%wV zNr9Q@9mdrYT+XB?Z^EF+#U3EU!grp>q&Hua%vSrRa8(!)`1z@bA6p7%n%isal6J;* z3HXi3AGNxR&^3&nAiQ0FT+rzxMDuY*G#Q@y0EuxZyd4yn5p+w|6%5Oe*EqGgve$dHkxOW3z zjAGE>a11}5SWKvM2N^e+g53v&0hqgEX zk}V1h;GOQ+7y6P^DH86M880sqb}JD&ve~xWZ`2;7H#?);+jK>J%=o*DSd$X(?-KkT{4g;=!NLY?k+cA(V(;of%BFz`Y{*!kD zPjjYUYaT%)F9loYly26~hH~5Ee+>ygZb-_qYVqmx`1ZE}8llfVj`0{0T(!}cuiZf@ z%}eMjXqBD@E8juQ0eXcRnM~POg2ei|$GZg4@e7ad-@MCz`q2e(5Jv$n?`b~1%#(R` zczL|$nnvew?`MH7Qzi|%HZH*4x5>y+Vd~TGWK&Y9g~c2{1K`b`)|tJpx0Oe?K5=~Y zA>HaZNeogyI@f-^4+48m#?Ek1`ba7pxOu3uNunkB0i#Jj`5njR=+N8L20ln)di0jb zzYg4F2}J%qMeBBDWjH*{XunVB=AK#~SoaV~OQ_^~x!|WYj!K)4rPYF{WnS>-na1qFIy8 ztE$mIlRi2bR-oq-QvT#Ks0ZXrGu@KXq^hSB;mjuzoIlnwjIZ%G7}T?C5mHQvVh2!h z<|LsO*Q3XU;PlkU!Nln5`5vob4vbb$5)(JNH9};+OT5t_C-IgdH-UbG6Lqn`90yqK zq@?4Gm7cx-?dqKnUUx>nUi|<<=PRUeNM0tJ&@~|4dfa*Ph7Cv*zq`Mr^%~XZ0I7RA z_Wa#N_8UL+S8(HxM0|mm_1d`IECh z@j6>i2CTCf&Y?~ciGsKjQXzFBU2KdZyca=$(C_6_u-bSwRq9W8UWa-Trnk8Elm>6! zQN=dw;YyBh{CuAD%ykka8{y*SDb@}5g!83nrE#-85I<)9&Abykp2o)Qn?xR)=p%5U z!1DCd*-S1o=XuTpC=twZt$xha_=n%ancE+Xzx@ZoCWfa+&6+%$*m!~Sba9;!Xtt*O z#3^qGXpNnEqXh^ZZqvPi(hi4dH{Byl*DaXi0Lls9)6+knm0e;YSz3BCdhyrt!~5z} zmOrvcelC`sX%5SOaAAxOdx#i(MIBubZcB1+?>*`MX|;T{Ry)brasLF))TSvtc1}4r zS1$%cv`KPwlH>tEjXin$WCVuakL3$Szs zV``wAhh!*all$Yb@LD+BsM4&UUc;yi`Z0A(~}mK!ZXEeG1soV-#ddFQ=y*wNEg6U#QsMjeWXUy z9;_be=Ic>w%8>3|Ip;gz<12mhiTkx_vKsLzuIY9c^+%?H9v)9F;6op0q~g7EF;j-j z6TcQ)xJLVG$dSnENvhMYKW9f4)&}g%vYh&OU&*+?d&FUtzyRK;sOOMJz=7rto7!0f zq=;2T-*iLB7D5dX+nEfxe&Z**(l+wx=Q}fX_H+v%0X8ccFQ(B?_0993cA|0|^2G|Q zbJwn3NcCO%8Dam&A>%nWp!}zc&?xT#ZNlah?I|^w;z<<=K2`XEu36hSic|mek-$2! z^Q|;!Jw>y zg4sN;OnE+c{L=2}9rZrtD>TR@>v0H>P+>^(WX|OCGO~5G0vxY6k2O1Ej(KU`R@$-u zOoaNTJUF(};*fMo6~1%OE2&Pd>xPIDkfS|0zs5h8JQcV)QFrh7ppPC0*Ox2d`u9Ox zjN6P1^d%EA1{l^#NZxv4=r0jo^$Q$)LKochEPo0l8Om=>$IvX%L*SEdh-6%Mso3N)qXw8IW}l7(HtrznRFLxhtAyz#?Dj zhh=L$4kSnvG{ZlmG^uXtHTxUFBTj>vYm)ba6$GOdzZ#4F*-=|Fe_jB{TYwiWx|Xy` zfwAQL zWv+xI@8yvAzZZG+e=l?9#_8ANUSeDj)C(d#yi=NOV!fT)Q~3F9v(!5q?8)i+%y=n6!*3#Sww$AQ@`^B5npl$*OH^piYtT_s3*1G_I@!Ygd&vq5gEC z@8~?f%WK|V5itN~4&+~ApmB`1Jb&QJ=tWUx#r*m4G*zX*$wQ)Q)aiI3e^5319YjVwk%oB^Ia-}~M&0W% z<)n@&e%x`+qT(jj#_u#b@DLz^*xmxyJ4-)HRU&ELql(ZZ=}(5~CgihS5gRJ%5T4nS zpPF@^7*7@LS}oD6SpM`BWW31MnpW7MQM^d8;Y=Q?Wew~!6>pmA^vmU8Aj^4rNNwtu zj#Ht5F8Q`OdnZ$q2%M!4axe*E$Jx$Y`z14||K{uAKb1fPA0LivW%4ZPuTCXMtyOTIWD z6aH8P>Fe7EKz=8QhgP`EH2`i9U}h<>eQ!(@Ln50+AC1xBA*UYI3{v;Hop%N}b3wRMYkjU;$w^=BCyly#;`0J_Sz5Ti>R{rgBNsu_GFkGRDsz3%W1c#%} zmQmsJb)Dw=_IUnjy*ywJpvvBmc3_QfOr)CB34#2gaNB(Uw$Hknq^d>HpO|^kCi2pe z)5{UH+B`OTQuJ$3cRJ@iQp3olr%c*XCt=0%E&04 zi<9`0n6YIWu}bdUgwn#8!vqpgyr20^XJfqD13)Yulx}juTHUCrbJmgWV%SDJvrP4x zy{l|38pvq{AoVAJwQ?T6G4r0Y`I?7H;Ai6fvHkVeZ8;bUUqHgS=h8>qnNImdN%WRg zP0j2BjNNxKE`=^d+U^`he(aU}Hwu6X0hav_el^B0wmB>YT7$xp;Y=>|MR1&5AJvy8 zir;VDCfKwTo) z0T;*QMNi<5pKPAKMwUzGUkH`ud9pap=mIGKIiDc2zhueM3Weugw=#>LPK*yiabr>YI9zqT#p-V z=6=MW0{$o6jGW5k;-R@y9}g{VC%ziBYD$1p(mSR-j#OFv{jAkx4aM5eRt){{J1OA7 zsK$HXgqY)4@n!(7@({5Ok`y707rGZAO^h3wlh0R=F6@d8+~ba%X&rPjb`mPSi-~C| zS=cK42#h=8s#x&4!F$$r%?{J0Bt2x8LK$4UCY|qSXkOdm_B-ju%X+nU_x!m0IBxIY zXR@~23Bo{tvHSc%XXwSiA<>iRk0?iW@u*$3Pcc7TbpEJbZga{V3~2-ZgwO?MD1yUy zA{J6<9ZPcWk3k3!*v9C-pSlVe@>c2WEA0|4(Y^wqQhMtv-B0F_MW-HETtBn=P*NKZ ze?X&|l9}BQ0Xn=08GI*6ILy#t%%%Fpv5CLwG3Y3{)+>zn0P;AG|0hF3 zI$e85u=hLBcSS)BcqJks^pm9SC^Nli~<`#D#v% zT~eBX3v{&eu%OfopNk241c^Gha2=8yf(496l#}J8SxPj?z8zRgfq8yN$b$VRxY)}e z3aLSh?cDgC~S0nSaIhY$%m1}> z<2i7N9q)YUR>(k!FuChe(sPfqbgV%DLvWcmi9a(ZGk6V zm>RZ~%IFFW^w&ib4opDR4orvYi4Y=0xz*SXvs^1!&C4r)FgCwKqWtP1QJ=Q};uf$z zcF`T53H$M8P1#o7YhG?@r@fFht!s0f!Hy(15oZ;uHS*VXc%^DPCb7=OdwVK|$Rp|f zqgs#Q_8@#Qde#5mMgr!tduPX?G?`~5>AIu%5Lva<4yLm@^Kn;}3XtFQ)4DN)v13hG zIgD}p*oO}It0An~UePh&1|QlJd`9=~km7yzfXM0$hkgpp1C1)($&#CWgnAb!lU*XH zhR@f_TXa&X3OoJ1<~~Xqn!a^zfGra!9G2ywM#`qw1Y)ALSK?~^!Wx4P^S(jdcnaSI ziqglOx2Gf1!}>$FpKt}o3a|)HdH@2#AjhLlKYr*pZ^|epS4!xFeq9wd$4Y##2(G&3 zfz_bT-g`@&@|pkBKpIt!JzodqGyCnb+ewJBqaFhRjfNCqAM3w-lDSpqPf0Iyzn>I^ z4--UDhl5pV$XLH7aS#sM8Q$Z86zH>40 z!|ajFqlcWoD4kOHDgnqt{3sun0xQ#{zwmh)L>Ens4HAqElYF zuu3T{$Z&vu947frG+HO&YV14oI|s|**+t(jjNva;J^ay~jA!O`?CFr*mR==J>SRT)RmObEtwkad?)qeuYkaI0?d#B@S|1xqgf5$HIDo? zS;@E#$w-G>i=LD$zPZXfsqtuN;=`On-%UY{CQtdW9bN9AvlQpGfv&&$o^QT?d!cIs z(ljo67Niko5?F=}(t{9T2aT12-rV0r=`-9jEE6nz9zD=wP+Y} zdE9n>Eg)}y$Tl+I)Z3k()Ep<+Jos?Yur9K3IIADpPbVB)xKav<)9RiXPA4>Z`yPtC zr*5OUWq;spx>RH0QGLZvpT6CamnQk6!~mjFfUdsa0Wt!e2ggccUYL`#}kmq5TSV=~n2=*D% zle^CztY9do`2G)~Pg57Zu*AR8 z`Ggq=Z{C!UDYc>fJ=ldSXaPpM&dI-i7)Ur>8sy548{9{*2#K`X6UEi-#TS($W?o~s z&3Cv!)5S=i@NJEy&CFb~0a+Usnb5I45?kz)taE;-CSI&JOuOxZ*yL>sB|RDiTPh<~ zJkk=(d5&{O#BkLilVZRDyBXV87*b-cZz|VINx(}y|2KT;(%~)h{s+E4PYScup+M@_ zq+t8jajU$6w>O?R@!7#}wMm4&`Z`umxgLn@{zP%=*)(J;V(iO=1zq=uh2YVuq%)2u zeDV(+Yo!%;ozhda>6c)9sqkqyN@O{(Ird#yHM=maqn_#G=GMl;Jr8C#ma;g4oCw^V z9pu=K*)w`-$IihI%-(g=^m9^r3;QePv<>H6H>c~T~Z0f({Fstf@qSf5+n0`R*d`f2y8G$8*6Js#9|p2XPa%5$%zW}<&9U|1 zalxZWev(59-a<1G7tdcL-n|^Iz&2}`J~A9=rWz}Rt>s>BR>POme)o&|ta`O5B0aN? zttocLA9?Y)T=pLK#Uxe&vi74N1YP&Vopw%(4Aa8u=*0dY)I0sqtc_;0$w19N`xhLq z)P8^=Cfi=m{C-;VMX%C8v|znl0IHvPl8Ow@J#%~iJ$&DYwc4QWaE3tvwSpJlZ_1ki zjgH_zszaP^EqTiUd!1A2k+t-?Hcnl&Efdjk)eMf$h>S>k+cgo`D!aU1UO`+^UnI`d z*3_p+{cDtFdVt^d+JKQP$PpVR!q5HGeC)h$=RDZ(#x25Fi5;`p*SE_PH=sltw_+=U zXF=;(uFubLB`9IXXQz?D)2!zlA_mm(%5)&!Kmq10)0Y!1?SAP?#GiXUgEq)xi@ul- zm;5hW!e{!RTiwV;v>WY;O7t)L^vaNxYY4TcsI^biYHwTjWpsvJWK3MKDmT+Q-cZ96Vi*{P0Y3e|IRy_>V&cLh zAO@&*Njt~B8PE64wQy`s`938n8#O3~I6RZHPA+dnL&y3WcT{eLkK#!n>+v#+Tdk2_ z;(Temi16>vDvi9&!m4iTYdbykf0n1ktWU_>(kf61oLmw$mh`_mK)KH1r#SBwFAxo2HRw3+*20aT=dQ{Vg|aAJJv;IV>=k{N5{6}n5}chrdD zz@mXCy|-TSZ+vB`^%L!~W7qYqr=q3qUAJP3XJoCeKxeyI$_%S~Cej6bH?id|5;mR?o_2wzBSNdo9YQB7J#yPq6$>sBHo z1-_frjW(H=Tw<+3i9B0{ggct1-jOfrjpr=b*i)AwYgP)tP|-i-5d&OaF6E&QDBG{! zwtr^eUFIG2eXT<;LRs~NyoJ;F1+5>QWR?1}m&z>xs6eek*WX7A1R%%WQ0ABAb#wWpmO644){K#)!8q08%*UZi|E+xiW#<%d=k#1G zcHNN;A9qG^atsuLN~XP05?}W$)Q7$_(H}pv|4X{Xk9Xx4=Y1kmUT{Dzl&t(7cQ-W^ zS*02sZW!K=t4@u?{`FS9`sVLCJ*#Lqq0pz2U4L~espv{scW8QuIlMW{-`?lMzN1QV zN^l`GPiukg)pOQ3QF)=CJQGCYg8=mV&E9d*p z;$l#T*cL zo4$4$HJh=;3EWX-BO(5sg9~D8e@-dth&Mi5ry+(?{Igy>aXFyoVa}HM$1Gap?E2Ne zQy%$Xl5h-%DN(ZW5Na=0Cw*yC0x-ls3c0o^gFkrAAi|8UYw(njYu^bnBrX$Cv*Y6v zQ1Oi+)dlaOiENQm3S=@`O?M^E!|h|B4 zTbY!!)&n1@0=DumuF{3vKNe3@jnf7vZ>A3>Fp${m{r3AWdyk8+u=un`ulXz`xmo?ns zGOP$bpD2+TaH@Cy71QMC!eP?Z>r=SBnPj>-Op1>^324vwS3~F<6N!z!u#z8g3CMih+sPX zq;_FeUTggEvc!fwPE!1w?#!O%#bd2284J#C%rzFka&`5*F}Qu&8fh7rH)5+JJd3=>!N94ngc~GLp2lWahFn!Pc#{n8KD(v*5~>q zB6sv4eR8I=B#0~xt8M32=nZM|PEm)C@IJSd=jm47Cfo%wsrh4_;x8-xiQYaRKL_4XwQe6+4oxY}+ zFZh@zQ0ILl-IgRz@aW%-eXLB32)^nI)JO=7+oWdz ze)0$hRla0Rl7}Cr({brbl&*HJwORVI8@@Go(RCMQ7yo`I-Z(l(q_!B4sfny`T5$f> z660(S-~ubSL!m_(_y49KVuxq zz~BTc1X3wl*iO5ufwg#>TKB77S=fEKkdm?sQ(NNI<&{`Ym*D;4p`2%~n&Hwr&6b1j zIGQj)kA^IXFCfgeC!c+6@b18?Ab5h$V~G#VVIMxZqb^u}G-!RenH(}7Q`0}e%N4R` zbf4z{=k6{d3Pg_ps4n-<4#on zLcnAY3@RF@EIL@Boh$K}L*G}fSJ*o!|I<;0>fME%mHb=K|CjY;PBeJ%GhoKxBu|WV zI3>#-bZg&dpZYi&NIEomw3s#}v~ul3T^z-dcT?Tqn0;@$|Gn`op;#Dfj&zwT&g~>s zAzBk+aBz|bh8KFW+2WO9#hBe=thyOpg@;c{uTwAFF_n2?y?l~)RrdOkq;pDJSNBL5 zX$Y)g^iH<_Josan*?&gv} zVmvyTB1tc2AC#ma7MI*gOq9cs|0(1xPsL$BmSgymWPVFjpv}rmZLig73%yx>yQnYZ zcziXS(iyHW6qrU=*SE_PF}gIUzNjhj;?{<{>*snyGl8Y2aWf9h4Il8UG^@CboF4gnxxi(j0?fuKk7bJu1Wg?V1V5%dsn-5VK*zQ zpE}7Mov;?UpJFf@dAT6TEu#5qb|6CQuHqV`>kF=4937 zd+yCY(U=s+Zpxl&Xq0QMehg&qi2Zxm_n63b4%~*p$|zW5px^oSyD)$}tyRlXA$V{>@Y~PMJ7}nKrm2h(1<9-H? z6$;&W`+JnHtVM%)Ha_fONkXFX`Bb?@?*qa!0#B__ce}H;5nRP!PICjU?O(`vlpCQ3 z+G>spRkhv0#F;Fe=A|RTM8&0}Q-e&YY3(c(KGHW{*E2EdMZj>i!pG;)W@J7JHc%1Alj?{8EQWxC8OMH{7MUf4<%L65I63S9~7W@VpHohCO1+c zg8Wl&G!uIf`avfo_Ije~3l{K0-!fM|}!hBaI6IQZ=Y4A1C* zR5(DMVx>P027CfoQEgx{!Zv+*?Q_zRte`9AH-6mt=ppnv-HP8k71CSb3LVkJ(JZlt z=DCIcKgyHc)6lWaZp^p|tNJ6S5}56iwwaDmv38*amYvSN;?^{yJ4Oj>HPJ%mb0$6g zwN8Kp!a5b^#@&AsY*s4&=q^lo04(Aeh`9?ppBaN=?D@S5O9vUT_$+MjE-c@o4Gr-G z?!tPscgOw@P)h>@6aWSQ2mk;8006->Od_WP008I&001BW002jFX>f35ayCJDX>&zZ zGhs1dGBS8Ja5-}`Z7yqYbaN$?d2H2H5QV=%+saxf74a1)OIzDlkV4C1Q9!XGdy(Q& zfd&L@(TE{{sQ+k)QBk89)5O#@C%(7ejGCHFr@GE4hPT_=qQ&!w|mn={8>F33p546zQ>*6THXQ zbc#JBV;4KvP9+I8@g)z_JNl7B9phO;Hy$!NlMSTBZZ}IfK+T+^CTO_{~%AU@6D7sNk_&mpZ{bkp_D(fifbNy(M3$r{nf6s}aw40fh znioyKZSFHGRJSjlbR}b1y3L8TCbKrT+3h(WzeaVs;=B_*7h}#x>ud_j(h>P;%F}iH z?pwk56TxD@o1gNQ)n2*acZ}_*XvD+?-|DH2C{5(lQ=a^Sp=hN7{2Rm&0A25FB zzxh_~T%@t&Zci7@!@da_ox`0n`*^P^Yno)yp2zOr=x#w#cKW?e^umzN&Q- z)?|oFivQ|hE(%GQTAOkr&~eL&?;>uW*uqb}F#8r|c)qxG(<~`wi_=wKy^a)0Mjmlm zX4n<aJqAr)OV9ti-vq$b5AN^i;CHcjqa{nFUCE)sQsxlWZJ|uzSs8yUrpvOoU#9>!}@1# z%kHGTJot5&_QHO@;3K{FES$~OW__A-W7*}|St?q^6d&= z?G(GnaqVTz;H_#!k5_zG>s-J8&AtOndpA#$kMIrL@@dwL%}EM#lVyZcc5V0fy`vX= z(n9IG_t{AGPv_X^%qY6 zJ^E?Gsjk0sdpG^xGE?!j_&vF!RSJ@`=Pvzd1w3+S+o#E2rx#EC8)|UndC!jd$5S?+ zI=LovveB}C|MMOndLAF(&B(;SfXL>nboi&~r7l%KQS#>J?fQCk@%i}A=`lX>q7iZ>C$?_)zTE_^T%N6M6 z>h2>SsKou3ad{m6BNpf8`b)(Zro?Tk^N35$!`p#NN=#Brf*aS{`-!7GchVCGLpdxg(0x5cLUi_q7cab@#dTw}tx-KK9;FPhY5q zJJ%nJwsszVzDnHO;()>G2A zyJ*$$DNLFwJ4j-Td zXaROxdmm4gM~@!3_nu zws!y6w6%5m2mdP;TuFWJ0hvFjo8$0_wF!~$Y`>5e^`LDiDZ0~FTjs0LoDt}{JZyfr!4%8QH_&4_U zfc#_M!AITTZ@IGr_|LiWmp|^Vy8mEDs0R3Nd9bsg$=}!?YOMP=_JJAv<3q5s+COq{ zKgd5mJ9=yU6Qi3CuIImxWpDc*AAFq+|NO3h`QYGV`i~D!9PX?CBX>9Y$7fGp)qiYy zy8d;p|EsU7=09>De}jMe`g$AwBX_aY`g897rSIwc=%4%m#()ZN2ao|IfV%(}U;sD( z-T)N0#rf>(5QsYu0YJ^eGsqk2Z||A1l|Au)j9xlWZ3(8`~S-x;h!B5Kn73& zbO1BJ0o(!v08yN;(trYR4^RiR06oAEFaxXsd%ziR!}%QmgaXfimp~lw8b|{&fjpo9 zC;=*fTA&GN13G~|UJ&F zspCDwgW#FrJ;rmwbI0?;3&neZ7l)UOmx-5;SBh7I_X)2PZvbx$Zx(MAZwv1b?;M{1 zp8}r_pBK6T_(S+p_$&B3_{RhQ z0XYE!!A$~D0$Bnz0zCqA0!IRGf^dRZf^>op1eF9W1pNdP1Sx2pb7|2qy?v2~mVtB1$4QB4HwVA~2CDkrPn>(MzIqq9URO zqF$mYqIIGZVq#(jVt!&7;s?ZL#4f}k#PP&A#8t$fiN}c7h>uA~NSH~4Nt8(RNNh=b zNnVn?Bl$>zAQ>lFCqZ8$zs7m(&NYo|=GWY>J-?QIt?XLIwef44*DgqJkn)nslj@N^ zAq^r;A}u6sAsr=MC%qt}CgUelA~Pg&A$vylmaLMjmu!LTh@709n_P}upBzg5l>9Au zHTf6vRq`_m8VVr_H3~}#KZ-<(Vv5fcvlK^^l$3mw_bAONeJK+uODVf4mnhNKX|Ic2 z2VZ}3J>q)S^~USt*MCuwQt?u$P+3z2Q>9bYQH@gV-XOifcSG%l?TzpoSvNl2n7MIG zO-p^7T94X|I-a_WdVu;T4G9e&jXKQ}nn;=gnr@mkS_0Zzv}&~Wv@d82X?tnc>4@q0 z>A-X@ba8YQbR%>qdK!93dSm)P`Yif(`V|HO20jKbgDXQ4LoLHJ!#N{6qY9$~V+>;@ z<2d6f6D!j_CI_ZirYfc>rgLU4W_4y5^Bd+S=0z4l79kdWmH?JqmR^=!RytM%R(sZ1 z)>_s%HheZAHV9h?TLIfwwqtev?7JKc9QQa}I8r$}IJP)xIh8q~oT;1$ z&TTGwE)_0UuD4u0T&SCDHy_;eyP1D;zWN$g%O1;%}3&q39 zqr(%*Q_eHTOUf(D>&%a{KU(&>j0bS$8JyQr^|L8*#V! z?t!GRq=RIx86KI(GTAaSvUIYKWaDMO$Pvk@%0%V6n-l5D>^6^Dy}JUE7>aLE3GJVDL+(Y;L-K@}I3k1D@ZB~-mt8&pr#hLc9Q z21-*(Geq=fgA+ql!z9CbBLO2n zqb_4AV@u;w<5QFSCdno%rsAeyrbA{dW>B+ca}sl7^CI(O3w4V$i*-vW%a@kZR{U0h zRs+^7)~?p=HdHpYHg%7Q9-BNadyKKwv;AOuYzMZ>wnN#g*=N}AJh}HI^~sill0&k? zrlXQ$vg1!DC8rdpEoYE(y7Mkn4Vno(aCzX8=W+_ugB8QBTuof7+^)GjcKhT`;|_E0 z@!;?X^ceFL_I&BN;wA5u=7sXs_Ac_l^Re=2_NBuSp09oaeo=m_{>uJY{^$VXfVx2H zK=;6}K|(<>L7TxE!SE2m5c`m>(3_#pLRZ67!t%rM!tKJlB5p-QMyx;8d|L91>>2FY z@N9B zmrT#gAj|N}Sb6*KZSy;xcdy@JGMzK0vQ)FGve~j@vQKlKcFp6O>00gDt~%Me%6i`V>;~F~*haj@phi@abJI$* zS@YN@txsJo3M~z-Vy(q(H`}t>>D!Y!$T}iBt`Nb9F+a^Gb`VpeE&J?I(snZKX)j706_Z<0LZTYizol3 z@z*5ozY&gN{)PUv|DW)`xb$D&;W$XaQvfjj4B$uv0OaDZ0B(e=C26|@CgZsi2e+!@WOE41BBE>G&gUn5Yy`0l5l&`-FfyV|Jp6pnofGi z7>ehvo%eH6G6qH_W)@yPegQ!tNhxU=Svh&N`|28+55QUmhDOFFI7(*!#KF*pU37!>>>GU{dYtC-m2l+?8JjJNMHKNJ+gi;7E1%WCWD8ycIMKecpq_w@Gle;F7Y zpO~DQp7}mIw~Ac*vA(hSb8GwH@aXsP$tn8m{7+nX0Kvb)`X{pgOI)}l;NcSz5)hL7 zi3<-u0QV-KCM3Ffo0vvLpTyRSmix}LYjmn_@@qOtZ{3BU=25Fs0*J_GF?S+fS%M2e19c4N7Qi{ZBBVyfO|6=Wj9#RJU;>TTw4 z=z!&s?U;N`KdtHX^Fb{mbJMQxi_JW$4{#c9Qzz<>>EdBINfF|#vD}frM~&D<<%0W6 ziQ(7Hf3F5GAZr4JGOhKKYjgPaE7F8APA}6mzea!z;l0Yt8)K<1KC3W8m%H&!imj4` zjgc$!zBOdhZH7yH35Wm@9eO6UV?_5AK#g$HLkn(pQks00f2(&Ly)nW&Y0(`VpI+R% zL~x)~57D$oj*>0V3{^NMjvPoWz6-3X-`bpz3Nht??y;_HuikYh|5}PH#hy~~e<@eX zdDJuJ@11YvyftMWQmdt(X(Xs+90xM%-cVFP`fHjH7>OuLlNz2kXp-8YnBFcL^se%j zRYkisj1mpWL(=5G>5Pzc+0^pyk*+0uCtvH20XZhk;csvEueujk5M5aP_K9#n>p>=q z=L<3FsKv>mhk=~E`j2-G)TMeW^MWga1RFlpPdnsYQlE>2-4ygJ5=sQ;I*M6R=Ndt> zs+9e@-!*_W?)GELN`QQgYS;a=%DO@^Wx)C!vxH5A# zpVt5?^0#494$^#e7&xG54A+Ymnkr>TUZUGJD3v;~mDRE=)Av5QYjY~1cNu&I%x5fw z5eMg$R{c(JJIdGyr9NcbGeOm1X+*DsUdc;R_*GF_oSA?1+%preC-UL?#Pn#?t3Yei zGgA5p#yjbp{J^ei4FpF-M(jwdP~E6Crwv-Bu!ZZ%7ONN}JPf~Ayl2e2L|tk?n{4de zYoK4jtVe3Xs3lQu4(D{(`_a5?tH0{Fr(4%9z5i>fsjF2G?#7U;9}tU>NybPXI3FlK zf3xs~)p$J8zv&8);PWMqgRS=yiP;kbSqi+fqCs9aiICKF+gAuQ z8S!3ZKe2?w=f8Rm*?j(EW8+5~1Y|o{gRtm^%LGqWkYy}s?@l(IHii{u{tT813pRKE z?QMJoG}&Yf9j;FeO_FH`o>z^YV?W~QTvpi3Vsn>g!afUi3{72DNY0pCE)Onqk>yrl zV8_Rp4ip(2RS}WV1{XEr&b>#+6w5-O0*ztTZ0RS+5AIjv53^RR_eWyzVBLx?inIgyDsiq zG6y_W!EQ?jW72E99C=8m-F8$K()Lq(%UD*oHCLY45*G@QR%|&ecsu8G+S)SH{k`e^ z>R&Al=@0Uk8uw_Wx7P-mCzJ=|pc6eG9ckplOjw7_sbeAI*=GgjY1!F`0Em!JT{cgK zNcHE<*+l%YC=UVUAvKsDbUSLu;xZSb?~(sK^xnj= z^pq$c!f?VI+5f0^;`{8(yj-C`^Y>p6_-E!c(>>3z>@aUpvN}IBC>*4 z$j@=@Bh<Yu8F%CH(3?A%JH;|a_asp*nulIP zs|PSe_XYc>l$(t>Y-!K#7H|#)*y#cz;xx4f3qhpxWF;!Usy{b69 z)xcEFf?>|aS^LI(YL-vdX|bS7gZqrr3Y$~*MhA~m^2!KvHi!PR9-(*BFow;SrRLe$ za`0EN?UrIJ2C2>lh3m%{?UUFXn}rMUKG59VlT`HB6+lFUo+-g-q01}#p@my9(mAV1 zMOS4DYO|$#R(>!%{gPEuE$S;k>Fb zxNel}IGmnI#f%r-c1{ z!&`AT)S-#Pi>Io1gdCAKA{K8^qWAd928wd#0(63;XC73r&+q(5?+S^q0d-@qZ)RXe zS~4(P%k@N~FV{VUhHR|tRZP2)*Jj83+W9n@ffhCL+0LguVBbMmkBqY{>L_dqapXMgnedSx(6+sAQ|*!cco!uWj%$e zF1&TaArDQcpA(*pis+@HtgERHJ>q8DGH*aC!GeoVk1utjOq^T z;23_Nl6RqDk)R(}mF{S`#{07OTT0@=hVM?-L4vE|_E-s=RErk#e!}f|Gz!GnCP)=K zu5E$9L(gO#H3lsweCS(@i1^>05Qs zONN`;-I8KDyf8D&m-oue92ik-O!4;D65X=L40b+2?~`M+K97w`7#{9gtMvwPKohbe zZ>mwVU3bes3T{05xOW^c%}@HWSY9@^Vpu;mA7VM_z!YJAduX$t?()~omurb6`)g)_ z1W%R2Z|B|~*s*yDhgA+&eZnHd)k8S^0G0QiV)6p8x+JQ zp3zAQh1gwRIiBK9eFD}s?M@avwM4AM-fy7)LWg%kvR);W{cQ~*i!5pe){7;D{aBp`_0*eI4x z+U>`Zs$9^UW4o?^n&NIm)OlJI9MMZfuXzQK3$Ll~Rhz)_UgZilG-mE-F)AC$W9xswO3mLMIcxg`}k zdx&?Bb2I|O7JZ=+sJ9xh%Yz^kJ2uvKoh4&Ok~OG z`@N?XaF?@H!s}!)MzxqJCkQLPH?2?fzz0WOpTYy15+OjbhGX>HWv81B~? znsN8_bjjRpWPf+?Qo+Z;N*q6!9YvCUj1Lf_7`n){h!6bOFBQo@tVVR~$}2T7=RJAe zliUiH>(s205tmMXfSvj3jedM5I~h`#Z^Nn09+zd_prS!eqSMN^039CskfdO~w0UB* z(#q;~w-ZY{@ez4r&MeTr`(*lnSmai$6339sOV^rC`{%m4AxK0(VJfss&`jet*rQnJ z3IKt+#;}R`^kj55>7Dx$c^KoqEw{=gIWS&NHo8 zwO!`d$n`m;HQxGs-ogUmKK+(t=y&8-@7?RL7Zp#xdQKh$nr~0QjjTs^M`+NcQ!ncC zA(UEow7^A48>1)Xm$6vU@V?x;HE0AX%lP1WIci^Pvaj?#`shJGbk7w))j)G7BCRYW z{q&884@H7&?oEch0+$kp35*(ycH!2xP4yE?^`}S*$wN%2pc=hwi2PfZ7?4g^?I+p5|Eon9|HBR+IJ5PE)Ev62u0)YYet94(Y z*?vai4Y*jH8G3IeY5sKeR~l*)`D2M4?RW7g(1zg(AnV{+-#Y_H_SB-b&8}bPh?tro2Yo^EbKMKdOdTcO?MG<$iv{KbQx04C6i9L?*ZM1-&JH@ z-bS=h>*|wmV%Q^-Wo zPKbQHgYn3_<0cF(=;X_^;@$H83pR|uMFo`wYPZRpvD?bTGF>6aRm`{V_AqM53<~ET zZAy5Ez0n?1*wj|7G0~HFtGc-z_ZaVpRaX4gZ(Dl>PzFZRQaKzuT&Eg#F^VlL?c&&^ zGV$Ys{~FgV(uW*+=aV(FG*-Pds5-O0MP)(qsywo1B8O$tNyw+z0Nmx}pUTrxe_q}P zF4aJJW_O5RmLk^qaW_HGZfFhep{ln!cu>Q6n2Gkd5b^?@@1ywRvaWznc8G4OOEJ!k z(E>e#V=3$#(GHIzWop-UYPL7MlHO|aJg>D``z5^r`(#E)ZQ-+KfiGsJ9AwD~(|)Dn z6^MN$^CeR-vVf>W5%it?OFgMX8qH{KX1`IvvRit#jp81*MLo1MHE- zcpLSBn$0Iv!LUr!p5LBomw@SGor1XJA6q8)>j+?shs$C!r$kexoOBT1+}olqRGFXJZhwgE}1jNb!|G!S|eoN5V5wkUOj4 z71ke4bL73M=;k5u6+uduJLdikXIa)e;rmnRO%m4gDgiK|VK*NNpUyisj7{P9er{{1 z5b4<`Jwzhx^UV{vqeL_~3SIQ8bfrp0Xdnq%MuJDGUdinf361_U6{Fu)WhWz@NQRkt z1qR%BrW1lO2!6rs>4RgNyyN8qElGO4y&Vh!v=ashUSm{ROVNP$g zVCm-;GMbsS0oMAxKO~tnPHAvbjM8c9%<_npCK79Kd#L;dj#mFcULq4ubBAx-{f2OJ zU2Q6B%)Y9mp6&V&>ATHmtmu8JPUak4?sRp1Ejs7s>59bopwci^9dF~8rSfTZleXIL zhUPlJ0s;e^i4$MEAYa!rMi+~9r-YD3pBR{1%gS`%!vb4O?S{Wyq(eI#E@YrsJhWlb zMOgR@N<1NS(I2^U5`bphRP(3^jX-A<>ONC6h&U;F@&Pcp;cADfI@bQ&`#R*@)BcaFU3tqDbi;`&GZdf`^ zNh7w-Ob~U2P1_)@`Y+k);uch%Xov|X2vvWQ4UJJKjTi55j6RMy@~BszBw+&Gu=TQ zn6-yw2(tTj-1?#jCPDFFm?5juyrl7yXbTh9%X4xkfm-c=(i#Qf&A^CWKMlC}o|X}A zk|~rq(Lz2(y@9DoUcZ#3e!}vwREXX&H+Ai0yw%#4!-6dxvSxBq^}{^vOSisXL(4Bx zorqwcWaWy()phuNHnsB@F%QwOk_cPO15{rDMGYby)F2w(8NfyKEJRdG%1zuTiR?Z^ z<(9}ZZBn*hRa?r;2mY1Z+3Z?q*9+3=2Ij7G`D}}TlQ&wVV1A}U;{uI=kcrgA(J}8| zd`9o#EcG>$h)kMzn2LX@p|5|fe)i+(y~T^AjMXdPl``W2$CnE6>AB;li^a>x>7O#p zhE$PR$-rUG+vE8W;S;vJIB$_HRVGVUK_tr+;L{tvb|d>k<$E~XLe5Oy9XhY+G%Q}+ z?P&VYC`~^0Zp7iQ@ZAoR+VGn8a~tOq#LS!D*oNPWOG`T#i*V@H{JzPj<;w`0nGL#( zo^#k~$j}sY=k%%3ZL4gp1DEh?DtXlKgDwpOsoE6e&)2a$-NkD~~s)i&sQfxT17 zyhQRGc6#odWUGUCSTv*a&1(Ke-hGuF73JmzvrCb_G~Tye%_b;A3Rf z&>8EqEwL*Z*cUR5_1#hRA0O_6&boC}m}1T^n=9(~_c-yb?oVr%DZfK9iQDVsd87~U z)Z}(qJpGii`%Rm@%i^7C!YK_?%-5{&0Fb^x*MQW>niQ|Y*9p%$50fF*!FiatMg+~J zxWsqyDwI*McbBF_I*C$2d@+Y!N z5{3oARrK;V5}Uj?e@vh3RB7+-MihQmzCGlb%kj8*Q?g1o(MUTI6{;TBBmT@b-9nFE zOr1#hs8^s#M{igmKW~7vfYAQB1Xl>^LlstV~^sGBzufXDf;8Qnv-R(iJlEgJ z4*XOa)ddEWXBF4zB%DzF7p6lcxSQA$&`JZA9ZitGs9lB~%_EUoMjL0)LYtbrp>C*& z)u_w7R~<^|hDynuayeJAHXCGBO{jF^jBiL^t^znzuI#O&oAf&EImt_jH>=^)=Zg;x z?Q6!)f1D*ljB2QTQIf6`ZBYG<9$8)SrL_CmhAE&%%=MLGZIL0*DX3J;u*=7pyQ%pC zBe^UCdc>J?MkUWm1~%TK7ODS|-}(S@vqUxgtH#v4^*+A(NFr~$m8+k?Kx=Dbirdnu z&d@4ib3gpDUoy>dlfSDlH7trr-Ft~l$}6?hBKgA1Tx;p@)DO{m0fno&{cgXruqJ)( zo`ZMO|G8~VQ{2sn$k1$YR8s2isx781rpkeE8_?)J$RW0#t5ua8=0?}Jb?Fbf8pEJ2 zaWgzC`J8q8{nOQB238;{#h}1jhA5|mjfRPJ#5>GoLHFF;*K_H%+KRT6etP)wJa?0G z!q?khH{>y_GOHrX0^Zp_6?Hj;v*y3W7p8KGi)^dFA=IHm>E5x$27y|S*56(FbYmjA zXRm;|0yfQ)aOGeT2I)sd+uBPLR90Gs!i%bqdLb=OV}s`@&KG%d{moxaISM9yCL_$x zUhM6;bv^xeokwVC)@<82z&t!3>K0}jMws5zX!2Uq2O8jZXE&YvEuTrO^Am_#KX>h$ zvkDDJWa_G*hCZ}U-%U%@b;1~m!6Kcm8Ag^)M!FbedgaLVYSG3m-HB^~Rwjg{Cymh(D8GS(J1U$r@{u}5e%=N{=# zh1$UA;ZccIbahG8*3yZszdM!Y_F6to*LRXtr00t*nweiy|9Yr{FON-mURIm2hf3p( zjOQ!YFf86}kJ1esHtHUcNh38V%QsIgMJ!CmyNr9m7BTMame%&>ndPH4^g}HACHq1R z1-jzNQXG|j_Vk0rJZ1G2#t;|&CNu$(F%EkNJ7LXwu%FOCH>GG+X<2{1RQw~(r(`%E zE%*CX<&P-R2fqp@B!`%szDo})QhKA4p~B}cJ}>Mju8kII5<8vs@#WsS+hcbmq6?xH z2oe9Nh=_u%(z`!c6q@L=Mb#Ikc$LcQ*41zFgr0avRx`a*@?e2A;J7SZ>+XJt@cC}| zI}WgNG3Go%d=N21-&C=@w14ULvr(DdIe8a>8_DM_1vd4MvghH2%1-^Na5D9)aMOM9 zA#{*ktg67Fx%J)vchh$f%tbN9dpBJsY2gE^LVnIGpoD|P$+V4+Pd0R4KC+fA7Ti5& z(6_cVLVr*lxn&YLZS~yfAdPNI>pETG#|1ZWHPP-c7^ChTlVY6<^Bh|J@Lh`*G~A(} zWohK}_7&iS_?|w5Oxi6+R?)cxhe|Ksz&QEv)u0dtt#Jd*)f2u%)TSyT#Umcofn6Kq z&w{%o1L|`HZH=73S(v>Q+|*5p(-P;}!IbCkEyvmH#c<9FNVYBHB_naF#P4lg8SBwI zX>x69@pcjlP673L<@E1**?`# zS#xl6F2h%g;#XaURmTF8$v(wG23~y*6aFTp(Pi1Cczw--0ZE&|2BnPptfJ!GPn)}!RpJf4lkna4@}$;1ITj;1*VMDK z09~7$>9}kmjrjIdxS#GvWU-LeetNO+DL*7LbPRI2Tt8K+p;){eL8(k1s(M+1(I@Fe zBr=}npdMudQjhrnvO&`eQUe9%FaDz--K%F-eXx*Y_-sl7a%$sl0u~; zx3|MIB8JfuiTPu0X3Hqzni;6k{zxbc`&ICv&D*Z`KCGW{X#{u*aY@0ur@Qgo1` zo-WArB+X@}WWHPg3EQ!tk16FJj_I39ugwALz2VjI?o)hoDN$2hJHA^XxhOrp)U8+D z6g%G6H_r1MH@qRF?)LDYu!YDLsFRfyH0pwR5k#es3YRotlT!JqvJoSpsgi|ax#1;9 zYHr2A_Izu&am|5uYO$cMcj~5`oUV63Dx5!nZ}Hds)Xr&onf2V>WiZwzh)=qGb&;f3 z-gizfM$%2ja)RI3%(X$`f&0qi!AGxojc+%O8!B2@;@`8)mj3RlD@*LY<#BMZY!i7g?Qg|` z*e$zTOsfZ8CG#d-NE=b-_PN-U4S)R$n(Uj!-67ic-OG%jGUeCuC*ytwcti~kk-GAP z<5Ami2@tPE(GvO$xV@FSDAGf6fZusTdYjUa@WJfc;#rh}4GfdF$p-lOhv?N?>s@42gT*6O+!y)Xe+^|0?>lC$AIrjH1E)=S6P>dicw?p?ECiS5JJ|jr zt!gipHHvXp;W9v4|lAR%|h8<*I z&((jMP|&SiGOVy#R4mXwtre3{A$gN+@)@1<6j#nj=hcAZTE!H8#uqcS${FPS+OEh&rR=$3M)kf$xKJu|fe11D#ZaV@4U&-I zt}_@KBx@mh+xIM?qOq=G;mg=F4<1p9bmP`>?crAKuB`RAgO;Fr=f_YD;W;~q?*c1Y zjx|Y2FKV`2itZB}1`W7%UL}04?yw-b%1F6_f;uk1G>J_36B%iZjhr8c=gUMFWNu7} zmB|}9A5L}IKE7;}zO9{^ssuNuL#(ES`W$GUD56U*{H#N@QA@a4y=&tA%S4zP2b#~A z_r==6T$dETaZgJoaW2k_)O_FKq;$&AZ$OG-i?eY zSjag4<%cvDy75TvW1rv4@tmy32u|z>XKnxPJnBTQVKJm=SHMTB=Y8G8*qgkRNf zBbE$f>-j#F)t7e44roEv>oy)>QgKx=DCo&7h83lal-Y|}V>vzh359Qal*$`&8P#ZMg`?=Fzu#_(^)*k2ybOw5O|~^FDVI zur1gV)?ipSDpU8KuxzrdhYF~O`%jMv4{&a6Mw_X2IUL_5orvd+bxCCBbzqZX=j8rT z?5qV})6=|ot19Edzj*~<7=3z^VK^RPIy&pq^{9}RlMJnS;y(VlAu*tZ)@7N)=|H4< zk+SHPq`#-sT#!dpof*$-0W}+=)njE#CBci~$zd)`d%ud6U*qW_bln+spl%&5F$i_O z%sa6(s$37+kSHBIw@DY%zG(fKv{(w7*4~%wKT2!y#oDArsBzXQEti9?#xWU}A3!T_ z@`$lF!&5)EFP&tB@@BWQ4=fd|3r=L#J4+{e9BREj6fkBW1@wKg z(t@P~`L!(O=6Ywbl&5v=nL2Y|AC1$vhiJZ`wf;R^UI@`sd!e@vUfe?*EO*OpXp1U~ zGg>Xe!r7Xig-=!&zvvJ$n;Q-(Qe3ihq*Umco}tl%x(_%N+-Kgmz)T&O{M_kbqmRv& zjpOe5G2$mDF*|)7WIo`PoRT5VC!Gyl71Gj=EGk6`t~Y;@p39flH^^A_yaHkr)!%sQ zR~R|Iy*3+W!Y-&~h)kKFjJKTHvYOW_r)KJtjyKH8MwsH*vCaI@3jZE0ePa$Bwv37j z+%QshdZq|fO3x~PXjG`Dpx&+>Q(xgfZ6iFK@cUxcF;UJgaa+KBc5mV=MRwJ7hA$<} zT&#m*P`~FJBu&|jSKx@BUe-#X(izShqzZWs0R^otDSVMlP|cxG?X)+aAxKCSoN|+{ z(r|H43*7SC-Q-IvkYY*HPnz>Pa+)=(xB`aGv8_?Kf8spCyGMdlVZXMmoD-3uB=?>n zZw4c?dCEBwjiH}esf=0?e}$mJ3ZZ4X{X5v>`lnfXn_~PZ*^2VmXX5Kg_xAUW`J0-Y zBV~@9Q!FJZxnA!*B!^v>tZ846I4x}pJ%QPdk zMYmZiVXIFOis(a3cDHOg6&LnbIuo`Uit**1YE?Hw_D3iYq-{de6^j~w+VUN3Z)D9-(!0SCCBH1U~X?w08CW-=!7ndHhrRz4*>?9%rP2x^_b z(EIuReVgkFoZK7U6Dz0yr|)j=Ne&1WO>Z$DoYp)#@p|=ASgguA$J}pCzw^S}0Jo4$ zt4UM?u8Z>Cj8C1rZ~@PO3yzHu-|6<~e5na*97<(KUS?m`JBTad zMknsCrXl>{!n^y|+O5_uDV|Wm7Ny!j7Sl<@gdF z9sl9!TWlxt`;qA>Czq)O)2!bcw`)5MTQ(+R_RH1hty;v%V+14Tf)~Z z{1Oa537P9pY3hZ%Jv-{MzSVS~8x1X2iF`9N*#49)%i{Y}i&uJTO#!3S{ll!n6oT|S zPndhzE`+-_BtO~9RXN3cfCp&OQVK&hTokl^(fo*3WOJ+-rssd&tI4QJZ{KR1?SV41 zp>r!}IF6g%F~Y5;oT)zFKMCI7X}{QNO7Ax{=t#1@42wXVgK|C#`h{S$tE!4R0xl}? z^gf*VT>*PJ9s4bx>C%@2Z1zD?m$0G({KPy|z|0ZBeV^mI!*s^@|Rhgkc}5ipdkhLU-Q&fBA&2}de+7VD}&rpIwC zL_!AIjT_F_#Z!j5i}?(#%0tY2`E{qf=qmz^D@es$Ott5P^th4TCQLTir3~MX>&I2Q(FfBJWG?+H{Ymbb(|yQu?Fdq<<&MsR?O&V2 zs2>w@0wR9=+*ZsBAK(-1Wq0Ajh58ZFfmxk_vACgZB`2j&Acmq?Tc)d|13H0Q{;{-1 zfA)^6zJ$*}4)D)`U6d!IbzLn*7dlD);Q{Wd5XLpcQ!`f&F@~zYD%P@+$_?INF zr^3$zHDnd3J4qVC*>X;>2+-)LMIJ!+Spdj)ed_wAu%_+K2W`4o;|GOC$uh=FLO)m2 zo{=y;jxaZ_gT#3y2S5@NlrJZabj3%FSZYmY0zFoq9< z*gI}8A9Ipx^T*XQCB5TWVgXm$4BdMNTPC*(nh`RK`;epbYlDj+Q8v}xX1-akkIc~N znyrt}nWz)*aAcn@y{8mwYMxN)ezb}1h%OUU%n4eQ)H2xIO(iJM*M`CsWwzTgsslm< zcSxS3{aDkT8F$;^q&;BlwQ@55=8jPcg3r&|4DLb8bc+my*~DY=8Dz*e%@$(p57*5e zz68B}B6}9$@D-!p=Xl2cu*FnFN~rmZ2K|ArkleS5=+vOR>S8euC;3dX3zwRBrJn-> z7YJJ$x$@Yq7RA@PWm-mdX9YrT{DGQJ)|Yb^T1vImS}!v_up*(-=!})B1RKh5+CUFv zZWRhwGd|#mhNCCCZeZ@CqADAThY&hbepMuu#jxu|b8cN(719$HF~9pe9#lSQ%7np! z9%J&Da~)*K5_1(eqq_`4MAUM4`4J-gLSB)(Im^5Y9%TW#R_{DW4>-J3?C!J`v%VcS zN0fFk#i+=*Lnop%l2?i# zBxl??)iY&w9M!vyWq_G)M3t+RInN-zHz7~;#$pccQ2MiyQ)($GN$r%*>pWL5OCA=d z%37CgsVRsWzO$2>m78^rX->VKtX~$n&UogPFna zX*a|x;h~0%P~WQO?{&En)w?~$`MU8Aat*qSdHcBPRr+Pb3Pwjn}9U@#LXLeTvij$y~Y~|$S@4eIkhCQ=jA;KT0~S`%_Fw2J5&@j=PT2LTkNKHY0kK1x?RX-PdN9aXxih%3q7PVzG^~c*vuHIfj`&)7otw}PIsM-cu(FJQ^hI&Y2{Y`-;vINd4Wg=9R zneEMYT6q^vH|*@yuFXNxM2I8t zu;a!cypi%wFR)DLyDBKX=sm7Pfhku>N@ZdCcRgfplzJE5fc^aLe8|dr2XA(5`#8Lc z6dt9uZsaa#*P7yo=P*COSqk8}$Ysa&e4 znD?+6U8BO1d41qy!&RIid?H+#9a4n zg+=w6L7MUl&S>AW>e*oJP=_FoX>rYplOG*BZVe#muccx3Nhry=jRwn(nem0Uq3SUA zMz0O4Jy>~O8_$orh@f`}V!N;lPHUx|Q=b$5)??7s#J8$*K%OGUM`cV=2X6h-ntNPw zIOP81`}CPd<5F3yZrVB>jX4xPDt-TfFN<0cmxmggF%0PAJ^Dz?l}sK8VxuWyvrymp}_xp08*A?`O&lsS}%0o@m) zMlvC9W2lVT#NQhF3F!${vAq5Gf?Dp-O1~)EOU^z+^pixIePlSY^ri2I(n!nq6Oq~G z$;ovS??Ufb91d6=4oYVS#DAC?jgv&oiJxp=K5KyKk^K**&ik#YE$Y^s!%>tXDou(a zBE2^$0#Ol=Ac^!&6r@XUq2?TIf>#Dt5ujUV*Y{@*du2SbX6kEt4*6(&ZMu8P{#|pbE<~vCp z>1yiJ$>j7-QE%76@7+GQ_%sfW&pNLBTS_Fhdm>`?<|wR&sDxq?Dt0gHJ4*Eh0xBRi zOFKj70P5%`YYU2d7ZG<)F;hk!Mn{>L`&}Slq`ar*j@@@{-f4~-EQm-8_pj0!l^RL& z5lL+yJZ)!ono-Z~db41~I7RDU@})dH9Uav?7N<~mmY_}Ac90g*2``D}qUw?DB($NE ze6ZCQUQ&Dple-%luIBN2^&23d7(zm?k^jx7_mS5GOI7~~f4X8m!f*4x?F)Yn?N2s^ z#U>B|Gy0Zfc24gFHwcTm!53(ou%od5*jf`6H%0un)SjcFPSD5iXD}zaF^buITSbuT zC~QBUOXQA&=p?S?-MVLpdHV_6v90>F_n?ry`X~_({PlS}adQ=#rztOO-d;oVDW<9KXH3DNsT)^L=iQP1l=x4 z7wb`6ZYn>}>yguwc2(7zaa&p0U5WS*W=yUHuwt)cDA{q!fyX7&dQp)*M01)TraMkx zq`&>oZuJXqQ^V_?5|@f(hvZU9z<2IHbnKwe|jidqSfS}-tYkJ?%f)n zP&}Av;bmBFrs%HrNP^N^FS(4iB~*pk-#Slr?nYLB6FPzAQLnEARIxrHs&{&^B@9Xs zyg!GT%sYx7IonPTk*o&BblJKt|USZ*t z4=rtGTxEw4zkdQvzh~0q!9D4FoH|U>grS3W~Q)JTRhCZ92bX7^-{X+j$G2oE(0$As3 zg!}LMdomO$;)^gj;?9FT9MSgM7-ppg>yqnHg5lLG+VcMFmh#RCxs3%(%yefZ>TT3TZqd*nu86qFrC*(#~@?Z4in{pfHu{2u9beM3I4`akr7;OhtV*Tx-Q2YCjZ zR?cTIM!#X~ULaf~bZJVyGKGfzB@^<>a7a!rBmIp~2_xrZzmF^7?E>7OC(i__>U**1 z_t`p^LB|@iG^COChb~L+#ND#~Frm7&pH}i{a-DWALC8vN4+MnAYqL!vDQk~&DL?Mm z(LZ$==+8eW6>xY7mHE#TMf7B00|K14msli^_jo(us8+RDF$-+7f;l&@yH-2COGiUTLQm-F8FA&zkLM-J!y#54$_P0E}QI&Bq z-F1)MvhucN{f#V5WhS6LmyWD4bpC4Qo6BYz__h!Jvc^ErZv5k`~bm&FgW1hX=6x8Jljnzr4cr-hx z*Vz|vP0o6Ai|e|t(XuYH@+&y(FP{-6eZii~PzE4mMrAgsb2{C-@k8hsuF11V$~hM6 zC2qH_hy?nkEMGiLS8r=?D7yO1bamJAKwQbLx_I_ndf2}ys{`)qQz$ddL292I$!Diw zP9pMX)8&H={cP!$Ue(WezW*=PYsPmn&(j$~%Cau{wDyG(@c)P^iI7^v-U zFmi0#8pF*D{7u%UJ;s+-x2n2F$kWT+c}X-UJ4YB3b6?VELtKTK_I%5~;(W4_v4Y83 zH?lF>-qSZH;!}UrsA}&BMWLOYJ%su^?j6q#%@s{lR}AY}OLsT6wRL*9p3WfW)(*3V zVH{yz=R8oVGVG2!kJNF=gCv1ztOC-Fm2mCvrdyIhvqCi^-XCjP67(~g>!0i?bomZJ zY(K8HJy`Y7mBQJh#(dK*5xuo?E_pGOi5VEe~@>?@if85fUZz8Fa93 z(7&hBIrwAE@Mbos#^NUUfQaK=FP94e%mUOMUr@!_O5!K7#(UkK@ zTxFR&z_}N1{`}&^C@q!!!+G#Yz4?)(5c7cA7ZMhXgSxrNrmi1TYyx>a^+dKeM2uRw z^}204iyey1wTI5UnAfqUY4)5VtjwO^4+&8PBGSD;MmRF~83`fQqrX_#VyCp6ju^NS zS`b@$0i*n(JAbiZcZ0(Ez>3mhLl#L=S1A7d%Jq2EwRtJ=La%I-GlxGaOcixqMyl2| zbE|9m%>PrrcBbcZqXm7w>k18pk;}XH@PiQ|>bTCzyIM?kBox41i@`t)%x0C~9Wc>` z;U4!1+t4x48S^o`q)))UA%vYr7k~?i-g{S~E2@5B!$gN;#M}6{+=A7=XsgSo^Z2H25#a0#@34%ChHuGh5t=x$bzc44q$7KO-zHeMxWE`Rp zyRS;nh>6?jIfiR_c{$i(SdO}B!6d=voIiI0>pE4wP4drg_lbm`W0iykTo#PRL!27tK4ZHqR`2{M+vWg{E{PBzx`$X~XSl}wwGy8&O8|i2+ ztl^4_P^SKDze_Vh!67{NZT-5eAaUyEaEiXk#7i&AExeuGK4(~dnuTq0B1rtzhssk)MwN5G?e zOC9f)Ixz`Xn)Hv<KuQRxNB4Wqu3j z{-WkwK#=anJS*-#Oq^nTtVMZt`2}klM1)XOrfuV0rB}c#7v`gfDptqK^P+VmukQ;w z3LN!6`a2l)Fb`&)3@!qTOU!g#@LmfSnk7ZLB6S#LtMcmIEw8f4x$tn-{teRrtWI&E za#PYP^PsVqztPhs8Jm@+Gk}=mltXbf)-RY@@C@spiT`a#{-$}cE?oZ5MfOmP2>~OW z5C+OPu1#nXfVcRqc7%@Y@?wzWG`CV|YsSVyu2FjS7uQ4-5Sf(%<1$h+ZT%YoZX)r| zQ{O;(3t#e;e-I}Xfb(AaNrKNXk-g(M@;wmhO*x(;WYR&hP!$cV^)kBiE~o})Uc9=E zWUQUk7VS5D5LBNseKuX0f3)FVD0~69jMTgnF}?JUzf96njq?X{ym?os-ovpAKN8No zHOq?Rlux|m4a>q5L#*cw2&`8hRgTYYg-Cv~nYWzV$O@D}Zdlp2+=u*-hr#!*Lx;Zq zvXfnAwo!oq?3QE*H`oWoD{v3t`EP6%h3~l4mYephD%RX{v)C2_co;LOv%Hf}W?<0) zU3q4dkhn3_W9SB)wQ_eA!8#Sa=rx`4Zf#$rNcJ zrMO1{?mFcVLUrEo(RV=Dckqo>Q@^Y&7i~+@FzB9&^N!EG+?KhN_O3nnT6hQL?DM;W zhdpoaH1+=qGgS!Rc&-ZFInd8yUzre#j)v0C*jSqG(Zyw$C5=iXh^R0eKwT7uUT`1?QRA)_4D<5!r=&^F0SIyM@R>GNv;YC!$FwI)1+zV#iu&QN2Zd!#x zv-DbPnk4w9&XQvCLmdNLh(5;Z=A7d?KPr5GbObqgz>1fi_a8!%_=EuN;LN%k_m8EG z^=F&2g{(flGFtUbFA9DpcT${Im*bN~3JeD#B&CHjUI017fca`4-7P>FFlUv4n#8ZC z4K?Fv;x>P+Q+fG?J|%m3B(m)mOK?Ph?W3WhDE0U-Fo7X?@#lQ7%iH+7TrV^Bc30;~ z9n1s1tIy@-Bl->-iNFhRk2(M!sAo(oW8Y5VrUnJ{m%wofE}`m@;s}s&%CVWb5j3Y# ziSGfq@tsx;T-pxAGq7ovCv*qko`7Oh3>xE`S_^A%6|(~w*y_lyfdE{47@XJNt^j82 z6+D3Mx7@YE5k{9xwdX8pZNVOR{&(2)Ho~}_ZSBeJszA-RNs$aJN8Hk;F+ZyFT0}Y} zUJZP!{q}S5AYE{8A}z?%RAfjw@W{)99aiiOb%UxaF-s}!8X_6phX*VlFYX#)8@48P zPDQ*<;!D@hdm9W-cea-9U<}-mu&sfE^W?&AvbEr(L$BfK{suz)$ zpGkt3x4c~CLSXsPxo+IU#t(~%`X0}AnJ(3i+AQ=J1aJ9uD(^q?8|rP7l4R#WN5(ko z(qW#VfrbOVDT@yIFB%*{buOkjv#b__rtba8K%2xGstI@tpc7yw!Z^+)ZUlx#@jAB!70pvP4^_7!S;QyPhy`JE7~%?I=gp z3B(=oUoN8kp2eyH6+1E|ghYgcH^c(YM3D9N&=G4ezmc&H?B4~6`Hk!89Y~utoobPg z-Ai+4fMe5@mLr3EqG^6?ZF?X=5A^h)rt_136!tA-&F@PTc?~tP#*5z}P{+|`qDwhlzx3%Voz(fBkE&U+LuouL~tVPy4tReu|_V2kEhyDsF{W`6rz`&irI3MYWFhP39O@P@7rfM7U*a44DT@%a5NW z%NOTu+S~3)+A2L-jmcjHv8|^?j6PFTk>A#&XS1^?^8^L0L)|j7s!+o7NOT@ywc=hC zXwNJ)mZlyQ9*mzxn4Z-wmTRwu`bRWuP^|ij!mJx;?rj7}md=#O^Z|4h*;ps70= zA*NDw4WKqJr0tQF>y|6SNQ6NBblYv{2#}JpoW0nkRVvlLeFcs7ECy^?g|E0%YxE|G zOYEQOeN^XKIX>pX8vv(CSUe;&leBxrW&948yN!ZsB9OYpKVeU1p~5E z>;w3q=0N#I;`jOAvt9R@hBWcMFJ{*V>$7%ktksRXhLd^PV`}DeIX*gZ>|YoKrnJUX zv@sqEU8sEv@>mE1_Vu{E3Pbz$lCU^>Yw4~D+!S~r2nnb$OQSgR+vZH7g!6N%NQKD( z?aA$&FgGdp<-$(bolVjsL* z65CvxIoFN8$K#-`GeilBk+*5T9zWtYQmK1`96&991~Gxh_kv8THF>jbW(qp$}$F`NMOvk9IN=VE+oHMVw%t*id`$D@*u?Bd- zl%bpBMxEyREUkU55ePBw91Y5whreANc)Kuem`rO&BA}OQL=;c3U4h zO`)lxfFD>UD#2DN9-q#zmhj(RJ-k zrh#z}>)*|%q0is>hZ@L5mJ{9;>Buv4%0+CnC9obkkj7HT?G5Cz6Q8cN>d4f(3MxvU zWqQd#@w5T!MZe`;_^j}%>`u6&kDW97E-`7uR!M2V)BK3h!dluLyx<)+Yx~qUqfMCF z#s3ZYeI$nFL@6QwqO-UjX)=zAO#GO@h7-#_m2Jw2+CB!Kv!9*M8u*}=K1+31KQVi< z%gOob$BYlxdrd}?)6>snVL*(dnx*EA5}|XN>Akc{iO4^1=Q9R8_ zQWYjjLfe0@A9|41qZN|nhM?kpMYx%88wY5mFabEg{UHiA<2}|nF-XOjl_=aS(latC zMhpq@c!Z|XzDVlzzsT_8`?f=P*J%LoQsO7ebXRD?y8L~bf|yqo zWe*Q*0<1p&8tcN#{(9MPWv4*!9Kgy`sgM`mP=o6!xfk-PqZ2;Op`v@HP5JPLj^SBE zR~ugx=3mX5v#7=fmIbh}lY$aP8MG?w9iy;Xtqc`tIV zXF$$%lqGS+7=%^bCZucy37iW=jf3200ny7BTm<0ouZjr6C_P~!&t#R7C$&GC$ISN- zRr!Om)C(g8@Fyrq3^1|22UIQoo4Oz&qyQn%0*FFP@#u4%^IXNCk(-(0C%4L=>ZvLZX?% zEi0Q^*%>pNEqifWTa3ew_>_S)c>btvBF{mlu&$jV<8{GNPJqOV)Ki>Eunx`ZW0enB zoRKbt^y1`wRLTHzx>#!~~e{QcWMz97R?n4)BBO{y$5C)e^3;@L?& zK;SfZ=8a%n$ivfo;@!;37nh;2ZLxV;Ia7%LI!TawYmKOmky%T* zz$CQ^L_$=#Nhy5b{Cu*!k5}9XXz;3LEzyLqJK`lvdW4J)rt(S+QH(6FhLKFl#^8xL zn9nAiP6{YsR9Szr#H|tlG`GJif~u%kp{#5bvmQ(+LXSRwa+iHU zyq{ZM&BVLcp^H`l*1(g7rN9X1R2`+pb6zDO z7n4CZ;W}_?=IuvqnBlcsRe{KK_~+b#(r^~ zuoSB)Q^U2$LoRubf(BVOERvgQCeVvlbFP2w`e|#`A~l5WlHxla?@H5p0E{~#`fzGx zl6ACmNxNR!<^u{9S4E_IjIm!YlZEq8O`YC8`D*ET8NdM7ekHMCx%@{ZU%yj*|Ipbl z#YG5SMg!hqIH|*b=-BGS@FequfFqJHD%iJ^MN`Us@OGFAdBr>YD?!3N90qQxA6MeO zH6YMdAG5#uhwfXv`RT&)$W14^tCa2>N@y1)yH|Lqs{DTUR4Eb6%Ixn{$U^?d^*p2s zsV~<#iHPdbv+W6R9Yb3|3|AGv8FgdS!s51&!-YNm4c>0eTcn0$e~CS2=m@S^CLXJS z(vqq#`s#ibP+4ALi<95ZQT6Z~9e;<~uQEvN+fOwiw2xLyi}fF1S;A^m2S~w{wjZK4 z2(lIz8tP^|b!zcri5sQ~3C78(4HD_$({Puc7had}_T`UucP7_zdkSk9J`_{J3Ay^| z6Fcgx1c|M!lCDtivC`hV>x+(868T7T}f6S@IU5yti*R+Ao8(39BWu&qMSZ8++!Y6uz z&}G2w^q*J<=hb&y%sHm>@6Um=S5uWj7sRdSwB>a$@-H?MF335gUH7zph&2v8qhnKO zQJfFtn+{CKv0FKWwV(z70l!ZnGP_Nzci!?nPxrm>7mQ!^&7@~@yYmC_b{6qC^o6uz zNcu$4p7vwa=VvKGAfNt^zXY4}zu)xP`3U1%=fD?&%Oc!Ysj#d?*aJud_}{$<=7?z+ zyTj<$wy_5-?cK4q0N00;KnqH!YyYE`L_3i!SM54aQ%6rD*so~Qx3 zt#8j{Iwn!S`J)0@WWZ#RIAIr=x^R%bgVJ#BUG#fiCT_uo%xm}w%xwpD*>cRD&6OTi z1CaV)BQA+Nxt{HGC(%j1;1M)n10Vu~rh-{WZIg1Tj~mHQ&sR4wM_ z?<_K+I};6uSi7l(4@zsA(*Tcp_5wAZGPzfMx?vE!+~=1#RxsDU-EYW^R-?v9s>8zg zuzOc)inu5IGi*#P&LyQd48>H2>s))-XAKVO97SC6vP+~@_^wK@&$fyytblB=lMkC* zaoM&=u{!p#kha|3{d4N|VA8&=ao5tV2pPAc-IXzqucVkXnC~>3z7N`MyBYHVLu}3- z$yNWv`vRlv`6+4Y_+2U&3G>%}uz8QOjdt8xxuhbebu8L&GOx_OigimhI=~3-=~t+v zGTDai(`zUqV|k+kB9zTaV)%`qzn|_(oLNr_7bI!qgd*FLTn?uPFaM#20^SuyX0_ME_LQo7;PqA6 zzT2s_v`r~~E{gH0{V?wj@VwjC{cFYxF`vQhIv+1n7 zWi!WgCl$`zv*FuyD*JP}v!YGLb-S3sEKq)+D%n3HOvw$rGoA_|)Df4^?aOxSKNi_Y zC-FzdWt(jrdc_m!3SKvg0=ygrc#tzIIWHVD`)8giSIuE%j$7U|azxmA--$H|5K7P-$@Kv)TkZ<&F*Q*Vomh1kzAcj}5%L5$WduQg@ejZWEbqtU4nZZgEr3NL4 z-ST1iM9p@Yp$&qn3xUsddQ=BuU%nsWJG9q-(%uqoxvg}@oKbk8Oq~5gH}&JVGa(c+ z8n`>{P6b4KH=6L@GO+5|0<}kbO34U7oj$ab-zbBMZhDV4=l5@3>yco#V`WY0H1D)W zmHi6S7STaJY7_03Fc~+?v&KGbT_M6f2Zzz3W=J(tE=3V8ZjqUd)v_g6<9=Z@;O5cN z42IyQ8!9xk7pc@FkYH11A}>WveLLe-Zdv-eyyEvTZumJbvf;p^-`-mJJ!Pw#pY`Eo zJw&D91L8Wt*Cs4W9HZCjGFd1i;cJGpIf0eU9 zx3f;`lH%4G;meuE3A4l;P1<}dGFUU4xHQ+$Qy`g?v|3mHiLBqvBQ^Hrt*m}IH1y@D zlTeo2X|u;de^N2vMrk*F2KD{fgH@9aa*VO=Ee4)b@O20B4Jq9dXzhOg?Ut~4?8vPT z@gaKU2=^h~bKc)#>7(U@$}0r1cCR#&XK+g7su}V_(#tFc&bhVKHH*Zz#-JVHw7^1{ zLp{ibDz!^Wapy9a3WL%j7gy-m|2oa3ndl!+M({i(&84S2)mE?9*^{N~cW1I!&Jdq#~5#{l&ni z^c&GB%V##XGMAwZ@qQJ}`C%R}?MyqdO6n|<#1A#fPyf%7(rLJZg%9x9uACK#&lNlS%n8Mk z@uT2US^HE)*IVhuBalv2T_!?J2nShiwFsoR8E!fO&bnnQ6L@pYX7uYyP5`7WO@A@S znbMNy!$~jIZB+E5TyG+_AyH$md@OK1FSvC#bPJe14XB|C6^~|-w3e0DdzN_I+LV}oBXzv`%d&Jc1gSVr!*W4}Clb{;EIbihY#B4wKTDvQ_ zuaOv!`2I^Nhgdytr!3Yvox!&m9Fk-cXbLWnO@6$&bFOa2nPffM-2vhd^D{y-XhNS{ zB5~66u^+Od_L*B$zdO!Q6Yi=Q4@Z3Y-BsK8qhv zNnm17V`L|qWs2uXiGgUMhRkGPY+>z5hgZBN>*R$i9(;GBfyXPxKQ!OHo5u_RICg5q z=kiJfuQz(Q>o&h_sf)fn3!U0k${hA%Px4SKO*HT7c2v0#g1*_pzeQTP<#TuVjiJR9 z;oEDiGmlpC>r$JI;yuM73w$C(-B@)G+-dC1l`wE5Dyr`rho9u$m89|`$#LOMJZchU zWtnMfTSf_SeX}JL7bO&1zPTsm%2?7P9S^Y0H-voPI9yN8ldkTF3u-H6q?<|=kr;oSj^t%sD_7K zeBbXCuKn01?TVpp4&SeLZAs!8wyOK;#waT}LyW@tud^c&k@*6>3-Br=kKaY$=&sJS z-l~z)trRVqDLJZr4hd|!jBj7Y%0h=9PT@&GJs1v(LT}7t_t3{o8d^^%GfwTS7nWWe zg9#ip8*0uewP>E*9ny9$5w#iZGYZ%FWqZG<6Wu zP)w-5K(1P3W7CpLr|ZCu30<#BCrs=S`h0EWR?2}1QF6E7s%|UkR@Ssm_NN#9{hQzU zt{P{&R+AMJbWfCD-oK{4*6s^%q}BrdO#QzGSCpPCNM*WmuBulF)qiqXjFm$6U1FAf z7-BW=54?`{TqPkEeo()YnG`u|Y}BcDrkpIa2joi%9ZxCxlE~(IYOsS*I2A)Sj;RihK=b%mw9{u2QhEjv>gIEncm-T z)}+ziBZH`8y~hcZE5&W?!F)@%sCR4cF_8zIo;kOs_RlI5QIewKQ&pz@Q)+B%8=rmL zwBH?F%Or?tN3lLaUrzFSy2Z1&jb;;Lf|3UJxY83>*9dkk`JfraN0EMw*7Iw*Tv zE4DN=$W4jcHu#8IyR&~Ve?HdkC%Ss^X1Va%#gm_2VKPJ*%kMTx(k`6+qn*nvHQxjE z3(WV!;o}`oLu|dv%t!3Yl)56{oq}B8dL6p6XiMaPJiu$ z&%_t_H6dnW;GO8=5^6nB(^YTamSN-fQ<@^ns6p;sF5F=u6vpu1*5rW9gUi9o8rFK` zj7;R4pc3~G)8iEMoMtp)b1Ds)j=7uBQ#*CLLvnQfsbozN?yGqpDaJB;RgwHl-CydO zeUZ4dv^-LDIFD%d%FVnPMZ?GBV0jGPKr&gmU3mu&N66fE4jCZ7a^owKn(}!Y!x8nZVv`v=qcy8W=Omu_$DPn zTeo#w#)F_%S67w&_CKZ8tClAk<+%y&rB;j20+l8L|ImFQ9ZQIza^Aq|U5WQBnN3`s zK7OB!mJC?$X*k+B7_C^~W18Qp54d@*O_FAri&PRMxUY z_cK9$zE`GOcL_IzFmh)#t;MUpsd|-Qm>aFyS?u<-*Gj%nw}diH5ZN9f+NwdK+HXtm zDqg}~j$IfyTxM3DJ!(O22C=fV*4N=ti$ri^`=@s-#rsb_ZvHJS<{V(}Cyr8l9JuW%`g>WKp7ld>MA>1!K3F6bto923d9y(#aT zopIrQIB#f>ZEQCU=t^kS*KX=bA!q<}t5YqcZlr}I!HR8J!sgtrjyh%DiH`C?AGWxHd2L3|udjeGmPf@FO7S^L@;$svBxQ_uEpJKsCh6)Oh^jG)V^3F7 ziU%n<^{!b)I8dJJ$ec0C3_*)2x2inb5FN;Q)oQK3ux_^rgirEUw0~=O@85ovI=IB@ zFuqq2Ac46(J3^ES-0j?zD5V`(SY5H^bB@vIVhfCau5j&`G+YQc;1DA;utSX|!KI2a zNy7Tu?nW5(05PY}W$8$6j8}5R^vv+m6&no^FpJS6vwW#{yD821GWOqZDRz3DzG$vE zl&Iq6+2S8MiTbf98`ru;&6j5Ejv8LGFz4En?};~N|9_r5(k zePdOjQAy7x6cp7vX7ekAT$5OVbeTwW=63}dmFyyRPiHD2V1*8|&f$If(Y&hnB+jts*Lt6qzA-~G`7#grM z$1T?lbHs@LIl>ttQ4RYi^iH4ia^<^8$zBXG<;>d9HycB=NZhP(S{L2~qlk~AYFzy~ zk(OSh%-zACvl>wLMvg;%8+h!SxCZBT?K9OsN#6@Mp{jT`Z$XPus`>eMO>8o8 znzqx(498snj!*E8;m2c_?YuA41@V)=N&LMNwSmb@cb$$8^rh$T*G&`j2LxE3Sh(G? zp82ARd;H%pOBnL~Or7R6^4#@Uw3?!<<(ddrYCqa^z>WJ-%>sK@?Y3`89wO(>w_oDk za|IO>Y*{Tb!wU1tLN9IDy#@d@q?u2|dHt~-P#@70^6QL&u(W+yOqt$MTaSruOCTgA zA3UwqMY#Klh|An!Pq3cq&1@hGEM#!Wfl6}$$gnqOYAf?WM|tP58Zr9az$9I>_(WGn z?p2r4#_*7v(WK9NK4XZ_ui_01Bu)8V3V?2&UPx>Dqd|yu8m=fkoXd1&_SAjo033S} zPGF_q1mhw6GfU6w-+jyWd{qxe$~3 z#EPp5*UhgLT~~jpTJ=kGDN`OL3iRn+M);%bzwK6^*p`{DdGh;Zu7`a}l<1rMa+qYX zXpCHyk`b+J_UoBFu-(7B?i%C{^I%y`C)-*LN4{{5?)vm1>aBeB$~{)W(%;@t%%rG! zQ9Q1*ji*jsoAF!Xh8aRgE#Ur=e7Ym&_~=f!6wN3fg*OuSPECJXiQw{|_P0Q1!9xR5 z&n4=n7u(L$eF`3vh6+Dm0YO(fEIi*4Gmm=?JgsJ-4o(6swQLVQuY-JJ1=n7guTd~G z|7bSoL6Q^7w21L@p0rT!B8@!eIcMu?n$lv%V<&B(B*f{xcE<`@p-z+#d#XBKXwffD z#iDKX0#Es!VI6$_q1J^w7f#a!SCy?G@52O71mqF zXm(OMfH&7#52j33=)z{#%mIzlJifaB12EsXPyNj<|i z6bVFN4(bC+hlbzaAtQSVcuDRti>^5;4hQp{N*mrwEMpiRXvGo-Q1jAlJZ$7j+HxM= zSbnhV={SOcN72EW%bGQ|oFcG1a^*tj5<`9HR>&LiXfrFQnPYXf($ul0ep0GpHL#k5 zjF!xvI~VDg1+B$>{*byc8@yhyZq(e0#T@LTZBDvgo^W*A7$+165uCDc;wFwddAabc z)kD6*NqMYzAksi@nC69<%D2(B%3vjxcaLzX#3rf4%8wju_pOC#XV-C00AF>iLPddK zrYy%_mLUBrS<4fJ6QrQ@RaG!=GRm6U$}eSuBPlvF%aL}Y#MC!S3rj5)bbfw?K1(Ya zD_|u0<^!F{^H+4=xi_DPaGaPF@faql`6LQlo4pkelrv09)q9sZ1IxZRQ5`N`H7Z7^ z4ug!+^H;?*tUY$;XjM9AguK<3n)wbraU9>(T0dF4$Ei=aD{ml#h<#O;y7-vIiKYb^ zxcGQCWGd)n)$dzZq(1x^9RD!sA*Ms6C+1#oiC0Xw5kifFmVGzNcM&rz*X7WD=D*o# zw}LW5ijAW77LJf>#CJ z%@`R6-*!;@l%X;*)9jOd$wTdf@ld&79Zxj>(OX_hy2nLokH-crZ-q)J^cLKm^4Ou- zlWVzLcyv?zHI{8HpQ6L_oip{71@)(17fcW4zljV@Ine4#W~13!8{1S1nVh&|An8uV zl+`ZMFD=%rrXfHDC(yI{(*XW1=}`vH*6oTmc$dlz_er=uA4;bpU*w&%8i$x#MtHh7c;A@HcD-89TbO34M7@?(pPB!nsGNv64; zVQ2{1J7IG8d^E~!iiC{9ayWna4LWn2bv;WzPIaT%D`WPL*V8*Wj_V zbm-SVbUCtK1tp_YAziWafgI)47CrvII)fp{cHn0U3CV&S@9YEsHR2zE8A^L#pos&h zuzA99U@+C!c`FI(Jbr}^CP>Tg`Ja48AxW_9rt?=WJ|kC)@a=5S!sV2>-R(>tUor(_ zpeaidF7olaYSlT7%UOy(5~^>Kgr9@EIQvtX3TtA{hp%-vPWHUvZBP{WP%>ACFxWTH z#VEp6T9trYH3p4TSAsChxq6EnGC^*-0Ub+dQ&RiS*lIMOJ$rf#Anr^V%L>)3)) z#n3A=Grrv0?b7xmjWUAYi#d`qo9YQ{t{)HhefV2SX+cPuThO%-II*)U=^Xgnsen7E zmv>j2n*Dv+B2S2Ma~cJ@q4&6SAVW-BLz7!Le`>4f3}ldOnQ5Fw%#tGCv69bweF|qR zV^nfo(r+|SX>cqH(RKJU{r|PqdF0q=MVY%$^R5VHvUZeOVQiS`*G)VAsl)Rq^Z2co zlOB$>ElKaM{)I(Z!o8IRqy2Hw66ZS8{TXasTMvzK^4A~aDBG0lK9FygPc7z)#9eKlXasQx@}#eFkE8Akvn7BO zqQ=riI4koUIg4`wYsOBL#I|_QF|i1@kg0ONy9L?B7PgxqNfVWydc7PS{>f67uleze zrAlWmNIu55?79d?rUZu;eRLO5&QwsBC924rEv{TR-F37GWGb%Lq|$9A8`uIowtYf1 zRPvf-JFcY=&!2^vP=?OcDJi|pMq0slS4*;s-0OdCJSt%QFF7Co`0)~}JDNZCDB*p{ zT-&$ih$7@XL|f`|A~;y!+0x3I4^_+7C<21fF{kia#QBxCR&sneO&zC+g%027@<-C4+^8;Uc zDl=0YdOZIgfENCxh_b)?lBZwcg^`Kv<^X-R-m=6r%2K=ekUSG4=^UaGG$17NAK@Mc z!IN!J+>y@|H?z*X_A^CsKUt{n;2!^wD{f)c@B3P<>=8y2s`8A{*mXf_=Af{bHZZ7~ zj>q!SM7#DHhMvbMH#Q4+8&Y0PM$m;B*0ffUdFQY>)}VraCY3mnH;-A=xC?@+v(7<_ zJ7EJfHl@bvw4sZWt{XQ`AaT-2;yv5=fznH7j_-K}`nO^SSHWpli}xkX1dK6u z$vlbcLNVy0K@F2tKB1TV)wx;2Q^h;te(O$+x<)~ZSrv+USf<^&cbm1ni*ERo5LP!cWOZ?>?C`F+i$*^7s`w)HUe+wbZU+*%1UbUPF6I!P4hKogCb=bh1N{KyLOFPadwj`WS*E7m z*~wR9Bv?$lpP7~tCZt9F2uG z-_gHj=V5d@=;DxRER)Y;Ap6>)gD=*L<9OaRYmCg>6Q3x_fV^bgU|#xw;dyVKwjGpy$*2N676f<)O(gLxiIlAJ?DLE zQ_kwoLjw*?HR@1KF;$FWNf^>oj9Wd|DY}u<+g})iE$rR;7{RsTg8Sd*g5-FI^E47fiu7SU}RdpiMHMYlv3pLb66K_Yqw7V7h zLfZtz19fvR(9G2C9;4lA67v8m`8>x6E{uq+ICpo^`%P$S63&c=rvbFu7-;(R%L{&j zfaBLN_tD<>O3wTCGzL$*R&wal_4)p_DS<~t$Tbh+Cv4!yO@ilI2DJ^bVY9g}p2>`Q zW0HgIl#DvbI^2$*v->foqw| z$w$Zxm^bNr#qoagy1QdWf3tr8^P}nA&+2w;vbgc?WgkVk&u&#lNC=A=2WnW#R!J17 z=UQ30Rc6KS2tkDgj-+M4~O?f%I zAv0TAS2ez&*Jh2qu-W4msNMfi;#N~F_sGN1=iyf=HI>}cgPu0#RR6{~@z|=apZV9; z4&dOEyh9toe+TChJSon1M!P_US-atRD`U843^=l<$+Wb4OcIje$_MYH|3lV!N3+?- zf8X6@SM5z(d)FRKxvMuSYK6q6YDaAjc7u|M`>bE7dO*ua(+wfDrSmNs24wHPTZ=X8D z&}B9Sb1qM8q_vDO8SnjNRG(53y>T{IY*F14vcB*{h=~4}zn?hw~ES^5pPF)O- z$8^mtpUa%TF+ZVz1UJtSkl%02C{>)lj>29|jr*igp#<&Q9i~tYb3drZy16m3N}ZnA zF3DOM_P)^jR)d#yos(6!3Q;Y58>GDBWSmJrRP_+xNwk>M=#i}O7sJVZoS6P(pT~#+ zcZNlhV?=gR{?SI&VVD=!uVlFqx06Tb;8q7|oTOqXMs}^sFW~iJQ@7iR+}|^w<{BOe zS~uPMG!wWeMf&$S$)*Cf(c?IiUdxz!=S#$2H!RKzu=8DlTL1dPkLkt78FMy1@(si% z%sf4ML73ht8Rr+CQ${s+22r3%lGxPZwX=lm*EX*H-FGy3U~YJoyi-Hy;&4}ls@+5D zrl)hJQ_HQth402<=HDE9i7qp|D>I9(P9?JTk~xTCGO%aI)Lc$Kr_g-O8dz;g(^nIi zrL6>FlG%hcqO`BQt1LIcuzNf)4z<-3E#<$cUiMju_a5H}6F9HXQuPVO<(WMt9)3x5 zwsH704Ob6+7?$teF}{~*=6+!^y*7(;*Ni*B_mcCF9cdO6K?t06S!Q$z=}}7s(G4v_WpM6di)RO}u~k9)+E3 z#xKZS3=ds3`C&u!;NB0CyBB)0;r{^kBx-y+cewrP!@gG1`p ze0W%tW#vuR1%pN0mh3YlfmgHa=#$r>^>IJ4XBAT6gG-Kn>GHl?MN*C4Fs&rUlhmes z^w6WJ`G1LF-)jk7-TsJ;{Iu89YFPd2eW)Go9syKb#~-RYHCduw@6*~)nJ*j=Nx7d> z=SE*PhyMIPOgn`=`{xf;M#Abia*>GG49}oEd;}Wa-zS+7J#9Hg`A1ii1HJCr)*+8E zC#$p`K1#r+zbB=Bqkd;5UJPvZ(4T8f7%&?8cC)OrtMa6c)qK=b|xXL ztms2A@nbuwPA76)*o_C~jy-&CA0=hkEBs`yU*9j`6!b8r{jeqiV)l;=DKh5RxtKT$ z`Te@*|sxmaIgE-ClndUfJ%5; zvKu@`h}ArB4_x=H7O%~$q9m-x-okW9<38Fi&6bbu+pT@R#ucAE*7CP z@hj3*t_`Xoz5YY>mP}7@=u2L>z-yw3&FkLi;Lt+*i%qW0_^VsUV z=IzN~uH6&}!w{gF6csz7v zA=P`VHWeARle&e0lswb1Zu}obA^v|W3iX%&TTy5zH2H1Y31<>()KFP^CmJXoq1t?exa{sabdBy@P0JchnxTC zP%-?KUwqBa!H-6p;u*>nqS2O=j|3NSVN$I{T;}ES7Bi2Rwlva^z|{W`)Id;hdNHLw zvfbzWTf=L?soh0^KU6;gD{Lqu;N0)j@Q~dFWOD?i>eGh`dZtp_ScRepfYP<2-mcL& zZffj|r;ztU_4QRxGi!Y+ zysSKn5g2lO)`oOWvf6dd_mQ3xwl>jU%uyOf4SWHXFX~{u#T?Tp>4jW3(P>boQf0~t z+<}msKygavBO0n>G*#geZ>h0)2=mq$h6 zX>I+=3-3d>h0ys!#i6iz2d0szMhN#wq#U>(>rQ)^^cg81S1}B9x%ZlTY9pV$G60v` z4^g@}rP6N7dH!*)4FpLnTlmoRa`}t=GpG44k>&lGxx7waUnAFoUQI zx*1{9srksb{|^;Q)yu$&Axz0zpUS;8j~Dq|#Ub!~+BFi%?u*}uNgrzMRLC2IBQtp~>`jQs@lZp*3V{vVkVsE(5g$ZM8DsYXYU&$(KSS`wlIwP;{vWDBTfadz4?fdkdEE*= zlfHP$7004hl<14*b1#1%$8Kr?eM7apfp8#Ptrpmgn@YJi82pp@_z%_A)>U!$T3&ZU_Zy`OgWW@R_Z51F*nHZCNsL!jqvtB;rQEa(!1MFA3VjgU z1nP8SAgRsp_@=Ix#^#Q4_I}9`mI5>)(UWY zWs(3ZxIz3apc%=QX9=>5lcWWLDxy;{G{Og+XE(VKLBq4J+>Uc7*&St4X}-u+&ZQ3_ z-$VE~oCW@*qwU*zu!$CqkrYcqG(z5uB%i7~&w49wi-PEGx`+Gj?Q~DW<=+QAFe{Sz zY5q#TG#wgx*fh0iZBK>(x^Me+&58Ftr`#KU{X>)Ol&Tmw=#)YNn+g&Ew{JH!Q%Xm^ z{of&<>J!tzA!Weco8U~=`*U#A{M8~X``99F7Z5CxNVxuxAN6$t1at3r=lLt zPS+{?-I(0%yx{U4_XvY+enfItMi0~_9+@at}cdbifyZlCCwJ=gkt7%R9Nd{dVDYpp^> zfp4JrnvXSnrZz-q6P1DITh?!z@h#7-+q3&;$zF(2j9T0};O+rtCfs4Jdfokam0+Q@ zAV_9!?vc@2+l+xtz>3z*=OEeW2n+qnaQ>h9hJ&&BhAG1;yLBUOpJ-f<82j_~FHh^Z zD=jUMC(T4=-|ibGI0kkLzNtihsAZKtP@xFh!f6yz04U-vuBV+Y%#;i`^{+5sevj5Q zf_aGlEE*T#2hEy!sH__?2cV^dSKDct>lfW>kH`1kQL^|^1=J@+<%_%scGB2m{3?rd z+=y~R=EU8}lR*oSLJjYaO+-VVyx7-spaGindISLGfvx{n%{!84;`jA9q+|SnzoC&r zRke0x+N^9M^-VQ*q=&iRBnU*Q*^v9>@D>SRC9n!51w_D%l-74r*6pQG5XB^+n}FUZ zapw@}b0ccMez@otc3n3HjH zr|G8bocoIV!qZ|G;gA%Cr__H9-s>8FFifdbj4#Yu^KIFY-A!ZF%`;GKbEU?mF%aGxpCG zszFR&C9Jm+efoU9U&m#}vUprFmhXh$>hRHc+Atqb1#{bHX=|&gYx8OLAbx_FUgd-^ z432(ih>_$xS~~3cn#N1pk;54`Ov!`t0g8zsh=w#sY60^SZWXye4bVE*J%p+EHuOQy!_APInV{R`CEkUC@M5DYp@aY`~zZ4?$3M#@R{WRY3vLy_7fnvFDF z&&3um9IU`3No``0s3}CqiLL9`XjIt9c0{9X*fW4&6iq<8I&Pogne$xd5RHZDS#AmM zg2RvCNwHIVQYZF1+{iJH6l&ZjopYVf_Q8??ZbghaYrO_0;UxCU12W7xbG-M+x&ig8 z?IVwxw+I%u6XqI3G(~ZlR~)-V!d)tMyYG-i;8sMX2ePQEEW8gJG-8tWZiI}RP3vPm z$g4Sp5n+?T03Tsy8w16Tr==Xi33GEKA+0^WU=}~6ZS^&hLuA0SC$BY#{dh6m{96wq zr#*(fVZaH$-1VwNrHzqGJsY9IR2OwE1{~ymp0sdHmKO~kvp>Ti*nrZiYy=8+MHa7H zmHYXjxd%)Vii8|a115^QXFGK8BRyRPmR&t;S$BD_K)M~%wz4W8?&!YT6k(!z=};C zEt!OxLPwQOJW8jGbsO9U#9RyVF1+e(lrCpig561>>#A5WLi8v2lfo~%xK3SvtNTl4 z|4fU#2><#jf@o!1E91H@!4SD{Xg9m(# z@AiZ57@y`Ci`Ok#_}nINzUMOH#uB%pxsl;Q!=IL=kL8A0D00L1b9kdXw|5XWIbW^c zC><@So@B)h9yG0BFyg%l%q@Cf(ESe2r)w2=>RW9_`*20l_$r5)x8y5+vh?7PqqtD~ zVO6l0(}^6;?UKz5ci0!kag00L=f=4M)UTQyHQ!=9U%ND%C%^k8E|((hy*_h-4&Lb! zVCgu@^tgFi;KV2MXcoox*2$sh-wvl?#e_%j%*3OgYa;gS57c%}&|^(@rr@i7OQ#3* zoBhvu)5?p>drNpsOE*9r&go9)D%A159~X=nvnLZptZ(P;^r+*ucw%*qbtjRU-fox; zntr=!!=sVoq5%PccWX@jBl}VYvlxH@Vcp(RnTZZo^sK$HdkX$!thQ0)1<;;0SmC?al-9Ys;HEM5VoUIQijvJRmc zlaa|U^{klfxb67C6Vn@ZmbV}v1-cK9ZwQWczcd8Or@K;c8XT?G={80RhVE0=)iNA| zQ=-|14@=Y9=2va1<#vnswHNVCtLJ7Xi(!Jxj#08XC)UAd1sh$fK_722g`E#NWL&BI znj8MYwjK(H%#HjacT)k@@m0vHlC|C6VD{3IsgX<4hVg|XKY6p8*Y(_N?;&5%sS}a z7K#qWC9%pP!4~XTu04pcsU%opkzPG4Kn}SD8((m&sGuZf=yiuG)bx%z25u`aXnY33@R;>GlH=t@g;CrR<;v@x`f$Z&y>RfM)e584>axdC5ppJ6Yyp<} zrL8G1h-blb?#|+32#tY_eZ`Va7k-GC@+NZRMoge%UDZ!;&e2N*A1)w?{cFv~IA5&m z4EhPv-aT2U8d5SA*u-INr-!@%`ec}|DsR&l$NKL^kJO-<8zpdjPrE5_>O@g0*-OdqwN zh=qbL-F2&Pjo$U1Yw|-3u;1A zUeIP9%1BRP%;mtc@b;9M-r(0>P;FL|yg4e>IelkYy zCCfY>rF&b+eV|FQk>Qa;57SMOB3^4hjL2(FS|m1`w{?80_MT?puzBbOSr~(O%F)3< zLwVhGaQ@;0_t@C^17}4;z?^mB=<+V2U|N){LG+l{4-KRHc?&ObmZuq z#b>A0o@L*xv}6?IT>`B~$5uelWOi6Pev8?!`p%}+DIyCn{ysnjso$^myzVQXh=im6 zWjnou{_~?tmK;j}Pg-v2R?@&&mr5fr^@=C%kr;Nt_KtRwhGt4>4|`*WOJU8_9_F)2 zigvWIBv*<#RjZaf|M$3y_q|9usMP#Kk&%2tP=X^3=6=S6zKEwCVsX~(csIy%+8_Q4 zI-Qob5|Ep}Kd-X9yx6=1|Gkb_z~Y$RktcjSE5_FujTWyNFwyljr|7~5;vV}|7z^{* z)xJe$J7;VNf5&W8)PNEBgMJX>h)olWw2LL&q_^Kl{wy2*%XwXwuc;$_gVT9Gv^bO` zz)o3b9AU5QkvTzroN=b6o14D+(?6g?hI%Qg!NO^7V-#7cL2jRyI08o8zN9CGmi=Rm zmr@raY$p2QM~!9<>?W6g@k4iL0P=-83Je+3wvYMVd_4RvnSE5F9>YcS7FlaC6Yj?g zmushQyzQMH1SXU>p+}hGbMIy19EBG*`=%3>rmlAMb^)wwRl)r&-`DD-(=_n8))?(X z>k#`}jn4!Gz{}_>A5LmMQ4SW5g(f-vsLzuPxj_I*i(T((qG0`M-(h5zEa`*-Yoop0 zjrc_BVw+a}G1vG|iiw_7|FpHEZpJl2xu!Pz8`U4G=Tp@|^pjm5eIlz6R#Gk$ch19WODsKK5B7PEvi?m7&kJr2>S`|wdHsG)#+S$4?c2-s zeDZ?jnMAvRja9CmzkPR3ixU&1)XT_xL&LYX9O*fx1f{8d(ql<=Q~#6JsAEBu}Dt zvl7BvYi+UM`+(M4L|t^}1rSzX_yBfxS~~qQi2t_1N6|Puc5N=w`e?j|{)T`1AP=nW z^w5%+(%E33Hyt?Y^t5(*%`@@#@|3;IR{=4820p=q8vOxCeb@bxJaE__s#obAR>xKY zhFT#-m#b^G7)OQk)=2z}?J(4&ZN^c;Lub)t-v;T5FA7rYul6M;Rs0xlWjZD!hRBcq zrlUfYSz7HhaV|hUMcZka*R@Z{twSUyEukut^Y#N=&gj(HkPi<8CDgaBWqT>j5}^h& zN^|%RCG6tEavoxwKW7To5Z4ejvlMD7g9An1FuVGMaCroJq@^<%l;?z}6x0ihc|mtg z(|jU>97smtT-H6oVdRvuRaNX&_@KU-@8nqN@P%{Q0LFK9(w6n(;2pv*zO?gG4w-iG z@KgGgI{W<%kg}I^WxHJ&*{+xALNKm&-n`Y3Zl{Zb4$N1eB7m^$?FSlX`@>$BbHXQq zEc*d}CjMWIfuS=%cM70W1Z}(B=)q1-!FbHI8KGSsEVIuRl-Ue<247Fszn3zg%WXvW z;S0~^z#3sbnw9;{04NbIs>)yd z>BpTek$0SBGTDgNi0uQ<>_dzc(O43vc0Px)hk22t)h))=`zDcprjr{W<&It zp3EC$DE3l-e#)L$R%*GK=WJBvh2X!zU@kEDFR=M5unD`K3)OApg+D}JhGjye&W_~> zI20m`n2vPf>erPwNicWf(y@M!U?F{vy`+eygsZ}XEhB^DZ4{NCAgl6EfE?j)Q1f1E z?m~Yt$;`H0m9GDpY#V%pKAJD#8S!|G=`IUZwa|O{l#wIADzC(aa?D6=(4)_Sjhxe$pp_aC{eeIEzo6LLkgi~T$Pd2noI-Cz07_B_VS zqeO=J5;usJp-c;9H^%1j@69OXP>!FisRoRaw`ROuEM8dF&bmGr<0^PyI7Y*ZNIkk7 zNV55o)k!n!!`TrA(2$Se``a?a;b8>Ra$2#?bN5{XeO8INflC*HgxK%3m55qaKztk43 zJI7a!gZKQ*rmTxzG1laxIda^_$6#LYhXTh`|$WT zIJxO2pg|j+%jv>Zp5%kA+9bl(Q?<53eA{e zvC||ds0r{EGXy7V6X0O6bl22dvXOy6CpdZ&| zlHhK*jxJbA@;8Kk>TAt(PTq>DP<;C4x-Oft|f`z?XYOhbDEcV0@ z(LQJ1hQdp3pN(w0Ju`+p#R>y()bWT0rBlMpWz7CLh}CH`ZPV7{-$g)|FMNdhY6Sf| zLr(g^O?`)W!UZ5-h*mmYV1qB*vY-a+L)YkQk|`9GozPiI7hI^;fMVxD_Zu29U(pK> zTtJN()$Ic<4pxsRw-+tFP|EAW%hdr3o+pu2nIja+_MC(9@j+;ho@~y;?Wxg|lV+cO ziNEyZFx7%>3#XTmeCs!+Yz3>{T@Jw*GC^v2Q7^sq2X-S6%>4P0wRotTX6IA6N-E%C;lUbgJ9TTeTw zPnj1c{7a-u)CV$UcsB`MkL}ehxSwuaVtUcEQLw??#NVUbP&R{94XTz|l^vTq^PXAG zZ3-<2vN$8I-K4s4jppv1$2XWiJYI`nx^d^}-Cumc#gh~#njz)>D9uk)I>`16oXH=Q4Uy)(j>YgZY#)N5`}wE`67Q;JyH z+Y#5p#5)vmnp{cXfh`Fd za@1^gXA3-R`U>i01emjE+jhG8dH!&%t8gtddfHCVQ6pFJUEj>R_{h#GiD`_4k%DPz z*}B^Cvi+`2ST%b0r06tYBYC0z6hqM3Yg|j-$GBrLq*a?ZyxesXj}$Wc*tR3;@6fBq zz5ky3M4!wCrh#YdZeJHE$qnW_Q<*)Y*dBdi=jEbX6$hO7{IUiVl<%cEe=94r;kBk; z!B|^&Xgb7r0U(l;kVQLc+&+-fG3>x|`4TsNt0icY`yJ||8;Jx)VLKku4d)9f^qD1h zzV927FrZF%(EQfg@gsd0~886>emwTDfEt_6;hL+L zoWw-`L;=q**#L#W7z$`(2VOWAic2EJ7-RrO_dsCDUWGnzG*2Yo`o3gOfd7S7Fp&9{1Fn(StPWlFG2YDHrC5U_l*$jHECEs3R6rFK-BGTW`{5o&Rqi)%) z(ZYj+Y5GX3Xf>A4RD2Hq49pipYpUO}3CB#bb}~HG!z}` zk6)NYgvW%l_;%O!xmf}ncsAK`OUCof69H9<$fxF=fK2K=f`a`IM{&H+`zT8(qua+@ zS5)5sk8qS~N{@^Mxu}LmLfF@ja<%CV<+P`~l-lXtsjqQ)RpKL*-czXzaK1R9pX~Pg zvO(gjXELVESR=HCbEH#35jB*{-7NA|q{Kv|5SK?W%LWAUot!_SkXtR%Yx>3c_bY0N zFSs={#qZw&W&^n?cf#NlXkX+@wO;5jG9huJX!i79qP>*=C;8}h9Sr;cEALHlRJn^`AetE$LTEGQ26X~7bX-Z+_?X?b> z47}LhPhD9x@1E>y{s7n+BEMb}*Sj|&|9xSY(p+8Q5)RqmQsonovRAO3agj{5o%2gf z2U!$Q>~)jZ`(p6poP;WUB>qvUF?OEA?#*c+5@wdCV%$s3b@FMHNt<;*`dO%$_5BX_q8{PN$1r7{87>yMuNGoBl^9~Wc^a2qu4`iEYw8c7 zbb!;()Cfi+2sVt@amOUZweeUv*%wWue1Hz-XPXi;&BB%$LGIMAi^w+jA*UjQF)6+r z`?<4mM<@Jrt~te{cJWL0Xg>w{8KztV&^VI4^OeXhWE|Voo%97KF_<#b_rn1aR8Kn- zk1;YzqUSdLOA?$eHJpDR1GtYe;@Uy#45P&RyKI(Qk6OjGrLz5@n#ZPb{vM(WiO55z z5rpGm)OE^Vp;yX*6{_OlgV%aLz!>gNSxQo@k(e&t+F<#j#MytKENF_?X)aPfi#ah| z3MY3P;pDrd$e^Rl_v$q+F}+}rfxY`XTGhS#bxzQRPa|Y(GLeEg18UXB_uRwT?4^hfJ4?pz{o`P{VsxPbMl2&x^FXv=z{b97SRK^Roq%v>Vuj$UKciwDEU<&j7O_Gpgur_eNB)S))&Wk6 zI|lN4B5KFRLr1NtwOX*(fo@xY)ZYL4c7($0*?Fx;(O7@dq`u*1v1z&se8k|@Kf>_3 z-%h?ayvfkDulda!L^(zRg_!+4VL)>s0kyYoOt%vjpcIH=|C&o^aV`8hQ=um7T-=J- zC{XSn$PM7@5#ctRt)TbB=yyBuJ`^pKj61*NuS}jqf_2RQzNTCLp6Uxte4{S)bvkMw zB|dbIW-3ymM}*EV;cjZ3X@qG~o|1v_k(OARSJU!ha9B_%StF$6hm7gHzxhy!fP1B+ zRqfUZW#*dh!%83U;~e9zzv1y^^>a7&vjI`rEX1ZKEZt%Qxq?Vymrm@EqT11M_{H`3 z2>aE)l1d9|`%N>p`@5`bIx9fw+r!&=-x-2zZ{Jr&d-}ZcMKA)rE~Zy1W@Vryp3t=9 zh)Xt7LD?k_F}jd&Hb5Z{^R#pyiKXNY`4mFU_F&4MZesG=)~N=ps{`LH8Dd|-Q=6kG zygY(fe=Z{8(k%-XG^jRYhD*?WQ3j^G;2W^Mryj8z6;IT#Gya`?C}os&!ZDpPpF0i( z%8-}5ZTZ`HkJthY$>+#WrKvW>W=rjxN3;bNcP>tsPMJc_W;_qn!&8MSB=sr8?(#N` z2QGoW+;&{P!^2M`_$cgm9R#W-7pkj#PkdM*!Hu@pb|T$1y+{qH0*b^>r>8Z1KB;pX zQ4U3IW`|pcyI-zdeeSp!L>L@=C3xpjku#+T7X7=*IqohCy-cV_rb!LljiYU}Z8R{B zEfVQXta*PE@lgxN#8^)986auhY4MKqofl(W-+^FsQ=>H0jD&n)3E1l*MW@^=JV>~U zGS_%&r?gG7$j{cWjK^8#XF{WJT~_44+0_Q`(fqcF<}- z>nBSd$`aNjzI01qVv;o7Iyg;Uywc+o%DgNAGFzPluTskUZ~T<1yO z(JdDJysoC{u5Z1KmMU#pow1VQH%(0i#T!1#4mKV)+8Te2*}A-2z;hzUT=lQ?fik12 zY1a3;-i))T1`N3PCEstqf6tOS7>5faa}~(JZ%2#1~AUseabTPYCS)Gr8`dZV@Sg`PEAfEQB3)L zMV_nI0AN(Z(%r?>I&^e6BvI3{|B+dkdePwzKlrcG&p(zW(~D@(KoHX1D4p#^V|wcr zKS$Fqx5LKOeZ>pS@G%4f;IBgXKcp1gsG#Kp{3ebbLMTm>JKc)os!H^__B3B$g5}I4 zi9Y_LYy5sP^*oD9`nZy0YGZhjL!bT4H39x1-w=vD)`bLsu!;=ht}>%D=M-gp)3*l< z{(1+ly@LW(igq@jB~4Rva^ez}x|ef}69hO(roDXXnM4Z?7xi$h>(~%}vDD|NtD;=h zUp(f8;u}`Mv+|}TkVcJ^^RH+FUVwQvNS5(A0oM%#=kuEk(g^|=ggqGHKH zM(iEEQBL`*y=}sCEZv8%0D>>4*Q|;jx<+#j%i(g(PAZdSUTRVMo)oE$8zngv7>Bf6 zq(xi2%iYlrXu$2)vaPFK)SISU_6%wn{p*kS%@-h~uY->#v71X4piy&QXr6V5sGUY* zY3q`Up+&!G;?r$YZJ!J+5t87k^HsT)k03Kti~CXs;hgQ-jSh=5<|7SndZ_|07(eC= zOi!)Q|SZPLSa)k!m@e%RaG7iD@k zv)1`({ceRpN?ECYS<_XNL=Gt=NV|ZlEZ(LiO8WIeiefBdXD}M1;jtj&2}&Abm7rf8 zA;8L!xylBAg4c?Bo%@1Tbh0Ru%&bKdyH3}4^-ez>I_Kid8*I08=o3Ig`zUMV*3}=X zD02J~H}XPqNiS)TD0^QrwKKpIx4kq=IrdW1+883P&W`+p!ExJBaEg) zV~Cy4m}}FjntS~&8VFO?+5^NwO4D;QSg(t(SA_1&RVSf=#Vk=k#sDCq*q(+IuqGIt zZEh`yUA+bK?0Nl6`bZ=*Mk$nER!ik^Y-xZO0|+p6wHwQ$J=L`>vb1N2c>Lq{Eq&~F z_q8JcN^bbUH*eFTOh-g(b?_;l4yVacY#Tb}zG)(U%LwmFWAL?$8 zSvrbO)9ej)?bDW0XNkVXgM>U_MyJ)vFOd+V1JLH)?wsZuajL=aY3g5Bnwi^SWW5cC zOZG)wuP3Lk2%0DsZRc-fIrll%r(3M_4_9xK;-9(SUCTK3k&_Wlm7jSb8&L0sP`HwO zklN?VVf;S9WA$dgrDT12LqSc&n?c;t-81-1g{glczV-RWsWHA9rRyMV5e0t~kD`Om z`|xj24*##s&zpoKM=3B4gZ2zD=9qNcXTSJ@`GzhsCF@|X<#g;>47a*!gj*Hud(OL& z;XaYi`I z5ZtzV{-&m27__#2fBO%yhENwI1n7O)Mevg;i38F+n*#42s`)JnjaRPGW70gK;M%20 ziYEVV(_eH-sY9Vvy8>K6usmlyq3!3pKNrNea z>%Z4bsEEqeR`t+t3j@Rv{H04r&8Xa>hd1(nZMS& zG84nH&EiPt=WT;i+wa_^Q!n0GPkfq|{X;dn%3n98NkH^l3y3*~96V%>86&dhgOdl^ zzGnwIqo?v8Mk-pi4rItlRnUR@p8J}@LNo+sOIaR#eGphaH)avPX}x?Nu6btIx!MgQ zFNY7WHp;#ELj^5}o+Yaiit-e#roO5OC=rlLaY0P#(1{;^E-KMbmn zuQ_o*0VVQxLUZ3`e7`0iDsKaH-XwP$_e6cT0w~9v;l!^too<^3Y+|VtF30(qFQOon z)|d3wctd4MrSKoB&zD^nf^QHFdI_@K-g1j|Ui3!o*}J%yw{pdVri`dfl_x!2be;Mg zE*P02JDak!{w^UQ;5$%#f~|fjzofx?6puaUC6Va%9!eTow->q@T@6Ap{y^HBMI7bW{&-2x; zE_T>}2Na`j-@%=?ytEH2*H-Hgy|1-^gg#f`0hfhZeM9G5dCr4T@5)Qg;~C^_u#6qd zl@A`X`S!5fG>;SiAnaFO#jaic=30W^fLirjAdkdx=PJ%<0&cT_d84S{ zf2h`17lPNeun6vLN)fMCYzCwECaiGAewMnumQdT8q%OVKcV_BsC*vJSc*$}rl?#=0 zu<^WJ#xLQXu0qR(RZ{%YRFbEoIV*<)NOC8&sOL3 z*MF%jTI(nL(r7bz)1=>Kt>fij&kuDKfh19d=!Xwr$;z(20VM0vGN}SoBJ- zl-fX)J&g5%$l@Z9?do6T(G@{ep0P%}729uXyX@^(sEq~hUyNzCenVehP5f>8)~;mf zj=xm%&pB*WlV`4<2w2W76DO2`tJ-ccU{4Apa>a}c??{+oLA`DMn{h@#poISvnXz%! z7wYccu%g`|Vh~U8f!W!MHnEUavF`cT4b$Ph)q79y|2+;&hptakJOEN z0W|R9VH(4?!7@7=nXkI@B`JvE@eTyE)?-JqRpM( zf*x8tbtP1_)jO_TJOsEIbb8IESq>4EuF)LliltM6Nhr|JW#z(8SG!dVzJzuJiZV_ir-CZOL#SRrUe=> zV3c_&GE->0%VoO~Wu20zW=^XY2p8+pNjk(v`ISboyW;X_(-h#MC?}^yKDOgZmYFJ{AAG->D4ObN`F? z3f zXxhpy54F^hwJ4QDMqvZCkFe9OYs5x{rLIJK2Y2+$7zGVsahjBk+(cintLqZmmVXw* z#W*+RN6MV!8!eQjo2B|)Sz}bi6bgYQ9#fmIbv_wkP|ss5s&p(^;|!4+n2W#+m|#7l6;;AeHG!K-I0!vTl+)B)q;2!_;Yf=KNfZmo9(^dIXxxOjN{EYID^L9w9B> z_rFlc=CbYmY~la)=La<39cY$8;{Cp`uL2Dgc@wgv5{xm z_zPixdxdt;BZ)8FGw~ixH=H9T7Ew82k}1);&hIADEsibNuVhI9H^=oN{Q<54rv5FP z+zt8Q%wgF8!>K~9*{_mSmIJ<-HKiDFbib;sgLa0MXf;GXMCVwmd)el&x+qxFm^j|2 z#d@hT?WN4bY`c&p?HKCGC3DY!*Fdc_OEk^HgLdgy_}Lk&Vb4E~8}P;M#7k|WR$Rxk zuMc1c_xo_g1ho*HujNY)4lar{OnG+-V>RVp0V+aTHnU$Nw|oM-)YYH zO&9`FU_rdqP_qwfST+DRH#bk7Txo3d*vw6Bw6$j}2Gxyl=1Ell%)fsAz;#yv>(sK@ zbe$=~1idfmqQ+-Vge_Ue87awgebmn9iK44(!|aKGD$%k!YR85K=f}O{g`$Y7+IL?s z4f{4=&oY^879syCbOhOkdwkTTT5MJ5 z8J|$UqlhL^y^~Q4ngR(z6kD44`UqVhj&i~(ZZbG*B_p5vssZY$qehM{l^HmwZ))fB z(ney<68SWFnRF%Deomln6wzo)2&c{kzZ#`m+NGlsr-Zl05F`nv0jBqVsIHL(E+vS6 zsIXe>4lp+>LDsRDvO)IF5^`4MHY?1=cBa5+reXKrg@^4S2Pf^Y?|L$oyY#@jZB59? z5fbMlecbT@{l74`N4UMoCcAjsr#0Ypomx`U##+PpF%$TWL-hH!rBMz zg=`!cNDiRXUOa8piGhrOmkqdM#xcoIdu36FbD?zG>!jJ0{5R2HU~jeWw!l!`-s<&t zBe-;nijSM@4-_ezK0b$*CN14vW$XK}}u9KQiV(b;JnzWH|f!Z21#^5JkTMki(yKMH@}?LWB4qljAQ_c_UAb;4%!}F44Vs+Zmq8beFx8oJ^@7alvQiB`y+HEf|oO z_{adB;gy)oupewm*kibpX229|=4-MAEY1bz<~oMxs@hIMI=ttJytI8l6~jyR0Q;g>G4DO?w!bvaL7r(s_vD)*Z6f=p0v!JRbf%#>-Oc zUrK~QPYdcJP@KSGbF}hJ^+uo93SQlz|14L9r;)!4-UvKg&^xsuQFf$qX0Ye+ctkIP z7xurHde5k)(zXp$$Fb0rB2^gagx*_(5e687w9xw?(xrrEsBx4gbp%2$gCT?-T4(~1 zE?v5G5(K0ZYJiYA`~B8gXPqDUo0YY*_p|TozMAbM)!U+j`gH~yq~3$twLBlIs(13_ zdZ!)ke4N(&QLE?fbF9Gac=!uncIKL8uG6ho`y;J0#8n+3)bZJ~r70SoD7)mYq2XPi zxpq2t^GEvoja*xYzIm+1HQ)cQ&R6u#*C=(sgNxX|ee}7{i4N@ddeVa`Sm&{SSo}b` z@rm0l*9nStDP)_!ugv43TfB@;PcY!Fhg&is^ABv=dLhG*%5}_%y?bB2pl3z6LtCT?9%>Jj0j_TQu6}FJ8*n&XTcUxLBkFVx|;49p; z#-n-Kn?cm$KJ?wf(3zO?%AqlQENQ}Efk^O9%Boj zxX+fGAvq^|q1b#EsbG%A`~s{nidz#Wre3DwC#HnrI8jxXayg|tzehF#3mh%16M0d- z6T7^cGBw%t!u?H0nc2rRxdcm_mvUZn(B+-_7m4&WS&s%l^%Yz9xyT+@n(I^)xaB8~oy?eCgL<8#tZGQKh8gDl( z;MIVi<)^^%gw%19pCmhAV!}L z2nswh0k(i?Lcl9lL)`N*hU=fi?v9?sUwtlI*K5<2Wzm<$NX*cuE!EPey& zHzfah_ezhVeK(=seWrddH-*1O%w$BfzLvu)#S|0Q=TiAC=_fQW^)oHbRlk{CRBsRM z8Hh-+iHmQYWBp;H$F#|Lt|>pLaJ1)plOjZ@1%Pi=2lkKX~9*g^%k?=Mp)LZ1!%6;2Iu z$~>kzh5x`&KANsx?Ydr3bDeTEpCh^$6bH@_qW2B0roGZ+80Y*{YGKqNt$|je$U|rC9pSEgt_96V{ScpCoO{w(NYu}N)blVp5oCIyQ8=}17y`r)gX^GGKxWW+Iuj-bkuXwaH?w^ z!+mU?=;JKg-cZO3%@Co@4num(P_-#OMCs%eo~F*5y!Jp0kR?aD7ej=%%T{}K{-!w} z#ow4I9`Ez=sHP4UwCk%t3Vep^4NG14fx}NO&}AR^p0-jaq_5YrA_ZG2Qz(K%a1p6- z|I7a8xfWeBUG6Or=I9S2$70tl_C+ko<>(h}DsgP_1)-CDXsu9RXC0lFLeeK=MR(jD z5!-A8YmFK5XGd!1)wMFaCT;N#VVIr*D2b*)c0tY2)%#PzP#1Z3CF z{*>k0I@arIBm8>V)_ChNzGj(8e{UbJJ=)1)jp#PJb|Nzw3W6;=#op~R-L;}V>bSS- zXf$xw*XOI_#?if5(C`tD$nz~;u>UzT6dJ>`k_-vk=G#juZSu%$o?GaTh*sS&=-W2Op1^HmLwl4EBAfV zF=S?%v_WHJ`p%~t1jXGfb7@A)?O_x~cL$h|YcM!P8wM!^IG9PpK`kkxhp=}6^_%IY z#=5h|l!O}$RggNUq2i-ue4p%Y*Fma!x9*oj;q&n!bZ~7R^ZoY6LOxe~EYm|B8J%du z$A!N81pTP7pLEirM%Uz1!sy0f_pew6(xC|DRG+c=(K~=;SimQ(wx5`Llh?#~xUPS3*`Z zN&8KB(9@Rbv%C+KmaUg;MW*e+Ev>1;f}#7MoTofPm5m8UPmMYA-C5VO-OOdaSM_jm zS)4>1vd0H`&XrBOTFDF;sU%q_()C%D3vNNwW|LS$M>9}^a4CxX zU-~OSXIZknhHGzxPi((4Oy!Nr6oEDfrXVCX-(5|=%ePN(OhQGvyzQ~@S&>V0Jj}C_ zYXER~t~WW$cvM9slJ8=*v@#2^mfBOqG|nC6(#t z2^?$cjr?rWTc=Mi`YHzbuSF6i;jPuy_c4aAa(*RlW?ij}4z`638Cy2$`LZ(=o6LPP zT^pujq~J}GS+xiav{F|p&lJrLiTG!u9etfOF)m^MoOlt(!FB5S66q`4vyOqFIV{m? zHqRu0YAzOx=nzYsFkh~IABHW|X9Qtk(&gvLyfEK&7hR(Ir=-u*l!XP+lYc(ieW|4P zPzQlhpWmz={?sZEtq3Zn4Js}Xn~L_FiVhR)7Sk0U6#9vExmiU+khCzA7E+DXIoK$f z%O4HN_uVTt$~7lePlAR=B2E7VMk7F{bj#%a7CVJay{Ei7YUn~O{a2A5Ud+h%B*%r&v<0hc(wE>+}H04C3rWNgNz>*Mqk7Qr} zd81cf{diu(yVKDIArdJsm%XXMVA-dy(~kPk63))(X;bb3o38)dXLF)qZ$5QVe%!b0 zII9UHd}QKrsb3J^o6n0T5FUt>&R3tHydoQ*zb)-|kazDzINATN#IJqu&|2|XWU-BLUIHw~qaVCZu! zF<(fqGEFZ2HNPPBST9Z<{MaltR+&?`>8WY-GAIZda6WajDR4) za$@7NesK>8z;Felyt_@zew4MT3?p?%eZ(6tjLl9LfO58z9|6TFm{ISQR83IirI4rM z%_1he(suI983-R{2dEL{*cWYC1J|(cqetSs|0>r^W9W^0bcEZ& z>{cv7nGN2A>PYXFl7Kz7V?Ey{0451f%#00ypPc}hfVq%2HAR|zi1=K=3+atP;f|y5 z{M{5nA{1?m0zp=FD zb>;QjO?Fg$wNB8NXX{Yi`Fl-{AMlZw0T=N|t#LldxSPJ2hf6m5u*DU zy6cU^tXP>%o3?^?6*GPVKY8baCJ{s)WaJn^f^wV~NB!6P3Dd4>bv-laM52T%WGFp9 zGA0c6#kqXC03ur*SGGMQ&N&n{uy#K>2b;nxx=?d1XC(;v>uXNsHAvpG9>6grfkSuo}%=g9q z&o1vK$5`L32s#dZ)UCMh?1XkMgLV^sI+r~+D~>}O#c=2mVn8OqU(lH#Yk+9~?^caO zmgsN`LUia@0>xl_ANguNiU~9<__a^V%@yr@bSKlDM zo@ZFB3^kh2Grn_@W<3A0oO;4w;dt&}&EbHKa(smiB(3sM#D*!}NAFYGl}DcHkH^cs zfB^AMp52&fmG}4A0ejBr<@R_Q{B?gajq1SadDP^?hCKI^jWvdQq)rh0%^%bIn~j}Q zikImojYT)E$>(o<52W@5?d!Gv>TK}n6+0F_Gr4ClcYGKV`l7B=$iLt2L+SQR&la?I z4x=(ZiA^`fCixdhC75DkO=leRbwom15kHs`k5u*&LJu5r)^=PkYn_I~ zOU%(FWIE-n?M|hB=K3CCq4o`_KG@Auam81xmu3tIcQuNJkFlp8b`}B7t7bK8DGGdX zT7QkiSKl}ip^v_h2Z%r=7(-;qym#roCJxn>VeEZ>!E#dF?SsXE^NaC%w~Pv~S62i^ zy78g+no3V^3eQ?Zh{d~c_k?$&9>m=WvKOCC3UlG3iBt{Y48Gzt=uRh>!hz_rlwjtX4xCR<>}PXVrL*eT&}TEjqW{M+(=*# z*=oKs(TQA6?$xGw*GH^~;E0goZ#>vPm_ms?d%gc@|H3-KB%qulI3LBfvw{A+e|2h_ z^^=Lh-TZ0Mk-T-DNBZM@O7S3PZ9KNkp?Vwo^h6Q=h)g^&Yqk<)+wk^K7%cfCJ;;Nk z&tIejjAl7_Os7kHp$*}jE7OChmh5tfQaaSsJMB-P zo06K)V(a&$FS}4*%=vgJkI5(`qH^(NgV;_DjTYebv9YQxN)RJggD&ahjD7~qfy{F5sa$n zi9*)gG1bF#0Gcpc$j=d>!_*J9IZ6kxvPkOiy7t{Z6^Il^ggO3=wtO+`{@W4PyCX=n zP)y(Pba`w>Nxq0yFaVVm!GCGUQ<%w^Hznjw&4*+WVo{Gb=9|>Nv(+DQ$&U?{CQpn$ z*!X>F!{O_xL+x#bBG3f&yeGzx)`YA6(4GN)L_Ju!9}ZBmcQQ!EOzsK|U}5R|T1_^& z&J{h6xU&6R)y#<wJc{B<0*>6J@F>YC9G5Drh=b= zthv+~y!EH|Y8tP&2;R$v5a+~V~xS~{v^;K~p<EKN`8*b>(>ZmbU8fEOyR;h7`!jQPfi(y=Dq_@i7$C5+@JvbVlZxK$%=TK4YT zyd-rHKE%9Yj`JRGIEdjB6EylcbLp#H0DIk1+6n76KjGV7dQpe-=mC8JPjPF-f~G4$ zteseg1y)yj_1AGTkGrqD6Bd|WHv2(Dw@nX#rg&B)ZCRn;<{LK`Zz z3;G6f6_%>a(pTP_Y9Nm;_S~=aBP^!xwXV-|Yn?0zNY#<<_cHH>{g|z%T<-_%h9~R# zEj53AeQ>Cduj1~{>AssQW1^$w(I1%g`T~E;MAsNCT)!Fp(<5W#&hG8UM;Ki%$HdWSiMi$+z3?> zjdIE-Zx<0;%YS^QXEf6{k1n67z&FamOcL#}3+QNw;YpxbF^x{y!nv2zOSn8ixyLx} zql6>unWg`eCeC4H!nO4f-m6a7lkj9G84Yb)sK|31BEt2`C_ z2SVCAFV97;@+;}95NMYa;kSnWl{C=U`%=bOcy!B;Y&9eRiSf!TP;FV4nT&ZMEXQJg zDO|@Y0yrq9@aw=|v73a$IE)Jvq^vH`Icf znkBx2Wo_M0(sWNk%sRLu#}TwwY>V|fBNNHX5#q9t3&NKWI+RNu(18Jl+%4-|_!}D&w8}=deS&>LB~nLUs~(0i zr5@}Q*3cBKu4+-zfSa2e9{$Kszvju1N}Rf({&j8ndrZ2jF|uq>bKg@k6cuh@`S194 z3chnTH-rj|X_~;tHFJ34?w$YRX8)(MB4enuPm2w))USMxi{I9!>%ae^nKy7bSX#bv*y{RU9Q&tF)z=#0sQ=5cK?MULXJ- zaMi+X<0C1NGl9gF(IH{bqynlT?~@ zzImo|`PjKZ64P7C-L;K0&P?@e#Y3{r0px3oXK`D)Y07g2zA(=9r^SdIf1L>Iqnjrh z$uj?zyYoEl=25{IeTs?DaG`(C;wi3{0n@a@0J=Q8T%@gEVFoUx#Q6T-&3L1Hw%m!b z=B@B*tDDchhc3tR=Lt83)L+P;NGEf$>NSKcZ|%(<`s(O$N5wFVNarRE12-*L#W%uh zB+nkkpP!#wW}Ww68RlVTxWfR6pfbhxNV{w0NqL?NMV(X`eIiB>vaI%H8HZ69Rf@&T z`(A>+b-CL_s%12AOeFzo!oL=1YJX80Cn z>f7$x4X$kUc5m6mE^9_s*wUcsn*&xI=6m?FkNAb%6P9!Aq&F|oUwECCZ_SaW%tOte zh^hvz7A~|bl6|>_(Uob)xvmQR!j}UR8A6Z(R}d*LzkqA98Y;8V+>ptY1#V2=JkK58 z3us(SHN`qv@0`2M{XV6bq4aoSd1uaw>+BrQ^YOtsWJ<@QIoCCVPGeqY`r_kjx_VPX8MhgEP@x@Dl zZCC&cTh+D!M>mv6+E}tv2e%1G%$SV2&RxgRf>9zH1lVj~nrC4R*9X zX$zKxdlEg(3-Vy4>uijk+Q{krr(-44#%=9%*8*^$1L|$N>^cKqe_Q)~r^#yRk_10S zxROV;l#P;;b=~_vnK`QtEbZQmjNK`ww|?Ke7)zT(;1rv=KvI=adwZ)+PRP9|&D8aX zDX9Tst;G?C$XQrJX}$}TIp6GN**MG?^06`VgUzxn_2R$TBfk0c^E~pKYtsmDBMJXb zs;}dw8R<@3rExUiJ70|s#!J4qiYli4G5C7#MQ&6vug{@Rj?jli73}#%k1;bjypQn- zs_+M3g?z4+>5a6=ca#V9tCT}x;QaxcXz_9aNj3l-j}|q@sEX-ASLC2pb_j zPvLlHyPq>5xP(WN#|LVUc6;^?pP?=D<-Mj64RTz8-WRP+&%$}YY2gF(XbBzNo3H)3 z=V{S)`3Cy)I;s#uU0KL+Mqa(CzS5%KADN#$qJ*Np@X;C}38R6;&BnAPFREB(B=_&_ z?W;n=KWpuCa0OP8-I16P(!GXGJ!EMi_b}ZvHCJbly4B_C8dZxB+fULEFRT%eLB8O< zSMBR=X{{ElO0q89ar{)M$vz5wlfSNFRyy6NxiUWQy5^w4v$k~IzqEDt^=jg>BNqXL zD_;mwak_2GG8Ra$`3z*?%yX?;0@QRl*ej`v4FyCPYC!5Lq7vu!UK)RK>q3!8)6~0Pl>~z2r&V>WdVZmH&r3Jd5D?F#Yjdmo1nro4Q9AMO$yX?r!+&35@S%kt+U$cGl3Wb z#SsGd#rBD6)e{x-N?V92mHpu7wY0a#wdyQJvGLJ`dq0*e$dpQv4Tce&=7$GJ-lPEm zWA@l~!=M!olKmqItF%i?UV*7kS&*3@%r_~MD~r(D=FhDR&t_KYlj9f320g22V%Hps zTK{dNC7h4fz&&5xv8qfh0nHcI$+rOQn@CJ;E{B?6ZDTY;lEK`G8ROd;GFJ-gl2AOI zOYLRBy(N5uym{^SK6ctP7&;+FE!*pO^ITz_Yua+ZZ zDcs6m+FuLBp{>}s6w0R)0F5@6^+*GQ-NQ@a zU4>~hrLNbJXOl-UH3mEd8VRu10c)kjiZE$b0)699NQ@nD2tuS+3i;S)!|<{b z!O%ntkbCxP^&&l5Ro#0=VhfVTmIXR*X15pgTM@s{P!teGMIur2cpT<$yi4l4wyi#< z$ND~qnz4p$J|-~Fh4|gAYyAFR{v zi~X|?V|9}lvxn0^H{hJ+CWV?$_O{f5%x1ciSRL#wLRv*lqIV4YK_u#HgtOoLA@Tk` z9uRywHDUL~Lp9^U%It}*GmT$`ap6AF15|~{(s_3m%yW(NM8aIpR>I0`_ZSdTUS&Pt z7aS^)X`AbSsFnTlqwvYmnB5nOShO{d)ct$4r)yhW$e$+V)wbk{y2%>XY{Q`@;Rb!% zh{km;NR|kN8Yv%@mXpa_>fXb_6V?aAvqFOd+apy~I(dg=gD#y77_=lK?YL9Bo3-yk zI=0>qf!Yp|WK}LLpCwXh7q1`n5UXjg&rxKTPj-4lV@B&gG^Dq=Uf)~sdkFV7jvK;} z+GTz(0yw}3NgpoT9qLOR#lzT{{3V54ixQ^AuKC?!OHLyYDyU-kCLwUftWvp#bLhgP z>I~z3Jk#Jc>81JphPmChJY)Tc%1+WyYpfsXZ^zHjTk?CM!Faje>8;9-LxDH@5|6zt zp_MT|kbjzv3UNbC`mFL1x2Qa}aHI1`+tpr6@izz`SB+u}XARGSp`XvaOMpuS1lrkLw1$H9P}MYA*umMpxe zA)0M(W0YFBVQ|-Kp-M+l?PGMs)RvF#H_Ln;X|7-847ZGCc$VH zgNomPfXPX^&hfp_=vF&JC|qBm)uNT{N7Xt7fBLphF`6(U=q+6NQeMIkBKG-s3LS&d zDnT9S=!`G+OO{8-O_g8u8-;?4!l+Z4*@rg>yZ__S?g$~IIDd>O*^N<7FZtcJ{uM}C zBb}|8kJ;CjOHJ=Q3z=ltZ3_>c>S$Id!Kw^6xZXuy1SU)_tU8R3r;-IXv#Fq)f1?y4 zj9ve^NohfScDbV4Nq@5wcEb9OTPZhV36ic2K8sekG6ZqX&vfHC*eEDK^0!x85* zdcRq@icnv5r9ut=Lat8N=QGuilzWAbOT5|?M4n$mvMVerRiF2Xp73qqCsEs~vA`*N z1_V32;MMuN?^_XL)n_##*eLMKZ*M23kkPv8mFHiMj|dog#(UE4%tJQB{9B?J|; zk$l!5q5&I&Uqh=I$NeCO9!amQ_KnKxlkQ;=#B7{5_Wi|UrRwmqJUj2w29k8Iodb9G zK2PBb4SNRh&c`-Zj1wrzGAd{$t`XD&oqRbXRiw6nkD9X;4Om;tF*q`{>3JrPXxedh3dUcQ9msx5_L%My26 zh>el9mCC39N5AwcTsR}2e^r4%bMvMI(WQh~s{t$rRcCkB{aC$t?=XWCg8sY36Y+AY zUEs+#o7?n3*w{9!4}0`Rz4bl3#VnWFzy1-Wvo_ZLnl%1l+X|IWPVP&?IACm%^y}9G z45nh`WjA&rz+L-b*_+l!gbtvuT8%dyC2uhQ-O_#Wu9_AuB}>$h!Iq#aeQC)-$q!aMx8V858dDG z6qsd0CuJs#+mMRl&yqRolm^nA_Dn>~`@bjtf-i8<#5F+vsm^uFPV%vZ<(t>xNH$5t z(y1cB2HF-Ry9h@Ufn#vdiX?F9mw@o@|FhgpLB+WH#ecW>;(hcaMpRN0{NeTt8B@Ws zsv%~X&JCiiT`FY~Q%eDx5tIt%Yd+vNP#)Ty|8dmjh)n`Jlj4XRpZ~JFM`DP3yI1`C zzY3Z!j|@}t=qLW{%4uI3KKZ!C_JDX^GIDxFzE7oz zyS_(Jc6fTqH;?_o6+=y^r8Bha3u%s$oL(`2#UDs*&D9(Vw6&_-{FwYQE;fkFPyhVq znvB2a^@G8h`iQX`-ip-#r;s#iFcDiiKADvyl%uCWN>8ZGegTa0{Z1b(dw!^J=r#`+ zFc?Vmd@JNlJ%(bSvZYnUud<{guk|8+Iby85mY{xHWsG>VhNXdnG}$SHhQT`=)kV30%FR@}8R<=_%o@SaQG;;<8xOCt^ zJ|c^1dKd#(x>>VZ$3UN=O)Pq=K|>md`O(&T&5TW<2oQbrdL5tS8f5e5!X?Ivc{CSH z?d*oP7Vr28%JuHwiMl-y+F1W$DmqYUYtR33OoZvfMyfjeg&SiGSS!gs!&R9R@3tYj z;CKx4isuId2myMcx9YYbfoW>a<2I#>W;&XBR}~r z(ZO!d)?#C#?Q?x>|G^p%`$t^%lqcOlH@YQnP^<6u)1+y z{H?f5#>+q)Ia(?1TI^U|N?kP@>7|GCzERdkNRzAkvt$xb1lcR%0i<{m(1S~0YK0a z{P!-A6vaFkjJRxGE0u%3*-YkXq2{k%VzeA4?G+f$YG5cBqH zrNmt;!)6+H>jnGECSm*fw6x)X!72&Y;UOw62`GsQk7?A@Jxc9aTI};o`l@U1=0~Fk;0?BSKKIYfeDXWf|={dVUxip^hf&^(=_QoZ7+n zg9`4vXq>G2?ZaaQgK!l~A$1m7E-fw_85xJ~q;w~PtTq2jxBE0%guluONANIsn2f$) zu@OkQzTU_%(7@1D__X!ETMkQ4x^t9&@y9UvyE76z|Ef3Q7?M$yvWZ0*u@dN&eu)&=b)9{Jn<$$Mb0w;hzE4~nGK zje3_Z8896p-ZoZLRQJ>H=^h6zy&OKapL;S^-Y)Ergyn1=La7CTRJAnFOb*2^|N5kbo%K{^}%e=4- zhw(D;t9){r*p`8{NLzaR{=b=jm-j<3-B&x~KsTI^~wXm#>qy5dll?Pm}Y zn#SDgVB0}=0gH!j_l-fsL#CqwBJkB$ROM6*qU&h{J8a!}frV(*w^)ZbcX~i}yb`w& zOp*7x8c03k5tM&nKDgEMFR(~?seGxdwD*G*u=+&hM7$(j`bbC=?2@dQUj}-8#F~z? z1JjBHh>)HHg5*ZKCZM&vj;YK^wi{WR7pW78zXgoL=22$m_4b7-*0wYznbLCkE{daq zB^zfE3SOm+_WQ>*-UC<48ss~LCAX7ar5WA2MPDaED`#{Idop}Ag+SIU?xoH781Iko zIn*wf44VnVYPBUZp0#dPgsB5XwO# znNY4Vf%Y_&7<3OUSKPnulKy^r{o%h`->|6WnA8|Kt3I1fUg>A!wT-)4`6$!rAvw>5 zpr2!s*Fd4zj(H`~OQkJChT6ke(MR+)OFe2%p#pu~Rju`ekp%kYd7c%z zE82Qx`&rR z`+U>Vfa~B<1ou(amrgNqI_bWB!_n6J2yWDhcP_Oq95ldIjm+28`uIMx@L;2Rao+Zi z)MqmzAA6YPWw2Wk@1Kssi&TdL=+p08@#SuQZ?gt7GAG$%EO9o1*m_`^9ILiz=`K)d z)vs2?JC6pwxTl}FF8_L*#hB*p7og0!&#G)PNo*>48E0gce&PJca7suk*$M5;LD`c^`_wYk(ziP00Q?Buz^~YCY zU|Xpozi{eTxD#Ph4=7rg8mbKzTR)-9Kzp}rlAv+tO+H)!`dzruo79Z92Grkif)-I; zNMNU;=}MK2l%Zy19484&gL{R*ll6TY_B1^y{y0vj)qa;wk-ge_b6CzW=DvhsaO|K9 zG~;Pvf%NvBZr(>nTW{N?|0T%`5KSkcXV%7$;JWcU%O|Gxk zk$64GuS{R{yg$%p7iHL23dG3HmRC20UHVn0sXSE$s5rCy@@b69GzQAh@1M`7AVMRq zG9>rE%-NuCRDHx6TC>h@Zf}4jO=Us+Vtwg!PlJDT#gI@`*Lx)WzFk|cW43(F;5~;7 zoz0_~U_RP5ZiMoSYs*+k?rXI^%uQ-EIoA4$7HK;b>l_;=WFw{snl5Q&gX4t6A=2|i zmnyrcNkcKiqFwh1R6m)V-c$6wbp?dE+U;ox^B+M&KV>vTwA#k~SdX*QuYF_aiT-*1m|0AP59HY6ACmMo z^s8XPf42;x60^CoqiDzKkRBBXhw)3%>0M|FopkqKTaj#OeJ0fh*Rx?K!VBPWURjyS z-c~m*HlEJv^uC$*Uf-(Y`{uCR;>~Zg(2}p4yzK-|ALC1zdH~RPOY}}Gxu~Lmj)3iz z^t9JquzE)^C=M$9egE9$N$b5u^PAN;$yauRBHr7wp-AH_Co%U3c+X^% zt?i7donCxOJDCW2R>RXH;f6>f*xPs3<++~PTOKIF6xOA?b{A_#ju2#l)R?=N=qLsF zc>Ye`OB3y4UFrh!J*e16jcXt~v2D@X$GWw)l-@DY- zAc%m;h$qTr&kDL}$xcrkPo{5=fDQtN3 zNxDGD~uPDPS58O{xUdz2B%e zE7qARnS^L;9IA(}lGv|Zz!ClHD&bOVJDf=4{USD%&oac3V+B(1PvW*e)!4DJryquT zU{W5}ziB=1+ENiU3yrZ)WP-{>+Z7;o8s$L`W^(vVV?NMWXM{<3N8kAlN+ENow@Crg zdrj%0)A389C&VZK66kwSl7`g1ZXG)D3B^kWvD^aSF%Zoe>3Mf?mGa*$>~8J3> z*)TL~6zDUY8Kx_7>2glK$yP+f@iki|N3p}b#0?}xh^a~K&xpo%5MEx&-#posoY>m+ zT-k6<)q&^y`1vd4lwk3#nW&Mhau;{lFLn=v6FAa;wyTe6Hj%w0^N=KkVjetmZW1## zW&?fi(p_ZOjA@U@9`*PJsUJSOmDLj|a=a%Jv!vhOS|b-L_NoQU>)qEV^f%_LJ$wjJ zPr5vC|Z-BrKzUEPv(!)t(b{_oq3C~$?}f;mYBU7Z5tP!e5F zu2W(=J8@ZRSC7OL7o7L1ZR+fq#=epPYu#7IL6_xCJNrMN-ZrzU#UGzoR8qJGPa=k& zj?{+snssrEA>4NY7jg{ILzKh(iD|OjC5#3CLO7*TaXZ6_?UO;TwOv# z6-WMgmb~1R=@jF{vcme&3@Umo@}Aq|}pW&xn0}?&=6N*0+ zXOUtpbo1rg6VUE)!|+7$_W%`B8JA!f2`RDPG0KgucxBxh>4rRRC3-@sAJ=LWii=FF z!wy*G)nptO-d#9b%C0_&b2{1o@7C}RJG5 ztDR3#JVg~wD(xUV2^G+5n^3H@cq2Q^8F}8UpXZ=8Q~bFx(?d8#7wBWjlsO%lkJNQ)Nhp2yG);EiiiPO3ritCW`L(dQbb> zJOVa_cX#@m?_m^ZC4RHxTVtqXguJsrHV`!(;ZTX_#rNd;yIOsOIzZsBTG9kRt~DkQ zf9MY1ku**K`^6od{0)DfP${HF<`FD+&3+^0RJ}>YpGP#)=Oz_Yyu{o$?Sq)0xRB-| zUx^GQ!14<_emoWV8lj1=wdyG_vz=-8BwhE*jhB13%@$W|+q$8`N=6ZtURHav)iWSTGnn;+oXoN-U=e@Wt~V3oB<3+R1Gve-x% zlie=sXSArZ5P~QQJirZGD#0p+_|C`A&EYJ2R;=)|LIPL$@Q1Y&n)B%mR5BzO-k@4M zmhnXA13Hdy6-*d*j6UK-3aJw6>fE$UJ8c{!5#-#@Wdbm zFXrS&U`YEkqY`Jk9dcMEKO!?nuiTZ zF!;s|>O-2h?vnR6jQVoFd2Wa&>PG!a{nha8FAbwYhW(}Cxi9NvGcH>T+3!(NvB`O! zqC+vBTBCj4o}~vlc2ru#wX<}W-!09qqT4&eOnuTH)XWDf9c>)-8BuFRzc^erHHTF( zc!xBRR=WpbQQ^FzV=|Ljj6YN={1}XI9Me5+m!rV* zSc?;YN-4@@tF#bdA5AL(FLQUe7+CLfQA(#k4aeX{4^U;O{cNoE#5$pIXQ&_o3n~u_ zmSx>AY}IB@ENA%`tO#@37!Ez4J5CT=EvOQqTz|^1FivO6}o3~dz~dakU|Cn zJ=*Unu6De|9J*#{sKf3gVMJl}i>ckE=W!^*=2#TGe-vj4^G{V=Aw^pWsh2C@a2o>G zrofnLn#{jQrMbRV?=0|bdb~>zA1=_}C}a{lV<}rUsMulRuYz^4*56Th_qrWaGXmayblAteeV{&9;5*G^w z{p^FrP4n!mm^M_8i&<5yB!HmpMM`xmR&DNtaSE&6IgT_yVO2kWd$hWjdM#rdSVIv# zI!wHa^18B58z`pyPI5zvCEAkCu?Ws&4B2n(*Au}>p(MrF>atI}kKL%A5we2#B`00P zuO4ul9;C`{(orqCpL6!E%3mazq&l!_#!F~{L=)?(f`_|ml`E&qWp#YFbJ4W>o-5c# z1;KVBuJO_4@g2!g!4nSxTs>9*+Fr-%r4hwH>Uj;Z4t{5Fvti7_=^WtUv~yM`gUx9* zW_Wl0@h0^KID6eS?@)(VX&R+tsI+n8N~mkSUh30AMF-=)Lb1=unz-P7-REg9CPicW zzc=VPWBPpD@9}@oiK@)mv;cB|Ubu#2DSw9KN6{*nU5E|%WcBW~qC*ar0Uwv@iZDE} zfLz>{eIPo98Qk}Y83TJ5UrAJ62I6)TV-vyY_b1tbHq?cI_=CM(q-NC$VQ@2BE*}`+c70 z_j-jt;JU8QIF9o?-v_H!@==iWT?1eFP^#1eHltOb`qoIJ?Q0C%QLmpj=SFkC&g4S( z!m8-jz|RJ~R37z>&Ww0$y!)w@0vYbp(Df>Tbm^rPx-(B|Vdj-oBeA~2UT>6a zo@Gf84OAzatsk~p-(T>#vlkUM@`g{7<&Mdv!ixB<25XEvji`o%ilSMB3p2yGk2i;_ zg%10&F^=4;ak6(u9sU+t8-s|!WiQVh$zym!2bZNU8FEnMyFoE`jK#TF0^tN}%pMGs44=z>l`&llTR^@`k!O>tRQ_jt@lLVBzV_InOfYmFllmr$qN98!e8Z0|L<`J02MOx@P>M^9z^C9 zPUPQW?sLng#M*Ld;cZIDO2RHt>V@83B9rE-cJq2&TSH^4#-}J=H9xo$)fZMeqieql zEy4#$uDc1ES}ny1*f>yEp!`Ifu%2j_`NOYEG>179V}^L|6vnN|?(wtyAp|$>peT~N zFB~Rjp%BsCn+xeBZrWFWD?=kdmHMHc-Rm)iYpg)RtL68#RA-P0!kjtMwR3 z=dz*%Bfp9XX6-AP>2w5iObo=E0PpD$6La0CUXCZVUU7|JT^!)`;yD;XvH5(4mBwe* z3RH?3B}pKC+z0<7rE1iyrN-TFxU|*0)!cag7}*X0TqMxA9tgDJI1Lv-gt>ln(CqZJ z`ROl`%hL|lY*cVJB3DTcIxvaTdKhl@eX7RWaqIaf?%o&wb7{E!4<_Z} zsp^-aI>;$}8a{ZyP#>2Ls2Yj%jWh1Ps@+<0;$vX$Et?SeclZ!mt%77iyj&@Be6v@a zAWe9l(-@yQTL}I4(Di4`)?+9SWTKRZY*BfVC=vUW7J^b3YM(yQB3c-<&B0r{M>5yy zjONn#<#fE}_KwWF;q!^RBhTYDN25q`gHIV11UI))JP|hyyA@N{F~W87 zmI^w$IumP#d#p{U9X+CWRi_D%HV+fJ`sM@8q<)1ti!%SoB|7o13nF*4t3%Q^`Nd>^ zR21O*g~5AHPeEpbk7Mj7WJK)TB^mgUPx0>Zr>p>fxP-qT?pt+}z0*!~7sU7>vVGWu zT8JbzC!OVDh`U-lZpTpg7gMe&8|l$fj1Leb2c!fiyia|-7J9Wzp|;GmIm{8JL{Pq! z4DaPOv>BA-k%CeEGj?Ti@Y`=Abh)_dIsD4#`p)sed!6s zUtj#{;Y(+PaNXLVysm_LZVRN;c{s50Of_M2uJsf|1d=fB#1W5N3FsBekrLnoo!#lV zC=7skZPQs;m|4s&SV$LO;61nLS~@F!K1qeq;zC)HLFo@htc{Znm#qLmib^E>?b|Na z2zL629-G5!@j?7?i6Qx0u6(d@Pn(XyH363JgEd0dt~kSiBmC5>Fi&`3#9$g!Cw322h;2MfW}Vl2yU{9 z`c|EX33+8ZEe;5K&%5I=&FRP)p7BaM@rH{yE^;&=SHzdrr8B#>F=1(P3AX`3^GX>? zs3pg7G$}<8)mgSp#liAzpP1<*%e2a&iJaVJSD$9{X*J&dwFAwvOsWY;6T> zaaZ%GYuXXm3!FIH$~6~iqI*MGEysRV)=Vo$!0amUX}7SU^FSW2L2)R8L){K6!vL8? zy$7hox`iKrEpmnS9wd)enHf`cXLFMYg$mFq%3!B*%YDP6@9E2H^ESysufzCD%`U57 zlDhexmqi(ElD#Qa85Pp^Gs@s!#FST@NnMFpm2h%f*5c;k+(%&gY?QK1rJp2>KMPY< z{`I~f%_CRi^MK%l_EPsGYAmM5PIzFzNW_+)GF7jY%3Pm=E)mj{s;YW>`TIXz6@Wo@ zba_p|SFsF`2`Som5#W}Jj%u82Q^y@939iotOU}QA|5j(;dst+;f78#NT+oD&$3`&v zzRGIFm1WUXj?Vq&d}b;t^Y*oIyv)Jefwss&Ad1v@RR&Ybu+OFR;8F`MVT0=O5bjP7 z`G1?wQDOTZc_IZSlF<^5!Gs`?ZjqIEthxXMc+q2;0qmKyXTXyHbg6@j06L z^0{B~WM3(_;z|Uwf6L$THoo%Sw|X$EIJx1O0(rTV#LZrfJTiSu+Ta5v2OIP$G5 zp+`qoqjm>fRP1PN>%lE{J@`!hI*Pa#NMR`N^4P1Wr1Wds8LMJayv$4a0JtF#rI06T zr)5ZBnbq}5(l-Qrpf&CW49AmFJ$mr7?4k*eI=lM=pd8J5anqN|!^0DXDRk?8ncBey z7lu>HzAJe%2B#|c@V;nqSGP#iLF6?Xz9X{u<=u+uc#=DRGTprC?A+gn>=oAUjwI?8 z7+FR4K&RK6eJ*znive2+;}y5utI8lH|6XXK@Mz)S>5!-I`uWy}bFJzn;uA}Y#bAyiLM$GrWs`7_d43=m=j>gp?ryhKEbhM*N z6w%0sx=p^X`O)C$`t3e!_)G^jdc7FLLSh`ir#xkuOm9=A#3KRvy6M~37KjXo6bol< zdSh61xP4>=Ojo>+C*S;8(znbAng@yJC0H_62ZeQ;_+DJKaED{YWX?w;Q*S{~(E$s( zfLTD$AY2^G0`^YDL|P2D)R*Z7HTId3MkCn@bM~r^%PPY*2HT_Tc=sLsmPffJuY_<* zoLFV45r80B-EBV;dkDnH*$H)6WjD4rxA?ZtsW3;DdO0*Xx=xxNxLCqYY7Y1h{AyMH zMysy;t9THKT*=9!gxexRrZWeCc3L+i;Z`5kp%F2+yx`K1OHGi7bIa>mx{vouUN0fg zCSZ^ubBE@T%A&Elrb?fA7m*}LmeeL|`hA9?i6-fhC`g>)ek&}Z< zSWmgCTOr38X_7$3pC;TP&H%v{EmBE#V?J!-JPk?&S3IOkJ6{;*+&+DEO}==^ICl-G z6&h|!!bjQkJl3`#7Z*=#Yu%d$B=dxU-b3qGS10-wyc2UJ`VGh@w1;0_0GX2n+5uJ2y)w7GOcYk|+hc+gQ%`SF*@ z5^dr9gIAY&3`jq7#qRObq>!99>e5f8K@Ie`b>jt(^l}T4YC9Wx8-D>?kLpACN@K_4 zK)o>4du=jzFXsD8hyW;HTHN(^RhB1NBupsK^TQtN>d%(AYU*vN_3(ECnpGY6>tz2l z$r|ujSEZ(mPx0swsX4`Hcd>p_dlw+929bL_EbHa4`8t6DrnEn>01n`YSZ~S^)jX|M zOI)({T${x6 zdn)dymwz83cikv37C=VRMcS)$5a9Znpt=f@ou68}8-GhL>YF8elDpK4ks<}egmkYr z^&eKy)k9tgE;gR}n6#SDY<&Ql?Xgo?C@&}y^^6!!r(pdm$X%DMv`_Z6_>}s_sA0N` z|3?$*x|O6tlQQwgzj(iD3#Iv|^vQ$?P2^gNqA04X!_6;+2B}9%zZ-fcg=N-dgUw~Q zpMPks`{D95!ThT-6+*C&<%iLA`5L7H!a6w#uj4HS?kI5=&y}ndax&w8=K*FmGvt0b zR{J-6||cBZ3-Y~8=qej#h~ z7dKPzQsWp3&;R_{y6L_tf*f-`uJMyd!RweZ5bw7)rcuqd_+)n@*6eqTN>`l+%&YWaqg5tF4J z=igm+B4~?cgZzYU6a`_@IB$2xY$Dvku(Cau)u^Hr!6$)+&c_{&-0Ek3=%`;_6Qhu8 z@b{3Xq21_JPQ>uDFP(76bRsZpfB^eePfA>7vsFX|=sR1*-uZ3ONj+RQW?^p8!*P1{ zpec!UCF9N)9flaKHm}}+&6Sn1ThB7jF!F|BKn2m+poC>4du5_PUdQ{TXVO@&KBRb3 zRcd?7sMsn;al-j!h47DXEnmoBZjP3BOp35U()hbGs!o0If{+9k`EJG#Tb9c>{iJ*U$p7+3WxZmXRrPC9W4fykoCI*Ra;T*vH zieQUm&uBVp=2Q{3Ib|Z3n-ZL(Imh@zM^OFH3%Hu9I-87(r{8{00%7N%EoFBx%y(_Q zvSVjoMo3Vb#7o(0(}rgiE-H+q5F?)fnJNgO5qD~;VtOkUNYe--yiQw5+frqGs;ie} zZ@1j_-zuzJJz`f zvAGbqVUZ(OTESKYzFt;+mc;fIIMXhjx^gTsikqT-hZSp_Vf&~*AT9h$VG3{a8`A?r z_db$-*FY65fk9|{<8NQZRW(Hc{f1RiBZ#vAEA>iTmoYTDaPl(lbnv)FEhvKg?4g0<08fCsM%hEDx zl_$YE#$#diC7PQP!s99V(m4xHrZV%6IeXh=BC*#DSQ^$IzW&U$nYiZ)O+qd5^;|H1 zo(E|OmE80czTX#Bz|~>pa~glfuZ(fe^$~j*8ZzuMSs#w+1SqJuW_~csC6n(b zq#o`LN^~1^uT(cd26CJkOLkb*HMa|sjUG+p%P&cS=gcvlrg2O>2_lrnKF=8VOF?A- zJ2b4I6tZ)qV^+br4}Sp1gH(z98{P03UaV0ba5P5v1)SF7Rn4cd&3L(lin9e5E{bVo z!22ES;(GR#EZ!HY`~LSyf7cvzU@$l@cx>lTo4@wD{EEBdA5-fGPrrT?m!PN0i$63q zsIsQj3LcUFYP0uoUPup%60v6f8@!@WwAHhAwAu+bf$Cs8Y(j=5%W;Ck&y-br{O?In zX1piN!cu`aA?A?prN4&`PXzj9v>@f`bg&e6d=OAL|X zL`F-axYDtELN8u9mi1A6bgP(bPS%;g`n3PZF`MXdFA6w(6 z&5tWj;`n_L5vUukm}k}5tJBgf>-W-Q$g9mrPSGs~VpFQcQpys;@O-_a`#R@;+rU*t z;VXp~J-^+0POg&Mt6Ecgg`Hj7$+SL1^+o_l5pBs#-E>#b(o1>kTtRdD0xs-9l|DEomKeK^*Ek?A&xyrvg?*SZlFH;J}%+@-j}Uu$}2<) z$VW1}GIlA!GNh1{qbwt6zBT|K4fppp`u^v})}G0sH*zqjO2Sg-<|r3(WB&ZwXp>cJ zdbujC!+JU>QJlz$fp$n-&oA8`ud)Yb-ig}XX^Klgk|$H$cpYsd(}e`{hl`r_h0@O@?gYo~HW@9X^izBv{3EVRO|2`9UewwuRcqgB7ouKI#i*EL;iBZ` z9y|kRXWiCI7gAvC3w%Y-NqU#wozcKzqWZFri}RF_lv+9Q`tZJHd=*TsUaajo=g@e4 zWn4o%XB%x$K>YdWnBL}9R2TZEy;NatP>y<2?KM|A@6meYNfR(YNLMPVKXpkRJjXeVYV$On7SZibmGIZKuMHOZ8F%EK zw(fmX0s3r1BuErQdmJ}2aT&)Pbz-S%PMAh%S19&%sgUO`$+=R?4ARP6KOXqtCnu#` z5ri3LD7-Jd6H9H28%{ItJheVdPxPj;vD<03 zqngULQ;^Wle$m-Wu_(E+r3E5t@14;L8RSp{njittQfTJ&Q5Ke*5kKU2;x> zMwxUPc*Hp^!N=W!oT8J9yx=RB!{dtlYq$S!gNC53y-T$Cd-2{_2@Yt%U-*P@ht^6N z_lMh4V6`}ZV|#<=yJJF0f5ory>_gtnvsFJbPH~#*HZ=UMUk3IXQ_tqeO|)cc@x8pr zO*2S#IKP(6wf?dOB`tHB&E+zScTM$7r)KILz6+a+b89Y~EC?L*J`Vt%RYfp*`99JK zI6|p;h&osWlFh#`)!)i5igwsq%&j0+oNZIS6^?J(-yD}+jyX^N@`+_1)I8vce9$ix z!Q^Kva?(LD_{_{uWMb&)fN*;NeJZWfq{++d55>A(hy&1R{P(Q`FU?^gFJK+$b;MY) zdcq_9Y3U}gLoK;F@uP(EPa@=DsepIXn?QRvwC|l)kIna%Sehx>4z7AdM*gcpyFLCC z+d}VaTEHAXKdO%FJb}^-T zxEVhw2{cTsK2l~Mnq7rG^0mpn9IaUY$d~?suZoYmMuH2S zx^fg#g-m{;D*~!ZUK*|qa##1+wz1%sD&AUoCU&kjcW3Vm(t-?+hI)O=gi1?uZ_|#Z zuQYF~8ws}gZ0zRM1W(aVTvP#V^C8SGXB|ulaQf@t0pdBh))L;9_RzO@zNvOhnK881 z*FmDn7syze+z1510|xtxMAT=KHRBl8Bc}Hv52~=v4T@g)By|@Gc}{`SQ?{xdtqI-jDvq} zHE`W4zG}HX3qiXK4*Zu5*$4$Z%Ab=>58D0?ggQ&gnEQ*g37ukj6c=CRUY5nEew=~1>@7B z(n%kHps-Ht&WqkkUe09u^VItSkl+LE@Kn)W1NXg`;Q~ebhZ=d?Q$U%+U^!HzOf?pW z<(lp`&V*jAtxbp4!MV2@@ZB%T#ZL5YEzOmw36Oce@KhN6%d7sPQvW!CAR%U8R2wJj zT=?zZ+PFsQ=u?Z*sjwfQK{h@0g-Npmh!WT;oQ>d{D zEN*lCSY*z_YCly7jjlLQHs>Y^3dAWZ!Cep}O`-;8+_grA&u{DPVD^bT$jwYKxt>h7 zoEw82wo1_r|CrF`OkO1DA6IoB{VvY&C}OG?*VrQ{IM^#1HBVN2RFMrARRp!BP6;fo z)gop3tUEcXIA1mhJjR+CC)TeOmg?sx{F^*A-ff>sU}V>}4o(s8m=K+43p_2mDk5Pi9-0rl4 zf#{cs{}hyM+-r+xDP=q?)=Cf{H~v<_HgR6<6}D*@Ch{&_jG;;%wLE4;+Bgoy^P-qK zsE7jitgZ$P*%lxGkHYNd8;?(%TvIr*A%Bik$UxG*>6hdrmrK8pnmIGo`yL}^YK_`= zzpT|k8i#|eOVLS4DKBKZ!tMeZBF$UA1tr6L#vQnN-GoPP^@6e7w1b;ebx|jMo zt3*hreou4(!M`}4+@A32v<^Q!9S3)SCvb88Xw=Sm3D|biQEXiT>Yk^qO70E4E5dIu z1?GOPn{mG+e{yhkm_(oZew;^*JOiBaNegw}$9TzJavF z96$RUcG;!+;IN!eaH_|)$wcO&T!5KxZ%hC5cT$a)u5fmqv_X;yL`gc>9_USwf`81H zIJMrLCh(sZybg8mdLDeZGEi;)HFyTlX{;M|lI(#FN$wQ7drxTX?#$^!xkeTRu6-_) zpmoJ3a9XL01d0dR;e=G@=I@|Yqk=EC0-z(^9R7{e3E0G1Btls#g-`uK9#Fy32jB@1B2sg4J7o*fS=x-o~_ zUez&GpcGQ~A1^wDSd1H%!}y`xIY_T33lo&M?-A`xrav5Mho!kFX|j#aKLc!nvf8_K zfs9}Kg;zerFA30XK!e#aqz#oGt!MeE_A})lo6no=g$)b049*Nvw~YX}tU>D9w@=ka zz?LwhOM_A2!DfHNQOUkav8xqoZuT000^2^D71rCW-c3t?P1j;vlYcicT6N{~GMT%w zJ3#{1w`YU>(KwfoJIzIbcGv0pHH^!PVtz;5=sTmI)1-fsE<0zK%Tyb(YZ3H~vU}1M zk?`;tp!NnRWOmm5bM3RR^SL6-G2OPF^swn%DR!`Fwqapz+rkNV+ZzAHK9Cy#WHN^l zvN&V9@bCz)D*bhsORhsOAHh78Z31CU9o}R2RKd;&VbmOGaYWxO!Ti$aT;z9gx~-jJ za`+}(pK*&D04V(*HdPFl$T&-+?d%XHG~^fWfE)5KVz&(mjHg+cVObqJtM=M)SH8BE z&^P1x_UZ3Bp1$5=EY}!HhETBlU5DViKj13+Ejv?dZ{D15^4vg7y7WrLgS0a z2t8}s8WHGtk?FK&v2gQ_i?B|$sb;yrqsGb-`wVq+>8bYwSVr2_`f2O~E%UmH_pC47 zowzyw+;Dq-`?L~Y{8?s{%Bh8>79VNefS;-=omp^cDTLFCyPn)h+Ygdo+-hJ}c{KJR zSvzKc)$MUzDr!NCLrUVOCpBL-#+%|ny&%p5h|b!890mr^e=F4#w-oB{DopaLV*|Gi zUe^YP1wUNRQ|G3YmkRYBI=kCrmPh4jY?n9L12o;sb5L!VD|gv>Dp=9()NNv2dS#xP zW>PXn=W80K3DZ0?w1Wa=DW98&Ded_k63NKsFHWQF4Xi{t(?<~Wo3z$8r!gZxDng(*T4D@ppzd(u# zlZ{>SNe1#-*$9d+DFWp3BXqiwamls+{TV~5T85evZ2*erWg=W})3aAZ=^RO->_7Lr zGCFBioj#c-T=Cd#ojW4WFLDDx$f{+xyyCVgrj{JU4rcXn z(@40bk7j*L-j=1CbLMtF@{NbMs?J$|8y&yJp`G@=cBYZ4@8+&og5-dWlfFTTpEhGe z$a>0*@bG7&}~3cwX!EeuZE~R#Q_sLVCp~z)O%tF&Kl**}exfeO zp?6sy?Y>v2`M#yLCEh;5Y4xR1sL1;jQaMHT1DC76x@_@858Hfl?I5 zpM8#dFW6UnJ7G~JFBR@xn4~Gf_f7jlt60PFWg_8L;Kj~a15higoM)(K->e%}xzzvq zJ*I19eebMcvZqagpYqd!p`c3fT+fV-a!p*AziaBK!^~NISpVys;JHa7GQxWrl0z^<&8NHOJ)K{E*yP zrbbj1$W`xEh|xc`)b3YoD1)dn_ExBE;+YQHo4hq~ztk}t)fstg55_*WSNnN_dq`KW z)uOgs&vf<=F`*Y)4FZ%VbR{cutM5wZJ>Pk2>?wS5iRu5*G{B-Y5H4zbtH?U045IFS zTfT3{FeN1^T=cC_uYAe`0+h{@99KZj4Izo*sjTkeFAxJg0#P!S=>d!5abF&@M(Rb6 z+;6Nl7Q7X%@pVvk4CxHyVK6`gBZ2JcV)c4qx={clRh4a9(zBc?)TVMTd&3|2Pw#_m zp9ElmmR*vi*kFTf2k#+I$)x1d2VU_kt-j;FY{ptfZ0$*(;tK-R6fRtYzd<)>3F6#! zFjWG~T8{Mh!H08Z@8ES+IhJFkV7rmY{u?+E{1X3fXdW%GBWAs=h69%V#D8^BQTLmc zQtP4F+{iSf%;LDFM9>cJe*NuH{U>6!iDQ+~R%t*k-{m71l#ssLNO135W~%l6dD?$+7ntavA-})(>^BIoljnY(PF`)*c_h0k;XRf_calgvZq@ce{P5z&9QJ` z(|84Q0z{sgI?E48BjkJQIP&;JUkf#t3{opLb{SR{C~B3bGV_52t5`^)`Pj(F^CIo2 z{C+Ff>0jPL>Tay?2k$Y$Up0ikq&#N90x`^QE%-P1Lc4=pX8PY1fVk(}!`lr0g`!bx z%yDfJC38DmtOW5yn<}Tw_UwL{oYT~jc?~~DU&byab>lZrKr`;Cp(3urYQX}=salNA z?<&Z2>xGkn*O?58!-$(OGgs^b%Sei(H7wZ{tet^7{D>wuC(Bs-I&dDWLmPKNSE0h{fD{+2a*L1Mf-{Po7SG zNNf;-6BR_;hHl>1$)}$$cst zBhH&F@{jaCid0*U=pM!iD1+lH6i2a6nKi9?mJP(H* zoDPqT=8fK81GEDss!uDgoEaq{8^)dRRyIpqu*vOsUA!asfq!q1w=HnzV~9 zcoSvjaDyY#+K#8|)ze`w5~G#7V{G4wM{TXME=#s61tSBvR;RaMcJbhw>hHX7DoRnr z`5gvmp4^Z(Ok5=TkSdSNfZ56ya9*(@z~82RiM@PDptCDNPNY}Pxo>|x&xR?rc}z?&w}!-o|Jq)0fPV1sp0|5nSB&xZ;H${JBBR=2^_O$b($j zhfn6xQd4o!Q-&6kl=;~r*tl0v(nnGu$+P}OWf1PlAZVJzd2uMI>;Nb zrR8}$rpe3S9_^P`{v_XHmxv1Tz8&AWC{eLOkT-9qyXc`vsXQC=UM4j@9rl3FDOlO3 zFQ@OE2g}{bnpHMts-SG=ik-9EI$ABIzRevpKXn?Pfp^l=jZE>AHAZ4YOc%boVMD1Rf zMDhl(^|_yp(%Ch+P7R?-?+q!Gt`XYv!PUb3P!2jyQ-&9$C&^ReT47= z;Z$Lm;#p`Xt|~x!b248jIMn2T?BuU^WNRiQMsI8nGQ8sf(Hi4pLe&U=SdS{(@z8kQ zQ&)wdB}?gO2^|i9?aEYLu9EYuPHG_L&=U1oVwe;D>`D+?q+oLYJ=85#gG28D?s+}5 z%ZQgRZLLzqacHY9N0``bgP*jKt)fWR&jiIGqpq_pd=6D7L=G9K``r_R?+2Wf*dlVah z>mm6;{4cn4KX#ep7wknT^}3*i#{JfiJDph2xArUH?Gh`Iag zS)P5`f`9pQBNvXQ@8QE9jPrI|37||;VOh7cRG2Z-f`>9m9ux2yd~%B6HUR1oW^|sY zU>%%4QZGjc$q5CaEH#c;{!atnk}N2D5|yOB-T%Z(xXnv_rL2$VsW71>sWOhDCaL`X z6MX=VbZrgA390L+@CoVy_gstsYnLZ%ESryAODZlY#h!VX^~q$WYFHvscw@H+S<|>@ zkBxmUqLYNixc7Ma6X-F=)rCb<<9((RYuxBDl9_GSmciORo=ePHUG`Pj}FP;C`!(E483IB;Q~KDD@XCq3PE&F5xcJ?ICu~ zE1NN3rmdCo{;FAzQ*X@ae{kIV1$xxrwhaLT?sP1hcUFZ^P%Lm-XHe*&^Q-pG0x{RJ>d~_Vbu_>gyCzv|*=1^FhBVub)N(VIlOk4-6Iv&i6 zoc;nd!&~U}JVv!Ap8g#%@ltggoSKrh#4+J3GKi#xJN}}g-{!tcf&^5MMal@SH2Uwu z?v_69NO9w(=Ii*vd9*Wa&3asYL5=m8ML-=h-Zpthr?R#c#2%K5?yP3NS>K*O=rMvB zR%$g%df$~%WVdOA6s-Utz%pNw&w_9d9u^f zEM5HoRKd~;ZsaL~n;~nN_w4XWr|rZb+HSoN70E`z-7v5AyeMhPI#;EhCF;ri_l;~o z=}u`ZUUU_UH=nM_-VA;)?jo7?|P+U$UpVnKGv%qX}6|(N%|a z24;;N-M#WGW#RjDSXy#OUPC@e3Smr9&Y$@6C_7Q|m!}^2*WW%_T0UiJCBM53lG>d0 z%eb6|WeQ9{VO8V^!4B)f;K-9R98u5xFkrenpb9l;UDpCkPuum~p046N@4Fs=e?8rI zGIy=gkpP%C68-1Lf5Cv*mb+Y6SsirOXm~AIoH8dtyGMnE=;xdNN;Rf~6Q)B@o650q zSxMx8d`cR&gSq*#x(>Ct72g^x+&N`JKRLTlo9t4Hekpm~xPoLO(B2|UnP;rZb9{2A zdW-u!BB|WLSZX*d*>b|mR@W@34oltCPJb9$rqr9jpQ9i@}i|W1i2~FnX8y8@G4Tu%(x(; zPjGTTrSYzA13e>{qT=nn#{&JDlSn-J9U?9stY4GEGI$*ics}mq9cJQ?S3kv-hbBd1 zqdd9LD4;Ph?%%`U#}yP`v)!qtyM=Rm6D)HPqE<#a;|T4$*{|5s(cepOlI21deb#7= z%i5~|e^?06O}coJ^|o z#E;`rlL~osfqM4#WC?!?1YOK5G@`TR)FTT}QLHnS6>{xA_aE*CyJp&cU-4R~B8wi9 zqH^Q$EC#X_I>&Ng#ysV#I2Hqh7F{+%V4$KR`6KBjF_Q4oJ$|{)vN-0AU7-ar?@je@ zF;+%cBDIsZZi}gEb3+rIW$!e&Zp*tR&|ikBc4^BY9GPD8am_P5HiJeHp#l@LdOWzf zvZZ1_n7(2UMlj9A3ms{yn?{$2JA0Mw?&I#j``yQP`Z!Dyb45Hyxl1M@w4*!*peE$< zFKNlUG6bePGVWLcnR6!feXr=_MxQwt&tNS-YFPGOq!m@-EyDh@@t78dH1P2&QHQ~ z*@Rs5C_EzTkiu2mI10}xU$e%FE*_O$4)%v)C9Zx3v z0c7oF$9VU!?4|r~-OHu%lIhp&OXl1r(_p!d-8Ev&rstR z!vQ|_#+AI(pm<@Qe1TDrukeWUNl@tb@7qw&V;l(*%lY= zgyS2Bn4Nc1)&}U~%U1S1ei7~;i!;{e-rL4C_k^yc9j>_@zap9C0}~HP*9l}oKRp`c zBE8!(p)j?8jA0I4$CzOu1Fuko2E`9zoElr5r*2)Dez(mzCcHF-cFTg9d5xh>bwvIZ zbIK@tVy~m=TlCGuc&!Hs=Abmo$ieNSm$0LXlS~F@bV+2Y;8?}W+OX};=7P=Tzu`CF zE5JRHE12CWkAfss0(*mJ{#n6U#jIt`?tBKPX%pj2E06}qr8#dw$P$!Iigd-nLE_`u z4tSzzaYOAyIct*emDrlU`xGKRjh3=W0^`-sVL zM+Y~W45F(SOkxI_{A6*W-o>J7Z(Aw#REL5PEQ7QZ4J9BmS@YOpHvI^Jhs+$ln)1dK zFY6Z)(eTemyn0^9HEqniK5-TsWRC6qQQPMy8;*E#{QxhY$zI@jzqziVCC_sDw)*3U zvr9*#X6?x6)x?1W$IpRv))bm^(~F2%=kjzlMurydSWmriz33yM2}IWnl`0KpQ2~@7 z^#GIM(3UC`sF(|MqP^={Iq}MoD8X!A^6@bb%M0a|E!`wS@Rt~eXtGG4)GUPxzCR{5 zC9R``0_zl|)89}2;HsQ9COR$ojWfh0nlB?g!h2Z6+5~xWWkI?vJK_zyWK?$Z&A@rT zHC$a2o>@@SI&906PBB~-i@Vdu!l=)fhtT_G>`uHcO^+VCk0}ce zZms7&@(8A=Nk*7Nd7WzsS#5`{MYq=>MZc@Hwn8e(;pKS%Q3P36y~O_B^B=hJ5J}^L z#FOmo^L+wkRBV!VnqHfG%Vf)GwrMu6QSWU23P&1-msk01!_l_W2k_9w^pj-|y|#{3 z+R;S!jdRe8#w8@PyXsEE29BFVe~5cY)B}!9TVni*f9@MQg3)sC^8GF2q=C=kYg37l zB)h^c{2*^RAy(V<)83=M_8+^1eE;rPbtusLwv^R`oe*&^#5tEc$}{y5!cP$0ZI~t` zQ=V-nQEo+<+3(l*1iof|TIk_w!DNCBW|k;cEyIsSe|@`Oh+rLn!kBpJm_cRhig_=Tl)7O=PM9f<*@8+yZS#6Gi0blesA@r_B{q(m5Yd0!7u^Nxk-8dQivKr*2pO!UQhg zkR-?3f-sE{)B5^cIXGJC=WB1RfUz*0hBBKijZ!vOJ!X)pKY{PT!B#Fc1XA2 z_M6)(h1d=pIw-yB)$xJOykJqFl7Z*9TZ6hfXjTYd)H$9s6|!4@>{iTjm+)g6KO9_s7g$yFjlvud>1o zjowU%I+cF;e&bI34a0XgZn*x%{I{YH2L+Mr3J(5r!`$5N`iXf;R?6ZA|C;Q4>V|;7 zQfs5X?Ed1(6!!O{{}~aw`PY+`TbjEHs)!rG`oRmTc;m#s^J?BI_Jy`dc-j*}arPOP zPdcc7`^uZ3mS|dY$2Ir%VQ{QzF#2A$-PJ@MK5=Wznd@<@rX6&b>9>W&Jl?jJ0_xbW zJ6Q%7wQeQ@T5I?#Q!88D>Rb#ik(K7!^B8h z?S~Xb-|-DPM*1Z&psQ6b_qbeofqX$Nsh&%}$bzVA`wmfoy%J#QQYTvyuL#D6*bO!O zbVPlQ-cRuBsdxaILi4=vx0s*izoEsZ;O3FWhbb?BIZc$q8 zB14IhDxJ38kar%av96I0=DA|BSdY;3>Q0b*CR#uC^h5!&oq0O2uX_A!#eHlCm3ISb zTucRZN8ty4G&M$cJIv;am-RW4)MC3zmrZ&$G72KNcj}#jY#S$q^ieiX-Rh>}fASwP&gm-Gh0?AaGY^cfIsQ<6uIW-$%8+!gSc84GW?Q1dS1(XE_Q& zPjKgp!u5hWh6o^ZezxbD`XhRGzvC1Kj6_PE>Rus`@2jF7T>nN^_r=4k{V{uN7up$n zbs=++F)+FOIfWLCcKe!Sx9mUh$kPG*Yrs^56zCNDs`g+vc{ zWe`U1U;(tR`AtwtnI|o^y7v4lx?**yUfV59DJm(~B@K~bfI1xO!*~nJDU(JndW&(TmS6;13>sxC3nP5Wtxm=5YoAJ;z5)a;K6nHemg?YGgroE==Sj@O zGK|hGr7Qd690}to5;K9iVl8HTeFwAGp0o|_Rs=?gJ3qmwVFHumA~imclS?I$vJ*ho z!`@u*dltRORp+2qFQ)szvg=sWbqP~vr_EU1F1I(1lM1Nu@ko6dlWl+BQQq%FF?U$2 zrAxP7QHqrO96u`EWs5y@8hqMmQi{6^^4Y?AL>CK|8@Ms#NGB&w**LrQoyDXS{tGL< zd@&)whq>|N6T2iR#Cm3Uy2fOJ z#4oKT_`beIzp5aDM|Tqht~5|p`EOlD$*mKPvelKCjY>2knrw4)O)kGr#w+VW6pcI? z=hEvDG5P5$2$o)oO7>^jj-#}Nzm$1TD^qGe>R9LmB))AG58J((lrD~TMrdW02>+A+ zqOf38x9!^jcaC%(Q2+oV(4Jza%a!4mwlK4)Hlh4cPe#%wtLGhw-2o@%l+vLC_|dLK zHfS3)=7nq?9L|*G7jO|ag&$0^TJ6F9SZA%`A3B5du{mr>b)`1EPcYn@!L0b|_mCGr(BdIXsZmapf#AzKtgDx+ zrCXTY%-n8VTl}2kyIRTX^wU+~^{YcoR?>gEDq)LvxBPI+^w45VCM8f5_1vCoUE0az z#glAVpAaHKA&yi`a}EfMQWG;MNbYUIl-xMi<)ED0KXa~EO0gtK)S7~fXy4;B*-8;H zt)gcmWvKxZc8(lYTo3f)g}-X{%>^o2M2~x~wN3ER{upYqU;PS`g(OY)8T7183Qm`R zBlr;F;8-R)u3tM1jMR2XDbWZ5iH zYtvD&UchZ3T+mgF&S^Tr3sYwtW&p}L@5Mpk9(SQYgbyC}A{wR9-9cUuKG;+m=8WDL z!RvC3iePueSPuJbj^2P$IbaO%S*edIQZ&2YvO7wu#`O07{g-yseSQ>2xoO2%LsY`_ zuVr<2$iH!u*)hMpzKp^odpv4HC*4ookmKT?faR#%FL;TbkNw(v;=oAEi-YN(h_<9t zzu*3Iqru^ek>@~m`-PcTYJn!=Q?6|3JFvL(yYKCr{RO1btD@UbV7;rBEqNxNDIAuq4y$$B3-(45(K0t)Bqvg^Ly{R?p-Tc>->Fk&Noll`?HmU%#(a2 zM%L*%)19ex8*k?;D&~og$&gm@F>f2tw@9z5@u6|fk&hiP=O&#+taS&;E5C>V3eVT> z_tFgeD$sg`;r>mc>@i@czlR1WAK$|Ln2DZw4i{1R&he?{9=iEfc2lh$D>ERiE2~Pr zM8L-1bx&3w6Sd=Zq3(v#=6#>fl`OylkAWaPEp1JTGm7>$bn^vRwhYtGgA%t(t2CMS zmbH!QCcVK523lAtZ|{FocXq;*EpbVDGW!VSg?JUW2U!$CTC#ePmYrafmubEVRrQ+nsqYv>YA3q+~Uv3L! z5w>kI8?}~^Ue^qRfqUwjA2-76L}{SjXz8AR*Tt&^_Kw%ojU)uu^gFSYH}Q3rZJ%{xt#&vA|nD~1Bo z^IYYEZT7w_bVK1sM|`fz`_x?4=Qa;V7G7(4F`CQ&e&MTriURhECcZQ7EG-SA1Rl{I z4(%kI_c~Qn2}kQk%e{a6Yf1~nwCpidlqS6K8zJl(Go=>we&VHKL+-!P-2ml~p^t&n zkRi6~}*(~q3B|Y z@(9K(cdL9qduZ-3Z^DSgm`P^ifD;G@vM;{a@GuQ|oZXpQpP?-OC6_f-g9=wrd|>dO zA$50_f^C0*`Q?Es|NMNgJ6FcPd1_Le!|d@Xb!TRR##I6=JEF>Zck9#PPU^QKdb;Wu z_J}@*?bP^Topyp66`Ulp0(Kzkl5AZ8m8n!Gsw{5KKsa*qF^E<<%Ut23@X?fC=Bqyx zgFfc~bP_Ro^JY zIBsZ7zj#<$R4aDFDD0|?;*3|EKi|r4=HT4tJiP6qDRj$4>iXg3j>Nx$9C7sg>pl$BIs6s_B+*fpN%D`3AQr^ zTiTTSP=MZ^`%_~|mgNUUPTQI&Q%+P1rywpQhZaVqyGJ4A|(tmH7RnOSE6tswbGH$cj^py%E1zeA# zPk>SV8}s3Dhpq!s=h|n!@s1SCDv#$b-knT)6JOUi>=FrPCT?L3NKftyJtQEa%3xxM z?V39OG?VF%$PlN(w1DySL5I!I$xz8;hTe*!fUl^EDXF1jg_nz2+VrQMX|Jy)GxS-~ zJPuky>e2zg-9l!!|G>JMYxh$bjO5|lYBd8+&2SALx*YmvoUu7+hS?#)m<(3(99W=D zNAI!(u+x&jgquBNVLW?MuosvSYS_o+N`8m_-TGeq@z=tyEB$A44~J4EzV0VlD=p{; zf||#cERLpy#dIK2D9vSsR<8qc+a7$FtdqMLcH14XH7_mOXqV#(&E_C=amVDMW-z#y zx(ebD*#yXt?xcgKRHbz8|CUp6e7A^&K!KKXUGb~6uCbHg(9O@UBblu*lywifiaiOf z1g;kqf1BVmFxZf*7X6Xdjy9>SOR*V0^SN_470IX{e;2MThnYeMQpTNGsvSxtrb0)! zay%x}>LVIr(zh%qHn@X^zA}!2rk6B+cl~BP88NoJE7pz4;n!8>N$JgJO0w+33BD>! z8r~~prNENOtMOHRH2Ay_e&E1PwXT!#?TuKp%I!>rc1$9KI1(|IBmR$~P4!mF`r z;1KFnHe~7Q;+ss(sb4hDo;})`Q#`ZySZ(FKaZES#MG<|H605u=@s0Q0+GA#E8RJVnT=V>`bvk=tG0%RF5s)3QUndbA(F^gyCIMu6U0+i zKtDGc7(bnz9ssS-Ae`z8)Z!{-0znN{TS0{(@vUH9&cS-`MG5BFhpNwed>tPGVhCeV&Q{zIi9=-a<>UrtgYj1Of5m623-TtTwdtRx zyP6lTLzr_lGW`~&$TZ7W|3u8$i%gR#Bl^j_1Vc>MjUD>1l4Y+;+m8bT!~WN%h=f~n z)?ce)y(3tOVMxSDN}U7$y^#-=7fqM08+~K(xg5~VtOF5cx)OTpz`Q>cG5l{Z?y70+ zjxi-6?!f*R9SMQer<}+9uDMcx@?)YhfbBs!n82R`=oXadKaRcM!GmdW+c;NizHxfv z7ny9%sGfXIJ?2j)MX66iWL{v_>XeN!>t1+=x<3?qR9L^;;~wjVNlfzqsN8u8hrC zp<+qSsW>EMI?aAKw7a0Jf1bhp7Frv@NKPhYjmgcsH^&U zSRj|##+4TIBKb$TxG3Lq@i30;h#|DB{a(kf_QOLdwUwbW2-)b*Ea`-J2+TZauX7?O zb;665iC-LI)fF0K|ADdNca%e}pVAg*IEKHmF=c*M_=e>^DQAISzg8 zRwrnJSFd%((F*mjV^53A76^_{8T_;vF{Z#A-|tRrrM(gD%TrsaP5r(SkS5?#(*<8# zl8W9-IEx_oqP)Ei-G#Z05++HL#xGKOtB@88!syyu!=f(tL*fHOVQ46Se3vJG+@bF| z5ItVF#t_Z)E;K~`oSmKhh1ZHoTN7jJlG=CQN|FZBs@I>aIW29JMo6sdQT;S@$lpsm zRc-JbXEdSyFOgTT{)-Xo1hXr`Is&_A-f z>Y~&1V{K(i+MNcO>`hbpoz7*=&l=!XgGY2Z0?56<_ReU=z&>51DvTJPTfQ6;z`R*$ ztb4dp`fKJSyQ|~;6A$_Z;@SLKb$zLX&=$u^#eP{(xhN>j%SJ`laFSHg%A9W~bfj}= zKiq)GKAl2K?9LUDAV(^W(KvCR1A*l5@K|J1^Z!dQFVd8k)B0BNQIEMjQ1Gv+#Gxnj z@y14}MxNUP2%Wv@R0ueD%An-y`PIE6KHgzkh{O2y5LY|-oV3)1Ne99WP(U(YKGUIQIEl- z2oiDRB(lUWbs;>A^)=M{pWjY_Es)@c7h~E9c`EKOsl;+hi_~QGBw>de=D}VVs!v$F zWrMCi1}BbFU&Vuy+8-0Rd#w4BU{bF$7eqSTn#^k@#8cUC4FtIc7kUY21t~AJao$l;Q+Gr-i_d;r$IqyE{s7!j zy2Z}QLo#i+aprA48vIxrZa-qp`sE7mE@@W3RQcCvZ0LWoiaxD*vh>>n|>2BLkyLS z>~~|qPZkYl8?5tkVB~Z)9?Bo0Bj&oeLUeqYewQSxORPLoy>$owZ2eIZ-*+vi7m4cK zJTz7QE@rYS9-Pa6D2y&OfTRzc8>l?=GG8YL_xWmY{h_5xRaMTfvi*?;>$duft|(YY z-!OB(T0m@utHZ8ZKrcu^;PaQ?lcUEp%He?$%4Hm{#q|)z*%o<7QI)W*0ftza-GvH! zs>ws_JMEhGD20w^K@If_u^AS_nL~G7>L$*)6W(inENMyn_Ev{l>$LL&pK$v)v&Fk3 z-4A`PEw0*XE2cta@Rx3%+(+qdaR(qlmRuj>^EQMCV=~$C7>oZd4(VNAq=-l`&2Y|n zvLKCj=6MixPXOJ0v7>96xiggEB_ zf!?1ylf8C0EKVhFIT|x2ZdWMW?kE;L4AN$_U}P(vO8)pBo(E0qAE$3tTKLiJq|sQX zs+2Nw6hh~!X?&L+)RJfOubA#+pm8COtx)018QVDx%g)3Gu*PV?MIQzdoI<0ZsKKMi!H-QF1?OWJU74<(cSA#?h0naO zOUB}B<=u#_<0h7Cq2~2RW)J6C)xfk^VNR0}|A|XL1Vi8C;Y?7U_>qylkcX<5>$CS|kvw)WTN1UJ5B}Qi|;|H8Pab7c}Wbv^|4}g|ad8ij!x!5rl|L(*8 zx90u72ss2HC0UIVfBsJ!0h~-S!yeuyM)ZT#53LA_Xjfor^OQq0`<%VD_v^!74}w>2 zKBRB*m-lM|T;vXO&P~$8L6YmNhLq_W#F24MbKCUlW}e5knjT|w8%9V@bvFRuv+s#M zgNt`60e9Age1pimzu?#1L1j;zLeIAoq$|qE_lV&>pFG61=^E` z^~(_c>_rn=skWK^++wtsbmcz3;&SRYVNkS96zQuqQ!Lj=G1aJCxg59+I_X z=3y4|c>CXn$^Iq6kOQQemHvdYjWh|?>!BX5Tmz$Yl&-gwXmDyL~p`yj1 z%2$4%6Gk3>ERi}tQ+`cY+z<8w^!h&kFxiaDmMO8W6`sOX33r2-I(*cE%x$EYTOf^@b zqJo*)3`-PACSAe(w6b_*0JY7fg``6TuoWRang-Q;I#r^U)0wl3{!k=Y6$>e{KMoj$ z(<->lxlI5$@Rnt=7^fP`upZNmm_DbMs)6R|k25^Fwe|)fd)Xw&^BK(8i!_YW_KV)BjdES)6hacgZR#xMI)8NlUIXu?l|b)#fn&M+ z;zaR_Rx3N^m;Hqvj}-qyK|u#>9}m>PgumdmhLoQh5ZW`YFAvsYY#U~PrLtuYVI^Fh zq0b*CVUYH%J4gXbW@vtN= zv!IYN`yt;iAAcfybaszJ96dnFo~Es(D~4V})`Ro===^KJv#wv@Z7?nh&e0x3;7)Pd ztPab(=j5*<%sG~15rrio3?&BrKUT&hikl;!QN~0Tn#-g-<}~s18s5oXB1!&lIQCiS zgd$akg5tK0({q~7e_6%Rd}ex1k*$H=1vs?ydl`#9LWs)7y;O6b!6uhfpT<;!`jq~| z#d0z&E8gME*2eqwJFMb5|!#7W;+`CWW^nWM+Lrx7Y9X6+vb z`Yta9q8NYT7h=biF7&+D+AwMpvFDMtW4@)|p76Z&Q|q<^ef!JcSC2# z%RCh)Dl(^b8AszUeR2Bqm@0bMi&c?rfW5Qsf>yIGxnkN`)(-_yg zgD-F6;ol7DNo?3wTLtVn?V56^gdT&M?K*#@TUMj=dlqRElS!Jtk@d<_8c)bJbmF|O~ub{mWoD=Tcv?u;JPpuW>DUk{fh zyM6q~A{ij?Pi(>!P$;^#@NqiIjz~T{ISIx{+r3=UmBIx01q( z1mzpIo9w0x#&RP)QWqppQhuUKQbsnvnin6CSHB0acs$YL1%&3_K(8%dHkq*Xx#KtZ zEZ+7cQ!QOk{Apm9kf3A$ONOsyAQtd1vtoNDsudHpeBQO{TddUOqs~m58=BbUa)6#_M=uPmw9qZ(Rh>yh>NZqSo z^bSv2PkYYIK?`NHi3*yPvy3UxKg&fVC$r_Ubzt!L@yyHd z3p8B6Zc=_&&&!3;rkg%5-RPg1Zl;PC(R9vi@E|Vmb@1eAl3v`>c5OZg_oD4+A^E zewfy8b%^uk@o4R6_g6<^;rABbNhjcZ1axp&52k~2X5w**GP2*}@!zXbqK@R+3#bcR zp}BP&1;S7TNQJ4L{^OVBfZWJOcSc-y()w}57|-wxZMp8*?m0t5#hbzMAmh@8C`&te zB(>1oa^*gFgKBN1WgY%=@$4-jWp9-5m3ChalG*F5pNzw?*hx>BwPt<6pC_KUTV$%U z5|#@aKW20K3QipgMN7o4wdmmr;{8R!64vYm`~0iI_QhR^Bf3axi1R+M+0@M29}byN&6PL!8U_xKO6JC$kE zX1dF7AgxujnIWdKq{WPxqW2?wRBYQOmt%^RQU#0UICB&(F9_I7G(`%ena?QrXlr*6 zZs)lQsYjHTuPzS&VVa;6u_M+4u$6+|m*e|Q@!U39R`+!hUfatB$d^rH{1G&;g~@)m z{83bpK|Nks`=FsXbGA%axPjBk6M40@uS)1*&v&y`IPqB9N#V6&j2mixmt0NMtzW7k zk~E>}^jK~2?gzznkClU+}HNuwDhWr`uAg{`XY2| zIAC>mOG~Fw#uDerEE^oHsgnlN8DI96>;0aW2JVe-?Xk!5+&uALv(=zB89r`5)cBm| z4WuDux_qj*ZI_Jm?lwjy^g7j%eEFg+6tqmD*-~l%cCjNK@Wyj@xk6;faE7FIt!zM* zqV}w0b-2W{Q?zwPblTUa)8qTB0_Q3BcY$opR81XeQH*S9R*yJcm5#k_TD)97H#)iR z*U$M4Vqyf>S7yezA}+Y)B~s@~x87qGMUy|oDpCllVl;^uqc?r0Q?RKXWN{VB8`r-s z9&X)S@k*3mH8l4NLAgTH_MZiV5)q`er`oQ~ibcy==3WDy;Y^)y>|tH9Pk&|Wu|ko( zuRq7nP!DI=$<{*C#<9en7Q}W6RTp4h!}1+v>=rB+A;&%XKRnG3Do&4&QL3rwtMVJ- zDk?3y5QssGPE)9;xVpQj$f8e^sK|IP?C*63rrH<)3K1HkoH#4*I!L$9notyr8B%cUFr~Ir91EULTKFf?p*Gu^MxFQP8Uv*2@QS=ST>c zyBv*5Y;o0-?pu?wg3x6DGD<|bo}gY7vV%Od%vhy87se`bbFT8_K3=4>Q4P9MOYv~kXL|K5=w9tNdEI`pO*;OcE0FU4WR(A3cEydq z?~IgI91O+ATP^<-5J*M~)|mdoyF70iDk$`W*Vw|RO(-qUuU2=zO9;IKvmp$VX{fIx zNPlH-=@JZkD>ZuU!Hu65mHvZKbm23JUnKf8KP>FL@NlzveAfZ=e8X(^-~>SLi8A=Q z3sWkvU1~V&!e`0a+b}6C13w{HFz%a6NVST~=Q5zcbZ59yx&g9X>YPl{f0{@L*lg$S zF)1Gunt|9TM%Y4&$TUe;MiDc@}ibC&bnH z3{Fjay0tH(HhaALI=kJ+J%EB;TCu4lbAy94){0s4Z%%X#6+^p5BSCcunF{F_7E+In z+QO|&AY+q0@)2Ee__Ur?+FE39Czvp66*Y`9LD?*9s$}r-d@rj|LqUo#bA3UZEu+AB zDrn4UPg4gdzKeqYy%G#{V;!1AWk<>Mb`+znnc7;2wtXymk=4dp+teH5(-jN2eSb?H$5p9mAU)i0yfsU4Y(n#wjqGoU zCQ-6`zRrd>Pxl}UH|^W{-Apb=O@B|Iz#b5Kttjf9Ll6rpNE^3VLw+3~I`wQ@{3K&N zpJh$oouiW;I|k@d3dBl!BKWZzA6y$AWN%t>F;FM>8E1HJsbHFP6H1;b4y>;O`OWy9 zyFrOvj9qI<3$(%m11U@$wXqI{M4vB~%Yl}*+IKrpJNOhsnGjx8^DPy@+P5oR6Z|)o zhm(#upQr|veE1iC>U+^r#1jHDm1@XF$K=4~d>V!_fVw_}|8Jf~bUi^^xe}NX^3%Ki zv>sjV4|dO<>3?C=kZz_*6qm9=oSC71s)$5#_eG)3AW&@RoaBLdX#rgw6ovj}995xP_U6 z*{z0jI-id-zU}E=MaX6f1R4}a9FzO_WYsmUKLFmEaW#c$nFN7*9 z647|uC8Ih!mt9P$O=I|&G`~#t#T5<4R`SIc?{A0tE~|B}lO@$W2fJqeP_V;vhMe_& zzUUz!VEABkC=VsU!y^mV%`OhmWr{A6{F$u9v+}#&C zY7e+?G`NI$YpDF7T0_Pnw?!OCX?={EO32fBrF+jft#eVMkAFloYCYlXf8^oe`;3b_ zT?`Ry(2ot&y^TL39b&pD4(OBWLq(`xt!S2!ATy#((dVxRgqtU;*ls^f8$O%A%XEw} zNi_hkP8-h3He7!llipoA4V)7DOnZ7ojtbZn^%>#1=tVZ9{r&JS*7XX`~UM4nF-m~ zef~NBiI1ZXIFrSATqb#i8kqo^`HjVnn*+7sit(Ew-o=w+KWE@rq$Y6^B>KrB$R0rS z)~FFDriO`D)7&s>s{~@Xcc@r7{NE5hAkW(Wthuau6Qyd3Ld}#zn8-F79tA{@ z!@k~Ch}Zca3MviPE?Q_NHU^{DBK5iJonE`11JACicaLfIE)JYjf3bq;el3_O0=&k7 zq#e08@&BmyCcD%Yq)^6;64RKf!?d_6a2tF8aaW7UCkQ72D0bg7ZTi`J1YUj2SkPDn z7g6o4;SYOM)}Tcx8~+iMdbvPmf^ofAVRgFi5-ph2u-ir{Uy#{2lveJBp~|>eIJdby zMl3B+h9zZw>WmJr-7_#nvLW#4fn(J*-r6iJT6Yxdt)Xe{1qTBF{icC1&aA6FGVF$( z&5M}0`^mWeVZ$&{E4U{Xem8I_bKdC~?4IQ&^DFy(A&iab3vByGiBO*B2OlwTU*B9(+%TnJH3gMY zfXWhq52YCea82>>um9q&`N`bB8trwYn6_&l*>qh5Ur_!M0V>8q%=$*=-T+>^-+@bkp9-2epcugvJ%Ri|0@E?s z-JX`l)kOZGFv-WgG%@_)?Vc|llBZ8?5LJ-n@93iKN`S_wq%dq)w$Fa$W=>4zdbo*< zjt@HD;6P2MZM-O?mfxA4>0wW^-wixI*6&fVzul;4>WLH7)H>M~TJ4ZF6Ib%J4)9S; z?P}uz}d38HoR-vcYr6ATIpB3DidK3zJQwHdw~}Uqzx2FL$wRu_39i6>n_T z`QtU{I{6k8y7*w4c#U^bS+vC~q6A37m;Rm4Tf<(vKc6+-qO`3MycwVYo^Yz8yG;Xv zj=W;0Wl1w+j71teRt?f|@XOE1@9;Kfzl(NYd>Z+BrP30R4eNRxUmXB}BI865unm`5 zbC4Dy_NWDgN!C7jML zh_QzW5Y-$X+Ss(AD`iubSATpCQzcn_d{JvTUZK+_hV>Y$o3JB+KtqeiHd6qcOalNJ z8lxB8&%&;24Wks$F+lzY%mWLL?WCVRsFzz`y=VWMtsLiY<9TNCrFzll?en^wc*hy~ zD&&`?9qK$4;m(GmsjH{KetiHqD?wITJelt+gLEI3@YA~PGa+LuCIKA@90sArQL43- z+@`~F)KyiwLubl0Js4$(W$QSQ6 z$p;fgnP=b$y~yK;hdA%KzGQH}Th@$zZP!fT2SgYk!r}Y2@sl!|r8N zF5 zpT;<4&5y*Kb_Py3OC{`)9}>=Tr(oQ~*Mz>RC!3=TB;ih}@Rx2i_{6|x)z``W)M@4f zx=2`NKPGU3IeG$NbS*4H63to*xj* ze`P4S^Jod1y(`fiCN<#QF=7E<1Js5Ui}sa+L;{kfdG_DHWrGWi5jM~U&tPYT*nV}l zTsxY(xih-?m>ol+*w$X?6)myAjFNfTz z*qB`ATDm}1T0h#gDHVzTyEL`pi|oz_(#%kST<(83amd~a1E+6IHzy-#nX}e9o30Du zhf0*6m}MR~5gztE_3uy^7ukl8c7_x^9r`#b$Qg77FnRoB`5m3f^o$Vo5HFw@6jUDc zZL!be_R4?mCum6inq20YP|;l43rII3*hb5d1og$D@$u-)ND?}vND!X9R&$a zn^@SF&#v9PJnVL8ve=6v{N>t+U){fnUt6x1(D->;>7gbU$QqBb%YR^}H1d&ihF4(a z8Do>b3aW08yndWJ-qXcc3vK;$z%Z5}9ieGL{~jUBv(Rw(?{c`vmxaJY#W%$%U+Yuu z{Z_wUm+<08$SA)}P3}j^gS0X$hedrYSpmdCsMQ_1;ywEFn9>EH6oHQ)stYnk^{wsb zCWEQtdS+t=bUSG3OITNQ{S)j$8_O2kxFu<>PhA0dsg=eFc>Bp%aeiFMoSw$;<<+Nj zIx&jfx3_haZ!Vpj9j^Yj^452uU~F#x@Jb72a9suvo@vN^4t2L{N{3nOg)@6pM^|Io zHA`R4uE-KbW}7|`5yMs;6CyTQ?NsaB>J{E zNFp}>mFx#V7lxwlJQf@|6o>e&cxHfrvbN6XT>Pma!k~nI_wJ1$=(FxFI$}&e;Dd42 zrbcXpX`KC90pEPaZXr3iJ^Q(KwbZB|>~ehYU<8EqZ!rZ!0x$cy(q-;NE1DqB3-*AT z>Xsmp8jt_!1?MHXqe*Uajuu`ibiV;%3oZWFkb6UG)0JI*o+MdlF8ljpM{bR0_Q@q5 zpnDHF%j1MiKi4P@1m8aL29P+r><$W*EQc{j@?d0_yiipkOw;17y;h0cL^->(r%bE% zMaVjM--ck5FbkHz=S0h<&>v-|8WrVl0%#;_Xy24+4GXB1wI=wtOO|dQ=tpl4l;^8T zl|yXdvz?3b;1Y52512a95x<31kMhG7MB7v0o8H1SyzWKPi}qwoA(CEJN3RI_)&7$@ z^yR4wt$ZrwE6Ilto72R*c5jEp1{gB`#s35`+Lj@>(#5rw3qTMcqTFJ62cAW89)Nk_ z*t~4i)~h7OiEWB#lZBaqt&4mKnTnmj(x5(zT)<`>`NB8-{*rNm?{H3Q6=s7WUSqAO zQ!Js!p&Gq!fYLWIc|p{`p=lzCf@6e?G@{cIT?VH9GS`cf4swR&ShM&}I1qMJR*Efq zWc}4D7UNab+ zA~D-L5gB0J5?}ujmkm%NK@;8hQUjvvGBzw;zA5pNTAUon zA{LxQ5gFHpsT(wyVGe*M)Y_&@E!vP}Th5j>qfz_Uyv?#fsK4ERrk0Lw&fjjmZ8)A! z;lE-yb%}WOec2 zt7xKxsZD7gMpaTC{QihByXD)BI|1{6|5oB<>$8;eilY-!^2I9?s)RCEg>dW zkl+w?YNuqM@~pKQ-_bk~67B``wGF&ad^TH@tb&TGop#p=oqxa^o z;1P=}Y(z$U*V(J<95T}%3XcJ7o>FhNPgjB@nIBp*pniXb-E6jj*K=}*y~T$aqk3<0 zy+iSX0Uxrwmw@qhdH+b(;z-&MJHSLxmrgm;dXm3++&^^Un7Ls&RKJkOvjO(oGiRS) zPz*!}P!H)yG~FaI5pMpT$FegL{!p+G-woJ4NjS@@l9TEk7AMaSA9;7tp4zhUQ(0#i zx*GC+a$XTJWwq+J^k$jLb1M_(c)kI&>(T$K{+Hd?&g01n9O+dB*H{j8bk*Cve0^jAhoB%^fUc z&J)Am;<*LJkI4M^t0>u+Y&CO1*65L1Qp~R0H{B$#k9qs?2)Rm59;ury9rJK-l7A@jT!?UYni-_K`1pKxxx(=6i(FSEZYAZ7Q+`uB ze8^#805>CfnACi;ho_DmQpNs0Fq`Dq8;n1d=r97mP}*A+<;}M%gCdKsbVL^Y zTvFS7I+%3#f1`u&$7jERa_R?6lE`@7hF?4jvJ+ir@4IsCoRV(W7xwCkinu-dImqkm z@zcv5zXm9#SMglik0cnu@0KtYZ{u|h8F~_RyzAVtrA@`}XJ(~q+dhqIyf9m6%Uw!K zQuS{yGdzFMp`#`Hhr%EtQKK#)Sl3jtmGtqua0$0{>f01DCjMimR=c10~N#DyaJR%05p|I24Jmr);nteN|r zmXxE&bjR~pO{5pZ+2|gbXXmxHJ)OvMfRt1SdzPP_knWP98gDz1o|YnEvf-h383WGS z5Jq=V3T20O5nYF-J9gz~=3M4FuKXO@@<03^Oj$$(c@ECrDM22Mkiv)dF;Lq+L6aU4 z9O3lDy6)Gzbsho4?4cE#4po5e)E>{NK+kn(KIwCCKdUlv;dLh>*_&$`fV|;^r83R{NM?4{tP&F?%EK9Bsb@N^xhu#HYgfn&))c{I)1%Z zbu+W*$pZ+7(A@b4L7(r-?~V>Q$-Jw}83bi-1!P?B3rxSRjxNwpPR$jiS0X1@0jnoD z9c7-x9S*eiqID?ahmd7-*U;6aGRcuZOQvzZx<^v7DV_$jsG+^tQF+@_2l9Rtiw?vo zbG_mZ7?4zB(yfW_4>GJopa(pf4GCD&xuJFF)q6ZB0F{f~9g{l?L`EhOGFs9$QePl> z!>m2#w<{NG)oitye_47RyRnoF>Sat}P!`#tb>?3iJjx&0j|W#C!oUPkGHnN5``8V@!jdISd=z3q&VBq+BdMTcqMs{5lOiKYHZWVR zrvwDd?68ymIoHN8o4K=Xd$d~(ut*(4rwcQGrDf1m2X76(>$Qj~?)W{_@e;eOsX*GX z`Mo+%imdA-mf+njugp^_iNn~j4%Evuk1Zp7S6m3g-5sS%%3swTvl;3r>@LxMUB5Yh zVODQh)@nsip6yUgcPFY#s@JjZfT#DV0zwJYJBw+cp6I>eoWVf!vhOys6@S@2ekxtb zZnB(N7Z}-Y+6m^)+=4x}XCb5qSosQcP>Cs9B--gRW#qnTx#=#F#LXl*QoKMQ*QSd@V$% z$+&QH<$kP73U4j{-?8x>x2agqe%e!Fmz3(ZFlPO#USy};X%xh;tq?kyFs0409XgcS zZrIiXeS=Z;32oQZtxkh`{Aeu(HpOkX5GWxasigxe9wACH#m96rL}iO) zQEsd>`4s(wcvXYpSvdP#0^)`m_98Ft$sx8NW!N5}*Mq_1>|&Sy}f%o~;hhIXZj6Iy`I4 z_?zpGjgqGsnvg~fZj)?fZ#FK!ob%?mk~?D$Gph@^ex}q>f{)kx^B<42`xB^cerp$u zi-K?t5<*apUP3#LHI_?iNNstXw?RQ&`TK560d>ZcPV1=&8TC(BKBWVwUdTvJ-t*wIiZ(-SGOEyRWw0mUL^60#xp{wd>PPtASh16GR1 zZ^E(g--0*ZAv4#ip)}NG%4$+{QbH%5EaF<}CXJc(tow7*HC_K@dPGy%N}k zt2n>VBA=G+$hFxhoiARJ+Y-`t;2PV1i_FwpzXtbtov%*p#4Ek_%_((p*q&u?u`Ahs zg*Ya4M7t)%-fU#xjjfV2x5;$&I~}=A%d){|A*sa{ZbI9ds6X5T zzFTM6;1GpZ4%00v2hGFlzs&{tWeqQ2x2Q!&4?Tveyr=&{8jL znj~i`j~pcU8A(qk9r1@rYEKFm;<(23+n-l55&B4|TaB-pKwrH+3d*R%ZBaL0?g1D> zT4KtFHKJcq5Gm~j1j)lj#i`2yHLV04M}dAyN{fKZ+?IAUR+~mulq#!Qj8m32rYv)B z^R=g%l;7Uk%d9a@cUSf?%<$oV>{r(2zTLFv43umO#PO>aFo90u;FSW&A72nfa>WAT zVNZ2Nf@pMufp$On#E7d#LUk}P%d{(oa?8~`&A?b{gO)zgWV$$m+HY6z(1zfAL2gS z6^C6IOzXM(tM#*6`z(;W?V+QT!u@(Ye47>*sQPaf2SUUL*X4fvz`7)@r&_muwEG&F zEpUA^XzRjJsz^7XTBP*NxV-&1la-IV_=jZ1K!8yZyn?7~oA4<;+vK>s;p$kknLzq1 zJZOr%Mw`G{4{_702O#wsV*6b!s?7BQ9oD?WAg{vb@{530)m|MycLCAK?C#Q(X=6F* zTiNf1a!e`JYx{jHe>!ZNmXiHJi9!36CqcuR#_8AL8h4!DL%Ra+8xH~D%YxqSGpU9eDE*#JQ+uW6HJ5f6#TLOJzYA*Bmm(JN^%;7Z zBa?b(``0`Nluc836?%;=EM}%@oiiCBrx|Hg2pK@rUCaGcs3{cANES&8y|eJ8b}fy4 zi+ASJBmS~U1G;k>XdB)1Qd1PTG1bB??BL!vvFd<6i8v{(u&zNq zeJtN6!y{eZmbY+I@KrK@-om(DTX~LMZTj|c>&eT8Ucj-c8%|4OcapPrV(dXOuTLR5 zroL>bgj+maXyJM2&f`LYCN-hp*h@267YKTvr4 zZ5Q#O6z=aO@yPhf>2_liQAa(k$5mJFBz%*8mUE>I1(^)+a%jXylbjod%!QQDS2DvKA`=An0puj4Zo0_ zPh)4nVYs$vV(-JXYqXW)!)4GrZ4lyrPT2ZZ+}O|qZ0^{ZC8_PwWJ20{jw}E zlEaD(l>-6O%RDj*D{o_(J|GsWp;MyZ-hw9w3rmpkLxh5Su}_EKUhlz)SGF*bZ&z7puG@U#&HduNYq*Ri-iRku18C$=i@- zw+{cxTn0M_&s7$xGTf7Q_w4C=fQ07Ad7EkRV|V-&bx;I>q3Rqfx6bTlICm-xzYb?-Yy5BiXwm0}-IiQL{1p*+_o?64= z_H>gh9+h!NA6NiPg6ak+FgK|IB;D8+*lh|O5rl&!u>MlhptV%n!FiSAsaH|sp5^n) zjt+H2wUvmmg>x#-hxfjaK7*&eT7LXvFW9C+)b*wsDf;#T5%}v73vmkxOADv?-f4d% zkD=GiadxDp#V4OzSqoh+<}WaDpcW){OnThU2Et7V8w7)3$|Iy)H&_B-u!3;o1!16s zl33jM9UHs~oHZ6(l~v$nkvK4iS)((%suKa`wa#0wF- zEV6_B1K2}sIT*v5<7%DEzjYvC=3{-I;5nGRv@*_R(8i9Qg)KSW#r!E>Gj~%r%|BO1 zufRQtzh0$akgMQXsogd=GPZx3_B~D0Mt|O!9feit=P`hIa^G*ygm@V(?3`dP%OH4; z%OW7Aq1j4$iK(DWY0pW9i}d_COS?nKuqQKZM`1Pa5*lz_vS!1}fq_HY8A}!En9;)K zebsykj#B6fI)3$urV?3S@XJq|;cq2xaT`I0><0xL;p}AYJabo_X!ym8NGC&+vhA@N z2eo(IxyU>tVkjteni;ou!L7>=iy`u#9eGATKKXea(MNxBY>ED5<$@?**$&(uzf&p6;l+9-+O;- z$u}ndHM&3tg)9oe@7uA-y%6cf?RBe^0k_1Y|KAc0vBcq2rEwVxPfvARs4|=-ZCPJLu z&wS(OFMO7o{piDhiy5y-^GLJ*&8estikI1dy-o&)Vaq+Hq9>7xdDmY(Ap(gKlZTY-P^77z4vdd1VVnhM21^iIk_qSPMw{41! zd{zlVo5#@5d6e=g>^t4BQyD(0D|S*^r_7UJhSI}Hd~sC!NSXG-n!ckh63Lp!` z++f|2hK?TPn1k@4po1DdMEGnEZ+MnMcyCnqK&{7600OL`z3X9&6xO@1uB{`hyL&|H z4Pk6OHGUZ4?a!y>?;Xe(!Z~-VeStLkSJi|*8+wTRwI&%OW_pw9GRm|-92-=HRT7&{ zih%|T@?ibao1*c6QViGSkx(k_&ZP+1mk6ssjSFlu-LDhxfAcEm(XPmQRgo9zbqdKg zVx_#ATQj0^xc6)FPISr8#Zi?BMqFMG&V>sz{T8e%QpgP0mz{+*Cod=d;D1?aJ*DJs z{ig4erF+7k&)Uu$215;`|92svIZVoZF2Bnxql7Y}gC+|azQwxRcr$9Nen;N9Ye4jC z-yobtoT)yNRvWy$O$t*%<&$8{&ecTMl>P`PLec`7UQjjAbGzHtzQtYW>}O?!m+(hO#om-l_MW|Pbg_)df`TI zM@lVgmoSk}Lj+z6>Z9>Z|MmutM&Zuq;*O6S1RW-wx?5YPe9Ag|CXU~7bm>#I`$7jK zVs|F0VGO1S(fDi-dr2_trlb6%iBWdJFpVX^k!U4_Lz_X`e5lP&~Ia zSbS70aDWw+P+2a7_G%w$@$Akz^X%Z$^zPjdkpC?cLSMg3hq7dbOj* z@*NgRIZvltDko`I5xfK3pSo!?vwsCB#;SkblG-i&@LP3iH=1)u;oFT;4WKu?JBIY% zmA^~4#V7h*TyLsI(z;5aR$G!9T=bA2tBBnQ5f)q#KTanP&1k7+oTG3)aL>P7Iimbg zny^UiRJ!>2{=PmC7Qcqj*QQs*FngT18mO(EB#}v!^<9feoQV%w>&X?O-+tmCA zmx;d~(B5<#8THzo)4I}3JlpWdq%Km)A zQEu@9l;ihp(1J?rtKr{Sw-!HID_7&DJZ#QUu>Jr|k6HOP?H{(Vy`Q5K=}CyBM--I) zVVlWbWjx|!w0o$O5M4PyZ{#YTZm_!CIlIapj>NWUDpJHk@!l?duN;1AGE-tc+9Fc> z2lsbd9BzBAOeg^qgflMVDYs-?#PgTS+KlzW)7BjgN(Z54v$lQ~=;fG< zkPc|VjF#8Sb#+vh6bV1G1({STojsy>**6W9o}H0?Lu7KC+Dmb-a<97-u2b^B8Us9< zAn=zN0}CwipmWCIh8s8ZooQnKv+ajw{dl|7dzs?jEw*I5qur-8)yV5 z8R6-Vi69p4GTqdZ-)9QGlJ4RH>WEVZgEq#7fkC>zthRtS?=7c;uGG*9fm*e3wi`HU z|4dijWB9-kk}Ig3-oM)`d&Vrfu&`EU3h_4H@61tKa*D~c=pLfo44HLc$d-DqM+DN5 zsRZ?lwyRe6D!Hky%vpZ2PrV&=5|TY-FbDC3aV&xXoIh_`EDfYISCHOQFsDVkjb=ZS z#w%~1$FxuGx+B2j4O<7_ShWjtfeAR|0ca7abxYfpnG2cCftj15mes4aS$A3+t(q)# z_hEoflIaekh;l#UO2K-bEza7FjcO|2z**;W_a%qI*{%lW7&GgI6>%ufQp+sX#4Kqb; zxqacL%vtVnxkpGUTieOwq!Vun3~*t~Bq@@)`d1Sk0A*l=%))2szBhjng!7>!gE9ad z5Bg!L6)u)u)9nODGb-&n+uvdB+UBtrM93LQ~@X)95^9F`F-wGV+bF19@Kbw;{vDeC=r$@Wl2uxwjcH;j=bwoKu;oOW2icdbYBH1#^F(HMPqk_Z3*{u5I+d$uX3DJ_k7lAi{;uejEZMlNd8Z>Erz!k7 zWq>GTna4w_dIDKbT9GD%A4$-jUaBKt3$9B%{nLJpJuI>#0g^AJ^xAb&H479ZJCiI= z-OacUb-AKebl$efG!+=_!9LA~3?~sJ-;@WxFl4!zi?81c8>_n=*z3Ge?i*@`t)Y9+ zvr~nR3?9COhJ0N+Pi5I$q@G)yeGX|eT-GFB2)&4JOomq9{~L9CAmh2f$Fq|5LGD38 z!J?P#-v;qr!A8qIytU0q4xcYi=sd&q^r?FKhl}S2knDYmG-THXi4e5;4te1lC%`xP z?0c}ct~P0Wfa&(CVRPHWUYAbJO;8NgB?9hyA}Ab}z%CO_eOm1|u81xh9p! z?ms^(XS9m3IZ^w7%sBq7i%3RjolYJRlbe#lMoR!a!--IMZ zW(e>B+SWj*f$B37<=3FpxZ`z2zXL2`d%)aJwM8{dRXnh2qkcwo|9~L)wuW$~Dty2~ z1w0xj>Y&!By*rgu3v$luBM<{X+H|P;wQ`pXi3?Y%fb;rBw_rG=x@*T{djx*@!yJ}> zPc4K!3AZCG>IF*-q%IH!CO4M7TiR_PGb{`UvCa8R3Bt1NnT{ENVz=;T8nRx}UbcV0 zI(Dm^K7XL@-dqd!_vlg(d@L#^%7~?`n5yso_6Q*w+x}K|glbIO6>!b?$-O(wl|wkJ z$rn6n@jKh(+>lNY4~!LOCvybwzrjqC$VDPW(k=8&wb>R4m-)K<{yOg;C$O8`(`7fQ zD)ZOnjZVEk@u*6dSG>%ts;aW;F~Z=ffXogn-PND=@)FS^j&H&v$#w#|WW zl&U$(w5$MWTK02YEdyY{BUP2fpaw&xKzU#L`SX}7?0--m0)lKnaK z_yf>FAcjdaPG)4uZjLEnvrrNfn3ZAvQ7f)XcVG=drrL#mcAtEodi^ z>e64NKpXDW6d2x7AvPRkj7XTJ12PQY;*d7a3(q1KG^R{ul*gvnTr~cCPiu`Ffqc@2 zu_1=yQkGmZ!R|Lnv97x+T%vu()wY20WF2a{KC*I~AI+0R8ih^^8zygmk98@Y8#VL2M!m4vhX1a3+uy-b zWIo0H3(PG(w@koG-}jjCf{9+ygJ3T{-RnXoWy-%uRXBB3c~)hG0)Qf=Lk-*=&Q<#9 z=_T|qQ{ZJWKwRM|T(~0n%Q~<>Q~zc>H6R%1zEba*b_`4E2;x5eBa|4$m9Uv-7A%_B zrOW;@JLdpd=wH6Y*+#Ng+qUvpo$g`s8=oQlC=%+MYI*u7n@-Bqavg`&-?8{qH+9l- zm)AHeYirUhICR&0oOtdyo4M*#f~2<^T4>lm zxXLW`o<#svK$I=l#dEe=t$2Z_{KW%#=2rTYC;wg1YPmqs0X??(x;S)yWd%_syLOS9^2i{NAV|*l|)OLlBdO`qb>i$X|QkGmi ziCE-Zc8cdj%278kv?9V5S5_cLaYucqBqHc$xDe5LeZp+O*^hf@svIh?OToniyx3Op zK~(E6x*-Z4d-M;dE1VRK+HR`?nrYwF6JXQyrh}41SU!qcTxHhe-pNC!DV}vLt6NT* z;b6={IlaYG0sN1cYDiCqlGXrbe82ur-fx1 z%R8dn3lp5ZFLvC@+ncCPn zOTh@r@#|ec&_~*F(YUiQ#?<|D9G3KWl{Ig}gR za9uG87{JcBu18#>rFKcZCKP}h`0WZ^DqY&^vTY=VpH3+d88@QkRCc9Q=Bm~ux#-tr zaqEq>Ivn+x4GJjJJlxC}{ON&jihvmKt|kMo7~BQ_NL3?42GIOlQo$d!su7P47W<+| zOGo1?4@ZpG5K*&w-YkgEJ=2V0ZP%e4L{iB|rUpDPw+W zdt!{F{E7K57ddu?aE%)_2b0Lxqn^&cCd)EAJhdGQ?sXR`ad2?c_VB;qYnU`u5#@M! z$+SNbQW(QYp+#J*uT!-O*BVR{Q97ZqAgK}f9Mb5Hfhu0EXvMstMauM`n*)(i5t^y~B3Xb`Xg0;z(nu6qwtI6)!(jb&!s!?pe)0Rt-+FROK z-*jT%AS+m!xv__hBOd5Y-g+qXX-@rg{5w^BZU2}}B=%_&UGAeI2y0S#LJ^0P_y9NN z`SwJi3PFxN&#Vl|GZ5gLiwb~WJ-?CaQRkAnaeevPi2u@;9|OPKwX;PAO*)m$-hLfp zid-D!S@5U0WtML82u*EuhWvL$V|?al`Ngr-9?+(e`hPSm<0pTo-cY6cPAeWi_{j1N z6z_O<2II89NW>TK@!`=AhOwPv7`kL7iLj^^2KCwp#G&srNyIC-I*+7thkot#U@}vA z@}xuaLP~AXS4TGvY7YEJ;SRF3aSu)9%*8*%8W$W{FytOe%`b(@EUPKZ2D+^T3%JE=Z=!wfMx#@5@mf`u&(&Xk1v z)<26IGfO7gWtT-YQiVxq3G(=_(oDZP&lK~fk+;f(S73#rfh^vZgK#%G#eUsCpxvU} z*jBq_tkT;-yz8)}&h2vO`)Yn&DG!=^xBx|h7?lFz375Kn;6fF&JPEZf&>5c>&+~Tl zNx##|R%OX`9iCw)Hfx*{wu}0lX~AK)7Y$IWTQ8q(oy^-};u=1@7${P+S5HKbGa^B0 z*f2GPV83Rs?|oyb@)ZK5fDuU^1$D%h8>l}2RI{$>d$|9W3Lyx{6L;HiqVWYKZ^i?` zZ9G;twh6MTK77*sW5u^zNECGSG*S{QW?UeDPN}R4>~|(vyQ_2_i-NY|h-v-BS0V>6 zR|I>ecAGCez)GJMC|dZqx3|rk)qc16K69E>{F*70E>$D($Fx#@FZ-%%W9;^Z_k~?Z zLp)mlkJt^%#Bu?sapb;&zBbZesjk_8YUzHSJJ{uf>$!;t;nx95hqJ)wtGc3i`}gK4 zAT$x>v?Oc&B&;dZqu1(PGFG6_c1AT*WPFT;B67OBg{DSQiqVnt5Z<|qfFTfI z8WUg!SZ*G95KhFgNIC#L>vMcs{z>x=$=YZ)ie*7hxKBTVRXc$XnyMESLrbRt?7;dN z1hD@bQf-Apl@PJr>SE6VI){|*uaonA%KUkf?Y-vKjf3i;SxRDIp_M?C5uuAcOS?ms zb|DmV=@HAV}ZZ_lK5Ur2$$Afnr1g@G*U!!nZKdT`cJBY#*0H-II?E*-XNWQ3Jx$Zf!|- zPS*moBb2W{4nt_B}wz=n-s4fPfM?7i3&iuZ4J9NbxJ8EkQ$vB zZN7eemfl*#T9&~d`|}dK_D=-*L=|`_t}S|YVezl*-OWilew|M zIlzmqXOuLE=h~YgJ^H%eQ(Pu(2PCi(R-Dryh0OojjrxmL= z5vo)JuuvEV!B-sRgh;|oq8yBIZYp{6nxc8DU9q0J*(vv1XOLF1xMyO6VTUSZOP`3B ztGCRve7nl3qq>lE^}kts$1wfgYA=o*(=1kzN3D>_kcvVK8Zy4ma=3MV1Ty=w?LouT zt}fM`+q0}2(dhjzbSYCOo0k>g92ZQHW4q^@Z>j1;kE00FeWU4{li_f(^k|s@++rr0 z8Rfs`8}q=#aTGCmGiIy}{_6b~>D}5q%xqc->|d1{qFv zg&nSglPyj@S;XwERm=^?7I!kiU*WWxAg(SkRJQ18JCX7!)6^u5`VVD`D9VO7CWPFk zdA?pLd2Rg?-F zX1YJ9DOTRc=oAB+TwVk#V$O z%1Gn7T5zDGwwfXe?+=}xP50;wGqqBMui6%kb# z@l#<`i(HlMGedG_I1Uw_A#JvVvUvSb4#Us!MtR%bgNNt^-=mLT+tnoryO9cfhRBunR1VbGzESf5!8-M`Vkfc3z-Mu#EJ6F30mOq0)QoQ4y>h(y^%G13GOaJ&p| z^%`);=$-CK<06U19-$e2Wmi7fYnb#lU3T@e8P5;A_bpHkm^j_Jr2dzC01<(t65ez* zdbs|bIf){v0oJ%*_a4b!NBz04yeSGu2(QOfiIV$$n(~B5HNw-!4L19n?g;9sLak^R z!T)&OVk!wLG5@^+ABX%saJ2QXW#s1=;WJAX`)&Gn{;_nBN04#f%AJ4mI^mrjG*O6$ zQKEe0Af^qomkYSR!$u(%WZ|5Fw5t@KeIt(-Zr{-~86bVj8=FChX7TyEBX!)2H?~C5 zS((dBU#@R-!o6IC@W9p%7~43~{+?GJ7dArEI>+%=f|QSw9fsFY z4~|z?DbiPOYsU0^ZphYdX_pJNX%(F}G5`C&E1@ugzAmp-lda>@g;x*zPqc5?rSfI& z$`#11a3eHf^_J^IAE_-?3D{FOP4-V@l5CIy&Rf%=cE!T4lk0LmT^RXmixJ+?_0_rf4zd9#g{FWpNaFCo3r;WP! zQI1+-*J}}Y$V_=xr@3BvI!11A?&LVnkc33&Hiev)dq;{n?0;&U{d$Sp0+Nu_$K$Nz zpnxTNGQR{?9{v8O{7IIu5ua^gXxE%t^O-6#*QL7_Y9S2eaEURmY`d=``W@DCy4$dZ zUf5ZiZ6gi$GcXs|VufZkL6j~#q0<#ca!Pj>s$#qKA`#rGz{8Z?>Os!hI)1~{en$+~obKStjmtBC19EtKqjrwwA zf39xLIR@_BYXnvF^W?3J+%A@b(qHMpbn6mIFK5?!UbmFa9L;odjec!Nt3wkc3)SWr~&dU4}E?oxdXwp)CmhhV_Fziv+P zrpZzU@$RWzaC|Y7$1BUGI$bi?7psNhH&d{g7gBq_gTo{YU^uR}R-=H!5AKB((M&_b zUA_^@A&Ecd)83`4 z^=&nM``VT=4+7CR^=rL=u@YJH@8`vf_Ns|N`0>PH-!z;s57f*YFC71=^u~}`u!m}; zsY&EyThn5ef;ibHuKiRHK^=|M@GCLOD>)+?|k?BuGoAn&GBrtkvdq_>}MkoPsK2 z=I-?GQ@{-8m-cEX0oxDr;`S5yNf15ES}x|#=JB_y*Ok)JdeojMM!*I;&9+~Lbmj?v zrUc?&rl&8@FWG-}N2D7>^h}@~4N<;A-;Lb=O2pr@pejg|@R~b{d|D6G8#pmk6s+-? zH0i=5m_lVYGB&&p8ZICca2!?UnxCdjpX50^$$IQA7HlZcBYvw?vMHM673_B`p}#Pc zhx*WFrqE}e>@ijbH$^H5b3cOcc(n=00!!0J+UyB0XOeVvDV2w09?(*|`lCn*(B!7O z5`w)W0Yf>vrZnYkpzod56mM1K2eWX-VYu>%#-tGilk6z^jKUS?Z!>BL{n43TM0fX# zd0sL(HwNlsT(BilHO>%g-(C}RCf5JZ7zg#w76y&+!}@rNCw2S9&FcgEom3#gF;86Q zKCT^56K3LOn|SNWoJ;b^*PzC!oCTAGl8T=C^UAT+JW+a@w@G!c*L)d01ei&6xxS@9 zttziUcETsmm+xy{o~U_8i(PBJUv=f{VC{$UK3)0+kKctzK-Pd+cxx~w$}L5?_q_(eA^a)1C#S;j#pV;;6HqK6r!Q~BDyl10 zx3wd6?8eKAeR+q5to!!pBj1TQL7SZT;6P~6@DCErEWTd`ZfF6TZD>rr$|Np6CSEIM zne}+x$GjuMKwF;#E7SD9Ebe7*{BhwJzOPX7C~~OGi8lNux#36U^eJA{uv|@?GckPc z0RA#kiwc^$o?X7&2oS9KX>_C%vj;O|JY6RxeO^xJk|^kwC^M% z#av|5N4+kzuic*=@fv4SgQwrJ&pgX~R=Cbxt=Azkes~pJx3gi5QV(m<$n*M58x@Z5 z*_ZBtR}7ZVZN5;gk6?XyPxEd2HwO94h;-jDK3+|pF_u#n-y(m z*)~t=sWu()v+q1V7z!M@QzXjpA;KrQrP*KAO*&STWh}pOvQQ5l(~kVSZVEuQi?1V! z4ase9sbWMafxzH03L5uHH2!EY{m=X)DR%>aH&yWZ%VD~&!qvZh){0ta>~8ZB;Yh`i z#x8S>B2lS9qAYh}2&Snvy3f2+E$W1rCgaeRmv;X7-~P!FSry5Mo2nB7cv(uPS=d96P-`zViyyz@c5>5u3w-%oRIR>^FXUU!>~+ZG6!7`RE_hHOE1 zrb76nNum8`(dZ>tvF~Q($0L*GYcpUbo~d9Di$14qP$FfA@B+aWyP328Bh9@pbX`2N zK0Vq2`hk%}QOvnvNPKvQAzf4F z*7@I+Pw1QN(yE+R{F{6_^Vu#sayV?6s@JoFOW_;9-gdaNy&}stbMj58o(Zn9-_##M z7(U64kZ>og3h4LJm_|8ZEM1zT;^W}HHGgQ&)kMllVj(>x&%(3Kh$D-%E;cSP?6u_Yik7iFpPYeh0|6_q{sn@=LZ}rMA>KE_!wvzIO>mZRe%@tY#{YEp}m8 za#&s(`YGwxOAk&R3G?Q0t9O+3#F<0&kA5dSy z(|TP)-8fs-_DNW-l$I0p7l3V!!i%kS_jeHiFFL= zQQCauku3ta;{QfI(659SiFeNSfT&76-GTlZ{WY&jIw>VYIeEu%_EWXZ#1c)=o3JFf z0d&OURYR;^^Ipg%4Ml>*T8LZMiS$i1R|T%0*?LOb8mC(?kk|9AvaAQ0c$Dbhn~S4g z6*`*H*rMRbNd>l|%}}m?a~)l+IKUcS0)HcN60@Kg)yboW;=$FV0gHsJ7aHO#zZv)v z2rulNV61NkEXPP3qV(Lmt$vVF=;baD2mbTlTSpMBe?S9sRF0kA^#45r4=WK8y-iyo zn)k@9StKhQN%!P~Q|$1-%00U@22b9XpUAZ%3F^a9729pA?dgaYZ=17!_i|t|!fm5L zyv}&N-k}OUNsHV5r{bM~Z==tGP1Bp#gGV~Dmb~|)CZl$D2pqVmN4stDl*DW&{rmWl zsDzFd&oKHHFM^7@C`um;EMLa?IIMYzE?si3leaBIt4lTbsem%0-%9WRSob}tnE4sp%?7Zd zxdAao(JxN;aXYRL8!Cwidns;R-&f_27c)%sl*M$EGyhiwIq!}uk^@$}(x~2tR0ALt zYS_>Li-xf%?Xd9lBp@>KB_cqNJ3hnStTGD9ZF4R@wX6j9kMMw)K=UIU@xd zfh1UwJI~wVmcoTXI5v+44O8|d^;ir|ZU&^ccC8-420r)*oC{p?%FEnPdDJaNjttDU z`sTG^en$z$mhWa>zn|9L8BT$!#OZUGfOAB%44)cuvFQF)5?>1wM~h=-Sk|uWUioq* z2>4>Y!hhuo$ASAmg3R7Y`NB`<3{uabK3fgNF5h^Hj33Ahsm@%X+SR>E8h1cdpAl=X_`V&!C zr8Ev&A$UEL$lIQ*3Cj7|9Y&+isHDvoleETDF!d~Z+JxbJ%tHQ&?ktTX+~hJh+=@7y z1o!0%w;+LV#r(Pz6yg_NYF={oTuu~w&rPaIM*n^wqJF#v$Tf5Z*DPQP>mJsvEJc8y z7v?qXly?4ZnbWD6Y8^XY2JQal;?UxGR3yq|oAOG@i9U13X&c*3pSg`y^0X+mWy03- zPFFo@;caO4nm`%WSV>M0itAYtypMrLpba-G=h%JJ!%n743|Ey*HIuW&)z~k4)Zce} zsr|{``o-aucO|APZu?3YBvrY;#)#hO?${<+0AQS;UKWd|cp4@vw)H*=n(drN*8YyT z&U)xHhiL85>sF>6T-18!o@7N#eE+}g7gJEGIimcbkZEbZr1$CbL~Su4@459LH?v*D zpsi%#l$C+v)Ol=wBtv*?XRTHynCr;2z9A_Ve14 zB04KKp-Ou8biKd-m~8+O^|HrXqm|eoFCFh+nXcE%Ru+WAc3My5`yO$~QWArC%{L#_ zcOa zN>m9$)kCzjdH@4AXZuX6_a86ILpX`jiol<^tD1BhIbc8f> zS7tJea({4-1BF1_O<-J%UT3%2rYz;;N#_vNeVIeymnf9px-Nb^W|oh6yy-EeBLNS*oVahbiZz>*cw>PQ;rbS(Uu@E(w+$87FSU<~$cA<5Y_TNwH-eUE;inwTf7?Vg8TZXWC8Y3BiM*A8f{1JhC3E5~ z5vu6dBJ#_KhY_+3*>$~;@xV0BVede&9Y7uGW;{40jG&vqp&*SUsFuJe*$YEo)PD7V z0CR%dmS0Q^k4yH!6YZIi-~V0tIi9$3&zY)2NIWauEX@SG!?~Q-hN0ZtqZnTc5u&8q zgOEOFFJjzmV^BuVF(|LoF4|#tu8oeijOSBH35~sx;E( z;vn{3-2+p<=TSM6vrzK~Z% zTfl8yOp61q4O^hVdM}QqHTfvE+HP(w4c?m0%i%jbWif+3Tz}}+$t%2rUt&p7vZWs= zzSx=jL#EdDbSJ^O!a_4IuGxNg)o@y~$D^C&=?+H9R*a2kr4A<4C~y8DABj*zoCZ`UHNj+bR?P{9&qS@nrf+Rbtf@`fE`L zzy@j~l&=3g`lGnC_RbQlNv2GHPy_4gpVOz)Ba$}witSk8r zMydMI_0O*~&$6YO)`jJf*5cQc?t%B^hT&5GR@D)z+$~B(3RSk$tgjQMnu!;?ww>J^ z^iukZE0Dd_-Rg4?u{};@So58|MaB%;wpC+YfaQ66vJeo^l|!4_yp&1YGU+oz83tDp zwg>OyL#r%!M_uDbpZx-$T&TGt&=1Us%M`G7M#Vf>FgUPV34cQNZ<(VB!Tnj3%4f^| z4Yj?NGW@ad$d^SZ#oaCXpQfdVs>?lmdsmjk8Jsmf`(9~Az`8-@Y8A~b`ygXx;bLAH zUVN%_6iRZxx;FPGzVX{+iKgf%K5me#BcHgLHpjt@jWvm`mH{4Vx1UGFGk%$Sh6;Jr z@j)e)-A{@OAgy&kUFX8-Njt^;LL^+O9Uc$XAlS(;=i(oCHXGf6o9IFk!VN;ag<2&7 zT}X%69`El(Oj=GoxwQdl>g5q2hUY&DR%Nlz{Dv=)z&%>I!NKahneR%i@ZMd-WVEQI zUUPAi@ynA$-Lv->Pig7%baZR&sXd;_rfaJ=0-oX&fx+I4(o!aPwOg0xn4*p)ZLRY# z)?a>p;LYqC0-O_sWyy4n zx(rVa^n!a{s7Ob9`{(xp1kc}Yc?6vd`JvwoZKts|IrxJD3|%%}@LOE3)0WegMC+1g zziyr>@I;mEi;5|WtknLF`jQiGA6P`m9ptwn(6KoSh=K{br*h+gHxH(w#byQxqBc%j zW~GK%yykw>>-36S#-%#Rf-K9E(J--J7E9rN#&nx>RQ9-&qX~#JI=cUeWp~+^7?oPm zSx@oBfByD;eoKrudKw%`2tzC_W8$cg4c(J4i6Fa_Fq<5s34Hdb^r~?SMOuRhwHM7^ zWZs$`lS?%I;{j))};QwRly`$Oe|M-6$+M=pz@4KzNDQ%E)m!c?Y6C*{9P`ijCY3;4G zw<-}aYj3GtyLN4fqE;nE8bt2j_4%FeIp6O;@|Sa*xUTp6HJ;DM^XKxHJduxcd59X` zrH4NYoBQVwy<#I`_#^H#;)5bX1`9$e^~NA!tq<8ycraK-@g`Dhg7NXmk)*d1{e`UV z%2hMIZrsg4c%szbXo{3y=qpnOGQ z|4jbdalgL#3Zqqjchf+>^j611UFxoRgd?XGF(L>%x3(zLf2tM^)p{-v6(W*pUk3&h zI3w^Y_eZ=H#5JzJ!-XUj@F4MOI=HQ|qS`yornlU#M8THlhsBbn$teCt17h8D1^W}%-Obq<;bg#t@nQw5Vx4oNTJEV^AT z1sC_o<%!%%7B?ja@2ZmBu#LDAl}Ig}67cOzXd1>L_Sy4)q+|7>u0-n-h6Jc=}r<^1QqS zhCM&5j$|r+!o^b(xyN&BViF{_6m4xrIQI8+^J+om>34_G!=c$WgB$k$($ihN{p_Eg z%rn6L>f;He?8<2maBB|&I#V^uUZ^{%mHY%XcvEhWRFhP|Htlh1RK5H@xfs2;G*BM3 zazBZQN1IzfeoDmy{#5u&TTp0aGnez1lShkbHD2dY$MY58ZF9s)oo@h0LKRqtKI2fY zX6lia?l&l@FiqsYJ|@T37&7G>A`_dh9XO#hT&k@!6s-KG;{7%Wo+TOr=&P^R5|uK0 zksKYj54eFOiM>?;qK*59`#kV(JMwHNz{0yl3 zHVFZ#TV&bnch)s3!ykxSiY_hbJv|VwDmUu*bRecUnwF=gLS%Yud9z8$jDB^5B^x6? z%h4Y_f};{mK5td{Yvl!{l`FOM9BLdI(z`7pDJ=D*$Kf`v3cy7HQ%fe*LU$leM@v$_ zBVS52!=|7y;GI{K6oyi}d@XN3k6^s5#--3OUJ>JlIvr1u=W4yym6zrh2XWQ-tBn@8O? z4?eW{i&=dA+2Rt5veudEpF^9-4;uT_HP`h!5Lr_YM=vaNmVuHc!~oyMRmieU(J*#v z;^8Ye=T)=;+Z3BeKG)|(%apeU9df6M;`Vf^UC;m2Z#ER~6xLUN@}w{XI$H=Vt3a=U`&4f?UWqS{FPaKTqE<_PCuiAaCMv_E>trSr%u)X`o~&RG9V(_Kw5(S{8P zX$y9QN?${o+%Rly@q0wh>gu@Nz>3<(&bH&)L;v&1qxb&;Syz{EYTT+q0t`PMMJrf+ zhew+>JNo(ZQ2)(&74B#&`}|8s>rmW~> z^9jHIB+#0!6L~*|Oby`u(P0sJcLi20(n>JCdOIyh5%@0Fvc?tXsv4w=yt>TmxphDh z4;j+YI>IQaCyI`vEbsSpiBotx$VNpWs=3gas=;`$Q>oiq5(eib|8NE@gBpBX=jvXr zRXHU^s%7h)kk>VRBGvKbtIN~uY4Uaq+_RYp=L_3#?>*O6D1vgujI^fKWZKW*P7Euh zppAV4z8F<^MbMax>*+Srz8ZJOrBN_5u7<(gN7W<3#%u6Y+NW<}f>sM9a9}_`gmLhG z)8ffB#_gL9fm8mYVT!}VR%n$c$fkesC;YH-5S#8ZLp|zUi-!IW)9HDrJ=Msw#B{Yk zJXym9LX{)tsrcYAh+OJ~VFIOgT7TT>mwsfdH#Kd)f6+bANBc92!~h;9Lu2 zqc+cWJ?dS9Rpju@LS7ji}t>55vU1gn4_iEHjmTDBZLyr4J*LcXXJJruC zH&V6-3D@_R5R}v81_zLcPdr#(pwBLSc$KBfH|(8lK&R#u9epUSyG%}a+E^8fablZ* zcnmEFrWdoZwi=R&#O8jgC~>~8OPKf|-fi$)TXjHh7fuf*cK-~L=4-Pu(0qqhPIoc{ zRJ z8@9yK&I$yea^>9WB3|pn>zi23fUm2?92k-cYASX!A2H%(Vw*pknLTimA5$&FP4n8B zbrm>gELusGM#vCvd1YDjaPw zHf=j`Oo}@j1=l`KCFPOl(TIsP+7K7wy~B}Aqc63}UXcykAB#Pp{cYGY_DF|FwoN+H zkTL$Z>+IsxoR}BiO<7%&VU+%C1-+if*53y6>ht4276J7$)J-4hLS5 z*dBX39+945PbR+n4dlX~WqFuV*@c5o1*F7L&0dS8&)`hbxVm7=FRZM)nJ#J zT_i2pJ*7Y*)`xYAjptmNWHBd@2h^r4QfT#sh8m5_Ql40Dbpyg#?2eoQ~=*b^kk zNR4jC4;V7vdQ6mI;qn~@HeCKbA&RMZ*ud?dxt1MJR)=30!&|$~7P{3{xdhcl)+*l?o19pWvBgYngOKQ^pf(T)7^?3Wee zcm=%p+qA;B>YD13xK%D8!vZ`)@GCI#x0W9mmWE9C*tZsQXLac5_arJT222iDQn}yE zpq11mvMwfm9jyy+UfiQ-kASX65Kb`mYtm}55+6Fk>j>OI((Q{@q_&gY_nn4eqIu$r`SJN{BGpS>J%tWp~7UeVzMvP379+0XNDuS z$Jq#m-8NWB92oNxEYe$FobqZ0t(VK!&-)}+x70t^nRD%JseP_#B7Jt0SE5e_$KsP$ zt;kvLEC2}#L|oBaeMr8IV5bhgpgfz|hfMbg@OKynZ-`P32DX4T&{uMBcfgCJtjYlVMMt0v%BLz1 zR{^j<8pJCbkCMIECxB|7sY5BWdW~^tdu{n?fn8?tkAXj0(u#a8CMomJzck*e^7HrO zy)pbdw|#duk>0ODEsCxy2f%<|Si56Ao0EwGkyJh(rg*!5ywTA%QqdXrmGK=L3>o$- z=zT(ih;&GRV{G1CqsbnpAEFim4i$eIwGzc9r z^LhhF8QPGyA({$4BlegOi@DdIRRt#h`S`Hk-;q$$jn)ZUwy`dmkj!BR!jcoIhvN?t zUX`E&@@<~y7XF2;&MnHAw_5yltU7R{zVG_5F!1CU31ncYCNI;P{4nJE@O{|k^CmYL zac5+2HYmx_m}NVi*O1fY&mey9Tzqw$V-R<*Sc?-rc=lEV{1-ewCa_gxes(sYSKB#r z!c!*s=HTJf7L`iceHyhmK0MCR($?0JJzVm_x|?T2GC{rku5d)n=h@CXw)(Cws$y%j z8KY6gUH4fa`Sh$X&G9O?*;33D%7D2Yz_c1gI5c_y5(+i41u+>19b{tE-e8KbQzH!a z$=qshFf1dxn}nV3rxv{=Ehd&XFDWdQELv50tvBbtsAzDjjH*T{r=doS??klgDE{?A zLPs3e@C8ix>Kmh|G@pPcIo>3PVy;2PY@D0@MU|4^h6R(k5y>*gxJ?&DpDxzy&oxw9 zv}1OC?1QZ(WEa>z*iwup95G9V=+$lon4}5Bu8%a&Jj7Z~d{)I;{qR{r#Ku4GU})z; z)58nM#BZd}n?18$Q&e1$n0gmG3aro7V;oUr9+9r=oA7z&^USBlcw<}c&WVjelF8IM zS>@c1;zfQ!o4=Kd()J<7^_bhP>VFj}GNpzS z!g+D|Gesg!Nh2ceDk6{sjOmhf1Ioc(qeaiVD1!UHv(JEC(`59{-T#%gG@tHx%j@i4)1lC^w;Uk% zsQhcQ2d)3j|KH~CGV0=_I@>X*Y)$u{`Y%ldzjvKM%-vpGDOw^)acE%7K2_Uifr>1$ zX0db2=VnDiDt{huPNO-*bh=^%*C=vH_nEcn)SD!jLDNORBhUyNT9ic_Nc*L}T@VF+ z{fgf()|rXHb&ah{2A;by-{0iU6o$M~8QmwqrSHSi!4a(&nEJKgT4S8bN2$4@ayMq- z;>VF4fj(=Y>6Nb{uVI{LDccF7A_ZII$_)-U4l}Z-#fW5L(!rMFrc82->$l5_{l!zt zQrwI-fwePTT>=NEPk}pLg!9P0h2`BZX~FSb19|T%Ue*-@e%#p$wDqD{AD$>{Io$I0 zMW0FE`SqxL#gk>VN8i-|yfYbC@td5RyQ{IP-dlhIF7oRXo?!bR%z`9ybv6t)!jRrd zDD0`w&dwI?HjX$!$crax$(gwFrW7fy$jYKB&yvuuF;74b9Rh6G1Han z#rak~HnR}NWhsq+h9{V+E!M-PP3HWqNj?=}rdU+GwY58swY!7_+(UAIJ!)=hYEdz2 zb#87|F^&O#@83J3_OW+B8~?JI{Y!J17MXP-ZdzfCg4Cz$Ho7RMiyIi257w)aFa($N15#mih}~@E&srjX>#Y?HeKO3xtY24~JE|lc;=|jH6 zv*n?Zfst~zZ;tFu7XQ&q+g&4b#cfC$u*9}xGR5?I&q_WO%6u8*qQ}+;FE_ENEzPsl z4Kh=X)#|#(?AJeWkxDyeG>&50F60bxDC#+u11t45mf=BRom?gZ_~}Fl7a#q1x8Gx0 z)iC2+-=gSL@7{qQdB%yL9yWmaL8T$zf6+nSS!cSs$L?!|jq95KG~|BwGJKt=9o-nL z_e9pXlq0})`eHs-$Dvil;zBO-mh*zNf7pm$h{BhwJZJuN*o)kY17*uy#m)q`ZriD{ zStUOcU(Y;`Af0Lr$|zA=3H6?E9#fygVjQF(+nTQ=6HdKz1ZH%r3hp}JOyBrSN)6c5 zY2>db`3CKKf!#kDP!@+^Aa(EO-)*5VliRIS*4ktdns;CMivy1XCo_4hR3(SYXX4TN zPA!Y3zfbe6^jN|wXKaC>@Q9*AX^TUv1>dhH@F*16>?W4WKuY}hG$U@gvCO!y8@lSz zY};q44>mOSfl#8idOIart*0CKb0Wf-B^#8V@L zb~mk@Y$jN^WsNsGLQ9I-H(@$jvSE6w6=sd}K8EI$HRA*a| z2)avUY@SJ-@CfWP|E{}(SMqSuxH0uchnYn~=jz90Tam@0SgESlsKQf?Fp#?}9_;A| z%%pWo#m3>40d~ZYS)s&HRwtpPbmbH`&~x52v2_^o7WjiHj$6SVFpxK{{VVgC?e(d)}+&x7SPPf!M?$WNJ}` zvp8;?g|;QqeBr*{t3OMGvz7!cr`Vc=L5qsGev87!8oSE8T{DcxNRUqBXB{muA+=a$C^EJ-)R7f z;-Py|1j{np3F*^2N>`0(vxg)!tyCTd3pQqCnp+==EIA{(H?(6wc9(H&LF{_s@Yjcm zy?P9pQ$0P*R-TuMMJCJua9wN?V>V-HbGcB`7Ito)udKMNh6K(5Kn^lRxlA_23Uu9b zg}D=h@znTB-#xtcJMy7lu?#ggEzS_BzS380A?{SkJnb6zN1pwue&%U~`1n^IlC;zU zLPhw0G_}67`5R?_wt`S>`}d96E5b)mu%5iu8d39pg$fJ1JtLB7j@`KEe>4fmMU&&Q z%=kQ{%#9Wmg>)nnSY-@I>3ofs&8qQuhc8g+4Ym<}z^C=5u&&?9idF<%BU(1=1i_M` zTe zHmue52QZFiGoBC?eHDWSE6?iRs5njsXD7DaY-jk*;_KD|*$yy!*#@?4^U5?6uV*G< zZ^x^26zRR=($K;w)`d=A`T2>3aW-b@1Vb7E$+53PKX=x<$7vye9~GpY4r;~ww6u0B z!=GbmwI1|2`eenL6h#-&&0vhhY^WNF`N4x&f_d_igeeh$<*)r5LPrRS<5W<|SAT}Z z-6lJ_zj-wkqH=jbWMPAd?z29($G9I^4^J&EZgQCANO5S~0V11y);Q&Pb_2~(+!g)qRGhKVN>s{O4Um* z@Ln9`K|1;@$mwsNxYFsK^;&j#t9|)k?)`6~<8Y{bs>#>`r|2Ghy=AE5-(KCR;{%rG z)5jk7#u-&~r(RdRS$SmGnCQ?{_oXgU>cHcl#LMNHS4BU5F8j(bARmbEsIE2ul9hqV z52VO|3yQoBPA--X6Zo8MgVPdg#l|R)@S)2eeh-A6^JsjMFR#$mOpwV{B9E)i? zeBY!ujHlBh=FM>kG=QHp@JQ}n_a=5p0E@gLJse_OKGoAhNjpbjgS&B?!xL_lX0nxL zM3q5IGnEwR^ng_F1tm#U-y$Fd2VH{p9hGM=TVOq~f>d~caSBvPPZ_rb_Nxsqxafv$qHZOTp6T%Ng|YAJw&#dHv}s zM<&&xO1Dfc2}TM1#w6>Cr3G9V=fW~QkR?1poBC2tDFaYJhX}Lh=0g%6u01nBvmFA} zhrW6~2&3zlqT?3Y9IeVnM8;9vKfsY+TQy(r#gbF`3~4jhcYJ&D6)yI*RQO_Y6M6Zq z-+e;I4Q{xPv&y!(`HRowJfkXu^@+gyNTtUBpp8ppBOEriOSBb;CTs3nl|o*F>*=)Q z8FXDEm_D>vTwavQ2`yh8XW|Rd%+zk4^ndJpExXD;QSW)J;enn9_o@o^XnuzcKj5E9 zi01Sezb*y9Qsr-!q5ulwmS+J!Tdifty&79}MMuy}YV8Fk=ZR+UTacB#t)+2%IdY!k zyTz~EZt9I!He$F89=?bmG_x~2#EXxZAUlbI#vJ8Xx}9X!V#KCvc-tcGTZrP`n%Qhb zo{ibe;)>%34e}6x*($7RhqT6`=9avWNu?taB($0dYY_-G*8&cLYI?CNd*EN?fRFgK z__vYiRikay(WRHzX80Ki{JB82tFYMqUa_hGjepcyut3{8LCHT>{PsYyHyTvjR|$}^ zEoAXB%&V#L zExE|?xASMToCCKbK@wWG6Yc<_veKHf!-`Cbgb(!2R-Q{guXg|GmT>7KC49n>0{-SS zmzn5n-$wmwCmYXujnB|R-031_!#)PXA#>OTsylYQ5!v7p)1^p(lD*EahVaAu+j9-? zkUjsS8O%`jdpyIv*0**$Rp5OG2PRQ@%Q|g3L=J5z6HhVZ>#s?5t%GHHoiBkPU4beC zS`R;!rolvv+w~y{a?@WUZ222vy?2Mu+AIeWyc&tz-szg%L3@Ud&Cn9bKl zKbS;HntzOIcG@``Ax^M@&gF?JNq$uM(Zc(qL<1!RGfYor*n8xMQwz78j%ZI5dp>AH zQ_SE`*{0F3@7d*A)vFW`@Z^nA=jF*)a3{%t6Hy`_LkS`V8zdbLGL{^)c1?8&Ou(DW z5xjb?R@LJeB9F0^f;*@vHosxS1M=)=)UL!EfbR9By2|kN^k#U2Wc7-{j{jy`okd5U zNu5XGGE#%-`q~|$5R~Pp{DqYWokM4m#!dCSyNP(wDN_C5K(XD}cigT#Iu0{YJTUil z+9zK;-G%8AP+Wxx06SSDwO4A9$XiG^!-XYi%RD%+9DZMmsNGi+S;*iiG}$EvzxJED za6$)`3&k;N?U@pi2Y5W_r}jK98sz$Y6>S!N74Xd5d|}&vc1tFrw$K!9v7o^`X7B*> z#N94FMZaG}9YqKD^bp z;g!<%I+J7a%0SX93K9t)n*LkiV4;AM(Z2wAW9tpx!k-Yl)P=4a9poTkyIB^*l8Khfq;YH4qab7Wq%f!Kms*ce0LvA>Kir37r4ep*(Wg*fw6(TG(%NI05OP)w7 zH&*&AuIl^CFDdLW7^>}3c^$;p{U|AZhyik8g{cY5uHYVvE5ybVSt|I#3cqN63KpD=UJHvnT*l z27OPI>1QH~3Vg+0y7)ZO`v~ZN@0?^=Y7ODi;`lBvYO&CGQnbq+cNNBL$2z3&ID$uo zV)3h$j3NA9cr_-cj_hG%j30WEU?*4zygaX=A=x9%F2vfD3|16zJG4<>*&K$Gzg$nzawOHV#y%LbOy)xQ2BKe!Ra!1Qx_c z`c!pUs=vfecIKa?-QTWU2}Axxkez0B6pne7oeMcqU&9Q_lrPcbRU?x zY4(V9JC^sG<$XRB9bwXA0{Ll*J>rMi$j>LX%*35zRx{nhV{QWm{`^sXX= zXJ_bmcUA?a51eMJZBz#Ns_G)+tbRt!6X!Wxe(=)+Cbiy&1L9Tz`X{jtZco%o`t?nE?8QpT zUdpms)c3qB>xYOdz(g_Q%O~YZvlu{GZ2TXMI$R}Ep33k|)`}e(G|0qZ!V;Ii^4jxZ z{dOOIPp4_Qd%&&uP}~o#hdsMK=b8Ks(!? zGTg{Y0c}dnb(6lEH4I>OzNr!4{a$9>a1@hM6x@v!5VkpKNi0lSTA6wm-59uCTzR)5 z1lzsrVkq0KA>ZrFKbPTX$fL};>n{#4M>!jfI&8t3&&_p)->%EBJ$^+$4HoInS`q)({%3oe9O@^;k{ZZFYqjaI;*+8bA@ zUTqHifE5y=5VJ@w@I7-qcXu@|ivDD!{m08(Qm;d-qy|#O{$*1iLl4h0)6#cYV|baH zLTLL!HTst4FDa))N}5CS>@h}Dvu@u9?cMEv9=G`vOX`^iY!)>C4MHSG1ON9WJ5GYC z=O%ZfT%KIdk5SEMdimPS)*{8cPAa=g=$O)-@!$Fej1Tuu5ivCf#fdv;uf2(*^PYEd zCl`VGgz=BT)oyC>vFoB)?(ZYL;^Y)T?s)7Hz443e%th zFU_Nk?XWcWO(lsf43r^u)Vr?mz_}RxV@H*F=1r&k6a%A*0pVaXKQX=1ovpK~sx#ta z?^U@n`dDsJnoGZZb!vV+H=_r=F7Fax(glc+UuRHS>7cTneC0Pb_BZ;igg8smv3wI} z4&(Bb&G*(N=Y@s{Ae(0K;TA*Lkw42=T3w*k;$>$MuhM3W?461*wbxAtY02p|t}MCW zWcKIr9x~mFhJDyO?hkIfR_NsTH+$gUpv^~Ti%X0Da+bNrW3ul?K1dn+_>L!#V0P_u z$?9^&;Z}Njbxk0u3f`~X|x0IS=ry*&Cd=3<-+L@7WT`6H~nJn}_(`Q`F5`v3jBmq7dU z1)J$jTAG_LElxb=Y}w<7q*9Lcej-O%JdJ%*(@4?;I(cDFc7(g&L&vgm89hSlCZIcc{SO{zCuD?U9@a?(JxPzQ6xgsFa;ck~1 zHTvGRFYY`{l)TMT*sucW1Eg2|ywEgnAUbz&hLlx43^g73)j$MAvjr@+C34?3_m`O6 zMDvs#9T|vHKc0au*gK5Qp8N3G)P(tNhT|yJr2-eu8_%cM#C}@wNou-Ip|l<(@Yzg* z`gE|ESFLa4Kos>zxAK%?^#&ZJZ;eTeVCM23y9 zO$sJxHosTpaa~(zbIosLv^Hu@uRf^(o^(;`L>JqcSEKWpb>cBa#^$TTlXvUt<9J-} zCnCWZV}Ivuqm{*>*Pq*krcJ1k6eYq^1VswBX!EGYlBwK2w6fN6-^?wgCd+vt(#&lk z$|*j7*Fla&M?KF;M2|^bfk1{&7wg`BfP@Joa(jIh2v=1kXTQA@ydq$5E)vx+=VCrf zu_|x-0T0wS;pLFOr;l0wcb?<&s%w?h>~Cq4{h|9}2Duf+taEu2s{w7BkdbD+PVTp` zfT>K8c*H;J6j|V4i)ra)88YsIM!c!3l-$CdEbnm%MGb$++s$_|P?SrDDK}muLf~#j z>25@lTwd`J6XkX<$rC%TXc(*3giOBgexYGG<9|pS0>-xJ7cS}3Bful&HR6&j{{E3=BYzqQ^whW|M`$+$&Bpx^yWw_ z;c7gxN8ljjOw+;7W<;2vA~V`mpXF@Xj~9rAmuV%4&-ZPJdgABIsq+&}W4EUdJQZb_LjVSLgz?fv z+q~vvr9V)sL3oC4hwC>an+6GX&Q_V|Qu%=tsM(02mcSTz=IuRXIYlhIK)QfCQPZH> zBQD(yZo`t7h+HHdx&%P@!~JH* zC2RQju3h2v%~`P#W@wb}fBZPG&G_zHE!)mOl2xh;C-~`ZTULw1eMqB7 zoL`>Pkky9ltxiSGKgJ2Op#FYefzN6LtqFQ^JE`KLi7NI#l^5&5C+sYk!_gm~+o{ec zVNy4>NlxDw(ft0#aK9qE+PV1-Ij{$UDE48`J6Z!P2gY4{)ogBB_!r9r*Ari-+6SGEh9j8>CR?MxO4o6f9=YdGn0x-0I>?@q1_ITKVw@66d4L@x6v2$1+V z60{15N2F9T?p&W@FpCEUGG3SCJq(|PkwDT6@Me5RPX9zqh!=}ZkEeaAe*N?offUZF zbr-dh88*v%%6yeF52`Wh*IfHMoracZMpzKe9!YzU>L#E5M-zz13QFrxB=o-P5W(H- z3VKApHB$h!{hqHY7p2op=)wKzi1I<1ESR44L%xq5iH(hI_{?m^rWjNL?KK*5dPMmS zF5XBUFuX>cSfiu(5Tgg1YZu5~U(bZbG0FRs#3sbBw~plh>8z;N1Y5{akHZ( z>uvaq&f@f~fMPT29Ibhq?r&F$Lv@b(wFBj=zh*Yf(Xe&Vf%@VN9lIRJX7JWum=z0A(C;gf7gyMnf_*a8kEQ6yTtSH2t98B`M zNiqEHl(VP@FZF;h1T+x&8k@7X67ToTwPoZhCEm>u4uAV7H+k6GDgoMza?5a2+*wp~ z^!KnUcbmZFYzC{8h8EuR*=F|6*W|@=9ek07%@5ah%o5mUY^;;(ymC_W3lBxxOcIw2 zs6>hvppqkKBrmm-BnjI|HL5q>i@%I8~3JFFtcNoT`dYn7?no znM2mU{G$o@cx7%?yd0w)FZRJzF=#fXK**94kwi=Ly{WK%v8hmhMcma0>i#KNUU$mz?5r;TEaPW%?NIl zc?as1nDJ>-TucQ-M>+7TTk4_>}Ow=6ZaH7&5R7zR~w!59u*U(GGUm0Qpbc zYs|1VIdtZa_u}0v_*@L?W<0hV3RH5P^+sH`mw1T}?w>jv zO5$Q~mOQ+riS+qibyJ@nl;aC@RbXpLQKu z+pP%~V<4A+w-LBJ?h|!gk@Y9lVGdSUoC2{c9Q};$dB0at(5h&TmX?zgOZA7BudmZ? zCepvttJ$^_b!6v>DtgjwxYruRoog^Y+3V*hB%C|^LtB|Lndx{|JDxw_9bY`U5m|agpSuqw*?cdtAJ^r zE#5C1{vJ>Aq?0!PdEmKyHoGqHu8V|BYFYW{@2f=~aOD$_*0vU>m-b?F=z# zN8q+qXCS%_<*1_Jw8N!JLGQ@l$t2hqiBA%$U zbq6hC!1?-e{x7FAzK1CTTLw&vExyViCv&^Wp%=y!y>~5YkIy{F2VjI_hC>~YiK3gq z&$-V>cVWWNOOep+KxKM2T`suw8KoBk&!6)5gR}%1SUzW|p|t`(r1$%8^8ZfduJo!t z4AB7Clh)6;uciBb**lwI>hkX6lh9FXZ|U@SpD$9F^}2_$**wJk>{ra%l|dW*i{!Ag zs9Q(^Dk&nxyS_l+=EZ_(Qmql-i_5<*oCa0YhO2w36%w~uz=hZ9mf0+O9}G^X?+PD= zb+-e95}Rh9yxE=aiw63`IcY^hYKw+sVT*lV?Bxz1y@$bN5MtvKVn$9x^+_K5{^#=F z?gH9YIoltC8stF`yY#WNJsA52&;_X27bXusyv)G~@PaUPHqZF0E%cIHI$LJJwq>@-4CHw{M^yfy^znt( zA0ro;cU}BEn&~wiW`6f`r5x=Voo(qBjt@XxjimTQp7SeTCulaaI<9m1G~I%lrlMoN z!M#}Yj~r9~emO1m&^aHux`KZHRY%O3QT*i8TbH^2KN?wbEq?1BJT8ykPj#h!`RPteL)2JIxSi?DsfwQe9>aD%a` zpq}WnUovxSd+lZOTd!W%SIzG6VZvS@H@gRI@gZ-M>XxGN>hxe}_Q1A|c3{FN-%-s8 z8mM}TGSdX94~dJ*kXMTOC$2)f@oLHc(XfZ;&=+e2SCWs6 zA}4d6LJw;AcLQr#KQ=vxdjHM*)rjb_dadHQ*JM|u^0G?-ewhUxlG1Qr1?vk3^3-ip zf$^YJNo9?HE!7r|&C-^`^B!^OqYU}_PO0MJ^4keTG2?zUq~6 z&Da*;!E#><``c8XYlR~g_Uzox6}|jS@w_bk{RerMJFGvE9O};`GLxpgiF%SgAyrNt zs)wkoC$!!Y4yi?1JTU#I^?(aJAzAT0^6Zi1(~BP$7|_Y4s?4vwY;7gNmB``)Cu^2> z-CNlRaY8-X|7Tn`(GYyLaIyOz z&D?6dgOXqp=g%D29Z?6Z469c!KlXD=Z>MO3=;J=s%YiQ~<;10nO`?q(-9Dgn(}VyE zNy`6ewSFEaIHY=X6;%4f1Gz{|i#k%)Uay*Gk0~DRg}mhCJ{e*KUL=~rgWfY&W{MJ- zmpo2XGnv&ZE%5Z*V*lg*chb{Ho^e$x)8qcry0OP4@(K>8C5AXC3;9oT%(7wFH~D=J zNe)IMpl(}tpZAUAH4yeC`TM=rodlgPXNLk3Rvq=?pBcg|$%m`A;Qst_8`2y&<%Kzu z-j)K<3HgqkQvZA``T5XB7T)oRgPc(Zo28Mb!p`@!9g_iPGlEhm=6y+Vxt;s3IW~2>bGDJ|;|u*Dq*BnPKLht~=3ZW(@+!p6hoA6U ze8YqVb6dldD1QDE9qUEBgdU_NX9~&&sq4rk8#g$*mJO(#Y_0=G@ACciLYh~q`~+vV z$>BO11+x$jqziZuJSJWpGWd9`mKApc|KR4t?ai1f&;YAF*FXk;y0}~<=uH7Y)cuIG zT`wf3x@pkdF+3COr1|+DO(Ep>C>sIP*N8N$0d^-Pp@HnBWQ$m1{pJrY>^ip17lkpC zLIF#Epg|M@VnW~=;vVAr8Vf+Dbi_5H#0lE;V?yW5|LQXXk88Dz;ti>7D%-cZ1ka$X^|}tmN5);!b!d)}G5Qys0NHw_KUngy zs#|^g-&QllAOmqIFsi^$#OFO;Z;rAt8sxRk(UZoFrivFhCG}2MDFaY&5BjXER|~={ z3no>@O^!LvEJ+N~cEd(J!%ZT5Vn(Rwni$jtnL1v0iNbcS5W+)H>n^d~u7Y;JrX+igONtR(7T9Rck)=ckE z=AF;kwbQ0N3(P)jRxle^=>{Q8!c4!kz?B}(2pM~tlY@Y{cBOn5Q)dOM{eDdc&#_ijbTrgVmyQhlNhwD5YSifcv7!dzdcjch}W z>tI0#=1C8*{?VmIL+dBvDS-u7l0$USSp=7e)x~@pA!#dnP;rvzfJKF5M!~&=qV!h^ z7sH_HyMqJtRj)NA9~wrE)&i)9UaC6f@GPK=crhDF zVG}yw{DzIzd=Q1C6)@L&S$4c7+)=Obi%a-$1Z0O$3(AYJAJ_brx+5Cjh+Bn`PFmmLY|&?rzEw>;@HrbH-?DdD`ToVtrIya^QNDM}`R|1iq^TirO{@mh~(@UF;xp-)t z)TUnU2v&Mkiyh0<@sGch)^AHe3$si}V>;tlRW+cJ!*vw1JpY~EZOhjavWfgR3Gx415yqnE)22p2vFoR* zMTUz#a{dHzh#iYyPm6ioC^`Cv1MJUtv-=lN3M2Um&g&iWMi)PYmtfn{3~){lZ|+b9 z>O-`*q038sJSMY;{6f#RuycwctutQLW*i5PEbbWm3u8pWf1cV22o4jJ%km1=nj3(6EvLRB&j%5hFt*ooM1m`` zp+|r$@X0*1IQ)4tEj_2Cl!(Z_t5Kxj&rc{Bb4q)`Ga4Fs9l>`rG#L)+Wmi*Zgga&S z&ZrG)YUgXO0OyI0MAOowVD(B$yUQP77(@%Z!1`ko3xxkap3XC>$+V5u&NzxvM5Nb@ zQbQH#MKbCD5(Fglnn6IMcL~xg6oCLz0tx{{2$9}<03j6V(xsDxB0Zsm(BgT&v(7qy zDF0X?dEV#V_ukjeplV)Z)!CHUbk?7uCX>1@T<~okWuzT{Z3X=Z0>Ar!Pep>7T?#a*fpMF++!Yj5?;is+*CQS zDQle!i?A+7@%Vo=eM3K_kH~$wdKn*@lQhQPqgkEK8Yge5u3CPj{~!?1u#0(h92wnN zyEw^{wldwHR@D!SoK&sE;|9oqQ(`%SB+5*H%UT5aA4nve{4snymrYADxAj*r?< zCs%Z9{!8J+a-sN|yjcm3Hf%A)OUXGC^P^g|{qgt6$1?#E8soV-%x39e;x^a}M zc2%Fxw8-jUw0muGK~f2PXqe7@B^GO}6vX`Sm0hlGLvV z2HyG?&FijOB5EEtu}KA2TWxSzU#;WbCHOc^)HB>dSpfOsU$?t%D3FHviX`{rgOx*~ z;*2&Ynq1)0J=$%$oEB^*z(8F(zS>!z@BaOC1Y>TVZxpT2Z~Ch_F2@BmiNx|uRT%fA zYcO!Eilhl2Ss$jR_`0R${tZO|j^i>!V9Y@m~?wrXq*J#YQ84rSal!qpzk#~Tt3(;>Tp(9DdZI+AA>3I1i zSl_DC>psxmhtnAofNc__A!etFTtOA0X+((S5g?aovv|CELJyic&1DgB>&VH7W)Nx> z$ccZ%(vuBj!D`^0sgDAN1NqBz`u|D~`TDo_@HvcB+VF-3hY)RtONCz(=4&_;P-@Mw z&#FEYkRm%wP?CY5`W}*~?v)3#;1KIcpa(t=2Ao|M?M{26j{GS;;j9V%n)MhVRZ0fi zTg)4j^;7DJT+E@b{WNoCk$q~Uf*b8s)0!6YSKk2B>j8;AFws?QKZ30DxRlNoKHFXk z|8{beyCc%T@_ z$+GKsPTio~ zRC{Uhm4>b^_!l5xa%H-?f;K^;tex|qKYh#{Neo;t6mxh;#$>vU5nD8N=r!T7fy5+! z0=@9qk(R`5@FSm-Pr;JWeX&IUE>moFS~!3A=L>t)P$k864Z!rA!j{-S z4d+NcTn!YuWloA9?jh}<;o;5^}mt-LStOSS%u=V=rT)Y2X_$?MFRTIAR#{Tyu zsr%IWjE(ZC(Yn?{$lnmJ5!xM>ZHqHs-8ls&14Egw@ucUxT$e$?jbZSczb~y`aC}+W<39Tt z${EgCS|&QC5BLl^!zC!XjAxpP@{rkJI~C{jwOiSiqvpl!KdZnOj@Lytp?bz>*Zx=i zS!a;%$2))=`xju1ehaJ{JH%yoaTa;nknV`rTnF|eK_sKUTr-#AwRpR+v)1#Q7R^aX znu77|Z0DkXE>2m=Dn-=W{gT%b0vfSidC!&woP^?pAhC_=ZV1WYdWKBH09$AHWswuC zih05bIVord+$VCBifaAvDC@4E5Uit$g{M~2oQsfdmzbpuHpv||7A*`&lmrhQLWsP&2_2dEmYSnB?i(6f2P&^NC;+zPX#iXJy5}@bF zDXYblx*`I3tgQrL5$C(0LY^Jn%zNGAqLyx#<~(uH22toD_-%9kbyN{I=&N{_=at@Z ziTZrJfm%7bYL=Y=9FbPLumg;+)e0N6vj~7*E(LtZRDVsi{p&xY5rPl(Kw$om0SEv{tixi$O9jNCc7W=r&S%C7=9PC(xDkI`f%AA^^@Kv+hUD;(6N)`De3 zpn=V<@6#A+v}>#nbQ2coLsK_2N#wq)%Nq4%Qqnl~_t^i}@zz4?SJ%q!H^B4x*V zgLLZFU_(Q7X#LcOH+`;7J!^z#NX-;ZZ5Ozl+EC?;7#x1L8}c&E(=c-?u*3*z`nkam zU7FQwoTRua(Q_{?v~*9kbH&O__+B@}4+$`Y-PMn-KU=ZGLV+DnU(<@PBP#fjzqX7QHeP0=e-BvVqfO1k|J=A)+A-_RN>lLQ&gfLM zT%R24@6jtr8G*fl3@#P)B2m>iF5%k)Rh30u=X!>KXE+b$R;ZUcaqMlN)1Mt0sO2Hc z1~oz7wO_im(PLR0=t88ae4{O@5H)rAd<7*_`m4`v-A1wIY>3c-dkG87A{-UsZ~HAo zHmyQvjpLD6wXv=)dV0j)8kg=~I=uAXCG|^JFY)mF**-je1_vUw(K{RCPQv%T)U-%` zkeHw9X8-&49{BS9Ql`>NJ>@w)k@7jOK9N+<`t1~hhA##!*K1R~|4sEe zl>(;emwF;uo-Lv!K*fyF&d6E#)}qSPUc_^`8GD0AW|M)yV~VDYGa)T8Ym5}TWz@9H z*&#H(+5cnC{^YFe2!5+zKoHHgC{xn;!`6+@8>sOJ{{!m(%{PYczYC0RU+j09H=7Q{ z%RC(w=X6Z z`|6yr(x!i>WE>v9Uc9ud3G~K~_@5#?@W?7tVg3%u#wTy1EPMRFEjuf=mdnD-d!7qa zqFlRmGO;>$-yDy`*IiT0WklqgHcQu^M#KO<`I&#Dg_E8%OaCMK;BWN)!1e>R3LQ-T z)l*5&S?ZbW-oO++qXv?9fHaU6GR}HdVh6)J(@tyL1Ft!_Ee_3@g#ZecM(@epi%&Zl zJ3=zJUMUB{&zqE#aou30K24|R|0H~{@m2HkIXa6NjbNgW_aJ86Py(r}1{=5>tup7y ziW9%XSM|H7b(%#PmbydC~i zGb%s2#~Eo3j8a23zCdV<#W^1M8wduYC0^IBn49N&1pwYDCX@-#V-5lRsu%p1; zrb3}I4$6#GX(nvDSWWcRavN3a_M6xR3iPNh7(V#9X{(8p40uFKH7mNwp^}aLp z!&QDWyyy`3i(aT-jEueW2!mlhlC%c;1LBo?Wh0j*Z(X^lM>&Ed1$RvgG;QGiYE zYTD)NGDkQxWgjWv zMUPm4A4eF!v_@Gd-GExY@7On^9wgmQ+g$}e%sA6Mbh^L@ft(g^j(!h)IaE{EDliLT);{76-Rpw#S&=_x>gw+9`-gy8U6_%yb(8yd(}B=BvrEry(6I1wqQWA}lmR`yG{o_qdAMQHp>GI!$Q@>1Wb#ye(i z_K*4Apjh1VbjR1-t2072?>oZW&|e4SdnOC3I9~MmO$CrA?iV8oX1xuVt`YYYn-YRVpcZEE) z@uh7HcW=ZONSo!}d|bJ;D8(k)q$1;3_@t&I|7UYpZqz(qwRE*wn>x}Fz{XqLNt3Z) zc%5p3)m~`eYm7#D7&Ha?6innpZ$QYp0GtU`2M~a+Vx!IlGfj&KNij1CkDuAIa*m|? z8u2-xY{gVm-hRnvHndCWnC!1so6HVUy$HJ3s%hvP54-qSF`0Dm@5p4Jr`*GF@49Sn zSmo$p7=SF;(KnlvB~*>qo@oTQx-{c(jfmxjw>*>CE6Lv&vHb7njA3Q!itFZek6{=? zSs;Fw5~ZpmxoeVEnxg-5Y2p8Rq|WCABm4JpTypmYtBwF2OqKbnP`Mm0vTF)33v2PS z=-ex@F4OA+65%c0798lLHGk?Fa3yF!%#pa-{m)eB_@{{E{HY^$!T@mVvlc|=lGABR zL#AhTNqGJs{4aX}%<=gsHE#MCh`nAL)TN*AA>T|}L zpe0dLo?k!<*HKT3)?^9L10}6mG&7u;p~F zA{med?(e^e`Sg6^wwq7a8K0^^J=meTRER5q$DdvhaKW&A^%C{crAq>Td|PHDK<6Uh z(??Yoji_4qD$S#`R_{gndx^`y_U{E8sc!KtB2q|+mR0PTV!)suFea?Ox%?gxa=}KCvmMQSEf#}1pV&Z|wrWAFA7ISkV zP(K?ECnvqB*wxJfa*uAudS64K6uX+*v6K(CVexo%lgG&;o`O*m_4~mVHO0R#J*COv z^)!vxrVG+s{g>~pinPb>;>=#0Ll37#|JvaKn0R^4Fx_(zIw0*8Y(uL^Zsm0-K zIy>kcoNNK2Nu=d6D-J!P8q>IomTb>$DTP^AvniLmw0ITfH*>E4!2PS$?MyJbF@UXV z1l>HhtO+&;sBM9`AGI6WDHD9ycHKS3) zh+qzAao4+(Ln2JQBW=Zp@P-PzAZ)Krxr~L6`vYqIur1Tq&sA0FFQos=j39ztKy&kt zqVUF<^nrm*BW@L0XU6@`j)6JVIhwC8Qlc{`wC!*pAw3rH7+>Cc^Z)I~5K8Gi6x&`Qro;_WUvbXSK;YhvCxFY#Ym+W7&>RVgc|nD}ZgK(HM!o*lh-u<*d!fCN@a&>) z9)jWV*qZXlO~jt!#j_4#Q}WnYdwE-w0E1={9=>y~4Kz$q*1R=e)#;WSrK-=ow8m<8 zLzT3uER;$yQpL5-(M8v~WrHL5!tUcd25|TL8kgd$%zXU6(TqBRqam!1cnu3G8yCg8 zM=_f1vPC90R?UnDYphSMS{IK8EDE(+7YE+vRIhDEK)jP?Z6003K%C0FyM%c7oMYk= zQys}I%Wdx;*qBiSPHik*r~90le;A(XMh0ZLC$Vj^Jy5)*i*>Dz4?0K|uGpRT419-I z5#+P)M~2R>8hC7@7L#mj^mF%F4$a9f3a19NlZ@3*OVhr=AZoN!!nw{MsVsO^kuty? zkJo1d9CgNns_#J7>Bf=SZh-)=C;_|UdIlc$r9W=Dy|HOdIQUu*slmgNC0wLxyDA7|{AFYZ0BcN%XD8 z?36glb4n1v00qYba`6`7+^q(W3TAor>8f3%t**s&eer%7XfD--dFAITju-wv@I5G2 zZ)6c8PiXreQ7|OfnI^4C33S{}lez$%-FgvG%euV-tQNFr-Wd9L8#4tP6)t&hV&}Eh zHD#|=Q#-B++oNQ4HrU@DJ<9ght7{D$6Pdgbg`hTT7I_C1UUR6+)vMl5;k>Zt)wwL* z=QCqy7KM2;P(3KifBj9zXfrmZ(?NLq>*%`-&9(fiXe`XX2$o+2!{{0Mxlp*rRsKK{ zm#!kV6ncp3HoTD~>Atde%Iw^pxh>ZiQHw-*`Z?Ai72UIp90Z-*nuIjrk+c6=uxL9vclt?VW?6B+>`}vZyF;8u~-P7FFiqV74%p4g+OolTsgFE7R|1DYf8+akp{T28SvKN2sNb-ZpY_L(FJB75eZv(I{8N9bDvPmIV=`z^-MV ziepB;Rm_dhS+*}eK-_uj_Jl$O>tm>PwCU3OlSflk%L#XwDx&DplWU2q>2TiAd-om` z^vVn!;q4c<03cu2l&rT15OcHB*+`on0a~iBApJ`oT_ob_ywE0jYHriD`K9*dJD9;G z+@2HW^!PfWw<}a*+ouVM$#o8xaNx6SPEfT684yGb+ZzvNrxX{W5~2fNhg~h%9amqf}+7q{y;@_ zEBXlQs?mEU6;<>5(#{hu66<3KyeE*RoZ+3N>$Oon=ITXT=mPd&b_ouBQk%8-F!8Lq6dADUNc4^L+Ucc{5SzcIoxb6&lpDZ>^~eq37@!wb8AE`@9Ov_Y1g3 zGcRHQ%(NLRisYG$IJC=~?|wyos~_EJQc5?Kpy@Z#NCM&hFt7pC7>N>SyKyVQdc3fL z&%bQo!tq=IsA4sW4F8kdfKU3%wGTsc>{K_XPsPlZuO&}$3We>=4_n*BpPjuET{s#X zkshD#-`AIFa`C1dLq_~%#fJR_&Q!`NYKbnffTCskQctb@B}%nhqBDWVI-AeOI1=0= zANec;e6gCm(iFk!tje4r^`(*~(9UYa`Y^M_^Fhd@8`L6g%N(_7hMoh^J#(ntmtzAQ zY|3^g1@ z!dm=NT}4oHqwq)LY5CWh^uG3h`(dfZNJmb9)#549En}NiZ8x$$O`W}H2TtQe`@cao z7TZ-~`4Rc<%`5htlQ_q`1t$Hy*jMQBvT9mHC-;`Lf#dS{OOg1el*>l$0RH384!NIV zeAmtb_l}L;YF*MSEM$s9j9+JL8nPTOK{)|=3E#eKJ6EDV)a=g2h;o{Mi!Otbg!5=- zI#~J{iV^gkE`lig=$r1W{~D(mEzZr1=Vz`)%yT{-tH>p88l~_E)VH98A4#LkB+PsI zF-pjl6pXRMovo1_xu5yezsbkjLwRzsI8()?TcOXVw$o*7Y~HeoeIhV{-|EQ$X7u%c zg;epy7z-doD~Fuo_;y z+c1>3Ad~qu*-A(k{iT;*iouT^q%zc-=%otXJuh?Ew4!DR*QFZRpTUc_-1QIIxhdXP z2=Mnmivv-NwT&9@?HDUE7RvWG2UrJ2cpsVsdiGrx!^rRjt!5m+&y;4bovRV`D~Mr! z{DL#ypF9o+bQpM~Ub{FrZE4DY(Q zdtppxpm=2VIBci{8ZnoR2Sc+?7Ud(N8*ozR7VsqtO!;Rhv|>yvN&J>iy=b3xA>78G^y_m~iIxGgiu-gy8EW~=s^4$} z6GfEKCk<;NJ0#4>u`*x0GV>N`3iGU=f0mx%S3S88D##^U3i4}DYYLKWdS_o&Iflrj zmk}$Ny6X9&fPRdb&CI_kJfEU))hSvtpJ#j7@4e>z_(%EzJcY8LZua6odCB6?lrG~W zkyHa{YDE}-&{{qdB&1I&w|nWKZMZ|mIxZOh5q;&=&949Uk;H;3o>#S4XdBaAE9*#S z7+b@xKXe~$(qdaSqwOE=hu9*{zhZq8s^OBqAVtgQ5)vF=J$Q4aHcQXbSXQn8rrMP9 zK-yeS?1z*2r+2#7b?EV=5iVCB07B`cs+qxWXse&=q{{fC%*)mJqk5xTz!quKBrPTJ zPC-5_{f1H*tLLjpVf6qvaD=b(iDs4R`M+BorOF^SW51o9Vz8{WUP+s28Mv{2$EnHo z%LtgJLX=AYv1)3|#RKC*@vlYEl+o?alqav8KTXs&$~o)FJs+z$nsY5XJjW6}Ti=sx<6~@#Er$2cWz2YW=G39uXZH}xMOW>q>WSg zuGn)^GaBLrat6!$vW5ZZW86(7+FxF0yd0doVpP#8xTEq?A8Da)&Ud8Q4QrJ%mg-k*=U}nV~QWu$$)aupoPYwTb4db z{zY5zGums9Qx~#Sy=1Qgfw7xb!OZ)%P;;d?R}8b|Zs%GXR`4*K9FO-B97JG|6sr-o zrvrC)TcHSC(8OID((xtU;jX1^%ceid)-H(A^w%?aPLi5IkzU6@Dyec&)VG3T?W0HT z-PPHfMX$nj7!%GIk46PjwvKM8DCn#OQyJoOaT*!J*P- z>YyJ|E6f$!QIHowV^IiRLYN$Lqls!6yqooA^(>9ia$_J@@B=x)a1Sh`*522aO!aWv;4=K9~Ou0M}@gD zkLaHKp7nF7o(*8-Rk0(_h7urGeB^D8nC|tSy-ZNqo?DiAM1=IPa$6!S@aYdob$XUY zrCX=(6IR}7lNXbC-51;~TO?qM!^6D%YOahrDe5Oy!$IjzJYdqn6VtmB!r`VDo0Ds( zNrC&Kdy^$H!Hyt}8F2}E20=Gc>o#JhyU~z|Op2+pqWZ@A84=b>RJF;EKDIadsO??^Xnf8;>pg3jniF7 zd&Z>G0ivO2##HCZIXJq+5J^FJybTmqZxZ7Q6eH8zegx3+A$ez~zJ25y4GkAk7a71b zB^RAr!x}Sn|Arh*FEpaa<_g84E6g6~&uX;~ew@BG{ls?QBIa}H5@icB+dud{Ryptf z>cPC7{t4%+Bl%liUO!qVWEU@-r(k7h&|5F2NU3R$1B9cFuI#lGPYk@M``3wqvSV*T}iTJrpCpXSdBGMUg{Oe-Oj- zqA|!sp+qU}n1M|Ij9;G)y4$9qHUj?7al1x9P}X~MeHqfR#7G|oP_9~_a}YVRKuCZV zNJ!9lcos^3a+Q9{gBya|Ot|!aYsl;=5}nEm60XN9;jev9dNzHWuAfGzmd0L25z6>@ zr0=U6`c+d=w_2^o)8{AM)C?`Qq-3Nc*8k@`j#UE?lRzgz%=?)$)Dsf2X5QXKKv3va zyGh4Hu9yv=a!T~)<5zz&B0@#4^&Bl(t()lFnEm|qLiMOLSNaNE64LNGHf?@|wv%6n@luD*^okr(5 zljnnpTyQ*s@n>iYcXYRl8T#uu23jEX`;yCIza`rAw%A1eU^?Hs_#Cm?ylXo1yO5ud zN35Th_z(v@RxcxZaca3f(~-On@oSCey$at*exH21iziOoZ;+?%v`VNSQWWqL^w}YB zM9s=csFYcS#oP!}Ojr1y5giKNK;6oj>yXOMbY|d8JK@ z9-_|?Aue4k0a~44UG=|pikWGZab~w6r}L|1s-H2{3kjL`#^|z8ESP8yj6|0=<@>5N z6Laj+T~5qdnc!FKW3DY%HipXDWvosJa8&Xt+ekPRJ*#v-Za2xf73gLbWsP#bNB{(l zJj!r>$GzItjn_&CnbDK9*39O;XkV@%=S=QA`=rqeU-ca|lm z_clR*1?8#Hxpb+G(Q2SrP>0HyB2S385mtSA-FwwEW+cm$-KIk^E^j5}?-Q9O09wa9 zRqjH>#_^msz6f)gX16)gkwm)#!g~ghB6c)@K<^-B zp)^B<&jXNq)Dt$X7XVxr9GRI+F|4L$$P#yl_we?t@j8i<`O%A$(nlB2es)RWUWT)g zZ=sM#!gjt?U#029UA3!bulw%mnV3#j4^&Q&le1GiO|vlS)#zN!iw4EHG>kC)Da3s# z0p;9j3nBD?1c%Uwubdp$?MIsl<+711}qGL^MO@%wEC}yol-4gxo zy0Hm{_4(#`3GiR$p!E^GX%e|R?Y}QEW)KQX8StPerg8*(N07yJpHqdA{Kq2{5Yb>> z-`(4%{xsvg%=Wpc!#&#t>-mjSyM&|of4q-w%gwGd-OxxtL`Umq3@h&Ol}#1#LKFB* z9bf&-ELKj%?g*+|L$!{ehAM_8kje;WxgQN`{WSg<)$kl{mUk5X?#JbdB<2B5L$mx3 zPHB}wb1{CQ-jh|F+>?HTT;fa#-90~T&7_xNZ%0+^6#e&kBOD1l(2DuExAO^mG;nXM z7JK-3J0niKBJ>py?l9?kN*}bBrPO}7$n98SZxdS74<@yObjec<<%L;AG<+AG)!m4l zCf9WnVSfMz;Hq-n%Ib#Lt7tDyy8pca3a`BecLp&}5`h#FYvU?)x&ELyO^hHuAR2Ck z;rkGj;)CXU8I(cgX7`~wbT(1F@l9otwZ12^E{Xk=fX&g8htM_#Hg)zCteIGzwS2T# zDzf-tfYd13MO0My7b{JzAKwM9Svu#Mrbb-kmCGLPuy$(Qr3IcrX#FyN<{$Lj-N{Qm zi??asB>k+~xGPNF-uZ}8*{Q9O922Tle#(NQrT&R!T=-bRW2*)UL&+)Yy1=&Ml(_nw z5}j~eV(txD8S);I7P5(wpH#5t8zMJ)$cS^o+TCe1B#nzwbL9Jl)q_^gq@OS%Yc zyy(%57{Z2QQyh^+a&!DC*H@3gzwGI}eVEuX=sN?jb-85tQNF>8$!VE_z3peIGz`qP zBpC`H3Fq+f;{LU@ysF-~`I00+R}BsKWRTFog#X<|XsYB5*yv|8V!UlQ2_Stt`@9NOykvlw`TtxKXxh69Ty zvT#^f!O5z4&6Gv;OhB_Mf7+m_jXtnhy)hdIFK@Z>=W1BX{j;TAMuzWafngyLK-&Qa zd z<@Y6rP&M*@*(PSRC)mNi~bOP91P-S%168@JY3XIZV2R zMN``%Sng#4q|Usw?V8MCGcNb>=60&fgii*OBdtXp@65xa2M#~xf4}0zqsbw9w*BwL zRC(%C3@U#7Oi+tS69JJ91<%inWw!d(?8;q^A0OGho=m>5^gpyHn1mkRL~6o!4oOhM^)RBK~*d>S0(> zrB>`NZJi#PH+Uu;+nkPjqe@e@Q^r02d=2?M@&5!qEpOTk$-Qs2f#yj-lphJYSf`B5 znKq2ethY{xav$`1V}B`g)fXSkyS?fj{PC^6N=pCE0Q28hn=If!-ksQN_3~D|i9VZ7 z)UV-s_t-LX#TNu0U#xm+l-mJdnUY1RO?C}?N?KYP)S`(a1AzGX-c8GpXMkht8KrGl zb@d^-#N5<<$Rz(wo?))ydTfs=`u6rTj-ZO4r&fKsV55I)uQtowZX&1LE}xy%r@(uY zXWSt-l_ZGqgX2|P7g8Pd8H~w;+FpbR^`walzSELaR%W3 zHqByKR))*jMexJ0I`{sc$SI7<0MB&qux6ixxDg8ZI0(XL~ogwsg7ZwXj_2CuJYpH z&7@Ya-mjGDU5H7Ec{XF9lz9=O>Hml@rbWPDz0qOskIqhWj22yx^2AG(Kg96mnu%6_r~aP87WZ&(@kO|^|J;RfNmt%Q4o)UEvDu2KSK8&t#52EKZBj z;?T(ru!8%yo4_zh-a+hcTxhkpWa<_&Ike?(eb+0r{*`b$RudgaRXI1yPw)`x`IQ%FsxB>_koT;tSe~yjIf?i+y1_t^<0p`^f*&|OcPFM74PC2 zm;OrbQIb-{rZ6-u-nln7JZ3W#O?)`JAIzG8v^>YIbedCr}RPs#8xiU3ay~xu;iRZ688mrJ^r# z+c;|Qq`i1xU+?YcqB~|-&eH-26j!{M3CBIg= zW$KP$e)QVbGPz8m5vQg);p&DjH?NabSYQA-NzjNb!BD-ODy_KrETGwfYFpG&-&7uM z5k3PV!$9xaZ-uiUNCe%^3#lIKNg#J#ODF)qKSp0Swg@|n{iA_Q5%rIg7lF3muS_i< zRhwRxFJ2-{>Ctxv7qv7LFcz%p0S?Az&fklnvK*6{&9+1J^InswVJCr*WSsY@5!r~{ zM=PvT03117!)zY%?zDnhD9&>6={0`TvRG>osv0Y84t^#9t*A_pRIhVu8@@rI!KvYO z`{5v&#UJgnuNKP!d$hd8BC4E7l4?m-y%AFnzfvBOyN^{ddswbMd;yw8oaWVJ6Y>#7{v!PA8ZbKkRHp`aHgh zqERO|y}$o08X<>>S;o;AB(PcLMDz{Eohrr3S|7gwOa{@tseZFR?sQR7>2`EsYn`|M zW9^m_kV*QwzM$EtrQ45HWHHpQY=^}4Wg^hmP&Q~K&H$b{lDRW56V6JtYoC3SN(KW}mkBWxYGDh9pG>~8p(eCtKJz7zMYo~bjHFT3(` z>sC6(xzFsG)V~>WN)oCRiyhp|%CY7N9&M$f+Wo3uO$$g+A7s&ZX10(eMiLf@7CliB zxcD1)Z`uA%ua64{@xYc#E1i|ax)mC1;9(DkGkqe2)u}wJzuMfTykXE;+KLwC!}X(E zrxkwGvCa%osbtJ{{c$@J&aqUNeOqU|EL4S9qI(TW->9|O@_V{{+wafhXx!Zu zuw`#f*Zft3oqBf-nTHFL5BRg4uN64F$7h~~wrm&>4H;Xt(LPlDk0wTsOWWo9o$GO9 zcwDEPjXO8L=<_;Uc$}sjLCZ4+0~aHCFeQZe8OE@!d|a?Su~3pWv*mozZ%B>D1c#yI z0)P^#cXYAv*$5sj!EPj9Iq=tLN;CuG zTIJzRAMezZADT3v>7VNZ8BN9KC{W~L{jU>!f(`#LG;DpM1^?(+GU=6Lg%8%w*2DE` z3<7?Gu_$QcD-H_Jw1F-ICuFx}S-gYwa`bwK!dN7#v*`5&(e(Qx)i?(}&>iEUNW zRH$|_H0XX$QMnsz-i zL>1c?tSs#AlqH>*QoOshz?A$hAz=zXQXW=;_Pr`UnQ%plP+eLdXX-bY^~YcNjH&_^ zSAd22eMz544)B6DJRKqxKHp9@_I}r1W&cJwt4QCQl#86rNtMkbz#~uX^O(7N#P2aEZF25S=)s?_oPZpS(b&Env+0Te>4D^`vnH;wZ}-+c?Q=Jb~~^{CDcfY zaz3Fwdg?=1Ds*z&!$!aAj0Mlo_(SUk&CxidYh1DSS~Z+j0@I(7`)PgBz=ut}Ql5OC z03a1VxzMHojy}k;YrmhP=z%)ILkUu6m>@L-E1aEDLAj+H)~=+1@$`PwZ>)+r+I(tpU_|~>&@a|F~(M_ zXH~#<&_|0GKmmg~_O7|+Tm`nIEg)u^H#Al_dU#ZSBQ-kSOg+&1~=?70+ z(`{ncf<>M)@7fTZ)h1H2_52O!Li*MAP{{>F$ign`@-W}BbUXtd4F+_vQ0x`MyV#h| zSw+@vV13SnE`$Cy1%9i=LSfGL=*`IzwPBMqteSp%LD)Y}|M*8pf%5wjN%jqyn*c#- ziEP!(G5k2piurNa=XE=dWKa2P^FJU?&4Wo%Zp_@hAn35&GQTZFHd!n72`tt@zp9;E z(9viZcb>L8gbwBYK@0*p=kSpY!@8SLP>TT{C6^2badWifT5$H`=HPG!rt8Bu>a1y4 zL**ES)irm^{ehFWw99AKKu}4p2hcBuqw;8w?p&Tg*T9X#BzD@kZWb^j`*#W5YXb~; zxn0&m$(#!xbM0Ej*BVCynwCr}8^*U~WnmCyK`3uuk0~MkyG!hP|$)J5w|y`(oG)esKRVk(|qNnA2Z#gM(Cln}~42>36~B zLharVko{_g!tuWGoF;;i1HO$Xy#hr}lwr50-4pny9mMb!O|d^iYsKH;%`k@yT}jCH zhTa{W>ZI5uE={;Mq2%Y0jrge7`Qyc#Wc-G8>4r>CCQ$t7@Sl=~#PW>0t2?o&uGc0o zMIn@>yQ`YIhO_CKS-J=G$T~x1Op_`TTw?HkW*OuKW|iuM$0B8%@6G06?wR`;DnAjT zXDX`f_{r#QvUen!z0+*N;@dOFF3m>|6N9>>xHF8OMmxmxKKC7_{1gb(o5;Bnc<;Rv zhm`rMAI1Qdx83H|NDCuI%$)TIanRoRenuD(jiL`(;QCW?9)U}&OiS18N1WCB1K>Qg zkf9Wt1V+FI6)?@DAlVqb#pL^!az;e1ub6@6me`=*SJDAOR#y2 zWY>SbDi_0IfPNQbe3lA)WYJ$cYm4!xy0JJ3B8aK#BQq5vAkMk+(JjsWS(RBO%FRJy zDv|_tPzb#OrNt$Gn?j}eDy~cVrGY1ki%cq#x@~~l=zIsJsFD>pzMDpog)+jj!5aHTkIx_dN?xwF>QFmoCBL+>N1WGZus=uZ z+arp-vJ$SD;ECDS$BZN=k3Tp`i)&~nF&V)S^+ZZ_am4uSP)!T zHU!EhPF~e&VxUpw3UDJlz?fSG=8z^Tn>;vQ?2lU_rJZf=Qcbef@?uKFulJw{puOCJ zB+g!u<*zHXQsdDovGPyx(9|-XzSTn)ULpr!Ks^V~ZuR5andL)rnSCZQZ6)bb=p%|^ zM28AwIR$uzpWk)}^CaxeDp0ZGf$i*%IHU>-TfSfu^Y|*_anR%kx6f>au934ZaznN=%HIDd%=Q;PFFl%-tp1kvM+DYo~yBDhqOj*aSBW5e`4 zV!KRPqF!sB(h{PN)eG@bo_{K$*+=jpxOSI}MgwIuXZ1C$QPH`?r0cf-x+I7yAD`+{ z)APJvLRN17q2jNzUvob^c{$vH8N_SSX;|}iu=?Eo7RSl6N!x$#r{8(IR-NK@vm4qs z)9u#!bN~0HiQFGH@4-%O@<8dJxw5OT*n@26yI4t|2)n^w7d8st+FoWuVbp+wS0Av9 zacM8`Ghd?a~ ziMBEER0c3y&CS3Vm~Z2z#Y53fo+u+t;N<-)Hl|HPtn*t#+BC=`69<~y?1bg~n4u;g z%at@(wBtiG_F-YNp%G_PI?y_sY9iwNR9UX1CJB?$R>;l^JzNRd$Pfo8o1?O{ zrw+`SAwj8yc{3svAIlOlGf>q7(@;I zOcahz6L!oZYH}JKV@er(mSR(Rm@os@DeITA)^q2Xa~JPtgOLn7FaDKYUuf6MZJ&Mf zulXqu*AjAI0n|U=xizz3Wkt#B-`ts)Hx*=Qx@z*63pzW(T>_y`Zt9M9SAw*%*d?xG zz!>*~)zwNWaE|}1y;Joo0FL#m&X=CLQ8JDNNWA@H@x1p{n6^H%JBA{fdo$I;(Z#~I zh5z||0cv!EnYJ!>NmWhm2{Z+m*_mc!(T+v-;ytT2du&053C<%R)xY9hwr*P90L&j(+VkWyIXy;K}TNE+FM(|3ox(!is{wq63Ow3x%>3H zu3~p4 zJecZ~SbqO_Dw>02t=oB0)$lH5jbo%?Eoz70`SXLBhJF}^!9$nt7fKD>HD6pN@u-gj1cPK3tfJEa;pf3UA1$7n~(;c>A~Fae@I zeEZC(oTb>rzsH^?_M`%Doa)83PYoX64tqJSvxrLh_wWeRmoCGAI(o)91;cf%Q4_2} zwU;;M**ZvfP!9$WPkKsguDK=rJ=~=AV#DWnb$u+lOe!<2ZbU0TW1{ z{nt@X@5E@mY;kW)Anw~2m$Tqem$lOzN}gNR+dP&lwoQkth3&6aqVj9O^_k7&%dGn2 zuIxSR6KpIG+jyFA!|anJ+<^{Tsm2Nc#oqVdjiu(a)Z%j`{fVL9OJRBZaCW&T-oG~6 zIHkiSxSF>1o{yK(2lMXlqj3{W8~;sTzYckdAS`sW@njh&KARSesvUn9#aSU{=_Mov zuQC6!X(@ZlC9=#&aszP zu{82cYYRN=l%r6n#%y|JI0i!g!spKZtFBT)zmRNiPZ^SLn|c~m;0l6W6<+8eYM_NX zL{V6*Nmcqxm6B0B8lqRuW}H~6^K4_{ImWC6k?kE`i|3MIoYG7An+N-`jd!M>P=ff9 z*Hx~$w>`vU1+3}vNeoYj*xwWl1Cs9yjHHt@z|LeyNzPDH9SFq47+bVLI3e~NM z@|Zr`9iwi%XTt~YQaGb^Su)75K$|srQy$Q@inaBhycc2)@4%O?iKlGYcs7`u2ob!P zH#v-*4AHE>lAFpYxTp3%S>>E>)z#4TGB42}2X-1U?7(gYu6tM8=ycE)z45 zp@}0$g9;DY-B~TRQGg>O*4(Sd4kTY90Z4BK#&TQ5fTEKtn;x&!$G|1Q0L#4<@yG@D zVFKa2G1E$7>uC?v7hP|uB!fhQ)Dkh#pA+~&*QU$*K#t;DRWJ5uI*rD{^)+@LncJRE zaS69}Py1egKw3jfcQD&oUXU;H_l*&*loee%7u%qKgac!N3)=Tqx+hxa?!P! z#?J?uJl#f{_2&sLZli=Y4lS`oz#^>B9z3sV;?mAzVL@g_g^a=JLg<`0o<&iriU7^r zvZyIel?izMz@m<$z9ouyZ^AC6QStHhv^Tp|GMwhaVmShII34Q$o>IRIlFO4K&{KCJ z{5r0=yNXy4gYx0_8LLFIcw`TIo#W?H>V950H=QyU4?Qz8GY#2Ay2|*mnqk+ZukoW; z2QJMt`^F$ASb5sIuZ^4uCbG{KV}w;0PxQiksK|=V6a6PT5m&%cZm0UXo`S+*skeBj z8c4G-QVch@WEjxS*Q^bs@O-qBbJ39EV#`CP4_u_)z$p8aacPGD5&yp^xl&oW ziLM;$Ba;Q;hqcX4$K;HA=idUOH~LTA=o7f;@@Y0|Xl_MC^i%0a{6 zrGW9t49eo0Y&Q~74y~<9-+PO?+?5ev@B^}n9LLDv_G=-Iiv7<9pEulI6YQ%415E+x z+OV^&CYMkVM-NA+G)%Wv@>&G(w9A^2sI3xL_|hZLziiGt<~-A)^e}$Rix26Vv;3m0 z^1+hMGvm+V^&_O6ZoM0;4EI58-1x<3k9gw=!p*nzrF!)06lH#uLn>r&{OPtO`iui| zcoZws66WY7|J?%mJo*M~lw4YL3DRZ5uM}Tw-%$2fWilYP(-ds-eQb!|dNtRGw%)3v ztdG2(1??j5irmlZ)~CzA9Y9=Kp*v$eOI*73!%oHVb)CXZjr+l{&t%Y>ASrw%q;v0LiIB0gT8bc079mr>RyU@|5P^v**NYQ80vH`O&4OTyKtWVlR^WTxK~;ur zMso8SG7{%zKDw0Ht%FN>C*qLK$MVmuEGr3Ce^U!1V21R21`+Si5sX*#Ug>){fLPh0 z>IqnOPR674g$JISSks4tYX$L@B>g<9Bs|I-r6g4oJAi{T%j+>YYdpW`^`k-jJ$>1%}+lLFA7HxBG}>B#$rNVUg)X&y4R z%oWpleV??r%t-9bMFo~~|B;5j#<|=zJP1EWvV6a!z>@(y zIO>X10}&L$z>qxgFWS0@rvlkEU6hn|z*|!gUv3R)n#s0j$FA2UUahGT*E$&<)o5*I zv@>)ok9f(Mv)#!k_JYzEI^mra5T>0InD7piT26}m7=uvp^{J6Z`bjJ2HBH*3sqJ0{E*1p|QvGPy1nmRX;7=xajS(-;n0sOEPMgoU#Q$nSYVtZW?||LX#;@UFc53 zu51*9_s7}Q!$+s=fXEzw>&luORjBDo%3Hge;uy%^N@*c(^D?w?Mot{PA{J1p)!z9j z|ILUcS0xHr)%#dDr|~)`XwH3)1}Z#g@6fn7 zvplLgu5eAyay!{kj3jv)6Ab1DR&FJ6<%yx3O1updk0emBx+r3JiXyP;T#8Z1TU${GjxDWvA%X9faiHrV81OcrO01;%B)`zsNyrA zc1c8calH7VDt^~0NcN#uD9}YSgw9p_oT~a{Koa}|(7bg*V&x(fJ2A#XmB*gA{B#4d zBI7>1g%MAYK`#Pqu3ska`1^b^NzL=Ho8<6Qn)GRH!x~BYNWFin^ntX z>@27umUZ2y5|j7R@=KTmT^e(LknG0+Z>5rW4lYUjsFgS%|M|)%;x4_apO>^GLVOxo5#b@Xj;S* zTCV3k(GTU;{xErQv&93tu)Tb6baj11QOsA1=ZF(l;Ym>dRLgN-Ca1|bu(9(?!LA&z zXRUJ=qqcbTIA48@ee`{`kCG==aP1$pJFRf@sWRUC_iwem;GYYj10>s;RZYT1vx zbIecdX*{(=-2b~F6`~t5jwG6>-a#1c@vu_zj(>(cCdZq_MU#gh;p;)1jy`{83NHLr z8D#_^rF?IAQ06%=otpFP6gp-5)ox`AFOjVWHqgtaTqJL)J%~jCEp&o?OoaRqdE;a> zCj?DB?Yd&<_4=BVgCuYoNpf%f_qR{8<(ycg=>UPbs?ma-4+r>5 z8zz)^(TklAV5z6Kn=aLBjo{8_2Vx7Q7Ykhn-)5Ofs?$EA{Af`|{CV+|&La(J$tyqE zU2y+T`x+zEmpE;sat4n~Z9llxnvd z(af-wdlf3zR%F(Du5o9&_f30kL9Rw23T&ABl>JMuaq`rbexhk6J5=aC^mETksArh@ z-&fnYuIb}w4sxujGEHK2no!|!YXQ5uADlKb@%{VO!k`_(|I*2;D0w*tO3&*1)bTzF$3VlM#F_gEZb7rRrozlE zG4g;9q=b1(-KXC?8PDqHD2Agbb|ba8YIrr|c*F;oo?2%XMD?xzbFoZ=lb^)w9n!! zb!?vS5LxUm{>^GIc4wG>Z%u2B(R?-~x&!a^)p|aROI;f5$E;8pd+uVGCQUPy1p}O@ z`XOO1-f=FHdd6ry^Px3Fd-raVOhF7G;oecKihUT)d@h1+)r)qA%;EQ#nviN0>MmV^ z2e=AbiIUo1+4f+BJE93;_p|*CeEzH(S@jG{$|4L~-_HZo-|W&1x15oH1%GSyvRp}^ zu%f+Ozm&Yvqaxa5oOmHMe)rSA&(aD_J1#03{p2U@5+_Cuup&UpBdNcuWvKUpOQ7p$ z#4g3Nf>*xJi;4+~;&sj>IDYJcbpARIF;lawT{mJQ{oDjnr7(0Vce9mS^OGr zL-EhsxM2jY_4O0+?3coA@mfiSWhfo0a73)G_Ic`4@vHWW6V;vK&fcyJ+V^eQLzvo2-3 zGVdgW)y@$nYAYYk=wy)>46+QT#n3HH6wQz1M-d2CfgyxNxWu9gEY$|Cl&=k%?lD;h zv>kl}^V9T2H>a)>FO%IxV`m6DyjvrcM|DV5M~u^_;t{dG2m9#gor4%>k10J*kB!_1 z;9j!@d#NDBcIh7sRkCR-O@r_SSsT8t!A7@p%#D9f^-f`+Wnf$TiIC-Xo*<9QcR~K- zuOyw0CQ+;pQ4H_xgrrsagTEa0owymMM1|S@kPxcGTej`Qm&gs?B*;en+1e7}mT9E~ z%~Z*FkEMKdl@3l7ZSI-LQNI#2XG$Cw6nTXEmXtKJQ`l(LXq2|j`|6-z_v#+e5j0T4 zC5i3JXj$uR<8!DE1w%2tEiaiBGJ;=QI)i5N6AirvD-Ta`zsJ~)UYoFLt-1bn!Ft-! zO!5!E29R0+9d};Ru#(iDyjBY7U#X#rQzGa0=H|BDodyWWxiR=89p+9pugm0>YQZav zmBe{M)}?D{u0755!CeQ*K}2Z;=|?uGM81Mv+R+FfN2hKQ+M~5y{!ZmdsqPYpZyq;x z0Nf*q?bPJb4)%3Abvke-$w7-tH|Q@*j8VrL$!pLDq&*Eflv|&R7xgS&h!tRKRP)-1 zI)UvWS-VSD<}UkZR2lscQf^NG;qzF;ff*kFpIkpo=N1ckexV#IX|c2|`^6x9S)=+h zB5`A3B>vFQ!9j$QLNNB$US!W6A0<8S!k6L?zLZR%V3%r-OuWy+QF_MPu#!@Zhrr0H zfs)#qc1cDLU5^FxZ+YrTcE(F|lG+?K!2r2;`|zD{0klHI>kfN2^FKPmoj*#$d+kW# z{YKqWsWf3O&wIw>wB<6tb`4@>sIEBcfjN<+Kc95^Pu^)PIqF-l57FqwJ26f#8JsAPGC}OV(Q^ni69mJ=VfssL-Jtd@Pnz3nOey zDWat{%5(v&J{Xp1t-kucUpgXYJ~$aaI#nP4DNgqjs*<3}{Y6 za)bZ70XSqz!~XCetY10-09_g0E(&+gs|~#M-$shaiUy>JPGrP~^%kg4Ke72`J^2y7;oIkJ*!4_8 zzslo02stIt_tUrfhBjh&X(4A}>~~+pnS#LPd4J@w6Q--pO*^I<4(kYq|GiPprc6EBbYE^elgqI&M2KBcDvcOEv@&%ehqqie)-$!&Z9BU zAEw&X#Sz0PPvW(&ju;6tEGA&>Tv}H1ixQm6WSCa7P~(wCyI8AlAxaU2d=F3za_$^) zG*ZPzh!0Gl{#3RPOszRI2JM|R#;vjPB1oUq!PA;%@5!v|dr@V5w2L7VAzYt~C99I~ z@2fag?K3r;TS6i}QjZObCkDt@sFEZ9K^_T~D*FNyZ#X4Ql-268J!6&<7R(>{1vVb2 z5EURhWX|cUcRFXjm(3dqa4bMTW;M3^#>ABYrM`t9_3zDv-P89xEEXrN@J#hUURjG~ z8e?%&_2Tq5c``4`t&AIL6#L-Ymhup{z>%SOZKZ_2rW&1lYv*T9cT;A?h3`I$Ypsx^ z$L<5RQu-5X2*iJUWvRV9Goim7&=OrfB1?9j)&0+-1ipfjYe;vOFD3v58ri6uhnMVi zTgBHSFi@s)nY(gEY<9QIwz_s=-}-$kV)(K=70QUcdqq|E*H3U-B^Aq>4 zF-Q=Q!r$F=9sIWL`uDu9hUN5@O>68D6}UnKWCD0C*$@JJjVKd?{VChzWR$!HV{=M^ zE+t*{4R;_RBwNXuWV>cTlnr(N7I&pwX!g?0nUKfGP5M5cG6hSWK-&Cv<470z(vjKs zZS>5Llh$-^`QWsTZ54c;tkRr0Sa*w>pEaUDPdpsl+~i(3g?Ev%gbDllxxh2LU#giP zn^h82)fP7sD&afuDCr}227I=OrNaG-fjD!Mz>w)De-l=eNogk=N9#v6v7eQ<4B`_sn5RWz0cI4FLuu zTQnby4v$@n?$z=M)IOjNP0W#-@uZA}l9AkmGmhnIj84SiIy<2~fRET{luXGHG*hvB z?|BkTuXQ2csqF+g8sn&{&w`t$(O>}ea$=Wb{k6k zbMdPt6AQ7-KrK`%AvE@;7ku3fY}Ws1Q)M(+JfJNg#||ZGikaJk^`BYY%d8Eew+hXR zP;^Z(W@cN+-z%SZZW`jj2E#RAQ%gry!t=w@*#4;$`Bj9+9fwjIA|egZhZXYd-|$^g z)>!}8VV*W4&J3`hEt(`DX_An5uGUxWBHA!dx0$s1Wa5v$u9%I0IzNFy%qm8D?9bua-@&z$wq}*2T{k%C9 zmho@t19W0iV&1^4Um3Ayjyq`)qPTV|@h7a6{dWVry3E*V+#76L#{C*LJ*%wkyUAuJ zneC=2N6{DT=z=#Ft?N#w)pU;giJPqEpWhYwY3DLN=#5ZlaMI7MkU{YQ&8zD3rSavm z&XBH7*^>`E>uaQX`A(h)Qq8G1>1-EC(op6lz{1L|jPO}eW-Y1Q+h8F$Wpt^M< zO!#oP&V2gg*n*UmhGtW&+Adw4cR3*>A$IkuzeDxGbDUg%=;6NTcW(QWAoX{AC3s1$ zhl!=a?&{zZ7fAOe+q1^akNw((n=}%iF*MRpiL~!tXgUYK!z(>_*f7b=>O(Z7%Z`|s zq9FaY;7V8@>}Sp6vR&vrU{bhJmr!fyshriFnHy2MCDW7;VLg33Fe@IMDD}zKUACJ~ z@N4?BxKCQPzEDlbJzklEW7SZf3U&fr%&jaU0AgEavEDJFCoZX#jDJd%^NNux7-U}1W1Qk_oba<$uO>&`Jmv3s z<82M^*ncN=iyHlfwvgDJi>m}a!CRXi^P<0tzTg+0>ph!6H7`&Os?1*hOPSESKT7py z&|)~D{cA|t&n*bvnz5q~YC=w|c!PIyINYsgzB69$7>zq%YD`UBR>hG8A|NA2Ehg<@ zsYcx^^)p_^n=9Dq)9M8ROd~akl-HTdK!k@&rDSeeP6J_gy10hg$tOLAmVBIVqg@vg zM3?2C_^G_Lw)>lkHZRS8U|mJh(}RlWNVhJ=2v-=9xcVa0ZTo!Ao_`lJ8_qj76=rE4 z0O{&N$xnt%#Fku|mP68{{tPLH^YyKX1DmrdUjq?65xU)KX_=(=JV9#Sxm2qH7E%|~ z_INEJ%K8a8$H%cqq_r)r=oKh)MJJwg+k4TM6?T@U>Zp~=#MjNk{CGHyV+5q3zlnXM zWHTy9$l);A(gY1W_dXpT@=Pp`_N!9VXcH|#Q4?H@%ni^S;sqLRBk}`Xo)^N{X9XX< zlR3*HGwX4gu}n5smGLFi2OuArQ!N307079yF2^DuS?h8wTAUx`FsUW3U!zLQGY~7M zwb9B7Lhs)U;g%ehU(v;VtY2^RXCmDu0y(;~58qU;LyStl^wBU>#Xf`yfWoB6@3sdv5$K5U8m*SBml zGCu$HM5q0Ub4%Z2qwmqLQ@N>z+l?Yu=_NXT{RB>h=lHTU;Q^v|KF819*}I1&{yl>a z{w;>|YXc!BduYf5^oh3gNoxIUT0gpnojb@4a3p1}Rw1^R$GaIq%egGu{a6($3W?V< zDZGwM>tb#YPQ_w%!*Z+bk&R=8D|DPK_tGLsZStuOwtA62m@0xxI;_vO)QiVo0bv>O zB(W4)$KS^!E;k=SQD9B2Mn?qUN(CDlr+q;vQ8N%SFHb+Okc!c>o?)HmCizuppX0R@ zqFuvuyqR*9n(w*+UHOP3~kHy&)Un@@Jzye*@I%DYa7 zrNA_@vmFPH?@&_p|0D<}D6j1%&=PoK*>H4F-R@(I(Qt#^Czn2ym|MJ`P+t)|%aJ{3 z17j-}!#noXo~=>O?5$+%XbLr+vUd7{@=58@rP9Jra(7?eT&_I1$#yxj{paL0BOrS_ zZ_d~a;+=1Yd4D3pHODI`zGJ#2B6XxE4#J^9{E?f9l5HY#42*y8``% zoPm8rs_%0U(-^`>YkETodh)LGK=iC$gvu>GjNH8Op%d&h#WC{Kg~@f}XPT136Q%+V zB(z&2mm}@BHR2sNl0M#lHnDQe zutW*D=^bnI{{ojlQUz=%e~@gUZKB)2?^LV!T2qWL|E*u!eSdiN4Rl~1YgHfVVzuouTkHsQR4Q=P0)&VZ% zNvhBRhd#TCUt4LZ)#6_qI>oyua$l{x#D3?|sw4#25U8s9ZHW5(-}%+l%(-ysSlNoIL3y+9b_=QzC}Ub^+D z)k8Ykm@m;6p^nnArP?T2NUnekCJsyg;h#{aiEL2+F7N#yUJ9@e?XdLdI3=@SJC)Xl z)tZC@=16GVCd zUTaq64bmnGA|D3n5!<`tR1H#r(cQC9OK2yT0SF?g4ML)}T%LXD9Um*|4o2FJ6mMPp zT@$_8J&PP;<7gax8QZxT0JVWrWvr7U*PfHhxEh7-xfj^azPWllcnta>>3bs zWbDk>Yd=5}v6a#puKe9i0oD+8Q!z!{O=WXQuxe;!$qMeixA`VRh1BkZw%@; zBQ(aP24?;7RM!dqOO|EC!$z!4M;l+ z;syi#dyt=y)NR5GE!K)ey@XQB>Zbm(S2wpVPO5zGy{(%O4uxT!loZG1{9^o?tp0SJ zA{3(}yBaTx67=GwUll(wPmEV!nqigrw$1}nklUtVi!?UWQq%J!*IU1rw)L=Zz%AP9$R+C%LsYFS5?a>00#Do7RVv_Sa1Cc*#`f}R%*mB0CB=OOF`g#I zU|bod7b6&~{BFA~z+^)%R;QO>KZuS_k=AR~dSwEhhy?|@4AgB#W~OK-n2kdJKK1yr z!m>&>A?~bsMDF>?uMn_(_i6OQX3USaC2};?h$_v+qKzaNyz%|l3RVaSKIc2eu%$4? zXt~WYAC|M%6y8nQhh zGQ`U}>63BR46E7O=ty~>ADLN!y`Oot^00##&VqtbmmEt(HU=YSis zc{q|QM?GCcAbzEjx%?U-6G!Xay$g#QkWJOV?o|@gZ?HizURzsMx~4+jol9QRC<8}FHl?cl%|WOty)^H9_h~qp7weoUpV!SxrSiZTUW<$Y zn7^j(7gK&hfq4%Y!t?Iq4kALhb!j^l?59#M+N0g2_SE{dY6NEqv{{?+?7`Qpq(@-F zqRDF+*ymAun&;lw=pOs2-!_7ESz!w4k!z(I(j~Ydjm!vXE$4ld0N0KUT3a?NyxlQ( zU;Av_yLV1HaLIi3cfu%dgn~f-!Ga_Kn198-H0j~6SAUUaW0hVOA;dZ^pzS5r`b8Go z=Ixoxh4J%L3A&RaWx@y2$cNho=F;;BfAx0o87rf?nPo_K%&6o(e~%5uK|WVjJX=Kb zKAlOxXo_g?w1Q!*^W;XX2h=M;3DY$SskIS<_rO`?N>zq(o%=1#ave=A)9zUO1RfN2 zDC=BWT4pw=DVM;0Wvv%m7+B6xCys{&(U!bR+LFK;#SW4kSUt^l8~yGgv} zOYH9Ckf@Kuof%&uV_Q5*6; z&sUU|Iy_+TFe`cC>k0q#G%l{}tiJw%nVH33M~lnWy3FOM7RJvLy2>Nn{d8U$|JHop zFD@N;bJw+et90DM|66@vs|b)O@TxP`UY1Qw6q1~17;0I#Fvo{W3N8=a3(U&`xNZ0q z^XxS>>GJual{4>ycBgjgom|n{M8UU2fiB?dAU#rKB4KIYZCO{K3xv7n_BM_>kyPa5 z)<5F4UXs}6ARss78P`__L!Cy@Zc7v)r? z?_1twpSLUrr)RvBFPbpeXsLs_j9<}F^4nLpC_09XXxdm& zT4-$BRL|CCZEd0YpnLc*+JAcw*#WCRErVF zE{tqXxxZ$jyhARn2Zs*k#qV6tDSuQFdXv3Bip{i9tBuCb5FRjSrI&5@r( zLqN_$;G@JOSoC^Q!oH;1Fr=}96vn9!vm+7Q8W<*s&H=ONH9v=o-3S^+JnOrFMCvE zr`+eyH`)^M(wvBWZOx|1clz!49k2Jn>GItI148|aLDMB&D3|CH`POd8`*_WII*SjBjR1!k^S#4f4W7dY@Z5yKq^|IJtItbHiRx+wZw)lh z6M#%ZI4lv((DCKLK3&)D>)Q=eezd2P1M%E1f?kj^V)Rn*M|`O|c#Oq?h*ValgP(^= zk$RumFgBrAL27+WmZKq8+hEiB*qW0bC5SQO=P~1do0HZ%d9qtTy+3J~Oqoiy8IfOb z)poNgU0OH@_#Z^rrSY<$J*als6S#vXu!e1pIkAiP|u9vg&J0xZW z&+IkL#BAnuXv?%*3wmbRVJut}x!S~wd;8TQNPv>7B7~5cu(;c3R*U_T z>CqKTWl@tVG2nwH7p%2m?x3dL-ThtRtNYU7SnXwe+mINs{|?e0)VBr@Ahz3ji3h&3 z)A>^W-Dp9#jpGu+My{avvMM-x&$%?MeyTy|jOj(C|Fm(z=kRC1A_h`>VUt$!A+(eR zl^fT92cjmS7kN8~n^JQ9m<%{!2%0@&v}B(?nOr(#^u<~1+Boo^S$67kdB+Q;_TCjt z)^dyPpBYS^@YhY&MofuhDk~iRy{}f{erDgzw;_VG3({3&lVHZ1?1A$rdq;uX_7 zk(?FBa-JMuoSktT@dde>7D8A3dB%hNN^ADS;ye1$0Bg9Eo7hWSqRdd_{q{YeaAdsD#H^4=~AtK#mg5hiDdl5Q6=+Qcx`>P-g1tr$*e!`dAa z?%@S(HhWtFavai&XG}^U-@S+F4L@Vl>*Z{gUc+a7%q^?DP!N=GcP?5eXKi>jSbr7! z6MgDKlqv8iGbPg~dq8WO>e_0jf~+trSg~b>S`uf(yGk;2f zqDT8h&gTz96I5DX`QM|=PnBM8MtWuouL)w>j0qF2ONqKxLKSuwlA+hp*0+i8Wm4@w zu4c*?*+ul=N$KxA9@+t|AGc+ zfw;kTqQUnC2H}dBx;%c|G#{-TKsnZ&63fp`d!$tmCA(O z4I7e7YaxI#@+VyJ0fN?+fB+^a+L9zi{I;yc<=jLd2=Y24;LD#0G&H&*%H7^*=BkZc zo08HVda=d^`Hy|`Dz}hLQu3(&tIS2rG zQCy&Z-dZyeJwz2*Bl2}fO}kacX<3E=!p`v1$Q&V6SDPq=QkRc)Ps0*LovL|c%rnuy(R;jk6IBJEPX^Z zijlMNkOy#Q(izWY2zZlOA_zTieU_;i(an}9Ua$v4b@L{#uyRd$3k(EU6~RNdr#zz zV+L)Q&SqsQXHWDDziwEVoe9Dn@;7@ zi`RaX^`$8w#|9Rv^6+ggv*$$zUO87*xxX*P^1mC(DWc}*;ZGRPo*x@|BZBI0qreCy zJ}&28`RP1m7hK8o#cQl^L8`&8&qi3tXsbgxXy_bvIB9;^`=J&EY77+XQ~d&GxK={2 z8j}M^Pt_AlfA~G9R(~S<74!Qd)J&$SE+(j8v~sGPPmz%O%<8B3cMcgpkD4`l`tNd^ zPkVsLlJQNd*dLL#`GW0^QC+rA%Z06Jn$C#iObKlR3>CLYZd?wcOoYy!-2i(>PRBhl zv`L%6kAJ*0B=OoB2;CN&yCh(DB}rTh@O~eHShzJ`TRPdlhxBrNi-*4^QmWm)>9G6d zH*&u|?zXjQ9$2U+bonRsE);Rxel*J+x;FOhj9uX$zoYnjqgDQC4Fw-Zi;bp76fc#q zk(KFzmmdJ#NK6~YOT_!GLBdKW0(#5EAJlXq-+i8%L>;fAG8At0cd8dhOHHv+ahq7x_1f;`;UFJni zEjbXc`RuV$_U5pj*)LG%UK_sLH2)2yS7s#oMuJdS!_0}!lHOb4C#(`If4>f8u?X~~ zW%^@O#q_JsNBK36BY}q`BoirKG*=)>vTR7cXJRw%9$^P$^zV-LQ8+7=2Gehw;L=(v z1>+=VHCE@Byd~=yGA46756eJp5*i7GYEQBoGvD|b1}Hc{}! zlulvfmr!i{?+>tDWpl@=QJ0ERmFi-VervZAH6IPw7tQxS{`8%WIN;^CA=I?#oXDiU zD0hnuzPrzM@p!Q4VO)q1Av688?mK1b>5jMQUkfHY$ar>L&HI${AlofT!BCGe6 z!qarJjQ_dAd7?A0uVGC8m&^EHe<~`+?=|&wd8v`5Yq&Y+f^`Bb4AYP?{h!B|LW}Q;ZE~uI{Ht6PeYQtMnGF%g?*4>_c=4a4v;aDU6T0u zizyd9Cr$RBiI)4>j|2HjlRQcrNr>S|sbR;F_+jyefg>v=jb}K=;gva~?8N4}m~nyk zYll?5NS_4!nk|MPrACX={ds1+*g~f$sYZ`R!my6W!RHA3t~ zru@t8n~oD=z4|8$Q3c)S4o~yK8tfiHQb205@pjqW^ERZpY~!MQNGc0`5tSHa@y~@` zsEMOqEte`PNMZG&kzUh+7aAs;=g1b~;b`uj?1V=#8&Q7-GN-^eCt+QEM;Nz)@6L26 z7c&@AuAc~ZN6>1L&n|tsR}a4M((Ur%VY|)54{}nilA2)^oSi%z?F~tL^X<_}n!;+6 z*DQ{`6qf+hjHvY++X;7Ua-VPh`!n;jRrwVr7&f%aehM2p`26{L$GYz`N}j6pwk_#C z|4Fv}hj^phC*KnIvQzG9=+EbsQkX(M1Cfkt@u0OR!}!3yE5mdn3;^oOU*9n{6_!BV zdqdWb_&r*fA@iRfj{fBJz)1Dn830xaIiZtPle_S>nW5Af&_G>EfODI z$&uSHZLTL(aRn|P9KJp#dl9Rb8~_AXoj8;4V^h#;PvH6 z^G0jYx<|tK5oleLtTA$;S2v-?>?LS2msKpBBTOBdiB(hWSE4#KB|lM-2{Nvm6kAcb zLrjN1Aom+QQPeTaw^&TYO=j3zr55z~^o?tAhR&g5&c4oQn8D8SZU)H$A#xFYOoD{j zXD^fba$S3**9A4QB`$m@%QR)^;Q~rItwCT?S(di3Gc+pSqijud zju`nC$Tez})c!ULWYdzim=o;n^9w%SC>on!h)32thPK>ILI|vuho!}}m^kbdh!$22 z2XW#rLu1wN)5!-q? z?GCD+;MED;m+)}pjcaZvRfZNZ>TsYwVt2ty6h~0j7E*L&nYn@ysHabm4_$p0%q@CV zP$f&2dZcb9Z3vsK`d}Q5@#6t)8pd7h`{T31{lzRTkGfgsybTx^;!_{b(@kl~eaSJe z#$_8(guz9xMr8w+(vC?*WrjNqSHruz51Cy}vY(Tk)Uxg6wMQY@=!4sL>B>q52M2#| zb91w~`TD*qeTo5Zca(x2f4LPsUHbdK8`zuQqDftuOdv5T)75y=yeLywx@I>2 zsu0;}sk)lLkq|ECm$1NlDlm={ku?~{ieAA7%(o3SFK8|JabS-egkHMeRy8#&{^-U)r{ zcN^UXiwd*Bf&*H8D_yOc*EFmEzsf=~>Hi3@YzJR*MUymi#wuMh(>@CGY)@+1G0bzQ zvR+xwgy*du+-G#4>B-(#vxZT+wPD-$jcX3j>OFvRVRjc5rUQ9H3veXzsLH|i7U?4_It>0E+J1y zti8&%vH$>7RE~AI<|b}r+1aDW(9z|S{fhtV=)B|EUf=)koSs&TR#okFTB~C3EvH&k zR8$CRrKMI-yJDuTt;VNj?HUoYR_rZC?b@{^DT*SY2tt4F@9(etok#9m_kCU0>-BuC ztWcOb%n$T#QWH&jna1UNVfhK=k=-o{+ZzG7QgAPo5yOy|PzBI*scp(jXil&WBvst5 zXl<9@O3K5#nCm6sDhexUYR{viMkkBwuScp4qjXFpo+o=b_dR1Q~mool)kN; z9EVQHETgeSxEGnXgMRHdLP;kD{I1 z3)mRntPhDCeYOBG7C+-j4a{!-;;}2ksgQ$(q!8TR$OgqrJLnoPLm{4}4Bw+*S)oHn z<#5a{NDLgwf7mg)y8K~fupMEjSigsM$s?PCsgmhk<5Uqu6i1huM4(3>Vxg+fQnGI| zJoK)`N>_{WTiljA#s)kfz$v|!K0@A))SBY%#yBex5v z6&YJtpWC_*Xd|z#;;uze=8ogYhy?Ijkw9ZrJk7@6ixOts2xNLmikh>!bO=$K(f4h( z1BDwSg2Cxwgz;Y|Ydf<3U-GLX(70dsfHxR`_B>cMrZDd`K^2C9@p2eB51+}YVWuvG zG2!Xwq^g(=QxS|%-=A}Z(O)Wg$75?!otXGEG_b$OO)*29_1AlfWUR-TMYS!KtWxZa zOTI-;RY^{n&)&7G_nw78DA1Gisa3MB^n%YZD`2ESKO&7UY#v7f=?=j`l*tfvW3qBL zIxO#2n{3IB)ys>SCVZ(#VXs1K<*b1jQHlNO?8n^ZQSOS1=VCaZzHiAbJuEZ4 z$oF4IKl`E5cFl^51kLZb^tam!#dMqRD98LnmA#C9k)2I4>qwrK!fjLlpLZB7LJmKwfS+a%<-@ z9$iKqHb{LboN`gbsV-}66P-#5%ZG#qnwBkFR{9$!?h%B}hg=q&m+LlbrRn4{8FH-8 z<@+5K157ayU40JJCxadgspYy~L|OEA_O;Xai#&YiBoli)67tB;Iv2smY+rc=(;Zab+(ODg$_i>wgH7toMA_Gs zF3Qq@6ad1WloX#5oQ~I$rm7ZbRz_6y?6c6|vwrIBk`=%xlLb|_h;O;GWBbaCvPJ4z zz4fbJp4fE6#r>f0&az9($N%YZbIm6^jm_X4zo!pTre(a`2j&S6)Mh{kod;uYOp%ft ztz4yU6?@}V@lV;VwNq3i;0k%u3;=X>PLP4^-(8O63*_;5TvE>mp z0`npP?K$&ze6PSY9HqG1cZ$k$jH;$O@$F^#3)N~@qoznlEAd_x(91`LK7JS^$6=SF z)w^RapF8cwYxD^vm{|Nqa}hD6x#p-$H)p{MD&yTf>GH;U)@%c&FTZgpa971jv>0O! z{t95%^(T#ch+-sA-$3f1Y2@E3XVWw5ueQ&H#Y76l`yt>o0d_69(1|l_tl$5!kDgQ0 zDe^FiX!wz&2cCN+v4Xk?do@+BdBwP8s(w__ep34L_Iyiml5*g_d)k~|l$@QiH)Ywhh1wcfaGIPN$yJKyg=-i>roHZ#%wUWm zZ+y#pYRkm)Nq9eYtD$a4gA-zvxDTquZ|MOfwD z3KUJmWp##yvH(8UHgzI`!L{a5`BuYmsNk$_C&`snF`Tl10A^CI_46qP_b)Q?zJB=K zCUAoQf?>>x<^1wtGUWpHP?m6lbf6f-aE#me*Z!O#^LoO+lqrpFQqAcbo~UXn1NHfA z_o$;q<_zVo?ABqhwh>`hz z{%niLPEMK?5zN2R|E;+D&ZD59Tc6yQy*3sHUyxft9bJ8+L8ho6u|o7Q9Nti0scPzq zU6|OKcu*<*jkYL2+~g;ny5|^Nxvn!Xzm9vbMsmCq9lZ70wVgX9^U^(W3LKU9x7Kx< z;JeBW_F#VC&AD;o--KBU8rvH9Cd$+BpO=5@sZJ^UWa}nQ@o;n)X;^oM>B9v9M?SH?tP! zt8hq?MyEh{ah;Z04=nUZLP;c>I9tYeRTqA-V>xKY9Y0y;UDtp;n?Kj0a_9OCtlV^{ zFENEY-xK^mnR@0OA@-`e&#^i5eqpRNZhN-N!MA+}Afn%2Dpb6(OWVxbzq5KWG2VIl zdkfK;_q$|yF=P>qUOl}a{P!NfZ-2Xlbh=b6WD&8u?WB3!sLB%6XzdSOWYxmvf8-wt zcZPN9q7ArFReh8F1Vw4~6{{Hj*-_!7Iqg^-TrJqypdAjlV94rSPX!oW7BXq7S&SUF zU)TDVs5a3da8oywM*gIzWo{&m9d>?b+28=vnq&DzPEcT8rnbgW)BD=CQPzUFRzSqZ z%4GZvT*-?EI{Ikm4LO(rOD6n%a-p`IXLo6k8dM&LfDa9r{B2`J)aonp@Be~~} z#|rtf<6nV^FG-rlf1d*T+{gdae{*9ooLOG)Hq@G&(V75VHydND+REm?!qH2mar{jd zp$8J`KJ@9vTc)5_d`9f_r_0UiCUdWaqeG$r=UdOWLS$0dd;COiFu!ZY%N$N}Cqs{` zWW0gBtji?;&Fs?&ngN+kv`I+%g<8s)t=sl15Wrhg$MP5PG`@2XO88!^x;vVf82zg< zF+s!O$KU(^8cWjzI|Pmp5iR`Ai!5PALyUM)W~eyDzy9*4t0axhh?veopYJN4J3<_a1^#X$20Eb=)s!{ z;Ru5jqm|S}O%vkg?n5%;nnRr-MV*L_3tnL;J0$$rP;oAF_Z`R64gZfROa? zwbyLrW@DA$U0dO@61_~xGC$8#-M?mg%?jbtE)a~HE_;z`J~tKB>B4}Jk0myh570-s zZ>K_bh3DYVn+>_~K9HM!A6kuRbyUo`e(01y{p+G!UW!Ldn-0l&vm+5U)kaUq`9~?k z$;;_={%eJOMpR(WIqdMh&7|gGJ)Q`wt=3&w9bPg4OotufME2*Ij?W{#xSOKwJm>il zZxQDCuz1b|ly#v5o=6$&6IG5$*$CpyXy94*bUQx_aMe094ta{|`?p5MK8NBObEsW#vH?fK? z%KaxveHz!y{NUR1n@noQgS9VWYe#91V&vlRVwclB20ZDLBZ82)?Qe1UTw@9@L@(At z&M}P2pq-#DW}^zio|5oXmzgEp_p(OUH>4tfG?wHpF7hi2IcKm^H?LTrDL@$LLH~m) z)Q@_eXW21(>#={Jo3Jmz-WThe)@Y|WC!H#2A7lJVTPRXHj;ph*jgKsVmr^3oly4JN zqU4FU9JrrH8fkkD0_#)RZ^1LwT;a|>_DF-&KHY*!2%AgOEZ%Uk^u{n*ONGK3Tg%kn zV6G?L<52#bP%{%yQ^lbTnWk|1YgubZ>|yA+Yr{MJ%|Kq6D&uhrW>JLIJ6nO~QMmIE zDRoVL@tCXC`1;`$eIavJNbjITDeohgy+Zo1bV<60k^IhZ^XIew@LTzBBq_~<|b z>#^CYJm_Zw*&#RXR6gQ}t&&0>?U)qmV650+uVuncmIQ@Dz!9ej9@#$vBJH#7T}fp` zAN?r|=*#xqQUZZ%60rHit9kl~h63T7)_MN+GaXDcwWL9g{*HSI<}>@L>yw{bmZmJb z!K>4+HAWg2J??J&+pF1L=MHX5odJ8Fsi7X4NMHxZATF;5d26Rf|-b>4`9 z%8$x|Fq^ysvKS1TFc(1vX1XeAS^tuGyv>;87ne=7e^4q=^0GM1A-Z6f7akb&QcR^) zLx~&Fo4U?DLqe@&-%|}?M$FL@-~GqWOi3jE->M26>1)uNY%|UFd76L4O)D9Tdo?yL zS8X9x{Pgj=d4A62FE{v~-=x+5j->#sTP_jlFlvw-)+FZeF*zU`u)A=dvRhfEaQjIb^usz7hRMm-o? zzVve9>oTakf>-`hJYOG>q-kY>J9L~(8{?|nN6@DG>{F~Fq|A*aliS23lRDc+9|$GQ z>`;94RRwmi6DL2DvrzAtMA;}mWHXrQA#F%PwNHe#NI>tjnBlom`BXWBUu{Jeo5Ihw zkSBTq33#9BE(u9)Tn+1G3{7AS0F2P%GtI+;x$<2)c*wIcZVfGti5M$AS0~pyKay(t zKWrEZ-Z@-?*t!&n04Df5D;ilT**}(wPLloIFY_kBGb11V9c;1}>wXn*%_@AzJG&(| zKdkG8bAJMVI0u{)GYT`ZOmzxO6 zbMNEnW^^dXQ#oSZYJ@thiC-UjlfWvC;j%jn?y1O(6MNykq*fYRv6vFD-GYqg1bf(e z;`@CP39J1;;*KbQd`q;%47?5f+c_{1pLcVc(TjP(ZKJW78dYwwdqe0fvZ7KdouK}R zw@>Qjlu%o1q~SY7x3AG1mAoA?soSEk0yJYwxMlsX+%Mzh#tE$gn@0Q>5;T2^xol~V zE!(=v3g@twXBC?XBP{i`SU&+4=VZl`n5aenZ%@gzXBCrtuiZV9q}zQy@b?Juw=>k_{3jsUOz~q(>ar5F}>kGt=Kx~=oGM?_NR{DNj;PbbqOj~9*4x_v4Zwk9NTW|pQ-7xa(> z@mG({IzMU*5}7!^LXb&m2iO3EhzI?6Wwh=QPe0@kt zQsMenm#E{J!&Oug!6D<-^vlN7O7pCn=~D$WkiYvBCKikMwqg2W#>`S>z>%M;0P47Un{b;_yd zLAL#~i}0}kjXW~vm7mw>_~v!5d>q!3W(ik|~UgokOlK7IxAgFA6u3_O# zjtjS-y244icee*W%k%fRtR*p)a+cV1;k%2-;Wx`kN0)g!eB|$LP`P#uDQ0E_M{K1q zw?(j`*jyFN@BqVLI$eB}WDXfRTSQ&*Ud{@T5$Jj5HRN^&FZF)!*>Ybn(w>n-BL}=-g@j83<9_c1cZfxXK3xz^77X}0tf!A31jdSzT{!1D>e zBV!0a)R5ns)fbbB?y0|AzL*bj^ei`Q9loieK74VNJn$1kh>BVn;D{V#56Lz$_8wQs zR0$qt07&|_am=}P>RO7B8 z>4U19$6UA4pwAlOU8Y%~gK%#RGgTM2mE4=F5G$=JNg?q$?ijXKhg%?={nQX{&*$~N6W(|u%nCWUw45Q5k1s#xr%x6aP}pi*V9 z&hyzyn9*|x9Hgp0Wb~!7eJSD6qF*Vt7BVROs>AAeKzmx+^dCA|Fjd-oSFRI<(>a^ z`Sp0gC=Tq=Znn+Layg6UaG1<8rUsCK8umd$vjDk}5JM23S6BwE64RqKcnIx!x@1Jy zi$(xPAJo&p4FL>%CS``@Tl)D3n!D7UUh0Ql7}4$6Cm(+shDmzSjujE-3(p54ie`F+ zRonPLNBJhKF|V~|+qRXpv%;61-L?mA8p5!ZR$l_1tMnTpmZ?_AV*>|=QTKb&KURTP zHdpAs)H&iCEX89$?Pwr@=3kCV*zDt8sV5b5NH)*XbiDpe3Nh~$FCpHvI}zs=@|P9H zq$nMmS%y^RMCQD7@Hl@}>&7^QNtuX$%6|*x5Se%!qW=O5ji~%Zo^iQ62p7s~%ikZ* zEX>A&>P4l5VGyLdn7;b?PKNR__SK~;bZ9vJ=lI_=jf)2K8V1d}@r@>2OtZKs3cdI9 zlD~Oowp)=$^RY8OZyk4No|ka8S_hU;MUQ&)Ur?61xWoHV+<2p{Hf&+hBDd$LqA-lg zEJzqpeA*aZ%XICzwtuB%u2mQYf(Zbn76VvNMUVmOhf3hAT}5!jlnZk;O@`kuE+l#h zu&p=qUAOo7HI~4hQq~^_B9@u1Z>GF1or>W0E8ZZnDKq%G<+}hL$H3s#3NSrTF6P02 zB67gQ*<9fECiNlNN4p)DM7(HwPO8-FJKIS0J`Zknp^2|uh(8SqK%sG*w1>XR|A=iA z%1i(BRWXq*{knb5z!EsT08d#L5QXLmb_PAArOQzk!>eO!yY*y8kp0GST9skg2#lF{ z7Cfd8UOAE!y8BaSs}iTTE#1RRRg@+`)7j(wCdo_B$xA{coh@dSffl=!=t0u1Ko~@ zCrth2<-Aq*@Wyc@B;1Dy?q*6n8#8_JlaSTYg0oAioq0a|dli^d@|*ypttP4!2w@Za zPbak!U{4QUR8i0a{GybYPyI6NJKE=d=@C-KkynZ`Z}B+u(ODijllP4ESGV_YjT==k zlghc~#IW!UwqQDYN3th$bxN^pN9ui zx!ulH@}3liAr)ZP*r{-N#b44Dqay$&0!1@J4w3BrN^VBQcoGgg(yNSUW6y z*&*EtSMWJU!%z!}ax=}pmZvZy_R{Olk7w`_AKR%Y<)cG{C0eoQ=)B{&v%LILIp)7# z`;F!v>8ZcZFGHR#JDJsfQ;0VQ_It2#qX~u4N9OIV>CwCHzKg0=B2E80PGE}~@flSQk8bU zYQ4tzi7NIzlA6p{kco9=(5D#Xk)p&o%L{-lV&C(Yf$q=5**B1v zOs*@2SX=8ct=w<-XBpkxmRHl^&)fLxxO`B^;+4+#gftcb<^987J2#>Vnw+9|T^zhJ zBjq``tFb0>Rbt-LaTGYO%K&o-hzQa*NivkOyzNzf#(c+#s=?1i9$;EXgX=euYO3@0 zebh!5Dja~+iinwV_y)4QJqH*qNSf~(y#?3%18I`%RJ~_m1g8i;L_!`W$NU&b@#rCfsp;03nZll^ThM zws^T+GE-#>kg{r4tE)PEDVF{9SiFDLzk1RA>5Z9*QA&GF(qfNqazx~!7D?ck`W=T1 z&EQZ0W*86^lyIw?Xg>^TxX+T$E3I!=ayau%WvFhLBU|jR1~LR>ePb9JJ@t$@ar9B{ymJ`R^XycHowj z|Ihiz$sstP;Lxh2q1j?uv$nhi{M&=!;&z+XP=L6Xl)4JB`uYx1OqwKOK(bhWl9Pd6Vri9SBk%}s~w3KVtFQ4Pp= zf^BXK0*{WmWFc$*&r4i~P)Tnzx!}@kaHA#D6?G>-swn=yOakUm1gsFZDco7)ed`V( zfen9Q9woz2j_xs}tK$IXqJXDV)5+#rAxRMMxu zkZsS?I8)ymVq1B%FhR2iTCwja?}H$Zx3*F-tiKxch|E#1f5@)?XqqmV@N50=;C)f_ zE)5)1E8lwYdTqG=BM|0&nK|!{Oi^K0DlYt0B6WXwN5B6d_32|7)S1{Y`c0aZ?HsI8 zaS}pX745@egu_aCEE(_QoR{c+0kBsXAzWa)JFZix4NcfJI!05&iUn>Vl{qr?qT9p> zMm)|v}fZ1=_z060d7GL z#*N=8`A74zgouduS%b&NjcGol#nWKZdr(~U5nJHhnwmJ|vr6gZ75>S%L&{V)tx#m7 z`t&NY-mBTxAK%QuPCnMcnGC!<*c0qN4_37FYft5z&E;W%d|_o(>A&j*GsZs9^(Dy{ zkdHGkG;7MtK-{JYe`4W+i%dtN=d-2ZvPblpb{TB7zCWG**O+N4Ib9MhS3>B_S1}U# z+7?Vv>Wn@jfr7#K)6hqem3Zoa4oQ3y<)*N6&a0y`6g;oQ-|h!Dv)u!;Kv+&*LOjc9 zSvmG~%r~i!M8?V2&vWf#M#}W$3c32@C2m4G#xw7v2)czpJfHdQt#GrZWO}FYhGuL{ zz3b}w|4xOUbXVwZ(Q)#LpGyMf1i+wR@G31vxK>{%$x^uBJB_b(|I0o?6S1!{@d24)q;?wSY05h>i>c}`+$ohDNbxE9KNnPW)^3c z)at$nO$Xgh)$h+y8S=?ad3hZx1~GErEN@tSoW7cWxEj+TvSSOHmDIRN&K)|pn)P$- zE`Ah*SPoU%ORS^7I|SaJl>n=2P0DmH16z(*!=+z{HH z96^1Nh4NN!VAZ&o!OdF8Ja!M2vG-VkV-S4PjP2fq03qrvuCUsXg?&qN(bGUAnMt20;5`%I)Wm}4}Ikm!&f0kuER{76x8fO+ja0~!k~JqwoOdp@%hig-t_4^q0`Kma73#4Gd>48g z4;O?#)-ipob3Hm*so?$thUnP8%N{V4(LJN<3qa>>o`xd4E-0M+vH+?f&K~%L$i~@K za+dT@#KFwsU^uhbS(R0OnhsgIXaCkRwUHT!O1C2wqM+~^J=rIsnC?6{29l~Lxyc`-ePEls}T)pO?csM3DR!jQ;!WV7Z z`|v(~VB(#;9s!a~NqwplnCuk+Qm_ZiDf%YG7*%b0;_B`VK)zx*OM57}8U}Whymn&5 z;pqAx^xn>yGms-DC-!8ICQ5j2JUJ*gtk{7i-WE!v8^rVv0jf2fWY1aqY?9}9CVp1d z#D3zoZZ6N&FpSzvIn?lrMNhVMQL-(q>Q||xD;#s}2RcVf?n2#E<`a!R@@{8MwdvMe zgstMZ^JIef$EkV^s8Na?*gxvS2He@s$DF%zV5w`Slxs45gCopMLys~{0xbqZ<}@CC zL2}3=(>p-Zem5aO%MNQ(KLRi{NtgCw4fXDjR}Dc10<{+N9v^*of|S4ST)h1Kl*}ke zNgNo7!b7DaogxOS1r{@^IA7Kd)!^-2)@ka{R8U4x-=hTyNexF2+XUlJL}z`X3oJDd z^%O3l9eE$TNiRT+$aUh>aAG4Jy6O6S+JL0|v_It4adU8k3>XsciJCP^EMM<|^%BUw zq(^@lE|_}yzE~2TqVj8k2~oRz<<7cKaFusd>o3Gd+M30$CM0X6U+Y9Ra+pgt7bXBW zm^v#~cc zpi(BiM1G#XKEW_Y*@lq%or56A401Z9IJEG$2M}ptD?#{$=ZVE=N4h6(pfp0I+DZxJ z-y}U|4Tr#);!`mIUgOaE;Go|`UsuWPNScM_Lt&0P8aDbXn2CH@Nkp^kC>s@THDd z;n9VGU!kB7(b~2T^a+J{&I&0G=5VZN0%>@0&lA``@>3ZY5qYS_g7vAa$W zya}cDNHyQhbJz15=U|7eT-!Q3zum*G{w3MDq~QQle)4v?>c2;o2lgM zxzFUq!Qp6H8_MzZ@F_5HtsEVEKUD2UNj-hZADEo&Je606g>sad`K-sQxlAWNGt3)D z@5=w7qh}3PshLjh5~wlnx$qzveNZ&`iHnyW=#ZUK9A)g`;Ao88n4Q-UTWb{;uZreZ zm=0a4*5ms$@wv4-XMJ|V(EiEzqHD{ z#SWf}tEfDMR9=r5)ln%vd_5O{ykCuPl2Ovf-V=M3 z^_tE%>|%GIZPbq;SI2Tnt(FC?w&Wo|LJ})r-8f*XH7R6zdKhQw;8Er<6<*S>zr+2# z6%sBn*H$vX_KKtiw^dC0nzNEw``%_7y1X<5b6lsb1X$;uG=H{TK~%V#S%F z%y03EyuVEJB8Hm@mPM)#^t@0d^Io&f@KaDXXj92=V)uhCmfwKCt`acg{nB@6_T=RO z{2K})=2F4c_I?JAC+o(S`c*FEit>!*w!4XWeM?)~w(Bx#70I1j9`FTWprPiU<@aU# zPTxP$UWmo{S#`m|S`9~KwcZy8v}F1SpuzZ_V9BW=#gLmaV|E4$oz#>D1MdvXfNi>8^%K5UkLzn{lrz^m3PZg9 z5ohwx9Q}17uWsZoF@CYU7XNg%Ga{QMc3ht6jcb-87a!9iUxp(buuqFr0BbgbR%6TvqE+~*OvUD%5x6G8p*p;*U*u2 zHrj{sq7lCr8(L@WS-&QufR`VS4Sj!~IQgLV|!m*I;7uXZJ;q$1HdHsyj&x!REr)a=QR3yR#-fU{b=Ij|Zf zP%qux`ukg(!Dm#f9_420j-Kx^w|_hiA@iS~io~8`OP_h=|oqJrj!` z2?rY!Q(GD@2${`VUXjGM7LBIh5a+4>l2Y$yBU=N@l|q$B)Pk(5 zby7tecReWF3kEvV62sjT= zYFNKm&T=(aw6T{aoLt^0U7J@xL;yl>#hLor(JJa!=LYlt$+I_2wQ*sd|CHaqY6==G zx3XC-C=C@I^d8&pNRMpNHy-jrmFg<@+4H)LDhI&uJqnrWh9F&cNnii%Y4o=Jaj<9m z)2f~oL87%Tdju%ku#e4|Al?Iom%Wg46A`#-mKxLpy2X|4+e OdvS1=?iu}``TqxF92L?4 literal 0 HcmV?d00001 diff --git a/objects/Gripper6AxisEV3/target/target.xml b/objects/Gripper6AxisEV3/target/target.xml new file mode 100644 index 0000000..7c888d0 --- /dev/null +++ b/objects/Gripper6AxisEV3/target/target.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/objects/RightBase6AxisEV3/bird.png b/objects/RightBase6AxisEV3/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/RightBase6AxisEV3/index.html b/objects/RightBase6AxisEV3/index.html new file mode 100644 index 0000000..2616f63 --- /dev/null +++ b/objects/RightBase6AxisEV3/index.html @@ -0,0 +1,119 @@ + + + + +EV3 + + + + + + + + + \ No newline at end of file diff --git a/objects/RightBase6AxisEV3/object.json b/objects/RightBase6AxisEV3/object.json new file mode 100644 index 0000000..61a7a98 --- /dev/null +++ b/objects/RightBase6AxisEV3/object.json @@ -0,0 +1,188 @@ +{ + "objectId": "RightBase6AxisEV3V78ogdk6csbe", + "name": "RightBase6AxisEV3", + "ip": "192.168.1.21", + "version": "1.7.0", + "protocol": "R1", + "tcs": null, + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "pAy2ur6o": { + "objectA": "RightBase6AxisEV3V78ogdk6csbe", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "RightBase6AxisEV3V78ogdk6csbeyaw_br", + "nodeB": "RightBase6AxisEV3V78ogdk6csbekickback_br", + "logicA": false, + "logicB": false, + "namesA": [ + "RightBase6AxisEV3", + "yaw_br" + ], + "namesB": [ + "RightBase6AxisEV3", + "kickback_br" + ], + "loop": false + }, + "DK237m5c": { + "objectA": "RightBase6AxisEV3V78ogdk6csbe", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "RightBase6AxisEV3V78ogdk6csbekickback_br", + "nodeB": "RightBase6AxisEV3V78ogdk6csbeBase Joint", + "logicA": false, + "logicB": false, + "namesA": [ + "RightBase6AxisEV3", + "kickback_br" + ], + "namesB": [ + "RightBase6AxisEV3", + "Base Joint" + ], + "loop": false + }, + "CLE18o4w": { + "objectA": "RightBase6AxisEV3V78ogdk6csbe", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "RightBase6AxisEV3V78ogdk6csbepitch_br", + "nodeB": "RightBase6AxisEV3V78ogdk6csbeBase Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "RightBase6AxisEV3", + "pitch_br" + ], + "namesB": [ + "RightBase6AxisEV3", + "Base Rotation" + ], + "loop": false + } + }, + "nodes": { + "RightBase6AxisEV3V78ogdk6csbepitch_br": { + "name": "pitch_br", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -34.562140854916606, + "y": 209.0208681513036, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightBase6AxisEV3V78ogdk6csbeyaw_br": { + "name": "yaw_br", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -225.25660222641795, + "y": -24.14846670326915, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightBase6AxisEV3V78ogdk6csbekickback_br": { + "name": "kickback_br", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -42.5185107637335, + "y": -246.0857776650264, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightBase6AxisEV3V78ogdk6csbeBase Rotation": { + "name": "Base Rotation", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 210.3759909620992, + "y": -27.577658586246343, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightBase6AxisEV3V78ogdk6csbeBase Joint": { + "name": "Base Joint", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -11.81385061100491, + "y": -23.402863490473464, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/RightBase6AxisEV3/style.css b/objects/RightBase6AxisEV3/style.css new file mode 100644 index 0000000..7687c5c --- /dev/null +++ b/objects/RightBase6AxisEV3/style.css @@ -0,0 +1,4 @@ +#interface{ + -webkit-touch-callout: none; + opacity: 1; +} \ No newline at end of file diff --git a/objects/RightBase6AxisEV3/target/target.dat b/objects/RightBase6AxisEV3/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..391843d6d1e9e0c91b8764eb0f38651b96aaf7d4 GIT binary patch literal 35998 zcmV(;K-<4iO9KQH00saE000000LG_b)~G`O0P{@%01E&B0Ap`%W@%?GW@TY?RlEm4 zQ`Z|deseD?i?BB;F5IXnA{)XcBw??x2|GZ-N&?)s!BN{<(Q38U)>+%CMXlRbtyOEa zRxQ@5b+uN+Iza_dS^xLMU%&7Br_1Wex#zs&d7t+==aL}Kjf@CQ=2%b^HJ;*7e{v`) zIWa0s5|_*Iz~B3m<4z@(m6X7WR#sG2 zI8aU|IJ%CaKmpnJAPh_>GaAO@-k+ITQ8b4MTpZMt zWJm(fRlnu5(a)Y**(KyB7Q}*vSe_QqypF7yC32uCa#u)sNo`TQPR zYul`~ijrVMJ?uZ2lCp&Aer#ixQ=D7M0t-S)NJAg75|8)T(cYX8hC}R$s}MeS5;-frz~9GM3-eD& z(NlN3M!9AtWhKWzGsciP2TTA&!y>DHU7X!yJLIWkq*{S<((n;z!;Xc85f9i=jt)SP zm}l_c03o3vp|2?mdVl}RM71%JLwAKGU`U#ZUSfRm-bONRuqIoQE$Mz?EnGJ4Wn!Ii zWW>(Mq!ClvOfYC;XS65IV+}gUl4eO?^jZo^WG@pNjU(fB#HEaw(PsQ%oDY%P5wIH>(U%>0Uwmo(cO-82eOiS$J@p)E^wH3)t%p+qYOOvEY zuU=VLEE~5yb|K?w(1GNjB<7XCLLj2-|4$YZD@Ddd#SOhQ;jNjuJ+{R-XY{@p$so^! zXFXzT1E&A85{`_Gj*EWPYk_;;9&2F68yZ2jMHv9Isvt9zRBw;XV_-3Wbg8tC8lgBe#S?aWL$FV@Hv$L!GNL8&}tkrXl z$3-uu`+5b!GIhB|i#{RP0YfC8%*}gjtZlW+bv3q_aW@{tMK7UWzqa6(*H<=-hI+6e zBi{fpjJf$ETL)XVjn$~us|rd*IFfn&)WSBiP*FteXUwBP^d`;Ybvd~?S8h-hOf=NN zj_o7C8#s<#?k@iE0ZElm1@;5>W@PUcJPW~Hn^Cs#A=D+GN%7^K9|=yQ{^=QQO|Viv zLp}rZharCF_wcP9>|O1>f0z@OZz#ldjsyb-*J;tLZ)vKktg3XN92pYx)Uc_^8*?)Y zf=hhNciT53!PV5OH(YbF#$<6y_ypkuOOl%-{d~TitDBo-vn)@D6(NTn30}={>~wbv zPmff%B8H6aAI&q?4hug2v6X{0iL=z>sUfAJkzft=;GvU)R;e$x!5vvrBAV0=vk`NP z0dsS1=EvDpEr{96#%&CITRX(Z#9^;2xguK{YlqSDCL9T_C^S4Ye4y7rh$^;_{AVM4=?tjh|rS6|Fr^%QdA>V~Y4q<%S4r0{d{+R#e zdt_*2X!kQ~tGp8v=Cm3kIplaqaF58^+KxQ^EixGA3)^L@gc7Dj?k4?P+x z9^jh_Y=#^iNzDI;Az>k5A^p#|R%>QXn6uD0XZR1{q5UGR$i@UmV#blD$KyJK#lhmi zKAa)*^sIMiVV9$8Lt|s3s$NweKn1w4G|SQyO$%HcUA0Se+RCMswQ;4VXVozO$43## z5fdyYT9S2+yyEd3T%BDL)+ZI38!92Lv}y7ulmqcmMnsl7`e;=DC@%3P&E@eQS~*w| zA0?km4(wR(=J_6lXwp#dbzyoRm(LY2h#`pch#|(@Ow3Nq9v+}gdF^hVjU4j5gsll# z!=|*UaL`f&X8#*mk29p>4E=oWvT<&nO-8JX+7~4m+e(b<@_J+=SebLE6+U%FR<}oKw0@mNsn8nDZzb8-lcaL`5NHbxul73a*n^B6IU( zsc|@G{O)-9OCFCe7{I5aJrS3TewWMSvX?LUe9u*CxA*9tr`C2kr8#A9t0C67*O;3e z9`C+`tE2ieP4Q@h8tbOoO~>3v^sX#a6^%o*F;+uTVMlnpZd)6>yif8<{g4T8j;r04 z(t~{_{OpSC3O~dU5hY?szMFEm+%B9``>D3X9y5-2UhTGl;awg(ZTg%Uf#pyETr?`l z4qHcCm%H}v_OJo+%MX=D<ptetbV zj54Q)-$jE~Ru7yp>b^?KOhA?tSE_caWsnItG?%uNRb^LYizq7^L`Hj>zp*gq<}EMO z5GD}jI>Amy_hKwnykF5UY(kq1zrv`)3hPKYnyTliLvWMofk9J~{Rdy#v{BCtoR-9r33|6e zRw3)@v%*-4v(R&%KD2Srl+~7NtF_fuq#hxLa7VZn-8MFMMXQQc#7Z~L#aVn{Txa;H zh=3PXme#Ij?xP3`BJ0G5gLlB3fT2Ey-+3+0Vu=xLlJ_M`UJ7^up*cn}#-};f_gNSW z(Xwdy&@0+ve}A0C0>%$5AAU4k+#|9Q*>Dh-a8ATex`07^6sgozn#ShFW;@ExJ@#)AzN06nLE6NpE+02)Xdt$1kW*V9xa!;fb^W8%D3eg+${Xce* z8lM{fyw_5=|KR4K7V60pTibedgT@h25ua}Q-_r?3tJ+kW#)XZ|o~y(Ii|OtsHnz%2 zrK$yS2z_Kic4Wb^;68P*bm!fS&X~-Ki z=G_Br?q!710%<`4(p}?7?BjT*0>K@}(T=)yeSTd>UC{ie zpY*WI-Of?&a#?~5@}Ls?BV&(%Owgv+S>PhuDNjf<_DAmb8#!GMT^%(=8s%uxA5oSx zK?aKvE)N-?UG`eUf6UF9cZ?$+xH#(abmfgcjp4{`On{5t9OiM~SeaSneVktrfVP?c z)cwAmdeUXJ^|<6^=jV{U8+rT) z@sUvYud}mD)|RYnF|y;kPVV>L4R{8Z#tfXSm;A!lABsOpTO8OI;8@ zM?D*D^t(AvDC`#58aV^uw5Jo?@7GZeo;ccK9JN#^Dim%)HzDbudA%YLJfo-o;n8OIF4$o{|X%n9_69-AK5 zgK*igUUTy;&L?e2$|j6OFlZ?xBl#o9m+PUv5E)B z4#fS19|(_q$>#~I-XJdhKmCyuLHXqip76#w&CTTuybF5SF?kqbvXv9h&7GhP$#)sz zsgKx4{Ho6!aUP#;#QD_r)FfmqJie*D9kCMWkKLgb5>gUV249(AZsLxZ3AiKKVR=-q zCEwDDtP?qdQDea!1xE!(4fiwLqb8c0s1@KkrMso_0iGETvCf*P2mi4k8GhcpG~?g( z)!eKz?mcOJQUR&j{6V1*FtSKbQ_)c0P?lMi*@yk6Ta@PJV!9slM6q3w+Q$>{gtSOR zcElqZ27VGV5;KP0FlLXHnw#$%=ahagjp(x!SlU=1OUIG_@%f<0ps0SFqGNs8#T68M z43#W6 zatOi5<~6PpvzYl`-IRzW;l0lUqGjXCF23z$!j6kWyREFPY-!XPNNL+@!FsMw48>OP(}9M%NOv4T-*_|U$Ubxj5=|WIB9Ue z#BABPr$7Ba9m;=mB18Ufo#HTY80nAJ%zXOO+YTk-D0WQPbJ>`@?Rv;avd-YJU}OR& zf|BZEr;gIpFo*Wn2Q;Zb1*VvGa06q>%FOzKg)8ImEj4X5 zYTo&_liL`FN7&VdVpj`=z#GOGLbO3S(B`i7C~No(lnEUPUN;`Koit!q&gJU#*wtc! z8|Oq;L(wKCug$sKro}DIRV%AhrJ}Zz%a}K>%`7r2vQ>o7liEhKHRQGyT@G%J+I6~O zTSP^h%(jy?^y~li#i^00krOPjFD9Mokg2(?o12?-lRUo;`}ep~+z~^1ZG5`k92&^e z8RE?m+SGIad+nx0EzPQxsw!j`-?wm{JrUWeRT`BWS_##I|M3tD!T@c{R+d+d#W`<0 z5`VAdVBcZeQp2iM1*!sT%9bJZh#59Fdt;9J!%|h_Xyjm}A{@3lI6Vi&O;5xNS1vm%N#H>Gq)Hi*6{ zEz}guqu9N%@x4NUkUxlwWyHvW-e$2pQU3gerDf-}&O^XAxNoA-n@ex1Q?tZIT zrEN{i8Zu?fEaV zNvQY@a!fr}`R#n)*mEgLa!Nzc@5mWU;1yvkd>%GKj+)OjMUAT)%WpjL+u26H!9dJX z<*12zZDbeNO_(tj77y&59GX9EDXH38l~pS8+xZUj;$PG`71;_jpAp{)QziQ6eP>tK z|Equc?Oe?K+vV&kPf18iz&SC3IRwEh87u3%uA|&C+q05k0kj+q_uFZp?{~SnW@cq& zkvXwH;*j{nRggJdvcJedcA>{CKK6y0bN_*}lO{)#(^$}0VAKLo(dE4n2%p)CY!lZf z6-kWodF%@n=bwk89Gdc)@~YCR(r_dPP^&Z>Dyq33l35O_HrCUm| zld>@9(*gmpr*PzL|DKkgUNDUPdzfq9W|pIG)w87^msSj*s!1~fA=x`o<6a|ws;a1} zc!PnvY+T;vYHBLhxacpU6(flA=6$F$81+vc-Bi?~tVpd$?di2foVWXQp|Q$D9*s11 zJ$4MnCuT8&Un8~%5r>HT5Li7|?O*c_{q(7gjk;Q0;zj4fmE$A3UOz}+chG7m`{x5vGgSq2X{uDkOfH>DTu4YHauU+m( z-RPSrU=!G+iTsHI3jNMb#;134ttmW8@^1}beOe>fQm?hkFL03Q($RU*<BNI_D4%FG(aM%%&%k7W;eIn7nNwy+0AE8g z_J(Vh@8OV724uoaJoIoM8D$DraioR0#RHxbAC^Mhq$iVX-AdLj52PNyaWscC$nfBK z@JvV-F$K~4nT3e#J=hQo^9@mOK0dg-je^xsE;*hN^EHZ~yV5H2Nkw2NbF&+|Al%pefEGnhh)dFi7lV>bs^D`)HUywHIC`KlV8F# zVl0Jz8C!C&D5mJg?C1(W^#D1J`LC+ERdJb8#maRmWw-O4d>wsrQBc#&pM#>8HLIIX zd|Q}L)UCb&TT9Ye1}E-ekH^FI)k{*ksy`^}c}Qqt|3Fak5eROK=0@?%Tm>$-~X05 zA5u%OtC<^^n5RRuriPFKViw>0B`9_WltADQ87UVG;jsFLsj0xZju9|zW@5?>h=D#! z8{>(?o!KD~O#tZznbBdl!meu{ADs}tdaS19IVO6Ip@<8o8ND4 zxF?#L`YE-=kOP5<(keA}XUM)q@EF%@YQrZZReK;a=SXh2(x0sJgVuW1Csdkqjg4XN z*?PLOeJtBCKQaW3$Htr}PO1I8u5e7>rNqTl@uuLF@;!hWn{K3L2n1j#k{&v zt*xl5(Qo}+Q79REDY1egxD>QAGN(VzJ#K$VMl;K2**ASI!rzK!7mHJ((^^-v<>%us zC1Qty3rg6OUV1-kQr3E%3IPOBalnOpuFyvrUlLz(n;Fafu<%kM&<7VKHWThKhBKBo zik`rG%YtamMP`nX-%cF% zcZ+qqu6aln(E9hA8WO(EOlzxC*L8Cy8#^hAW6RScPDx~`8LO68)=0*BNR}`iZS&Lt zhoTa`Z%Jx7xFuI(tec#-bu%zLF6rKKpPH;$9+Hpf!rkS`jhk8uKdUaPzDrHFA^cNB zTbb&y=aLnss(N;fO*kL#Apz#XN*`6!S5cWHmNtG|r6paD>43<1wjh^hWq!E0R^L_Z zA<@t`FsEmp2u*53Z~pLQaS1s$q!|m7=#f|#xb!v}eGi_Aeup`0hzGGOOL-O|fx~mM zB=$TJ9iKq_F5gvBT>D{d?dl)SMAy?KmSV#Sl62+z@}4K|c4W?9evFUq27j3IV`Bal zLku`PIuqSO8(M*lkS1lGhj8d;a3p5&IdPORJ0cI}7Sz34uk*D$6TOPztoACOI5Q@f z;QXIsW{xGA>cdOEG1%g;fv2+Ke=|gY?v-O$EM+(bQ3!QeQ)~lWd+)l9277=ddq8@( zXhzZWlfLPf7KS(fv8_C0C1<0d46L2JLsYo;zpT6`k}4yzbacc6k(RXYYf`Jfu1SCO zYk5d5Wx)EKmr$cnp{DwRnmC%oC%@0p_EU07bZfr20eOnUqw)|fhwME%M3LBn5z_a} z(VB3@i$BK4USmVp`Nt&bR}Il{g(?quhw}k`$1OlC`=u$g+2ZaPccRAZ&&tfdjP}jn zP^(e5Y1F=!KRU|G;YrLkIt$4ppkHQtn zI0uuGyt4cTm0o>#U9|GAy?H)M8TI3*>?GKYm|f(OYX9>>AzU5wA^rzA3>8g&(0 zc&i!WBZZ_QtpS-;Z=Z(?sYfUGC{l;P4@CFoh5d=0R9Er#DT}B!JST9N5fpt1LV>yO z>P*hgjwWSbye2?KySl7yWxZa*kuRNn#QI%bnw_sIErDSY^r_MNM$am7z zyEQ&F1A~Y*n8ij$tp#0tWV-z5f`pc=SqYw%93ANqHYSummyVHsqt0PTj_sU@+}l#I0>mel$ljB>9xTHY@xJ?$chq3hY?QA7*cY@#V#f?dy? zALY3O8CL%gU#lGB;DELvjf{@)f$5aRy#zw ze?o6G`~-osx<-=!yBz#VrxKeVf*uPq90ntL=X zvAb}3;kRE`DT(F#d+mgAw8RbW02tl{on-7oyCn=ciHUQo}afCUui0F)lN4>GHao zF?}nnKc))y70Wc+8Zs6XwG=HWf--oB;biW_zfcuW6_y)YzW4KZWCDNl-erE??w_7u zNP!I*1(^$pX%LrOXb)}$p7X03)y;o=Jv(F9HE-?;n*D?=OFWt@*~pf&?HM&i>`Ru# zhSKClOK{8V(2(T*FD5FK{@&ar)MDI9SWHGfx&%0bLM}m@t7n3v4k8;4{yr<~0wTvr zu{YO%d`SkgeN!^8LL5A|ak3>Ca??97lq_W4FIk!FLbk>C;0@Dd%)O7jE0PNGH5#O5 zlxVyS;b1>}6RjYYPg-A4dHnq_ZMX9c)0G_E#-{wt!+7w8L%&co6qBmmCv+BF(*|qj zMu%new~tAZjJ;v1p?+T$sPWqqrRYY+^4a>jGUB75m-d2&BCS#pUz9|m()Zw$5iLdP zW_)ID*$G{Uo_daYGFF)%-_4Hw-l;0NKiJOy)@89=|62QNk3R1-@+={LGv-T zcvC#jb0Y2I@Fh76~H+$+!Luemkn{S>ssB559kmo#1TBPR%%nUJF_Z^h~-U3cxHcSgS5U;5vgn6FKHOl zSNEcX`MoVj9q@H{(cyyVf@NEp^T7eD;UM39^vF0a><9Q{RavF)LD!xo%(eFdwQ<=Q zs-IgTTPRDkCsu@SMg&f;+A~O5=`VB6H=x;vF-(&%zSyFz=^Nj=-a0Nc^LyTGy+aSN+tr zXA!dmyB;!6AQj{w9I`hj$ne`f|D=784k@1(sD4B~&&())u$%MSf{>Ppv;49yHHSB! z7?&^+9s#VDG{zgUAPc^R%z1ak9)df^?k_a*kfiRWx@u0fclQ$qN5WM5Z~BH@gA5pV zLmqz*@wNKtvHKrUuU1blpCgtO+<;j4+kKi5!7k5_FvdLi0{BoqHuprw?ysk|El6vb z8y8(h6v(Ti{l>x*fV;nXMIi`P$M4NaKVt|$R6KUSkYo4|YGu;=jMESdSN_70s8M%% z&y0SNGAd>6!RS&ocI8_q9J}92-C7*nl#^Gbu5GAo81|g%2@lYoU!@vx-uhxx!i9yw zEfW)t;Rz0@+9^_1QEho`#S`J|>4dSL+?AT~0Xgry6B_%+f}oZK8OQD~<+Py=W^NZ0 z^Cv$2N&nP|1Vet7Wuy_Vn7OYsz3#L6qFvXNoy$4DZkn4P^NF;4p|V-IVPPc@tTQ)v zPUk0tTtLZ!WsAfyU!3Tj!(GxUSQ*l_I~1gybt4f6dN3Wev+=S{Os_XwuC zlD>l;urx1esceakPD~)&+%0O~t)+C<=LLn??M3M*ch&vV=RJzxJjcS`s58W*B;`Ha zIyvjZ!hN@Dm?k_0j{P#J_?c{+>^^s@3prh-`W^U5DEF15sj>{qp=R{@trsecj9R=+ zqI@YEEqgxXAtEfDH^eusNUBPyO3|dPSy`r<(Z2OUE9cbOz|y3))cP|Df5k^1sI`Oz z5k_6Dsj01~R@eRdc>vb9trr$hrR&N|v`d?{#|y&>uT#@3i9MYtC)3KBDow3c+j4P} zZ|)3}tru2t%D<^jt7uoJt!k`n>|w@=NXFsOhlw#l(xl41Z^y_aW4B%?qX+{GY>zJZ zP8q5EDK)B?Fjb2op4mC|+}hYwS^CP4R8?8Cwq9U4r#=f(CN53YUR2Cey!W0?M=WnQ z>|$P8Tvk%6*4A&@keffF{l(9V>FTxBC6(*cr9b9~b5@sWY6$nXLZ$pvO+byTG`Z@l z4H@~8u`hmJ#++Le&=U2nEcq*ap8oV6c>%#>i~m)bP-(p4>BgyfS+idJ{61a!MOk+J zT7AW?vc&SGl}&1r#pDjc$*Q1gxhkdZ&R0`1R{yZ>R1ao6a`)ovnCv*9ZHrr8|D&MZnulTw$-Qm%? zQw!-<{7zt`H2pF%tCuFuHpE94gJNPyM#p@YnX3IzTkC7N?$n3Odr06W&kU0ijp~NO z)Um`zPp|sFRZcpRCD#p+upndIsVe$QgA&S<>lGELs#Gr5+LE9*|Amv?20U$byx|*F zi#jO=&j{OF{c5CH>&LO!W7e+Eay9zdKA`8i#R%&XqvQQ#5aoJaL8BD^49 z*QnES%&=~b0Q`C^nq0es(EW*7zaeAswG2E`V?@PybJL}NV4b{mXWD4O{2xv8j~;38 zX&C=UoPt~*Bqa`s6uJ!mc=>xzxH+> zYN9&U&Mght6P@`knts#95+ko09(E9DDm0ae@rqP}#Jljsp_Oy-GjC<+j_B;=sv6b$ zl~sDuBhVZ>uC7VfEKkhLUfWipmW;)x8+)0cLz0Zg#WRZc<>xjKCV=WG^P6gRRj?#F zY3D*kQ`W4`LmG}2t6}<@T=j$038}ZJSw=nCX2iy{D5X3@t7OZ*T$NdQKECr1OX(Ks zTjV=46>HTc>POU6BU|H)*z+3ewGFAsIf|tyz93iJqo?(l?}=Y!=HJMlo&Q-~m9dvG zN36S;kG)K0Z2r?v_M9A#3NvJc#q9W1q8t&WWy)4nRMjofHE+qw&ikG6 zwk9JTs8QVFqOxLLeY5t9&5E4E|G2Ex8m%;ER+@zL*0)|y8Bf^n?ek(IV;O%%lJ+<9 zrLu0X{A0B9>{)vL&B;>3_fYW5!gK^B>~vBfMOKmpe{Pk)mxgSZ*z1)a#>`(31=sKf z&whx9Gf1Y$j(%Ga&bpnQ3y*A~3k*Mk+{?o&KZD6IxxgdjtEz7F)ix2Egdx!e*$HKy2f5m(Enx>{t*Q+$(ihIX7ZSexm<=bTy zP-n3Tgi_Mz4 z!2y86;@Sp-Id%rfhzt}&u8(U{TbzUPvNQDwzLtB_G}OK$=~37J0w~L9Dm5&@bz+76 zhEwN1uO$O+%>dADYN`zL-S3LwN*%4j_S7t#j^!%L*yB4H@-F08-0(yRbtt9eifMrcBU>Ja6 z7(s?fXNHDHRn__jzV(-vhp+T|#yn(39dpnp2cuW9$50M13c0s@UQ&&!0UjKR1-DcF z!KY{WN?AH)e{F*g#?s$-0pCF0=HXz~9&)sni_6t9IZ$y5(dN%MU+GT9CpkvP-Rh%y zlQlZ)Q^Y7hzgWF+x6Z_M{(B`44qz2pd_W&l&zKsD;e=~lfk(GQwM~Yoi1(L>kB%m1 zXYY4I`FTCmZa%7y*-C$f*>UMllnxs7&^5)UhA5Dqp|w{{0A25yxa^6c5wPQ-K1NG_ z`JJ}3!=*HL%!}9(g9Vlv26Z&_r zzmlECvg8D2ZBsRS?}m~c%S%m*|2ik^W6t*09Qf;1EmUG?8fIdff)TRl2}s_b0wodc zp!B`0O7^>u6IMqV+My~j59;Q5m1k`nKt%%UyTKkZzSJn$$2}}mEUd+K=7fF0Av?Np zN`v|UmjD2HRr-e^8V5E_Z z+s5X@Da$;V_&7Px*D@z8jXJgm@yMa9de&uG^@Sh8s|nhCiE#EcYF2;5R6*@BEym}@ zz#0m+Ld^}YW|)o~!5DRSF;{!-oF>1Bll6o|q@BfzaC+9pz;`$kxss5V2cwD}V~1x% zn@L!UUs~H%Rx~vYpdGqVMLzTGLZ33Gek0pp_FBWbvtqV&8e72fSa!{hrnGsk74j%a zV{+?XY<}K}g+2@E{2evrgKwbe;|jeBGa;Q+?fntSiCP(y^&xY!M%#FKEc9t(Jo&Mb z?h_HI=h1P-r{msV^K2a(P?fuWsTn3Cn>#&gA*#fcAGb7H{!*KC3sc>=qieWMfsNhN zR|z3~F)_v6hD_L-M(*VI8cM(_9~$!V8yfzZmyt!-8lp||M~zjD7MOiS8#Ij_>mN@@ zrE+m^J!1>-cr+Q>oDfB^@3_CiM~!-15}s5PZrD{{#A|;%VJRo}oT_AA2ef>TC(DNC z*tDaX-PVorwr4SuksP(&`c6*oEx3#GD3Px{@UI*uPC6eRfaLPe)R&-uV}7Lu~)n8ptqs)P>jGyd-zR7u`vytQPIWb^WA7jes)Z* znH40{Ek2N9-#~qTqB3v)Z7q0TOQ|ue#C%7VZWu=G6Rmb+b{$N!mE~+cnqptgS$+{p z@6J!k4nL67WVncq;^0VgtcK0i@Z0ke2p(IIYvYn)zlt6^DysO|>F~r~n(NtxhzRUh zmi_(m99f62Iy@8q|J%=1td~cMeJL}~pnyw3I@sD+joZ$~ascp`y_YnyGe^}I6qL}u z8vBszYphmrf_zglOg8xxqQIPEjO6J6$AtyrQncr*msRl10wr>WHCDw`G2(EyQyJ`m zoVR}e1EBqGWyJh5^6ZyUVO0if0h-TV=dWU_33wm_Y$dVuJ9f~WW5)WnOX^Kz0S&0r>L>PI=Wk}uW)5r*7 z)CzU=;sX?wLv1^)m!G#UuJgPRsl;AgO|tk?BpF`0vg$wF8$sWuZ*D#-9%!QUyP>=v zdtp1`BMu@12jJCf8~X|+G@E<1q&`FO%I>;&;2lonuu}ZubUccg>ClIGf|n)0yw}!V zqixY~@LNyu&dJ1H@qnJHNA&MSG%&%-7ca@1ZkN%PS3?5DBl%HJX2ruI%m;Eaypj1A zPZ;mc&nlgHEu;Eah%A@n5wXFyX=U{{reMx4Y=E3F@jx5Bdvmew8d|0r?~tCm7?ley zI1-0mWUJuO(bSTeGtxA6*C+Ni(!G1UGcnRxTU2yO$g`(e_Rmh=xnrJ7fJS2^`ygYP92)p4e3q;Q=XNm^p*PFAmoo0Cd*8Dtgz?W( zvKCcgm|TCm&LjS1S&wlg#kcCCHXkkPUQTaVQmX6gVcEtYUFv5dHky`*`kph zvg)A7?7EKIW!>qt;U?7Bq=sp$anH~Ho|6SwxlAkl^;sPo!?8F9S_YocnTb5{lXULr)FSyjS-Js&yXEncQ(hvB4!lO&&}cSgdGoc z)Snmu9>}KRqpFmT#z!Q=*teG7&`{iX?n)NK29+0cr|)>Up3{!0cIlM@oE>HJ@i4rM z+`zgf4(-eu_ z^|rgmIFqviz1%)1Da)(6brKuVvA*N>r%c%%sOYqZhTaN*4X+Wl@l@!s_k;j7 z-i^C?LIbltk1Xf4cii4Y&z&nRd~znbd`mOHdt@u)&`RT7Co8cq{{3qiczqDvn0KP% z_Huf>O?ceBo3iRfN>)j@7dx6|w?!4m*(A37_8&TSa%(Eve756uBcsKBv+Ljbbcg?V zawqb{v++@rUdKh=wn@~j{ZLbDcfI4bj;_T#dWrn-t6FmD0i)s~z^&OqLCFJEu`j}6 z;R<5m#NLkE%a}x7MMC#alBQFrsc?{U0M;NAQ#-qQbov9F-v-g>s7c4|cj%JOv`yx3 z5M2=kkt<{nwQv~UGEgd;nyu$GW%Xi4F7zSmEMC^g^6*9qmrZ9|$Fs#mQ$6^7mNa>O zW#Pog`izB#*($fFj@$3jX+Ksft-3(JG9T&;e<7`A0KN-LjW4ayfvG7TwjyKsEvMu5 zOvby_o1L>Rob4Ej81pXMY^+DE=h*qjH^}nY05-7oIy*(rLOpX9%ie4)V2_&kUHFhA zKUH5b;csA1V@)$WM$;pH(suT)%6fcf09RsZNJLEbyO2nwV%@wmKNr5kc55?Ugo1l` zig9Uj{Pdq9ss)KtQVg%4{PZlp3mZAUA@WlGdT(WGFk5Ym5KopJHuLl;Wy{#-?iH$? zt+_0(z4>f94WEF%yDzU{e0D%V8*T{xL0)qRVx3RVQx;5W_fI`NtNCm$U5tKx=3Id<@<+d|#aB@Syz4&R z^?-k^D06P5;S^MDK6>m_8*PgxNiR{oC$~P{Q=k#?*Xv&EL)T`gGV#6}#Bp-n=9T_P}J1yE6lAVoB`i_h&wD*mS4cEse2z0^Wo;B8#sQS$f|!o zsDq}wmU{eBF*$7^^?h9=WZb@=uAb~2t?{+od{ja0zt|`_Yg(?I@LPB-o+j24?cxhW zg&Fds;@?xMLGy8g@qThHCmS>BO0WvAcH>P;;-kN@0=}LcT{g`%(tC~ z_EXc-L%{aeN%@HPSvw7-VAL6+KpKv^*p0*Kum$tg?t15;#T=i}iIKf0qx48K-}VTY z#rt0rNE)ZI@MJHS1o`fFj$kz>3F99z;TqsM^id&Jg{dGWB!cmJhYsOzMv|cegkxC z^INJ>6DT04`1LrIJV%WTz^MUN;<1619G$6126>G}gl9DigUi%{E z$s>^f2cT2p*FsM_B=HHH;`UhbkdwMpuV8*=I z2COn$3OPz-s%CG>Q0!2F!4<<7bNu<8iP4^eO~L*SP_=h8G~2keZBcWou$MUz+X7z~ z>&YuVc*zQ%{s6So{*;v5o+OR?@HjMjd9-c$oSNnvt-jfvRB{{#eMFq(fI-slm8LIj zX*{)E51SCM7QLLg=?Zf^AUPP$<8@R|n7VY2t{88$RvLW3XFlGynIRFwy3558?>@gO zZ=&|nY=-g)%l4%=v1^WEl@YM)yQ{F&g=c0@`kG}QJ}b(XkGd*1qww6o!4xAG^O5Hx zNJCPG>kJ2(^hk1j){-nZekw%a5=%x#hZYw`V=Nj>K*W<`GUCXeQqogLmh!M}*uoG} zf*04d@gLF$A2ug)SiF~c0;;ffG#XhDvb5=Q>fq`n)NC)8D;Cez#(zK$?{0x@Qv4AI zFQCY98~2Xcamp*BI5VYC*Nsu_xlRq?hmS-$F~dJh0&~M;h-F~b!o4{1CZ4FyPJ*7& z@#qc2QwFA7wK@{{fLSbp(X){Yhx}5MW$4AWXd<4_cfh$Mx#2U&@ zfj2K*q2A32su69FR^i@}!TA1K#co7Xcy1`cTckPSWX>daNN=a0hWf0e$?!3bJObGL zG=g6+dSDtrz?pQs8z-K>h%x1sWg?`(oO!4oIN%W6(TX4N)`O?E<=^Sh^t2oDb5Dxr zFQnc3*rpq?VucgBDVqvM zNJ>kE_Txo@dKW zkFI44hgdda4_h&dVl#&Dg7H;t7AqgM%5gk%Q4kjY2i_*Qp6dmM&1j`Z0BbilK<8ta z6ODxQMVBueJ*^WiU>=+-%*{jQ^N%my(L_ul?DxDNG4tWH@=W_J0MptO81p)zD}6hD zDi+l!_|dazPFF|>ipf|zmbKK|uNVX43{zppSrEVbTqnHG*j2c}Xr$&R=0f0;vpDfs z-1{h){7?HtRCl6btu>4u3Dyb6avnVjf*FR{;PT#7*w~Kl`~^kwD1UhFHv?fW5CqXk za1Q4%G=*46JFjhlW+xbhS^z`*?#E!X;7`x7Zozdw1N)<=!(TU14={L&sp$+vY%Li65?Wa<>C> z?hFLm8pc7)&Up1Fi*e4sFpH(rz4F zj|+rDh}`66&JUm0fxsd)xA_KWciaGd=!WyF-op6(qw!` z5vI(=+Zr42pSip5EM$DJ%ikM^jfo$sTLf(oCf5AW3~BR=E2z29(m$&SjzsRh(@f9V zoz?sYMumMRs_uLoIR<-~K%yx@&8|J@yI(S4@-F@Pzd0F?!FTqoOcFoS=RK7e`TRO9 zu%jP^!rm1q5p+PnyU+FKfpW!oyo&zC3Zh(i@$EW0hNQ`{k)@^Av4*;D$blnf`tvL& z^1IT?zdZ1vDg}J#jU!EPN3SGFo#Gbw>u=oYmj$r-NbX6Xz1ve^&$ozv{(2pjP&7M0 z+bC!jTIb5UE3xaplNGK%pL=ozGp0K?Wi95*mi zV-A95mt;)d6@J*9Gg!|>0oxLZpBoJ00V9myDF)u!Fn!+wh7DGz=EMBOv%?QJaJ~E&<*u<+=lXulKB{rbAhuJYSJu7w%!V<~%wocH` zxKIz@$?(mhLuwcap1kWW-NR38yp6=;Y5O=pqs%7V?#o~2f?yoX9)w_UV8=ni|9;FH zxjFy;0Z>Z=1QY-U00;m80002Av+;=10000_0RR9C0001EZ*FF3XD(@OW^aX%QE$Q^ z6oudY6@>S-77#FLHM(p`ALq31P%ezjf{|u1`}OPUw7%`Wf9HPZlt(nuyUhOfj( z)tz#1MNv>4RCwpzN554G_~zo%OG6tWqcfkpO&W%{@l9@ z6aWSQ2mk;8005d%78DXg000V3001Qb002^HXJ~XnVRL0RL3n9%MOHIbH#l!+WNS8K zb7EyKbY*xhYH(-0ya_y1ecwMmMaeqZvYU!h36<-)2fuv^H+E#GD9V2fL{2!~q){@{dtI2+vJMGHR*uZtIcL`4=}mxzjrh%Q~Sbm<>| z#l)8_6%!X*x^$W3GI5E8AMl%$q=eMMe}vUI$z`~1T=$|yvN&NKjsPCM2k29hzM9|30MYP9SJ_iiOMdKTeaDGsl2nN*y}-s<#0n*471cFsb=Ixlu+_-e#MI2(X2(ujJ9~#+`}Q9==yK?=tJiVw z6Fw(>{esVhoDU7V5FUFuEX~p^~|j78#iqge4e38}{!zF2o&V{m8*M;QAca^wri& zES@cDD8xOi49Ct8*;B1^yVo!U8G87+FU;W&inF1p+GZhc{X0Zfh$FwA#qxS@LvBKx zGBlKi6kzo&Qv#iEOiBwpmi{9tL{VS>F|JdmDF#VIo~w@#*I}D$hiaA!aqFfL4H4`h#NC^nI?jLgAFyGjk1K8KVpTrN4#7z zO^AcNNobzdfPo}p`3$u4r(vN#TL?isF#GeVgjnrx(o5;n@6a_%;*S9Ax@&CaHI{@$+PkFV{Y+a z<$XLBcOatS(BP66>9WD?RYDxNdo^+BYt%NVd-4G^rrtTDglcdBH9|iVCmx(6&#QML ztAs$*ki&4tU?8g4!7i_%rW{%H3Ejs@^>?KwyTCkpL1Tzdcyj*NU4brtcXzvkiAuh%eVyv6Aw0PuU4Iacn*3vXmic+l9e5+%YU$dSLqYaey52Z9|Wu4f2 z_{LDiIQa_^m3PCOdtf!}9V;H1VFr>vilG{FfXkO(3vn;K?+I}hIrDT(T3L`l^dj|E z^6Zd;0jSrXcL>H)e(C8BSRTv?5aLoSb^RYX`JX7gVmb4k|9c6k$z+7#3AhN66$b-CY%LD=U!T0?UkMUXWqsi{y>(>(WWu z>Hc$VfIZpR(g+p7Ejs(D)h5IRmgF3XX17Z9h6UQ>Ft@`EnTnaW_Bwj0*^eu1-;m{% zzJ2Hyt&4|bRBub6B_H~=3Q~u72J{!{xz2jEyT(@D@^LN^3E+`7NK()6Zb_RVW zbt;C81e{}GhV~HqDgk!rXhbbS*;Gu;!vs*D`RVm}s@H=t*w@wj!FgU+ThT#yN994& z&$uVJQDDR-$?ud<^;W>vCIpBa`86IWZ$K1Xh+||Dr&B12bl#Ctf?&&N=SPS!A;e94 zlf|HkCr)7ZElDT}jHS9eMY>Y9K8~MVGLA{VSF|=WRiR}->^vgu4D1uUpFla!DoL2s zcz~Sks5@AtQT|ERQm??#-!I^3y6^JqS%=-;_gmf!=+-)k^P=_&amW@e%xPqhDY)8e zhoyZWTSE*MVLBnw25YvB6XNcDAcI%J=I8Nw7E-%l&+3Uh zeKIs=!Gy^|oIcncevI5-KJi$HTl*GfVRae=APdKLtjb(q z4)(I12xLhCnkWJ6dzflWLAC_~frBf7z!Bz8elCOwJTbxRsI3sgjOe?~koOo_ z$#r;MSyGx@mnG-ktNg?BP26$|DEJxX~!BPKn5Z-#<-0J8hZYTXj55*Ldlk zr49r1G!kM)#r9=z2Qm6Ng21k%R{$Ovy8#+jA;>}#Z~ch#-k%C@fwy{uxS{4M86mD` zf36Vcl&v@ijLp($VBrc#{fAP`N#g`GXmv6mNK7~1Ahpy*a0=YLBqj%eZbVWn-z{4 zAQpqz?^BPU9{V=>j9DQJ3?b0y>piH55ceF*2MoFR9jiux6I}hQK!`g!N1qWPSC62T zLR>X59||JCPJwfFKGlJIttb`X0X^PArUW>21brwsjx}W^pg;U)@R-yMAueMBQV)FM zUV^~bjro-YA0i`bNSEns8nHMlnr{)-GANVJF7yy<;9=U7eeE-kehlT<7yX#ru|}h9 z$?D16^TF3e=mZ_0lI9S*Gcb+_lkj~uK$go$@x)U^*|3~hhKo}B&U@cA70Sz#CfvK- zd#)XKxZ-r5U14gr{^}f|fc1}#ToP#f-?XGmkVzb3R;dYb-LZK<0ThhpMufN})__Bv zQOaP+J;YN^p}aTTz{#KiyoATNYd{>8r+J%mQr{~&AfSDDMB`1z6}@hE8-hL>lI_3^ z8bo$RloC)rYjhdcu9_+y;rrP#(0_oeTtye$dwlX!kHhH?J^`mZd(%yWFiK@80a6~+ z8G!yI`$8PHj1PPr3QwU5aL|d=DDO4FcN1p3APVUtmtSyWz3@N#G!HV1+ z!1H?FUm1L^!Ga0Q_MbFr-WgE)0>o%#!MmtEg*+L=gue~l!wpRx;1Xh@R8PKMTd9~G zGn}JPSz4T=@|*qB1dq{fPlh^k2+&BK1o*vJaGS`^CzMy+=I@AluX^WcD5nxia6O;8 z@%6{7u3*VWrvtUmXdT%=;DJa&^RuWHr!_3 zd|yqJY-gap(ao7Ytzh#9uOmBOpSohNAJLSt@_f@Ixh)Y1K8;kt%;BnSt3IPzdL^O^f1}U2!zXG6)@e6BuAUEY zZNi#+>M;DNM zJ~@>PTT}Xc*kn|mg-O_PD7~S)RQl)1H@f+wu5a_d^xEbygRh*{(_F_@y=MQ#mgFZG z7vd5ti2%OLn4!RU)W`&48*+6}jeelOLG~>aWz_oAdJDTt-`M}hv$T#3I={AJI?1?c;+_Y+(#&Fdi>c8ZKzYl7(Pj8U zqYO(&V0qu_0znxC6b%LsETzvJy#vm{_?juiHJyX%%mB=AWzBCQ$$?L&b^)jRTJRFw zmT*^Iq@p?_8vdKFL2|ffK!WQtl)-= z=csUKBYKbZJBSC;?m?r$E%Zh}>DS;%)`q z%V(-Z;&E)s5r2L>;OIXgGp-FL1B_?P4v1k71yGRnw^>TF1TE!(H(JE@Dw`XL}nb(_+0vE zCRthd5b~KI;bz`%bDky-3`p zDz5Dwn6#5&HWv=ezS!QVI&!JYWItai!V2-?Yon^4E&ZR3krnQD8fg$ougb67E%7j( z*IMs8lp0iZh>08dHb%Y-ab+NMMLCutUq?qQ+Uaxp6eNL&NxBJfw&DY1RAY>cW;^Jh zYE(eOr_+7dCi%Lzc(kE}jyclCXE{-~BOgR;g@0r|aebq7@U`LtlT8k(pWZ#c|MFI- zsH|Hl0xX@_0YI2d#6W6a2k$B3Gf3=Fi8X`wqtq_O(Qv zkmOx>z;NE`^R4mgpe1usaX-dtqmLT-3USf8*j6ZTlsuza0`MBp993fZjKRFLE5rsG zld8kR5=p8b3NTRvg!v7G#hk}uOrZH6e$(~%O~<0h}!Z!<i8r}W8l z#Ef&zy5b0)=Rtpa(S^sm!g4M7NE{i48nXG&Zy;{z1UsQ2%t7FfHE%xlWzyl@v;<$D zN7m~Jn&$=%nq^)kz6iNy%qTA2DTXTH*}IFIAKjll(o%^NL-+M&2a~%R>-+uf zGdRQ~=a7qgNeKqeMS)$mnwlarTK|q)L!g&cukJVUH=!mDMi&owvh@fnzZjr%Hd7u` zJSYWNd6vZz&sT{IcyM z?-1gu9`*T;QfE8EsS{kq#~mTIy*CXT#D%y^rGDsHS)FK=g>Zd$^1XQ`027P~nN%Rk z#mF)d0Pp1mb}2&KXU%!~bMguy?p@(yz*wt50gefqzFe6i&DN+Yow2)|-i_?rZQ+7h z!$REX;y2X6`)&r5LmG7Mh!W}EGm8M)eTcQcaA;L?rWpN$he3@}DzZa9%~>D#W!-$v|F_;F;6F}E)CzI<%cb3m zh;UKqN4wJj~v<4qDe=*70fR3o*3*aP46kC*y_ zOAnr#Le`j|@=A6xId-UgBRliawU_}G=lu2P#If6DGXfiI0q%;nbb9jj0mVgmh;Hx- zcEl@8+4uA-4fyD|D^ZHh&LzVnQcRUaN7cFrO+kE=Y?w>k>m8|UGigXDrz_X{;)#h= zwXOSXBwov16zj;RN zCb8zjnm&=cP30eU3UM-k^f7?1?ZzN`#d+9HoYSNr=SZkr0bx3o5=}sSODLFKK@TA2 z8ag|xH>CNiFCh9JgXrhG6Na(~ajv^wj>N|3O`94;0>lA6a?0BKl)ng7U750pD82Q~ z@{7=;BG%s?iKV@O0nMeY(txDSK(+TFb|!J=KbOhFG~@v>0YM*}LYIMX+UWr_y)B$l zO$VVssNjaBNho`&r;_b**;3>InWfe@X~4LnUe=-aLx0!C6Fyh_WnG;TlPgj<3O+bz zZU@g#0L(Agu5@ph2`?Q{Jcm9kJ0yiXT$AZv~LZNk@R;vGjEjq+&*vnT~-nJoeQ`iFEvuObp20-QnSRSm(-3FT8e&g1UG2 zpf+=K3N_ck#DVVFcQ2&F<8$o+#tQ$ANnzE*=k$r;!2?JdpBU9hkVNqV3Z>~iA+6$J z@}!Pubz8h5q5|I7^VLLjZ>i&VVS&)VCKjUGh|WjofK#o7FvmPh3m}G=H&AOq4TP=+ zVdcG>J7$t&aXhkV0MzroyEksUbT+HfjNAdeUJR%G?YB0>sN80g7e=V-Q;l@)jbP zhZT@HjyzF_Tf;0ICBo;x$BG8dZAGPOX>iB;iqfkN#$i^!n<$F1BMbA-uoj@|4-%ql zciD1puhq>!_{9L<@+{th5iBRJK2ymnA|NRym;@JiE2=oqhbsVh{DFXLAvTTha|{Om zUv^W7o6|2vmjG-L1~FVw(m?*)M^XcqIT-TsPiSIJLRm-f`;oTDwpsukXAKaP+y@X<{jG|fw zYo8YR3vseupNy7p_0yTxat}U#b8GTI`W8Zj_{VUcBm~5FhrvmKW7t7w-)F(jED5ZI zPDr@48ZLXB=f})R;Nj!)%U_)@f0=%$^SFPugk|*uv|y!d!&zcLlx0}C8;q}>QbDF_ z_wLBKdWGX;E5wm5417(tG;X(#%ho#cB~MFB>n*fd48!9WB=Uv>-=OBw`4GVEwGlHQ z(eWC)AEhyFf@vYpy|9D>A^wE|)!uKzY3CoO4IDfs=9vyMBR?@2JEVM|RSMX;Q&DCo z!%vn@uYA+SyYT$9<)~_~X7G2XAl7pqRDBg6f*9sj@_x`#qE8{Ts4TTGEXm{a#5ks! z{w=W7L3Ft>^YGvzW4FdQ2BWFfXp+TMUSJd!`Cmj0B#GhefrzOECLsc7x&drE#x3dt zRB|kA1yR~0He}mgYYt1=!T(H$_3*OB8$T-~`8D>9ri$n|bBZ)!2asGM_MToEIuQ() z^K!XjlYxUD)(UZr*rN6~))(`;$5uE=KPU%j$4|EIr`P2-$9%bFM*F}*^g%Jjh699L zE}7TzLU6-MJz`gvrHf|>`=Z8$UruMc*7?YNarfBqX^~P(iDbyiL9^gHG4#X4e_yOK zC%}%B9+4VWdE?|HJkGP`(voR28iozMshy=?U*y-MySpY9J=3>Y-87xPd)1zco2QZl zC0#^z6UejL>~23@x<*hMwfaSQS^9Q*cb0nQ-pFl*b1l9mtFEn7agWmwD~0R`FAY%D zMm`ZeCAc1?5^=l}@}sF9_6RGkR<(K&>=T&RbAz4!tyv|HtZLJb1DvxBN@OA0 z9l+Yr!n`o47lKSwkLEUBMlH*(Gt(~LctHEp#!YAQFXF>{xhzzb%r{5;tLK@C_XJPh z1Zj2qDw&9@jdpF{Y=85T<+%a+O}gRm&+}Jr_I=cyS3!WiS?U$lLXfMH3v(MVnw`AK zmG~M7)n=Jr=fR_8OIBZ)Y~TCD{^O#vOCxos4Kc|zd>mqkiD&S`!eV)LFuqQDU)}r( zO5RxZ3%}kEB|#)D4>#@i`N!tYgW35+RF*8*7c#o0zs*J`JO>;5^dK5KxiWT9$}upK5b z#$St2d5K6i|2KqIW73PS^QXz!6r3~#1N>n;iNb5~59*JPcRz2tdHDMd%5hRBf$)Opik~p7ek5 z8_#nU|8d^2;7cDZTg6){^!-h>1QjDb{~5#pks9o<&2Gorj>(y+q`r}obko@|{pBW# zD}4mIpPAEN*hOnd-Xqhr9|TPNDJaoSAiy6V53D85`=wzr98lY0wq*Oz(K|r{RIYLXDrbR3Q&$k- zOJIeU-dhaKS__Y`7aqvfMW){w%MZ z>I&Bx^B(gqn*A8sVy}Pb(e&gOsr74;QoOVyo45&>10e~Ta0eyl_D~v|{`ZixGO%YK z=5&!m7bKb!u{0aA@_?r;>7k$nyyJm{7w+R}{+e>>-Mz)S%`<&T< zd__wj4G-sZ=P80GK(d%s+E90F5j3XIiE4v76&)3scbUBhUj*ljqffX4sfn%x-&4zT)uJ?i>!H6aK~ziua&XW`N-8H&hq{_ z>c+el1vQhHn)3mTVbu~BhmyX4@MjDxL!ghXCIW$l?~~v>j8FhXCJLy2B5DB4-xXpF z{SF>6cjHk7RH8q~Y1w9T$vhwA?fo!TZ4kP#eP+&xhVP%_jfZIT^P9xaY<_$2P?JV1 z?P(N1VT?4wbRbcaK5@RCICIr+UJ{c*KncR)JAt=%tARkq5Ay{53O(b4N|T4VlpO+U z6)tQGNj9vpF2g}4;r`ALDSYVa9n-I`tUZ?+q<(ttymQ<_uFeyvI1@bmG*IzcBMPcp zLd5pm1ElPoLi7e#IrEqLp_F;Gg?DM+nY`t&K}wY}$T5jksiHgKiC$u&B@w1ucZ7Uc zJ8)k0rCW9OHX)rsCvkI!Ci zU>qs>-0f{4$&nX#m)TY%eB83qG4}>*`0Ja=#(PGv4r&AVx&%b*c~V_O_*ol(eC8A+ zo{mX^P{3BD2;z8v-A;!@1_5FNk%`d&huKd*PD20~s3G>M@e%}SAqLW6CbikFmHw_@ zFs=3iM^EF_$Uv3#OFG{5<>wg9?H@e92d53$690NtY=jCHVn10>+n$7hfLR8$7td>e zO)gs=c-SbFJumaBXxZtNhrJGaZG3P>MdQ##S&znvPy8d;duo~8j7u0B{^vGVGzbF?WUdlpS6N3H-^OxESiUC>;29d+#1vKz7)db7^MoR=lW46xiip&-ysV9Qmrg*cTwOu3NP3^;Cw0M=e!3UG3R|5fg6EfL%;VU!QE>In(+toTx$OM7xc z6SqDt`XRO3{;=iaOgGP!m%14n&V-p_m;XJ~ic$oWc$J-%MSxxDmzbeUXKM-n`Kxm$ zu5F;9y9^SvVKdr<7$(mG0chLU1F-W318f5YAw?|sq=y;6ODWTlCmrP#F+W6Km)_RC zxVv`YHA*tYEF>Qe)@TyoV-{%nhz(Uy}27EgRC8X7&<4#8eZ zLY$%3z# zjwpZ})vHLr5|GV<{+`V{&w5#a=FHYY{N?8$!RmN=HXgB11GaXM3T*8*U~7@_nQ=@C zoaXw42xq{T4kDJbwHK5d|ItQ&V=;~_<}&MO%Xe}N5;P?`QR^okQ{b_1&0M|y_epn) zx75oOFUM(LGu7~a`Bng6pZ}zBbAX+*;Cj`XzCO3Q_AexpOTQHC)2uhXZ%|){lXGA% zIufw1X45-Uv3u`mQx^YM#cE7533G$k({dzKvCvL*gs`;a6rLaTxp0E@@4HHxv%c*= zqaNp(pu$eMN>5a1oq>47UD~ONYO_a|)n$1SSHou`e6VKRb4pg&>7#B*zEe7K5PqmBtd;D^2zmzR3-xY1ogqK1B9fB10; zekCTIHBINt5f&Q<2yvADiv@z@-b~2-zhRBg3W(9on$DqsT0-|@&XmBUkz7EAy>-yM zmH~<&3q;B@pB{b!3JDNSvt^YM)Z-fqS~65Kqr4zSfhYyhBSu$mi&#IPc^i}t$!j2I zR;jZVkBnTiW@s+%+GHoV;6$z={awt$31W262~GNA9#SLdh-rg< zX?FPk0_A$C$3V=EN9+V*_UjR7CdjsZN<}QFm=lR(C%EoQpJ5qAfLoVVLCyOn=o8z! zAYNP)h^T8>5c>&rCJjm@AVI))B9o9i9o}W299BMnN9A?cVpq|~f!mJmOe0DxrunAx z*X?6G$K1;Cn_H114iB?_Yu%VqS8O5o-a-2t{Z1=lnSkwOK7e{uKhb9@_tJ{#|27PZ z0vM1{6(tV))RB;lq197MP-{5rChg?x{ExfkulE#tYIK%Xt2&Ke;_i|#m3m@pJ#775 zcb?9*n^5D+)N-EMo}_z`<94-pZazp(cztr^gryMon8xY&J3_0VAZyFfykfSAAdL=! z<*{d9U(*wbFQJKYu222mu#o}kL=W3QZamnnQM9*#&gSd36eL+rq_k|^J?s*E)JG(! z(G?W|Ht0juk_b6u&EQlIkHv0fOi6~>ZnLxF>iUUuDEPiZlIiJVl~OUH9>bw!hPO_e zj=Kk<`jF*T75kJKMLVuoDg8$?*Pg}gQDpAmT3!XBwlI}5i4s3{L$T{*hT;@--X!snw- z=b*ptO#cVsdkpZYfCwaC1nPb~KoFQTkv~I|E(`ruTrJRV1$>tMLmEft?{t5Qk7Z5U zqk1548Kz(v`H&WXYr#acKxeQ~5H(7ir}&o6FEns21^L|OEmo^RR2}{qnrX>9*otbj zg69?hXxF@zH6NH$1@4U{6NlIH$h?*QME-Ad#ljg!wgIXEq-V+Rg50QOh#fBiA=3~U z18GF3HY;2+PGdIqpl?@uuVVZv?K?-m@@3C61OOTR`&Lr`q5fMHtA8P!bdb1a zLx=$rRj|Os>EL`)uLQTC6ZGX_y9}fZVz<6^Ud6Q3&kol9Id^}z!&`@a!!e7-$P_Bb zQz5#OIqWA}XDRI8NVVyrOt5_{$k;&Udr zdYb@P4|Xa-!@&*75^T0D5BLqS|`1Cy9L9Bfh~%!GRa0C6yVr9dS?T znSslbHff2nCq;BDnV-q90}augoy-L2m5Znh5aP(i=U;I80(1^@y}mPBibf?vSG_WR z{@bn>-Zc|(R^;DF;Y4;33wD_Tph-dvHmqey(0w(?wdLk}QU~ffi}u;J9c;HgTUJ~n zx#`50%C#B8gXws`G5TN1P+X7R?f*v3IOWnAf1Xz@5e_DxifYzy*X?^_Uv*&9n2$Be zE2Y_=b&lCS*%I+_503Vpg{&h?8gOlRHG=1s-h4aM=hchcI&4i=Q>nwbzRiIm${PbF z^ZJx^0)KF}UluSzt;t>7lw{OD203$m^5 zzs#j9ec4dTviGtNZNx^*8a`cpSQ&_H5JTm2IU}f|4v!4=cnwhMG=ghgcT}w`?)3f~ zVR_A{>0%_`OY`iOxHZ#z45yimp!iEgRg3u>q8P-|f*1gb=n2#kTHQ9E!|;KbS!35D zrP2vKr=`k@-Coi&B`W4l9NQEgO@8E>pY%P)yWz&Pf?J~IYWCTC*Hf@kqy{AQXx-3> zTKhN!5Bv9&b7~qOu%43+s~4zeIQ5`C;LBaCDYH~2C6{1Jq9>-Mj2ELa;OAeUM}wuLgQP5WN=Q=>m_&6x3LbKyfkpoU+dXt*iR_Qm?s0~(+}P{TNix@JM^>Ow&dIG`VoPMYuo{XAAjoavi^kNF z(UN{g-gAU1x6>r&q4L%*88Mqby!u5079j@2#f+EaVgpp(j#mt#Pk%}rwIq=8Ytn7U zi>eYQog?wJ6UB|er(xqkg$?XyaINUsJTuWGfh>~CP7b_6l}2sgud}~rwG)<~3=KcU zJhRR~f+ShzVRPn?n6^lRoe?te2bVAD6FD?1U3hby`NA2Qp?FkvGheG-&IVN8oVn{J zw%^T-w0Pc#!p}%`bl96YabO_zbY%D}uL60J{$=^$V+p%^H{G)}3>?*+B7=5VRIZT& zDv&ljhza>nFB9Y}Z3ZGuj&QGIS`}5?4cm3DUI@?&$T6ChRXXanLrcr-#E5boYoSeQ zEuof#Y{1vjrBGw!Hdp5e+*uGG(%7jt0;9ig&9HAPv2gonyXZ_EY?w0*Dxy?$xf&bP zc?)@zSY8?u#O-J>=jAO;4Sjgq!ab&K`=^fzh9}l##!APk4^)9LJ+YI{zDb=q4QWE~ z?N9VMe>>C`z*5ooAmj^1eu9wiM=HquxDp490+F>o0ySzQ71cQxh`BO*0Scrd8^tCj zfrAKz1C!Appa?{6S+pf(u;bU*UdC|Ry?>0QP%SKmNyj;`AUnq^-MLs_p5e%SW=$VjUejyXdAt6OV_ z>ik&n?$&t|B87mEPO{L_XB|#JEh^}2s_Mhsz{j;Pe$c!zXmNAW{Mw9b%Ev`g9cf0b zVKfY{3pN*kn7Ekh=kqPmvln*w@$a^6JzKHO{Ci9>^d~9+7%y80F${^LUoe0wITm@) zbl2Npo-A1Hz7Xe0M%EcjdT;QisjY*pnEY!KAx`h)zYs$ZegEe{AkMZ0vQ{QS>`4luGx5Br1y&o}Bolqf zd~L=ZTWEBRJ1vpU{s|##8{>Yxnvu5Qg(0Iq-7;m`5Xg4J*?Sc_`^E0fJR$$JwU6+@ zxw-)ZuR&gTWCLMRmoV`P*5!!RYbbeS{8rhyb2ho;wz;IWbk&FP*I(y-zDCqn_gsCo znw}QUH{pQJtR6s~L}UssucfPEa#%yQd1KrgxBGp5m_}ztL$CVk>E?mW8x5CzdwW>^ z?3Oa-0na}Wik+cg{~SXOkJ&UP;af1Yx_*;E!t{3gPXn^ zU!WfpVoy)jdcIRp5rDh?33l=VQT1fL2G$OhgWA}^DYnT(0o*`dfxHY<8#DPdChM1# zb-b^p{igO${rsd&OYPKN23H%Q0BhH6VZrY7`OT7a)Bpu3iWUj)R#XlAvZSuKG;4Z< zr%-u_lX?e~D=+hFzpPWy!H9E%?N#!}?#e04_Pk)wI$C2`@NX<+1FNnz_NzQXVN-fE zfADuQQ4{Y+V@kF4y<3kB^oGeDdeA)^oqcx8txcjn*UViExMWNkfXkR3B)9&<<5BAK z{-HLtlWjy)CyH>yHn^4?>&`@N^uR`1fN5F|pmxndYzoFCv;{Be>}zD$nTF^vYn?0x z#U|tU#w2#D^!L{j;YRTVI#)_6Kk3a}`(SSK^5b`xyqD%8sJDuKJ@bCrk-cHk>c0i4t-iB82a?At-k8i zATDj8`)_#*#5fCb%yppI8m7auLfpo6|6-F01jN_{lgzS1Z^W@MB}@|xCd6Hgq@ikK zfDQ4Ehw?Ibo8L&iSf_=_Z^J(l!Kj5l`*^*GI5(I_7CeeL0P76WV_Dm|C!+Q4f1kJc zYJDc)ec2fjVQOV)YWdEM0n;xUCe)X2pAzDL`O#KF75p&?Nw~uqVemDv4;e^nZTP{; zwW-kK#(@C+cRM51H+_UB-n_ojo%mx_0Am-5e6(JS?*k>Y1+kC-!V`|@+9Ox^Uf9QW z#K4wWYE$5=l#XQYuHx@(OU>UrS^O$9W9ZySw?Hg z!P{UgQrmY&$NhM)>&I`~O;--mw7RN*P537*kE3&z9xH~OHz4C3$eeSW<4ZVRDH>>9MvaY zCeIwO1SUDQ1;X^{t0DGJiU#lrWY~$2kaa|v`!M5CE1@yK?5m{ouJyO~@zoA3Ny?K? zxn|gr_FZ?{4U@jHFo?0xQAFzpV(vV-hyD~y$^BzQ2ePZvfaN$WQ_vjM0DaWJ95)k7t^=0{_4GdJH(RV|mEpI(+Vwa})4^WffcQm$4Gf z%{*#NiB&3C2r>@d)r?sL)a?wiZpSV>?-$P$jE8y*gE?40wtv}j`!9r%p36ckX0{XA z&&w}}XTYsC{ng{SSLyM((<1_cfYP36`G#r`xF?7VT8WAY)3-p|-Y-54`o8Tk^B4V} z3#|=u>{Th(z65AJi+oHU72+nMu0y~)zLZ zVZkJWxE^;fGBOrR6T}#8z)ni+SbBKB)T{#aZ%--S@uWx!B$dqAtW` zLx|W6?T6N%EAP+v_4GwnOAx*rBp)`;F2DTi=`Q;&Gb3qoZC1JAO9P3A4q6+xw~Cl5 zg1A;HpRW&nDhm?2ww#khS?+Fn+g zIbd$}yk4>{X;=D_^BF0Rw#7w(c<fljw#(%!I7ED8+Xl2q6w9u47aGjsz}EM-;ghy1!^ztp@h zlT%!yy~IK6T2MW-n^h_{@rrMFDCz@2)}RRTAuqPsYPF>E>-zg}YWmAf#n8sk2Cy*WH`)jauIig7cNM%S^#7C2JpQBVM@+bNQO}|eeZlQ0P3TVn6Y^5^s{YVsK72lF+qKIZ5;HacE;!_gAgb{f)1W@yWF z)8awJW+SN969g+DF%S>FeF5Ikt%U+x5xrJaK@yYjgfkqGRs2JU5cgZ>n{9bv>3ZjD zSdQ@9(v;+j8gF>t>j!?{mH5M3EnLoeLbn2(?Joe-|9#C7IPnq|7)b)D!3m&KOGLQD zYQiN*cE$}a<=bnU9qi*1$+_ruQ|rQ0t#r~?`}{@1Dc8W0%^kH}Kpu_CA*G*qU?^~t3+Mm#%v_Cn+KB@w`L{JFAq46x+? zO=-Zz46F}Q3{9C48lcwo7?is8b$|ZEq=7-YUgHW%jh$yu6I>RCLq|dhT|huOigcwT z3B4y2X%VCeh9D9G(m`N_h*Csp(tD9A1Qd{_6s1cQgiwXhizIXwzunoL_0PBW&YYQZ zXWn<_%$)P*-kIl8!&5#_6_{-Ha^Tg3>3Km}P@{(JM1e6Nk4?a?Z>|J4Ul{pFscQSt z&csPr1y=wGMWT?UMrDP~EBMQRgN&|YhU7Yh!I^q~O8sJ$)Cip=8h_gX3i(pO_M_EY z3+$Q>#{V`lfQ2w<=kuC{g@yl-m=H4Uxfl+)G=$F8GqCogmfGiCmJNjzNAj=uUJs_I zyOKeb%IcLm@$O-^q8PO`!#C;$Gt#_Di581fhEDu6#`7w-tw-A)CHU~xn9cpj*Iryy zg%!Elps0Muj&hYrNNcZFo>3VVrs8@oj zkDt8hi_a^^g3nrR<*Lm`e0dKbB=VPAol>cY3Lu6iSGp}|>XaY18pr!H2Sr2{HMV87 zEIQM-78KNjce)2mIR&9WrW_8o;vyPUfio<%GH*LM3P%1Gy^>slZe6kqf9xP@;a98& zlwcQhWn3mY=eC;3f@R!~*b+&lx^4M3kL#ig0TD3PY@@XqK6{ca)OIWVsX39+yoQyf zfW9@yYL9H}q=d!>DfW&vZiAUfW$P}!IdRzk!QP9@U!5JZf)}M+6M8r=mEN^CXDV{= z!+u%9fYEP^r;|s6p&^*;BqBU0cy#H?=i%iMu9KDZxWWdvuoI4eR@ zh@l=z=Qmw>qxGO<&(b=;@Qh&Oz<~BUzeI}CPZa$7z{<;G&acZ1tbYa+>$wdNQ@OHK z1mn+Rq>%=076d~p#l?0<)EziPj@iKI@~<|*0mwv-G25)56FF^eJnP9ox{9u-u-x5# z2etaXnc-%I`ya=})vA}FWS3?+g#m#zmNz;wpFWlKpVQS-LV6Rf5{;79UK(eKjW4|t zp~ME8!_Ged5z7zL66N(Kye3m>&Q9oH%;N3j09|S2!MVErP!B$@9&*j0=cL9vT2*v@ zzTXuvER`U8c}M6%JGey4ichC3>~d79ltDob<)oQBu}a`0uY%t0Z4w1#W+7`Q$dpT+ zd(%<(DvgZe*LK0vLl;mAPR;lp69jx?b~n;LwW)EX-+A1!^1ZSF+P&6CRr1DU^_O5v z+(ttH&CIPHoec%5CLk+@qrIRmDc_7++V-zS|hq5xfvHBriDdwQZjv2zlwfcS% zxN8qPk!?DDfNfaHy@>Y{Eng>yRXD72nlTW4InxWYXu~lU`K{fU8WpII)+W?GKXThE zT#RN_i@3NS3es+xqfLodSU`p7m_2PcV*~!Yagdo6iX&PklIv11es5hP#!Kz&pWJbv zXnNkQKuZT=(jZl*qOW2SK_uBUXCn3c>*IDTYKxbI)w}}Zh_+a-kCSsi-un6{RG-z? z>sx8x!8$DL$lYNYvBH=;xxeQGftSZ#h@!tzE#B67)?KP==bc}#rY0)YgLAKZ z31VMXo=wGiG)5mH&_8Q8G1G&Z=UtM^4{$a9ZvjHXe2-;N97E4NQzc@{I|Ei!?^(9T zV2uxKdt)?XFFqb^ofq(!mZQlkOdwu~3rcd##V(DZ1_iC+bPQenRe>AWFlT2~YI^F= z3)#B{Ph}aY%w=%CO`u(+Z>Jk+Dm$GSWEyGQTp=;(NtcGdKxl=Nfv7>l8Qht_J`~m= zv&nB8BatyM*k1K%YgjUUH6&EuQ2pe%e>=!U!~VozoNct~MNF2Q;$E*Eg4wSDt0-dD z^f0_<3a`bI?Vmym8cG>;uyKEtLR~;oJb;|v&$t;IiF%IaPzafQ(&G&=O~%KYnT5@l zh$B)bS6$Z;befvHao3A?LYP%V-fbZ(v^o!d7As?#5|DOXBFpe&m9W^O^7rTyn@WOp zL@#Kl#x$*V%pK>_C`&pK_=S}I&Q-0fVG?cdm}+C&RcV?5A3eW-)$~Y9WKxGnd3YwD z?=lPv2lCnc`CM5es#a(Nx(@cuZPq{&%QmtG1_*a)wbSt8bk{bq z^NZ?tDn8s&o^9vG2o^U^r~I+ZHYT=t)u7SE=&sm%Xi9s9jzp77KU=mN>cng!aODHA z)RPsOlO#NX>OpWHU-2>dMe{;sBKIS&)zMDl;38ripV z2AD_z0CzF~fd6ly8c0uXw9u=Mal>Fx2XAg$IX>a_oRUZZ^jevfdHSUW>g31xJb`O^ zh#^fNx79V+UExi`uRwElrJ&q7hIx7Iu>fC}nZUhj!tT<>+JVv0BBA7$rRiJE*jpyT z_neHZu_{j|SIYHSRT2sIKi8jaV*a7O4-cC`E3M?~EHw;~8fIU{$<|7&+DpK8A+L`v zwQpfb2?E8O9o(p%<-C;~kM9*X!Ph#}z>@jz(qEOZ*wn;<%{^(ZmzCs^1r9~uy}e9F z%K-g)$kK=Mhjg69atmAr3DnncH$RMcaET%#DhfdMJ3d618@#b@~Ql|;yd)t8rGM?xW-tFmD zv6WTY+mQYCk&6fWt1_jTj>-Y+DcxjZn;VoJAVaO@*LG&{LP2S+UH(+^&Tf~adF%R? zxLK8dIqhnVGzxGIz8bB{muNJ4`(Ppz!NawKqJwdybfc)>JdM5fqC|%O-iyu` zd!)u1zH&Q^Gj9|hFTP>KnLN9%$f&w)JHcIE(zV&KDL5)pRi2p_Z=badXXm-ok8k^l z8j&n3JEs?G4j1Aigwk3OsFo&(HfQH82Q~SjFawf{4q^dN0;n%K2mt6Tau_SV0JZEH z{fkla*WrJH(<2WTgsX(heFyJ9g@3|rerql`Hy3N@!tUR~->92Eg@2-9{?hyvdNuz~ zP|Tl}e-6ffE%`8iXZd?fUp4{%0EExgkmwbIee(=C5MF=yhAkDPE!;u|rR2xPi620>ES#E$VUUFf5 z!1Ef*bvbd9sqi{3{YPxj`<@HU34PXdmS#d8O^sJPqD6fpbKb<@_gYNMW8pwDmib;6 zR%g@oU*TJHt<~)bwnbVe>v0e7J~*vadS!XcUFDm|$b{^*vJ$+k>l;}Y8jnHmvZUIH zX^I}O!L;BHL*3h5MfghJi2;iVd{K}TuIsnlO5~p4#S80W<&jB9%m#<^0zlW6!**!D fzxy5{qq-|{7QrX!*7h(mx&=2D=X%xoz+3pAuAf1k literal 0 HcmV?d00001 diff --git a/objects/RightBase6AxisEV3/target/target.jpg b/objects/RightBase6AxisEV3/target/target.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a38da46b3d039c7c4f73eebf8bc97182542f7fb GIT binary patch literal 39863 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 I|L>vy2Ofx#%m4rY literal 0 HcmV?d00001 diff --git a/objects/RightBase6AxisEV3/target/target.xml b/objects/RightBase6AxisEV3/target/target.xml new file mode 100644 index 0000000..1108b8c --- /dev/null +++ b/objects/RightBase6AxisEV3/target/target.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/objects/RightShoulder6AxisEV3/bird.png b/objects/RightShoulder6AxisEV3/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/RightShoulder6AxisEV3/index.html b/objects/RightShoulder6AxisEV3/index.html new file mode 100644 index 0000000..8c6238c --- /dev/null +++ b/objects/RightShoulder6AxisEV3/index.html @@ -0,0 +1,130 @@ + + + + + EV3 + + + + + +

    1svti}b^Ku%6-aVHGtD`? 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

    hE;YAwnxpbG-IkQL1h2MX?s}6?*j3sq zt5I(wyZ)*QX=&!1)~bpT?n*XG*ON8no&2tJ9_0qDS&+MT_H8iFezyoGIo^l%{bjqP>B}X`=QweBku_2IkHUs?B-ouH8Ue(FMB@ zEAGc&kDxd>AZ&QK4(R>><|6W{jbscwgUPNbUZ7}zM{0xSzkx7+D1HLB>-rX1Lgd7Zfh?Q@vW3BL0jC`robdP zw%}GIHna6l3l-mi!0@oV9>%(qh5qC=Oa!(wn7ZSv#lw}q1qk6*<4V~p4hEZ(s=VH; zwSt5=OK1HDS!g$VsbUhF(>rbpGccCDe}}_nso&{%1CrslV=cNblkMMOoZ{gB7g?YE AXaE2J literal 0 HcmV?d00001 diff --git a/objects/RightShoulder6AxisEV3/target/target.jpg b/objects/RightShoulder6AxisEV3/target/target.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33eb318dde4ee53b896be2caca26a96c484a541d GIT binary patch literal 20777 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 literal 0 HcmV?d00001 diff --git a/objects/RightShoulder6AxisEV3/target/target.xml b/objects/RightShoulder6AxisEV3/target/target.xml new file mode 100644 index 0000000..860f7ca --- /dev/null +++ b/objects/RightShoulder6AxisEV3/target/target.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/objects/RightUpperTilt6AxisEV3/bird.png b/objects/RightUpperTilt6AxisEV3/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/RightUpperTilt6AxisEV3/index.html b/objects/RightUpperTilt6AxisEV3/index.html new file mode 100644 index 0000000..d6810d7 --- /dev/null +++ b/objects/RightUpperTilt6AxisEV3/index.html @@ -0,0 +1,138 @@ + + + + +EV3 + + + + + + +

    + +
    + + + \ No newline at end of file diff --git a/objects/RightUpperTilt6AxisEV3/object.json b/objects/RightUpperTilt6AxisEV3/object.json new file mode 100644 index 0000000..355fb86 --- /dev/null +++ b/objects/RightUpperTilt6AxisEV3/object.json @@ -0,0 +1,268 @@ +{ + "objectId": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "name": "RightUpperTilt6AxisEV3", + "ip": "192.168.1.21", + "version": "1.7.0", + "protocol": "R1", + "tcs": null, + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "1N91vo3l": { + "objectA": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "RightUpperTilt6AxisEV3SEc0z3n53s8kyaw_ur", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm", + "logicA": false, + "logicB": false, + "namesA": [ + "RightUpperTilt6AxisEV3", + "yaw_ur" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "kickback arm" + ], + "loop": false + }, + "HNV3ltr5": { + "objectA": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kUpper Tilt", + "logicA": false, + "logicB": false, + "namesA": [ + "RightUpperTilt6AxisEV3", + "kickback arm" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "Upper Tilt" + ], + "loop": false + }, + "G9Lhhq9d": { + "objectA": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "RightUpperTilt6AxisEV3SEc0z3n53s8kHorizontal Touch_ur", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm + shoulder", + "logicA": false, + "logicB": false, + "namesA": [ + "RightUpperTilt6AxisEV3", + "Horizontal Touch_ur" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "kickback arm + shoulder" + ], + "loop": false + }, + "Pa8a3l01": { + "objectA": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm + shoulder", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kArm + Shoulder", + "logicA": false, + "logicB": false, + "namesA": [ + "RightUpperTilt6AxisEV3", + "kickback arm + shoulder" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "Arm + Shoulder" + ], + "loop": false + }, + "dLNLe3ux": { + "objectA": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "RightUpperTilt6AxisEV3SEc0z3n53s8kpitch_ur", + "nodeB": "RightBase6AxisEV3V78ogdk6csbeBase Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "RightUpperTilt6AxisEV3", + "pitch_ur" + ], + "namesB": [ + "RightBase6AxisEV3", + "Base Rotation" + ], + "loop": false + } + }, + "nodes": { + "RightUpperTilt6AxisEV3SEc0z3n53s8kyaw_ur": { + "name": "yaw_ur", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -215.9151544441786, + "y": -238.5340853047328, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightUpperTilt6AxisEV3SEc0z3n53s8kHorizontal Touch_ur": { + "name": "Horizontal Touch_ur", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 0.9060758220641674, + "y": 228.96103898169895, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightUpperTilt6AxisEV3SEc0z3n53s8kpitch_ur": { + "name": "pitch_ur", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 237.03606980428071, + "y": -248.83487882365807, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightUpperTilt6AxisEV3SEc0z3n53s8kUpper Tilt": { + "name": "Upper Tilt", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 10.968422144942451, + "y": -242.12576298051863, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightUpperTilt6AxisEV3SEc0z3n53s8kArm + Shoulder": { + "name": "Arm + Shoulder", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 3.8800656703056795, + "y": -5.857709178559162, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm": { + "name": "kickback arm", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 234.66231564725035, + "y": -13.753471714702755, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm + shoulder": { + "name": "kickback arm + shoulder", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 225.7385301214997, + "y": 238.7631017196327, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/RightUpperTilt6AxisEV3/target/target.dat b/objects/RightUpperTilt6AxisEV3/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..30435a99cf0aa4084fa428ec31156d684ae4cddd GIT binary patch literal 41722 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 literal 0 HcmV?d00001 diff --git a/objects/RightUpperTilt6AxisEV3/target/target.xml b/objects/RightUpperTilt6AxisEV3/target/target.xml new file mode 100644 index 0000000..b492adf --- /dev/null +++ b/objects/RightUpperTilt6AxisEV3/target/target.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/objects/TopForearm6AxisEV3/bird.png b/objects/TopForearm6AxisEV3/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/TopForearm6AxisEV3/index.html b/objects/TopForearm6AxisEV3/index.html new file mode 100644 index 0000000..a2e836c --- /dev/null +++ b/objects/TopForearm6AxisEV3/index.html @@ -0,0 +1,174 @@ + + + + +EV3 + + + + + +
    + +
    + + + \ No newline at end of file diff --git a/objects/TopForearm6AxisEV3/object.json b/objects/TopForearm6AxisEV3/object.json new file mode 100644 index 0000000..2a50ab3 --- /dev/null +++ b/objects/TopForearm6AxisEV3/object.json @@ -0,0 +1,205 @@ +{ + "objectId": "TopForearm6AxisEV3Zg1zey40sedb", + "name": "TopForearm6AxisEV3", + "ip": "192.168.1.21", + "version": "1.7.0", + "protocol": "R1", + "tcs": null, + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "cwW2lhvt": { + "objectA": "TopForearm6AxisEV3Zg1zey40sedb", + "objectB": "TopForearm6AxisEV3Zg1zey40sedb", + "nodeA": "TopForearm6AxisEV3Zg1zey40sedbpitch_ft", + "nodeB": "TopForearm6AxisEV3Zg1zey40sedbForearm Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "TopForearm6AxisEV3", + "pitch_ft" + ], + "namesB": [ + "TopForearm6AxisEV3", + "Forearm Rotation" + ], + "loop": false + }, + "6tg4mdc9": { + "objectA": "TopForearm6AxisEV3Zg1zey40sedb", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "TopForearm6AxisEV3Zg1zey40sedbHorizontal Touch_ft", + "nodeB": "RightBase6AxisEV3V78ogdk6csbeBase Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "TopForearm6AxisEV3", + "Horizontal Touch_ft" + ], + "namesB": [ + "RightBase6AxisEV3", + "Base Rotation" + ], + "loop": false + }, + "Z8E2q7mx": { + "objectA": "TopForearm6AxisEV3Zg1zey40sedb", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "TopForearm6AxisEV3Zg1zey40sedbHeight Tracking_ft", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm + shoulder", + "logicA": false, + "logicB": false, + "namesA": [ + "TopForearm6AxisEV3", + "Height Tracking_ft" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "kickback arm + shoulder" + ], + "loop": false + }, + "qqekjkm9": { + "objectA": "TopForearm6AxisEV3Zg1zey40sedb", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "TopForearm6AxisEV3Zg1zey40sedbVertical Touch_ft", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm", + "logicA": false, + "logicB": false, + "namesA": [ + "TopForearm6AxisEV3", + "Vertical Touch_ft" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "kickback arm" + ], + "loop": false + } + }, + "nodes": { + "TopForearm6AxisEV3Zg1zey40sedbVertical Touch_ft": { + "name": "Vertical Touch_ft", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 214.08931154948823, + "y": -222.48640425469776, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "TopForearm6AxisEV3Zg1zey40sedbHorizontal Touch_ft": { + "name": "Horizontal Touch_ft", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 217.2911131724809, + "y": 7.051890307712743, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "TopForearm6AxisEV3Zg1zey40sedbpitch_ft": { + "name": "pitch_ft", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -267.15985765170717, + "y": -36.419472009315285, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "TopForearm6AxisEV3Zg1zey40sedbHeight Tracking_ft": { + "name": "Height Tracking_ft", + "item": [ + { + "number": 0.5, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -267.8587811071443, + "y": -258.374723705767, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "TopForearm6AxisEV3Zg1zey40sedbForearm Rotation": { + "name": "Forearm Rotation", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -10.489539590570075, + "y": -5.555897214325782, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/TopForearm6AxisEV3/target/target.dat b/objects/TopForearm6AxisEV3/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..daf93392c6baf4580e90478065baac244035a9ae GIT binary patch literal 28657 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
    gP39jf|Uz7*IpSO(6%~3r;RZT2@f;(>; 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 M^#t$wFzdtq2RDENjQ{`u literal 0 HcmV?d00001 diff --git a/objects/TopForearm6AxisEV3/target/target.jpg b/objects/TopForearm6AxisEV3/target/target.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c46d887d757a641b77a86c4c900b5792fb079766 GIT binary patch literal 21363 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 xkN6l0A$u5*Sc6Iub&-{ + + + + + diff --git a/objects/TopUpperTilt6AxisEV3/bird.png b/objects/TopUpperTilt6AxisEV3/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/TopUpperTilt6AxisEV3/index.html b/objects/TopUpperTilt6AxisEV3/index.html new file mode 100644 index 0000000..d2d7c7f --- /dev/null +++ b/objects/TopUpperTilt6AxisEV3/index.html @@ -0,0 +1,140 @@ + + + + +EV3 + + + + + + +
    + +
    + + + \ No newline at end of file diff --git a/objects/TopUpperTilt6AxisEV3/object.json b/objects/TopUpperTilt6AxisEV3/object.json new file mode 100644 index 0000000..ee0e2c3 --- /dev/null +++ b/objects/TopUpperTilt6AxisEV3/object.json @@ -0,0 +1,142 @@ +{ + "objectId": "TopUpperTilt6AxisEV36pb1j09z64s3", + "name": "TopUpperTilt6AxisEV3", + "ip": "192.168.1.21", + "version": "1.7.0", + "protocol": "R1", + "tcs": null, + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "qZD3eh3d": { + "objectA": "TopUpperTilt6AxisEV36pb1j09z64s3", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "TopUpperTilt6AxisEV36pb1j09z64s3Vertical Touch_ut", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm + shoulder", + "logicA": false, + "logicB": false, + "namesA": [ + "TopUpperTilt6AxisEV3", + "Vertical Touch_ut" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "kickback arm + shoulder" + ], + "loop": false + }, + "bxP1zwvl": { + "objectA": "TopUpperTilt6AxisEV36pb1j09z64s3", + "objectB": "RightUpperTilt6AxisEV3SEc0z3n53s8k", + "nodeA": "TopUpperTilt6AxisEV36pb1j09z64s3roll_ut", + "nodeB": "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm", + "logicA": false, + "logicB": false, + "namesA": [ + "TopUpperTilt6AxisEV3", + "roll_ut" + ], + "namesB": [ + "RightUpperTilt6AxisEV3", + "kickback arm" + ], + "loop": false + }, + "1sa3ehv5": { + "objectA": "TopUpperTilt6AxisEV36pb1j09z64s3", + "objectB": "RightBase6AxisEV3V78ogdk6csbe", + "nodeA": "TopUpperTilt6AxisEV36pb1j09z64s3yaw_ut", + "nodeB": "RightBase6AxisEV3V78ogdk6csbeBase Rotation", + "logicA": false, + "logicB": false, + "namesA": [ + "TopUpperTilt6AxisEV3", + "yaw_ut" + ], + "namesB": [ + "RightBase6AxisEV3", + "Base Rotation" + ], + "loop": false + } + }, + "nodes": { + "TopUpperTilt6AxisEV36pb1j09z64s3yaw_ut": { + "name": "yaw_ut", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -121.45466428718055, + "y": -108.99713154912843, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "TopUpperTilt6AxisEV36pb1j09z64s3Vertical Touch_ut": { + "name": "Vertical Touch_ut", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -9.831676944647825, + "y": 120.20207819455754, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "TopUpperTilt6AxisEV36pb1j09z64s3roll_ut": { + "name": "roll_ut", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 109.603623873566, + "y": -112.51306105483991, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/TopUpperTilt6AxisEV3/target/target.dat b/objects/TopUpperTilt6AxisEV3/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..457ec76b8d29e8f16cd76dd8a37bfb04907c50ae GIT binary patch literal 38960 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 + + + + + diff --git a/objects/obj45/bird.png b/objects/obj45/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/obj45/index.html b/objects/obj45/index.html new file mode 100644 index 0000000..ad47e7c --- /dev/null +++ b/objects/obj45/index.html @@ -0,0 +1,75 @@ + + + + + Slider + + + + + + + diff --git a/objects/obj45/object.json b/objects/obj45/object.json new file mode 100644 index 0000000..c65e355 --- /dev/null +++ b/objects/obj45/object.json @@ -0,0 +1,148 @@ +{ + "objectId": "obj45y4gk159d097q", + "name": "obj45", + "ip": "10.0.1.3", + "version": "1.7.0", + "protocol": "R1", + "tcs": "bsyBi", + "x": 6.540397205447789, + "y": 14.340756814513725, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "Lx61hs1n": { + "objectA": "obj45y4gk159d097q", + "objectB": "obj45y4gk159d097q", + "nodeA": "obj45y4gk159d097qtwo", + "nodeB": "obj45y4gk159d097qhans", + "logicA": false, + "logicB": false, + "namesA": [ + "obj45", + "two" + ], + "namesB": [ + "obj45", + "hans" + ], + "loop": false + }, + "ubwV6esr": { + "objectA": "obj45y4gk159d097q", + "objectB": "obj45y4gk159d097q", + "nodeA": "obj45y4gk159d097qhans", + "nodeB": "obj45y4gk159d097qfour", + "logicA": false, + "logicB": false, + "namesA": [ + "obj45", + "hans" + ], + "namesB": [ + "obj45", + "four" + ], + "loop": false + } + }, + "nodes": { + "obj45y4gk159d097qone": { + "name": "one", + "item": [ + { + "number": 0.7625527987256646, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 181.90691087361097, + "y": -174.9234043863276, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "obj45y4gk159d097qtwo": { + "name": "two", + "item": [ + { + "number": 0.34509803921568627, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -85.39778523068719, + "y": -154.2941278777979, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "obj45y4gk159d097qfour": { + "name": "four", + "item": [ + { + "number": 0.4060750659555197, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 160.27729563974503, + "y": 114.26779778126337, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "obj45y4gk159d097qhans": { + "name": "hans", + "item": [ + { + "number": 0.5999659078661352, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -127.14244987853397, + "y": 112.38326602382978, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/obj45/target/target.dat b/objects/obj45/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..0c508c7470e934b8eaca09a90ee88907096ae27e GIT binary patch literal 68842 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
    F(?Txf(gGgSF@HehOLT!V@L79ds3a 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"=PRy$*H-M-jVsNeCFtlfxdCbO38-uugP* zDMjF0+Xo;vl;zK@gYbAbd{kU1PU}YuBh8nl+7ce%SbcFs&t? z`yyhR=ZnwlFWfYKnmqQ($Pu869{~X{16M~IE)`po6Nfd|56wwU<5%)z@*U@KOG1(& z{c9AS9nRy{F2LpYd+i-PVb!!_GLw zc!gn4D`BpZIT|*zpPFwttW9j&EJF6z%W13*v#1_pL%fO#Y?flGEAr{RQq`z7;N`9E zK(2YwUzb8p9Um8i#X+Q_1Ot^`Q3Mtu(FD?wA|xW2Y%4-SPjhR8Vg~dVRBYChQleLT zQBmTa!b>|`+{CS|n&X&~23}$Lr3&_5D+(9-R5$Bc$x3r#Cm&k8L2`j< zmt*~~IXrj$>vPpTuY!}?r)XARuIPQZvL-fYy-dg}Nt)KFvxH7Z4gMfU=$vmKe@-$X zMI+O;YrNj^T#fDfMx7JQMj_jarW9rqF~u;z$=0zM92{F1||V<$TQdq|G{$6d?&IT zTBdFzfYYHd^##gV?FHT(&?Z6x*Q2~mXx?caAOHcDQ4C_^#+$@y_UK=|^4sz;`5UHC z!5NmI4V&l!8w&TT5ej2G3Wv{4HvbmVt2>^-;9?n^G|RPNYpY@%Qa!^}^0tqk|4KE- zKd@k9Vaw^;69Ydxv;T|9fK^WZu!`v`_0QD08zLlswU;v%sLJ{Xr-+gxmSvoZ=6w;{>hOG59FZ7G65s7+N-;-AKWV|UE1EFHs3y%oM#eePi<8-XZl6r7 zr$S7S*QZ~f&g^<7 zLas~*Fxksh7M!J!MaY}w6rrr$J3SFnl+Ny?e1w2P23tc86Ct0ck+D#nFXu!^Q!Raf z+?`Ag0-%Zxr`A(n<-CRG&xjEG1xv_6#I67qwy1#F#cZJ;X#L61GcrAGNH@W!U_mTr9V zXSsn)>b}*>U&=jMaA9R~LtwkyVU!!le}aXi0a_C%0-Z0pFPdiMMz3F8ae4C6TTJ%| zgntH;rz)dm8L4Q4I;^@UO3Kn|oTJ;g_naqs`M`t+t@lFXosZdUEzI2=(?O>V!dY6n z34+!TvCVJ)yf@P%piGh+jW(O|$iiUo+cG(Z)fh3a;s!|-LC2Thp*6~y^ll!%CvUmb zQ{LQIsr5y*m6aV}x8nnO^xg$+RQ?2J6J5bu0WF5Tyl3pFn%zeW zw?FwIq-v3E=Utb0W!W22gr`a!?E7JY@W)Icihhoy8{m(EqvTlm%^6;NMJw22-U~b7 z(uYOdIf&L5NJFRZgEM{)H2vOyqf1ZGO!zV_fQ8?OimN`(IOn!iJ zjJXLy*~c_Y;s(E5gpBDr&TidPfpX_i3v*_4Yl@Jh4QTz0=;`#qk6Oa+{lqU!K8*qY zdBt4t@<1mH0(4)F?vTn+ra*?qV})mZd-s(ezlIF&!xZYrpk*(wLS$->o}_S-_?B4c zHn4?QrNFt-_4~_z{9J&^+tGGkW8}@5ZaPJ?!orB$J2IQI`PwS;9}vE%#U zlnsO}v?jfD;3GImiN{bv_)#lW&i1N4XPw1cJZEiPcXM^$Q)8Xed;mO+)U_hSpDvWG ziT5vedyXxrTytgKu<{OOlRlx7J$h=#`T32dKj<)l z^#|jJsm^~}7^LoR(MOR#R>eG8V6yfQ!VZgNe~B2jMfn3?L&63eiW+GHr9G?%3<($_ zKy-co*kCvnlz93O`SY}fTLx?1ncz_+%IO*=Eratz8W}u~1IfvM3nV%(atzVp&DH4p zFxcXAd|01ht54sXB0_c$0ZS?Z6#fxQI;#HxhXPFgz;il{t^#Ji%tHVo7y7uGcT9O| z^F`S5PdzCRB{eQVW-T*HMl=tTOeaC1$csOpKYco-iqOye4MRu*hB?N^ zJTj;!vuK_!n%Si%3})_#TeHOYrP3bbWh!l(O&fy7N+pxClY=PtpABCf4(6L*vuIu+ zLX55e0IXuHHS%pNL#Aj{BWm-H!s5Yht(%MQRvXx@H(M8sLhu3MZX;xuJ-5!_?a4Pq*b}U$Tov-yf&&6D$+d3OEyiN70NjRzNfmNRXHLQEL? zAS`(@JLGaa=iEBQKJhYAj#u}@gk1Z!ammwPI4+OwOyu9I!KhOqxr~If0mZ}aU=~_) zmOV6v6)}g})J-00WxonA>G?YtasJ{<=l29-k67KT2*zme!5w}SbR?&*fAn(t-2oL= z*g?j&Mzy&mb7mVn8Fo1O>dmE#ab`XZL|ZDy8F}{B?NV0$PS2Wq1+TJK+}k#uTtRJy~3MmD+4s!TvlQlDnEX0fZW{8E|?$qGI7b zeYDyY*vf1jEKePfDchT#TR*5{PaB5ws5K#(eEqk~(4)VlfIO(>51{zxwjwO@0RL2g z^iWtHl_XF~^;)#DYHn|)@A>l+_r`_fpZx3j7(-H3&CBYJC5wu((Us-1^&jegFmAk` zxq93MlSU;|@t&FpWQb;32D?_yNxsc~>x@Z;mWs=t-F*}}g=TDVJ6eHZ#I29gZOnRo zJF#*9mF}41w;ygj6Gd#d@(L5^qv6z6h3ozhRy?yy6KL}wc8k`ZRI(has~a=*@w{74 zFO0jpZkN!_pysb^UVQ71DEV;79j!~#D_KN(ftrcQ5tlI#32v}T!5bRwi`7j*nV=9 zM%s{g8xzdQ+eBz*bFT>CNHGnka%a#0a}?14cI!ATOuQH~_({}DkP4WO zdY3f`kSQ;kt1J|Q@8q7Nf_tvV;0Q`y$>b|&@oVBn50x_dWu{ZWiKVHzkhsE7#C8KH zHu-A{=5iB4vxt7ToP6B#Jr&Hx{nh#ACE}%}l)+7Hypz^c;@_Evy{M4lWcI9B@kFDO z_{b#VF3!3*-oROxiOJ-IEX`dmx4fQM{Q1PHe?WPC(e&o16hrmtIhTGj4Wk6SpVCVi z!XPDHuGIfm=g!R7Wl^`{Rr(c2c$0rH%zgjzB#j7fbyeFxmft0YeMal9kDl!B>*8Es zqVGjB<3^wOe6ZJfm-vEr-ci@h7!MkkCJt$FTEg#S(HlCf_I7JuPTYIAc*3!$`NTA@ zFdXmIPeIh^NFSb`EK3inQz*}(H!kfkK2TLEYg@OIpgv>LVYQQf#7m4hTxMwB{tPQ! zn%AL5ah-D??#2W^HDsya6qQ>QP*g8P$X=x{_3{EM4-Q50L&rk5RkO?PNm#h2e+>9y zI>87aZTeVNDQeRL4%+Uz50d=+K3jZ7a+5rZNJ|3_oSvtNaeC zt;DXSe+!T~um28K_Y>b@%J|^J8N^+;4kWr;dFrfIE9iWbFKfdiK=ND|w6+8(ty{OlXVzZ+8uxrMn zWm;9 zV=Ad|2sYmQ?Nvx0ee@n$&tZ<)kICPQFJ1LuA=gqXv3>Wxm)m8#{SX%Hw0|1LQr&-m z(VGkpo}CS^^Nj0`n_KLcO;#9uQ6^cubWKBZ(&CgHNvIvzSD^2~8Y{CAzxltXi2shA zyWLt(Fc7+~yjwlBD!n(N`-9f1BZGvq@?ioy#5v(`HX+ZM?ZFe(>9(oi?>5Q(GpZ~)}x z#06uuyNGH{qil!~HW2Ihc6Q8p=7Z~7`%eF1*LAiIx zMJAFt+$lF)ccAX#-B#oaX=4vdt}arq&B-hC=pc`8n|~m2>vabUOYtMu+=GLk4k-1M zet{rFJsz?JN9yoWYr+U?@-YRiiN;>RSq(%;Tsw*rA(tY$S#OIl^EsAS7TWK@vcZpa z4c10Td~}7f)}+7cz`0^zC?bT_%I=*;Klm!t!CPHz%W6s-!(V;zqaJl zIla`E&N?eUUmQbHQR>?#fbb8NrOcKlAfa4VLY9M{>n*QLTXwo1fH+OVC2EgF6P(P! zP_&87UL+hud-Wjx2OjYw&LbvZe>qqCL+MAS60L_NUIAxUx~Jfjy{ph0{ahHJ-0ubx zDuM~JbcKJ|-D0>x#IYp>Wh-OHbzX>&eU!n;9@L?35%M;~hgm2>1~n5CaE^axfXSxv z^kRdHdrQ}bRBJwt+iA;a81Ht*F_Zkctgw7wV(wnhHma$ja-RrDV9PC3F2H$SfU%h3{C7nvi)STMa_tK0j7Kc(2qSAld)4WX ze2%u_pzpJq*F!fVJ)DQl>s{SEG-4jikJAEEgn|FYrs;h(g$-_smg^%+4VHl4E1p$J z{nZpc`-DJDe*P3-NF{oy4iqI`d=?V&m%OE{iJQ~?paqhKQ~Jui?lx9cZmN!{Mm zeot&Hd1xsBv({)=NhafPeE8>Pi{|em1DM-c3F-wp)hNf4PsW1op$+)6l;4)ZNT!G? zok1tGEgT9Fe!1Fage||l^xoKtw~MD#FZwm?ymPs!N;J3W@Hy+w^3oP z@-EqKWV0 zRf~3tGK0?Do7(WfnU-Glq4Ut~y`h@(3|}sgmvn1){@9LyaA8zkqo%;4pB->$J3TCE zvTf2lvvY@}=2BY{%SgeDUEG8d2K4a97e9oa^mRYfCbebf@q0kP_4FyVQIK>$%T?T@ zYmzs18DC{Fwr$uwYjt#sI!4i5w_JU3kVwU|Nb5+98dwDiyyS6VLs;Oi;KM*0z z6YQ?L=HK6IElE8&=hGAJx<@XqlPvWg=uMw48?QMQQR>z(A@a5-EnqB7**>r3^B204 z@XkBTe>$Yi&nQ3MV>&iqoa;p6otlaY6!qsikD*b~t<%QBQRpaR1KMlp8HRVkzdfX;1@4DwHrOTRB zNf!rjZ)0~skasB&=Dif=y$H)<_wRB{<*tD6_&g?H52--K@(R28NF_QF4eBH8`_Y0^ zOPDxF=4HD#Niw}}F$}Bb%yzl<=;7X|+io-W8t$mg3hqA|Go2TDb+?D(`~{JczI5s4g#Gb8YjUSB3`7R2=KS z16?*pu)3E*(p-b(Eym{KMjQ1z&b zJJz4jU-541^+l^@#qEfRdD@?vxGyv#?ZAf{mHJPfJdAmump^VhdFy1mZIBbKDNMzh zsY5fJtI@r1qK)sP4NFlVWFqu@y1_|vUiHAD&vbZ5Bb{M_QER-M-Re+VX%#~x^U>Nq3)LHwtdfW zAPbXpLieKDJJgm&`taxS{?zC}egZaZ(9af3byNUP_qBph!vmyex?>=A$c9LuVM!V3 z8RY%RH-hiht~5FY47!$Q6+f=J^v?zFJ{%lprR({`9r6#Z^BVg8zcLM1<+ zraQx7EWx1;DW}&9NcP~fT&7T_))gbBA&m7uhBImYP794Q#ah{ZkmN`yABXg5TP4a> zb8e$UdIoVaoF+h>IuBCuWAL=n<_whhJi>lM|k)c$CQ0!rcR$KfUQ z>-jwscy0UuH#6`UVuq$~+soNk)%(Qq(fVVlCGtB-AXMV!t>(q4w|pOF^oGCpeWwyI~1{hfg-y38>iPkHkWJPIIMCx^hih1GQ-S=M>oU^ z$BUtG{85D5S4DUQv8%(iKZ6;MHZp%0xt&SSKe==Z&-Rk!wLKE=Eu0>0*ey$VzxY#5 zFpiyhXs@mln?E+4!27Z0|62|-zd3f}Iki7deRik2{A!lLuBN)^8~bx~DjO;fCZ~sg z9$2tEaM{vmBWsCzJo+}KVOcaR^lN1PqeKbLfXAw(c&v*1c$y#Orqk=hwA5PqyH)N7 z`5zQhAFUf}u1Mh8$KF=45I-W7;{S6=b81Fe{k?XHfM_rPuPL}LkuV0-n$&K>>J1ZHPgpjdopgRqFmgYBKAY2 zT)|xal}7e>foWxL_Bx?v`nlb6gOs*%#!L=u*SYeQ`h-Y)>InDAz#|scHT2OUpe~W2 z$Y+@~s`TR?k;CS1-CXv~zI#_Ce^#s<8#d7r0n~>yF6&yBFTRi`(9ddA zEWo*OKeefmI#AS;OwO6Mv&^h0#oCHt1;RdUlc}&C$Lrzje*pg$?Ztjid6A<9x~sEf zdGyV4SD|c~WM~M_@|nMC#k7jvC%qB4o+{iyWic4Y*&I_wqaiY}?lIdCMSJ_Q)1e*aw|p9b3EZ-c-;uz(l%^@m1(`k(ySJM@COIn@HXw^H5x z!&*ri-Q__Nc`e4N^(Z9ji}6I=T!cVM2U8pU87kwl{7gG;NOPu-L2i)u#+S#mC+S=m zxWoK^Gm#(m8(BnPZSxKJ?vPV&(mGUx7+WYTdJ0pUvT@wYSQE~(rZvX zdVE+>kR*1u+FprTEb$Gaaop;Dk;BJQ-|FfanZ(j^v&ER0H_Rx zxv7NT7!EVqer!0$MaPn9#r8hB1xs(IEDp|dlt?V`3S zQ7~~WT)_ZZBxbKP#7kldP+lx!Sn#@*z0T6R<#f6&vu)0Y+o!KAd@uIGR4Z|?f8m%} zk3dV;OZkUEkvB$zFsyy$iKA&NW+kI!eobkeW>w>BhE+=YVRa2V&jo8EKA7&+l6>4X z>MdIrUfW@kaP$4J-s6j(!d}^i9YTsH zwzOIQyHwTqYpR+&wiHucnh(>gLV5L2l=PvI++||uv8*L8mZa6H5_%0IYdxB>xjd(UJ%CDd3hHbAE+7m;v zLvDpVe0bVi^-R>=wh~V{u4U2sD@&c+Le|InmtCYTLHbZ$@*6}*RG*be-B6{KdFI0?pa-k=(A1;KNOu5u%)Q*PKzkf`^r2w#+IxuzN>A*+NwtR4+VsyvXfL)CP%#Hmgbj^6QjQfRo z4Lzn)O1J|}W|17S`9;%GjdNgon^t!8*ys!$gh^|_lhY6p!52Qq%FpMv;7ECY`p_K*66S8P^$ z^YBbB2vg@?Nz=rBz|V`HAYgWMwHnMWe#b-rr{YIcEZ6 zE{`6XGqr8#PRfm|3s2v^^nPvH$?|)r2z}E7jL-j$s&p6rcd_!fgjNF-b8If{q>`&*9UtQ-RvDu6uZugv+wsy{q?b1(Yl1?vAM26|OS_;zDXL!20e8l;Z z_>c$8fuL1P8T3-o_aH6HVh=pM@;QOh)1@oqf{X$MSr$Z|D<(j~8YuHsmPH+!2#Ki_ zoyUqWDRvVfCfyKgN&a{|nVf;^IUr}1wRgqDb@^qWvRZ!FXvOtdw2kB3= zX0gKJo8sjtVW4bUz|>|{{u!usSQ`QVzhex$SC4)W{%r~meMpT1>gm^@GMS9>si1*s zqstwAXDQtK0(hAX<(BhoRoqYMl;oH=s~*Z|%wFQRa7gB1Y^k%++=;~OhmBcjE}vpn zXe^j#oEJOO|D`+VX7JP-pz2>~xIeS1O(q?f5WleE{rjcn4-6CBCmViov>0BpVz&Q+ zs>s52xdh%!N}*1hxyMP*r4m!FHdvFMJIZkB;b}%Lm)~#QZ^wf!s)L3s9UpZ5%R?jV<+|Nw&^Jqx*PGcxte)rz2 z+)C}jfz~F8)sDw)i@uYcn{KVpp0$j0NfFozXb+eLrGpr>RSe{quqZK0@l38>c-AgX za2R6!loa%lG8UjyO@*R^LI!n62t|igh)>Rq+ij0$>nyzHD{*z*JDX33lbP$B^?vsi z@A?r9&@rg-(AmQ?S&6m_V;)?NA5jPb#Q|DIVAdfKmS^LdqZ~YejKoQj5L_WR;!k<> z;fC^l%jm&@1dI;~687(38zdHH%75^BXa6uWW>2VPv5MN*6>>%5szt+^rGjA~EEuXL z_>z6~wg8h1J{|!6P|eXngtV&s&ICEyru6i$LNt7OwnjhI*v;Q^JvC)xj-yl& zFR{C{cCN~9oS8fM#xL?#3bn9`(8&aO-Orr>81U2w7 zoMj5KBHMbg7P(^AhBb@6P2m6KF8r4PYX2P9FWWf4 z1*BxTlj75)S@K*UfYQV)Yka_>PhmA$rBOiw6WD16#!756dyad|XgooCPQi_;%5c+Q8L6%eEy|*Il0l)(AI8>@ zPEbEjTZDx=e>p*Is?!}Hb%Q9?510jF0i|Ca&~b%6p_lbk$7?s=?z&$7q=kdtvjA>4 zSGUsl;AILgc30q5axPxtTS6ZO#B42OQTYRnR<5gfdzoX;-P%^WvfuaIw6iz0eBGZR ze#q(kaeui@r`TBQ1n_G=Gi5wxn9X|H*gTn%qw@*0RtyLD$tl+WmE~+$Sq_bA>q@@p z_MLxs-m|dv;~)1f95K`sCHFFVb00H!Qtu`FwE))-{B&?fdfv{Y3%Au7v%o!ZqHmibX%L!taN zV+c9T?=A>hB9!?vm$jefY8NZY>eW05q{cxgv``kjpaWzjKvl=v2L( zcG7{dH3ShMx9uBp#JtWpyw2Kkb45yfrl*@`(npJHvk7%sJ&wV+9_eQn7@cs_mBMGt z6Q9ICLLP3+dGm7z@)x}R#`@hMY^^M7H-|DQXw zKl7~%yQNNdxMBVG&8@_v!ND*G&X4E~aDIf|>1gPRG+K5`U{yK0Ys9@RB3I3RcD8Yb z`czPp4zMT=4y^q8ard6etFL`H_4s7}FR6_YpqT*0&ex8Emm?hqn*SAR*JEC!3!=Zw z;nQgA**o_e;LUjPRT)^iGf;dD)!3mkS9#}!!+sWbXumdYrC=rX-J0#}{&9G(1QFue zkZBFnAqflEo@6{|It>B^v8ynlFgOs;H)fu46_AqOwojPArG1y#ZSEf$QQ1KeI?&#= z8Q6fYQneMiXz!Ra5Tj89PIe8^fl9%0v(^U3V5i|5c$18r8VKtooY?S{k$ge}&o9mo zQu&arOJ7pdZk3c^m^XC|YEJ|>PC6Vc)UGg8*%t$u#G{XU_E~uhbreKJ-n%+ zw?DLVhUuxjdkZ%cpBlWvQ?(z~*qk(*U!De>X^pDE$B?tuYd0mFSjY(?yMHmAoEgAw zM$6ESAzh)AUF`tMYoQ9=T|d$lp|{3dNW$2cA@B|HV|hY2=?=P$h1ezncTc^*pC&@K zO&YAJ#r1%_0*8Hr0$V*GhNn*yFUs zN;k1&;pgC}WBP3sZk~Nc-}OJ*+*}WIn-zK*ZeL(n!YFbA zP;8Qz6yo@uDvSG{}r`+aXZ@Ai1r$MlM3Ack{_f(6QMpgaQvW4A5FQnU)d?AuCd$j zsW)sP8)X5R2M>sSeWDVcij)B6ygi9zuK2bPPMDV6ma`(%v)kC ztox(O&3&KZy+1D&ZaF*NEpadu<@3)7d+_ESXsx9}JCHCq89Yh?ac4tHNCNLpp>pxx ziiT8^i1ScPzC7&DtqBFNG3t*SIr)Cw7-9=p+Ac*$BwI*zPpBa#i`l$Sf!;Ui@1BaE z-uj2lj#pB(WcM!9Dcg9doUTy8G)|-p5D>{p&QBHY#+}!>dup*svYpni%~c)$0}T=X zPWLgo!U0Xi(WmI$wi&Ji03zix9d8UTf)Wcb5^n%YTGLsx`4As#I@>~#g)AHoa=OtUK6OZj+~o;!H)IEU5;?yD4g!e({1?619c%B`2>H@Zv_ z#h6nA)T|toH2St}*d=#WN83}{LB)(1Sh~?vjrmo+Gv~TLY`Ox7Z)G_Eg)&Y|h{kvZ z?e*L&BMFE|oTyyY5i&mvB*t^JFrozpsuL>r)f9YZJvcYW79k4Xq(I-^Rg;S5aY11$ zaTOrji3()`$0>ji$>~hKoEG1jbQb5bakWtGzE2>BwxW!FnPVD|*!dtao&casfOh~@ z?*&j4RDm|=GdZSH0JeV}D{xZ3zRf37pi2f-wmnTCc?OqRhj2hzEdwALP=SUZ-UFeS zm{;&B-rVykB`IxPN@;m(UW9a;E^dk#7-sW(nAoGt?mHyl{C~_>Nv)``o>1&EYwqpg zb5fMn3LighVsi(ZFJNMi7xl0*a4q(9ytBt~J=zM55)b#pHrj1G{c1J!q~B5wHEN1< zg+TM_n{Dl<5+?MgOpciIo)gf#Pmz$olWEAw#1Uy*$3mZwsCjE|DrwGnxWn|bPCOhk zBl@WH(h`uXCIXSSZA7O1)rjkVHxa_soy?e7%^+P{hN8YWT%Jvp{2UzQ8`!pSgtSZn z;^L7m6rFDK%kfTUUG9gt>n9nNB}%1#yx6fj?~D54=?^I(k2^1N*i+sfNWA)K((1T; zkVL&WZ3u;hYDXNpNH}uMM0*wJiuPzxGo`N_`Vkg4mck6H8Jek^?GKz9P@ce=e8A=X zo)ZoGlzNn&NOkT!)_P}*0F=g-Kb6L~Zu!?fu((YAy9UEAm(8l{k0g_Xsx;a)#c<668 z3f!j(d@V5!sH7Ib$(zhau{?mg)}1+TnV2!ekB6Zd4&hJ#4K@e9p(ewMDqvV(gP2Eu zDLl^P`(jVafVhAzSw83Q`#ic?pqQ~Wpbr4hmRmZejx=|i``>Hs_^rm9fp@X~mgNp! z`P-;a=cUPFwAj9y{T_DN%4nCl*M_X>A17*qNa9mLV z4L&mVEKH33P2$9EwTDg~B}jpC-u8fnlkNgxw>;W}GT1>8_JWqm6|@@=@+^N1g9%`L z)lzj0O~{}NBtRAWfbs41SARYnV4{Ur{Gpj@&H*-G8h&+4V$#W!{r6`txp?x~g*#8; zw4yGlUq9^J`EifOi__*e4SLK+WWq^6Avvl;?s@>}KB;F`m64LDwxF=Fd(*bRPMd8F zY&T7V+oXOSj8ZETSBu#vjOa)^=$7|q$=*eL&V23T)y4aG;T&qv!9yo5C34ev#-dxu zVvSlh-|n3WgWB_&I^4R+Ze!lT7O~AeA2WI6H3)xpitVi2Aj7Gzzp#TCG*4HxXY8=P znLA=us9(FUwB1MEZHqF>8(1Vf>Izqi0C2B_&g!hoaN@%iTC~x_8_}KpVk`UoaSzf@ zkT2~pXOabd(b$k8fw$=QrDLHSUHP_S(Vpn#`r3Eb7g_4d-qPz_<;O>`G^Sc=i=kyqhD58slW955WOL!DcuY=-&``KDBwc69}~hwPQRMi?|w_Z z2r=FT>`Ta$Z`Osomg+~1WmfjU@vIfs-e!Nm!cmt)e|(tz=YpH1#8{n9&GcJjFHAw_|JZ-MuY4Y*!=ZoIdAcOok#DT<3#04F`*zm)p0xy zI}m>4La--|@Xwc?$9&kr-u*uxhhA(D!@*XBV5ea^3X11IFLUrs011Kuek+=*iR)lH zTryOC<=ex~(D7}W1wgR;H3Ufk;h0i4>0}z*K$Zj2-SMkr?J6#tMTp%3-P+io0FxyC z^k+FrZ6V=Wj4b9*YxPI!uPR#5no@!KNWitG^HU)Q0hVoY`qw0+Hh_$ap1!vn*z({1 z#g;Lcel<8}?lKW_(C#dTrx^$6eNCVOOY>pj_w4vEziIGS|D53u13k!6a+Rw;dDOx8 zMC|50Stqxt9l0$d8>G{b$`tdma@o6wTX$Bx(dcrQ(A3h&8 zTv2l9c9GiR={fHFfh%o~7eyT9>%Ww7HcYB?*UZ{MSQ>4pNI?7DW9kc4PkZjA?CNwE zEYG&YaV7gJu0SILT%^*J^0kpcr`iNMvvsQ2^^t(iIE@Eqvp*!&{r@hh{sKw$&VQ3s z`@QcL-b3ryLxq@n$9nG`v=rbe=j4(O3~xNTb5hXJ!IbdQ%~$r9EpKi=*B zliEvrHO(vxlgTkZ<{SOpV_0yTfEYI#jx-u3rp31_MW^)oEi&UdG9}OLaM`EuwsUvT zynu^Eu@VSfc%j*o7k^#lZP**%3qZBhq>L0lHr~QpE~4zewx9fa0o?!G9UXrULBMN% zy`$s5!XP@F^dtSQ&z+JqU-vp33tn5zI@oxuuGn?yRITf)Noj~5X?QiXxW@gB*zI|{ zzvk<{)IGtQs#&f(&FWIzmKxd?E+80t-+A(%gdMKGp_PTHgr^T$NS@?m?{bH^@7C30 zukX&Dul4rIQX4a**wITV&#o*MAXw<~VtZNTh7`jJ1Fs`ix5*Ns8 zKn!2DhsvFxi_O5ZD(K2cet|a3ro+WznfS$G>{i`dm>VQ;kQ6QAJ7YmZtQL4iVI*mi z$u9yOiV9620X~Y~aW-=O&H^T1Mj5_>r(JM^6l+MPoqYktv$7IQ72cndItY&yl;LSx z9+wB%yCfuF1aRL*Cm!PvuV-z9$ML7z$wT-kJTVQv1V^ZxuX_E)*pw8DIoEEVnf}P? z>aAEp9;jFRe|BFDH%^!%J-<0lyrv+>1n@bqkvuGA1yGqdyqC-$h!j2*fH<3i7Mt=& z!s9bw-X(A$-ajB!wjJJDb5R#>t=YAyZV7+mRb0^|Lf{U+pw&CNZMN$KEm-GGO4?5> z#;bUfGjvCImT&jcWYb2Xg^ga5IP1^O@{itXM`2+xo`)0zIY;KGp1cfp;meK<@^vNlz2#yg@1+9&Jkt!(AfLFZ<;6TQTq66{?@~ zFHy-mbs_G~te<y>S5CK1_JP)|G(~^=c_%l@TLF!erkg=nb7edUe&MU zFJ6i3r~B(Ro%S48h~SrHK@#$7>lJ*AwHs-@3LR;^BLC8Qbz=nezjt2k8y!kHc40;> zfL$)IoY4gIxe%zIn$PqhdDerg%QR>zM)RgN)diT0c?>egVrY21f-d<2q(zj8L8X3& zuZ*#cdS+&nxvDTxFN8>p&Gos#u~6Vsrl2Gnpz>9`thEF|># z1yTI>riR5(2Xf_RZmVKgKq|O#(}j^H)jWw;69aP_vv!SQ(`s%B!X zU~`!BMIof&oXVjKcBLL4+UiLR*IRAzk3*8qOpdQvKf8SK z;}eI>R7eu{fKBMA=T?}g0MMBL05SmTo|OY!nPqo z`iwUKhfIS0+5q@w!*1%=hJO7pxYm)Jiq_AERrJUJPTyWD%E;X1@>{3c<9e?qrv9aX z({zUm`dJsVthikTb>zDdJq~|5cxj$_VWv*d{lulvh(m3q_6hM;(J#K=c|BGH&S|P+!63va zM_ZTYynVR5zv6P#{b`7AV}ObDlb;|oOovxYg;#u3#)5P{rC?Hg%rbo2(f!<45HqX| zs}Z&jdFCxtUP3>fetyz(!IMbeO{Z4AAN!gJ9X`op7d>OD9;Hcnh5D%utgD)lB!4w) z+QJJ_1KXYRa%S;cXuMBPoX{KZwmzM_5ZgE>ck7vlN%O2cDT@9Ryx7oQnp3TxHh;$b zxLsqWJvyluf^avhcEep~=3BUa&9;djZoMm=<$dC^4daemwM8;{&FJd_+L?HE7=M8N zt!uax58>6IZ-L#v!|^50a(NZQvSH~5-8BI;Pn~Hi=cZhkrxicdnp8YRwTe^Du)N;x zekIE`bBxZdU2aHA)Bp=08*abTgSGT?zy@I#M6z^#-vZEX?+-Vqs!|2A0A_Gm;U>V8 z)7(-aq0e>r6BV1Ad>LtnJNHXFoO>m;12*eEgU>*P9#u2XcNDu@(YIM#IYvLEY)Q_7f>WDf z9OwViV7njrCw}h*8xINks6#yJkZR3+#)dKv$_SyirXpFPZcX{wZ=mYGsC zyqq_Nt>P^_cWd1#p8eJ$J+PB>?rFWcoWL{vr?`~`ZNivTxfkXiMl3bwKU&HpF8D>~ zlKC^T>E?V=qnz`qdsPk9`UMf4;^&n9Iv=oIiX>B$2xsGH%<)^n(V28n7fLQ6jozLU zUc0TDB{o)Nlh^`7qcT!q-5hR7>2ae~ZkHXcWGizO@8_+h|Jdv9S}dLiwQe89rM;P}Zr2l`hRWXl`K*{!ME;JY|}-l;>o)^Zf5sKE7bZtUNd zSq=qxaC-C!*cEOSCYnPj^E6=Qrr$Ssz)}cH@mmw&(r1S?!Io7`iQN^O$6ef2D>D#Ay8k& znK|BRUg-p;n8oCTm{fIfBxp=SFnwydDFqs%&<1EmQ9Vi*jE%;1jK@U?++(ia%I2$4 z_%#J^)m0gjVq|s6*?)Xxaz(~@nYSBymuhCbSpD?>TbaR0hA+?d+{_yKeE7j-w)W3Xav?I zy})DN8ESU|MOTYUjP}cmfOSnt{o{B+n0w#jb?)u?ALjqC z|JSw_*tQ2vsY^Yq(+8g3P__PWt=nb)>swB*o|bXyDC;HbZ8GT$GS^RU2>^~>H!W|v zeC(F)(K8zl^OR5Ad{UV;l(EfIeZhL*kefa5)OKDg{eSH4|4cv1lHs8&h=N56%3D_7jQapc?V(06GO z2d&!~CRu`uBAhN+P4%G7ety2c>fFq=73=-ydtcGbPx7{1^X;-ugY5Ap$JcSbz!iYU z5BR40T&xLSaeh^n*|tF2c~`4vPBT@n`oL+M{lfo;{~y`=M=1$4L^60!ZYr?;*EScH y3hXiB@$2{AJ-H8~&ojOLcI}?ZrL=jmb|rll@0HWaG#nV1Pnv$>6$xPfe-i-A=6HYr literal 0 HcmV?d00001 diff --git a/objects/obj45/target/target.xml b/objects/obj45/target/target.xml new file mode 100644 index 0000000..398c41b --- /dev/null +++ b/objects/obj45/target/target.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/objects/obj47/bird.png b/objects/obj47/bird.png new file mode 100755 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/obj47/index.html b/objects/obj47/index.html new file mode 100644 index 0000000..fe36edc --- /dev/null +++ b/objects/obj47/index.html @@ -0,0 +1,11 @@ + + + + +Default UI + + + + + + diff --git a/objects/obj47/object.json b/objects/obj47/object.json new file mode 100644 index 0000000..5d7c84a --- /dev/null +++ b/objects/obj47/object.json @@ -0,0 +1,67 @@ +{ + "objectId": "obj47n32vbg5gk3he", + "name": "obj47", + "ip": "10.0.1.3", + "version": "1.7.0", + "protocol": "R1", + "tcs": "4o9q5c", + "x": 37.558251699426734, + "y": -11.874119446479426, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": {}, + "nodes": { + "obj47n32vbg5gk3hehans": { + "name": "hans", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -16.694259005844287, + "y": 156.85004682175247, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "obj47n32vbg5gk3hepeter": { + "name": "peter", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": -23.743537815460286, + "y": -103.19668796408882, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/obj47/target/target.dat b/objects/obj47/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..8ca23a5e8d85fae8a0fe7a0a5856b79808d0a911 GIT binary patch literal 78871 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 + + + + + From 92f92f82a8b8ea0bff21bc037b8039cbb6926186 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Thu, 29 Sep 2016 20:11:14 -0400 Subject: [PATCH 192/266] new marker + motion control finalized --- objects/Gripper6AxisEV3/index.html | 38 +++++++++++------- objects/Gripper6AxisEV3/object.json | 4 +- objects/Gripper6AxisEV3/target/target.dat | Bin 67106 -> 69666 bytes objects/Gripper6AxisEV3/target/target.jpg | Bin 183994 -> 55616 bytes objects/Gripper6AxisEV3/target/target.xml | 2 +- objects/RightBase6AxisEV3/index.html | 4 +- objects/RightBase6AxisEV3/object.json | 4 +- objects/RightBase6AxisEV3/target/target.dat | Bin 35998 -> 80857 bytes objects/RightBase6AxisEV3/target/target.jpg | Bin 39863 -> 80869 bytes objects/RightBase6AxisEV3/target/target.xml | 2 +- objects/RightShoulder6AxisEV3/object.json | 4 +- .../RightShoulder6AxisEV3/target/target.dat | Bin 27144 -> 60076 bytes .../RightShoulder6AxisEV3/target/target.jpg | Bin 20777 -> 123737 bytes .../RightShoulder6AxisEV3/target/target.xml | 2 +- objects/RightUpperTilt6AxisEV3/object.json | 4 +- .../RightUpperTilt6AxisEV3/target/target.dat | Bin 41722 -> 67458 bytes .../RightUpperTilt6AxisEV3/target/target.jpg | Bin 76677 -> 77741 bytes .../RightUpperTilt6AxisEV3/target/target.xml | 2 +- objects/TopForearm6AxisEV3/index.html | 8 ++-- objects/TopForearm6AxisEV3/object.json | 4 +- objects/TopForearm6AxisEV3/target/target.dat | Bin 28657 -> 86281 bytes objects/TopForearm6AxisEV3/target/target.jpg | Bin 21363 -> 60276 bytes objects/TopForearm6AxisEV3/target/target.xml | 2 +- objects/TopUpperTilt6AxisEV3/object.json | 4 +- .../TopUpperTilt6AxisEV3/target/target.dat | Bin 38960 -> 94992 bytes .../TopUpperTilt6AxisEV3/target/target.jpg | Bin 74919 -> 67165 bytes .../TopUpperTilt6AxisEV3/target/target.xml | 2 +- server.js | 2 +- 28 files changed, 49 insertions(+), 39 deletions(-) diff --git a/objects/Gripper6AxisEV3/index.html b/objects/Gripper6AxisEV3/index.html index 05bbd09..e0a4617 100644 --- a/objects/Gripper6AxisEV3/index.html +++ b/objects/Gripper6AxisEV3/index.html @@ -125,11 +125,14 @@ hybridObj = new HybridObject(); // set up hybrid obj hybridObj.addVisibilityListener(function(result){ if(is_visible =="visible" && result == "hidden"){ - hybridObj.write("Height Tracking",.5); - hybridObj.write("pitch",.5); - hybridObj.write("Vertical Touch",.5); - hybridObj.write("Horizontal Touch",.5); - hybridObj.write("roll",.5); + setTimeout(function(){ + console.log("hidden"); + hybridObj.write("roll",.5); + hybridObj.write("pitch",.5); + hybridObj.write("Vertical Touch",.5); + hybridObj.write("Horizontal Touch",.5); + hybridObj.write("Height Tracking",.5); + }, 100); } is_visible = result; }); @@ -142,15 +145,20 @@ var motion = 0; - var accelerationRate = 1; + var accelerationRate = 0; hybridObj.subscribeToAcceleration(); hybridObj.addAccelerationListener(function(acceleration){ motion = acceleration.motion; - if(motion < 20){ - accelerationRate = 0.3; + accelerationRate = motion*0.05; +if(accelerationRate>=1) accelerationRate = 1; + + if(accelerationRate<=0) accelerationRate = 0.0001; + /* + if(motion < 15){ + } else { accelerationRate = 1; - } + }*/ }); function slowDown(value){ @@ -205,12 +213,14 @@ data.touchX.value = touchX; data.touchY.value = touchY; if(is_touched){ + console.log(accelerationRate); + var scaledData= scaleData(data); - writeSpeed("pitch",slowDown(scaledData.pitch),.5,0.001,.25,"exponential",false); - writeSpeed("Horizontal Touch",slowDown(scaledData.touchX),.45,0.001,.3,"exponential",false); - writeSpeed("Vertical Touch",slowDown(scaledData.touchY),.4,0.001,.4,"exponential",false); - writeSpeed("Height Tracking",slowDown(scaledData.height),.4,0.001,.6,"exponential",true); - writeSpeed("roll",slowDown(scaledData.roll),.4,0.001,.3,"exponential",false); + writeSpeed("pitch",slowDown(scaledData.pitch),.3,0.01,.5,"exponential",false); + writeSpeed("Horizontal Touch",slowDown(scaledData.touchX),.2,0.01,.5,"exponential",false); + writeSpeed("Vertical Touch",slowDown(scaledData.touchY),1,0.01,.3,"exponential",false); + writeSpeed("Height Tracking",slowDown(scaledData.height),.5,0.01,.8,"exponential",true); + writeSpeed("roll",slowDown(scaledData.roll),.3,0.01,.5,"exponential",false); } }); function map(x, in_min, in_max, out_min,out_max) { diff --git a/objects/Gripper6AxisEV3/object.json b/objects/Gripper6AxisEV3/object.json index 7245ecd..80dedf8 100644 --- a/objects/Gripper6AxisEV3/object.json +++ b/objects/Gripper6AxisEV3/object.json @@ -1,10 +1,10 @@ { "objectId": "Gripper6AxisEV3a1a22x6p9s3m", "name": "Gripper6AxisEV3", - "ip": "192.168.1.21", + "ip": "192.168.1.120", "version": "1.7.0", "protocol": "R1", - "tcs": null, + "tcs": "1Y82mv", "x": 0, "y": 0, "scale": 1, diff --git a/objects/Gripper6AxisEV3/target/target.dat b/objects/Gripper6AxisEV3/target/target.dat index c88c72e6e48076b78bb6d8ad64ec56ba2c51c96c..8bb9806205b54afc503f30ce652dd4ab7e269a33 100644 GIT binary patch literal 69666 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�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 Ma_ijBJH}Z5AF&Wk_5c6? literal 67106 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 z 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§X{t+a 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 diff --git a/objects/RightBase6AxisEV3/target/target.jpg b/objects/RightBase6AxisEV3/target/target.jpg index 0a38da46b3d039c7c4f73eebf8bc97182542f7fb..c372cf8feef567112d326602860f4468068faae3 100644 GIT binary patch literal 80869 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 literal 39863 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 I|L>vy2Ofx#%m4rY diff --git a/objects/RightBase6AxisEV3/target/target.xml b/objects/RightBase6AxisEV3/target/target.xml index 1108b8c..32e5ce4 100644 --- a/objects/RightBase6AxisEV3/target/target.xml +++ b/objects/RightBase6AxisEV3/target/target.xml @@ -1,6 +1,6 @@ - + diff --git a/objects/RightShoulder6AxisEV3/object.json b/objects/RightShoulder6AxisEV3/object.json index 7c25f1f..736fed1 100644 --- a/objects/RightShoulder6AxisEV3/object.json +++ b/objects/RightShoulder6AxisEV3/object.json @@ -1,10 +1,10 @@ { "objectId": "RightShoulder6AxisEV35Z5j0vl9jkf1", "name": "RightShoulder6AxisEV3", - "ip": "192.168.1.21", + "ip": "192.168.1.120", "version": "1.7.0", "protocol": "R1", - "tcs": null, + "tcs": "2uTHPQ", "x": 0, "y": 0, "scale": 1, diff --git a/objects/RightShoulder6AxisEV3/target/target.dat b/objects/RightShoulder6AxisEV3/target/target.dat index 2c95802d06bfd36ac8d33a1cebc37db0c499eff7..28570fc665c8329c8690db21688c9ead11561883 100644 GIT binary patch literal 60076 zcmV(!K;^$sO9KQH00saE0000005Hpp!=so00Ew~y01E&B0Ap`%W@%?GW@TY?EPMrc zR9Dyay>ml^5E9&7f=ef?$myuaA)vYSK)HBL{O5Bv3NfmjHIk~#Y>J#`0dE6h8)O4}2{Ho@Lzdi~_ zG2vW~@p!$c7U&BYo&sa`+9zK(48^UldKT*MHI{#`ltbWB58!ruDHa<53 z&%`&kP#gBYLg*hgmgi^^4Mq5w10trCrkW;416P2p*TN(5EpYV#@OXV5^sm%s@}t<} z3(TA>3M_vM2Sx%b|B6RKO%XolJ8Vqjt0k$i+(|)y)ZRh_E_JNcTA;A~nL8Sip!pyY zcg+eSS6qQ-vq@w54vlH1zvzC^(d+YHD(XxOe8B+Dvo;a9hU!a(C|r94d!1=xd5i)X z$#Y`>#~IZLEu1gT0xkOjGt%dm;=*WO@A)qQUB|}q5>51{8Th3N@GDBJU#O0}32b^4 zKnLmW}0WHKu!~r)V#Vq9YcCv*xA>AvOxJT9gQ}Toko+ixqELd|h;1 z8_VBOphe0>Q^2k)8QT^jv*#PJ0yr~^cXt? z+|S~#C9lKC?{W$;&4YN}4^V^qz>!Hl;i<*7*!mL?xvn6W`&sNDTU_(PBZT05m)dEk zkPMsycDx^l86SJ1|G?>iKgH?FxJ$+La`s$c4yTvnT32bXfF5nYIw{gCJ~6Fm-5MZZ zWkChkUTlzbb8>3dMF7+5!ttJwBQ?OjwpnhvG~kyez{ilGuDw{ux}SmN{HOua!y zHeLbSP5qpUoGMfI?*(S9Nzc;{or3(baj0H2@R)3sW>gfCmiv-LxgDJPw%hOg?+!wg6}mNMKSTo@y*RaF*+a> z=)@IqzE5px1K1@e95LqGUoGN3QTLm47ZV|u4sdy4qx9#T%XgP2(L|p z_I7h#guH4g3Oij7MnFRxF4%as?@}`gaA#Ib)pD9^%?l)JAKT^T$RV@yabgN^EJ9a8 z?5I&OVny?zTAc(N{6|H>}+T`Bda+{#U^Ku2R%roo2i{+9E6gX-wS%K8^Id*5DYZ`f@RW>lCE=Y+fVxt)Hw=FznX{BEd$V`3x>8l=O6e$HL`#tqT^EJEO09fQU`I^7EC z-u77W6Zg|0HXeuH_<&xGU-|bBj}q(tXIFglNU!ns{dBrq`2g4VvU8L^*HDg$tEL5W z!m0y9HY!Tc+@SPALp8M5n=?L@vuD)n)^sexi4oNW>M6nj_##*!utT-i&JSqVpGMU+ z+calPlXE*)*Kb7>js$t(Qav5&3~}j~c+4<(VeC3r%nQja(_Xhr_t1=3;*0%=MbBZC z;rEdM9Ov7YA;#~6Fm$ku*8O}O0s4D(>7Oc5`!aLSa+kY4sm(LIB-jZPP@Ggmg_PH_HRc<;8 zpZ){GQ=AOmFq}XbCy8CPSvWt=8*7jR>k~d`l#R(Nq_($VVsS&27#kER8oG#F;UL7C zhElO%w1_tE8zVf5LxirgFx8=nKvtyYt+2NwekHvK-t!9-Y1YKJwpD z&wVm?DFt=06ut@-B(|jha)`MS@UvgwMLHAO#L%1Pp0QyElz=fzRvJ~ha;xBPxmUuWBz%B zAqhIu=7cYmDM#wE5Am#}sL)cwUR2=;k-^s6Uss!pU8`wR4Oxt^%?SmX9dkd3a^&h69XZv}$9o=7c)MU#|AwLx9~(r=(>RsZqwjXT{D+*BPfk zx9)aDgt1?9!ZeK}DH3Og3)v3nW!lG#XO!FeX&mgW?QODeqvFu(T%YFtjj>DR(Kp8Q z?qVoGVR}tX2gzK)Kw$SHtgU7j7C+t#L5dHDQ z3cqr5gAeu}uEwqd8M#`cF}g(dvZ#qL-=l^h9SnCl!R~aWgU)`=zDdPxwAE`rBnq9W zF}hsJ_$*uO_YlIRDnT?15aq%~h-3fG^z?BP)tj~m(Q9FFg|4G9`Xf2G85L{2iRUHs zxa+6{xm@dD51)jr%ytWL`aGtlv5PVKL&@Wh7ssDqOw!*o1q>U&U2rMT=YcDmt+DLw}n(SU2TqdUlY2$xMK64KxS+~?Z@PIYV0sPM)u*E zNg?Nk0B^o3f&Nx=#3bd{<8bab$DS5D5r$2C=SARTZ6I1-!~PY)%H+8Nnw~aCe5~BM zo?U)^3ptEgnO}Q6;@S=OQ8@ZYWx;Y6z;`pM8s+AQAZ7DugulHM1rG!L{U#a9PWmGc z_2r0=3Ij39VhD!eJmSIi8j6AY-2=(E>TrF(6Ro;AVxGpbd!+chL5K%|o}%HEs1Pnf zG<+n)fng%yX15gKSDPeseVZe;YBU{{PPR#-l3lsZceqL1N31mD;Hzl}ACc*UDey$g z1!MR#W!U2pT?RCa6;D^&h)82hC((hNHcN<3QfDPABTG!`FDAFN*@b7w|LdjF6Cn=X zs_;DYIz)&reESq3PEN=XC(a2`ajrT_f2lDvSaRw(vx^O1de%M~6Ugh;T{0X&s#uAd zTa%KD|Gt2PmKTko@5r9(QNP0p=<&F=+VBYFs?`~Wkr8%^ozZt3Dw>~_m+CJWgBL4V zDdo6gk&a^npc`RGU|PYEI+RX)KDqO7qGIs&ytHN$WANXaad5zU?P}Y&e0*jaGL4yOgW<5V&VY zDliCPhD4;1wBZH!_lH4nG{2M>aV5w-m-FFRp}RY6wnLhoI@Aop*o9!e}X% zZ7&lYZ;Ej}rCu6whW7bXIE1-|yJd@7@l_8oPJUqLy;PDrL}LjV-<0@h7!>4V7TS69 zx6>*@q|V_8D32#&vGb0Wzuj9IEI*Azz-MtV7|EzNp*>48c@~9*q)*xfacDNT^RAQE zt;|U_?<7Q@seJ1zkty2vbFdJnE<{JzTGxogrRi1n-R!(KOSAiy3T%Mi-1I8FVIac- zY3(*z^umb<>eI^)mjkp}jaH4GQXsWuk7z}^Af7R; z2C<2S`9GVTdT5 zFs)3ycu4}Ypc?WMqer!3zq1lg7!f8VRe+}nF!TL&si<)DNht9QME-lvklgaZ=&@K6 zTcm^K-;QDL66fZq^K|3eBcXFjPQ(I3Eg~0Y=P(+2#3`(h@j$1oTo6A%{8=;qFw)s6MfA4T8Jm2X2}B)Om5@4K(1L+o4LB7PWTjO ziq6lvbP|(<`0jydXDm)X&PdN)C5p)BUE-wJ_fzqas-CzclpLftV=HIUF9Kb^h(SyL z^4g75JDA70)W|_g>u~uns%?w2L8Pr$&&cpKGw0~cN|OmlTlK6WoOzs!K}w#NQ-9+) za(mseLaJNX)J#NG5^$5NRpk)9%%-n$oRWn;R{x!6dtC-V>F)`jF65! z7;Ft8xMKq6W)nM?sj|gQcgiXOxb_522brnh1V^qz&{Tsfx?3g3FS~?kx{h`(|0nye z74@6QL!zDPstr&0cAn8jD` zGtGpC2%J5|I384@MwdF3C#y`Lb$n#t{mx8!=9ky%ZyB9FR4)FV9CLjwS+1qt<<~WN z|M8H+l-Md`aAYJf@h}846sHzV%io^ZWe9@YaXL5=H@+RmzKFo=;c)2}<&24(0^^a> zH085@F>|m^Mu^1KJ^yBVGSr`))hjep4#{F8Oqeuj~Y zzG*lBOdX55JLc5Z9;lqw&Z&#kfe|TTege!5Jup>rG*i{Btt9J%EC*ZlwJw3qN+(kRVntI0XQjcz%W zn`iQ24EE~VCyhp4^L}8|AQV$$nbs;zBJCL&=8Rt^!R@etOkg6gKRCM5qK`9L3;{U$ z(+qOO=4nEaNzd&jU|?3NW)o!AWvLxg-Fx(4zHq!Wzqz+=YLxP_JK}zrkQMN{ zv#GV=UwRy4@sIp~_4x#R!=FU`cN>^pynow982BG7+J}`WMTF^wFMGb@WN;0+B z-qFKsiFu5!Z{w8D>6@}-KSMh+3S}@Rk4c6L-%bnp+Xpr0d*?vMpsRh}taXrgk4w}| zUEzT#q^CzVMb(i0;Q+`gqFi`Jk+8V#%6zj~`@7V^B9aWS9`=D`)E!9{+^7K(=on0P>q!tBKPhs;@cx&_?{c^FR+Af9X6>l`4F-n~O8*@nA9!dK4dzeoprV_w zRKEWroKadZ>N9F<8H?#Vc_^ zuCH!Fq`dJ;VQBM)Iz*Fu{H4sC{{_&9SeE3W9CU(ld8gF6o4 zEJl7t6u)6Vc9Qb8lLNQV7u(4y&ld$V6!JMc;5MFsqE!MTw@eR2(_QU0CBs^OBy@ak1bG=o3e09ORV$D$~AN&D)yy%usbk*(kSE{B3e3JMv1PY z{n*VKu~LLBznhV?u~%LEu*+24MhmgGJW2GJ7%iF`QpKBd!k@l5dW+(|I3?Np1`3T+ z5j)U0#8hQ0V+`rsPg$D0+po_50d&TGjiaZu$ITG$Q18**5osoMlvPDyy-e@WSZKzi z>k#-^jhf5YvY5dCy6ML1d$a_lb+qecuO{y|xUdsyGEzudvdTYJd*9ynT`6N;e$Cdq z$eWm51cM3lOlFY_rOb$!v}%0+KdLdGq%v;W+t$co3#+h_hZtCqtj5hERlC@9H#8(6 zIj4H@a-ZQqxoe#t0b8o~^;cc2sV;zE@PkYvI?sJw0~J=*=_1bVT(ZLaLI zFbAg{7_c&9s|=m^_Wm5%0Q8z#lhw-o9NecSi92swB!#?}g|9ey|Dp^m=1-Na9Wi(D zbXb*IyuqXh(z|igSnO>pcamxZ71UVmC&%6G?sf)5c_gzB^tZf+vZ6+ zTJXRdBOR~1jtL?GXxIEVo{jLC&fMtd70iMUpx(Zhz3ndPUYc*^i1Y65^S((fxc5G7 zmmWv97G-WR3umc9ZvQ^H(!QU)?M8Y0{Rv&Pe7l1Nk){$e9ZOn>T?S86BSkaoy>P?_ z+RM6;6;eNw{uWU&Dpg3q211?6=dU002lL=%RMQ+eq0QjOW`NA3Xs^6o5kfl{BXBbwf9NHf;tuIHOe^~0p9J?OfII<_I zFS}=^o}5UZT~*#}VPSByN%P>zvZjqWEP35gJ3pK%59OhA zmL+vaKclO57Uvo$4W}r7FbW>6kHj%o?mmLh z;pI$KHR@j`xj7(j1-)#%OI?}D05FvE?1J(cUa2`x865&%q9* zCTh<;iDW#YCn@vu67nSnn`v)4n{?jxVO+bCe~?MJdzg-{9}7jA#b-A5*`_>63#mH! zvNq*!sW{}8AsK3}O+7ii;IYU%Yly~6OZaGS8+$ERe16F;-AJzpRp4icXV_<+be9qA z&&|jh-pLaIB2Kl>UK5mUlVdPx&UD;95S+057w#v$uCp!#=TaTGOFl@MP*kG7rt9e{ zKYfXS$IId|WHk$wOQ>sbMZ5TDGJc;$8RSYEXRy+w>zO3IU5o0Yg9=6F=jGVwMbllW zF25euLlcu1lUxM9f*+Yc&%dRAAA5<0Uxk?D;V2rWi3njU#QyiP#MTZ~{?8KP#Z=)T zwD+64kC*g=%T+Ck?gfZVw!;LAypla0Z2TiX*zHz=}Xy}p=ciivr_Csf!D&Z7^6^{pIX8nA+GL+eFw*pPfm#H{K zo^ZJfx!7=y97tumgB~5u>0R%A%Nn`~vLwma?L%e2HHceezf&1y4f{Eg9=Lo@0lcze zVdln)@Ntn!b*o#eM$HzS--PC^*&kVSq9L5=EkEH3H;uUq&J&YgJcl0@-ELbo?yT!} zy`7sgdpx4I8VbN%2gl-qs(MZc#ZE4b`0CAUx7#|6PgOKtU(xGY`Xh9Wq3pk`JO=55 zoWik@Rd(lF72(u=yQM1L^Ym!q^iunmrqAZj_O&lUZSs=h`qpmQWj7xpv5_e9nimG(H>b~j_UoNm!ZG;fQ}jCQEwxwOtsmDDGUEg zPt8cXb{()7(siiHX$i>)nZaC^`{1`4u88DPl@z?V0)GV&1;-`_8G4f^n*wuvi{LmJrGIWAvi%%fPh7J8K=#~* z+CO}m2c@&Zc%2Ua68QFyO6XE^>P`+r+4KIzDrd0vl$==hVgVUf+yW?pWwk4%`}fD- z-n{VIM?Gr`mYzonIfHez9K0w=yxGovfUF8ubghF1p>amgvzMjDu@h5%Xc&u zmQ~fKY4Z~%Ro5_&t7FL;%;W1HcdoBds|L5$RiWj9(Q=0J^;vih?UI%`%|Hw}N^-kb z)zZ^&ZkQ)E)mT{E^i*-l@&o1gMt!m=|8;#uVXSq-F!EXHDcOIK;_ zNd)xW>IL=fM41pK@7RV+44YCF+e*BOw}3ZM-tuob{A|Ref9MVgR#oUIb?qS zb^bFi1*Up3Ka;OCT0oj&GPT$JdWN>6C8cwRqXb5-o#*83Rad1})wPprD|tp1|43Rg zh&P#0xYHHxhu%pdoo3NCRfloYrsAFViGl0f$N(EHyrlvg6fR==_NGG!+jn@3$C-B= zNQ7oiG^ByPflVRhXzbBw@uwVFnSjnGJR@fRT|*=&ZD&^ddWIvgZxMcDO-*_mL{4io z`$W_Iez>P5oi+D}SkYiXnd`0)OO6(bh~zYJhn3dbrgefCVzyTCCEcd^@l(G76YTu4a6MN3kjl7)YWhr%Tx4M6k4BtWiBmbp%7;IIf?vhd{$9$WCeV$AS zO^fg$PZ9lqzpS&-t819s{m%fa=J0A_vNA<}YcdO4Sx~-g5rAVAiS7BO;W+%R{^(IQ zqEle#g@gp2kx}_oX5yW&(uBu7o~X4itsUn#4~|MIm`q)S2Ag^n8I3)3nh}~Kopn^Y zncbel)O)H6(>n|&Fm1@kV{m(nw9m(ax!pew-;X zF9@%jE2^u-Ay%3?h#2b>PcdHT#G>B9zU6`>-Bq1H)^s=Nt(l-q`YfBYf~$MDON(Dp zkTHx^&mL_1vhOEJ_3|_x%;C?3C?ap@bh}%hzEs?U--z}A(DAbMU~yBhKSXP6m5$zW zW7G@7+vhW37*EQ_czkMhB%XJ|3`rk~aWxL~xR$n0mGLK0xqm#XmN5zVVJ8<$^!{~E zDJH#{+}-LsW|3x;L~pdT6>Gx3OT{+gyfjXiU>M1feHgU|B)-7$jHCIx+3+*3w#ZuiaJF8$oCsnIFsW|k_}y+0Invxa47T^z&}@|;>OG`;j!KPruO zaf<1DAhn=_iJ7S?!S$oKnKw9p)*lpS`fo`m_m*GONpUMu3r~zy#Z1OcqL;c$NACIr z*)ZasJj-(Y>;zUu}1^>qMv3B6)gGNpYHK#F5n+vew9oD3g&svB zU|Fb0I468t8bXCSvf+}*QBTCH*~j7Nr(xyV>rGGpPm_7AGHw2^%)$cdY7BXtr_5Qr zMpmEhDV~d?7$p}KGVf@5>Y|uS@VWa-5}ZEtg<%C9i7R|vmWb;Tye~1jO3zhxp^n^Z zED5;3GzC-No26zEF>2P+QkspcFWj+~d_;QX3He3S({&o7tuGd_!^>(2EA>Md*lF`y z-mgKklooK-vk$DZF-8^mY&sVea`wmemE)BRJsWuq6(vsyTe(JVKlcqWc$5QDrQA|7F58yX$R;HgWVC6Ve`@BRD zE#%2~><~s&)IX|~hM5lU(l>*&^I>KE z5C7kmsMBKTAk>{F7wglVJraHNkCwN4T<5`EhqDlb=P^T>$de}vb#)xvzYaprpV{?7hR78?7^>Vl53inv=@>%jUdm^w zeF6_decSzAexP)<_@|>ISM=bRG(t?m`10xa;dW8&r62v;^Wxvi3m{$5vf?lc*B9H< zLiG3EmnKXuuU)>7npI>W-krl|YB)y|>YhVt^G?ST(B8y*=%4BD?T{Yb@Fv@#HmP`H z&!m`ktZV%=7eD`AfKeU+a9|}$exbkTE&t?RjzO*A?Y$iTJY;sp2)nzo0-dgh@dQd> zew%#he#;$J)t_Se+U$B9Xv2&?IU#Bh0fy~xb^Xd8{l0O;Z zXO6ysnB4*8n3WqtkJI0BQGSXj!pMz5xU$Tz{O^{;_H&omv-gPAZ#7GU5#HR-Tbnc; zyN9>u>(sxzclF}VPggq%a`D6Z3JjeVfg4%gwE31BXWDIEwpO}YId^tlud=m1LR?)G zDdtTQfqkio+p^tHd%NX^x75P|K`jcBLq1A|;S7 zc6R@CzmLfMZ;=vIn24q~EjI$>u2u-Ki0&AvsCHUTL`zB=_ozxb-iQ8TA9} z+KqhXVfC5y=+g$j-JHy*!||{;Yq_yT>dHvDmzF$oJnJ19Ou89q{$ej|hd%IL7my0i zE}5Rq<}Ej37q!G3ec2-m}F^YXZ@_^1a`jNP=?=V@#w=V1UX;`2ZhFaJxY)?slf*gkkM zIY|v07{~5+a3I=T`#)vkLH2wNQ9Fc_@fFWU)jvP~2Zg;~_OmIQNA0(BdRfa2{k0m+ zl%3qdNn~p;s_NMX)*ca#1h9u=QeyheTkJ;umJI8O{#t|bc6h2EO&fiS6JdD8E$4~u zT}T+6SYLmLnBP^Z$!mJ4zxJLccuz{!fPM_D&r_=n-T6#L?RTA#-}zdSxA|&{#vgJ& zE%nzjm8W0R$For0*{ZjV!HpxCnSQ<=8H4YJC3#bs>7;sGPyIEm(&4@**_t07)lr{% zP+9{Ltdt`6VW={3^`YD`ref8H=l|z<9l1N$@tMXVAS@aV1$37QgoXv!;eVNyE zJt?Nr=C7<$iWXHQ%s)!4)*R7tn~AB~$8zN1e=NvmYc~%bSh0OS`AYwGOfKt(v0ct! znk<<}Dx==Z48X{Du{UhOmp>!9>0;BxVEU0PrE(!=`eaB(jjY=I4c^`uHgbe5+)?{k z5YTkB>0*mK1s*W5LiG0|vPT{?5WTx{Mf{|xi5pChl@~Aiu9V$VO&7nEhhIi%&r2xU z$8#paPz0dnf7=(@q$2Fy$g27+Rzl61E{4ikZ{YEhEvh{HMcz^lWcmlgk0=ZKMvtpQ z%QDHX{F=?1E-sc7U3|^qJCzleh9LB|nwb*n-z%eR=UCFN7MENqiEZxGbkSFydS1tN z8$IkT5VM{|V7050ed!T?@5W>56wmMlkK@NN!d_e4QRO|pDmF*eqjDXR$=y( z)vF2IC2Ni(5AD+n1qaViuWkzuY?S4*pUJ~6p?K$1*3J%~%s{TK?mS5WrgcnmHX#>( z$exC#i`p}PD8v69F`O`1_vr%Ev0J#kCZ&p-s)c7VKux}nMEQmGOsnEn8o+8I67E@H zM%S+yWr#~mq9Um;I&b)Zf@BxWw71lrnIP|+9EAtX4#-@cm$~|vG_@rj7jhzS+le&* zvPv`dH5hwo&#csp@EPfwNRjaFF_C+CRpo!r9EzM^BZ60uLt6BWQ}d2f7nOD&Jc^0$ z?S*gqJc%2I{w)3Qzv`#e71#S=Ld%V&Q&W^@FW_PJT@WU`KV4PKLe!Q@b?_ZkJ%d z_JnHlZob%>ncS|%>|rfsC%Xa^_OfVMCSrDWvR-=mnrQ)Z!iQ6Nhv|3j{98VgJ3eh1 z3xk~VpNk4}_0O~?ykzBm2xa~PSRD++KUF2|bp-Z>rO)^%06qR;Z6YhTnmd1DvoxbB z5C_sLX@l_G_kIy&L)PF%q{6g&5SCN3HnR>=_w&RL(!OPZ8EQ0Hvb?>>cJvOg_Fx^W>~2dtG%HHY+Rtpf;2xQ6AGfDOk2PEyg7<2or@1Eu`t# z9c8RM&O+5IKBb`0xy_~n0S$&hur-q`Bo)d&9fQgA;$uxpr-B@?T?G#%l4kwLYP z>BzF}CuVKo-@7@+tK9qOU4<Xx&QQnGf1VK5Kc zjjZy6Y#i$WzwRLcm|Ee<>`Z&aMP7UhAzfF7VbF(EAbA4>TX~<0%&#kz{n<{ap4jRN zU0>~yujS0`1j3)lrbHPmpITe1w>I8e^k3{KU0fYMY9wzJU6c>rR>n&cECe-`hHhen z)f?*$B3g+5JhDdO4kkwSk>KKQw2%HqWGt@KUjeaLH%o0qvu+^m`ICAd2Z zW!I_n(%%pMpW?Kmq!C&C#0vSB8{V;$=Ws&dl2GzMW`Wnc%hlv5A%S#q0vaE&G^ zCkua>qHvr!qE@R*;p+bJNJekFIP4&a)0mOyBQ@_M6iP!HGYM$XqA!H`x*SVsro0`3)_ARI`s>sa*_g@9(4isihM9k z8MHS}Z01Fk;cX)150%qWF>9D3>Z5$q4YCuzJi#Ptoh<3a> zujPWi^_8Mw@0fagWW2rAI=4!3`}pNCl2Wh59&Vn5h37ne^& zJMoN~g_QGCas7VQPR6I#sA$-ZHp|}XlE;M${M!!|1LjweUC7Ow(~&DGThdDiyD?2Wm|A!;=In7b34k^RSN>a-6cz2r9iK7WnPg=ijiHb&g4 z2-=|95+j1)2Nb_*jH^`!28R9+TUDXG+`4y;GI$kAHqK`as;CsNcMNcE$Il0xALCK> zy1XEdYv~Ev`>lIF)VOc1z&*yb(4gd;Pc!-UHsF&DH2slD@oEjl)QC#?N$cKe3bRC? z{&PLy`4!p4TGlLg@wQ5Q0&_R`pWv>)G@U`5Z{1t1@%b0ECy$fTxMpU|cP%Ad;XKds z#_yD@#N*?*(tXwBw5@yhXs*0+XYLXMugeHzv<_79^9YlLpZb#dKhMf@;4hlHx9$y7 zu0KNDoxz#;qmOf!O#bT!Q+0+OdqdlE1?xRwF_p{6_0M!$QP zJcBUU{aK0blkpW3_J7E1!i6guiLlpi)UN(GyfF1A+UR#rlJ440Ymd(N+h*ZHRAjs6 z$5Zv0V3>-*Ciyx0Z<7_b>36sCrsoVyejOWsZF3CH{y-+conebr$m6q4FyqAcPrxjD zMZbHjbjxW9*qYYiEs`EThL)<)u0UlNuho1!2Er={IUSjD zG0DWqogqd3RP;=@XJXa9nxaOlrd|D%8?GZMz>MSn24hrLxAq%A-+hhZpx;6&hj3|& z_QQkd{kN6;`=2qXs&ASa2I1Fx+|QnrM8=M7_c-Z^Y$IKk2gy(LJKm8@ucijC+en>; zH67k%YghKvZthO&ST}uxDrZfAqpqWV#~0G=Jz2>oiLQeq*da_zQg1G>^8rs6R@P+= zLGAOa0shV1^*i=RR*%A|hos;xn?bftNrvk0XBX+Pd}Rvy-VBHyGTj~eYpvV%%KoNB z;iKOmo1AXqEgQm&igl5Qd1d9p4x%VLHivi1oz`vBq&H7|i1Sgn^b{U9AJU5ta^z}+ z_`N6$4^%SsOFUAA{GxSRmDE)cfeN|I#Nz7zZa;Nmef(-ns!OUK@<3GFVe_Kg*1GM0 z9NncV&eBq(|6?lrrvxLHwdi8zbXs@(xnQ0A zMQN%6kES>JEw-AkhO!~$cQ<(7tDp7FkBkV!_OG78|M>t1T39B27>+58vVO}M<>|j# zOrQd3u!GB2nMD*=sg%Bq4*%{VZ&-x6!NUfwWL8^zG}dMaySXYKZr|`O+cmPW?c@to zOe|i9moc=fQ}LjMY;jP2jmQ?ZeS%{r9f=fMcC#$Fjai8%_f@1A9o`l1>wMn%t@>$|EK-F zh1DY_3;w+LIa`9Me5Yx%QF+3|C5&eFwFPY2ZC<9ZX$+2i$c+tT!g9E8=FFBSt((@# z{iz}S#k#BegBo80u1EUu zPLqDaa>egtz?jJMsDI}rvUxL6quSEndF9ZMHx@9bHKWo^tlQwAc_pjY*TQgqCj4*T z;o1+dqu||A_&+O&oYaO~c3)2>)@^83yex|%V%`?y|Gp;$w+7U3HC5R0;lA$!K^XBb@lTVVvf^og-OL2#)(Y!0a&n=$Lx9x{N7$ zby(l$NZkH4*L|vQxM34-w|$^+JpiVsTZuc+l!7_A~^GV{4`fdo%T! zcg8s3Z?*?Kb#cK!9|jJxwcmfth0BM5@O+W1|Fm~mZKIWbL#;A(ZUW9SYxZ$2t22z| zJgvA>dFWI$%t^D-t3Qv^e2eB!FuAOK8PSs{>w}yI}(Y^_*MH6 z(nabnsT%c0W5jl4$4S;4Ws%qqqM?dnw;t&E5j>^>Tq8ClIzN{Q;5Yq*k~7FnT3 zpVs7rWiW<3(XMt?9#D@pn%AVeP8;_)$b~A&ZmU# z*-b}ts={ZBxLp!QzD8Bp@Vc@C-HG+rz&>j2>Yp@W=ZdoI8me$VpFO4O#uDq<4US{x zN#Xq&(f%Hbbm|PNcW7>R@uhCV>WxW|+9jE)M%a6us&Km#0y;fKR(!wOz~=7S)gH={ z%ZNCA!5ObvvE+Asgte<%k&N0`{0LE{cw+5Np4__fUDZRI?!*Y$WsqTvp=hpdvA zSMQ&iP_vjwGu^4Eg3)kgp5*sc8fKHqPTQ1&4<~V+s?Co=O21ynF(Yg5IXon}xx2jb zf^=`amUk9C@QUrBZg*&?gE_J*x1dcn>u}C&_^|sE?6{vR_DipydJz?qaYpuyZ1u@* zX95j;7QN8rNl_x(EVZfzxZFiHf8fswLneBJgy0_@JEaYr-0Tdy&sYKfGXU=nK|Gnj zvUe4i^T^*gk~@4yWVW;P*L-_E`Fz&|_nY(C2=Q%_%2b!x%Z>};L~295Fuj#1Ztt7u zBwh&dmgd@SjW5kR>KgcUBu}(UcPJ0q5ISc8*Q|jjt&YWfItVKco!%ngS_dRQ&WNbe z-)j2JQT{NmD(}Ulo|E5nGO=PeudkZR94*Phi#tJ_athTL52}Z)i$9Qt-cI(~UoFJc zkZ93hD+byKe`7eYr`~F#72X+U|iJu2)6=x>vg1C#c`U;1IIDs^V&s@ zvSk})y_g#dyAN2KSVK!DejY7IW5-|pEHNbKcFdbY5@elMkb>}Vab?rrP=eL(MEzl|7jN!kua^q)c z-K5#PUqs)TyCOS69f=>1xwWynyyZ#Lf;P?SZRzpeWCGuILQlh13RIn0WtT#dve4f#KZ{@nB zQ{A6DwITGuA82vyeHXt#AMvIn!l8R)a$`hk8U1K}p~i1^68>Vy=zAth^$N9b3BQdl z0Z*uK#dY51ILR(ArFH)2%H$KGbh#IA+1rKIH=O4**p0GjQgWtGR+8Ak^N&7Rl5cO; zI=@;Ivo0lPuM4yAGV(h5kop}jJFi6~jT;TIb07NFyAW=iJUV)XdDKp7RtUW+g4CyZ#pwjha_>*dGu;t>5eo8AYErd@grh{k`O!niS2y z$~T&RPE|KpvUM5lW=8(a&&X=6+`7l~xKQVC*9BP|whOdRc>py)%D>(RQh-J1)XL-4 zVta~vN(0%n&Rcmf2rHdJ1&i2Y>VuXSigO_Ys$%QNp7dGizYX> zzRPKM+#^}Mdl7!x=kmOFWgB+g-L+x*Mx-&k;M<5xXH7#Q1`T3lAYScTR-p3ad0)uZ z4^Teg9O^b{IFh@f))AVg#AVFLiN+yfzT0~`vUGV~l{B_7y8h4@;Q5G@@P?TjNk5|I z4~vedzx9yG#o-_ydqw-xZe=>T{h^zn9)!JJ&&E2Wd^!8>Cc`_t^yA0!dl#265zQ{nE1w2h+!(lHx zc$!Uf=eAdHOe`#{`_HrscssDuusrTkA|Gw@IEl7M#e;mTrA<4hRGzpiS6m#?ubIJeGVk=g$b2Qrmd%Fr}PxatU7?Xf-+zOk-xY^XWOS*00#@i6tFum@N zqfX>YJoh7W3h_Jh!{HH;@n<xYl|uOX<@7)=#-o~C+@&`4kK zxmf1J){mT~n{&R+QPwe@sk!jHn+P-i%{IE7FLg({>NWgC+TraeX?i;6+x410wmw0=q5o>C zIvvT+-QWFQ;Y{|FTD8|ZR?y#P_3<2fgPnwf69S03`maXGmrlcbEOm-OACFVJlAKi3 zJsB5_b8le(f`@yXt%OEv{a0r4qa}#3Fj&EaX1wGnarPy%p59$?_@5|;x0i=S_c-6v z+1O40mE4Xtn9D-Lk8E0%Ol4<@-}k_U@z2tv2{kh!-a^sen)AOn*&zs}8$HUhZw=`+ zjQ4uV+Py=Eyv1Ae`J|e$AMQbb{6PNlvgYxYQT(>MDaOwXv z6ZaL2Z8n#`+^qaykAMkxP-%LyEataw_*ycS&xjoZW<;@XH6IuL9O6g)^GiR?m?M#F z%hltu=RmK+9H^qrk2k2VZ9#ngG_qoe9nN>PU!*DjJA`2M8&>=zBoXJsae;6Dgo^pj z+(dTSqxGV8aMMHW7uPjia{8m+Ks`R{UD@a6=QJeRJZnrMCG^x`i{HGzu@Yt@B3>~7QZ=XCy|nIrk* z>Mi8=q*agI34WizoX>8xGis@$#@b|}iCs6Trv|;L3+?q~7HKMt?~&kW%TM*V?pbUq z8+GdUhw1R%8;mpgi>EV!&y+BDfbC?IHCJQLOt@{m<5~P#GC3Cyy-P7Z?}R=RLW0_} z^52S36!}L|syV0e=UilFKk_VoD&H=g$ZzyxrZWr^-@NY2RE7Rt&A%`9L^Ve)IuloL z{;g;6$I{b|R2h5lvprC==@}=*onP6z2)zeT3tSH5z7}~On0OYyk=_osWD^5xJ%gge z({l`kr#a8Z^v&(&NO(UB2mjIsOz!AeTqsZ4$Zw&eVI*`Z$yg!tBL`R&lB#h#)d$C~ zl4PDm<{KN&;t!+;pQU0uBSPnyte4R*RhGWRLXV>!d1c#Hll^YZ!lIs@#nti{V*1)h z_65yMt-rW|BWWE!S=Lua?Ten)?KkfHIb_A&JfGiRex@YXoBlmb3>=VHzVbsx!->=< z`-?K8(-iTNU(O;87PG2fpU?kTqn*Xxw_`%Qd0nR}nL<1i;-9DFpht9h=LYhxcA|E+ z)%pClnj`-vBtQDDJ8Z4u%Re=tv~iq#_A^KP+chrX@l0!U9M%z5eb47F&}d9dI(S!m z*L0?Db8Fjsx9)LIr@llq2@$Sr%;LFM=TvAGtYRdk4aNRHlCA?P%VTN3h2Ew2DqyDz zD2fe4Q4}SLNbkM(vU4@@nw#XmCNYUoubO6yniw^9#ooYziVYP|6r@S-@cqwA&WQ&l z`|Yd*XVclAdvfOBX)@@MGb0!sy zY853bh_z9kG!QX?I@7J`&C%HLbN^3oG4&a)A&p&nq;yk_?)SPSb_+(fi5Y$0Suor_;I*ItfaGih3MVJ)lny2FU&2-9TWlMQ2pV|66&| z=0o7i_LGLXu}(rTf82{o62OP|J9BcULYGK4ckRXi1f%Gxx5Y2Z9(Y%;@j>h`&jl*d zTEszqY$5aOe_%&*up?#Cc-TuGQBcx5p`r@PiROh>I+t4r;ywQMJjLoBc?>OK9?Nv$PHh5BZsbgW27W;Ey!P)5|g&?8akfM$FDk)ql$R> z37P4gkc!q9$RIg|k*~qo7Qi$-W&G_4$EqHC=uM82ai7abb1il>a!+20x+_bE{};D{ zo=gl);X*``dGoYTNRE2PT^?9P-M_d|?{j-X+-8o{QL6pMOd4=WSfdf_NrOX^Xq$R+ zlosFeEH+B<#zYz%MWuWe+J2T>C&~N))N;UqnjLM!rxOR*CgOWV>9Gx z^}&C>iaM85F^Cc`AJ1s_M(vfladOmN0d3*Li0H`ZZrqAYM4Sm3Z!{b0zK9*J#Rf0S zWyR|?%7qW}k7MToq?%D%unCR!fS`~~++K#<-?yMJ@F4P`6iC%=P%eD4sLq!aUG!kg zSTB;j-Ut5dU~CU^zAcuQC0{RRY}pXYsvVOHFA|!zgwfxy05iQ&hZKgd8wHh`a;c-8 zita)2>%0x8&2n<#--ve|h-m;5_G`z{kfd@aLVKyfEajxo!F}+TFXqx}Rk`p?Vb(9X zv=?UG-7}whQ!x@2;Z#>CU9JS$!uJsW{qdUQ(G z&Vj8zyMVIPjdzD^d}fx(m7a<*gyX|Kgkv zQR-oD7{QCE^@kWqew^g(w!zlDhxa%AQWzz5g#>@b8$k|_2LgZ2j-jsxsYI&5`E)OC z2v$VJ|9S`rP&YZmZ7?KQi|bFfz};#I?eHjB@$9$!aVzr~&S;rBO}q+dWPyA6+Od$} zjr=9ssN6_fDv^hceDNE;9USr|{LW1nXVZw%W!MCo!r`tE(D%&`Hd)lVZ+6GtT*hWuqi&JnDXAJ8~I%5@LR}hX3{V z0{@cco}kI%GJ)o`9SWiDNgnj=YYLTaF*`q&HkuQk4qe4 z&Os)jp&w+kC#X~CX-{3>yxp889-2wtD1tlTV;&yD3arC|I{mH4dZ_~>t|#a-frrRN zCPgN7MP(v$9TEr5(8Nxr2!+L9PdWu_Sv34`brOFC`ZE4B;%PdRc}czu<`1VDgsh~? z>uD17(`fbDW%qlJu4)s{Kcaw1t&8bnKg~PF(^1q6bqj)ou9j;IeU^mmyZWG?U7%Q^8PZV%}!C{|2gxj{>~PYVxL#LYgJDV@=RE z^v4gB(J(s#H(K7*Zs?D_|2J@qliO`hAHTC9o97eh*GL3t^}XOzuV8+C2L13|328lw%)*6t4#Lnh^w^NJU&WH>ZAfDZI?#%f0t&gYWx34Hgt2Re zIq{#J0xvy;9gaY6)^3((6wKJSzq682tw{l&ic_1z%dXA<;yaUA_-sGcDe0w9-1nrG z7HNEsf3|yo@{K$R@*sUd?7P_VF=e$Nnl}p0TJ}vi4z{<*qE%pf2Kpj~ZK8Rhs zXS1vPqL||G>1@ny9kcCVeq&s3V_uYaNP$M~C`z^e7UL+rUx{Q!MWNzq{G5twA%Xd6 za*rpHOE%V7C(B#BbpSGqbzg<_KAN~DxdX>AoMMcQ%gpa{ej;C(DpjVuvQAG&vmmSh*ngLv`F^WQ^e4#YwA8v(YGDM%KXcW^(cXZ-> z9puBFfu8u z)15LTUb4cv?~Y07mgu};OCfrVhCW@wz(h-yhC_T@%{)fB(Ck7NRMKNJxS!YNwIL#X z<`r`)Z#DG!m(YZ0pfOHR9i4!x7h@7roTe|LnL3b+^KjM-DE7;4L!Zw?y$&EiA81B6BK-91-hO4u#a_6GOc?ZY+oo>lqbSyi>kEDR$nSU) z8J#(R^j+*(qE^=@jz<0Vube@+E5{`Nc?lDltDyB}O$= zs`H#m_Ujw^{6{=CEg^Tb3^G2;e)cgbM*{o_P9d`*Kf3t`(As=x3gy0qlf;Iz$-(dl zY0C$4|9Ktew4pQ!Hr1C?K(-w%YkxWqXLM}-9v(Z0zVJU>okW+?+%t>(;MULv=oE2G z6eL&W#*3op^44^3RZg~ot&uJVOqcpH-Ty3O><(j}{fgEk8q82>8_r0M8GYHE?w!L= z=*uOw_fQCaW%TYKz8#uY%DWhfh$pRj1fmvGiQ8bh_vhTZ|Avw(bY>g0SLG6n1b=>o zle97|rE55=rTqn|wPWet3jC0(s&tV^ht1ZIoC+98lH$!kfKOB?=4JuCk|T}Ha_QbO zPR-8wo6jHCpV27?O2j-M@5IITA^W*4O9*7;eBN}83t zeiWx^C#LGc{`|6>BDaDgkVr{`&@vM~tfy|A)wSuw?)NHreH0#`+@tF^YwEgYLU7K# z=q)r);~H{NLOTTnrrLyQG+#%_Yn$k@I*P6z0X_&!qg~QEG0*SN&vVdSuStG6nP3T6oJ7hWxNA>C2i&Oh z;B44UFE<08KV`?%%AJ_gJ1^D%OvlU_yI~i^^g~v$o(KolIm?PI6ujJ;ICFOk0 zI<+Z$bR895enS$d5p5e*Khs2prRTKR(xr-|COd?N4~|M6%2tP9(fEE6-NG5k$r3Z*CIQew zHDxbF2ZmtjmOlFMFO=P4xYfajchJnw?8m7+Sc`HI{6sXJK4Jy@C@*Jy%sN2#(|Kjv z)K^SjEk3l#rMQ=vGjmzqpU_ECzW4X|gvW_wQjY+KC{cu7ofA> z&9N1r0x3ni_ktRg;S>A6EhwvRn?6lWR9bH}?&<#=%+iE+iXb^gO0tOpjgZ^vbi|$l zzU-bpjR_9>QD+K-GD9tcl<>_`e#lk}tj0Mz`V}NDsF$)f%T1s5FHz%WPTUzsJ;lKInT&Jc8!+Q#e&q%s8+xSMz>8Gx8_x+ zDR7hC^l9-zqFT}%_zC0|lt3Ne9eRT*!g-Y0gKw>ceA%M=w7T(!$zcKy)0LZ$n^37h zB~w+WX-Kh)SJ1p!QDsRZCeXCqp{{z3pV}2m9Z~2vXxJYArJ3cAF(>5mYb$8lT*j@IC=`&vL=nb?Ecj5Km3R#bUb8H zM>~e(e#J;g@g?0H>JH7JOVElgH&V!L@Kd`2?&G#ZD))pvAIpvz_yi-BFsCaNL|Z}W zy(-KwVLhbdQ@elj$T%y#33}>jp%Wc+r&Ry`*%ibWrlv;TxCd`yZW)mOr*`OM;UhvM za_HIWjJ0PEVx$pH^B@)3i6l4t6&2j#NOV&9)b0xuE8v0}ySNVTHrSHWE*nIH9xhR!qvzv$#7ieOJ7e#8V8HJq zn%9E9kTXhGz6wND)UzePOWqT|72TIYmt&3-b16*H2vS#&?!)j2D~Sn^f!pXhu}$53 z;#Xp%deOpGjQnc?MoQ~+LG=@KlVNLmY%R|HIdFJMvzg7XaK9-iOZBh;$r-LH!~Ls` z#v%pk(I$> zY7OzF7BnB5uajd|DO3inp&;;~PK!V7pU1}S`-dx0r1^?+)MDeP=QZjT+8j(&x#=>} z9>r8uW29Br4QPpZ(cN>tiS=@dxKlz+9yGtj(81*7cvh03r|~Q(SG2obkMKC6aCbq| z>bUVJ^s7tpRMl|Xz?PrBnB_O~zU<>N8@8jBg)l<|B^E7VKaa6lw^rkB*WHipYPoGN zC|(&QofWuAJ~Bq;ht9w~8^XPzBF$BrtpPU?cg1%kFY>m*OJTUflPbYOa_?!*=QdbE z1>(K~K-lTC$8)!aA7$n29Jy_9hkI$fhMm@c|7+&YHaa7*>LR>}SLtZ7#**F#=Cj7@ zOIUr|CcRcss7=obn*dyENdeOgF()LrDwPV{?=GTk+rb9kyFiC*(yJG`js?I?L`32- z`q8>!WCy4;nHIe7NTBk4pocYuZ*6Owh$USqHlVUfh-tMTwN;dm_+`Y^fu|Kh_35Ba?QaO*H&h)(n2c`Nqc`g zg!rEf3cfy$Zj6$K+hC0D=fc3AL{jwu=sh1(_#6^E9?8d{-tLbswEY=3Bz!)wVvH^m z(Nlo#%>o)%PmAw9h>`gA4O_rc5wWBUZmIArOj9?u&_2V*w8bub`!i#DQxchZr@>oK0KaV-h;UCQaVC|>kt2g0~jK+aK z&uDDs+jVd=5B;Y3F`DE+X$jN*=N9ad7o|*-$3X-oLVKUl5I6(x^mV&&NUpJdWO6QK zTq|zaj~~#q;#ZXWKTnFN9Xq43g-1&%asW=i&2+x42Ig#n)xl0aW@aO65OeBEcJqwJ zr`+uWvE&7Lti~wiZj97LN?30`8M{&5mA`N?+MJ2F%^8hC-tsgR|CtVgPsz${!%xZA zKBZSc*J05X;k)Xa7^EXl?Mq?SqAYq`g@iE~s@f&nQHzo9V1qAH<_`+MVE3F|Y&-JQ zDur`n%x~zwAxuGgDck6SYDe58x4lYcvv0Ggx}|xnxxx?VH&5+z(bXV5QEoSIY!E=X zWaBXJJJ>ce4NAD^4SIG{$wDDdZ6l{{n3Amyom_2^nTOW|Xi(Y}e#-t#!7T_PkSELF zmFKBxaJ{d>){E%6s&U4V_H@8Ag`~)e(J^9_3_d}F=)MW5OVo|?)CPH7PG5{XkwCLw zN9GwINm+`qnC|c*bxu<{TT%&fz!_;Ow{W~Tk&P^$$y{{Uyph+=Ov*XA8;Sl_`+eAd zzG6)4#41)hrm37EoIFJ(coKx>FT}S(cS>5j0=qvw8#-B2xkr3hS)8O5 zW<~rwUAiFRwhX-VsU_mw@}$$Vm5TRw6~u1R(^OUxrp@oK6ir?6s(c>Rrdw}`oY(II1-dWFK*qJ0-- z*g;-i`zPdXScY{16==h9Ej>#m9cplsfgjY3D-;^|NuyI#reNh(1C(kcGZmytrG#rx z_fky(G@4?$H_%0#_!-abOQ-V|aP%HPJ|zyp-hYUIo`O{{#OcntmV&*v#3)eC8VU;3Na3!KDMm?`3lzQID>uH!(Mx+N1QRlbah6U zMJvzr1|P7{)O)P>;#4-fZpfak9>HQ>1f;q*T^P+0Mz_VXgP@Av$FiheaEcV=_<9~V zrk={4)k8DXEz7NMyD<8d_|A~Zo=${pk5Wd@0gTiGR+NK0eUd8O1d_+|RM?ISqay-m zgG+W7yku1gk7pDtfl*S;-SAT+TY`E&A1Fz28@w>8CSC~)%3Fh*fuC0tMvmwj{d0%% z9|&{1HibRUrW1}7TswAQv{)GUK7o#c8{BP^|1sY(Xhlfza7;8^y#t4ZqwLLc7e@ar z3e`nX&urn9^OQ3NeJQQ;YuHUL8j<`n0B;IO&|nuvM}c6@I}bE+X9?%6GJ+HR{Gi!>fTV1b)(r$t%qt<&w4`Hh&E= zg-<%z%=2Hj7D(m>74B-$8Q95{Po$8MQ}BA4O0#x$_i=`dtFfNC*8x?7Pb7B&cMCkv+#SvI`a# zTBj=}jSTzo6T5O7#7J&vUltju0vq5UM*=Z&1Thd$Ucaw|D(+#1ml=>^oq>Pz!zxsA z1$NWaAer|3j*+1HAG$@<8=Fd}FM~s_rvQKI3@qd7&xhrn&1cNciKTu(ZJdNy?)+HD zrZuzF3kHb9da_I>6`g@HUJr4AlZ}WH*=4e}GZ=}O|Np7MD#WESlTlQKAe*X2QwM!c zhW2HXu_o4uU2sAFeEXj~!@VJTdELNm(}l9IO?o;5Uc5|k4LyiYpjqma@Ea^4VXwDA zQ>_LqvvoMtzE{P8ErvP+{`_OBQd<2P+#seSNU(*5p! zZ=qn>NQq~!g4GqN=$o~evl%#q$KBo_MgI@h{PFSm%XhWh?_DaUHnMdU-!N7`CyM=6 zj~yYpyMROauD}vsgr%`pFV?ZnzWcqiMISyR=K=1wnq~&FjZg7z%WUiw_T%BzPuT0V zh3tvuO6aBgy(`2-bZ349gi;$2Pdh*ZS`5_w0@8bAH9f}P%`4(S`TM=mVq!Z&l2*X; zEv0koe{k9(XEdg?DN44 zm)MMNSOZj<)MX+bTNqa~xM~r5>brzJJB$B?=lxNF$Kj?)?%2{wI4js z^LmpEr>=p!)dd49|_IxlHaD1@6HUoWOzEw&x$Tz~`o7D%pIGbN+9gzN(Khw+)();iM$5#5wls9eay&Cb@)7#q*w7dE$uj~9ZLHS-9!h!Z z6Yfx8S=`jKanwDA4m0hr+7EGF*U=4sYJ7&Og+3N))D0&n6YDbq?s2xx-^@;)3&^u%YLs?Ej`QSN51OpWZd> zggl!YsaeDnYi(JZVo9?rUq6V~+F*Z&ai@bEvvjJ3j+&7pRj+s~n}K+kl|Q*Rt^1HA zJX@MdGq58SFo)Drq96ijXhR{@A?xXO74+VugoIHo_of=5<+20CLuZ~aA>Z$MaPDs? zA4!9(#X{b3e}#tA(gAaP`8UoXc|D zoAeqpg=tSq=?cW$wxeX+sz{olesUo-PN(rG$H$j}g(b~;jpaghY!uT3l~xGMUjsO9 z6_Dz6ckt4RaApc=)@qB%`LbKD@e6U!)Izd@pJ6^Zjvj*7C5e0YdofM7$fxgrgQ&Jr zmfN6S;~t^5r7*V39WCuk_JQ1hdQ#^ zH-UV%ssG;_fp=Usmo0F_%Rc?gcY?hkW0s&&6pQce(`IZ7{$9?OcE3xhFXtPpGE;&l zvb?_xS6V%l}zv`tMAK7y$73QIkS9YYwzE++Sp2?HP5A*2djFkk_ zktD^|b_^i+286v1A3QB1gW56sTD;2^SXyR%0C5GhAlv{;E8TNl!%l4OC#PM2_HLa( z#hc~qYZLg}=0p+r=6bw!)vg&e4g>mO>t=#-Mk$#8EER9kv#;gE5w?PjC}=RXSoG1A zWBv?0dFngHE@*~(buHCo+;kCE=IzUu;?Tjllu$vpM5&PAbBJG;;$OHwz-R~~f?BNGIsnqp7?#C@+Ci7=75>$e?le|qj zJ-H5Crgdtx#H zoh9I*PThov8+b{&=i*itl@<0;dXIM!v`yLbr-Id@WNP_)9m#IYq0=0#lVU-YH~}5K zv|N2;0rj5r2VN?B{;BBrmSRoeiJV&mZZgD`&rTZSF>r)1dIg7pqW;D`RGcLudpHcN>iX;gD0XWJW^zJ*X<+?Ht{Re zA}|>;DRfGir45Ud`6)A7lVBjL-p5mUb45y)KN3b&o!N04t{`SL3O6A-mXOQm|8ON> z-V}Gx^U#MdwiGc8xiIYg(W5#Moh2M+VFs3YzCmd*(hNQs+ z4l&!fjzQc&z1vciC=8uUrkgmQsb|9RPAK-?1S)}_hG0)@RdA>FGJMLemMv9ZiF%q@ zMYkPsdK{(8aEcP9{q!_Gup*W!ZX)l(GYuAYOI5pYU06&pMtOAn5rxT~;v?;t)0q55 z9$Anxvc?eMH|^}(QZ*!Sn#wHJI)%Mo!B*`Z!X^GYXvH6p3wRfAs@)D{-|)<0=g5|- zcfxSPWEKQVI?A!BgEeyjmKb}K$=E%u5axDjJ^TJHTe(o!QuRTw?Qy4IEksK#C_sGS zG2Tz$kS4hd)=i{Y7uL|zg%sGPxTUIIsDBRF58QdPhLQu`C5}rm@>N3&K6ug8^TBj- z0!__R+fqe>(#_%oU2xgRD@q*j!`^MMBVe6@y6pG{(88^|BuCwN^1U~__3%Umn_nrT z_cp~NkCc~OT(*C-<44Lpb_sgPpg0wcE1=4-n`7Yl+PvgWeVoV~L@QMOb<0F_ z9%ZY!>kHY~%9#u`BTJbgV}I{Ne#j_uFlA9pA$2C(q$hoQ-I~l`ccWSCiMH$7|0$!l zh!$hp;2#+nuuyT81`~2^nY!`6ZiPyDLA?LUpjACe;bF?k>gw6&aJdXA$+s^GyM@KL zgD1M*dEHPKew`MVR|ZNWwxIrJf8@9qiL6e2q2GuG&)d-{v)cD zpUK$K9gLX;hp_iAGnnN{mi1-#z|}I&(kU}*ML> z+pG*>ekxt#$sg71|8$h9rRbM)gDF6u;yb8|T-^EXrS-zT%Ls>H<$5l;MSEN@@-pW9 z8xnnd z=fxiNyFfDpT+|T;%)&|jrW1)l9uodoPC%Ap09$(R9#gh}#V!E`15J0esGPqk)?Qmno^ps&%|oTqVvM>CPBw$z zZWWzc{xu@xee1y?D(8O?d(Q>4PGHWb+9ffa(fIZ{+yr$XTx*?@c=pQBRS?h)I0``J_RM&H zH~p+w$>&0e6WtFiprsd4ht*jE{n>POs!)^cNm|Lsa0pCWCCQHz)s!iF6uCt>Q)uz~V_7(qTkmcC~ zg$Fbfn7S{bP^5j~+&sf`ZI`d$4G0rhZj4<*oJTja_ zg?d@qTf}cBKZwcCQ;R&A%6aZ$bifAQg9qhH!a=Z=hr~j`I0isU#YUYhgTx00^og$ZwTt&Dd0=WmuX zJ@JQdWsKIW0E%dFiln=%@d;3V_W@|ypR#gZ7=jJlsjx!9^u!b4R0XYBZ33%my_DKK z38nlvNv@QJPA6xY^w1j26lkGsdg3x~Z#v6<>PO^zUSTn;o<+x5I1{2v$IQfGRr2s3 zz+P(+V|#^r7dNP;Xm2_-OjD#+<=$z}fj2R9>`%eA3UP}=S)_cNvf;1N(ldZz;5sLB z3jgQ|=b~D=;~P5mFLAP5X~JX3;P2A}frWxV4y&SA2sdSx>@;$5tNc5L~-qQI0z>oomx1shBLq z0MDv0HvLIfzT?U{tZsrYtjx+IHJnx50@6rx)Ayk73?MZaXwh%0=dG-hgkNBb9nEsNA1w4ct?pe#(txGu8F4n zf_eriKL59jW*+pSc@QTWoJey!`)(cZ=gvH$5S6$bvQ(#xKk$DDdgSM)*wML!$o4Vt zzGhBd?bxjY2K<~pHrM<@Agk_J!49b~U#Y*`aYUvbbOsmq&39$mk?x2Z-8wMH)%8YZ z51rRRTC4{<+0FE&cbtuGJFvYKEGph0k#TaW@c3>WSioz|1J$A1`&>fk1A5L$Ue7xh z+(~z9P0)Mhz0mc+I#B-Bfj7JexlTfRStX=3j`8TPh#k#_?vrQ|o<^C0A0-^JZ-10H zv8sR$#o{FbM;7w(1a`#1TQLnHp-)tmLZ_8iih)Bu+qYAA@|u+`oq`xIxZ%VdjD$=f zNRcrsn9-x}!DHV=!peNMkHoM(7V+=(jH$|JGPNTRUwBpDy~2x?IXTSg0n2HyWC>q( zNAGPDTJ08+F?RHkFV4TRmr|u{pKpgsNpXrL#jQ=H!*!8)J4d4TMhJ43!jmd+&Svmg z-`eBbLH@rYi>Un;mDu><_xC7yp%A_I-=a0-@02%wGbOI<6(pE=@Vq+Uaxf~&@LiK% z=Vn(ZMDHyToNiLcNnq{8?%DJVm`NJB2Rfx^G7k1KaQM@-GWRC)U!5hgaWOur*&ar) zQk)FmMAXE_EhMu%MI=SkSJP7eD>ZDXFVy72#hm ze2Pc`mO;|VKMbHR@$v|2Ifb1XM#o$6FMfI@zT#Q7)C2HZbO@`hSb~cQXoQz6c2t|? zai6VbuSVFM#hs`3Ak4VfMXExe%ciN;#uuH&k;MjRF;ng7v;?d8AD5fg*>`$R3IBLv zYR(W)g|7m!$&xrcL$naq`YG(E&ma)Bbr$UV={?b0?;lAef6oQoTC?-HS?C+w0m?%| z+@~X6n@zKj90`u9EMov=&V(YJNu6{{I3WOQJ>GeuV=6W*Vx*1A98mg z)vyH**8xJ`x%+QpTQ7VPnP?h`izc23V2PoyJ|k%!&<>DdOfN;)IpV<1sHqP&y-*&n#ehC z#WxyJT=v|Y0DZJy`}rXy9_ex1`GEU47DV-zlW2BtX8JLkvT?LF>q|(n^J22lPbQRl zMeH1L-1$F#$b*X8MR2T6MpO$pSE>Zr44I#3lT8<@QQv2q0`2X%^K-7_Yy#bZ)^@ke zN_i@2Z&REgtoE$2?CfjTz*ANdFSY%+RjfO{jyflR#~);6W&Mni*n#v8r{V}=I1ee- zcmf5)=(hb>huT#+9^5VNUW9&S@jU^C5>c z&2iP+0*unL`TKdI*_&);@EAcD?*MiLwha%Au{k&==k6?a8kT{7$5Qkf7j88em(3K* z)RnGIW#h6V-42{YE|)T=!ewLM)21xP-WP67;M0RC`FAjVwZ$~cb9eFWCfK_R`V2IkWg4;nK$SA`tOu9!@{ld<48c#MTQQBG$NA|@Y3-z=};w&fode@u@TZ-+$sAyP}Cbu z3Pbt188}DW#4kr6rK~%BV!r}@fKSp8Nt+`Y(&0VM1kk$vqU$cz>u0nHy#H>1FhD=;UtLS+|1mUk(}Nssa@duU~ag6!)? z5k7~ThCp5|0=X*VcsYlxT9hUS0?Fn0V>&51&$-Y(+bk^ywKo%0!kX%lro? z<8+xS)0r^F^oDshp``iMmdhgIUOu}I;~GVg!s$1P5685(V7aZkZ8U1oSER2&)lB^O zYRgQ~LMOgtF7Owsficu>or_xY2PDH*m;clxe!B=dRg_eB>yD95H|B%O+ z>~Gu~x&VqjUr7r1{W}Z1Ionbh+bL8BQcRtH7%kEw&&NMuhq6{3T54%*S4}OAP9$tbjuZ?)|fv=2x!_}bzq(Ka$Hf-a- zpU@e=pGs3hsRhzzU=u_i#F==Zz&YkI*OZ)3&FzUasJ4)fp2fEh0MF0BP81O-#Q9t7 zjVHYB9d(VLXG>XUF^`%tl^tsYiu8pRY`{*MC|nW0*J+5xI=4qn;oRm@(z!8ctS<6D z_68A@lR$#+DPaJZG%*m-3HcIq)ZZR;nBxK%ji^BnDHYJsU(j9-ntTMiT0N1n{&L0) zqwyt`a@(T>&T@chi8@Tz%#ckVQDVLYxa&B6o)wq3GnUl`AK}9)=+4SNZ z)-zH_>Nu-(TkHgXRw1w&^Bi<|3X?w&AO5%4WmTFY534F%Nl!Reg}p=Eet?|LR!gKd z*o~8qDSA5}AMPY-jv%W~zKH&sLt!0yDHMT`*C5q>Pol^da~_xuK2VDfHxQ;REy;VZ z9x+u53aUAQInMx5WB<#HXibkIEw7fR*)BTq;W6Ul1tm0A2>%jS+Ltg&ia<)e+&WDY z>CSuHAw9^(I}Wn7UR*wYd!iRu=4LpZgS4TQ7X6`tT_N8LuV>|$+2x}fp=|9F@n#jv zO|WO|rf&)hMRvwJP-z!#L`{rYh+;R3e(ubo_yO5kTkf^}3YzQ#{^>(Ig+rJV68vAB zfQ1^(`rpsc;*PX_J1<)+$LoNWp2~0yCP$J&K1PCK7Y5-fo^hwOb%+3TEk$n%+1fZR zR)GBhCzzc}3a`c*B_XPE#7WGJpwSP&c;z7RaQvECJl7sXZ?J>GI*NPZiII@F@3ET7 zmazOOOCia(6VX4UGRTdadMsnS&Zycgg36~OkI)SP1n^PkAg!qH$8&cdC>zodw3!>S zqT=4;IA0TRbSJJ2=YfXMV%?DS7x*(W0q^bdl|c_hWX|LzV{N~6XVLZFk#gpiph`LC)pJEl zr^M2$uBeB-!qz>x2ptD&wF8*!94>4%egV<|kM0=U9{2@c(*%#f2)0;>6)4(a@4B!* zN)Y?{wEV;oNQVmEW#hL8R*H93S=lGwGFINlR(*a6b0TW=ALI#W>#(I&$V_|jj1_?L zE6$0Rx^t+t5^lJe)$_Lm9SH*C)6dogA&2l#mF}D6N zV+sl^TwzKIQ$Rz`ZjJ@vUABNh@yr3d876}TY%lS>HyaH)j$%%ZBC1`vwNA@K z4>xE3QBJjuGGyn~=~msW@t!_Qgtd5wK%12DZfxIV9Wn;>p>6y>iVYK(^E^bHUkw*e z`Meipf=?Lxw3(ImS$nd9rHoD0nTt2+oc-@|?~zONe!pb#V{`TnuGxp!I?n?DjWfSwz}qpj=#XZ1ledifJYx^r|j^MymJbVSJ=K}K0nEb zQZHRW)nLPV+Fu9U4Jo_t4QKKZ_|yfw`78yxF5dSy!C*9vs=8tQ7N*i5G-4iT`5De$ zbu5=uz~#O8;znBJbn$F8hq&qmuZ$nN#D5YYShbl_&l`T3055)UMi8Z@t{PZ=}iGPEW7kv~uSNfCo zIf~P{oSfSB8|DNTwuV5@o1*W{1d2RAurvkl!_HmENw>aNonTR(mBl?Wz(~mF!;iSr zm8T%#SA5D`(joD4f8+FYv*{uB$jKwXaTg=Od0*laj-aJ7BwD$b(i6tw=XP)oy}lV` zSku`_Ye;_}7$Fp_^D_3V?n2?0a_QzE`jpDW&-LUdRi~5XWM~F1hvZcY$M^mKO+d20 zZ&3b)7)8M!sLc2Q#k#1*&n@AnXcv{W+Cy#H7p1kr221heUFRY1Bb3n&SO$D;QdP!H z0H^@2=kdmT3l&XhnM@yT42W-|w1mF+nfJM2{be)}yrWcJLSJpi-es5vD;SzZu}|^M zI&aY(mye%m%QxGwoY6_Ktaaupwhb{#rp#DmBjo2q9_uv^W%i0C$dGq&dCOmVNyRFI z@$~W9Lb{_vE9oFCS0I(O^5m>-M9W(=X}L_(#pQq=T-r`>5Xg!1!Q2i${di@ zY43v;RvDx_ouVI<}spW3P(P-Xq}AZP0TxN3uoW zw)d3THVvdec2Yv0%z?u?E$KO=Rew4q9(SqG;H3*pJ!|(+ftor;*Niih-tem?bt3Q$n>{2~937q1OIXxI9=J zu+C838j6ObR7kQZ#?SB*6`F8YfVEjxP}DsStP}dA>M6XP-RR`41q_1z+~Ch?xq>q! z_mCd^RLuhVQ<9?=+#^7Sx+iC+5BETOKgh~}jhl8@&~v6#E!a(=E`yFrR{J)pvNB;2 zr{cv1%SDiIj$BQ~$ShvN#io+86@y9ROK5$pt^I8> zSs)o_}m}WmpN$$N3#Ui%m70ZE6HaFseyD8uUIHT<< zPPC6aqz;@%UQ)_a0~ovYkOSnSKr@*4a_#o3k;!PJ1{Y)RkJl8(yAHdUY~ZeyL-%~ZXNR%p*%*lt_J+{r!)2t1BU4o? zEpyRvF{u#LVvXbQ|EUcd*fJeaBXG4oMm9Z!G&|;!+nX>6{TkGZoE$j?LZ|Jmr!`el z`%%n&qXfIsTS1oK>UaB=5;TJWgkm6*Cih`YHQBVA!{p%i$B=4Ug(9i~<$HP)88m~z zC4o~7rllvLWw}H;3!N<83T=YK*`Py;^&;^8C1MF2nL`SU6{T8C- z*x4{7M!_EvcfJT+XXEu-g^myQphLgIm$`J+QG|cTQ5Hbei+ABXEqI zNMYKKfMV6lLV;K`via}^iWBjrDw6CG>HE#rE z>d3*Bs|x}Kb5Ttbb$km**b7Z)l|(SoRls-R?Id5Z5tibg{X|4uzvH@-c;lnE57eAcKqxq2UuW{ZlaL!Ax?>pw>GO+rM z2{4^A#dF+tWqSdAUl+@{0;tr}vKPu|SPD5h;7SGWbn?i{5ps$|GjNE)Uz{ozP3@rJ z0&OaLY!6BE!2S3JL^{BM^5`tYxtA0IFDZQF&s{BvnY#y&=5B(|84guFGT;SQTGBQj zA(}wMG=u~o>Uf1wvFif)ti2yYPlu*bj{uE~-E062bm!0luQ?RA#et$>-^J7XD~|*+ z27h)vDJb}~1$)PNU59;=J*2pkurd*^DGv5sbmG+Hp@lPn0#!oDY$58lPh-xVu*G|j zDF`n7zwy|`c78XvAS!`$bitN7K-G|^HLqZoF~SY+DxFx2T?xgI&F#FE*x3&&r4ctS zkEk+g_i9```5W{BQ>R}l?q9; zL?X|1=$7+Qu*LkqDe*6%C{U^_=(&_hS51L6&!X?CAL5=plxX}GJbRBa&|h(Y=V!fG zM#iuJ#}|f?)z}n}2fjA`2#PZ(^ChhL<#=e?yFHskRc$E3pMj(%)?A)`n5=_!8Q+`0a}+Xzf4*@sE(B`^P`0 zX|IILMznVQ_=`LFUZfE86m8kedCpAA9fDkTJ5uyFFEA2J^6O8)5WN&H-F-F~6vv>u zcuNAWTT?WyvE(6PyJ5l7Y5_&S(I20oUQi!W@(z?!aBV5!eI}MgZ$z|2%c6*FgzuS& z$a7C1ba71{v%pP#-xF5iqO;?JxoExI8^LBLq?XxIqY1tmRtp`r6J9CK%|^r{?azsaIkauh!EZ8Ja zzK?HG68YB}WHCaSEv?9(HZH@l!Wv@4NJ})mGNtwHu9UQ6kZ-yp{H+>O=z4)lrM@OL zFX92yfP_Jr5AJv!(jN0`P}toOz9~%b*q=^kvGSSIDepRDRI)PnvDTh$Dn5gsj%wLb zpVIe@f}G=IdgTRh-n~BXpiSI361e5^3Dr!PS6BiKyi+9(-r0`&P_E&50gZyYnhZ+l zc`xSV;Z1<+WXQDEw*)O9*>~}3VX9E&gL<?r6qFu;geMl< zqd~;(Aq_XWsnF1cl1zV=Vu`d;{r4rLu8DJ32_)#`C$++u+G=_MDjCb8#_}A#9hU2k z110ZW4L^HAItg6}$hO>ld{C_EOQt$}i|JF!csdjNzA?@%RCokv#R8mcikhs>yN?G1 z1zQKwYh%c9%_v&~j`MWPlWv6;f4GLs?w=CLq?4xLwe-hxh3LiTvI?AZSc}Te00GPc z)z@NPledK_r-7p!Dk(yy==$h@&^JArJRt?f7m5p8q;=N9NeP8RwX}$gAT@R)MVT_q z9aUcoo&{kg-4F^di#+2FM4@fE_NlLOGuTS)r;wd`IVw%kTMj_MsHC9(KHz@}FZ} zlE1mf9a#1i#f_Z;`sdt8rnuwsWB!IgKCSb|mLF5Tyb(rXjfZ`q^4`(vt7nh{-@T3! z#`sIdyo(w6j9|dEMR~=@gG`kC;+KB`T|S_-HM`U4-oub$NXJD3?%oJnkn6(OW%bC= zXA@yJ9S}c0igLb-^Vp=L@R?2K!b7=tzDLkn;7@~o8DywS^AF1~Io5btk(`De=f>Nj z)c4wZS}47PqaoJ#0~n_x_kJ;jSA36=p!#_r6;a=dMjob+fg$;$fAYCg{7WG(LmlVh zr&mO6DHwSh+GY`uz)Om~7nDVl9#AUgJfXljDbgZcXxj%7u?aQCxx~Of8-4)?KSR;Q z6Pk&x@SZL@_f8b?iPzIVksF5oe1nekO-Z(_8TwNXoic`P)UtP?vhpM=l-}=Hz!@A) zqO~13Q6);L1?M4jN!r~&m(cfn1>6n|Qv`VacoFwOz9c2N6G507$RiZ(a0Av1dFrU4 z)P>;iBhx4sFBJTBP`u`yU%-C>KfOPNs;hBxg?azKr1KAo>bm0izI`d+E+PR9ze$iE zf?C4H6^JGxH5F{4EvKqMd!nRHY9Q-3Q2eqm6raQK!f+wGEAFhDiS^ zaiQm*y;>>POw7*i{q7DB=p&_Go~XXI+9D+6WSiP^Ay?wBGe(D92G{W9A}n@h53ovc z3UAaNP7Z||G+I=3WS69l8SCHwpq3GOZ8wrT7@|M ztyIRuhW`w>1f9{GzAq9J8r9>9MMqZ{GgeXU1IB;8DcV#QPeLUHuAapXOPofJnx%Ty zv*@VRNW61(J8@4_v}Rw4J*QD|e&m3rSq$2%C*sMB`DnS;k&cfCRr*(1Zn$Ji@_1!M z?ISHjw;4JCjNjxUvwq;bd+hBOur3--sRRDvh+2pr9Frs0LzsP#=)u!S-A&1Fft!9e znSDWh!z!bPUQ20{yzvRy8srnQP-f8v=%eh_*{L&|!Bg9ukH9?+)c+WFG1QXya;YwK z{y&2QWlSD6x~akUvxRu&%3-T=Yp8PXX6Sd5zXrk0a#&agGM00f_vt_+nSAjqw=?{x ztTM=&DU)Q)iz$<|S=vA?!{@pslG9UM6$fpv|3Yl|Tpy+=@xx+255)smLGx<9DOl8X zaN-9k@b{HkSEvJ-w-RQU)vFP_B#Hd9MXy<+lEiwfU95ATU6Rs2n}s(~|G`OB8qjTj z2UXqs@|~Bpbe*29tXHo-bsWHJ^P02kJ~*VrFDRD*Q2XRf1>E%1;bdM(|H>{hisJH%Z7Oq_RKEyCsjXo{S4!1U%qaC9&A%y^jNc0uMYht zPIiVrh%oDQs*8W3_I=iDl*97IkHMAVKNY*_u@c^zrd=W`9*DK~yF^XP87D5iC^NY) zm{W;(D?iOI*CLdb=jSV5vZf>`9G%E%0TnF2T5%AfsLrT6!J9fI?Ns3lHk%CpG zqF1=cMgAHpq8YJ-;nRunDj*_xU$wL6J#I>PU2Pd~l)CECN6V2mcK&1oU(HZ1D0`!u zDZIbkly5OLCG1qM8j&NVqNE9P_EK|Rf!^Km_lIy1Z=}nX3G67pqKtu=PnKL&!y2Vn z^~N@;Ckk$0a(o>IkerImdM3e7Yj^4szDj%<~go)z#YZTwrs_ZW5! zv;9m3mWRA5_7!l@gnz_}mKRXZFeLQyx<4GOKKv$cTk1n8JQpV=O?GC#0vB%7$lcS~ zGE(SpdK+G{ce;nJSqx2+r3I1rzaxPTZThiRqHUsl=OT%*+xgmf;vVgM*1Ez@cR=qe zbY4XYHbA8?DUG^7l_0e2g=z!yYvn2IhlB)D#_yyN-R`AQ>q(A5s!BQHEk)`|??hAo=*FYJdWJ+;b2az{Pjb6}?I+wDKB1LHDBho6Qa%5RR`o*C?#b&b%;MPG z%PJySC*07jcX}$@{&>Ij*syVYbYpf@P??O~-H^|81+ehH)a?bu z`;Sf<7X(V~FL$&0#i=iQJVcXakPQUQ=3BX3b4*plGeWKA{-XoNJJqRrLO{YptVxq# zvWBm-NcJS%&$F;~-+x;6W~|$`{@1Bn=I)XBA5cpJ1QY-U00;m80001mx;b0c0000} z0RR9C0001EZ*FF3XD(@OW^aX%%Z`FD6hQZWMbo{|7X=f*7^4Zx@wJ#;p%tpo8eoj^ z>#gVv?&j{#z2}~IersxQRc)uONg(zR1j-avYEvd~zgtfu2)7|PogYV#k zuJ!D6K4Q0WIF-o+BEe>qFjPn;S-^Q7=CsHukBGowgajOAh{ykt8HD!cBBWGu5CfgQ zJ0*-Tpv3*+f0+9p>hA>pUjvuNANxE2P)h>@6aWSQ2mk;8003?NzMYCm006K{001cf z002^HXJ~X&Xm53FWMy(TL3n9%MOHI4S~Y4gc5FFnYi2PnbY*xhYH(*{y9qdy;oCMo zWeXwu7E{?OTSA0P8-PdxS=XKrdlk0TImgCN@&X5foAdn5hIAyDw<692g;xWa$EHf$6VmynbKuayNqK-dDVDJBN4Bmpi1emWWa zJw#klLTS6jAxUL-f2kc&Dtm7gJ>H~uxUNg}%qNb%<>l)s(lTo58k$-LhDJMg?Y6Ss zXJfnH?#NLmXP0BH$IqTS@8NmD%R3-2=t^)%XjpVi?2Wkigv8Xe^o-1`?3~-hckY&y z-YdKRhKcby8^^v`TCh@kvHLd^yST-7mEA;+`FE_-x2QooTno}PybE@7y8F}!ZD zLsfk>9@*cF)rUAm0@XYe@Q3b}D+}L>lH-=-?t2mS+^HJyTb{zppS!%>BrNdjII8(; z=8M{gFn@*V^vNgaev+!|R>gIQ%-R{&I%L}fMiJe+4r%gC71$>*SJXrUIHkrK<5NV- z1+9{&^xW^J?8`cSuDaV^Jk`4$bplA{tBWY>5VbZ-^?XM)(I8?A%H`>ZNzsv4-zyYb zn~6m%d*7o)kI$UrILBK{V3)G_=NAylL4dJ8e;>d^XdF^@gQXYuctWX)Px|#uK8DXh zoIM7hF{yK9R9wH|jsJk!U&1TK&DtRDFNr2pKpz%;pcDlK9a z<(V}%KCVN$Ofd9ko}1O6llIKV`ZqUl@;ZwF$^j0ACo3d4TFfnI#dYJR0{TVUamSPI zKd|%22|{|z3}kBlIrYW=_gUXG4CfdQ*exrhO&T#n)*(p;Wd(C>p3Ks2d^Swnaa$Nd zro%km_%vre+bZ*DB4a?kB~=hUS7mwYey66YUkYb;SK5qCa0@v zhgTlrWcGT#iN6+~!)@EU@w=^>Us5to7*m3vVV&oBqf_1PWd{n?w65HU2!>XvuF+{mQ~#q`ap! zstdAj(0D4?b%@iT?*#f5`W>lhgssO{!*uQXHKHsUT8Ai>_7D>(Y=s)Hu+@E7WWxO6 z`|`NGW@dWV-d;L&ZewB$el!v=#1y{6*&1C^;B545D`j0$j*efeD9_P)duv> zz+kM!encVGuZ`jYZn9yjNao8rMB7xI2kH1JFs#tc^V^>55((Us{ze;GTY*jd@pVL; zibmM`T)=dFID4@U=V9^k%)7XF|Le&LgXGUGxJe}MEx3!Rpi6fhGrTxsuk2^wc&g*@Bw}`M1jo=7I0yRrsF()!dv|V5Yu%cgt%*mgb+g6fb)#{Os zs=9aAGffi~r!AcM30Xk?B=dTKB9=n#I;3$WPh=oC`1$#GY)ycN7eV{S#QAT9hm<0= zL)?G9`X%-ZwZ=b$c~=^~4)H&>4*7MFFzY#y7y!nAc=TwHnfiO-^VqA(3v(I-7~d3K z58Bh06ab?lcs+nSM|T~dB>p)L$XkVYJ$5D0LU%j*y% zW}454W3%YEDI#wV@G|<@NtS}Vw=mNsrw1O}GJd6_B~962=48XQeDx9;3!L{VcFLI7 z0vfm;a1+TSarnHWLIT=sc2lfRkr{z8VA5EkH0>4;ZDlmnn0fO=*rca;0Pgs5+eQO8 zupizh{q}C8!o_9XOpzi#+Lgcgy9goJs?MF`5Bv!vQnIfG;~FoZ&)W!;)ZQ;pL^3%3 zalb**pbfQ1qTm{aNa`UZg2@(qQsLuuNFY0og~>+S#2==)HE}P>8fJW2_`D_=AJLXvwn8@aC#@p#V47EwusPl{^}9T5 zZtih>VkPy*6D#_N_-Qb`4w?M#O#j=X@DTWoEi`p9rZLpS`D@!S>gmNgm{~j(H|==} z{8cf4<)Hyfm_QlV3-fQ))gofll%t>b>t{DET3%I{z9sc-6+Q2;O6}Osja!li-ML!$ zw8KHLAHeZFLP{#OVY}`N^9nDzGIiASkRim6Gw}4LT_mAbL|%O7qF)1efh92m1DI7U zjYYSK2UPBD8q0uE*Ib}4ULkZF*CFO2`SSoW{_NLqsN3npJkU6_^DAQgIIdD=_Je_x z4(;Z54zV9ix$BU{n#jrPdubd$g@X7K8M!_?7xNT;KKQ zhU!F(eJ@NP%6X;$pC1GI zuOZ5fL*(7y3{_OW4uv*)hsE7kYx$sdykv+mqW>nL?A*iU)R6u22daO&@qPfopb_ng z=?YyVQld_@dAL-smLXOZhxL#{!f&c#PZ4sgXJcO1OOzRQVHd7%!r!aukOdbR$+;B- z%<3u4BKozY27in~e_S-`MF2)N0`+nxr8jaj>Kah|>Oz>~eokqL1B{u_7W>S!ue8+u zq~^h!+o{VR_GT6jBgaXBBY@F}Kou_1HR7!C-U#b`PJL#4T)DBR^{d15O~u#n+oSPM z+*LNjF`hxfFEX+Z?2ep9h@=_dQy=)e4xv}-nhEik0G}F|lN(_A_>=WGH}-DLJ1pN( zHYv?wSUco$K^tDLsKB@h^vCm}E)o&n8999xA$*3pYVpk1k;G{IPB6Vf>*Y~OZQ{n@ zR~d7*2gQt)gKk1DB~m1q_(^S%%nBVwJwk@6!-7VXLjAOfT*p=v^CzYMbKy`_umNjC zspVZhF{Mi5or8yG_c{bHT!#qM^cXrF^&}Yqq7n#gJ9>~(ew_RDg-xfF*oP0{V;|7> z_+JtO=17-DCdGKE!Uv#d;PYt`=AFiUM{1hxRc*FU|Ra2P+?ZVf_(bg zetajEieTWg(Q@dIbNc{SmMy!~lQWVX5i{g^b=hGujnmXWNtatJ>LOb+NdGCnV5a=< z`up(*A_?3(J+wBa%NG^PN$sQHIH&NrI8Ff&M(K0MXVqk8nV5VaejDA3Z~A6*<%7NC zAu+7`{a=`AWmd32eVV7mS<4ih-@rL;6;*P>v6La*QR_P1`IQClN$VO(OfxHGcimC%6*%3m2zNXJ1F_SNOh}y8F=C z@}1Fhgo=Le^eG59>yJ`=Gkb z?A+}Sllun(Mq5Szy%n|?KOTwWoPlYJ-h%`J%9g7IULhobNcUX#QGBfJa=6-G<7%r_ zy}*1MwwHz&d2>A8hEs~g&}$Hcd3FF7$*@`a#J{xo*&-g+dp|8V=w*N-3St>xgtNwKpC=>o=eBdt&u5ry(>n2&z_~N|&J;g*FUviz z@fe0Ki!c$`aIpf_5#B8!4u#;m3T%Z0htnN89P9ECJYgl@TlRrVm>J@I)=^Z?*I!=( zMX`TUxdHu-yMavZkzPl8?nssy!8iEAXQS2$Yx^nGKyB5H!FO!I3AjE51p8i~Db1!u z-9_t=@6E^-d^;F|Sd2J{{tBTY(glbf!ds5Er1UnM0A`3k*Yq|}s{!dnaOMS_b@8~5sIero>a=*zSigo@P#CPI+`gn>z4&hgN?1zXw z7>9ALy={i6gV}pM@&f@zZ?g-Ifrua8A!SiKS3nu(Ccsl@xZir$abv>p9ympJR7er8Z_Oa7bso`J3b zu^bkLUM`XYix3zgH`Ku_!$z_inD8t$N44?c*4K`2DBtGM1z73T_b-#*G$QjK$-QMG z0?-2_4je;Or_%(gBqo_%#nN0%4YJ@1`gcR4OGS3nfA5`?H zF5)nK(N^VtD-j-UE@sG5P4HA@m1eojWv6 z>TV0>^#l9)#{`MslmCsUF-S}0+|z)4KT+$b^5o*;>ybvM^VlJx^EDmEGmx(D z$YnfW=(6MkT7R#w!tsD#{2=eWusVo4pAq43z~Es?AyV%2E*D(xxZ(fI^R_dwh!3$Ja}uS>qq2`N~CM z%i5Q#u{aGH`7GidtRZfxj_(Cb^R@tYxho7$w)h+rh+||`fk8;@4n}m`T=-^h8(1vV zRoye#vR@GvpD>-;smgK5x&X^Ee-Kvb7 z(GZy8?-0bj;h54=2|HtIoH>i0Jez3K50aN(@QUgz?jF>RPJ1EXkV$%0AD9ExTpV|wE}Zy$Ma-0Fwvv!cLbey*C8*QR2{^NL4QJw-AT zAg+HPd_s!E%A<6~(8|DK4^@uR)4rD}cZzk9e>q{a&Eq(JLx#G8b;E;)l|jemt5Q)r z!8H{zU5B3tUpQ)uK4Ns%Az`y(WU0=%-DAI{gT{Xg15UT9z45K->5;wIeORq$OKVEW ze%mjUF^o2hUWU`^&@AT0{Q zX#s0}pepdXVk7Wy9U^_|uDG}7!$)v5uk>)J!F@*lFId7_Ud!zdhepCU=9|IiZ^jYV zQXh?5tw^G$wB)k`Ue$@l>OUyRsp9*MD&_4Qutnn&(CTBNll)r>;E_vkGC`3iiZ=Z<6` zGz7k!>C+t<3#^`wo#R%mx#h9`TSp?J^-UJE3o9RQ)4i5}-}WB>3L>ii0ierZNhAuC z$-GKolfaS{se&HC5bn}?a$&N_l6`*(>FvCiTgHR#OY6ICsxLZ3ec@>)Jzro<0(ZAe z)I%bU2$ZWBhB)pZ(}w+rX|CdpL>tn}@%)c5VoFK^P6j7GO+@t{?hyYVO|tA33Qad4*XbJkgUEeRVv$D;IQ!^^(my#*7_%6X@I{IJ-QCzxI?Lt zto~Fw$l=x@2u_-#I9Kv%;v(ktLh-ZSGhv=D>YU%q?8Js->fYP7p$`rQV6!lV6rup^ z97%QXWYxfULll&$RC;VuxFb^ser9|{Zt$e+ah>D7FAhTbH^IFBmaId-atJKm;65V? zRBpt`?RXh}zf4bmbDkd;kwa2%vyP&Za?!?|@Hv9;nHiRu?A-0^@@*aB77|gJHMFXP zzMkH!zdCRL`3{uy%>O8xVxPaj{fD$ni=;&(x)xmMQZ84I_m)HHOKRUiV^DIfSJ}p$oZAO|2X1#uEBEiIz&={{y=@kUThn4t8B!Y)aV`e zaUECrnr%?veElTypFst#)jwbxV1aUQ*NF&r?$oZkHMJF{J$%@)t2&jzB!u@8Scsbb z-X?=L^$-@W1m1OrH7>c?2gpceT^f$=q|aMRvEwkIAZC`bM#=M4zbHG$w5wk&JYH-0 zW#LiEV4($t`=Sl{(kB$gi8aqLvz9xh9S`lYOj-R<_k0C#F^wABVo8DKgQzLx!c0#x zc%Mz^v9+cK{kr|1bKF#N7Fhhtm$-&z@}gD!;FYFU!l1taX;!MLaz41sN4nH}gS1hu{=3 zS3#A9v66*yQOmCaa*q|CAbmERYU-B$ofKdB;7?w4nwKo9*L-kbW1Bq#2Fl6yBI$ov zzY{RxOm{&WMa3+*%(UOs!di#f{pEgHp9F)9KUzk&r7KjYzE+vgMV!FRc|s&V2GeB( zN=>k74DTUVoo&y=0=ptJ9bj=x+oj$X(~_FUGe@MR*q4bCfw#F{*@_uouAMRl-Ih+n zrB|o}P;kja5QSqpD{SFP-zzjY?V_@0@fntizNa=3l2qMp`d`6rmP9)ne@Ax00%6mo zyaHhX7;RK(Oz_H7xk$|(81e3?pXjD8>}|TAjX^6NGti5X$x!K7dDsl2`Cco@46qPM|4uY9q5{k(hJ^S z)GR=z{6CqzgYbJrpftwYB}@ZVuv~L3glGyu_)6-Y#>&tBSY-5;dySb4R~GAkyX;7n z4$rV94|LK-+!3`<&^(vTC(W7W0;OpNd1-*Fz#GLn0Vf%)gN7V(FP<&jYdxWB5noq@ z+s3ynS$(c?3VxUDT#Mul0H6zj(4etH9%Tj?v1q`q;Ix=rh4j-d^7#o*<5!$5=fWFP z#x(__@8zdsBMap(@H%TVMKUbDqNo!`2+kEq)QBc=O)&`Bvk zxenV)ukU^H?#mVz@4qmS^e(;}7#KE~AQF~3l1~Cf#c2=o>n*&CeUNERD%)tj%N$RHDufh^eigwg|9hk#r;Z7vO)K**1G%A3M57%#6K#s-ndZN+n(+-i z9otjl8<7b$KErYMmXDSBM;i@q5))4`UR?o^bqXlQ>zX?%y73Q((ugiu%cu>{=MuEA z`IopJx2Z8o#;=|H=-zA(h23VB6P+uFJhXn(m`R)KORw*xClB1QyW4x?Y=h+9?)o?R z16#K~I$P8=lt5-nV1Xm1q@`U@QEo}=tG|}KVBy^kErG8v70gOFs!Q*h)+4S$Hy&`t z^+b8k?x4QyXpawG{Zv@C=Vo}1nZm_i_$Ccu9!t zA<>`FIBM1#?`_rFV6g+zQ!^S95SnQ_=9P@d`VL;Phz7%=k$0*vNbFO zH)X_dVT0}>r4!%4!vG^@)oQ62MhHGa|C9M=>X*UrM?P+9Iz^oqe`_b`^d*Bv5q~GV z1EZH9>M87O5LBbdu&uG}am*XJ&ju@ju^#V!qQO|`XD-d>PwOp0w%F@MC8b(g(&Ggf zC@j)TFdVq~R3`5?Fu->XgElrjX4;yd6quTkCf_)sdXsJ!)8!{)ZKT%1x6+VpkWKTo zNZK?H1oSDU==V?#98mykz%Iq{eQRryxKiEJJ54P&st^30?VEdShU0}i&87|;9PHfL zvt_TVzGpc~uNesitcgsOpT}K`$?73s!Lq5s|H8jl`KtzmEKlr>d6lMRLJ_mt~<7DQ9WJ$RXnS33bxv z)~R(!#0s#T#J1+EqqG27eh9GG>zz*P8Ik_+;rCOk1_1N&wC8S{M`r6 z=H=vy@P9(sb|LwO}1D|6PIfP9l6>I0Tw-RL zrl&~$B}KLHYnz0{uq}*x%I6Fi@Vn+iVRU*VwcbdiNyv*M3*aV;|7j0!x@UPnZL{f-RtNj*+Meyh;E^-$j6G$IHw9=5)NV&VAv8yZg*%IIVAM z%6<#u2GsjRR*_!-qupL46GGy+3In`2qUK=rr3s^~XTBcqW4J=NAczTs`fSfCeWT`;BM(Ed_>!dx?4nemJX~(twdxp5#DASb}tng)R&(gEgiTdf9-N|rj(w8?(eTq z&gpfCtOyibj;{cwu&xy-${IMSknSMMNH#jfl_Wlm_qNm@vuzpQQN(in`e)`<{~ljw zbt1Z)rzw2Zp@pX6I8pw>r)cG=1rMrPGd=vUy|M50O^h}V;zw4>VJ=z!=0olBxA#Y@ivc%i~t0SwzQVSRd)igRiP!t zAs>f=dDlzo;d&PAZQi8tK^TNWA6v3Ik1j#zFmj0?x{@1?T69Yq0bp_B;JjrJ}$V zUCM~48^bwmPR;FtZbHR@kMv#ik%9_%edzH8ptxW0JGH36!)&oN=A@ppbN~VFp&x5q z%|D0fIuG-Q0fq>6>}!D<2QN@A=@BU*3k9Vzo?SWPA-Ss@3K*JxaMXMl6yIhS`75f*;hAO4 z;RO7ZV-a6#dbxJJa0vNfb82aN1GtkD#e(|8#?zdHV*QCRcy4Vt) zvTz&G_EIfZr>%HTS%rOQiqz^cgC>RIm+Ze1{3!I8RwNr_-r^fRW5Ti>H;4EskS0+6 zRh@tRit7C%dEw#VKaG9{T=#N@i)oUr!H7He!vItUQ!%6<&iG6g0@T4- zq`no^c#U`;cP=zznV`K6*}PPQsee}L)ff<-?Y>p~$LbE;Y2$e)V1#A==2nBHzM7lw zs37WJ8Uo_>#R$}B8`NSYS{3YortY1L}>0O5BU8PX;;v*-WA0! zLNi6uQaVqDsz#J&K!pa0Xz|FuGca^hEX2OqmPyiO`qu4Oo=p>r!|Nb3gpbxCUrvCi z;>{Dx_h#c(d@G55JAe(XL$Jw#K|yky9g^F9G2_hn0J$Y;@D|>mTZ?Et_=}k;$h=7HEEDvC=^0e1I!W3ZX|TSvJ*Sc{rq29f6&3 z7z-?eA6KO0gI(N0YJ~5lwRWQm{Y{Df!D6}|`=XIRFD*r$Nk!lul&fZNn`jS9pgI48 ztuzZZAq!}=ACJ?LR#_1TPq=r_{Sl>d8x(T~HwHNujx9K+RfgVnLfq=Put8Bi`(ePR zE>Rd1qK+jA-R59}zyQroJ8fV#9p4{PvN*3mATUS-O%qp&g`5Qlw20jutIg^B z&60ah6@g2mgoQp)>y+e?##3D4f+df1yYK!s@sWMKusP^Dt3e*jENiO?VDuL0rY(5V zNrUdiXBr6Dar|!P@2>v|a+LL&-^_E?X!Kr6oSFlgsC0NP+K%azZqwMtxxxrs=HM+PFD$6^X43iy zUo+nPAHnJ`hONraT}HmE(#$6AeAOX2tFR@bOTy$9A|XXYlAoUHa_Ye$2|Dq z|6(4UWTmG)GZMR?(m9AqG-7~|6$<-~z#1|GmmGa3{h{T2Ilq?o8g?TIVM^kg11tuc z8TmGTy(pL!Uyt1zZx52`(CjT=_d>tm%8#d5x20LHJZ~0s~_(a9K z-&y~B8@o_ZW^C0+eGfsnG9fIO5S4KHM=ZrNzK139+MKV!(t{15QH-cHhxTr^Encn{ zIC^cgVenIzFH~dhh07ro)UJY1AT%#BsVo{;`y*@Yg3A=oRJ(Y{b=+%>Y|;u<#DiQk zTLOK?wdjw0D*3CET}(bSik^qi?4VqogwiWAn?FVqXgZHVc9= zlTbHp20iWt)DoqZIIp_vi%{1|!R#PtoUr_w))Ptg^o51)PUM?3=dv#bOJV6UK?mkb zH&Tz<4mMmk&(*9&IIy5?ImV9JWMm!Tr9t~^-DEIWsr`e@%ZK`#sje_4;1&_?qvsUy zL&uMAgq|EbJgXZZxZO5)<$^^P@OO07U7EKNtQddJkTX-qK_2Uvu}6`KZ~;nBkN1f8 z(&T@~@W{;wZM|{kn@hYbZelj2uuw{#psvv6KyrBp>HdzwHv2hiRi_ZBz=*O<&%G_( ze2B3)aNs$)?2jDB`rJ=t=+I>8{@|+8Ma9v8LjB-I&yT1h^{*N6wg6!p}wqdksxLpJJKQH(mEk9fJ>?=bit_C_PA)BET< z6Yx&I7B5>|AyEelT`w%%T7&{Pf&g5cPHnr4((YCdHaT|#J8bX$Ybcv`az(B~6(sIF z^0giyA_rBP3oN}9u)@7??;37W_Jl?4EPLwa`pvEJ-oz&^t_~Cp$cDkrxk`$k`Z%F& z1(0KSZ1?Lupt+q(rmNSJIHAY*#yev?X-0!&WG1#&PTijgTb)<^++P!FA68+RmB`*v zaFsX^a>Ogg%v{S0b$M(yWYaRG&M|ES7}zd|-={qR)xlK+@0#*?bDXv2(gL-pgAV?B z-)Y!~FS+>6tTu*~@NH$$q!;yIDRlJupfB66`BH{-1FgK#EHsP!xJBDi@?Xy0Cxdgp zV(<`X#mp)nM=xj{+ji`IC_{6#Hio!F=92MrlZHpAq>Ta=C5F7FPvQ=k-;Uup59Fjw zu|y6PRVs}Fc09RP6|i+e&MT$Hht0J*0J;@+vchg3o%8k>Hk!Z-NnBG(BD8nC3*5KH zGWPFz-eW!7Um0I?s2-yv!e$k+euQXneULUkECMGd>7zr= z;v~o*=AM@~`Pe^@d*NHuVAC|;?@Jy-kpn294d8pd^+&3GsG21jCJMf7;1!|Cl!}14 zFik84?Q(M9z34(GgQ7gz(JeH6SJYlcZ_&3Tn--1A@-_7>F-IR>6|?4TBRVIe|K1u~ zsr>lf1h`{tk#H;+9ZyX=xU@gdrQ5WA*^kY_CVNMBtU{NiIcRC3x)muz0=V_;4cMPv zz_P^sAgXi*9cnoaGr=GlOiB>cMktS=PAmNe)10;wRhJY&W$a-H5O=VB%<4{p&d~Q6 zM*~lJrQv?bggEk}8fs#}^PfCrzmY4Mc^;H?{dMam)G5s*a;>>;f)^TvQEyxS(*lY7 z%yvz>KpYi!Ubx;V`w1m71HG1>8B92HI^A^!5DVKIg6zEX8sY|P?FI8SO1!% z3i&RXsjC%IS|Sg;uwO2jiQa#KSdAOzhKKz2(eVx}2UuyE)|=Xq`FANuMze1F`}ktS zx=9lkB`u+ojfZWmTK2f>^L0$V*30dc{6Sa5QhuXTHU9uzEpfwm^Lr3`PUfM@uPU{< zz*JBHPe3Z^ttKBhv=FZ(bdisJ(f8V7WqUT6#NP(snU2{o$eNSWL)6zFQv6XK)h&AK z9l%p(gAAvQ_+@f#8BTP*u5i5XRP#sKxWNgy_U@}4gHOlUvWpzkP3V&0{;`fbZYovs zw;xp>d>r9J9(+a5gRi}=lK5CP=oEw3Fqqen6q^kZePV}rBn&;;C@J-`3jyY6tzyVe zab8Z}1=FnF_qToG;l7OseHJ|24@31mK;uJJ2&miOyQON0zHXec!o$S-u`{>$kzGfS zpf4VPgd@7t?c8oq$ZMg?JQfkZ3CBmN@T_u5I6a(~aONKWx2WPatbW)P7T%KZ2pQre z4>#+|&^?s#>z{s7d)YA^qz?Nf^k^T=64~r?w8i|*HG(q2)-GuWXCfH_(l)A=0X5-d zs3U?Q^N3;)v)Laz2y?=cYYCN91qyYoZ1$rhvf>G$SJmuFrpMSi^WNUp_Wk&F6rYu$DQpAwo+RjEr4| z-Qtg}k!Z^J2T)~AYepIzWxzQW#sC$m$NWJQ9wit#0h)gj@zJb0nPkYQk97uKTelb` zG__~c*4$>~eA9%p5*S%qC*^G=~=otqO&SrwHvq)FOiZly?a z#T`;9bm22rmHhBc%z=kW=PlXzOyat$1T@j&brg=X!uEmwT#1B_x*(AKI^o|R$Ck0p zRX?AJxmpywy3{rb&+zbTBz&D%$4L}Ro`-rV$Ic!gxz|-uze#MNq1P>!$n_CZ!$45A zCo??m6@EUN?1gykg;|N8?Wn-bbh z2&*+IumK;UODF-1sFMYb6_?|n@1!~Pl)X-pe*?S2(d!NKF@6=kqmA}0?ca|o3cdiO zfP+L;!omS!(-1A&WL7!?uK|Gn7EN1j89cFX6C>kCPr=)OsdgrwAIB*0H~T*#90g$t z$Re0*03lTqh?#Q815#merjNc$mdEDesN}GmwhulR4Wa?gVOdMsvdd*$LMvR zGvEOY8qGc4$|-xMqGX!esohgi#(01MYHOs0i19Dto{tKB^L298!#y8`vut7(`*`Nw zX7P5+!0wyPO>Y}YW+mBLDm`}@1^~3^D1|^eyQqHRS%o3Z07}nkjn|oIh(9y^tRw0M ziV__^0i$#ZNz5;@JWdvSVicQ9I^)y1OVUKqD>Auw$RbaJ;Pwk*pm%Dclu?M|{b{XD zgSsAH!ylH!ERlOn;iL&g^&(o(xYlwj4sL=4klRsXkI#_j`*U}!=We%H!A|=rr#}`m z;Z^|GS@H!>(obG>1S0U$8`6Q5!?~iJR==kUwqe1GckfR0=&WrSHSuUfN#-U`by4r{7%fhd@qEGmrBAJ?+@Oo(P{WyI{nNtM(fe^Fx{?Xp*>_Il#6A~G09DZ3- zAr)4SYif)x@6G0#Xl$lMeensjUt!37ypo}|>b>9a*%(k}X4tpklDJouJS$=9o9}~@ zw`7~9KTuniDtD~D0FnmGcq4v39DVQi;`eJ@YXAX?mv3_;1ZnAY3@!4USs`lDBn;Uu zt8DLbRmi;~RG)N3(RLSLMIg;`9(oseu-s1eM9l|VQ#zvnS|b6p?Kh+wPqwpnbUN*s zZ(#(4OgAc1GBuv!Ab9`WrC`w4CmG1uCKe{uWV6 zv?(mFhbZ2|7D#4R$$+okh}}hXQM>nt=ocqXE_px7==Griia2QMHf`>dc-H4V^O-rF z0|l#cvTuiQpM94?y3YMeH1y1>*kFrbPhp!zU?t z9nDf$JOAS@gWs-8uho`i0Vb^zK){6S26-z@ns^MgGPSc`mn19@R#tq=UqeZ-PDE=B z44-DF#Nu#F0Zm4}K;1;XtvYr9@8JO++4_Buxax~%H^b@7z2?o&dgPm9T&pRu!Upzu z$%=Mq9wC@CpcxlcV_TKu;jl|j-r(e3Pb3WHxg;Ch0+wf_BE}J4M$pdi4>}iA+@5+| z*%KM}u1{-$L-&Gjz~;lt#hjET+4hWn-_v%g`x4I|pbrAUI;ce!n}u%;DVIrS?TR)& zx&Rpdm~mKkh6PbU=moOJP8ZG1PYt~oU0QI(b$L=4oK{HeId~{O3>we=i-WfQKTFSS z(z2$;-p_;COKGK*!fnHUc|W1e@fZP3eTzVtkL=Oyz93cRHv#RUDfuvmFJ;rI6pNMd ztpY9rJL*8O1?5m0s3OHxlCkbUqBmUbZ&XhjArB>C9MESievq?|%+URpp0oWCXJ4B6 zL|!3SX1gsIkp!p+&}jZHM>Oi&;py6Oel<1bDW52vlr~%};#Ky1b+Kw@HQMhYH-#H4 zN^M^PIK($oq)(sz;$fj}cNr{JgBmHdE_H>mR7=Bv*kKWh_>Jnth%5UEOwnDx6ztkiT39D@e7I~kMk zR4*GPyy|TBK3b0S!u>C2x$DP{$mq7)@8|%@uWyt5mVOH7fPglgoZXbn`q_sBLY7q@ z=530`Z~2O)sDeyFP7nf6ZGL(7FRpv@tSYrkV!;0TrM7yD1h-HQ8 zX(lE}&_0C&j^+nD$Y1CWkg`XSNT)}V?!4xbms{?luOcnLF!kbnsqF@33xiM-r?B1k z#je@HE_J=)9m4`R%&g~P^D>VS<|e<3!tdz;SmM<1KREA;6T8P2f7WAg+6xw*nr}5e z5n;GH<5odt8IRqPxE(A(<&6l@2xJ(Zjx*iEq;U2Q2j7-u>)J<$uai1_R~*(4?xL4@ zhnL2~T?h;Zsfr|=+Uh(5El|=|(`ujV?V+m0-0U7dG&@2FjJcpbEYmnBVVIcWk1pDj zRI1l|x47pnZ3U~9heWYj1?bNRVa}s{WVIRFy8@N3m^KnZG(pwJWB@| zY`nFGB|)6a$-fpnipk9Ap2v3!gt=P0(W2u(Js}}@J@l=E5o9Si(&1YJFS>0RqjZ&) z%x63-Cth~WHbh^XPW2Kldoh07Uz%adZMaCgLvFuWFog#*=NRTpm7oH74hTb+CQhbZ zrJ;JEYCcK$ah8Llm`dm6(dxUj)dEBILMZ_4Fg4~8pg9FL?S2;EKl_V3zgMiB=v#l^ z{CJZZx&Cwa0Sp~L`d1YwDo-ZCkjWV$n~4{))WgAiAW0J<+lR0fNx5ybv~GcWg}RLH z&1dZ0S*EToo5lMgH_Pc@i*XCwPe7z|dj(FNVu852-T@74i>2B67jm7jyt_`|zKTSD z$P>a2StlI?W>Lv%QzxS{??TmIpc-BshBz85wM}mm2>I3L3r&xpHRUSC$>Rmg{XxZC zV@2gq9YRs{E}xJhA_K=p5_s0)Mhr+Rq=ox&i`akh+K<@Zr;EKpP9n|Vmd@GU_NK7awLI1f6iVb=9fD`O5+3-ezp3x1L3%xjY2eqGHK#ekxcu1hN*+Ew zmCF6R<}Z$RwOHuPnwTO(V$14g{I+=KoKYwIb0A@Te?-(#-h!c>{VR2Q-KXL!#`qbF zCu1v?>K(4p&ASD3Sz_pWj-H(9@utktJMRou4{<@uxvpA++_`%w62_fIBQfb?wuY+F zc<)Ajed#nnB2e4D@ckG{{aZ^P0TJfB#;hk}_uirM&(!!T9$@^CFxQ7IMmNP&YT#z` zsn3&@p=Oz)Tuj);Q*U#sEy@8K4DT{JF)pZA6Mu@o|W8*p{Z)@{hUISX+g^pldbS(x{Hi=wUm+gF%i@h)MH3*huWyvnKB51oTD1t zNC}NL16z8Ae2dVjx5n1P(}&|o+Ty2|aigul*&>`}gbEUU9!BU~e?(h{f7-EwC0C76 zCa~_!TR~-d9YIuf=K^zNyY0GfSJ0=cqj&6Gv$ZWDqsUvD>LXIZIYk z+Ep!LjL$KXC^

    |Ccq5m2`BEd+2M!*udw`ToGSjQ1cX;961B3dl*z3rHZgJEF8a) z1zb))g9F}ej*?z!k0T8V#F0c(dT0kJrJPB?xUAY)l4>EL)ddb0b<>+ZPcKFRP4i;vjcun-Tso0!wie!XsU&uscZWG ztZAK({%c`^bm1VAXzexhY1>FsAy{-Au0pEUpr{AJe{@C{N{cV1y+2z77SPy@)v&pr z*05_fW4@@iy@JNRw!e$E|J>ymkUAU)a5wmE;w!+1#J@Wb=dNOX5mdPTl~j8SixXrs zO~SaGikliDvgNmIZt=f;M)AY;ilhvR=m&4DCXy?XU3>o3W*Tyzoxjl)TB_~}HQ5m?{{zVJZJHJ7#!6d6&I(>Qf~c(NMpMd+9F_-SWk_bwA%WKUh&BfjU73<8 zpSoA1xn|(2to*t6)*Rct13z2;8kZ5!C>EwkdUhgkh82VaD*4?EJKE=)BF)=glUc_@V!X>$X zG`*T*dRvFGxPp4b#}um(HwHR(%Out5+VoCB$G8g3$__BsQA~b+MWB?YtOPJEJ`Tm;3?uV)h<#O1S@Y}r@5f3xv6A-(4D za30+#_4_Z!OblD~lag}%87t?-3wfdOvz>-iglA}sdvI%)V=ViN7f(f}+2`L*v?Q&s zPK3Q2ok*0lxNti7T^C1(XiY0yL_NM(1V;OgCYf14pMS0#!446Kj+$nLvV{emExus| zqw|X@o?2N6R13q(j#I=ECxo33RW2O15!Ofs9X*wto|Qd<9FZKki5a`9tkk;F=Br2Z zX2inx^Z<#!I0Q0p+XedPrRvf^$#y$WP!Q}oQ8f~2 zH#Eh2*98^}L4`zd(Q@t25At|VqdbuxL8XI0jI@@kM|aH+1=AY_2E4ah*%|;0d1yu=VORaSD*GUxsp7XA^&8Yk8=Z4hkO|VIabS&O!Xo zsAEmV%NxtPlD!MiAO+Drp=G}1rHnv_HhZ9vo6HuIQhyUjnS}XBmqITa3tE|xA4%n} zS?Q@^1_YbEY!^F)nYzc=H6mD@|Li-dn*6FC`(~@5G=TZjv3965KEqIM=F+_TD>L-h|`IR#e-*T+`clb^))1%u8 zzAKjA8{Esfaz#&_x3mW1VV1MY8!6;EjIK4zy+K%ocXnCB`yv)#xyj? z?xtfEN8X}kPZKyK`J4zwl=f$Bf=pRmHQb>Llqyd9p&(E#=WkJ$3`7}~wdiTigP7MW zOlbeGF&BYA($D8voDejD52DJGswmtW%AbQ5@4|QshTUWgZ=kFfNMOBrZpL{r>QItJmQ&ZRzDfGVIOA^Rr~S7 zNvoWON^1CZ6jNXCGl`4guB`!@=}YU~<&G#xnoT})ic}tLeD1Y8PYT0-d(}s#6aVZC z+OW;EyEhx{W%}yj=cEDB+%L|M(fAq8iQ+16G@DF6WI$RzGo_!rYwFYUm{nPU*9@27 zn;U1bz%w9SdKQtcIQ8giU0E_4`QlRc8YwEmAvT?UQ-oPZ9UcqHQ+u}jN*dFz>PP9w z%#D3HTsC566nc)~QO;h(}hkGC_U&Mi|9nO>CVTz(wC}I^__37a2dT zOh=Gf0i(y|phdeDIg>$Cyon$Ibvz3i#O~^6$w2Cl;(Bu<;m=oOx5dH;yvKG>meH|d z7ta7@rz$IRl1e5>vW{rQoz-z31w%N*Ieka|RZ0ew5G|($17okD9urxi5< z)MUzefRUE?8<#($fa{V);9Ev4%*R91Lg`h^e1w}i?U7Sp+k)6j(X4L+0&qbYqj0re z!ktdX1hWUW6fW38Bajuxrvk#2eJK)>1i+|acR^O%jA>cYFh3f3%;%dmchTYgTle*^ zaAq3~9M~7i8;h|6s6D1!;<&V<`Z>&swA{SOWD@+)3x$k_jJ7jx9nTUVC?}vj{$c$> zse0(Pr^b7!QSP=H_lLJ-MOVMF3aBaZyYX-PG&T3h!$hx#EGPlmu4O&d72avz6Ue)+ z#_+~RkjgL>@a<_5Iki^OflzLdd)|Ir%yrU)K1x6=!oD8kMLet+Z;ZE;77e%${%XIo zM%eltvn4D5`s+lf#&*!MXJ+tfR)xt0EVd ziwQ0_l#k^@lTxz54#lW1;N^fitob(k7NX-?Iyw_h7wG{cPXTT zNZfWfLRD(}hO3AnfZ`;*lA52h#tN7G6ik1tS0M8+m##lG95O|vj%b&6dx!BdnZr0c zyGYcZO0AD|+FT<4@b)^{(Wk3!+VF;!E@f%@z2Pz^+0~6~_@uax2QXxDO6bPB_z&ZH zf+gI6>GE>t&fi@%Eao=J$h81RNU{6g_anPr5Ain+8ZG;QLoC_HDtG2QW~nRo+MxRt z-SqZJkX0NaR?QzDJ<&mA2tuyZVXYdSh-h0WT-O=a6XVhu+MeR4R@QZHiBJnM;MMuB1 zZ8ov6Ex(s`ieajWcP<{$6h zMI@XIEaGW+WfdG&#@5D!7;rteqEH?2%Dlgre&ULvu96lNb(K%ov>%MFsIWq z#$F#8n~2hQG+>2ZLckZCEXFUyMnc_~_LK;2W6gsVo-PAcMv6rix zE*26GJFByQU;0<$&4b-|rz8&rw+v4DzW!>k(V|HiXGp-;6semi2*zVCs;@Rz;=)|w zK|HVD-Yh^BP>0Gs<6MoL+?=^7{n#fCu_H!MX1J?{w%2-JG0ff!JR-v5j6lpV!Ap}E z3*V@rWY=*OW1@xeCi1Mj6!1)_b$>ao%agoT#S(Tte2?mVN}$pXJ1V}4m=tzdhi&)Yz!#5OoVZ{VrS z3sX6|VyHuLd7lSkfo~``UnhXFl+(w+|eh`t0r zw1UQsPgrNZwP#By6sVR<7oFoBU!kFEWDkd}dYW z$k&Am8?fG4cCk}J+l2L4X05^e(5LN@ZGL~mvdOaeSgu*@x6h!kD4S19^s(N0xa52> zDi6W(`%L@z#>HZpuOr<-2;8%95v^7_tex5-QS>=dCEwnlmHpa=#-HBjs7ya0_+5C3 z#!WnsMfp4Q^^%js%SAZHJecwM$S-w;+}YX;%l2g%ZdBnS+CgE-YqYp+&Lxodcf1Ak zyB#ZGDe4!!_0;kKG~Xa0>XF?0g!7a!{X?Co9;l0az6(=JGpmiK2KYydgIm+fjrm^C z5(#q`uo6N8^6%ioQe~A3Gw2@PCe*yDh02u$53=AX`EX~FCA47NC4T*NfHPLyUU4kH ztDR%1=1Pc#$e~lY{TeQJ<@6Wt^Cm69{c-cc_tNwt7|Z9d_*ul+f{YV(g?*WfQ*YwK zHnNoeHcHc)tPkW^ScVLI*@7g1ld?0gPS3+Lz602}hNO{@UDO^A;)i?*d0m3Bv@YjD z)VK6?VK9NHQ8 zJwK*@7+8~>;k=k(R)jU~b}&7lzc4thal6jm&n0p5_Yx$j9p3m8{m<0*SOmo2-(p0|3~{@@IG@hBbWaS{7=r` ze?|R6{{3sy|I+;*)W81>{7*vOf5-gyFqQHD!OQ#4wEwBo|2u8=(f>=@|59xwS;&7X z4*~-5uM_@TjOW>Z%{Yv3K_f@Vd5pA{9(dvfRsI^uDZhfw4gq->e`53hdO@U^Gh(Vg zsrUX2jJ)nt#0~kN|7q2OxOYwr;X}$hN)jJvqVHk3pOS-8QtTA+6oWe+0TJj$CvQGL zEX8n-8)JuqB=hURJI_Q;bM%og<8D<>?tP2s4A9$W5{f~cWXXE0!ddzFTrKCa{7)I) zhM$oNUK-k2P`(uSt~U5%GJJ_#XeTIiSZNd1*7_oq{`M$J>7)(}sYa2shLc4Uz$mUe zdo}7F1HKmg$s=R5)pSG&Bz32!8e+irJZ>sV6Tez%U7@=HeTMrDGXgcA9e2;bmh##m Od92O`ZW3a6tp5SV2$8D* literal 27144 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

    qHhKa?_u#v^Cut5pL$%a()aXTc*4xM_|BNUjW$ z!>E4VRQqMz^Za3q6_snX_4rDsG1ZrCX|-azI5hrDivB&H<|8ismiz%qpjcaqt>iYj9o4^(-6Kz=^}1SioXf67zp8Pf4CTa*+P zR_rlQ^(?!5Cbltqta&^8*}*bF%VD#_5KqF?Y6C6SBYv{ z^XNYeW8=ZIB+x0q z+KSfciY%Ut>zy`37?N4yE@_6z6-w5b$4s)qOIN2erC46v&)2B|AN+W=kD#AUrJNoH zC|pR?p8y4WdyIq!zizAOn4H6jUYp8SvHA{qsU-cg6A(#e2c~+wrnH$*1?#abQ=~i2 zcb+eOGj>AIQC7BO<{Pg*%C?=k6K-O77irSA1HeTj>r`&~<-nZ9PJOn#^S^?Q4|8si z{e5nM{ZT!l!2z-=LNv8T8^xtZ6@8-J;O3nbgc{50ZPdWxs;OCtKre_pBTND49cDV2 zCm)hxDZW|T^O%i8IDBziB3^%RfHit=K-(&frBBlQNBH7_C0bEoz622gt`6ROwU|!s zrOZ$xKL2=fZ@f{>ROa=~NqxH>?D?0rYjK*Ae_P{7*-B++12aiKDGvM>k8SK0uU5pCwLnrcMKb{-WHI`fxO+c@hk04L!2pGByx0I}ICtyeq zJ_UvWT^hxTYL8jSb9!=R21c;E^`~OBQO9FfHcD^CqxX4KC$^k-^MK|$Ac?2h0t|A; z^V2`TG~v5qci-?tSH;CG>V>?_;9P}0U=9HqOv02I#W#g;59sW}tsKV-ER!)^H1B1e z(F-p^e1qrj2jYUfHcA?XSXicG?%AKg4PmGXHXBi;NX@Qt=5H9wrrpV=hX4)yqGNno zDmu+4d+C&^Gp!-aczjbwk4$8q=&axSJu|4k1NJ5!u-d56?$aFr zqoxgM+M~KZEvF3EINgbmQ}5kA-%C>%osE73$Fp*@VX1PInlfsPTpgJsS$VH-n}u6f zI8$~ z_HVA?#{~Sp5!2UUH|?hl+`WWez2)y@y(BE^oFpwx;VSrdh)P*Cqn3-0SpZJ9f{X2k zLsrJ4e;B(4RuQ}T?;}4V4~K3a&s$#ByTIjxe*T@DnxcD_w0i@?kKFBU3`%wu?VkhW z6s#`f$7-v+&krGs!E|98qDhoDW?q6SHD7AdYgd#aQ=6j>HX`*cZy$`)+OAe@d@5q0u#K&M5MP^84?mW_j)X-p>Sh4Mtjz zj@5y4*G*X-(PxLA9!9kvW&AHTVgzYsYric`=t@5BRKdZm{A?)>=d^kH2L8dE2CIUk zK|Agrh+ht%9Tow#j3zYKtaADSg8Qnbohrw0nJ7p&MuH!f7{lf(c_`F(z{uIi0G{Bz#DN|rsMlBkLY7w zFqKjs(aEzMlJ&)xa(f3J1m=ktktH*O=ePMhf6h(9{wJLI&YptIyWMzM&ww?7o=sgP zWdg>~NCb1t-}9!!zX%9rw^0>t#p`vyF+tF4IluEhHc4@;rjuMcf?>76o40%yrWB(I z(amy+SMNGpG5vV|S^G(GRO_>-P~W`7B!8fqCfzglr+fxpZ@Zq(h2+%e4b*x6FSx05 zr2YQyBMx7#-Q7HQ>bk=o$X)W+Ze2Uza9T_KWUxr!qjQWmd(BU}BA?XMgnn|)G6HRQ zZVtZ%X-A~A7=@M6^nk9?79fGZQFg9Q{1uFhvSxk(iEKZl*Zk`(5DOmpu*mzG;*{1I z+&dI6PzzZz;&kC+C-fD~-Va=j5Fo%tdBVaWG>6gzo{kjC zlltqc0kCDxR8ca=l)YigxyHj=150Zbzu(or46*d%)V~)R1@k};;mcz;a%swTU$Goa z9?ziQd0*uQH1-)jvq5gb>&La_li|GA6?QWhgc#dh1ga7t1!bgLw%DmUJ0sA0%`8-_ z^w`h`*M-)XXAOGL%|Dw$H~^u`4My{pD>Z~>jXFo|=azb0K2|EZ@IY1s9!f2`Z0~-dFQIHn2eI!JC&fOLp0@bGzVPM6mQoVEegGW`kZKTOF@z1{ zq4L5SUxnKkS_qvDTDBSAEc%7WHqSa4;(X)IU71@oudC;5AK7@%{l%N%UA7~FU{y97 z14LXT-#bAMZSE^;viqUEl5U+~j5=WlXL9#7L|t}d#(uh`yK7zC_g#o=dgPZ2OBqlQ zuN4f0CSXbbP7OTEz3usr8&wprD79F#(|18cXRlP%pnWRoY~QhsBI7IllCQ`d?bv81 zHAa(q1Ktxcow(5YZoxR8V#^cda5??E2CCLMI#LpuaE@JPIp?UPb586hO1^N08rmtQ zUW;{p8sW96Bz;1RJBa1**H6xMvxkkTi754=^(-gxU+Ob(_@>dBuS#XIoZdl;J~xn0 z&ai%3W)&NL=9;2LP~RVPId$vw&38NeCyuzjk=?t%v2&ox3|g!9dN9! zl84t-7>}pw_jdH&`>QIlsf^{vCk38oCeWLx_N-t*)Pn^~9P`p>>GoNxF^T^`BT6qn zhlqdgIu#XT=_px9g3Z^yH^ZJ%Jk_hSdER4a=@jI4C!X;Zr8NjxccfZt)6(vL`z*(~ zy8GxdoyUvny-xW;b@%gTo<;vW`c*r5Lt3uFCyJ$D`p?9k&>S_C$pui;Y$8-QZohS> zbCqPaydv3tM#%>QtxN2;+>;8yrNNQ_(H*&lqzLlVr819uilxg7n7?1EoYC2xlC`mP z!V@u6rRx98XnY5&a8CiCpm@#AlLa#k zY0{lvbtb?4umGLZ{w%M)E+(I#tFjOPoId=XM{(1lj7ZA0^4205acf9VY9gAO%1aux zp_Y=__v}4$^gd_ZwUBgQN&E1;srEE4<|%cTd7_D?xDF;+f~N($V0H4F_VaOpyeI8o zdadyQG^G&=Z>k2#O4-NO)+P~CQWeCPd9Y)%9ELxe)e5@{kO-sd(G9P{`*oESwYHCw zueTlJ1A)XJRFs>H)4dYi2bE73JkhnrLJ97xoUBcqT-b|oXn7^}+Y6~wuEPI5n%QWUT1(i5Bl<3C( zzOw45vH_!Mq6DbRz~lC;{@KcgbYi9Yk|@Ndegg>P0smZByol?M9q(P;^$)P@bElIj zd${T7OAcA$`Oxt%aP7Z|^Q8j2T~6olDT5sy<7T-t4Y?<{FBIqX?QxyJeIq0gs&Sj| zfIl8eo~t2M5tFB>Ci6UDZHb!KwvUY&*!46uCWBs{`UYTm+2$E z52E05T3G;-qc~I2L++r*PJ)m?S8-Fd9|-XgHS_qF48P!4nEi1ZZ@? z6#-3tGddsJKFiVh^D3)sm7Q7erOe@|AKx0p1MVsG>w40R(FBYLOYdUp^jWLQx-4F0 zdoO*Gy$s95MemZ#eMqv8KV49Jb7+R{xoB=?h4rwKEpu2L4TzpZv)*q!XveUr#HtAN zbQt*6{(0A!5fmcy(lt=4SG3y)!pW2Za08K&u*`e^fzrZec(oQ^!#3wI?ck#E2mC)xt-*e)9z{9H&w@TWjn2`l!SF*Kt4U1-u z|GBkmD{?MnUMTga7&Vtzo5)BeZS@8?J8cL4h{6vdIacb0ep#AaTfa{?66>GeyrFr9 z$K^6mUinN60$Rjow=mLfZ=-xlz)ZX})^w~C_Zaz7nEj&g4Id=rQk@VD2wLmMR@(HY za@$ceyD?RDF9JCObF~mJ2HqQS@0_r7G&AF~8RTSM+JOSch$zGvE82TCM?PwQh{x>W zB8}HE^ESeZ5>i`uBMlM zXE$-!e5}7i+!yLWogis$a?pb4h@TKQ$Fqy$O$&IQuVk3hnx>jVqNDZ{-hktT+c1nh>95tw$P zq4*iY2=rN$#?Ie_>9am*dM(Y-UXOr8)iCYq7m`6zYoMVG+XPk7uso2wEaw<+zt9ep zF04Zgj-cDqc&S6ZL0F!vp?Mf1n#6|PmsQ`B^#v(^AzCMHY;(DMlhM*!UnH#X>Crd#1*@=v@cHwKFIyTk;1K30eqgi79yM3qQ=ZAQMX znWw*(|J9@M5|=>1-%hhS5+l`uoZtCC*Nan*CmfZ`AJB!ODAHuYl=bq0<9L+pqA!$h zW!FI5yr!yOSp{48NojM}HkATzHs((%N1jj`<*uqP!O!rLluL{TVFvY2{OZHhEFD)0~q!|%t4rC!Eii-V& zp2momMz@7h5U1>+;H|&)PP$7R%!fDhO&PYrYYJO}Z&}hOKI5V>#B#KH{ecPj3@2kg!`{anIp|~uw&EfU;dER3BokJ+SlH=fj7zsKe8N4Z8NH+|Uds@% zj94qO`QD}|!sdGCi>cwotz+$gplSm+OH|Mo%*Zf`2uZTa_aeMh4Vr1vtZM#O=N4SX zs3nzl`(5~+bj!i=&f(uyRbb^0Fh|isB;Ga+My^soQy8pkPA^$N=Zx16f^*eFjw1^I zzEgVGW*X}_rB^ZmNMx|(06Rd$zj^o#I7v>=rn~XJ*&<%VM2HaY)~@6!eA3`Cpzp|c zj`yFPYGDhr&>dL1`%jvbitWb@fT@ZTo9PSCc>T+jz<))ehbDLfKdp(R;gbH;LKIW3 zBR9-g4o;&fi0eX7G8cIWkW!sOci}75>)LUwbE%u#0wpsJPx-mcbW~GoW}h<%=^S3) z6}GX|^Sm2?tECdZ@uukE`t-dSYIe7MAeN8kHS$iJZlWJ%^{u_J-Ywh*kss|xHgA~| zbL?ONpb>?{wX$T)zZ1hosdF}WtrguE1?ivNv*>Gyz-!(Ay4FJhj5{UfAX`{#RMpX@(f4B%iff9 zeS0i#@L|=q9qhFJd88F_xpNk=@G-T9-?I>jxsye+e4BF9w=C$>)(@Y8U|BADGjLyg zsNilw9iVtx1VRH+d%~{Pe0cMvk{UGltlD>Ov+Ii7^+T^mm$Z53Ordw-1i;UOFBeXw zxzZK&&yzj?5gUBE*Pd>^`^_y+c`5T3eg=By%3lqLFO8Uk1NNNDR6vT!`Y#RiEm9ad zSw-n#WbJM9paMyc%_)xlH}H+ah-Rn@e^;`~t8+Y|#}1#E7y50c9oKYOPNiNn*$^V- zGEW!)#Z5Gc(2k8fijB+du=^Y9f+?133Q(3izUdxmO8;5XBJ45Bx|FnIq2`p<6w3qT z0vrM$u>$D}LXdv7idtM`U(rIU?wS>?JoB~aoIdB0mse^2?};o+qcgqwui|N!>9K%3Mce zv0I8==p*O+<2PR?TObchWV$t<0~UtUxs>8MYS_G49})QZM8)@cL}c^X@C+hl_q4%XU1c~7$_)@kQX00ra&uz^jULlXN^z83CB>NLE& zgbb%pCvYzYls-hrPi|(Jwsp+N{oti}4EozS8~_>}(ch}@Wo!(Lcc=@Wq;1j}+awIs z8AtRWr7LL{psM#8`iNohy(%W>#YOujFdNE@%JDTOX1$YnKJ{+G2?K%04=$UhPb$n5 z997_|nR+NM5@chU6l)J;;tJ6EM+5AwWNsFPWUFS@UXYQPGm*M}FmxTh0HvN^-q>G6 z%!E=h#__~LaCL3o-$~oGf&W09WpA`xSnGyK(L(i??LG)0+q0F%0L_+JoTq~F3oXy7V5`=8s(nTQ)-a$Za^(wix z@PmWr#CIH9cXPT$M%cLVJyGy8cXetfu%7)HZ=UI205(3O^JMPYa_BphX8wWod5vo5 zC8$zMzS^K>1~Db(ygJRtkfRS%ihhb|_r`btp+Bhm)Yy3hRqmjzM>7Wygu??DUK5|C zsv7?Xx>=nGn!i5K^=9Que$9UD#w-ck0XXL%?Yz7w0TPne>)qrR2ZzmLWm~y_^MiV= zLr!X-U(Iaj!{%`Rv_yo;i7q^FZ}_XXsTWl?e80@DIH{9f?P;gR8K;7`%?u9$FZ}e` zDA~D_CmUC5a99PjBP2T&>V@ooO=2My0KlGLW~w?zJ&$ZsuPW#exKVdW`^{6#ANbn( zy5_q2?%FHA;UY%fD8o-*cKrivUU4u(3Jy;{=iZlVF*)&Pp8*FiXeNF|gQ*;L`|wbBslIDy&>ITu1$VPoij^)Z;9^Qo75*t$ z0$Io8dPno{z*h{lOIR2XVJDvo+$w|f#q7LUJg;&@OxTt!h z10yPov}k~4g)s82j8M{`^FUjJjsy;duM9?+aaP5i3p7auGCzC6d=Cp>dcJEfw_dxN_ zufK>j8Fq8|6PI3RKSd-#Z#|JI;RAFxLo)}98FUG%gns%F#F7Cip=lY&*r2?^@kQPXP%9#{|Y=L8edl`O{JxK$$$K@th)=l z2g)6UJ~i4Qp`X$Lcqnoh(|)Iz8uoDx-Ae#9-z+I5v^kS&>)f;m&Vor{k<$7bgQr~4 zpI%%z%#{IH2Vx`vBsd?u5vJLlcW>-NA(_J(UjHU7vR3#o2BZn{=`vju=j$A4{mA&x zs*lv9z<|6QNJ_rO%d>jyZGAjtB(a@8t+q-(1yqNm9>{Ow;yq`^kq0p1?o2#DKRhVb}&VFOvem_7TwL%N%dU_k!0IyD-uv!-f=Pzf-G0S{go3OfEzqf=oSkHAMynRGpQb{) z@5%hf?P5MZ&EPf>cZpJXUKKVu@mXGL-NBD~6}jG9cZBHV(GD6lnh8tZYK6%Ww2af6 z#Qjq~s<$k_Sm9vKX7l&>a9y`gSiZsH>!bWx0q%^+Dg>65e(VZ9iA?Bmzqi~lc)a?`}V+#Q|6 z17aoOS6EGO93GBO6~kaME3SO<&tve zW24dBbe&PO1k#vSdB`HxGY8gkHTI31|LmK}E&zu{9n$oW985_=;OfDZf z-PkNEDA6UnLyymo-4v0*+AhlIDNqy+oZC*MXder|z^0k6WAhD0y1z}mFpdS99C4I9 z^#NMBRi2tP;hl}}&WC$Yb_60f$J`HI{Bce_^JH1n38RcwVD`2ukg^l?#ZjVULxKMcGJbgZkk+;Ojr7HZ2fl>?xh3RJvdy@zt(+e&**w>W3|nACC{S z1Cpq^#igx(A$!BUXCB}hnWA)UQfdb{_DHj1o5izZ!sKVb0+;luuqI?E6<^V8LXI*Z z#is7h7gGHPlD7kSqHAw<9hQOC0Gh4=2dADVE$mX5j6$1kyANp;2sesH+&afQOGX+} z*@N+YqShXAJoe@O$%x-Bdm7W6rH{<)Z3Qm8Prj$Mc=t;J`|)sX5IgAe>GGj|!gxJw znuQWg4W(()^|8HJK17`5%kt5A=Vih`iZl>G`4wr|hx>s~1PivxqbKJs{AyJ|9^9iT zXBT%%uQob1N58MWtEqS;itsLkvmgBISSrrLx0j}fg!Ep*>S2@jbu?d|3h!k74!Qid z#c%wtPQS;tG(>T@1ot!C=$0{jpjD1qXh-gi+hm@iLz2ssaq|35S0P=!%!kXB5&d<} zj)b0}7uxcGp2-5ivsz^4ul(6luJE~urods8{FI52MC^El?uk+l$>Y@X&I@Lr?p>wv zWm$@akAA-e3a!u*+K15jZ76c%=&N+|dPZIA)s^DvQnAC#4(nh`iR_$6ANOPR9;LnC zTat?YfnMvv%ah3EhO27&9Q`vRksGogZNO<2gIX^``Q85A;dyO2z|Z|#Jvq~K4tw5TvYk!+M-d2im}T=<1+(s*fz8zdD9 zp`Q-!#EN0OPF_TKs}DTzRz}pUh)KcKf7n(v^OtvYpSj>7I{oE-${XAlJn?Og65(G| z0-FPQc{8M>sA>hxkrgy-cjKY3@vNuo7lSs&^nmi5!5n-WGE+zS1Z>+bxT#ziwIBI7 z%tFg3JLc=sBmG~WZ*z43O(@sfZ*vJR@)Z`bR2lHbY>B56&p6~6CcYn#*`vaA2~#$~ zX0%aPHzlRMA*qiq1(^#MRugDRSLV=nY&u~iTg-H7m$kM=I*kt{oB-bzp)ze}gQHTxl{nEd13XUvqpISF!?=RE>3S0=lTRLC;jh(0Y7XR{w|^I= zx0uj5T{XLFQ?mS5c7B%iPQMwnfd3gfvw|mCt59XUI#&M!iO??)1oeg5HM6}+jeM16 zbByh|gqPXj9I~kykA|0s8VY8M*>qtV1x4m<^Q^|kV0qPB?7Lg#%5$OFo!TuWMm*tf zxZR51sLJ0H-L#EYYSV%L1p;)u-+f-G)7PZ>maPg-IZip+|2Bu~x{1l3eHU=ycggVr zz7WywFuN-$mw0Ydlr%cRZlK~ei6O54fdcPWFdyt#7t@}hf8xcJ{|rOid87U8Zk+WT zJ0It8Cp_HX$ulGV_U+85O(!tzI#P3?J2q*fS&t0q1tuJHizHM+KiCf*n0q$Gjq0kr z?tFia$elUxJo)q~3((R87M?FK0r7w&HL7&*#)>`vy@t@aJ|VBem+w#^A)wConkiw5 z8w12jY$yd9gnng&DMHoPZFdp&_RjM;2t)lHWBg7|Q}2ay1z-a#el{UO#w-|+Qt}&x z6V{y*);VHWjnW1dv;o9;< z$}g48iXA#@)3boFO~~FOoGK#~eGIuwS);bk^G+>yUQ{nj{a}BBZuptA&&vP=Z+zVr zrdD<4vyle2lbSsjPUpJf4>KE;EZf>D%6;Eh#x$(GPR>ynqUB3$yblL;d`SZ7vH1|HV>kIpGZZ`OtuJ(UYU!8PR|hmM z%S0-k!MS_O)J9_xOr9NEQH6pg7Tr5}jn>jDrU-WPvE7DO`7EJ+hvvNWmOH-Tuj{<>M?W~y| zNENsfe|qv^H$rGTa&OsG%JI|dh`ZrB+@DK%Qz2r_GBh2O>_n?7b!SN~@7>hZ9ton} z*vGhnJNvdNF(zoBYa|XKWBH!hx{b@OL%yck5 zWsoqgs~`VAKN)jX)*2o^#VI3n zI717=v;)*YmB{9KrQR;+RHh{~TK_7yyIJU27rFRQ4dP5u-953Xc<{Q^Ii9HtlgIIw z0QIvb8c3YEjY$n|Rb+hB=UodvLRV)P_%A5HNBvzsZ>7~?g@|Xl-`txyKlvXBBBMLe zOqXU9FojX@3N_@}uK4rQ%H9Db6@MJtLSvG4OlW55_c3r4VJruF&`Ehb{jKS=nO%p= zv&$i`Zx)3{9?}(-w<9nD)u~g36iul3?2U}Ie5tW5*Ws@Zfi2-r`_6DK;{}%)_|B=l zp(&Gjxr$GOAu#Iw_-0C4VfZNL!$w9Fvxja2$bU49-(={n_QR4L(tG(n3Kvr9F?T9<)5DqAPhRGt7 z4)P*%6jKxZtE(}vzbMBd>AQ=4{mVZx_aSSg9B%7UeexO5TISq@OedjYJMr8|mO_9= zZEadtf{?XleTr%V2Z&7`WYYuVQf$UW`IK;Ik%o4a0zT zToF^8?o3MU0)y*lz}@7lF-#Jv7D%4c`YvD z_1Bk6^t70BM@`po#bbQDLxAVdocRmJ2E>!5#;Vedr~?aKl`mo(HO-@VLq7lDI4VI_ zWqZFtG!|wUp{-HYfV>~5r5sT~X|sJQFZ55Z26u0Mb$R?#fjhj5OzAIeI0J+eNiKla zpu;eBGzUtX$~$jL2a|SA@6qZHJTY;qSZ!zKQfNw;DeeP=m;#Umim)pAjY78t6+TalJ6SUYRcil0-~%wV zNr9Q@9mdrYT+XB?Z^EF+#U3EU!grp>q&Hua%vSrRa8(!)`1z@bA6p7%n%isal6J;* z3HXi3AGNxR&^3&nAiQ0FT+rzxMDuY*G#Q@y0EuxZyd4yn5p+w|6%5Oe*EqGgve$dHkxOW3z zjAGE>a11}5SWKvM2N^e+g53v&0hqgEX zk}V1h;GOQ+7y6P^DH86M880sqb}JD&ve~xWZ`2;7H#?);+jK>J%=o*DSd$X(?-KkT{4g;=!NLY?k+cA(V(;of%BFz`Y{*!kD zPjjYUYaT%)F9loYly26~hH~5Ee+>ygZb-_qYVqmx`1ZE}8llfVj`0{0T(!}cuiZf@ z%}eMjXqBD@E8juQ0eXcRnM~POg2ei|$GZg4@e7ad-@MCz`q2e(5Jv$n?`b~1%#(R` zczL|$nnvew?`MH7Qzi|%HZH*4x5>y+Vd~TGWK&Y9g~c2{1K`b`)|tJpx0Oe?K5=~Y zA>HaZNeogyI@f-^4+48m#?Ek1`ba7pxOu3uNunkB0i#Jj`5njR=+N8L20ln)di0jb zzYg4F2}J%qMeBBDWjH*{XunVB=AK#~SoaV~OQ_^~x!|WYj!K)4rPYF{WnS>-na1qFIy8 ztE$mIlRi2bR-oq-QvT#Ks0ZXrGu@KXq^hSB;mjuzoIlnwjIZ%G7}T?C5mHQvVh2!h z<|LsO*Q3XU;PlkU!Nln5`5vob4vbb$5)(JNH9};+OT5t_C-IgdH-UbG6Lqn`90yqK zq@?4Gm7cx-?dqKnUUx>nUi|<<=PRUeNM0tJ&@~|4dfa*Ph7Cv*zq`Mr^%~XZ0I7RA z_Wa#N_8UL+S8(HxM0|mm_1d`IECh z@j6>i2CTCf&Y?~ciGsKjQXzFBU2KdZyca=$(C_6_u-bSwRq9W8UWa-Trnk8Elm>6! zQN=dw;YyBh{CuAD%ykka8{y*SDb@}5g!83nrE#-85I<)9&Abykp2o)Qn?xR)=p%5U z!1DCd*-S1o=XuTpC=twZt$xha_=n%ancE+Xzx@ZoCWfa+&6+%$*m!~Sba9;!Xtt*O z#3^qGXpNnEqXh^ZZqvPi(hi4dH{Byl*DaXi0Lls9)6+knm0e;YSz3BCdhyrt!~5z} zmOrvcelC`sX%5SOaAAxOdx#i(MIBubZcB1+?>*`MX|;T{Ry)brasLF))TSvtc1}4r zS1$%cv`KPwlH>tEjXin$WCVuakL3$Szs zV``wAhh!*all$Yb@LD+BsM4&UUc;yi`Z0A(~}mK!ZXEeG1soV-#ddFQ=y*wNEg6U#QsMjeWXUy z9;_be=Ic>w%8>3|Ip;gz<12mhiTkx_vKsLzuIY9c^+%?H9v)9F;6op0q~g7EF;j-j z6TcQ)xJLVG$dSnENvhMYKW9f4)&}g%vYh&OU&*+?d&FUtzyRK;sOOMJz=7rto7!0f zq=;2T-*iLB7D5dX+nEfxe&Z**(l+wx=Q}fX_H+v%0X8ccFQ(B?_0993cA|0|^2G|Q zbJwn3NcCO%8Dam&A>%nWp!}zc&?xT#ZNlah?I|^w;z<<=K2`XEu36hSic|mek-$2! z^Q|;!Jw>y zg4sN;OnE+c{L=2}9rZrtD>TR@>v0H>P+>^(WX|OCGO~5G0vxY6k2O1Ej(KU`R@$-u zOoaNTJUF(};*fMo6~1%OE2&Pd>xPIDkfS|0zs5h8JQcV)QFrh7ppPC0*Ox2d`u9Ox zjN6P1^d%EA1{l^#NZxv4=r0jo^$Q$)LKochEPo0l8Om=>$IvX%L*SEdh-6%Mso3N)qXw8IW}l7(HtrznRFLxhtAyz#?Dj zhh=L$4kSnvG{ZlmG^uXtHTxUFBTj>vYm)ba6$GOdzZ#4F*-=|Fe_jB{TYwiWx|Xy` zfwAQL zWv+xI@8yvAzZZG+e=l?9#_8ANUSeDj)C(d#yi=NOV!fT)Q~3F9v(!5q?8)i+%y=n6!*3#Sww$AQ@`^B5npl$*OH^piYtT_s3*1G_I@!Ygd&vq5gEC z@8~?f%WK|V5itN~4&+~ApmB`1Jb&QJ=tWUx#r*m4G*zX*$wQ)Q)aiI3e^5319YjVwk%oB^Ia-}~M&0W% z<)n@&e%x`+qT(jj#_u#b@DLz^*xmxyJ4-)HRU&ELql(ZZ=}(5~CgihS5gRJ%5T4nS zpPF@^7*7@LS}oD6SpM`BWW31MnpW7MQM^d8;Y=Q?Wew~!6>pmA^vmU8Aj^4rNNwtu zj#Ht5F8Q`OdnZ$q2%M!4axe*E$Jx$Y`z14||K{uAKb1fPA0LivW%4ZPuTCXMtyOTIWD z6aH8P>Fe7EKz=8QhgP`EH2`i9U}h<>eQ!(@Ln50+AC1xBA*UYI3{v;Hop%N}b3wRMYkjU;$w^=BCyly#;`0J_Sz5Ti>R{rgBNsu_GFkGRDsz3%W1c#%} zmQmsJb)Dw=_IUnjy*ywJpvvBmc3_QfOr)CB34#2gaNB(Uw$Hknq^d>HpO|^kCi2pe z)5{UH+B`OTQuJ$3cRJ@iQp3olr%c*XCt=0%E&04 zi<9`0n6YIWu}bdUgwn#8!vqpgyr20^XJfqD13)Yulx}juTHUCrbJmgWV%SDJvrP4x zy{l|38pvq{AoVAJwQ?T6G4r0Y`I?7H;Ai6fvHkVeZ8;bUUqHgS=h8>qnNImdN%WRg zP0j2BjNNxKE`=^d+U^`he(aU}Hwu6X0hav_el^B0wmB>YT7$xp;Y=>|MR1&5AJvy8 zir;VDCfKwTo) z0T;*QMNi<5pKPAKMwUzGUkH`ud9pap=mIGKIiDc2zhueM3Weugw=#>LPK*yiabr>YI9zqT#p-V z=6=MW0{$o6jGW5k;-R@y9}g{VC%ziBYD$1p(mSR-j#OFv{jAkx4aM5eRt){{J1OA7 zsK$HXgqY)4@n!(7@({5Ok`y707rGZAO^h3wlh0R=F6@d8+~ba%X&rPjb`mPSi-~C| zS=cK42#h=8s#x&4!F$$r%?{J0Bt2x8LK$4UCY|qSXkOdm_B-ju%X+nU_x!m0IBxIY zXR@~23Bo{tvHSc%XXwSiA<>iRk0?iW@u*$3Pcc7TbpEJbZga{V3~2-ZgwO?MD1yUy zA{J6<9ZPcWk3k3!*v9C-pSlVe@>c2WEA0|4(Y^wqQhMtv-B0F_MW-HETtBn=P*NKZ ze?X&|l9}BQ0Xn=08GI*6ILy#t%%%Fpv5CLwG3Y3{)+>zn0P;AG|0hF3 zI$e85u=hLBcSS)BcqJks^pm9SC^Nli~<`#D#v% zT~eBX3v{&eu%OfopNk241c^Gha2=8yf(496l#}J8SxPj?z8zRgfq8yN$b$VRxY)}e z3aLSh?cDgC~S0nSaIhY$%m1}> z<2i7N9q)YUR>(k!FuChe(sPfqbgV%DLvWcmi9a(ZGk6V zm>RZ~%IFFW^w&ib4opDR4orvYi4Y=0xz*SXvs^1!&C4r)FgCwKqWtP1QJ=Q};uf$z zcF`T53H$M8P1#o7YhG?@r@fFht!s0f!Hy(15oZ;uHS*VXc%^DPCb7=OdwVK|$Rp|f zqgs#Q_8@#Qde#5mMgr!tduPX?G?`~5>AIu%5Lva<4yLm@^Kn;}3XtFQ)4DN)v13hG zIgD}p*oO}It0An~UePh&1|QlJd`9=~km7yzfXM0$hkgpp1C1)($&#CWgnAb!lU*XH zhR@f_TXa&X3OoJ1<~~Xqn!a^zfGra!9G2ywM#`qw1Y)ALSK?~^!Wx4P^S(jdcnaSI ziqglOx2Gf1!}>$FpKt}o3a|)HdH@2#AjhLlKYr*pZ^|epS4!xFeq9wd$4Y##2(G&3 zfz_bT-g`@&@|pkBKpIt!JzodqGyCnb+ewJBqaFhRjfNCqAM3w-lDSpqPf0Iyzn>I^ z4--UDhl5pV$XLH7aS#sM8Q$Z86zH>40 z!|ajFqlcWoD4kOHDgnqt{3sun0xQ#{zwmh)L>Ens4HAqElYF zuu3T{$Z&vu947frG+HO&YV14oI|s|**+t(jjNva;J^ay~jA!O`?CFr*mR==J>SRT)RmObEtwkad?)qeuYkaI0?d#B@S|1xqgf5$HIDo? zS;@E#$w-G>i=LD$zPZXfsqtuN;=`On-%UY{CQtdW9bN9AvlQpGfv&&$o^QT?d!cIs z(ljo67Niko5?F=}(t{9T2aT12-rV0r=`-9jEE6nz9zD=wP+Y} zdE9n>Eg)}y$Tl+I)Z3k()Ep<+Jos?Yur9K3IIADpPbVB)xKav<)9RiXPA4>Z`yPtC zr*5OUWq;spx>RH0QGLZvpT6CamnQk6!~mjFfUdsa0Wt!e2ggccUYL`#}kmq5TSV=~n2=*D% zle^CztY9do`2G)~Pg57Zu*AR8 z`Ggq=Z{C!UDYc>fJ=ldSXaPpM&dI-i7)Ur>8sy548{9{*2#K`X6UEi-#TS($W?o~s z&3Cv!)5S=i@NJEy&CFb~0a+Usnb5I45?kz)taE;-CSI&JOuOxZ*yL>sB|RDiTPh<~ zJkk=(d5&{O#BkLilVZRDyBXV87*b-cZz|VINx(}y|2KT;(%~)h{s+E4PYScup+M@_ zq+t8jajU$6w>O?R@!7#}wMm4&`Z`umxgLn@{zP%=*)(J;V(iO=1zq=uh2YVuq%)2u zeDV(+Yo!%;ozhda>6c)9sqkqyN@O{(Ird#yHM=maqn_#G=GMl;Jr8C#ma;g4oCw^V z9pu=K*)w`-$IihI%-(g=^m9^r3;QePv<>H6H>c~T~Z0f({Fstf@qSf5+n0`R*d`f2y8G$8*6Js#9|p2XPa%5$%zW}<&9U|1 zalxZWev(59-a<1G7tdcL-n|^Iz&2}`J~A9=rWz}Rt>s>BR>POme)o&|ta`O5B0aN? zttocLA9?Y)T=pLK#Uxe&vi74N1YP&Vopw%(4Aa8u=*0dY)I0sqtc_;0$w19N`xhLq z)P8^=Cfi=m{C-;VMX%C8v|znl0IHvPl8Ow@J#%~iJ$&DYwc4QWaE3tvwSpJlZ_1ki zjgH_zszaP^EqTiUd!1A2k+t-?Hcnl&Efdjk)eMf$h>S>k+cgo`D!aU1UO`+^UnI`d z*3_p+{cDtFdVt^d+JKQP$PpVR!q5HGeC)h$=RDZ(#x25Fi5;`p*SE_PH=sltw_+=U zXF=;(uFubLB`9IXXQz?D)2!zlA_mm(%5)&!Kmq10)0Y!1?SAP?#GiXUgEq)xi@ul- zm;5hW!e{!RTiwV;v>WY;O7t)L^vaNxYY4TcsI^biYHwTjWpsvJWK3MKDmT+Q-cZ96Vi*{P0Y3e|IRy_>V&cLh zAO@&*Njt~B8PE64wQy`s`938n8#O3~I6RZHPA+dnL&y3WcT{eLkK#!n>+v#+Tdk2_ z;(Temi16>vDvi9&!m4iTYdbykf0n1ktWU_>(kf61oLmw$mh`_mK)KH1r#SBwFAxo2HRw3+*20aT=dQ{Vg|aAJJv;IV>=k{N5{6}n5}chrdD zz@mXCy|-TSZ+vB`^%L!~W7qYqr=q3qUAJP3XJoCeKxeyI$_%S~Cej6bH?id|5;mR?o_2wzBSNdo9YQB7J#yPq6$>sBHo z1-_frjW(H=Tw<+3i9B0{ggct1-jOfrjpr=b*i)AwYgP)tP|-i-5d&OaF6E&QDBG{! zwtr^eUFIG2eXT<;LRs~NyoJ;F1+5>QWR?1}m&z>xs6eek*WX7A1R%%WQ0ABAb#wWpmO644){K#)!8q08%*UZi|E+xiW#<%d=k#1G zcHNN;A9qG^atsuLN~XP05?}W$)Q7$_(H}pv|4X{Xk9Xx4=Y1kmUT{Dzl&t(7cQ-W^ zS*02sZW!K=t4@u?{`FS9`sVLCJ*#Lqq0pz2U4L~espv{scW8QuIlMW{-`?lMzN1QV zN^l`GPiukg)pOQ3QF)=CJQGCYg8=mV&E9d*p z;$l#T*cL zo4$4$HJh=;3EWX-BO(5sg9~D8e@-dth&Mi5ry+(?{Igy>aXFyoVa}HM$1Gap?E2Ne zQy%$Xl5h-%DN(ZW5Na=0Cw*yC0x-ls3c0o^gFkrAAi|8UYw(njYu^bnBrX$Cv*Y6v zQ1Oi+)dlaOiENQm3S=@`O?M^E!|h|B4 zTbY!!)&n1@0=DumuF{3vKNe3@jnf7vZ>A3>Fp${m{r3AWdyk8+u=un`ulXz`xmo?ns zGOP$bpD2+TaH@Cy71QMC!eP?Z>r=SBnPj>-Op1>^324vwS3~F<6N!z!u#z8g3CMih+sPX zq;_FeUTggEvc!fwPE!1w?#!O%#bd2284J#C%rzFka&`5*F}Qu&8fh7rH)5+JJd3=>!N94ngc~GLp2lWahFn!Pc#{n8KD(v*5~>q zB6sv4eR8I=B#0~xt8M32=nZM|PEm)C@IJSd=jm47Cfo%wsrh4_;x8-xiQYaRKL_4XwQe6+4oxY}+ zFZh@zQ0ILl-IgRz@aW%-eXLB32)^nI)JO=7+oWdz ze)0$hRla0Rl7}Cr({brbl&*HJwORVI8@@Go(RCMQ7yo`I-Z(l(q_!B4sfny`T5$f> z660(S-~ubSL!m_(_y49KVuxq zz~BTc1X3wl*iO5ufwg#>TKB77S=fEKkdm?sQ(NNI<&{`Ym*D;4p`2%~n&Hwr&6b1j zIGQj)kA^IXFCfgeC!c+6@b18?Ab5h$V~G#VVIMxZqb^u}G-!RenH(}7Q`0}e%N4R` zbf4z{=k6{d3Pg_ps4n-<4#on zLcnAY3@RF@EIL@Boh$K}L*G}fSJ*o!|I<;0>fME%mHb=K|CjY;PBeJ%GhoKxBu|WV zI3>#-bZg&dpZYi&NIEomw3s#}v~ul3T^z-dcT?Tqn0;@$|Gn`op;#Dfj&zwT&g~>s zAzBk+aBz|bh8KFW+2WO9#hBe=thyOpg@;c{uTwAFF_n2?y?l~)RrdOkq;pDJSNBL5 zX$Y)g^iH<_Josan*?&gv} zVmvyTB1tc2AC#ma7MI*gOq9cs|0(1xPsL$BmSgymWPVFjpv}rmZLig73%yx>yQnYZ zcziXS(iyHW6qrU=*SE_PF}gIUzNjhj;?{<{>*snyGl8Y2aWf9h4Il8UG^@CboF4gnxxi(j0?fuKk7bJu1Wg?V1V5%dsn-5VK*zQ zpE}7Mov;?UpJFf@dAT6TEu#5qb|6CQuHqV`>kF=4937 zd+yCY(U=s+Zpxl&Xq0QMehg&qi2Zxm_n63b4%~*p$|zW5px^oSyD)$}tyRlXA$V{>@Y~PMJ7}nKrm2h(1<9-H? z6$;&W`+JnHtVM%)Ha_fONkXFX`Bb?@?*qa!0#B__ce}H;5nRP!PICjU?O(`vlpCQ3 z+G>spRkhv0#F;Fe=A|RTM8&0}Q-e&YY3(c(KGHW{*E2EdMZj>i!pG;)W@J7JHc%1Alj?{8EQWxC8OMH{7MUf4<%L65I63S9~7W@VpHohCO1+c zg8Wl&G!uIf`avfo_Ije~3l{K0-!fM|}!hBaI6IQZ=Y4A1C* zR5(DMVx>P027CfoQEgx{!Zv+*?Q_zRte`9AH-6mt=ppnv-HP8k71CSb3LVkJ(JZlt z=DCIcKgyHc)6lWaZp^p|tNJ6S5}56iwwaDmv38*amYvSN;?^{yJ4Oj>HPJ%mb0$6g zwN8Kp!a5b^#@&AsY*s4&=q^lo04(Aeh`9?ppBaN=?D@S5O9vUT_$+MjE-c@o4Gr-G z?!tPscgOw@P)h>@6aWSQ2mk;8006->Od_WP008I&001BW002jFX>f35ayCJDX>&zZ zGhs1dGBS8Ja5-}`Z7yqYbaN$?d2H2H5QV=%+saxf74a1)OIzDlkV4C1Q9!XGdy(Q& zfd&L@(TE{{sQ+k)QBk89)5O#@C%(7ejGCHFr@GE4hPT_=qQ&!w|mn={8>F33p546zQ>*6THXQ zbc#JBV;4KvP9+I8@g)z_JNl7B9phO;Hy$!NlMSTBZZ}IfK+T+^CTO_{~%AU@6D7sNk_&mpZ{bkp_D(fifbNy(M3$r{nf6s}aw40fh znioyKZSFHGRJSjlbR}b1y3L8TCbKrT+3h(WzeaVs;=B_*7h}#x>ud_j(h>P;%F}iH z?pwk56TxD@o1gNQ)n2*acZ}_*XvD+?-|DH2C{5(lQ=a^Sp=hN7{2Rm&0A25FB zzxh_~T%@t&Zci7@!@da_ox`0n`*^P^Yno)yp2zOr=x#w#cKW?e^umzN&Q- z)?|oFivQ|hE(%GQTAOkr&~eL&?;>uW*uqb}F#8r|c)qxG(<~`wi_=wKy^a)0Mjmlm zX4n<aJqAr)OV9ti-vq$b5AN^i;CHcjqa{nFUCE)sQsxlWZJ|uzSs8yUrpvOoU#9>!}@1# z%kHGTJot5&_QHO@;3K{FES$~OW__A-W7*}|St?q^6d&= z?G(GnaqVTz;H_#!k5_zG>s-J8&AtOndpA#$kMIrL@@dwL%}EM#lVyZcc5V0fy`vX= z(n9IG_t{AGPv_X^%qY6 zJ^E?Gsjk0sdpG^xGE?!j_&vF!RSJ@`=Pvzd1w3+S+o#E2rx#EC8)|UndC!jd$5S?+ zI=LovveB}C|MMOndLAF(&B(;SfXL>nboi&~r7l%KQS#>J?fQCk@%i}A=`lX>q7iZ>C$?_)zT$KEZ8)`Uyxe>|t!$pj z8UD%q+;{)IpuY&8Ya=4(X655z|EQ9Ur^6c?YXwg?7uvr&LB!!d1j+D9%P7e3^2#dk$P3EJ@CnKB3-R&D3d$)6 z%ga93kp3S$*8kD4|6d-?XW^WGjo5#T;6G8%YVp_Ozx46>A}4uH^-)YQ}rw9L#*Ow7zYJX}0H|Kb;Y>IUGWBYr~KM?#a--`5PdhA)=rnBcVSd{{#D176Kw3009XB1sM?&9p?qgU-<|C zd_*KVZe$cxX)OXY3y*inbyM^__0xnz#GkaoJ}@u>NqS^F3wwFJ!awRV@xK(gdQn(|3|=IFe)@E3jH5|Q;y`l{PTGI4{Gv%goJ<-J?t#1Tux5KvkeE z`@stQO)gaF5S|wSGC)+=bp} zSG#(lGnR6)4d)!pmZrD03)L=CGz?>k500J6y2Vt`z3v-Ukp9Dc(3FO{_<JQR@q* zkK>05h)(LxFE$k}Ir;xBbL(Y~mG`Osiw{I&-m5pd?$KN%F7h@5PAtfx;^hMw#su6i zN87NoY(3aTbU-UH(x{FAun)XaEM!=P4#l-V=mhp$fGJn z75>{y$Z6q4utkN@KieC`zW^q~i%}Cvy%#EQm5h%fwQ)Og-RGf4SZo#`j=9GbrerveborK)FQm5*IG4L#aB|h>6ZGjm)wG{GJ8Mg`?bgupfKOx z0;`Kgn6wWYqD}Jd1%dd0i#uIRdq%}$^thx>%{|MnkNY_@{~$G@q|lU^n$Kc67}Wg% z@XI?7am%CTr>fNC>n0+;j!DpX2-qt|42 z>k|n~l>#A0(N)?6HQS(lNDE9;Y1vg*ajxMncXoZyKT#swOMj=rh_eVe1(2W=e7BD0 zjapDW@V7wm+xAnW_?{kVnM{mPw5Xn{QXHe1D#MA7+~Ob|SEy=@PTz~($WfG55b$<5 zL_0M%lVdwf6uwkg$*ftU>7i359Gl0@7#RB^`~|71`>+|I1r^lY9W&GptN?qo9Wy;Q zh}4V&Q|p?VR2Q1E!50khkMWa{LzPH!M@WA{_6V}g&rTh#_|~`NgP`1PYG9E8U}W_c zYDRx;r+4H!)If$KKw_l)nnC1}za=l}bDlx(%Gc$`(Vz<)>4aU31H6PIy>GKz)*tM3 zJdN|v*Ozp_Y7A5(d-sxPEx1Zu*9>cBZn8Mk)cCz)<5sR}L|Lo_=3Hj5>D%N}wg@Do z`wq@%>I?f4Et3#Mb0yl%13YKiUV-ohEe+Pu3dOKAf_S0NXM;IXEd|I^Duthe6MKSd zUT-OWsV56YyACiT5Z{?nqHhll`%3dGn4)H~Z`@$|>qVtpmc9tlSU4fMCe?6hj2dwJ z>J9SZ;VitNKha-@CxMb|0ZB!+i5{O?&NPo4d0{#2NO7~)=b9QP)zKZMV(gJBl1vaS zhP=v(=M`0bTHq=97))}-_j^uK$~xrtZ_a&(yNb$U{5SWP?A@D}&TQ_t0p2XHaW0@j zgMd69szSuwKd2Nf?s9(kfq#HFWPC=&v0;t%#_3G34;zje2oX7Dk?&GUR8ZxT{lx?e z%94%yln+Y(tSfH8A*D0^I25m7rU@9SEHd6}T3GtSNREz`J0{r1FEws*Xbq(vauXeU z{fslDw>a07#if(Ui6E%)U+cxZ&t;m)^Jry=c7)!EF=mR29Dp3C_=QMwI+F-$Yq`b4 z3DDKR0x?@fMcxC#U)+gCYsGB6XhP^)*<4Lhv|*-L49s&mQWWHJJobCZ-bI{W?MQ3! z?LQN`y-qi+s$m{>vK0#8uQ(rUQtH;>Nv)~P_{!&rUd_Cp%l;x-5dqQ4o*-8lXEy1s9h4_aVx9-_(c>S%a&?rkm(` zxq{;!_I1l2k7Mq!F-rh6Txgf6Z?C4*>03J@rV}6kW-K%$R8e^;QAod;qg%cW>r*4T zV0Ah?di?~j(z&WPGYr6etrHsEb1x&Y1O`dAab69fOI`(FU@da z9h`sSHKxDv>6XK5{`unNUn*bB^V`Rm-O7;n9kK$?8)S*)8AXEFIx_Xdbo_U4yI3-% zwu3W;Sz(0_etcz{eruGWXg(E13Gz2i&k(voyiGsV?j_JW@#R&ty)M`J7Dr=H>CRLSePiXtsk$lx z>3p$#@nBKc5P=!X#X23)F7r3MEyhF~QKX0dDFgZgRB&0`JAPJ$Y?7BAzKb`oZ+e`= zMH<}|#^a}cbyUqMn%##MFxMWSgi#cy2I=204D&W*n^m;V{~zRjs@ zhZH=3y`xL~=kN&AMKjAPF`cd6C8J8!*Dvx+Z{%&w$jQdw7QNw69Qp%h(^5fc#>S74 zjS!N|yaW-3V`ZbBL5ixSIDx;t7~m}IHYuO*2_Xn`?N|fv6DkY zBZzD6*ii>1ZVRW|nx?&$pC!ADCQkG)hVjGR!|F(wK6dHDT>sp`km{;X{(I4VEVXI0 zV!ZNCHs5pmD;hBwrS_S)ef&RC6(h_Oh1|`NzoKh~T;<)5POHIlvVHMSOJCMtQdowQ zDG8y$wI0(Te5FHnM4yl7qN`pwHX$8vCp~~RVOPP5uBR2mJ53V-={T*a8!YZ44lGVzIyxj?orYm~!Es7bm- z#OX(L@1L@)7ssNHsxM20B@DUY84bZ4$w8fb>E5H`;Uo3O2$?+=6`S!2gnU~oYF;&( zSmDG=m1@S@y0(xfz}jz8n6I5m`E?Za>>ea!73q||idAR&SNX>b160Iq)b{`yGLFGqP_$^4GevaV@;9z{xDdA||7M8rMyWSj7ZjuFY3*Rdj`KH@-s18anY!USvnBQzzd7h<51N@TG;~A;lW@@r`m*A9c<+vvlZCN>0Ln@eBaf=rYpT62@Tf`gx37?PRCjSg#JJo$R@9;H7%UfWMqkxw_rn;>}w~uF3sWuD9 zeppUI!X~@!wDy_W#UO5EM_{T-R3~P$h?X5pov6&<(%jy9RW;T)sK?+SWFM5O;?efX zK~EqdpEz|S`j4r^CNq5eNVZy;T!)Ln+QM~n2-v~MPTWdq_?pKhWt(GmtDwAtt#8?O zHr@frLUOWG<`m?{%nt%H5fH#lsFj~XHVpD-7 zAZxkfL|#ay^b!M5`?Ot8sS&Dt2q91BjpZV(geDqFpOIE1^`B$M+LYDtlI5KyMb?jArj!|Ex7M^1D;#tPWivh0I0A=R1l5aPA83hW5 zP!PwBXiD7*nCb-Qt<}Q}k>ajRlj6+XS!~d&nB%$hAbC@4_5pG=j}wsS66IYFSpv%w zfR*E(@XJGNdxItcUNngi6BTw-_ve#_3LAk+qC%M*9Gb7@s4RLWK_^9ao5O& zw@(Ajo$#@Dk0FuVvIm9_1CCfCeyO@I7%I1tYAWD7YyvJ2LAFB=8==Y5zG!0C01HTH z1p6YWf7dIBD&zDz%IL1K{G_IiZ0JSnLO=|Z`#fS)tAs=t-?SivSO=+GDYR^67*!k^ z@4iska}0D89AYIvU^-zQ^(b+2KUA&FR_^b|8KyI)(_V6v5s750%Ll3kRvu7jSE;CI zMV%GXizrdeQIMdG3p&>x2dsw`sqfDfi#c@rjEG-tL$|aTEZoZzXl1z@EPUv-QBIJ| zJx8`2f4K+f0*j}#d8ganMl+r%8M(}SSj~ojv6RgzE4cDI#7icQ4ra?r&Vei=x;r2( zO3jyyNaCB|v#|zd98xQ8Jdy|)_pQn>c+1js*VIb@|9T8tdRrxDE1-y0F{SNYx!0|d zyRCi!0&#%0QR&>};9gsTwYkSaR>nu=er%Z?q~Hmtwe9yzeBeL*F({ivgXi;61m}r{ zP@ZS-{@-pb(&6}{J!O~vs$(yk2M9ncdLbt2qc>bX7ZwPe%1R`QD2wegk5>V1y;8At zj~%jbAZfBYrmo^?LHyQPEP7BXyoKGuOp7THn|28-XzABqn{$y?jRG~$!b9`uVNr6)c>2O;@$+=lR`$M4QoaqA>!Y%c z8Hv&MNae|a4V&r0Q4HVn?GK{6xhD_&@txa9xZ2DFP3V7w8rcMUg#lDClXn2 z3D6LwZZ$4(g7G*XK*PH=Ki``D&erITfo}x>6Gvs#wc=3wju?h9`K@Z&ROO4{cr@tL z$(G5w)o&DMGGq0{9bppR&}#_W4o%0-A9Kh25(zCU+ivCkcFpS?(wE+$Hqjb%FjD@e ztw9PX;(7uk6#pVmLfb|O$S19ui{pHqCdU~eNCEBEOk*X{=5s%D75UIA{tkF8gM9?1 zGAgyEwAB@frhWLNJQv`Mcb7&})Vsc*sxTG(fI-pxWr1>?ZOle!!$bF+rx=a2)a*S) zZa}08lKx@ge8{+ex|;qSKIDuT6loAKmzhMf)PJ)Hv@i@4QXfqrm@Sqc8+Ku#6?*Af z3)AML#LU5=i0QSTVSEed0JxfAk=(Iy?y#8nMgxDL*ckudLOUzvEcDi}ivtytU@Uy! zyvh^&SwZtV87yYFx;z(cAW9)neVUr!WSj4$_?f>)P~}t@vX;%q>4t*0jv+r?rH`TH zo?fIsg5hhp4C9p?89Z%`nfYji4J({CFtsq!-2<{%u+EiC_ z$ltW9(Cc*sCgDBHT{%zO?J2h&q|i3>-okyUt%w4}3M!@lu?;Ft$w^+M;AtrI$a zW6mx4Dc_%OC}_kJM<+vIOxNY8^m8Z)*(eq@FIw6j{(xph8ef9o7C2vugiA zp?ajs-HC?YNeLZsHP)x_36Nc%#C8|b{h`ss-XJ;I23#Z1XL*r{-RLA~>0!)3hCSM` zw|_SXcKcH~eqPv0LIEj!<&q5^FI-<_t9SzFQR}916CD1SVtimo4VHCV{i-7PS{WXa z(x4!D<96#|)Kom5KavT10+_D{0fB0m(rfk6QMg@}gQ5x7sfA~a3G1oQOR-_Mz8T3o zjJozzr;$8cPy0$efK&_4epU_HdwU2vqO&m6m1e^{>uYRRo z_cD5PT4NdMg6KxX4u1{Y>08W@IZdm(;hHK>%B$6M%jiJG!lVbxnY10@D_&#Dvh*!W zx~LK!8`V$-vi=XhjH_b{-%Oa;wZ~WwdNMe$eUk3G)RizuCwT&BNqjE?_rEp@WTnYE zxq_H|v9z<3E`_Xxtq6%6v{!xsD6dRXmMbU%n#h6ms{@;G*_K-f*)5=DGGD=!j#{mR&N zR5P?l`bqm4t26pe*k*e2RWPvniYWWpuX0mf?UrG6t3zn@8&1QnySen(+w33uL&b7= zed-k~4wS=%7Pth2T2pVZEmd*o(PZp#FR;!?`oU@qR}cGleKJ&saZf7zQ9z2$B57LZ zg%7hV&%3bN`swIFgM@zUysRR@)vxAK^-^n{84JU`D7=mkcmTHyimZJ(4xGyvcE9;hkPuI>5g&{WKw zZLbo)A27BY0gZ3EqS8JN65iAoE9#d6)$GN6MVgy7B))FnqwqdYb5Jn=Q!N+M{S)nK zK*ot?_Y$X>hP*c3`&}ebFs1H}{0Bh8P|&ATIePl2fA}z8#BaliFsG152gMzU{sRAT ziDRkXdXgHB#ztl5Q9r3GNf_?m;11SP$a1suoS;ywoUvLkLPY$2kVj+3Gl3aFo^gT+ z>2IEknK8)^-Wd~kyHt||rcm``@WKqlxcnBr(-yiO0p9^C%$zGqVQOXNo-7#s!BUzd z#S_Tv>Q9Z8c3NJ*ESOv$yJhc+yTE9SHL23 z?0v*&vr~2QwQS8tix?&T5XwrE7JntcUVUACj0j&?bA~9g>s#M8|FQk^2+&Uc&aGAi zmkRv)+Ssrd%$|=x`M~3(2nX9elx#P+j4qc`9Q^(YPpq1Ai~B;`wCRvO9gWz;^Nn-@ z`Gyg=_d0#8e2J;D`-CvsbyzQ|5ouC1mS1P8$*cYM69Ch)-R|`$W?{pJw-y_^d znJfR|PK$+uhuMMhGNd);ic`Skp$k2vwPZ&=K%naRFnDsD$Ng*CwNt3FfICrr*Trcv z=)(}N!T#67?U)Mlt<_O2=08->HP5Od+$(qcNlhMMcQ^E<`s>uf%dC$p^f2Rd;GKWs1Svq)#8 z{5d~K71MDey_u(<6UCd&Rx7!mbX9K>#bfEBe6#dy^~a2DGkQF(WBQ%|jHyomRX_KK zPpi7rw$kHu%Ly+V+)qA@biWMePyx7#df_dY}G^6n_BS-a+!e$-;cElb~Vr_aFGy=y&&VV2cuSjy96 zX232+sl)B8GJ4}*b3>m(Qh3ITriPKu_DUe<4oyixtXZ*-u0dbrUDaSZu&&ewv)k#P zP!u-OG#lEH$-3yK+4Z^>I78#EJCg7a?oFNK9b$c|&B*C`Mn~kFXexcxl;=1>S&ZsL zpcBPxVf|Lx<+Ao}&9TS;-fO0t!W2qH{_Op?sOK>fCp<9oc_h#JJJ`cV6ubM+PXGb1 zBUSzi1Rbyjm(U;1<$XnBc@&HYlcrrcoZbzk9@ll7Km0|T;&V(gN~>Q6MuU`wxOUBaL!n)qf&lQM9EJwR;6@s2(R<3ZuBy=bTwL8dPE! zp8G0s1%)SA46NunG1B5QjHbM&QJj6}1p&S))~~{WeB0qwYT#F4qzPv-yS`l} z2^#6MwZ%S_d-$l5ye1xF`Bvx}icXq5Pi&~Qm>-^P_3n!$DE#{n(_Yfj4X3Feh3HU! zY#smG!Y>KN{LAx&dNs^q!lkIo3NNE+s6iL$aRDQR?#NhuFJ9U9YrVQk)@y|4w2!2O zZQhkiSfzXGRqSwVdWcQC6`rBFRShHDHPORLDH%LR{YYH&je5r#5{aY&(~_O+3GVe? zG?nQF-I-wQ-T9fl){J>|I#$e!CUJ{m;td-93SX=Q9fCsHxF9FNFW)p4qs|RnxQary>QhKcAFp}#}J#q zkx>oQH|w(7YunHES6M6NxAZKTslkDBI<>~(+?TNOC5RNxyA{K@c_ZKExvnWhS)C1A zj;)MW)dUUojR2hceLg|5*;_hq$4iaT@5D6e z&zX}ar7DN2%i*<0V@m?e7C#Rp|Z(;^~m__pDMBEUw9-M z3U=RpasRu{%>w6)XUuC2*&DM&4(y~Uwg-4SxQwYCgx7w% zJ`vk~)o&AyBtlTrJEx{Jj6?Rq5U_9j-Z)g?RLknhRcfopvxpwu-OXeO)O|fRW*UUe z`sVh+n00tT&ugUY`u8{Af)ckrR=!xE60uPLPg>&ou&S}89u zQ9;C4OCzzJqs>JuQuVBPZnu&<&p97X&KDRvKbw>%K(t7b5t;aCLA=l7qcI34o zn{^M#^OqIf&Occr(>Jez&E|Ak4j5CsiQhnA;K&)WayukU$=c=z2uwHBd*1O^09<`5 zrudVWi}rTO4Ra`?(c}@AeA*jGp`O{u%tIhC?xEdpB^W=1vbI5M3m`yAxxU?FaHz?e zIB^%j6SviAbV!{i{omVKLFrH9W6C@hV7-z+$*ea4jub53~^YT!T;tYF4CI{v(F zmbi6eE{%O5_YP08DG8;9DTjU@FugIToOaSw|2Q_dE`xro4k}1=DlrxrS!K;~y`q5v z)x(f5=b&nlaNis_&&OR1ki%z2~3Op3u|2xspO)GFmS<+X)( zGjFW$eXHiM&tlFoUj(+)1Q*2G-Nl(sMOXd^f^~PpFdjBk6(liS?*bq{&$ep(-wn}C zgR$SE&D--oW_|QIA237xItph&8Msu!E#zVhu2*!;G%4KnFYJ5S^Q^6lGcVW%Al=l& zRE~Z*r<&N|pQIRp#fD!#yV)Ed)OWZCh%rsq8h3GEbz~wxHW;+$v6e5?!xgG=OL?Wc za5?sMXYfQ$F!tu8a(T0GZ)P4aGH@oo!)59L;y*ht`c+D);}O|D4blhyR0!U#2}P=f zXmP+;1pOWnAwv}0o!>1?zRO42JUH4897@pwY@d|ri#saOd@;^zpL6=oNU@!ZY zzj{yTlLjJ&vY|s+mRH=ijD&sEmP2kaHL16sY* z2$O9W?)FHB=Y?W&=-&ddEd3PG>smM?=O$8lLS&7uruF0%q?=|3YKWoETf#mif3TGm zQZ0mZk`qT&&IzP#!Au-1n10zFMibzi$Imk-2RFtZLRUm}qavWZ(r zDw8S=Dn_767mH}eE2Cu5k;O&^jjU0&POEFcz>Og;{0!;j8ZH>C!C5MfO_U||5l+9n z*=~7EZU*3Ay?=s}G5R>(AH+#V!-jYTx!<_5))+A%3MSN+zrB0RAIr_3Kav~*-6qC~ z%n_DvEyeNyOk&}?jEWJPHr37Tng|v3AN{W@-@KVG4g+j1H3yg)lV^ioUAOysr$J)J z%C+6-WSLplT*LQyvR!jSUV_@A8sPfBSEGfDD+5ssr`*B`U}?3kn3{5K&sT@Lmk)HI zN3ci6RB100n~}BMO*AF*hyw^(owkbB)UjcQ#_zT)@imwx_4MKud+;aZ9kL|ikI>4# zjq*wn5`DvgB!KbGiT(^V_NjT39RbyNtQM6Wo7vKH(9ZeGKh%`K!jY=okMU}>ZbB*@ z3#_Ur%phOm$hpOEmmIMuSky`-_FD=)E5p7E`CqpPN^q1T5fs=I(}Hfo5gv2Lj1?^`E&*&r9lShqu5^xg!17vrYTAj|uY_rv!g2=Dg zExByh17=wBRY$aEGObItDftCY*t6lLsYz*>BRlMOjqHc+%@K21aCP{j-niiXm(QPc zxKWlJ+xewNveoDqoej0&n`d z%8Fd(XoGKA7t+PwRFY>nrhHu#x|24ei~nSs)Zy`aB3hW5v?+N2O*D_dBy6WGi$+6R zv`+KFx)^LhFke;0_Pqf4*#KRZ+}mEZ(8gg%vjB|fiOGIr zg)+}GGT5Ml#4el}-wD%M!KrZHF<8`t6nG`sN})->^uFpgB5b&plxv2el&B)1pp0T4 zo%EuhD}P~N3G)q=1;ydx%l$j(7rSKYKLUV}$&fapxhaT6&1^>rR0roMNDY^P`k(p6 z;;!cP7@RgMei8S|x(;m203HNWS7=!?~(k6fJM(&_k@iXCKnYXrzlPoVVoiW16`KFHU@z0Wi!2f;q$Dz@ur<#i zc_GOHVUBgWKtGS~X`aQ{HqgF~1#95fTAx^boReD=jAfHmKNHX%ZmUWGkXY z+aF`h6OAlbL?JV)GWBj*e|(Io>0O&mATt}nqDAnu)|;L6w)*ECLF&3YNuA$?#!9CD z6Ts#5Fy``PJ)F4Z5j>W6s=#*e>=>|QKhVQzc+?%2q!(+g4CSQ`_neh8@iVDmrQB=% zlP{2X8yoA%?({r9#@j+ecu17YK~I1<5+?c)44HmzOj=^_huqj7pxFXLA38G3{u0u> zDV8Hriy%jfV_czMQ)Ifo!Ri?rUs*4AMcKv0=k5Vp?!O7?n|P*D!#sYKl>~{s@d;l}qckGJ0{8`Qs` z<~q_#SpB~2O6DEoE0gr-XDWUPi^EJRxZ|A-X`?7sB)qX^oE8x6<6e_}US*0;4k z0TgW_?W(|NR~C@ETHg9uGK7uJE%<~n_cW=j?}(nq%mGIEaWK^7V*5@JdkWIA{-%VA zl@libchWzWSOR9a9;(;ocbPo!aSw3PJAZ)@Q|NG8I3709n~gGmRf4~P%AxN|wB#(n z&QP)Y>53p@Y$yHTg+n4yKq;^`8C*G?d5ua8&qF0i`X0)fktO-QvUXKGI~6`w5R{fl!A)dVF;clrZ`G?`Ut8tY=)6!>4N=O0Q43mH{hYyQ z=J|q|?lU@e$ue?r?7}ug@)}dS#BTz>Tz^CiYpbsb-=aLefyzmX-K?ZgD$OC12ED~Y z&L<*`0PVn7a!|rCwlaj!mZ$a0{qq8rKC;@vcFsdEpjSa~o@@AlfCQg~fEaLk!p;P5 zPNf&g2R#8kq8^7;gOv|{%Tsa$h7MTTvTW{K(rLqG?c-#ZEgSzdOn>$gVQ~3k>X_o1 zH(+w979q&)G)|tlkYS?N902aK^>%rv;r9^hoA6wjA$gZ(5|scVa?p)8kX|5D!ed8} z_bi=E6K{6b3d(ItTA;coPWCtue&LW)8>?b3+zBe)P>NcS0`-=zKLKJJcKy)=hWKkD;yb`3 zq?^Yl)!EWN3|zG`ww!E%@fhH8bcN@5OKypmXVMF)#FZQ&%d0HD)ya32d5(cW#oz81 z4eYim{VPEo^YTrmb~e{tsI2OW*geio9HQ76hghzH=&EPerP#v5q#uyw%-%0?7@o|h zLuhxU)krMo9uM}BF+NCnhR&9_ze9mA$@b!T!=BS;7 zZj^*ffXj8jQVzlOn61E-ubQC5H|RcPB-qwCdm@gP3m^GQL0sFV-CL?y-Iv! zEb)qHOmFe$&fS}>0B)QUVPE=AOYV+`*IeWuLrhJEVJCP|{}E1($nxx~oc(8T`E!K% zpsZ7QRG>UG&667QGfy-(LX7}@HJpb+Z8zlH0Uq7v$G3j*Q$J)`hpM1s*QT^fOtQ`k z$%E8z{2ZgOBD{x!&0aRk3El)dSm>CIZo|+3SKW$C{iGbz(<=N@?}lA+a7?K!*j$4;GUJr z>GvL8Ct@{VsVYGqchPUAc8i{EzqCaESSGD`R;^O{wWHgf@wX7TZcBYrv61ECVT4FJ z-=^R1J>T^@CnKM##^@%vzI#viCLlJ=H@8O?F(8Qn9ce3JeilE@c%^jS^^gn^T{`w; zJ>Y9=DE%A`nwAb`-pQusChAwiq6iB47}>F zLLId+SONu_+E?}L*76di*>Sm@(mi_u+&AH;6Zg5dy?G0lY&!1?Cg$+vmueklb4iCT zdA25&a_0zAGB;elQ>n9#ALW1|*fdFNT~f*&9?M2L@`*vmv)n}y*4j<2(dOnBx`rn| z|0EH*!JF`f7QgK`e`Ge3lA=J%FUdt-cirW|PYU(q!>YX%}yBwAk;kj~Jx z0w~zD?Pn0i=tU72?AvUZlLQM+?-Y<7ZMzlUyK4rD*j9l}Jk!iLvj*ok3N&0T^sDO` z1@UxE%U&(Lecl#bg55f={VPSm=h)z^lUG2&U%+rfeSqQh$?!YjHRFM(fhmUPcpDBB z*y2ZO${(Cbf|liX7KWVB`4}cP^1G_P{RJ)x*b;EFLq6A!cL`NIlEW>Ls~~m)TXzsc z`E5eUH(7AnZo?{opfRvz)V?{n?`pnU!`87BP-`&{&oiRgRFQS|0QTH|RaAF1726<8 zvFh_6jHv3{P!1GW`O;SKwt-x5^KkVSftD^my*!sfw`h!PN49p-nFuM{v4<0OiKDLh zRFWn2EYaX_=qlz*}#P(?8|M)XK2k6(96{1m&?Rb z=b|M>4#T`@(!pBIP=?MN+%;(4z(pT-@1)@GR7pn8!f`#$u{=&2(D7Y>cs_b%xeyLK z&r&f~dFy$?L_h3mH>I^pGYynb4^qe&uFe5S-1ZHn2lgh3J`U8+BFv_vnN!SeB#i!f zUpFbALh`D$JTEi?^0~;&k~IG2J$}Ez4d&z$l?FOf3fj2=Afm;u$r_zbE-dKzziA#6j=j) zd+Y6Wg}?gd+@hHjyZyLbdg!##pwnSmPMjD|CR^fe31yiL%8}eHGm^ztlTY)i`qdB_^8pGNb^d)-5 z9CjI9BXgm+7guIQy(V03UOBzEB_5(s6~=3i^2$8=QQc6Hkz}=jW?F3fmI?=AK{n-k z1`5IkB8mo8j;~cs9yv8B2}oSX#H3La0S?uZS5J}Wq~eM7^t#l-+w90`{R>%Nx;WMogAbx7)wSAWaaM*Mzf&x$Gi1YoiG1C|^p zZ+XwQG-L8%lhwT5nHZ-PA0GJ$!w0~DT*z+OVdrnA%$ZXKV*Q$_na6+-(>H@O4Jp#j zq3*tnj`CUr2T2$>THw9tLj+(Sgd9Nn(_YT`0QKgoOXI`mO5AR`uFA!lW{bOspIsN4 zca^hr=z6MP#kBkEKXnIJ>sRHG?AQD|7Tc4KUGA)!vARUF;G(qlq*$AXMCnS6jk3AH z5-VG>fpylFMmXy{Q4V4BBc8 z9GS(^y?Pl_Y5Zk&AS<3^DTvQNac;iC<3blZe_1XF>ck~C1*SGRjQ9-(ym?!D%0k&T zM{+MFB$-CF>*&pb@KIh@*r#G`N#Aqp`Q}&jD~Iu6ELu@t^SQonYGoAY(`c@`TI1Q~ z6QGl7N33;rK2b5Ut&380WX|O~QHYz_3(|c&Uy_SiftMV0;+gSl;hFpXhHm7MBI;g2k)4LUG2;R|h8d zgIIHRGIQTTB#4SsN|2P?bqUi+@KXCK-c%JMqiPqhB~udDPWkV7<$t3Jg)&6uf;0nC zk#UKTlz3)w3?1FsNPPtpRmJ9<03|3o)CP`kI1l^WuUh^bCXb41ox1m&N@P5@tF#}e zF_%{sa@8F2d|FYV)<3kezqa^p^qA_zr5#iG2)lkck^!MvqX@p%n2RVOj@}GWdOPRH zP_T0)kv4XLv9OeJpv^#t;SpNG!D?=;oEjc*gjYxl`|>M2bI&Tz$_sU{lHE#NLcDo`#@8dqm=cEIBnUnj8j^U;QV@x~r zt)*|eoDYtsSNpoURTC;2c4Uuw&MTR^3QiRzWYV*R?rJ&D2JyOcQpn2XCAi>F6T-b~ z>*ZaiZ+}ud_K0zOm7p9wT<;OuKL>RTYf=f*U5A#+=aFcydeeE6W|Mp)RGsgG6r-cU zg=dggunM35z#!-ivphui&L9WCz-CI8S+#u$u}aM>=@Rer;d>YvX_5(RrmPx&A9}sQ zi8C#)evw}}HW}-&;1;W8K&3og4o_s|6^)R@J$HOHXKM2VnC$CXQ8Qp~B9wO*HpoOJ z7}^}t1sQ+Xg@_N6rQ#59UU>x{)-96v(}0M^K|~dj_+{wbqaj#wW-A6)EOO-I$|)Km zUtu;WhZsCn7IfNDNkU8m_Qcgfo(<$|_bRc$DnZwl%uUi}im4fClm@ASODHUXc?3aV zJ%Lfa&=nMxpiEX2Ank8}oFb~wY((4NfH&BIIx$(o^K_PW1DBO?oN~;&gF>uC z5}cO!d{p`!->H3?Lc8$@WAGmvJ}ea5r2)H#tl3>LOqd+fZhT{v{>;lcBWH4+k7{Y2Mw-@Wg)YB^ zY;>g(`p16N*mv_CBf5s+KcWk`NgW%p;^ggBGLyc%2q&Rx8k9}VV2%(@_5A)e2PL;@ zxe$l(q6P8w9|kknR9|PY=VwIDF{h6WI|tQsQ)ndDCh0C?+*A@M{F2~BC*q+k$`h_q zJzL#^ts&O>$!{5!FZScP*A4#Y?fiUfi;*N8H;JL$j%2O(M9VOd(~~6YUEXs>Khm2J_nnxw2M6m;(i<`F_I=w2uT^q zq?Jn(M&&RenWv~Klhk3guEVg(O%nQJZ*(Lr-lU;Kv!D_Ao2CD$wur**#AD5vGYn3X zjVp;LG4+d@D?1P>!zW0w=HOKGg*ILH1+8cE7Fq%zzK!e6s zND*X^-(xVC#?oQIdJOKrtIN!$OSfn@Es?z;M$5{4j%ED5`R<`TI-<(6&JzP(GETW| zi-sWql)cfVw);UzX<7#D{88cS!exN$qWP;GUN(-kMJs@dVY;lQ){#oEm*CzVM@=sN ze6{L6mr?+lyi^qaVt!WCp!p|7Y;xj_1=pwN6>?ow%|L}w5VYbYE9}JOXUg$W^G_;6 z=3+89x6+#ob#|_xyIzKz{O5av;zG7W^?DuNd@MaFxHOEOo-N5`>i5|h; z8`ptaeT%l;XMP$(vVp|#-m7Ju&akh6M4**RMZq@-n3#+FqK6WVyh)N@EdqTwPhb&M zB^a%gljB|5ecX!!S{m~Sj`RrKo6&){l`Iie!H1yrqt^l<7eZ$7I-U83!VMuweK>g{ zf3+vMjlvQBjgQyMzI#(@#pYQiT9)w8p}y&=`n?5=`4hNiKEZQ+$Gzh%So9E$&nvP8 z4a!hm7R1eO17(BBj#KW$a`_pZcs=(8<nj6Jh-s|MuP%9nLRBR z`!AyvGyOm?Sds%reoi7us7}?ow9$>Q_{uC`y`C8Y);RpE+pso#MXJPXx)LsX$eN zBXUhag$f$~4_j{;)K=KFZHMA+#kEKa!CSPrTX7QHJ-Ab#XmO{wyCk@4DH0rth2jn^ zUMNzuU+!mKx#yerN0JG9hMi%;wfDN#c^pgP4Lx3nBYB#qqUPq&U-eR|Tfg*v2XFRP zPXa!iS##k)nz-+1k5~N;qOTEPdIt#432z}ukpHmp>_YhSG`To^ zqT=s)^jb?`k*BN<@y<5pK~h1=K~QDK2v#tE;8nj9+e*h1KCIdJAAll$@Zd!>r9Ut1 z!(3?S@5*ncbI0{URd33cyUc2vQv|WgdM+?%;o3wQM z3|648AK7Vo37=GXYEHGM{%G-x_H9?-S|md=kA*-aYkuYrRfHlE%>pKCewy_E08(Om z5SsnEUsZJ7ZAguLLE8vUw7x{F!Aekd*gG4 z{5=HU$M{|C9zN1?I94hj{V==fGUG5B7`03tS_Y5rSyO%AdRql!&=x&6WrLv|pcJ;F*H zikHX64B^H#J#xBbpLVclI?*U9a=WOq>ZcNmNoL7L?IhbMseI~146P;s5(;9o9$!+Q zgOi@(`xG^%^oU(EG>-}kx)DwISMi}6?DLpo`VX!!TtOR6x)2$9hy^STVp@GsCtyUl zBEaCV9hDPh1ZfVk(VlpuB<%k{ff}i(dvaY@&Gn$&oG?HS8Cj*%RyA+8l4exox1PH>>ft_4aNjP z3=FO+SOgFM0c0#-6$`D}O$%L#z6XAln};|7%2i5M**m$uWk3rUbbWNh-9}YW>xgJa zq=3EL;!dVPyodiBLOzZ~*1u)-#Xcp||3gV!#qVP8n$f$Z*4XBjcMU*kHqM`pwh!AGwcPxiY z4--lE{8>kEGHf-l~|Uryt!+$^I1`@*{3)O)NPFJb^UgwPGLSY zT*Gb9Jbz3&24F;zAy9WDh3`DU$TYReDnKdF z#{Q-_jIzNcZjOa!>58MDR%$Ksxi!T(v&L|BMs{Otv4Uv?&AXNMrmd9WB+kUBy21Q@8er)vAtFM(YhpV=@8iS~#Qp z4|Edzwm+81oZH@b3|7Wf2CJR2%a8(!PTY6;Med~Jj;U{#bji)>(n2VSJ(z?G2Hs~F zOGPd%Rte<~LS9ftsxeOtESf1Tn(jn@A0$lKt~GfaO_DaiLUxFk1VhmS+YbHYQ?w7(nWEz< zP3r211E%MA=z|_#i%~?>-`I(u2!qS~Narm4zxt#z2(oO;G=*z5#}JH$$u*$~%##6} zJs)p1#}4FLU~4Q2k-9mAGtTjO+_1H*J6D}hu4r>PXP$tFDCySOgAi#S@XM~*l97?M z*cjnv%dC#$jSL!sA)5NNs!YdP;OxG^8+A*w>*e;LFz6smBVF+D(M&8e8;aIfbyTKmQ7eI^*Ci;ZgdM!Qbk;>I$*500+38w8YW% z6IpiOotTE~Y++92ue_PWSD{0V&j-GNy7TnX?trhiTCD-2S!pbP6^$I!}K=P&|=ETXNdRbwdcgEDX8R))Ud( zmrm;_loiD3$rkOc)T0qBA(C9OO*O1rB_`{MXZ#fN+WjRp?3U;hKf^5>1gb2yhk>9h z00A43;JGZhekYZbObLwJHbelO%2`-HAT@RGBRGI98!xg^e~oRw|8R-&G;{Ey<3sbbT%3posIRN*Nl zxLqL{E3ZS$NxAv)So8LC%(`Q7n>f59-sg(_)?cq1IOZv~Q?ByS8QG0blRFA$8;oRW zkRYZ3k1VO_)B1;B#ip%}>nMa6ExcS`0AJZVgKumuMJd(udre8^)JZF~y&wcs^C_Qq zd{kJ=$YvulO`FjdndX|J%|~PYJEMj2|Hm{4qYVdK^e>dxP?-BXvQYUQIJIe_MpxT)`}X+uQG3ZH6vW2$UUoEM{{wP0}q+e@S>;A9nMf>2E^kzCL93 zByU>SfhulfRdJhY1PT$)>7jFm#*rdmnw^6Cb+S-3YR@t+I5JaZQFuo9i6C_z?fGcn zQRC3a+IqJ7z21k_2OfOaYsqrva{ke7j=@012M(ux8GA%NS4IA?UL$Rn?q-zp0=Tq=JCiy5D zD|ocMhI9EC_x-?v?WMSOjVkzN&D8GEBBo@0uLU_HbLQ&^XZ?)0?|9q5MbdTeUDY!K z>v3IgEx^efIv>` zbG2SawINus(WC2H_>)jh-%)EoY+AV+O(dc!KFe*n(R;0y5dxgu{9LsjBkjQ{?a0+o z*PcNRd0!lQS8Ei&s~xAN62aA~1WdFi+=*^KN>e_a@+e-O8i5>jmQo=2Zyu*p9uDiY zroMUCmazC)G41IanB39pWzc@%dDm~T&u(F#JvtZ4lJ!EFvzmdL1kG?5;eU7-V=dwo zF@me`573D#U}llNFLOdp>2gOM1etY=@8&5lYZjRun5`7ni7!PytO?5!=1_j9wb~2( zyo_|XW4m)x-qRuWTZbe+-Dsjmd5ktVk0-9Cb6qV;217B9uEMTu$qYQof>wt!U2{zC zMmK8K+p1-LSN8_kHcaL{^}b!FPXz7?0X@x7PlGJEJwN;d?8Zu$Fba__HI+%jKAc>o zZSKlj4$rJRvY{Tna{CDX$_p+*W(s-Fq)U|}HqZjb@$vZDXXb;)kf~br2!f_M(H#D5 zx_26pL`l2@qSQ(`O*Vf{S-hwDwqab6~z&1oiSwu2rZv+!v37B&S{ir_npNKnf>q|FS>(- zoaFVNC{?xnZYA!XRbU41gU$5sNNhZM#=>Y5D6?4cIJ%eWIm`R$6Il6Fl4w1JE1 zxjke}q)2k76*>pMn$~lCT+Hu{Xfc2m{0HArXFnHj#R~iI^E}B}@gJK~V~?oLe5r?Hh&N6fcHd zh^RWfRja@-?^-KPR>(7csL?&`g~Nx|Hl1Ygm@%C#vyV&T8#8_5*}-eyCsNZA?iV3$ z_pbbn&yL9WQk#0~{bwp`k!bWnT<~UCNwpFYCh1$i!9qBe#Ep67Nv&MndvkWF7s60 zl-mAl{sdQW&iolys7?Jm&&h%QiG-v2ah(yW$Am_@@^Buj$fyDlhIUE=fQzNpVxh~^ z*5UILr(UVp(^Qtxa|SXWC94A%=AsMl$ja$aFPYzJpYzkB5$DvKi*!%hf#3)`dE>N} z@61Oijmw8Gkx|iyaQ-qOhzxmO36MsO)Df>z=9KSxdFll)jjk6IdNfrv=d-_62T1(C~kZysq_y<-+ce=-&lelt}>a{Hmn$5zZQ+U zEyY+gQYF$S_}f&fcsj^!z%5P%b14q8w7U0SK)v0z5e7xB*Kg0{A?gnU9XVao)$=ls z^Z57j^azK-=en2A?%L}{f@RtFXV!yy$_PViOp!W@tE8Kk51k{}?)-F~2u8#vu6FW(JPn}i8iBbOM>GcspyXOPf4!VBZN z-)=3Kog7F8>8%ng{2|#;h|PnG;>=($I_!r)wfy&T+{1X-Ge4%cGr+KxWkl6R4uigy z=Dl(4*B=JpW*yA=?1FO;Y!9js=O!uDYDyh1cepmGat?wbky_~cFZYZ*oa80%+9Agu zE#gOoAO{xXcLIjBI1e<&yDT5+RYbF&o(q%EI{0Zr48T%xV zp8r?H1P*LtIXC2TLzxq)SS%sjguD8KlZ=eYJZ&X!B$2979-3$-1UHJU5_~-Zs_NHH z>|b@#srT@Q>K}mgAK)ssIo)D>K)eW!@eiQj{MQ{EYM=`Y$P#qK^I2tQcy!kzfNOf< zOqs=_ZfFMeDUgL10ODM|lH&2FkV$Ly6i=H_=^zRkESHtiE20Z&!45k3s|@}z{=@v= zG2&SfnKGmMA9IOM%I^92ac``lb`9j6M#huD) zqb_h{I2_#&gOP~#6lZ+@-4jiAenG3oBY$b9Xj-T}mORw*(fwG_TsKj!1>U10rK30Er ze7mxqlY9>R6Vs(DVij<%M+$zkSV4q&FIcZJKDgE>(aIaqXA5qBSn^HxpsQWdI`!$~ z)sM>YqPew^3FaWb1iw9~<#ihWd2ew5eQaALlyUt)j(t!|BvDUniu^xRtt z0xp?JEbPecq*_jU*X5RARf)@+ecHjH1Ccfgo(zn9HcKduZBaG53OBafcEWfUSF5vE z|Mo(s77zK*;5yoC+$_^_`O!sokjbA93?>t0g0oeamKN?T8GxG~u2V`$h7;QZW&ay;g`TGLwq?16lYJGXGnC_(6rRkyzz>hn zltN1>3A~1i>1w!vO7nhk@`6Cbx9!)v0V=>L0~m3OcZA9j;pSbmpdb*I^trAUnz>LK zrERO#_fvqTt;X<&;xN;73gcR%ZC_IpDCNKRbUyT0Ef)XJ)Bi<90G;;TY-qSBj;A_< zL#uP#C=~imY>j@0a|8tw)UTNl4t}ry0muRpCI%~w9ZnigC15HKkDzl7;19cqCgX1j zS%w>O>G&Uru^M|YPdRoaBpctMcHJdIW>DCqV8DSPjjPCJ{rxMB|Cc1(AFAH|-jq znu;wQeJ?=wof7cac0uzQW_YaUTfO4n&5jK%ykN1aj zqLC_+se)eDZFaZnl?c_lP;)+-c}0Fsg4+|-t{ElzhLYWugsQ~v>19YVl1OM9x!p$( z{0?l`_j~FyJ$7rpEUCpXsD0H9sW>oq*5mq#FWbrL>;=utPC7O2;$5I=WvxoIj%r@l z#_sMYVZ;@6WF{EiEBQIc{MQKRir8IGUA=NPOkj4&7_ZsBYjNsx%GiXAx2{A>6iyC5 zvYN3#1yg95s|=R(3W}pMWV2Dtg;f?GUsSCy#8DV?8pc;fu19#UH8Kp{Z1AS%wv&yK zBTsu~K)7S~58!CQ<4m)@hUmc^chi;{OBSkOzv?$-(1j29ED)ZOaCcrWbia zZq*cVOGKF^7p7IDUSt-Np(Bv#d(QkVDp2Z$e69lA_t5se9Z>Sr;r1nTnSygYy=<{> z+@O6=5{JXj)s*&_Tcl1WZbDvKZs#z^vYJ*#Fzj?mQ%jRmZQFXzuG9DTzF1UJ&QN=A zNzmk%qY~@YoXB4#f!AJ+cZR{yu!O%Nokw|~5(AHWGuZ_3tnYNkUt8=Hbp6B`P~D0A z3Zu_Vq&1~Mn7rRFBHsn06aF4(pJ=KQiGKdEGuAyj<5I6sLwobRDRL>Z!TBgaH{4Mm z7Dzxj8p*lnZCLe$sulrsHs6Z#c8f?Ii0`P<{=%0oOnw|~P?KnuZS_|H34OatCB=i3 zI0@F}jq*m(4rvt@Yh@=uL@C=~yiyJ)um-#8{#}tTDzQ>xvpT{s3GJPs5A01^$bF*Y zn}!{BjFp{i710sy3JEcVOOk=)M{ECquuym+Z4jdp(#=*yIFfp|>@uMDgV(jJF*p;t zS(f^@Ti<7`6=Pl{>p?BuU4IGcbF*xc3u3L<`&2p}7Yr-6voRTdcv(WFN4t!8E*7V;2{WzY&TXWODNz z03U)KX)Z^6sD7GVrrILcP3%~M$h4o^$Io`}iHqO&@McFvkP^`*WYjVj0{Uc-Uk#@x zV+Y9-j^zfuWbKch<%CbMi^0JHTp$%`E}LE)gB!s`@OQ*w8hI>P($9mk%Uczdtd{%RCys zVtVgJGwxzTm{hNm*98)>;Y?|4)XjTjsp`6|vSBgwpNCASJmi$_zwLBQu$T|j!{N5_ zKNo=x{+e&z|1?cDpdWCoS%hx^T-;x#AD>0Ffowh6=ytq;4%Dg}Gi+xiEXA(Rlq(%B zfBb_2&)g{un1Rx4Df{aUk~3f%yO!&W0{M#%2?5^dSD1c0J)De6(KO$1`5aOG=k)X@ z^r$0UTn85DPgI)qq1~Az%sN=Tse|BV*k_o$iX535qZ><2sB_>h z_{BKamvX2KTv>9>v>(DDyoSUS|4SB6%0qcwrSqSs|ErIe&f?obW+p=c?uI6@<9tYx z-ZCaCEg@{s&H`A^CGJu6fAQ(EZiOqVzYVJjsDIjYc! zjB0L+Xk4ajQD2Umpzv!S!j9CIxNu7^Gzvz8IMA)2Vt6_YW`sW7t-RirNv}TbayLi7 zM!N^FFMwg)Fg|q0m(2RIdSG9|7@7FSG*S?{rfLw zwVA%zWmfQ*PWzU;O5^phA#xT)`c&}lL^oNNBYCbt(ze(Si)+t)c_t7SfHFfHV{l1F zHIgxv_Qb1GYv~esku-bee5`^=0lSf!j!Ew>x8`vK^V^7w(mn#CISO;iH@YIMC-%k$TtM~?LTf)Kv0X?8AnUCX^#czILr zM#x8Pql`uyQ@nqGTXM^rB+!5KFk1A0r7d5w!vdp}1IGVh4NB~jUU0ggcC=F2N(Xz@ zHD`D*>naF^N7k;z?!Q0hfbAD0BXqwt;0bt&5Ag?$r-M5%8_M)w>Q`EZ)g1H~X>PMn z?T6FvD|3r~dogitk|d~j`bZq``_p);v6~yWVRTjoi+FoiH-B1uOPj8;hg-t~Fg3<^ z!vu-8v}KG-?hJP6LRXVZ%awsRA)zlT!JjgNH~7U+->b@ zZu1^UUHDT6f}OYG>f7;>Rto0EI}5A`xA9DetEHa)>i!Mr0>LLW6_Q5W!x(UTRMJAfr;JBKC`Qs%=6g7QRRe8x5>jha3K^#t z^TDJ;kjdB<;qB55xD0{Yx5qxl*P7NGNwzg^58h9?a@Mnk*LxuUS0m-@?u-j&<4RqT zL`uClBzi1{YSCD#W#`vN3)4Rm#B{7G%vR9bT*j|@%v}vGnXwJ&!BZJqyfsWxG1U2IV#6aCQ|Y%-PFxY<6EBS8(F~S2H|6>3H21c*rJ$$ zDZlF=g5e{ptjuWW4B1^0hCZI=rc9M(fRCy~i{m zjOj0}3zk_-5%n#MP{isg(c~k1h9N&HFH0OFd95aeEuxXsZPe8dua%mmDHCYY@~k)oN-V29bB(ETqTpB#vSAmK6e40b1E1 z$W^d|1Ygs`pQ7(I6VG;mNPQJIlnkWu6shEp%(Y#5=Ge8Qoak#RUi7!U*9 z^amND(BaJNr^U=8oXq(^qJnbeO2=Tb!5OH~d{%n}3+Lde{-hX-B#e98z(MAlKxU|? ziDfqLms|okc{Ytt!I40r4dk7P5ce2$N#Y-w4#}5f5GRlZPadR(kHQ}~*pBWPsa<2~ z0>WsCp|0m^yASCzW~zGu<#LD9=_MVeiA9%zV-QGrdoq7@-9Mjymi&h^DI9rU=| zD{eCG5q(@q|KS(vA3NUK6?IF13<;9ACxb{;{>Kw?yl1;gJ)Y_9;6>HnyffS&` z7|=}65B$2q&w;&Ie141cmT}~w{7@`XyZ{4E{4*Z0-~5UT^wlZHRH0b}nR#0KiD+Ru zo3BULp^;#{n2|>s=*Hgss_R-G<;Li@nQ+gM`>WOfV@@x<@sU{lBu49WLFPi~)M^k| zM@;1+G4aWgz{f8ZlsNrE!A2ZwkwP0sPcI6QU3ac8K3Z%1n%Nwyu!}<_T`_ z_uzcUs+Hw>TZmK?#oiBK^luLz@t;3LLn(>3g&WgvBdsEe7769mzOsN_GYYk4T2{uM z(x*6EEcVxNJuvnw7lX&M>mMC_Eo`ttCH)Tzi}Z~M*`tA{t~z0cvl%i4t^DrU_e*wde7k#AIi z7e589m!lNOTl;cTOW2l`B(~Pe1MEWbzVM;CkR$gtzSB7G9Icc@Do~QNm+BdnrJ6VLY0XM(k zJmloA`QaQOxkB;8nMuucY>4b3pZIdsk%Eql>FF~laI^JFWul48)y23d6GC@dU$35H z+jl*U3fUP#X8!@&h74{+gK%OT@xe-gt7LZ9Q8_L9)7zHe&BeUV(?}V_!|KZ*%Jwy_ zQ*edQ!BYKPu*^bIfQM1DrDgY5v!9(`CAIFqiqe>o%56hOb*j19E=D5CRuRb{&;+|+ zrG42ogIq8v@S+GGWFn{zO1Ca6t_!wyp2nfuSe6N z-}c$>j5l~3HMuTMwV{LFX@P#%5jd94bQaRGKflG_@{yCn!I$H|jRI;Di}0&FUj+|H;+*#_(2D%Wr_CRlI&KJwncLJ4p6UiaNv%YV4|H%jKt0g%Ls zY7Ppe&H@w3CSfVl@${%?nJ!RHeIh@D&Je)h*8*LKGBOl_>*@%4ifhL;2K)oCYJU#{ zp#oe4iISDuwk?OE@ELc@ZMht|v^XYev4|?*yYzEz-!Qh598?Wjmf|THlN8m@h*xxe zZSD3a*|Wb`)uoZo11F zXk%951Q7z82C4r1m?tY#Ql@^pliJ9s9lccDYmVj(w!5=C9R}`++b6J>BZyY7VB`LNYkx4dm{EVY^(}VS7#vdaw=ju$PS;75aJsiwdIewl~8!uOW&#|xMnx0MURLKT_A6wSbpl(CfZr7St0 z$AXSK8PtL`IB@qVXKpR!^SuUiePRiNJIabIrEbX$HNRlae~?>xBgs}{{AG?}u45Yx zrU)!om7vYQV76#QUMUE|Qf?~IZVYsJ4=X@TWQxVniO_E%7YRx?+pI2}i0IaI)p{l? zXk)Hlsfujz7FmlENRn4Bvbs)fIGvupj?A+2v?c)el?T#k*zG@R+=6Vo{O_B89J}?p=1sNINTj>i(%OO#AZ1b*gqcwHMn!1lw=za$+1e3alYsEQN<-VA#4_G{t);p&Fq(FKb@6-*lvG4|Q zHD0odQ~(oSk+|CI-&m=I400f|r?U~Y@~l$iFy%) z7I$p*>V!Pswq61KXvM`iU;C9)YZ0TJ0|}+LGpd&&7hYC0(!OsNplL*VIssRIJ2h>) zA73}gNxEeSC#%|GY(tbO1(Dk1B5otZ^qs`o=PH6Off3A+Xf#*^^);*=A4F&zbR_-A zUDH2hJGAEJv*$zx=T3By|Ez@wL_d>FDLnE&4>SVPLQbm#?geYCob)$)mGFBL5&x+w zR9C1=Ee0mr2Vz?gMiZFSv4O7#BdVS{np)}&>=~iCIe-Kmk_|zU%nnrlfWA z9n_=qs^CF7=gksVBkE4K9uw3G(aoMyE0I#g(!}B}?bC`_wEd+&_5+q&n+oN~-Bi}h zUF6W43i2Liz@NNobw>QMFElUu;*SD$o*ea{c>5L2rtIX`Ds_A9u{mtB5)}r1j1;Sl z7IFmStThzX5<(r&_tS<%0wCU-`&J)1E;7etsHtJfsSR=P)CKw3Z<)4&on}xBPUV5? zA1&lorR?wY78R&Sk!0+v=7TiV8`~P%Qln4f`T)O#u=$0eB%BAK8rxw~8vR=`g%xTm zE!}7sEsT`y1Gdy~ek6-9bFB^Co9Z${5ir}?o!|p-XKXT2C)DF7qN?*Rv1z|Y4)h&W z<-136di@$(Gc)|i%3VY?d9+9W#JS;?b8}POC*Q}y?4+~ZeYg&93OQPu1~$|4N`r`! zgpttZpv=Z3BG4q)srHrcW4Yw}sV;WShNp$OII7cDrHfF_ZKdVKqLORT0LAR~V~{A! znC`?#TpP2cvtlz}_pH`2b)AAs`lg?rb`ZE=NR*x;W_06a_-`mw;G`yNCMVf8mJ z>Y1RULfDky8E?zUrXkKoBj+g-zo8K4$i4v?C%FZR1~E>$wG|aM0hMa3U>x}c$q=P( z5*hp8=CIaj7?~QqF=U$gk{>`pYAU|(@_IUrOnASpiiK2zfac-ipb}A6DfoMP)4fIv z;iNx7g1b^36!%W|teOCe@MUGKYB;vyNU76bEVK(&)b z6Kc6^hrp^_LYT~SrHbHoMy5g3TxaE8Fb;?JOzZm=iOeafCqt8&CMfv04k$&lfNNB4 z?P}gmyy{VvREA8&-Q&mwdek5d6SdFjlYnkSb>U;|m`en((MIFA3I%#`@G}k9djPn- zY+2QMrP124DyaQt2c7Zf7=buEpJ#ZMaRsQu(>)k_mz$yaMICJgt;7f_?Le^|#H9Nk zlSz~o^^BPl;l4IQm};TC97}#Zpwi+4h*N3qEMPu)qUc*J8rd2H*=s0|2{?>xkJpwpH1g*0SKb2c`#$oM7H-v-oMw2c$mR+c0F2hocyI;Hq zYjs+VSdMZvrO9djFRuz(+yI;0|8v93-lOnVLFifPlBwGPedsdx|GZJp`s)67@N08m zjk(NSE-g>_P1q9$Nh|^)L0b8Tn`xHPu>2WY*W}$+*mrZcdU2JF@3uaYQ;_A~APV&* z5iWD@s`M+t6;AVs;u#(;ov@ZL1ViOFjyw`igvYNIItc%@0tv{DT1ufZiiw%X4}Whd zEzZyQ*H=v5i5)Rc5X#-s#|hHx{jkCK!RMU9ypmpSUru8l{^r0kLR`8?{D8%%yhf^F zbyfdoWG{}3P=xqc)*N@pb29bSe%7`W=7YWOk5a<80m~h`&-EI_DAwgFGUjwcaLfgg z@>%@Ju#82<0Hd5$yBZqBH8{lZ#%HOmYizh?DtM3KHHRKW^6xkO#0#x>9Y|CLq~+YyKR>K#H- zHF>WM)8WixpNmP`A3@z3awpw&!j&gsL8ajd`YiV?&i7OL{N+|Ctf5EaFLX=r8GSMY z;Gs-I{zuU^3$IjiaJO+TjrVFB{Ejas8^e7&A#8OHde{qC>I|R!^qThG|Fq>EyGG+} zOIBB_hxlz#<|k`!(U*qDnfK#!HY;_E?YAWDP(;+CPx|XION|4R71iO$6WbqiJ$G-%Da7xb3 zd;YFS_F$c=*eECEQn$OW>?n(K(R#i8vyM{Pc2>G-g4ijRlK3d zMcu{G6*bm2CT?lI=DJBi@XdqVLFzAe_TxS?S`EJ%{52+;a8^sfj-u47H<+s_wEvc& zfZj5Es@QM*yOcoNqkPKf(PCoNl)`tzTpt5S$=RwPkEwH_NQPtFaf2m@8bRebYnh6Y!o)$T;xU9#_wAPz zP`Zo#Pu=5%3f?ROtZ6N@i}0;fE(fL>I8I|G|DWOCZdscD0BL_R7z{=3@Ob|!ZVpO{ z5Ze>C%J-)0f3iCwZ;B)>-{uilT#PJ!b0Mq|!z0f7=_7Pgb<4<>vTuYVuH~vWqj*7h zT{^lvdUycIw$djuB{LFfkoCyb8ocpX;9y*A)Z6^hg@)*yKL-+VqO64Hd z5GNs@TN$gY)y)Bd7B1(_)?Yi+RvAudka!)~qdz0NoT^;%thlvHFIN^L^@o?P8aT^n z^wZ1gex&>Sq>6gf{|AV!snm^B%RdmI2Ufh{Nn-}rh`*dt!cL^v>A0$GUnGYKS=uMm zvGuE>H$WxKmtpR~?s8v#lUrpOR%K8^O>94t=kiawXV(e(odm)^$PHPs4>P?gp=OR0 zP30JsZ(nVc5+dPr3y@>q2HIGwI<>bzc{-F-h%yE#Qb30ZWq##vk~6U+ zh=JpY=1OPB*o;mA$p-5NfbA)`R&?TV7g!5pz1+axQSq?GMLq<+<0ez?eBUyq=&C8=eyNE*`c*pg+vQ?2Cu%l)5BBs7&{@nU9xIh7cU$2o$%Nfi@D$H zkYw{A2L#2gUUMR3V0USREnb^0I5tOfbNlwH zn)%Z>O%GhE{e<0e@wAbqy%o0s-+m>{`?2BKIt!Tv&@}pV0WJcWaZ*Bb93{wM_&0Dv z7|lFb0s4o(oT6cK%YukzwO7OSdw-53#CL{hJj z{6q=vp;)t{PBLa`qUy)C{o^fK7Tet&*I(g)FF7qIpkM)72p(4fVfDzPG6yD& z_m8UV-z-YL=ntyw@)NjelszmrORB6TSMxvPUQJj#y}^}h|AxD{*t&u=w0exuOp|A( zwgK@aTF?%~ev}euY|3j}n5=Z)83`auJdXQ;vJjT#UIQ8FgkRV}txWX9tWq)U#U@mk z6cqa6bxm<`2KRFsHt`Qcme|@T0X~)ZZ9ZVxiUm0m`YUf1nzOYr$_^iE;vw~g80O-% z0g6*~{5CVo*e{}H7OI>9=-W~)8=Ol`aU}E$Y@JgUSk>yc41h?Ken8W&0K|Ngx ze8FYXyqiWB>+h}uFcc1N>=mUt`L-x*W>bmA99;L!X0Sd z>%=lPkF*tU?NMQ_Z97o8iY{OZdO2&_0i2WRlJmTtt^zF3MsM2L#Kk|qtC+OKl#O_y zyZkr&`tyPf`9>Wb)`+rAt(8vl!yV91J%7Oc6c&&PzskVMl|@+1996zy#hUj0pnW+oMeaJd{Wug*x z+E=W!BZ%TM#3FD~@`Iuv68MV-zj6R+rk^o$SZW4*aTgCOk{e(A68A{Dp(FM6nluw% zgr*-?f{HHnM8RY){e2|KZ`K_o;kP#%V4=EQMeJVw;pvwd*fbE?Cf?dp#O7xg^QFgH z>IJe}qBEB(ddrh}Pw7A2a%bEN08Tz|P$D&AIl3GRu#E9^k%c65%@42G`F0W>8DYfV zLR>r3hPn;E?xG~H5Q6F+f{>1Kc4pd=0* zP*QC-TyqR*=3!T2t0mDiZlmi9D+rN#jPmF<1#WN>ppxEG-DVE7;#|FU_)-2|096bq zH!MX{!(oV2O8%c|(b_y%q5rQ|f5Z5t*rq^&fz6V^PN`C;PRJ17m*xxN&Va~B#H7Y- zt6Xl>aOF>KSXyxO`>H=ElTNWRMF>_%9CZ-wfE6|t3*B(*nYeb;vHNVj2C=eSyp-Y<`st&o+Xnn57B;5 zQA?fz>8{2kIN{LWz9tCPJpbl8kD1v1<6YH9y@C_?HsPTd!Y+=OA8GP1^&7fBBcc!0 z>8UV=PCIRnSon89FmB26UYOREw9vw)3Ll>-mxJ-;Xsf31?-FT>+;qW4OpuPJH^q$~ zF(95ef4e}tzwA`Q^6W_dIGUQMHe!`IYYMs=XVlDiw~{;H4Nxvwlv4ARIE-g!i?L*) z5%+qRu4(i90+D@32);o^mG; zzdH0o+7ilac2;`>mfol8zQyC1C2P30PaSAs{gA)r&KK{4$QDkpur=4qb3@IgSX5F}E#4ZiLulUw}uCjOHulsNmRPFIw z(%+K7bxh~H?sBgkLO|qE$b)%Xz#MhywQfVNv(KdNiKoTjsnOFNQqJ$Tse32dF|u=? zQ~1$ZMCVHsCPN(Kl@3E#w{0V)yEOa>WbK49ymPYVkkoHL0CM<^Iqe?LL+eI(8`s>5 zzK=;OVo+&GGrvnPdzr!z(v-yE^^-WIHjbxxZlwELH<~r=nFg|tS;(NuJD@?#DNoEc zI5(-n#W(oo#VarLx)pL296Xh|pE+_H?iQ0j87m=oBt9rSgZUQHuFP z+JBA9w~q&TjK8N)N_sLOZJU=AaTTm?DVoK{E%Ph<)g|89p3$5bGpE%J9K4ZB+U7!( z9P1X%2hfyrJ$;F6zptFuiNk9$;ew&U2m zwGpA#V)^pXqxV6#=*JUE3Sf|HAoPyXH|+`cOI!n`#a-4%*jluh75n&(Q@=&j0djUV zXC=GPmfOf5XY@sn19S`g=D6iE0ZRE-+n85m3= zzMrFCbQjAX+*IlOGfaH%$_qXdaugphAt*B*FK5XeAH;Ufthf>9+Q2S{K?68N$Deuc zgyXMMjUpebRyB^LT}~uxc+57gb)ihyDU+uAAG)VfotT!I7-?vmiHjXMDv z2p(JmfdqoP+q2j6)>r#`_h0`>S3z;m2dp{Qyyta|Vf?qHvL@(xX3;+YCrDbq0wmN? z$qsYWLhhz4BWU@gxeN)nBO=n5ll#x53{W14;-Rto&*H7)!v0@QDMRt1e~@^xo_^A9 z%Wsfr+C5ols_P8)`zS->nZL!qj6(j#;ve>rcw;OlbzH3|O=V1VfewlT@;>i|>Qlmo ziNcGbHh&3L43!}_w{0=6?|(0^R{2&Z=@Nf0%sFU@kktbgHZ9z=+rOr58F{$BbAXLQl&xpecWR6+(fF}G)9?<&7al8la zDYqp&ao(MXR~2PybERsTNXAL@2LqDU`;sV7*WkmbVzZygxN7;$djB99W|y9E3L6yA zx+jfyYxj$b3mn}c|9y>X&D{*JGyH0n<_8kS6?+PeN9P07IJBS8bcviouNlh|_?jL5 zLCPwmdx&BcN6Z%k-!OQ;NV6-ZwZ@vO-Qb=|-*&mhci%9c*`Ux)FEgr)@@?U`DZPt6 zdO1r6(Gn}@hSyWbKlQI3Z@V);7$z{FP`pWr==xkt*N^GWIKa%Q2`PQ*nE!_2A^PbO z08@NB_ySQ4WYZI@WkSAX3;oMkIBcy(<58u4_r;5k*tHbbw8ike& ztoW&Jo>Bd><<0N-^HE5rp6lroSInM0!FgL%H5&b~UdX&(_V9$8+RdwQ=O$C%FI&x$ zxP;NeP!6qf+hK*`k?2!qCn`Pps>TxJpkntpC^k|~2v@r%+P_JvI^VJ^%Tv%fJPa{E zfZY$zE6j={A`X)x*hT~j=O+H;9i#!KkdpW2J^#Tzl>e&u7ydxCSG~SCyp?%)IqSkE znK=>VVurZFnY~CszuMjRpIu>P;JYqs0%3U=&s@YK(pUE?rBVwG)6Jy=OzC@OApnJ; zH;{UDP@1{W#k3v?eVdHz)#&ooA=1zMgg0&{Wu^J(&GyT!@e)^ekFJ90 zIVYNEgTeKOYCt)$dQl1? z>Jhj^H+VnxtWWD6mSx>r3#?$OgzthrQX}0KHIXJ!oLR2mnD+*yj%Gc1*VU#jBgkq$suSD?iY5KLj3>MC1AEUC z(vtkDKQJ$SP0-H}`MwQybMMcHJZTw@+*NrJ=Mq47oh zvwx5ZbOK~no3vNnuL^O5-u2lS23cx=cqwCi%5}vBzA*k${*qD5O_92z$UPpt937sQ zV=@ywrfFtipDSVbqb_r%Odqgts-1~2o>}StK^~;7FQ0h-{KJNx;%>r>jm*K{p#-au zzgT8Buk%;6M#qfChO+LVLJ+L<_QUrnV`|T>xv@{`AdG zrK3`cf5BE)x*7%1qMydV!SA~1sR^*E*`8A5)hthYiNGy;0Y8^7zMBT45>hy?QBmeA zO&fmw^*}O>^EK=CQe46Q&o(G!CHdB@Zi$wgibMDuAX02J6Ps<=`BGTP@7@K6PR~z$ z^JFBMpICHEIgyk0qud)PI5{wj^i0k@&Q&;a#7AcQISjb`wK4)R`7VodwyWYhh(XM_ zxO&liT+0UNjoeoDN=xipxJQ@701@f?ECn`{a7Qx`MA$5n#U}_;&4R#$@5hd4BcDs? z46|*XsSS2N?t_eysjpMdZdp?BAs-Dptd<92o?cv}90+Kvv28_d>_&dAtRFvM;Hq=a zgkASR_blsE-BOKp5Yl>)WZ@;Z$ zaVRw|U5$rq)*W_}#hL7{fk`7L>&L3>4_a?d3M=v--q#xrXTPNE#EoIeT_$`dy_2rq zh#5nFbSL?jxcau$X+58KVV$hcmcZ^$?Rr_vKS;wLhrnO$|NKh-wiQkD_T;E?MqrIg zjCgTZ7vIn}+faWT<4s*mUZBNQMS3T7?+Zy9K_e%|IRYiX1!8X#t<^O0xzKb^uC*WM9{roxw`0zETt^6(dL`@LS)?HE1tM2D@v{X3`7ejtj)luw zlI*0rS|hHW^zuVjL@~)#!KdEcm5FJ6n(blRDxRjh@+zZ+we#%9N#4KKirn!s3@$cFxEumq$cB^4k*?GY{rz=sp&2a>6A($ z&ctcZ$FTwHHkpoahMOcaXpf=)6J0pa+>=rL9&@iUm|eqNmqCy*VI^c?`%#tsJz>jn zT+H!;{AI0E>rUeXPV(m{G+dzE&g#`%qTZS7q&2yUllaDKqC`)w*wKL$lf{Fh{WW-M?*|($$4ULyY;XDqJ|mR2W%>zsV6qE~ih} zNw#ZAm~}IW$#d7pf~JZ15ABOXZ`PHc;e3fgA|0#JTHu_4LxM0S;&Jl#`~)voc6tVb z$-%{k5(pX>PUP#%FOj%mN);U=*DYFO+wyE-^t4uz7c4y=UfANn04Em4egMq-J-U-W{@c_zKN*jek8 zOhmaAmV+&v-UQZuKLB^nQHvJhR7HB^r$cLXQ(Zbffg#s-)<#OBav5b%*a&Kxjf{8< zEpQY7?~hpX?LK1a3QyFj#l|^ANYeSW@47HcMuktIoQHj`^ub(*!pkQAAPN72M3r&{ z6{`n5I6-8cFIf&(f{kETT4Ms@>Ha)-Q865TbZo`R&UN>gl{f`~iyK>UGWSkL<1-{?V}755t>f^`hN< z_xzf(IsmV!avF*D!H=9DjXQD)-&8%z+ja)n;jP~JSDTLGNeg$w0xzd0fq&rFL>OZk z^0X!gm~;ZAqUx}~tIX}8I{G|NA)Rft%-r;NYyef?QZRmNZKnH%fz+KJ`SR^;bx*CJ z3-(<%(nlWJ^YZONE)Q2jPjcMZY-^wKJUa1S-lz!1%+JM43?fa#q!1b3DJ*iQ&H@a^ zRpln*oFi{x=3>h6SfbK+rWy^ibw#7CSL}nmPjN<0X7?z4ZcrDBsLc;_1 z{09lNlHAX3KDI8w+%;G?c`4+bynQk5raLf32yy=yJZ*C+pD=3VYFPFd?LUz7?ke)<2|3O;T?8z3Tj1^E?8|CpO)(KNcSqKNX)B;kOD@K9Lq|sPh>| z9J0A!Ok{9S>{p>(+kn13rivXfjdpeAcyKE2?v-ZNil~Y-r$$gz(TZ1&1p`GZ!lrvs z$5P-2#pmG{nrpi1d_B|O9yrn@p6jS?#Iu}6&$r)w;O}ZB%+Rf1uOE;N6@1+<_f81F zbULul?SIqwH&dZ++g2fC(bz<`QL)8RCLod{(?8c)G0#9pN@ii$80!MgAoogU81YBn zc6l42_-RTYL2F2(n9c9y{8q7aN?#@fAE-$wp|1RF2)}RbXq@73C$SrZ4t`$Ky3m(R zTM5iu98BgBcccA_lHFE?P+rML!f$C<-5<}vPx|XIcAApA8}ngbZjS!DTj;OE)%2pl z=T8dK%l2(y$5qF)%vfzhZ`N?aa)xqCe(c{3&~ggCbSY6=p2e!3xACJOoZ!8s?iiEz z`zmcRvTJPc78(@Or|QN0P|rqYOsrmALKD2M?Sv+$jrRW>7ele2@BhE|FBx_zGs$OG zH^}a>q&~(hqoCLaR2xh@)R0~K#tpy%ZB^e-wD02ul^_$7U#D-kaRPwu;Pjd0n!LSI zF~@^Cy)$E9Tv7vI#;`D6uE{%k5q>eOwg zYSIebfA?WPZ*%FVN~>+3{*0JQRX6LkMWyGfS?B$+{Rd^-dZ0}V`Rcwq5rr}tQd5o(dY|S9_53J@zEzl0cy;AtYVbU#iX_MX#3-fz6c=Opi3VA z`$tR1z+I={V=qwo;q)T^a-j5mmH1C5cyzztzFSOOh}M1dv{WHZfYBaTIf`YT+bB4r z2|dtUSw#HZ>aP7AvQ4$GLeA{K;OJ>c?Hy~4Y328Gn5gaBipa6k%Y9kGcYvpy^1G7o zC#)v^z4S7D^4XV-Klhu(qS--onuCDmkFRGDS&mxaL0{7;J*{Bj{98{MlX?HbBbg)a zeVY0h$)gVS$I|KzznY|O>-VD-J8;?=i^vDoWT|(84(xT=fBfY?nGeqmc0TI>Eg=Fm z$3|$9XANw)4`Y!DhJs2v+GH$>@kOB6m6$gyPw5YWI7ml71Gj+av-2lKJw;!;x5!&F zBD5WKXQR9R98AAIzqk@tPL=h06;El>$8vXrZ-u(@jps*Z@U34_;Jbuwj*FjIVK0P& zn=z~a9vR0%O11T@^>yhx`|L8=7?aUs|ze>{6YwLB0Ya7 zN^&qbl#(U7Sp^I4fZ<2J(0rl{-WQzrq?Gkq#r4|mIFVV}&s?=iJ#pkTC>+^#jhH5i z0*>=(1dkG^$7Ex{*0$DZq3qFq@A8^Ag)SR<&V5Nz&6T@0%X@dX%9XMG-pL=*FE1HP zDl%}U@Fccv+O;BL^!$THciN+o4&1Cn`iq+EwL3+t zIcp3pk>`ODyj_*i&St>8N)CwYZd|dSq}tvzK^F7P;DQz_CBzk6rcyB%3ae3xHz=K6 z?7D{WG)7r+R0l^7iN*T42qa`PHPSY|CEe$(jN2rz@;5E8#I$eGWXt|!l_9lwpnA6io4Ps*3Lqy+_9 z%SJJjngD1K%R$?U;dKzniU#&k^b!4_YP5|E#-ja$DYBmI zBv&z(byzXzRe9qvbGe@*6#sMoyoI4t!^0wI%svlh9~;0a;p#743mOpJyZi7Pv^hDV zQ!RNlU*3v7iX}$+$Ty<==FPK@ZxQxogA5`=rKW#&UPUqMW1XV~$xiMqdpajg!b?Goa5WA@A1p@9H{r|N3 z(PCxA$dKg1Nc=J*6XA0zLdtb2@OxC8^@>ObNtL{0a+@8nh4H2xiT&G(UNbC1vNU_a z9DlZK;7FGDfn9-uin^*1LO$c$GL@s`HU7T1=rz0=4r5V9+F0f&-=4aVf1%Wn2BkYT z;G$Ra=`he8OOz-tME;mmZT72#amAl_SRT`F9OOBXad~IDiLmJ-BkKz`jl~e+3k((j)di4>)8 zg;uWFoK{J7@dlt@TDh2NwsZV-DV`ue(Q^eP#aZ;IwlhgBs3U3;Ub(bySVILeoQM^8 zq|+d5*HM`RDB^@?1O&_`VQ5}3WpLWCA-zzTi%ue>zi>4?vOtN4-i5tzYx^vaAy{m} z;NUXZghJ=Y0nAD_l2i+;$bkyMaE=m`PQYwnYa<;&)tHCFXb{E z&Amgij(=}Rb74@{VBK)ZKf-^wOxBQDIA^u&?Sg;C!m#kUi@ zS)SrOAL6;8dBuX3+{B1ZWT!FsGOYN6CB8vwJCGt1&jLI!cv!|eb@MZ`I(*xBRB5@1DPj>-=EBOR|xM6Z!$2bVpa)Nh7^utQ!sse z;hBeH^-qL41=?5eY`Ui)s-l7NHibraKC8Z;@eVtKIj9k+F5y}!$AI@~F)PCNi|&}4 z2#mC1u1p8G#~Vc8^C2)l8G?Qhj~ixakGbD>5(sP6{VB!$P_82%U*z*I?-O;U4DhD` zz)yDO@dfU>Y$SXwtR66gXK4#J6>q8;%qXqGzqNwX{b6nV^4gHi)U`?Zwm_RDit#VH zX|{1#8GnNmsCepzGu4SgsxI<0$a4CX)pIgOKCW!-7E7@J---Q@NyVVN&Vs<UN_YKs5`wu_248iq}aWvYFmc`5ZZvs4t}wDoVyv8~m!3|1tlZ zu{NwbO`uNZ)c~J=fJnwIkv4?(%^_z+YiX%*LTY$t7jHorMcZ1aoXVRI`LZ9B*b{!p zkpjRT@8Cd$18Gs*PO4O-9eEQpe`f70!xIz_<}k`e`XYcoK&Jkn15zbl+aFXy`ME#3 zt@^o&7v%(!aBHF8N@nd|YSt(~c|@5>`%@4m7S2mZkL9Z5iENGeI{|D6;!2pyj`(UF z8!kRYMmf~1guwZP@i~f|CwTrc9{9^+KbLX1oYeK~ zNgbAuYj=(}J$a4{B;Gz83}G>qUPX0}s8L{q z))^6%oX&ITeSt)H%6xfm<(P%CY}!HdWq$m8N3$3RfJf9=%x~6a$^0FUBsYnT^_gQ& z=t?eNOTggrNB?Mv`s)le@YPqjG*l!J8LH6tjSg7W)8~&vqK#-+-f=bum)0Im)>S}q zM$p-$HzpsLaV@faU7Zu=0V^`<~KMFvyQ>_8ed6WZ ztoG#Ti?71)4RWx49`GMEnZQ<@JR;yuo<28Q0VK}ku`c`M3i4&JRRUMH^82-= zpno^ud804-HNG?B#YPZ789$<}w(L~n_Z^p$vnjqc-C0n2NdnTi8aTQH66Tb7mHT0{ zO3E_aNXA-T-@_^;@7KWc{>Oiiiqk6AKxRVFpu9esTa9gH4x+(WRG>x2y)x?D&4|o& z$RR&4)|=QV#TJ|oz(p} zPastbJmr%}91Er{8VGZC(Eao!75aRbCjY?W)vqDCPcqSwsf4{pgF&%JhTL7B2i$lEkkIwDwOeaZ z_x|dA!%U7nlu)x;wX5;IX~w|s)lui{gdk`#j;o44qaII*rtLdNSFJaC{@Y1ZDn**` zB7MQr88S8!h&zhxed*OS83uVyn#aUaJZGs9r0vEW6c6&9_~FB!<+xQ#Rg#}*kP+3q zkHqoXZ3zzL%6R{S%FKSfSY&r;e{@>ZKw}5uf*Ut%&bGxT_{Jc<`ZhOed`MWynEYlb zkm=*J9&j^O2Y^X39Yp7ZW@=&g94dGcmejSMtao?hf>S~nm6-bVn(2SJz1uTTFeh@~ zyK_IAztvLjiRiWcW<2zBtYmxD-zMR*Qj0Dzk=L3a$INz*Kay+<0gIa;r!!}U;DLw`owD$8an%<4Eq|5P zU`=#xl!SR2pVKQ5t)1<(rLKND<%EM6dKCy4iIFN%{!wij2$?U4reE%2DsM=7c^W2kRE=uL}l9 z>Ykf^F_c~ITOLyAnl$%Ge9-OnXz0!|vA1YPlrAB)XE?=rDMPVne@vl3!N6C`-}DG5 zEaKMMXJ^XXyn7`+52Ii_UkXxnJmM2;=C%UBHg!|~zWUIYx+7=#f;!n5$%SL>!*LL5 zAXSXp#}Va#^N6yX?F)}zTXq?A-emscUj^)i($HTXuIIxW#&xMMfj{AE*Rap%CmFWj zuwc?k(g2x5Sr~k9Zaw_d20g%%s-fviTd`jDsndqRhRZia5adSps2t92HD^z4NB5CQF4DGNLrt7-M9o)0)cj1fY(hxB%k52E$(IPp6sznkSp zZADY{9rH}hL|-3`9U)d}+j$D*Z-&?ojk)5SDElU>?ZM<=e2pgkU%unD;qAuA`DAL&tx6ifMUt%d>a*@8Bw zi$znpyXx%>=bpZl%*;nw^^;#=k6QUFsl6ncwjor6YvC-`5PX-%qU^AzkaGZcI@o71 zGrGSh=g*Y=EFWn`4dNoj{;g`H?4lz&kQQ|)UMkUEfogi1jc@?b~ zaubf@mx`VydIYXFB#S9@)M!$Viq_h9Vhv4Mpql`|0V&>k`ju*;v^z#7P&0j-1)~Fg zAS+A&nJ<={k^tc$yHCMAL^27eVLt>$Y>} z!yW5v zSALTZ+3c&$db#ymuSywj2J|1voG=fot620s?1FxN%e#))m{f*%Rkr55xjse{{967I z!H#f~MiITP4#S|oCTDV`s33n)LqWmAH3OD47x%1vXy_1}aQ~B1%v<-dxXxmEvo?J` zO+BpP%OD{P<@+008o?J%NLuwS>+rdijFCVJ+>z{`$Ie;XvR@Mn!b48z(RvnLL2x zrUWoFsNl(`GqhXD1vkBb_gqp|UgS*s8L9ybu5sWYC<6Qez}Xe;v@1Vf*Smy}lFf%? z{}_cXkh|((01%@7Rod+W7eLi3i+$tSi{L0>@Stvy>Zf#$X&!hKoK0@vt;8b=l~c?FA`*iL$P8nZL%2w z+&GQh4sfH_T=s5`&K3UFh9(zolj&dRJ#X|I+E(HQQD-oy#Z96d`qq(8p2`KbkhJr+ z{jd(2s6@zpQmcMbpyUOmv+hh+!-w0Lt_jKKLH86%K8?WzPcH~@=6m9+deak;u*2iI52y2ltF?{}pYel{KrhY+Vt5<4;6c^xFuszvkqxo@q(zw8 za4i55cp`~<<3>dHDa?N~h^`dAwJ4&LG{=sq@6&AX*#6z4t4;*5FwQH;+XUNeW72UP zdJlci5Uo#~3I$1x=LmW+m8Q|L7&GI}%Z_jCjI^vt5NzsjWVBpeluN1v%Gu415c#9Qld3}! zEVoW74dz3rIv7cmCZkVHuJUc+%Xgu@CMGgr`XWyyRNWou$rnA(noY5jcBke55l>SX zw`3#ZPjj;J=7B1lE9*%C>X$6v5YumLpT1Y^J2U%@7PvCwIa6*7m?lYZiBuhzC2%*S zLN^zwCX{;e27tNR@8f>e#&);IX~NQqOK61@Oa-SVjIUiO1<*G+?gSa-g4Nf8Hav zw}1Rh!0m{?F!XwGiCZ8oubnUWc7VdE^_IwbxnV*JViXt?T+KqQ4$grT_eo*Z{op$* zS|CG?af?GN0iha$vE=tXa(uMEjGWl|1%-6f^F+gQglZH&Df#29>_tcIi`Tc_S4y9B zLt?vd^>Vb9H0BIz^{zlzs7T{jm#Wu_ZrQw&lNn1yvGFe6VK(^LmxcGwT!~&ZZ zvDJEAL)(%-o;u#ahPslg2NFfE^IYxE5ae}(_d&u(dn35tl!c_x>u4kR`HK`FoZuX2Q z@*27FDB(5z2gSc&&J^Kzv6rusgG+QW!|BhrGV#EPO~~Oj=7xPI4u_t0P1X~5!G_dA z+=|EMVhvzgn3dD7O+Fn7ExJ!tsDmUwT%`TUMJHc1Y)`0_Q&8e5Q{7hFEWF8X2e{W5WKf zl-#dz281x3_J05r%DB(X!!b5fQ5gk{NR0iH^nZBjxQ_z``fn}+`lvObEw!8tvu{8yLecjw zNcig&ub&w7W2$_cJ~{zc>t}?wCE$1=^%vMjoXP~7R;oi|ULDcO!zTN2I|elZkBz9* z7`P;_KG0jUD(DsQq+#)>2!f~>0FfzME)JSii+NNl% zzHNM{8%9=zHCMtYq67uk8%Lcw-H`uPFsf`QRR3Bpp2ZS+fE7YYO(?85?%vo*q$g~` zTLq=Wpn;9-{C=WIr@JAO8UVF(ui|papaR9@MGno=37PtT3m7;h7(Y;2e2tv5Dy+Y@ z8nmOc9+Ji$gD;PDshH_tp&{wknW{v(v1F#pYk{06w_}@n zE&Q$WfYdxyMK0%%oFk%D)Z=Ardg18p8JR7eQ88BP9~rb`7L#*8Nw24oErobzrof%j z`jcb9`)e}>^U8SDvol~jANAwV2l~rbeI724@%kUvK#dm`U=FRrO&2 zu84czUw)w7dc5PGuROA!=;71HK9wcd-`Hhjs&-%K8qJqb$jy)-=Hd8QU_DUPFyKFz zD=jwhZlwkgvq{-wYXgP$-W(z+b@P%2uns2FdXW}AeO-uqDu?j0*7W15>ZAPN8TJQs zs2+miw08G~Yz&yAr1JN~$O-H1RFo0g{H)yi!M`>0(t?VCZ>8dGQGpyqg|(mp4wzoo z-7YjouMp3)zf#f;WB&Dxh@a5)d`G3TeLRh-8qglKZL%UJkO{kDWzm?P`4pSe-&@T^ zuW^*YhUU8J7v_PB6M+O@iYR_5P(lMU?F<54zLr;EBVR<1;3urST*?DHc|HS#Up?8(TiRgg{2{*ZxZ#X(QtS1 zNxFVS?9l6Ix&R6Yk8vx1#hJY*;;F=spYCO~AxM?7d$U8YHGH;RT8MtH_oos2__pTp zc)!%K`Ny-`pRQ}=Ioo%isRrxRt~Z}>I}8~}HWjPcad{I6tYZlOK?))oXv6ticb3{V-XbcW4`TXb z0+|EA?&hOmAst6%6FSe~GOSTVoya@SvW}PF0{Wy#?0;~nsmM|$G7}2V?|!mwy~ec3 zt_e2Z`8L{LjG5wPVwBr0)$b#HEO&r9y_u#h_s&19aV+c19>(YWs|Lbzns->DsAkM1 z1n6QK4LawG{pGmk4|FS$MLpg|HQhIBY$fS+iE`<{(G{ooEC<)`My}fO{6$rtr(II0fzSvB(iKMop)+A%oAw{%_TM{1+ zuh+I7*qseY$&(O}pvm@n!+sj6#E=S(fGGCsWM1$XsiQAc6C>!*U{#V87ZR6wIFAjrrT9njEx7nyS z-yFm_gsK$2o_kZZmJ^AkrTXfor`T9WJ<&++e|N89b8x#Y^h$bVdB|4E@t%=UVK#KW6qj>LyoD{j=kQpBsN~C5H~>l6ojWuSrCWxS~c{b=BrTPVA0ptM{W&p2Chy zJ>OMvFTqw(@T4BqCgztUyRInAgZkaD@^Qi1heD?}gU8sGpX~3(%*ro=GW-6#jOQTC z&?z&Gp!F!xa(k&D4VE1-l-I)UViU^ozNVPu=X_XDFzP4hOgE!q~3>zgunzh6*MMMbsgS4uvs5~C*b;EHQ8(M0(I^JCh3IYUfo(mCUrVbR=`cVgr80m`(k`mUmGcLThEBPfq73U ztdYdnAI?$Loxw6jaSgtN9)!&Qs%@?|tR$qA7`r$!XNs;yUr#RzaPO7*=A(Vk9u$b^ zty!d7pF8w%*T>^LXm)8*b}~vMJW1%puECGTT55&x1AL(3=CAOdpVJBtmuCv+g$n99 zW2SPZ~g&OpI&JPhTeP4|vA z(fP_vM97zSa&l)%BS)>U&D-yt4aMmUbt;@i6OJUP)GZZMrq#&DoSH(s!ME?6RC)a1 z4@97Pdb#dxnn=@mK7E;;1!@R?`*XG=EXxBH8+4HJ3>HqV(lYthT%&`FOM>2B>Uk)L zVaI=>BLcP8s4KqAHDv;i3)eQbRdR#BKN!#*SUBKHV(V{3QO#>l*a;O3OgWy`yUnwq zJEVaw%!NLNz5e});)8}#Ek9rLmpmARF=#pUD~adxR59_DZST2a6|o%sT%PnGOS&5HDsa1P79xOI<_3a`II26!9n6wORWc$) ziR-)8eqvMCLt{j|56#`7M>Vh%>awTn!u^usXu`ucOi+VpU7alqI`d#Y5Qd`W^1~Hj<@XYr*$Br$J&8^o4)A7&cU=!!)Nj`Y z_gCGF8XH6M0f43Cep8d+_2;NVuT*Dv^)%jJU)S9wFs)-aS|A>Wp z8KTV-Y82FP zz07t&db(N}_TgRH&g*KchO}hsXhQ>mae9fwanmV`9M5~DN@vcQ_5I&Fd`wD~OO5yR ze%;I<;TONUW3`k5GmcHXIkzNAlIR@5tBx~kWj(x94(^~*Q9FwJ^K^k{DzRGVoN!ML z_E1t>iXYP7$(MTgGKe_w)7d}Iu|d^?d;ZYJ4tVAV?>;00;uJO-)4!mdjdSa@nECqU zWg~SkVY6YK#_PaRT>Y2J_AitfrJaR1fEE*yxoeGge#yr*c`bt>qh+%;SnBVvfwQ^b zyH{RWa)HI(Y1wt}fjnPe=0uJSahaQA{2RQfy$ayjSEjw6-S2WHT+W@tlV?+%FGXY0 zVNRAs`c^E@LVVU(U`_vrc4dgEZ?8SwBHGrX*$(i#Ji{U%VN=uQ`aeLJ+-D+=uS>#> z<-rzve%;`g^NCSg^sbTVGc`(;5m) zuGM8~0Ss94WAhyU=7-m%-`$^tWwGOjbqb=wRf=b_xS80*l^bE}Q^tED0y`gKmnfB< zaYkE9e-+qS*EVGe?eI!43NTKE!ml5IreE-(ZpBXiu2UfIBXwDqen^w5FrA;8dG!`_UqqW;R_KX|;Kw6F-u!b@qFK)X7kGI038$_>T!!L;(Fz%*K{-z;WPqpxd<# z7|t=o2-J5+SkAdz+iD1%6@H74)z}Pbw*vdn)KK~j$Hg@vDeuy_(3{BE`ThPn^hpLF zVU(^8lXGA+L_kgB>$obwTv zB(;z*nBUJXH4X@nLkvf3b~CnHxZ*D>MJDH=v63gFKP+TH*6OAD&sUZ@HbOhLwd}vR z#LO-S)RWdXouPP^7{t2+mJlQX#R{h>LHN*NN2CGu0<1dI=PYnDCV3Qy$D!h>tf)!~zN253It2ywpEY1QYbI))M8K*_oUOBVT4|J=Zw+ z^TA!^BFOpl8Flc5Kn)%jb2`iXb-WO_CQLAP3WTXdK0FRMu8nxR~q{lPw85cJO zEZ`s43>Kc2S96!ofyKpLmyCzHsU=uXXG>lZP!4}E<|%8w&pylEs=WaeRgKU(a3A8D-)`30%l1UZ?`SERLe`nf$Rd$^Ngj;Gormngj1IrxO=aLKy>}X)UQ+*Vv#4?<7!9C_%`i_uYaKIuY zXRKcGBw#M@y|rzt_0J^AfZt_=UDx-XCxMWMp(7rqa2mlkK#67!VNgy;155G$%{D6A z%vj3tM?^iEY8mw%+B=6-!ERiodS6w(y$gt@3;IjsE>vC>xT)m5M18O18JsvI73-!r z?3gumo5?;UaQdVo<_UdRz00TNne}F#r3!!@T)fBP6N#pvq31Gti4^=qo(?wiv#9>& z@8z;YI-7wHR>~1gV5Q$1+$fl4>c_jAP#2OX(O)U)c z_#e&^*xL6f58lD=)4?<1dKF^&$0VUEc129afe|=x<`fi4KE0)ZFb1q4{?ye^ z7_Ir-jcU8Bzw2j)c1pnzh7yG@spEy>_MkV2gpP)eorcFEsyKvp-{$UU@jj9)O23#j zQ$6~{ki`%cnE~O;q4E*|LS>XQPDp=;y6hK=deap4*?DzwJ`~DoIViB7E$OYNp zXGJ7d)%D@~6Z`=hx}xAN@dzfKDh310Oq~`Iq%OJc!!1WX4v<(z5pI@#K}1bxB3Zpp zw1TId`mN9J55IyI0@=(r;;kG|c`n{+{DYJj8tp-6FiwupLB7@wKI9JAWMP-gj*Qe` zsWjS@^?vcdu}v=@I@GPEzbd#O8Y|QX`t}>n_m#ZJZ8lCsW?b_{3&RPn0+u;leKD10 zM?p3FH!fF>`QQlw&X(S4>#OaE>LJNwyvNt42(qo_DdQZ)|YW2L*kxYIJSdyPTcv8VNQy=`xR5)fO;zB)V7f1%-DAH z)W!ELm>=~l87npswx6=XR6Artl|8vkjR1!)5$3k)^w-yLVKWZ$DdIE%YmIi$)t{yO z3SEX$Z=8=miusv0^sg^@8r1zSMbx0xZPpfSu11G4g@`>_fU6%D1q8;c(YNKu+jTTk z;5cP0p-EvGH6$fXuSQ+zn(sBta|)eT!mM9uebvKN<)Jlkk!)1U$DxHB6rWa%?C)LP zh2*r$oR$-2!TG)~`zS|CGj#mtmsnKF?qI`q8?-2Gm$)?pG}mC0SHIVEa4B@8S;C{} zFM}1GFp<%CTMkg%oO$3(7GiUK;zSfkL#v4<)AjU1${kD9vKeCDmCV8pcJGlrR&b0W zE}RZ1UO)F^yB{#vyF2cI@$(%G$-Q(jbhcPR>e)^^QMNZNUUR^Yi=}59r=$BnYZt1 z`G@WX%~yMLRJT?k18!ykb3$(MRB%u)BKac2t69r^XL2-jYo5>Rn2b5S<#)Fpl=Nd)4K(kk|>TZicNdCpPJD>?T({ODb++fk!2w};-+xoL4 zF7v!!mc;VK;P0pv(&3=>8)gybeSjN78BwISw4j^yNOl!ZL4lBTGFA5;(VT$H`R?GZ zHly-iQTNg@*-*SNdjJI1mo_$r_26^>vZyJjy>lQW7)uowyW*~P^beBvR!!@fzzJuB zOrF&7xS4j5Sf>i%3tx;QPDhsTSSUZf^vA2rPT8Q>CfkzZFe=PxpU#gR$sK~vgk&u) zz=`G)uNe8*a-5oS!Zf&*?kBnKVQHE7JqHDVc94BFEb(QRQjAJv<;$CjLYa3OY;nT? zRa`|;30CMh>Sn@&Bsq$&e`Dg!(I=Wa5{-&&IQf?sl4mIhI8-=ZIQmECcGQ~MA0BW` z?r(Welc{m>=%?|C<|7ZY$wduDFOe1w;^0I|>w|PWBql3URxkWGpXA*UN)hee*?-mc zsb_Wc2F-Z|5StV1T5-})#xwNca0d732h6IzR<5srq$@ACy69^nUss3WV!O-Gr};mv z(~acdi&9LNXw7=jrhkwQruNwGM)%*{jvX0dSz5Su5aoM%|AQp@FjZXotdnOh=uP4m z#bj~Wv^uIzy`BG*mV!jN+Wo;cBfG2qN`!XG;r6IM&$JgNe=b>efd= zWoQ$+;)faWw8{jUOO*v1dG$RLTC8 zoa4KGn?TcAd0-fqE3_|Fn1I@lftvTvxJYiO7_`He;Cee2G?2`JG$8)00T?B{u96o@WvV5;C% z%l@N%g>tmwZ9ZSs-LB?H->y1Eza=jm-{N&N5jtxSfSIOB3PpcJoSsY7Sk#m*pl9X| z;~w+h&uFm%pJqL-u@9#+yS3KN1;=Zvt&!xmbDvAA@3T67ULDFf_cZ5n1141)d`JJd zDq^5=_tteIFfrqwlfgT*UW6}|bFIdr;tYfeEmTx3ko)6ymVS}6dQofxw|S^c1*<2v z4eV{k#vBOStppuDYmw-#lO>Thr_}jOtH|sQ4=JUC(mO~H&Oqv39uh>zMjv3=gs}Ac z(2OiGAsF2#mSL*1ek#a>c$rZjfyAgum<_8~AsucTu`m3P%Xzq-x?+0xG*$zlP+#ho>%zFDn zosphA@0P0Gk7cb)JGNA-^Ay$`?(s<^fj{x(>|JRA-N*I?oP!27toclJk&=Pc>{Li6u&{IuvzpwA^kHIE*g+;Mff$lSoDD zecT#4xztAfI*8AG)xQwIU0y?yFgpVaucHan;&C-yfrTM^@~WNkJ6D*Sdi^8L>H0kZ zmfv|a^E*K4~G2!rMk#E16$by>Z?27o;!JCc~;%3Kgo1aaymyBw5p&gkK!}y z?|WC{d{;-aS5W$^PiNKXYq8%JS;&nBP@HY2WkIS!QRlK>=hN;L{dkXdi+~2L`|k^2 zdZCPAAM`ucyc!lC+Lg8*3EM@<%t0Jdw82~$%cg;XPocfeOo`fBbot)aBlQXxnXO*<8Gbl%NgpEwp@IA`T zFr8~jYuMBiFIwH(P}aP`q-5SSRkU^cLh?DEF@WTqEqj1Pr5kiWsTs8bw!)!vT^auD zObnx%oF>%Q|iX1jLh+O12icFdq$ zeSA}yoUWa@(AX0ZZA6+}PkWxBCY2@lu@wZlq-Z~NpJm_N!M=AD{M>bT>Q4tGu#DY( zu9;IYo(F%AKQ?}H`kA(?d;7X(Bb6Dq#K8H3ZBmlE2e=0 z?^VROEP6tREJ{F4X!FU(O8lR5VHeFecFo(4>tyGiPD567ESDFd%U%M4-KPk16Wl{f zcMFC?yzT;%o&51(Q?s{-(h-ue%jDi#;MZ^2W!OXm?>cO!t|3+EU!5nfJC$@?!pk9M zUCM4%nej6~}2+J+D2%DzQ|P zgDb~`f77Kk@O!CfhKG5Ibg_rd6Z*aKmNE%(AR|=2>tE6;x?I|+ZH$?_+zwj(k_1E5qrP8khQ5Eq3qhO5bs)+ihc1OwY1Spg-}At3C; zLF>U9eO57BOF4t3%G~F%{7k2=-_p|6Yt$NlYzm`xdX6CC;kD|Og>YN12yKq=_JoyS zjM-h*ocqL$V*F~i9yFQWC(GBoerfCnCy%&M3UG{|$!||9XlTwHS6z3I7`#oQ%owPw zyGR057Q$=#Lg00$0oZgksn3w3oV7)LYk%?v^t{^kjXF4Wx z<(K%lhW$$EcYc2B-X0_{!KnZtbV(0qqG+2bQKRX$Em-7H?1{+6t~_UAiAm+5_B7|9 zT@;(`E!HX3)YzL+n9{=zr)Dy}#$~T~dz{g#$wN!;xwYUM;`hF0C7=bG+ZN*{nESwy zM{|Ep#>C70!hcA3D}6Pi9(m$f%pQKnkKj*kMn0C?mU+!MB?0Ks3);bfTxcm6HYQMjkn1VZN@JTE=qS=M{>{{*xEE8hy=~`#QQR}RI;L!PE=>1uf>V2#_)1;yg z9sBk!J{+l}^B+FI<6J19r1YaT(8vyS3t5dDAZ?-y?W(HndMKtk^!ki;Vb8&$30@Dpe8(RNB;_2xGGHo&d-CAP=j zQ4+DsiB~$j9S+|tPLaw7tNvLUX}49Zvg4!|{$7j#{!t?l&c`RQE_^T%N6M6 z>h2>SsKou3ad{m6BNpf8`b)(Zro?Tk^N35$!`p#NN=#Brf*aS{`-!7GchVCGLpdxg(0x5cLUi_q7cab@#dTw}tx-KK9;FPhY5q zJJ%nJwsszVzDnHO;()>G2A zyJ*$$DNLFwJ4j-Td zXaROxdmm4gM~@!3_nu zws!y6w6%5m2mdP;TuFWJ0hvFjo8$0_wF!~$Y`>5e^`LDiDZ0~FTjs0LoDt}{JZyfr!4%8QH_&4_U zfc#_M!AITTZ@IGr_|LiWmp|^Vy8mEDs0R3Nd9bsg$=}!?YOMP=_JJAv<3q5s+COq{ zKgd5mJ9=yU6Qi3CuIImxWpDc*AAFq+|NO3h`QYGV`i~D!9PX?CBX>9Y$7fGp)qiYy zy8d;p|EsU7=09>De}jMe`g$AwBX_aY`g897rSIwc=%4%m#()ZN2ao|IfV%(}U;sD( z-T)N0#rf>(5QsYu0YJ^eGsqk2Z||A1l|Au)j9xlWZ3(8`~S-x;h!B5Kn73& zbO1BJ0o(!v08yN;(trYR4^RiR06oAEFaxXsd%ziR!}%QmgaXfimp~lw8b|{&fjpo9 zC;=*fTA&GN13G~|UJ&F zspCDwgW#FrJ;rmwbI0?;3&neZ7l)UOmx-5;SBh7I_X)2PZvbx$Zx(MAZwv1b?;M{1 zp8}r_pBK6T_(S+p_$&B3_{RhQ z0XYE!!A$~D0$Bnz0zCqA0!IRGf^dRZf^>op1eF9W1pNdP1Sx2pb7|2qy?v2~mVtB1$4QB4HwVA~2CDkrPn>(MzIqq9URO zqF$mYqIIGZVq#(jVt!&7;s?ZL#4f}k#PP&A#8t$fiN}c7h>uA~NSH~4Nt8(RNNh=b zNnVn?Bl$>zAQ>lFCqZ8$zs7m(&NYo|=GWY>J-?QIt?XLIwef44*DgqJkn)nslj@N^ zAq^r;A}u6sAsr=MC%qt}CgUelA~Pg&A$vylmaLMjmu!LTh@709n_P}upBzg5l>9Au zHTf6vRq`_m8VVr_H3~}#KZ-<(Vv5fcvlK^^l$3mw_bAONeJK+uODVf4mnhNKX|Ic2 z2VZ}3J>q)S^~USt*MCuwQt?u$P+3z2Q>9bYQH@gV-XOifcSG%l?TzpoSvNl2n7MIG zO-p^7T94X|I-a_WdVu;T4G9e&jXKQ}nn;=gnr@mkS_0Zzv}&~Wv@d82X?tnc>4@q0 z>A-X@ba8YQbR%>qdK!93dSm)P`Yif(`V|HO20jKbgDXQ4LoLHJ!#N{6qY9$~V+>;@ z<2d6f6D!j_CI_ZirYfc>rgLU4W_4y5^Bd+S=0z4l79kdWmH?JqmR^=!RytM%R(sZ1 z)>_s%HheZAHV9h?TLIfwwqtev?7JKc9QQa}I8r$}IJP)xIh8q~oT;1$ z&TTGwE)_0UuD4u0T&SCDHy_;eyP1D;zWN$g%O1;%}3&q39 zqr(%*Q_eHTOUf(D>&%a{KU(&>j0bS$8JyQr^|L8*#V! z?t!GRq=RIx86KI(GTAaSvUIYKWaDMO$Pvk@%0%V6n-l5D>^6^Dy}JUE7>aLE3GJVDL+(Y;L-K@}I3k1D@ZB~-mt8&pr#hLc9Q z21-*(Geq=fgA+ql!z9CbBLO2n zqb_4AV@u;w<5QFSCdno%rsAeyrbA{dW>B+ca}sl7^CI(O3w4V$i*-vW%a@kZR{U0h zRs+^7)~?p=HdHpYHg%7Q9-BNadyKKwv;AOuYzMZ>wnN#g*=N}AJh}HI^~sill0&k? zrlXQ$vg1!DC8rdpEoYE(y7Mkn4Vno(aCzX8=W+_ugB8QBTuof7+^)GjcKhT`;|_E0 z@!;?X^ceFL_I&BN;wA5u=7sXs_Ac_l^Re=2_NBuSp09oaeo=m_{>uJY{^$VXfVx2H zK=;6}K|(<>L7TxE!SE2m5c`m>(3_#pLRZ67!t%rM!tKJlB5p-QMyx;8d|L91>>2FY z@N9B zmrT#gAj|N}Sb6*KZSy;xcdy@JGMzK0vQ)FGve~j@vQKlKcFp6O>00gDt~%Me%6i`V>;~F~*haj@phi@abJI$* zS@YN@txsJo3M~z-Vy(q(H`}t>>D!Y!$T}iBt`Nb9F+a^Gb`VpeE&J?I(snZKX)j706_Z<0LZTYizol3 z@z*5ozY&gN{)PUv|DW)`xb$D&;W$XaQvfjj4B$uv0OaDZ0B(e=C26|@CgZsi2e+!@WOE41BBE>G&gUn5Yy`0l5l&`-FfyV|Jp6pnofGi z7>ehvo%eH6G6qH_W)@yPegQ!tNhxU=Svh&N`|28+55QUmhDOFFI7(*!#KF*pU37!>>>GU{dYtC-m2l+?8JjJNMHKNJ+gi;7E1%WCWD8ycIMKecpq_w@Gle;F7Y zpO~DQp7}mIw~Ac*vA(hSb8GwH@aXsP$tn8m{7+nX0Kvb)`X{pgOI)}l;NcSz5)hL7 zi3<-u0QV-KCM3Ffo0vvLpTyRSmix}LYjmn_@@qOtZ{3BU=25Fs0*J_GF?S+fS%M2e19c4N7Qi{ZBBVyfO|6=Wj9#RJU;>TTw4 z=z!&s?U;N`KdtHX^Fb{mbJMQxi_JW$4{#c9Qzz<>>EdBINfF|#vD}frM~&D<<%0W6 ziQ(7Hf3F5GAZr4JGOhKKYjgPaE7F8APA}6mzea!z;l0Yt8)K<1KC3W8m%H&!imj4` zjgc$!zBOdhZH7yH35Wm@9eO6UV?_5AK#g$HLkn(pQks00f2(&Ly)nW&Y0(`VpI+R% zL~x)~57D$oj*>0V3{^NMjvPoWz6-3X-`bpz3Nht??y;_HuikYh|5}PH#hy~~e<@eX zdDJuJ@11YvyftMWQmdt(X(Xs+90xM%-cVFP`fHjH7>OuLlNz2kXp-8YnBFcL^se%j zRYkisj1mpWL(=5G>5Pzc+0^pyk*+0uCtvH20XZhk;csvEueujk5M5aP_K9#n>p>=q z=L<3FsKv>mhk=~E`j2-G)TMeW^MWga1RFlpPdnsYQlE>2-4ygJ5=sQ;I*M6R=Ndt> zs+9e@-!*_W?)GELN`QQgYS;a=%DO@^Wx)C!vxH5A# zpVt5?^0#494$^#e7&xG54A+Ymnkr>TUZUGJD3v;~mDRE=)Av5QYjY~1cNu&I%x5fw z5eMg$R{c(JJIdGyr9NcbGeOm1X+*DsUdc;R_*GF_oSA?1+%preC-UL?#Pn#?t3Yei zGgA5p#yjbp{J^ei4FpF-M(jwdP~E6Crwv-Bu!ZZ%7ONN}JPf~Ayl2e2L|tk?n{4de zYoK4jtVe3Xs3lQu4(D{(`_a5?tH0{Fr(4%9z5i>fsjF2G?#7U;9}tU>NybPXI3FlK zf3xs~)p$J8zv&8);PWMqgRS=yiP;kbSqi+fqCs9aiICKF+gAuQ z8S!3ZKe2?w=f8Rm*?j(EW8+5~1Y|o{gRtm^%LGqWkYy}s?@l(IHii{u{tT813pRKE z?QMJoG}&Yf9j;FeO_FH`o>z^YV?W~QTvpi3Vsn>g!afUi3{72DNY0pCE)Onqk>yrl zV8_Rp4ip(2RS}WV1{XEr&b>#+6w5-O0*ztTZ0RS+5AIjv53^RR_eWyzVBLx?inIgyDsiq zG6y_W!EQ?jW72E99C=8m-F8$K()Lq(%UD*oHCLY45*G@QR%|&ecsu8G+S)SH{k`e^ z>R&Al=@0Uk8uw_Wx7P-mCzJ=|pc6eG9ckplOjw7_sbeAI*=GgjY1!F`0Em!JT{cgK zNcHE<*+l%YC=UVUAvKsDbUSLu;xZSb?~(sK^xnj= z^pq$c!f?VI+5f0^;`{8(yj-C`^Y>p6_-E!c(>>3z>@aUpvN}IBC>*4 z$j@=@Bh<Yu8F%CH(3?A%JH;|a_asp*nulIP zs|PSe_XYc>l$(t>Y-!K#7H|#)*y#cz;xx4f3qhpxWF;!Usy{b69 z)xcEFf?>|aS^LI(YL-vdX|bS7gZqrr3Y$~*MhA~m^2!KvHi!PR9-(*BFow;SrRLe$ za`0EN?UrIJ2C2>lh3m%{?UUFXn}rMUKG59VlT`HB6+lFUo+-g-q01}#p@my9(mAV1 zMOS4DYO|$#R(>!%{gPEuE$S;k>Fb zxNel}IGmnI#f%r-c1{ z!&`AT)S-#Pi>Io1gdCAKA{K8^qWAd928wd#0(63;XC73r&+q(5?+S^q0d-@qZ)RXe zS~4(P%k@N~FV{VUhHR|tRZP2)*Jj83+W9n@ffhCL+0LguVBbMmkBqY{>L_dqapXMgnedSx(6+sAQ|*!cco!uWj%$e zF1&TaArDQcpA(*pis+@HtgERHJ>q8DGH*aC!GeoVk1utjOq^T z;23_Nl6RqDk)R(}mF{S`#{07OTT0@=hVM?-L4vE|_E-s=RErk#e!}f|Gz!GnCP)=K zu5E$9L(gO#H3lsweCS(@i1^>05Qs zONN`;-I8KDyf8D&m-oue92ik-O!4;D65X=L40b+2?~`M+K97w`7#{9gtMvwPKohbe zZ>mwVU3bes3T{05xOW^c%}@HWSY9@^Vpu;mA7VM_z!YJAduX$t?()~omurb6`)g)_ z1W%R2Z|B|~*s*yDhgA+&eZnHd)k8S^0G0QiV)6p8x+JQ zp3zAQh1gwRIiBK9eFD}s?M@avwM4AM-fy7)LWg%kvR);W{cQ~*i!5pe){7;D{aBp`_0*eI4x z+U>`Zs$9^UW4o?^n&NIm)OlJI9MMZfuXzQK3$Ll~Rhz)_UgZilG-mE-F)AC$W9xswO3mLMIcxg`}k zdx&?Bb2I|O7JZ=+sJ9xh%Yz^kJ2uvKoh4&Ok~OG z`@N?XaF?@H!s}!)MzxqJCkQLPH?2?fzz0WOpTYy15+OjbhGX>HWv81B~? znsN8_bjjRpWPf+?Qo+Z;N*q6!9YvCUj1Lf_7`n){h!6bOFBQo@tVVR~$}2T7=RJAe zliUiH>(s205tmMXfSvj3jedM5I~h`#Z^Nn09+zd_prS!eqSMN^039CskfdO~w0UB* z(#q;~w-ZY{@ez4r&MeTr`(*lnSmai$6339sOV^rC`{%m4AxK0(VJfss&`jet*rQnJ z3IKt+#;}R`^kj55>7Dx$c^KoqEw{=gIWS&NHo8 zwO!`d$n`m;HQxGs-ogUmKK+(t=y&8-@7?RL7Zp#xdQKh$nr~0QjjTs^M`+NcQ!ncC zA(UEow7^A48>1)Xm$6vU@V?x;HE0AX%lP1WIci^Pvaj?#`shJGbk7w))j)G7BCRYW z{q&884@H7&?oEch0+$kp35*(ycH!2xP4yE?^`}S*$wN%2pc=hwi2PfZ7?4g^?I+p5|Eon9|HBR+IJ5PE)Ev62u0)YYet94(Y z*?vai4Y*jH8G3IeY5sKeR~l*)`D2M4?RW7g(1zg(AnV{+-#Y_H_SB-b&8}bPh?tro2Yo^EbKMKdOdTcO?MG<$iv{KbQx04C6i9L?*ZM1-&JH@ z-bS=h>*|wmV%Q^-Wo zPKbQHgYn3_<0cF(=;X_^;@$H83pR|uMFo`wYPZRpvD?bTGF>6aRm`{V_AqM53<~ET zZAy5Ez0n?1*wj|7G0~HFtGc-z_ZaVpRaX4gZ(Dl>PzFZRQaKzuT&Eg#F^VlL?c&&^ zGV$Ys{~FgV(uW*+=aV(FG*-Pds5-O0MP)(qsywo1B8O$tNyw+z0Nmx}pUTrxe_q}P zF4aJJW_O5RmLk^qaW_HGZfFhep{ln!cu>Q6n2Gkd5b^?@@1ywRvaWznc8G4OOEJ!k z(E>e#V=3$#(GHIzWop-UYPL7MlHO|aJg>D``z5^r`(#E)ZQ-+KfiGsJ9AwD~(|)Dn z6^MN$^CeR-vVf>W5%it?OFgMX8qH{KX1`IvvRit#jp81*MLo1MHE- zcpLSBn$0Iv!LUr!p5LBomw@SGor1XJA6q8)>j+?shs$C!r$kexoOBT1+}olqRGFXJZhwgE}1jNb!|G!S|eoN5V5wkUOj4 z71ke4bL73M=;k5u6+uduJLdikXIa)e;rmnRO%m4gDgiK|VK*NNpUyisj7{P9er{{1 z5b4<`Jwzhx^UV{vqeL_~3SIQ8bfrp0Xdnq%MuJDGUdinf361_U6{Fu)WhWz@NQRkt z1qR%BrW1lO2!6rs>4RgNyyN8qElGO4y&Vh!v=ashUSm{ROVNP$g zVCm-;GMbsS0oMAxKO~tnPHAvbjM8c9%<_npCK79Kd#L;dj#mFcULq4ubBAx-{f2OJ zU2Q6B%)Y9mp6&V&>ATHmtmu8JPUak4?sRp1Ejs7s>59bopwci^9dF~8rSfTZleXIL zhUPlJ0s;e^i4$MEAYa!rMi+~9r-YD3pBR{1%gS`%!vb4O?S{Wyq(eI#E@YrsJhWlb zMOgR@N<1NS(I2^U5`bphRP(3^jX-A<>ONC6h&U;F@&Pcp;cADfI@bQ&`#R*@)BcaFU3tqDbi;`&GZdf`^ zNh7w-Ob~U2P1_)@`Y+k);uch%Xov|X2vvWQ4UJJKjTi55j6RMy@~BszBw+&Gu=TQ zn6-yw2(tTj-1?#jCPDFFm?5juyrl7yXbTh9%X4xkfm-c=(i#Qf&A^CWKMlC}o|X}A zk|~rq(Lz2(y@9DoUcZ#3e!}vwREXX&H+Ai0yw%#4!-6dxvSxBq^}{^vOSisXL(4Bx zorqwcWaWy()phuNHnsB@F%QwOk_cPO15{rDMGYby)F2w(8NfyKEJRdG%1zuTiR?Z^ z<(9}ZZBn*hRa?r;2mY1Z+3Z?q*9+3=2Ij7G`D}}TlQ&wVV1A}U;{uI=kcrgA(J}8| zd`9o#EcG>$h)kMzn2LX@p|5|fe)i+(y~T^AjMXdPl``W2$CnE6>AB;li^a>x>7O#p zhE$PR$-rUG+vE8W;S;vJIB$_HRVGVUK_tr+;L{tvb|d>k<$E~XLe5Oy9XhY+G%Q}+ z?P&VYC`~^0Zp7iQ@ZAoR+VGn8a~tOq#LS!D*oNPWOG`T#i*V@H{JzPj<;w`0nGL#( zo^#k~$j}sY=k%%3ZL4gp1DEh?DtXlKgDwpOsoE6e&)2a$-NkD~~s)i&sQfxT17 zyhQRGc6#odWUGUCSTv*a&1(Ke-hGuF73JmzvrCb_G~Tye%_b;A3Rf z&>8EqEwL*Z*cUR5_1#hRA0O_6&boC}m}1T^n=9(~_c-yb?oVr%DZfK9iQDVsd87~U z)Z}(qJpGii`%Rm@%i^7C!YK_?%-5{&0Fb^x*MQW>niQ|Y*9p%$50fF*!FiatMg+~J zxWsqyDwI*McbBF_I*C$2d@+Y!N z5{3oARrK;V5}Uj?e@vh3RB7+-MihQmzCGlb%kj8*Q?g1o(MUTI6{;TBBmT@b-9nFE zOr1#hs8^s#M{igmKW~7vfYAQB1Xl>^LlstV~^sGBzufXDf;8Qnv-R(iJlEgJ z4*XOa)ddEWXBF4zB%DzF7p6lcxSQA$&`JZA9ZitGs9lB~%_EUoMjL0)LYtbrp>C*& z)u_w7R~<^|hDynuayeJAHXCGBO{jF^jBiL^t^znzuI#O&oAf&EImt_jH>=^)=Zg;x z?Q6!)f1D*ljB2QTQIf6`ZBYG<9$8)SrL_CmhAE&%%=MLGZIL0*DX3J;u*=7pyQ%pC zBe^UCdc>J?MkUWm1~%TK7ODS|-}(S@vqUxgtH#v4^*+A(NFr~$m8+k?Kx=Dbirdnu z&d@4ib3gpDUoy>dlfSDlH7trr-Ft~l$}6?hBKgA1Tx;p@)DO{m0fno&{cgXruqJ)( zo`ZMO|G8~VQ{2sn$k1$YR8s2isx781rpkeE8_?)J$RW0#t5ua8=0?}Jb?Fbf8pEJ2 zaWgzC`J8q8{nOQB238;{#h}1jhA5|mjfRPJ#5>GoLHFF;*K_H%+KRT6etP)wJa?0G z!q?khH{>y_GOHrX0^Zp_6?Hj;v*y3W7p8KGi)^dFA=IHm>E5x$27y|S*56(FbYmjA zXRm;|0yfQ)aOGeT2I)sd+uBPLR90Gs!i%bqdLb=OV}s`@&KG%d{moxaISM9yCL_$x zUhM6;bv^xeokwVC)@<82z&t!3>K0}jMws5zX!2Uq2O8jZXE&YvEuTrO^Am_#KX>h$ zvkDDJWa_G*hCZ}U-%U%@b;1~m!6Kcm8Ag^)M!FbedgaLVYSG3m-HB^~Rwjg{Cymh(D8GS(J1U$r@{u}5e%=N{=# zh1$UA;ZccIbahG8*3yZszdM!Y_F6to*LRXtr00t*nweiy|9Yr{FON-mURIm2hf3p( zjOQ!YFf86}kJ1esHtHUcNh38V%QsIgMJ!CmyNr9m7BTMame%&>ndPH4^g}HACHq1R z1-jzNQXG|j_Vk0rJZ1G2#t;|&CNu$(F%EkNJ7LXwu%FOCH>GG+X<2{1RQw~(r(`%E zE%*CX<&P-R2fqp@B!`%szDo})QhKA4p~B}cJ}>Mju8kII5<8vs@#WsS+hcbmq6?xH z2oe9Nh=_u%(z`!c6q@L=Mb#Ikc$LcQ*41zFgr0avRx`a*@?e2A;J7SZ>+XJt@cC}| zI}WgNG3Go%d=N21-&C=@w14ULvr(DdIe8a>8_DM_1vd4MvghH2%1-^Na5D9)aMOM9 zA#{*ktg67Fx%J)vchh$f%tbN9dpBJsY2gE^LVnIGpoD|P$+V4+Pd0R4KC+fA7Ti5& z(6_cVLVr*lxn&YLZS~yfAdPNI>pETG#|1ZWHPP-c7^ChTlVY6<^Bh|J@Lh`*G~A(} zWohK}_7&iS_?|w5Oxi6+R?)cxhe|Ksz&QEv)u0dtt#Jd*)f2u%)TSyT#Umcofn6Kq z&w{%o1L|`HZH=73S(v>Q+|*5p(-P;}!IbCkEyvmH#c<9FNVYBHB_naF#P4lg8SBwI zX>x69@pcjlP673L<@E1**?`# zS#xl6F2h%g;#XaURmTF8$v(wG23~y*6aFTp(Pi1Cczw--0ZE&|2BnPptfJ!GPn)}!RpJf4lkna4@}$;1ITj;1*VMDK z09~7$>9}kmjrjIdxS#GvWU-LeetNO+DL*7LbPRI2Tt8K+p;){eL8(k1s(M+1(I@Fe zBr=}npdMudQjhrnvO&`eQUe9%FaDz--K%F-eXx*Y_-sl7a%$sl0u~; zx3|MIB8JfuiTPu0X3Hqzni;6k{zxbc`&ICv&D*Z`KCGW{X#{u*aY@0ur@Qgo1` zo-WArB+X@}WWHPg3EQ!tk16FJj_I39ugwALz2VjI?o)hoDN$2hJHA^XxhOrp)U8+D z6g%G6H_r1MH@qRF?)LDYu!YDLsFRfyH0pwR5k#es3YRotlT!JqvJoSpsgi|ax#1;9 zYHr2A_Izu&am|5uYO$cMcj~5`oUV63Dx5!nZ}Hds)Xr&onf2V>WiZwzh)=qGb&;f3 z-gizfM$%2ja)RI3%(X$`f&0qi!AGxojc+%O8!B2@;@`8)mj3RlD@*LY<#BMZY!i7g?Qg|` z*e$zTOsfZ8CG#d-NE=b-_PN-U4S)R$n(Uj!-67ic-OG%jGUeCuC*ytwcti~kk-GAP z<5Ami2@tPE(GvO$xV@FSDAGf6fZusTdYjUa@WJfc;#rh}4GfdF$p-lOhv?N?>s@42gT*6O+!y)Xe+^|0?>lC$AIrjH1E)=S6P>dicw?p?ECiS5JJ|jr zt!gipHHvXp;W9v4|lAR%|h8<*I z&((jMP|&SiGOVy#R4mXwtre3{A$gN+@)@1<6j#nj=hcAZTE!H8#uqcS${FPS+OEh&rR=$3M)kf$xKJu|fe11D#ZaV@4U&-I zt}_@KBx@mh+xIM?qOq=G;mg=F4<1p9bmP`>?crAKuB`RAgO;Fr=f_YD;W;~q?*c1Y zjx|Y2FKV`2itZB}1`W7%UL}04?yw-b%1F6_f;uk1G>J_36B%iZjhr8c=gUMFWNu7} zmB|}9A5L}IKE7;}zO9{^ssuNuL#(ES`W$GUD56U*{H#N@QA@a4y=&tA%S4zP2b#~A z_r==6T$dETaZgJoaW2k_)O_FKq;$&AZ$OG-i?eY zSjag4<%cvDy75TvW1rv4@tmy32u|z>XKnxPJnBTQVKJm=SHMTB=Y8G8*qgkRNf zBbE$f>-j#F)t7e44roEv>oy)>QgKx=DCo&7h83lal-Y|}V>vzh359Qal*$`&8P#ZMg`?=Fzu#_(^)*k2ybOw5O|~^FDVI zur1gV)?ipSDpU8KuxzrdhYF~O`%jMv4{&a6Mw_X2IUL_5orvd+bxCCBbzqZX=j8rT z?5qV})6=|ot19Edzj*~<7=3z^VK^RPIy&pq^{9}RlMJnS;y(VlAu*tZ)@7N)=|H4< zk+SHPq`#-sT#!dpof*$-0W}+=)njE#CBci~$zd)`d%ud6U*qW_bln+spl%&5F$i_O z%sa6(s$37+kSHBIw@DY%zG(fKv{(w7*4~%wKT2!y#oDArsBzXQEti9?#xWU}A3!T_ z@`$lF!&5)EFP&tB@@BWQ4=fd|3r=L#J4+{e9BREj6fkBW1@wKg z(t@P~`L!(O=6Ywbl&5v=nL2Y|AC1$vhiJZ`wf;R^UI@`sd!e@vUfe?*EO*OpXp1U~ zGg>Xe!r7Xig-=!&zvvJ$n;Q-(Qe3ihq*Umco}tl%x(_%N+-Kgmz)T&O{M_kbqmRv& zjpOe5G2$mDF*|)7WIo`PoRT5VC!Gyl71Gj=EGk6`t~Y;@p39flH^^A_yaHkr)!%sQ zR~R|Iy*3+W!Y-&~h)kKFjJKTHvYOW_r)KJtjyKH8MwsH*vCaI@3jZE0ePa$Bwv37j z+%QshdZq|fO3x~PXjG`Dpx&+>Q(xgfZ6iFK@cUxcF;UJgaa+KBc5mV=MRwJ7hA$<} zT&#m*P`~FJBu&|jSKx@BUe-#X(izShqzZWs0R^otDSVMlP|cxG?X)+aAxKCSoN|+{ z(r|H43*7SC-Q-IvkYY*HPnz>Pa+)=(xB`aGv8_?Kf8spCyGMdlVZXMmoD-3uB=?>n zZw4c?dCEBwjiH}esf=0?e}$mJ3ZZ4X{X5v>`lnfXn_~PZ*^2VmXX5Kg_xAUW`J0-Y zBV~@9Q!FJZxnA!*B!^v>tZ846I4x}pJ%QPdk zMYmZiVXIFOis(a3cDHOg6&LnbIuo`Uit**1YE?Hw_D3iYq-{de6^j~w+VUN3Z)D9-(!0SCCBH1U~X?w08CW-=!7ndHhrRz4*>?9%rP2x^_b z(EIuReVgkFoZK7U6Dz0yr|)j=Ne&1WO>Z$DoYp)#@p|=ASgguA$J}pCzw^S}0Jo4$ zt4UM?u8Z>Cj8C1rZ~@PO3yzHu-|6<~e5na*97<(KUS?m`JBTad zMknsCrXl>{!n^y|+O5_uDV|Wm7Ny!j7Sl<@gdF z9sl9!TWlxt`;qA>Czq)O)2!bcw`)5MTQ(+R_RH1hty;v%V+14Tf)~Z z{1Oa537P9pY3hZ%Jv-{MzSVS~8x1X2iF`9N*#49)%i{Y}i&uJTO#!3S{ll!n6oT|S zPndhzE`+-_BtO~9RXN3cfCp&OQVK&hTokl^(fo*3WOJ+-rssd&tI4QJZ{KR1?SV41 zp>r!}IF6g%F~Y5;oT)zFKMCI7X}{QNO7Ax{=t#1@42wXVgK|C#`h{S$tE!4R0xl}? z^gf*VT>*PJ9s4bx>C%@2Z1zD?m$0G({KPy|z|0ZBeV^mI!*s^@|Rhgkc}5ipdkhLU-Q&fBA&2}de+7VD}&rpIwC zL_!AIjT_F_#Z!j5i}?(#%0tY2`E{qf=qmz^D@es$Ott5P^th4TCQLTir3~MX>&I2Q(FfBJWG?+H{Ymbb(|yQu?Fdq<<&MsR?O&V2 zs2>w@0wR9=+*ZsBAK(-1Wq0Ajh58ZFfmxk_vACgZB`2j&Acmq?Tc)d|13H0Q{;{-1 zfA)^6zJ$*}4)D)`U6d!IbzLn*7dlD);Q{Wd5XLpcQ!`f&F@~zYD%P@+$_?INF zr^3$zHDnd3J4qVC*>X;>2+-)LMIJ!+Spdj)ed_wAu%_+K2W`4o;|GOC$uh=FLO)m2 zo{=y;jxaZ_gT#3y2S5@NlrJZabj3%FSZYmY0zFoq9< z*gI}8A9Ipx^T*XQCB5TWVgXm$4BdMNTPC*(nh`RK`;epbYlDj+Q8v}xX1-akkIc~N znyrt}nWz)*aAcn@y{8mwYMxN)ezb}1h%OUU%n4eQ)H2xIO(iJM*M`CsWwzTgsslm< zcSxS3{aDkT8F$;^q&;BlwQ@55=8jPcg3r&|4DLb8bc+my*~DY=8Dz*e%@$(p57*5e zz68B}B6}9$@D-!p=Xl2cu*FnFN~rmZ2K|ArkleS5=+vOR>S8euC;3dX3zwRBrJn-> z7YJJ$x$@Yq7RA@PWm-mdX9YrT{DGQJ)|Yb^T1vImS}!v_up*(-=!})B1RKh5+CUFv zZWRhwGd|#mhNCCCZeZ@CqADAThY&hbepMuu#jxu|b8cN(719$HF~9pe9#lSQ%7np! z9%J&Da~)*K5_1(eqq_`4MAUM4`4J-gLSB)(Im^5Y9%TW#R_{DW4>-J3?C!J`v%VcS zN0fFk#i+=*Lnop%l2?i# zBxl??)iY&w9M!vyWq_G)M3t+RInN-zHz7~;#$pccQ2MiyQ)($GN$r%*>pWL5OCA=d z%37CgsVRsWzO$2>m78^rX->VKtX~$n&UogPFna zX*a|x;h~0%P~WQO?{&En)w?~$`MU8Aat*qSdHcBPRr+Pb3Pwjn}9U@#LXLeTvij$y~Y~|$S@4eIkhCQ=jA;KT0~S`%_Fw2J5&@j=PT2LTkNKHY0kK1x?RX-PdN9aXxih%3q7PVzG^~c*vuHIfj`&)7otw}PIsM-cu(FJQ^hI&Y2{Y`-;vINd4Wg=9R zneEMYT6q^vH|*@yuFXNxM2I8t zu;a!cypi%wFR)DLyDBKX=sm7Pfhku>N@ZdCcRgfplzJE5fc^aLe8|dr2XA(5`#8Lc z6dt9uZsaa#*P7yo=P*COSqk8}$Ysa&e4 znD?+6U8BO1d41qy!&RIid?H+#9a4n zg+=w6L7MUl&S>AW>e*oJP=_FoX>rYplOG*BZVe#muccx3Nhry=jRwn(nem0Uq3SUA zMz0O4Jy>~O8_$orh@f`}V!N;lPHUx|Q=b$5)??7s#J8$*K%OGUM`cV=2X6h-ntNPw zIOP81`}CPd<5F3yZrVB>jX4xPDt-TfFN<0cmxmggF%0PAJ^Dz?l}sK8VxuWyvrymp}_xp08*A?`O&lsS}%0o@m) zMlvC9W2lVT#NQhF3F!${vAq5Gf?Dp-O1~)EOU^z+^pixIePlSY^ri2I(n!nq6Oq~G z$;ovS??Ufb91d6=4oYVS#DAC?jgv&oiJxp=K5KyKk^K**&ik#YE$Y^s!%>tXDou(a zBE2^$0#Ol=Ac^!&6r@XUq2?TIf>#Dt5ujUV*Y{@*du2SbX6kEt4*6(&ZMu8P{#|pbE<~vCp z>1yiJ$>j7-QE%76@7+GQ_%sfW&pNLBTS_Fhdm>`?<|wR&sDxq?Dt0gHJ4*Eh0xBRi zOFKj70P5%`YYU2d7ZG<)F;hk!Mn{>L`&}Slq`ar*j@@@{-f4~-EQm-8_pj0!l^RL& z5lL+yJZ)!ono-Z~db41~I7RDU@})dH9Uav?7N<~mmY_}Ac90g*2``D}qUw?DB($NE ze6ZCQUQ&Dple-%luIBN2^&23d7(zm?k^jx7_mS5GOI7~~f4X8m!f*4x?F)Yn?N2s^ z#U>B|Gy0Zfc24gFHwcTm!53(ou%od5*jf`6H%0un)SjcFPSD5iXD}zaF^buITSbuT zC~QBUOXQA&=p?S?-MVLpdHV_6v90>F_n?ry`X~_({PlS}adQ=#rztOO-d;oVDW<9KXH3DNsT)^L=iQP1l=x4 z7wb`6ZYn>}>yguwc2(7zaa&p0U5WS*W=yUHuwt)cDA{q!fyX7&dQp)*M01)TraMkx zq`&>oZuJXqQ^V_?5|@f(hvZU9z<2IHbnKwe|jidqSfS}-tYkJ?%f)n zP&}Av;bmBFrs%HrNP^N^FS(4iB~*pk-#Slr?nYLB6FPzAQLnEARIxrHs&{&^B@9Xs zyg!GT%sYx7IonPTk*o&BblJKt|USZ*t z4=rtGTxEw4zkdQvzh~0q!9D4FoH|U>grS3W~Q)JTRhCZ92bX7^-{X+j$G2oE(0$As3 zg!}LMdomO$;)^gj;?9FT9MSgM7-ppg>yqnHg5lLG+VcMFmh#RCxs3%(%yefZ>TT3TZqd*nu86qFrC*(#~@?Z4in{pfHu{2u9beM3I4`akr7;OhtV*Tx-Q2YCjZ zR?cTIM!#X~ULaf~bZJVyGKGfzB@^<>a7a!rBmIp~2_xrZzmF^7?E>7OC(i__>U**1 z_t`p^LB|@iG^COChb~L+#ND#~Frm7&pH}i{a-DWALC8vN4+MnAYqL!vDQk~&DL?Mm z(LZ$==+8eW6>xY7mHE#TMf7B00|K14msli^_jo(us8+RDF$-+7f;l&@yH-2COGiUTLQm-F8FA&zkLM-J!y#54$_P0E}QI&Bq z-F1)MvhucN{f#V5WhS6LmyWD4bpC4Qo6BYz__h!Jvc^ErZv5k`~bm&FgW1hX=6x8Jljnzr4cr-hx z*Vz|vP0o6Ai|e|t(XuYH@+&y(FP{-6eZii~PzE4mMrAgsb2{C-@k8hsuF11V$~hM6 zC2qH_hy?nkEMGiLS8r=?D7yO1bamJAKwQbLx_I_ndf2}ys{`)qQz$ddL292I$!Diw zP9pMX)8&H={cP!$Ue(WezW*=PYsPmn&(j$~%Cau{wDyG(@c)P^iI7^v-U zFmi0#8pF*D{7u%UJ;s+-x2n2F$kWT+c}X-UJ4YB3b6?VELtKTK_I%5~;(W4_v4Y83 zH?lF>-qSZH;!}UrsA}&BMWLOYJ%su^?j6q#%@s{lR}AY}OLsT6wRL*9p3WfW)(*3V zVH{yz=R8oVGVG2!kJNF=gCv1ztOC-Fm2mCvrdyIhvqCi^-XCjP67(~g>!0i?bomZJ zY(K8HJy`Y7mBQJh#(dK*5xuo?E_pGOi5VEe~@>?@if85fUZz8Fa93 z(7&hBIrwAE@Mbos#^NUUfQaK=FP94e%mUOMUr@!_O5!K7#(UkK@ zTxFR&z_}N1{`}&^C@q!!!+G#Yz4?)(5c7cA7ZMhXgSxrNrmi1TYyx>a^+dKeM2uRw z^}204iyey1wTI5UnAfqUY4)5VtjwO^4+&8PBGSD;MmRF~83`fQqrX_#VyCp6ju^NS zS`b@$0i*n(JAbiZcZ0(Ez>3mhLl#L=S1A7d%Jq2EwRtJ=La%I-GlxGaOcixqMyl2| zbE|9m%>PrrcBbcZqXm7w>k18pk;}XH@PiQ|>bTCzyIM?kBox41i@`t)%x0C~9Wc>` z;U4!1+t4x48S^o`q)))UA%vYr7k~?i-g{S~E2@5B!$gN;#M}6{+=A7=XsgSo^Z2H25#a0#@34%ChHuGh5t=x$bzc44q$7KO-zHeMxWE`Rp zyRS;nh>6?jIfiR_c{$i(SdO}B!6d=voIiI0>pE4wP4drg_lbm`W0iykTo#PRL!27tK4ZHqR`2{M+vWg{E{PBzx`$X~XSl}wwGy8&O8|i2+ ztl^4_P^SKDze_Vh!67{NZT-5eAaUyEaEiXk#7i&AExeuGK4(~dnuTq0B1rtzhssk)MwN5G?e zOC9f)Ixz`Xn)Hv<KuQRxNB4Wqu3j z{-WkwK#=anJS*-#Oq^nTtVMZt`2}klM1)XOrfuV0rB}c#7v`gfDptqK^P+VmukQ;w z3LN!6`a2l)Fb`&)3@!qTOU!g#@LmfSnk7ZLB6S#LtMcmIEw8f4x$tn-{teRrtWI&E za#PYP^PsVqztPhs8Jm@+Gk}=mltXbf)-RY@@C@spiT`a#{-$}cE?oZ5MfOmP2>~OW z5C+OPu1#nXfVcRqc7%@Y@?wzWG`CV|YsSVyu2FjS7uQ4-5Sf(%<1$h+ZT%YoZX)r| zQ{O;(3t#e;e-I}Xfb(AaNrKNXk-g(M@;wmhO*x(;WYR&hP!$cV^)kBiE~o})Uc9=E zWUQUk7VS5D5LBNseKuX0f3)FVD0~69jMTgnF}?JUzf96njq?X{ym?os-ovpAKN8No zHOq?Rlux|m4a>q5L#*cw2&`8hRgTYYg-Cv~nYWzV$O@D}Zdlp2+=u*-hr#!*Lx;Zq zvXfnAwo!oq?3QE*H`oWoD{v3t`EP6%h3~l4mYephD%RX{v)C2_co;LOv%Hf}W?<0) zU3q4dkhn3_W9SB)wQ_eA!8#Sa=rx`4Zf#$rNcJ zrMO1{?mFcVLUrEo(RV=Dckqo>Q@^Y&7i~+@FzB9&^N!EG+?KhN_O3nnT6hQL?DM;W zhdpoaH1+=qGgS!Rc&-ZFInd8yUzre#j)v0C*jSqG(Zyw$C5=iXh^R0eKwT7uUT`1?QRA)_4D<5!r=&^F0SIyM@R>GNv;YC!$FwI)1+zV#iu&QN2Zd!#x zv-DbPnk4w9&XQvCLmdNLh(5;Z=A7d?KPr5GbObqgz>1fi_a8!%_=EuN;LN%k_m8EG z^=F&2g{(flGFtUbFA9DpcT${Im*bN~3JeD#B&CHjUI017fca`4-7P>FFlUv4n#8ZC z4K?Fv;x>P+Q+fG?J|%m3B(m)mOK?Ph?W3WhDE0U-Fo7X?@#lQ7%iH+7TrV^Bc30;~ z9n1s1tIy@-Bl->-iNFhRk2(M!sAo(oW8Y5VrUnJ{m%wofE}`m@;s}s&%CVWb5j3Y# ziSGfq@tsx;T-pxAGq7ovCv*qko`7Oh3>xE`S_^A%6|(~w*y_lyfdE{47@XJNt^j82 z6+D3Mx7@YE5k{9xwdX8pZNVOR{&(2)Ho~}_ZSBeJszA-RNs$aJN8Hk;F+ZyFT0}Y} zUJZP!{q}S5AYE{8A}z?%RAfjw@W{)99aiiOb%UxaF-s}!8X_6phX*VlFYX#)8@48P zPDQ*<;!D@hdm9W-cea-9U<}-mu&sfE^W?&AvbEr(L$BfK{suz)$ zpGkt3x4c~CLSXsPxo+IU#t(~%`X0}AnJ(3i+AQ=J1aJ9uD(^q?8|rP7l4R#WN5(ko z(qW#VfrbOVDT@yIFB%*{buOkjv#b__rtba8K%2xGstI@tpc7yw!Z^+)ZUlx#@jAB!70pvP4^_7!S;QyPhy`JE7~%?I=gp z3B(=oUoN8kp2eyH6+1E|ghYgcH^c(YM3D9N&=G4ezmc&H?B4~6`Hk!89Y~utoobPg z-Ai+4fMe5@mLr3EqG^6?ZF?X=5A^h)rt_136!tA-&F@PTc?~tP#*5z}P{+|`qDwhlzx3%Voz(fBkE&U+LuouL~tVPy4tReu|_V2kEhyDsF{W`6rz`&irI3MYWFhP39O@P@7rfM7U*a44DT@%a5NW z%NOTu+S~3)+A2L-jmcjHv8|^?j6PFTk>A#&XS1^?^8^L0L)|j7s!+o7NOT@ywc=hC zXwNJ)mZlyQ9*mzxn4Z-wmTRwu`bRWuP^|ij!mJx;?rj7}md=#O^Z|4h*;ps70= zA*NDw4WKqJr0tQF>y|6SNQ6NBblYv{2#}JpoW0nkRVvlLeFcs7ECy^?g|E0%YxE|G zOYEQOeN^XKIX>pX8vv(CSUe;&leBxrW&948yN!ZsB9OYpKVeU1p~5E z>;w3q=0N#I;`jOAvt9R@hBWcMFJ{*V>$7%ktksRXhLd^PV`}DeIX*gZ>|YoKrnJUX zv@sqEU8sEv@>mE1_Vu{E3Pbz$lCU^>Yw4~D+!S~r2nnb$OQSgR+vZH7g!6N%NQKD( z?aA$&FgGdp<-$(bolVjsL* z65CvxIoFN8$K#-`GeilBk+*5T9zWtYQmK1`96&991~Gxh_kv8THF>jbW(qp$}$F`NMOvk9IN=VE+oHMVw%t*id`$D@*u?Bd- zl%bpBMxEyREUkU55ePBw91Y5whreANc)Kuem`rO&BA}OQL=;c3U4h zO`)lxfFD>UD#2DN9-q#zmhj(RJ-k zrh#z}>)*|%q0is>hZ@L5mJ{9;>Buv4%0+CnC9obkkj7HT?G5Cz6Q8cN>d4f(3MxvU zWqQd#@w5T!MZe`;_^j}%>`u6&kDW97E-`7uR!M2V)BK3h!dluLyx<)+Yx~qUqfMCF z#s3ZYeI$nFL@6QwqO-UjX)=zAO#GO@h7-#_m2Jw2+CB!Kv!9*M8u*}=K1+31KQVi< z%gOob$BYlxdrd}?)6>snVL*(dnx*EA5}|XN>Akc{iO4^1=Q9R8_ zQWYjjLfe0@A9|41qZN|nhM?kpMYx%88wY5mFabEg{UHiA<2}|nF-XOjl_=aS(latC zMhpq@c!Z|XzDVlzzsT_8`?f=P*J%LoQsO7ebXRD?y8L~bf|yqo zWe*Q*0<1p&8tcN#{(9MPWv4*!9Kgy`sgM`mP=o6!xfk-PqZ2;Op`v@HP5JPLj^SBE zR~ugx=3mX5v#7=fmIbh}lY$aP8MG?w9iy;Xtqc`tIV zXF$$%lqGS+7=%^bCZucy37iW=jf3200ny7BTm<0ouZjr6C_P~!&t#R7C$&GC$ISN- zRr!Om)C(g8@Fyrq3^1|22UIQoo4Oz&qyQn%0*FFP@#u4%^IXNCk(-(0C%4L=>ZvLZX?% zEi0Q^*%>pNEqifWTa3ew_>_S)c>btvBF{mlu&$jV<8{GNPJqOV)Ki>Eunx`ZW0enB zoRKbt^y1`wRLTHzx>#!~~e{QcWMz97R?n4)BBO{y$5C)e^3;@L?& zK;SfZ=8a%n$ivfo;@!;37nh;2ZLxV;Ia7%LI!TawYmKOmky%T* zz$CQ^L_$=#Nhy5b{Cu*!k5}9XXz;3LEzyLqJK`lvdW4J)rt(S+QH(6FhLKFl#^8xL zn9nAiP6{YsR9Szr#H|tlG`GJif~u%kp{#5bvmQ(+LXSRwa+iHU zyq{ZM&BVLcp^H`l*1(g7rN9X1R2`+pb6zDO z7n4CZ;W}_?=IuvqnBlcsRe{KK_~+b#(r^~ zuoSB)Q^U2$LoRubf(BVOERvgQCeVvlbFP2w`e|#`A~l5WlHxla?@H5p0E{~#`fzGx zl6ACmNxNR!<^u{9S4E_IjIm!YlZEq8O`YC8`D*ET8NdM7ekHMCx%@{ZU%yj*|Ipbl z#YG5SMg!hqIH|*b=-BGS@FequfFqJHD%iJ^MN`Us@OGFAdBr>YD?!3N90qQxA6MeO zH6YMdAG5#uhwfXv`RT&)$W14^tCa2>N@y1)yH|Lqs{DTUR4Eb6%Ixn{$U^?d^*p2s zsV~<#iHPdbv+W6R9Yb3|3|AGv8FgdS!s51&!-YNm4c>0eTcn0$e~CS2=m@S^CLXJS z(vqq#`s#ibP+4ALi<95ZQT6Z~9e;<~uQEvN+fOwiw2xLyi}fF1S;A^m2S~w{wjZK4 z2(lIz8tP^|b!zcri5sQ~3C78(4HD_$({Puc7had}_T`UucP7_zdkSk9J`_{J3Ay^| z6Fcgx1c|M!lCDtivC`hV>x+(868T7T}f6S@IU5yti*R+Ao8(39BWu&qMSZ8++!Y6uz z&}G2w^q*J<=hb&y%sHm>@6Um=S5uWj7sRdSwB>a$@-H?MF335gUH7zph&2v8qhnKO zQJfFtn+{CKv0FKWwV(z70l!ZnGP_Nzci!?nPxrm>7mQ!^&7@~@yYmC_b{6qC^o6uz zNcu$4p7vwa=VvKGAfNt^zXY4}zu)xP`3U1%=fD?&%Oc!Ysj#d?*aJud_}{$<=7?z+ zyTj<$wy_5-?cK4q0N00;KnqH!YyYE`L_3i!SM54aQ%6rD*so~Qx3 zt#8j{Iwn!S`J)0@WWZ#RIAIr=x^R%bgVJ#BUG#fiCT_uo%xm}w%xwpD*>cRD&6OTi z1CaV)BQA+Nxt{HGC(%j1;1M)n10Vu~rh-{WZIg1Tj~mHQ&sR4wM_ z?<_K+I};6uSi7l(4@zsA(*Tcp_5wAZGPzfMx?vE!+~=1#RxsDU-EYW^R-?v9s>8zg zuzOc)inu5IGi*#P&LyQd48>H2>s))-XAKVO97SC6vP+~@_^wK@&$fyytblB=lMkC* zaoM&=u{!p#kha|3{d4N|VA8&=ao5tV2pPAc-IXzqucVkXnC~>3z7N`MyBYHVLu}3- z$yNWv`vRlv`6+4Y_+2U&3G>%}uz8QOjdt8xxuhbebu8L&GOx_OigimhI=~3-=~t+v zGTDai(`zUqV|k+kB9zTaV)%`qzn|_(oLNr_7bI!qgd*FLTn?uPFaM#20^SuyX0_ME_LQo7;PqA6 zzT2s_v`r~~E{gH0{V?wj@VwjC{cFYxF`vQhIv+1n7 zWi!WgCl$`zv*FuyD*JP}v!YGLb-S3sEKq)+D%n3HOvw$rGoA_|)Df4^?aOxSKNi_Y zC-FzdWt(jrdc_m!3SKvg0=ygrc#tzIIWHVD`)8giSIuE%j$7U|azxmA--$H|5K7P-$@Kv)TkZ<&F*Q*Vomh1kzAcj}5%L5$WduQg@ejZWEbqtU4nZZgEr3NL4 z-ST1iM9p@Yp$&qn3xUsddQ=BuU%nsWJG9q-(%uqoxvg}@oKbk8Oq~5gH}&JVGa(c+ z8n`>{P6b4KH=6L@GO+5|0<}kbO34U7oj$ab-zbBMZhDV4=l5@3>yco#V`WY0H1D)W zmHi6S7STaJY7_03Fc~+?v&KGbT_M6f2Zzz3W=J(tE=3V8ZjqUd)v_g6<9=Z@;O5cN z42IyQ8!9xk7pc@FkYH11A}>WveLLe-Zdv-eyyEvTZumJbvf;p^-`-mJJ!Pw#pY`Eo zJw&D91L8Wt*Cs4W9HZCjGFd1i;cJGpIf0eU9 zx3f;`lH%4G;meuE3A4l;P1<}dGFUU4xHQ+$Qy`g?v|3mHiLBqvBQ^Hrt*m}IH1y@D zlTeo2X|u;de^N2vMrk*F2KD{fgH@9aa*VO=Ee4)b@O20B4Jq9dXzhOg?Ut~4?8vPT z@gaKU2=^h~bKc)#>7(U@$}0r1cCR#&XK+g7su}V_(#tFc&bhVKHH*Zz#-JVHw7^1{ zLp{ibDz!^Wapy9a3WL%j7gy-m|2oa3ndl!+M({i(&84S2)mE?9*^{N~cW1I!&Jdq#~5#{l&ni z^c&GB%V##XGMAwZ@qQJ}`C%R}?MyqdO6n|<#1A#fPyf%7(rLJZg%9x9uACK#&lNlS%n8Mk z@uT2US^HE)*IVhuBalv2T_!?J2nShiwFsoR8E!fO&bnnQ6L@pYX7uYyP5`7WO@A@S znbMNy!$~jIZB+E5TyG+_AyH$md@OK1FSvC#bPJe14XB|C6^~|-w3e0DdzN_I+LV}oBXzv`%d&Jc1gSVr!*W4}Clb{;EIbihY#B4wKTDvQ_ zuaOv!`2I^Nhgdytr!3Yvox!&m9Fk-cXbLWnO@6$&bFOa2nPffM-2vhd^D{y-XhNS{ zB5~66u^+Od_L*B$zdO!Q6Yi=Q4@Z3Y-BsK8qhv zNnm17V`L|qWs2uXiGgUMhRkGPY+>z5hgZBN>*R$i9(;GBfyXPxKQ!OHo5u_RICg5q z=kiJfuQz(Q>o&h_sf)fn3!U0k${hA%Px4SKO*HT7c2v0#g1*_pzeQTP<#TuVjiJR9 z;oEDiGmlpC>r$JI;yuM73w$C(-B@)G+-dC1l`wE5Dyr`rho9u$m89|`$#LOMJZchU zWtnMfTSf_SeX}JL7bO&1zPTsm%2?7P9S^Y0H-voPI9yN8ldkTF3u-H6q?<|=kr;oSj^t%sD_7K zeBbXCuKn01?TVpp4&SeLZAs!8wyOK;#waT}LyW@tud^c&k@*6>3-Br=kKaY$=&sJS z-l~z)trRVqDLJZr4hd|!jBj7Y%0h=9PT@&GJs1v(LT}7t_t3{o8d^^%GfwTS7nWWe zg9#ip8*0uewP>E*9ny9$5w#iZGYZ%FWqZG<6Wu zP)w-5K(1P3W7CpLr|ZCu30<#BCrs=S`h0EWR?2}1QF6E7s%|UkR@Ssm_NN#9{hQzU zt{P{&R+AMJbWfCD-oK{4*6s^%q}BrdO#QzGSCpPCNM*WmuBulF)qiqXjFm$6U1FAf z7-BW=54?`{TqPkEeo()YnG`u|Y}BcDrkpIa2joi%9ZxCxlE~(IYOsS*I2A)Sj;RihK=b%mw9{u2QhEjv>gIEncm-T z)}+ziBZH`8y~hcZE5&W?!F)@%sCR4cF_8zIo;kOs_RlI5QIewKQ&pz@Q)+B%8=rmL zwBH?F%Or?tN3lLaUrzFSy2Z1&jb;;Lf|3UJxY83>*9dkk`JfraN0EMw*7Iw*Tv zE4DN=$W4jcHu#8IyR&~Ve?HdkC%Ss^X1Va%#gm_2VKPJ*%kMTx(k`6+qn*nvHQxjE z3(WV!;o}`oLu|dv%t!3Yl)56{oq}B8dL6p6XiMaPJiu$ z&%_t_H6dnW;GO8=5^6nB(^YTamSN-fQ<@^ns6p;sF5F=u6vpu1*5rW9gUi9o8rFK` zj7;R4pc3~G)8iEMoMtp)b1Ds)j=7uBQ#*CLLvnQfsbozN?yGqpDaJB;RgwHl-CydO zeUZ4dv^-LDIFD%d%FVnPMZ?GBV0jGPKr&gmU3mu&N66fE4jCZ7a^owKn(}!Y!x8nZVv`v=qcy8W=Omu_$DPn zTeo#w#)F_%S67w&_CKZ8tClAk<+%y&rB;j20+l8L|ImFQ9ZQIza^Aq|U5WQBnN3`s zK7OB!mJC?$X*k+B7_C^~W18Qp54d@*O_FAri&PRMxUY z_cK9$zE`GOcL_IzFmh)#t;MUpsd|-Qm>aFyS?u<-*Gj%nw}diH5ZN9f+NwdK+HXtm zDqg}~j$IfyTxM3DJ!(O22C=fV*4N=ti$ri^`=@s-#rsb_ZvHJS<{V(}Cyr8l9JuW%`g>WKp7ld>MA>1!K3F6bto923d9y(#aT zopIrQIB#f>ZEQCU=t^kS*KX=bA!q<}t5YqcZlr}I!HR8J!sgtrjyh%DiH`C?AGWxHd2L3|udjeGmPf@FO7S^L@;$svBxQ_uEpJKsCh6)Oh^jG)V^3F7 ziU%n<^{!b)I8dJJ$ec0C3_*)2x2inb5FN;Q)oQK3ux_^rgirEUw0~=O@85ovI=IB@ zFuqq2Ac46(J3^ES-0j?zD5V`(SY5H^bB@vIVhfCau5j&`G+YQc;1DA;utSX|!KI2a zNy7Tu?nW5(05PY}W$8$6j8}5R^vv+m6&no^FpJS6vwW#{yD821GWOqZDRz3DzG$vE zl&Iq6+2S8MiTbf98`ru;&6j5Ejv8LGFz4En?};~N|9_r5(k zePdOjQAy7x6cp7vX7ekAT$5OVbeTwW=63}dmFyyRPiHD2V1*8|&f$If(Y&hnB+jts*Lt6qzA-~G`7#grM z$1T?lbHs@LIl>ttQ4RYi^iH4ia^<^8$zBXG<;>d9HycB=NZhP(S{L2~qlk~AYFzy~ zk(OSh%-zACvl>wLMvg;%8+h!SxCZBT?K9OsN#6@Mp{jT`Z$XPus`>eMO>8o8 znzqx(498snj!*E8;m2c_?YuA41@V)=N&LMNwSmb@cb$$8^rh$T*G&`j2LxE3Sh(G? zp82ARd;H%pOBnL~Or7R6^4#@Uw3?!<<(ddrYCqa^z>WJ-%>sK@?Y3`89wO(>w_oDk za|IO>Y*{Tb!wU1tLN9IDy#@d@q?u2|dHt~-P#@70^6QL&u(W+yOqt$MTaSruOCTgA zA3UwqMY#Klh|An!Pq3cq&1@hGEM#!Wfl6}$$gnqOYAf?WM|tP58Zr9az$9I>_(WGn z?p2r4#_*7v(WK9NK4XZ_ui_01Bu)8V3V?2&UPx>Dqd|yu8m=fkoXd1&_SAjo033S} zPGF_q1mhw6GfU6w-+jyWd{qxe$~3 z#EPp5*UhgLT~~jpTJ=kGDN`OL3iRn+M);%bzwK6^*p`{DdGh;Zu7`a}l<1rMa+qYX zXpCHyk`b+J_UoBFu-(7B?i%C{^I%y`C)-*LN4{{5?)vm1>aBeB$~{)W(%;@t%%rG! zQ9Q1*ji*jsoAF!Xh8aRgE#Ur=e7Ym&_~=f!6wN3fg*OuSPECJXiQw{|_P0Q1!9xR5 z&n4=n7u(L$eF`3vh6+Dm0YO(fEIi*4Gmm=?JgsJ-4o(6swQLVQuY-JJ1=n7guTd~G z|7bSoL6Q^7w21L@p0rT!B8@!eIcMu?n$lv%V<&B(B*f{xcE<`@p-z+#d#XBKXwffD z#iDKX0#Es!VI6$_q1J^w7f#a!SCy?G@52O71mqF zXm(OMfH&7#52j33=)z{#%mIzlJifaB12EsXPyNj<|i z6bVFN4(bC+hlbzaAtQSVcuDRti>^5;4hQp{N*mrwEMpiRXvGo-Q1jAlJZ$7j+HxM= zSbnhV={SOcN72EW%bGQ|oFcG1a^*tj5<`9HR>&LiXfrFQnPYXf($ul0ep0GpHL#k5 zjF!xvI~VDg1+B$>{*byc8@yhyZq(e0#T@LTZBDvgo^W*A7$+165uCDc;wFwddAabc z)kD6*NqMYzAksi@nC69<%D2(B%3vjxcaLzX#3rf4%8wju_pOC#XV-C00AF>iLPddK zrYy%_mLUBrS<4fJ6QrQ@RaG!=GRm6U$}eSuBPlvF%aL}Y#MC!S3rj5)bbfw?K1(Ya zD_|u0<^!F{^H+4=xi_DPaGaPF@faql`6LQlo4pkelrv09)q9sZ1IxZRQ5`N`H7Z7^ z4ug!+^H;?*tUY$;XjM9AguK<3n)wbraU9>(T0dF4$Ei=aD{ml#h<#O;y7-vIiKYb^ zxcGQCWGd)n)$dzZq(1x^9RD!sA*Ms6C+1#oiC0Xw5kifFmVGzNcM&rz*X7WD=D*o# zw}LW5ijAW77LJf>#CJ z%@`R6-*!;@l%X;*)9jOd$wTdf@ld&79Zxj>(OX_hy2nLokH-crZ-q)J^cLKm^4Ou- zlWVzLcyv?zHI{8HpQ6L_oip{71@)(17fcW4zljV@Ine4#W~13!8{1S1nVh&|An8uV zl+`ZMFD=%rrXfHDC(yI{(*XW1=}`vH*6oTmc$dlz_er=uA4;bpU*w&%8i$x#MtHh7c;A@HcD-89TbO34M7@?(pPB!nsGNv64; zVQ2{1J7IG8d^E~!iiC{9ayWna4LWn2bv;WzPIaT%D`WPL*V8*Wj_V zbm-SVbUCtK1tp_YAziWafgI)47CrvII)fp{cHn0U3CV&S@9YEsHR2zE8A^L#pos&h zuzA99U@+C!c`FI(Jbr}^CP>Tg`Ja48AxW_9rt?=WJ|kC)@a=5S!sV2>-R(>tUor(_ zpeaidF7olaYSlT7%UOy(5~^>Kgr9@EIQvtX3TtA{hp%-vPWHUvZBP{WP%>ACFxWTH z#VEp6T9trYH3p4TSAsChxq6EnGC^*-0Ub+dQ&RiS*lIMOJ$rf#Anr^V%L>)3)) z#n3A=Grrv0?b7xmjWUAYi#d`qo9YQ{t{)HhefV2SX+cPuThO%-II*)U=^Xgnsen7E zmv>j2n*Dv+B2S2Ma~cJ@q4&6SAVW-BLz7!Le`>4f3}ldOnQ5Fw%#tGCv69bweF|qR zV^nfo(r+|SX>cqH(RKJU{r|PqdF0q=MVY%$^R5VHvUZeOVQiS`*G)VAsl)Rq^Z2co zlOB$>ElKaM{)I(Z!o8IRqy2Hw66ZS8{TXasTMvzK^4A~aDBG0lK9FygPc7z)#9eKlXasQx@}#eFkE8Akvn7BO zqQ=riI4koUIg4`wYsOBL#I|_QF|i1@kg0ONy9L?B7PgxqNfVWydc7PS{>f67uleze zrAlWmNIu55?79d?rUZu;eRLO5&QwsBC924rEv{TR-F37GWGb%Lq|$9A8`uIowtYf1 zRPvf-JFcY=&!2^vP=?OcDJi|pMq0slS4*;s-0OdCJSt%QFF7Co`0)~}JDNZCDB*p{ zT-&$ih$7@XL|f`|A~;y!+0x3I4^_+7C<21fF{kia#QBxCR&sneO&zC+g%027@<-C4+^8;Uc zDl=0YdOZIgfENCxh_b)?lBZwcg^`Kv<^X-R-m=6r%2K=ekUSG4=^UaGG$17NAK@Mc z!IN!J+>y@|H?z*X_A^CsKUt{n;2!^wD{f)c@B3P<>=8y2s`8A{*mXf_=Af{bHZZ7~ zj>q!SM7#DHhMvbMH#Q4+8&Y0PM$m;B*0ffUdFQY>)}VraCY3mnH;-A=xC?@+v(7<_ zJ7EJfHl@bvw4sZWt{XQ`AaT-2;yv5=fznH7j_-K}`nO^SSHWpli}xkX1dK6u z$vlbcLNVy0K@F2tKB1TV)wx;2Q^h;te(O$+x<)~ZSrv+USf<^&cbm1ni*ERo5LP!cWOZ?>?C`F+i$*^7s`w)HUe+wbZU+*%1UbUPF6I!P4hKogCb=bh1N{KyLOFPadwj`WS*E7m z*~wR9Bv?$lpP7~tCZt9F2uG z-_gHj=V5d@=;DxRER)Y;Ap6>)gD=*L<9OaRYmCg>6Q3x_fV^bgU|#xw;dyVKwjGpy$*2N676f<)O(gLxiIlAJ?DLE zQ_kwoLjw*?HR@1KF;$FWNf^>oj9Wd|DY}u<+g})iE$rR;7{RsTg8Sd*g5-FI^E47fiu7SU}RdpiMHMYlv3pLb66K_Yqw7V7h zLfZtz19fvR(9G2C9;4lA67v8m`8>x6E{uq+ICpo^`%P$S63&c=rvbFu7-;(R%L{&j zfaBLN_tD<>O3wTCGzL$*R&wal_4)p_DS<~t$Tbh+Cv4!yO@ilI2DJ^bVY9g}p2>`Q zW0HgIl#DvbI^2$*v->foqw| z$w$Zxm^bNr#qoagy1QdWf3tr8^P}nA&+2w;vbgc?WgkVk&u&#lNC=A=2WnW#R!J17 z=UQ30Rc6KS2tkDgj-+M4~O?f%I zAv0TAS2ez&*Jh2qu-W4msNMfi;#N~F_sGN1=iyf=HI>}cgPu0#RR6{~@z|=apZV9; z4&dOEyh9toe+TChJSon1M!P_US-atRD`U843^=l<$+Wb4OcIje$_MYH|3lV!N3+?- zf8X6@SM5z(d)FRKxvMuSYK6q6YDaAjc7u|M`>bE7dO*ua(+wfDrSmNs24wHPTZ=X8D z&}B9Sb1qM8q_vDO8SnjNRG(53y>T{IY*F14vcB*{h=~4}zn?hw~ES^5pPF)O- z$8^mtpUa%TF+ZVz1UJtSkl%02C{>)lj>29|jr*igp#<&Q9i~tYb3drZy16m3N}ZnA zF3DOM_P)^jR)d#yos(6!3Q;Y58>GDBWSmJrRP_+xNwk>M=#i}O7sJVZoS6P(pT~#+ zcZNlhV?=gR{?SI&VVD=!uVlFqx06Tb;8q7|oTOqXMs}^sFW~iJQ@7iR+}|^w<{BOe zS~uPMG!wWeMf&$S$)*Cf(c?IiUdxz!=S#$2H!RKzu=8DlTL1dPkLkt78FMy1@(si% z%sf4ML73ht8Rr+CQ${s+22r3%lGxPZwX=lm*EX*H-FGy3U~YJoyi-Hy;&4}ls@+5D zrl)hJQ_HQth402<=HDE9i7qp|D>I9(P9?JTk~xTCGO%aI)Lc$Kr_g-O8dz;g(^nIi zrL6>FlG%hcqO`BQt1LIcuzNf)4z<-3E#<$cUiMju_a5H}6F9HXQuPVO<(WMt9)3x5 zwsH704Ob6+7?$teF}{~*=6+!^y*7(;*Ni*B_mcCF9cdO6K?t06S!Q$z=}}7s(G4v_WpM6di)RO}u~k9)+E3 z#xKZS3=ds3`C&u!;NB0CyBB)0;r{^kBx-y+cewrP!@gG1`p ze0W%tW#vuR1%pN0mh3YlfmgHa=#$r>^>IJ4XBAT6gG-Kn>GHl?MN*C4Fs&rUlhmes z^w6WJ`G1LF-)jk7-TsJ;{Iu89YFPd2eW)Go9syKb#~-RYHCduw@6*~)nJ*j=Nx7d> z=SE*PhyMIPOgn`=`{xf;M#Abia*>GG49}oEd;}Wa-zS+7J#9Hg`A1ii1HJCr)*+8E zC#$p`K1#r+zbB=Bqkd;5UJPvZ(4T8f7%&?8cC)OrtMa6c)qK=b|xXL ztms2A@nbuwPA76)*o_C~jy-&CA0=hkEBs`yU*9j`6!b8r{jeqiV)l;=DKh5RxtKT$ z`Te@*|sxmaIgE-ClndUfJ%5; zvKu@`h}ArB4_x=H7O%~$q9m-x-okW9<38Fi&6bbu+pT@R#ucAE*7CP z@hj3*t_`Xoz5YY>mP}7@=u2L>z-yw3&FkLi;Lt+*i%qW0_^VsUV z=IzN~uH6&}!w{gF6csz7v zA=P`VHWeARle&e0lswb1Zu}obA^v|W3iX%&TTy5zH2H1Y31<>()KFP^CmJXoq1t?exa{sabdBy@P0JchnxTC zP%-?KUwqBa!H-6p;u*>nqS2O=j|3NSVN$I{T;}ES7Bi2Rwlva^z|{W`)Id;hdNHLw zvfbzWTf=L?soh0^KU6;gD{Lqu;N0)j@Q~dFWOD?i>eGh`dZtp_ScRepfYP<2-mcL& zZffj|r;ztU_4QRxGi!Y+ zysSKn5g2lO)`oOWvf6dd_mQ3xwl>jU%uyOf4SWHXFX~{u#T?Tp>4jW3(P>boQf0~t z+<}msKygavBO0n>G*#geZ>h0)2=mq$h6 zX>I+=3-3d>h0ys!#i6iz2d0szMhN#wq#U>(>rQ)^^cg81S1}B9x%ZlTY9pV$G60v` z4^g@}rP6N7dH!*)4FpLnTlmoRa`}t=GpG44k>&lGxx7waUnAFoUQI zx*1{9srksb{|^;Q)yu$&Axz0zpUS;8j~Dq|#Ub!~+BFi%?u*}uNgrzMRLC2IBQtp~>`jQs@lZp*3V{vVkVsE(5g$ZM8DsYXYU&$(KSS`wlIwP;{vWDBTfadz4?fdkdEE*= zlfHP$7004hl<14*b1#1%$8Kr?eM7apfp8#Ptrpmgn@YJi82pp@_z%_A)>U!$T3&ZU_Zy`OgWW@R_Z51F*nHZCNsL!jqvtB;rQEa(!1MFA3VjgU z1nP8SAgRsp_@=Ix#^#Q4_I}9`mI5>)(UWY zWs(3ZxIz3apc%=QX9=>5lcWWLDxy;{G{Og+XE(VKLBq4J+>Uc7*&St4X}-u+&ZQ3_ z-$VE~oCW@*qwU*zu!$CqkrYcqG(z5uB%i7~&w49wi-PEGx`+Gj?Q~DW<=+QAFe{Sz zY5q#TG#wgx*fh0iZBK>(x^Me+&58Ftr`#KU{X>)Ol&Tmw=#)YNn+g&Ew{JH!Q%Xm^ z{of&<>J!tzA!Weco8U~=`*U#A{M8~X``99F7Z5CxNVxuxAN6$t1at3r=lLt zPS+{?-I(0%yx{U4_XvY+enfItMi0~_9+@at}cdbifyZlCCwJ=gkt7%R9Nd{dVDYpp^> zfp4JrnvXSnrZz-q6P1DITh?!z@h#7-+q3&;$zF(2j9T0};O+rtCfs4Jdfokam0+Q@ zAV_9!?vc@2+l+xtz>3z*=OEeW2n+qnaQ>h9hJ&&BhAG1;yLBUOpJ-f<82j_~FHh^Z zD=jUMC(T4=-|ibGI0kkLzNtihsAZKtP@xFh!f6yz04U-vuBV+Y%#;i`^{+5sevj5Q zf_aGlEE*T#2hEy!sH__?2cV^dSKDct>lfW>kH`1kQL^|^1=J@+<%_%scGB2m{3?rd z+=y~R=EU8}lR*oSLJjYaO+-VVyx7-spaGindISLGfvx{n%{!84;`jA9q+|SnzoC&r zRke0x+N^9M^-VQ*q=&iRBnU*Q*^v9>@D>SRC9n!51w_D%l-74r*6pQG5XB^+n}FUZ zapw@}b0ccMez@otc3n3HjH zr|G8bocoIV!qZ|G;gA%Cr__H9-s>8FFifdbj4#Yu^KIFY-A!ZF%`;GKbEU?mF%aGxpCG zszFR&C9Jm+efoU9U&m#}vUprFmhXh$>hRHc+Atqb1#{bHX=|&gYx8OLAbx_FUgd-^ z432(ih>_$xS~~3cn#N1pk;54`Ov!`t0g8zsh=w#sY60^SZWXye4bVE*J%p+EHuOQy!_APInV{R`CEkUC@M5DYp@aY`~zZ4?$3M#@R{WRY3vLy_7fnvFDF z&&3um9IU`3No``0s3}CqiLL9`XjIt9c0{9X*fW4&6iq<8I&Pogne$xd5RHZDS#AmM zg2RvCNwHIVQYZF1+{iJH6l&ZjopYVf_Q8??ZbghaYrO_0;UxCU12W7xbG-M+x&ig8 z?IVwxw+I%u6XqI3G(~ZlR~)-V!d)tMyYG-i;8sMX2ePQEEW8gJG-8tWZiI}RP3vPm z$g4Sp5n+?T03Tsy8w16Tr==Xi33GEKA+0^WU=}~6ZS^&hLuA0SC$BY#{dh6m{96wq zr#*(fVZaH$-1VwNrHzqGJsY9IR2OwE1{~ymp0sdHmKO~kvp>Ti*nrZiYy=8+MHa7H zmHYXjxd%)Vii8|a115^QXFGK8BRyRPmR&t;S$BD_K)M~%wz4W8?&!YT6k(!z=};C zEt!OxLPwQOJW8jGbsO9U#9RyVF1+e(lrCpig561>>#A5WLi8v2lfo~%xK3SvtNTl4 z|4fU#2><#jf@o!1E91H@!4SD{Xg9m(# z@AiZ57@y`Ci`Ok#_}nINzUMOH#uB%pxsl;Q!=IL=kL8A0D00L1b9kdXw|5XWIbW^c zC><@So@B)h9yG0BFyg%l%q@Cf(ESe2r)w2=>RW9_`*20l_$r5)x8y5+vh?7PqqtD~ zVO6l0(}^6;?UKz5ci0!kag00L=f=4M)UTQyHQ!=9U%ND%C%^k8E|((hy*_h-4&Lb! zVCgu@^tgFi;KV2MXcoox*2$sh-wvl?#e_%j%*3OgYa;gS57c%}&|^(@rr@i7OQ#3* zoBhvu)5?p>drNpsOE*9r&go9)D%A159~X=nvnLZptZ(P;^r+*ucw%*qbtjRU-fox; zntr=!!=sVoq5%PccWX@jBl}VYvlxH@Vcp(RnTZZo^sK$HdkX$!thQ0)1<;;0SmC?al-9Ys;HEM5VoUIQijvJRmc zlaa|U^{klfxb67C6Vn@ZmbV}v1-cK9ZwQWczcd8Or@K;c8XT?G={80RhVE0=)iNA| zQ=-|14@=Y9=2va1<#vnswHNVCtLJ7Xi(!Jxj#08XC)UAd1sh$fK_722g`E#NWL&BI znj8MYwjK(H%#HjacT)k@@m0vHlC|C6VD{3IsgX<4hVg|XKY6p8*Y(_N?;&5%sS}a z7K#qWC9%pP!4~XTu04pcsU%opkzPG4Kn}SD8((m&sGuZf=yiuG)bx%z25u`aXnY33@R;>GlH=t@g;CrR<;v@x`f$Z&y>RfM)e584>axdC5ppJ6Yyp<} zrL8G1h-blb?#|+32#tY_eZ`Va7k-GC@+NZRMoge%UDZ!;&e2N*A1)w?{cFv~IA5&m z4EhPv-aT2U8d5SA*u-INr-!@%`ec}|DsR&l$NKL^kJO-<8zpdjPrE5_>O@g0*-OdqwN zh=qbL-F2&Pjo$U1Yw|-3u;1A zUeIP9%1BRP%;mtc@b;9M-r(0>P;FL|yg4e>IelkYy zCCfY>rF&b+eV|FQk>Qa;57SMOB3^4hjL2(FS|m1`w{?80_MT?puzBbOSr~(O%F)3< zLwVhGaQ@;0_t@C^17}4;z?^mB=<+V2U|N){LG+l{4-KRHc?&ObmZuq z#b>A0o@L*xv}6?IT>`B~$5uelWOi6Pev8?!`p%}+DIyCn{ysnjso$^myzVQXh=im6 zWjnou{_~?tmK;j}Pg-v2R?@&&mr5fr^@=C%kr;Nt_KtRwhGt4>4|`*WOJU8_9_F)2 zigvWIBv*<#RjZaf|M$3y_q|9usMP#Kk&%2tP=X^3=6=S6zKEwCVsX~(csIy%+8_Q4 zI-Qob5|Ep}Kd-X9yx6=1|Gkb_z~Y$RktcjSE5_FujTWyNFwyljr|7~5;vV}|7z^{* z)xJe$J7;VNf5&W8)PNEBgMJX>h)olWw2LL&q_^Kl{wy2*%XwXwuc;$_gVT9Gv^bO` zz)o3b9AU5QkvTzroN=b6o14D+(?6g?hI%Qg!NO^7V-#7cL2jRyI08o8zN9CGmi=Rm zmr@raY$p2QM~!9<>?W6g@k4iL0P=-83Je+3wvYMVd_4RvnSE5F9>YcS7FlaC6Yj?g zmushQyzQMH1SXU>p+}hGbMIy19EBG*`=%3>rmlAMb^)wwRl)r&-`DD-(=_n8))?(X z>k#`}jn4!Gz{}_>A5LmMQ4SW5g(f-vsLzuPxj_I*i(T((qG0`M-(h5zEa`*-Yoop0 zjrc_BVw+a}G1vG|iiw_7|FpHEZpJl2xu!Pz8`U4G=Tp@|^pjm5eIlz6R#Gk$ch19WODsKK5B7PEvi?m7&kJr2>S`|wdHsG)#+S$4?c2-s zeDZ?jnMAvRja9CmzkPR3ixU&1)XT_xL&LYX9O*fx1f{8d(ql<=Q~#6JsAEBu}Dt zvl7BvYi+UM`+(M4L|t^}1rSzX_yBfxS~~qQi2t_1N6|Puc5N=w`e?j|{)T`1AP=nW z^w5%+(%E33Hyt?Y^t5(*%`@@#@|3;IR{=4820p=q8vOxCeb@bxJaE__s#obAR>xKY zhFT#-m#b^G7)OQk)=2z}?J(4&ZN^c;Lub)t-v;T5FA7rYul6M;Rs0xlWjZD!hRBcq zrlUfYSz7HhaV|hUMcZka*R@Z{twSUyEukut^Y#N=&gj(HkPi<8CDgaBWqT>j5}^h& zN^|%RCG6tEavoxwKW7To5Z4ejvlMD7g9An1FuVGMaCroJq@^<%l;?z}6x0ihc|mtg z(|jU>97smtT-H6oVdRvuRaNX&_@KU-@8nqN@P%{Q0LFK9(w6n(;2pv*zO?gG4w-iG z@KgGgI{W<%kg}I^WxHJ&*{+xALNKm&-n`Y3Zl{Zb4$N1eB7m^$?FSlX`@>$BbHXQq zEc*d}CjMWIfuS=%cM70W1Z}(B=)q1-!FbHI8KGSsEVIuRl-Ue<247Fszn3zg%WXvW z;S0~^z#3sbnw9;{04NbIs>)yd z>BpTek$0SBGTDgNi0uQ<>_dzc(O43vc0Px)hk22t)h))=`zDcprjr{W<&It zp3EC$DE3l-e#)L$R%*GK=WJBvh2X!zU@kEDFR=M5unD`K3)OApg+D}JhGjye&W_~> zI20m`n2vPf>erPwNicWf(y@M!U?F{vy`+eygsZ}XEhB^DZ4{NCAgl6EfE?j)Q1f1E z?m~Yt$;`H0m9GDpY#V%pKAJD#8S!|G=`IUZwa|O{l#wIADzC(aa?D6=(4)_Sjhxe$pp_aC{eeIEzo6LLkgi~T$Pd2noI-Cz07_B_VS zqeO=J5;usJp-c;9H^%1j@69OXP>!FisRoRaw`ROuEM8dF&bmGr<0^PyI7Y*ZNIkk7 zNV55o)k!n!!`TrA(2$Se``a?a;b8>Ra$2#?bN5{XeO8INflC*HgxK%3m55qaKztk43 zJI7a!gZKQ*rmTxzG1laxIda^_$6#LYhXTh`|$WT zIJxO2pg|j+%jv>Zp5%kA+9bl(Q?<53eA{e zvC||ds0r{EGXy7V6X0O6bl22dvXOy6CpdZ&| zlHhK*jxJbA@;8Kk>TAt(PTq>DP<;C4x-Oft|f`z?XYOhbDEcV0@ z(LQJ1hQdp3pN(w0Ju`+p#R>y()bWT0rBlMpWz7CLh}CH`ZPV7{-$g)|FMNdhY6Sf| zLr(g^O?`)W!UZ5-h*mmYV1qB*vY-a+L)YkQk|`9GozPiI7hI^;fMVxD_Zu29U(pK> zTtJN()$Ic<4pxsRw-+tFP|EAW%hdr3o+pu2nIja+_MC(9@j+;ho@~y;?Wxg|lV+cO ziNEyZFx7%>3#XTmeCs!+Yz3>{T@Jw*GC^v2Q7^sq2X-S6%>4P0wRotTX6IA6N-E%C;lUbgJ9TTeTw zPnj1c{7a-u)CV$UcsB`MkL}ehxSwuaVtUcEQLw??#NVUbP&R{94XTz|l^vTq^PXAG zZ3-<2vN$8I-K4s4jppv1$2XWiJYI`nx^d^}-Cumc#gh~#njz)>D9uk)I>`16oXH=Q4Uy)(j>YgZY#)N5`}wE`67Q;JyH z+Y#5p#5)vmnp{cXfh`Fd za@1^gXA3-R`U>i01emjE+jhG8dH!&%t8gtddfHCVQ6pFJUEj>R_{h#GiD`_4k%DPz z*}B^Cvi+`2ST%b0r06tYBYC0z6hqM3Yg|j-$GBrLq*a?ZyxesXj}$Wc*tR3;@6fBq zz5ky3M4!wCrh#YdZeJHE$qnW_Q<*)Y*dBdi=jEbX6$hO7{IUiVl<%cEe=94r;kBk; z!B|^&Xgb7r0U(l;kVQLc+&+-fG3>x|`4TsNt0icY`yJ||8;Jx)VLKku4d)9f^qD1h zzV927FrZF%(EQfg@gsd0~886>emwTDfEt_6;hL+L zoWw-`L;=q**#L#W7z$`(2VOWAic2EJ7-RrO_dsCDUWGnzG*2Yo`o3gOfd7S7Fp&9{1Fn(StPWlFG2YDHrC5U_l*$jHECEs3R6rFK-BGTW`{5o&Rqi)%) z(ZYj+Y5GX3Xf>A4RD2Hq49pipYpUO}3CB#bb}~HG!z}` zk6)NYgvW%l_;%O!xmf}ncsAK`OUCof69H9<$fxF=fK2K=f`a`IM{&H+`zT8(qua+@ zS5)5sk8qS~N{@^Mxu}LmLfF@ja<%CV<+P`~l-lXtsjqQ)RpKL*-czXzaK1R9pX~Pg zvO(gjXELVESR=HCbEH#35jB*{-7NA|q{Kv|5SK?W%LWAUot!_SkXtR%Yx>3c_bY0N zFSs={#qZw&W&^n?cf#NlXkX+@wO;5jG9huJX!i79qP>*=C;8}h9Sr;cEALHlRJn^`AetE$LTEGQ26X~7bX-Z+_?X?b> z47}LhPhD9x@1E>y{s7n+BEMb}*Sj|&|9xSY(p+8Q5)RqmQsonovRAO3agj{5o%2gf z2U!$Q>~)jZ`(p6poP;WUB>qvUF?OEA?#*c+5@wdCV%$s3b@FMHNt<;*`dO%$_5BX_q8{PN$1r7{87>yMuNGoBl^9~Wc^a2qu4`iEYw8c7 zbb!;()Cfi+2sVt@amOUZweeUv*%wWue1Hz-XPXi;&BB%$LGIMAi^w+jA*UjQF)6+r z`?<4mM<@Jrt~te{cJWL0Xg>w{8KztV&^VI4^OeXhWE|Voo%97KF_<#b_rn1aR8Kn- zk1;YzqUSdLOA?$eHJpDR1GtYe;@Uy#45P&RyKI(Qk6OjGrLz5@n#ZPb{vM(WiO55z z5rpGm)OE^Vp;yX*6{_OlgV%aLz!>gNSxQo@k(e&t+F<#j#MytKENF_?X)aPfi#ah| z3MY3P;pDrd$e^Rl_v$q+F}+}rfxY`XTGhS#bxzQRPa|Y(GLeEg18UXB_uRwT?4^hfJ4?pz{o`P{VsxPbMl2&x^FXv=z{b97SRK^Roq%v>Vuj$UKciwDEU<&j7O_Gpgur_eNB)S))&Wk6 zI|lN4B5KFRLr1NtwOX*(fo@xY)ZYL4c7($0*?Fx;(O7@dq`u*1v1z&se8k|@Kf>_3 z-%h?ayvfkDulda!L^(zRg_!+4VL)>s0kyYoOt%vjpcIH=|C&o^aV`8hQ=um7T-=J- zC{XSn$PM7@5#ctRt)TbB=yyBuJ`^pKj61*NuS}jqf_2RQzNTCLp6Uxte4{S)bvkMw zB|dbIW-3ymM}*EV;cjZ3X@qG~o|1v_k(OARSJU!ha9B_%StF$6hm7gHzxhy!fP1B+ zRqfUZW#*dh!%83U;~e9zzv1y^^>a7&vjI`rEX1ZKEZt%Qxq?Vymrm@EqT11M_{H`3 z2>aE)l1d9|`%N>p`@5`bIx9fw+r!&=-x-2zZ{Jr&d-}ZcMKA)rE~Zy1W@Vryp3t=9 zh)Xt7LD?k_F}jd&Hb5Z{^R#pyiKXNY`4mFU_F&4MZesG=)~N=ps{`LH8Dd|-Q=6kG zygY(fe=Z{8(k%-XG^jRYhD*?WQ3j^G;2W^Mryj8z6;IT#Gya`?C}os&!ZDpPpF0i( z%8-}5ZTZ`HkJthY$>+#WrKvW>W=rjxN3;bNcP>tsPMJc_W;_qn!&8MSB=sr8?(#N` z2QGoW+;&{P!^2M`_$cgm9R#W-7pkj#PkdM*!Hu@pb|T$1y+{qH0*b^>r>8Z1KB;pX zQ4U3IW`|pcyI-zdeeSp!L>L@=C3xpjku#+T7X7=*IqohCy-cV_rb!LljiYU}Z8R{B zEfVQXta*PE@lgxN#8^)986auhY4MKqofl(W-+^FsQ=>H0jD&n)3E1l*MW@^=JV>~U zGS_%&r?gG7$j{cWjK^8#XF{WJT~_44+0_Q`(fqcF<}- z>nBSd$`aNjzI01qVv;o7Iyg;Uywc+o%DgNAGFzPluTskUZ~T<1yO z(JdDJysoC{u5Z1KmMU#pow1VQH%(0i#T!1#4mKV)+8Te2*}A-2z;hzUT=lQ?fik12 zY1a3;-i))T1`N3PCEstqf6tOS7>5faa}~(JZ%2#1~AUseabTPYCS)Gr8`dZV@Sg`PEAfEQB3)L zMV_nI0AN(Z(%r?>I&^e6BvI3{|B+dkdePwzKlrcG&p(zW(~D@(KoHX1D4p#^V|wcr zKS$Fqx5LKOeZ>pS@G%4f;IBgXKcp1gsG#Kp{3ebbLMTm>JKc)os!H^__B3B$g5}I4 zi9Y_LYy5sP^*oD9`nZy0YGZhjL!bT4H39x1-w=vD)`bLsu!;=ht}>%D=M-gp)3*l< z{(1+ly@LW(igq@jB~4Rva^ez}x|ef}69hO(roDXXnM4Z?7xi$h>(~%}vDD|NtD;=h zUp(f8;u}`Mv+|}TkVcJ^^RH+FUVwQvNS5(A0oM%#=kuEk(g^|=ggqGHKH zM(iEEQBL`*y=}sCEZv8%0D>>4*Q|;jx<+#j%i(g(PAZdSUTRVMo)oE$8zngv7>Bf6 zq(xi2%iYlrXu$2)vaPFK)SISU_6%wn{p*kS%@-h~uY->#v71X4piy&QXr6V5sGUY* zY3q`Up+&!G;?r$YZJ!J+5t87k^HsT)k03Kti~CXs;hgQ-jSh=5<|7SndZ_|07(eC= zOi!)Q|SZPLSa)k!m@e%RaG7iD@k zv)1`({ceRpN?ECYS<_XNL=Gt=NV|ZlEZ(LiO8WIeiefBdXD}M1;jtj&2}&Abm7rf8 zA;8L!xylBAg4c?Bo%@1Tbh0Ru%&bKdyH3}4^-ez>I_Kid8*I08=o3Ig`zUMV*3}=X zD02J~H}XPqNiS)TD0^QrwKKpIx4kq=IrdW1+883P&W`+p!ExJBaEg) zV~Cy4m}}FjntS~&8VFO?+5^NwO4D;QSg(t(SA_1&RVSf=#Vk=k#sDCq*q(+IuqGIt zZEh`yUA+bK?0Nl6`bZ=*Mk$nER!ik^Y-xZO0|+p6wHwQ$J=L`>vb1N2c>Lq{Eq&~F z_q8JcN^bbUH*eFTOh-g(b?_;l4yVacY#Tb}zG)(U%LwmFWAL?$8 zSvrbO)9ej)?bDW0XNkVXgM>U_MyJ)vFOd+V1JLH)?wsZuajL=aY3g5Bnwi^SWW5cC zOZG)wuP3Lk2%0DsZRc-fIrll%r(3M_4_9xK;-9(SUCTK3k&_Wlm7jSb8&L0sP`HwO zklN?VVf;S9WA$dgrDT12LqSc&n?c;t-81-1g{glczV-RWsWHA9rRyMV5e0t~kD`Om z`|xj24*##s&zpoKM=3B4gZ2zD=9qNcXTSJ@`GzhsCF@|X<#g;>47a*!gj*Hud(OL& z;XaYi`I z5ZtzV{-&m27__#2fBO%yhENwI1n7O)Mevg;i38F+n*#42s`)JnjaRPGW70gK;M%20 ziYEVV(_eH-sY9Vvy8>K6usmlyq3!3pKNrNea z>%Z4bsEEqeR`t+t3j@Rv{H04r&8Xa>hd1(nZMS& zG84nH&EiPt=WT;i+wa_^Q!n0GPkfq|{X;dn%3n98NkH^l3y3*~96V%>86&dhgOdl^ zzGnwIqo?v8Mk-pi4rItlRnUR@p8J}@LNo+sOIaR#eGphaH)avPX}x?Nu6btIx!MgQ zFNY7WHp;#ELj^5}o+Yaiit-e#roO5OC=rlLaY0P#(1{;^E-KMbmn zuQ_o*0VVQxLUZ3`e7`0iDsKaH-XwP$_e6cT0w~9v;l!^too<^3Y+|VtF30(qFQOon z)|d3wctd4MrSKoB&zD^nf^QHFdI_@K-g1j|Ui3!o*}J%yw{pdVri`dfl_x!2be;Mg zE*P02JDak!{w^UQ;5$%#f~|fjzofx?6puaUC6Va%9!eTow->q@T@6Ap{y^HBMI7bW{&-2x; zE_T>}2Na`j-@%=?ytEH2*H-Hgy|1-^gg#f`0hfhZeM9G5dCr4T@5)Qg;~C^_u#6qd zl@A`X`S!5fG>;SiAnaFO#jaic=30W^fLirjAdkdx=PJ%<0&cT_d84S{ zf2h`17lPNeun6vLN)fMCYzCwECaiGAewMnumQdT8q%OVKcV_BsC*vJSc*$}rl?#=0 zu<^WJ#xLQXu0qR(RZ{%YRFbEoIV*<)NOC8&sOL3 z*MF%jTI(nL(r7bz)1=>Kt>fij&kuDKfh19d=!Xwr$;z(20VM0vGN}SoBJ- zl-fX)J&g5%$l@Z9?do6T(G@{ep0P%}729uXyX@^(sEq~hUyNzCenVehP5f>8)~;mf zj=xm%&pB*WlV`4<2w2W76DO2`tJ-ccU{4Apa>a}c??{+oLA`DMn{h@#poISvnXz%! z7wYccu%g`|Vh~U8f!W!MHnEUavF`cT4b$Ph)q79y|2+;&hptakJOEN z0W|R9VH(4?!7@7=nXkI@B`JvE@eTyE)?-JqRpM( zf*x8tbtP1_)jO_TJOsEIbb8IESq>4EuF)LliltM6Nhr|JW#z(8SG!dVzJzuJiZV_ir-CZOL#SRrUe=> zV3c_&GE->0%VoO~Wu20zW=^XY2p8+pNjk(v`ISboyW;X_(-h#MC?}^yKDOgZmYFJ{AAG->D4ObN`F? z3f zXxhpy54F^hwJ4QDMqvZCkFe9OYs5x{rLIJK2Y2+$7zGVsahjBk+(cintLqZmmVXw* z#W*+RN6MV!8!eQjo2B|)Sz}bi6bgYQ9#fmIbv_wkP|ss5s&p(^;|!4+n2W#+m|#7l6;;AeHG!K-I0!vTl+)B)q;2!_;Yf=KNfZmo9(^dIXxxOjN{EYID^L9w9B> z_rFlc=CbYmY~la)=La<39cY$8;{Cp`uL2Dgc@wgv5{xm z_zPixdxdt;BZ)8FGw~ixH=H9T7Ew82k}1);&hIADEsibNuVhI9H^=oN{Q<54rv5FP z+zt8Q%wgF8!>K~9*{_mSmIJ<-HKiDFbib;sgLa0MXf;GXMCVwmd)el&x+qxFm^j|2 z#d@hT?WN4bY`c&p?HKCGC3DY!*Fdc_OEk^HgLdgy_}Lk&Vb4E~8}P;M#7k|WR$Rxk zuMc1c_xo_g1ho*HujNY)4lar{OnG+-V>RVp0V+aTHnU$Nw|oM-)YYH zO&9`FU_rdqP_qwfST+DRH#bk7Txo3d*vw6Bw6$j}2Gxyl=1Ell%)fsAz;#yv>(sK@ zbe$=~1idfmqQ+-Vge_Ue87awgebmn9iK44(!|aKGD$%k!YR85K=f}O{g`$Y7+IL?s z4f{4=&oY^879syCbOhOkdwkTTT5MJ5 z8J|$UqlhL^y^~Q4ngR(z6kD44`UqVhj&i~(ZZbG*B_p5vssZY$qehM{l^HmwZ))fB z(ney<68SWFnRF%Deomln6wzo)2&c{kzZ#`m+NGlsr-Zl05F`nv0jBqVsIHL(E+vS6 zsIXe>4lp+>LDsRDvO)IF5^`4MHY?1=cBa5+reXKrg@^4S2Pf^Y?|L$oyY#@jZB59? z5fbMlecbT@{l74`N4UMoCcAjsr#0Ypomx`U##+PpF%$TWL-hH!rBMz zg=`!cNDiRXUOa8piGhrOmkqdM#xcoIdu36FbD?zG>!jJ0{5R2HU~jeWw!l!`-s<&t zBe-;nijSM@4-_ezK0b$*CN14vW$XK}}u9KQiV(b;JnzWH|f!Z21#^5JkTMki(yKMH@}?LWB4qljAQ_c_UAb;4%!}F44Vs+Zmq8beFx8oJ^@7alvQiB`y+HEf|oO z_{adB;gy)oupewm*kibpX229|=4-MAEY1bz<~oMxs@hIMI=ttJytI8l6~jyR0Q;g>G4DO?w!bvaL7r(s_vD)*Z6f=p0v!JRbf%#>-Oc zUrK~QPYdcJP@KSGbF}hJ^+uo93SQlz|14L9r;)!4-UvKg&^xsuQFf$qX0Ye+ctkIP z7xurHde5k)(zXp$$Fb0rB2^gagx*_(5e687w9xw?(xrrEsBx4gbp%2$gCT?-T4(~1 zE?v5G5(K0ZYJiYA`~B8gXPqDUo0YY*_p|TozMAbM)!U+j`gH~yq~3$twLBlIs(13_ zdZ!)ke4N(&QLE?fbF9Gac=!uncIKL8uG6ho`y;J0#8n+3)bZJ~r70SoD7)mYq2XPi zxpq2t^GEvoja*xYzIm+1HQ)cQ&R6u#*C=(sgNxX|ee}7{i4N@ddeVa`Sm&{SSo}b` z@rm0l*9nStDP)_!ugv43TfB@;PcY!Fhg&is^ABv=dLhG*%5}_%y?bB2pl3z6LtCT?9%>Jj0j_TQu6}FJ8*n&XTcUxLBkFVx|;49p; z#-n-Kn?cm$KJ?wf(3zO?%AqlQENQ}Efk^O9%Boj zxX+fGAvq^|q1b#EsbG%A`~s{nidz#Wre3DwC#HnrI8jxXayg|tzehF#3mh%16M0d- z6T7^cGBw%t!u?H0nc2rRxdcm_mvUZn(B+-_7m4&WS&s%l^%Yz9xyT+@n(I^)xaB8~oy?eCgL<8#tZGQKh8gDl( z;MIVi<)^^%gw%19pCmhAV!}L z2nswh0k(i?Lcl9lL)`N*hU=fi?v9?sUwtlI*K5<2Wzm<$NX*cuE!EPey& zHzfah_ezhVeK(=seWrddH-*1O%w$BfzLvu)#S|0Q=TiAC=_fQW^)oHbRlk{CRBsRM z8Hh-+iHmQYWBp;H$F#|Lt|>pLaJ1)plOjZ@1%Pi=2lkKX~9*g^%k?=Mp)LZ1!%6;2Iu z$~>kzh5x`&KANsx?Ydr3bDeTEpCh^$6bH@_qW2B0roGZ+80Y*{YGKqNt$|je$U|rC9pSEgt_96V{ScpCoO{w(NYu}N)blVp5oCIyQ8=}17y`r)gX^GGKxWW+Iuj-bkuXwaH?w^ z!+mU?=;JKg-cZO3%@Co@4num(P_-#OMCs%eo~F*5y!Jp0kR?aD7ej=%%T{}K{-!w} z#ow4I9`Ez=sHP4UwCk%t3Vep^4NG14fx}NO&}AR^p0-jaq_5YrA_ZG2Qz(K%a1p6- z|I7a8xfWeBUG6Or=I9S2$70tl_C+ko<>(h}DsgP_1)-CDXsu9RXC0lFLeeK=MR(jD z5!-A8YmFK5XGd!1)wMFaCT;N#VVIr*D2b*)c0tY2)%#PzP#1Z3CF z{*>k0I@arIBm8>V)_ChNzGj(8e{UbJJ=)1)jp#PJb|Nzw3W6;=#op~R-L;}V>bSS- zXf$xw*XOI_#?if5(C`tD$nz~;u>UzT6dJ>`k_-vk=G#juZSu%$o?GaTh*sS&=-W2Op1^HmLwl4EBAfV zF=S?%v_WHJ`p%~t1jXGfb7@A)?O_x~cL$h|YcM!P8wM!^IG9PpK`kkxhp=}6^_%IY z#=5h|l!O}$RggNUq2i-ue4p%Y*Fma!x9*oj;q&n!bZ~7R^ZoY6LOxe~EYm|B8J%du z$A!N81pTP7pLEirM%Uz1!sy0f_pew6(xC|DRG+c=(K~=;SimQ(wx5`Llh?#~xUPS3*`Z zN&8KB(9@Rbv%C+KmaUg;MW*e+Ev>1;f}#7MoTofPm5m8UPmMYA-C5VO-OOdaSM_jm zS)4>1vd0H`&XrBOTFDF;sU%q_()C%D3vNNwW|LS$M>9}^a4CxX zU-~OSXIZknhHGzxPi((4Oy!Nr6oEDfrXVCX-(5|=%ePN(OhQGvyzQ~@S&>V0Jj}C_ zYXER~t~WW$cvM9slJ8=*v@#2^mfBOqG|nC6(#t z2^?$cjr?rWTc=Mi`YHzbuSF6i;jPuy_c4aAa(*RlW?ij}4z`638Cy2$`LZ(=o6LPP zT^pujq~J}GS+xiav{F|p&lJrLiTG!u9etfOF)m^MoOlt(!FB5S66q`4vyOqFIV{m? zHqRu0YAzOx=nzYsFkh~IABHW|X9Qtk(&gvLyfEK&7hR(Ir=-u*l!XP+lYc(ieW|4P zPzQlhpWmz={?sZEtq3Zn4Js}Xn~L_FiVhR)7Sk0U6#9vExmiU+khCzA7E+DXIoK$f z%O4HN_uVTt$~7lePlAR=B2E7VMk7F{bj#%a7CVJay{Ei7YUn~O{a2A5Ud+h%B*%r&v<0hc(wE>+}H04C3rWNgNz>*Mqk7Qr} zd81cf{diu(yVKDIArdJsm%XXMVA-dy(~kPk63))(X;bb3o38)dXLF)qZ$5QVe%!b0 zII9UHd}QKrsb3J^o6n0T5FUt>&R3tHydoQ*zb)-|kazDzINATN#IJqu&|2|XWU-BLUIHw~qaVCZu! zF<(fqGEFZ2HNPPBST9Z<{MaltR+&?`>8WY-GAIZda6WajDR4) za$@7NesK>8z;Felyt_@zew4MT3?p?%eZ(6tjLl9LfO58z9|6TFm{ISQR83IirI4rM z%_1he(suI983-R{2dEL{*cWYC1J|(cqetSs|0>r^W9W^0bcEZ& z>{cv7nGN2A>PYXFl7Kz7V?Ey{0451f%#00ypPc}hfVq%2HAR|zi1=K=3+atP;f|y5 z{M{5nA{1?m0zp=FD zb>;QjO?Fg$wNB8NXX{Yi`Fl-{AMlZw0T=N|t#LldxSPJ2hf6m5u*DU zy6cU^tXP>%o3?^?6*GPVKY8baCJ{s)WaJn^f^wV~NB!6P3Dd4>bv-laM52T%WGFp9 zGA0c6#kqXC03ur*SGGMQ&N&n{uy#K>2b;nxx=?d1XC(;v>uXNsHAvpG9>6grfkSuo}%=g9q z&o1vK$5`L32s#dZ)UCMh?1XkMgLV^sI+r~+D~>}O#c=2mVn8OqU(lH#Yk+9~?^caO zmgsN`LUia@0>xl_ANguNiU~9<__a^V%@yr@bSKlDM zo@ZFB3^kh2Grn_@W<3A0oO;4w;dt&}&EbHKa(smiB(3sM#D*!}NAFYGl}DcHkH^cs zfB^AMp52&fmG}4A0ejBr<@R_Q{B?gajq1SadDP^?hCKI^jWvdQq)rh0%^%bIn~j}Q zikImojYT)E$>(o<52W@5?d!Gv>TK}n6+0F_Gr4ClcYGKV`l7B=$iLt2L+SQR&la?I z4x=(ZiA^`fCixdhC75DkO=leRbwom15kHs`k5u*&LJu5r)^=PkYn_I~ zOU%(FWIE-n?M|hB=K3CCq4o`_KG@Auam81xmu3tIcQuNJkFlp8b`}B7t7bK8DGGdX zT7QkiSKl}ip^v_h2Z%r=7(-;qym#roCJxn>VeEZ>!E#dF?SsXE^NaC%w~Pv~S62i^ zy78g+no3V^3eQ?Zh{d~c_k?$&9>m=WvKOCC3UlG3iBt{Y48Gzt=uRh>!hz_rlwjtX4xCR<>}PXVrL*eT&}TEjqW{M+(=*# z*=oKs(TQA6?$xGw*GH^~;E0goZ#>vPm_ms?d%gc@|H3-KB%qulI3LBfvw{A+e|2h_ z^^=Lh-TZ0Mk-T-DNBZM@O7S3PZ9KNkp?Vwo^h6Q=h)g^&Yqk<)+wk^K7%cfCJ;;Nk z&tIejjAl7_Os7kHp$*}jE7OChmh5tfQaaSsJMB-P zo06K)V(a&$FS}4*%=vgJkI5(`qH^(NgV;_DjTYebv9YQxN)RJggD&ahjD7~qfy{F5sa$n zi9*)gG1bF#0Gcpc$j=d>!_*J9IZ6kxvPkOiy7t{Z6^Il^ggO3=wtO+`{@W4PyCX=n zP)y(Pba`w>Nxq0yFaVVm!GCGUQ<%w^Hznjw&4*+WVo{Gb=9|>Nv(+DQ$&U?{CQpn$ z*!X>F!{O_xL+x#bBG3f&yeGzx)`YA6(4GN)L_Ju!9}ZBmcQQ!EOzsK|U}5R|T1_^& z&J{h6xU&6R)y#<wJc{B<0*>6J@F>YC9G5Drh=b= zthv+~y!EH|Y8tP&2;R$v5a+~V~xS~{v^;K~p<EKN`8*b>(>ZmbU8fEOyR;h7`!jQPfi(y=Dq_@i7$C5+@JvbVlZxK$%=TK4YT zyd-rHKE%9Yj`JRGIEdjB6EylcbLp#H0DIk1+6n76KjGV7dQpe-=mC8JPjPF-f~G4$ zteseg1y)yj_1AGTkGrqD6Bd|WHv2(Dw@nX#rg&B)ZCRn;<{LK`Zz z3;G6f6_%>a(pTP_Y9Nm;_S~=aBP^!xwXV-|Yn?0zNY#<<_cHH>{g|z%T<-_%h9~R# zEj53AeQ>Cduj1~{>AssQW1^$w(I1%g`T~E;MAsNCT)!Fp(<5W#&hG8UM;Ki%$HdWSiMi$+z3?> zjdIE-Zx<0;%YS^QXEf6{k1n67z&FamOcL#}3+QNw;YpxbF^x{y!nv2zOSn8ixyLx} zql6>unWg`eCeC4H!nO4f-m6a7lkj9G84Yb)sK|31BEt2`C_ z2SVCAFV97;@+;}95NMYa;kSnWl{C=U`%=bOcy!B;Y&9eRiSf!TP;FV4nT&ZMEXQJg zDO|@Y0yrq9@aw=|v73a$IE)Jvq^vH`Icf znkBx2Wo_M0(sWNk%sRLu#}TwwY>V|fBNNHX5#q9t3&NKWI+RNu(18Jl+%4-|_!}D&w8}=deS&>LB~nLUs~(0i zr5@}Q*3cBKu4+-zfSa2e9{$Kszvju1N}Rf({&j8ndrZ2jF|uq>bKg@k6cuh@`S194 z3chnTH-rj|X_~;tHFJ34?w$YRX8)(MB4enuPm2w))USMxi{I9!>%ae^nKy7bSX#bv*y{RU9Q&tF)z=#0sQ=5cK?MULXJ- zaMi+X<0C1NGl9gF(IH{bqynlT?~@ zzImo|`PjKZ64P7C-L;K0&P?@e#Y3{r0px3oXK`D)Y07g2zA(=9r^SdIf1L>Iqnjrh z$uj?zyYoEl=25{IeTs?DaG`(C;wi3{0n@a@0J=Q8T%@gEVFoUx#Q6T-&3L1Hw%m!b z=B@B*tDDchhc3tR=Lt83)L+P;NGEf$>NSKcZ|%(<`s(O$N5wFVNarRE12-*L#W%uh zB+nkkpP!#wW}Ww68RlVTxWfR6pfbhxNV{w0NqL?NMV(X`eIiB>vaI%H8HZ69Rf@&T z`(A>+b-CL_s%12AOeFzo!oL=1YJX80Cn z>f7$x4X$kUc5m6mE^9_s*wUcsn*&xI=6m?FkNAb%6P9!Aq&F|oUwECCZ_SaW%tOte zh^hvz7A~|bl6|>_(Uob)xvmQR!j}UR8A6Z(R}d*LzkqA98Y;8V+>ptY1#V2=JkK58 z3us(SHN`qv@0`2M{XV6bq4aoSd1uaw>+BrQ^YOtsWJ<@QIoCCVPGeqY`r_kjx_VPX8MhgEP@x@Dl zZCC&cTh+D!M>mv6+E}tv2e%1G%$SV2&RxgRf>9zH1lVj~nrC4R*9X zX$zKxdlEg(3-Vy4>uijk+Q{krr(-44#%=9%*8*^$1L|$N>^cKqe_Q)~r^#yRk_10S zxROV;l#P;;b=~_vnK`QtEbZQmjNK`ww|?Ke7)zT(;1rv=KvI=adwZ)+PRP9|&D8aX zDX9Tst;G?C$XQrJX}$}TIp6GN**MG?^06`VgUzxn_2R$TBfk0c^E~pKYtsmDBMJXb zs;}dw8R<@3rExUiJ70|s#!J4qiYli4G5C7#MQ&6vug{@Rj?jli73}#%k1;bjypQn- zs_+M3g?z4+>5a6=ca#V9tCT}x;QaxcXz_9aNj3l-j}|q@sEX-ASLC2pb_j zPvLlHyPq>5xP(WN#|LVUc6;^?pP?=D<-Mj64RTz8-WRP+&%$}YY2gF(XbBzNo3H)3 z=V{S)`3Cy)I;s#uU0KL+Mqa(CzS5%KADN#$qJ*Np@X;C}38R6;&BnAPFREB(B=_&_ z?W;n=KWpuCa0OP8-I16P(!GXGJ!EMi_b}ZvHCJbly4B_C8dZxB+fULEFRT%eLB8O< zSMBR=X{{ElO0q89ar{)M$vz5wlfSNFRyy6NxiUWQy5^w4v$k~IzqEDt^=jg>BNqXL zD_;mwak_2GG8Ra$`3z*?%yX?;0@QRl*ej`v4FyCPYC!5Lq7vu!UK)RK>q3!8)6~0Pl>~z2r&V>WdVZmH&r3Jd5D?F#Yjdmo1nro4Q9AMO$yX?r!+&35@S%kt+U$cGl3Wb z#SsGd#rBD6)e{x-N?V92mHpu7wY0a#wdyQJvGLJ`dq0*e$dpQv4Tce&=7$GJ-lPEm zWA@l~!=M!olKmqItF%i?UV*7kS&*3@%r_~MD~r(D=FhDR&t_KYlj9f320g22V%Hps zTK{dNC7h4fz&&5xv8qfh0nHcI$+rOQn@CJ;E{B?6ZDTY;lEK`G8ROd;GFJ-gl2AOI zOYLRBy(N5uym{^SK6ctP7&;+FE!*pO^ITz_Yua+ZZ zDcs6m+FuLBp{>}s6w0R)0F5@6^+*GQ-NQ@a zU4>~hrLNbJXOl-UH3mEd8VRu10c)kjiZE$b0)699NQ@nD2tuS+3i;S)!|<{b z!O%ntkbCxP^&&l5Ro#0=VhfVTmIXR*X15pgTM@s{P!teGMIur2cpT<$yi4l4wyi#< z$ND~qnz4p$J|-~Fh4|gAYyAFR{v zi~X|?V|9}lvxn0^H{hJ+CWV?$_O{f5%x1ciSRL#wLRv*lqIV4YK_u#HgtOoLA@Tk` z9uRywHDUL~Lp9^U%It}*GmT$`ap6AF15|~{(s_3m%yW(NM8aIpR>I0`_ZSdTUS&Pt z7aS^)X`AbSsFnTlqwvYmnB5nOShO{d)ct$4r)yhW$e$+V)wbk{y2%>XY{Q`@;Rb!% zh{km;NR|kN8Yv%@mXpa_>fXb_6V?aAvqFOd+apy~I(dg=gD#y77_=lK?YL9Bo3-yk zI=0>qf!Yp|WK}LLpCwXh7q1`n5UXjg&rxKTPj-4lV@B&gG^Dq=Uf)~sdkFV7jvK;} z+GTz(0yw}3NgpoT9qLOR#lzT{{3V54ixQ^AuKC?!OHLyYDyU-kCLwUftWvp#bLhgP z>I~z3Jk#Jc>81JphPmChJY)Tc%1+WyYpfsXZ^zHjTk?CM!Faje>8;9-LxDH@5|6zt zp_MT|kbjzv3UNbC`mFL1x2Qa}aHI1`+tpr6@izz`SB+u}XARGSp`XvaOMpuS1lrkLw1$H9P}MYA*umMpxe zA)0M(W0YFBVQ|-Kp-M+l?PGMs)RvF#H_Ln;X|7-847ZGCc$VH zgNomPfXPX^&hfp_=vF&JC|qBm)uNT{N7Xt7fBLphF`6(U=q+6NQeMIkBKG-s3LS&d zDnT9S=!`G+OO{8-O_g8u8-;?4!l+Z4*@rg>yZ__S?g$~IIDd>O*^N<7FZtcJ{uM}C zBb}|8kJ;CjOHJ=Q3z=ltZ3_>c>S$Id!Kw^6xZXuy1SU)_tU8R3r;-IXv#Fq)f1?y4 zj9ve^NohfScDbV4Nq@5wcEb9OTPZhV36ic2K8sekG6ZqX&vfHC*eEDK^0!x85* zdcRq@icnv5r9ut=Lat8N=QGuilzWAbOT5|?M4n$mvMVerRiF2Xp73qqCsEs~vA`*N z1_V32;MMuN?^_XL)n_##*eLMKZ*M23kkPv8mFHiMj|dog#(UE4%tJQB{9B?J|; zk$l!5q5&I&Uqh=I$NeCO9!amQ_KnKxlkQ;=#B7{5_Wi|UrRwmqJUj2w29k8Iodb9G zK2PBb4SNRh&c`-Zj1wrzGAd{$t`XD&oqRbXRiw6nkD9X;4Om;tF*q`{>3JrPXxedh3dUcQ9msx5_L%My26 zh>el9mCC39N5AwcTsR}2e^r4%bMvMI(WQh~s{t$rRcCkB{aC$t?=XWCg8sY36Y+AY zUEs+#o7?n3*w{9!4}0`Rz4bl3#VnWFzy1-Wvo_ZLnl%1l+X|IWPVP&?IACm%^y}9G z45nh`WjA&rz+L-b*_+l!gbtvuT8%dyC2uhQ-O_#Wu9_AuB}>$h!Iq#aeQC)-$q!aMx8V858dDG z6qsd0CuJs#+mMRl&yqRolm^nA_Dn>~`@bjtf-i8<#5F+vsm^uFPV%vZ<(t>xNH$5t z(y1cB2HF-Ry9h@Ufn#vdiX?F9mw@o@|FhgpLB+WH#ecW>;(hcaMpRN0{NeTt8B@Ws zsv%~X&JCiiT`FY~Q%eDx5tIt%Yd+vNP#)Ty|8dmjh)n`Jlj4XRpZ~JFM`DP3yI1`C zzY3Z!j|@}t=qLW{%4uI3KKZ!C_JDX^GIDxFzE7oz zyS_(Jc6fTqH;?_o6+=y^r8Bha3u%s$oL(`2#UDs*&D9(Vw6&_-{FwYQE;fkFPyhVq znvB2a^@G8h`iQX`-ip-#r;s#iFcDiiKADvyl%uCWN>8ZGegTa0{Z1b(dw!^J=r#`+ zFc?Vmd@JNlJ%(bSvZYnUud<{guk|8+Iby85mY{xHWsG>VhNXdnG}$SHhQT`=)kV30%FR@}8R<=_%o@SaQG;;<8xOCt^ zJ|c^1dKd#(x>>VZ$3UN=O)Pq=K|>md`O(&T&5TW<2oQbrdL5tS8f5e5!X?Ivc{CSH z?d*oP7Vr28%JuHwiMl-y+F1W$DmqYUYtR33OoZvfMyfjeg&SiGSS!gs!&R9R@3tYj z;CKx4isuId2myMcx9YYbfoW>a<2I#>W;&XBR}~r z(ZO!d)?#C#?Q?x>|G^p%`$t^%lqcOlH@YQnP^<6u)1+y z{H?f5#>+q)Ia(?1TI^U|N?kP@>7|GCzERdkNRzAkvt$xb1lcR%0i<{m(1S~0YK0a z{P!-A6vaFkjJRxGE0u%3*-YkXq2{k%VzeA4?G+f$YG5cBqH zrNmt;!)6+H>jnGECSm*fw6x)X!72&Y;UOw62`GsQk7?A@Jxc9aTI};o`l@U1=0~Fk;0?BSKKIYfeDXWf|={dVUxip^hf&^(=_QoZ7+n zg9`4vXq>G2?ZaaQgK!l~A$1m7E-fw_85xJ~q;w~PtTq2jxBE0%guluONANIsn2f$) zu@OkQzTU_%(7@1D__X!ETMkQ4x^t9&@y9UvyE76z|Ef3Q7?M$yvWZ0*u@dN&eu)&=b)9{Jn<$$Mb0w;hzE4~nGK zje3_Z8896p-ZoZLRQJ>H=^h6zy&OKapL;S^-Y)Ergyn1=La7CTRJAnFOb*2^|N5kbo%K{^}%e=4- zhw(D;t9){r*p`8{NLzaR{=b=jm-j<3-B&x~KsTI^~wXm#>qy5dll?Pm}Y zn#SDgVB0}=0gH!j_l-fsL#CqwBJkB$ROM6*qU&h{J8a!}frV(*w^)ZbcX~i}yb`w& zOp*7x8c03k5tM&nKDgEMFR(~?seGxdwD*G*u=+&hM7$(j`bbC=?2@dQUj}-8#F~z? z1JjBHh>)HHg5*ZKCZM&vj;YK^wi{WR7pW78zXgoL=22$m_4b7-*0wYznbLCkE{daq zB^zfE3SOm+_WQ>*-UC<48ss~LCAX7ar5WA2MPDaED`#{Idop}Ag+SIU?xoH781Iko zIn*wf44VnVYPBUZp0#dPgsB5XwO# znNY4Vf%Y_&7<3OUSKPnulKy^r{o%h`->|6WnA8|Kt3I1fUg>A!wT-)4`6$!rAvw>5 zpr2!s*Fd4zj(H`~OQkJChT6ke(MR+)OFe2%p#pu~Rju`ekp%kYd7c%z zE82Qx`&rR z`+U>Vfa~B<1ou(amrgNqI_bWB!_n6J2yWDhcP_Oq95ldIjm+28`uIMx@L;2Rao+Zi z)MqmzAA6YPWw2Wk@1Kssi&TdL=+p08@#SuQZ?gt7GAG$%EO9o1*m_`^9ILiz=`K)d z)vs2?JC6pwxTl}FF8_L*#hB*p7og0!&#G)PNo*>48E0gce&PJca7suk*$M5;LD`c^`_wYk(ziP00Q?Buz^~YCY zU|Xpozi{eTxD#Ph4=7rg8mbKzTR)-9Kzp}rlAv+tO+H)!`dzruo79Z92Grkif)-I; zNMNU;=}MK2l%Zy19484&gL{R*ll6TY_B1^y{y0vj)qa;wk-ge_b6CzW=DvhsaO|K9 zG~;Pvf%NvBZr(>nTW{N?|0T%`5KSkcXV%7$;JWcU%O|Gxk zk$64GuS{R{yg$%p7iHL23dG3HmRC20UHVn0sXSE$s5rCy@@b69GzQAh@1M`7AVMRq zG9>rE%-NuCRDHx6TC>h@Zf}4jO=Us+Vtwg!PlJDT#gI@`*Lx)WzFk|cW43(F;5~;7 zoz0_~U_RP5ZiMoSYs*+k?rXI^%uQ-EIoA4$7HK;b>l_;=WFw{snl5Q&gX4t6A=2|i zmnyrcNkcKiqFwh1R6m)V-c$6wbp?dE+U;ox^B+M&KV>vTwA#k~SdX*QuYF_aiT-*1m|0AP59HY6ACmMo z^s8XPf42;x60^CoqiDzKkRBBXhw)3%>0M|FopkqKTaj#OeJ0fh*Rx?K!VBPWURjyS z-c~m*HlEJv^uC$*Uf-(Y`{uCR;>~Zg(2}p4yzK-|ALC1zdH~RPOY}}Gxu~Lmj)3iz z^t9JquzE)^C=M$9egE9$N$b5u^PAN;$yauRBHr7wp-AH_Co%U3c+X^% zt?i7donCxOJDCW2R>RXH;f6>f*xPs3<++~PTOKIF6xOA?b{A_#ju2#l)R?=N=qLsF zc>Ye`OB3y4UFrh!J*e16jcXt~v2D@X$GWw)l-@DY- zAc%m;h$qTr&kDL}$xcrkPo{5=fDQtN3 zNxDGD~uPDPS58O{xUdz2B%e zE7qARnS^L;9IA(}lGv|Zz!ClHD&bOVJDf=4{USD%&oac3V+B(1PvW*e)!4DJryquT zU{W5}ziB=1+ENiU3yrZ)WP-{>+Z7;o8s$L`W^(vVV?NMWXM{<3N8kAlN+ENow@Crg zdrj%0)A389C&VZK66kwSl7`g1ZXG)D3B^kWvD^aSF%Zoe>3Mf?mGa*$>~8J3> z*)TL~6zDUY8Kx_7>2glK$yP+f@iki|N3p}b#0?}xh^a~K&xpo%5MEx&-#posoY>m+ zT-k6<)q&^y`1vd4lwk3#nW&Mhau;{lFLn=v6FAa;wyTe6Hj%w0^N=KkVjetmZW1## zW&?fi(p_ZOjA@U@9`*PJsUJSOmDLj|a=a%Jv!vhOS|b-L_NoQU>)qEV^f%_LJ$wjJ zPr5vC|Z-BrKzUEPv(!)t(b{_oq3C~$?}f;mYBU7Z5tP!e5F zu2W(=J8@ZRSC7OL7o7L1ZR+fq#=epPYu#7IL6_xCJNrMN-ZrzU#UGzoR8qJGPa=k& zj?{+snssrEA>4NY7jg{ILzKh(iD|OjC5#3CLO7*TaXZ6_?UO;TwOv# z6-WMgmb~1R=@jF{vcme&3@Umo@}Aq|}pW&xn0}?&=6N*0+ zXOUtpbo1rg6VUE)!|+7$_W%`B8JA!f2`RDPG0KgucxBxh>4rRRC3-@sAJ=LWii=FF z!wy*G)nptO-d#9b%C0_&b2{1o@7C}RJG5 ztDR3#JVg~wD(xUV2^G+5n^3H@cq2Q^8F}8UpXZ=8Q~bFx(?d8#7wBWjlsO%lkJNQ)Nhp2yG);EiiiPO3ritCW`L(dQbb> zJOVa_cX#@m?_m^ZC4RHxTVtqXguJsrHV`!(;ZTX_#rNd;yIOsOIzZsBTG9kRt~DkQ zf9MY1ku**K`^6od{0)DfP${HF<`FD+&3+^0RJ}>YpGP#)=Oz_Yyu{o$?Sq)0xRB-| zUx^GQ!14<_emoWV8lj1=wdyG_vz=-8BwhE*jhB13%@$W|+q$8`N=6ZtURHav)iWSTGnn;+oXoN-U=e@Wt~V3oB<3+R1Gve-x% zlie=sXSArZ5P~QQJirZGD#0p+_|C`A&EYJ2R;=)|LIPL$@Q1Y&n)B%mR5BzO-k@4M zmhnXA13Hdy6-*d*j6UK-3aJw6>fE$UJ8c{!5#-#@Wdbm zFXrS&U`YEkqY`Jk9dcMEKO!?nuiTZ zF!;s|>O-2h?vnR6jQVoFd2Wa&>PG!a{nha8FAbwYhW(}Cxi9NvGcH>T+3!(NvB`O! zqC+vBTBCj4o}~vlc2ru#wX<}W-!09qqT4&eOnuTH)XWDf9c>)-8BuFRzc^erHHTF( zc!xBRR=WpbQQ^FzV=|Ljj6YN={1}XI9Me5+m!rV* zSc?;YN-4@@tF#bdA5AL(FLQUe7+CLfQA(#k4aeX{4^U;O{cNoE#5$pIXQ&_o3n~u_ zmSx>AY}IB@ENA%`tO#@37!Ez4J5CT=EvOQqTz|^1FivO6}o3~dz~dakU|Cn zJ=*Unu6De|9J*#{sKf3gVMJl}i>ckE=W!^*=2#TGe-vj4^G{V=Aw^pWsh2C@a2o>G zrofnLn#{jQrMbRV?=0|bdb~>zA1=_}C}a{lV<}rUsMulRuYz^4*56Th_qrWaGXmayblAteeV{&9;5*G^w z{p^FrP4n!mm^M_8i&<5yB!HmpMM`xmR&DNtaSE&6IgT_yVO2kWd$hWjdM#rdSVIv# zI!wHa^18B58z`pyPI5zvCEAkCu?Ws&4B2n(*Au}>p(MrF>atI}kKL%A5we2#B`00P zuO4ul9;C`{(orqCpL6!E%3mazq&l!_#!F~{L=)?(f`_|ml`E&qWp#YFbJ4W>o-5c# z1;KVBuJO_4@g2!g!4nSxTs>9*+Fr-%r4hwH>Uj;Z4t{5Fvti7_=^WtUv~yM`gUx9* zW_Wl0@h0^KID6eS?@)(VX&R+tsI+n8N~mkSUh30AMF-=)Lb1=unz-P7-REg9CPicW zzc=VPWBPpD@9}@oiK@)mv;cB|Ubu#2DSw9KN6{*nU5E|%WcBW~qC*ar0Uwv@iZDE} zfLz>{eIPo98Qk}Y83TJ5UrAJ62I6)TV-vyY_b1tbHq?cI_=CM(q-NC$VQ@2BE*}`+c70 z_j-jt;JU8QIF9o?-v_H!@==iWT?1eFP^#1eHltOb`qoIJ?Q0C%QLmpj=SFkC&g4S( z!m8-jz|RJ~R37z>&Ww0$y!)w@0vYbp(Df>Tbm^rPx-(B|Vdj-oBeA~2UT>6a zo@Gf84OAzatsk~p-(T>#vlkUM@`g{7<&Mdv!ixB<25XEvji`o%ilSMB3p2yGk2i;_ zg%10&F^=4;ak6(u9sU+t8-s|!WiQVh$zym!2bZNU8FEnMyFoE`jK#TF0^tN}%pMGs44=z>l`&llTR^@`k!O>tRQ_jt@lLVBzV_InOfYmFllmr$qN98!e8Z0|L<`J02MOx@P>M^9z^C9 zPUPQW?sLng#M*Ld;cZIDO2RHt>V@83B9rE-cJq2&TSH^4#-}J=H9xo$)fZMeqieql zEy4#$uDc1ES}ny1*f>yEp!`Ifu%2j_`NOYEG>179V}^L|6vnN|?(wtyAp|$>peT~N zFB~Rjp%BsCn+xeBZrWFWD?=kdmHMHc-Rm)iYpg)RtL68#RA-P0!kjtMwR3 z=dz*%Bfp9XX6-AP>2w5iObo=E0PpD$6La0CUXCZVUU7|JT^!)`;yD;XvH5(4mBwe* z3RH?3B}pKC+z0<7rE1iyrN-TFxU|*0)!cag7}*X0TqMxA9tgDJI1Lv-gt>ln(CqZJ z`ROl`%hL|lY*cVJB3DTcIxvaTdKhl@eX7RWaqIaf?%o&wb7{E!4<_Z} zsp^-aI>;$}8a{ZyP#>2Ls2Yj%jWh1Ps@+<0;$vX$Et?SeclZ!mt%77iyj&@Be6v@a zAWe9l(-@yQTL}I4(Di4`)?+9SWTKRZY*BfVC=vUW7J^b3YM(yQB3c-<&B0r{M>5yy zjONn#<#fE}_KwWF;q!^RBhTYDN25q`gHIV11UI))JP|hyyA@N{F~W87 zmI^w$IumP#d#p{U9X+CWRi_D%HV+fJ`sM@8q<)1ti!%SoB|7o13nF*4t3%Q^`Nd>^ zR21O*g~5AHPeEpbk7Mj7WJK)TB^mgUPx0>Zr>p>fxP-qT?pt+}z0*!~7sU7>vVGWu zT8JbzC!OVDh`U-lZpTpg7gMe&8|l$fj1Leb2c!fiyia|-7J9Wzp|;GmIm{8JL{Pq! z4DaPOv>BA-k%CeEGj?Ti@Y`=Abh)_dIsD4#`p)sed!6s zUtj#{;Y(+PaNXLVysm_LZVRN;c{s50Of_M2uJsf|1d=fB#1W5N3FsBekrLnoo!#lV zC=7skZPQs;m|4s&SV$LO;61nLS~@F!K1qeq;zC)HLFo@htc{Znm#qLmib^E>?b|Na z2zL629-G5!@j?7?i6Qx0u6(d@Pn(XyH363JgEd0dt~kSiBmC5>Fi&`3#9$g!Cw322h;2MfW}Vl2yU{9 z`c|EX33+8ZEe;5K&%5I=&FRP)p7BaM@rH{yE^;&=SHzdrr8B#>F=1(P3AX`3^GX>? zs3pg7G$}<8)mgSp#liAzpP1<*%e2a&iJaVJSD$9{X*J&dwFAwvOsWY;6T> zaaZ%GYuXXm3!FIH$~6~iqI*MGEysRV)=Vo$!0amUX}7SU^FSW2L2)R8L){K6!vL8? zy$7hox`iKrEpmnS9wd)enHf`cXLFMYg$mFq%3!B*%YDP6@9E2H^ESysufzCD%`U57 zlDhexmqi(ElD#Qa85Pp^Gs@s!#FST@NnMFpm2h%f*5c;k+(%&gY?QK1rJp2>KMPY< z{`I~f%_CRi^MK%l_EPsGYAmM5PIzFzNW_+)GF7jY%3Pm=E)mj{s;YW>`TIXz6@Wo@ zba_p|SFsF`2`Som5#W}Jj%u82Q^y@939iotOU}QA|5j(;dst+;f78#NT+oD&$3`&v zzRGIFm1WUXj?Vq&d}b;t^Y*oIyv)Jefwss&Ad1v@RR&Ybu+OFR;8F`MVT0=O5bjP7 z`G1?wQDOTZc_IZSlF<^5!Gs`?ZjqIEthxXMc+q2;0qmKyXTXyHbg6@j06L z^0{B~WM3(_;z|Uwf6L$THoo%Sw|X$EIJx1O0(rTV#LZrfJTiSu+Ta5v2OIP$G5 zp+`qoqjm>fRP1PN>%lE{J@`!hI*Pa#NMR`N^4P1Wr1Wds8LMJayv$4a0JtF#rI06T zr)5ZBnbq}5(l-Qrpf&CW49AmFJ$mr7?4k*eI=lM=pd8J5anqN|!^0DXDRk?8ncBey z7lu>HzAJe%2B#|c@V;nqSGP#iLF6?Xz9X{u<=u+uc#=DRGTprC?A+gn>=oAUjwI?8 z7+FR4K&RK6eJ*znive2+;}y5utI8lH|6XXK@Mz)S>5!-I`uWy}bFJzn;uA}Y#bAyiLM$GrWs`7_d43=m=j>gp?ryhKEbhM*N z6w%0sx=p^X`O)C$`t3e!_)G^jdc7FLLSh`ir#xkuOm9=A#3KRvy6M~37KjXo6bol< zdSh61xP4>=Ojo>+C*S;8(znbAng@yJC0H_62ZeQ;_+DJKaED{YWX?w;Q*S{~(E$s( zfLTD$AY2^G0`^YDL|P2D)R*Z7HTId3MkCn@bM~r^%PPY*2HT_Tc=sLsmPffJuY_<* zoLFV45r80B-EBV;dkDnH*$H)6WjD4rxA?ZtsW3;DdO0*Xx=xxNxLCqYY7Y1h{AyMH zMysy;t9THKT*=9!gxexRrZWeCc3L+i;Z`5kp%F2+yx`K1OHGi7bIa>mx{vouUN0fg zCSZ^ubBE@T%A&Elrb?fA7m*}LmeeL|`hA9?i6-fhC`g>)ek&}Z< zSWmgCTOr38X_7$3pC;TP&H%v{EmBE#V?J!-JPk?&S3IOkJ6{;*+&+DEO}==^ICl-G z6&h|!!bjQkJl3`#7Z*=#Yu%d$B=dxU-b3qGS10-wyc2UJ`VGh@w1;0_0GX2n+5uJ2y)w7GOcYk|+hc+gQ%`SF*@ z5^dr9gIAY&3`jq7#qRObq>!99>e5f8K@Ie`b>jt(^l}T4YC9Wx8-D>?kLpACN@K_4 zK)o>4du=jzFXsD8hyW;HTHN(^RhB1NBupsK^TQtN>d%(AYU*vN_3(ECnpGY6>tz2l z$r|ujSEZ(mPx0swsX4`Hcd>p_dlw+929bL_EbHa4`8t6DrnEn>01n`YSZ~S^)jX|M zOI)({T${x6 zdn)dymwz83cikv37C=VRMcS)$5a9Znpt=f@ou68}8-GhL>YF8elDpK4ks<}egmkYr z^&eKy)k9tgE;gR}n6#SDY<&Ql?Xgo?C@&}y^^6!!r(pdm$X%DMv`_Z6_>}s_sA0N` z|3?$*x|O6tlQQwgzj(iD3#Iv|^vQ$?P2^gNqA04X!_6;+2B}9%zZ-fcg=N-dgUw~Q zpMPks`{D95!ThT-6+*C&<%iLA`5L7H!a6w#uj4HS?kI5=&y}ndax&w8=K*FmGvt0b zR{J-6||cBZ3-Y~8=qej#h~ z7dKPzQsWp3&;R_{y6L_tf*f-`uJMyd!RweZ5bw7)rcuqd_+)n@*6eqTN>`l+%&YWaqg5tF4J z=igm+B4~?cgZzYU6a`_@IB$2xY$Dvku(Cau)u^Hr!6$)+&c_{&-0Ek3=%`;_6Qhu8 z@b{3Xq21_JPQ>uDFP(76bRsZpfB^eePfA>7vsFX|=sR1*-uZ3ONj+RQW?^p8!*P1{ zpec!UCF9N)9flaKHm}}+&6Sn1ThB7jF!F|BKn2m+poC>4du5_PUdQ{TXVO@&KBRb3 zRcd?7sMsn;al-j!h47DXEnmoBZjP3BOp35U()hbGs!o0If{+9k`EJG#Tb9c>{iJ*U$p7+3WxZmXRrPC9W4fykoCI*Ra;T*vH zieQUm&uBVp=2Q{3Ib|Z3n-ZL(Imh@zM^OFH3%Hu9I-87(r{8{00%7N%EoFBx%y(_Q zvSVjoMo3Vb#7o(0(}rgiE-H+q5F?)fnJNgO5qD~;VtOkUNYe--yiQw5+frqGs;ie} zZ@1j_-zuzJJz`f zvAGbqVUZ(OTESKYzFt;+mc;fIIMXhjx^gTsikqT-hZSp_Vf&~*AT9h$VG3{a8`A?r z_db$-*FY65fk9|{<8NQZRW(Hc{f1RiBZ#vAEA>iTmoYTDaPl(lbnv)FEhvKg?4g0<08fCsM%hEDx zl_$YE#$#diC7PQP!s99V(m4xHrZV%6IeXh=BC*#DSQ^$IzW&U$nYiZ)O+qd5^;|H1 zo(E|OmE80czTX#Bz|~>pa~glfuZ(fe^$~j*8ZzuMSs#w+1SqJuW_~csC6n(b zq#o`LN^~1^uT(cd26CJkOLkb*HMa|sjUG+p%P&cS=gcvlrg2O>2_lrnKF=8VOF?A- zJ2b4I6tZ)qV^+br4}Sp1gH(z98{P03UaV0ba5P5v1)SF7Rn4cd&3L(lin9e5E{bVo z!22ES;(GR#EZ!HY`~LSyf7cvzU@$l@cx>lTo4@wD{EEBdA5-fGPrrT?m!PN0i$63q zsIsQj3LcUFYP0uoUPup%60v6f8@!@WwAHhAwAu+bf$Cs8Y(j=5%W;Ck&y-br{O?In zX1piN!cu`aA?A?prN4&`PXzj9v>@f`bg&e6d=OAL|X zL`F-axYDtELN8u9mi1A6bgP(bPS%;g`n3PZF`MXdFA6w(6 z&5tWj;`n_L5vUukm}k}5tJBgf>-W-Q$g9mrPSGs~VpFQcQpys;@O-_a`#R@;+rU*t z;VXp~J-^+0POg&Mt6Ecgg`Hj7$+SL1^+o_l5pBs#-E>#b(o1>kTtRdD0xs-9l|DEomKeK^*Ek?A&xyrvg?*SZlFH;J}%+@-j}Uu$}2<) z$VW1}GIlA!GNh1{qbwt6zBT|K4fppp`u^v})}G0sH*zqjO2Sg-<|r3(WB&ZwXp>cJ zdbujC!+JU>QJlz$fp$n-&oA8`ud)Yb-ig}XX^Klgk|$H$cpYsd(}e`{hl`r_h0@O@?gYo~HW@9X^izBv{3EVRO|2`9UewwuRcqgB7ouKI#i*EL;iBZ` z9y|kRXWiCI7gAvC3w%Y-NqU#wozcKzqWZFri}RF_lv+9Q`tZJHd=*TsUaajo=g@e4 zWn4o%XB%x$K>YdWnBL}9R2TZEy;NatP>y<2?KM|A@6meYNfR(YNLMPVKXpkRJjXeVYV$On7SZibmGIZKuMHOZ8F%EK zw(fmX0s3r1BuErQdmJ}2aT&)Pbz-S%PMAh%S19&%sgUO`$+=R?4ARP6KOXqtCnu#` z5ri3LD7-Jd6H9H28%{ItJheVdPxPj;vD<03 zqngULQ;^Wle$m-Wu_(E+r3E5t@14;L8RSp{njittQfTJ&Q5Ke*5kKU2;x> zMwxUPc*Hp^!N=W!oT8J9yx=RB!{dtlYq$S!gNC53y-T$Cd-2{_2@Yt%U-*P@ht^6N z_lMh4V6`}ZV|#<=yJJF0f5ory>_gtnvsFJbPH~#*HZ=UMUk3IXQ_tqeO|)cc@x8pr zO*2S#IKP(6wf?dOB`tHB&E+zScTM$7r)KILz6+a+b89Y~EC?L*J`Vt%RYfp*`99JK zI6|p;h&osWlFh#`)!)i5igwsq%&j0+oNZIS6^?J(-yD}+jyX^N@`+_1)I8vce9$ix z!Q^Kva?(LD_{_{uWMb&)fN*;NeJZWfq{++d55>A(hy&1R{P(Q`FU?^gFJK+$b;MY) zdcq_9Y3U}gLoK;F@uP(EPa@=DsepIXn?QRvwC|l)kIna%Sehx>4z7AdM*gcpyFLCC z+d}VaTEHAXKdO%FJb}^-T zxEVhw2{cTsK2l~Mnq7rG^0mpn9IaUY$d~?suZoYmMuH2S zx^fg#g-m{;D*~!ZUK*|qa##1+wz1%sD&AUoCU&kjcW3Vm(t-?+hI)O=gi1?uZ_|#Z zuQYF~8ws}gZ0zRM1W(aVTvP#V^C8SGXB|ulaQf@t0pdBh))L;9_RzO@zNvOhnK881 z*FmDn7syze+z1510|xtxMAT=KHRBl8Bc}Hv52~=v4T@g)By|@Gc}{`SQ?{xdtqI-jDvq} zHE`W4zG}HX3qiXK4*Zu5*$4$Z%Ab=>58D0?ggQ&gnEQ*g37ukj6c=CRUY5nEew=~1>@7B z(n%kHps-Ht&WqkkUe09u^VItSkl+LE@Kn)W1NXg`;Q~ebhZ=d?Q$U%+U^!HzOf?pW z<(lp`&V*jAtxbp4!MV2@@ZB%T#ZL5YEzOmw36Oce@KhN6%d7sPQvW!CAR%U8R2wJj zT=?zZ+PFsQ=u?Z*sjwfQK{h@0g-Npmh!WT;oQ>d{D zEN*lCSY*z_YCly7jjlLQHs>Y^3dAWZ!Cep}O`-;8+_grA&u{DPVD^bT$jwYKxt>h7 zoEw82wo1_r|CrF`OkO1DA6IoB{VvY&C}OG?*VrQ{IM^#1HBVN2RFMrARRp!BP6;fo z)gop3tUEcXIA1mhJjR+CC)TeOmg?sx{F^*A-ff>sU}V>}4o(s8m=K+43p_2mDk5Pi9-0rl4 zf#{cs{}hyM+-r+xDP=q?)=Cf{H~v<_HgR6<6}D*@Ch{&_jG;;%wLE4;+Bgoy^P-qK zsE7jitgZ$P*%lxGkHYNd8;?(%TvIr*A%Bik$UxG*>6hdrmrK8pnmIGo`yL}^YK_`= zzpT|k8i#|eOVLS4DKBKZ!tMeZBF$UA1tr6L#vQnN-GoPP^@6e7w1b;ebx|jMo zt3*hreou4(!M`}4+@A32v<^Q!9S3)SCvb88Xw=Sm3D|biQEXiT>Yk^qO70E4E5dIu z1?GOPn{mG+e{yhkm_(oZew;^*JOiBaNegw}$9TzJavF z96$RUcG;!+;IN!eaH_|)$wcO&T!5KxZ%hC5cT$a)u5fmqv_X;yL`gc>9_USwf`81H zIJMrLCh(sZybg8mdLDeZGEi;)HFyTlX{;M|lI(#FN$wQ7drxTX?#$^!xkeTRu6-_) zpmoJ3a9XL01d0dR;e=G@=I@|Yqk=EC0-z(^9R7{e3E0G1Btls#g-`uK9#Fy32jB@1B2sg4J7o*fS=x-o~_ zUez&GpcGQ~A1^wDSd1H%!}y`xIY_T33lo&M?-A`xrav5Mho!kFX|j#aKLc!nvf8_K zfs9}Kg;zerFA30XK!e#aqz#oGt!MeE_A})lo6no=g$)b049*Nvw~YX}tU>D9w@=ka zz?LwhOM_A2!DfHNQOUkav8xqoZuT000^2^D71rCW-c3t?P1j;vlYcicT6N{~GMT%w zJ3#{1w`YU>(KwfoJIzIbcGv0pHH^!PVtz;5=sTmI)1-fsE<0zK%Tyb(YZ3H~vU}1M zk?`;tp!NnRWOmm5bM3RR^SL6-G2OPF^swn%DR!`Fwqapz+rkNV+ZzAHK9Cy#WHN^l zvN&V9@bCz)D*bhsORhsOAHh78Z31CU9o}R2RKd;&VbmOGaYWxO!Ti$aT;z9gx~-jJ za`+}(pK*&D04V(*HdPFl$T&-+?d%XHG~^fWfE)5KVz&(mjHg+cVObqJtM=M)SH8BE z&^P1x_UZ3Bp1$5=EY}!HhETBlU5DViKj13+Ejv?dZ{D15^4vg7y7WrLgS0a z2t8}s8WHGtk?FK&v2gQ_i?B|$sb;yrqsGb-`wVq+>8bYwSVr2_`f2O~E%UmH_pC47 zowzyw+;Dq-`?L~Y{8?s{%Bh8>79VNefS;-=omp^cDTLFCyPn)h+Ygdo+-hJ}c{KJR zSvzKc)$MUzDr!NCLrUVOCpBL-#+%|ny&%p5h|b!890mr^e=F4#w-oB{DopaLV*|Gi zUe^YP1wUNRQ|G3YmkRYBI=kCrmPh4jY?n9L12o;sb5L!VD|gv>Dp=9()NNv2dS#xP zW>PXn=W80K3DZ0?w1Wa=DW98&Ded_k63NKsFHWQF4Xi{t(?<~Wo3z$8r!gZxDng(*T4D@ppzd(u# zlZ{>SNe1#-*$9d+DFWp3BXqiwamls+{TV~5T85evZ2*erWg=W})3aAZ=^RO->_7Lr zGCFBioj#c-T=Cd#ojW4WFLDDx$f{+xyyCVgrj{JU4rcXn z(@40bk7j*L-j=1CbLMtF@{NbMs?J$|8y&yJp`G@=cBYZ4@8+&og5-dWlfFTTpEhGe z$a>0*@bG7&}~3cwX!EeuZE~R#Q_sLVCp~z)O%tF&Kl**}exfeO zp?6sy?Y>v2`M#yLCEh;5Y4xR1sL1;jQaMHT1DC76x@_@858Hfl?I5 zpM8#dFW6UnJ7G~JFBR@xn4~Gf_f7jlt60PFWg_8L;Kj~a15higoM)(K->e%}xzzvq zJ*I19eebMcvZqagpYqd!p`c3fT+fV-a!p*AziaBK!^~NISpVys;JHa7GQxWrl0z^<&8NHOJ)K{E*yP zrbbj1$W`xEh|xc`)b3YoD1)dn_ExBE;+YQHo4hq~ztk}t)fstg55_*WSNnN_dq`KW z)uOgs&vf<=F`*Y)4FZ%VbR{cutM5wZJ>Pk2>?wS5iRu5*G{B-Y5H4zbtH?U045IFS zTfT3{FeN1^T=cC_uYAe`0+h{@99KZj4Izo*sjTkeFAxJg0#P!S=>d!5abF&@M(Rb6 z+;6Nl7Q7X%@pVvk4CxHyVK6`gBZ2JcV)c4qx={clRh4a9(zBc?)TVMTd&3|2Pw#_m zp9ElmmR*vi*kFTf2k#+I$)x1d2VU_kt-j;FY{ptfZ0$*(;tK-R6fRtYzd<)>3F6#! zFjWG~T8{Mh!H08Z@8ES+IhJFkV7rmY{u?+E{1X3fXdW%GBWAs=h69%V#D8^BQTLmc zQtP4F+{iSf%;LDFM9>cJe*NuH{U>6!iDQ+~R%t*k-{m71l#ssLNO135W~%l6dD?$+7ntavA-})(>^BIoljnY(PF`)*c_h0k;XRf_calgvZq@ce{P5z&9QJ` z(|84Q0z{sgI?E48BjkJQIP&;JUkf#t3{opLb{SR{C~B3bGV_52t5`^)`Pj(F^CIo2 z{C+Ff>0jPL>Tay?2k$Y$Up0ikq&#N90x`^QE%-P1Lc4=pX8PY1fVk(}!`lr0g`!bx z%yDfJC38DmtOW5yn<}Tw_UwL{oYT~jc?~~DU&byab>lZrKr`;Cp(3urYQX}=salNA z?<&Z2>xGkn*O?58!-$(OGgs^b%Sei(H7wZ{tet^7{D>wuC(Bs-I&dDWLmPKNSE0h{fD{+2a*L1Mf-{Po7SG zNNf;-6BR_;hHl>1$)}$$cst zBhH&F@{jaCid0*U=pM!iD1+lH6i2a6nKi9?mJP(H* zoDPqT=8fK81GEDss!uDgoEaq{8^)dRRyIpqu*vOsUA!asfq!q1w=HnzV~9 zcoSvjaDyY#+K#8|)ze`w5~G#7V{G4wM{TXME=#s61tSBvR;RaMcJbhw>hHX7DoRnr z`5gvmp4^Z(Ok5=TkSdSNfZ56ya9*(@z~82RiM@PDptCDNPNY}Pxo>|x&xR?rc}z?&w}!-o|Jq)0fPV1sp0|5nSB&xZ;H${JBBR=2^_O$b($j zhfn6xQd4o!Q-&6kl=;~r*tl0v(nnGu$+P}OWf1PlAZVJzd2uMI>;Nb zrR8}$rpe3S9_^P`{v_XHmxv1Tz8&AWC{eLOkT-9qyXc`vsXQC=UM4j@9rl3FDOlO3 zFQ@OE2g}{bnpHMts-SG=ik-9EI$ABIzRevpKXn?Pfp^l=jZE>AHAZ4YOc%boVMD1Rf zMDhl(^|_yp(%Ch+P7R?-?+q!Gt`XYv!PUb3P!2jyQ-&9$C&^ReT47= z;Z$Lm;#p`Xt|~x!b248jIMn2T?BuU^WNRiQMsI8nGQ8sf(Hi4pLe&U=SdS{(@z8kQ zQ&)wdB}?gO2^|i9?aEYLu9EYuPHG_L&=U1oVwe;D>`D+?q+oLYJ=85#gG28D?s+}5 z%ZQgRZLLzqacHY9N0``bgP*jKt)fWR&jiIGqpq_pd=6D7L=G9K``r_R?+2Wf*dlVah z>mm6;{4cn4KX#ep7wknT^}3*i#{JfiJDph2xArUH?Gh`Iag zS)P5`f`9pQBNvXQ@8QE9jPrI|37||;VOh7cRG2Z-f`>9m9ux2yd~%B6HUR1oW^|sY zU>%%4QZGjc$q5CaEH#c;{!atnk}N2D5|yOB-T%Z(xXnv_rL2$VsW71>sWOhDCaL`X z6MX=VbZrgA390L+@CoVy_gstsYnLZ%ESryAODZlY#h!VX^~q$WYFHvscw@H+S<|>@ zkBxmUqLYNixc7Ma6X-F=)rCb<<9((RYuxBDl9_GSmciORo=ePHUG`Pj}FP;C`!(E483IB;Q~KDD@XCq3PE&F5xcJ?ICu~ zE1NN3rmdCo{;FAzQ*X@ae{kIV1$xxrwhaLT?sP1hcUFZ^P%Lm-XHe*&^Q-pG0x{RJ>d~_Vbu_>gyCzv|*=1^FhBVub)N(VIlOk4-6Iv&i6 zoc;nd!&~U}JVv!Ap8g#%@ltggoSKrh#4+J3GKi#xJN}}g-{!tcf&^5MMal@SH2Uwu z?v_69NO9w(=Ii*vd9*Wa&3asYL5=m8ML-=h-Zpthr?R#c#2%K5?yP3NS>K*O=rMvB zR%$g%df$~%WVdOA6s-Utz%pNw&w_9d9u^f zEM5HoRKd~;ZsaL~n;~nN_w4XWr|rZb+HSoN70E`z-7v5AyeMhPI#;EhCF;ri_l;~o z=}u`ZUUU_UH=nM_-VA;)?jo7?|P+U$UpVnKGv%qX}6|(N%|a z24;;N-M#WGW#RjDSXy#OUPC@e3Smr9&Y$@6C_7Q|m!}^2*WW%_T0UiJCBM53lG>d0 z%eb6|WeQ9{VO8V^!4B)f;K-9R98u5xFkrenpb9l;UDpCkPuum~p046N@4Fs=e?8rI zGIy=gkpP%C68-1Lf5Cv*mb+Y6SsirOXm~AIoH8dtyGMnE=;xdNN;Rf~6Q)B@o650q zSxMx8d`cR&gSq*#x(>Ct72g^x+&N`JKRLTlo9t4Hekpm~xPoLO(B2|UnP;rZb9{2A zdW-u!BB|WLSZX*d*>b|mR@W@34oltCPJb9$rqr9jpQ9i@}i|W1i2~FnX8y8@G4Tu%(x(; zPjGTTrSYzA13e>{qT=nn#{&JDlSn-J9U?9stY4GEGI$*ics}mq9cJQ?S3kv-hbBd1 zqdd9LD4;Ph?%%`U#}yP`v)!qtyM=Rm6D)HPqE<#a;|T4$*{|5s(cepOlI21deb#7= z%i5~|e^?06O}coJ^|o z#E;`rlL~osfqM4#WC?!?1YOK5G@`TR)FTT}QLHnS6>{xA_aE*CyJp&cU-4R~B8wi9 zqH^Q$EC#X_I>&Ng#ysV#I2Hqh7F{+%V4$KR`6KBjF_Q4oJ$|{)vN-0AU7-ar?@je@ zF;+%cBDIsZZi}gEb3+rIW$!e&Zp*tR&|ikBc4^BY9GPD8am_P5HiJeHp#l@LdOWzf zvZZ1_n7(2UMlj9A3ms{yn?{$2JA0Mw?&I#j``yQP`Z!Dyb45Hyxl1M@w4*!*peE$< zFKNlUG6bePGVWLcnR6!feXr=_MxQwt&tNS-YFPGOq!m@-EyDh@@t78dH1P2&QHQ~ z*@Rs5C_EzTkiu2mI10}xU$e%FE*_O$4)%v)C9Zx3v z0c7oF$9VU!?4|r~-OHu%lIhp&OXl1r(_p!d-8Ev&rstR z!vQ|_#+AI(pm<@Qe1TDrukeWUNl@tb@7qw&V;l(*%lY= zgyS2Bn4Nc1)&}U~%U1S1ei7~;i!;{e-rL4C_k^yc9j>_@zap9C0}~HP*9l}oKRp`c zBE8!(p)j?8jA0I4$CzOu1Fuko2E`9zoElr5r*2)Dez(mzCcHF-cFTg9d5xh>bwvIZ zbIK@tVy~m=TlCGuc&!Hs=Abmo$ieNSm$0LXlS~F@bV+2Y;8?}W+OX};=7P=Tzu`CF zE5JRHE12CWkAfss0(*mJ{#n6U#jIt`?tBKPX%pj2E06}qr8#dw$P$!Iigd-nLE_`u z4tSzzaYOAyIct*emDrlU`xGKRjh3=W0^`-sVL zM+Y~W45F(SOkxI_{A6*W-o>J7Z(Aw#REL5PEQ7QZ4J9BmS@YOpHvI^Jhs+$ln)1dK zFY6Z)(eTemyn0^9HEqniK5-TsWRC6qQQPMy8;*E#{QxhY$zI@jzqziVCC_sDw)*3U zvr9*#X6?x6)x?1W$IpRv))bm^(~F2%=kjzlMurydSWmriz33yM2}IWnl`0KpQ2~@7 z^#GIM(3UC`sF(|MqP^={Iq}MoD8X!A^6@bb%M0a|E!`wS@Rt~eXtGG4)GUPxzCR{5 zC9R``0_zl|)89}2;HsQ9COR$ojWfh0nlB?g!h2Z6+5~xWWkI?vJK_zyWK?$Z&A@rT zHC$a2o>@@SI&906PBB~-i@Vdu!l=)fhtT_G>`uHcO^+VCk0}ce zZms7&@(8A=Nk*7Nd7WzsS#5`{MYq=>MZc@Hwn8e(;pKS%Q3P36y~O_B^B=hJ5J}^L z#FOmo^L+wkRBV!VnqHfG%Vf)GwrMu6QSWU23P&1-msk01!_l_W2k_9w^pj-|y|#{3 z+R;S!jdRe8#w8@PyXsEE29BFVe~5cY)B}!9TVni*f9@MQg3)sC^8GF2q=C=kYg37l zB)h^c{2*^RAy(V<)83=M_8+^1eE;rPbtusLwv^R`oe*&^#5tEc$}{y5!cP$0ZI~t` zQ=V-nQEo+<+3(l*1iof|TIk_w!DNCBW|k;cEyIsSe|@`Oh+rLn!kBpJm_cRhig_=Tl)7O=PM9f<*@8+yZS#6Gi0blesA@r_B{q(m5Yd0!7u^Nxk-8dQivKr*2pO!UQhg zkR-?3f-sE{)B5^cIXGJC=WB1RfUz*0hBBKijZ!vOJ!X)pKY{PT!B#Fc1XA2 z_M6)(h1d=pIw-yB)$xJOykJqFl7Z*9TZ6hfXjTYd)H$9s6|!4@>{iTjm+)g6KO9_s7g$yFjlvud>1o zjowU%I+cF;e&bI34a0XgZn*x%{I{YH2L+Mr3J(5r!`$5N`iXf;R?6ZA|C;Q4>V|;7 zQfs5X?Ed1(6!!O{{}~aw`PY+`TbjEHs)!rG`oRmTc;m#s^J?BI_Jy`dc-j*}arPOP zPdcc7`^uZ3mS|dY$2Ir%VQ{QzF#2A$-PJ@MK5=Wznd@<@rX6&b>9>W&Jl?jJ0_xbW zJ6Q%7wQeQ@T5I?#Q!88D>Rb#ik(K7!^B8h z?S~Xb-|-DPM*1Z&psQ6b_qbeofqX$Nsh&%}$bzVA`wmfoy%J#QQYTvyuL#D6*bO!O zbVPlQ-cRuBsdxaILi4=vx0s*izoEsZ;O3FWhbb?BIZc$q8 zB14IhDxJ38kar%av96I0=DA|BSdY;3>Q0b*CR#uC^h5!&oq0O2uX_A!#eHlCm3ISb zTucRZN8ty4G&M$cJIv;am-RW4)MC3zmrZ&$G72KNcj}#jY#S$q^ieiX-Rh>}fASwP&gm-Gh0?AaGY^cfIsQ<6uIW-$%8+!gSc84GW?Q1dS1(XE_Q& zPjKgp!u5hWh6o^ZezxbD`XhRGzvC1Kj6_PE>Rus`@2jF7T>nN^_r=4k{V{uN7up$n zbs=++F)+FOIfWLCcKe!Sx9mUh$kPG*Yrs^56zCNDs`g+vc{ zWe`U1U;(tR`AtwtnI|o^y7v4lx?**yUfV59DJm(~B@K~bfI1xO!*~nJDU(JndW&(TmS6;13>sxC3nP5Wtxm=5YoAJ;z5)a;K6nHemg?YGgroE==Sj@O zGK|hGr7Qd690}to5;K9iVl8HTeFwAGp0o|_Rs=?gJ3qmwVFHumA~imclS?I$vJ*ho z!`@u*dltRORp+2qFQ)szvg=sWbqP~vr_EU1F1I(1lM1Nu@ko6dlWl+BQQq%FF?U$2 zrAxP7QHqrO96u`EWs5y@8hqMmQi{6^^4Y?AL>CK|8@Ms#NGB&w**LrQoyDXS{tGL< zd@&)whq>|N6T2iR#Cm3Uy2fOJ z#4oKT_`beIzp5aDM|Tqht~5|p`EOlD$*mKPvelKCjY>2knrw4)O)kGr#w+VW6pcI? z=hEvDG5P5$2$o)oO7>^jj-#}Nzm$1TD^qGe>R9LmB))AG58J((lrD~TMrdW02>+A+ zqOf38x9!^jcaC%(Q2+oV(4Jza%a!4mwlK4)Hlh4cPe#%wtLGhw-2o@%l+vLC_|dLK zHfS3)=7nq?9L|*G7jO|ag&$0^TJ6F9SZA%`A3B5du{mr>b)`1EPcYn@!L0b|_mCGr(BdIXsZmapf#AzKtgDx+ zrCXTY%-n8VTl}2kyIRTX^wU+~^{YcoR?>gEDq)LvxBPI+^w45VCM8f5_1vCoUE0az z#glAVpAaHKA&yi`a}EfMQWG;MNbYUIl-xMi<)ED0KXa~EO0gtK)S7~fXy4;B*-8;H zt)gcmWvKxZc8(lYTo3f)g}-X{%>^o2M2~x~wN3ER{upYqU;PS`g(OY)8T7183Qm`R zBlr;F;8-R)u3tM1jMR2XDbWZ5iH zYtvD&UchZ3T+mgF&S^Tr3sYwtW&p}L@5Mpk9(SQYgbyC}A{wR9-9cUuKG;+m=8WDL z!RvC3iePueSPuJbj^2P$IbaO%S*edIQZ&2YvO7wu#`O07{g-yseSQ>2xoO2%LsY`_ zuVr<2$iH!u*)hMpzKp^odpv4HC*4ookmKT?faR#%FL;TbkNw(v;=oAEi-YN(h_<9t zzu*3Iqru^ek>@~m`-PcTYJn!=Q?6|3JFvL(yYKCr{RO1btD@UbV7;rBEqNxNDIAuq4y$$B3-(45(K0t)Bqvg^Ly{R?p-Tc>->Fk&Noll`?HmU%#(a2 zM%L*%)19ex8*k?;D&~og$&gm@F>f2tw@9z5@u6|fk&hiP=O&#+taS&;E5C>V3eVT> z_tFgeD$sg`;r>mc>@i@czlR1WAK$|Ln2DZw4i{1R&he?{9=iEfc2lh$D>ERiE2~Pr zM8L-1bx&3w6Sd=Zq3(v#=6#>fl`OylkAWaPEp1JTGm7>$bn^vRwhYtGgA%t(t2CMS zmbH!QCcVK523lAtZ|{FocXq;*EpbVDGW!VSg?JUW2U!$CTC#ePmYrafmubEVRrQ+nsqYv>YA3q+~Uv3L! z5w>kI8?}~^Ue^qRfqUwjA2-76L}{SjXz8AR*Tt&^_Kw%ojU)uu^gFSYH}Q3rZJ%{xt#&vA|nD~1Bo z^IYYEZT7w_bVK1sM|`fz`_x?4=Qa;V7G7(4F`CQ&e&MTriURhECcZQ7EG-SA1Rl{I z4(%kI_c~Qn2}kQk%e{a6Yf1~nwCpidlqS6K8zJl(Go=>we&VHKL+-!P-2ml~p^t&n zkRi6~}*(~q3B|Y z@(9K(cdL9qduZ-3Z^DSgm`P^ifD;G@vM;{a@GuQ|oZXpQpP?-OC6_f-g9=wrd|>dO zA$50_f^C0*`Q?Es|NMNgJ6FcPd1_Le!|d@Xb!TRR##I6=JEF>Zck9#PPU^QKdb;Wu z_J}@*?bP^Topyp66`Ulp0(Kzkl5AZ8m8n!Gsw{5KKsa*qF^E<<%Ut23@X?fC=Bqyx zgFfc~bP_Ro^JY zIBsZ7zj#<$R4aDFDD0|?;*3|EKi|r4=HT4tJiP6qDRj$4>iXg3j>Nx$9C7sg>pl$BIs6s_B+*fpN%D`3AQr^ zTiTTSP=MZ^`%_~|mgNUUPTQI&Q%+P1rywpQhZaVqyGJ4A|(tmH7RnOSE6tswbGH$cj^py%E1zeA# zPk>SV8}s3Dhpq!s=h|n!@s1SCDv#$b-knT)6JOUi>=FrPCT?L3NKftyJtQEa%3xxM z?V39OG?VF%$PlN(w1DySL5I!I$xz8;hTe*!fUl^EDXF1jg_nz2+VrQMX|Jy)GxS-~ zJPuky>e2zg-9l!!|G>JMYxh$bjO5|lYBd8+&2SALx*YmvoUu7+hS?#)m<(3(99W=D zNAI!(u+x&jgquBNVLW?MuosvSYS_o+N`8m_-TGeq@z=tyEB$A44~J4EzV0VlD=p{; zf||#cERLpy#dIK2D9vSsR<8qc+a7$FtdqMLcH14XH7_mOXqV#(&E_C=amVDMW-z#y zx(ebD*#yXt?xcgKRHbz8|CUp6e7A^&K!KKXUGb~6uCbHg(9O@UBblu*lywifiaiOf z1g;kqf1BVmFxZf*7X6Xdjy9>SOR*V0^SN_470IX{e;2MThnYeMQpTNGsvSxtrb0)! zay%x}>LVIr(zh%qHn@X^zA}!2rk6B+cl~BP88NoJE7pz4;n!8>N$JgJO0w+33BD>! z8r~~prNENOtMOHRH2Ay_e&E1PwXT!#?TuKp%I!>rc1$9KI1(|IBmR$~P4!mF`r z;1KFnHe~7Q;+ss(sb4hDo;})`Q#`ZySZ(FKaZES#MG<|H605u=@s0Q0+GA#E8RJVnT=V>`bvk=tG0%RF5s)3QUndbA(F^gyCIMu6U0+i zKtDGc7(bnz9ssS-Ae`z8)Z!{-0znN{TS0{(@vUH9&cS-`MG5BFhpNwed>tPGVhCeV&Q{zIi9=-a<>UrtgYj1Of5m623-TtTwdtRx zyP6lTLzr_lGW`~&$TZ7W|3u8$i%gR#Bl^j_1Vc>MjUD>1l4Y+;+m8bT!~WN%h=f~n z)?ce)y(3tOVMxSDN}U7$y^#-=7fqM08+~K(xg5~VtOF5cx)OTpz`Q>cG5l{Z?y70+ zjxi-6?!f*R9SMQer<}+9uDMcx@?)YhfbBs!n82R`=oXadKaRcM!GmdW+c;NizHxfv z7ny9%sGfXIJ?2j)MX66iWL{v_>XeN!>t1+=x<3?qR9L^;;~wjVNlfzqsN8u8hrC zp<+qSsW>EMI?aAKw7a0Jf1bhp7Frv@NKPhYjmgcsH^&U zSRj|##+4TIBKb$TxG3Lq@i30;h#|DB{a(kf_QOLdwUwbW2-)b*Ea`-J2+TZauX7?O zb;665iC-LI)fF0K|ADdNca%e}pVAg*IEKHmF=c*M_=e>^DQAISzg8 zRwrnJSFd%((F*mjV^53A76^_{8T_;vF{Z#A-|tRrrM(gD%TrsaP5r(SkS5?#(*<8# zl8W9-IEx_oqP)Ei-G#Z05++HL#xGKOtB@88!syyu!=f(tL*fHOVQ46Se3vJG+@bF| z5ItVF#t_Z)E;K~`oSmKhh1ZHoTN7jJlG=CQN|FZBs@I>aIW29JMo6sdQT;S@$lpsm zRc-JbXEdSyFOgTT{)-Xo1hXr`Is&_A-f z>Y~&1V{K(i+MNcO>`hbpoz7*=&l=!XgGY2Z0?56<_ReU=z&>51DvTJPTfQ6;z`R*$ ztb4dp`fKJSyQ|~;6A$_Z;@SLKb$zLX&=$u^#eP{(xhN>j%SJ`laFSHg%A9W~bfj}= zKiq)GKAl2K?9LUDAV(^W(KvCR1A*l5@K|J1^Z!dQFVd8k)B0BNQIEMjQ1Gv+#Gxnj z@y14}MxNUP2%Wv@R0ueD%An-y`PIE6KHgzkh{O2y5LY|-oV3)1Ne99WP(U(YKGUIQIEl- z2oiDRB(lUWbs;>A^)=M{pWjY_Es)@c7h~E9c`EKOsl;+hi_~QGBw>de=D}VVs!v$F zWrMCi1}BbFU&Vuy+8-0Rd#w4BU{bF$7eqSTn#^k@#8cUC4FtIc7kUY21t~AJao$l;Q+Gr-i_d;r$IqyE{s7!j zy2Z}QLo#i+aprA48vIxrZa-qp`sE7mE@@W3RQcCvZ0LWoiaxD*vh>>n|>2BLkyLS z>~~|qPZkYl8?5tkVB~Z)9?Bo0Bj&oeLUeqYewQSxORPLoy>$owZ2eIZ-*+vi7m4cK zJTz7QE@rYS9-Pa6D2y&OfTRzc8>l?=GG8YL_xWmY{h_5xRaMTfvi*?;>$duft|(YY z-!OB(T0m@utHZ8ZKrcu^;PaQ?lcUEp%He?$%4Hm{#q|)z*%o<7QI)W*0ftza-GvH! zs>ws_JMEhGD20w^K@If_u^AS_nL~G7>L$*)6W(inENMyn_Ev{l>$LL&pK$v)v&Fk3 z-4A`PEw0*XE2cta@Rx3%+(+qdaR(qlmRuj>^EQMCV=~$C7>oZd4(VNAq=-l`&2Y|n zvLKCj=6MixPXOJ0v7>96xiggEB_ zf!?1ylf8C0EKVhFIT|x2ZdWMW?kE;L4AN$_U}P(vO8)pBo(E0qAE$3tTKLiJq|sQX zs+2Nw6hh~!X?&L+)RJfOubA#+pm8COtx)018QVDx%g)3Gu*PV?MIQzdoI<0ZsKKMi!H-QF1?OWJU74<(cSA#?h0naO zOUB}B<=u#_<0h7Cq2~2RW)J6C)xfk^VNR0}|A|XL1Vi8C;Y?7U_>qylkcX<5>$CS|kvw)WTN1UJ5B}Qi|;|H8Pab7c}Wbv^|4}g|ad8ij!x!5rl|L(*8 zx90u72ss2HC0UIVfBsJ!0h~-S!yeuyM)ZT#53LA_Xjfor^OQq0`<%VD_v^!74}w>2 zKBRB*m-lM|T;vXO&P~$8L6YmNhLq_W#F24MbKCUlW}e5knjT|w8%9V@bvFRuv+s#M zgNt`60e9Age1pimzu?#1L1j;zLeIAoq$|qE_lV&>pFG61=^E` z^~(_c>_rn=skWK^++wtsbmcz3;&SRYVNkS96zQuqQ!Lj=G1aJCxg59+I_X z=3y4|c>CXn$^Iq6kOQQemHvdYjWh|?>!BX5Tmz$Yl&-gwXmDyL~p`yj1 z%2$4%6Gk3>ERi}tQ+`cY+z<8w^!h&kFxiaDmMO8W6`sOX33r2-I(*cE%x$EYTOf^@b zqJo*)3`-PACSAe(w6b_*0JY7fg``6TuoWRang-Q;I#r^U)0wl3{!k=Y6$>e{KMoj$ z(<->lxlI5$@Rnt=7^fP`upZNmm_DbMs)6R|k25^Fwe|)fd)Xw&^BK(8i!_YW_KV)BjdES)6hacgZR#xMI)8NlUIXu?l|b)#fn&M+ z;zaR_Rx3N^m;Hqvj}-qyK|u#>9}m>PgumdmhLoQh5ZW`YFAvsYY#U~PrLtuYVI^Fh zq0b*CVUYH%J4gXbW@vtN= zv!IYN`yt;iAAcfybaszJ96dnFo~Es(D~4V})`Ro===^KJv#wv@Z7?nh&e0x3;7)Pd ztPab(=j5*<%sG~15rrio3?&BrKUT&hikl;!QN~0Tn#-g-<}~s18s5oXB1!&lIQCiS zgd$akg5tK0({q~7e_6%Rd}ex1k*$H=1vs?ydl`#9LWs)7y;O6b!6uhfpT<;!`jq~| z#d0z&E8gME*2eqwJFMb5|!#7W;+`CWW^nWM+Lrx7Y9X6+vb z`Yta9q8NYT7h=biF7&+D+AwMpvFDMtW4@)|p76Z&Q|q<^ef!JcSC2# z%RCh)Dl(^b8AszUeR2Bqm@0bMi&c?rfW5Qsf>yIGxnkN`)(-_yg zgD-F6;ol7DNo?3wTLtVn?V56^gdT&M?K*#@TUMj=dlqRElS!Jtk@d<_8c)bJbmF|O~ub{mWoD=Tcv?u;JPpuW>DUk{fh zyM6q~A{ij?Pi(>!P$;^#@NqiIjz~T{ISIx{+r3=UmBIx01q( z1mzpIo9w0x#&RP)QWqppQhuUKQbsnvnin6CSHB0acs$YL1%&3_K(8%dHkq*Xx#KtZ zEZ+7cQ!QOk{Apm9kf3A$ONOsyAQtd1vtoNDsudHpeBQO{TddUOqs~m58=BbUa)6#_M=uPmw9qZ(Rh>yh>NZqSo z^bSv2PkYYIK?`NHi3*yPvy3UxKg&fVC$r_Ubzt!L@yyHd z3p8B6Zc=_&&&!3;rkg%5-RPg1Zl;PC(R9vi@E|Vmb@1eAl3v`>c5OZg_oD4+A^E zewfy8b%^uk@o4R6_g6<^;rABbNhjcZ1axp&52k~2X5w**GP2*}@!zXbqK@R+3#bcR zp}BP&1;S7TNQJ4L{^OVBfZWJOcSc-y()w}57|-wxZMp8*?m0t5#hbzMAmh@8C`&te zB(>1oa^*gFgKBN1WgY%=@$4-jWp9-5m3ChalG*F5pNzw?*hx>BwPt<6pC_KUTV$%U z5|#@aKW20K3QipgMN7o4wdmmr;{8R!64vYm`~0iI_QhR^Bf3axi1R+M+0@M29}byN&6PL!8U_xKO6JC$kE zX1dF7AgxujnIWdKq{WPxqW2?wRBYQOmt%^RQU#0UICB&(F9_I7G(`%ena?QrXlr*6 zZs)lQsYjHTuPzS&VVa;6u_M+4u$6+|m*e|Q@!U39R`+!hUfatB$d^rH{1G&;g~@)m z{83bpK|Nks`=FsXbGA%axPjBk6M40@uS)1*&v&y`IPqB9N#V6&j2mixmt0NMtzW7k zk~E>}^jK~2?gzznkClU+}HNuwDhWr`uAg{`XY2| zIAC>mOG~Fw#uDerEE^oHsgnlN8DI96>;0aW2JVe-?Xk!5+&uALv(=zB89r`5)cBm| z4WuDux_qj*ZI_Jm?lwjy^g7j%eEFg+6tqmD*-~l%cCjNK@Wyj@xk6;faE7FIt!zM* zqV}w0b-2W{Q?zwPblTUa)8qTB0_Q3BcY$opR81XeQH*S9R*yJcm5#k_TD)97H#)iR z*U$M4Vqyf>S7yezA}+Y)B~s@~x87qGMUy|oDpCllVl;^uqc?r0Q?RKXWN{VB8`r-s z9&X)S@k*3mH8l4NLAgTH_MZiV5)q`er`oQ~ibcy==3WDy;Y^)y>|tH9Pk&|Wu|ko( zuRq7nP!DI=$<{*C#<9en7Q}W6RTp4h!}1+v>=rB+A;&%XKRnG3Do&4&QL3rwtMVJ- zDk?3y5QssGPE)9;xVpQj$f8e^sK|IP?C*63rrH<)3K1HkoH#4*I!L$9notyr8B%cUFr~Ir91EULTKFf?p*Gu^MxFQP8Uv*2@QS=ST>c zyBv*5Y;o0-?pu?wg3x6DGD<|bo}gY7vV%Od%vhy87se`bbFT8_K3=4>Q4P9MOYv~kXL|K5=w9tNdEI`pO*;OcE0FU4WR(A3cEydq z?~IgI91O+ATP^<-5J*M~)|mdoyF70iDk$`W*Vw|RO(-qUuU2=zO9;IKvmp$VX{fIx zNPlH-=@JZkD>ZuU!Hu65mHvZKbm23JUnKf8KP>FL@NlzveAfZ=e8X(^-~>SLi8A=Q z3sWkvU1~V&!e`0a+b}6C13w{HFz%a6NVST~=Q5zcbZ59yx&g9X>YPl{f0{@L*lg$S zF)1Gunt|9TM%Y4&$TUe;MiDc@}ibC&bnH z3{Fjay0tH(HhaALI=kJ+J%EB;TCu4lbAy94){0s4Z%%X#6+^p5BSCcunF{F_7E+In z+QO|&AY+q0@)2Ee__Ur?+FE39Czvp66*Y`9LD?*9s$}r-d@rj|LqUo#bA3UZEu+AB zDrn4UPg4gdzKeqYy%G#{V;!1AWk<>Mb`+znnc7;2wtXymk=4dp+teH5(-jN2eSb?H$5p9mAU)i0yfsU4Y(n#wjqGoU zCQ-6`zRrd>Pxl}UH|^W{-Apb=O@B|Iz#b5Kttjf9Ll6rpNE^3VLw+3~I`wQ@{3K&N zpJh$oouiW;I|k@d3dBl!BKWZzA6y$AWN%t>F;FM>8E1HJsbHFP6H1;b4y>;O`OWy9 zyFrOvj9qI<3$(%m11U@$wXqI{M4vB~%Yl}*+IKrpJNOhsnGjx8^DPy@+P5oR6Z|)o zhm(#upQr|veE1iC>U+^r#1jHDm1@XF$K=4~d>V!_fVw_}|8Jf~bUi^^xe}NX^3%Ki zv>sjV4|dO<>3?C=kZz_*6qm9=oSC71s)$5#_eG)3AW&@RoaBLdX#rgw6ovj}995xP_U6 z*{z0jI-id-zU}E=MaX6f1R4}a9FzO_WYsmUKLFmEaW#c$nFN7*9 z647|uC8Ih!mt9P$O=I|&G`~#t#T5<4R`SIc?{A0tE~|B}lO@$W2fJqeP_V;vhMe_& zzUUz!VEABkC=VsU!y^mV%`OhmWr{A6{F$u9v+}#&C zY7e+?G`NI$YpDF7T0_Pnw?!OCX?={EO32fBrF+jft#eVMkAFloYCYlXf8^oe`;3b_ zT?`Ry(2ot&y^TL39b&pD4(OBWLq(`xt!S2!ATy#((dVxRgqtU;*ls^f8$O%A%XEw} zNi_hkP8-h3He7!llipoA4V)7DOnZ7ojtbZn^%>#1=tVZ9{r&JS*7XX`~UM4nF-m~ zef~NBiI1ZXIFrSATqb#i8kqo^`HjVnn*+7sit(Ew-o=w+KWE@rq$Y6^B>KrB$R0rS z)~FFDriO`D)7&s>s{~@Xcc@r7{NE5hAkW(Wthuau6Qyd3Ld}#zn8-F79tA{@ z!@k~Ch}Zca3MviPE?Q_NHU^{DBK5iJonE`11JACicaLfIE)JYjf3bq;el3_O0=&k7 zq#e08@&BmyCcD%Yq)^6;64RKf!?d_6a2tF8aaW7UCkQ72D0bg7ZTi`J1YUj2SkPDn z7g6o4;SYOM)}Tcx8~+iMdbvPmf^ofAVRgFi5-ph2u-ir{Uy#{2lveJBp~|>eIJdby zMl3B+h9zZw>WmJr-7_#nvLW#4fn(J*-r6iJT6Yxdt)Xe{1qTBF{icC1&aA6FGVF$( z&5M}0`^mWeVZ$&{E4U{Xem8I_bKdC~?4IQ&^DFy(A&iab3vByGiBO*B2OlwTU*B9(+%TnJH3gMY zfXWhq52YCea82>>um9q&`N`bB8trwYn6_&l*>qh5Ur_!M0V>8q%=$*=-T+>^-+@bkp9-2epcugvJ%Ri|0@E?s z-JX`l)kOZGFv-WgG%@_)?Vc|llBZ8?5LJ-n@93iKN`S_wq%dq)w$Fa$W=>4zdbo*< zjt@HD;6P2MZM-O?mfxA4>0wW^-wixI*6&fVzul;4>WLH7)H>M~TJ4ZF6Ib%J4)9S; z?P}uz}d38HoR-vcYr6ATIpB3DidK3zJQwHdw~}Uqzx2FL$wRu_39i6>n_T z`QtU{I{6k8y7*w4c#U^bS+vC~q6A37m;Rm4Tf<(vKc6+-qO`3MycwVYo^Yz8yG;Xv zj=W;0Wl1w+j71teRt?f|@XOE1@9;Kfzl(NYd>Z+BrP30R4eNRxUmXB}BI865unm`5 zbC4Dy_NWDgN!C7jML zh_QzW5Y-$X+Ss(AD`iubSATpCQzcn_d{JvTUZK+_hV>Y$o3JB+KtqeiHd6qcOalNJ z8lxB8&%&;24Wks$F+lzY%mWLL?WCVRsFzz`y=VWMtsLiY<9TNCrFzll?en^wc*hy~ zD&&`?9qK$4;m(GmsjH{KetiHqD?wITJelt+gLEI3@YA~PGa+LuCIKA@90sArQL43- z+@`~F)KyiwLubl0Js4$(W$QSQ6 z$p;fgnP=b$y~yK;hdA%KzGQH}Th@$zZP!fT2SgYk!r}Y2@sl!|r8N zF5 zpT;<4&5y*Kb_Py3OC{`)9}>=Tr(oQ~*Mz>RC!3=TB;ih}@Rx2i_{6|x)z``W)M@4f zx=2`NKPGU3IeG$NbS*4H63to*xj* ze`P4S^Jod1y(`fiCN<#QF=7E<1Js5Ui}sa+L;{kfdG_DHWrGWi5jM~U&tPYT*nV}l zTsxY(xih-?m>ol+*w$X?6)myAjFNfTz z*qB`ATDm}1T0h#gDHVzTyEL`pi|oz_(#%kST<(83amd~a1E+6IHzy-#nX}e9o30Du zhf0*6m}MR~5gztE_3uy^7ukl8c7_x^9r`#b$Qg77FnRoB`5m3f^o$Vo5HFw@6jUDc zZL!be_R4?mCum6inq20YP|;l43rII3*hb5d1og$D@$u-)ND?}vND!X9R&$a zn^@SF&#v9PJnVL8ve=6v{N>t+U){fnUt6x1(D->;>7gbU$QqBb%YR^}H1d&ihF4(a z8Do>b3aW08yndWJ-qXcc3vK;$z%Z5}9ieGL{~jUBv(Rw(?{c`vmxaJY#W%$%U+Yuu z{Z_wUm+<08$SA)}P3}j^gS0X$hedrYSpmdCsMQ_1;ywEFn9>EH6oHQ)stYnk^{wsb zCWEQtdS+t=bUSG3OITNQ{S)j$8_O2kxFu<>PhA0dsg=eFc>Bp%aeiFMoSw$;<<+Nj zIx&jfx3_haZ!Vpj9j^Yj^452uU~F#x@Jb72a9suvo@vN^4t2L{N{3nOg)@6pM^|Io zHA`R4uE-KbW}7|`5yMs;6CyTQ?NsaB>J{E zNFp}>mFx#V7lxwlJQf@|6o>e&cxHfrvbN6XT>Pma!k~nI_wJ1$=(FxFI$}&e;Dd42 zrbcXpX`KC90pEPaZXr3iJ^Q(KwbZB|>~ehYU<8EqZ!rZ!0x$cy(q-;NE1DqB3-*AT z>Xsmp8jt_!1?MHXqe*Uajuu`ibiV;%3oZWFkb6UG)0JI*o+MdlF8ljpM{bR0_Q@q5 zpnDHF%j1MiKi4P@1m8aL29P+r><$W*EQc{j@?d0_yiipkOw;17y;h0cL^->(r%bE% zMaVjM--ck5FbkHz=S0h<&>v-|8WrVl0%#;_Xy24+4GXB1wI=wtOO|dQ=tpl4l;^8T zl|yXdvz?3b;1Y52512a95x<31kMhG7MB7v0o8H1SyzWKPi}qwoA(CEJN3RI_)&7$@ z^yR4wt$ZrwE6Ilto72R*c5jEp1{gB`#s35`+Lj@>(#5rw3qTMcqTFJ62cAW89)Nk_ z*t~4i)~h7OiEWB#lZBaqt&4mKnTnmj(x5(zT)<`>`NB8-{*rNm?{H3Q6=s7WUSqAO zQ!Js!p&Gq!fYLWIc|p{`p=lzCf@6e?G@{cIT?VH9GS`cf4swR&ShM&}I1qMJR*Efq zWc}4D7UNab+ zA~D-L5gB0J5?}ujmkm%NK@;8hQUjvvGBzw;zA5pNTAUon zA{LxQ5gFHpsT(wyVGe*M)Y_&@E!vP}Th5j>qfz_Uyv?#fsK4ERrk0Lw&fjjmZ8)A! z;lE-yb%}WOec2 zt7xKxsZD7gMpaTC{QihByXD)BI|1{6|5oB<>$8;eilY-!^2I9?s)RCEg>dW zkl+w?YNuqM@~pKQ-_bk~67B``wGF&ad^TH@tb&TGop#p=oqxa^o z;1P=}Y(z$U*V(J<95T}%3XcJ7o>FhNPgjB@nIBp*pniXb-E6jj*K=}*y~T$aqk3<0 zy+iSX0Uxrwmw@qhdH+b(;z-&MJHSLxmrgm;dXm3++&^^Un7Ls&RKJkOvjO(oGiRS) zPz*!}P!H)yG~FaI5pMpT$FegL{!p+G-woJ4NjS@@l9TEk7AMaSA9;7tp4zhUQ(0#i zx*GC+a$XTJWwq+J^k$jLb1M_(c)kI&>(T$K{+Hd?&g01n9O+dB*H{j8bk*Cve0^jAhoB%^fUc z&J)Am;<*LJkI4M^t0>u+Y&CO1*65L1Qp~R0H{B$#k9qs?2)Rm59;ury9rJK-l7A@jT!?UYni-_K`1pKxxx(=6i(FSEZYAZ7Q+`uB ze8^#805>CfnACi;ho_DmQpNs0Fq`Dq8;n1d=r97mP}*A+<;}M%gCdKsbVL^Y zTvFS7I+%3#f1`u&$7jERa_R?6lE`@7hF?4jvJ+ir@4IsCoRV(W7xwCkinu-dImqkm z@zcv5zXm9#SMglik0cnu@0KtYZ{u|h8F~_RyzAVtrA@`}XJ(~q+dhqIyf9m6%Uw!K zQuS{yGdzFMp`#`Hhr%EtQKK#)Sl3jtmGtqua0$0{>f01DCjMimR=c10~N#DyaJR%05p|I24Jmr);nteN|r zmXxE&bjR~pO{5pZ+2|gbXXmxHJ)OvMfRt1SdzPP_knWP98gDz1o|YnEvf-h383WGS z5Jq=V3T20O5nYF-J9gz~=3M4FuKXO@@<03^Oj$$(c@ECrDM22Mkiv)dF;Lq+L6aU4 z9O3lDy6)Gzbsho4?4cE#4po5e)E>{NK+kn(KIwCCKdUlv;dLh>*_&$`fV|;^r83R{NM?4{tP&F?%EK9Bsb@N^xhu#HYgfn&))c{I)1%Z zbu+W*$pZ+7(A@b4L7(r-?~V>Q$-Jw}83bi-1!P?B3rxSRjxNwpPR$jiS0X1@0jnoD z9c7-x9S*eiqID?ahmd7-*U;6aGRcuZOQvzZx<^v7DV_$jsG+^tQF+@_2l9Rtiw?vo zbG_mZ7?4zB(yfW_4>GJopa(pf4GCD&xuJFF)q6ZB0F{f~9g{l?L`EhOGFs9$QePl> z!>m2#w<{NG)oitye_47RyRnoF>Sat}P!`#tb>?3iJjx&0j|W#C!oUPkGHnN5``8V@!jdISd=z3q&VBq+BdMTcqMs{5lOiKYHZWVR zrvwDd?68ymIoHN8o4K=Xd$d~(ut*(4rwcQGrDf1m2X76(>$Qj~?)W{_@e;eOsX*GX z`Mo+%imdA-mf+njugp^_iNn~j4%Evuk1Zp7S6m3g-5sS%%3swTvl;3r>@LxMUB5Yh zVODQh)@nsip6yUgcPFY#s@JjZfT#DV0zwJYJBw+cp6I>eoWVf!vhOys6@S@2ekxtb zZnB(N7Z}-Y+6m^)+=4x}XCb5qSosQcP>Cs9B--gRW#qnTx#=#F#LXl*QoKMQ*QSd@V$% z$+&QH<$kP73U4j{-?8x>x2agqe%e!Fmz3(ZFlPO#USy};X%xh;tq?kyFs0409XgcS zZrIiXeS=Z;32oQZtxkh`{Aeu(HpOkX5GWxasigxe9wACH#m96rL}iO) zQEsd>`4s(wcvXYpSvdP#0^)`m_98Ft$sx8NW!N5}*Mq_1>|&Sy}f%o~;hhIXZj6Iy`I4 z_?zpGjgqGsnvg~fZj)?fZ#FK!ob%?mk~?D$Gph@^ex}q>f{)kx^B<42`xB^cerp$u zi-K?t5<*apUP3#LHI_?iNNstXw?RQ&`TK560d>ZcPV1=&8TC(BKBWVwUdTvJ-t*wIiZ(-SGOEyRWw0mUL^60#xp{wd>PPtASh16GR1 zZ^E(g--0*ZAv4#ip)}NG%4$+{QbH%5EaF<}CXJc(tow7*HC_K@dPGy%N}k zt2n>VBA=G+$hFxhoiARJ+Y-`t;2PV1i_FwpzXtbtov%*p#4Ek_%_((p*q&u?u`Ahs zg*Ya4M7t)%-fU#xjjfV2x5;$&I~}=A%d){|A*sa{ZbI9ds6X5T zzFTM6;1GpZ4%00v2hGFlzs&{tWeqQ2x2Q!&4?Tveyr=&{8jL znj~i`j~pcU8A(qk9r1@rYEKFm;<(23+n-l55&B4|TaB-pKwrH+3d*R%ZBaL0?g1D> zT4KtFHKJcq5Gm~j1j)lj#i`2yHLV04M}dAyN{fKZ+?IAUR+~mulq#!Qj8m32rYv)B z^R=g%l;7Uk%d9a@cUSf?%<$oV>{r(2zTLFv43umO#PO>aFo90u;FSW&A72nfa>WAT zVNZ2Nf@pMufp$On#E7d#LUk}P%d{(oa?8~`&A?b{gO)zgWV$$m+HY6z(1zfAL2gS z6^C6IOzXM(tM#*6`z(;W?V+QT!u@(Ye47>*sQPaf2SUUL*X4fvz`7)@r&_muwEG&F zEpUA^XzRjJsz^7XTBP*NxV-&1la-IV_=jZ1K!8yZyn?7~oA4<;+vK>s;p$kknLzq1 zJZOr%Mw`G{4{_702O#wsV*6b!s?7BQ9oD?WAg{vb@{530)m|MycLCAK?C#Q(X=6F* zTiNf1a!e`JYx{jHe>!ZNmXiHJi9!36CqcuR#_8AL8h4!DL%Ra+8xH~D%YxqSGpU9eDE*#JQ+uW6HJ5f6#TLOJzYA*Bmm(JN^%;7Z zBa?b(``0`Nluc836?%;=EM}%@oiiCBrx|Hg2pK@rUCaGcs3{cANES&8y|eJ8b}fy4 zi+ASJBmS~U1G;k>XdB)1Qd1PTG1bB??BL!vvFd<6i8v{(u&zNq zeJtN6!y{eZmbY+I@KrK@-om(DTX~LMZTj|c>&eT8Ucj-c8%|4OcapPrV(dXOuTLR5 zroL>bgj+maXyJM2&f`LYCN-hp*h@267YKTvr4 zZ5Q#O6z=aO@yPhf>2_liQAa(k$5mJFBz%*8mUE>I1(^)+a%jXylbjod%!QQDS2DvKA`=An0puj4Zo0_ zPh)4nVYs$vV(-JXYqXW)!)4GrZ4lyrPT2ZZ+}O|qZ0^{ZC8_PwWJ20{jw}E zlEaD(l>-6O%RDj*D{o_(J|GsWp;MyZ-hw9w3rmpkLxh5Su}_EKUhlz)SGF*bZ&z7puG@U#&HduNYq*Ri-iRku18C$=i@- zw+{cxTn0M_&s7$xGTf7Q_w4C=fQ07Ad7EkRV|V-&bx;I>q3Rqfx6bTlICm-xzYb?-Yy5BiXwm0}-IiQL{1p*+_o?64= z_H>gh9+h!NA6NiPg6ak+FgK|IB;D8+*lh|O5rl&!u>MlhptV%n!FiSAsaH|sp5^n) zjt+H2wUvmmg>x#-hxfjaK7*&eT7LXvFW9C+)b*wsDf;#T5%}v73vmkxOADv?-f4d% zkD=GiadxDp#V4OzSqoh+<}WaDpcW){OnThU2Et7V8w7)3$|Iy)H&_B-u!3;o1!16s zl33jM9UHs~oHZ6(l~v$nkvK4iS)((%suKa`wa#0wF- zEV6_B1K2}sIT*v5<7%DEzjYvC=3{-I;5nGRv@*_R(8i9Qg)KSW#r!E>Gj~%r%|BO1 zufRQtzh0$akgMQXsogd=GPZx3_B~D0Mt|O!9feit=P`hIa^G*ygm@V(?3`dP%OH4; z%OW7Aq1j4$iK(DWY0pW9i}d_COS?nKuqQKZM`1Pa5*lz_vS!1}fq_HY8A}!En9;)K zebsykj#B6fI)3$urV?3S@XJq|;cq2xaT`I0><0xL;p}AYJabo_X!ym8NGC&+vhA@N z2eo(IxyU>tVkjteni;ou!L7>=iy`u#9eGATKKXea(MNxBY>ED5<$@?**$&(uzf&p6;l+9-+O;- z$u}ndHM&3tg)9oe@7uA-y%6cf?RBe^0k_1Y|KAc0vBcq2rEwVxPfvARs4|=-ZCPJLu z&wS(OFMO7o{piDhiy5y-^GLJ*&8estikI1dy-o&)Vaq+Hq9>7xdDmY(Ap(gKlZTY-P^77z4vdd1VVnhM21^iIk_qSPMw{41! zd{zlVo5#@5d6e=g>^t4BQyD(0D|S*^r_7UJhSI}Hd~sC!NSXG-n!ckh63Lp!` z++f|2hK?TPn1k@4po1DdMEGnEZ+MnMcyCnqK&{7600OL`z3X9&6xO@1uB{`hyL&|H z4Pk6OHGUZ4?a!y>?;Xe(!Z~-VeStLkSJi|*8+wTRwI&%OW_pw9GRm|-92-=HRT7&{ zih%|T@?ibao1*c6QViGSkx(k_&ZP+1mk6ssjSFlu-LDhxfAcEm(XPmQRgo9zbqdKg zVx_#ATQj0^xc6)FPISr8#Zi?BMqFMG&V>sz{T8e%QpgP0mz{+*Cod=d;D1?aJ*DJs z{ig4erF+7k&)Uu$215;`|92svIZVoZF2Bnxql7Y}gC+|azQwxRcr$9Nen;N9Ye4jC z-yobtoT)yNRvWy$O$t*%<&$8{&ecTMl>P`PLec`7UQjjAbGzHtzQtYW>}O?!m+(hO#om-l_MW|Pbg_)df`TI zM@lVgmoSk}Lj+z6>Z9>Z|MmutM&Zuq;*O6S1RW-wx?5YPe9Ag|CXU~7bm>#I`$7jK zVs|F0VGO1S(fDi-dr2_trlb6%iBWdJFpVX^k!U4_Lz_X`e5lP&~Ia zSbS70aDWw+P+2a7_G%w$@$Akz^X%Z$^zPjdkpC?cLSMg3hq7dbOj* z@*NgRIZvltDko`I5xfK3pSo!?vwsCB#;SkblG-i&@LP3iH=1)u;oFT;4WKu?JBIY% zmA^~4#V7h*TyLsI(z;5aR$G!9T=bA2tBBnQ5f)q#KTanP&1k7+oTG3)aL>P7Iimbg zny^UiRJ!>2{=PmC7Qcqj*QQs*FngT18mO(EB#}v!^<9feoQV%w>&X?O-+tmCA zmx;d~(B5<#8THzo)4I}3JlpWdq%Km)A zQEu@9l;ihp(1J?rtKr{Sw-!HID_7&DJZ#QUu>Jr|k6HOP?H{(Vy`Q5K=}CyBM--I) zVVlWbWjx|!w0o$O5M4PyZ{#YTZm_!CIlIapj>NWUDpJHk@!l?duN;1AGE-tc+9Fc> z2lsbd9BzBAOeg^qgflMVDYs-?#PgTS+KlzW)7BjgN(Z54v$lQ~=;fG< zkPc|VjF#8Sb#+vh6bV1G1({STojsy>**6W9o}H0?Lu7KC+Dmb-a<97-u2b^B8Us9< zAn=zN0}CwipmWCIh8s8ZooQnKv+ajw{dl|7dzs?jEw*I5qur-8)yV5 z8R6-Vi69p4GTqdZ-)9QGlJ4RH>WEVZgEq#7fkC>zthRtS?=7c;uGG*9fm*e3wi`HU z|4dijWB9-kk}Ig3-oM)`d&Vrfu&`EU3h_4H@61tKa*D~c=pLfo44HLc$d-DqM+DN5 zsRZ?lwyRe6D!Hky%vpZ2PrV&=5|TY-FbDC3aV&xXoIh_`EDfYISCHOQFsDVkjb=ZS z#w%~1$FxuGx+B2j4O<7_ShWjtfeAR|0ca7abxYfpnG2cCftj15mes4aS$A3+t(q)# z_hEoflIaekh;l#UO2K-bEza7FjcO|2z**;W_a%qI*{%lW7&GgI6>%ufQp+sX#4Kqb; zxqacL%vtVnxkpGUTieOwq!Vun3~*t~Bq@@)`d1Sk0A*l=%))2szBhjng!7>!gE9ad z5Bg!L6)u)u)9nODGb-&n+uvdB+UBtrM93LQ~@X)95^9F`F-wGV+bF19@Kbw;{vDeC=r$@Wl2uxwjcH;j=bwoKu;oOW2icdbYBH1#^F(HMPqk_Z3*{u5I+d$uX3DJ_k7lAi{;uejEZMlNd8Z>Erz!k7 zWq>GTna4w_dIDKbT9GD%A4$-jUaBKt3$9B%{nLJpJuI>#0g^AJ^xAb&H479ZJCiI= z-OacUb-AKebl$efG!+=_!9LA~3?~sJ-;@WxFl4!zi?81c8>_n=*z3Ge?i*@`t)Y9+ zvr~nR3?9COhJ0N+Pi5I$q@G)yeGX|eT-GFB2)&4JOomq9{~L9CAmh2f$Fq|5LGD38 z!J?P#-v;qr!A8qIytU0q4xcYi=sd&q^r?FKhl}S2knDYmG-THXi4e5;4te1lC%`xP z?0c}ct~P0Wfa&(CVRPHWUYAbJO;8NgB?9hyA}Ab}z%CO_eOm1|u81xh9p! z?ms^(XS9m3IZ^w7%sBq7i%3RjolYJRlbe#lMoR!a!--IMZ zW(e>B+SWj*f$B37<=3FpxZ`z2zXL2`d%)aJwM8{dRXnh2qkcwo|9~L)wuW$~Dty2~ z1w0xj>Y&!By*rgu3v$luBM<{X+H|P;wQ`pXi3?Y%fb;rBw_rG=x@*T{djx*@!yJ}> zPc4K!3AZCG>IF*-q%IH!CO4M7TiR_PGb{`UvCa8R3Bt1NnT{ENVz=;T8nRx}UbcV0 zI(Dm^K7XL@-dqd!_vlg(d@L#^%7~?`n5yso_6Q*w+x}K|glbIO6>!b?$-O(wl|wkJ z$rn6n@jKh(+>lNY4~!LOCvybwzrjqC$VDPW(k=8&wb>R4m-)K<{yOg;C$O8`(`7fQ zD)ZOnjZVEk@u*6dSG>%ts;aW;F~Z=ffXogn-PND=@)FS^j&H&v$#w#|WW zl&U$(w5$MWTK02YEdyY{BUP2fpaw&xKzU#L`SX}7?0--m0)lKnaK z_yf>FAcjdaPG)4uZjLEnvrrNfn3ZAvQ7f)XcVG=drrL#mcAtEodi^ z>e64NKpXDW6d2x7AvPRkj7XTJ12PQY;*d7a3(q1KG^R{ul*gvnTr~cCPiu`Ffqc@2 zu_1=yQkGmZ!R|Lnv97x+T%vu()wY20WF2a{KC*I~AI+0R8ih^^8zygmk98@Y8#VL2M!m4vhX1a3+uy-b zWIo0H3(PG(w@koG-}jjCf{9+ygJ3T{-RnXoWy-%uRXBB3c~)hG0)Qf=Lk-*=&Q<#9 z=_T|qQ{ZJWKwRM|T(~0n%Q~<>Q~zc>H6R%1zEba*b_`4E2;x5eBa|4$m9Uv-7A%_B zrOW;@JLdpd=wH6Y*+#Ng+qUvpo$g`s8=oQlC=%+MYI*u7n@-Bqavg`&-?8{qH+9l- zm)AHeYirUhICR&0oOtdyo4M*#f~2<^T4>lm zxXLW`o<#svK$I=l#dEe=t$2Z_{KW%#=2rTYC;wg1YPmqs0X??(x;S)yWd%_syLOS9^2i{NAV|*l|)OLlBdO`qb>i$X|QkGmi ziCE-Zc8cdj%278kv?9V5S5_cLaYucqBqHc$xDe5LeZp+O*^hf@svIh?OToniyx3Op zK~(E6x*-Z4d-M;dE1VRK+HR`?nrYwF6JXQyrh}41SU!qcTxHhe-pNC!DV}vLt6NT* z;b6={IlaYG0sN1cYDiCqlGXrbe82ur-fx1 z%R8dn3lp5ZFLvC@+ncCPn zOTh@r@#|ec&_~*F(YUiQ#?<|D9G3KWl{Ig}gR za9uG87{JcBu18#>rFKcZCKP}h`0WZ^DqY&^vTY=VpH3+d88@QkRCc9Q=Bm~ux#-tr zaqEq>Ivn+x4GJjJJlxC}{ON&jihvmKt|kMo7~BQ_NL3?42GIOlQo$d!su7P47W<+| zOGo1?4@ZpG5K*&w-YkgEJ=2V0ZP%e4L{iB|rUpDPw+W zdt!{F{E7K57ddu?aE%)_2b0Lxqn^&cCd)EAJhdGQ?sXR`ad2?c_VB;qYnU`u5#@M! z$+SNbQW(QYp+#J*uT!-O*BVR{Q97ZqAgK}f9Mb5Hfhu0EXvMstMauM`n*)(i5t^y~B3Xb`Xg0;z(nu6qwtI6)!(jb&!s!?pe)0Rt-+FROK z-*jT%AS+m!xv__hBOd5Y-g+qXX-@rg{5w^BZU2}}B=%_&UGAeI2y0S#LJ^0P_y9NN z`SwJi3PFxN&#Vl|GZ5gLiwb~WJ-?CaQRkAnaeevPi2u@;9|OPKwX;PAO*)m$-hLfp zid-D!S@5U0WtML82u*EuhWvL$V|?al`Ngr-9?+(e`hPSm<0pTo-cY6cPAeWi_{j1N z6z_O<2II89NW>TK@!`=AhOwPv7`kL7iLj^^2KCwp#G&srNyIC-I*+7thkot#U@}vA z@}xuaLP~AXS4TGvY7YEJ;SRF3aSu)9%*8*%8W$W{FytOe%`b(@EUPKZ2D+^T3%JE=Z=!wfMx#@5@mf`u&(&Xk1v z)<26IGfO7gWtT-YQiVxq3G(=_(oDZP&lK~fk+;f(S73#rfh^vZgK#%G#eUsCpxvU} z*jBq_tkT;-yz8)}&h2vO`)Yn&DG!=^xBx|h7?lFz375Kn;6fF&JPEZf&>5c>&+~Tl zNx##|R%OX`9iCw)Hfx*{wu}0lX~AK)7Y$IWTQ8q(oy^-};u=1@7${P+S5HKbGa^B0 z*f2GPV83Rs?|oyb@)ZK5fDuU^1$D%h8>l}2RI{$>d$|9W3Lyx{6L;HiqVWYKZ^i?` zZ9G;twh6MTK77*sW5u^zNECGSG*S{QW?UeDPN}R4>~|(vyQ_2_i-NY|h-v-BS0V>6 zR|I>ecAGCez)GJMC|dZqx3|rk)qc16K69E>{F*70E>$D($Fx#@FZ-%%W9;^Z_k~?Z zLp)mlkJt^%#Bu?sapb;&zBbZesjk_8YUzHSJJ{uf>$!;t;nx95hqJ)wtGc3i`}gK4 zAT$x>v?Oc&B&;dZqu1(PGFG6_c1AT*WPFT;B67OBg{DSQiqVnt5Z<|qfFTfI z8WUg!SZ*G95KhFgNIC#L>vMcs{z>x=$=YZ)ie*7hxKBTVRXc$XnyMESLrbRt?7;dN z1hD@bQf-Apl@PJr>SE6VI){|*uaonA%KUkf?Y-vKjf3i;SxRDIp_M?C5uuAcOS?ms zb|DmV=@HAV}ZZ_lK5Ur2$$Afnr1g@G*U!!nZKdT`cJBY#*0H-II?E*-XNWQ3Jx$Zf!|- zPS*moBb2W{4nt_B}wz=n-s4fPfM?7i3&iuZ4J9NbxJ8EkQ$vB zZN7eemfl*#T9&~d`|}dK_D=-*L=|`_t}S|YVezl*-OWilew|M zIlzmqXOuLE=h~YgJ^H%eQ(Pu(2PCi(R-Dryh0OojjrxmL= z5vo)JuuvEV!B-sRgh;|oq8yBIZYp{6nxc8DU9q0J*(vv1XOLF1xMyO6VTUSZOP`3B ztGCRve7nl3qq>lE^}kts$1wfgYA=o*(=1kzN3D>_kcvVK8Zy4ma=3MV1Ty=w?LouT zt}fM`+q0}2(dhjzbSYCOo0k>g92ZQHW4q^@Z>j1;kE00FeWU4{li_f(^k|s@++rr0 z8Rfs`8}q=#aTGCmGiIy}{_6b~>D}5q%xqc->|d1{qFv zg&nSglPyj@S;XwERm=^?7I!kiU*WWxAg(SkRJQ18JCX7!)6^u5`VVD`D9VO7CWPFk zdA?pLd2Rg?-F zX1YJ9DOTRc=oAB+TwVk#V$O z%1Gn7T5zDGwwfXe?+=}xP50;wGqqBMui6%kb# z@l#<`i(HlMGedG_I1Uw_A#JvVvUvSb4#Us!MtR%bgNNt^-=mLT+tnoryO9cfhRBunR1VbGzESf5!8-M`Vkfc3z-Mu#EJ6F30mOq0)QoQ4y>h(y^%G13GOaJ&p| z^%`);=$-CK<06U19-$e2Wmi7fYnb#lU3T@e8P5;A_bpHkm^j_Jr2dzC01<(t65ez* zdbs|bIf){v0oJ%*_a4b!NBz04yeSGu2(QOfiIV$$n(~B5HNw-!4L19n?g;9sLak^R z!T)&OVk!wLG5@^+ABX%saJ2QXW#s1=;WJAX`)&Gn{;_nBN04#f%AJ4mI^mrjG*O6$ zQKEe0Af^qomkYSR!$u(%WZ|5Fw5t@KeIt(-Zr{-~86bVj8=FChX7TyEBX!)2H?~C5 zS((dBU#@R-!o6IC@W9p%7~43~{+?GJ7dArEI>+%=f|QSw9fsFY z4~|z?DbiPOYsU0^ZphYdX_pJNX%(F}G5`C&E1@ugzAmp-lda>@g;x*zPqc5?rSfI& z$`#11a3eHf^_J^IAE_-?3D{FOP4-V@l5CIy&Rf%=cE!T4lk0LmT^RXmixJ+?_0_rf4zd9#g{FWpNaFCo3r;WP! zQI1+-*J}}Y$V_=xr@3BvI!11A?&LVnkc33&Hiev)dq;{n?0;&U{d$Sp0+Nu_$K$Nz zpnxTNGQR{?9{v8O{7IIu5ua^gXxE%t^O-6#*QL7_Y9S2eaEURmY`d=``W@DCy4$dZ zUf5ZiZ6gi$GcXs|VufZkL6j~#q0<#ca!Pj>s$#qKA`#rGz{8Z?>Os!hI)1~{en$+~obKStjmtBC19EtKqjrwwA zf39xLIR@_BYXnvF^W?3J+%A@b(qHMpbn6mIFK5?!UbmFa9L;odjec!Nt3wkc3)SWr~&dU4}E?oxdXwp)CmhhV_Fziv+P zrpZzU@$RWzaC|Y7$1BUGI$bi?7psNhH&d{g7gBq_gTo{YU^uR}R-=H!5AKB((M&_b zUA_^@A&Ecd)83`4 z^=&nM``VT=4+7CR^=rL=u@YJH@8`vf_Ns|N`0>PH-!z;s57f*YFC71=^u~}`u!m}; zsY&EyThn5ef;ibHuKiRHK^=|M@GCLOD>)+?|k?BuGoAn&GBrtkvdq_>}MkoPsK2 z=I-?GQ@{-8m-cEX0oxDr;`S5yNf15ES}x|#=JB_y*Ok)JdeojMM!*I;&9+~Lbmj?v zrUc?&rl&8@FWG-}N2D7>^h}@~4N<;A-;Lb=O2pr@pejg|@R~b{d|D6G8#pmk6s+-? zH0i=5m_lVYGB&&p8ZICca2!?UnxCdjpX50^$$IQA7HlZcBYvw?vMHM673_B`p}#Pc zhx*WFrqE}e>@ijbH$^H5b3cOcc(n=00!!0J+UyB0XOeVvDV2w09?(*|`lCn*(B!7O z5`w)W0Yf>vrZnYkpzod56mM1K2eWX-VYu>%#-tGilk6z^jKUS?Z!>BL{n43TM0fX# zd0sL(HwNlsT(BilHO>%g-(C}RCf5JZ7zg#w76y&+!}@rNCw2S9&FcgEom3#gF;86Q zKCT^56K3LOn|SNWoJ;b^*PzC!oCTAGl8T=C^UAT+JW+a@w@G!c*L)d01ei&6xxS@9 zttziUcETsmm+xy{o~U_8i(PBJUv=f{VC{$UK3)0+kKctzK-Pd+cxx~w$}L5?_q_(eA^a)1C#S;j#pV;;6HqK6r!Q~BDyl10 zx3wd6?8eKAeR+q5to!!pBj1TQL7SZT;6P~6@DCErEWTd`ZfF6TZD>rr$|Np6CSEIM zne}+x$GjuMKwF;#E7SD9Ebe7*{BhwJzOPX7C~~OGi8lNux#36U^eJA{uv|@?GckPc z0RA#kiwc^$o?X7&2oS9KX>_C%vj;O|JY6RxeO^xJk|^kwC^M% z#av|5N4+kzuic*=@fv4SgQwrJ&pgX~R=Cbxt=Azkes~pJx3gi5QV(m<$n*M58x@Z5 z*_ZBtR}7ZVZN5;gk6?XyPxEd2HwO94h;-jDK3+|pF_u#n-y(m z*)~t=sWu()v+q1V7z!M@QzXjpA;KrQrP*KAO*&STWh}pOvQQ5l(~kVSZVEuQi?1V! z4ase9sbWMafxzH03L5uHH2!EY{m=X)DR%>aH&yWZ%VD~&!qvZh){0ta>~8ZB;Yh`i z#x8S>B2lS9qAYh}2&Snvy3f2+E$W1rCgaeRmv;X7-~P!FSry5Mo2nB7cv(uPS=d96P-`zViyyz@c5>5u3w-%oRIR>^FXUU!>~+ZG6!7`RE_hHOE1 zrb76nNum8`(dZ>tvF~Q($0L*GYcpUbo~d9Di$14qP$FfA@B+aWyP328Bh9@pbX`2N zK0Vq2`hk%}QOvnvNPKvQAzf4F z*7@I+Pw1QN(yE+R{F{6_^Vu#sayV?6s@JoFOW_;9-gdaNy&}stbMj58o(Zn9-_##M z7(U64kZ>og3h4LJm_|8ZEM1zT;^W}HHGgQ&)kMllVj(>x&%(3Kh$D-%E;cSP?6u_Yik7iFpPYeh0|6_q{sn@=LZ}rMA>KE_!wvzIO>mZRe%@tY#{YEp}m8 za#&s(`YGwxOAk&R3G?Q0t9O+3#F<0&kA5dSy z(|TP)-8fs-_DNW-l$I0p7l3V!!i%kS_jeHiFFL= zQQCauku3ta;{QfI(659SiFeNSfT&76-GTlZ{WY&jIw>VYIeEu%_EWXZ#1c)=o3JFf z0d&OURYR;^^Ipg%4Ml>*T8LZMiS$i1R|T%0*?LOb8mC(?kk|9AvaAQ0c$Dbhn~S4g z6*`*H*rMRbNd>l|%}}m?a~)l+IKUcS0)HcN60@Kg)yboW;=$FV0gHsJ7aHO#zZv)v z2rulNV61NkEXPP3qV(Lmt$vVF=;baD2mbTlTSpMBe?S9sRF0kA^#45r4=WK8y-iyo zn)k@9StKhQN%!P~Q|$1-%00U@22b9XpUAZ%3F^a9729pA?dgaYZ=17!_i|t|!fm5L zyv}&N-k}OUNsHV5r{bM~Z==tGP1Bp#gGV~Dmb~|)CZl$D2pqVmN4stDl*DW&{rmWl zsDzFd&oKHHFM^7@C`um;EMLa?IIMYzE?si3leaBIt4lTbsem%0-%9WRSob}tnE4sp%?7Zd zxdAao(JxN;aXYRL8!Cwidns;R-&f_27c)%sl*M$EGyhiwIq!}uk^@$}(x~2tR0ALt zYS_>Li-xf%?Xd9lBp@>KB_cqNJ3hnStTGD9ZF4R@wX6j9kMMw)K=UIU@xd zfh1UwJI~wVmcoTXI5v+44O8|d^;ir|ZU&^ccC8-420r)*oC{p?%FEnPdDJaNjttDU z`sTG^en$z$mhWa>zn|9L8BT$!#OZUGfOAB%44)cuvFQF)5?>1wM~h=-Sk|uWUioq* z2>4>Y!hhuo$ASAmg3R7Y`NB`<3{uabK3fgNF5h^Hj33Ahsm@%X+SR>E8h1cdpAl=X_`V&!C zr8Ev&A$UEL$lIQ*3Cj7|9Y&+isHDvoleETDF!d~Z+JxbJ%tHQ&?ktTX+~hJh+=@7y z1o!0%w;+LV#r(Pz6yg_NYF={oTuu~w&rPaIM*n^wqJF#v$Tf5Z*DPQP>mJsvEJc8y z7v?qXly?4ZnbWD6Y8^XY2JQal;?UxGR3yq|oAOG@i9U13X&c*3pSg`y^0X+mWy03- zPFFo@;caO4nm`%WSV>M0itAYtypMrLpba-G=h%JJ!%n743|Ey*HIuW&)z~k4)Zce} zsr|{``o-aucO|APZu?3YBvrY;#)#hO?${<+0AQS;UKWd|cp4@vw)H*=n(drN*8YyT z&U)xHhiL85>sF>6T-18!o@7N#eE+}g7gJEGIimcbkZEbZr1$CbL~Su4@459LH?v*D zpsi%#l$C+v)Ol=wBtv*?XRTHynCr;2z9A_Ve14 zB04KKp-Ou8biKd-m~8+O^|HrXqm|eoFCFh+nXcE%Ru+WAc3My5`yO$~QWArC%{L#_ zcOa zN>m9$)kCzjdH@4AXZuX6_a86ILpX`jiol<^tD1BhIbc8f> zS7tJea({4-1BF1_O<-J%UT3%2rYz;;N#_vNeVIeymnf9px-Nb^W|oh6yy-EeBLNS*oVahbiZz>*cw>PQ;rbS(Uu@E(w+$87FSU<~$cA<5Y_TNwH-eUE;inwTf7?Vg8TZXWC8Y3BiM*A8f{1JhC3E5~ z5vu6dBJ#_KhY_+3*>$~;@xV0BVede&9Y7uGW;{40jG&vqp&*SUsFuJe*$YEo)PD7V z0CR%dmS0Q^k4yH!6YZIi-~V0tIi9$3&zY)2NIWauEX@SG!?~Q-hN0ZtqZnTc5u&8q zgOEOFFJjzmV^BuVF(|LoF4|#tu8oeijOSBH35~sx;E( z;vn{3-2+p<=TSM6vrzK~Z% zTfl8yOp61q4O^hVdM}QqHTfvE+HP(w4c?m0%i%jbWif+3Tz}}+$t%2rUt&p7vZWs= zzSx=jL#EdDbSJ^O!a_4IuGxNg)o@y~$D^C&=?+H9R*a2kr4A<4C~y8DABj*zoCZ`UHNj+bR?P{9&qS@nrf+Rbtf@`fE`L zzy@j~l&=3g`lGnC_RbQlNv2GHPy_4gpVOz)Ba$}witSk8r zMydMI_0O*~&$6YO)`jJf*5cQc?t%B^hT&5GR@D)z+$~B(3RSk$tgjQMnu!;?ww>J^ z^iukZE0Dd_-Rg4?u{};@So58|MaB%;wpC+YfaQ66vJeo^l|!4_yp&1YGU+oz83tDp zwg>OyL#r%!M_uDbpZx-$T&TGt&=1Us%M`G7M#Vf>FgUPV34cQNZ<(VB!Tnj3%4f^| z4Yj?NGW@ad$d^SZ#oaCXpQfdVs>?lmdsmjk8Jsmf`(9~Az`8-@Y8A~b`ygXx;bLAH zUVN%_6iRZxx;FPGzVX{+iKgf%K5me#BcHgLHpjt@jWvm`mH{4Vx1UGFGk%$Sh6;Jr z@j)e)-A{@OAgy&kUFX8-Njt^;LL^+O9Uc$XAlS(;=i(oCHXGf6o9IFk!VN;ag<2&7 zT}X%69`El(Oj=GoxwQdl>g5q2hUY&DR%Nlz{Dv=)z&%>I!NKahneR%i@ZMd-WVEQI zUUPAi@ynA$-Lv->Pig7%baZR&sXd;_rfaJ=0-oX&fx+I4(o!aPwOg0xn4*p)ZLRY# z)?a>p;LYqC0-O_sWyy4n zx(rVa^n!a{s7Ob9`{(xp1kc}Yc?6vd`JvwoZKts|IrxJD3|%%}@LOE3)0WegMC+1g zziyr>@I;mEi;5|WtknLF`jQiGA6P`m9ptwn(6KoSh=K{br*h+gHxH(w#byQxqBc%j zW~GK%yykw>>-36S#-%#Rf-K9E(J--J7E9rN#&nx>RQ9-&qX~#JI=cUeWp~+^7?oPm zSx@oBfByD;eoKrudKw%`2tzC_W8$cg4c(J4i6Fa_Fq<5s34Hdb^r~?SMOuRhwHM7^ zWZs$`lS?%I;{j))};QwRly`$Oe|M-6$+M=pz@4KzNDQ%E)m!c?Y6C*{9P`ijCY3;4G zw<-}aYj3GtyLN4fqE;nE8bt2j_4%FeIp6O;@|Sa*xUTp6HJ;DM^XKxHJduxcd59X` zrH4NYoBQVwy<#I`_#^H#;)5bX1`9$e^~NA!tq<8ycraK-@g`Dhg7NXmk)*d1{e`UV z%2hMIZrsg4c%szbXo{3y=qpnOGQ z|4jbdalgL#3Zqqjchf+>^j611UFxoRgd?XGF(L>%x3(zLf2tM^)p{-v6(W*pUk3&h zI3w^Y_eZ=H#5JzJ!-XUj@F4MOI=HQ|qS`yornlU#M8THlhsBbn$teCt17h8D1^W}%-Obq<;bg#t@nQw5Vx4oNTJEV^AT z1sC_o<%!%%7B?ja@2ZmBu#LDAl}Ig}67cOzXd1>L_Sy4)q+|7>u0-n-h6Jc=}r<^1QqS zhCM&5j$|r+!o^b(xyN&BViF{_6m4xrIQI8+^J+om>34_G!=c$WgB$k$($ihN{p_Eg z%rn6L>f;He?8<2maBB|&I#V^uUZ^{%mHY%XcvEhWRFhP|Htlh1RK5H@xfs2;G*BM3 zazBZQN1IzfeoDmy{#5u&TTp0aGnez1lShkbHD2dY$MY58ZF9s)oo@h0LKRqtKI2fY zX6lia?l&l@FiqsYJ|@T37&7G>A`_dh9XO#hT&k@!6s-KG;{7%Wo+TOr=&P^R5|uK0 zksKYj54eFOiM>?;qK*59`#kV(JMwHNz{0yl3 zHVFZ#TV&bnch)s3!ykxSiY_hbJv|VwDmUu*bRecUnwF=gLS%Yud9z8$jDB^5B^x6? z%h4Y_f};{mK5td{Yvl!{l`FOM9BLdI(z`7pDJ=D*$Kf`v3cy7HQ%fe*LU$leM@v$_ zBVS52!=|7y;GI{K6oyi}d@XN3k6^s5#--3OUJ>JlIvr1u=W4yym6zrh2XWQ-tBn@8O? z4?eW{i&=dA+2Rt5veudEpF^9-4;uT_HP`h!5Lr_YM=vaNmVuHc!~oyMRmieU(J*#v z;^8Ye=T)=;+Z3BeKG)|(%apeU9df6M;`Vf^UC;m2Z#ER~6xLUN@}w{XI$H=Vt3a=U`&4f?UWqS{FPaKTqE<_PCuiAaCMv_E>trSr%u)X`o~&RG9V(_Kw5(S{8P zX$y9QN?${o+%Rly@q0wh>gu@Nz>3<(&bH&)L;v&1qxb&;Syz{EYTT+q0t`PMMJrf+ zhew+>JNo(ZQ2)(&74B#&`}|8s>rmW~> z^9jHIB+#0!6L~*|Oby`u(P0sJcLi20(n>JCdOIyh5%@0Fvc?tXsv4w=yt>TmxphDh z4;j+YI>IQaCyI`vEbsSpiBotx$VNpWs=3gas=;`$Q>oiq5(eib|8NE@gBpBX=jvXr zRXHU^s%7h)kk>VRBGvKbtIN~uY4Uaq+_RYp=L_3#?>*O6D1vgujI^fKWZKW*P7Euh zppAV4z8F<^MbMax>*+Srz8ZJOrBN_5u7<(gN7W<3#%u6Y+NW<}f>sM9a9}_`gmLhG z)8ffB#_gL9fm8mYVT!}VR%n$c$fkesC;YH-5S#8ZLp|zUi-!IW)9HDrJ=Msw#B{Yk zJXym9LX{)tsrcYAh+OJ~VFIOgT7TT>mwsfdH#Kd)f6+bANBc92!~h;9Lu2 zqc+cWJ?dS9Rpju@LS7ji}t>55vU1gn4_iEHjmTDBZLyr4J*LcXXJJruC zH&V6-3D@_R5R}v81_zLcPdr#(pwBLSc$KBfH|(8lK&R#u9epUSyG%}a+E^8fablZ* zcnmEFrWdoZwi=R&#O8jgC~>~8OPKf|-fi$)TXjHh7fuf*cK-~L=4-Pu(0qqhPIoc{ zRJ z8@9yK&I$yea^>9WB3|pn>zi23fUm2?92k-cYASX!A2H%(Vw*pknLTimA5$&FP4n8B zbrm>gELusGM#vCvd1YDjaPw zHf=j`Oo}@j1=l`KCFPOl(TIsP+7K7wy~B}Aqc63}UXcykAB#Pp{cYGY_DF|FwoN+H zkTL$Z>+IsxoR}BiO<7%&VU+%C1-+if*53y6>ht4276J7$)J-4hLS5 z*dBX39+945PbR+n4dlX~WqFuV*@c5o1*F7L&0dS8&)`hbxVm7=FRZM)nJ#J zT_i2pJ*7Y*)`xYAjptmNWHBd@2h^r4QfT#sh8m5_Ql40Dbpyg#?2eoQ~=*b^kk zNR4jC4;V7vdQ6mI;qn~@HeCKbA&RMZ*ud?dxt1MJR)=30!&|$~7P{3{xdhcl)+*l?o19pWvBgYngOKQ^pf(T)7^?3Wee zcm=%p+qA;B>YD13xK%D8!vZ`)@GCI#x0W9mmWE9C*tZsQXLac5_arJT222iDQn}yE zpq11mvMwfm9jyy+UfiQ-kASX65Kb`mYtm}55+6Fk>j>OI((Q{@q_&gY_nn4eqIu$r`SJN{BGpS>J%tWp~7UeVzMvP379+0XNDuS z$Jq#m-8NWB92oNxEYe$FobqZ0t(VK!&-)}+x70t^nRD%JseP_#B7Jt0SE5e_$KsP$ zt;kvLEC2}#L|oBaeMr8IV5bhgpgfz|hfMbg@OKynZ-`P32DX4T&{uMBcfgCJtjYlVMMt0v%BLz1 zR{^j<8pJCbkCMIECxB|7sY5BWdW~^tdu{n?fn8?tkAXj0(u#a8CMomJzck*e^7HrO zy)pbdw|#duk>0ODEsCxy2f%<|Si56Ao0EwGkyJh(rg*!5ywTA%QqdXrmGK=L3>o$- z=zT(ih;&GRV{G1CqsbnpAEFim4i$eIwGzc9r z^LhhF8QPGyA({$4BlegOi@DdIRRt#h`S`Hk-;q$$jn)ZUwy`dmkj!BR!jcoIhvN?t zUX`E&@@<~y7XF2;&MnHAw_5yltU7R{zVG_5F!1CU31ncYCNI;P{4nJE@O{|k^CmYL zac5+2HYmx_m}NVi*O1fY&mey9Tzqw$V-R<*Sc?-rc=lEV{1-ewCa_gxes(sYSKB#r z!c!*s=HTJf7L`iceHyhmK0MCR($?0JJzVm_x|?T2GC{rku5d)n=h@CXw)(Cws$y%j z8KY6gUH4fa`Sh$X&G9O?*;33D%7D2Yz_c1gI5c_y5(+i41u+>19b{tE-e8KbQzH!a z$=qshFf1dxn}nV3rxv{=Ehd&XFDWdQELv50tvBbtsAzDjjH*T{r=doS??klgDE{?A zLPs3e@C8ix>Kmh|G@pPcIo>3PVy;2PY@D0@MU|4^h6R(k5y>*gxJ?&DpDxzy&oxw9 zv}1OC?1QZ(WEa>z*iwup95G9V=+$lon4}5Bu8%a&Jj7Z~d{)I;{qR{r#Ku4GU})z; z)58nM#BZd}n?18$Q&e1$n0gmG3aro7V;oUr9+9r=oA7z&^USBlcw<}c&WVjelF8IM zS>@c1;zfQ!o4=Kd()J<7^_bhP>VFj}GNpzS z!g+D|Gesg!Nh2ceDk6{sjOmhf1Ioc(qeaiVD1!UHv(JEC(`59{-T#%gG@tHx%j@i4)1lC^w;Uk% zsQhcQ2d)3j|KH~CGV0=_I@>X*Y)$u{`Y%ldzjvKM%-vpGDOw^)acE%7K2_Uifr>1$ zX0db2=VnDiDt{huPNO-*bh=^%*C=vH_nEcn)SD!jLDNORBhUyNT9ic_Nc*L}T@VF+ z{fgf()|rXHb&ah{2A;by-{0iU6o$M~8QmwqrSHSi!4a(&nEJKgT4S8bN2$4@ayMq- z;>VF4fj(=Y>6Nb{uVI{LDccF7A_ZII$_)-U4l}Z-#fW5L(!rMFrc82->$l5_{l!zt zQrwI-fwePTT>=NEPk}pLg!9P0h2`BZX~FSb19|T%Ue*-@e%#p$wDqD{AD$>{Io$I0 zMW0FE`SqxL#gk>VN8i-|yfYbC@td5RyQ{IP-dlhIF7oRXo?!bR%z`9ybv6t)!jRrd zDD0`w&dwI?HjX$!$crax$(gwFrW7fy$jYKB&yvuuF;74b9Rh6G1Han z#rak~HnR}NWhsq+h9{V+E!M-PP3HWqNj?=}rdU+GwY58swY!7_+(UAIJ!)=hYEdz2 zb#87|F^&O#@83J3_OW+B8~?JI{Y!J17MXP-ZdzfCg4Cz$Ho7RMiyIi257w)aFa($N15#mih}~@E&srjX>#Y?HeKO3xtY24~JE|lc;=|jH6 zv*n?Zfst~zZ;tFu7XQ&q+g&4b#cfC$u*9}xGR5?I&q_WO%6u8*qQ}+;FE_ENEzPsl z4Kh=X)#|#(?AJeWkxDyeG>&50F60bxDC#+u11t45mf=BRom?gZ_~}Fl7a#q1x8Gx0 z)iC2+-=gSL@7{qQdB%yL9yWmaL8T$zf6+nSS!cSs$L?!|jq95KG~|BwGJKt=9o-nL z_e9pXlq0})`eHs-$Dvil;zBO-mh*zNf7pm$h{BhwJZJuN*o)kY17*uy#m)q`ZriD{ zStUOcU(Y;`Af0Lr$|zA=3H6?E9#fygVjQF(+nTQ=6HdKz1ZH%r3hp}JOyBrSN)6c5 zY2>db`3CKKf!#kDP!@+^Aa(EO-)*5VliRIS*4ktdns;CMivy1XCo_4hR3(SYXX4TN zPA!Y3zfbe6^jN|wXKaC>@Q9*AX^TUv1>dhH@F*16>?W4WKuY}hG$U@gvCO!y8@lSz zY};q44>mOSfl#8idOIart*0CKb0Wf-B^#8V@L zb~mk@Y$jN^WsNsGLQ9I-H(@$jvSE6w6=sd}K8EI$HRA*a| z2)avUY@SJ-@CfWP|E{}(SMqSuxH0uchnYn~=jz90Tam@0SgESlsKQf?Fp#?}9_;A| z%%pWo#m3>40d~ZYS)s&HRwtpPbmbH`&~x52v2_^o7WjiHj$6SVFpxK{{VVgC?e(d)}+&x7SPPf!M?$WNJ}` zvp8;?g|;QqeBr*{t3OMGvz7!cr`Vc=L5qsGev87!8oSE8T{DcxNRUqBXB{muA+=a$C^EJ-)R7f z;-Py|1j{np3F*^2N>`0(vxg)!tyCTd3pQqCnp+==EIA{(H?(6wc9(H&LF{_s@Yjcm zy?P9pQ$0P*R-TuMMJCJua9wN?V>V-HbGcB`7Ito)udKMNh6K(5Kn^lRxlA_23Uu9b zg}D=h@znTB-#xtcJMy7lu?#ggEzS_BzS380A?{SkJnb6zN1pwue&%U~`1n^IlC;zU zLPhw0G_}67`5R?_wt`S>`}d96E5b)mu%5iu8d39pg$fJ1JtLB7j@`KEe>4fmMU&&Q z%=kQ{%#9Wmg>)nnSY-@I>3ofs&8qQuhc8g+4Ym<}z^C=5u&&?9idF<%BU(1=1i_M` zTe zHmue52QZFiGoBC?eHDWSE6?iRs5njsXD7DaY-jk*;_KD|*$yy!*#@?4^U5?6uV*G< zZ^x^26zRR=($K;w)`d=A`T2>3aW-b@1Vb7E$+53PKX=x<$7vye9~GpY4r;~ww6u0B z!=GbmwI1|2`eenL6h#-&&0vhhY^WNF`N4x&f_d_igeeh$<*)r5LPrRS<5W<|SAT}Z z-6lJ_zj-wkqH=jbWMPAd?z29($G9I^4^J&EZgQCANO5S~0V11y);Q&Pb_2~(+!g)qRGhKVN>s{O4Um* z@Ln9`K|1;@$mwsNxYFsK^;&j#t9|)k?)`6~<8Y{bs>#>`r|2Ghy=AE5-(KCR;{%rG z)5jk7#u-&~r(RdRS$SmGnCQ?{_oXgU>cHcl#LMNHS4BU5F8j(bARmbEsIE2ul9hqV z52VO|3yQoBPA--X6Zo8MgVPdg#l|R)@S)2eeh-A6^JsjMFR#$mOpwV{B9E)i? zeBY!ujHlBh=FM>kG=QHp@JQ}n_a=5p0E@gLJse_OKGoAhNjpbjgS&B?!xL_lX0nxL zM3q5IGnEwR^ng_F1tm#U-y$Fd2VH{p9hGM=TVOq~f>d~caSBvPPZ_rb_Nxsqxafv$qHZOTp6T%Ng|YAJw&#dHv}s zM<&&xO1Dfc2}TM1#w6>Cr3G9V=fW~QkR?1poBC2tDFaYJhX}Lh=0g%6u01nBvmFA} zhrW6~2&3zlqT?3Y9IeVnM8;9vKfsY+TQy(r#gbF`3~4jhcYJ&D6)yI*RQO_Y6M6Zq z-+e;I4Q{xPv&y!(`HRowJfkXu^@+gyNTtUBpp8ppBOEriOSBb;CTs3nl|o*F>*=)Q z8FXDEm_D>vTwavQ2`yh8XW|Rd%+zk4^ndJpExXD;QSW)J;enn9_o@o^XnuzcKj5E9 zi01Sezb*y9Qsr-!q5ulwmS+J!Tdifty&79}MMuy}YV8Fk=ZR+UTacB#t)+2%IdY!k zyTz~EZt9I!He$F89=?bmG_x~2#EXxZAUlbI#vJ8Xx}9X!V#KCvc-tcGTZrP`n%Qhb zo{ibe;)>%34e}6x*($7RhqT6`=9avWNu?taB($0dYY_-G*8&cLYI?CNd*EN?fRFgK z__vYiRikay(WRHzX80Ki{JB82tFYMqUa_hGjepcyut3{8LCHT>{PsYyHyTvjR|$}^ zEoAXB%&V#L zExE|?xASMToCCKbK@wWG6Yc<_veKHf!-`Cbgb(!2R-Q{guXg|GmT>7KC49n>0{-SS zmzn5n-$wmwCmYXujnB|R-031_!#)PXA#>OTsylYQ5!v7p)1^p(lD*EahVaAu+j9-? zkUjsS8O%`jdpyIv*0**$Rp5OG2PRQ@%Q|g3L=J5z6HhVZ>#s?5t%GHHoiBkPU4beC zS`R;!rolvv+w~y{a?@WUZ222vy?2Mu+AIeWyc&tz-szg%L3@Ud&Cn9bKl zKbS;HntzOIcG@``Ax^M@&gF?JNq$uM(Zc(qL<1!RGfYor*n8xMQwz78j%ZI5dp>AH zQ_SE`*{0F3@7d*A)vFW`@Z^nA=jF*)a3{%t6Hy`_LkS`V8zdbLGL{^)c1?8&Ou(DW z5xjb?R@LJeB9F0^f;*@vHosxS1M=)=)UL!EfbR9By2|kN^k#U2Wc7-{j{jy`okd5U zNu5XGGE#%-`q~|$5R~Pp{DqYWokM4m#!dCSyNP(wDN_C5K(XD}cigT#Iu0{YJTUil z+9zK;-G%8AP+Wxx06SSDwO4A9$XiG^!-XYi%RD%+9DZMmsNGi+S;*iiG}$EvzxJED za6$)`3&k;N?U@pi2Y5W_r}jK98sz$Y6>S!N74Xd5d|}&vc1tFrw$K!9v7o^`X7B*> z#N94FMZaG}9YqKD^bp z;g!<%I+J7a%0SX93K9t)n*LkiV4;AM(Z2wAW9tpx!k-Yl)P=4a9poTkyIB^*l8Khfq;YH4qab7Wq%f!Kms*ce0LvA>Kir37r4ep*(Wg*fw6(TG(%NI05OP)w7 zH&*&AuIl^CFDdLW7^>}3c^$;p{U|AZhyik8g{cY5uHYVvE5ybVSt|I#3cqN63KpD=UJHvnT*l z27OPI>1QH~3Vg+0y7)ZO`v~ZN@0?^=Y7ODi;`lBvYO&CGQnbq+cNNBL$2z3&ID$uo zV)3h$j3NA9cr_-cj_hG%j30WEU?*4zygaX=A=x9%F2vfD3|16zJG4<>*&K$Gzg$nzawOHV#y%LbOy)xQ2BKe!Ra!1Qx_c z`c!pUs=vfecIKa?-QTWU2}Axxkez0B6pne7oeMcqU&9Q_lrPcbRU?x zY4(V9JC^sG<$XRB9bwXA0{Ll*J>rMi$j>LX%*35zRx{nhV{QWm{`^sXX= zXJ_bmcUA?a51eMJZBz#Ns_G)+tbRt!6X!Wxe(=)+Cbiy&1L9Tz`X{jtZco%o`t?nE?8QpT zUdpms)c3qB>xYOdz(g_Q%O~YZvlu{GZ2TXMI$R}Ep33k|)`}e(G|0qZ!V;Ii^4jxZ z{dOOIPp4_Qd%&&uP}~o#hdsMK=b8Ks(!? zGTg{Y0c}dnb(6lEH4I>OzNr!4{a$9>a1@hM6x@v!5VkpKNi0lSTA6wm-59uCTzR)5 z1lzsrVkq0KA>ZrFKbPTX$fL};>n{#4M>!jfI&8t3&&_p)->%EBJ$^+$4HoInS`q)({%3oe9O@^;k{ZZFYqjaI;*+8bA@ zUTqHifE5y=5VJ@w@I7-qcXu@|ivDD!{m08(Qm;d-qy|#O{$*1iLl4h0)6#cYV|baH zLTLL!HTst4FDa))N}5CS>@h}Dvu@u9?cMEv9=G`vOX`^iY!)>C4MHSG1ON9WJ5GYC z=O%ZfT%KIdk5SEMdimPS)*{8cPAa=g=$O)-@!$Fej1Tuu5ivCf#fdv;uf2(*^PYEd zCl`VGgz=BT)oyC>vFoB)?(ZYL;^Y)T?s)7Hz443e%th zFU_Nk?XWcWO(lsf43r^u)Vr?mz_}RxV@H*F=1r&k6a%A*0pVaXKQX=1ovpK~sx#ta z?^U@n`dDsJnoGZZb!vV+H=_r=F7Fax(glc+UuRHS>7cTneC0Pb_BZ;igg8smv3wI} z4&(Bb&G*(N=Y@s{Ae(0K;TA*Lkw42=T3w*k;$>$MuhM3W?461*wbxAtY02p|t}MCW zWcKIr9x~mFhJDyO?hkIfR_NsTH+$gUpv^~Ti%X0Da+bNrW3ul?K1dn+_>L!#V0P_u z$?9^&;Z}Njbxk0u3f`~X|x0IS=ry*&Cd=3<-+L@7WT`6H~nJn}_(`Q`F5`v3jBmq7dU z1)J$jTAG_LElxb=Y}w<7q*9Lcej-O%JdJ%*(@4?;I(cDFc7(g&L&vgm89hSlCZIcc{SO{zCuD?U9@a?(JxPzQ6xgsFa;ck~1 zHTvGRFYY`{l)TMT*sucW1Eg2|ywEgnAUbz&hLlx43^g73)j$MAvjr@+C34?3_m`O6 zMDvs#9T|vHKc0au*gK5Qp8N3G)P(tNhT|yJr2-eu8_%cM#C}@wNou-Ip|l<(@Yzg* z`gE|ESFLa4Kos>zxAK%?^#&ZJZ;eTeVCM23y9 zO$sJxHosTpaa~(zbIosLv^Hu@uRf^(o^(;`L>JqcSEKWpb>cBa#^$TTlXvUt<9J-} zCnCWZV}Ivuqm{*>*Pq*krcJ1k6eYq^1VswBX!EGYlBwK2w6fN6-^?wgCd+vt(#&lk z$|*j7*Fla&M?KF;M2|^bfk1{&7wg`BfP@Joa(jIh2v=1kXTQA@ydq$5E)vx+=VCrf zu_|x-0T0wS;pLFOr;l0wcb?<&s%w?h>~Cq4{h|9}2Duf+taEu2s{w7BkdbD+PVTp` zfT>K8c*H;J6j|V4i)ra)88YsIM!c!3l-$CdEbnm%MGb$++s$_|P?SrDDK}muLf~#j z>25@lTwd`J6XkX<$rC%TXc(*3giOBgexYGG<9|pS0>-xJ7cS}3Bful&HR6&j{{E3=BYzqQ^whW|M`$+$&Bpx^yWw_ z;c7gxN8ljjOw+;7W<;2vA~V`mpXF@Xj~9rAmuV%4&-ZPJdgABIsq+&}W4EUdJQZb_LjVSLgz?fv z+q~vvr9V)sL3oC4hwC>an+6GX&Q_V|Qu%=tsM(02mcSTz=IuRXIYlhIK)QfCQPZH> zBQD(yZo`t7h+HHdx&%P@!~JH* zC2RQju3h2v%~`P#W@wb}fBZPG&G_zHE!)mOl2xh;C-~`ZTULw1eMqB7 zoL`>Pkky9ltxiSGKgJ2Op#FYefzN6LtqFQ^JE`KLi7NI#l^5&5C+sYk!_gm~+o{ec zVNy4>NlxDw(ft0#aK9qE+PV1-Ij{$UDE48`J6Z!P2gY4{)ogBB_!r9r*Ari-+6SGEh9j8>CR?MxO4o6f9=YdGn0x-0I>?@q1_ITKVw@66d4L@x6v2$1+V z60{15N2F9T?p&W@FpCEUGG3SCJq(|PkwDT6@Me5RPX9zqh!=}ZkEeaAe*N?offUZF zbr-dh88*v%%6yeF52`Wh*IfHMoracZMpzKe9!YzU>L#E5M-zz13QFrxB=o-P5W(H- z3VKApHB$h!{hqHY7p2op=)wKzi1I<1ESR44L%xq5iH(hI_{?m^rWjNL?KK*5dPMmS zF5XBUFuX>cSfiu(5Tgg1YZu5~U(bZbG0FRs#3sbBw~plh>8z;N1Y5{akHZ( z>uvaq&f@f~fMPT29Ibhq?r&F$Lv@b(wFBj=zh*Yf(Xe&Vf%@VN9lIRJX7JWum=z0A(C;gf7gyMnf_*a8kEQ6yTtSH2t98B`M zNiqEHl(VP@FZF;h1T+x&8k@7X67ToTwPoZhCEm>u4uAV7H+k6GDgoMza?5a2+*wp~ z^!KnUcbmZFYzC{8h8EuR*=F|6*W|@=9ek07%@5ah%o5mUY^;;(ymC_W3lBxxOcIw2 zs6>hvppqkKBrmm-BnjI|HL5q>i@%I8~3JFFtcNoT`dYn7?no znM2mU{G$o@cx7%?yd0w)FZRJzF=#fXK**94kwi=Ly{WK%v8hmhMcma0>i#KNUU$mz?5r;TEaPW%?NIl zc?as1nDJ>-TucQ-M>+7TTk4_>}Ow=6ZaH7&5R7zR~w!59u*U(GGUm0Qpbc zYs|1VIdtZa_u}0v_*@L?W<0hV3RH5P^+sH`mw1T}?w>jv zO5$Q~mOQ+riS+qibyJ@nl;aC@RbXpLQKu z+pP%~V<4A+w-LBJ?h|!gk@Y9lVGdSUoC2{c9Q};$dB0at(5h&TmX?zgOZA7BudmZ? zCepvttJ$^_b!6v>DtgjwxYruRoog^Y+3V*hB%C|^LtB|Lndx{|JDxw_9bY`U5m|agpSuqw*?cdtAJ^r zE#5C1{vJ>Aq?0!PdEmKyHoGqHu8V|BYFYW{@2f=~aOD$_*0vU>m-b?F=z# zN8q+qXCS%_<*1_Jw8N!JLGQ@l$t2hqiBA%$U zbq6hC!1?-e{x7FAzK1CTTLw&vExyViCv&^Wp%=y!y>~5YkIy{F2VjI_hC>~YiK3gq z&$-V>cVWWNOOep+KxKM2T`suw8KoBk&!6)5gR}%1SUzW|p|t`(r1$%8^8ZfduJo!t z4AB7Clh)6;uciBb**lwI>hkX6lh9FXZ|U@SpD$9F^}2_$**wJk>{ra%l|dW*i{!Ag zs9Q(^Dk&nxyS_l+=EZ_(Qmql-i_5<*oCa0YhO2w36%w~uz=hZ9mf0+O9}G^X?+PD= zb+-e95}Rh9yxE=aiw63`IcY^hYKw+sVT*lV?Bxz1y@$bN5MtvKVn$9x^+_K5{^#=F z?gH9YIoltC8stF`yY#WNJsA52&;_X27bXusyv)G~@PaUPHqZF0E%cIHI$LJJwq>@-4CHw{M^yfy^znt( zA0ro;cU}BEn&~wiW`6f`r5x=Voo(qBjt@XxjimTQp7SeTCulaaI<9m1G~I%lrlMoN z!M#}Yj~r9~emO1m&^aHux`KZHRY%O3QT*i8TbH^2KN?wbEq?1BJT8ykPj#h!`RPteL)2JIxSi?DsfwQe9>aD%a` zpq}WnUovxSd+lZOTd!W%SIzG6VZvS@H@gRI@gZ-M>XxGN>hxe}_Q1A|c3{FN-%-s8 z8mM}TGSdX94~dJ*kXMTOC$2)f@oLHc(XfZ;&=+e2SCWs6 zA}4d6LJw;AcLQr#KQ=vxdjHM*)rjb_dadHQ*JM|u^0G?-ewhUxlG1Qr1?vk3^3-ip zf$^YJNo9?HE!7r|&C-^`^B!^OqYU}_PO0MJ^4keTG2?zUq~6 z&Da*;!E#><``c8XYlR~g_Uzox6}|jS@w_bk{RerMJFGvE9O};`GLxpgiF%SgAyrNt zs)wkoC$!!Y4yi?1JTU#I^?(aJAzAT0^6Zi1(~BP$7|_Y4s?4vwY;7gNmB``)Cu^2> z-CNlRaY8-X|7Tn`(GYyLaIyOz z&D?6dgOXqp=g%D29Z?6Z469c!KlXD=Z>MO3=;J=s%YiQ~<;10nO`?q(-9Dgn(}VyE zNy`6ewSFEaIHY=X6;%4f1Gz{|i#k%)Uay*Gk0~DRg}mhCJ{e*KUL=~rgWfY&W{MJ- zmpo2XGnv&ZE%5Z*V*lg*chb{Ho^e$x)8qcry0OP4@(K>8C5AXC3;9oT%(7wFH~D=J zNe)IMpl(}tpZAUAH4yeC`TM=rodlgPXNLk3Rvq=?pBcg|$%m`A;Qst_8`2y&<%Kzu z-j)K<3HgqkQvZA``T5XB7T)oRgPc(Zo28Mb!p`@!9g_iPGlEhm=6y+Vxt;s3IW~2>bGDJ|;|u*Dq*BnPKLht~=3ZW(@+!p6hoA6U ze8YqVb6dldD1QDE9qUEBgdU_NX9~&&sq4rk8#g$*mJO(#Y_0=G@ACciLYh~q`~+vV z$>BO11+x$jqziZuJSJWpGWd9`mKApc|KR4t?ai1f&;YAF*FXk;y0}~<=uH7Y)cuIG zT`wf3x@pkdF+3COr1|+DO(Ep>C>sIP*N8N$0d^-Pp@HnBWQ$m1{pJrY>^ip17lkpC zLIF#Epg|M@VnW~=;vVAr8Vf+Dbi_5H#0lE;V?yW5|LQXXk88Dz;ti>7D%-cZ1ka$X^|}tmN5);!b!d)}G5Qys0NHw_KUngy zs#|^g-&QllAOmqIFsi^$#OFO;Z;rAt8sxRk(UZoFrivFhCG}2MDFaY&5BjXER|~={ z3no>@O^!LvEJ+N~cEd(J!%ZT5Vn(Rwni$jtnL1v0iNbcS5W+)H>n^d~u7Y;JrX+igONtR(7T9Rck)=ckE z=AF;kwbQ0N3(P)jRxle^=>{Q8!c4!kz?B}(2pM~tlY@Y{cBOn5Q)dOM{eDdc&#_ijbTrgVmyQhlNhwD5YSifcv7!dzdcjch}W z>tI0#=1C8*{?VmIL+dBvDS-u7l0$USSp=7e)x~@pA!#dnP;rvzfJKF5M!~&=qV!h^ z7sH_HyMqJtRj)NA9~wrE)&i)9UaC6f@GPK=crhDF zVG}yw{DzIzd=Q1C6)@L&S$4c7+)=Obi%a-$1Z0O$3(AYJAJ_brx+5Cjh+Bn`PFmmLY|&?rzEw>;@HrbH-?DdD`ToVtrIya^QNDM}`R|1iq^TirO{@mh~(@UF;xp-)t z)TUnU2v&Mkiyh0<@sGch)^AHe3$si}V>;tlRW+cJ!*vw1JpY~EZOhjavWfgR3Gx415yqnE)22p2vFoR* zMTUz#a{dHzh#iYyPm6ioC^`Cv1MJUtv-=lN3M2Um&g&iWMi)PYmtfn{3~){lZ|+b9 z>O-`*q038sJSMY;{6f#RuycwctutQLW*i5PEbbWm3u8pWf1cV22o4jJ%km1=nj3(6EvLRB&j%5hFt*ooM1m`` zp+|r$@X0*1IQ)4tEj_2Cl!(Z_t5Kxj&rc{Bb4q)`Ga4Fs9l>`rG#L)+Wmi*Zgga&S z&ZrG)YUgXO0OyI0MAOowVD(B$yUQP77(@%Z!1`ko3xxkap3XC>$+V5u&NzxvM5Nb@ zQbQH#MKbCD5(Fglnn6IMcL~xg6oCLz0tx{{2$9}<03j6V(xsDxB0Zsm(BgT&v(7qy zDF0X?dEV#V_ukjeplV)Z)!CHUbk?7uCX>1@T<~okWuzT{Z3X=Z0>Ar!Pep>7T?#a*fpMF++!Yj5?;is+*CQS zDQle!i?A+7@%Vo=eM3K_kH~$wdKn*@lQhQPqgkEK8Yge5u3CPj{~!?1u#0(h92wnN zyEw^{wldwHR@D!SoK&sE;|9oqQ(`%SB+5*H%UT5aA4nve{4snymrYADxAj*r?< zCs%Z9{!8J+a-sN|yjcm3Hf%A)OUXGC^P^g|{qgt6$1?#E8soV-%x39e;x^a}M zc2%Fxw8-jUw0muGK~f2PXqe7@B^GO}6vX`Sm0hlGLvV z2HyG?&FijOB5EEtu}KA2TWxSzU#;WbCHOc^)HB>dSpfOsU$?t%D3FHviX`{rgOx*~ z;*2&Ynq1)0J=$%$oEB^*z(8F(zS>!z@BaOC1Y>TVZxpT2Z~Ch_F2@BmiNx|uRT%fA zYcO!Eilhl2Ss$jR_`0R${tZO|j^i>!V9Y@m~?wrXq*J#YQ84rSal!qpzk#~Tt3(;>Tp(9DdZI+AA>3I1i zSl_DC>psxmhtnAofNc__A!etFTtOA0X+((S5g?aovv|CELJyic&1DgB>&VH7W)Nx> z$ccZ%(vuBj!D`^0sgDAN1NqBz`u|D~`TDo_@HvcB+VF-3hY)RtONCz(=4&_;P-@Mw z&#FEYkRm%wP?CY5`W}*~?v)3#;1KIcpa(t=2Ao|M?M{26j{GS;;j9V%n)MhVRZ0fi zTg)4j^;7DJT+E@b{WNoCk$q~Uf*b8s)0!6YSKk2B>j8;AFws?QKZ30DxRlNoKHFXk z|8{beyCc%T@_ z$+GKsPTio~ zRC{Uhm4>b^_!l5xa%H-?f;K^;tex|qKYh#{Neo;t6mxh;#$>vU5nD8N=r!T7fy5+! z0=@9qk(R`5@FSm-Pr;JWeX&IUE>moFS~!3A=L>t)P$k864Z!rA!j{-S z4d+NcTn!YuWloA9?jh}<;o;5^}mt-LStOSS%u=V=rT)Y2X_$?MFRTIAR#{Tyu zsr%IWjE(ZC(Yn?{$lnmJ5!xM>ZHqHs-8ls&14Egw@ucUxT$e$?jbZSczb~y`aC}+W<39Tt z${EgCS|&QC5BLl^!zC!XjAxpP@{rkJI~C{jwOiSiqvpl!KdZnOj@Lytp?bz>*Zx=i zS!a;%$2))=`xju1ehaJ{JH%yoaTa;nknV`rTnF|eK_sKUTr-#AwRpR+v)1#Q7R^aX znu77|Z0DkXE>2m=Dn-=W{gT%b0vfSidC!&woP^?pAhC_=ZV1WYdWKBH09$AHWswuC zih05bIVord+$VCBifaAvDC@4E5Uit$g{M~2oQsfdmzbpuHpv||7A*`&lmrhQLWsP&2_2dEmYSnB?i(6f2P&^NC;+zPX#iXJy5}@bF zDXYblx*`I3tgQrL5$C(0LY^Jn%zNGAqLyx#<~(uH22toD_-%9kbyN{I=&N{_=at@Z ziTZrJfm%7bYL=Y=9FbPLumg;+)e0N6vj~7*E(LtZRDVsi{p&xY5rPl(Kw$om0SEv{tixi$O9jNCc7W=r&S%C7=9PC(xDkI`f%AA^^@Kv+hUD;(6N)`De3 zpn=V<@6#A+v}>#nbQ2coLsK_2N#wq)%Nq4%Qqnl~_t^i}@zz4?SJ%q!H^B4x*V zgLLZFU_(Q7X#LcOH+`;7J!^z#NX-;ZZ5Ozl+EC?;7#x1L8}c&E(=c-?u*3*z`nkam zU7FQwoTRua(Q_{?v~*9kbH&O__+B@}4+$`Y-PMn-KU=ZGLV+DnU(<@PBP#fjzqX7QHeP0=e-BvVqfO1k|J=A)+A-_RN>lLQ&gfLM zT%R24@6jtr8G*fl3@#P)B2m>iF5%k)Rh30u=X!>KXE+b$R;ZUcaqMlN)1Mt0sO2Hc z1~oz7wO_im(PLR0=t88ae4{O@5H)rAd<7*_`m4`v-A1wIY>3c-dkG87A{-UsZ~HAo zHmyQvjpLD6wXv=)dV0j)8kg=~I=uAXCG|^JFY)mF**-je1_vUw(K{RCPQv%T)U-%` zkeHw9X8-&49{BS9Ql`>NJ>@w)k@7jOK9N+<`t1~hhA##!*K1R~|4sEe zl>(;emwF;uo-Lv!K*fyF&d6E#)}qSPUc_^`8GD0AW|M)yV~VDYGa)T8Ym5}TWz@9H z*&#H(+5cnC{^YFe2!5+zKoHHgC{xn;!`6+@8>sOJ{{!m(%{PYczYC0RU+j09H=7Q{ z%RC(w=X6Z z`|6yr(x!i>WE>v9Uc9ud3G~K~_@5#?@W?7tVg3%u#wTy1EPMRFEjuf=mdnD-d!7qa zqFlRmGO;>$-yDy`*IiT0WklqgHcQu^M#KO<`I&#Dg_E8%OaCMK;BWN)!1e>R3LQ-T z)l*5&S?ZbW-oO++qXv?9fHaU6GR}HdVh6)J(@tyL1Ft!_Ee_3@g#ZecM(@epi%&Zl zJ3=zJUMUB{&zqE#aou30K24|R|0H~{@m2HkIXa6NjbNgW_aJ86Py(r}1{=5>tup7y ziW9%XSM|H7b(%#PmbydC~i zGb%s2#~Eo3j8a23zCdV<#W^1M8wduYC0^IBn49N&1pwYDCX@-#V-5lRsu%p1; zrb3}I4$6#GX(nvDSWWcRavN3a_M6xR3iPNh7(V#9X{(8p40uFKH7mNwp^}aLp z!&QDWyyy`3i(aT-jEueW2!mlhlC%c;1LBo?Wh0j*Z(X^lM>&Ed1$RvgG;QGiYE zYTD)NGDkQxWgjWv zMUPm4A4eF!v_@Gd-GExY@7On^9wgmQ+g$}e%sA6Mbh^L@ft(g^j(!h)IaE{EDliLT);{76-Rpw#S&=_x>gw+9`-gy8U6_%yb(8yd(}B=BvrEry(6I1wqQWA}lmR`yG{o_qdAMQHp>GI!$Q@>1Wb#ye(i z_K*4Apjh1VbjR1-t2072?>oZW&|e4SdnOC3I9~MmO$CrA?iV8oX1xuVt`YYYn-YRVpcZEE) z@uh7HcW=ZONSo!}d|bJ;D8(k)q$1;3_@t&I|7UYpZqz(qwRE*wn>x}Fz{XqLNt3Z) zc%5p3)m~`eYm7#D7&Ha?6innpZ$QYp0GtU`2M~a+Vx!IlGfj&KNij1CkDuAIa*m|? z8u2-xY{gVm-hRnvHndCWnC!1so6HVUy$HJ3s%hvP54-qSF`0Dm@5p4Jr`*GF@49Sn zSmo$p7=SF;(KnlvB~*>qo@oTQx-{c(jfmxjw>*>CE6Lv&vHb7njA3Q!itFZek6{=? zSs;Fw5~ZpmxoeVEnxg-5Y2p8Rq|WCABm4JpTypmYtBwF2OqKbnP`Mm0vTF)33v2PS z=-ex@F4OA+65%c0798lLHGk?Fa3yF!%#pa-{m)eB_@{{E{HY^$!T@mVvlc|=lGABR zL#AhTNqGJs{4aX}%<=gsHE#MCh`nAL)TN*AA>T|}L zpe0dLo?k!<*HKT3)?^9L10}6mG&7u;p~F zA{med?(e^e`Sg6^wwq7a8K0^^J=meTRER5q$DdvhaKW&A^%C{crAq>Td|PHDK<6Uh z(??Yoji_4qD$S#`R_{gndx^`y_U{E8sc!KtB2q|+mR0PTV!)suFea?Ox%?gxa=}KCvmMQSEf#}1pV&Z|wrWAFA7ISkV zP(K?ECnvqB*wxJfa*uAudS64K6uX+*v6K(CVexo%lgG&;o`O*m_4~mVHO0R#J*COv z^)!vxrVG+s{g>~pinPb>;>=#0Ll37#|JvaKn0R^4Fx_(zIw0*8Y(uL^Zsm0-K zIy>kcoNNK2Nu=d6D-J!P8q>IomTb>$DTP^AvniLmw0ITfH*>E4!2PS$?MyJbF@UXV z1l>HhtO+&;sBM9`AGI6WDHD9ycHKS3) zh+qzAao4+(Ln2JQBW=Zp@P-PzAZ)Krxr~L6`vYqIur1Tq&sA0FFQos=j39ztKy&kt zqVUF<^nrm*BW@L0XU6@`j)6JVIhwC8Qlc{`wC!*pAw3rH7+>Cc^Z)I~5K8Gi6x&`Qro;_WUvbXSK;YhvCxFY#Ym+W7&>RVgc|nD}ZgK(HM!o*lh-u<*d!fCN@a&>) z9)jWV*qZXlO~jt!#j_4#Q}WnYdwE-w0E1={9=>y~4Kz$q*1R=e)#;WSrK-=ow8m<8 zLzT3uER;$yQpL5-(M8v~WrHL5!tUcd25|TL8kgd$%zXU6(TqBRqam!1cnu3G8yCg8 zM=_f1vPC90R?UnDYphSMS{IK8EDE(+7YE+vRIhDEK)jP?Z6003K%C0FyM%c7oMYk= zQys}I%Wdx;*qBiSPHik*r~90le;A(XMh0ZLC$Vj^Jy5)*i*>Dz4?0K|uGpRT419-I z5#+P)M~2R>8hC7@7L#mj^mF%F4$a9f3a19NlZ@3*OVhr=AZoN!!nw{MsVsO^kuty? zkJo1d9CgNns_#J7>Bf=SZh-)=C;_|UdIlc$r9W=Dy|HOdIQUu*slmgNC0wLxyDA7|{AFYZ0BcN%XD8 z?36glb4n1v00qYba`6`7+^q(W3TAor>8f3%t**s&eer%7XfD--dFAITju-wv@I5G2 zZ)6c8PiXreQ7|OfnI^4C33S{}lez$%-FgvG%euV-tQNFr-Wd9L8#4tP6)t&hV&}Eh zHD#|=Q#-B++oNQ4HrU@DJ<9ght7{D$6Pdgbg`hTT7I_C1UUR6+)vMl5;k>Zt)wwL* z=QCqy7KM2;P(3KifBj9zXfrmZ(?NLq>*%`-&9(fiXe`XX2$o+2!{{0Mxlp*rRsKK{ zm#!kV6ncp3HoTD~>Atde%Iw^pxh>ZiQHw-*`Z?Ai72UIp90Z-*nuIjrk+c6=uxL9vclt?VW?6B+>`}vZyF;8u~-P7FFiqV74%p4g+OolTsgFE7R|1DYf8+akp{T28SvKN2sNb-ZpY_L(FJB75eZv(I{8N9bDvPmIV=`z^-MV ziepB;Rm_dhS+*}eK-_uj_Jl$O>tm>PwCU3OlSflk%L#XwDx&DplWU2q>2TiAd-om` z^vVn!;q4c<03cu2l&rT15OcHB*+`on0a~iBApJ`oT_ob_ywE0jYHriD`K9*dJD9;G z+@2HW^!PfWw<}a*+ouVM$#o8xaNx6SPEfT684yGb+ZzvNrxX{W5~2fNhg~h%9amqf}+7q{y;@_ zEBXlQs?mEU6;<>5(#{hu66<3KyeE*RoZ+3N>$Oon=ITXT=mPd&b_ouBQk%8-F!8Lq6dADUNc4^L+Ucc{5SzcIoxb6&lpDZ>^~eq37@!wb8AE`@9Ov_Y1g3 zGcRHQ%(NLRisYG$IJC=~?|wyos~_EJQc5?Kpy@Z#NCM&hFt7pC7>N>SyKyVQdc3fL z&%bQo!tq=IsA4sW4F8kdfKU3%wGTsc>{K_XPsPlZuO&}$3We>=4_n*BpPjuET{s#X zkshD#-`AIFa`C1dLq_~%#fJR_&Q!`NYKbnffTCskQctb@B}%nhqBDWVI-AeOI1=0= zANec;e6gCm(iFk!tje4r^`(*~(9UYa`Y^M_^Fhd@8`L6g%N(_7hMoh^J#(ntmtzAQ zY|3^g1@ z!dm=NT}4oHqwq)LY5CWh^uG3h`(dfZNJmb9)#549En}NiZ8x$$O`W}H2TtQe`@cao z7TZ-~`4Rc<%`5htlQ_q`1t$Hy*jMQBvT9mHC-;`Lf#dS{OOg1el*>l$0RH384!NIV zeAmtb_l}L;YF*MSEM$s9j9+JL8nPTOK{)|=3E#eKJ6EDV)a=g2h;o{Mi!Otbg!5=- zI#~J{iV^gkE`lig=$r1W{~D(mEzZr1=Vz`)%yT{-tH>p88l~_E)VH98A4#LkB+PsI zF-pjl6pXRMovo1_xu5yezsbkjLwRzsI8()?TcOXVw$o*7Y~HeoeIhV{-|EQ$X7u%c zg;epy7z-doD~Fuo_;y z+c1>3Ad~qu*-A(k{iT;*iouT^q%zc-=%otXJuh?Ew4!DR*QFZRpTUc_-1QIIxhdXP z2=Mnmivv-NwT&9@?HDUE7RvWG2UrJ2cpsVsdiGrx!^rRjt!5m+&y;4bovRV`D~Mr! z{DL#ypF9o+bQpM~Ub{FrZE4DY(Q zdtppxpm=2VIBci{8ZnoR2Sc+?7Ud(N8*ozR7VsqtO!;Rhv|>yvN&J>iy=b3xA>78G^y_m~iIxGgiu-gy8EW~=s^4$} z6GfEKCk<;NJ0#4>u`*x0GV>N`3iGU=f0mx%S3S88D##^U3i4}DYYLKWdS_o&Iflrj zmk}$Ny6X9&fPRdb&CI_kJfEU))hSvtpJ#j7@4e>z_(%EzJcY8LZua6odCB6?lrG~W zkyHa{YDE}-&{{qdB&1I&w|nWKZMZ|mIxZOh5q;&=&949Uk;H;3o>#S4XdBaAE9*#S z7+b@xKXe~$(qdaSqwOE=hu9*{zhZq8s^OBqAVtgQ5)vF=J$Q4aHcQXbSXQn8rrMP9 zK-yeS?1z*2r+2#7b?EV=5iVCB07B`cs+qxWXse&=q{{fC%*)mJqk5xTz!quKBrPTJ zPC-5_{f1H*tLLjpVf6qvaD=b(iDs4R`M+BorOF^SW51o9Vz8{WUP+s28Mv{2$EnHo z%LtgJLX=AYv1)3|#RKC*@vlYEl+o?alqav8KTXs&$~o)FJs+z$nsY5XJjW6}Ti=sx<6~@#Er$2cWz2YW=G39uXZH}xMOW>q>WSg zuGn)^GaBLrat6!$vW5ZZW86(7+FxF0yd0doVpP#8xTEq?A8Da)&Ud8Q4QrJ%mg-k*=U}nV~QWu$$)aupoPYwTb4db z{zY5zGums9Qx~#Sy=1Qgfw7xb!OZ)%P;;d?R}8b|Zs%GXR`4*K9FO-B97JG|6sr-o zrvrC)TcHSC(8OID((xtU;jX1^%ceid)-H(A^w%?aPLi5IkzU6@Dyec&)VG3T?W0HT z-PPHfMX$nj7!%GIk46PjwvKM8DCn#OQyJoOaT*!J*P- z>YyJ|E6f$!QIHowV^IiRLYN$Lqls!6yqooA^(>9ia$_J@@B=x)a1Sh`*522aO!aWv;4=K9~Ou0M}@gD zkLaHKp7nF7o(*8-Rk0(_h7urGeB^D8nC|tSy-ZNqo?DiAM1=IPa$6!S@aYdob$XUY zrCX=(6IR}7lNXbC-51;~TO?qM!^6D%YOahrDe5Oy!$IjzJYdqn6VtmB!r`VDo0Ds( zNrC&Kdy^$H!Hyt}8F2}E20=Gc>o#JhyU~z|Op2+pqWZ@A84=b>RJF;EKDIadsO??^Xnf8;>pg3jniF7 zd&Z>G0ivO2##HCZIXJq+5J^FJybTmqZxZ7Q6eH8zegx3+A$ez~zJ25y4GkAk7a71b zB^RAr!x}Sn|Arh*FEpaa<_g84E6g6~&uX;~ew@BG{ls?QBIa}H5@icB+dud{Ryptf z>cPC7{t4%+Bl%liUO!qVWEU@-r(k7h&|5F2NU3R$1B9cFuI#lGPYk@M``3wqvSV*T}iTJrpCpXSdBGMUg{Oe-Oj- zqA|!sp+qU}n1M|Ij9;G)y4$9qHUj?7al1x9P}X~MeHqfR#7G|oP_9~_a}YVRKuCZV zNJ!9lcos^3a+Q9{gBya|Ot|!aYsl;=5}nEm60XN9;jev9dNzHWuAfGzmd0L25z6>@ zr0=U6`c+d=w_2^o)8{AM)C?`Qq-3Nc*8k@`j#UE?lRzgz%=?)$)Dsf2X5QXKKv3va zyGh4Hu9yv=a!T~)<5zz&B0@#4^&Bl(t()lFnEm|qLiMOLSNaNE64LNGHf?@|wv%6n@luD*^okr(5 zljnnpTyQ*s@n>iYcXYRl8T#uu23jEX`;yCIza`rAw%A1eU^?Hs_#Cm?ylXo1yO5ud zN35Th_z(v@RxcxZaca3f(~-On@oSCey$at*exH21iziOoZ;+?%v`VNSQWWqL^w}YB zM9s=csFYcS#oP!}Ojr1y5giKNK;6oj>yXOMbY|d8JK@ z9-_|?Aue4k0a~44UG=|pikWGZab~w6r}L|1s-H2{3kjL`#^|z8ESP8yj6|0=<@>5N z6Laj+T~5qdnc!FKW3DY%HipXDWvosJa8&Xt+ekPRJ*#v-Za2xf73gLbWsP#bNB{(l zJj!r>$GzItjn_&CnbDK9*39O;XkV@%=S=QA`=rqeU-ca|lm z_clR*1?8#Hxpb+G(Q2SrP>0HyB2S385mtSA-FwwEW+cm$-KIk^E^j5}?-Q9O09wa9 zRqjH>#_^msz6f)gX16)gkwm)#!g~ghB6c)@K<^-B zp)^B<&jXNq)Dt$X7XVxr9GRI+F|4L$$P#yl_we?t@j8i<`O%A$(nlB2es)RWUWT)g zZ=sM#!gjt?U#029UA3!bulw%mnV3#j4^&Q&le1GiO|vlS)#zN!iw4EHG>kC)Da3s# z0p;9j3nBD?1c%Uwubdp$?MIsl<+711}qGL^MO@%wEC}yol-4gxo zy0Hm{_4(#`3GiR$p!E^GX%e|R?Y}QEW)KQX8StPerg8*(N07yJpHqdA{Kq2{5Yb>> z-`(4%{xsvg%=Wpc!#&#t>-mjSyM&|of4q-w%gwGd-OxxtL`Umq3@h&Ol}#1#LKFB* z9bf&-ELKj%?g*+|L$!{ehAM_8kje;WxgQN`{WSg<)$kl{mUk5X?#JbdB<2B5L$mx3 zPHB}wb1{CQ-jh|F+>?HTT;fa#-90~T&7_xNZ%0+^6#e&kBOD1l(2DuExAO^mG;nXM z7JK-3J0niKBJ>py?l9?kN*}bBrPO}7$n98SZxdS74<@yObjec<<%L;AG<+AG)!m4l zCf9WnVSfMz;Hq-n%Ib#Lt7tDyy8pca3a`BecLp&}5`h#FYvU?)x&ELyO^hHuAR2Ck z;rkGj;)CXU8I(cgX7`~wbT(1F@l9otwZ12^E{Xk=fX&g8htM_#Hg)zCteIGzwS2T# zDzf-tfYd13MO0My7b{JzAKwM9Svu#Mrbb-kmCGLPuy$(Qr3IcrX#FyN<{$Lj-N{Qm zi??asB>k+~xGPNF-uZ}8*{Q9O922Tle#(NQrT&R!T=-bRW2*)UL&+)Yy1=&Ml(_nw z5}j~eV(txD8S);I7P5(wpH#5t8zMJ)$cS^o+TCe1B#nzwbL9Jl)q_^gq@OS%Yc zyy(%57{Z2QQyh^+a&!DC*H@3gzwGI}eVEuX=sN?jb-85tQNF>8$!VE_z3peIGz`qP zBpC`H3Fq+f;{LU@ysF-~`I00+R}BsKWRTFog#X<|XsYB5*yv|8V!UlQ2_Stt`@9NOykvlw`TtxKXxh69Ty zvT#^f!O5z4&6Gv;OhB_Mf7+m_jXtnhy)hdIFK@Z>=W1BX{j;TAMuzWafngyLK-&Qa zd z<@Y6rP&M*@*(PSRC)mNi~bOP91P-S%168@JY3XIZV2R zMN``%Sng#4q|Usw?V8MCGcNb>=60&fgii*OBdtXp@65xa2M#~xf4}0zqsbw9w*BwL zRC(%C3@U#7Oi+tS69JJ91<%inWw!d(?8;q^A0OGho=m>5^gpyHn1mkRL~6o!4oOhM^)RBK~*d>S0(> zrB>`NZJi#PH+Uu;+nkPjqe@e@Q^r02d=2?M@&5!qEpOTk$-Qs2f#yj-lphJYSf`B5 znKq2ethY{xav$`1V}B`g)fXSkyS?fj{PC^6N=pCE0Q28hn=If!-ksQN_3~D|i9VZ7 z)UV-s_t-LX#TNu0U#xm+l-mJdnUY1RO?C}?N?KYP)S`(a1AzGX-c8GpXMkht8KrGl zb@d^-#N5<<$Rz(wo?))ydTfs=`u6rTj-ZO4r&fKsV55I)uQtowZX&1LE}xy%r@(uY zXWSt-l_ZGqgX2|P7g8Pd8H~w;+FpbR^`walzSELaR%W3 zHqByKR))*jMexJ0I`{sc$SI7<0MB&qux6ixxDg8ZI0(XL~ogwsg7ZwXj_2CuJYpH z&7@Ya-mjGDU5H7Ec{XF9lz9=O>Hml@rbWPDz0qOskIqhWj22yx^2AG(Kg96mnu%6_r~aP87WZ&(@kO|^|J;RfNmt%Q4o)UEvDu2KSK8&t#52EKZBj z;?T(ru!8%yo4_zh-a+hcTxhkpWa<_&Ike?(eb+0r{*`b$RudgaRXI1yPw)`x`IQ%FsxB>_koT;tSe~yjIf?i+y1_t^<0p`^f*&|OcPFM74PC2 zm;OrbQIb-{rZ6-u-nln7JZ3W#O?)`JAIzG8v^>YIbedCr}RPs#8xiU3ay~xu;iRZ688mrJ^r# z+c;|Qq`i1xU+?YcqB~|-&eH-26j!{M3CBIg= zW$KP$e)QVbGPz8m5vQg);p&DjH?NabSYQA-NzjNb!BD-ODy_KrETGwfYFpG&-&7uM z5k3PV!$9xaZ-uiUNCe%^3#lIKNg#J#ODF)qKSp0Swg@|n{iA_Q5%rIg7lF3muS_i< zRhwRxFJ2-{>Ctxv7qv7LFcz%p0S?Az&fklnvK*6{&9+1J^InswVJCr*WSsY@5!r~{ zM=PvT03117!)zY%?zDnhD9&>6={0`TvRG>osv0Y84t^#9t*A_pRIhVu8@@rI!KvYO z`{5v&#UJgnuNKP!d$hd8BC4E7l4?m-y%AFnzfvBOyN^{ddswbMd;yw8oaWVJ6Y>#7{v!PA8ZbKkRHp`aHgh zqERO|y}$o08X<>>S;o;AB(PcLMDz{Eohrr3S|7gwOa{@tseZFR?sQR7>2`EsYn`|M zW9^m_kV*QwzM$EtrQ45HWHHpQY=^}4Wg^hmP&Q~K&H$b{lDRW56V6JtYoC3SN(KW}mkBWxYGDh9pG>~8p(eCtKJz7zMYo~bjHFT3(` z>sC6(xzFsG)V~>WN)oCRiyhp|%CY7N9&M$f+Wo3uO$$g+A7s&ZX10(eMiLf@7CliB zxcD1)Z`uA%ua64{@xYc#E1i|ax)mC1;9(DkGkqe2)u}wJzuMfTykXE;+KLwC!}X(E zrxkwGvCa%osbtJ{{c$@J&aqUNeOqU|EL4S9qI(TW->9|O@_V{{+wafhXx!Zu zuw`#f*Zft3oqBf-nTHFL5BRg4uN64F$7h~~wrm&>4H;Xt(LPlDk0wTsOWWo9o$GO9 zcwDEPjXO8L=<_;Uc$}sjLCZ4+0~aHCFeQZe8OE@!d|a?Su~3pWv*mozZ%B>D1c#yI z0)P^#cXYAv*$5sj!EPj9Iq=tLN;CuG zTIJzRAMezZADT3v>7VNZ8BN9KC{W~L{jU>!f(`#LG;DpM1^?(+GU=6Lg%8%w*2DE` z3<7?Gu_$QcD-H_Jw1F-ICuFx}S-gYwa`bwK!dN7#v*`5&(e(Qx)i?(}&>iEUNW zRH$|_H0XX$QMnsz-i zL>1c?tSs#AlqH>*QoOshz?A$hAz=zXQXW=;_Pr`UnQ%plP+eLdXX-bY^~YcNjH&_^ zSAd22eMz544)B6DJRKqxKHp9@_I}r1W&cJwt4QCQl#86rNtMkbz#~uX^O(7N#P2aEZF25S=)s?_oPZpS(b&Env+0Te>4D^`vnH;wZ}-+c?Q=Jb~~^{CDcfY zaz3Fwdg?=1Ds*z&!$!aAj0Mlo_(SUk&CxidYh1DSS~Z+j0@I(7`)PgBz=ut}Ql5OC z03a1VxzMHojy}k;YrmhP=z%)ILkUu6m>@L-E1aEDLAj+H)~=+1@$`PwZ>)+r+I(tpU_|~>&@a|F~(M_ zXH~#<&_|0GKmmg~_O7|+Tm`nIEg)u^H#Al_dU#ZSBQ-kSOg+&1~=?70+ z(`{ncf<>M)@7fTZ)h1H2_52O!Li*MAP{{>F$ign`@-W}BbUXtd4F+_vQ0x`MyV#h| zSw+@vV13SnE`$Cy1%9i=LSfGL=*`IzwPBMqteSp%LD)Y}|M*8pf%5wjN%jqyn*c#- ziEP!(G5k2piurNa=XE=dWKa2P^FJU?&4Wo%Zp_@hAn35&GQTZFHd!n72`tt@zp9;E z(9viZcb>L8gbwBYK@0*p=kSpY!@8SLP>TT{C6^2badWifT5$H`=HPG!rt8Bu>a1y4 zL**ES)irm^{ehFWw99AKKu}4p2hcBuqw;8w?p&Tg*T9X#BzD@kZWb^j`*#W5YXb~; zxn0&m$(#!xbM0Ej*BVCynwCr}8^*U~WnmCyK`3uuk0~MkyG!hP|$)J5w|y`(oG)esKRVk(|qNnA2Z#gM(Cln}~42>36~B zLharVko{_g!tuWGoF;;i1HO$Xy#hr}lwr50-4pny9mMb!O|d^iYsKH;%`k@yT}jCH zhTa{W>ZI5uE={;Mq2%Y0jrge7`Qyc#Wc-G8>4r>CCQ$t7@Sl=~#PW>0t2?o&uGc0o zMIn@>yQ`YIhO_CKS-J=G$T~x1Op_`TTw?HkW*OuKW|iuM$0B8%@6G06?wR`;DnAjT zXDX`f_{r#QvUen!z0+*N;@dOFF3m>|6N9>>xHF8OMmxmxKKC7_{1gb(o5;Bnc<;Rv zhm`rMAI1Qdx83H|NDCuI%$)TIanRoRenuD(jiL`(;QCW?9)U}&OiS18N1WCB1K>Qg zkf9Wt1V+FI6)?@DAlVqb#pL^!az;e1ub6@6me`=*SJDAOR#y2 zWY>SbDi_0IfPNQbe3lA)WYJ$cYm4!xy0JJ3B8aK#BQq5vAkMk+(JjsWS(RBO%FRJy zDv|_tPzb#OrNt$Gn?j}eDy~cVrGY1ki%cq#x@~~l=zIsJsFD>pzMDpog)+jj!5aHTkIx_dN?xwF>QFmoCBL+>N1WGZus=uZ z+arp-vJ$SD;ECDS$BZN=k3Tp`i)&~nF&V)S^+ZZ_am4uSP)!T zHU!EhPF~e&VxUpw3UDJlz?fSG=8z^Tn>;vQ?2lU_rJZf=Qcbef@?uKFulJw{puOCJ zB+g!u<*zHXQsdDovGPyx(9|-XzSTn)ULpr!Ks^V~ZuR5andL)rnSCZQZ6)bb=p%|^ zM28AwIR$uzpWk)}^CaxeDp0ZGf$i*%IHU>-TfSfu^Y|*_anR%kx6f>au934ZaznN=%HIDd%=Q;PFFl%-tp1kvM+DYo~yBDhqOj*aSBW5e`4 zV!KRPqF!sB(h{PN)eG@bo_{K$*+=jpxOSI}MgwIuXZ1C$QPH`?r0cf-x+I7yAD`+{ z)APJvLRN17q2jNzUvob^c{$vH8N_SSX;|}iu=?Eo7RSl6N!x$#r{8(IR-NK@vm4qs z)9u#!bN~0HiQFGH@4-%O@<8dJxw5OT*n@26yI4t|2)n^w7d8st+FoWuVbp+wS0Av9 zacM8`Ghd?a~ ziMBEER0c3y&CS3Vm~Z2z#Y53fo+u+t;N<-)Hl|HPtn*t#+BC=`69<~y?1bg~n4u;g z%at@(wBtiG_F-YNp%G_PI?y_sY9iwNR9UX1CJB?$R>;l^JzNRd$Pfo8o1?O{ zrw+`SAwj8yc{3svAIlOlGf>q7(@;I zOcahz6L!oZYH}JKV@er(mSR(Rm@os@DeITA)^q2Xa~JPtgOLn7FaDKYUuf6MZJ&Mf zulXqu*AjAI0n|U=xizz3Wkt#B-`ts)Hx*=Qx@z*63pzW(T>_y`Zt9M9SAw*%*d?xG zz!>*~)zwNWaE|}1y;Joo0FL#m&X=CLQ8JDNNWA@H@x1p{n6^H%JBA{fdo$I;(Z#~I zh5z||0cv!EnYJ!>NmWhm2{Z+m*_mc!(T+v-;ytT2du&053C<%R)xY9hwr*P90L&j(+VkWyIXy;K}TNE+FM(|3ox(!is{wq63Ow3x%>3H zu3~p4 zJecZ~SbqO_Dw>02t=oB0)$lH5jbo%?Eoz70`SXLBhJF}^!9$nt7fKD>HD6pN@u-gj1cPK3tfJEa;pf3UA1$7n~(;c>A~Fae@I zeEZC(oTb>rzsH^?_M`%Doa)83PYoX64tqJSvxrLh_wWeRmoCGAI(o)91;cf%Q4_2} zwU;;M**ZvfP!9$WPkKsguDK=rJ=~=AV#DWnb$u+lOe!<2ZbU0TW1{ z{nt@X@5E@mY;kW)Anw~2m$Tqem$lOzN}gNR+dP&lwoQkth3&6aqVj9O^_k7&%dGn2 zuIxSR6KpIG+jyFA!|anJ+<^{Tsm2Nc#oqVdjiu(a)Z%j`{fVL9OJRBZaCW&T-oG~6 zIHkiSxSF>1o{yK(2lMXlqj3{W8~;sTzYckdAS`sW@njh&KARSesvUn9#aSU{=_Mov zuQC6!X(@ZlC9=#&aszP zu{82cYYRN=l%r6n#%y|JI0i!g!spKZtFBT)zmRNiPZ^SLn|c~m;0l6W6<+8eYM_NX zL{V6*Nmcqxm6B0B8lqRuW}H~6^K4_{ImWC6k?kE`i|3MIoYG7An+N-`jd!M>P=ff9 z*Hx~$w>`vU1+3}vNeoYj*xwWl1Cs9yjHHt@z|LeyNzPDH9SFq47+bVLI3e~NM z@|Zr`9iwi%XTt~YQaGb^Su)75K$|srQy$Q@inaBhycc2)@4%O?iKlGYcs7`u2ob!P zH#v-*4AHE>lAFpYxTp3%S>>E>)z#4TGB42}2X-1U?7(gYu6tM8=ycE)z45 zp@}0$g9;DY-B~TRQGg>O*4(Sd4kTY90Z4BK#&TQ5fTEKtn;x&!$G|1Q0L#4<@yG@D zVFKa2G1E$7>uC?v7hP|uB!fhQ)Dkh#pA+~&*QU$*K#t;DRWJ5uI*rD{^)+@LncJRE zaS69}Py1egKw3jfcQD&oUXU;H_l*&*loee%7u%qKgac!N3)=Tqx+hxa?!P! z#?J?uJl#f{_2&sLZli=Y4lS`oz#^>B9z3sV;?mAzVL@g_g^a=JLg<`0o<&iriU7^r zvZyIel?izMz@m<$z9ouyZ^AC6QStHhv^Tp|GMwhaVmShII34Q$o>IRIlFO4K&{KCJ z{5r0=yNXy4gYx0_8LLFIcw`TIo#W?H>V950H=QyU4?Qz8GY#2Ay2|*mnqk+ZukoW; z2QJMt`^F$ASb5sIuZ^4uCbG{KV}w;0PxQiksK|=V6a6PT5m&%cZm0UXo`S+*skeBj z8c4G-QVch@WEjxS*Q^bs@O-qBbJ39EV#`CP4_u_)z$p8aacPGD5&yp^xl&oW ziLM;$Ba;Q;hqcX4$K;HA=idUOH~LTA=o7f;@@Y0|Xl_MC^i%0a{6 zrGW9t49eo0Y&Q~74y~<9-+PO?+?5ev@B^}n9LLDv_G=-Iiv7<9pEulI6YQ%415E+x z+OV^&CYMkVM-NA+G)%Wv@>&G(w9A^2sI3xL_|hZLziiGt<~-A)^e}$Rix26Vv;3m0 z^1+hMGvm+V^&_O6ZoM0;4EI58-1x<3k9gw=!p*nzrF!)06lH#uLn>r&{OPtO`iui| zcoZws66WY7|J?%mJo*M~lw4YL3DRZ5uM}Tw-%$2fWilYP(-ds-eQb!|dNtRGw%)3v ztdG2(1??j5irmlZ)~CzA9Y9=Kp*v$eOI*73!%oHVb)CXZjr+l{&t%Y>ASrw%q;v0LiIB0gT8bc079mr>RyU@|5P^v**NYQ80vH`O&4OTyKtWVlR^WTxK~;ur zMso8SG7{%zKDw0Ht%FN>C*qLK$MVmuEGr3Ce^U!1V21R21`+Si5sX*#Ug>){fLPh0 z>IqnOPR674g$JISSks4tYX$L@B>g<9Bs|I-r6g4oJAi{T%j+>YYdpW`^`k-jJ$>1%}+lLFA7HxBG}>B#$rNVUg)X&y4R z%oWpleV??r%t-9bMFo~~|B;5j#<|=zJP1EWvV6a!z>@(y zIO>X10}&L$z>qxgFWS0@rvlkEU6hn|z*|!gUv3R)n#s0j$FA2UUahGT*E$&<)o5*I zv@>)ok9f(Mv)#!k_JYzEI^mra5T>0InD7piT26}m7=uvp^{J6Z`bjJ2HBH*3sqJ0{E*1p|QvGPy1nmRX;7=xajS(-;n0sOEPMgoU#Q$nSYVtZW?||LX#;@UFc53 zu51*9_s7}Q!$+s=fXEzw>&luORjBDo%3Hge;uy%^N@*c(^D?w?Mot{PA{J1p)!z9j z|ILUcS0xHr)%#dDr|~)`XwH3)1}Z#g@6fn7 zvplLgu5eAyay!{kj3jv)6Ab1DR&FJ6<%yx3O1updk0emBx+r3JiXyP;T#8Z1TU${GjxDWvA%X9faiHrV81OcrO01;%B)`zsNyrA zc1c8calH7VDt^~0NcN#uD9}YSgw9p_oT~a{Koa}|(7bg*V&x(fJ2A#XmB*gA{B#4d zBI7>1g%MAYK`#Pqu3ska`1^b^NzL=Ho8<6Qn)GRH!x~BYNWFin^ntX z>@27umUZ2y5|j7R@=KTmT^e(LknG0+Z>5rW4lYUjsFgS%|M|)%;x4_apO>^GLVOxo5#b@Xj;S* zTCV3k(GTU;{xErQv&93tu)Tb6baj11QOsA1=ZF(l;Ym>dRLgN-Ca1|bu(9(?!LA&z zXRUJ=qqcbTIA48@ee`{`kCG==aP1$pJFRf@sWRUC_iwem;GYYj10>s;RZYT1vx zbIecdX*{(=-2b~F6`~t5jwG6>-a#1c@vu_zj(>(cCdZq_MU#gh;p;)1jy`{83NHLr z8D#_^rF?IAQ06%=otpFP6gp-5)ox`AFOjVWHqgtaTqJL)J%~jCEp&o?OoaRqdE;a> zCj?DB?Yd&<_4=BVgCuYoNpf%f_qR{8<(ycg=>UPbs?ma-4+r>5 z8zz)^(TklAV5z6Kn=aLBjo{8_2Vx7Q7Ykhn-)5Ofs?$EA{Af`|{CV+|&La(J$tyqE zU2y+T`x+zEmpE;sat4n~Z9llxnvd z(af-wdlf3zR%F(Du5o9&_f30kL9Rw23T&ABl>JMuaq`rbexhk6J5=aC^mETksArh@ z-&fnYuIb}w4sxujGEHK2no!|!YXQ5uADlKb@%{VO!k`_(|I*2;D0w*tO3&*1)bTzF$3VlM#F_gEZb7rRrozlE zG4g;9q=b1(-KXC?8PDqHD2Agbb|ba8YIrr|c*F;oo?2%XMD?xzbFoZ=lb^)w9n!! zb!?vS5LxUm{>^GIc4wG>Z%u2B(R?-~x&!a^)p|aROI;f5$E;8pd+uVGCQUPy1p}O@ z`XOO1-f=FHdd6ry^Px3Fd-raVOhF7G;oecKihUT)d@h1+)r)qA%;EQ#nviN0>MmV^ z2e=AbiIUo1+4f+BJE93;_p|*CeEzH(S@jG{$|4L~-_HZo-|W&1x15oH1%GSyvRp}^ zu%f+Ozm&Yvqaxa5oOmHMe)rSA&(aD_J1#03{p2U@5+_Cuup&UpBdNcuWvKUpOQ7p$ z#4g3Nf>*xJi;4+~;&sj>IDYJcbpARIF;lawT{mJQ{oDjnr7(0Vce9mS^OGr zL-EhsxM2jY_4O0+?3coA@mfiSWhfo0a73)G_Ic`4@vHWW6V;vK&fcyJ+V^eQLzvo2-3 zGVdgW)y@$nYAYYk=wy)>46+QT#n3HH6wQz1M-d2CfgyxNxWu9gEY$|Cl&=k%?lD;h zv>kl}^V9T2H>a)>FO%IxV`m6DyjvrcM|DV5M~u^_;t{dG2m9#gor4%>k10J*kB!_1 z;9j!@d#NDBcIh7sRkCR-O@r_SSsT8t!A7@p%#D9f^-f`+Wnf$TiIC-Xo*<9QcR~K- zuOyw0CQ+;pQ4H_xgrrsagTEa0owymMM1|S@kPxcGTej`Qm&gs?B*;en+1e7}mT9E~ z%~Z*FkEMKdl@3l7ZSI-LQNI#2XG$Cw6nTXEmXtKJQ`l(LXq2|j`|6-z_v#+e5j0T4 zC5i3JXj$uR<8!DE1w%2tEiaiBGJ;=QI)i5N6AirvD-Ta`zsJ~)UYoFLt-1bn!Ft-! zO!5!E29R0+9d};Ru#(iDyjBY7U#X#rQzGa0=H|BDodyWWxiR=89p+9pugm0>YQZav zmBe{M)}?D{u0755!CeQ*K}2Z;=|?uGM81Mv+R+FfN2hKQ+M~5y{!ZmdsqPYpZyq;x z0Nf*q?bPJb4)%3Abvke-$w7-tH|Q@*j8VrL$!pLDq&*Eflv|&R7xgS&h!tRKRP)-1 zI)UvWS-VSD<}UkZR2lscQf^NG;qzF;ff*kFpIkpo=N1ckexV#IX|c2|`^6x9S)=+h zB5`A3B>vFQ!9j$QLNNB$US!W6A0<8S!k6L?zLZR%V3%r-OuWy+QF_MPu#!@Zhrr0H zfs)#qc1cDLU5^FxZ+YrTcE(F|lG+?K!2r2;`|zD{0klHI>kfN2^FKPmoj*#$d+kW# z{YKqWsWf3O&wIw>wB<6tb`4@>sIEBcfjN<+Kc95^Pu^)PIqF-l57FqwJ26f#8JsAPGC}OV(Q^ni69mJ=VfssL-Jtd@Pnz3nOey zDWat{%5(v&J{Xp1t-kucUpgXYJ~$aaI#nP4DNgqjs*<3}{Y6 za)bZ70XSqz!~XCetY10-09_g0E(&+gs|~#M-$shaiUy>JPGrP~^%kg4Ke72`J^2y7;oIkJ*!4_8 zzslo02stIt_tUrfhBjh&X(4A}>~~+pnS#LPd4J@w6Q--pO*^I<4(kYq|GiPprc6EBbYE^elgqI&M2KBcDvcOEv@&%ehqqie)-$!&Z9BU zAEw&X#Sz0PPvW(&ju;6tEGA&>Tv}H1ixQm6WSCa7P~(wCyI8AlAxaU2d=F3za_$^) zG*ZPzh!0Gl{#3RPOszRI2JM|R#;vjPB1oUq!PA;%@5!v|dr@V5w2L7VAzYt~C99I~ z@2fag?K3r;TS6i}QjZObCkDt@sFEZ9K^_T~D*FNyZ#X4Ql-268J!6&<7R(>{1vVb2 z5EURhWX|cUcRFXjm(3dqa4bMTW;M3^#>ABYrM`t9_3zDv-P89xEEXrN@J#hUURjG~ z8e?%&_2Tq5c``4`t&AIL6#L-Ymhup{z>%SOZKZ_2rW&1lYv*T9cT;A?h3`I$Ypsx^ z$L<5RQu-5X2*iJUWvRV9Goim7&=OrfB1?9j)&0+-1ipfjYe;vOFD3v58ri6uhnMVi zTgBHSFi@s)nY(gEY<9QIwz_s=-}-$kV)(K=70QUcdqq|E*H3U-B^Aq>4 zF-Q=Q!r$F=9sIWL`uDu9hUN5@O>68D6}UnKWCD0C*$@JJjVKd?{VChzWR$!HV{=M^ zE+t*{4R;_RBwNXuWV>cTlnr(N7I&pwX!g?0nUKfGP5M5cG6hSWK-&Cv<470z(vjKs zZS>5Llh$-^`QWsTZ54c;tkRr0Sa*w>pEaUDPdpsl+~i(3g?Ev%gbDllxxh2LU#giP zn^h82)fP7sD&afuDCr}227I=OrNaG-fjD!Mz>w)De-l=eNogk=N9#v6v7eQ<4B`_sn5RWz0cI4FLuu zTQnby4v$@n?$z=M)IOjNP0W#-@uZA}l9AkmGmhnIj84SiIy<2~fRET{luXGHG*hvB z?|BkTuXQ2csqF+g8sn&{&w`t$(O>}ea$=Wb{k6k zbMdPt6AQ7-KrK`%AvE@;7ku3fY}Ws1Q)M(+JfJNg#||ZGikaJk^`BYY%d8Eew+hXR zP;^Z(W@cN+-z%SZZW`jj2E#RAQ%gry!t=w@*#4;$`Bj9+9fwjIA|egZhZXYd-|$^g z)>!}8VV*W4&J3`hEt(`DX_An5uGUxWBHA!dx0$s1Wa5v$u9%I0IzNFy%qm8D?9bua-@&z$wq}*2T{k%C9 zmho@t19W0iV&1^4Um3Ayjyq`)qPTV|@h7a6{dWVry3E*V+#76L#{C*LJ*%wkyUAuJ zneC=2N6{DT=z=#Ft?N#w)pU;giJPqEpWhYwY3DLN=#5ZlaMI7MkU{YQ&8zD3rSavm z&XBH7*^>`E>uaQX`A(h)Qq8G1>1-EC(op6lz{1L|jPO}eW-Y1Q+h8F$Wpt^M< zO!#oP&V2gg*n*UmhGtW&+Adw4cR3*>A$IkuzeDxGbDUg%=;6NTcW(QWAoX{AC3s1$ zhl!=a?&{zZ7fAOe+q1^akNw((n=}%iF*MRpiL~!tXgUYK!z(>_*f7b=>O(Z7%Z`|s zq9FaY;7V8@>}Sp6vR&vrU{bhJmr!fyshriFnHy2MCDW7;VLg33Fe@IMDD}zKUACJ~ z@N4?BxKCQPzEDlbJzklEW7SZf3U&fr%&jaU0AgEavEDJFCoZX#jDJd%^NNux7-U}1W1Qk_oba<$uO>&`Jmv3s z<82M^*ncN=iyHlfwvgDJi>m}a!CRXi^P<0tzTg+0>ph!6H7`&Os?1*hOPSESKT7py z&|)~D{cA|t&n*bvnz5q~YC=w|c!PIyINYsgzB69$7>zq%YD`UBR>hG8A|NA2Ehg<@ zsYcx^^)p_^n=9Dq)9M8ROd~akl-HTdK!k@&rDSeeP6J_gy10hg$tOLAmVBIVqg@vg zM3?2C_^G_Lw)>lkHZRS8U|mJh(}RlWNVhJ=2v-=9xcVa0ZTo!Ao_`lJ8_qj76=rE4 z0O{&N$xnt%#Fku|mP68{{tPLH^YyKX1DmrdUjq?65xU)KX_=(=JV9#Sxm2qH7E%|~ z_INEJ%K8a8$H%cqq_r)r=oKh)MJJwg+k4TM6?T@U>Zp~=#MjNk{CGHyV+5q3zlnXM zWHTy9$l);A(gY1W_dXpT@=Pp`_N!9VXcH|#Q4?H@%ni^S;sqLRBk}`Xo)^N{X9XX< zlR3*HGwX4gu}n5smGLFi2OuArQ!N307079yF2^DuS?h8wTAUx`FsUW3U!zLQGY~7M zwb9B7Lhs)U;g%ehU(v;VtY2^RXCmDu0y(;~58qU;LyStl^wBU>#Xf`yfWoB6@3sdv5$K5U8m*SBml zGCu$HM5q0Ub4%Z2qwmqLQ@N>z+l?Yu=_NXT{RB>h=lHTU;Q^v|KF819*}I1&{yl>a z{w;>|YXc!BduYf5^oh3gNoxIUT0gpnojb@4a3p1}Rw1^R$GaIq%egGu{a6($3W?V< zDZGwM>tb#YPQ_w%!*Z+bk&R=8D|DPK_tGLsZStuOwtA62m@0xxI;_vO)QiVo0bv>O zB(W4)$KS^!E;k=SQD9B2Mn?qUN(CDlr+q;vQ8N%SFHb+Okc!c>o?)HmCizuppX0R@ zqFuvuyqR*9n(w*+UHOP3~kHy&)Un@@Jzye*@I%DYa7 zrNA_@vmFPH?@&_p|0D<}D6j1%&=PoK*>H4F-R@(I(Qt#^Czn2ym|MJ`P+t)|%aJ{3 z17j-}!#noXo~=>O?5$+%XbLr+vUd7{@=58@rP9Jra(7?eT&_I1$#yxj{paL0BOrS_ zZ_d~a;+=1Yd4D3pHODI`zGJ#2B6XxE4#J^9{E?f9l5HY#42*y8``% zoPm8rs_%0U(-^`>YkETodh)LGK=iC$gvu>GjNH8Op%d&h#WC{Kg~@f}XPT136Q%+V zB(z&2mm}@BHR2sNl0M#lHnDQe zutW*D=^bnI{{ojlQUz=%e~@gUZKB)2?^LV!T2qWL|E*u!eSdiN4Rl~1YgHfVVzuouTkHsQR4Q=P0)&VZ% zNvhBRhd#TCUt4LZ)#6_qI>oyua$l{x#D3?|sw4#25U8s9ZHW5(-}%+l%(-ysSlNoIL3y+9b_=QzC}Ub^+D z)k8Ykm@m;6p^nnArP?T2NUnekCJsyg;h#{aiEL2+F7N#yUJ9@e?XdLdI3=@SJC)Xl z)tZC@=16GVCd zUTaq64bmnGA|D3n5!<`tR1H#r(cQC9OK2yT0SF?g4ML)}T%LXD9Um*|4o2FJ6mMPp zT@$_8J&PP;<7gax8QZxT0JVWrWvr7U*PfHhxEh7-xfj^azPWllcnta>>3bs zWbDk>Yd=5}v6a#puKe9i0oD+8Q!z!{O=WXQuxe;!$qMeixA`VRh1BkZw%@; zBQ(aP24?;7RM!dqOO|EC!$z!4M;l+ z;syi#dyt=y)NR5GE!K)ey@XQB>Zbm(S2wpVPO5zGy{(%O4uxT!loZG1{9^o?tp0SJ zA{3(}yBaTx67=GwUll(wPmEV!nqigrw$1}nklUtVi!?UWQq%J!*IU1rw)L=Zz%AP9$R+C%LsYFS5?a>00#Do7RVv_Sa1Cc*#`f}R%*mB0CB=OOF`g#I zU|bod7b6&~{BFA~z+^)%R;QO>KZuS_k=AR~dSwEhhy?|@4AgB#W~OK-n2kdJKK1yr z!m>&>A?~bsMDF>?uMn_(_i6OQX3USaC2};?h$_v+qKzaNyz%|l3RVaSKIc2eu%$4? zXt~WYAC|M%6y8nQhh zGQ`U}>63BR46E7O=ty~>ADLN!y`Oot^00##&VqtbmmEt(HU=YSis zc{q|QM?GCcAbzEjx%?U-6G!Xay$g#QkWJOV?o|@gZ?HizURzsMx~4+jol9QRC<8}FHl?cl%|WOty)^H9_h~qp7weoUpV!SxrSiZTUW<$Y zn7^j(7gK&hfq4%Y!t?Iq4kALhb!j^l?59#M+N0g2_SE{dY6NEqv{{?+?7`Qpq(@-F zqRDF+*ymAun&;lw=pOs2-!_7ESz!w4k!z(I(j~Ydjm!vXE$4ld0N0KUT3a?NyxlQ( zU;Av_yLV1HaLIi3cfu%dgn~f-!Ga_Kn198-H0j~6SAUUaW0hVOA;dZ^pzS5r`b8Go z=Ixoxh4J%L3A&RaWx@y2$cNho=F;;BfAx0o87rf?nPo_K%&6o(e~%5uK|WVjJX=Kb zKAlOxXo_g?w1Q!*^W;XX2h=M;3DY$SskIS<_rO`?N>zq(o%=1#ave=A)9zUO1RfN2 zDC=BWT4pw=DVM;0Wvv%m7+B6xCys{&(U!bR+LFK;#SW4kSUt^l8~yGgv} zOYH9Ckf@Kuof%&uV_Q5*6; z&sUU|Iy_+TFe`cC>k0q#G%l{}tiJw%nVH33M~lnWy3FOM7RJvLy2>Nn{d8U$|JHop zFD@N;bJw+et90DM|66@vs|b)O@TxP`UY1Qw6q1~17;0I#Fvo{W3N8=a3(U&`xNZ0q z^XxS>>GJual{4>ycBgjgom|n{M8UU2fiB?dAU#rKB4KIYZCO{K3xv7n_BM_>kyPa5 z)<5F4UXs}6ARss78P`__L!Cy@Zc7v)r? z?_1twpSLUrr)RvBFPbpeXsLs_j9<}F^4nLpC_09XXxdm& zT4-$BRL|CCZEd0YpnLc*+JAcw*#WCRErVF zE{tqXxxZ$jyhARn2Zs*k#qV6tDSuQFdXv3Bip{i9tBuCb5FRjSrI&5@r( zLqN_$;G@JOSoC^Q!oH;1Fr=}96vn9!vm+7Q8W<*s&H=ONH9v=o-3S^+JnOrFMCvE zr`+eyH`)^M(wvBWZOx|1clz!49k2Jn>GItI148|aLDMB&D3|CH`POd8`*_WII*SjBjR1!k^S#4f4W7dY@Z5yKq^|IJtItbHiRx+wZw)lh z6M#%ZI4lv((DCKLK3&)D>)Q=eezd2P1M%E1f?kj^V)Rn*M|`O|c#Oq?h*ValgP(^= zk$RumFgBrAL27+WmZKq8+hEiB*qW0bC5SQO=P~1do0HZ%d9qtTy+3J~Oqoiy8IfOb z)poNgU0OH@_#Z^rrSY<$J*als6S#vXu!e1pIkAiP|u9vg&J0xZW z&+IkL#BAnuXv?%*3wmbRVJut}x!S~wd;8TQNPv>7B7~5cu(;c3R*U_T z>CqKTWl@tVG2nwH7p%2m?x3dL-ThtRtNYU7SnXwe+mINs{|?e0)VBr@Ahz3ji3h&3 z)A>^W-Dp9#jpGu+My{avvMM-x&$%?MeyTy|jOj(C|Fm(z=kRC1A_h`>VUt$!A+(eR zl^fT92cjmS7kN8~n^JQ9m<%{!2%0@&v}B(?nOr(#^u<~1+Boo^S$67kdB+Q;_TCjt z)^dyPpBYS^@YhY&MofuhDk~iRy{}f{erDgzw;_VG3({3&lVHZ1?1A$rdq;uX_7 zk(?FBa-JMuoSktT@dde>7D8A3dB%hNN^ADS;ye1$0Bg9Eo7hWSqRdd_{q{YeaAdsD#H^4=~AtK#mg5hiDdl5Q6=+Qcx`>P-g1tr$*e!`dAa z?%@S(HhWtFavai&XG}^U-@S+F4L@Vl>*Z{gUc+a7%q^?DP!N=GcP?5eXKi>jSbr7! z6MgDKlqv8iGbPg~dq8WO>e_0jf~+trSg~b>S`uf(yGk;2f zqDT8h&gTz96I5DX`QM|=PnBM8MtWuouL)w>j0qF2ONqKxLKSuwlA+hp*0+i8Wm4@w zu4c*?*+ul=N$KxA9@+t|AGc+ zfw;kTqQUnC2H}dBx;%c|G#{-TKsnZ&63fp`d!$tmCA(O z4I7e7YaxI#@+VyJ0fN?+fB+^a+L9zi{I;yc<=jLd2=Y24;LD#0G&H&*%H7^*=BkZc zo08HVda=d^`Hy|`Dz}hLQu3(&tIS2rG zQCy&Z-dZyeJwz2*Bl2}fO}kacX<3E=!p`v1$Q&V6SDPq=QkRc)Ps0*LovL|c%rnuy(R;jk6IBJEPX^Z zijlMNkOy#Q(izWY2zZlOA_zTieU_;i(an}9Ua$v4b@L{#uyRd$3k(EU6~RNdr#zz zV+L)Q&SqsQXHWDDziwEVoe9Dn@;7@ zi`RaX^`$8w#|9Rv^6+ggv*$$zUO87*xxX*P^1mC(DWc}*;ZGRPo*x@|BZBI0qreCy zJ}&28`RP1m7hK8o#cQl^L8`&8&qi3tXsbgxXy_bvIB9;^`=J&EY77+XQ~d&GxK={2 z8j}M^Pt_AlfA~G9R(~S<74!Qd)J&$SE+(j8v~sGPPmz%O%<8B3cMcgpkD4`l`tNd^ zPkVsLlJQNd*dLL#`GW0^QC+rA%Z06Jn$C#iObKlR3>CLYZd?wcOoYy!-2i(>PRBhl zv`L%6kAJ*0B=OoB2;CN&yCh(DB}rTh@O~eHShzJ`TRPdlhxBrNi-*4^QmWm)>9G6d zH*&u|?zXjQ9$2U+bonRsE);Rxel*J+x;FOhj9uX$zoYnjqgDQC4Fw-Zi;bp76fc#q zk(KFzmmdJ#NK6~YOT_!GLBdKW0(#5EAJlXq-+i8%L>;fAG8At0cd8dhOHHv+ahq7x_1f;`;UFJni zEjbXc`RuV$_U5pj*)LG%UK_sLH2)2yS7s#oMuJdS!_0}!lHOb4C#(`If4>f8u?X~~ zW%^@O#q_JsNBK36BY}q`BoirKG*=)>vTR7cXJRw%9$^P$^zV-LQ8+7=2Gehw;L=(v z1>+=VHCE@Byd~=yGA46756eJp5*i7GYEQBoGvD|b1}Hc{}! zlulvfmr!i{?+>tDWpl@=QJ0ERmFi-VervZAH6IPw7tQxS{`8%WIN;^CA=I?#oXDiU zD0hnuzPrzM@p!Q4VO)q1Av688?mK1b>5jMQUkfHY$ar>L&HI${AlofT!BCGe6 z!qarJjQ_dAd7?A0uVGC8m&^EHe<~`+?=|&wd8v`5Yq&Y+f^`Bb4AYP?{h!B|LW}Q;ZE~uI{Ht6PeYQtMnGF%g?*4>_c=4a4v;aDU6T0u zizyd9Cr$RBiI)4>j|2HjlRQcrNr>S|sbR;F_+jyefg>v=jb}K=;gva~?8N4}m~nyk zYll?5NS_4!nk|MPrACX={ds1+*g~f$sYZ`R!my6W!RHA3t~ zru@t8n~oD=z4|8$Q3c)S4o~yK8tfiHQb205@pjqW^ERZpY~!MQNGc0`5tSHa@y~@` zsEMOqEte`PNMZG&kzUh+7aAs;=g1b~;b`uj?1V=#8&Q7-GN-^eCt+QEM;Nz)@6L26 z7c&@AuAc~ZN6>1L&n|tsR}a4M((Ur%VY|)54{}nilA2)^oSi%z?F~tL^X<_}n!;+6 z*DQ{`6qf+hjHvY++X;7Ua-VPh`!n;jRrwVr7&f%aehM2p`26{L$GYz`N}j6pwk_#C z|4Fv}hj^phC*KnIvQzG9=+EbsQkX(M1Cfkt@u0OR!}!3yE5mdn3;^oOU*9n{6_!BV zdqdWb_&r*fA@iRfj{fBJz)1Dn830xaIiZtPle_S>nW5Af&_G>EfODI z$&uSHZLTL(aRn|P9KJp#dl9Rb8~_AXoj8;4V^h#;PvH6 z^G0jYx<|tK5oleLtTA$;S2v-?>?LS2msKpBBTOBdiB(hWSE4#KB|lM-2{Nvm6kAcb zLrjN1Aom+QQPeTaw^&TYO=j3zr55z~^o?tAhR&g5&c4oQn8D8SZU)H$A#xFYOoD{j zXD^fba$S3**9A4QB`$m@%QR)^;Q~rItwCT?S(di3Gc+pSqijud zju`nC$Tez})c!ULWYdzim=o;n^9w%SC>on!h)32thPK>ILI|vuho!}}m^kbdh!$22 z2XW#rLu1wN)5!-q? z?GCD+;MED;m+)}pjcaZvRfZNZ>TsYwVt2ty6h~0j7E*L&nYn@ysHabm4_$p0%q@CV zP$f&2dZcb9Z3vsK`d}Q5@#6t)8pd7h`{T31{lzRTkGfgsybTx^;!_{b(@kl~eaSJe z#$_8(guz9xMr8w+(vC?*WrjNqSHruz51Cy}vY(Tk)Uxg6wMQY@=!4sL>B>q52M2#| zb91w~`TD*qeTo5Zca(x2f4LPsUHbdK8`zuQqDftuOdv5T)75y=yeLywx@I>2 zsu0;}sk)lLkq|ECm$1NlDlm={ku?~{ieAA7%(o3SFK8|JabS-egkHMeRy8#&{^-U)r{ zcN^UXiwd*Bf&*H8D_yOc*EFmEzsf=~>Hi3@YzJR*MUymi#wuMh(>@CGY)@+1G0bzQ zvR+xwgy*du+-G#4>B-(#vxZT+wPD-$jcX3j>OFvRVRjc5rUQ9H3veXzsLH|i7U?4_It>0E+J1y zti8&%vH$>7RE~AI<|b}r+1aDW(9z|S{fhtV=)B|EUf=)koSs&TR#okFTB~C3EvH&k zR8$CRrKMI-yJDuTt;VNj?HUoYR_rZC?b@{^DT*SY2tt4F@9(etok#9m_kCU0>-BuC ztWcOb%n$T#QWH&jna1UNVfhK=k=-o{+ZzG7QgAPo5yOy|PzBI*scp(jXil&WBvst5 zXl<9@O3K5#nCm6sDhexUYR{viMkkBwuScp4qjXFpo+o=b_dR1Q~mool)kN; z9EVQHETgeSxEGnXgMRHdLP;kD{I1 z3)mRntPhDCeYOBG7C+-j4a{!-;;}2ksgQ$(q!8TR$OgqrJLnoPLm{4}4Bw+*S)oHn z<#5a{NDLgwf7mg)y8K~fupMEjSigsM$s?PCsgmhk<5Uqu6i1huM4(3>Vxg+fQnGI| zJoK)`N>_{WTiljA#s)kfz$v|!K0@A))SBY%#yBex5v z6&YJtpWC_*Xd|z#;;uze=8ogYhy?Ijkw9ZrJk7@6ixOts2xNLmikh>!bO=$K(f4h( z1BDwSg2Cxwgz;Y|Ydf<3U-GLX(70dsfHxR`_B>cMrZDd`K^2C9@p2eB51+}YVWuvG zG2!Xwq^g(=QxS|%-=A}Z(O)Wg$75?!otXGEG_b$OO)*29_1AlfWUR-TMYS!KtWxZa zOTI-;RY^{n&)&7G_nw78DA1Gisa3MB^n%YZD`2ESKO&7UY#v7f=?=j`l*tfvW3qBL zIxO#2n{3IB)ys>SCVZ(#VXs1K<*b1jQHlNO?8n^ZQSOS1=VCaZzHiAbJuEZ4 z$oF4IKl`E5cFl^51kLZb^tam!#dMqRD98LnmA#C9k)2I4>qwrK!fjLlpLZB7LJmKwfS+a%<-@ z9$iKqHb{LboN`gbsV-}66P-#5%ZG#qnwBkFR{9$!?h%B}hg=q&m+LlbrRn4{8FH-8 z<@+5K157ayU40JJCxadgspYy~L|OEA_O;Xai#&YiBoli)67tB;Iv2smY+rc=(;Zab+(ODg$_i>wgH7toMA_Gs zF3Qq@6ad1WloX#5oQ~I$rm7ZbRz_6y?6c6|vwrIBk`=%xlLb|_h;O;GWBbaCvPJ4z zz4fbJp4fE6#r>f0&az9($N%YZbIm6^jm_X4zo!pTre(a`2j&S6)Mh{kod;uYOp%ft ztz4yU6?@}V@lV;VwNq3i;0k%u3;=X>PLP4^-(8O63*_;5TvE>mp z0`npP?K$&ze6PSY9HqG1cZ$k$jH;$O@$F^#3)N~@qoznlEAd_x(91`LK7JS^$6=SF z)w^RapF8cwYxD^vm{|Nqa}hD6x#p-$H)p{MD&yTf>GH;U)@%c&FTZgpa971jv>0O! z{t95%^(T#ch+-sA-$3f1Y2@E3XVWw5ueQ&H#Y76l`yt>o0d_69(1|l_tl$5!kDgQ0 zDe^FiX!wz&2cCN+v4Xk?do@+BdBwP8s(w__ep34L_Iyiml5*g_d)k~|l$@QiH)Ywhh1wcfaGIPN$yJKyg=-i>roHZ#%wUWm zZ+y#pYRkm)Nq9eYtD$a4gA-zvxDTquZ|MOfwD z3KUJmWp##yvH(8UHgzI`!L{a5`BuYmsNk$_C&`snF`Tl10A^CI_46qP_b)Q?zJB=K zCUAoQf?>>x<^1wtGUWpHP?m6lbf6f-aE#me*Z!O#^LoO+lqrpFQqAcbo~UXn1NHfA z_o$;q<_zVo?ABqhwh>`hz z{%niLPEMK?5zN2R|E;+D&ZD59Tc6yQy*3sHUyxft9bJ8+L8ho6u|o7Q9Nti0scPzq zU6|OKcu*<*jkYL2+~g;ny5|^Nxvn!Xzm9vbMsmCq9lZ70wVgX9^U^(W3LKU9x7Kx< z;JeBW_F#VC&AD;o--KBU8rvH9Cd$+BpO=5@sZJ^UWa}nQ@o;n)X;^oM>B9v9M?SH?tP! zt8hq?MyEh{ah;Z04=nUZLP;c>I9tYeRTqA-V>xKY9Y0y;UDtp;n?Kj0a_9OCtlV^{ zFENEY-xK^mnR@0OA@-`e&#^i5eqpRNZhN-N!MA+}Afn%2Dpb6(OWVxbzq5KWG2VIl zdkfK;_q$|yF=P>qUOl}a{P!NfZ-2Xlbh=b6WD&8u?WB3!sLB%6XzdSOWYxmvf8-wt zcZPN9q7ArFReh8F1Vw4~6{{Hj*-_!7Iqg^-TrJqypdAjlV94rSPX!oW7BXq7S&SUF zU)TDVs5a3da8oywM*gIzWo{&m9d>?b+28=vnq&DzPEcT8rnbgW)BD=CQPzUFRzSqZ z%4GZvT*-?EI{Ikm4LO(rOD6n%a-p`IXLo6k8dM&LfDa9r{B2`J)aonp@Be~~} z#|rtf<6nV^FG-rlf1d*T+{gdae{*9ooLOG)Hq@G&(V75VHydND+REm?!qH2mar{jd zp$8J`KJ@9vTc)5_d`9f_r_0UiCUdWaqeG$r=UdOWLS$0dd;COiFu!ZY%N$N}Cqs{` zWW0gBtji?;&Fs?&ngN+kv`I+%g<8s)t=sl15Wrhg$MP5PG`@2XO88!^x;vVf82zg< zF+s!O$KU(^8cWjzI|Pmp5iR`Ai!5PALyUM)W~eyDzy9*4t0axhh?veopYJN4J3<_a1^#X$20Eb=)s!{ z;Ru5jqm|S}O%vkg?n5%;nnRr-MV*L_3tnL;J0$$rP;oAF_Z`R64gZfROa? zwbyLrW@DA$U0dO@61_~xGC$8#-M?mg%?jbtE)a~HE_;z`J~tKB>B4}Jk0myh570-s zZ>K_bh3DYVn+>_~K9HM!A6kuRbyUo`e(01y{p+G!UW!Ldn-0l&vm+5U)kaUq`9~?k z$;;_={%eJOMpR(WIqdMh&7|gGJ)Q`wt=3&w9bPg4OotufME2*Ij?W{#xSOKwJm>il zZxQDCuz1b|ly#v5o=6$&6IG5$*$CpyXy94*bUQx_aMe094ta{|`?p5MK8NBObEsW#vH?fK? z%KaxveHz!y{NUR1n@noQgS9VWYe#91V&vlRVwclB20ZDLBZ82)?Qe1UTw@9@L@(At z&M}P2pq-#DW}^zio|5oXmzgEp_p(OUH>4tfG?wHpF7hi2IcKm^H?LTrDL@$LLH~m) z)Q@_eXW21(>#={Jo3Jmz-WThe)@Y|WC!H#2A7lJVTPRXHj;ph*jgKsVmr^3oly4JN zqU4FU9JrrH8fkkD0_#)RZ^1LwT;a|>_DF-&KHY*!2%AgOEZ%Uk^u{n*ONGK3Tg%kn zV6G?L<52#bP%{%yQ^lbTnWk|1YgubZ>|yA+Yr{MJ%|Kq6D&uhrW>JLIJ6nO~QMmIE zDRoVL@tCXC`1;`$eIavJNbjITDeohgy+Zo1bV<60k^IhZ^XIew@LTzBBq_~<|b z>#^CYJm_Zw*&#RXR6gQ}t&&0>?U)qmV650+uVuncmIQ@Dz!9ej9@#$vBJH#7T}fp` zAN?r|=*#xqQUZZ%60rHit9kl~h63T7)_MN+GaXDcwWL9g{*HSI<}>@L>yw{bmZmJb z!K>4+HAWg2J??J&+pF1L=MHX5odJ8Fsi7X4NMHxZATF;5d26Rf|-b>4`9 z%8$x|Fq^ysvKS1TFc(1vX1XeAS^tuGyv>;87ne=7e^4q=^0GM1A-Z6f7akb&QcR^) zLx~&Fo4U?DLqe@&-%|}?M$FL@-~GqWOi3jE->M26>1)uNY%|UFd76L4O)D9Tdo?yL zS8X9x{Pgj=d4A62FE{v~-=x+5j->#sTP_jlFlvw-)+FZeF*zU`u)A=dvRhfEaQjIb^usz7hRMm-o? zzVve9>oTakf>-`hJYOG>q-kY>J9L~(8{?|nN6@DG>{F~Fq|A*aliS23lRDc+9|$GQ z>`;94RRwmi6DL2DvrzAtMA;}mWHXrQA#F%PwNHe#NI>tjnBlom`BXWBUu{Jeo5Ihw zkSBTq33#9BE(u9)Tn+1G3{7AS0F2P%GtI+;x$<2)c*wIcZVfGti5M$AS0~pyKay(t zKWrEZ-Z@-?*t!&n04Df5D;ilT**}(wPLloIFY_kBGb11V9c;1}>wXn*%_@AzJG&(| zKdkG8bAJMVI0u{)GYT`ZOmzxO6 zbMNEnW^^dXQ#oSZYJ@thiC-UjlfWvC;j%jn?y1O(6MNykq*fYRv6vFD-GYqg1bf(e z;`@CP39J1;;*KbQd`q;%47?5f+c_{1pLcVc(TjP(ZKJW78dYwwdqe0fvZ7KdouK}R zw@>Qjlu%o1q~SY7x3AG1mAoA?soSEk0yJYwxMlsX+%Mzh#tE$gn@0Q>5;T2^xol~V zE!(=v3g@twXBC?XBP{i`SU&+4=VZl`n5aenZ%@gzXBCrtuiZV9q}zQy@b?Juw=>k_{3jsUOz~q(>ar5F}>kGt=Kx~=oGM?_NR{DNj;PbbqOj~9*4x_v4Zwk9NTW|pQ-7xa(> z@mG({IzMU*5}7!^LXb&m2iO3EhzI?6Wwh=QPe0@kt zQsMenm#E{J!&Oug!6D<-^vlN7O7pCn=~D$WkiYvBCKikMwqg2W#>`S>z>%M;0P47Un{b;_yd zLAL#~i}0}kjXW~vm7mw>_~v!5d>q!3W(ik|~UgokOlK7IxAgFA6u3_O# zjtjS-y244icee*W%k%fRtR*p)a+cV1;k%2-;Wx`kN0)g!eB|$LP`P#uDQ0E_M{K1q zw?(j`*jyFN@BqVLI$eB}WDXfRTSQ&*Ud{@T5$Jj5HRN^&FZF)!*>Ybn(w>n-BL}=-g@j83<9_c1cZfxXK3xz^77X}0tf!A31jdSzT{!1D>e zBV!0a)R5ns)fbbB?y0|AzL*bj^ei`Q9loieK74VNJn$1kh>BVn;D{V#56Lz$_8wQs zR0$qt07&|_am=}P>RO7B8 z>4U19$6UA4pwAlOU8Y%~gK%#RGgTM2mE4=F5G$=JNg?q$?ijXKhg%?={nQX{&*$~N6W(|u%nCWUw45Q5k1s#xr%x6aP}pi*V9 z&hyzyn9*|x9Hgp0Wb~!7eJSD6qF*Vt7BVROs>AAeKzmx+^dCA|Fjd-oSFRI<(>a^ z`Sp0gC=Tq=Znn+Layg6UaG1<8rUsCK8umd$vjDk}5JM23S6BwE64RqKcnIx!x@1Jy zi$(xPAJo&p4FL>%CS``@Tl)D3n!D7UUh0Ql7}4$6Cm(+shDmzSjujE-3(p54ie`F+ zRonPLNBJhKF|V~|+qRXpv%;61-L?mA8p5!ZR$l_1tMnTpmZ?_AV*>|=QTKb&KURTP zHdpAs)H&iCEX89$?Pwr@=3kCV*zDt8sV5b5NH)*XbiDpe3Nh~$FCpHvI}zs=@|P9H zq$nMmS%y^RMCQD7@Hl@}>&7^QNtuX$%6|*x5Se%!qW=O5ji~%Zo^iQ62p7s~%ikZ* zEX>A&>P4l5VGyLdn7;b?PKNR__SK~;bZ9vJ=lI_=jf)2K8V1d}@r@>2OtZKs3cdI9 zlD~Oowp)=$^RY8OZyk4No|ka8S_hU;MUQ&)Ur?61xWoHV+<2p{Hf&+hBDd$LqA-lg zEJzqpeA*aZ%XICzwtuB%u2mQYf(Zbn76VvNMUVmOhf3hAT}5!jlnZk;O@`kuE+l#h zu&p=qUAOo7HI~4hQq~^_B9@u1Z>GF1or>W0E8ZZnDKq%G<+}hL$H3s#3NSrTF6P02 zB67gQ*<9fECiNlNN4p)DM7(HwPO8-FJKIS0J`Zknp^2|uh(8SqK%sG*w1>XR|A=iA z%1i(BRWXq*{knb5z!EsT08d#L5QXLmb_PAArOQzk!>eO!yY*y8kp0GST9skg2#lF{ z7Cfd8UOAE!y8BaSs}iTTE#1RRRg@+`)7j(wCdo_B$xA{coh@dSffl=!=t0u1Ko~@ zCrth2<-Aq*@Wyc@B;1Dy?q*6n8#8_JlaSTYg0oAioq0a|dli^d@|*ypttP4!2w@Za zPbak!U{4QUR8i0a{GybYPyI6NJKE=d=@C-KkynZ`Z}B+u(ODijllP4ESGV_YjT==k zlghc~#IW!UwqQDYN3th$bxN^pN9ui zx!ulH@}3liAr)ZP*r{-N#b44Dqay$&0!1@J4w3BrN^VBQcoGgg(yNSUW6y z*&*EtSMWJU!%z!}ax=}pmZvZy_R{Olk7w`_AKR%Y<)cG{C0eoQ=)B{&v%LILIp)7# z`;F!v>8ZcZFGHR#JDJsfQ;0VQ_It2#qX~u4N9OIV>CwCHzKg0=B2E80PGE}~@flSQk8bU zYQ4tzi7NIzlA6p{kco9=(5D#Xk)p&o%L{-lV&C(Yf$q=5**B1v zOs*@2SX=8ct=w<-XBpkxmRHl^&)fLxxO`B^;+4+#gftcb<^987J2#>Vnw+9|T^zhJ zBjq``tFb0>Rbt-LaTGYO%K&o-hzQa*NivkOyzNzf#(c+#s=?1i9$;EXgX=euYO3@0 zebh!5Dja~+iinwV_y)4QJqH*qNSf~(y#?3%18I`%RJ~_m1g8i;L_!`W$NU&b@#rCfsp;03nZll^ThM zws^T+GE-#>kg{r4tE)PEDVF{9SiFDLzk1RA>5Z9*QA&GF(qfNqazx~!7D?ck`W=T1 z&EQZ0W*86^lyIw?Xg>^TxX+T$E3I!=ayau%WvFhLBU|jR1~LR>ePb9JJ@t$@ar9B{ymJ`R^XycHowj z|Ihiz$sstP;Lxh2q1j?uv$nhi{M&=!;&z+XP=L6Xl)4JB`uYx1OqwKOK(bhWl9Pd6Vri9SBk%}s~w3KVtFQ4Pp= zf^BXK0*{WmWFc$*&r4i~P)Tnzx!}@kaHA#D6?G>-swn=yOakUm1gsFZDco7)ed`V( zfen9Q9woz2j_xs}tK$IXqJXDV)5+#rAxRMMxu zkZsS?I8)ymVq1B%FhR2iTCwja?}H$Zx3*F-tiKxch|E#1f5@)?XqqmV@N50=;C)f_ zE)5)1E8lwYdTqG=BM|0&nK|!{Oi^K0DlYt0B6WXwN5B6d_32|7)S1{Y`c0aZ?HsI8 zaS}pX745@egu_aCEE(_QoR{c+0kBsXAzWa)JFZix4NcfJI!05&iUn>Vl{qr?qT9p> zMm)|v}fZ1=_z060d7GL z#*N=8`A74zgouduS%b&NjcGol#nWKZdr(~U5nJHhnwmJ|vr6gZ75>S%L&{V)tx#m7 z`t&NY-mBTxAK%QuPCnMcnGC!<*c0qN4_37FYft5z&E;W%d|_o(>A&j*GsZs9^(Dy{ zkdHGkG;7MtK-{JYe`4W+i%dtN=d-2ZvPblpb{TB7zCWG**O+N4Ib9MhS3>B_S1}U# z+7?Vv>Wn@jfr7#K)6hqem3Zoa4oQ3y<)*N6&a0y`6g;oQ-|h!Dv)u!;Kv+&*LOjc9 zSvmG~%r~i!M8?V2&vWf#M#}W$3c32@C2m4G#xw7v2)czpJfHdQt#GrZWO}FYhGuL{ zz3b}w|4xOUbXVwZ(Q)#LpGyMf1i+wR@G31vxK>{%$x^uBJB_b(|I0o?6S1!{@d24)q;?wSY05h>i>c}`+$ohDNbxE9KNnPW)^3c z)at$nO$Xgh)$h+y8S=?ad3hZx1~GErEN@tSoW7cWxEj+TvSSOHmDIRN&K)|pn)P$- zE`Ah*SPoU%ORS^7I|SaJl>n=2P0DmH16z(*!=+z{HH z96^1Nh4NN!VAZ&o!OdF8Ja!M2vG-VkV-S4PjP2fq03qrvuCUsXg?&qN(bGUAnMt20;5`%I)Wm}4}Ikm!&f0kuER{76x8fO+ja0~!k~JqwoOdp@%hig-t_4^q0`Kma73#4Gd>48g z4;O?#)-ipob3Hm*so?$thUnP8%N{V4(LJN<3qa>>o`xd4E-0M+vH+?f&K~%L$i~@K za+dT@#KFwsU^uhbS(R0OnhsgIXaCkRwUHT!O1C2wqM+~^J=rIsnC?6{29l~Lxyc`-ePEls}T)pO?csM3DR!jQ;!WV7Z z`|v(~VB(#;9s!a~NqwplnCuk+Qm_ZiDf%YG7*%b0;_B`VK)zx*OM57}8U}Whymn&5 z;pqAx^xn>yGms-DC-!8ICQ5j2JUJ*gtk{7i-WE!v8^rVv0jf2fWY1aqY?9}9CVp1d z#D3zoZZ6N&FpSzvIn?lrMNhVMQL-(q>Q||xD;#s}2RcVf?n2#E<`a!R@@{8MwdvMe zgstMZ^JIef$EkV^s8Na?*gxvS2He@s$DF%zV5w`Slxs45gCopMLys~{0xbqZ<}@CC zL2}3=(>p-Zem5aO%MNQ(KLRi{NtgCw4fXDjR}Dc10<{+N9v^*of|S4ST)h1Kl*}ke zNgNo7!b7DaogxOS1r{@^IA7Kd)!^-2)@ka{R8U4x-=hTyNexF2+XUlJL}z`X3oJDd z^%O3l9eE$TNiRT+$aUh>aAG4Jy6O6S+JL0|v_It4adU8k3>XsciJCP^EMM<|^%BUw zq(^@lE|_}yzE~2TqVj8k2~oRz<<7cKaFusd>o3Gd+M30$CM0X6U+Y9Ra+pgt7bXBW zm^v#~cc zpi(BiM1G#XKEW_Y*@lq%or56A401Z9IJEG$2M}ptD?#{$=ZVE=N4h6(pfp0I+DZxJ z-y}U|4Tr#);!`mIUgOaE;Go|`UsuWPNScM_Lt&0P8aDbXn2CH@Nkp^kC>s@THDd z;n9VGU!kB7(b~2T^a+J{&I&0G=5VZN0%>@0&lA``@>3ZY5qYS_g7vAa$W zya}cDNHyQhbJz15=U|7eT-!Q3zum*G{w3MDq~QQle)4v?>c2;o2lgM zxzFUq!Qp6H8_MzZ@F_5HtsEVEKUD2UNj-hZADEo&Je606g>sad`K-sQxlAWNGt3)D z@5=w7qh}3PshLjh5~wlnx$qzveNZ&`iHnyW=#ZUK9A)g`;Ao88n4Q-UTWb{;uZreZ zm=0a4*5ms$@wv4-XMJ|V(EiEzqHD{ z#SWf}tEfDMR9=r5)ln%vd_5O{ykCuPl2Ovf-V=M3 z^_tE%>|%GIZPbq;SI2Tnt(FC?w&Wo|LJ})r-8f*XH7R6zdKhQw;8Er<6<*S>zr+2# z6%sBn*H$vX_KKtiw^dC0nzNEw``%_7y1X<5b6lsb1X$;uG=H{TK~%V#S%F z%y03EyuVEJB8Hm@mPM)#^t@0d^Io&f@KaDXXj92=V)uhCmfwKCt`acg{nB@6_T=RO z{2K})=2F4c_I?JAC+o(S`c*FEit>!*w!4XWeM?)~w(Bx#70I1j9`FTWprPiU<@aU# zPTxP$UWmo{S#`m|S`9~KwcZy8v}F1SpuzZ_V9BW=#gLmaV|E4$oz#>D1MdvXfNi>8^%K5UkLzn{lrz^m3PZg9 z5ohwx9Q}17uWsZoF@CYU7XNg%Ga{QMc3ht6jcb-87a!9iUxp(buuqFr0BbgbR%6TvqE+~*OvUD%5x6G8p*p;*U*u2 zHrj{sq7lCr8(L@WS-&QufR`VS4Sj!~IQgLV|!m*I;7uXZJ;q$1HdHsyj&x!REr)a=QR3yR#-fU{b=Ij|Zf zP%qux`ukg(!Dm#f9_420j-Kx^w|_hiA@iS~io~8`OP_h=|oqJrj!` z2?rY!Q(GD@2${`VUXjGM7LBIh5a+4>l2Y$yBU=N@l|q$B)Pk(5 zby7tecReWF3kEvV62sjT= zYFNKm&T=(aw6T{aoLt^0U7J@xL;yl>#hLor(JJa!=LYlt$+I_2wQ*sd|CHaqY6==G zx3XC-C=C@I^d8&pNRMpNHy-jrmFg<@+4H)LDhI&uJqnrWh9F&cNnii%Y4o=Jaj<9m z)2f~oL87%Tdju%ku#e4|Al?Iom%Wg46A`#-mKxLpy2X|4+e OdvS1=?iu}``TqxF92L?4 diff --git a/objects/Gripper6AxisEV3/target/target.xml b/objects/Gripper6AxisEV3/target/target.xml index 7c888d0..21c792b 100644 --- a/objects/Gripper6AxisEV3/target/target.xml +++ b/objects/Gripper6AxisEV3/target/target.xml @@ -1,6 +1,6 @@ - + diff --git a/objects/RightBase6AxisEV3/index.html b/objects/RightBase6AxisEV3/index.html index 2616f63..6973357 100644 --- a/objects/RightBase6AxisEV3/index.html +++ b/objects/RightBase6AxisEV3/index.html @@ -105,8 +105,8 @@ var scaledData = scaleData(data); //console.log(scaledData.pitch); if(is_touched){ - writeSpeed("yaw_br",slowDown(scaledData.yaw),1,0,.7,"exponential",true); - writeSpeed("pitch_br",slowDown(scaledData.pitch),1,0,1,"linear",false); + writeSpeed("yaw_br",scaledData.yaw,1,0,.7,"exponential",true); + writeSpeed("pitch_br",scaledData.pitch,1,0,1,"linear",false); } }); diff --git a/objects/RightBase6AxisEV3/object.json b/objects/RightBase6AxisEV3/object.json index 61a7a98..2d2b2e3 100644 --- a/objects/RightBase6AxisEV3/object.json +++ b/objects/RightBase6AxisEV3/object.json @@ -1,10 +1,10 @@ { "objectId": "RightBase6AxisEV3V78ogdk6csbe", "name": "RightBase6AxisEV3", - "ip": "192.168.1.21", + "ip": "192.168.1.120", "version": "1.7.0", "protocol": "R1", - "tcs": null, + "tcs": "37RBTH", "x": 0, "y": 0, "scale": 1, diff --git a/objects/RightBase6AxisEV3/target/target.dat b/objects/RightBase6AxisEV3/target/target.dat index 391843d6d1e9e0c91b8764eb0f38651b96aaf7d4..bc243362870c27ca001bd8ac25ad6777926b987d 100644 GIT binary patch literal 80857 zcmV)7K*zsOO9KQH00saE000000KT@og3Yo307uLK01E&B0Ap`%W@%?GW@TY?BwPo4 zlU4VAM^@XUyXoG0uXNG9_uhLZX`8f7_kOP_4)k;D_tzG2paLrTsUU)i44IOa4Q1~# z%P6JLng6*VKlG>N?S1b!=Q+=L&bi5ruTDygEg*RWK{yd4ae+k;1$oJF8R^xeJ^btf z%bLh*k~Vh5)pm-5WBZyq6N>_iLPFc54YJ_+&N?yvZFrh|c!VHCTU7En8h(pV&l6l2 zjZHl>;3Ip4ep;?Y4|R-no-PS&cse|1a=S{dLrs!y+Rs=zj;tA;%VW~m5S>S8H@_5V zM&J+}Vuj>MH>hR(nlYu~CdpnTL3~1&LOg`-*f_Zo1Vz?-QrnEaMYYoJ)v|Y}#bpks zzOB9kRU(Oi)T7ZXJbBI04UgINNv~|1vJsKH)iR_RGe55&{|V|uEP_iSH9{-87UnM~ z0WW8Bej!?qnkM$CWp7jJIj(kAQFaMxL0w!zn?j55+iRb8K8K!$Xp! zTALCQY(l`%*4III5Zd^#3@ur)ZPZ5E)+>6nzVw7z_KaM)sO3!FLU|3_%mLdY(2UmIxi`d9`d$Ct&IG4SCMIu!GSVW=g2Q#{X}Z~H2bjWjUi9kr}gGiF_OeeO-BfngCG ziqVB9Ij|xNEsNMK$wkZv!;C+``$^v7TZKnQ#3K06@FZG6h)0-N;W10MmSxT;JJHxP zwX8-nCMrV3Cl%=BehLvHXhSoOHdiO=hnRAtL`X%bWg=?fxfY)`)-l(gGPdT=>I#qw zAvTPU$0Q%qLiaa321m8jvOStHX#=(}6onyuEh8P2h>!)0LvwiA>f3xvJrfgam2rS< zfLfU|6%Dt zD4daTJ6h!Pj8{muKJ|ocA#n(hsmT}5b+yzK&y-xDwCKCKrU+KF$0-`mlOk>scEoMM zQsNOHds8#d(uPXuDp&=Nt<6Kz2&n}^lSc;D#^rxj=b??LOtd)KbeX)Pv_j}>RC$u) z&E>}#B;YZxu5)eD`P&y=QhK4gADXpEbVr-~2{*4~v+_>(FKIgpip!I z`61MbS|?}S`2qQ(O?B{gl0@~W{vddVKF>f4>A_xV8JMo<=;XK&H6A7>lz|AXL-ohCeFd};#{$hE zbn6F~61G_eI;5;dXV-WPOnf7ed`HLLk26Q#qxzpjc_OeS5Unm{ z(2CqFk%%d50de2PS3IyWvDJH_uZPUw+|^vF#jPcEEN`78*YpzBMv? z!I|%@KW}7=bl}X@Ft!ZI%2Ucycm5k6EIlwPepNGO!7qh52ZF+bjR<3X?8WeA61Ab8 zl(f|JhyR)fk57(@hiLQ}l2op*tiI z$~Kg`DXsL1yMsILsktfAg%uH6BuYbB;yiJ|v48zSq*J5fcW7oiliB=zbMe2SA*%>O zp&9l#F2SRCOdFF`kyUy9yp4%U`XX7|Ly)$xh!gvLu&O4P%saTT?o- zfhpVP8{ta`%#D~k48tR|sA#62Nt7l@)sNVQ5?xiptF#ELKmXUltn;f}R%sE&M$96^ zurQXuCnY^K`^jlTPl-^~u$n^uK|PYM8f$O3Si5j(z7F0`KFOz1FX}I^Ew6oW+Qd`k z22avM8-}Yp$2uFYyV$tu(7JrIfS=T(hhdhD@}`!jHv~3dOAQU0GfMhAxqexnWx!iB zG)Be8nqhbD{uhsRNX^Nmp^gq-=(|k5yGJzf=L@x2T7#YBds}3lO zkSa%AFQ?HqR9o_SiS&gH--f%QBfw|G0nBSJZ7(0J8LB&d*3)COR9*iD6{r^JBQ5YU zXGdoa;0Ahzcix!AM56*(yR3Kqj*g|OLQ?l3h2N4c&1_l%_tGYGNOT{e7seK*1efMw zr}I*K2}EB9R1f0^iTL>BBo9=E2sO+Zb_q@s(1v11{}G>}!Mcjk%2!E3O_5AA!=$m( zEeuH$7W0B(<{lWC;}Mv*nBH9@t&HfYs$zub{;<2X>w~VgJ9g&wB*9|iC}X5HV)YL9 zF^w&atFFEk*#m3zT)lZt;5sR#q-oAAuho@t0mPEY#{;h>hiY;#pfLjtzRnY&NzFyKH^&% z<8v3Nb?Fyi^Lf(3#<{Bk`+#(H`5F?fL47%Y=fs_i@s82uSXp6Qq6rr5g!)lzQe4W} z6CS=`A?2$Hma+@w{*sq-&C||{wPYehOBiil?ox6_a@M1h#@?zDb$O>|?TNo9r9bsC z@-==T6e1Qv6u}~!IWkYAjbxV&JBCO%1Qhqtr_TGhR}@v1978pTjhO)8(qn5US2$!U ze?wU{-W%!n0mYwC#1pPjdSiAo-f8}dE{&cb^z@ds+bLTw`|dBg>vkxskZ4OlaR+_s zg0EYBaYN}zR13HXV}d0w>X}*2Tk@@QzAmaARt_U_dqD9Jb^EAQKxS%g20mws;;;|} zYky*GecIdGH)&f+`l3<++$Ny7pB_IZ3dl;zNx}ZjUgYr@Er!uwHZXYVZ0MT&OGX}! z?*Z`v#jn!`0PBW69&S15>gD=u+1MP-AY?$AuoeA^erZo*@AO?0Gtm`E5u%>lHnMH0 zXlY`+Q5;XL!@{`4B6!?u_709MYuh9PuMZB8cO*q^^qI>Zj$L(K_4`mG(qZvActx{D zrq)XaT;sAYYGh~^Djt6zDe9($|HveB}p+sbyNvKlR1O<%g`=u}i(QhEohj39J0V?Ninwzz6( zXI=SyefjWP!#$(+@FaC}%FaHote^tVlfRMiJ9ej2N&ncFKcSgD`hAkWVG;g z`t&hBQOK&0DE#EgEQgPG$$(`nJmL}JlmB~BI<^pqGP!c<*~kD>{BenV(Ok=X;i=FV zGZt+^Kvx)4Ixxvh$1K68#%_(~BD&;Gg$H^Mp-T>q4);t=O%aKZ9bwPijTC^j!|35{ zV+-j4b@r_m6NhKBM3Vc}tXN}#R5WJ;GFK!d2Vp;CPPnyvl#q&oW*0$Tv~j9W+M}uJ>>={WRTIbh%KA$DDj1W6*RG@HYhAH-a;jNh zQ-xkdL!*(BEb#aDP-oST)%m-_V#5V2T^;lkFqzH6)D9I_msH=nWn~98pZ*SUqj`u3d@HN* zpwQs7KeJLb`>7gDeVsnGH!#XGEIh&hH6isfhpmb4d}rrN|bHKv7Ws%WmfH0cP8MV0az+53K9d*fHlbtk<8eAK!oMi^;<-m)IS z{#G?t%b(p8*o@s$rMy8*K&~?M(NN1xJ1e`T86(ZxjnyWs9@K{<3Q7B=vrg`+1a)#f zeQ+|&y)nP7@Hk){sphe8)LzyyF`LoXH;Ml?wRQj)4OmF>YUk*g9MZvk!|olo-b!>1L#Vs}lZ0x2wamdn;@j!TGwxpXMGeJ+O@mE5Li^?0XM`qKUF_YnzRIar1J;d_0r5k`__4r% z`0&&uY-P(7mqyD7nJt@{PJ0Qx!}mu=;d6&GitW%uuFP+!t9B5@dveUk(h)Sa^@CvIa#S%#suwI$9XfjraBXaGedL?+Ll({+V2ihY$J zmAxqM*Mh9e{tf}$=MX#K?VM$p1$^Q%5;IOs_ymf!j7EM!+&X9N7E_d1Y6#R6crqJ3 z0G6(2E<7MwC6fK#n$!DTZ!tvei1+B5fXPiiHW&O6k`&4!^@Z5#I24}+L=~l1WmI1~ zZ|frcTOHm*48j@Iep=f&YbCH|EpvHzMcQfs-7V>9Y^!an-FGBB7!U zgr41Ww!7tG?Hc`cLgf;i``Gb-kYV!LH9Pyxw$6?{;O{0YLJmgShc*t5x2w2@RS9DtvjEFO*yu6c=v$Hg7S994I!H9>pwueO_!D)Y_CqIF;lMf`pJ>-#7LB6Gh zWrgRF7;zSLIEVu_rDtXH!c@mHcT;Yu25n{~!EX@HAL^J?iEA2r!Edw(J`2aqnR`|? zXWTs9CErRbj{t&=%}avcCNH0H@QBS#DqLXN8G40HGcydcY-DGB(bLnn{I`ls=D&<= zl#~Q3h#Qw|9i^qMHIu*ufL+k|?P_fk^PA4L&N-WM$`~bsL|=~vy-n*q6&m5WEN}%p zecFhP&z&UMFLUrW&_Kzyk~FZopkeyXHA^Q+V`J05uuFO?25da$14~=Gi*7D%gBu2W zJFa(xlG{gv6x6<>(W1f7p}Ka{_COBgZ@_%e!aWC@tB?gH{g7Hb2f3lzXf$Y$+_^VC zDk?HQ2Jhzz!DV4hz+%b5{HcqHNBF^)9;db(4H_Y4Z|FJ3CMKuhC)Eoa4t|pT%*N(m z@T!osKhu(*<5+A5Zzumf9pYPEP*ZRYH6Th2Yv;mm=$KhA3bid$H>VbAyx4s-=s(2b zL#|1&v_jqwS&lZL$7LQd%=5=W%QG(iZj!H>swYP37>Unl(Cg&+lWyJ_S($k+PzNF? zJr3rIguv4LsH@1UXiISxdIxn)Y*zVwKqFlV!=FR7#+wa2AM&o zu)eT?g#38y7nR={8eK*4;=|&SV{v}*l#z`UMsKW(kPwR#bCPpU9rg4d+oAG%jT%?V zQOEyvHlK0zbX|C2W`>bLk1(LSU3wzBYPvffoilO+RP=j;?tg!(e#_X54L{ThYj0nZX$0goZnTy7+s(t@MVK&1Do8-%UGdwjaV}4TCT@okpVKnoM{wFr-W}I`J zzLupm&U#?C2~S`wu`zLR(?=|VBxw?#52-8QQEfjcN+ux2@zh2_{B~`%4#dqNlvJKv zwS0?f8IUdU>DG*y`D1p$6E9ojWNB5+#RrDsM~W{~mG z7Veu5r+vM^mfYSV(3_|?@6Y_iQxV<~`fNi(JSK~LdG684acOfC#(}^UU0)|VKkaPn z`M=)gbN=oDU`v{}8<9r96$g;CRoXUlU0_2_s$JhF>VK)v!6-H9?C$bFXk(5&&UnR` zeS_&_$`$2`Wc3SSEBW6Kk(`wh3YmfdpCU4$d*IoCyo-yY0 zl$t{gNf~KPW?j}_hZBMW%GIu~kWX$KS~qvLboKW2_G__#`9r2Z^S~6&h#;h&HA_^= zW)$ce==vUkK0!?t+bdH42u%tlbZsp$Q>6hvjUe-n%81TgysYC8=qqt~pOkNIEgIM` zSfL6G4pj3^jj^%^zDW_l9Sa%@o9gk(Mo;)Au@dLSE04kBVC@_@&Cb%^ zik7^V{9XUVMuK;^bd!C`K1TepSpLM>z=dLix&pmu`_Wj5%Ls8F zqMi72N&PJ+YnSC2(1O%2^LK1DWp!nB)04(-qp1>?*D>?&D&JC(c_z{`(pU{zI;b&h zf~~Qyw498*XBYHc$jLy*9{MP-i^jJad#>Bt*gv{wX@PTCAt_|Z>*RF*0*aJD2DQU{VXLQBE#p!~*n+s-0jbArbLF}+^pmv>%_ZtSz(45?y z!UAOntD4hyoUEp;O>C3DNUnPZ?;KZ++P_Xu9&`6k$xh3|DHc=499EUYf5E!DOo^wdo&Yn+|5_qO+%5LOy?K|?{~ks%GSayt1x(UN5;N)@XgN&Y8#fc>XB8IW6|q>rm*9+amvse`Zl0c5zvkv@ z*1sUJSWQkrj4S`4qG(rCY}E1-$a=s+IBFeDl*uj0D?NVHFMwQe7I>Zn#iIyD!6avrKMk&S3U4F@m$fh zHpe!vLkOswfJ+tSl@ZannS1uOv$lNOye|uC?u|4vl2t0>SI9@# z4Qv{l8k>&;m(k|xaWQ^AG`6vtvUIYqUSC(!|89SW$}P}HL7%+f@7X3*NcSQs5-b>U zktyh4LM!`wmO{&#_r+a3fbL*RM(xxi%8-|nmYW7adWc$Pvos3NV|%-2o(7(=+vC!> z%2ovXsoPHWj`T60&oo~5u=iNt8=EtHhQWO42qR{?#9flfvu=1lb^D1WWjD(FF{|LQ zr_hI(0Sm!;-7;tc{b(RBGe7h9ovHD#p8^HB2>deT`?Qi1tNd2IxNBpL-ww(%HPkfJ zBrXyco%q)`M8#L}Yl&_cGiF0fIZ$Lnnlv!Q`X{}j!@{auTb?5S`+Y?bqd{t&HT2wF zZByAm>%e}@s4@2j`@G=b;ds@;-U7Xg`s#kH%a^QD>oicOuKGLmmk*S;WVdAN5PF&% zcKWW9^^zXjIAt`YX-3%snUsq69`WFgsYMx>S0B^Ia6n^W9>5vhwz5Cz=IhnAzP)z$ zNG&6}ui`1lvy&cPt@UlCmg!(*YbdBIq5^N?}~Nf%VS0jg!H#UFiv z&^=dEw^@_l z%{MkJ9;&NNkezW@nE6xscDBc&Lt?Z3&Prh3VEW13fiy!*Uodu7NZVUF6deiy1v?K| zck7C?(^VH2m)g(j#0QiTG_fy`{y*~0Wpk&f!r0>HP_AN=uy&{;JT-T<|Hm^Xp!HWp zcK61fQrJ)GWAgrOp;dlOz68agN}gJagYH2Ld17jP$;-rdcoGN4xD}z3 z{a#T_aP85?QpjKu!Ip^sP!DdK+m)1-*PvjO&nJQLL*DWHk(K=!e;<)}V^hTur4-u| zQBSf#-%R=Dz{D>+FnL5&YAAb)c~ z;S>ZsLR+Y*onaOip-Q$Vll7xim&M{2@()nrYF`vAMDH2IfMH z-W-VUdVncOHA%J0_qnFh^`gaB=w*^cH+RUpaJI{5L9B%QXzsd!1CDVGV`3?`zLDyZYQnRz!}El+m9hXdkBo?ly!5kIj#@{w*h4>nxLEv6N#%5aX~4pa zsgPl5lxJ#CKG@PwA+0)dz%yKJ1W!^JY4g?>RpTdFvnD1uE9Zk&IoLkbQC}vmIKAI1 zV$@u;_%YqJsjou5r6qG)Qd$zNZ)(C!L*)VZk_A*k zdWmUe08(35?r_Z{KGKB`sCy$aM*2T#{;rs~7%j?Bh`pFcLM(<)bWv={@>Om7z(DCj ztHwf7e@rWS=C1Efa$ahHT#`%O1ymI0OY)EW6C4!~E?pR)I3vAG)=xS4x5910xeG!Q zyh~8orSOZ&OyeQ{X{IrFFW zJXI;uh1Jvqti9u-&en@Q&c5@{%`C7N8$&I!4^*W3wtB_G3x>|4nbL(dbo=_Qy4G*o zDo%;KL^DPf=6FSrFH#R6=PGR|6Q6-P*Jz=1K|wX&X$?a^A#~B(*_*$j$HTdy0cpVQ zmi9;on}%d3kNO0RmXa@eH2kw!*4nZa)+(4c=HX0g%F)qvX%RT{R)mV47dwO1J@3ZG zMRd0GwEY71sK0E)!Ey73qqFNg395b=jITDJC%ze=?s|-hVGeH(OPSa_KHE-%%ZQ0s~`KC`f1M#ba6BUCO{4x^-{F~o7eDRQtSE0o zLB;(*3(=yMsRibWT(uT;8KO>2QBCRD{qER{pY~{0RJOjXX4>C004jGn_%yX)MFWbV z_J(pv#o2wH5u?tcr|XECziZ?1iZ(|TL_HQdSfVKyljcEzTa4mrXaWeztz#D@DHDk4sd%os=D=Y&eeC~QHdaRpJZE0+1mRvt- z8=#Js&b&@sg$_KH>$X&Bxp$oCr61v1Da}_w&w4uK*CE z$oL;pO3o=ufQO7d`GCaU5g8wsau>&9tZIVBGHd7WuBNqkr~p?NFT1I?|~&3{Zx{_BQ`m9`8ntzpp+0<7R>5s<*Jd;N4Dl1k=)_erP5rU&TV2Vx>KGqbbq zGIEB5DjNeRx1?`pf5zL(Cuv(&F3w;?_s6E+pe}<56rB{8iuX@5KiE%V&c=R6L~>NY z_QLdAV9BG-W7E|%2l!CbcTpub-K;%cOxs&xMh#U~R!d52YHv<&?xuYu5h`N*K_5MN z&f8<4YpA=eNzrUT2-z6HSZWUIo`soZ`y0JX$7>yf5{vN%gY@pbvC-*?8L8MCG?gZ( zSL&+`^e=dLc*gH2%*XRodx~y1k%te4hqdLl<#m^JmvbqoUIEte=LLd$cGgaDKg4PD zWC=$)^)`wA4>gznR-W-wd|o_92eJvwR3S&;LEKEvPb)gD@&ev3ol+3Gu(s$eaXE8d z2HwQ9g{H=bl_-o}Whv$9KWr;ZRoO|Wq#BQl_&GBFRJeCIe_qc3+dKux&{Nt|D$Q)n z{NF#hQPLCA>)n(A^nXPDnUD%8ORCO-wGGbBmVgC;@I082n3c5tr>Z=1QhNPO8Wfk_ z!mULaKPBcR5&Bl<*y<=~P0@xbdrWFV_LBoIJ34Zmw#n z>67=#wQ#Q{to`vFJDaC2`YymF8m<8zjH}3tYl$aQ23B#^iM2Rmrm+@u2kSO`{+__- zKxf)(( z*R^dDN|H*S!lAHP+8nHh%$vJ79Po+=sNPbOjXp($jr(1gomF;!}rpP zfsY4UMuWyD1L!OB4qC&o>-$k8G6Qu3c|u*=hVMo~)u{l~k0fOh-ucNP>e3}=m*V`A zVr_^v~Z^QhEvZ1)Uu`-9q1hK9-XAO53lx+PO|mJ6d2}QJ2tX zN%NZud+Ykd|Ll#5B30z6Pw18V9J7d=$UHnI=wK|Y(~`4h_Itcz{i?T!vrddufxnZd zIbB{bVO3gelFoQFy!@2^GggPul z@P&tFj(dHg{bU>DWqWaUwu?O0L~Q>zHMBLmqX24mMZ^l6Ce)7}-0*Td7vLHY`CV-3 zQ?NR6A9?Ima`KdicdfLp=?LsJ<_g%7Z`nCJ-*&WdYWiFz?)#umL8?SYUm+f;%tYZK zk&$dTO*KK&7!~<^7v~>y^K&Ei$7pK1qNk#xy~On?JDZ;7ffhx*Ld>TOHG19kOI~hJ zkMnK#xIumxatQK;=;){9)Hxfk_`1aU$1o=J|FLk?zGv<3u-hjopy#Kae8sPd9N78s z5kfvDmkfL`ptvM*3c6`&Z;#(DRO1Y~3CY{#9p}%wd#GZ@#(RnL7u;M+bE`^##`R&H z4rde3?%LTL3kVS9K;7^jWKyGvW8(~Y{DiM>eM5uz6dn&Z`d^+ z8%REwIMlAmJ5qkgC^;Gy5T-K^H582A@b)43u)I2}HfP`O5vkG@@=(8qdq?hxihB@Y z8KF-AXMhL`89)3Rq3H0K$W5C|3M3rz(1+ATP&FI>ColLVGCPt*7@1LQv+hRPL=rqxGaL;;rzPhgHs_}mW}V&T9vf&x9(tX+0y#qC z`lgyw!Ct}YMSV>VB=lWC?*Y{K>PqS#9XIh+o05ly=)Twb2kX|=*WU=V4SK-`Egi;$ zC#fmOB5P{v>W=&y9IUn_4|P$uz&FdsDy66Wz5HLyn3-ZVMrTF9?r834mQ}aZoH*bc zu5uy|jnH!Fkm`NES8>I|!E@RKdP+exG9(Py$AOE>AiujmY2v2x5*>V%;zMSd`d3=Q ziB#WI0}|p9pbb`@@h(BpHSy6Q^RQ8W(ZO1}7oJR7m)x*y#x+y(pfX~Nc`~0qimFjh zNl(eI|7Hb`hKUY#XwE2VM_l^B_*Lu<; zOCrm3Q92@?@&#A} zuBolPCYvCPSbHEEwl{V(UpnsO2R6U^4f2e#237r7Q*$MzCQLi9^hzaZBMN{UtYLtM_dwE-R>3=>v7fZR(Cyf(|6~np#u}5A#|T|#Cei@ zXboyTIuQ^67P9+I0=*9cQ}OAE*>lH?{J=tXy+t-{ zYAS(wHXRT04}u&<3o{n5B^K60#69AkXIFF`1ENK{S~NLA`0r5}6A^(?dhr|Ji_8q?Z1H=&e6x=7p?U6(Inx)$}SuhN7+G;COeHb$G-f=!j5)c1e%z z7^H6Au(#{)?(dd1H_1%ZW}5xHdeh1Ayo;+#*K6HFze7cA)O>75Fa6KKsIa;kaqUp& za2H$~p>W*fF7vc**;w0`e_q!(2o@9=II;a58f@CPu&$`#5~!~nQozB!Ic4YJbi&!! zrRVFR`j$;CCF+og?H$y`E1u4hvgWFO*?=7P`!WKCnZDuVaL(T|Fn3+P_~Hoge3f)t z4{`j2zfW0SWziX?8g7E{Xok%&FN__Xo6dd|HEN)^u`SVZIX=OS>KcJ#b-lg8=o|fLYCbbs&<1Bq-=yPDHGuQO&$99rG zD>P9i{+EPYP`vps$yX|N<>ucphKi`5Mi;J**LRS7$C$WJ0i`r3lQ)N@7KF3H4$GA)9ygVMe7`W7Z zSg+U*j71$H{b?QfVA8@Zwmx3`1m4c2!Rl@UTZ1mfZ|uib>e#s;PibLOQD1$3JrAlZ z7(*Uh^Ku1U%qQ)u%$n;^R~&Vo*t~{5yf-8!A}%tC3z|PP*J~=aY-30JKf@Cvvi`}A z$K9tAkBQA6QBR&43ew8bYcUFHvmi$RTUwbB+8l%qgXWF$(!-#oOSehCS710Na^mw7 zZR_BPCFrAuw?8#@alU6`<(9KPPt(OcwsT_B+r;qKOl9fs6={FvClqKCpfiBS;XXjT zzcCr{*?V_Hr%1FXHX*w2oxX0_r?SR<;ZfmG@8BV|rUR4i>+S1nk~T?i9I_3So**~1 zlDLN__nX|B6QMq#Y#wkhICm{lmpu;q+g00B_uKyT2(YD1h)>>vED?68R7^ z6gVS@2%5;1o|2KVYkPbO*wV&V=vxPE!*UDq3h}%^N2aiH^7Njg<4G@XuaY0D%Fn>s zB~hY{FZoj3&V=N@(&Ez$mqF2m(J&_C-^@(NN;>(Ae>PaihI;ysy~$CXMcqYh*=^Z8 zT8oX@#l4%Jj?d87I%A+?=v|;5Q^*30TNea~H>xkv@?{TZ=QHBdb#qF!og=vG-`K ze|b_(_61Z0%pdZ1(5y&p3%hw6UE9d5QCZlMVduYmsTLN0S6p^2)-jg13@RL~owuSz zG0>V!*_+nqTk2X z1(51RicML<%qf!f;Hk9$-w}HYcIc72i9hQW--|nH**rcu@!1;U+9f-uvW6NNt~9+c zG&jUn_hib(VUfjV<^Lk9$9OPyY2veY$;AaW$2T;!WCbjF_OY%ZUOQpt3VQUKTn^8)fo=zJb1ZeG3E36{jw`d4SZ!DcIcDdL+B$s9=cliG zI)M3e0=FgAEyFz3@uIa#a&d{xlD2ol)g}eQqHXv%8eVmFc7-w>-8S0Y+B(|WDB2|* zgYG^pzM!(Qz8>4oG6ytdK-$Mwy}hu1#qLRrKZA3webTYFHHw)>kngHFM#jv~@wAy0 zhFNg*4>%GS5?#5qI*WOe=>r5Cdxe;~ZRI9ylFP6c6I|#@ngJE=+{-aDx8`IY0DLBo zNyj=hW0n_Jm2CqZj5QCMDy-#S}7 zZ;eBrbY^UH4KbswD=2KJYQ}3{!9DKKQSkJ-iw9nN+TWRp6L3b-xv|kE%{;5JYjS^w zc~VPo3TDuiWMk|8m^QS?f487R!x?nOM!Sg%kDP6ocGT5b-&Id&gVGKv$K^ADK6uQG z?{dm;4y)218~sc(reCTkV+NSO!eecHtXodG26-NGiSh+Zu4vuXmaZ}z8wX+03uv%BWkwo zl7n+NSQB4Kg5NZ#JHAscphkdM*^JmQ79$qS$X+G}t45pXat4nDqj2HYFk~w` z5gqxkKy@5Xf<-4T%X#rd_eLCu)41M!1bqJuKw1|18d z;v1j`Uek59#np$Xl~^;gxnCyV;9+*t1a0$YOe>LfX9r6znk3Uon&%* zt?d6aV~Pqwim#Qsm$UVGhRi*Nfy*|`+t>_4K*=V8jn~~@D|?MPq0B>!F^tJ7bTn9j zUJl6PJ_5|tjQMU%=e0ee%pYgh%HGzDnOdG%`7lh}#N%mcV_gvfIobf7Ik@T+uTHQC znuoVjzSbGh-pK%8Y?P2Po)L=ebJv^YnlY;&7ad<0-+DoBt*l5hCMZeh-=@f>Q2R({ ztbd-XPDI)B+b~*EbFvhD^ueqNwq#{4i=)l$yMx)Zb5|Q4#OqLG$0xrFjqD@ zXSY^HQ$IkJf>v^omQow-I$!I8(dOMHuw<|h^&`@Pm?yOFy04YJu6cV#VO|*x2|To| zX<@Z+tz@8U+$trt{b_qe+Y5#7m#J%ILQ44&YB5vVB0HrWdNS@9h<$TDBSteO^@KK} z##zBZ^Tkb$l!ww24gKGc?Ac|33qRkz7ixur$}dr^{yxK~AZ0K*{8MP&CxYT8Ey5<$ zHgo}k`lCU^Vc~g;bhHchGZJMzgA}z2E;H}4insnbuefOl=1Gzn9hsf~7K9cW8bS^W zxb!_ROcfpGg!~Y4B|LOPi;J7uDO~MFN5JYx4_&Am@$hM`2bO|Ii1{L>?(!!0vi`-O zMl;GF8q|MndPY1#o%=kX(cws8IUe(m&np$! zLT*_(*|yPbKItT4?kn?A)69&xjqac84@$q>56NQ^+R>E{@Cbhvw0LILI`T z2Ku}2?Fq=mag)W>(#F+5cfaDMMP(e?D4Y?$PStD>SINIb-Jd~7yiU7WVvWU^WvW%V zT8n)Bg zYCeg6Mh&B_t*x34X6S{xci1KxV@L~B_5M~Spx^wCHM~i|z1?=t%i^Lx;O&PJs){kM zBUmgBW*IiTGC8eGL-L$s4gGYYR-y%FDK}6FdO&fgG;_V8pHTd#y*K*@S=(s{DaVO0QydL-mvlL@`W8u6 zYESE*z*PGeuU8C^9q)8@CG2SFJPDVOP7|wyIOl>ces+sk(Og{6*}4m`@DsuHikCOP zoX_UhE`rs~E_<3{t7E<3@CIZOTx}^C@grE2H7u zuUE)4s;14=qGm39o5M4fmnB{iHP6v%Dd{Ln3hpfV79!56xZULqL@Uh0V_$j;w5Ox* zyQ&~H1MhgMZ*nQYr_e1uwGPM7o9VmDyGhxH^0vHhTRJ9DjwS|Ut&*N~G`tiZk{RBd z-l>E>YI)A?atU$i^T0a$Bgrj9Yhdf@521S+crx`!+fbh0UXmQxTk;N!Syr;U{5?|f zV|!udq5jg(ag_~sdf*jlarrJQu3G3%`0uw?^}MZGy)`T5mUb#?akF6hAb9snleRlpx)_g7T?)r0n{ z7JdyaR?y1Th;c0mm);KWPJa5xS%_BzGz6so7!w6zTsvzl$8#UD|#uZIkT#22^0 zmtdf2Q%?(gns4GUA>(uZI=u1TDX(P3uF&E)=@EcKSC@hsTsK&F3O!~}!MRC>SpEsT zIebD~+Wu*;jD0y2?rXEw`PMh;Ayh$Ex&G@GKB0xI(Ku+@ZWs5Ng>1dxqBr(Y@lVZ#nHJW1Fz2Hwy@|UdK5Gi_vAR)rFf52S{qn8 z=1ao}q}xse+6&^-7TW9X3yV55ysj{-rBYhfST^(2#flL!%$HCBgyuuW^QVNiEBn1; z;wfQK7d^6?8TKfOZMq)fneynlqXqW3*TDbRK<8-8@0F6aR~5{6Y+=zS)H?8!(2VSt zyJQ$(g>C5*I2RDMIz7G!mrtGaNY1qq7LCw&#^x?5#n)4vb50Sy?igv`>tZx#!pzr5`t5;vGX~lrR*c^;6z5171)+-^xA_a}3U66NmW_wLn-OD*^Q!VpKUq4YK2Jg5PN2G8QjhQH9*S0kIpv+4`7XD@tL0W`7+N+m&EiOyyA!h@|<3>3o1B% z$7-A52j~{14Xjs8^Zc4!6@b zQ7)a(k(E%EQ2qXKMLd%t&k>XF!tYe1c4gHjHKtRG0*&f^WhvMk1b*bZKTCq&=@IFc z^$A(Fw>G|VFDijE>AJ%4H^q#1Z(wGS0wTn!?A-RRMyi>GUvH+55g&pz*mUOI`cczt;3(mL_U%{Gz=BR|5~tL=&_!s+RrPlrzawTiWy=kkd3p)b~eSS!n{sy;(-+i?o zWJt(AX041{ds=%V5`f9TnBThYO?#V`ekU(W+uK^_-tF1QQh1A}gbWcjX3S(+CYV*5Ab=b=OtgLFsZ0)ho!t!!u zK%=!^Uj9+&xITXK%hZpF%m4GK_WUa&`xBt_J4TE9FfJ{tbpXr=XuGiAH^FPCSz-&_0Xy$-vbY0V@|Bf9&3DnPu=I^3x$?ry$oA4P zc)LA07e7GY-?uU=$b(Hmmu|Y);d5VJ@w1+T2qAowTY$G~;n!1f|Di9Aq%!e^Rq_s~ z!z}5$3h}-2H((<)9`{9Z*R{g|Y2Ex^W4np2H@XI6x7IaXWOCtarh4JxDpafQxLIC^ z3o7!+%GNMdYsX(>8_AB54kq~TirzQjsn6klI@Z>BE5=4w!UA%Gt5WLUfn#3n@@woU zaczG*A zZNbdHoZ}rPmPy)J+pZXCXS(?wksb8KjlSjPlR1sBMD*WJ`Z}==_V1$@QF~=)b(o*L z9Pf?SPF}7*`U4$zKGCgrJE{WXt0gHd&G&=7 zo`TZgJ46UjPMQfwuesx|gnUYT0({-tHL1E4>~o(}qAxz9jSwa9UfBH|TYP)JTXxH_ zS3=53<$saPJ}Vr$5M49&oXzya+~#NSDfsFrP=(cd+A zmG*MNYscy<-V3|EaW&WWc_ys8|4PU^e@LS;b_P<6qvn{`fSn zjKnb`rA(d6Pa%bK2LsD;t*V0860A*bWi9~;VvNE2T#~#nXV?ff3838tZEj^#hg>s% zx2+1UB}d+7x|}kjYo@~7(hpC@xnu8G4+sjYAku2_pKI?;SRl$A4_(%=o>t0sa z-#ySXZDekSqv3~Z1~ndMa3Q7g#;?vr+1^#b-6W2Nc2NnHSK~Z0&OZxq!Fl3GL;ad3 z0}mIKcf8s;e=WNTMl$zDxo8N3d>)%FQ+U#BIcqmQ026)Ho zA3#?D^ z-X*DBf5XN`960OWOSQby)|(fAf>l zSgm$EncvRo3hBD47MbH(Ir&7#us*XTKQD5y>@6^?|7Yqwz@j?7_wjpo6-2OLLz;ke z>9F+Pd+%-8rR=gSOIdomlf|xyCefIHiHSWXu_VUcyF{=DyVw zF?yLhcjnAF?|Dy|=o?#{XYm>qH&^%`F3Z}Fkm7y5n;uXs}_!C+JG@ONB{Mb+Ywf$d~0LI?Pb}aUO9#Nf&aRMGTE|fuEn-3Lgx-JwB3* zf3G)saJjZ!K0R0rNhN8yA;J)~#|O=Tu0_N7EaE=+=iFcZNkOZQ*<|804rib)YFKnZ z;eA4+iA4?L`3a5@Hqq0XB8iA<3CBN<*{Im+Z)>YPPSz`rpy;rh2{NQe6+OQ+YU*km zLZVBH&$eelmX6uXViZf2vZ(D9dE1e@agq%*r1@Yp;#AjGPdvP3HIKo__#HiFQ;8a} z25#DEVeJ4H#ohSqrN?QbI`6~Ck>$C{g4h6M{x3Lj%W{s{%wTV$_k@3V8GttS8yU=0 z(_R8gNWawmH?OR|-<>m~Z>&ZgGq>-Il5<9U{WVz2 zGj~>7S1?!qbWE|?6;qB9YoeNk<)@z1XWa>+gwnKlf39dbRK&i=tF0HavcD9`foEIu zI&c;r4zr(3^Ow-1%&?Bs5i^HG`2u8YO}CnERRD%SLF^92DSraXv6d3FL-6=s=<45d zbxO0%2$sYowkhq;A;jsk+yFy%W95;_9j9Fc3_)k}y}7 zyNb+@M^`bG9#yKZL5k?YH+-Z$Ns?He8skoc6rYapn{M?LEC0PBGrFs_U?s5495iF2 znIsw`wRA2Nx))6gNG>0o8PM`|&~z(A?sj=*y046rtw8F?Vt5gB-%&@ZS&h>X94W2q zgJ1kh^mMB)Smk%Mir{0Fl7FCWE`0LWr&gP0;MO-awuFY2mRv`zsrQ9Ii`o1eN8I9U zSB00tCu*C4IZ;V|H_1xBvZ1=kFRHk_4{XdY(Sa5x*ky+0Q^*z)t8yi-+qx6{z-B8C zT2sJR8-SyjF@g^Y`&O(>!?Gr?fTGc7**-==?KqY-+QJ6PowCI}islPd3_9br?K%8$xzM=|cFV9BW zn@|=`Z4IGnt=IaOJ-p%+q1iKFR;fm+386JYaiToqYQL)m)nJF&SaXCmiTmDkDMfSh zUtKc&fxiSuz|=JXNVSTbH1)BiD}R~|Gr`g-v-j7fWbH4DH5qrwbSCdsdpH*ynOjub zR?j^$urTI6a@+wn$(+hS_}+?Q#nPHGC&NpoU#P92m1Ul=wY9D7!9!z18fCl61Wq}} z<#EpEvNK!eag8;`mrT9*sskhturPV=eUa(%i*3^=*R{3P9vYc%uRcdYH5bhL(=xR3e30Zx3 z@)FAbUXgfWc}}QkfiLc0pKMgk{z5w-<+K&$L`zaf@Wzj#7U3^`ruAH4+_-h(D%!8} z&$CX3bJ?n&l|^pn6$SKdUsgdaVvqjOLo#EsUG`*`gc7<7-WQwD&u*r79o@t13nN8Pu|svn!i@_mwE=Qzv+##?&+Id+Tm1 zPASb!iLY1d&q*1NCNF05cL~GucawaiY}PX)#*U)e`+#MPiv???L$1R^$11Mc-lbR0 z>)Yy-KJ{o^#ZaSPlZrYDM+3)Gno57bNyEc4Jt>XVb&nE^p z#<#r$3D#**6}{N|%#Uj)HSj9tR5b_el`5`q>Sl2W+W|H_urazPaEYH96I)5OO{(_V zNwfI<7d>L_eu$vVv-(uf{7+`Q-Q?1m^7@2~^7?bo41Vr2CpIxFM+t2ry`y80fYtWs zu89%N3!>xP1b1n4G`8sWR_o-$-ZLk*B4;m)SVhF-UkS60dNlz#kl>eQ;=|~?-A-g> z)Xi^fIA#+(UdC5_Pvo{Tf5kO7bB`yFU5zRC+m5FIpNapbtSSXuKL`8Z@iTd=nOwWX z%p@W0bjANLaWutCbYC_hc5bmDOmVl{DQ?yF9iykS&0jZHo8Occ(zktA)x^*inNI(u_b+DElutB z>=-?lxxLpV(`s8>-gY3CA76fFCip5tY+*$o%;Is3!K#0YU849SLe# z+6wlJ%IBvs#(Ih}MOkEcrF<9Mj8yIKN6lv{*Hq?)AE_!>1s%K*Q4^{|20u*HyAk7* zY$!-nPKRRkbFb6k_~+rYSSLgj-|(>ye=*K*0%eKuLiMk}LxlwuOKK_(d)Mhys+lN% zH&IeeQIqt>Z97w1GeYO~7ELVmyTgm`ZnsKG)lStO&S0iy+*si3@H zE3L8p%pa?NE!IB4$UUxV9_=rpJw~gAe|@h@oY{eRxq2M>FUaT1aZ@HwW(-Ecogyc( zo_ju>&}icAnvve-Sms;#(Ahm^n9kJk^b{W<>ZVU976Qsb!TAY|6B^(1=K_c1-$YeE zlV|>kr>#dd!?oGr;OjWfV!MCB(_M~vGuF%=*1>%K#N+#=2Itm+Ex0?`eJahsq~8ub zUp?hV--?fq9itwun>~zEBY*v1-=aINrXKHJ>5ZfDIJ!qCIT7b@PE=Ggud(^#U$ckJ zWp1{|a}lvJrM#h{;3jZj`2)8C%LjkgR>yq|7gaMj$}nqr2o%1rh5 z*XJN;`zhS;)m<}o7XLG}$!PPq{M&IBDOWA+tm)a@#EJgXx+R2Id=yM-d1%JYQ*$ij z9IeI*)BiM}JC17FF*JBJv zentie_KM~Lro#IyW$ZpXk0B;FW#DPlEG}gJ^2Gq#y8`z#TVbRGKV7w=YtN@I_<3u^ z1tmWclvRq!?@ansdOF6uvYk{QE|%m;Th$if&$CMh7w~Rua?GE6EF%L_+_33;k(v)V z=oaoyGhlS}va7UI(Xeq#2OHFVBqrY#O5by-+&Wol3tf3;aJa^8tlHQqS;eQ(#VY#7 z(!rm2ulD&B+x!+Ir}A@ao)3~QfEA5&jjQ3YSbL{(TAfbPjklK$mhgRt0`%1txGnyz zE1?Oge{}q8jMJ?E*DRZ?r~=huQoir;(!uGxtADxYn(aTRJ$LuZj4xh02P&f2T7>UPeNy!pZ;2q8W(bF?J`l~w7fT0K{Q3p; zHSUM1#NE)=yKADG)X^4JbNJOXmpoIq%!*s+H;1VDU@?y(|8Wn~8^+am)Lbw3gByi! zf26JVAkn!<&pku*4L&thd+Fd}{_}(0c@}>}m(Rjczo`mVBkB>lW5-dx&cP>-V^u-m z8JY%W^N00o8^y$k;cUSt;v)+Y3jEX8F6x++^N(&4oo^%SizYM;tmNJJ+eK=%C8>~d zl}Eovz#KVIgZ7i`%i!%B+9Ytg>n&3sO>RQHHkFrAZzSU9;A-|{6iO(&b>*^+!!5a& zfJp}_50Emiu^BHIomb?k{BC_WpCiYh%K82YWOq* zcemRAGQ;z`==uP@O#&&VxPdH_B|wPVx3*Sy>N+_I4z4%?X~KHgOK?prH$3p!ZKPTMqU#OiY8cQmh)ia z?)fwgRP(N`b`t8JN>{w+61Z=_X>O!ed&J;Kt(xLGiMLy=iom9UM!sS}Wo^Xv z3S}?J0Uh6_mSi1NLtKsYO1Dc(Dc=JYg^R+Iyc>Jn;;ptN)t^U^F4czA#*O+sTB8h^ zUy)(e^6g+!HR78F7VvYoNRktdH0Aw_?)MOZ7RtJRX2(swoamft8JMD+i8#Zgj3(5- z^F9yfp`E>2XMA|4rA-mb=+Sn1`68jHOipWOa=5|e7DBE#+IUU;Xr!+2rPE~@Z7oclXg(W1IcU|X zH?`<>jvEB<51t9!}uRkKE4lV4YsikSdw8!aCEwKe?O6@^^=b<=% zz$Gm5#r#)t^iHWKE{8;o3<*ZoP=FEji#4BX>x$wfDT#ihqyxO8`-l0jzGh|XDzXF5 zw26L(bX;Y<4Jf7^K6a!ot$(+26gFt6LZNBrzp6oX9!IA1p{E>4AwM<2jUR$)`lzXS zC(I#rqJ3)7e#m_A`1!A9ux($p)tFx>&p40CK4TpxQ60kLYiQ6otijZxl23@#i!JBB znofJ8HR)fIXI?;bbxBPNAUb58uc3K2$v$_aeu`uOSqd}O$X>2s1~ib}G?C;zvd?nU z9MILKh+1>5M;lGlvi!kS9=NEq>ft)s%m1~UDZt4}0Ky2obL`JQ&$-m$td)dz1JnkLu z`dvcPMu;=D>y$Mb&**8ER?2JQl9bISz^&c$k-ePBN>-H>#P4n{-;8gk*+?{d3cX22 zTuSuFu#HKt=~u;(ia^=Rdgk&5L6*htG{r4=%QI%ceRQ%f;>~nQ4WT+#d zzkFS-_PH)tJ5HnDJ;|sb?+s*LY{`GNfdAmIQ>y;%$TS$znw7H@YWCo;VYn;ZcO%QR z66#@#w%&ZA!>74M<5egUSB)hzhmcuy4Z3caDLL>lUX#c2`N&_=x_9E{lZE_wPzSnp zk!AOTETd2Bd)ZS~lP(s*g^dB-#YxiNltRVnn@?KRNWk4SKes}vEW7;4bs9y0Y7B;X z8XQE4Y1g#yS9kHG+S?s#86~_IXc5yh;OR?(|z z7FVAsN|a~vd8m^@X3kMIZYtCO@!FRmtp(yfp)v7(5nF}Og2A=KN&pkGr7}mo^1Cm^ zyWb6P%Cn5cj{JzW7upl=w=#EEITsIql~MQ}884fDlB@Cj`SZ@scsb%T#l>{RE}6c% z+sqa(l}eK~H8j$BZRe#^>GUIzR-Wc zc3fvX?PSGrNnl8Yl1jJtg^jnrby;eypyyQ3ASgQ4OtdnwX zCYh)88=IO?tk{WjPv>oRGd+d=X1bMi-%|ckL{kjC!m6%CSjFzQingbx7$ia)&T4tV z-j>vup2A>lJL|q0-U$tFen}*5r?Zxm}wu_7~4K^Zp)Wk{j0mTuYRF^Qs9;^tZQg&e*45wkH+KZ zPoL#-IMW@WdG~s3Lt7r+zWNo*n-SDH$u+9zPNa3>MQaxub%YULL%+!Lj5x93XHKfu z`}5^FOwO*Ngo3rCWI5n0{aae)s*SD&4+LIecG)r9ET{_uLE9w>e=+`AKQtiWfu~i> zrw@nol zW~pX&Q7tlL#UHnbv7(Z!j)?h?WUHkD$?MzpS+DM%JJ-hV#%rd;1&SZoO$&H88X0c? z7ipqj=YP0RT+vZep51@$+!Eem1YBLC6J)g@G_^EwCkW8REIihZDBILdpR$*CriE7R zQ=I;u*}t){)z~soj?fO-WtAYHlKedmCS~FDb_EHaoVAVUJ*YTc!nV)j>h(ebM9;0K z#dV#FaHQyB8RDn>8qZp@vr$Df)^qQK;&cOZOjSS(y#ulzc}|ObGSSeG>X5mZBb}%D zRZ(g4^j7k9km9rlqdJEC$W)TL{Z66zmg_QgPdwGHB>PUFS*QV_x|>&sW0Bfo~mS#_tQMeB0lGSutnm&z8HVX zhpcOWkBpz3@F+Hq)+6fm+Mb-x2)D>mV~(_x{EEG%e@lIB{?Me!cYIyLE#ji9sf2tT zWP5Uk`t4IK;xnkOJ2l?Rg>q}1v+C48HSS`p@cw?&@be+ICs~#vd*e0}@~Lt-QGEjL z$G6jh`4g`^OpF#zX&p8b>F?pTCmUHR0S3-#rG1I^*>48MsQcS2YNgR8mT~U(4Wz1k zo5|sS1iYT@9#H|vvV7`4IY_l0xtQQ8_nwxx?ds1q1^JtzI!b(w?pV>)%UeIPRF8BK z&sis%13wy=#ZVlgxFQyP~U%e`~vQoYCRfMz%SinVw#XZH7J5 z9w&+`Pml5BMBm}htov4U&EnnIF32|MPQ}er3VgFttv~sEO%3XunL8JjyaZ0(czZ?H z7yRaLTPn@3%cWOgwHMdaw^5$<;ayYHTM72*6C9EY=!yR6(Tc7b9_^ey<+`YxzWCOl zhau%ZpO4Zrt`*gbZOxU%hai4?KCS3l!q43$jf+3ZWq%DF@-NTNhfA|%N{R@-O~H|D*rK~8vKTyjvW@JqbiW#o#kIsCjo zi!;*yBGt=*c-8w342CY!+Sda-qNb%JwBA!i0a<-<{72rcT`pqt?TJPBQEuzP3rH+!dlfF2f!!O5)Gdq(?M(5b({?!Oz3?_fm@dBSaer^T!S>gHE zH{mvuFOIkKZf%@p&ci&vLqv_@64zji>v57|6zg+sa|3=ChHYtNV4O?o8{|ZSA8N3j{MhE$)(x@ujM%150llkE&X~{ zmIGyiO7UWjs{tSpZGC@eIt9**r>~FyXfJBHG&I$0VKdlgdt@7(s4Z=H+Tv@!=kEj6 zOhunE#N%>R4SoB+AA?LOT6?FdXHt=0SLkZpShyQH+2F|E2fkqIzN)XaxLGQ>!WD8? zd0zTdFFko=Vp8AQ$k{lQsCh-NiG?)Izi^O5YoeDFY zs&v(H;-%O7_W|_#-Bg(s*4--lnQK-fD((^7?NQoe?nXMr8+pc84sQ?U@*@8}aF|7R zGM3;>E{v~Bp!ucPckbzKV;~=fiToi^c3LICIr?`05A6Ggf+UNM06CVmejZg@z)NGt z=}m-6CazI=(xc_wHI^-zY5*O^F>s;yUE zlja=%#<+m0eKkx2?1b5cf)ct%*FJmdQdm8z74!Xq{{~cR#8(xoEFO5T_?!!ne zg{Zp7)v>0WdOg;C_IuiRRo~RsxOG=loyWJ+8PLcG?tB||-(3)Cm=INZ3RXz8b>!}Q zJjw#!QJIs0M-z!^ka()2Y@0&JCscu8&onRzHqc_^?nV6mE{7!j9bw71Ca!ojx+PHG zaEE!4Pc3wcu6}yee6@{xu=5-Km-yWjo3zS0c;&aXoy=*5##dNF9KKr9KRgOwT(*yV z@%F(^j`yNHgVUXmkxfs>zqStcw6oAXHdGzG8udynq5{_U`RI-gM8xF8z%8QwR)lpd z8n5b8zZeY;I2zE%+}E5Lu(2esgnx8Lof>;bg_nwAON%S|-#c0SFMEov!_+O2)pxoa z10PL3y5m1YZDJ`br(OEbYP#D|d(<@)XGx#*{iiU!9EkdZ>(L$R?9(C7;&>%npeqdW5?*n53Tk8hgjZ1``Dkzsi6HE^m+rfEMO{rugh`0)K<6&Z&Ukm zPat)pM~=OfY@a^KKDkB%@wk55fGrj5Z-_C6gjA-Krq>D?K6)WSFCAwRENC`>eOF2z zdP_q>jQ*a<3fC3q!O>Q%My}C%CfkCd-*Flfv`dxc4T+geq!-?q<#VIIYnh6fm94J- zl&T{R-Au3%c+toSl|p7ecQym7i3hZyQ*SN-g0p-dMw`W|G#iu8ApkLTyv__DA{9eP3N)p*|@F_fzs{rpdh%$_;J& z6S#*dz`smZEvu^-9BrWPLb>Tv{xmx8@IBJfvPIQ3ukI>0Wbjo;R5DET$bB)@B4Xp| zd{?TM*5S?TKm_Su2re%|iAZ+8a>GL2YBg89)MyEe&kI|=6w*r>sXY8iV$>^L1$TbprC^uxXh}dQtCAp{F z_MZ~`>rsgxefxUk3#X3flxnc5mqUcYE3@r zVY-@B@3&1_zkt_%i;ML1@Cu_bs1J;;K8<3mo?gkV2Vft2E-vr>KI=5mR-NBxQbolC zpzD{0B`ntf?ob1(NmuC4sq#GX4^bApEpi;W`}nWlGUgxbCV@+=p9dAc^L>IH)t`JV zJtL$*LK{ke!&{JVbNtsY_@b4?qRb6#^>p7i@zTwyw)rs8&IpNk^0@eh<}>X=ZsD0V zYrkdlb`-})oNOzknYXl#i}u9ZYoFrN7vq{bH6*#2>LtD2HEZjbJIB2eZMUX0-v?9r zKmGaSrt8$AL|J-NU~?J$v%b%3))Ia{l(C_;I14EzO^+uT=u-?vYZ&QQO*kEz|M-|~ z#0S?IYijvh;ahrzl&2~3Ym4|Ah$H-8t|k(4i0RIt()-69Li;{XSvg(p$4!_PDee!p zi+%oTqTc_aY_AI|IkSI@6WhM!l%lPJ%m3jmhx8u-*EQnfMBCLC2o)OR%^yh9)i>7q z%xm6Qy51jL2bX`%d<|(Z_X#P#9bzAW9xvmmA4lid8%P>scPNu2f7fJ=(YpN045na1 zX->vgQojkF)D9-WlFB^u+EhQyBu9|rgP+2WP4nOWa|^KP|pC(OC%e`3p z(|l$bC@mZN{Blf<lecoXoy5S}fvJ(AQ)?dq93wLjG{2VoHejRsSu=kucmzek#xxR^hpKjXXI}&3&|RGTyIt0cJ5H&+2c4I;sHAY0M4E$}KCM;?s zRW(g*Bech>YryGx(lO0C9i=z#IryA<-~#8_zC@n5Kz8nmoGmE9Tzx zFya#{s>Q+(cKFEQbdUbun47Fp`mei$CmZ4I>M_j|t&{IsJBKkJ!O#ESdR`b}-hOpNw6*rWDY=!9?|zv~C}WH|ISW zJ{gCXg^83e|;MPKU46UGKMo4UG zU@D3b^&Uq4hF31ER_}Y(!JMG`_@d5ruJWb4fzRfKG<^bOuv`m~8lC|CN{f zRbf*sOw2leE>`E$=;25XMx|SxI)}&TXQvX*k8A3A?fQRrB1eid3m+QC2u1*V(J?^;^->h%gg&$>SCme8jn#V%jmqqkJ`~ z8j3`Wf=6qj=-Z6H6p=A|%|cUc@#YVb|8}!?oRf2>TP3|g*j@ehF;YuuC-2nb@{b|uTwccCqC7*`wI7Ab;y16& zjOp3@E`(Im5h%%g2!+8XcMnN9^_Yzqa}3`8b|juep6ZUH1@c01X(ej1$qMAL;C34+ z$IJh{L_YC8P-;3VlP5OUNY_g4ow2JE z^$ic~R^~Tz z4+s5XRsWLGiHJX`kw7)6@qZgIo+jBjb(d#$zK}?w`AH*F^i1&WrU8{nrl1XJef{|* z@f_I>Ufx=wn7^GA2?ivR8lDpPb30CM5aRiU23{ewV&(jEFHf^uQ%$2Vrt|mBq(e(0 z3E{^Y#2Ho}hOgn~>}}oW_}LQgMP*gi8?@3KlI>A!)@4OEA8xJV?Gys}x1+#Pcc zZNUn;N0XEs&5ap+W?^T1)zpdt+Y9LRHIyikG}GPWA-;rpMv(_@(b41rEUKxKTY!Ic zxknDL18{gpc6YH1lFVZY;BTeDKN^M(;Is<&F5kh4-q}Ot^Ev!?NOHliRJ0kBQnRut z#DVZ#C%DrZ^B*(`cQA|)pWUQT_XQDkzUaft^+VaLqJxnrFB+z zee;tC;MtLDMDOtZg3VvkTz}e?ptl3~a|VkF#Bz7Ey;F&>s`=4F>@u`2Zl=gM2c0x44J+@O z+sb9NjL>m#&dyWb#$NlfsX_iBd7-@cbXqnFR7b4?jRH z>*TY>F1e7p&UKQE#k_=HE85omK=9=?$d2M7Q*dCiJ zZStP0l8hxh+XYEYNMImOf?ac=>Pys5o+ZuS$5dwf0u}I>#vFPxuP-oS?)VK~uv8Y`^x`*L*9o~ko z)5wMPV3Iin6;Gk)R-gwzW@bEDU`M=1mPJN_VLPfSus&NnhLZwN=E zi`F}Uy9tt!Q@+5nGZkdWq&w{=-m%U3+;L6K<*QZ_aV+N5=a56*rY5wIJ$O=(L}Efp zN_p|&t&1RALy;ZHE$k4yn#n$-G+DPb`uF%EG^N1Xhe+vB@3z*Dx6#()@7BdQ7G-UFl^+WrRJVNEKHecs@_|N%tjXE1#1x z!RGF`EzGG^X=Eq-E=C$eZaDk45^F-f#d@v{A=w{!2_&Q~4wBp*m(TuUK%_kLpu)Is zbBXE-61e{TuU@;)Et{-w<;aNHkz`2IHTD}`T(+28xSpGP{8L-$Y>Y)r@b8tC2_bDxq-JwFM|%E9BN8ju*i?Q3&ht+6lRA=>MScMzLo*7l zJ`b#mos~m$OarUX*{~URlSNDT|6Fd&I`l+B5|;R>3_C-J=(sId{80#OoxasI<2^TKS1hSGuOy|dMX|BID0UVuuMXBlyYzI84 zj>5V+;h3`Up+{g2!IO2c-C=Fal`A#MOVBDpA^OGqTCUC$Q1OY#Q&CQ?2?&wjYfPYb z`2N86ZI_V!JTy`;C)wD9a;oQPw}GSfq^$d)sL?GpRpzGM5iDjv;iaB=MHB)sT1)Wh z6!|aOfNKoqNy+`m`DE2@Qh?i&gQM7%Q>1xcTP3~|^_v))?$PzG;I`n|31qUaPlIY2 zDVJDv1TSY|tAvEP8dbV|!=AOeUvkq$1dhAUGXL5%p#*Y9nteez&h=iT=k<{1CdQ^KFQsR`m;~12Z}afM&>?G}|JJyW_BW9%XBT-{dMM(W|ZaZv;JXbRQKj&1P zTnQCmOtQa?#d(LE(=&>6_3V!i5=dNA7U{Mh@>H;kR@E0=bx1+Pueum5m`agAuC7Pu zb&@t74~6AInH4aDhd+PQITH8$ZaM^!RQKSTck1!+qO+P#HOCPb9D$wpi3>1;$Dh1^ z4teJL75p zCGy(cJ17lHtG^+f&0$S>A~mIsMffq71E;}E^~R}Z8gd(&~F-$Fx7jk5^UUMJ%PJe zQA$uVUFpoT=gKS_ylj!=;{A z_KlKUy-%v0fmu`7Jt>)twY!Vllna@~GIPAhoHNhOUh4hF`5k1B``_!*oD@~Qp3l2h7>xNV@K zBYr7S3WskzKnesd>NLRoa0*NyCfO0QdFR04gbKhei}lwF`tN6f7#H`k=

    1svti}b^Ku%6-aVHGtD`? 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

    hE;YAwnxpbG-IkQL1h2MX?s}6?*j3sq zt5I(wyZ)*QX=&!1)~bpT?n*XG*ON8no&2tJ9_0qDS&+MT_H8iFezyoGIo^l%{bjqP>B}X`=QweBku_2IkHUs?B-ouH8Ue(FMB@ zEAGc&kDxd>AZ&QK4(R>><|6W{jbscwgUPNbUZ7}zM{0xSzkx7+D1HLB>-rX1Lgd7Zfh?Q@vW3BL0jC`robdP zw%}GIHna6l3l-mi!0@oV9>%(qh5qC=Oa!(wn7ZSv#lw}q1qk6*<4V~p4hEZ(s=VH; zwSt5=OK1HDS!g$VsbUhF(>rbpGccCDe}}_nso&{%1CrslV=cNblkMMOoZ{gB7g?YE AXaE2J diff --git a/objects/RightShoulder6AxisEV3/target/target.jpg b/objects/RightShoulder6AxisEV3/target/target.jpg index 33eb318dde4ee53b896be2caca26a96c484a541d..64c2b74a1684d73b132c3a39e68497bde5268b5a 100644 GIT binary patch literal 123737 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 literal 20777 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 diff --git a/objects/RightShoulder6AxisEV3/target/target.xml b/objects/RightShoulder6AxisEV3/target/target.xml index 860f7ca..2d076ec 100644 --- a/objects/RightShoulder6AxisEV3/target/target.xml +++ b/objects/RightShoulder6AxisEV3/target/target.xml @@ -1,6 +1,6 @@ - + diff --git a/objects/RightUpperTilt6AxisEV3/object.json b/objects/RightUpperTilt6AxisEV3/object.json index 355fb86..debd0f3 100644 --- a/objects/RightUpperTilt6AxisEV3/object.json +++ b/objects/RightUpperTilt6AxisEV3/object.json @@ -1,10 +1,10 @@ { "objectId": "RightUpperTilt6AxisEV3SEc0z3n53s8k", "name": "RightUpperTilt6AxisEV3", - "ip": "192.168.1.21", + "ip": "192.168.1.120", "version": "1.7.0", "protocol": "R1", - "tcs": null, + "tcs": "fvRhP", "x": 0, "y": 0, "scale": 1, diff --git a/objects/RightUpperTilt6AxisEV3/target/target.dat b/objects/RightUpperTilt6AxisEV3/target/target.dat index 30435a99cf0aa4084fa428ec31156d684ae4cddd..867499f9babb15e6f5691bfbebab0084cb7ddb43 100644 GIT binary patch literal 67458 zcmV(&K;geoO9KQH00saE000000356!Sxl_}0D{Q?01E&B0Ap`%W@%?GW@TY?OuPqN zlV|rn{yd2T94IcFsGy>vs3Zs|viF{06GlkbBVh%?ecsU4+Tmzx)nKdEz4zXGU_h;+ zb??2c)=@RT>xtj@|Ni^=SV11nbKmDa<2u(lcVhhHfdM}8yamT`LpYvmYQu5yu|dA! zVRC*L{;jEv9T%Ig%Bx5yE6Y{K=NDCs_o>O(1jr8o!Il*x) zGmUPEV*D!CCwxSFw!VZcxQ-$+66uM^iti$_O3EeESJ9-JWprC4N^2~vS&bikq6ljH zuZ0Co#FO}5kkDbRZCp@WS%`G5(M@TVX_Yo4BWPk`OvkpJEodK6yW%oREi0$BY9f<9 zgIazwx@{A+f84Jh?V==oFhyE%T}9;mKbZrTy5@(}CQ;)GquX{-$J@h(4icQEF=>*YS?5I<}5kvcR@*rP* zGV!~OZgTUJL5cav|2#||*R5@j_Us&E4UDmfawR(&$5>`VF>Bmobeku#wv6#^e@Q`k zR7Y-?COA;k|8JeYN{cg9wIn_DUw!tLOA5Vh^Rv2(dbOoJMBS;JEbPJp26m1hYkf8~ zpEkP95xu;g6;FRq_53JG?C_>@Ckp;68Hgoc)Y$ z)66?cE=yIv{!~LfgN6swajX+s+I79U*y~jp1s|oVT(!}yx5&=Q&Pw>vK>cu1JW~XC zBoRH&btcGa-+8T-%<6|O)v9^Uu2V%`Z!?{Gb|7jRLu%7Q+d(*V(pwOGsso<|2{->L zs#ooGc74z5Kaw@Qp-%et)ZyYmU!ooquKz&&+csNzTIjpbog;%hRF|AxhjX^Q#-!b? zAHg0^>^W&>bvF%&$ z?Ea)ao|}Ag7<+-Ye`4Vq7N=*jQEdEzd(6?~;Oy$k@nRo{45Y_Cy?m#oLFLbg8hD~p zD`J)8PiYI!lb2z%v+EtM7Z&qqOb(mgL*3)e}tR-5rOg%^R?zR^lf*Iah+c%D% zp&Y+YUiE$aVa zfMpfDZ595QQkCP^i^nB8Cst4`%@Nf`om^5xGze!DO>urziF9IeK1p|EXGj+rTrx$A zj#2i*zNsXeq9Xks$`qm^mQ7vn^mAx`!NZ@)8h4VI?5OL(J?}(SCcVKhM-<9oUVdD zY?MwDg)i68?na`TZWQ|F-GHG4vlnuQU0Wa5S69PGSy4?b$Boh$@u&WQ(t%yQh->gA z?&b(bLFRUy_w7Uh%bkx^PBI{7ElZfnsn9TG;vS)7rGv9H^(qM@zn zil(ke9yv_Se>6(Bi!Fu+RoyrgPfp2Uqz|HWAu4XstLeZ%ioSYHuJkL3A(PlBO%^RW zO!DVF6Da)KWYS;7lQ^SkIHP`Nqbe^+3Mg!H8X1QOPu_S;Nr#@4Q{ZeF>5pS8*MueG z_>U#g$p|$CPfsW1c%xJ+_VcVMx&MSHCW319BC01#?8uVxP7bQAeQ|}#bML9cm7Ydv zo@mcWQvKOBm!b^{`g$7@!>KQC4|x+GcMQ2n{!Iaya*WdD;*mj_bY@2>`Io1Xegfr^ zJ<%UH%@vL+-{b!llW%S!Ictp4D3OS7BO2*Fk^H76(ZHd0!{`XnW~?*nMSR$qgd*~o zolY%3nk1*qF}X6jD*C9KE{x;E9J>d-MzQ1xUK73GsqCGdqqJqFNwS)2`XiCn?$%M8 zdJm@eqBL?qj>Fr38&e*7b$t&~8H2NBH*ASye^illkx8$6B9?0uQOj&=;AnCD$(6hJZ5cvT`v<6Ev%>hW$_MWa@R zmFfSY68e*9AvAw&Yyz#o-wsovsQH0JGMT%4xx8k9k+HFtQj!`vLe+>o4JKB3#3wO$ zxesII)r_egNhAt>-SPCG!)Mea!>jeD0UQJ^bt2W73Hh|3P(#im(i8ZP5=k<5{Q)JN zd6-A`X9AS^Ul0;*eZgR_t0vN(>T-(wHUl;kG)TtYDReA4&98I46ofG##n zq?`xu6KI%oWS((|M6!e5w=k;yus)NV6%nM5q-6L#ZPn+~;eizVctAYad3jcw#z-V9 zxu#{Qbl_Vx`S?=#;l8mN0bQ)uYiM2s$>07PM;)rX$uLeLQS!4cQ0V*d!3C*PaYi3W zBSf2@p`CL9nOO&T%JJz#cOsopiPYq}=wf;!>6w=DaQZPjwsM&sC> zB7ce`yZv5y`jZsDT3`4@OQHBjTT-5yE~gR4GGqD8#<5y)@sDa+CxeC&e+6|4w)CvW z@NrqqRq3a?XV81pBQ4vFV>gJRaV&kedF1GyP+p@R>T)4^JHai;zb=IiPScS0YPnps z(>S(9te8U5ZoY3+ucK3z5S`eZnb>&O zG=_;(^Gj;~K10cCCsbqrRhOeMpg&{jWgC|6!s`*A#_uQ*tlE@=;$;^=Mi3QPD-FTp-PV@sV7ZFZ)lh6L8t3=FKz zn7NOXrjDjD-;4ay616v*f}(!&s7W&Wkux&Fq|9tZWhE_{Lo`93N`}s+G2Y@ydT(0i zQAvHOlh_7?I=V=7b+va+0K%E2V@S6C07aS{Ok?JVy{~8Id=?SycS;Nb6426fcwBfP zW#|g&@vS=AG_Qb+Qq!0jV(ad;{-GDBc+&*v@di#4i2AC9hrHaqCXRz1R?X6o!N)Xa zx_H8al$_zW7&}#`VhuMD=RY!b>%+vTI7FI`i2KWCYnU?7G$vP+fvEb{s+^Wnflx{5 zs4EWis=Ly2kV0kImgxBMY>hF~G)5sx)hp>$j{;gmrKBGZyabQiv@NH8Y}e$ps8C8n zcF0$~QaYuJV*1Mc^w6iTkc$yr=rPfcR7sEiruYeVK~AJ^Y<25OMZq!r6gAuIWmKI#4EuudTLF zo$7sOAvMd(N zN{st6qR!v+XY3VIuN+g#t_DZ53ni#McEmHFbf?)OnnRWP6e3FtpFEVVWl#IrOrYX_PX&eR*TS3!5z{ZEn%!jy^f&pAuIqT0y=_A!!e9a`Xu zYQkxzxXqO$?F)FW4IVmh9`=c|7A!g}C#+l#KOO#28D*?cI?WIXoX=RbbH#u>-@LA! zx^*V_Ejm>Y-e@p6uH&MW>2&K-Qg)-0I&>ZomAR72qMQ(I3Z0l%NF$oTvCK0$s`#XD zRkRuhC_*W$+73j)yt->HzwDB|2rf9eMB5rwfWD zeGJ79PYk5HUxm}X&sCm{OH7UR%4g(sx4_rz#rk99Y4`mo8s1l$xho)8 z!>=|u=JOf)V!As58KEGxQr{gRw-0jVc6V9a`22haS4v!o49RbnI2Ll*Q}gIwoXe>C zG|~@74CzJm=zx2K?Lf-qOkgJVk+x;K#4(N!_%4O^YAY$ABttV#&=Po|x5uS{ag#Hs zN9g!8kP>C8of5~NxV&g>(ew5G87Fi9FKZ*}JmrRuP--e^%VHtcWgs6(9H;OTTI$t2 z&saN!mNmR!HS8TQyv<1Gn3O7J6~rpq0Xs?WOB{7v@f;0%(L`D6CzYq`t#I(j=_>=% z3c@1lYOf$d_DB5WpGX|FeDb_Xx`wkJNr`6MN$n85mlqcWdR1#Wj-mABXDd>qCW&Jf zpZZN9fheMG_NA)tg)-4bs zzIZZ&f6I8aqqd} zI74TN<4i8GsW^Z5k?P1z@C5y1X#OFLxra|`PJI>K{FA8tf*c(p*vP4TpFY_W;vZ1a z3R^rWtP?-oJs>Bo;u^(*6Jn~#<)rMU9J!LeXhTshH&F|Z%}c{hG(tAKp$M#vgf12= zLw&cO!j*lMBc+`5wkMs{1>+DW(reW1LLFz^kedB`uUC=XXw;y`$k#MbIg)tC);g`< zT&g}>UM*B6b%MX2F-C>ExYX$e!)KR4t};?NvX0AHn6Lc|ZEuXLVK}2o`apC<5)>O4 zTF3sy*WIV9$vI9rvY5}CqM;30i1T0p|GT4wd$Qs)_o{Qw^$5*dwUd;_c;(3LTp)|4 z&u6?6zn(-9oAr6-sz>in{?4ihI*l`bakwhpkgOc}8{hM9N^1WR{HHgmQOo2BS^J`e zn?~Scr?dbK{^3r}rPvV{x4e#x*_sja^Kd+A1tfr&+2raU=pUx8w(1Ox=>y565%lSM z(bvHZRmqyz%Cdg%`*#pd^PjTbhSQn6~h_CAXg=sb#&%;YZQ)r+HOJml9=L z)cfo2f&lTv+p)g+$(r<=4^k;Tx0I<4nj9vJw=GdAULs0ICRCEXH&qE|q<=w`=N&Y~ zFK~8~j_WF$Pn#TSMPpXh(M@SsR={!PznDn!5vuVpmq{8e2^c;o|jw zQtX4FQOV)cz%wktk)9`7i*jzPPj2c#6u&ONN0an|$zh%-Vr!Oa9Ic{E-i!~!N*r&xlYbGaYs;9yU&V6 z4Qp~(C<@)1let-6Ls6BP1PE71jzqseW|KW7H@`?#CCYNkRkutIVd7uUSNgqp7Ej(& zLPc!2cfAXD2PIXGRN&LzQ^ZGF8fT z8yTfHmN7(HwZL*fB)#ZfP`L*Vm_8F;+(F{7O4PJ6kq!ah1ZxxNyP@bJj0bOlO8;wr z7AbxiN#RUJhMp1!gZSlPjruWmQ9h_2mh^anOmU)8YxI{ms6~C3)vIJ-pL1a>>!&J)8rC5}yso7#^br?N5#Oeeelf}EuP@}TzXcOsZioDMRaU`3EenNlv{>c zy9c5oBAEU*Rcs214t--yps!_hnhmwE8~zVUOu~;PD}(;7^*DScYx*v@3;p$ z5ETTqwWHj#U203g1=&0C>qezy3~e3DhJu*hvbZRVU1sd6E`*(75_XY!u`cJwF=KC& zy@oH}S*u!}MfAZUvskbU)XAi`CvDQaV)k@mq+-<-QYrhI?6-416h>XGLg^=eir*ka zMcDlP@xJ*fK>tU+&7mVdhLK^YAXBrmPPH%>9KgryQnSqCkU5y@QjV9&jUBV;(244N ziG#`hASad?^_&$__5bePv>^Q=6y`|;hbAz3~fc| zI2{m8s|8Sh6Fb^Qim2Hsbh4W=^Xvl(G09E#tNEz(bawQ)D(hk|3SK7A8$$l{plq)~ z!MiKy^2r!7=9%ncIgdFqM3-v1I3XH;*O3sx^yermVo6&4h2E)o2QN{CYNNz{kI1be zfO>ZHtlPGs*0|HuVf?EkF5`2iAeF+as}0 z;Ai1&oK;Y6(0B24{yv_(ftUnkU3O1F#H}U2DXG+WS7N_L6rxR_-cLMh<~5UIq2PJ& zIQ>{kWqkmENL5uu~lw=$Bw_# z*0Wf!acKy7eW+7*lBQ;KO*1_DEQ&oC}Fl_FG{YpsaNgMtLWs4NCC0fWr$NynXW4*y5gKlzd&nIN^GUE0P_C@e9 z+mZ>r-F{ogq-9iJe&&5Xr!AxDCG*7ySc9A~ID&`ay6H6D$`aLS01n`tZ2POiQq15qs2ejF(&Hd zU-*32$m|y_;~2Zf7#fT0Q)~uXffCGRP7-VUq_kZpI zVC?&|j9I=5EDB{ZrW7e{XK=sTGS&j^{ZN3ItT@q~s~^I9E)g(E0kH zm!k~-@?=3F)2!YA8mDb(e#-*GfK>6Jxk-f~u%Wcjl7c^k47&qQuBY6IOA@JbWC)wx zo^l$O7zQ+noT?^JzmHy|cOlOsn5qzZD0(mQUE@*`BEXHd_ccD!WrhJ-alzMhv^jz3 zv~O%QS0np^Z3Yw7zMz;B-4wKQFV!gR3ZXbLS3~4#f`<5po2c;oDzZD)|Zl7UL0K-;c4c@VlP7VE;fegRog7`o73 zf#aS1(&xH2B$ZY|TQNWc()-5#o5dYe0rj_Tre*E1qp$*g?rqYO0ln<}#EUFPnGo zGHm@rhic!G6!(P#TuTWq)BWhP4B?J-siLb>>XxM6 zd~xW{8P!|AsU=-+N(4ku3jNK+@PWh5B)cU}qgZt&sirCW&gSmlPOIARJGj#tuceM#0+KM5Po_Kg?@Y;N*~YMlXGJ* zsa7ic&g6HmDyFBmk&89?bRPX2dIFiZseTcdNUuGVJn|~#DJLlV&M?O%PQGkQZ<2vlJ z39?w%HP(=&>>DKlH(%M?#Y137Yc6;8s1h>5J=gS#8xv)~AdtO|5|v72-*w^}$C7C% zWG;87;ARU1I>>CZ3M?Nmh{f%|GAI=DA%;GyxeF&`s5jBQD#lMeQE%FP>6Nc^Pz7G; zlSx6<@dC2y6T>gNR1kdmNhbOI5Jmc+=g1l+FM(8D?i5A8iSfi=No%} z%gdFObnkF{-f~AOH&;@Vz&?%2EX!9TM0KYe>zPH+ys@`G_xEjiZa+RmcqMUvx9uXl zePBV9Ievz;hL3hcWuXi;_MXqT+DFi}ZiST;L=i%VUYONf2>s3qp`3s3Cs60w05W75 zdmrRa=tDs@0>cj^=hnc0azXPKua_y%?@VzNA(0HE6s6MGTgpuds#grXF`ltjmbZOc zB4f81`#d38-HhNo7U*K%btW~I8GF}oixw6rJ9Y)*G)Y^vb5~}nxz>J43H|Fz>BDF6 zH`Bw)jTOe;yZG?K5uPU+^4QaiNxF`l6_4&Zn*%07z>2-s_D^6NSqi_|WaG-IU)0s! z!FKMot@AhrJZEO|cT%u3S{lQyji(La**V~>Y>LIZU}Z8l()d}24%#~gPyR#ns+A!EtC7*+zAQO;&7O9gKD=S~PdxUIuq(W4tHjBCT zCQGp|5K!`PR?~s&EN1sv+CFD_J&#G18la&Or1u=d;Awu9|$hb!Zbx8 zvqYziA|L_axw6+2qj^iQs`Er4TQeoimJR&NoI*#Bq_eV zLz(;>iOn}6-;pV@qo49JL`sSb)3Xz z1@BXkK$fSxOXplBg}H;{hSNlFJrfiY9s&u0Crgt|Dv3=Tw|hl$dKBK06jGpCi0T2s zQ^51-zKfITpUC*ShOHFWvR&D0ttci(PH$V>{iYnJY+)kDT$vVAX%vg0HG8x)>{MBb zYNxVSlz7t26t<7$u~E+D!ONHqtyMG`7yDQBpBu{#cPYtRf3!>?-KXreT9j6lPw!56 zhRl2g7FReV)LU2ly|aQeS+pG(+1aRxYT2*s6(M%{J&}Y$&&g90yGjVd*WsH>gDPTv zPA8F68Zt#nHH}AyY`kqKeREEfXTx`R?xS^1K>qIZ6~duTb0Atn8%| zCoim_Q_!Jr4p=x79HK3zyyh`dB%y~snzFZDDi!7xduzlIHQD`Y$AhquhDIgvK~LnM4_ZnpE2LRXO?X$dsd74Vh_rAUy!-{-ufR8$o6>THANV zxMVFUt2#e8MRRK*)uY$bt6pRk*(J)Ixg*56v4+(MCf1BSeLZSScsOH^F(YI*8*$H1 z*~`kDi%b2=0xs)F$8&AOXyeeM_rBpHJl#Dpg*#M#o$P^Bd(IFiA1cnjfDAY+l1lV{ z!;N86`|l=@pH)ic3)Ds@7Y1iL#~FI=5g|_|cRUlV{9!yrb-nFhDOeqbW0Obbgwi>E zJbgT_i!jC;dd7>7EKf=c$3|j(O63a#cIyD1Tt*7t)v5HzE2(mIGo=`k4LuKuo&=0l zTOSNle+^#oD8^3Bh$Vue*0`312{dP?+Z6%Msi@Dyh2X%peV`IQn5HNbPqvsfUxv<@ z?2Mg)ww|B@AnKk0B9~v{5Go4IwR%4({QWP4`t3nNY|eZ=N~V~(iDFDDL(eT@Hi*eO z9g8V!@L>_1&jptt39*J4mf)pLV8tVeF7}jkK`Qn=-fJXBE3gH zMV4)jV4{D-oo)W;onrqvLYNx@vh6`Pya@qz)GI*;>-gv}dozBO8 zlM8MNb$WDO{&f5;Fp!U0B|hoD7uH=Fno_oYZh58jn8A8EC(Fm=#Gdid;N(-xGJ*WD z-OP|maDd-dQ@|2=0dF)|H}GLw>T0gSdYv+BN&gOn=WY8ImGrbn*zwC8P)Gb%S*^AGe@_ZXmvm5jxA3 zfCSJ|+s9p<5(8A4N6`G|hBUCR2J0s7frnI0=p@e_N$&a?*wJ}nlQmQ&0fFP>f&6h- zI#haJczf>h(%Q2?Qyv**!URzsnP9}+c!?~ny6)r&tRLIspBSvweBO*Ax&Zr`fP(}R zRVB>m-nuTGgt;|!_lcCzx~W#^MOtTbnPAEm^e1&hky86#R`c9nE&;JW=g^KBIdtqN z_fr0y!Fmqg*VJDme^1``kOjf9hy=!LpERXFu+>r&O2PB%$)qxNozA5mDKGqM5O7E+ zmBH$Ygc{-G>xlaF>SDS88#u5~UdX>Tb=f2SkTpr$`?PbE{ycdIY^#}l{hMs7x{&4o zJZD35v_$p2q|3LW&RvSs^M3>f(4FG-&!MG}I89i}UlWw!%iGmzUq9|*Gxt|Xmx_hx-k}fLop{uchFM;I-_D1IpK54#> zFqVqll9NkH@$KVH6Vs$`C0$mSeUp{5s*5MH!5D~mG-LvPK)}V<92?HUuD^5|Cf%mA znkKq@R#lgRRPZ*%w-WHCf_h_}he@|Era0O4EY6*;%afi`TFJzXC)JVH>=TtT1Nxh- zAO=no{f@U@ktC9UA^oPM;9if?YN;r2f3|#^zLG+!aGG+Y@3BO4u=jc6OTzBANu=-! z+-Yi6T1AO}IiU7_@(OkO*U_Y30G{C-qBjm;{CHL3eoVr+&Hbnki^trhm% zi&D@xDi-RY>5w^pyduQ-IHM>drLaPEOKBA*-hYK6o<2eb_$FMK^G_E#p+_P5WLPZi z!(v<-BhU#IWInu=Lc)EndK=7X4MU#`9``H0ztESGS~?d{R0(D|o-3^uitq1FP%Xnx zO1tBXtdZb>KWF3nJ)w(T2`5 z#KtX=@usbCCGdeG0k!EQ>s+qhI_RzzAaUK^&^6uR5v~46lnJoQw)X z=VhWZdlP}m%BkLg^7UcRQlBsN=KU@dx0Nf%i-<}o!Bl6bO(L(#Xlm_ILR;O7mK+=-ORzjdwqHj$M} zpBpR6l!sys478!#*y*^4@7A$z=g~GESbPd@ z8N`q)G!LI#av&>tNIN&AW;c?~H+9tT>A#fH*p3-A>#R0G-w_B<(C1;QO%5z9J$q4L z@Cz&k}%7S6(!UktXk*U!b1c(dLXKoE?d zFXI2D2bAobs_c-?h5wXAf8c?a-IC0HE=;f^?rCIuRE2BbXf)4WYhxPs7%bKN)qOg$ z?n}9`pYsCu43Y`s$3hNK|K(Ipr`@50pQ@?(FN5V)k#|iP_2oQi@*bA80l3kO!6uQc zqIYfHZuENp+=IK8mkgF^;_&aYXc^vq-(Kk4)tV9Y$?jnkIW>dMJ};r8OL8>GN0!?~ zUiHB=NaRV2cWARWV{TKJ3`Zw4uBxX_bx=Tn>%jruH&|wg6TZzgcN8Ca$7U=RI-#eb z+fgwTi@eeLwut^&O|>m^j23>p)ADc_telQlg#e4?01km4SrAHYU;ER5HJG>VPZQMTg2S2d622(@iIH%+FJE-+=A3G@I4qXbO`^ABqiNRw zn$QHRHQ&yQBUxW>A9@bAZs|bd!E#tE6vZ+*^*ra#CikKmA;Jos(A%GU@|X?9A2-y} z$<@h1-n7UOXX3=RKsguOQ*=Tm5N60vjSDZ8O;=HyN&f1EdjO2qncA0#H}0e2+g+0= z`KLU>>_LgpaS%k`8bT!(I8fAC8azH|fUc~Z)! zr?I#pl8PB}Q~Mdb^95G;q6=!Go~5}B4_KXWcVIgBrTpINm`~$aeb0tKhB=n@rD7Y@ z8ZEdrcV+NUyJPmzRl?jaF1yK&W|pYW0y95aU0kGkWokdkj8ts~_Zi{>tjG4{PYpW)Ie@*3sO-WMs_Ar)r_|8jss8l9!m~(-v;wx7nM{SB-^Sx= zKnlFr*rt{XdtVpv=>k<_)JQ<8xC9I?1eq*Kl;izau$IHgVPM_c#B+%2>8oIAlAuE6 zI=o!S+CZ08iL(`Sq`gXc@j8XfooW*A6n9bhvp=7zQcm|E{}aHk=9&B~T&n0^r!(r~ z=-$%ID(5(p*qgV+)YLW#rI(|+I6V{0tpm}N?qD{DluJRf6mGplA<7h!xSY!eZ@3iU zC?ZNt7Mgf-#kZmiBf42PvT3j>)26Xlo(z3k61E?IAg(C|2{P-NFt zVD^p!h6=gE@==FA{ilqp!F?I=Jido%;-I*mj2#=nvU|L+?Ze)}K4Gum>v-V{*I(sK znW7XO7mv|SV1rtM>Tna&^*An^F)5z(V%}REi@oykBzLcTlJtUs_Z6*<(Wva6OrVLA z0|=A)F+%_SECAN=q)1v41}i*;sCdi3uM>N$%g)^oe5|!**C!=ju)fDu7qA(}G{mMPLC$C-y znaS1QZ9c)0ak7HVFAFY+y80@e5)1PX!HiriKkb+<<`W-Hf%x12+!2!reVGNwHm9N! zXm3R^dCowb-)-ckaj%}|*KS!s^tvFV4pXw_|D6-qHGvAQKTV^IqB6nbAanjvN)lPd zQV4ho{UxAE_>N%Et)Ypuv#Nq#u5r_v;*4B^2;C*>G&Z0%bVDh%^bh&MGdw`IX=J8A z|6@AG$HACnbL|%s@hG!{ceh8vqD=Eo*ty=!l?an3nX(;jX=`WcU*QLp>^OZu$s5Q4}Fi$Q_nVD zoX|GBM5V7LAa&Z7|n#twNTQB|@oqSMzH1)qA4f}C>Rn8Wng0{yGQ!u+_ zO$DdW1+_U_lpwvY`ivZRiSqYVYRFBRmpUD96{3y)2dc3Fxc`?A&j0a!rGu$d^?5CK z(hx^GF(u_)A)|}Y!NMdaSeR0JJcQ&&J7gEXf6>#s)`qJ?KRk z13+Fr4EyYG)oO_7o~=v$dPW-Ti-924KQvNHTg6BV_1NjRwU5&LB;(sAWkogjOhs^!Q(~A-lvULE# zmGgJjDO^v{`j3J zdqbIK8-k2|B_h~+cro61ytlt^CZ?zM?*tp)kU@>j%^$Vm^tnK~m#NHAmn-n|g+f>8 z-2DmOd8y^Ko3_K753qXGpUoe0L`WP#kKW;N)MNzvpmR%D1C0g0`9iif|f*`P6 z0)vJxEAT&M3jcAp7*$SM$EKJfR1Fc`uLjl%Ji~>skh)RwSlWe(<@mRuXhMJ?_?JeEbB3+r@ifo?n0+jkVy@kD3${(1-M)8Z7#KWThFn=hDITQwaxPWX?1 z->!qeavZ%?S1d#}t9{*lF^Hful{UWLC+^l-7}m5um%R-SifjmFq0A9F1kaDK8ERt; z$??zyFzK@9ci(eq`wNP13_z`2g$a!h-~gY41GJU8M`x<(F={2(>Dln3=6AV#GVZo4 z!Yac1=LVPjHlVKz(wVWM zjATP%gXt&aq*%GJ*nn* zGr08Q1jp-`txUPV z*PVLo>5~v&U$YH1Z#OLt8KL=IgrGJqBbZ`MU^51G0hT$$?Sm|XoBif2W4SFQ+y(Q$s!RMkcW%HQKfr_pKpJl_ zCK=}VdF+=&+)(l-asQ-@m6yp&dYyk4&If%LN~;Djnh>i}ErH?%j#|H*(jpoX>HU~^ z)%PbTy7>nG?iX%CR7z3v{ml9`{>pH39~KreHH;NxXp3>r5}&g3Z8~eb%fD;j#~-Sz zGQlHkO2AQn1h&D~TejtDLL?Qc&aPB`@QGk`(ziW$PHn4xuk4cdHUKX`(7)0$YPpHV zp{Gy?z2^Mz95`bT+3O!rKh-7GKQqN~iX6IhHC5jFxV}J`6cnbXfRkC0roh}sjGB>M z%m3E+CRcpnyG*v$RLKffYHPT2UB@76o6)bJ=U!L(4p#wjHvZoDX0vF}g@Wi~;FKqp z;Z|l2C`Sj}oP}&KhZ+AK?K|nyyEYwF3me}k#rK}pr5(CoL@~c2e*OwIUHx*SKRhhE zU>%f}JQ>p|iyPnU79Ct3LkEF1YI|ZQ0ibXZpSQ!$cMrxr{p+zweih-=xJ6j!(F=** ztDl$FB=65x=&vJs!;)uUV{baA(tP|K|D%$m+Zx{-75ydBxj(??uJrTrCQxCq!Y!@i zc*k5@^8Pd`m?X>ts8U$xr_b87Ef-4hDHd|lPeYEo{Y7T9mm+H=WXgV20aXez_pL?; z92HaVNst+cE02(Q0*u+dzBK9eJz0XA){mT3jc-nhoj`bwc^p=&my&x6#+}S;HogX~ zPdL6H6Z2qIZp{yxUo-LUZP{rL`y&nqI0nIw)cDX8(nnG9Nmm{5oiGczi|Y6%&94*8 z@zd6CPyk?|wk>BV7Wfc7VoF?$EOCz(WY^Wu5>|{g zJMg`5ngdq*r1lu%sdkRzUr!RRxQOC2i1KiHkv}fMX5rDOR0`Wav9z(l2X%CO?#d5kHMpvRC-JEu_auoS8{xC^`C6San}1y=Zf99uvUej!fjVnr z^uS_f#_RhO0BQ7TEYzAxrGFd6{3Ff8J9;m=J8)8rejHZm0-3Av$DW1{ZJDIC z9PL=l8&$7x!(vti?MC8!(M?gVZwC!n;;B3MjDko_#l4}F_SCLgZHQ65k_%hpd;^n1 zqQ0sitF~P&%(Jgp#3*j`pgX;5sTj!8kgj^=B%1mXTnXl@_KXTD(l>%o8Vs2_WEuqL z?hoTY0k|MCG`=k3(iSM_bywtwg7kXaL#YuyF9>+Kew4jd@%kUE>P>Ynkig5`{NT3^ zT~i;i!lxZsa68VDXSh4l5Xk^xMO+24;l2$i%%o|2`87YGt*`UhOM)6xh8kWam}rLb;7gnqSNn#h}mitTi^L(V{L|xF03t4orX4XnRup$_Ak~msEp{@WNm0 zxF8JZEQ?N5g`>_)HAk@4)xqQmKQP^iqM6MUhpheLE!U=}MXv!-gJVC-tun`1qo#O8 zKDfCuZq(-tF*xwf(6NOwrTIk}SNL^3Tb0e&`wj)VtE0*oJ~N6nJY~%G=AglL*wM?! zrTKYUy@TzU8ROPH{ezBQLlPT!(;4->z zO9|qcFu7hB=g7wF`c*SJb~0_&BYl0J_W@3@y4w5wflZrp-Qoq2*CGKD)CHyzQb z2gscGn+!b^>GKVuzW3GPNA+@Y%|=`*L@q{VT!R{Hb8kgJ>ri}DR816mDAMQQ;%9Fu z^2~W9ZhqlrqX7$s9|;UfkDe7_O(4+5E)ixRrO#K1Ze7Mr5XkUS0ik%IjvI(68l1q} zb^?=Ms!UAJ(ZZIVeQ(C|<0IUo?!8V+f8*3|ynw7ukCaCtgJz-nsL&E zloFN&*}tr!G(_5`HQa~yRPh&VDI|ny(9_2t9G*n`_O6Ad{=x$)E4!nOQQc~Mx`{iD z`OiZ@fo>(3a2ti&WKvAfp;s~YL~Zi0f4wpBj#~Rp^bjqtHi89$aF7dJk2<%G#Ap=FzCwq7wO#QDEszeF3;Cy`~JJp%%bd5uq3ae=$T z{QKdlu>&ZE<5BgXl3HQ@Eo{D}pNFXb*nr%E#;0GVxHEhSb6|fmXNV<%F@*Ovzdv)-HKUvv1nT|DJW{tfDw*M=! zEKQ!Rdk0>0|E_9G;;A0}KbpP*F3YR^|GuA_?h+75K~TUz9u*Y@5fMSUyLssDIM;N> zws&)Lu5?b_bap4s&N&qWTTu|f!WNL`|GgjozxVU{QRm^@C$9WnalVxJ^i=shaDg5V z%@Z-J6uDgb0rh){rIq{kAxdz4!UX=P?B#NNG`(s){w28-9Syg`xhAyRn)59Vy4r-;O2j$p?x4jO^>>hv`O}|TH+~0xv4=1 z*=M32K?m-HBE0gg73C8qRF@78zzeulR={tle;y$D{UU`Z^!t%7JVw;RMu-^8S&)7M za$Yu$gy(-B6#*Nh&wk;1J|@#nNbOQ|Re@DeBBC5WVx7QP(wqBH!V1}PWw-R%BpwxL zZYtMZY3!0opVtZPaJ?oN8PonSh`dR!ehQ-h(q~0N>@U@@_<(&)LtGoOQ;e0jL{E&F z_AY#Ot#fVM&8y=kf;XS-;_hDvLZ_>O&q%%#@Fkqm->9uWW=A0()PiYtwTOpEpT+T) z8Y!l^ClPtb31Sxuh@H)X#umoN_q$k7vh>-%{J*I1ISGF~gD(@SaOaCQZ7X#0 zX$$h`dmk0}HhxA0eAu?5{B-0$-gl z65$hixY@c=QRs+>F)Pzxa5g~>zpyjqCB@h|e(Gzgls2tuTg`_Sr_tbT-@I=*3YJT6 z=wcvzxy9-%a5r>Ozz->v(zSeRnk4eO40&FE&zOklm6$^=KW|e};^EwkU)vCydpOzV z$~wMvyJYxB_ps^BRCP)>KL|kV=WMhL%98bq(fbTqza*&|l-!yxB>s>_&mjpXf_~ub zmW$T!^K;YvCpuAH(+k8w{*El?xAU#22v}QKb7GE|QGk&=ln7+Vzn?r^jdHa<62kL2Tfh| zP-b&o%-;otpqrYP{g;!;(RxPurogzuRp#*Xbs0-=36&P zB9qc8dd^Pw{pJb9t`z4K^=3Nd&&iKNg(sdyRku*AlyFv<6G&d>e~=0I=Y!C648$V$Jmy1w}*$R&=O?laRb zx1@vyXO5U9W>X-~j*jT#68@w3$+xH!_Gj~UUZZD(j`qS5AONL|=anVQoUx-%ScN!) z$~og%Yz-@sZjv@F|l_!-tYb!K2vK^8S$A)5LnxOl&`X({J@HNH@@Lk!q~LV$&c(SdG* zaZ>krMb!$N*s&)WaV}}oGT!?n6v1pp zMv-6Vosc-6@-TE_ep74xcQ~HrJ)f;i+W>hvJD4#lf7i`^ns` zN9cUhkxn7vI{$=KdHr*TL;swFvYl9O`Rm#++5P&v9$d{^R#}Jcn>XV9;XJ3v@#GuZ z16l8?xz&cFTmqJQuv}?V{oP%BaA_p7y5t(PsEHMCURa7YdPs~PF^A14h+z9r#dN1G z8huXc?|N}#b_LRYn4Q;L!vGLRgYm(e`zb#7`zX5jDKC55y$FX@fAe?0l*GgqS6{!A zoO5wvTBKZlx?tojVnIs9?&ns47Zfvdpb_r63wCS0>2gghon~GT#}T5tgF5BljM<23 zYq!k>71JE)3F)0xlF$P5=Iuz2JK32vUmn*s!JPI~TWvwfYambi24ZT!M|Y+Q`j_Sa z$c&=;DpwePfk@az=Gej%nv7t4`gm!)^MNPMcosk?W6>a7E{MQbsKXr+s8 zR+SlLY{uW)9*2m0bO)KttHNR712hN;q9bt5L@WKlh50lG&is`t5T~t#lb7CECxlj} z)BCoFoLyEGpR=RE`)5ab`@)}#{Sjvnuraq#`b>Ifo8Vm*MyKsc=;iQP?s_@2SWZ#ilWd%NzzUtPh zTT2C}6u+XpLjxphdx;c|v6KbPS|PVskSp`AM=mwDBCp|oY50{3^*1xQqc>yyRPZ&_ zIc8x;NI=2Yp=CW1Gm4&!2F2J@SxH+FGPBeT=!1QqGc~A~?Sz`_vm#|YhGf7UUFeFT(oxm14d-F8>`c#CJq0&If!%4K~2La#A4vJ6yi2I7(K~?p4Weq<3#N`1HZ@EJMarY>sjMN6^Zzo9-AZL_PJBw`(7d=p_6W7B@JRD6Riyq8eD&gy zu?;Z)>v@voCzatXkhBexvuYq|GvygXXQ+JI#2VSX$H?$}5aPaS4}WdEFmkB}64sD~ zhr1R#IAp;JnwTr2N5L~P)hr!dbnaQXK-OI=lpJ^k=ARst;ky-e6C-e*r|}aYl*jhz zp=Z#uv*QgFw*%}<@pPWpquJhM;$?xqb zl6XMlzI7O}maDQZ2#V=}PyQ)ok^}f)8mL*Z*Zkow*eJGd|Uq>{|>BQThLNhlX4#eNlAhcNd5NKkp*yCe z&02T{`u#Be|0rqdLVM;LD?{!`1M^;WKz5~wbDZhv%Z;XJUpFdUHVC~bQi=u@jlRdI z$r|YU$}-XGxpJ6))f!3{f0NPplmL3-Ji8pYCZsnsiz`LyX!_9W%$Z0}l3iKBxuU~S z9Y?ZCEeiZ;eofy0MS*!mD){$ZD$NQ?%;C?|$z&%Un+37&;iP$6Z9u$V`>n z^PqXe(2Ame1n#L5ns&yFvY-(z@8;c-18Mk$*|fZolJ~;qz7}ERw<$BK_*)Ta=*c~8FSNJVy#x?z zh;@`VU5BG&bhp3{a{f}05Wh5={^_91vE}e0#W^p+Gu>BFE<00|eoO&fc#nj5Nt>jX zJS0s4E*_rutA+jyF&rOLw)h{4S@nnP;%)hP>N^`w84q9p);lG`Dw(+y|#YO3gP z2Fk`_ycm~A4l%K`2-3F_@qO7-{=!K)7NlXT?-dZQ!%Wz?kvaaiPj8cUNc6j;HetUcQ1csd*Rl2< zC8F8wgH#qcE+3##zmha3b~5$~U^bP1?&3?N_0J zFY#-a679@GTxJ*sM@LfUj*{HQ0oy|N&1q4m9&D4o;Wn$1Q48+m)9}C%Kx3@rl>896 zA*0A$33B=L^m+7q|2C-(*WyX}h^r89pp%5^1#1yY|7S!L@~mn-4FL#tlp0Z*uub}o zZ$eFWJAk_8pB-tLGUB4jKv7ye5Z7Y`9~8`J=(Sdone{elH{bj=xu|EM790Ftn=Mpk zS`7ZzK${M`RTswwR5jR8r%L&X@!O=Ixc3)klENB2`r|zwws1!I9O&^&O=1t7E9RX9 zBq({GGdzCsHt7Pv&29dCMa1A5W)_z$o`+K!L?J1VJ*B@2sMLXK_wCHi`padT)Ksvt z${p)ift;cq<{}IsT0DVO`;;SlDylYJXAfg$H`!GC8QY`-{I%AU^dTI%^V5_#=r~1j z?@xY0rTf~8NYtpAlmb&fcjC-WRhJMJHSSXpXzPzFxKA=73K06zGhs53S7+id4 za)2TH56N$?naO{9ITZ_`7vthi`@m<>D9hXAhLJYNTRUG(Cg6D$c>49G0QmByN*@OAIe#>-sWFrv5jZ zvHuub4BKY<)A?*V`1DpE^W0G9<h^=8py}XKOzD zc)JILhf^qUl3nHcMC>dUtL7Of`)w-Vda#9n<_DzS8 zgkCGmm%N-7NQ_|V9|o}FU5DPRiujQam@^GY zewWG;>=jj&XQo?H<@lB6hLnXeG^wEhycw5ho-`i~rc> z<+Moh;+q(<(L?^mMUp9j-bHUhT<6H~f#G5|un9Yp>BK89r!RzQXQQ)sJZXeZ$kM@P>_oTap>97te82d`Zd6>1)CHe00{%xrh%o zQ|k8V7zsJQ`V>P4xmtP)DFGxrwN%5)i4y|n2FF~&fSVD)DH0?U$osS53YF;CgwQ9X{Tz8g(O=r)lmxT0VcAzf zX}VlS))haD#NNNcjcS1Q?_m8dQ{in$y_~)h>NT@NvjWlEnPav4MQiO2dWOHKW{)B> z3%Wp86UU)#_*5?^K{61hh%mka^`$7&%l(C7BV}5!hKdav^8+Oa$nzbwNk6!IIV}|& zn^JwQ+B0Ton#eBtVa|7qt+|djCuZm6KYE1HOZc?Yyuck2%X?K!%o)}+E0i5LijgCc zuc%wW?A)SDc0w{3C?~Qt(Oyo|IrXOj)LIouylrXHK6rkjkAR%G(5I&;!h3l%Jyi)N z??f-B6v^PG6gm-w^5;i+wEQjhZizU;aZrd|P^LNVe|IR1m<%r`b8PhQMEj&6+h8Gy+; z_=hTub+nm~DCs#8MOy>F@4si$?GSvu4|P3pFmd`QrJ)%J&zmT+`ti7952qNaPx-PE zI`8X6oFc@*XzZwtia+hqqO6@2w0wXpFa5gOL6h&Dt4{M00%%hM%^ZBAFVCk%WtD~M zPAv-G8%28t$n=*rs~yz%K3^5`$qA-qy=18WX2fS*+)0M!M{Fo+M+~hHXjJmws~rY8 zQ!gu)keQ*}_@b^4NBRQakw%bP(XgvcV;a-rlNydB4DHWYD4xabTE;zB;p`0Hvk}|K)LM&H{ zDt}kUoM4a>_p)dJ+GcDwuu5?D$F|iDOS$oNHHpKFVEA33B(auJ%y>cC8ad2}b@5n|?-Vx-Rahb3{!%$E|kg;6@~wlPM}Y zn+?cUT@@ET2Hu$x!sZ8b;QAw`Fq6WzD6V#>;78rAMm;_5T_{Q4apv>h7c2)RP>W*9 zH;5@XP*SPJYV^GATpUNHxa;!|h_<_8B)+&$qnsRE;3n>d*?ct-32asNbwbNH3duF1 zLiOH?A~CWkr;uJMK0c9rTW(P0Fs;=5Nj+8eihO1ZxinP3r=Bs5#;1o8Qv<*M4G80$ zEk*twOTQ_SriEUW{WkvKcuIYRbJRRsP_h80A|et^)kV}57EOB(;Wm}XSJR}*{+(bV zorU1MDJex5Q-58|=Nboug_4zMxB^zQPmK%?Syb77#lJK_jH?6p(hr;tQbwF}EzVdE z|NZt&q?$TGkN8!gpQ`17+SJ?F`=qOIqQDhm-Wu95Q~mVZ!uya*;h(6yA*9N_mwOsy z&SFvj{+Gbe_yVqqsJR5DHndxSOO?oWD>0v%s4DyQ`~kFud8dh=eFRr_2j;}y|Lf0z z?nowxP@3Qz3NEg)U&txpYqQ@2Ec&~QzQrgJrxh(16-e=W`1-A-V=I5!HF@-)EpzPl=bMWgw$iJa!BH>OQ#-89<3&9d`V^zbu#K-V@}_6W1X0v z>mEj1KaqA!ND|N^4f?KS@@N%7`z5*cFEk)W9@*v{pkoD$Je5q_dPqGc0VDm?Nq9SX z^b)~Tt2Dv{d);P(ULW8xxjt&cE{;Rj&5^ION?TPtrIwco{@p0~;&&*BSe3QdE57Zc z6&dN#)ZR*U;^s+c@i6g}e8#Yp4kY^i=UW-E&=PVUIRD{;jQJm`We2=rkdbHU$xx z;gt_in)?;(EEFchwZzn}*#>s`k}v~G+I0l%=Nw8OgAn140bf?b|tJz z13OjWRYTQW6*$6U6#OgTtLw5isHxvm#TE}R9WR#1dW(m#mRJM31;T{J)OfLXlcGXJ z4Kh;X`u!@H#1pr981m1dt~R+c%fRkC$>=G?bQQka#N?t1ib5EhV3)`T-$RoFwKgDIb^d5vc;*c5Ps>IX+vWC-vdBq#b}2AmWM(hcVVEi(ofzGUh&`vR1kNnoSKi@OuQi zIuY4Nrz&d>f-}UZx)>F*A4P1-PULL55&PJ7&4w55=cfUbA_{ zIZ0g+-Wf|1ddbc6Nw^qpqrcQ>%(_5xU6E{apZgpMq*uAd8-fSSLTfr}anf-EL#{;TEeh|9cEuh<>-?8-Lp8Y+3Y(=q&Zh;Y`!f1oqNSYZb}yP!DoL z%E3==H2cJWuUs;GIgJ7o_iB*(5^a)f)TAHWcUr#}6upKa2xi5)46}V7y_+I`ZS4;w zW_tU7jx6)rQugCC7O3R6(^^4z7&r=h*P+f(ZR*^UCXaK82(-~dS)?LvneU-Q@5G(f znv$zg&PWzXpw*wq=+>}l@*N?TGE(K30Z9N!4jZKT`m&wY9fHyvU8V?d>VtV++}XEt zu^rsIGSjZ#Fo^{(jAbhom}b$=EUP8l+~mT_jeo+JoS$4G&)u@bZQ}HUwQ5pSu$W6H z5)!_+kY%MRd_W%tm8H5Q98ec;(OC2mPQIK+Lv8bDAWnz+W~oCiWm(m59y4L2wBcvR z=434S3->+*R*FZio+{;!#+>Um)|OrE%(8kWxzjL(ESjmf{i2<`Bbz8~I_sol(n%32 zKxkC$Y)Mr|1nZl1U00#0`*J@x7}+rgArUe}5L2^#5sV(I@HKq(*+fhR`+xGDb8|ZZE;5)lmpkrK#Z_^x@+aQafsE zp(qUgtwnlp`LJ(y#rOf$!l&6e0&yyd2#81_ee-D%HEQhB2( z!T>bXJ4TKgRjbv=)I)~T18rN2etEtPuo~+5OBHVgYH(r=cwe&;dRGD$iiWOB(S}U6 zwdmk)i)BZdXH(}vE4oH{4)r2sbJ{hk+nc7+maLSx2SNVGtIo+N1c_dEA z?w%uj7)7okrIIAs>SShZYr*s4SIT}aCzT)m|JR!#xkpby7jzYlB_Qi~CZ32GjZ@;( z#IX~rAO*aSq~APHK8d+w-w9< z{^o8x-m+AYgnf$g_wA73Lfi{w`nPp@*+7~K4bD=4RjFV;D8zMBZKfFn8n-mhSOU(%=QBGP&W+D>V&o>e86OFPuc=v`AJ-j<9Y1IL-< zI!VF&N6x8v%9ue|P^st)A>ouHB1Zl7YpekOvpgF)rwaP+FBb*#DM0pkek{!)zgy)r z$zY1Jh-%)zDh^>G*^siXdgS+Xnu56(uOKKXif;LX!ZeV3w%k&^g>M|TDv4Btt?MnN zEG0h$^TpinwCLw2+k%bVuaVp=QtrJfR$D_|R0 zj`fjiu1Ao`b3j9|9ZaCf4qZ+r!|)c;>qD(Sz!W?73Y@$PgsfP_P2~Y1hdSUBX5Mrsua%#@b#nchn#Fv+;Olg=1xW zoHm|h)MfU3c-GmeCr60Se{!7LERWgds5?_OQ@0Z1o3lX~#aQxq{QBW0#a-CE#^eir zHcn{c-^ex(K=1vp@J~}A>;3@Oc@~g4tgL>;s+un@tT7qlp0!5?b;FPwI)_I89CA~@ zn~xlANX3XI_0_@(g6^xmx5gw@m~ya49>>xAYq%qd2FZQBYi$Mg-~0YKC_SPw*5; z>>nw#iz5}-$tXU-oPDJG*29$M`S{T{N~CFBP&0f9H+^J!)GBDIId0YB>n3t*4Ye() zvHg_%(=*h0Jv6bg`Z3zLN-%s;O;>P+QA)K%m;S*>b;A zTkx6TpZ5@qwxyel2Gya6L@)9M*$cZ3DebFL`kkk7zpRNi?&mol1>%?zl#4bE^(o42 zu$`+ZW6a;-*<#M&VS!Y7_eL8_I0MV{xb)CW+Kn7ntKjMKiqyYiDW2P-Kmw9_?7nlR z4Rz7R?<5v8;7SE&&>6>B`KIWJF3(SXM6>h{WTahP3XPyh#sw#$je8~BTn!}umC>OI zela>vM#@p6C9qy?kJwY-&k?loP3Vb!sF8eEKeB*M#JN^T?5wNJ?HL7=~Uo!IiYo;@0r zgiP0;?O_cyxfqp6-u{(Q`iBhM;hIT*-@}~Xh@YoYlHT}&D6K1C{|)Y`AKP4v-U|+v zDNzygGT9XcX4ny*2;c`j>q@}(E4)|;@)=egt@Zz--NmR~qB+lu`J?2n`3ZC3x&S*# z8T%3f!n#f-dj)j!yZ_kS%nvR`Q0O57`LSShGKfa3jF;QA+t*VZcaW!y-8uA=8BM?G z;bPPw5-gYIFAKGCXJMi&h1g(Q+H0Ak!B|6xhWHieF&I17#mGi384x_r{5P{SXKtuZ zI1uF$u`h90Fbiw&WNfZIt5ouHFVLH;0F!#LPQ5BMYJRZ_lnYHfk2vl!D{50Fo%{8l9qR(i_s{_9c~tm(3AS- zy3?W$7zwNT$k#v(f?bdz476f^=IF~@jP46hcHxMC;5H4iDa$nQ^=puy4$SrC^9f8F z@tU>jY-~e_q2Y5$=ixDw3#L#*P5MPq+8hCHqeRo5HjTr}rO1OuY@sH~&~UggLUlG! zQLODfjk)|1e=tEdS_ipyPnA*%ZdQw@(fZvT2EB59gwB`AN9$u~nxm_uSVedRze?Q5 zJ-DCrt`Cta^X@Rn;ETk()&&jv-NKiHWRQiC zYub`ML2Z`u7_>6g9_xYZ0Np<3EOo7Z+^tv2kGfJyr{+SJ1tY&sq-0~P`5PS8-11n> zr$7;0Np}A5GTm&>u^!>PXHbGcwY1y^aT$HYCjKoZtu-<9Qys7Z3(71wu}oLsJCq4s zQ%Y%%Lqw*b`Up98A-*fd?N^}mzhty&b3&Z!`DMDjoQkhH#f8Pwk#SxbLplH)9Pss% z6xw%Eg`yFM{bd5VKE1R|_Y2;z9lFs6RS!LQ=@t7FvGlL^V832vX(sr=2g50;_TDnx zA2>;CUUbfL#`c#-*Z!@A+Z@Z-%1hM|Z^N_MUn@obxSZKFEz_;yN8pr?%t8-LZyB8t zrQ#5H|E+!2tEyP~_Z9@j^=Mcu%XAlT@0Y~UIY@yRypDCr7b9UW?35JMJn+aYIC2n~ zndj4hgDumo;N5;>B^x5Z#U2?{pMsIFK{j!vcv&E~XqXDD>qcaLd|0My!try{+2I1n z$uZ>Gbp|6vO2(ay`Vg1V0))Kb-uTh_vK*Z+xX~x_63;?<$4{c5Lm*zU-VpT@zyLD~ z_V2@$X~oAc{nBl=4BkDq~|sPWq3isTlDxY;1(OX@QN1LJRfH`Q{q7%?E{jx zsCU-Cj3`b{l-P4Dmxh1-y7KXi9F>0P=}8p%`nSK+gWHuQdZFlk*@vRzLIY#{e zd5~r_*?p-mDef|a^d7CHBwRO(2<)!ZVfQo=lNKIA`V4pq(UzJm-Aq$B$pSSu>oDJ| zqqPPksGd^|-V{O){*V&%roI>r9C)ilU6w`RT$U1XZVJF{Mr#d8PQLVw<5nw?iN3d( zZ=oepNXuSyY=^5I78^!GK@xa9qqP)-d$&>}C0}WhjT*Ai`rz8*w4b1H@uqy&bKk%Drkx4N_iUL*tqQa{t!@O8_JPI{+J$BNHr4MxY4=@skA;wjz#14U(s z7ej}#hu6ZWC00qZQW7Ph-0L`b!Ipp)3%!R<309aS|~psXD{V(2R9 zQS|s0twv@is-5c&Vov;Y@7`AR0h{s0r|aH`M)~t8wRCch-*RCdNoobh$ z?5$0TOqcGMWyCyG#=*jNfM=@Jveu5W{#Qurcv97utyAR%zEGbA3sh;)O_`qk94ODG zSnvqGTw_Uq3Lx{ozm(|pZ%jqtEq$zT*oxE?IFj^+<1m#lCnSy{%%6TZ%G%dyhWUDo z6!hAwy!+PzJG}rd=msTCf$kXXOkH;5(}&WCfnb4t+Qn2Pf@vp(y+{0oJ0PLuL!fvV zY}b^WNMcEI`|$w|e6*pCsZ{cF&Zg70XwdkfM7AGyB4Vo7qVs^nXXYne1E&ncf{&Pr zjiB-g@2z^KhYv~wp=l*Xp1?Xm!CDGl2qmG?y>dLwea}>e$@4A(f&)XXr?KfuBUH?2 z2PF4n3PAr^+T@!_DaK^ec{5h|3vQM>{>wH*68*A^kj*RSj!mE~gPnNr#E7c?+nbm2 zT}v!n7?YvAr&=^}FjaIn1dz*Cyw#D&oOL#4FjDUI6G&?S5+`5j$5bgL0F z?PM8WnPB8~bY?pxMk~v!Zo-Zn=T?mK>=KOmcMGPVnADF{z6&IkK6O=jWg^Z)w75n* zGPjv`EGM!dq)W)=o6nIv!>L1GbJ)EY%&CTx$H>bTCHWU%6@|G_bxl;4Fq->dKaY&k z@fHOF!01%LmB<+>D zC{NQRZi6N|?C<3VInNGHYm)_d4RNt1cA+K_rJ|v_A;i-Z5S9jw2r@@@%3l5xXYL%! z`ZgLf?w~&VwT~IHc`&Z5X0m6}@>xQyAye|xgul5L%<=eMV(7p^L_GJvcF|rE(!WZBOiozPw*&BG#vtdp51MRzj;~OrL6R_K`s=^F zd_Q;fnk-P107L&M(l_{VB>NM0S%sdN&X4EtV}oOmKyrI8&r1duYC+N}(!|FRQJY|k zi8z=_55hCU$p?>sQVf{s)Pucz7q?GBTCEH4&VVh=04th{Sh~@gAo@{-3>9)=1$o8B ze%FGp3yTLxHyPQR9nZ*j#V!Dc7BE@{sA8x}6Wl$Fh7W~h><<2cd&qyd=Sr)OgV6+i z1rZAn>2rli{)qGOG2~K%N;q?Jh>rXL{g4!oIMAe@UFgqV(p`={i}*aO;1POsytnnXQAW>Z&McW|aCUq+ooK_zH#Gi`=MOLW%`Zw0#4z0#4!i_U+=FA5p!mpo0O{5S>97`3YW{ zI;Pe_@D?{a>1ZmnjQ=1BdhhTSwktTxHHj`Bz(|b1i=y-5$mE>=Ad~d`7(>Uwi*DXYvXoQx(!d&?C-`laO2f#_{{Rh7n z@OE*TzCE}WuSlL2^=3Py*0>sY)d_SQdk^a_FWS@KKiJ7PO|)mZJ_YQ6vtN$J;+dZ# z%XKX2odJsyBX^sXnC{0m|G{D0kPgkApB6*EJ|znd899KqMgM5ZlzMV+Mm58}3jwhW zA&vvzN-n;v%z9t|{eA&fKJ=wLllchrM>LiH1`7YwsjgWQn{=pwq(C*+DSJnuM*Ii?Ilv^i%pgl{q~H?*?Grf?meu*5cfwkZbY9~$ zUaK2wpi|Q*IV}y)TzFLmx%1GIODEQC(Z&tkwcLb*MF}Tn!$R>&mdEr&yKWWM+~f%> z9p8#or1WvyH*{<8m))fh2l=$#H#2llGF+~?7Ayks?Z*Sbz*x4Zl5_9g4d~CH_o|An zPJ-pHR#|uhry{?j@33ySikMNb>(9DUdclbe-HSMzgUA@f*GFo^(-UYxu}W*Fbs6>d zF}ekrKWT3==yO9i<0oFOr43Oyw~5KLU^uGpUjU=ST3g)VYd%s_ZeGK&sd}uvwFC2CgWBavONtOy8HPj$+k%D(q-mZ_Ux3+EQU@b zY^hllQ~t$_C7n%SzaP#Iv}@YXt-$-uP7N7`kbxus+7mee@b<5SBt8(h|FRg|>9D(mh3#@tVUo z!YMYw$bQlZ?xf)&CcLDDMh35**=Zr%5y&mC4r+bZbXtOc5$9|VnImdgUZF+NQti09 zr}_GsoeILE`_YNq_o`&3GnW=2o=f2Ur?4`9ct#HMQvzwgUjd%f%+4OkUPRNQwLm;7kM`b*6T7W~YwuroPZqVTmQFoHn9wx{$R7%Hu|`OMBxp*hME z9e@(kKWb`eA^)@X|FYs$c0|&tOpM%~1@6F{avMy4qJcD}x`wm@>;gsWV)c)pEh#1b zj!!s%r&?l7JCY?zis+Xsz*O)Z@4E^jL~eUaLBSmqi-$2udc2svO*ZZLPVkP%paGoY z&M>4^eUFi#)l>Mpk#i*7dj)*p{>*X9f_gtp`&_duP?lPACTU4@70_&pE|&r!AJSIP zf8&vxa;d7;x}f*NC~oaT@~$}v?CXA6<$|>+#%aQBc97pdljFqRA*Y(oZcVjC8}GhX z6RypiNPU_5G&D|&UaXCV=)y>>!m=qXhzG>0F+_n+FWr65c(WGtL-L0was+t+=dn(l z9}Ipnb1jTF*M_bS$%X}Z_x&Pn#DCe**CAD4M5G_ViHI8Zf4?9v#<`MqZ3VLJ1&BH1 z;JbI6l9IB@xTNtZT1gJ+0bH;Ox)pgYR3hiGgX0C1iVyR98i{W<6F~ z(gic{UXM1NjQQ!UEiXotM(Wc_e3OqzAjL0l{ zGlG{_%Kry9bBg${io8fmhV}5G6-||fqrYOKVK(vkMQ^roMIEK{E`oB~?!(jXQBj+d zg}XitNQmco!!y%7yYA_aS+sH7tHs=!mlP5?o+|s0ul3&^d|3%T!X~V>B8Cp^M12pW zaNSys_OB(sHc-3Z5 zSWJTvDv09PwU%9(Q!%xvHe&QAwOKIBVQscOgi+r%I3fc@wAo>W;MvPDXCkd)&kdl^dr$VFK8=v)Y z&mN=(ep;wUPY#>YVPxZon(O|3dzzp{69)h{^}1-o@?Z2cShzSln~HJ5T&h%dcCZZF z0nPtTIpcSv(%2eCe{&RGw>G)0pMR0zgpXLz2{VsbkAA^b;*^k5sL`)cmK2P1S$LMp zi#8^=EfQWYjiy7hV84xuqxvAM^CJ*ly$X6bDX-wfQ3$kSDX>42+iE25ze*7GElrx6 zNLPI^5;}83dlhLze$;_d?3!a>ejFp`Q)}YaNyBWepU^w zL=TluC&5H_FtP-A;t^vixlKh4LkW$GSTAN6hPl?$nWuVXGHbu#RuQCmk!HWz~r7q;1$Z^HhsD}8M z0}u<5CXUoTwk5Y!3XWT9idUp#4ktb72XKk#^@u3(5v!u?cesV=F35sd-Tyd8WNWT6 zvO2mOrB=#@YQsf@eC=!WXayqo`oKe(ltw7)l2gb}YS6edvvZI914Q?@c<*&hwY=@U z8rp}EGiD{y;eRnw1+u*h)>>s8ZP|t#r2EOZ_qwLVTsOKMZ3+g03mdE<1S4^VTgQ}< zj%GQDuL;cEl?05XuBnoravsrWocP>1IRt$tx6&7aH?^wc=+*>EG1^j&8~{~7s=xBO zrcK=aUjvvwD!TuYm9g!{FvbuWIouvK|CL_?yZ9?(9+xUBP0rOdRq*bxPX3HX{%m-e zX#LA8EPCHKC1_T}(KDQ$JVr`zO3?S6ezMXHKf@+J znL~RT>YA!}+vC~s*C0*jg=6pdU6f1P>&wU%wD8B@pd2m%cNE+>O+c`&z!;P;vOkpW zAU-2fa((pYifM&*C1aaEMx~jr4{lTvUff9v>syK}NEJ`|1y-7fK)yLvOh4Zt_W*Pt z?VYIt%qqB1QFwkU$ERvUsHrZI6nMH*}{-w2jfaHB-n^*m}? z@7G$$UJWlmhMR?$yVbHHgj$EiMEAz2(cp9iU;@F7>O#+xgust~S&`u=C$Xx1ir8&K zv8jgY?bAcv*O*aPv;j0%a3jy%eHxI(BVkEn6;Pv(u={61cGlX8S@-Gzh?1Eb=XpiF z2yTp#TUM2UHKBbDnI)2GcmN4^{iQihYZT2`RfQa`lNG>JU)@y_u4H*qU!E3fZ0+gB zuORw+IQjDwqWXlqIKT;yT9aYVzq&gpxsy4WhAI_ls6>MrKxJaa^@6>W{?xE2kN-`X zRCQ$R>7`e96@+UEQ=rlfXfQ&9?tpT|dhNBFD7Ix(X2sw-4R|hYux(!5?GaSl{Ygki zd%Za-Wc30gA7Rc8*d>}Y+~8YK&$WbdyQWun+xZu1QmUB_uV-RZ$^PyXc{bX&4mH%V z*OWf2v!?-MBz|mrbr&$hbb)%}Rq6bjnMpTq;xO-GPVji^-=k^v3K^|6t(Fj>gMQR4N77Q%jxM-^mJbp{!^*cuABt zV!>R~wlv(k$BlaKK?}r!7Y?U4lRB?qPIcJK_)m|Y&zfL@SkGw9bl?mgHR+qigFA=p>{6cM9dp;Rp@+L@ z>B1Bub=b2Hv)Ptgk!a4$*s5q2t9LMrwc>e>hX*3y$5}R@Dc?~D4}G`>FKLFDuO?FR zxng*v@8;6D%^~z}Z&Bp+R?CKLu6bW>=GhsHVZCh4TC5XQ49gG&-aZFiEs-AI)vjS= zzP|Blzp#U6>P7gM*B4nHx>#s=BP^@PMX~N3g?W}OPDz8uM}!^R-FS7qV7{HPYK&~e zbPER=lUX6Ay#X~3o;ceH)S(8Q@kj$M zKjhNadXTVZ{XL#oKtUWRVz*EKb47tyQfBIw*in`(oAg)}ZX<5g_Mj_!rpVNd@QFEd zlcIuGmtWo}5*MdG($F@Aib(@qmC$KV{wgs%0)Et`+~8@wRCI86`Q_h)%d2rO*wOkW z@OozCCx}+iRnXAg&iN5n&O5seeiGD8_m^M3EIh1F%@#9f9y!EPngPw^ak(n}`ShY; z%%lz=y&o@YPu|l|etAH0Y2su`3I=i@;8FXRP_HlXiEdIEc|0fP`H%Q>FDb>`Ex#-g z%={BdJHS8iN)>in1j1p(p9e`{s6mYqjwOf`sAktxe%VgqV-;5P0NpPh(MUR~iZ#Q$ zIfJ#|o9`y~)IJ!JyX;LmT6^|B!LuqJ;H));)NDqzK|`Rrc?i1nSJ3rVuxu7A@KUxiO-`5jP_YakknIh$0+3xI+%}>S=y@VXH zHm90H7$wFHf4vR61V?)v67onxY0;`Z&JN#jQ*qLFJ0S_CRu%MEVdOj5VB;W^FS>%2V04<2Yrj%FguWvO1 zjyyK6xc7B2dA3jy$E_SQn}7EpGsgwQ#=VTCvBQWeKue%WY8p(T+##xL>!$p4rIlkA z^8xeoR$n>h3vR+|n1>els1`CLF)9%< z9xtp>a9v^YOHkc#X$m>(uN?Cu@0iM}-{6ElJ*#B;*pbn5Tod%soTrqsA9ptqe;=|~ zIp!2^6IN5`;0*bxO<_;Kc|}<3at<J9_LHE&>V_tI~rj}D2r1#?yG@fgL zQtk#y+)v|_gps7a4PT#DSt{E(WVc=NpH(i+z#JF%Q|15qv7-x+Jm41Z$N97+0Pu(; zi==0U?CuDfo>gggft23)G>`oWy%C36;IU^5*qP4i9CIa>ZY*K5Wmksmrb|%q9@?cw zB}2*-Qg08RrVb>EQ`6~6A^q`SPlE`m?-;TRy#6~!8fPC!mv|bZIesSDY{%J- zhBU9EFokC{>FsHXTJ>kT?I`|{S`eu=Mv$F;c7wA<{e>2^7pG4A0MO`mpp){n^PCK0EUHsHo7z7_EeYyiEx&={^ z2kEx;l0%Ou;r;KxDs2+P?h^8TEDw7M$x@(b`vDxqkU!P8rrX8|o&hDa8oa6Y1XlUi z7>Rj~f%o>Am;n>fFRJQLhcB;8 zN%j5dw(B|FGihwt0raP^Wo*4NWBI6FFp)6!>5ue^2|Xx3d|A#`s;1i(2sUO^w(}^y z(oB`G{K&%{6bR`pc0}F`dcWT~+AQ5L-S)h2N}meCpo5OSroyxLu}W3TO#?9=Ru*dUSBMX2snT{m-wn^y*$AA z8t70q+82^icpl!UO1GUaSb7#yKTcThZ87a>!JAs(+yfI)P5La8UKqm|{-c;yW~SR7 zl$aug^&|GIJsw#T;=S8oZJ_;P+uUwbDzMZ9+Lqi((q+f&13a=pIf>%>VorUmbW}Q``lrQ}3dziPJCJ zWJ;_JsTR4J)G*a$&KR8bgej19!=VXY7eJ$hP<8^bvIF zd>D4~9L)KstQ6e|$>x926_@8yaGaNVB^dD@l5e;;##U-$B*8TPgPVn;ZbGz<~{EzVxHB^;Z7fbynUDduG~w zR;mQ4lhn)D-gk`Yk7xNF=B!q4G^<)U+}YZSpQJHG%hkP>Mz=>n#K2+@kcnD?`!_C_ z`Btft9QRRLx~;RdHt(Z8f7nFlU>Z}GAaXF${}Bb&C#Sgs^Gr*j85{e^-r3pNdOsKb zZza7Nk9*do?Ao_%ra0$i+<;f-T-^!a7G30cuS{~buH!f8Q`!{Fqissb?;)FI_2^Ry z`9ADY3BAQl74-Ji9 zY4wDQXpgikuB&0!6_~Sex2c}kOZI{>o9C)BLo?2Xv8T_N`^tGMtpYi_kr`~iE@QJ> zS>d1EFgS5PjrjYxWnRn;9npKQvivI>hAd)*$9IZFT|`!=D@zY!HzLBbRtmc8Eub#Q z5CnCK`3pl9)sp^E$k(_4F1|(;TZX_l$MH)Md;SD{3{KH&D=M$QIb;#QtMgRQ4?gO$ zM^{juD$}76-W-5T{x6B1;YqowMB-NiBDvb3eF|?k$6HViZHQCm7xtaBs}ngmx4|+CvssILj7m%eaf+ zn@Ly`XCR0uR_9XEW?L?F=5V=q9TqLq&Qo1m+)Sl=PyY)_mBvTn%Y8E4aLt5OYFr?WDY zw1@QMb0S16uNe^|8t)|(wsOpng}S^FM8uRDjkA$~iuw-7rTZNDXlv+cqKyRIKwfeB zhIbUsJ@}-0N_DD$Ziw z5{1D|8u!eF-oA^a!Jq=VHJ$RH4b5kAdg@H370fCOd6sYxHiOtjZ6O@6euEfh^a?d? zlUOqJk-0thN|D?Q8KBfp6tt}y6%>%Pb?+$VKwkm5g8SY~rnq!3jFj}>pwJHVPdbI~Ys({~TIdOlBC3we+n{O-t$(FWK0Vu^`|RY(WPi1N6?`*r z!fi^`nxL%d*BV3;YN1)hvqJc>@dSjtskTQpZxbb*eu25pr6M==Jb&>t#AlbM>CTH@ z+rvJ}^IfO5FXLjvDD%cIn5%1HuKXLEQZYmH0OJKuMSsY{rtc{hZ;Ho^JOYa7?gZe- zE;H*rv?ubV0$ut!l(8R|W1`?t7oWW`>1#n`wBQ~vcbsOf?KLB-HMmU$6X z0_NJ|1nC!kc5e$f(MNhI;JOZ|O#H5N#tx21#n*Yv<|U*9aTaIe8|u#l13^}N2SKkE>4&$WU~wYNJnqXW4-<89k_G|C}Z*>pUv}S ztXYlEUijJd3!S=Tn~c?dq(`>Dh+%Eu$IV3)-gIZD%BUZAY2C=$%a8imosxV#o1sGw z8jjPCHv$#IAbC*G)EtF?$7>jGomksbr8f5@TuV4hg-ugCV;2h!MepXw7M{hjxDi$E zefZ!u{cIC|snq6zq-{K2)Gn$Ti(Os%q{w%Hkeun?Xhq%ONrYV)>a3+CDn z?r745g#kQ{2gltIU(e5^7Z<@HPe>&#FSU7Bn0l7RDjX2A@L;=!Ob{38W9;wOAx_Rr z)oX)XeK(dZttzz{l8jA3aL{I1lTy)$6JOIFv>tg2cm0d){)Q8<^Yi1RuS#vsOAH61 zaU=_xEeX|C3t%Q*@{S<3*^0~)a*y@iFTrLDfqn4E}uAH$8?79DE>6bRrjA_Lmc*J z+4EAfWZo6GXZF^EBXaWT7ihn|;Eo}1+gjX0bkQ8KrWGY=;5xIfIH?Wj3cB<{W0~L= zfgUQwD!u&5Gtm_BrKyh$bIVFKCToT9sT6rVY{f@+SV89q#)&b1;)B!^j^zh6GgdW* zxXmez$y>s}613+5J^qZ5=6CcCjuWHVGeBY2cYv02k=1-jV-mm{Jfy5EfbDP>D$>BV z6=N*lVZ3Ad>nRu(OUtzJ~RTz`SRsJX0I9nKV*h^wPt3FWi6%bp@E&LESJ6ZZr?j%sy z5_$xFobf@fI+!5^2^!zMn7+A=CzpX&(TC3a&IS5d&(XJx;FTvE@8aW{;=NuX@*0J6 zu!2TMV3mwnFGh42KkOKbnY_G{$v#sXGQrvs>jf+5)=QEhCm(7M%nXEBZmBH!O^WyL z6&6X)stwC{36NkBhu-|M=tn>7I6)svdLdV!xmOIbg&X!M_s>cYxjml#iJ6JM_TQX=DUR~uXK260 zBSTfutTs#(7Ph6xu?0<9J#xk8-FOnHa0rNI+b*N?pyr|*%Iwlewc#@%^BF0tf6k}o zJIl%btkW8i>sCRpp9X}yicM* zz-J+4AX;efJwI+zD4wvVp~sZ<*a1)a!{-8?_Ev48F7Q6rAqUd>87$=l&s6HQ0#{s3 zqi2v>IuA!O0x;S`d-TQ;x9QFleHjBw;W;vh{8pz?UtKUg{tCGVXm7t0aL$z8bkkl> zjiY{~*O(w^%MGel7V^)6yLNsv2o3{ZW-gr$r_%AfNS2+EO3~C<3 zdIAB(6NJ+lL?JNNgTUFqQ@3hLDLbvv{fO_bN}wjtxwF1RRS&Ht>bo<+qVEmDf(p9G z@{+#L=vs4v7Ol{jfbN$l>U}kivr+i2R!08Gn5sVfS;b& zbpf7Uc3~;Q&?&0|nG$lO6~t8xQ}&D`m^U3H8$FGccfvTqDNRA?)C8@4>->ta%1`_R zZ{Cu#))G;RTSG-g`JP2$F2|%%KE3XglaBK)YHUDV&BJ~|H0RVx`%b7a_t(f1fMhH< z3Hx>eo>gTU`RzmWc!DxvE8;#=8wpcgyocgcy|`Z-o~SosP4fqVO%IFN&<1!FgG^C* z&QJJVn6k(xS8%Ungc9z6$IUvh^5Eo96WUw86ng33=~Q;xPf&3-j!fABscq{j5^E4q z2)-reT`e@or->|3po5a6wSGb%KVr{z8^F>to?OqS>#1U=sX`0Ut-yWhqe|>RJ&R?C zdkY`&ZqMe<5v}p#%OT?;U3Mck_2~azW0kZa1DfrALIM}RC}CNzCHUKu6chL>;?j}( z81FzH-Refn;b)CX$~TsML^@*rMwsJq1<W4+jDf3@GE|uNWsrBD=wHi4t!(M@OH7H0Y_O4)0<;kNpP! zXb`&%jo^-1q>z?#+%3U)oHpv{lk$~SBsHT~(J%hU310a~Q3;39G(E~8X_aisR5CP& zwk{9OrP~&p$n-Ft1cvPY8JZx7GS~b9c{d@?ie}l=O<}5%l{CX^ICnNZa>4?19{}B9 z!5FzK*oiYZ-5S zB%uPu{^XxVp2KO>Y=$SX+V4Drei}?GkeX7;d3)Rsyhk>r7Hq~T>KZhu90KUs7DQ8l|aKszd=wr2{>JPVEHPWxmR_|c7=^ZDKM19-=37Uebt{n7h(XP{;35hb1kI=-0$UgAg7 zdA;FcszsY~f=RUky@{69=V*IT4@#qXp?5pn$6C&h&g7ni(Y7^-&_`TePV;wY6MX*x zIM`B)oX?4*D+qQB#qadkoH=cZm(L#DI&*M{F_rsg`cTP0wx(_M^|Cv-!@i920ozcOQ zn9*{eE@;2|R@|EB&`o`I8Ayh&7_<`RbySwD#7nyR~VVQ($3yx0n}>j zOO@v;2FnC}-*j^P3_OYZJpTeo3yuUTfCA&@l;3CwT|5P^=XS-Q88^ExOEEdJn+<90 zi@QFG+afn3j`~gk>lc`dktGXkU6HyTcP0*QnMPWQr^M&r3=1tAc5u}7;5Np?g!FeI6#XZjj7AMvS) zxgrZkuxRrGyoQyL(nJZLWA0`%i-^Bh(HSVTnNx~;3$)5L+`cqMiX=SckpQmijHY3G zIhoZ{7T;LWIbRYqOrhJgi|El5s`lC;XMG&j#USPTKx0{AGUYE zr*=~1*HoZJ9M<%Ej62qx6bFGP#@czXSfsDY`5wF7wC%4@85OkSGhmyGGc@)Y_;rY4 zt2e{v+JU=AzbR`slIRV}vo%x8=?nLLp*LKRUH2Mu?OpRNuZ%vqqRH^ zPt-!Lum%so)!>k}Y)O7t$=Vux>e5+4zoBOlL)tNa&IpDue%ohJaoIPrmPEHiZ5%u(Zwh#<0LT3Tgk8Ts znT}t=mY>a@lFAdZmc5eT`ZPKSG?<66KIhRUIQi4Zuo?QONWBm!VV?urM%MC`Fr>!{ z2jIW2wP(3^fXBs%NF1BOj=df$__zwOAjELXPRm*ZVbl4s!+>X$|aqH z(G;@?d>#@(tAHP3Y;AuhtRnLbyfo2N$f52#2r6!UjbbS8cpY%Od()8 zTtLQEz`t%%@HMiQD}vdKRDvc)u2B@#gNovb>9P@M!+~Ua@I5dfBpxw9S<3>U9A{$g zQ!v$SaF3|&z>|02l{&$z(8hgd?%+B*3IiuMxABIzHs+hRu42#KaViOxFT+l?sAUXs z1}p|v(DT>K4@mn0A$k1Z9;f_<3CgqccJvi}!*jsope4|Ro;WuEitugH7wx=se2H%0 ze)LlBPvKK*trMiUEm^w+@~*{i)Td=DA7?^$@QrsljYkCOYeDZk#obA|7$@4p7isjx z&XPCON-FQpF9L_u2XX8ri#Xy?!n7S&j8QPgS7(fTZ-(9&ku~D!-;qE>=FK z(DkIeDLx5KZa4?UfG0bGv3mvFmzK-w|HN&a1k%>xT@Fq@IGLfnw?WP2R;q-*T!n3; zQzF{5^;>wK>wD;!HZ1)B+J^)|G>B}9PcXyVw0G(aXavVhl2upKt>mI=n4*kB?d=d` zHzIB&R`3{a0#WsuY@xJ}J*-J&pl0pw0)0)1m0!Xx`Y+@Yky0hJ_STyJA??2@zuJ}( zq=%)oIf9=xrJnd2c&??O14q!iKVpFQp%K&@f|>?kFHJ_}l--ur77HE=l!~Kx(yXH( zPvmuRU#8Xt$fci2A7h+L?-!+mLu$h%)BYeHxG|T~t-bAi#0)xnPy!qsRDo5S)g^=0 zE_*U4K~DF^QSY_Xwje0-3@}LappjFYerg;yfF9dMBNp=zXDEBpE;M4**PW2lZ=$yB*ZTjQ-vSg!qbB(<^X_>pnzd_?mxlwkvW>ix13bRaA{%LYibt2(uYnO1(%3tEpLJkoNvd44mGe$-JerZaLY+`7H{Ve z5;_BMX&pVp0{XHN6OC~PI`B<<6JrhSj0G>jO(*AM)lnQOsmL!qh4%ZN6djnin0P!*y9~sahzD&;rhSPr5k*uoVUc8Hw8g(8*NdyMJXDjE3m;bY-!Ic?8tLyxY=gY+RLTK+hf zL6!o=>8wG_ssj>t4ACHdh3~4xuQ^mM(3aEF(d}tsHpLOh(zRXj6c~uTG*ChIo3zTD zYcr;>@kt7tjT)_;C=27g9`QBs>DPMJ=Hq0(hsxf$Di=-HH z$5XggEYYBnmRVe(ZTCiLvGl66YAx^P%r-2zi2W>^I9BZpIl}7`u)pgJ^5mLAypNn7 zX}Pq@i92sb>)aIJi2Jmr>JSx(F~Hv~DbGZZQp_1hw;ygkt(R6^=K}^4Xw(c6R!3X) zv#_3nxPcwB3h$teo>=Fq_6QL_tCalax-H9RHNb}f-HkQy3r68DLAQwr9CtvL>iiY_ zx}O|e4+&OV3aR65=${J|cl{g8=mzM5KVDIA)O;XEmy_hzmOPn#joW#5w@>CE%Qu~y zo|UAXY{kyO;pJIouCUKa3T@b?&$5CRf9m*zGnq0I=s3k+H%7iwC{MA8@K-eM$|5Vr!nlt^jBHP1k6)K#*I9Az=*n>MtT9`OJ4~_5 zqNSrZgP{hOQ)}w>!L3HNLBgbj#UMqQroc~Q9*kmkAm#^IZPQM~4O!5|xF5&!Zt8g1x2GmeyEwz9#BI3jBEmU4gi`OJ zZkaP?bQA5*Um6EJ5`UnMc34$UnyNV6Yw?-)Rw3@G9huPY2qO=8C+5+&)zhX{p!Z@O zdG5u|Nz+cw1!bRH%wbur_rcw|1yC`d-b+R7%5g$d!;5hi zA&Ztwpvs>PMaLe4Mr_2mdsAr=sOagNpDOfp=^p1zhfufU2$b~_%G4DrXQJmc(Tk>s>y(-AMxybWJ&Qea%n96j;DFw|%25LZC!_*z| ze4)!caK)q~BXZG*)SMs@t>F8u7TayaES>71y_B)({ec)!2sj*C-W~x-<21U{J9lo- z_hRff`s9u+JFupznD+-JIU_AIogH9V?Gh(iH?>h0*#)E>1T5wj31T#|ca~BX&=%g; z%KMHlp0W7?+Nh$<=A6xRJj8xA?VaX-H^g2}ZljZ%g`UIHr*W4>glvt)qHDyAg%?nW zQ)2J9?dW1+m}uv52Mn%o~az|B*xTJG9e{*+;CxO1iaUq8JF7dsL40L^w!P4%)} zkvjo}G!plGQsd=*I!Sgm{3 znSqg^ajU|XZ=IIT{|8V@0|XQR1^@^E00000>MLF2(*OVfQ~>}03jhEBV{dL|X=g5J zZf0+VkV}t(Fce1j{)(pi;Z=m10LDz5gry4ZOMAg)pe4{4U{)|akD zXBbAQRf>Jb!w3}DLaHXkW%2hzF zu@mA4F;RKP8hD^cu?|wam(9tPeGfw+TN7&!BGGJPgDQ^DgXcgQfX&sbX9P0WpY$$Y;-n3 zcxiJ*Rx?vYV=#I%ZZ$J=IBPC+Wq2-XaA!Qc3p|tm`#(NKlJof#Q%Dk$v$Q2eQmIsm zSWylMNm!XJhu3UzKhlFy$;uXy{^Oa zI^1oJY|;=CCvEI(5PWpYH>PO33 zWY2$tGz{JEMhfkalUGnw(%hr9S9_n4v5BdfxrOzy<2JS@>`ppfxOmCw@)c)~8#g_@ zynSv3-3ty0#om7q^(Zf(BxC~xv1Xk@1}02r=80e-{)sc=yg0r6Z)*qE-3^zBz}u2{S|TrVd+o zrK|32$T;?$>{q<1dqr)}<^@#hquknP9S#xi=HZy=HHcorD%cobe_? z0GTzNpFda=*O_hmi1OZ9tA_15kUni{<6ctPMfzZv9hk6AX$wIM>Mva1L_CV^Y*LF^ zjaYH-H%dGd7tzfwUi0qlw0JvqQX{1%H zndyRFj6EF26S^K)3h3517KgR3!*e2MFE_Rl1(9MEmbsVSR3n)yv)69aJm-;I8*v20@gY_%aQTw!c;!}LVP(_?wYtH=7SfO9}c@VAn@3re)4G2mFE~i|7|u7 zgdCj5RNtth1Jp4w8-X{)PM;q-$M?R!3KM&&I%K7K>ha2(0v($zi{_HmC$?@iSCq5x zYA!^{U!7MXwNs^B;9f;u_tXdnDU*qNr@<$T34d?ldH6Ho&d4?S$D!hRmg1WT{;I4_ z5_C!>jJM+$X=h%|X-TpzXBP!Z$?$3FBd8Q`aO=%_ONNAviX@NRs%fN1gE)J)ud1Rw zDTz=So5V3J6^_3&ZU2oYTUzA*q{!XWCF{#Ac%^1&W2V9Y;G9mY9; zvlWBQ+0M5tW@8)BvVCcJzG$(Otf1ii@`27DA0>_+75)CxwD+-v$Pl_!AKs(Ywuz7f zQ!V`ow3k#Ff={?@+lFj91(gx{(tA?C^~|p;`saH!F8O}E7-gBz9$4vBavz5gLDNXZ z=YW$PzH5kc7+PHCwvu;7Pl zpJ$moQ73%wan!A;^`+$@!oo{He-;$L5N3h=*j}` z{jXwdQw>>fqYPH=NE7RaGglPwI|wai+3pVG8FY)90?yvEHsNN2x7sm$1X{MZ>N?tg zDX#E0Vah5M{ddl-ho%p!uQhKXk|||WBH=b60$CkXQT%&Splo0=Ow@OZ$huwQBo|V2 z_nXLM)8Nf}%FrD<8oib>YRD7PF5nFy-_N!q$Bil8+V_q_`YbZX5$Io1BC(pA(0Pcm zI{9EdjMGcHH?26EkL_zFKSGz)Bw6YQhO>|02b**toA)&{hYlOs!k0HbJGv|!)il%{ za8bS=yv)iL5JZ~@-l0^)a-`VaUYm%>M4Z*nO@#OY8@-9py6}Y8OM>iU)zBOnLf2gV zlX_P8hq+BeMAagpg2<8dWu4^~;U%#})3Gfic&~okV#8rt*Yn`HRb&*yXTOb(<2|-| z*u;1DUAY#y7X1`YGQ7KHA&>3M(PyGNmLf^eS&YQw?_7x=#@$Oz5>-X*#|!HYsi&?S z#LwAHQ&fCA+_~ulTKdxVY#=0doZ!e8Nw_T^X4Tbsn0<#Rqd-Z+L|-qv5L#?GK^k+y zMh8rrU7}ZZYVUiUMfp!UB6qYmm;#*^hcz;y(X^MD^2t@B1n-`{9bL5H@+pFfYydY=ybe;0V8SX!0N+P}&LR~i z|0tPcXAF10+yHZc1~wb;jXX+2rZ@!;?ue=&3JV%JsNjJDJ8M+ z>Sbz4O$*XM&ikhK>m99YB3sq3rQ~JyZ6aa}!KmxSZnps^squ(lGg!8dmp*`oK4KvI z@=hc0Z4~G9{%vqY#V$_Cx35{LG&R4cE%Tc+vEA4h9u?WcNDrnj}(hih1p=Do#5Kv5JKT76Lh(+I{aa(zmR+d{; z>d?X!JHw`r|J_e)_+*gQDdsy#@mPZO*A}wahw+`cTeweA+PqH>W)n!Q&bu#DzpT|= zWjUqo|9(>AvVTyLqS=pw+xr^t0PQ)4g!cz5IIvyupX&Nr^rHx66wa=uT?59aQS^RH zxc>3DqmQrdFE3@E)l?qvn~uuGl064kwe``op|I_3FQau|c-;vj%9`BY7}m_==)ex) zn}}`SU2*3FVpNp^q>p*&&^=zd5WKfoo>8aIdS$h$kir%@jb^1$Q=dP9{e4OCEgp|D z&hzv2^Y(cYR|}gYx>-cnc($|NYF+-yN4F8Ch*kovNgl@six&}EYI%k*l>mjduBjST zG!CMA>7)1dx|~n+tPN0#uGN`AsC!z)OxdaILq4KbkegL7Jkfq;O_!fNEhEMs7vK^4 zF3~}*?`8W~Hp;CkKuO?(`scG{WmZwGsTLPWu$DMSHh{Gi76nY_RdQ1(zDNX|hgk_u zc6JT0a}ex$>oc4_EZ>AXIbPrjx2EoZK3NQzGHTg3z$r`Nweg>LMv%io7h78^mZ$bd z>7LzGxCc-6zmRQ1fq}vm_vZ}n6Y8!wnVCZ`jlV9)IMVAUb`|t8)ov8vhiw zyuZA-dvG^4|J>-{!)swm>smBo*AlE{8%>~PHJQWOOb?pXK$F?6^S9bs-SjYm`{`eM zesUit_N#eE`endk6B8?#%e?j&Ujl5hG>v8vIJ*XCX%%WMoJux<)~$@A^)rT%()5o18!5PxLr(FQY-n`F^4e=o(H?dq^e$hCpl(#BXb!TU?O9U ztJD6{QEKcXmF1`rCc#E#CXhQmHSFI-(UrYb$FPk%oatjT1cL!cwjWGR}&^ob+i1P4Iz7Aj9ifbTqcDwBca&Jv81pW-K z5B6|?>*>gNC!WwC4gTBfKWtq|CV%Gr)(4+0>fCOLU3?U!^=o#hX^8ur13Vc2E^b+q zS|5}}Gi}z@aT@Zw_dHnJZ|R=sr6B`9<<6v5yPLu}-?e(Ovq>kXQ2XE&p6Cc{z?8?p zuG5$ZR&^aUX4U8KgtKsfps%4usDXihIEJZndOGV0WW>fx2xG#Q#oJA{1n*OQX?r7_GZ!~2n~?@N!UugqTSAhsP)0CX0Z5de_D z&RTAqkvvrSD`;vJvWXi@NPC+lR?lxMB}xrjWHVi5$&5la@(=LRh3MPcxLMh_y~l#I z+WKGke7;jh9zDU{8vvNp)wT3s6H&ERG&4e>Q7B+AUIpEfNF3Qjbex0FTwQOH0r8Rj zaf={N2cwyhtJ~MpX4#amnfcyuW!lo%5=(|D&yf~%<`(=780}l2Y`d+|pp@~D7=2s% zi@_hsHf^>NWpw=BLh9Wg(}6$F!|JR8ZY0MZNKPkHkfA=cG&;LL64;OWVNBdYXw~$7 z6R>Z?tY8yy)Xp+?;*k3CwAqjQ3gp~kG_3{$*@mO1jHwH3AGQHDcer`2WLEkCfrbY`QQoEw6vAv`|fX_D52#lg%*n!fyKkw2eGCtW7Rn{ z-Q#)!OOLXqa(<>u$N#W9*x>1YA_VcI{;li)>@Y>*NZNO8BFcCr?7P3I<;2LownoX) zm^^}hThH6Yuj5}H+gFb`G`?TntMEtYaM2gsIdJ&9fs`Jc;C15-xXDfOSjuHc@Dc8M z!KAaB^%OBWbe`p-7b4_!?8)e<*dDirJ38;V87L)Q7fKb(GvHi+sBNUNL+y3MR$Y5G z4jbFKL5g%%ad4Qd{^olB(ly>%PkR`4y#{&mC&hz2;>+8LXfu(B|h4ADuKiw%h(@RpiBkwvxg7F4_ec)Y0q7v6zYgU|;D43*B_|7!X}T zMQr3^6B2ulysfd=ern>DwqNhtRmg@<|Vu=8Lf%m7*JnM=?L7u;^T~v&84{#G>U@ z9=p~e{@ZDIHkl6NWc!_FEbT2r-I|GLU%`*a3u8$Nm&(8}3B>Q%aeZz$g*0K4e9 z?B#7NF9XSnv%i>j>a4iR zD5#ZV4P^&33ea`r?X%}K2%NQ0N){R;MdLv3C{C*KFGAD6)^g;m+mz3xeuKIe$JyN2 zDqfi7{d{j2WizIb!0^)>Uwo-CaEtLD!-dm4QH$QuWcwjdWy@h`H= zorB@>qP^J+Qx}w60hJPj3BS+MSup<0_mi8l zova(#Qjkr}{TDu}IF0h9@u=wWEL3LaCf-Q=wyr7a67f$2ayh-w8SoiwK1IP2M5dZw zyb1jNVy8y*sBEH-;zVzP0i5z*uK6mb1B7ckiA=OtaEUl-kzz2f z6MiTBk9+vQ7H7YE5Gp9QsofL@t zfpVo9riqk2g7-pjd9X`}eDqQs2>N^gA15B(ei}d&q4$)MCN{(461!^$qFT#=r_zV< z^YtPu{JO=j2u+Ry7`4SK0sf0tA?wn07mLh}Z;)&)Sxt=j54DHWZC|ttY+2S^H*dQ3 zJVoW0T85QHq$0ZLD_cQf2IwTN$TYM2cQv0}y7u!p!Kmqv#Mh2-pTjh;XHw6})he}O zIQM4m8>li4@hHFbF)Nq;$C`2~ClzH=a|Z zoT8N~x>JXsFz==6V#Khp*aXwyh(<0isfI4|p4Ur$&o3?2+nRtDM^1*U`Re2hWIHF& zuus(`qqZlUM`qVCWr4RLRViD54T z`d^Z_2mff{rheAL&n37M!Vlk4nI~^$CrTjupgsn)i>uM?V4Lw|#Wk20XM?G=U1u~2 zUXR2P);(KFytB!X(g;ll3nuu}_7Yd(ZR9%k*j36Eeid+isuKn7^eEpvvkch#zpl>WQ$DmKG+jev=fok;ri)7J42O|2^E z%amRnDs05UzgHN?HiJ5LF(gUR)>v*j!Bs-WFn`^3sEEjiv=}X1T&Bkz)}Z^haE^NZ zl{r1`_U)IutPivC5)tx!PuUla2;A?rN_6+)jYA2t83j9}tMMxv+WzN|mpErn=or^N z8A15PVnv;iT-6h~7F23(nqQQRc7(9EtP(FWx*wZHY~qFjBpK&ll|=`kO4%i_JT6Nw z-9w9uiNWS-r(MDs<1{>AyuFn6(jOojzZ)5fA52&X4}QaKoUbaTg})t%M?Ux56zRrUR6HPd+ZNHM_V(^i3RxbtzFS>-VHGo}{OR&4Ew$R2N3x;!~@O`7l~9KAf@CFP}4=d9E9;9i{f=!L6J^J_g(`&8r{T}YU@9StrR4_sCh z?EK+qWVnL>Y!Sb_dTyC^s%DNeNn5PQ$#H~uD!h$+ z@tr1I7pdBTmoi)jL=+zp7+0xvkj?J5l_4X#dp>Mu00VNu48Tguk|A$Edv)$B}E+M|v|JbI} z|5iY^3NBirKiXS0{8;XpE~cU;Cst6)9wDoi7KlX4dj z;!-p`A8zO5OX>01XC}%%x$j;Tk z7OEv?vi{E?kD5CN@_kNNd16*@!^qL(eVoq^-kYw?8tFILwZ8S_ue60P2m0XUG+!#_ zG`O2pKfT<4R2M&jGO5cChiW{Gncps-L%<{<{tNfima5705qK4$2?7^60(|cb2YIuW zHcz0nVTOS|8rW@>FCu(i$9+0AmUQ|;)n8YA&%|-Uo%o2$wWeCLhpHrH+ZAL$ti2ie zOv8%B4$JJqQd_gmJxE8&3*+?=h@C8-)TDYS2zH?|^?kZbn-0_>#zyFe0>{l+TX*ba zg`h5dB=%x^@9Au6VJ8}Eg41pt*ldEM)dm#ze(0A8qyC^B>V0eF5f_<`yp^|NJPyn8 zLgt^$x*bqEtm!sWT|o0O6)dxRWV+3+4v`ONTW?x{wKmpSH)yvd>O4%MMpwIZ=w{16 z&x_q=m8jJ8s;1J+u-K0gU`#7-=@FB&1;d@JwW=rOTNVg860BGD87N)_I`)$3n8!Fg z>S1Y?dG#+XDTQ`W@A9+}epOdetv$N5yos>#VWXSd`yVD8j`_0RYlQ=h=Dry2h@T38 zXc^|UI36{~&!6c8sG=h5Ah*dP*#ff2K9A9?2=Kz`{bj`-U_t#c`w=onnaXZmv2CWj zw}Z{d#E-wB3`Zf?J@smqZ*1CuS+3PL;H+QTs)Bi+xlnuCqOa!1=5$4+76~6wM<&6a z-)=ODPw;&Fre$}<$%k*%l+@3ozHQm^!=rnQHr!#%(<`Ic!Qkv%Y3*WDmvWCNUk+Sl z`&?;nB5DrzZ;;+GWnj5gfP6QZ4Bo0a^OuCH!N1wH5Pz6y0zJ=~azFkntA=d4wj zrHn>Dka5odYl=@jpn`_lo9_2bobKq$z{fwLT0u~rxOeO=$uXB3$0`d);E4<+)?gZImbT_`kb8sh2P--ZG-Yds{oR*=s$yUttd z9n0bR0_{a9QN;R+kH8~W!Ns5cD08D2j2UCHNz#P$PD5j%5J@D^*P(gNU0T{Sz)ys) z`T9J^=f&wUD{;KtA4~);0ykqy>0Ee}6#1(NQl&F%lOtaqD(p(}as}G~&j{{2o$@&a zwsdZ^EsTT#jQp9k)2IPIZeFvrMR#ULuClkeTzUq_7)#gdYB_oR71tyzSL-fZ>I}#& zm}S%cvUeKm8y68J%>jZQn_89%^qw2Uhh~F&bw_GR_cxR)10)zhSe^!)!f5{Tf-s;g zz8XTrtNUz5!gi*H0acAvCa;U=e-nJY!c$`Tv}M?F{=zDI6L%b#b8mshv=zG+ZBZ#8qLA%za zACD?o9rB-R+F>74I!skAb}?m_9htyfQ-iDR<*K&2Ff91;Yx&)A2C0HbyxYvB8be);3nHP_Csl zEFa>Z<-iZ%xP$@yN(z?1u3t*&v**TYA*oqs-=<{Xtcj@=x{_t|r}E{uBl*>Ke*hH^ z^+>z-ZdeL*S3M?=7`pI`Ap#w--kn>MRU4ziud#rU9Kp0zn z;6V?OI+1=t%?t_yw+dhY>R=@}JeS$cR^%qb19Fo#xD&IOo_uy!D9!qn`0m)?yp)SUrNZ>OlGk zeG_e0SLJ+;xxxId8=w2@)?GvNq+Zr#LO(&YEzKo;w9k!#_>Ywt(tq&fM1mo@lKJ0~ zAPq@n{5%-i?A<`|5lRvZQ~O58Vu@e{>SzD*_+JD##ozh;Ev|-n-oBT@#xl>G7+DkC z(SIZ<`WW7brbPxUgLJ(fYbFVFJ5Fh9^4RB*FL*Z}o4lE6jL4FSFvI6gS z82cbK`Lp1b++A2)JmWkIGP0mNcQyDTXmw*jYY-y98=<1y zr3_?~B;Xg3x|Rqk)dVFUzBY2PDYDg%4i(_D*F`pNg?!|Sz|CuwC0+HPo0acFKg#Jd z04FTGcOITEQv7Mm z*9oF%OnPH_nU6i>))xd{F~Sn63S*3P>=pY9d}axY4N(}|FQ&^iCj)e&UF@r37Jf}u z2haK~==|(K5M(pGkM|Oo63MQmRhGKull{}@t(J{*t?=|-f(mSL9II;IO6GJa2|P>` zI7!=pbHrp#;d$vv^!U$OC-5#S%2)Jg)msGq8hT z$7(dD=jK?Y zz)RDpRlVqoHZlyB1-$|ObPMI@FUypVpQYnlq5LF$P*zUKhYX)p5mAn{8SH&t$T_q`;(kv}7Pu(Y$Q7j`?QrNOH`|6}ros z9lhulO?`H{MI;8a z!fjf1Xbj)&DWa^j#T+=v8@B(sdSgg3U?nj#S#iTG*=` zlBo%Q1((|XIH`Uoy}w>ga*gtoH%~z)=_MeF22Oef4nLyUGv`Vpsy_nxqaCY3Fmw{d zV_?$xBWAq>SBzl4*4I~jUgJG#YGAL@&qZ zV`@DR=8)IqXl3O)de7FHJ$3HryIOSV97)S*>Z`-1VVP-?)gE?sNhG%{BO-Eo0X)nj zfy7PzS4AEDQ=;4r#@qcfPi#UoCdj&-f$Zld7cPNDINHmVM z{s1>zTd$jLoQc2B>uYg@W&RGRz6Z9LBI6%k8-E4ht7+$BOziE0C=G6+!*a zdppxx*$PxDCIn%)3vUHN?e1e_dG1D>s;$$8u>Mfuyc0h`k362wuSV;rijF`I{s8hh zmqiY)g@P)7&?DBb9WdfGH`{<(J8CG{^sMhp8daG;>imfq&;J;={8Dck{sbvz{w=$g z5^}-df(e39Z9S$J@s_IAEMT4SV`4qSe`zjJYG|B2eK@%7J3x#A?CP(i9wfWP`Qi3T z--fWe1`Tk}jmOS^z#UCs>IHS4gcI`(BSj2-9&YZd$` z+@%(3Vru@DJcL51=$4Kj#oz|l;)TryzP<*}og{%-#pjM!BybhW6YK|VOEtK}*(wwtbf|^kOQ$O#t&s7;L8tF7 zP*PuNFE&7Z`j+wCZaB~)PGWZ1rS|wB(DX)Mm3ES_G|07heE4F}!K40|6n2fxB8la) zIGzZY|GS3%FL3!`PSHV1w99!p<(GN`vFJJS7fwsSfXLvf@#1z6Ny1hc`4pD06CP4p z*6>-g9t+za-_0?9T@<8y+&H=P`S+}DmJ!XOS zzy_$Rz4M!`a^4o-^jZ!nO|#zyi_RCoY3-%XxE({@6b3_`Dn>Q~prMDe{_{il?tFZGNo*`P8^fvCUnPFWoE_ zX$}2kDLi!L)5!f()yCbZ_O;hWl;n!7qI!V$_6eVQ6jazKn!rY|x5b+C?PDMBxd$-q z5P^o;qwrq4TKs`qtUPmOQ=Fc4m8Gn>`Q1zzb{kFQAQDZQ1>VUnBEl4kVH$#tNTy~- z_Fn}q#_u(c(ZJLZw2DW`iY%8psd;ZeW2mxiNj`O=#}C+-n+3cmigsO_hC??@gNy&v z%}!ts{q|>kIROVUohuJsPj||r8(I>o*6WjZsN)ToX9mml%u3WpOKMt8deDII`3UE0 zP_ggC`e%RaEl!0<64@Qr(Z)?yZudb9$(l4jKLFMF@QNasI_d__FW?{ij1nmv;;3ts zNqe#Uu>6x1u2nt1NK~1I#qfP-z2~~VDdy;k7O=F>r#!RiWvQq*ipQUSW1_R}_vD5k zK%%g_T@Ay^7K)%6Z#+X?rE5oAZNbns>sc>A>Z zBBNtVY+iMI&Yw5HS$iaE%XI1y2f{ct9Wdo1uH9>xKT2=6_#`6@M=3k0tc2(`oMZr; zP7G`6j?=LpRYK)h`lF;fgD6a_>(PO%D>zES{l2zHuhx%3P}vhH#l>*$#6kKcn19Jy z9#9Aw?%=Ug+0%=@k&Y@@S}`shI5j+F+UrGYv7lPsBg?6zN#mQwBN{E{Q$DDZVB8Bl zFMtbr2c6_j;4S&E*Oq09TU6I_0ufK&Wj~7=xTZ4SMC5;Q;g&1xjjX?xBR}hn@N-Z` zBP+-L6l&b=Pt?DqY6*u`ZV5FG3r<)(3buCyuP^4t;r;;>@~U+aZ@RsT^s1U2hrEiR zb;QQ1ZHD|~>#u?^?vBS3?0~b(XXg`OIW%Y&gN;-IJN{VoSMZUfbe4{|$f0Oa)-d75 zZpuae-ovysnJCsW5A(O4>#nULOLh+9LtfbFNG?g84Dr2GR6eQ5beRDJhyqgo7?gc= zPaOr#FO!)1vSQBqjmkEcr$LGF3!vOyu2~3wgh}qbtqtW;asw9f0d>lCsxmz~_D)b?qI#tRoOy6-d*! zJwNpbx{|nN$;FM*nr$`%`)#>rCU@k;ulC)IEamvq0~Hxdu5z)TEkD&UG#<8Jp6)Mk znH_d`&`mURWR4KgT;YK-{K<&(>E?z3wBd<=@63_l9kUso$j{?#@9}b^fNLW`HQ(Rl zV0rIC#XsC-)@asq1=e|;s;8X$J9&G=9r zSnVmLoU1e51{Va|E&*WOIi3JDRGJsFpM~VB%d*+S8Ft!*8?5$iOTuC4fzf;@GaT93 zGpI4S0@Eihh1GdykYcZ2-^l_{n<-gbXVAl&pv!rc1OOD~5!zu>=zzXR^?;<_ePV-O?gkcVO8rS#9q5uY;eY zZC=#sW%2yh>E~gND6Ak2sY(<>q}At7h_@ zNs8maXa7~WB&-wtC|s$PfieanWyIMC+DqMBG*r**du?|82qjTbfI^P>B=ue)(F5b- z2eyL`Nx?UfxPXN=U-ZqZ&nd;hU z-xdbr+jvt$b?t{J>E~K6E;Xjx>dXjrbM|tED;B9c@zk;Kf0lc`jP6DQxemx%lLwYXSM`Qkn$rw+@@mpWI(?`JV&zTL%P^>*vh+8Fx&8iZ) z>1U0Sx4jy+0^@5ug3p0#vhUN6N5X+?i;l(7Z13}MCG@9KYTL%7e4V*qoN`9}o9O8k zg8rSzRz5MpPUD;4)DXv!{cONLWz$TMeW~e`z217a1Bt~%=4M&)-X|1B2!Ai)Be(P} ziH$V>np93Fd`q}K&TmO96JDoJk(I z*DbJ9%vg~CUG$VqEtgWD>BRL@DomTb?K)&CtrR+2s$ETW0L7W_;&Z^C-3WTbOO`B) zSwOtgx%cPi_jy0!ha&oitgjqi>rN$m8yfVW6o{pF=3Wb1=Ga5%Wf>LoxQodtlPi5D z3pstCnu`8mSenigz26hpj^c{xBx#4w2SUp&-YDBbl;H4ql@shS)G^N)4ubx;(e2o4 zInB_)G|-BIO4))^_sv!Nf4p~PK0x_k%W3|2+zW1=fn@&Hy)5r`mH{x>VVU5hMG%Pm zkwf~n^xDsBy@Kre@Jrfqys|{+aB+0P!d`e+CpjUyQ&{*2v{s-_5diz`6n7Fyis1R_xkDml)3duO#4iG4%r2(>A=Rx( zAp(hz&$ZVDB4SBmp?v5gPo%|Uf_BkzbCAI_1Bq9lNChK^CB7Wx_zQ;m$kH1ggVDYR z!7~xp+FB75-wSmuc&6*IwG1*k4)aB^p>A2K_O!2~QC_U=C)FnRKu#5gvrx?@ zmvRI8Q6%8Tae-Noai)TBLNCu^8wmDz4{R^s<&!&m1Y;1RrNSnGhXV0!JJ%NpKgaO) zk>0uf!)2&`cJ4m)Ec5cugq0`m0dQY+f zNk@$C`WHAulwR!&TH_536!@C}Z?)-#5Wr6{$sk>1F8{B1FZkdJAcwNTahSB^}@GcjjP9SD9{Ow~yC8p_>4~--r8Q zIWyTnyc+~O#Y@Nj9X}1Q1UW>k+{e>oi3_h2)0rEP93sIv7 z{Sj|og~e2o3K1_@2Y&h8UH}(IXRfCgz+V=Ucmgf(q58J<2}n++?^5m zkO)!+rP)-rp-U#>#G|00(c+pIZvmALZgvda>PK>C9%oXYTnbEPb(Bo03`0U zR--qFLKK|Oja{;N zOL-{PPFHt_iAyI_&o5H{Ami`!qqjI4LH-BACC~?9jNH_H5BeaWTWK%vRUs6esB;PP z-4j9r3N<)ZowZM{86kI&2HWbk_(hRNtj51ImBGg097U4!4#?d@tpB#41UJBGR!}{o zEg{vXnQA>+h$5}d;4-0j433hhf5->vjIH9)rjT)EzYpQ&Y{g38k3n@$>}G3=HDS85 zW<@dT0&=#`(LS@l{)0bD73q5O;uwcxc6;PX^p)Iq$xLDybbQ$!?;HS4ooKFP9_N)P zDC#r4n+uG-ibIO6H1uP&jwixvqj}A4i^xKhPlw94mf9`t(`r85t z18qO-`(o8OXChIuqRQGxh)TQeLhYn<1$+smwuPVw;p}(tJ^LuU7_OUR*4LtjVff!I zz5{tFj$qtN*Eg@q)(xF$`>2xJ%?iXh=7LqUj$dlQ&;lLHA5?b0(7g;*x5@?$ z+LOdP?EV?uw!}%2oor_;1#IVlw5zdQ!(09Qe&Rz%4Pi{4Uy98LjQ*tjR1P@pQ}e>m zOD{*@+QSjhHxf6zHvm!x>ktB5@I3=Ldcg_1HS$=-c`7^NoC0=HJ*F0K&iyX=lmPq+ z$%if4@mwq__H@!#aH#?rA5*{PI*+D3-Il;AyIM8qaF3Lr!&h0J4XzFfL|iECpyfLO z;AO~n^_k7f3q?S*o&jbcmj^)CaCrO$Zrkx=cZR=Tb9xQOJ`|_itN|PxT6)d~)ErR- zV*K~UPRzeuyGQ$2IkK~3W^M~KhXRpX=^9i&PXXn zdT=~k?5TC|sIV|RjH?1+CLE-)8^8$enjD;tds$j%b)r~_dzT5*SZB^A-rNS{w_8?t zjtAsasmi;>JAW2u7wAx7+-`<6~a8melvWKCO=|F3z5w z%vjJSVS;5T|K_`q{L^eS>V3_L-t=!A-FT0a2i%gYMhD1fm21>=pZb>eSRH=T2%p~K z$bv37f{sScEkH%7!N-nhy_>p=N<5N9-m#T+IyNtfU)Yz_FWe|6ycOH^T}rPHfWK)Z zQYl&!K!XPoxWqIv5&+i#DrnA1lP3LHFWhKZMMmAD^Ro0>l#=H>+LZ4Wy%NDta`3FL z1gGllGhW$Mtj^NmQTq-9$>(C{w%0`i}$ONdqq|(D8397wyzuo;>z^k zVx@Qlxm8@JRm5}e@H>A5gxqxfm2PNT@Wg|Ag|CNPat&O%Y7rBSw$qWq&;_R87NYiM zUvV7O)+>6@)s)N8xT{TmhKaWp?~bW+m4ox>Z{8q z1Q7W;KYBsl<#8fc3N4XPH_CV2ZA%e9B_p{tk@mGEpy7(5MJQ&>yZ@Y|tmvcKEVuv6 zf8Al{FytPk5R$F6*FDZY2Tr%h4t6y0Rfq;LsGY^UiC*}!#e-;xwg%oO`lIjuQ#GUD zXR`K#%oKCn9_gfJRhWrj1@ZSh6U?%m)8(h7Yh3l(_SNzu_s<^X@X1s z@(bYCS@{R|JcEmhQY)a93?>sgIy>-q`1`B4h9b%HLWbFFz@*6_L4`a)|RKc)1}g&+q?)_d;(hkL!oxcgKN=n_-@f2Y(!-?!eJ@sVTSCU!fZm%Uq=1j`nQz z5WETBoHowLU@B5&(EqcA0CtphQNk>xNkv`{HG)Axb?Cn3gej)H{am}${$8f*x)gp& z!>t$#$j75qs~!i+mlQa#>ZggvpvCC`y$+MUJDW~<-!byL_84L|HO6!?j{~gycyiLV zU9E3wCYU^mF1Ok58M``kEll*(QRS~ml1gtw%E3UHW9=FM+IF3Ldq{MF*pfpfy$gzN zLm;`Hya!*DfMgRt;hctDsbf_JXfj(1m=v2}*#FS^ppIUfZ{C)R%NP!9R9AU=_b=$I@0g{gdWep6Fj-QGTTY|$P@fc zY!bd5-gFU>MHNcr+IQqk$AT$q;lkz%lM@kuObr_QBq;9zB)Aep>!H(d7KK<~nYL`P z=brJsE=RO@urwZe=ND&=RXhx}nP8f!l*jjhie3#R_mzOkjX!1(H<0Io?QEbO5 z^fQWyl;O*W3cu@O$_xYLAONd}&<;^qSD(s+M-t2FIW1QIUcCAUwG{{`(~I0jN%@r! z8>&yQ6wR96~tFw1yRx5VY~ONa(YVS=bwQ4Ep>4M6s2{ z5q{Qs(`OC$?dcO>XZQ4V?6$8*(6{Ef`c&JN|I)j6_R(&S6hI^c`M&a4{i*!Nq_Qm9 z7?f2@U;yaRM3B`kw%-nm-MINgjk#BuJuP$QkWHkKJ;>O!wVH_G*rG*fijL~-Fy!sr zV3m2X-yt&;=SGekM~z5-Ts1&a<7W9+WX&k!jU_o#3_sw0l3CVsLxL}Trh5tJ%{M#B z#X$mMPEw2}+EzgZdt(=hm>2q5X>tw00gWr6;ki$e?}aCC@bht5K53hOz0p#C`l7W% z`|-If|AO3&H6#H39fC%3?J%POWTF&OthmzL_2pi2_KE-5N?rAJH5EGBS79a~k{5m6 z1O1DDxZ6=M3KNFTWo8TN09@a@7NqUx-eDjhYQ$}1WhGWMJtto#&T>Z6&yhy<3+^iL zFF`GY=>lL88Tpr<38Ky3~WPKp8?1 zseOWX4X+$3m6qIO?AU%Cl&oO!~Q(8R?hS%mWTTgHlXk|H;lP()~s=FGIB{+n7bYU|eipa>InlA~tt6sDM z;tubv9xiOD$2kGpElCvcf72R^m7tx(clXKjUDo@5^J<}UlGoWzC^y-xwM^|ie6FG9 zP0d!dbI$dya}ZEweB6HP)B?E{_qm`XapNW!3Yt_RSa`iO9qBG6KUN*g$(K&`-s(;6 ze%uNx@y(CcUv@!=f^Sf3;)?f??5_2NDmCAL1SFM6sz||tz)*wEbT=zYqT;vetHMoB z@fx#vPRjV9J~ZhUZ+N-#H%oH;#@7A0Ae;YFq7BB0?KcEeonFe_ktuZ3H|QcKTL3+n zv*26W9O3F_93(h^o~8{`m+}}s0s!$w=XYp6vBi{JI=GqLd{Re_YvX+{PP52c*%8tg z-#=cd8V9K2TtNbL7Ol=KQNUdsedKrtv8-I53@1@52=)eg19|5rhTu`ePEK#moTVAq zfe6@;i5l(lnj`bXj1*+}E9Dz9dnJP)W5?w#*@SzGe`G|?aSY04SbBbuw7{mu;Nte4 z^wX^j!fP3_f|)Koxboqm{iS7`Tmiw+PQtn>FQpY4z(RHGN|qR|-* zP5zUWJ--YBTb~ibtZrwP4uvj9^>ei;ib2LcS!Yk^td+iCo+4D# z_M_^~Wb%|AQ0d8BVZfkNKRIheULUUJKQJM+0%FAA|K_ zs)Bd?=a990D|dNE_WZHjS$OPjV*t!=`a3sk;amnU8N>|-B zW=eO~>MG`;mlxgLUJ~411zd!!IZe2?Wh)o3E^4RifcRm5cu0pKbs}_((aS!fAO>qH z%1UvAI&SI}CFF9~k}rL&*EcRf*NTW*{zCX(12S2oxT^v@s0a zJH!aGAIZ_Z;Dhw&a!TPCnnzR%O-6$c4m?tvd%v5}g!I{VKt&(EO|8=3jJfVMdA^T9 zBOX|BzKbsciwdA(V%)Hu=y1Y} z;o}VIY6>Bus}tDT#5UQ~QE&B(1mfo^;8DScqlK33C6QMhY&lhs{DD z1o1KTq!8F5$?!<9W5;8JH64e@^V=-^BQk0aXlAf-WBLUWhPD#5b4WHH1X1ExPZ4B? zbpx!jNug=A&HeROIChqP!SJZNbo)xGuRKJ?Rmx^Wqay^L?lCb(EMM2`(_*w*zk9J%aOk)`;}BL%1ydMiX1+O*_B}y@H9@B zsnUOGlryd&((*Oh$Tw+HPcPpTJbH<+2&vWu{Y>k+-f3UI^6f0ChHjrYl-zdBHu} z$&?uHD3QUkIcu4ybBf|mMlt)~lxbo|2G_p1e64@5uT7lPzO6%dTi}*CVlx8}lugAdVvES?XrN*D z2t)(>(X1eQhUeYioKt-(o8hUO-|QdWLeAlU*2GK$^WkmahS;_wQp58Mmv0)4U-h&nF$ z7P7O25YIN~L`o1TOFB2Zug(34BRj8S#v*gt{0n;^+%qg|W*Ee9A@Z*bW5O7{w7=3q zEoIL}XQ=^Sst3bmVPGAZel_d5$VxauyRdimXdN0N=;&+yJ}Uw``4o;j6g6qXBI)x z0BDjdXxP2I8~xYGPt$dYCmb;wIJZ5H_e-waCba_&EgCWac*fXZn%`;m*3Y|^6Xv@J zl3TcA_j?-&Ux8`%r>kvdYp0w36j^cSYm?b#u?*PPe&zod}SYf=h*({?a}~Q>6>07ALxz)rTOHCEal4^sj=T4-kPC(A1X!2bX9S%TJ`*p z8TEV}aDk)k9-H-DzKiy(aQByEtu9|O%F<)8>U#zKV_Tmaf7j^}iCecisDVl;3O&$& z%HR}I5CNFhP809qbrm0{)!-N+*8jSHs091HJJ;9#X|VPzjAZh^q=o1friK0}OBx@L zPzRBV3gA3MoaMQHkH#Np#N(Qt2COsKP4dl{moBZ}XM|p}1vWq*2qz6bWSlB~dRhR` z*-n4A(xf#X&MJ4K#TdG-Y(ifqG4=tC)<<5AN*!88|81D}DMH58W48>ULI@oA)|JUd zcWC{V%(Gk{p`WK4nE&EFSyI~;w{>d>>-IP@u>6^BaAyr3(n2hVO0oG!f+A!&)ZIfrFqJh4Z16pNq?PR#tVQ0O>(0k(MKp?Cm$LTGlNTpLJL1T1Z7HR z&vo5CFMm!wZc!=_s(;i_a5)U1IGTO2q@O8Lz(zlt|KUzAW}FS_5gc)Ix961|P_vk+n^FNY^`Q&I{REL z`|}k>MR0>>F-Eaqu0eeLB6Y<@OZ|EMO?jFI^W|&Hca>T72MZlrKh<@}K|60lu-gP5 z*sm`nD^_Dy^mZU<>7V1HPg;v*v3x3yXgs1@JVw(8z16)DlTBH@mWRWTP>2bk?R)(S zC=wPHVR(F=ysK#NI$K3UidiKXK2_Q{^{Zku+i?7dVFlg-Wi=%(=blLEtYyikiB!&D z7c9~%ihJ%^fDxFOY*p`}4v#JQP1W)VQKRkARUf64VI?F%dBJZO`GwG)Y^W{FM2;|5f_)mx@mw{n?d}7-vEXR&@!tO`Y z_)@_JPqAYkPJ=GnI2*#XTt%#sn8f`A|2j|~$8{Ti{q41zZkaxOGMnEtocA^a=%98+ zxgh7a+Hc+)52)#+@T@WtCFp<*DW#tE41Yph@VHYm4O zH3rxgqOX9D#n6Sj#*^P={TO+xj^=PXdgZAlBcpjEH!1?-{0s3WKT;eQ)J!OeSHv>K zOnMx%z=?_C{!4G{J^B0}&ht~OTzF?kRT+q~zC#L6VHqp|oh7Y&gqt7FE})s;%&8ra zy}{%;?Ou4TNXXxlQ^7}O(T$F3`psqN*p!z*{W2+jx4v|%@sl<(J4w1Y7GR*WPfsXB z@ot%VcHKSnlG}E0$h(B#?9f%tsFTT>$@f@UKPe@f{xVCs4?D{oa9x@PEw&uCs$x?S zeEIpSe!HL27SuTxw0RcrW;GZjT)baMSGZ2&3Lcuj8_C9f_ULqZE z*G5j4d!aS@!J&h`b&_Vi&{97#3x9D!aT4sHuAT9xs1FHHNTWTvcbbbbdZ`~+ot~Aj9<|I3xWjhg6N3_ z0|Ls200N@?|A8QFo!nf>Qw;4?&9O%FZU?Dl*Yj==^|KIG2Pe5c7jqkG=Bn5Jmbiud zbui7DVTPgp$EEGYP|KVIhWanG0{4HFoNG7}dK|~6SaKO9x#TEx5~)P0r6qADx49If zREyNIk=xwoGK-b#!I<3EoDk-cgqd7ZCt_@qnhcdo9Cyat&gz`!smH5xe*fqBzx#fl z|L@J`&Hs5mWU@-Dyo{xGm$8h0x%kfN0i3W5UAxgZ?wA`r5ih_0ck!^>=ih)wR{D8? z*}OpRlo}`Ov$b15AN|?^Ec%Z$y%G{m^CXA(u2%DF?7DRw2vwv-MdBf)3aqr*v0y!v zsS35oZ2Ms()U$Lmk%`nZ^~SN-#_c-oXRkITta+BlJcqOl%jzma8r)-eLOQ1j znE3qUDLCH8BD~Xc0nhFN;ww%@b>hHj7gghPdJJk1Ap{{zDVwc*|5wZ%^ zG;a{Fh618U#ix!0^*ZKGy?8s>!(8!O>MVx?L*w(QaCUgSc}ss(uxRJ*0^bL*$*f+> z5F3-}7Q^JoNUv!wBd6UsrKUD&gvU4rg=H(AXh>Jzn&UA`>Nc*N=jKv0Zw|f`h+Ig2yNe8$KhH-ykH~P-xonSe7-c-aEiE zSy9vTlTPsX^cmoc>KamobK_b?i&Jv~h<;(F*!ejv5I8+2TlR6%^_*Y9h)$&*#YLLB z-2whY^=-Z5kkKt@CCe^e%?=R;e3t~hU%kb{i90(CLq+td?r59f0)3QO!pa5+k39os zx!9~Zdc>pxW!*K;B%K(jlVR;mTt28P((}=jYA?%cVCKb;MCSRQA4@6AxuY}1Q zu46jfbbs8h1>uxPkzPa3WZuhi}LS3xu;V#I6l;D|atN?4zXoazD%cQm$1 zGA1d<-qcmS{$*8}2poNy=ESM4x|&$~+G>4Y;0oBq#@U1*KL7(Y_(*X3IA}TM;HxpE zkLaN^n`Dh4?(xuP(p^x9%5b3V(LszvCOA~Y{_C^2xg6s=y0;H@rn@7;!kJH-vId1* zlJu+Wb7svWm?p9#jR6^TZkZPve^CjQjf=4$+{^Kwc1f)f%@8Fd^ToJTUM6x329?)U zfwS61T-(^#UlX=2K$_4N0N{t&SE+cPqXiWJ!2S7;*;l}|pXOiB?=9CGzMF%amB8Op z0z0r^FoL?D1i_nwn|-?9Gv6<-lK*4Z-Q2qw&p&#D1P}WU*4}Thwl)_L&>a8}7M#6; zbu2}`?PNqzJ!fCrPA@A*zBzL69NuGJDT24K79=$!KctSQ@6WH4fETUy8qB{x9U|tj%9w2(#laRf*zl=!65mQ&EGPp@i`aTe zp{YFp|KNi(nK&*JrhqlHELz0ZuLm1AM+QuA7^6o;BYPbEs^egdY@gTV9}gREZAT}* ztW9GD<-mMXtfoo!%_j^91A{2y?0YGOLl8K1>ep@ZK0O(SvOCSWZXW`S#1d&W^hC|M FzX4j+%!>d3 literal 41722 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

    DerOOw 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 literal 76677 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 diff --git a/objects/RightUpperTilt6AxisEV3/target/target.xml b/objects/RightUpperTilt6AxisEV3/target/target.xml index b492adf..e2ade55 100644 --- a/objects/RightUpperTilt6AxisEV3/target/target.xml +++ b/objects/RightUpperTilt6AxisEV3/target/target.xml @@ -1,6 +1,6 @@ - + diff --git a/objects/TopForearm6AxisEV3/index.html b/objects/TopForearm6AxisEV3/index.html index a2e836c..8db9649 100644 --- a/objects/TopForearm6AxisEV3/index.html +++ b/objects/TopForearm6AxisEV3/index.html @@ -153,10 +153,10 @@ data.height.value = height; var scaledData = scaleData(data); if(is_touched){ - writeSpeed("Horizontal Touch_ft",scaledData.touchX,.3,.125,.6,"logistic",true); - writeSpeed("Vertical Touch_ft",scaledData.touchY,.35,.075,.5,"logistic",true); - writeSpeed("Height Tracking_ft",scaledData.height,.375,.06,.55,"exponential",true); - writeSpeed("pitch_ft",scaledData.pitch,.5,.05,.3,"linear",true); + writeSpeed("Horizontal Touch_ft",1-scaledData.touchX,.3,.125,.6,"logistic",true); + writeSpeed("Vertical Touch_ft",1-scaledData.touchY,.35,.075,.5,"logistic",true); + writeSpeed("Height Tracking_ft",1-scaledData.height,.375,.06,.55,"exponential",true); + writeSpeed("pitch_ft",1-scaledData.pitch,.5,.05,.3,"linear",true); // hybridObj.write("pitch",pitch); // hybridObj.write("height", height); // hybridObj.write("displacement_x",(touchX - touchstartX_point)); diff --git a/objects/TopForearm6AxisEV3/object.json b/objects/TopForearm6AxisEV3/object.json index 2a50ab3..906b3c0 100644 --- a/objects/TopForearm6AxisEV3/object.json +++ b/objects/TopForearm6AxisEV3/object.json @@ -1,10 +1,10 @@ { "objectId": "TopForearm6AxisEV3Zg1zey40sedb", "name": "TopForearm6AxisEV3", - "ip": "192.168.1.21", + "ip": "192.168.1.120", "version": "1.7.0", "protocol": "R1", - "tcs": null, + "tcs": "2eegD3", "x": 0, "y": 0, "scale": 1, diff --git a/objects/TopForearm6AxisEV3/target/target.dat b/objects/TopForearm6AxisEV3/target/target.dat index daf93392c6baf4580e90478065baac244035a9ae..8851cab358d9eeb638bf1b36b343ca618cbacc2e 100644 GIT binary patch literal 86281 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%0A|Y0K$sZiD^b<4_rn7Wq0SUhoK-pTp2NmuuVQP#| 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 M^#t$wFzdtq2RDENjQ{`u diff --git a/objects/TopForearm6AxisEV3/target/target.jpg b/objects/TopForearm6AxisEV3/target/target.jpg index c46d887d757a641b77a86c4c900b5792fb079766..06ea6319c2ca00324ca4b1181434d6ed8bb93b57 100644 GIT binary patch literal 60276 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

    ;(^O_PMy=8k!s)yr|i$%NSc6l}s^Fu|~d zZ%^1%?WGHt!iY?M9zos}xTY14QT@fE9S7rvh<}ui3!mvVo{jd+7JK4k3V#2t*P^}< zlz1~5{{@jA2C>F`2zy$zCjSRgX_3^iQ3Af6aOYQyt1|R@UUmfY%&SBG|yP zf%I)T{WBwRKY6bYHPhSeO;lWepAv>D!^#)aDew(_)s5Ikm3N`Nhr;nm?(5$3WMvteNwGv(L;eeC0@26f zarqVvjv@|^;~;PfUU@nK!u)7rm#Wx(F{~rtVVcEj?N0y#@Fs5vCRWMH2~3u?gPTuo z7GutSg_d+~&*r?s`gYDDQO+)&XQk{7(p^w*!=&uePm-|g^OD+}o&1HUxJr{+yF%;P zor+7T6i0l_Lh~tDtCWhWI8?(Ga1$QMh?LTP5kFqV+v(aqNHNj z-OzjPChsQLja?euSPH%ANYb5ixV6{;r!c+x80YNEEnRV=lOL+hbzc>w0n9B*L?^g{ z(=_3S^X;&*U)<}x?@ld$s7 z-ng)Zd{;EnM(vX^&JI?8pQaxYDlMPu%I2t`Fq-zS?9RMD;aQg0GU((qIAj5+@t{xg zbjB^511ESw(#)x%rgWDV9m{JdAC#svLd5J7R8rZJ)(#eR%6v2Qyl24vnI ziK+&tgGcLq@R%aSt!gtKWM&Q3$a=_%j-Jy`hY(VLx7ECotRQT)9cZ%jX0{_8_g;U~@H;*UT`bO)OJt_ZV_0b{v;nHr# zRW|q{C$e&eHpmW8wagVcM172ZfGObD^W>sl57gPTRlZ2xTFSd-0F4iK9e4iOMjq=F zOqp6Hf>N`L68Dv(WNOHjMBZ5s7SxbzM%rO+Q1MbJ`i1oVDY5PlS7rs^Z1bTev>L4i zgEDEU7x7V%{D^=JTkfN-U*jX9$=w>K78cWOw|;rTNYBcuJB~TZ2VYZ`NrYs7iFfc_ zet)j^6wt9Me^Q_Yb4R)H`ES%0Ix_4gZw?|q%7_S-M`$fTxPS+5ix*Ygmg-^c=fKqKPHESO|F#wh zVNo(v)TC=UOmb(w^f&0TZ0mz0x56?z?>&)?x;e+=6m8-Y7lb+CMBn_2-GeLoxzhx% z3rMS^cgyGjB7Q#U;K=!)WH#R8aOV3k>6z+nTkjDC>l`AYvoIp&ox3@jwq zwj#~&;=YMil&M0AzO;*QT`eG3&e&C=v#!gF`!$lZohvc$Q6%M#8%?3{&oZ9rT6X7L;!Yw^@e!Sp4?Dg+I$z0dYGKYncl_BPG~p3 zk~`XCZ#d)4$*2>OSb$%~BK6HReY*1YkK>VWZRvCCSCT0bMYXgw41)UTrSRC2ZEL)~ zl4BqaGG+m2-DjXKwS&!z>LK+n9_Cvb$(5%n86Xz(qr8z|ewm@$kR!YJ_fQ4%)yn)6 zZ3{u|8%t?;1D0YMIR4o45%Ch{!RT>0op3SHL&Ey9Rng0)h{J@`p~l#zu3!z>uIzOa zo!jM9QZw?)lwhW#@RHBXpKJ)u16YBy8tp=Hz??GqDfM$kNR4%F+wRrvODxxch&rRz z#>$A~`CvqYTZ-MrNTrAs8C)y#t9xGW^UEx7@Abuh>AYj&IzbX7 zGEe_#^V3wYevo)9C&|illg6Gm@nUP#G7n|Ga&bdz8d9DMl%^E*ap?H6SWump?B;2I z-@B+kWzs|PDZLsv@I%~5d%`I{a!ur3p=6Xbv3;{rcPW(w>rXKizh(PC^`p`Gn+H-O zY$M241Ldj9H0F#YdIX2Zkiu_}1a*x*Ko7xbGKX$3+k(lZQ)m$R07t`OVK68Nb_wt1 zIGh!b%u-(tNPc>ElB$pAGSGyVYZe#5BsSbplMX6J*Vg6UblRU_w44U1u`3BEX|D^ zM4J<(MifC_y{&2V&w@?sSs%dp?}PqB`TsAEXet2q(LaT!|N4mhZ$R?=e-`Zj%hz

    @vlbD0b$U< zK$A8b_4iIWTU52sNf{;seL+BaEAjD)mz!}D55b}pX0{?jc34A39AP{S+ yEeBT=O8{Yk2vy)eR{`Qe|6KD=cvj%fg^=`$SwN(JKS~quT;vYpnws3dm;VRDTQ0)@ literal 21363 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 xkN6l0A$u5*Sc6Iub&-{ - + diff --git a/objects/TopUpperTilt6AxisEV3/object.json b/objects/TopUpperTilt6AxisEV3/object.json index ee0e2c3..c503e7a 100644 --- a/objects/TopUpperTilt6AxisEV3/object.json +++ b/objects/TopUpperTilt6AxisEV3/object.json @@ -1,10 +1,10 @@ { "objectId": "TopUpperTilt6AxisEV36pb1j09z64s3", "name": "TopUpperTilt6AxisEV3", - "ip": "192.168.1.21", + "ip": "192.168.1.120", "version": "1.7.0", "protocol": "R1", - "tcs": null, + "tcs": "3TaL1s", "x": 0, "y": 0, "scale": 1, diff --git a/objects/TopUpperTilt6AxisEV3/target/target.dat b/objects/TopUpperTilt6AxisEV3/target/target.dat index 457ec76b8d29e8f16cd76dd8a37bfb04907c50ae..9e8a44325359d37b5a9b7c1069b9932997ff22b3 100644 GIT binary patch literal 94992 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 KMj2M3wf_Zou|CrP literal 38960 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 literal 74919 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 - + diff --git a/server.js b/server.js index 16ec7ef..2bb8981 100644 --- a/server.js +++ b/server.js @@ -1791,7 +1791,7 @@ function messagetoSend(msgContent, socketID) { function objectEngine(object, node, objects, nodeAppearanceModules) { // cout("engine started"); - + // process.stdout.write("."); /** If(Logic Node){ nodeAppearanceModules["logic"](object, linkKey, thisNode.item, function (object, link, processedData) { enginePostProcessing(object, link, processedData); From 7a521e79ef04dd8e45304fe395800364622dc948 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Mon, 21 Nov 2016 18:11:34 -0500 Subject: [PATCH 193/266] logic Blocks are supported now --- hardwareInterfaces/EV3/index.js | 2 +- libraries/hardwareInterfaces.js | 4 +- libraries/logicBlocks/default/gui/index.html | 12 + libraries/logicBlocks/default/gui/style.css | 0 libraries/logicBlocks/default/icon.png | Bin 0 -> 22410 bytes libraries/logicBlocks/default/index.js | 85 ++ libraries/logicBlocks/delay/gui/index.html | 41 + libraries/logicBlocks/delay/gui/style.css | 53 + libraries/logicBlocks/delay/icon.png | Bin 0 -> 22410 bytes libraries/logicBlocks/delay/index.js | 87 ++ libraries/logicBlocks/switch/gui/index.html | 43 + libraries/logicBlocks/switch/gui/style.css | 88 ++ libraries/logicBlocks/switch/icon.png | Bin 0 -> 18795 bytes libraries/logicBlocks/switch/index.js | 105 ++ .../logicBlocks/threshold/gui/index.html | 101 ++ libraries/logicBlocks/threshold/gui/style.css | 100 ++ libraries/logicBlocks/threshold/icon.png | Bin 0 -> 17709 bytes libraries/logicBlocks/threshold/index.js | 108 ++ libraries/logicInterfaces.js | 47 + .../nodes/{logicNode => logic}/gui/index.html | 0 libraries/nodes/{logicNode => logic}/index.js | 0 libraries/objectDefaultFiles/object.js | 115 +- objects/knop1/bird.png | Bin 0 -> 16296 bytes objects/knop1/index.html | 12 + objects/knop1/object.json | 62 + objects/knop1/target/target.dat | Bin 0 -> 81422 bytes objects/knop1/target/target.jpg | Bin 0 -> 20255 bytes objects/knop1/target/target.xml | 6 + objects/lamp1/bird.png | Bin 0 -> 16296 bytes objects/lamp1/icon_off.svg | 19 + objects/lamp1/icon_on.svg | 29 + objects/lamp1/index.html | 235 ++++ objects/lamp1/knob-min.js | 490 ++++++++ objects/lamp1/object.json | 67 + objects/lamp1/target/target.dat | Bin 0 -> 89917 bytes objects/lamp1/target/target.jpg | Bin 0 -> 18712 bytes objects/lamp1/target/target.xml | 6 + objects/lamp2/bird.png | Bin 0 -> 16296 bytes objects/lamp2/icon_off.svg | 19 + objects/lamp2/icon_on.svg | 29 + objects/lamp2/index.html | 235 ++++ objects/lamp2/knob-min.js | 490 ++++++++ objects/lamp2/object.json | 85 ++ objects/lamp2/target/target.dat | Bin 0 -> 80424 bytes objects/lamp2/target/target.jpg | Bin 0 -> 17140 bytes objects/lamp2/target/target.xml | 6 + server.js | 307 ++++- temp | 41 + tempJson | 1104 +++++++++++++++++ 49 files changed, 4195 insertions(+), 38 deletions(-) create mode 100644 libraries/logicBlocks/default/gui/index.html create mode 100644 libraries/logicBlocks/default/gui/style.css create mode 100644 libraries/logicBlocks/default/icon.png create mode 100755 libraries/logicBlocks/default/index.js create mode 100644 libraries/logicBlocks/delay/gui/index.html create mode 100644 libraries/logicBlocks/delay/gui/style.css create mode 100644 libraries/logicBlocks/delay/icon.png create mode 100755 libraries/logicBlocks/delay/index.js create mode 100644 libraries/logicBlocks/switch/gui/index.html create mode 100644 libraries/logicBlocks/switch/gui/style.css create mode 100644 libraries/logicBlocks/switch/icon.png create mode 100755 libraries/logicBlocks/switch/index.js create mode 100644 libraries/logicBlocks/threshold/gui/index.html create mode 100644 libraries/logicBlocks/threshold/gui/style.css create mode 100644 libraries/logicBlocks/threshold/icon.png create mode 100755 libraries/logicBlocks/threshold/index.js create mode 100644 libraries/logicInterfaces.js rename libraries/nodes/{logicNode => logic}/gui/index.html (100%) rename libraries/nodes/{logicNode => logic}/index.js (100%) create mode 100644 objects/knop1/bird.png create mode 100644 objects/knop1/index.html create mode 100644 objects/knop1/object.json create mode 100644 objects/knop1/target/target.dat create mode 100644 objects/knop1/target/target.jpg create mode 100644 objects/knop1/target/target.xml create mode 100644 objects/lamp1/bird.png create mode 100755 objects/lamp1/icon_off.svg create mode 100755 objects/lamp1/icon_on.svg create mode 100755 objects/lamp1/index.html create mode 100755 objects/lamp1/knob-min.js create mode 100644 objects/lamp1/object.json create mode 100644 objects/lamp1/target/target.dat create mode 100644 objects/lamp1/target/target.jpg create mode 100644 objects/lamp1/target/target.xml create mode 100644 objects/lamp2/bird.png create mode 100755 objects/lamp2/icon_off.svg create mode 100755 objects/lamp2/icon_on.svg create mode 100644 objects/lamp2/index.html create mode 100755 objects/lamp2/knob-min.js create mode 100644 objects/lamp2/object.json create mode 100644 objects/lamp2/target/target.dat create mode 100644 objects/lamp2/target/target.jpg create mode 100644 objects/lamp2/target/target.xml create mode 100644 temp create mode 100644 tempJson diff --git a/hardwareInterfaces/EV3/index.js b/hardwareInterfaces/EV3/index.js index a1a8537..157a5b4 100755 --- a/hardwareInterfaces/EV3/index.js +++ b/hardwareInterfaces/EV3/index.js @@ -47,7 +47,7 @@ /** * Set to true to enable the hardware interface **/ -exports.enabled = true; +exports.enabled = false; if (exports.enabled) { diff --git a/libraries/hardwareInterfaces.js b/libraries/hardwareInterfaces.js index 4208fe8..5fa5922 100644 --- a/libraries/hardwareInterfaces.js +++ b/libraries/hardwareInterfaces.js @@ -27,6 +27,7 @@ var objectLookup; var globalVariables; var dirnameO; var nodeAppearanceModules; +var blockModules; var callback; var Node; var hardwareObjects = {}; @@ -187,12 +188,13 @@ exports.getDebug = function () { /** * @desc setup() DO NOT call this in your hardware interface. setup() is only called from server.js to pass through some global variables. **/ -exports.setup = function (objExp, objLookup, glblVars, dir, appearances, cb, objValue) { +exports.setup = function (objExp, objLookup, glblVars, dir, appearances, blocks, cb, objValue) { objects = objExp; objectLookup = objLookup; globalVariables = glblVars; dirnameO = dir; nodeAppearanceModules = appearances; + blockModules = blocks; callback = cb; Node = objValue; }; diff --git a/libraries/logicBlocks/default/gui/index.html b/libraries/logicBlocks/default/gui/index.html new file mode 100644 index 0000000..f00e318 --- /dev/null +++ b/libraries/logicBlocks/default/gui/index.html @@ -0,0 +1,12 @@ + + + + + Setup Slider + + + + + + + diff --git a/libraries/logicBlocks/default/gui/style.css b/libraries/logicBlocks/default/gui/style.css new file mode 100644 index 0000000..e69de29 diff --git a/libraries/logicBlocks/default/icon.png b/libraries/logicBlocks/default/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f75613d4f5eedc73d272ff4f3fb5a54f522da06 GIT binary patch literal 22410 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

    d4fqNH5QG`(J*@%%`q{Y>U(PnM6{X z7a#W0);Waw=qoO`LBtMSs3M&agS8!qQ`3)Z#2%>C?Lk#p(9#iwbAx42NS<=J3r6o-NInpKMpqdM_}6 zgPt#6%xV~ZigazuoK&Bf(O59+c$cN;4}NX=+iS)RwnO*41L;=o6Ji59{t12cOIgp^pRH#-WDH7t4Sn+b;E z19rW&CC_LhKD>#l5p?x@ZUn3%yc`T3h@ka{rOrWH5 z>ose`cyB^(Za7XgdiH|g7o=^2bZ|O2p)ZK^N@;pM)kKZ-Pjb(!Q3^NanwYml4JGF_ z_8Row^n5}8q>EmQJqo-osgrB<4S~)^y@Ie@S^0>Vw731VNgU-&%f@x;X$1O(%?!e0 z*C>bFrlnasyP)wG70aK~g@mk`aMC}`&1K^})B7Or(cI&aRb?3Agv%=(hj)0c>5?F4sJ)0p@`?$w#ABBiUR_fc+n zu!nC1LkmRr4oQQ0@%Y$jNz0tI(^SX9G3-58*p~Mlcw&>BEc5Aeb5Q)@;8i+J~nEcF+FBKCrSe!ls&Sf*7S{aU`Uh<>Xa~;c++F-maSs8Na@qXT7~RG0$~sSpP?%R`>>+>*IxBowK_1?isegTW^r zo{wzs`+&&muZ0gn-a0MK4+#38m$H2&NHM=pfX5ve{HTKC_#z$UJa`dMZtXG-imrh$ zx`N6|raYTq=Z*CK|FXWwBU0pAn@1YWzNxm6_z>O zWqBZ{Fn-9_zikDXyaW#G=f}s#jm`B|xxv9j4`kuPLKnB}gbr;)Fe>?)IW04b zm@ZyqfTDPTAgFuV4LJsmQrha%4)i=A4QVqemA9q3ajl1#fB*#+#oUVhGwXulVyW59 zYL1E8>cek0H^j_4auh^ + + + + Setup Slider + + + + +
    0 ms
    +
    + + + diff --git a/libraries/logicBlocks/delay/gui/style.css b/libraries/logicBlocks/delay/gui/style.css new file mode 100644 index 0000000..e837228 --- /dev/null +++ b/libraries/logicBlocks/delay/gui/style.css @@ -0,0 +1,53 @@ +body { + background-color: dimgray; +} +input[type=range] { + background-color: transparent; + -webkit-appearance: none; + +} + +input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + height: 68px; /* Must add six because this width includes the border */ + background-color: rgba(255, 255, 255, 0); + -webkit-backdrop-filter: blur(4px); + border: solid 4px #00edff; + border-radius: 8px; + padding: 5px; +} + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 50px; + width: 50px; + border-radius: 2px; + background: #00edff; +} + +.range-slider input[type="range"]:after { + height: 2px; + background: #fff; + content: ' '; + width: 5px; + top: 50%; + margin-top: -1px; + left: -5px; + z-index: 1; + position: absolute; +} + +input[type=range]:focus { + outline: none; +} +#number { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: xx-large; + font-weight: 700; + color: #00ffff; + align: center; + text-align: center; + position: relative; + top:50px; +} \ No newline at end of file diff --git a/libraries/logicBlocks/delay/icon.png b/libraries/logicBlocks/delay/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f75613d4f5eedc73d272ff4f3fb5a54f522da06 GIT binary patch literal 22410 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
    d4fqNH5QG`(J*@%%`q{Y>U(PnM6{X z7a#W0);Waw=qoO`LBtMSs3M&agS8!qQ`3)Z#2%>C?Lk#p(9#iwbAx42NS<=J3r6o-NInpKMpqdM_}6 zgPt#6%xV~ZigazuoK&Bf(O59+c$cN;4}NX=+iS)RwnO*41L;=o6Ji59{t12cOIgp^pRH#-WDH7t4Sn+b;E z19rW&CC_LhKD>#l5p?x@ZUn3%yc`T3h@ka{rOrWH5 z>ose`cyB^(Za7XgdiH|g7o=^2bZ|O2p)ZK^N@;pM)kKZ-Pjb(!Q3^NanwYml4JGF_ z_8Row^n5}8q>EmQJqo-osgrB<4S~)^y@Ie@S^0>Vw731VNgU-&%f@x;X$1O(%?!e0 z*C>bFrlnasyP)wG70aK~g@mk`aMC}`&1K^})B7Or(cI&aRb?3Agv%=(hj)0c>5?F4sJ)0p@`?$w#ABBiUR_fc+n zu!nC1LkmRr4oQQ0@%Y$jNz0tI(^SX9G3-58*p~Mlcw&>BEc5Aeb5Q)@;8i+J~nEcF+FBKCrSe!ls&Sf*7S{aU`Uh<>Xa~;c++F-maSs8Na@qXT7~RG0$~sSpP?%R`>>+>*IxBowK_1?isegTW^r zo{wzs`+&&muZ0gn-a0MK4+#38m$H2&NHM=pfX5ve{HTKC_#z$UJa`dMZtXG-imrh$ zx`N6|raYTq=Z*CK|FXWwBU0pAn@1YWzNxm6_z>O zWqBZ{Fn-9_zikDXyaW#G=f}s#jm`B|xxv9j4`kuPLKnB}gbr;)Fe>?)IW04b zm@ZyqfTDPTAgFuV4LJsmQrha%4)i=A4QVqemA9q3ajl1#fB*#+#oUVhGwXulVyW59 zYL1E8>cek0H^j_4auh^ + + + + Setup Slider + + + + +
    + + + + + + + diff --git a/libraries/logicBlocks/switch/gui/style.css b/libraries/logicBlocks/switch/gui/style.css new file mode 100644 index 0000000..f9dcf3b --- /dev/null +++ b/libraries/logicBlocks/switch/gui/style.css @@ -0,0 +1,88 @@ +body { + background-color: dimgray; +} +input[type=range] { + background-color: transparent; + -webkit-appearance: none; + +} + +input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + height: 68px; /* Must add six because this width includes the border */ + background-color: rgba(255, 255, 255, 0); + -webkit-backdrop-filter: blur(4px); + border: solid 4px #00edff; + border-radius: 8px; + padding: 5px; +} + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 50px; + width: 50px; + border-radius: 2px; + background: #00edff; +} + +.range-slider input[type="range"]:after { + height: 2px; + background: #fff; + content: ' '; + width: 5px; + top: 50%; + margin-top: -1px; + left: -5px; + z-index: 1; + position: absolute; +} + +input[type=range]:focus { + outline: none; +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: xx-large; + font-weight: 700; + color: #00ffff; + align: center; + text-align: center; + position: relative; + top:50px; +} + +/* HTML5 Boilerplate radio-one hidden styles */ +[type="radio"] { + border: 0; + height: 1px; margin: -1px; + padding: 0; + position: absolute; + width: 1px; + display: none; +} + +/* One radio button per line */ +label { + display: block; + cursor: pointer; /*hand view when on hover*/ + line-height: 2.5; + font-size: 1.5em; +} + +/* the basic, unchecked style */ +[type="radio"] + span:before { + content: ''; + display: inline-block; + width: 1em; + height: 1em; + vertical-align: -0.25em; + border-radius: 1em; /*hard border*/ + border: 0.125em solid #00ffff; + margin-right: 0.75em; +} + +/* the checked style using the :checked pseudo class */ +[type="radio"]:checked + span:before { + background: #00ffff; +} diff --git a/libraries/logicBlocks/switch/icon.png b/libraries/logicBlocks/switch/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..37adaf482b9c5a1597859a7bf40da79b6e38f4a4 GIT binary patch literal 18795 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 + + + + Setup Slider + + + + +
    0 ms
    +
    +
    +
    + +
    + + + + +
    + +
    + + + + + + + + diff --git a/libraries/logicBlocks/threshold/gui/style.css b/libraries/logicBlocks/threshold/gui/style.css new file mode 100644 index 0000000..7c7d84d --- /dev/null +++ b/libraries/logicBlocks/threshold/gui/style.css @@ -0,0 +1,100 @@ +body { + background-color: dimgray; +} +input[type=range] { + background-color: transparent; + -webkit-appearance: none; + +} + +input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + height: 68px; /* Must add six because this width includes the border */ + background-color: rgba(255, 255, 255, 0); + -webkit-backdrop-filter: blur(4px); + border: solid 4px #00edff; + border-radius: 8px; + padding: 5px; +} + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 50px; + width: 50px; + border-radius: 2px; + background: #00edff; +} + +.range-slider input[type="range"]:after { + height: 2px; + background: #fff; + content: ' '; + width: 5px; + top: 50%; + margin-top: -1px; + left: -5px; + z-index: 1; + position: absolute; +} + +input[type=range]:focus { + outline: none; +} +#number { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: xx-large; + font-weight: 700; + color: #00ffff; + align: center; + text-align: center; + position: relative; + top:50px; +} + + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: xx-large; + font-weight: 700; + color: #00ffff; + align: center; + text-align: center; + position: relative; + top:50px; +} + +/* HTML5 Boilerplate radio-one hidden styles */ +[type="radio"] { + border: 0; + height: 1px; margin: -1px; + padding: 0; + position: absolute; + width: 1px; + display: none; +} + +/* One radio button per line */ +label { + display: block; + cursor: pointer; /*hand view when on hover*/ + line-height: 1.5; + font-size: 1.5em; +} + +/* the basic, unchecked style */ +[type="radio"] + span:before { + content: ''; + display: inline-block; + width: 1em; + height: 1em; + vertical-align: -0.25em; + border-radius: 1em; /*hard border*/ + border: 0.125em solid #00ffff; + margin-right: 0.75em; +} + +/* the checked style using the :checked pseudo class */ +[type="radio"]:checked + span:before { + background: #00ffff; +} diff --git a/libraries/logicBlocks/threshold/icon.png b/libraries/logicBlocks/threshold/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..712def1c66449ebc296befb515bcbfac0be169aa GIT binary patch literal 17709 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 literal 0 HcmV?d00001 diff --git a/libraries/logicBlocks/threshold/index.js b/libraries/logicBlocks/threshold/index.js new file mode 100755 index 0000000..f21cd6a --- /dev/null +++ b/libraries/logicBlocks/threshold/index.js @@ -0,0 +1,108 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkID the id of the link that is related to the call + * @param {object} inputData the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ +var outputData = []; + +var setup = { + name : "threshold", + blockSize : 1, + privateData : {}, + publicData : {threshold : 0.5, direction:">", digital:true}, + activeInputs : [true, false, false, false], + activeOutputs : [true, false, false, false], + iconImage : "icon.png", + nameInput : ["stream in", "", "", ""], + nameOutput : ["stream out", "", "", ""], + text : "threshold" +}; + +exports.setup = setup; + +//var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); + + +exports.render = function (objectID, logicID, linkID, inputData, callback) { + + // check orientations and calculate if threshold is meet. + var pass = false; + if(setup.publicData.direction = ">") + { + if(inputData[0][number] > setup.publicData.threshold){ + pass = true; + } + } else if(setup.publicData.direction = "<") + { + if(inputData[0][number] < setup.publicData.threshold){ + pass = true; + } + } + + var outputData = [{},{},{},{}]; + var key; + + for (key in inputData[0]) { + outputData[0][key] = inputData[0][key]; + } + + // calculate final output + if(pass){ + if(setup.publicData.digital){ + outputData[0][number] = 1; + } + } else { + outputData[0][number] = 0; + } + + callback(objectID, linkID, outputData); +}; \ No newline at end of file diff --git a/libraries/logicInterfaces.js b/libraries/logicInterfaces.js new file mode 100644 index 0000000..9c84807 --- /dev/null +++ b/libraries/logicInterfaces.js @@ -0,0 +1,47 @@ + + + +exports.writePublicData = function () { }; +exports.writePrivateData = function () { }; + +exports.readPublicData = function () { }; +exports.readPrivateData = function () { }; + +exports.shape = function () { }; + +exports.activeInputs = function () { }; +exports.activeInputs = function () { }; + + + +this.name = ""; + +this.x = null; +this.y = null; +// amount of elements the IO point is created of. Single IO nodes have the size 1. +this.blockSize = 1; +// the global / world wide id of the actual reference block design. +this.globalId = null; +// the checksum should be identical with the checksum for the persistent package files of the reference block design. +this.checksum = null; // checksum of the files for the program +// data for logic blocks. depending on the blockSize which one is used. +this.item = [new Data(), new Data(), new Data(), new Data()]; +// experimental. This are objects for data storage. Maybe it makes sense to store data in the general object +// this would allow the the packages to be persistent. // todo discuss usability with Ben. +this.privateData = {}; +this.publicData = {}; + +// IO for logic +// define how many inputs are active. +this.activeInputs = [true, false, false, false]; +// define how many outputs are active. +this.activeOutputs = [true, false, false, false]; +// define the names of each active IO +this.nameInput = ["", "", "", ""]; +this.nameOutput = ["", "", "", ""]; +// A specific icon for the node, png or jpg. +this.iconImage = null; +// Text within the node, if no icon is available. +this.text = ""; +// indicates how much calls per second is happening on this block +this.stress = 0; \ No newline at end of file diff --git a/libraries/nodes/logicNode/gui/index.html b/libraries/nodes/logic/gui/index.html similarity index 100% rename from libraries/nodes/logicNode/gui/index.html rename to libraries/nodes/logic/gui/index.html diff --git a/libraries/nodes/logicNode/index.js b/libraries/nodes/logic/index.js similarity index 100% rename from libraries/nodes/logicNode/index.js rename to libraries/nodes/logic/index.js diff --git a/libraries/objectDefaultFiles/object.js b/libraries/objectDefaultFiles/object.js index 12ecd27..1124393 100644 --- a/libraries/objectDefaultFiles/object.js +++ b/libraries/objectDefaultFiles/object.js @@ -45,6 +45,9 @@ var realityObject = { node: "", object: "", + logic: "", + block: "", + publicData: {}, modelViewMatrix: [], projectionMatrix: [], visibility: "visible", @@ -57,7 +60,7 @@ var realityObject = { socketIoRequest: {}, style: document.createElement('style'), messageCallBacks: {}, - version: 170 + version: 200 }; // adding css styles nessasary for acurate 3D transformations. @@ -121,6 +124,25 @@ realityObject.messageCallBacks.mainCall = function (msgContent) { realityObject.node = msgContent.node; realityObject.object = msgContent.object; } + else if (typeof msgContent.logic !== "undefined") { + + parent.postMessage(JSON.stringify( + { + version: realityObject.version, + block: msgContent.block, + logic: msgContent.logic, + object: msgContent.object, + publicData: msgContent.publicData + } + ) + // this needs to contain the final interface source + , "*"); + + realityObject.block = msgContent.block; + realityObject.logic = msgContent.logic; + realityObject.object = msgContent.object; + realityObject.publicData = msgContent.publicData; + } if (typeof msgContent.modelViewMatrix !== "undefined") { realityObject.modelViewMatrix = msgContent.modelViewMatrix; @@ -478,4 +500,95 @@ function HybridObject() { console.log("socket.io is not working. This is normal when you work offline."); } +} + +// these are functions used for the setup of logic blocks + +function HybridLogic() { + this.publicData = realityObject.publicData; + + this.readPublicData = function (valueName, value) { + if (!value) value = 0; + + if (typeof realityObject.publicData[valueName] === "undefined") { + realityObject.publicData[valueName] = value; + return value; + } else { + return realityObject.publicData[valueName]; + } + } + + if (typeof io !== "undefined") { + var _this = this; + + this.ioObject = io.connect(); + this.oldNumberList = {}; + + /** + ************************************************************ + */ + + this.writePublicData = function (valueName, value) { + + realityObject.publicData[valueName] = value; + + this.ioObject.emit('block/publicData', JSON.stringify({ + object: realityObject.object, + logic: realityObject.logic, + block: realityObject.block, + publicData: realityObject.publicData + })); + + parent.postMessage(JSON.stringify( + { + version: realityObject.version, + block: realityObject.block, + logic: realityObject.logic, + object: realityObject.object, + publicData: realityObject.publicData + } + )); + + }; + + this.writePrivateData = function (valueName, value) { + + var thisItem = {}; + thisItem[valueName] = value; + + this.ioObject.emit('block/privateData', JSON.stringify({ + object: realityObject.object, + logic: realityObject.logic, + block: realityObject.block, + privateData: thisItem + })); + }; + + console.log("socket.io is loaded"); + } + else { + + /** + ************************************************************ + */ + this.ioObject = { + on: function (x, cb) { + } + }; + + /** + ************************************************************ + */ + this.writePrivateData = function (valueName, value) { + }; + + /** + ************************************************************ + */ + this.writePublicData = function (valueName, value) { + }; + + console.log("socket.io is not working. This is normal when you work offline."); + } + } \ No newline at end of file diff --git a/objects/knop1/bird.png b/objects/knop1/bird.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/knop1/index.html b/objects/knop1/index.html new file mode 100644 index 0000000..b581f8f --- /dev/null +++ b/objects/knop1/index.html @@ -0,0 +1,12 @@ + + + + +Default UI + + + + + + + diff --git a/objects/knop1/object.json b/objects/knop1/object.json new file mode 100644 index 0000000..6907a59 --- /dev/null +++ b/objects/knop1/object.json @@ -0,0 +1,62 @@ +{ + "objectId": "knop1xe35ycj6l5xy", + "name": "knop1", + "ip": "192.168.1.120", + "version": "1.7.0", + "protocol": "R1", + "tcs": "Eq9rz", + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": {}, + "links": { + "gmpqxw13": { + "objectA": "knop1xe35ycj6l5xy", + "objectB": "lamp2CH73qpztykp3", + "nodeA": "knop1xe35ycj6l5xyscale", + "nodeB": "lamp2CH73qpztykp3button", + "logicA": false, + "logicB": false, + "namesA": [ + "knop1", + "scale" + ], + "namesB": [ + "lamp2", + "button" + ], + "loop": false + } + }, + "nodes": { + "knop1xe35ycj6l5xyscale": { + "name": "scale", + "item": [ + { + "number": 0.7875, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + {}, + {}, + {} + ], + "x": 93, + "y": -69, + "scale": 1, + "matrix": [], + "appearance": "default", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + } + }, + "logic": {} +} \ No newline at end of file diff --git a/objects/knop1/target/target.dat b/objects/knop1/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..233d4c445a4f835cd92e81fd0bf2bbcbfd830f28 GIT binary patch literal 81422 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%0A^IDvmpHwZ zioSJt(0w51@AyBqKwsS^s|uys=I8H>nx$t;;c#-MRhph|QiQ%$B$eM4G%B03e&C46 z@6!2!zZKS30>qFllK(XvWo%$xhL4XoB|kDcna*4&nc2d z4AhQ@yHr5WDf*u`p%iBj9-cHhWTUC!0);7P1+U6gpRlY!(6G%lzOppb*&FZH2My<>wkgyPu9Q62Hyv8J|B{WXjT>)L1z?wH#GHu^*5j3knekktS!}oUn?}T zTnu%4s3>EV=+p%K8&amHKzogI` zpXnhl&e_I0rKNx0Qg!BpdvoQrDlUiO^G;jALKd5Fq#B;SUg;a$caGc{W5BBwh?6be zhfGv2S~{>@`0{AZz0CoRfqc_~I+Jw6S($i0-dMv%#s9eb7;51dyaYRglNST^z8Oeb zkm{b2*P(&YGe>shR6&|kNt{Az>4*5T(geQ)%NCuj%9cZRwj4wvyBN;y;WCi!>rHg@ zMhZ=3O5k5c8LGqeB0AwI)c2nh4P0sk}ACjGzI z&c)P&&dS03Kg0YdP5w_1AfR}5;QtS4DoBGv{MSCPf5+Fq^@IDro>)}-#E>7)zH*Y# zH3*!gA{>);j2OZa^DpamnuJy&96J99|Ms*g)E{iikU7r`)J@&exGw(FbSA?H@FQ7c zKckNHtm8W40j>4*>AO-)ldifV_P;72RFwKikW>&8hUzENbcSYS)C4`WhYFP7!E4@Z zVii8(qOnm=w4)^QF!%ggDb)1{ciqm}@?l&j9bpk)+AMmwp^LHT72c!5zVU}_-uOW;0pu|v&0%fyPEhkPYQq9337~h2NhTG}E riB!@o34x(P>BH(aiF-|+fXGduDXnR78r3`iG*lt^g8p8@J{$iF@UWiz literal 0 HcmV?d00001 diff --git a/objects/knop1/target/target.jpg b/objects/knop1/target/target.jpg new file mode 100644 index 0000000000000000000000000000000000000000..20c8a739e557671e22292338541c65e22420dcf7 GIT binary patch literal 20255 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 X1uz~BEirLU&uU;9r5!1>PzV3nZL?$R literal 0 HcmV?d00001 diff --git a/objects/knop1/target/target.xml b/objects/knop1/target/target.xml new file mode 100644 index 0000000..1dff198 --- /dev/null +++ b/objects/knop1/target/target.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/objects/lamp1/bird.png b/objects/lamp1/bird.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/lamp1/icon_off.svg b/objects/lamp1/icon_off.svg new file mode 100755 index 0000000..22473c5 --- /dev/null +++ b/objects/lamp1/icon_off.svg @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/objects/lamp1/icon_on.svg b/objects/lamp1/icon_on.svg new file mode 100755 index 0000000..bb3df5c --- /dev/null +++ b/objects/lamp1/icon_on.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + diff --git a/objects/lamp1/index.html b/objects/lamp1/index.html new file mode 100755 index 0000000..948f104 --- /dev/null +++ b/objects/lamp1/index.html @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + +
    +

    50

    + + +
    + + + + + diff --git a/objects/lamp1/knob-min.js b/objects/lamp1/knob-min.js new file mode 100755 index 0000000..b86518b --- /dev/null +++ b/objects/lamp1/knob-min.js @@ -0,0 +1,490 @@ +var Knob; +Knob = function(input, ui) { + var container = document.createElement('div'); + container.setAttribute('tabindex', 0); + input.parentNode.replaceChild(container, input); + input.style.cssText = 'position: absolute; top: -10000px'; + input.setAttribute('tabindex', -1); + container.appendChild(input); + + var settings = this.settings = this._getSettings(input); + + + this.value = input.value = settings.min + settings.range / 2; + this.input = input; + this.min = settings.min; + + this.ui = ui; + input.addEventListener('change', this.changed.bind(this), false); + + var events = { + keydown: this._handleKeyEvents.bind(this), + mousewheel: this._handleWheelEvents.bind(this), + DOMMouseScroll: this._handleWheelEvents.bind(this), + touchstart: this._handleMove.bind(this, 'touchmove', 'touchend'), + mousedown: this._handleMove.bind(this, 'mousemove', 'mouseup') + }; + + for (var event in events) { + container.addEventListener(event, events[event], false); + } + + container.style.cssText = 'position: relative; width:' + settings.width + 'px;' + 'height:' + settings.height + 'px;'; + + ui.init(container, settings); + this.container = container; + this.changed(0); + +}; + +Knob.prototype = { + _handleKeyEvents: function(e) { + var keycode = e.keyCode; + if (keycode >= 37 && keycode <= 40) { + e.preventDefault(); + var f = 1 + e.shiftKey * 9; + this.changed({37: -1, 38: 1, 39: 1, 40: -1}[keycode] * f); + } + }, + + _handleWheelEvents: function(e) { + e.preventDefault(); + var deltaX = -e.detail || e.wheelDeltaX; + var deltaY = -e.detail || e.wheelDeltaY; + var val = deltaX > 0 || deltaY > 0 ? 1 : deltaX < 0 || deltaY < 0 ? -1 : 0; + this.changed(val); + }, + + _handleMove: function(onMove, onEnd) { + this.centerX = Math.floor(this.container.getBoundingClientRect().left)+ document.body.scrollLeft + this.settings.width / 2; + this.centerY = Math.floor(this.container.getBoundingClientRect().top)+ document.body.scrollTop + this.settings.height / 2; + + var fnc = this._updateWhileMoving.bind(this); + var body = document.body; + body.addEventListener(onMove, fnc, false); + body.addEventListener(onEnd, function() { + body.removeEventListener(onMove, fnc, false); + }, false); + }, + + _updateWhileMoving: function(event) { + event.preventDefault(); + var e = event.changedTouches ? event.changedTouches[0] : event; + var x = this.centerX - e.pageX; + var y = this.centerY - e.pageY; + var deg = Math.atan2(-y, -x) * 180 / Math.PI + 90 - this.settings.angleoffset; + var percent; + + if (deg < 0) { + deg += 360; + } + deg = deg % 360; + if (deg <= this.settings.anglerange) { + percent = Math.max(Math.min(1, deg / this.settings.anglerange), 0); + } else { + percent = +(deg - this.settings.anglerange < (360 - this.settings.anglerange) / 2); + } + var range = this.settings.range; + var value = this.min + range * percent; + + var step = (this.settings.max - this.min) / range; + this.value = this.input.value = Math.round(value / step) * step; + this.ui.update(percent, this.value); + }, + + changed: function(direction) { + this.input.value = this.limit(parseFloat(this.input.value) + direction * (this.input.step || 1)); + this.value = this.input.value; + this.ui.update(this._valueToPercent(), this.value); + }, + + + update: function(percent) { + var range = this.settings.range; + var value = this.min + range * percent; + + var step = (this.settings.max - this.min) / range; + this.value = this.input.value = Math.round(value / step) * step; + + + this.ui.update(percent, this.value); + }, + + _valueToPercent: function() { + return this.value != null ? 100 / this.settings.range * (this.value - this.min) / 100 : this.min; + }, + + limit: function(value) { + return Math.min(Math.max(this.settings.min, value), this.settings.max); + }, + + _getSettings: function(input) { + var labels; + + if(input.dataset.labels){ + labels = input.dataset.labels.split(','); + } + var settings = { + max: labels ? labels.length-1 : parseFloat(input.max), + min: labels ? 0 : parseFloat(input.min), + step: parseFloat(input.step) || 1, + angleoffset: 0, + anglerange: 360, + labels: labels + }; + settings.range = settings.max - settings.min; + var data = input.dataset; + for (var i in data) { + if (data.hasOwnProperty(i) && i!=='labels') { + var value = +data[i]; + settings[i] = isNaN(value) ? data[i] : value; + } + } + return settings; + } +}; + + + +var Ui = function() { +}; + +Ui.prototype = { + init: function(parentEl, options) { + this.options || (this.options = {}); + this.merge(this.options, options); + this.width = options.width; + this.height = options.height; + this.createElement(parentEl); + if (!this.components) { + return; + } + this.components.forEach(function(component) { + component.init(this.el.node, options); + }.bind(this)); + }, + + merge: function(dest, src) { + for (var i in src) { + if (src.hasOwnProperty(i)) { + dest[i] = src[i]; + } + } + return dest; + }, + + addComponent: function(component) { + this.components || (this.components = []); + this.components.push(component); + }, + + update: function(percent, value) { + + if (!this.components) { + return; + } + this.components.forEach(function(component) { + component.update(percent, value); + }); + }, + + createElement: function(parentEl) { + this.el = new Ui.El(this.width, this.height); + this.el.create("svg", { + version: "1.2", + baseProfile: "tiny", + width: this.width, + height: this.height + }); + this.appendTo(parentEl); + }, + appendTo: function(parent) { + parent.appendChild(this.el.node); + } + +}; + +Ui.Pointer = function(options) { + this.options = options || {}; + this.options.type && Ui.El[this.options.type] || (this.options.type = 'Triangle'); +}; + +Ui.Pointer.prototype = Object.create(Ui.prototype); + +Ui.Pointer.prototype.update = function(percent) { + this.el.rotate(this.options.angleoffset + percent * this.options.anglerange, this.width / 2, + this.height / 2); +}; + +Ui.Pointer.prototype.createElement = function(parentEl) { + this.options.pointerHeight || (this.options.pointerHeight = this.height / 2); + if (this.options.type == 'Arc') { + this.el = new Ui.El.Arc(this.options); + this.el.setAngle(this.options.size); + } else { + this.el = new Ui.El[this.options.type](this.options.pointerWidth, + this.options.pointerHeight, this.width / 2, + this.options.pointerHeight / 2 + this.options.offset); + } + this.el.addClassName('pointer'); + this.appendTo(parentEl); + +}; + +Ui.Arc = function(options) { + this.options = options || {}; +}; + +Ui.Arc.prototype = Object.create(Ui.prototype); + +Ui.Arc.prototype.createElement = function(parentEl) { + this.el = new Ui.El.Arc(this.options); + this.appendTo(parentEl); +}; + +Ui.Arc.prototype.update = function(percent) { + this.el.setAngle(percent * this.options.anglerange); +}; + +Ui.Scale = function(options) { + this.options = this.merge({ + steps: options.range / options.step, + radius: this.width / 2, + tickWidth: 1, + tickHeight: 3 + }, options); + this.options.type = Ui.El[this.options.type || 'Rect']; +}; + +Ui.Scale.prototype = Object.create(Ui.prototype); + +Ui.Scale.prototype.createElement = function(parentEl) { + this.el = new Ui.El(this.width, this.height); + this.startAngle = this.options.angleoffset || 0; + this.options.radius || (this.options.radius = this.height / 2.5); + this.el.create("g"); + this.el.addClassName('scale'); + if (this.options.drawScale) { + if(!this.options.labels){ + var step = this.options.anglerange / this.options.steps; + var end = this.options.steps + (this.options.anglerange == 360 ? 0 : 1); + this.ticks = []; + var Shape = this.options.type; + for (var i = 0; i < end; i++) { + var rect = new Shape(this.options.tickWidth, this.options.tickHeight, this.width / 2, + this.options.tickHeight / 2); + rect.rotate(this.startAngle + i * step, this.width / 2, this.height / 2); + this.el.append(rect); + this.ticks.push(rect); + } + } + } + this.appendTo(parentEl); + if (this.options.drawDial) { + this.dial(); + } +}; + +Ui.Scale.prototype.dial = function() { + var step = this.options.anglerange / this.options.steps; + var min = this.options.min; + var dialStep = (this.options.max - min) / this.options.steps; + var end = this.options.steps + (this.options.anglerange == 360 ? 0 : 1); + this.dials = []; + if(!this.options.labels){ + for (var i = 0; i < end; i++) { + var text = new Ui.El.Text(Math.abs(min + dialStep * i), this.width / 2 - 2.5, + this.height / 2 - this.options.radius, 5, 5); + this.el.append(text); + text.rotate(this.startAngle + i * step, this.width / 2, this.height / 2); + this.dials.push(text); + } + } else { + step = this.options.anglerange / (this.options.labels.length-1); + for(var i=0; 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

    ijsFW`EBdpD) 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

    =^vj{~dumU0V!rUtyA)q};Pj_A21lqTr1kFm+
    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
    Ih1>xD7dIobUjP6A
    
    literal 0
    HcmV?d00001
    
    diff --git a/objects/lamp1/target/target.jpg b/objects/lamp1/target/target.jpg
    new file mode 100644
    index 0000000000000000000000000000000000000000..8b7056eccb2fc08fd3c954903e7492f2c52cf49d
    GIT binary patch
    literal 18712
    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
    BA+G=c
    
    literal 0
    HcmV?d00001
    
    diff --git a/objects/lamp1/target/target.xml b/objects/lamp1/target/target.xml
    new file mode 100644
    index 0000000..a34e2ab
    --- /dev/null
    +++ b/objects/lamp1/target/target.xml
    @@ -0,0 +1,6 @@
    +
    +
    +  
    +    
    +  
    +
    diff --git a/objects/lamp2/bird.png b/objects/lamp2/bird.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18
    GIT binary patch
    literal 16296
    zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s
    zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX
    zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5
    zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H
    z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f%
    zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_
    z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_
    zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)(
    z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz
    z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV
    zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr?
    z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93*
    zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@
    z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q
    zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5
    zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf
    zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm
    z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5
    zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_)
    H26z1fb7I|%
    
    literal 0
    HcmV?d00001
    
    diff --git a/objects/lamp2/icon_off.svg b/objects/lamp2/icon_off.svg
    new file mode 100755
    index 0000000..22473c5
    --- /dev/null
    +++ b/objects/lamp2/icon_off.svg
    @@ -0,0 +1,19 @@
    +
    +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/objects/lamp2/icon_on.svg b/objects/lamp2/icon_on.svg
    new file mode 100755
    index 0000000..bb3df5c
    --- /dev/null
    +++ b/objects/lamp2/icon_on.svg
    @@ -0,0 +1,29 @@
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/objects/lamp2/index.html b/objects/lamp2/index.html
    new file mode 100644
    index 0000000..948f104
    --- /dev/null
    +++ b/objects/lamp2/index.html
    @@ -0,0 +1,235 @@
    +
    +
    +
    +    
    +    
    +    
    +    
    +
    +
    +
    +
    +
    +
    +
    +  
    +  
    +
    +
    +  
    +

    50

    + + +
    + + + + + diff --git a/objects/lamp2/knob-min.js b/objects/lamp2/knob-min.js new file mode 100755 index 0000000..b86518b --- /dev/null +++ b/objects/lamp2/knob-min.js @@ -0,0 +1,490 @@ +var Knob; +Knob = function(input, ui) { + var container = document.createElement('div'); + container.setAttribute('tabindex', 0); + input.parentNode.replaceChild(container, input); + input.style.cssText = 'position: absolute; top: -10000px'; + input.setAttribute('tabindex', -1); + container.appendChild(input); + + var settings = this.settings = this._getSettings(input); + + + this.value = input.value = settings.min + settings.range / 2; + this.input = input; + this.min = settings.min; + + this.ui = ui; + input.addEventListener('change', this.changed.bind(this), false); + + var events = { + keydown: this._handleKeyEvents.bind(this), + mousewheel: this._handleWheelEvents.bind(this), + DOMMouseScroll: this._handleWheelEvents.bind(this), + touchstart: this._handleMove.bind(this, 'touchmove', 'touchend'), + mousedown: this._handleMove.bind(this, 'mousemove', 'mouseup') + }; + + for (var event in events) { + container.addEventListener(event, events[event], false); + } + + container.style.cssText = 'position: relative; width:' + settings.width + 'px;' + 'height:' + settings.height + 'px;'; + + ui.init(container, settings); + this.container = container; + this.changed(0); + +}; + +Knob.prototype = { + _handleKeyEvents: function(e) { + var keycode = e.keyCode; + if (keycode >= 37 && keycode <= 40) { + e.preventDefault(); + var f = 1 + e.shiftKey * 9; + this.changed({37: -1, 38: 1, 39: 1, 40: -1}[keycode] * f); + } + }, + + _handleWheelEvents: function(e) { + e.preventDefault(); + var deltaX = -e.detail || e.wheelDeltaX; + var deltaY = -e.detail || e.wheelDeltaY; + var val = deltaX > 0 || deltaY > 0 ? 1 : deltaX < 0 || deltaY < 0 ? -1 : 0; + this.changed(val); + }, + + _handleMove: function(onMove, onEnd) { + this.centerX = Math.floor(this.container.getBoundingClientRect().left)+ document.body.scrollLeft + this.settings.width / 2; + this.centerY = Math.floor(this.container.getBoundingClientRect().top)+ document.body.scrollTop + this.settings.height / 2; + + var fnc = this._updateWhileMoving.bind(this); + var body = document.body; + body.addEventListener(onMove, fnc, false); + body.addEventListener(onEnd, function() { + body.removeEventListener(onMove, fnc, false); + }, false); + }, + + _updateWhileMoving: function(event) { + event.preventDefault(); + var e = event.changedTouches ? event.changedTouches[0] : event; + var x = this.centerX - e.pageX; + var y = this.centerY - e.pageY; + var deg = Math.atan2(-y, -x) * 180 / Math.PI + 90 - this.settings.angleoffset; + var percent; + + if (deg < 0) { + deg += 360; + } + deg = deg % 360; + if (deg <= this.settings.anglerange) { + percent = Math.max(Math.min(1, deg / this.settings.anglerange), 0); + } else { + percent = +(deg - this.settings.anglerange < (360 - this.settings.anglerange) / 2); + } + var range = this.settings.range; + var value = this.min + range * percent; + + var step = (this.settings.max - this.min) / range; + this.value = this.input.value = Math.round(value / step) * step; + this.ui.update(percent, this.value); + }, + + changed: function(direction) { + this.input.value = this.limit(parseFloat(this.input.value) + direction * (this.input.step || 1)); + this.value = this.input.value; + this.ui.update(this._valueToPercent(), this.value); + }, + + + update: function(percent) { + var range = this.settings.range; + var value = this.min + range * percent; + + var step = (this.settings.max - this.min) / range; + this.value = this.input.value = Math.round(value / step) * step; + + + this.ui.update(percent, this.value); + }, + + _valueToPercent: function() { + return this.value != null ? 100 / this.settings.range * (this.value - this.min) / 100 : this.min; + }, + + limit: function(value) { + return Math.min(Math.max(this.settings.min, value), this.settings.max); + }, + + _getSettings: function(input) { + var labels; + + if(input.dataset.labels){ + labels = input.dataset.labels.split(','); + } + var settings = { + max: labels ? labels.length-1 : parseFloat(input.max), + min: labels ? 0 : parseFloat(input.min), + step: parseFloat(input.step) || 1, + angleoffset: 0, + anglerange: 360, + labels: labels + }; + settings.range = settings.max - settings.min; + var data = input.dataset; + for (var i in data) { + if (data.hasOwnProperty(i) && i!=='labels') { + var value = +data[i]; + settings[i] = isNaN(value) ? data[i] : value; + } + } + return settings; + } +}; + + + +var Ui = function() { +}; + +Ui.prototype = { + init: function(parentEl, options) { + this.options || (this.options = {}); + this.merge(this.options, options); + this.width = options.width; + this.height = options.height; + this.createElement(parentEl); + if (!this.components) { + return; + } + this.components.forEach(function(component) { + component.init(this.el.node, options); + }.bind(this)); + }, + + merge: function(dest, src) { + for (var i in src) { + if (src.hasOwnProperty(i)) { + dest[i] = src[i]; + } + } + return dest; + }, + + addComponent: function(component) { + this.components || (this.components = []); + this.components.push(component); + }, + + update: function(percent, value) { + + if (!this.components) { + return; + } + this.components.forEach(function(component) { + component.update(percent, value); + }); + }, + + createElement: function(parentEl) { + this.el = new Ui.El(this.width, this.height); + this.el.create("svg", { + version: "1.2", + baseProfile: "tiny", + width: this.width, + height: this.height + }); + this.appendTo(parentEl); + }, + appendTo: function(parent) { + parent.appendChild(this.el.node); + } + +}; + +Ui.Pointer = function(options) { + this.options = options || {}; + this.options.type && Ui.El[this.options.type] || (this.options.type = 'Triangle'); +}; + +Ui.Pointer.prototype = Object.create(Ui.prototype); + +Ui.Pointer.prototype.update = function(percent) { + this.el.rotate(this.options.angleoffset + percent * this.options.anglerange, this.width / 2, + this.height / 2); +}; + +Ui.Pointer.prototype.createElement = function(parentEl) { + this.options.pointerHeight || (this.options.pointerHeight = this.height / 2); + if (this.options.type == 'Arc') { + this.el = new Ui.El.Arc(this.options); + this.el.setAngle(this.options.size); + } else { + this.el = new Ui.El[this.options.type](this.options.pointerWidth, + this.options.pointerHeight, this.width / 2, + this.options.pointerHeight / 2 + this.options.offset); + } + this.el.addClassName('pointer'); + this.appendTo(parentEl); + +}; + +Ui.Arc = function(options) { + this.options = options || {}; +}; + +Ui.Arc.prototype = Object.create(Ui.prototype); + +Ui.Arc.prototype.createElement = function(parentEl) { + this.el = new Ui.El.Arc(this.options); + this.appendTo(parentEl); +}; + +Ui.Arc.prototype.update = function(percent) { + this.el.setAngle(percent * this.options.anglerange); +}; + +Ui.Scale = function(options) { + this.options = this.merge({ + steps: options.range / options.step, + radius: this.width / 2, + tickWidth: 1, + tickHeight: 3 + }, options); + this.options.type = Ui.El[this.options.type || 'Rect']; +}; + +Ui.Scale.prototype = Object.create(Ui.prototype); + +Ui.Scale.prototype.createElement = function(parentEl) { + this.el = new Ui.El(this.width, this.height); + this.startAngle = this.options.angleoffset || 0; + this.options.radius || (this.options.radius = this.height / 2.5); + this.el.create("g"); + this.el.addClassName('scale'); + if (this.options.drawScale) { + if(!this.options.labels){ + var step = this.options.anglerange / this.options.steps; + var end = this.options.steps + (this.options.anglerange == 360 ? 0 : 1); + this.ticks = []; + var Shape = this.options.type; + for (var i = 0; i < end; i++) { + var rect = new Shape(this.options.tickWidth, this.options.tickHeight, this.width / 2, + this.options.tickHeight / 2); + rect.rotate(this.startAngle + i * step, this.width / 2, this.height / 2); + this.el.append(rect); + this.ticks.push(rect); + } + } + } + this.appendTo(parentEl); + if (this.options.drawDial) { + this.dial(); + } +}; + +Ui.Scale.prototype.dial = function() { + var step = this.options.anglerange / this.options.steps; + var min = this.options.min; + var dialStep = (this.options.max - min) / this.options.steps; + var end = this.options.steps + (this.options.anglerange == 360 ? 0 : 1); + this.dials = []; + if(!this.options.labels){ + for (var i = 0; i < end; i++) { + var text = new Ui.El.Text(Math.abs(min + dialStep * i), this.width / 2 - 2.5, + this.height / 2 - this.options.radius, 5, 5); + this.el.append(text); + text.rotate(this.startAngle + i * step, this.width / 2, this.height / 2); + this.dials.push(text); + } + } else { + step = this.options.anglerange / (this.options.labels.length-1); + for(var i=0; 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
    PT=Fk`<_}@+fTddUbPzw;geNXddnJW0kuW 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 + + + + + diff --git a/server.js b/server.js index 2bb8981..e3b0365 100644 --- a/server.js +++ b/server.js @@ -102,7 +102,7 @@ const objectPath = __dirname + "/objects"; // All visual UI representations for IO Points are stored in this folder: const nodePath = __dirname + "/libraries/nodes"; // All visual UI representations for IO Points are stored in this folder: -const blockPath = __dirname + "/blocks"; +const blockPath = __dirname + "/libraries/logicBlocks"; // All interfaces for different hardware such as Arduino Yun, PI, Philips Hue are stored in this folder. const hardwarePath = __dirname + "/hardwareInterfaces"; // The web service level on which objects are accessable. http://:8080 @@ -293,11 +293,10 @@ function Logic() { [[null, 0], [null, 0], [null, 0], [null, 0]] ];*/ - this.appearance = "logicNode"; + this.appearance = "logic"; this.links = {}; this.blocks = {}; - } /** @@ -360,6 +359,8 @@ function Block() { this.text = ""; // indicates how much calls per second is happening on this block this.stress = 0; + + this.appearance = "default"; } /** @@ -490,6 +491,7 @@ return null // This variable will hold the entire tree of all objects and their sub objects. var objects = {}; var nodeAppearanceModules = {}; // Will hold all available data point interfaces +var blockModules = {}; // Will hold all available data point interfaces var hardwareInterfaceModules = {}; // Will hold all available hardware interfaces. // A list of all objects known and their IPs in the network. The objects are found via the udp heart beat. // If a new link is linking to another objects, this knownObjects list is used to establish the connection. @@ -539,10 +541,32 @@ for (var i = 0; i < nodeFolderList.length; i++) { nodeAppearanceModules[nodeFolderList[i]] = require(nodePath + '/' + nodeFolderList[i] + "/index.js").render; } + +// get a list with the names for all IO-Points, based on the folder names in the nodeInterfaces folder folder. +// Each folder represents on IO-Point. +var blockFolderList = fs.readdirSync(blockPath).filter(function (file) { + return fs.statSync(blockPath + '/' + file).isDirectory(); +}); + +// Remove eventually hidden files from the Hybrid Object list. +while (blockFolderList[0][0] === ".") { + blockFolderList.splice(0, 1); +} + + + + + +// Create a objects list with all IO-Points code. +for (var i = 0; i < blockFolderList.length; i++) { + blockModules[blockFolderList[i]] = require(blockPath + '/' + blockFolderList[i] + "/index.js"); +} + + cout("Initialize System: "); cout("Loading Hardware interfaces"); // set all the initial states for the Hardware Interfaces in order to run with the Server. -hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeAppearanceModules, function (objectKey, nodeKey, item, objects, nodeAppearanceModules) { +hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeAppearanceModules, blockModules, function (objectKey, nodeKey, item, objects, nodeAppearanceModules) { //these are the calls that come from the objects before they get processed by the object engine. // send the saved value before it is processed @@ -552,7 +576,7 @@ hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeAppeara node: nodeKey, item: item }); - objectEngine(objectKey, nodeKey, objects, nodeAppearanceModules); + objectEngine(objectKey, nodeKey, null, objects, nodeAppearanceModules); }, Node); cout("Done"); @@ -640,6 +664,8 @@ function loadObjects() { objects[tempFolderName] = JSON.parse(fs.readFileSync(__dirname + "/objects/" + objectFolderList[i] + "/object.json", "utf8")); objects[tempFolderName].ip = ip.address(); + // this is for transforming old lists to new lists + if(objects[tempFolderName].objectValues) { objects[tempFolderName].nodes = objects[tempFolderName].objectValues; @@ -1018,6 +1044,118 @@ function objectWebServer() { webServer.options('*', cors()); + /// logic node handling + + + /** + * Logic Links + **/ + + // delete a logic link. *1 is the object *2 is the logic *3 is the link id + // **************************************************************************************************************** + webServer.delete('/logic/*/*/link/*/', function (req, res) { + + var thisLinkId = req.params[2]; + var fullEntry = objects[req.params[0]].logic[req.params[1]].links[thisLinkId]; + var destinationIp = knownObjects[fullEntry.objectB]; + + delete objects[req.params[0]].logic[req.params[1]].links[thisLinkId]; + cout("deleted link: " + thisLinkId); + // cout(objects[req.params[0]].links); + actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + utilities.writeObjectToFile(objects, req.params[0], __dirname); + res.send("deleted: " + thisLinkId + " in logic "+ req.params[1] +" for object: " + req.params[0]); + + }); + + // adding a new logic link to an object. *1 is the object *2 is the logic *3 is the link id + // **************************************************************************************************************** + webServer.post('/logic/*/*/link/*/', function (req, res) { + + var updateStatus = "nothing happened"; + + if (objects.hasOwnProperty(req.params[0])) { + + objects[req.params[0]].logic[req.params[1]].links[req.params[2]] = req.body; + + var thisObject = objects[req.params[0]].logic[req.params[1]].links[req.params[2]]; + + thisObject.loop = false; + + // todo the first link in a chain should carry a UUID that propagates through the entire chain each time a change is done to the chain. + // todo endless loops should be checked by the time of creation of a new loop and not in the Engine + if (thisObject.blockA === thisObject.blockB && thisObject.itemA === thisObject.itemB) { + thisObject.loop = true; + } + + if (!thisObject.loop) { + // call an action that asks all devices to reload their links, once the links are changed. + actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + updateStatus = "added"; + cout("added link: " + req.params[2]); + // check if there are new connections associated with the new link. + // write the object state to the permanent storage. + utilities.writeObjectToFile(objects, req.params[0], __dirname); + } else { + updateStatus = "found endless Loop"; + } + + res.send(updateStatus); + } + }); + + /** + * Logic Blocks + **/ + + // adding a new block to an object. *1 is the object *2 is the logic *3 is the link id + // **************************************************************************************************************** + webServer.post('/logic/*/*/block/*/', function (req, res) { + + var updateStatus = "nothing happened"; + + if (objects.hasOwnProperty(req.params[0])) { + + objects[req.params[0]].logic[req.params[1]].blocks[req.params[2]] = req.body; + + var thisObject = objects[req.params[0]].logic[req.params[1]].blocks[req.params[2]]; + + // call an action that asks all devices to reload their links, once the links are changed. + actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + updateStatus = "added"; + cout("added block: " + req.params[2]); + utilities.writeObjectToFile(objects, req.params[0], __dirname); + res.send(updateStatus); + } + }); + + // delete a block from the logic. *1 is the object *2 is the logic *3 is the link id + // **************************************************************************************************************** + webServer.delete('/logic/*/*/block/*/', function (req, res) { + + var thisLinkId = req.params[2]; + var fullEntry = objects[req.params[0]].logic[req.params[1]].blocks[thisLinkId]; + var destinationIp = knownObjects[fullEntry.objectB]; + + delete objects[req.params[0]].logic[req.params[1]].blocks[thisLinkId]; + cout("deleted block: " + thisLinkId); + + actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + utilities.writeObjectToFile(objects, req.params[0], __dirname); + res.send("deleted: " + thisLinkId + " in blocks for object: " + req.params[0]); + + + // Make sure that no links are connected to deleted objects + for (subCheckerKey in objects[req.params[0]].logic[req.params[1]].links) { + if (subCheckerKey.blockA === thisLinkId || subCheckerKey.blockB === thisLinkId) { + delete objects[req.params[0]].logic[req.params[1]].links[subCheckerKey]; + } + } + }); + + /** + * Normal Links + **/ // delete a link. *1 is the object *2 is the link id // **************************************************************************************************************** @@ -1050,6 +1188,7 @@ function objectWebServer() { } }); + // todo links for programms as well // adding a new link to an object. *1 is the object *2 is the link id // **************************************************************************************************************** webServer.post('/object/*/link/*/', function (req, res) { @@ -1155,6 +1294,11 @@ function objectWebServer() { res.sendFile(nodePath + "/" + req.params[0] + '/gui/' + req.params[1]); }); + // Version 3 #### Active Version + webServer.get('/logicBlock/*/*/', function (req, res) { // watch out that you need to make a "/" behind request. + res.sendFile(blockPath + "/" + req.params[0] + '/gui/' + req.params[1]); + }); + // **************************************************************************************************************** // frontend interface // **************************************************************************************************************** @@ -1734,12 +1878,31 @@ function socketServer() { node: msgContent.node, item: msgContent.item }); - objectEngine(msgContent.object, msgContent.node, objects, nodeAppearanceModules); + objectEngine(msgContent.object, msgContent.node, null, objects, nodeAppearanceModules); } }); // todo do this stuff tomorrrow + socket.on('block/publicData', function (msg) { + + if (msg.object !== null && msg.logic !== null && msg.block !== null) { + if (msg.object in objects) { + if (msg.logic in objects[msg.object].logic) { + if (msg.block in objects[msg.object].logic[msg.logic].blocks) { + var thisPublicData = objects[msg.object].logic[msg.logic].blocks[msg.block].publicData; + + // write data in to the block data of the object + for (var key in msg.publicData) { + thisPublicData[key] = msg.publicData[key]; + } + } + } + } + } + }); + + // this is only for down compatibility for when the UI would request a readRequest socket.on('/object/readRequest', function (msg) { var msgContent = JSON.parse(msg); @@ -1789,30 +1952,30 @@ function messagetoSend(msgContent, socketID) { // dependencies afterAppearanceProcessing -function objectEngine(object, node, objects, nodeAppearanceModules) { - // cout("engine started"); - // process.stdout.write("."); - /** If(Logic Node){ - nodeAppearanceModules["logic"](object, linkKey, thisNode.item, function (object, link, processedData) { - enginePostProcessing(object, link, processedData); - - in call back check for all links assosiated with the main link source. - - }, objects); - } +function objectEngine(object, node, logic, objects, nodeAppearanceModules) { - */ for (var linkKey in objects[object].links) { if (objects[object].links[linkKey].nodeA === node) { - var thisNode = objects[object].nodes[node]; + if ((thisNode.appearance in nodeAppearanceModules)) { - nodeAppearanceModules[thisNode.appearance](object, linkKey, thisNode.item, function (object, link, processedData) { - enginePostProcessing(object, link, processedData); - }); + + if(logic === null) { + var thisNode = objects[object].nodes[node]; + nodeAppearanceModules[thisNode.appearance](object, linkKey, thisNode.item, function (object, link, processedData) { + enginePostProcessing(object, link, processedData); + }); + } else { + var thisNode = objects[object].logic[node]; + nodeAppearanceModules[thisNode.appearance](object, linkKey, thisNode.blocks[logic].item, function (object, link, processedData) { + enginePostProcessing(object, link, processedData); + }); + } + + } } } @@ -1835,24 +1998,98 @@ function enginePostProcessing(object, link, processedData) { var objSend = objects[thisLink.objectB].nodes[thisLink.nodeB]; - for (var i = 0; i < processedData.length; i++) { - if(objSend.item.length === i) objSend.item[i] = {}; - for (var key in processedData[i]) { - objSend.item[i][key] = processedData[i][key]; + if(thisLink.logicB === null) { + for (var i = 0; i < processedData.length; i++) { + if (objSend.item.length === i) objSend.item[i] = {}; + for (var key in processedData[i]) { + objSend.item[i][key] = processedData[i][key]; + } } + + hardwareAPI.readCall(thisLink.objectB, thisLink.nodeB, objSend.item); + + sendMessagetoEditors({object: thisLink.objectB, node: thisLink.nodeB, item: objSend.item}); + objectEngine(thisLink.objectB, thisLink.nodeB, null, objects, nodeAppearanceModules); } + else + { + // todo this is the code to process a normal link in to the programming + var thisString = 0; + if(thisLink.logicB === 0) thisString= "in0"; + else if(thisLink.logicB === 1) thisString= "in1"; + else if(thisLink.logicB === 2) thisString= "in2"; + else if(thisLink.logicB === 3) thisString= "in3"; + + var objSend = objects[thisLink.objectB].logic[thisLink.nodeB].blocks[thisString]; + + for (var key in processedData[0]) { + objSend.item[0][key] = processedData[0][key]; + } - hardwareAPI.readCall(thisLink.objectB, thisLink.nodeB, objSend.item); - /* - if (hardwareInterfaceModules.hasOwnProperty(objSend.type)) { - hardwareInterfaceModules[objSend.type].read(thisLink.objectB, thisLink.nodeB, objSend.item, objSend.type); - } - */ - // send data to listening editor + logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objects, blockModules) + } + } +} + + +/********************************************************************************************************************** + ******************************************** Logic Engine ************************************************************ + **********************************************************************************************************************/ + + +/** + * @desc Take the id of a value in objectValue and look through all links, if this id is used. + * All links that use the id will fire up the engine to process the link. + **/ + +// dependencies afterAppearanceProcessing +function logicEngine(object, logic, block, item, objects, blockModules) { + + if(object in objects) + if(logic in objects[object]) { + var thisLogic = objects[object].logic[logic]; + + for (var linkKey in objects[object].links) { + + if (thisLogic.links[linkKey].blockA === block && thisLogic.links[linkKey].itemA === item) { + + var thisBlock = thisLogic.blocks[block]; + + if ((thisBlock.appearance in blockModules)) { - sendMessagetoEditors({object: thisLink.objectB, node: thisLink.nodeB, item: objSend.item}); - objectEngine(thisLink.objectB, thisLink.nodeB, objects, nodeAppearanceModules); + blockModules[thisBlock.appearance].render(object, logic, linkKey, item, thisBlock.item, function (object, logic, link, processedData) { + logicEnginePostProcessing(object, logic, link, processedData); + }); + } + } + } + } +} + +/** + * @desc This has to be the callback for the processed appearances. The appearance should give back a processed object. + * @param {Object} processedValue Any kind of object simple or complex + * @param {String} IDinLinkArray Id to search for in the Link Array. + **/ + +function logicEnginePostProcessing(object, logic, link, processedData) { + var thisLink = objects[object].logic[logic].links[link]; + var thisLogic = objects[object].logic[logic]; + var objSend = thisLogic.blocks[thisLink.blockB]; + + for (var key in processedData[thisLink.itemA]) { + objSend.item[thisLink.itemB][key] = processedData[thisLink.itemA][key]; + } + + + + logicEngine(object, logic, thisLink.blockB,thisLink.itemB, objects, blockModules); + + if(thisLink.blockB === "out0" || thisLink.blockB === "out1" || thisLink.blockB === "out2" || thisLink.blockB === "out3") + { + objectEngine(object, logic, null, thisLink.blockB, nodeAppearanceModules) } + } /** diff --git a/temp b/temp new file mode 100644 index 0000000..4952db1 --- /dev/null +++ b/temp @@ -0,0 +1,41 @@ +function BlockLink() { + // origin block UUID + this.blockA = null; + // item in that block + this.itemA = 0; + // destination block UUID + this.blockB = null; + // item in that block + this.itemB = 0; + // check if the links are looped. + this.loop = false; + // Will be used to test if a link is still able to find its destination. + // It needs to be discussed what to do if a link is not able to find the destination and for what time span. + this.health = 0; // todo use this to test if link is still valid. If not able to send for some while, kill link. +} + +function Link() { + // The origin object from where the link is sending data from + this.objectA = null; + // The origin IOPoint from where the link is taking its data from + this.nodeA = null; + // if origin location is a Logic Node then set to Logic Node output location (which is a number between 0 and 3) otherwise null + this.logicA = null; + // Defines the type of the link origin. Currently this function is not in use. + this.namesA = ["",""]; + // The destination object to where the origin object is sending data to. + // At this point the destination object accepts all incoming data and routs the data according to the link data sent. + this.objectB = null; + // The destination IOPoint to where the link is sending data from the origin object. + // objectB and nodeB will be send with each data package. + this.nodeB = null; + // if destination location is a Logic Node then set to logic block input location (which is a number between 0 and 3) otherwise null + this.logicB = null; + // Defines the type of the link destination. Currently this function is not in use. + this.namesB = ["",""]; + // check that there is no endless loop in the system + this.loop = false; + // Will be used to test if a link is still able to find its destination. + // It needs to be discussed what to do if a link is not able to find the destination and for what time span. + this.health = 0; // todo use this to test if link is still valid. If not able to send for some while, kill link. +} \ No newline at end of file diff --git a/tempJson b/tempJson new file mode 100644 index 0000000..1cd3fe3 --- /dev/null +++ b/tempJson @@ -0,0 +1,1104 @@ +{ + "name": "", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "x": -109.89313594858743, + "y": 22.476751897348265, + "scale": 0.5, + "matrix": [], + "lastSetting": false, + "lastSettingBlock": "", + "iconImage": null, + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "appearance": "logicNode", + "links": { + "blockLink779d9rrf9ci7": { + "blockA": { + "name": "threshold", + "x": 0, + "y": 0, + "blockSize": 1, + "globalId": "blockmSfdhxw5ixg9", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "minValueToSend": 0.5 + }, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "x", + "", + "", + "" + ], + "nameOutput": [ + "x if x>min", + "", + "", + "" + ], + "iconImage": null, + "text": "threshold", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false + }, + "itemA": 0, + "blockB": { + "name": "delay", + "x": 0, + "y": 1, + "blockSize": 1, + "globalId": "blockysfrodn0r5b7", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "delayTime": 1000 + }, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "x", + "", + "", + "" + ], + "nameOutput": [ + "delayed x", + "", + "", + "" + ], + "iconImage": null, + "text": "delay", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false + }, + "itemB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0.12578125000000007 + }, + "blockLinkYwj0nhjoergo": { + "itemA": 0, + "blockB": { + "name": "switch", + "x": 1, + "y": 1, + "blockSize": 1, + "globalId": "blocksNeoooc4vcoi", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "x", + "", + "", + "" + ], + "nameOutput": [ + "x", + "", + "", + "" + ], + "iconImage": null, + "text": "switch", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false + }, + "itemB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0.052072352659319636 + }, + "blockLinkMc8vjq2u8077": { + "itemA": 0, + "itemB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0.010907859078590784 + }, + "blockLinkNk9uztg0arus": { + "itemA": 0, + "blockB": { + "name": "edge", + "x": 1, + "y": 3, + "blockSize": 1, + "globalId": "edgeBlock6tb52qmbsj56", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + false, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "itemB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0.046119791666666694 + } + }, + "blocks": { + "edgeBlockxw3r81dk7vfu": { + "name": "edge", + "x": 1, + "y": 0, + "blockSize": 1, + "globalId": "edgeBlockxw3r81dk7vfu", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + false, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "edgeBlockHH92mxy9ty3u": { + "name": "edge", + "x": 2, + "y": 0, + "blockSize": 1, + "globalId": "edgeBlockHH92mxy9ty3u", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + false, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "edgeBlockZt5q483wddre": { + "name": "edge", + "x": 3, + "y": 0, + "blockSize": 1, + "globalId": "edgeBlockZt5q483wddre", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + false, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "edgeBlockyt58e6fbc06i": { + "name": "edge", + "x": 0, + "y": 3, + "blockSize": 1, + "globalId": "edgeBlockyt58e6fbc06i", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + false, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "edgeBlock6tb52qmbsj56": { + "name": "edge", + "x": 1, + "y": 3, + "blockSize": 1, + "globalId": "edgeBlock6tb52qmbsj56", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + false, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "edgeBlockibg2b7g66ay3": { + "name": "edge", + "x": 2, + "y": 3, + "blockSize": 1, + "globalId": "edgeBlockibg2b7g66ay3", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + false, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "edgeBlockw41hp0u2n4yz": { + "name": "edge", + "x": 3, + "y": 3, + "blockSize": 1, + "globalId": "edgeBlockw41hp0u2n4yz", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + false, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "edge", + "stress": 0, + "isTempBlock": false, + "isPortBlock": true + }, + "blockysfrodn0r5b7": { + "name": "delay", + "x": 0, + "y": 1, + "blockSize": 1, + "globalId": "blockysfrodn0r5b7", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "delayTime": 1000 + }, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "x", + "", + "", + "" + ], + "nameOutput": [ + "delayed x", + "", + "", + "" + ], + "iconImage": null, + "text": "delay", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false + }, + "blocksNeoooc4vcoi": { + "name": "switch", + "x": 1, + "y": 1, + "blockSize": 1, + "globalId": "blocksNeoooc4vcoi", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "x", + "", + "", + "" + ], + "nameOutput": [ + "x", + "", + "", + "" + ], + "iconImage": null, + "text": "switch", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false + }, + "blockmSfdhxw5ixg9": { + "name": "threshold", + "x": 0, + "y": 0, + "blockSize": 1, + "globalId": "blockmSfdhxw5ixg9", + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "minValueToSend": 0.5 + }, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "x", + "", + "", + "" + ], + "nameOutput": [ + "x if x>min", + "", + "", + "" + ], + "iconImage": null, + "text": "threshold", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false + } + }, + "loaded": true, + "animationScale": 1, + "visibleEditing": false, + "begin": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "temp": [ + 1.573928, + 949.7624036435201, + -0.382277851016, + -0.374708, + -966.0074831999999, + 7.05896286272, + 0.059967473560000005, + 0.05878, + -29.2161592, + -182.22726674368, + -2.003376788612, + -1.963706, + -27684.815125600002, + -5469.183404929279, + 1155.4569272000722, + 1330.596436 + ], + "visible": false, + "screenX": 248.06571751582783, + "screenY": 81.39207113784167, + "screenZ": 1215.6096949700964, + "screenLinearZ": 9.853133011050886, + "fullScreen": false +} \ No newline at end of file From 5bb412e304dcad6bfc0ca9bcb61d67e2d6429238 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Tue, 22 Nov 2016 11:56:42 -0500 Subject: [PATCH 194/266] latest API for editor --- .../{delay => default/gui}/icon.png | Bin 22410 -> 15200 bytes .../{default => delay/gui}/icon.png | Bin .../logicBlocks/switch/{ => gui}/icon.png | Bin libraries/logicBlocks/switch/index.js | 2 +- .../logicBlocks/threshold/{ => gui}/icon.png | Bin server.js | 39 +++++++++++++++--- 6 files changed, 34 insertions(+), 7 deletions(-) rename libraries/logicBlocks/{delay => default/gui}/icon.png (63%) rename libraries/logicBlocks/{default => delay/gui}/icon.png (100%) rename libraries/logicBlocks/switch/{ => gui}/icon.png (100%) rename libraries/logicBlocks/threshold/{ => gui}/icon.png (100%) diff --git a/libraries/logicBlocks/delay/icon.png b/libraries/logicBlocks/default/gui/icon.png similarity index 63% rename from libraries/logicBlocks/delay/icon.png rename to libraries/logicBlocks/default/gui/icon.png index 0f75613d4f5eedc73d272ff4f3fb5a54f522da06..62f51b320149c805970f3e47a6cd5e64692ff143 100644 GIT binary patch delta 466 zcmeBL&-kEhf(4W1vyE1D%-lvsAqECkCdO7q#*+^-TchwfS>~!3rKTks8XBAGnp#>~ z=$e=sn(11mnONv1rzIwvo0_GW8yF;RKE<+tY4UwmSLWixvdNlkc0}o#+|6di0keMc zS+@4c>)5y?k~0$X(o<9H^lkKuOI*uJte^s$o!M0lS(5f}PM(}&p;yoF#nZ(xq~g|_ zONP7*3_OQ7d{V!AafOMznt*EV;dmtp2Nvc82A&2+0|vGO3=#~~=G2p5w!lFKB??`T haDzmvv4FO#mpoaXbJ3 delta 8052 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 Date: Tue, 22 Nov 2016 12:24:50 -0500 Subject: [PATCH 195/266] push after discussion --- libraries/logicBlocks/default/index.js | 6 +++--- libraries/logicBlocks/delay/index.js | 8 ++++---- libraries/logicBlocks/switch/index.js | 16 ++++++++-------- libraries/logicBlocks/threshold/index.js | 17 ++++++++--------- server.js | 16 +++++++--------- 5 files changed, 30 insertions(+), 33 deletions(-) diff --git a/libraries/logicBlocks/default/index.js b/libraries/logicBlocks/default/index.js index 31507bf..8bd707a 100755 --- a/libraries/logicBlocks/default/index.js +++ b/libraries/logicBlocks/default/index.js @@ -54,7 +54,7 @@ **/ var outputData = []; -var setup = { +var properties = { name : "default", blockSize : 1, privateData : {}, @@ -67,11 +67,11 @@ var setup = { text : "default" }; -exports.setup = setup; +exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, inputData, callback) { +exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { var outputData = [{},{},{},{}]; var key; diff --git a/libraries/logicBlocks/delay/index.js b/libraries/logicBlocks/delay/index.js index dc0c982..5088eb9 100755 --- a/libraries/logicBlocks/delay/index.js +++ b/libraries/logicBlocks/delay/index.js @@ -54,7 +54,7 @@ **/ var outputData = []; -var setup = { +var properties = { name : "delay", blockSize : 1, privateData : {}, @@ -67,11 +67,11 @@ var setup = { text : "delay" }; -exports.setup = setup; +exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, inputData, callback) { +exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { var outputData = [{},{},{},{}]; var key; @@ -82,6 +82,6 @@ exports.render = function (objectID, logicID, linkID, inputData, callback) { setTimeout(function() { callback(objectID, linkID, outputData); - }, setup.publicData.delayTime); + }, blockObject.publicData.delayTime); }; \ No newline at end of file diff --git a/libraries/logicBlocks/switch/index.js b/libraries/logicBlocks/switch/index.js index b87b97e..9f9543b 100755 --- a/libraries/logicBlocks/switch/index.js +++ b/libraries/logicBlocks/switch/index.js @@ -54,7 +54,7 @@ **/ var outputData = []; -var setup = { +var properties = { name : "switch", blockSize : 2, privateData : {}, @@ -67,21 +67,21 @@ var setup = { text : "switch" }; -exports.setup = setup; +exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, inputData, callback) { +exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { var outputData = [{},{},{},{}]; var key; - if(inputData[0].number && setup.publicData.toggle === false) + if(inputData[0].number && blockObject.publicData.toggle === false) { - setup.publicData.toggle = true; + blockObject.publicData.toggle = true; // toggle the value - setup.publicData.switch = !setup.publicData.switch; + blockObject.publicData.switch = !blockObject.publicData.switch; // todo we need to test how it behaves when I have a stream and a single data point that changes when switched for (key in inputData[0]) { @@ -90,12 +90,12 @@ exports.render = function (objectID, logicID, linkID, inputData, callback) { callback(objectID, linkID, outputData); } else { - setup.publicData.toggle = false; + blockObject.publicData.toggle = false; } // in case the switch is on, the data will be routed through // todo again we have to test how we can handle an on and off switch that only has one data point but then also handle the stream - if(setup.publicData.switch){ + if(blockObject.publicData.switch){ for (key in inputData[1]) { outputData[1][key] = inputData[1][key]; } diff --git a/libraries/logicBlocks/threshold/index.js b/libraries/logicBlocks/threshold/index.js index f21cd6a..e1e75b4 100755 --- a/libraries/logicBlocks/threshold/index.js +++ b/libraries/logicBlocks/threshold/index.js @@ -54,7 +54,7 @@ **/ var outputData = []; -var setup = { +var properties = { name : "threshold", blockSize : 1, privateData : {}, @@ -67,23 +67,22 @@ var setup = { text : "threshold" }; -exports.setup = setup; +exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); - -exports.render = function (objectID, logicID, linkID, inputData, callback) { +exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { // check orientations and calculate if threshold is meet. var pass = false; - if(setup.publicData.direction = ">") + if(blockObject.publicData.direction = ">") { - if(inputData[0][number] > setup.publicData.threshold){ + if(inputData[0][number] > blockObject.publicData.threshold){ pass = true; } - } else if(setup.publicData.direction = "<") + } else if(blockObject.publicData.direction = "<") { - if(inputData[0][number] < setup.publicData.threshold){ + if(inputData[0][number] < blockObject.publicData.threshold){ pass = true; } } @@ -97,7 +96,7 @@ exports.render = function (objectID, logicID, linkID, inputData, callback) { // calculate final output if(pass){ - if(setup.publicData.digital){ + if(blockObject.publicData.digital){ outputData[0][number] = 1; } } else { diff --git a/server.js b/server.js index f864f05..2c26d51 100644 --- a/server.js +++ b/server.js @@ -1168,7 +1168,7 @@ var blockList = {} // make sure that each block contains always all keys. blockList[blockFolderList[i]] = new Block(); - var thisBlock = blockModules[blockFolderList[i]].setup; + var thisBlock = blockModules[blockFolderList[i]].properties; for (var key in thisBlock) { blockList[blockFolderList[i]][key] = thisBlock[key]; @@ -2040,12 +2040,8 @@ function enginePostProcessing(object, link, processedData) { } else { - // todo this is the code to process a normal link in to the programming - var thisString = 0; - if(thisLink.logicB === 0) thisString= "in0"; - else if(thisLink.logicB === 1) thisString= "in1"; - else if(thisLink.logicB === 2) thisString= "in2"; - else if(thisLink.logicB === 3) thisString= "in3"; + + var thisString= "in"+thisLink.logicB; var objSend = objects[thisLink.objectB].logic[thisLink.nodeB].blocks[thisString]; @@ -2053,7 +2049,7 @@ function enginePostProcessing(object, link, processedData) { objSend.item[0][key] = processedData[0][key]; } - logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objects, blockModules) + logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objSend, blockModules) } } } @@ -2110,13 +2106,15 @@ function logicEnginePostProcessing(object, logic, link, processedData) { - logicEngine(object, logic, thisLink.blockB,thisLink.itemB, objects, blockModules); + logicEngine(object, logic, thisLink.blockB,thisLink.itemB, objSend, blockModules); if(thisLink.blockB === "out0" || thisLink.blockB === "out1" || thisLink.blockB === "out2" || thisLink.blockB === "out3") { objectEngine(object, logic, null, thisLink.blockB, nodeAppearanceModules) } + // maybe: var re = /^(in|out)\d$/; re.test(blockId)  // or  /^out(0|1|2|3)$/ + } /** From 8475af0412bed6ef65e70371bdb2824a77a02362 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Tue, 22 Nov 2016 12:37:55 -0500 Subject: [PATCH 196/266] bug fix --- server.js | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/server.js b/server.js index 2c26d51..d578b4d 100644 --- a/server.js +++ b/server.js @@ -1142,17 +1142,66 @@ function objectWebServer() { delete objects[req.params[0]].logic[req.params[1]].blocks[thisLinkId]; cout("deleted block: " + thisLinkId); + var thisLinks = objects[req.params[0]].logic[req.params[1]].links; + // Make sure that no links are connected to deleted objects + for (var subCheckerKey in thisLinks) { + if (thisLinks[subCheckerKey].blockA === thisLinkId || thisLinks[subCheckerKey].blockB === thisLinkId) { + delete objects[req.params[0]].logic[req.params[1]].links[subCheckerKey]; + } + } + actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send("deleted: " + thisLinkId + " in blocks for object: " + req.params[0]); + }); + + + /** + * Logic Nodes + **/ + + // adding a new block to an object. *1 is the object *2 is the logic *3 is the link id + // **************************************************************************************************************** + webServer.post('/logic/*/*/node/', function (req, res) { + + var updateStatus = "nothing happened"; + + if (objects.hasOwnProperty(req.params[0])) { + + objects[req.params[0]].logic[req.params[1]] = req.body; + // call an action that asks all devices to reload their links, once the links are changed. + actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + updateStatus = "added"; + cout("added logic node: " + req.params[2]); + utilities.writeObjectToFile(objects, req.params[0], __dirname); + res.send(updateStatus); + } + }); + + // delete a block from the logic. *1 is the object *2 is the logic *3 is the link id + // **************************************************************************************************************** + webServer.delete('/logic/*/*/node/', function (req, res) { + + var fullEntry = objects[req.params[0]].logic[req.params[1]]; + + delete objects[req.params[0]].logic[req.params[1]]; + cout("deleted node: " + req.params[1]); // Make sure that no links are connected to deleted objects - for (subCheckerKey in objects[req.params[0]].logic[req.params[1]].links) { - if (subCheckerKey.blockA === thisLinkId || subCheckerKey.blockB === thisLinkId) { - delete objects[req.params[0]].logic[req.params[1]].links[subCheckerKey]; + for (var subCheckerKey in objects[req.params[0]].links) { + if (objects[req.params[0]].links[subCheckerKey].nodeA === req.params[1] && objects[req.params[0]].links[subCheckerKey].objectA === req.params[0]) { + delete objects[req.params[0]].links[subCheckerKey]; + } + if (objects[req.params[0]].links[subCheckerKey].nodeB === req.params[1] && objects[req.params[0]].links[subCheckerKey].objectB === req.params[0]) { + delete objects[req.params[0]].links[subCheckerKey]; } } + + actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + utilities.writeObjectToFile(objects, req.params[0], __dirname); + res.send("deleted: " + req.params[1] + " in object: " + req.params[0]); + }); From 84e2df74e1d61161730e0a05473851be9c0903a3 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Tue, 22 Nov 2016 19:37:05 -0500 Subject: [PATCH 197/266] local security feature. Only allow access from local network. --- server.js | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/server.js b/server.js index d578b4d..75ea2e3 100644 --- a/server.js +++ b/server.js @@ -94,6 +94,8 @@ const beatInterval = 5000; // how often is the heartbeat sent const socketUpdateInterval = 2000; // how often the system checks if the socket connections are still up and running. const version = "1.7.0"; // the version of this server const protocol = "R1"; // the version of this server +const globalAccessibility = false; // if false, only local object and editors can access the object. + // in big networks this might prevent access. In small private networks it adds high security. console.log(parseInt(version.replace(/\./g, ""))); @@ -918,6 +920,7 @@ function actionSender(action) { * @note if action "ping" is received, the object calls a heartbeat that is send one time. **/ +var thisIP = ip.address(); function objectBeatServer() { // creating the udp server @@ -987,8 +990,46 @@ function existsSync(filename) { } } +// REGEX to break an ip address into parts +var ip_regex = /(\d+)\.(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?(?::(\d+))?/ig; +var ip_regex2 = /(\d+)\.(\d+)\.(\d+)\.(\d+)/; + +// Parse the ip string into an object containing it's parts +var parseIpSpace = function(ip_string){ + + // Use Regex to get the parts of the ip address + var ip_parts = ip_regex.exec(ip_string); + // Set ip address if the regex executed successfully + var thisresult = ""; + + if( ip_parts && ip_parts.length > 6 ){ + thisresult = ip_parts[1]+ip_parts[2]+ip_parts[3]; + } else { + ip_parts = ip_regex2.exec(ip_string); + if( ip_parts && ip_parts.length > 3) { + thisresult = ip_parts[1]+ip_parts[2]+ip_parts[3]; + } + } + // Return object + return thisresult; +}; + function objectWebServer() { + thisIP = ip.address(); + // security implemented + webServer.use("*", function (req, res, next) { + + var remoteIP = parseIpSpace(req.ip); + var localIP = parseIpSpace(thisIP); + + if(remoteIP === localIP || remoteIP === "12700" || globalAccessibility) + { + next(); + } else { + res.status(403).send('Error 403: Access denied. This service is only available in a local network.'); + } + }); // define the body parser webServer.use(bodyParser.urlencoded({ extended: true @@ -1032,6 +1073,24 @@ function objectWebServer() { loadedHtml('head').prepend(scriptNode); res.send(loadedHtml.html()); } + else if ((req.method === "GET" && urlArray[2] !== "nodes") && (req.url.slice(-1) === "/" || urlArray[3].match(/\.json?$/))) { + + var fileName = __dirname + "/objects" + req.url + "object.json"; + + if (!fs.existsSync(fileName)) { + next(); + return; + } + + var json = JSON.parse(fs.readFileSync(fileName, "utf8")); + + for(var thisKey in json.logic) { + for (var thisKey2 in json.logic[thisKey].blocks) { + delete json.logic[thisKey].blocks[thisKey2].privateData; + } + } + res.json(json); + } else next(); }, express.static(__dirname + '/objects/')); From 600d6986e634be35034ff0ffc0d562038a62be59 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Wed, 23 Nov 2016 01:15:03 -0500 Subject: [PATCH 198/266] implemented a netmask for defining network accessibility scope this helps to define the reachability of the object. For all local networks the netmask should be 255.255.0.0 if the scope should be smaller it should be 255.255.255.0. both netmask will make sure to access only local networks similar the own network IP. This means if the object has an ip like 192.168.0.1 a 255.255.0.0 will accept access from the entire range between 192.168.0.0 to 192.168.255.255. --- server.js | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/server.js b/server.js index 75ea2e3..76e9a3a 100644 --- a/server.js +++ b/server.js @@ -94,8 +94,9 @@ const beatInterval = 5000; // how often is the heartbeat sent const socketUpdateInterval = 2000; // how often the system checks if the socket connections are still up and running. const version = "1.7.0"; // the version of this server const protocol = "R1"; // the version of this server -const globalAccessibility = false; // if false, only local object and editors can access the object. - // in big networks this might prevent access. In small private networks it adds high security. +const netmask = "255.255.0.0"; // define the network scope from which this server is accessable. +// for a local network 255.255.0.0 allows a 16 bit block of local network addresses to reach the object. +// basically all your local devices can see the object, however the internet is unable to reach the object. console.log(parseInt(version.replace(/\./g, ""))); @@ -1003,11 +1004,11 @@ var parseIpSpace = function(ip_string){ var thisresult = ""; if( ip_parts && ip_parts.length > 6 ){ - thisresult = ip_parts[1]+ip_parts[2]+ip_parts[3]; + thisresult = [parseInt(ip_parts[1]),parseInt(ip_parts[2]),parseInt(ip_parts[3]),parseInt(ip_parts[4])]; } else { ip_parts = ip_regex2.exec(ip_string); if( ip_parts && ip_parts.length > 3) { - thisresult = ip_parts[1]+ip_parts[2]+ip_parts[3]; + thisresult = [parseInt(ip_parts[1]),parseInt(ip_parts[2]),parseInt(ip_parts[3]),parseInt(ip_parts[4])]; } } // Return object @@ -1017,18 +1018,45 @@ var parseIpSpace = function(ip_string){ function objectWebServer() { thisIP = ip.address(); // security implemented + + // check all sever requests for being inside the netmask parameters. + // the netmask is set to local networks only. + webServer.use("*", function (req, res, next) { var remoteIP = parseIpSpace(req.ip); var localIP = parseIpSpace(thisIP); + var thisNetmask = parseIpSpace(netmask); + + var checkThisNetwork = true; + + if (!(remoteIP[0] === localIP[0] || remoteIP[0] <= (255- thisNetmask[0]))){ + checkThisNetwork = false; + } + + if (!(remoteIP[1] === localIP[1] || remoteIP[1] <= (255- thisNetmask[1]))){ + checkThisNetwork = false; + } - if(remoteIP === localIP || remoteIP === "12700" || globalAccessibility) + if (!(remoteIP[2] === localIP[2] || remoteIP[2] <= (255- thisNetmask[2]))){ + checkThisNetwork = false; + } + + if (!(remoteIP[3] === localIP[3] || remoteIP[3] <= (255- thisNetmask[3]))){ + checkThisNetwork = false; + } + + if(!checkThisNetwork) + if (remoteIP[0] === 127 && remoteIP[1] === 0 && remoteIP[2] === 0 && remoteIP[3] === 1){ + checkThisNetwork = true; + } + + if(checkThisNetwork) { next(); } else { res.status(403).send('Error 403: Access denied. This service is only available in a local network.'); } - }); // define the body parser webServer.use(bodyParser.urlencoded({ From 4acf7a6c3c4859db76d740cc0db5ba956d2085d1 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Wed, 23 Nov 2016 11:33:10 -0500 Subject: [PATCH 199/266] block moving API --- server.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index 76e9a3a..45b237e 100644 --- a/server.js +++ b/server.js @@ -1055,7 +1055,7 @@ function objectWebServer() { { next(); } else { - res.status(403).send('Error 403: Access denied. This service is only available in a local network.'); + res.status(403).send('Error 400: Forbidden. The requested page may be only available in a local network.'); } }); // define the body parser @@ -1243,6 +1243,35 @@ function objectWebServer() { }); + webServer.post('/logic/*/*/blockPosition/*/', function (req, res) { + + // cout("post 2"); + var updateStatus = "nothing happened"; + var thisObject = req.params[0]; + var thisNode = req.params[1]; + var thisBlock = req.params[2]; + + cout("changing Possition for :" + thisObject + " : " + thisNode+ " : " + thisBlock); + + var tempObject = objects[thisObject].logic[thisNode].blocks[thisBlock]; + + + // check that the numbers are valid numbers.. + if (typeof req.body.x === "number" && typeof req.body.y === "number") { + + tempObject.x = req.body.x; + tempObject.y = req.body.y; + + utilities.writeObjectToFile(objects, req.params[0], __dirname); + + actionSender(JSON.stringify({reloadObject: {id: thisObject, ip: objects[thisObject].ip}})); + updateStatus = "ok"; + res.send(updateStatus); + } + res.send(updateStatus); + }); + + /** * Logic Nodes **/ @@ -1292,6 +1321,47 @@ function objectWebServer() { }); + webServer.post('/logic/*/*/nodeSize/', function (req, res) { + + // cout("post 2"); + var updateStatus = "nothing happened"; + var thisObject = req.params[0]; + var thisValue = req.params[1]; + + cout("changing Size for :" + thisObject + " : " + thisValue); + + var tempObject = objects[thisObject].logic[thisValue]; + + + // check that the numbers are valid numbers.. + if (typeof req.body.x === "number" && typeof req.body.y === "number" && typeof req.body.scale === "number") { + + // if the object is equal the datapoint id, the item is actually the object it self. + + tempObject.x = req.body.x; + tempObject.y = req.body.y; + tempObject.scale = req.body.scale; + // console.log(req.body); + // ask the devices to reload the objects + } + + if (typeof req.body.matrix === "object") { + + tempObject.matrix = req.body.matrix; + } + + if ((typeof req.body.x === "number" && typeof req.body.y === "number" && typeof req.body.scale === "number") || (typeof req.body.matrix === "object" )) { + utilities.writeObjectToFile(objects, req.params[0], __dirname); + + actionSender(JSON.stringify({reloadObject: {id: thisObject, ip: objects[thisObject].ip}})); + updateStatus = "ok"; + } + + res.send(updateStatus); + }); + + + // sends json object for a specific hybrid object. * is the object name // ths is the most relevant for // **************************************************************************************************************** From c80e4865f95edb790d3795947f922e444edb9069 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Wed, 23 Nov 2016 14:38:36 -0500 Subject: [PATCH 200/266] updates category and appearance --- server.js | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/server.js b/server.js index 45b237e..2aba905 100644 --- a/server.js +++ b/server.js @@ -339,6 +339,8 @@ function Block() { this.y = null; // amount of elements the IO point is created of. Single IO nodes have the size 1. this.blockSize = 1; + // the category for the editor + this.category = 1; // the global / world wide id of the actual reference block design. // checksum of the block?? this.globalId = null; // the checksum should be identical with the checksum for the persistent package files of the reference block design. @@ -1205,10 +1207,39 @@ function objectWebServer() { if (objects.hasOwnProperty(req.params[0])) { - objects[req.params[0]].logic[req.params[1]].blocks[req.params[2]] = req.body; - var thisObject = objects[req.params[0]].logic[req.params[1]].blocks[req.params[2]]; + // todo activate when system is working to increase security + /* var thisMessage = req.body; + + var thisModule = {}; + + var breakPoint = false; + + if (thisMessage.appearance in blockFolderList) { + thisModule = blockModules[thisMessage.appearance]; + + for (var thisKey in thisMessage.publicData) { + if (typeof thisMessage.publicData[thisKey] !== typeof thisModule.publicData[thisKey]) { + breakPoint = true; + } + } + + for (var thisKey in thisMessage.privateData) { + if (typeof thisMessage.privateData[thisKey] !== typeof thisModule.privateData[thisKey]) { + breakPoint = true; + } + } + } + else { + breakPoint = true; + } + + if (!breakPoint)*/ + objects[req.params[0]].logic[req.params[1]].blocks[req.params[2]] = req.body; + + + // call an action that asks all devices to reload their links, once the links are changed. actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); updateStatus = "added"; @@ -1379,6 +1410,8 @@ var blockList = {} for (var key in thisBlock) { blockList[blockFolderList[i]][key] = thisBlock[key]; } + // this makes sure that the appearance of the block is set. + blockList[blockFolderList[i]].appearance = blockFolderList[i]; } res.json(blockList); From 1864a14483cabb95deeaee279413841cbdd6315a Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Tue, 29 Nov 2016 17:26:21 -0500 Subject: [PATCH 201/266] first working demo for programming --- .gitignore | 2 +- hardwareInterfaces/referenceExample/index.js | 2 +- libraries/logicBlocks/default/index.js | 6 +- libraries/logicBlocks/delay/index.js | 4 +- libraries/logicBlocks/switch/index.js | 4 +- libraries/logicBlocks/threshold/index.js | 4 +- .../nodes/{logic => logicNode}/gui/index.html | 0 libraries/nodes/{logic => logicNode}/index.js | 21 +- libraries/webFrontend.js | 30 ++- server.js | 239 +++++++++++++++--- 10 files changed, 242 insertions(+), 70 deletions(-) rename libraries/nodes/{logic => logicNode}/gui/index.html (100%) rename libraries/nodes/{logic => logicNode}/index.js (90%) diff --git a/.gitignore b/.gitignore index 9c1c595..10ce942 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,7 @@ lib-cov .DS_Store # ignore personal objects in the object folder. -##objects/* +objects/* # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index 69973ad..0e319e4 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -47,7 +47,7 @@ /** * Set to true to enable the hardware interface **/ -exports.enabled = false; +exports.enabled = true; if (exports.enabled) { var server = require(__dirname + '/../../libraries/hardwareInterfaces'); diff --git a/libraries/logicBlocks/default/index.js b/libraries/logicBlocks/default/index.js index 8bd707a..12aa018 100755 --- a/libraries/logicBlocks/default/index.js +++ b/libraries/logicBlocks/default/index.js @@ -71,7 +71,7 @@ exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { +exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { var outputData = [{},{},{},{}]; var key; @@ -79,7 +79,5 @@ exports.render = function (objectID, logicID, linkID, inputData, blockObject, ca for (key in inputData[0]) { outputData[0][key] = inputData[0][key]; } - - callback(objectID, linkID, outputData); - + callback(objectID, logicID, linkID, outputData); }; \ No newline at end of file diff --git a/libraries/logicBlocks/delay/index.js b/libraries/logicBlocks/delay/index.js index 5088eb9..81a2bcb 100755 --- a/libraries/logicBlocks/delay/index.js +++ b/libraries/logicBlocks/delay/index.js @@ -71,7 +71,7 @@ exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { +exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { var outputData = [{},{},{},{}]; var key; @@ -81,7 +81,7 @@ exports.render = function (objectID, logicID, linkID, inputData, blockObject, ca } setTimeout(function() { - callback(objectID, linkID, outputData); + callback(objectID, logicID, linkID, outputData); }, blockObject.publicData.delayTime); }; \ No newline at end of file diff --git a/libraries/logicBlocks/switch/index.js b/libraries/logicBlocks/switch/index.js index 9f9543b..8c65003 100755 --- a/libraries/logicBlocks/switch/index.js +++ b/libraries/logicBlocks/switch/index.js @@ -72,7 +72,7 @@ exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { +exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { var outputData = [{},{},{},{}]; var key; @@ -99,7 +99,7 @@ exports.render = function (objectID, logicID, linkID, inputData, blockObject, ca for (key in inputData[1]) { outputData[1][key] = inputData[1][key]; } - callback(objectID, linkID, outputData); + callback(objectID, logicID, linkID, outputData); } }; \ No newline at end of file diff --git a/libraries/logicBlocks/threshold/index.js b/libraries/logicBlocks/threshold/index.js index e1e75b4..4fc7968 100755 --- a/libraries/logicBlocks/threshold/index.js +++ b/libraries/logicBlocks/threshold/index.js @@ -71,7 +71,7 @@ exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, inputData, blockObject, callback) { +exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { // check orientations and calculate if threshold is meet. var pass = false; @@ -103,5 +103,5 @@ exports.render = function (objectID, logicID, linkID, inputData, blockObject, ca outputData[0][number] = 0; } - callback(objectID, linkID, outputData); + callback(objectID, logicID, linkID, outputData); }; \ No newline at end of file diff --git a/libraries/nodes/logic/gui/index.html b/libraries/nodes/logicNode/gui/index.html similarity index 100% rename from libraries/nodes/logic/gui/index.html rename to libraries/nodes/logicNode/gui/index.html diff --git a/libraries/nodes/logic/index.js b/libraries/nodes/logicNode/index.js similarity index 90% rename from libraries/nodes/logic/index.js rename to libraries/nodes/logicNode/index.js index 9814031..0ffc7d4 100755 --- a/libraries/nodes/logic/index.js +++ b/libraries/nodes/logicNode/index.js @@ -58,28 +58,16 @@ [callbacks] */ -var outputData = []; -exports.render = function (objectID, linkID, inputData, callback, logicAddress /* between 0-3 */, objects) { - if(!logicAddress) logicAddress = 0; if(!objects) objects = {}; -/** - if link has INPUT then process from main object. - - - - - if link has OUTPUT then check main links for links and process callbacks - +var outputData = []; - output array +exports.render = function (objectID, linkID, inputData, callback) { - */ - -var outputData = outputData; + var outputData = []; var key; for (var i = 0; i < inputData.length; i++) { - if(!outputData[i]) outputData[i] = {}; + if(outputData.length === i) outputData[i] = {}; for (key in inputData[0]) { outputData[i][key] = inputData[i][key]; } @@ -87,7 +75,6 @@ var outputData = outputData; callback(objectID, linkID, outputData); }; - /* // example for delay exports.render = function (objectID, linkID, inputData, callback) { var outputData = {}; diff --git a/libraries/webFrontend.js b/libraries/webFrontend.js index 748e293..2fe6dd0 100644 --- a/libraries/webFrontend.js +++ b/libraries/webFrontend.js @@ -134,7 +134,7 @@ exports.printFolder = function (objects, dirnameO, debug, objectInterfaceName, o } - resText += "' onclick=\"window.location.href='/target/" + tempFiles[i] + "'\">Add Target " + + resText += "' onclick=\"window.location.href='/target/" + tempFiles[i] + "'\">Target " + " " + + resText += "' onclick=\"window.location.href='/content/" + tempFiles[i] + "'\">Interface "; - // ""+ + var thisObject = utilities.readObject(objectLookup, tempFiles[i]); + + if (objects.hasOwnProperty(thisObject)) { + if(objects[thisObject].deactivated !== true) { + resText += " "; + } + else{ + resText += " "; + } + + } else { + resText += " "; + } + + resText += + + // ""+ // "
    "+ // "
    " + @@ -162,8 +180,10 @@ exports.printFolder = function (objects, dirnameO, debug, objectInterfaceName, o "
    " + "" + "" + - " " + - "" + + " " + + ""; + + resText += //"
    "+ "
    " + ""; diff --git a/server.js b/server.js index 2aba905..effbf47 100644 --- a/server.js +++ b/server.js @@ -169,6 +169,8 @@ function Objects() { // The version number of the Object. this.version = version; + this.deactivated = false; + this.protocol = protocol; // The (t)arget (C)eck(S)um is a sum of the checksum values for the target files. this.tcs = null; @@ -724,7 +726,9 @@ function startSystem() { // generating a udp heartbeat signal for every object that is hosted in this device for (var key in objects) { - objectBeatSender(beatPort, key, objects[key].ip); + if(!objects[key].deactivated) { + objectBeatSender(beatPort, key, objects[key].ip); + } } // receiving heartbeat messages and adding new objects to the knownObjects Array @@ -831,7 +835,7 @@ function objectBeatSender(PORT, thisId, thisIp, oneTimeOnly) { if (!oneTimeOnly) { setInterval(function () { // send the beat# - if (thisId in objects) { + if (thisId in objects && !objects[thisId].deactivated) { // cout("Sending beats... Content: " + JSON.stringify({ id: thisId, ip: thisIp, vn:thisVersionNumber, tcs: objects[thisId].tcs})); var message = new Buffer(JSON.stringify({ @@ -865,7 +869,7 @@ function objectBeatSender(PORT, thisId, thisIp, oneTimeOnly) { // delay the signal with timeout so that not all objects send the beat in the same time. setTimeout(function () { // send the beat - if (thisId in objects) { + if (thisId in objects && !objects[thisId].deactivated) { var message = new Buffer(JSON.stringify({ id: thisId, @@ -1002,16 +1006,17 @@ var parseIpSpace = function(ip_string){ // Use Regex to get the parts of the ip address var ip_parts = ip_regex.exec(ip_string); + var ip_parts2 = ip_regex2.exec(ip_string); // Set ip address if the regex executed successfully var thisresult = ""; if( ip_parts && ip_parts.length > 6 ){ thisresult = [parseInt(ip_parts[1]),parseInt(ip_parts[2]),parseInt(ip_parts[3]),parseInt(ip_parts[4])]; - } else { - ip_parts = ip_regex2.exec(ip_string); - if( ip_parts && ip_parts.length > 3) { - thisresult = [parseInt(ip_parts[1]),parseInt(ip_parts[2]),parseInt(ip_parts[3]),parseInt(ip_parts[4])]; + } else if( ip_parts2 && ip_parts2.length > 3){ + thisresult = [parseInt(ip_parts2[1]),parseInt(ip_parts2[2]),parseInt(ip_parts2[3]),parseInt(ip_parts2[4])]; } + else if(ip_string === "::1"){ + thisresult = [127,0,0,1]; } // Return object return thisresult; @@ -1026,6 +1031,8 @@ function objectWebServer() { webServer.use("*", function (req, res, next) { + + var remoteIP = parseIpSpace(req.ip); var localIP = parseIpSpace(thisIP); var thisNetmask = parseIpSpace(netmask); @@ -1203,11 +1210,17 @@ function objectWebServer() { // **************************************************************************************************************** webServer.post('/logic/*/*/block/*/', function (req, res) { + console.log("where is this object"); + var updateStatus = "nothing happened"; if (objects.hasOwnProperty(req.params[0])) { - var thisObject = objects[req.params[0]].logic[req.params[1]].blocks[req.params[2]]; + var thisBlocks = objects[req.params[0]].logic[req.params[1]].blocks; + + thisBlocks[req.params[2]] = new Block(); + + // todo activate when system is working to increase security /* var thisMessage = req.body; @@ -1236,9 +1249,17 @@ function objectWebServer() { } if (!breakPoint)*/ - objects[req.params[0]].logic[req.params[1]].blocks[req.params[2]] = req.body; + thisBlocks[req.params[2]] = req.body; + // todo this can be removed once the system runs smoothly + if(typeof thisBlocks[req.params[2]].appearance === "undefined"){ + thisBlocks[req.params[2]].appearance = "default"; + } + +for( var k in objects[req.params[0]].logic[req.params[1]].blocks){ + console.log(k); +} // call an action that asks all devices to reload their links, once the links are changed. actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); @@ -1298,7 +1319,7 @@ function objectWebServer() { actionSender(JSON.stringify({reloadObject: {id: thisObject, ip: objects[thisObject].ip}})); updateStatus = "ok"; res.send(updateStatus); - } + } else res.send(updateStatus); }); @@ -1317,10 +1338,21 @@ function objectWebServer() { objects[req.params[0]].logic[req.params[1]] = req.body; + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn0"] = new Block(); + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn1"] = new Block(); + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn2"] = new Block(); + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn3"] = new Block(); + + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut0"] = new Block(); + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut1"] = new Block(); + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut2"] = new Block(); + objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut3"] = new Block(); +console.log("added tons of nodes ----------") + // call an action that asks all devices to reload their links, once the links are changed. actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); updateStatus = "added"; - cout("added logic node: " + req.params[2]); + cout("added logic node: " + req.params[1]); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send(updateStatus); } @@ -1609,6 +1641,25 @@ var blockList = {} res.send(webFrontend.printFolder(objects, __dirname, globalVariables.debug, objectInterfaceFolder, objectLookup, version)); }); + + + // deactivated + + webServer.get('/object/*/deactivate/', function (req, res) { + objects[req.params[0]].deactivated = true; + utilities.writeObjectToFile(objects, req.params[0], __dirname); + + res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'); + res.redirect(req.get('referer')); + }); + + webServer.get('/object/*/activate/', function (req, res) { + objects[req.params[0]].deactivated = false; + utilities.writeObjectToFile(objects, req.params[0], __dirname); + res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'); + res.redirect(req.get('referer')); + }); + // request a zip-file with the object stored inside. *1 is the object // **************************************************************************************************************** webServer.get('/object/*/zipBackup/', function (req, res) { @@ -2207,6 +2258,28 @@ function messagetoSend(msgContent, socketID) { } } + + + + + + + + + + + + + + + + + + + + + + /********************************************************************************************************************** ******************************************** Engine ****************************************************************** **********************************************************************************************************************/ @@ -2219,32 +2292,49 @@ function messagetoSend(msgContent, socketID) { // dependencies afterAppearanceProcessing function objectEngine(object, node, logic, objects, nodeAppearanceModules) { +//console.log(objects[object].links); + for (var linkKey in objects[object].links) { - - for (var linkKey in objects[object].links) { if (objects[object].links[linkKey].nodeA === node) { + // console.log(object + " "+ node +" "+ logic); + + var thisNode = {}; + // todo not the best method at the moment + if(node in objects[object].nodes) { + thisNode = objects[object].nodes[node]; + + } else { + thisNode = objects[object].logic[node]; + } + var thisLink = objects[object].links[linkKey]; if ((thisNode.appearance in nodeAppearanceModules)) { - if(logic === null) { - var thisNode = objects[object].nodes[node]; nodeAppearanceModules[thisNode.appearance].render(object, linkKey, thisNode.item, function (object, link, processedData) { enginePostProcessing(object, link, processedData); }); - } else { - var thisNode = objects[object].logic[node]; - nodeAppearanceModules[thisNode.appearance].render(object, linkKey, thisNode.blocks[logic].item, function (object, link, processedData) { - enginePostProcessing(object, link, processedData); - }); - } + } } } + + // + + /* for (var linkKey in objects[object].nodes[node].links) { + console.log("here"); + } + + for (var linkKey in objects[object].logic[node].links) { + console.log("here"); + } + for (var linkKey in objects[object].nodes[node].links) { + console.log("here"); + }*/ } /** @@ -2257,14 +2347,13 @@ function enginePostProcessing(object, link, processedData) { var thisLink = objects[object].links[link]; if (!(thisLink.objectB in objects)) { - socketSender(object, link, processedData); } else { var objSend = objects[thisLink.objectB].nodes[thisLink.nodeB]; - if(thisLink.logicB === null) { + if(typeof thisLink.logicB !== "number") { for (var i = 0; i < processedData.length; i++) { if (objSend.item.length === i) objSend.item[i] = {}; for (var key in processedData[i]) { @@ -2280,7 +2369,9 @@ function enginePostProcessing(object, link, processedData) { else { - var thisString= "in"+thisLink.logicB; + var thisString= "edgePlaceholderIn"+thisLink.logicB; + + var objSend = objects[thisLink.objectB].logic[thisLink.nodeB].blocks[thisString]; @@ -2288,12 +2379,32 @@ function enginePostProcessing(object, link, processedData) { objSend.item[0][key] = processedData[0][key]; } - logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objSend, blockModules) + + + logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objects, blockModules) } + } } + + + + + + + + + + + + + + + + + /********************************************************************************************************************** ******************************************** Logic Engine ************************************************************ **********************************************************************************************************************/ @@ -2307,25 +2418,39 @@ function enginePostProcessing(object, link, processedData) { // dependencies afterAppearanceProcessing function logicEngine(object, logic, block, item, objects, blockModules) { - if(object in objects) - if(logic in objects[object]) { - var thisLogic = objects[object].logic[logic]; + if(object in objects) { + + if (logic in objects[object].logic) { - for (var linkKey in objects[object].links) { + var thisLogic = objects[object].logic[logic]; + + // console.log(logic); + + for (var linkKey in thisLogic.links) { + + // console.log(thisLogic.links[linkKey]); if (thisLogic.links[linkKey].blockA === block && thisLogic.links[linkKey].itemA === item) { var thisBlock = thisLogic.blocks[block]; + // console.log(block); + + // console.log(thisBlock.appearance); + + if ((thisBlock.appearance in blockModules)) { + blockModules[thisBlock.appearance].render(object, logic, linkKey, item, thisBlock.item, function (object, logic, link, processedData) { + logicEnginePostProcessing(object, logic, link, processedData); }); } } } } + } } /** @@ -2335,27 +2460,69 @@ function logicEngine(object, logic, block, item, objects, blockModules) { **/ function logicEnginePostProcessing(object, logic, link, processedData) { + //console.log(object +" "+ logic +" " + link + " : "+ processedData); var thisLink = objects[object].logic[logic].links[link]; var thisLogic = objects[object].logic[logic]; - var objSend = thisLogic.blocks[thisLink.blockB]; - for (var key in processedData[thisLink.itemA]) { - objSend.item[thisLink.itemB][key] = processedData[thisLink.itemA][key]; - } + for (var key in thisLogic.blocks) { + // console.log(key); + } - logicEngine(object, logic, thisLink.blockB,thisLink.itemB, objSend, blockModules); + //logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objects, blockModules) - if(thisLink.blockB === "out0" || thisLink.blockB === "out1" || thisLink.blockB === "out2" || thisLink.blockB === "out3") + if(thisLink.blockB === "edgePlaceholderOut0" || thisLink.blockB === "edgePlaceholderOut1" || thisLink.blockB === "edgePlaceholderOut2" || thisLink.blockB === "edgePlaceholderOut3") { - objectEngine(object, logic, null, thisLink.blockB, nodeAppearanceModules) + + + var objSend = objects[object].logic[logic]; + + for (var key in processedData[0]) { + objSend.item[0][key] = processedData[0][key]; + } + + + + // console.log(object +" "+ logic); + + objectEngine(object, logic, null, objects, nodeAppearanceModules); + + } else { + + var objSend = thisLogic.blocks[thisLink.blockB]; + for (var key in processedData[thisLink.itemA]) { + objSend.item[thisLink.itemB][key] = processedData[thisLink.itemA][key]; + } + + + logicEngine(object, logic, thisLink.blockB , thisLink.itemB, objects, blockModules); + } + + + // maybe: var re = /^(in|out)\d$/; re.test(blockId)  // or  /^out(0|1|2|3)$/ } + + + + + + + + + + + + + + + + /** * @desc Sends processedValue to the responding Object using the data saved in the LinkArray located by IDinLinkArray **/ From e6069c8dc2bda385a138bf5e812bd530bc63b84a Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Tue, 29 Nov 2016 18:43:34 -0500 Subject: [PATCH 202/266] first working version for logic --- .../nodes/{logicNode => logic}/gui/index.html | 0 libraries/nodes/{logicNode => logic}/index.js | 0 libraries/webFrontend.js | 2 + objects/Gripper6AxisEV3/object.json | 5 +- objects/RightBase6AxisEV3/object.json | 5 +- objects/RightShoulder6AxisEV3/object.json | 5 +- objects/RightUpperTilt6AxisEV3/object.json | 5 +- objects/TopForearm6AxisEV3/object.json | 5 +- objects/TopUpperTilt6AxisEV3/object.json | 5 +- objects/knop1/object.json | 5 +- objects/lamp1/object.json | 5 +- objects/lamp2/object.json | 5 +- objects/obj45/object.json | 2821 ++++++++++++++++- objects/obj47/object.json | 4 +- server.js | 85 +- tempJson | 1368 ++------ test | 0 test.js | 29 + 18 files changed, 3166 insertions(+), 1188 deletions(-) rename libraries/nodes/{logicNode => logic}/gui/index.html (100%) rename libraries/nodes/{logicNode => logic}/index.js (100%) create mode 100644 test create mode 100644 test.js diff --git a/libraries/nodes/logicNode/gui/index.html b/libraries/nodes/logic/gui/index.html similarity index 100% rename from libraries/nodes/logicNode/gui/index.html rename to libraries/nodes/logic/gui/index.html diff --git a/libraries/nodes/logicNode/index.js b/libraries/nodes/logic/index.js similarity index 100% rename from libraries/nodes/logicNode/index.js rename to libraries/nodes/logic/index.js diff --git a/libraries/webFrontend.js b/libraries/webFrontend.js index 2fe6dd0..7b69ccb 100644 --- a/libraries/webFrontend.js +++ b/libraries/webFrontend.js @@ -391,6 +391,8 @@ exports.uploadInfoContent = function (parm, objectLookup, objects, knownObjects, for (subKey in uploadInfoTexttempArrayValue) { var thisHtmlNode = uploadInfoTexttempArrayValue[subKey]; + if(thisHtmlNode.name === "") thisHtmlNode.name = "LOGIC"; + text += "
    "; infoCount++; } diff --git a/objects/Gripper6AxisEV3/object.json b/objects/Gripper6AxisEV3/object.json index 80dedf8..00065e8 100644 --- a/objects/Gripper6AxisEV3/object.json +++ b/objects/Gripper6AxisEV3/object.json @@ -1,7 +1,7 @@ { "objectId": "Gripper6AxisEV3a1a22x6p9s3m", "name": "Gripper6AxisEV3", - "ip": "192.168.1.120", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "1Y82mv", @@ -350,5 +350,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/RightBase6AxisEV3/object.json b/objects/RightBase6AxisEV3/object.json index 2d2b2e3..42e0dcc 100644 --- a/objects/RightBase6AxisEV3/object.json +++ b/objects/RightBase6AxisEV3/object.json @@ -1,7 +1,7 @@ { "objectId": "RightBase6AxisEV3V78ogdk6csbe", "name": "RightBase6AxisEV3", - "ip": "192.168.1.120", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "37RBTH", @@ -184,5 +184,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/RightShoulder6AxisEV3/object.json b/objects/RightShoulder6AxisEV3/object.json index 736fed1..bc2ad0d 100644 --- a/objects/RightShoulder6AxisEV3/object.json +++ b/objects/RightShoulder6AxisEV3/object.json @@ -1,7 +1,7 @@ { "objectId": "RightShoulder6AxisEV35Z5j0vl9jkf1", "name": "RightShoulder6AxisEV3", - "ip": "192.168.1.120", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "2uTHPQ", @@ -98,5 +98,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/RightUpperTilt6AxisEV3/object.json b/objects/RightUpperTilt6AxisEV3/object.json index debd0f3..03f5edb 100644 --- a/objects/RightUpperTilt6AxisEV3/object.json +++ b/objects/RightUpperTilt6AxisEV3/object.json @@ -1,7 +1,7 @@ { "objectId": "RightUpperTilt6AxisEV3SEc0z3n53s8k", "name": "RightUpperTilt6AxisEV3", - "ip": "192.168.1.120", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "fvRhP", @@ -264,5 +264,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/TopForearm6AxisEV3/object.json b/objects/TopForearm6AxisEV3/object.json index 906b3c0..5342e6f 100644 --- a/objects/TopForearm6AxisEV3/object.json +++ b/objects/TopForearm6AxisEV3/object.json @@ -1,7 +1,7 @@ { "objectId": "TopForearm6AxisEV3Zg1zey40sedb", "name": "TopForearm6AxisEV3", - "ip": "192.168.1.120", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "2eegD3", @@ -201,5 +201,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/TopUpperTilt6AxisEV3/object.json b/objects/TopUpperTilt6AxisEV3/object.json index c503e7a..fc07cf6 100644 --- a/objects/TopUpperTilt6AxisEV3/object.json +++ b/objects/TopUpperTilt6AxisEV3/object.json @@ -1,7 +1,7 @@ { "objectId": "TopUpperTilt6AxisEV36pb1j09z64s3", "name": "TopUpperTilt6AxisEV3", - "ip": "192.168.1.120", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "3TaL1s", @@ -138,5 +138,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/knop1/object.json b/objects/knop1/object.json index 6907a59..9c02261 100644 --- a/objects/knop1/object.json +++ b/objects/knop1/object.json @@ -1,7 +1,7 @@ { "objectId": "knop1xe35ycj6l5xy", "name": "knop1", - "ip": "192.168.1.120", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "Eq9rz", @@ -58,5 +58,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/lamp1/object.json b/objects/lamp1/object.json index e448c86..5c19139 100644 --- a/objects/lamp1/object.json +++ b/objects/lamp1/object.json @@ -1,7 +1,7 @@ { "objectId": "lamp1B45bxr4wa081", "name": "lamp1", - "ip": "192.168.1.109", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "3BimNG", @@ -63,5 +63,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/lamp2/object.json b/objects/lamp2/object.json index 9cd4f26..b31e71b 100644 --- a/objects/lamp2/object.json +++ b/objects/lamp2/object.json @@ -1,7 +1,7 @@ { "objectId": "lamp2CH73qpztykp3", "name": "lamp2", - "ip": "192.168.1.109", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "3iH5gn", @@ -81,5 +81,6 @@ "frameSizeY": 100 } }, - "logic": {} + "logic": {}, + "deactivated": true } \ No newline at end of file diff --git a/objects/obj45/object.json b/objects/obj45/object.json index c65e355..63fbd7c 100644 --- a/objects/obj45/object.json +++ b/objects/obj45/object.json @@ -1,7 +1,7 @@ { "objectId": "obj45y4gk159d097q", "name": "obj45", - "ip": "10.0.1.3", + "ip": "192.168.1.7", "version": "1.7.0", "protocol": "R1", "tcs": "bsyBi", @@ -15,34 +15,28 @@ "developer": true, "memory": {}, "links": { - "Lx61hs1n": { + "MX12hi86": { "objectA": "obj45y4gk159d097q", "objectB": "obj45y4gk159d097q", - "nodeA": "obj45y4gk159d097qtwo", - "nodeB": "obj45y4gk159d097qhans", + "nodeA": "obj45y4gk159d097qone", + "nodeB": "aDgnkveasuvw", "logicA": false, - "logicB": false, + "logicB": 0, "namesA": [ "obj45", - "two" - ], - "namesB": [ - "obj45", - "hans" + "one" ], + "namesB": "", "loop": false }, - "ubwV6esr": { + "bZ4efldy": { "objectA": "obj45y4gk159d097q", "objectB": "obj45y4gk159d097q", - "nodeA": "obj45y4gk159d097qhans", + "nodeA": "aDgnkveasuvw", "nodeB": "obj45y4gk159d097qfour", - "logicA": false, + "logicA": 2, "logicB": false, - "namesA": [ - "obj45", - "hans" - ], + "namesA": "", "namesB": [ "obj45", "four" @@ -55,7 +49,7 @@ "name": "one", "item": [ { - "number": 0.7625527987256646, + "number": 0.38601303030736744, "mode": "f", "unit": false, "unitMin": 0, @@ -78,7 +72,7 @@ "name": "two", "item": [ { - "number": 0.34509803921568627, + "number": 0.24284555111080408, "mode": "f", "unit": false, "unitMin": 0, @@ -101,15 +95,33 @@ "name": "four", "item": [ { - "number": 0.4060750659555197, + "number": 0.00672043114900589, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } ], "x": 160.27729563974503, "y": 114.26779778126337, @@ -124,15 +136,33 @@ "name": "hans", "item": [ { - "number": 0.5999659078661352, + "number": 0.4457560491282493, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } ], "x": -127.14244987853397, "y": 112.38326602382978, @@ -142,6 +172,2743 @@ "stress": 0, "frameSizeX": 100, "frameSizeY": 100 + }, + "x23gl7w8kdcs": { + "name": "LOGIC", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "x": 68.45942151971316, + "y": 31.382732832964848, + "scale": 0.5, + "matrix": [], + "visible": false, + "visibleEditing": false, + "lastSetting": false, + "lastSettingBlock": "", + "iconImage": null, + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "appearance": "logic", + "links": {}, + "loaded": false, + "animationScale": 0, + "begin": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "temp": [ + 980.030511162768, + 8.13294042528, + 0.140120663892, + 0.137346, + -25.111678806944, + 947.75174810976, + 0.567315968564, + 0.556082, + 57.823440719744, + 273.89806919904, + -1.9549335168440003, + -1.916222, + -34093.2524078356, + 59942.8460957568, + 1467.08081521112, + 1636.04956 + ], + "fullScreen": false, + "screenX": 325.03803198944166, + "screenY": 222.29316827589693, + "screenZ": 1433.48542053373, + "screenLinearZ": 8.321337010128566, + "blocks": { + "edgePlaceholderIn0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + } + } + }, + "xoibu8bhj3b6": { + "name": "LOGIC", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "x": -160.5873282091319, + "y": 24.354839294072917, + "scale": 0.5, + "matrix": [], + "visible": false, + "visibleEditing": false, + "lastSetting": false, + "lastSettingBlock": "", + "iconImage": null, + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "appearance": "logic", + "links": {}, + "loaded": false, + "animationScale": 0, + "begin": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "temp": [ + 981.57951169344, + 25.447160428800004, + 0.04597030212000001, + 0.04506, + -29.256581835264, + 942.42676066176, + 0.603380109264, + 0.591432, + 8.948442736719999, + 290.69555159040004, + -1.9486062240400002, + -1.91002, + 1637.261580624192, + 25808.855605600318, + 1333.905598797748, + 1505.511474 + ], + "fullScreen": false, + "screenX": 214.90285425498215, + "screenY": 210.3502891239941, + "screenZ": 1338.4171983348713, + "screenLinearZ": 8.928394894545328, + "blocks": { + "edgePlaceholderIn0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + } + } + }, + "aDgnkveasuvw": { + "name": "LOGIC", + "item": [ + { + "number": 0.38601303030736744, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "x": 273.0059909740619, + "y": -28.456481126283506, + "scale": 0.5, + "matrix": [], + "visible": false, + "visibleEditing": false, + "lastSetting": false, + "lastSettingBlock": "", + "iconImage": null, + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "appearance": "logic", + "links": { + "blockLinkfB2o8cei4e79": { + "blockA": "edgePlaceholderIn0", + "itemA": 0, + "blockB": "blockENeai8x3f8qk", + "itemB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0, + "route": null + }, + "blockLinkEl5j10kajlq5": { + "blockA": "blockENeai8x3f8qk", + "itemA": 0, + "blockB": "edgePlaceholderOut2", + "itemB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0, + "route": null + } + }, + "loaded": false, + "animationScale": 0, + "begin": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "temp": [ + 981.442484494432, + 34.34218219872, + 0.022907615707999998, + 0.022454, + -34.456340098336, + 943.0557026246399, + 0.597887341696, + 0.586048, + -4.179903694064, + 287.72527334496004, + -1.950705799756, + -1.912078, + -4900.480704698446, + 25881.98822480832, + 1346.6081849098482, + 1517.962524 + ], + "fullScreen": false, + "screenX": 447.61239795602063, + "screenY": 161.07786938496332, + "screenZ": 1381.5302490160336, + "screenLinearZ": 8.642743487235641, + "blocks": { + "edgePlaceholderIn0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0.38601303030736744, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "blockENeai8x3f8qk": { + "name": "delay", + "x": 2, + "y": 1, + "blockSize": 1, + "globalId": "blockENeai8x3f8qk", + "checksum": null, + "item": [ + { + "number": 0.38601303030736744, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "delayTime": 1000 + }, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "x", + "", + "", + "" + ], + "nameOutput": [ + "delayed x", + "", + "", + "" + ], + "iconImage": null, + "text": "delay", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false, + "appearance": "default" + } + } + }, + "LH7p0f62evwq": { + "name": "LOGIC", + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "x": -205.12121855681565, + "y": -50.70063229838456, + "scale": 0.5, + "matrix": [], + "visible": false, + "visibleEditing": false, + "lastSetting": false, + "lastSettingBlock": "", + "iconImage": null, + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "appearance": "logic", + "links": {}, + "loaded": false, + "animationScale": 0, + "begin": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "temp": [ + 977.3849016344001, + -11.211505852800002, + 0.20754989488000003, + 0.20344, + -20.224451761536, + 933.4510586438399, + 0.6621498656760001, + 0.649038, + 93.51269963497599, + 319.1584385721599, + -1.918783679176, + -1.880788, + -67648.17995330889, + 20494.53560461824, + 1369.2483995524362, + 1540.154418 + ], + "fullScreen": false, + "screenX": 115.1866962326763, + "screenY": 156.14567261301985, + "screenZ": 1305.1793747838035, + "screenLinearZ": 9.161499249635824, + "blocks": { + "edgePlaceholderIn0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderIn3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut0": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut1": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut2": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + }, + "edgePlaceholderOut3": { + "name": "", + "id": null, + "x": null, + "y": null, + "blockSize": 1, + "category": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "iconImage": null, + "text": "", + "stress": 0, + "appearance": "default" + } + } } }, "logic": {} diff --git a/objects/obj47/object.json b/objects/obj47/object.json index 5d7c84a..04d76ef 100644 --- a/objects/obj47/object.json +++ b/objects/obj47/object.json @@ -34,7 +34,7 @@ "y": 156.85004682175247, "scale": 1, "matrix": [], - "appearance": "default", + "appearance": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 @@ -57,7 +57,7 @@ "y": -103.19668796408882, "scale": 1, "matrix": [], - "appearance": "default", + "appearance": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/server.js b/server.js index effbf47..1c4ae2c 100644 --- a/server.js +++ b/server.js @@ -254,7 +254,7 @@ function Node() { // defines the nodeInterface that is used to process data of this type. It also defines the visual representation // in the Reality Editor. Such data points interfaces can be found in the nodeInterface folder. // todo appearance should be removed eventually as there is only one kind of appearance - this.appearance = "default"; + this.appearance = "node"; // defines the origin Hardware interface of the IO Point. For example if this is arduinoYun the Server associates // this IO Point with the Arduino Yun hardware interface. //this.type = "arduinoYun"; // todo "arduinoYun", "virtual", "edison", ... make sure to define yours in your internal_module file @@ -1122,8 +1122,8 @@ function objectWebServer() { var json = JSON.parse(fs.readFileSync(fileName, "utf8")); for(var thisKey in json.logic) { - for (var thisKey2 in json.logic[thisKey].blocks) { - delete json.logic[thisKey].blocks[thisKey2].privateData; + for (var thisKey2 in json.nodes[thisKey].blocks) { + delete json.nodes[thisKey].blocks[thisKey2].privateData; } } res.json(json); @@ -1154,10 +1154,10 @@ function objectWebServer() { webServer.delete('/logic/*/*/link/*/', function (req, res) { var thisLinkId = req.params[2]; - var fullEntry = objects[req.params[0]].logic[req.params[1]].links[thisLinkId]; + var fullEntry = objects[req.params[0]].nodes[req.params[1]].links[thisLinkId]; var destinationIp = knownObjects[fullEntry.objectB]; - delete objects[req.params[0]].logic[req.params[1]].links[thisLinkId]; + delete objects[req.params[0]].nodes[req.params[1]].links[thisLinkId]; cout("deleted link: " + thisLinkId); // cout(objects[req.params[0]].links); actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); @@ -1174,9 +1174,9 @@ function objectWebServer() { if (objects.hasOwnProperty(req.params[0])) { - objects[req.params[0]].logic[req.params[1]].links[req.params[2]] = req.body; + objects[req.params[0]].nodes[req.params[1]].links[req.params[2]] = req.body; - var thisObject = objects[req.params[0]].logic[req.params[1]].links[req.params[2]]; + var thisObject = objects[req.params[0]].nodes[req.params[1]].links[req.params[2]]; thisObject.loop = false; @@ -1216,7 +1216,7 @@ function objectWebServer() { if (objects.hasOwnProperty(req.params[0])) { - var thisBlocks = objects[req.params[0]].logic[req.params[1]].blocks; + var thisBlocks = objects[req.params[0]].nodes[req.params[1]].blocks; thisBlocks[req.params[2]] = new Block(); @@ -1257,7 +1257,7 @@ function objectWebServer() { thisBlocks[req.params[2]].appearance = "default"; } -for( var k in objects[req.params[0]].logic[req.params[1]].blocks){ +for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ console.log(k); } @@ -1275,17 +1275,17 @@ for( var k in objects[req.params[0]].logic[req.params[1]].blocks){ webServer.delete('/logic/*/*/block/*/', function (req, res) { var thisLinkId = req.params[2]; - var fullEntry = objects[req.params[0]].logic[req.params[1]].blocks[thisLinkId]; + var fullEntry = objects[req.params[0]].nodes[req.params[1]].blocks[thisLinkId]; var destinationIp = knownObjects[fullEntry.objectB]; - delete objects[req.params[0]].logic[req.params[1]].blocks[thisLinkId]; + delete objects[req.params[0]].nodes[req.params[1]].blocks[thisLinkId]; cout("deleted block: " + thisLinkId); - var thisLinks = objects[req.params[0]].logic[req.params[1]].links; + var thisLinks = objects[req.params[0]].nodes[req.params[1]].links; // Make sure that no links are connected to deleted objects for (var subCheckerKey in thisLinks) { if (thisLinks[subCheckerKey].blockA === thisLinkId || thisLinks[subCheckerKey].blockB === thisLinkId) { - delete objects[req.params[0]].logic[req.params[1]].links[subCheckerKey]; + delete objects[req.params[0]].nodes[req.params[1]].links[subCheckerKey]; } } @@ -1305,7 +1305,7 @@ for( var k in objects[req.params[0]].logic[req.params[1]].blocks){ cout("changing Possition for :" + thisObject + " : " + thisNode+ " : " + thisBlock); - var tempObject = objects[thisObject].logic[thisNode].blocks[thisBlock]; + var tempObject = objects[thisObject].nodes[thisNode].blocks[thisBlock]; // check that the numbers are valid numbers.. @@ -1336,19 +1336,21 @@ for( var k in objects[req.params[0]].logic[req.params[1]].blocks){ if (objects.hasOwnProperty(req.params[0])) { - objects[req.params[0]].logic[req.params[1]] = req.body; + objects[req.params[0]].nodes[req.params[1]] = req.body; - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn0"] = new Block(); - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn1"] = new Block(); - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn2"] = new Block(); - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderIn3"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn0"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn1"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn2"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn3"] = new Block(); - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut0"] = new Block(); - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut1"] = new Block(); - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut2"] = new Block(); - objects[req.params[0]].logic[req.params[1]].blocks["edgePlaceholderOut3"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut0"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut1"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut2"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut3"] = new Block(); console.log("added tons of nodes ----------") + objects[req.params[0]].nodes[req.params[1]].appearance = "logic"; + // call an action that asks all devices to reload their links, once the links are changed. actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); updateStatus = "added"; @@ -1362,9 +1364,9 @@ console.log("added tons of nodes ----------") // **************************************************************************************************************** webServer.delete('/logic/*/*/node/', function (req, res) { - var fullEntry = objects[req.params[0]].logic[req.params[1]]; + var fullEntry = objects[req.params[0]].nodes[req.params[1]]; - delete objects[req.params[0]].logic[req.params[1]]; + delete objects[req.params[0]].nodes[req.params[1]]; cout("deleted node: " + req.params[1]); // Make sure that no links are connected to deleted objects @@ -1393,7 +1395,7 @@ console.log("added tons of nodes ----------") cout("changing Size for :" + thisObject + " : " + thisValue); - var tempObject = objects[thisObject].logic[thisValue]; + var tempObject = objects[thisObject].nodes[thisValue]; // check that the numbers are valid numbers.. @@ -2206,8 +2208,8 @@ function socketServer() { if (msg.object !== null && msg.logic !== null && msg.block !== null) { if (msg.object in objects) { if (msg.logic in objects[msg.object].logic) { - if (msg.block in objects[msg.object].logic[msg.logic].blocks) { - var thisPublicData = objects[msg.object].logic[msg.logic].blocks[msg.block].publicData; + if (msg.block in objects[msg.object].nodes[msg.logic].blocks) { + var thisPublicData = objects[msg.object].nodes[msg.logic].blocks[msg.block].publicData; // write data in to the block data of the object for (var key in msg.publicData) { @@ -2300,15 +2302,8 @@ function objectEngine(object, node, logic, objects, nodeAppearanceModules) { // console.log(object + " "+ node +" "+ logic); - var thisNode = {}; - - // todo not the best method at the moment - if(node in objects[object].nodes) { - thisNode = objects[object].nodes[node]; + var thisNode = objects[object].nodes[node]; - } else { - thisNode = objects[object].logic[node]; - } var thisLink = objects[object].links[linkKey]; if ((thisNode.appearance in nodeAppearanceModules)) { @@ -2329,7 +2324,7 @@ function objectEngine(object, node, logic, objects, nodeAppearanceModules) { console.log("here"); } - for (var linkKey in objects[object].logic[node].links) { + for (var linkKey in objects[object].nodes[node].links) { console.log("here"); } for (var linkKey in objects[object].nodes[node].links) { @@ -2371,16 +2366,12 @@ function enginePostProcessing(object, link, processedData) { var thisString= "edgePlaceholderIn"+thisLink.logicB; - - - var objSend = objects[thisLink.objectB].logic[thisLink.nodeB].blocks[thisString]; + var objSend = objects[thisLink.objectB].nodes[thisLink.nodeB].blocks[thisString]; for (var key in processedData[0]) { objSend.item[0][key] = processedData[0][key]; } - - logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objects, blockModules) } @@ -2420,9 +2411,9 @@ function logicEngine(object, logic, block, item, objects, blockModules) { if(object in objects) { - if (logic in objects[object].logic) { + if (logic in objects[object].nodes) { - var thisLogic = objects[object].logic[logic]; + var thisLogic = objects[object].nodes[logic]; // console.log(logic); @@ -2461,8 +2452,8 @@ function logicEngine(object, logic, block, item, objects, blockModules) { function logicEnginePostProcessing(object, logic, link, processedData) { //console.log(object +" "+ logic +" " + link + " : "+ processedData); - var thisLink = objects[object].logic[logic].links[link]; - var thisLogic = objects[object].logic[logic]; + var thisLink = objects[object].nodes[logic].links[link]; + var thisLogic = objects[object].nodes[logic]; @@ -2476,7 +2467,7 @@ function logicEnginePostProcessing(object, logic, link, processedData) { { - var objSend = objects[object].logic[logic]; + var objSend = objects[object].nodes[logic]; for (var key in processedData[0]) { objSend.item[0][key] = processedData[0][key]; diff --git a/tempJson b/tempJson index 1cd3fe3..dc103dd 100644 --- a/tempJson +++ b/tempJson @@ -1,1104 +1,284 @@ { - "name": "", - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "x": -109.89313594858743, - "y": 22.476751897348265, - "scale": 0.5, - "matrix": [], - "lastSetting": false, - "lastSettingBlock": "", - "iconImage": null, - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "appearance": "logicNode", - "links": { - "blockLink779d9rrf9ci7": { - "blockA": { - "name": "threshold", - "x": 0, - "y": 0, - "blockSize": 1, - "globalId": "blockmSfdhxw5ixg9", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": { - "minValueToSend": 0.5 - }, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "x", - "", - "", - "" - ], - "nameOutput": [ - "x if x>min", - "", - "", - "" - ], - "iconImage": null, - "text": "threshold", - "stress": 0, - "isTempBlock": false, - "isPortBlock": false + "default": { + "name": "default", + "x": null, + "y": null, + "blockSize": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 }, - "itemA": 0, - "blockB": { - "name": "delay", - "x": 0, - "y": 1, - "blockSize": 1, - "globalId": "blockysfrodn0r5b7", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": { - "delayTime": 1000 - }, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "x", - "", - "", - "" - ], - "nameOutput": [ - "delayed x", - "", - "", - "" - ], - "iconImage": null, - "text": "delay", - "stress": 0, - "isTempBlock": false, - "isPortBlock": false + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 }, - "itemB": 0, - "loop": false, - "health": 0, - "ballAnimationCount": 0.12578125000000007 - }, - "blockLinkYwj0nhjoergo": { - "itemA": 0, - "blockB": { - "name": "switch", - "x": 1, - "y": 1, - "blockSize": 1, - "globalId": "blocksNeoooc4vcoi", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "x", - "", - "", - "" - ], - "nameOutput": [ - "x", - "", - "", - "" - ], - "iconImage": null, - "text": "switch", - "stress": 0, - "isTempBlock": false, - "isPortBlock": false - }, - "itemB": 0, - "loop": false, - "health": 0, - "ballAnimationCount": 0.052072352659319636 - }, - "blockLinkMc8vjq2u8077": { - "itemA": 0, - "itemB": 0, - "loop": false, - "health": 0, - "ballAnimationCount": 0.010907859078590784 - }, - "blockLinkNk9uztg0arus": { - "itemA": 0, - "blockB": { - "name": "edge", - "x": 1, - "y": 3, - "blockSize": 1, - "globalId": "edgeBlock6tb52qmbsj56", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - false, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 }, - "itemB": 0, - "loop": false, - "health": 0, - "ballAnimationCount": 0.046119791666666694 - } + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": {}, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "in", + "", + "", + "" + ], + "nameOutput": [ + "out", + "", + "", + "" + ], + "iconImage": "icon.png", + "text": "default", + "stress": 0, + "appearance": "default" }, - "blocks": { - "edgeBlockxw3r81dk7vfu": { - "name": "edge", - "x": 1, - "y": 0, - "blockSize": 1, - "globalId": "edgeBlockxw3r81dk7vfu", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - false, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true - }, - "edgeBlockHH92mxy9ty3u": { - "name": "edge", - "x": 2, - "y": 0, - "blockSize": 1, - "globalId": "edgeBlockHH92mxy9ty3u", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - false, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true - }, - "edgeBlockZt5q483wddre": { - "name": "edge", - "x": 3, - "y": 0, - "blockSize": 1, - "globalId": "edgeBlockZt5q483wddre", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - false, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true - }, - "edgeBlockyt58e6fbc06i": { - "name": "edge", - "x": 0, - "y": 3, - "blockSize": 1, - "globalId": "edgeBlockyt58e6fbc06i", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - false, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true - }, - "edgeBlock6tb52qmbsj56": { - "name": "edge", - "x": 1, - "y": 3, - "blockSize": 1, - "globalId": "edgeBlock6tb52qmbsj56", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - false, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true - }, - "edgeBlockibg2b7g66ay3": { - "name": "edge", - "x": 2, - "y": 3, - "blockSize": 1, - "globalId": "edgeBlockibg2b7g66ay3", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - false, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true - }, - "edgeBlockw41hp0u2n4yz": { - "name": "edge", - "x": 3, - "y": 3, - "blockSize": 1, - "globalId": "edgeBlockw41hp0u2n4yz", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - false, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "edge", - "stress": 0, - "isTempBlock": false, - "isPortBlock": true - }, - "blockysfrodn0r5b7": { - "name": "delay", - "x": 0, - "y": 1, - "blockSize": 1, - "globalId": "blockysfrodn0r5b7", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": { - "delayTime": 1000 + "delay": { + "name": "delay", + "x": null, + "y": null, + "blockSize": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 }, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "x", - "", - "", - "" - ], - "nameOutput": [ - "delayed x", - "", - "", - "" - ], - "iconImage": null, - "text": "delay", - "stress": 0, - "isTempBlock": false, - "isPortBlock": false - }, - "blocksNeoooc4vcoi": { - "name": "switch", - "x": 1, - "y": 1, - "blockSize": 1, - "globalId": "blocksNeoooc4vcoi", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "x", - "", - "", - "" - ], - "nameOutput": [ - "x", - "", - "", - "" - ], - "iconImage": null, - "text": "switch", - "stress": 0, - "isTempBlock": false, - "isPortBlock": false + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "delayTime": 1000 }, - "blockmSfdhxw5ixg9": { - "name": "threshold", - "x": 0, - "y": 0, - "blockSize": 1, - "globalId": "blockmSfdhxw5ixg9", - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": { - "minValueToSend": 0.5 + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "in", + "", + "", + "" + ], + "nameOutput": [ + "out", + "", + "", + "" + ], + "iconImage": "icon.png", + "text": "delay", + "stress": 0, + "appearance": "default" + }, + "switch": { + "name": "switch", + "x": null, + "y": null, + "blockSize": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 }, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "x", - "", - "", - "" - ], - "nameOutput": [ - "x if x>min", - "", - "", - "" - ], - "iconImage": null, - "text": "threshold", - "stress": 0, - "isTempBlock": false, - "isPortBlock": false - } + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "switchType": "toggle", + "switch": false, + "toggle": false + }, + "activeInputs": [ + true, + true, + false, + false + ], + "activeOutputs": [ + true, + true, + false, + false + ], + "nameInput": [ + "in", + "stream in", + "", + "" + ], + "nameOutput": [ + "out", + "stream out", + "", + "" + ], + "iconImage": "icon.png", + "text": "switch", + "stress": 0, + "appearance": "default" }, - "loaded": true, - "animationScale": 1, - "visibleEditing": false, - "begin": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "temp": [ - 1.573928, - 949.7624036435201, - -0.382277851016, - -0.374708, - -966.0074831999999, - 7.05896286272, - 0.059967473560000005, - 0.05878, - -29.2161592, - -182.22726674368, - -2.003376788612, - -1.963706, - -27684.815125600002, - -5469.183404929279, - 1155.4569272000722, - 1330.596436 - ], - "visible": false, - "screenX": 248.06571751582783, - "screenY": 81.39207113784167, - "screenZ": 1215.6096949700964, - "screenLinearZ": 9.853133011050886, - "fullScreen": false + "threshold": { + "name": "threshold", + "x": null, + "y": null, + "blockSize": 1, + "globalId": null, + "checksum": null, + "item": [ + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "number": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "threshold": 0.5, + "direction": ">", + "digital": true + }, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "stream in", + "", + "", + "" + ], + "nameOutput": [ + "stream out", + "", + "", + "" + ], + "iconImage": "icon.png", + "text": "threshold", + "stress": 0, + "appearance": "default" + } } \ No newline at end of file diff --git a/test b/test new file mode 100644 index 0000000..e69de29 diff --git a/test.js b/test.js new file mode 100644 index 0000000..f9be125 --- /dev/null +++ b/test.js @@ -0,0 +1,29 @@ +var fs = require('fs'), + path = require('path') + +function dirTree(filename) { + var stats = fs.lstatSync(filename), + info = { + path: filename, + name: path.basename(filename) + }; + + if (stats.isDirectory()) { + info.type = "folder"; + info.children = fs.readdirSync(filename).map(function(child) { + return dirTree(filename + '/' + child); + }); + } else { + // Assuming it's a file. In real life it could be a symlink or + // something else! + info.type = "file"; + } + + return info; +} + +if (module.parent == undefined) { + // node dirTree.js ~/foo/bar + var util = require('util'); + console.log(util.inspect(dirTree(process.argv[2]), false, null)); +} \ No newline at end of file From 414deb9f56f869fc015c9751641690eb74fe9a98 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Sat, 3 Dec 2016 10:59:52 -0500 Subject: [PATCH 203/266] working State - Logic Blocks --- hardwareInterfaces/referenceExample/index.js | 14 +- libraries/hardwareInterfaces.js | 44 +- libraries/logicBlocks/default/index.js | 2 - libraries/logicBlocks/delay/index.js | 1 - libraries/logicBlocks/switch/index.js | 3 +- libraries/logicBlocks/threshold/index.js | 9 +- .../gui/index.html | 0 .../nodes/default_temp_disabled/index.js | 78 + libraries/nodes/invisible/index.js | 10 +- libraries/nodes/logic/index.js | 14 +- libraries/nodes/node/gui/index.html | 88 + libraries/nodes/{default => node}/index.js | 11 +- libraries/objectDefaultFiles/object.js | 26 +- libraries/webFrontend.js | 3 +- objects/Gripper6AxisEV3/object.json | 100 +- objects/RightBase6AxisEV3/object.json | 50 +- objects/RightShoulder6AxisEV3/object.json | 20 +- objects/RightUpperTilt6AxisEV3/object.json | 70 +- objects/TopForearm6AxisEV3/object.json | 50 +- objects/TopUpperTilt6AxisEV3/object.json | 30 +- objects/knop1/object.json | 10 +- objects/lamp1/object.json | 20 +- objects/lamp2/object.json | 20 +- objects/obj45/object.json | 2585 +++-------------- objects/obj47/object.json | 20 +- server.js | 256 +- temp | 8 +- tempJson | 40 +- 28 files changed, 854 insertions(+), 2728 deletions(-) rename libraries/nodes/{default => default_temp_disabled}/gui/index.html (100%) create mode 100755 libraries/nodes/default_temp_disabled/index.js create mode 100755 libraries/nodes/node/gui/index.html rename libraries/nodes/{default => node}/index.js (92%) diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index 0e319e4..144b041 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -54,15 +54,13 @@ if (exports.enabled) { server.enableDeveloperUI(true); - server.addNode("obj47", "hans", "default"); - server.addNode("obj47", "peter", "default"); + server.addNode("obj47", "hans", "node"); + server.addNode("obj47", "peter", "node"); - server.addNode("obj45", "one", "default"); - server.addNode("obj45", "two", "default"); - server.addNode("obj45", "four", "default"); - server.addNode("obj45", "hans", "default"); + server.addNode("obj45", "one", "node"); + server.addNode("obj45", "two", "node"); - server.addReadListener("obj45", "four", function (item) { + server.addReadListener("obj45", "two", function (item) { //console.log(item.number); }); @@ -79,6 +77,6 @@ if (exports.enabled) { server.write("obj45", "one", Math.random(), "f"); - }, 100); + }, 300); } diff --git a/libraries/hardwareInterfaces.js b/libraries/hardwareInterfaces.js index 5fa5922..5410fee 100644 --- a/libraries/hardwareInterfaces.js +++ b/libraries/hardwareInterfaces.js @@ -26,7 +26,7 @@ var objects = {}; var objectLookup; var globalVariables; var dirnameO; -var nodeAppearanceModules; +var nodeTypeModules; var blockModules; var callback; var Node; @@ -45,9 +45,9 @@ function Object(objectName) { } -function EmptyNode(nodeName, appearance) { +function EmptyNode(nodeName, type) { this.name = nodeName; - this.appearance = appearance; + this.type = type; this.callBack = {}; } @@ -59,10 +59,10 @@ function EmptyNode(nodeName, appearance) { * @desc This function writes the values passed from the hardware interface to the HybridObjects server. * @param {string} objectName The name of the HybridObject * @param {string} nodeName The name of the IO point - * @param {} number The value to be passed on + * @param {value} value The value to be passed on * @param {string} mode specifies the datatype of value, you can define it to be whatever you want. For example 'f' could mean value is a floating point variable. **/ -exports.write = function (objectName, nodeName, number, mode, unit, unitMin, unitMax) { +exports.write = function (objectName, nodeName, value, mode, unit, unitMin, unitMax) { if (typeof mode === 'undefined') mode = "f"; if (typeof unit === 'undefined') unit = false; if (typeof unitMin === 'undefined') unitMin = 0; @@ -76,14 +76,14 @@ exports.write = function (objectName, nodeName, number, mode, unit, unitMin, uni // console.log("writeIOToServer obj: "+objectName + " name: "+nodeName+ " value: "+value+ " mode: "+mode); if (objects.hasOwnProperty(objectKey)) { if (objects[objectKey].nodes.hasOwnProperty(nodeUuid)) { - var thisItem = objects[objectKey].nodes[nodeUuid].item[0]; - thisItem.number = number; - thisItem.mode = mode; - thisItem.unit = unit; - thisItem.unitMin = unitMin; - thisItem.unitMax = unitMax; + var thisData = objects[objectKey].nodes[nodeUuid].data; + thisData.value = value; + thisData.mode = mode; + thisData.unit = unit; + thisData.unitMin = unitMin; + thisData.unitMax = unitMax; //callback is objectEngine in server.js. Notify data has changed. - callback(objectKey, nodeUuid, thisItem, objects, nodeAppearanceModules); + callback(objectKey, nodeUuid, thisData, objects, nodeTypeModules); } } }; @@ -111,9 +111,9 @@ exports.clearObject = function (objectId) { * @desc addIO() a new IO point to the specified HybridObject * @param {string} objectName The name of the HybridObject * @param {string} nodeName The name of the nodeName - * @param {string} appearance The name of the data conversion appearance. If you don't have your own put in "default". + * @param {string} type The name of the data conversion type. If you don't have your own put in "default". **/ -exports.addNode = function (objectName, nodeName, appearance) { +exports.addNode = function (objectName, nodeName, type) { @@ -144,7 +144,7 @@ exports.addNode = function (objectName, nodeName, appearance) { var thisObj = objects[objectID].nodes[nodeUuid]; thisObj.name = nodeName; - thisObj.appearance = appearance; + thisObj.type = type; if (!hardwareObjects.hasOwnProperty(objectName)) { hardwareObjects[objectName] = new Object(objectName); @@ -152,7 +152,7 @@ exports.addNode = function (objectName, nodeName, appearance) { if (!hardwareObjects[objectName].nodes.hasOwnProperty(nodeUuid)) { hardwareObjects[objectName].nodes[nodeUuid] = new EmptyNode(nodeName); - hardwareObjects[objectName].nodes[nodeUuid].appearance = appearance; + hardwareObjects[objectName].nodes[nodeUuid].type = type; } } } @@ -188,12 +188,12 @@ exports.getDebug = function () { /** * @desc setup() DO NOT call this in your hardware interface. setup() is only called from server.js to pass through some global variables. **/ -exports.setup = function (objExp, objLookup, glblVars, dir, appearances, blocks, cb, objValue) { +exports.setup = function (objExp, objLookup, glblVars, dir, types, blocks, cb, objValue) { objects = objExp; objectLookup = objLookup; globalVariables = glblVars; dirnameO = dir; - nodeAppearanceModules = appearances; + nodeTypeModules = types; blockModules = blocks; callback = cb; Node = objValue; @@ -202,8 +202,8 @@ exports.setup = function (objExp, objLookup, glblVars, dir, appearances, blocks, exports.reset = function (){ for (var objectKey in objects) { for (var nodeKey in objects[objectKey].nodes) { - _this.addNode(objects[objectKey].name, objects[objectKey].nodes[nodeKey].name, objects[objectKey].nodes[nodeKey].appearance); - + if(objects[objectKey].nodes[nodeKey].type !== "logic") + _this.addNode(objects[objectKey].name, objects[objectKey].nodes[nodeKey].name, objects[objectKey].nodes[nodeKey].type); } _this.clearObject(objectKey); } @@ -214,10 +214,10 @@ exports.reset = function (){ } }; -exports.readCall = function (objectName, nodeName, item) { +exports.readCall = function (objectName, nodeName, data) { if (callBacks.hasOwnProperty(objectName)) { if (callBacks[objectName].nodes.hasOwnProperty(nodeName)) { - callBacks[objectName].nodes[nodeName].callBack(item[0]); + callBacks[objectName].nodes[nodeName].callBack(data); } } }; diff --git a/libraries/logicBlocks/default/index.js b/libraries/logicBlocks/default/index.js index 12aa018..6783cc4 100755 --- a/libraries/logicBlocks/default/index.js +++ b/libraries/logicBlocks/default/index.js @@ -52,7 +52,6 @@ * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var outputData = []; var properties = { name : "default", @@ -72,7 +71,6 @@ exports.properties = properties; //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { - var outputData = [{},{},{},{}]; var key; diff --git a/libraries/logicBlocks/delay/index.js b/libraries/logicBlocks/delay/index.js index 81a2bcb..3c437c3 100755 --- a/libraries/logicBlocks/delay/index.js +++ b/libraries/logicBlocks/delay/index.js @@ -52,7 +52,6 @@ * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var outputData = []; var properties = { name : "delay", diff --git a/libraries/logicBlocks/switch/index.js b/libraries/logicBlocks/switch/index.js index 8c65003..32460b8 100755 --- a/libraries/logicBlocks/switch/index.js +++ b/libraries/logicBlocks/switch/index.js @@ -52,7 +52,6 @@ * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var outputData = []; var properties = { name : "switch", @@ -77,7 +76,7 @@ exports.render = function (objectID, logicID, linkID, blockObject, inputData, ca var outputData = [{},{},{},{}]; var key; - if(inputData[0].number && blockObject.publicData.toggle === false) + if(inputData[0].value && blockObject.publicData.toggle === false) { blockObject.publicData.toggle = true; // toggle the value diff --git a/libraries/logicBlocks/threshold/index.js b/libraries/logicBlocks/threshold/index.js index 4fc7968..0d95f28 100755 --- a/libraries/logicBlocks/threshold/index.js +++ b/libraries/logicBlocks/threshold/index.js @@ -52,7 +52,6 @@ * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var outputData = []; var properties = { name : "threshold", @@ -77,12 +76,12 @@ exports.render = function (objectID, logicID, linkID, blockObject, inputData, ca var pass = false; if(blockObject.publicData.direction = ">") { - if(inputData[0][number] > blockObject.publicData.threshold){ + if(inputData[0][value] > blockObject.publicData.threshold){ pass = true; } } else if(blockObject.publicData.direction = "<") { - if(inputData[0][number] < blockObject.publicData.threshold){ + if(inputData[0][value] < blockObject.publicData.threshold){ pass = true; } } @@ -97,10 +96,10 @@ exports.render = function (objectID, logicID, linkID, blockObject, inputData, ca // calculate final output if(pass){ if(blockObject.publicData.digital){ - outputData[0][number] = 1; + outputData[0][value] = 1; } } else { - outputData[0][number] = 0; + outputData[0][value] = 0; } callback(objectID, logicID, linkID, outputData); diff --git a/libraries/nodes/default/gui/index.html b/libraries/nodes/default_temp_disabled/gui/index.html similarity index 100% rename from libraries/nodes/default/gui/index.html rename to libraries/nodes/default_temp_disabled/gui/index.html diff --git a/libraries/nodes/default_temp_disabled/index.js b/libraries/nodes/default_temp_disabled/index.js new file mode 100755 index 0000000..0f93ede --- /dev/null +++ b/libraries/nodes/default_temp_disabled/index.js @@ -0,0 +1,78 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkID the id of the link that is related to the call + * @param {object} inputData the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ +var outputData = {}; +exports.render = function (objectID, linkID, inputData, callback) { + var outputData = outputData; + var key; + for (var key in inputData) { + outputData[key] = inputData[key]; + } + + callback(objectID, linkID, outputData); +}; + +/* // example for delay + exports.render = function (objectID, linkID, inputData, callback) { + var outputData = {}; + for(key in inputData) + { + outputData[key] = inputData[key]; + } + + setTimeout(function() { + callback(objectID, linkPositionID, outputData); + }, 1000); + }; + */ diff --git a/libraries/nodes/invisible/index.js b/libraries/nodes/invisible/index.js index 740f3b5..d024fed 100755 --- a/libraries/nodes/invisible/index.js +++ b/libraries/nodes/invisible/index.js @@ -52,17 +52,13 @@ * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var outputData = []; exports.render = function (objectID, linkID, inputData, callback) { - var outputData = outputData; + var outputData = {}; var key; - for (var i = 0; i < inputData.length; i++) { - if(!outputData[i]) outputData[i] = {}; - for (key in inputData[0]) { - outputData[i][key] = inputData[i][key]; + for (key in inputData) { + outputData[key] = inputData[key]; } - } callback(objectID, linkID, outputData); }; diff --git a/libraries/nodes/logic/index.js b/libraries/nodes/logic/index.js index 0ffc7d4..a88800a 100755 --- a/libraries/nodes/logic/index.js +++ b/libraries/nodes/logic/index.js @@ -59,20 +59,12 @@ */ - -var outputData = []; - exports.render = function (objectID, linkID, inputData, callback) { - - var outputData = []; + var outputData = {}; var key; - for (var i = 0; i < inputData.length; i++) { - if(outputData.length === i) outputData[i] = {}; - for (key in inputData[0]) { - outputData[i][key] = inputData[i][key]; + for (key in inputData) { + outputData[key] = inputData[key]; } - } - callback(objectID, linkID, outputData); }; /* // example for delay diff --git a/libraries/nodes/node/gui/index.html b/libraries/nodes/node/gui/index.html new file mode 100755 index 0000000..8c940aa --- /dev/null +++ b/libraries/nodes/node/gui/index.html @@ -0,0 +1,88 @@ + + + + + + IO + + + +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libraries/nodes/default/index.js b/libraries/nodes/node/index.js similarity index 92% rename from libraries/nodes/default/index.js rename to libraries/nodes/node/index.js index c3635ef..c5ebed7 100755 --- a/libraries/nodes/default/index.js +++ b/libraries/nodes/node/index.js @@ -52,19 +52,14 @@ * @param {function} callback the function that is called for when the process is rendered. * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var outputData = []; exports.render = function (objectID, linkID, inputData, callback) { - var outputData = []; + var outputData = {}; var key; - for (var i = 0; i < inputData.length; i++) { - if(outputData.length === i) outputData[i] = {}; - for (key in inputData[0]) { - outputData[i][key] = inputData[i][key]; + for (key in inputData) { + outputData[key] = inputData[key]; } - } - callback(objectID, linkID, outputData); }; diff --git a/libraries/objectDefaultFiles/object.js b/libraries/objectDefaultFiles/object.js index 1124393..f8df9c6 100644 --- a/libraries/objectDefaultFiles/object.js +++ b/libraries/objectDefaultFiles/object.js @@ -389,7 +389,7 @@ function HybridObject() { var _this = this; this.ioObject = io.connect(); - this.oldNumberList = {}; + this.oldValueList = {}; this.sendEealityEditorSubscribe = setInterval(function () { if (realityObject.object) { @@ -403,25 +403,25 @@ function HybridObject() { */ - this.write = function (node, number, mode, unit, unitMin, unitMax) { + this.write = function (node, value, mode, unit, unitMin, unitMax) { if (!mode) mode = "f"; if (!unit) unit = false; if (!unitMin) unitMin = 0; if (!unitMax) unitMax = 1; - var thisItem = [{number: number, mode: mode, unit: unit, unitMin: unitMin, unitMax: unitMax}]; - if (!node in _this.oldNumberList) { - _this.oldNumberList[node] = null; + var thisData = {value: value, mode: mode, unit: unit, unitMin: unitMin, unitMax: unitMax}; + if (!node in _this.oldValueList) { + _this.oldValueList[node] = null; } - if (_this.oldNumberList[node] !== number) { + if (_this.oldValueList[node] !== value) { this.ioObject.emit('object', JSON.stringify({ object: realityObject.object, node: realityObject.object+node, - item: thisItem + data: thisData })); } - _this.oldNumberList[node] = number; + _this.oldValueList[node] = value; }; /** @@ -438,7 +438,7 @@ function HybridObject() { this.read = function (node, msg) { if (msg.node === realityObject.object+node) { - return msg.item[0].number; + return msg.data.value; } else { return undefined; } @@ -453,8 +453,8 @@ function HybridObject() { var thisMsg = JSON.parse(msg); if (typeof thisMsg.node !== "undefined") { if (thisMsg.node === realityObject.object+node) { - if (typeof thisMsg.item !== "undefined") - callback(thisMsg.item[0].number); + if (typeof thisMsg.data !== "undefined") + callback(thisMsg.data.value); } } }); @@ -475,7 +475,7 @@ function HybridObject() { /** ************************************************************ */ - this.write = function (node, number, mode) { + this.write = function (node, value, mode) { }; /** @@ -522,7 +522,7 @@ function HybridLogic() { var _this = this; this.ioObject = io.connect(); - this.oldNumberList = {}; + this.oldValueList = {}; /** ************************************************************ diff --git a/libraries/webFrontend.js b/libraries/webFrontend.js index 7b69ccb..5227efc 100644 --- a/libraries/webFrontend.js +++ b/libraries/webFrontend.js @@ -389,11 +389,12 @@ exports.uploadInfoContent = function (parm, objectLookup, objects, knownObjects, infoCount = 0; for (subKey in uploadInfoTexttempArrayValue) { + var thisHtmlNode = uploadInfoTexttempArrayValue[subKey]; if(thisHtmlNode.name === "") thisHtmlNode.name = "LOGIC"; - text += "
    "; + text += ""; infoCount++; } diff --git a/objects/Gripper6AxisEV3/object.json b/objects/Gripper6AxisEV3/object.json index 00065e8..78ebe90 100644 --- a/objects/Gripper6AxisEV3/object.json +++ b/objects/Gripper6AxisEV3/object.json @@ -121,230 +121,190 @@ "nodes": { "Gripper6AxisEV3a1a22x6p9s3mVertical Touch": { "name": "Vertical Touch", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 206.33318058931354, "y": -219.58932768143177, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mHorizontal Touch": { "name": "Horizontal Touch", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 286.34371729911595, "y": 234.17319305738692, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mpitch": { "name": "pitch", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -326.09581366211023, "y": 0.01635377259526649, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mHeight Tracking": { "name": "Height Tracking", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 405.910473623587, "y": 10.225202127854573, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mroll": { "name": "roll", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -269.02284327182906, "y": 230.94073829488525, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mUpper Tilt + Top Joint": { "name": "Upper Tilt + Top Joint", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -30.702437297203232, "y": -224.20098426852292, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mGrip Rotation": { "name": "Grip Rotation", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -103.46392104317124, "y": 3.552950305227114, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mGrip Tilt": { "name": "Grip Tilt", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 154.76352955665993, "y": -13.788654253356526, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mgrab": { "name": "grab", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -6.5617496283020955, "y": 233.9308623102952, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "Gripper6AxisEV3a1a22x6p9s3mkickback joint tilt": { "name": "kickback joint tilt", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -274.72902860564864, "y": -223.52884918892732, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/RightBase6AxisEV3/object.json b/objects/RightBase6AxisEV3/object.json index 42e0dcc..5437002 100644 --- a/objects/RightBase6AxisEV3/object.json +++ b/objects/RightBase6AxisEV3/object.json @@ -70,115 +70,95 @@ "nodes": { "RightBase6AxisEV3V78ogdk6csbepitch_br": { "name": "pitch_br", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -34.562140854916606, "y": 209.0208681513036, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightBase6AxisEV3V78ogdk6csbeyaw_br": { "name": "yaw_br", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -225.25660222641795, "y": -24.14846670326915, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightBase6AxisEV3V78ogdk6csbekickback_br": { "name": "kickback_br", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -42.5185107637335, "y": -246.0857776650264, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightBase6AxisEV3V78ogdk6csbeBase Rotation": { "name": "Base Rotation", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 210.3759909620992, "y": -27.577658586246343, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightBase6AxisEV3V78ogdk6csbeBase Joint": { "name": "Base Joint", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -11.81385061100491, "y": -23.402863490473464, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/RightShoulder6AxisEV3/object.json b/objects/RightShoulder6AxisEV3/object.json index bc2ad0d..a3d0625 100644 --- a/objects/RightShoulder6AxisEV3/object.json +++ b/objects/RightShoulder6AxisEV3/object.json @@ -53,46 +53,38 @@ "nodes": { "RightShoulder6AxisEV35Z5j0vl9jkf1Horizontal Touch_sr": { "name": "Horizontal Touch_sr", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 106.7825790514363, "y": -5.291976945324677, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightShoulder6AxisEV35Z5j0vl9jkf1pitch_sr": { "name": "pitch_sr", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -117.67724213327551, "y": -3.7922077912494387, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/RightUpperTilt6AxisEV3/object.json b/objects/RightUpperTilt6AxisEV3/object.json index 03f5edb..e060f97 100644 --- a/objects/RightUpperTilt6AxisEV3/object.json +++ b/objects/RightUpperTilt6AxisEV3/object.json @@ -104,161 +104,133 @@ "nodes": { "RightUpperTilt6AxisEV3SEc0z3n53s8kyaw_ur": { "name": "yaw_ur", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -215.9151544441786, "y": -238.5340853047328, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightUpperTilt6AxisEV3SEc0z3n53s8kHorizontal Touch_ur": { "name": "Horizontal Touch_ur", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 0.9060758220641674, "y": 228.96103898169895, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightUpperTilt6AxisEV3SEc0z3n53s8kpitch_ur": { "name": "pitch_ur", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 237.03606980428071, "y": -248.83487882365807, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightUpperTilt6AxisEV3SEc0z3n53s8kUpper Tilt": { "name": "Upper Tilt", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 10.968422144942451, "y": -242.12576298051863, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightUpperTilt6AxisEV3SEc0z3n53s8kArm + Shoulder": { "name": "Arm + Shoulder", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 3.8800656703056795, "y": -5.857709178559162, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm": { "name": "kickback arm", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 234.66231564725035, "y": -13.753471714702755, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "RightUpperTilt6AxisEV3SEc0z3n53s8kkickback arm + shoulder": { "name": "kickback arm + shoulder", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 225.7385301214997, "y": 238.7631017196327, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/TopForearm6AxisEV3/object.json b/objects/TopForearm6AxisEV3/object.json index 5342e6f..044aabc 100644 --- a/objects/TopForearm6AxisEV3/object.json +++ b/objects/TopForearm6AxisEV3/object.json @@ -87,115 +87,95 @@ "nodes": { "TopForearm6AxisEV3Zg1zey40sedbVertical Touch_ft": { "name": "Vertical Touch_ft", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 214.08931154948823, "y": -222.48640425469776, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "TopForearm6AxisEV3Zg1zey40sedbHorizontal Touch_ft": { "name": "Horizontal Touch_ft", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 217.2911131724809, "y": 7.051890307712743, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "TopForearm6AxisEV3Zg1zey40sedbpitch_ft": { "name": "pitch_ft", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -267.15985765170717, "y": -36.419472009315285, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "TopForearm6AxisEV3Zg1zey40sedbHeight Tracking_ft": { "name": "Height Tracking_ft", - "item": [ + "data": { - "number": 0.5, + "value": 0.5, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -267.8587811071443, "y": -258.374723705767, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "TopForearm6AxisEV3Zg1zey40sedbForearm Rotation": { "name": "Forearm Rotation", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -10.489539590570075, "y": -5.555897214325782, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/TopUpperTilt6AxisEV3/object.json b/objects/TopUpperTilt6AxisEV3/object.json index fc07cf6..17d8193 100644 --- a/objects/TopUpperTilt6AxisEV3/object.json +++ b/objects/TopUpperTilt6AxisEV3/object.json @@ -70,69 +70,57 @@ "nodes": { "TopUpperTilt6AxisEV36pb1j09z64s3yaw_ut": { "name": "yaw_ut", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -121.45466428718055, "y": -108.99713154912843, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "TopUpperTilt6AxisEV36pb1j09z64s3Vertical Touch_ut": { "name": "Vertical Touch_ut", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -9.831676944647825, "y": 120.20207819455754, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "TopUpperTilt6AxisEV36pb1j09z64s3roll_ut": { "name": "roll_ut", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 109.603623873566, "y": -112.51306105483991, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/knop1/object.json b/objects/knop1/object.json index 9c02261..7913148 100644 --- a/objects/knop1/object.json +++ b/objects/knop1/object.json @@ -36,23 +36,19 @@ "nodes": { "knop1xe35ycj6l5xyscale": { "name": "scale", - "item": [ + "data": { - "number": 0.7875, + "value": 0.7875, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 93, "y": -69, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/lamp1/object.json b/objects/lamp1/object.json index 5c19139..c29b5b5 100644 --- a/objects/lamp1/object.json +++ b/objects/lamp1/object.json @@ -18,46 +18,38 @@ "nodes": { "lamp1B45bxr4wa081brightness": { "name": "brightness", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -2.3633073191135168, "y": 138.02633217826144, "scale": 0.7768009947524093, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "lamp1B45bxr4wa081button": { "name": "button", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 7.179658789147652, "y": -63.451578255204424, "scale": 0.7702712896382736, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/lamp2/object.json b/objects/lamp2/object.json index b31e71b..a5e545b 100644 --- a/objects/lamp2/object.json +++ b/objects/lamp2/object.json @@ -36,46 +36,38 @@ "nodes": { "lamp2CH73qpztykp3brightness": { "name": "brightness", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -10.354941865472092, "y": 92.41661442215243, "scale": 0.7281970424811749, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "lamp2CH73qpztykp3button": { "name": "button", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": 1.1061751000886915, "y": -106.88911817163942, "scale": 0.7511266180581064, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/objects/obj45/object.json b/objects/obj45/object.json index 63fbd7c..350390f 100644 --- a/objects/obj45/object.json +++ b/objects/obj45/object.json @@ -1,7 +1,7 @@ { "objectId": "obj45y4gk159d097q", "name": "obj45", - "ip": "192.168.1.7", + "ip": "10.0.1.4", "version": "1.7.0", "protocol": "R1", "tcs": "bsyBi", @@ -14,199 +14,106 @@ "visibleEditing": false, "developer": true, "memory": {}, - "links": { - "MX12hi86": { - "objectA": "obj45y4gk159d097q", - "objectB": "obj45y4gk159d097q", - "nodeA": "obj45y4gk159d097qone", - "nodeB": "aDgnkveasuvw", - "logicA": false, - "logicB": 0, - "namesA": [ - "obj45", - "one" - ], - "namesB": "", - "loop": false - }, - "bZ4efldy": { - "objectA": "obj45y4gk159d097q", - "objectB": "obj45y4gk159d097q", - "nodeA": "aDgnkveasuvw", - "nodeB": "obj45y4gk159d097qfour", - "logicA": 2, - "logicB": false, - "namesA": "", - "namesB": [ - "obj45", - "four" - ], - "loop": false - } - }, + "links": {}, "nodes": { "obj45y4gk159d097qone": { "name": "one", - "item": [ - { - "number": 0.38601303030736744, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 - }, - {}, - {}, - {} - ], + "data": { + "value": 0.39398801210336387, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, "x": 181.90691087361097, "y": -174.9234043863276, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "obj45y4gk159d097qtwo": { "name": "two", - "item": [ - { - "number": 0.24284555111080408, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 - }, - {}, - {}, - {} - ], - "x": -85.39778523068719, - "y": -154.2941278777979, - "scale": 1, - "matrix": [], - "appearance": "default", - "stress": 0, - "frameSizeX": 100, - "frameSizeY": 100 - }, - "obj45y4gk159d097qfour": { - "name": "four", - "item": [ - { - "number": 0.00672043114900589, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, + "data": { + "0": { + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - { - "number": 0, + "1": { + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 - } - ], - "x": 160.27729563974503, - "y": 114.26779778126337, - "scale": 1, - "matrix": [], - "appearance": "default", - "stress": 0, - "frameSizeX": 100, - "frameSizeY": 100 - }, - "obj45y4gk159d097qhans": { - "name": "hans", - "item": [ - { - "number": 0.4457560491282493, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 }, - { - "number": 0, + "2": { + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - { - "number": 0, + "3": { + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "x": -127.14244987853397, - "y": 112.38326602382978, + "value": 0.8428350035101175, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -85.39778523068719, + "y": -154.2941278777979, "scale": 1, "matrix": [], - "appearance": "default", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, - "x23gl7w8kdcs": { - "name": "LOGIC", - "item": [ + "Qo966kd20sef": { + "name": "LOGIC0", + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "x": 68.45942151971316, - "y": 31.382732832964848, + "x": 8.814827430186721, + "y": 100.35300355264084, "scale": 0.5, "matrix": [], "visible": false, @@ -226,8 +133,29 @@ "", "" ], - "appearance": "logic", - "links": {}, + "type": "logic", + "links": { + "blockLinkVla969nyct20": { + "nodeA": "blockxib52r3em54i", + "logicA": 0, + "nodeB": "edgePlaceholderOut0", + "logicB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0, + "route": null + }, + "blockLink3Jf2v4k2zosu": { + "nodeA": "edgePlaceholderIn1", + "logicA": 0, + "nodeB": "blockxib52r3em54i", + "logicB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0, + "route": null + } + }, "loaded": false, "animationScale": 0, "begin": [ @@ -249,1963 +177,452 @@ 1 ], "temp": [ - 980.030511162768, - 8.13294042528, - 0.140120663892, - 0.137346, - -25.111678806944, - 947.75174810976, - 0.567315968564, - 0.556082, - 57.823440719744, - 273.89806919904, - -1.9549335168440003, - -1.916222, - -34093.2524078356, - 59942.8460957568, - 1467.08081521112, - 1636.04956 + 43.204517088976004, + 984.9438107625599, + 0.079057493384, + 0.077492, + -980.964818487904, + 43.97647099296, + -0.041295736556, + -0.040478, + 16.625474328255997, + 35.659310660159996, + -2.038453373776, + -1.998088, + -23221.62991065123, + -27781.19580040992, + 1417.458797971512, + 1587.410156 ], + "screenX": 206.65543390477137, + "screenY": 149.63881415138817, + "screenZ": 1420.2647366213776, + "screenLinearZ": 8.400892628880932, "fullScreen": false, - "screenX": 325.03803198944166, - "screenY": 222.29316827589693, - "screenZ": 1433.48542053373, - "screenLinearZ": 8.321337010128566, "blocks": { "edgePlaceholderIn0": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderIn1": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, + "data": [ + { + "0": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "1": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "2": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "3": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "value": 0.8428350035101175, "mode": "f", - "unit": "", + "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderIn2": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, + "data": [ + { + "0": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "1": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "2": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "3": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "value": 0.796186959836632, "mode": "f", - "unit": "", + "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderIn3": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut0": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, + "data": [ + { + "0": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "1": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "2": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "3": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "value": 0.8428350035101175, "mode": "f", - "unit": "", + "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut1": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut2": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut3": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - } - } - }, - "xoibu8bhj3b6": { - "name": "LOGIC", - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "x": -160.5873282091319, - "y": 24.354839294072917, - "scale": 0.5, - "matrix": [], - "visible": false, - "visibleEditing": false, - "lastSetting": false, - "lastSettingBlock": "", - "iconImage": null, - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "appearance": "logic", - "links": {}, - "loaded": false, - "animationScale": 0, - "begin": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "temp": [ - 981.57951169344, - 25.447160428800004, - 0.04597030212000001, - 0.04506, - -29.256581835264, - 942.42676066176, - 0.603380109264, - 0.591432, - 8.948442736719999, - 290.69555159040004, - -1.9486062240400002, - -1.91002, - 1637.261580624192, - 25808.855605600318, - 1333.905598797748, - 1505.511474 - ], - "fullScreen": false, - "screenX": 214.90285425498215, - "screenY": 210.3502891239941, - "screenZ": 1338.4171983348713, - "screenLinearZ": 8.928394894545328, - "blocks": { - "edgePlaceholderIn0": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderIn1": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderIn2": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderIn3": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut0": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut1": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut2": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut3": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - } - } - }, - "aDgnkveasuvw": { - "name": "LOGIC", - "item": [ - { - "number": 0.38601303030736744, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "x": 273.0059909740619, - "y": -28.456481126283506, - "scale": 0.5, - "matrix": [], - "visible": false, - "visibleEditing": false, - "lastSetting": false, - "lastSettingBlock": "", - "iconImage": null, - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "appearance": "logic", - "links": { - "blockLinkfB2o8cei4e79": { - "blockA": "edgePlaceholderIn0", - "itemA": 0, - "blockB": "blockENeai8x3f8qk", - "itemB": 0, - "loop": false, - "health": 0, - "ballAnimationCount": 0, - "route": null - }, - "blockLinkEl5j10kajlq5": { - "blockA": "blockENeai8x3f8qk", - "itemA": 0, - "blockB": "edgePlaceholderOut2", - "itemB": 0, - "loop": false, - "health": 0, - "ballAnimationCount": 0, - "route": null - } - }, - "loaded": false, - "animationScale": 0, - "begin": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "temp": [ - 981.442484494432, - 34.34218219872, - 0.022907615707999998, - 0.022454, - -34.456340098336, - 943.0557026246399, - 0.597887341696, - 0.586048, - -4.179903694064, - 287.72527334496004, - -1.950705799756, - -1.912078, - -4900.480704698446, - 25881.98822480832, - 1346.6081849098482, - 1517.962524 - ], - "fullScreen": false, - "screenX": 447.61239795602063, - "screenY": 161.07786938496332, - "screenZ": 1381.5302490160336, - "screenLinearZ": 8.642743487235641, - "blocks": { - "edgePlaceholderIn0": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0.38601303030736744, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderIn1": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderIn2": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderIn3": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut0": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut1": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", - "stress": 0, - "appearance": "default" - }, - "edgePlaceholderOut2": { - "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut3": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, - { - "number": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", - "unitMin": 0, - "unitMax": 1 - } - ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, - "blockENeai8x3f8qk": { + "blockxib52r3em54i": { "name": "delay", - "x": 2, + "x": 1, "y": 1, "blockSize": 1, - "globalId": "blockENeai8x3f8qk", + "globalId": "blockxib52r3em54i", "checksum": null, - "item": [ - { - "number": 0.38601303030736744, + "data": [ + { + "0": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "1": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "2": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "3": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "value": 0.8428350035101175, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, @@ -2245,44 +662,44 @@ "stress": 0, "isTempBlock": false, "isPortBlock": false, - "appearance": "default" + "type": "default" } } }, - "LH7p0f62evwq": { - "name": "LOGIC", - "item": [ + "z52vbkf6cajm": { + "name": "LOGIC1", + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "x": -205.12121855681565, - "y": -50.70063229838456, + "x": 172.2095748908892, + "y": 240.84733298518915, "scale": 0.5, "matrix": [], "visible": false, @@ -2302,8 +719,19 @@ "", "" ], - "appearance": "logic", - "links": {}, + "type": "logic", + "links": { + "blockLinkAMgghno4bnmx": { + "nodeA": "edgePlaceholderIn2", + "logicA": 0, + "nodeB": "edgePlaceholderOut0", + "logicB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0, + "route": null + } + }, "loaded": false, "animationScale": 0, "begin": [ @@ -2325,591 +753,310 @@ 1 ], "temp": [ - 977.3849016344001, - -11.211505852800002, - 0.20754989488000003, - 0.20344, - -20.224451761536, - 933.4510586438399, - 0.6621498656760001, - 0.649038, - 93.51269963497599, - 319.1584385721599, - -1.918783679176, - -1.880788, - -67648.17995330889, - 20494.53560461824, - 1369.2483995524362, - 1540.154418 + 62.263443963792, + 983.88373962912, + 0.080885695368, + 0.079284, + -979.7038828408, + 63.5039901936, + -0.061599796760000006, + -0.06038, + 27.161813140592006, + 35.48318613312, + -2.037869818232, + -1.997516, + -10774.255795222176, + -34610.51210359776, + 1425.9164378242358, + 1595.700318 ], + "screenX": 131.619022047563, + "screenY": 269.49647039429976, + "screenZ": 1390.9716824104903, + "screenLinearZ": 8.582551488187285, "fullScreen": false, - "screenX": 115.1866962326763, - "screenY": 156.14567261301985, - "screenZ": 1305.1793747838035, - "screenLinearZ": 9.161499249635824, "blocks": { "edgePlaceholderIn0": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderIn1": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0.796186959836632, "mode": "f", - "unit": "", + "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderIn2": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0.39398801210336387, "mode": "f", - "unit": "", + "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderIn3": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut0": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0.39398801210336387, "mode": "f", - "unit": "", + "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut1": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut2": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" }, "edgePlaceholderOut3": { "name": "", - "id": null, - "x": null, - "y": null, - "blockSize": 1, - "category": 1, - "globalId": null, - "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0.796186959836632, "mode": "f", - "unit": "", + "unit": false, "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 } ], - "privateData": {}, - "publicData": {}, - "activeInputs": [ - true, - false, - false, - false - ], - "activeOutputs": [ - true, - false, - false, - false - ], - "nameInput": [ - "", - "", - "", - "" - ], - "nameOutput": [ - "", - "", - "", - "" - ], - "iconImage": null, - "text": "", "stress": 0, - "appearance": "default" + "type": "default" } } } - }, - "logic": {} + } } \ No newline at end of file diff --git a/objects/obj47/object.json b/objects/obj47/object.json index 04d76ef..ea19c5d 100644 --- a/objects/obj47/object.json +++ b/objects/obj47/object.json @@ -18,46 +18,38 @@ "nodes": { "obj47n32vbg5gk3hehans": { "name": "hans", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -16.694259005844287, "y": 156.85004682175247, "scale": 1, "matrix": [], - "appearance": "node", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 }, "obj47n32vbg5gk3hepeter": { "name": "peter", - "item": [ + "data": { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, - {}, - {}, - {} - ], "x": -23.743537815460286, "y": -103.19668796408882, "scale": 1, "matrix": [], - "appearance": "node", + "type": "node", "stress": 0, "frameSizeX": 100, "frameSizeY": 100 diff --git a/server.js b/server.js index 1c4ae2c..0194eb5 100644 --- a/server.js +++ b/server.js @@ -60,8 +60,6 @@ * TODO - check if links are pointing to values that actually exist. - (happens in browser at the moment) * TODO - Test self linking from internal to internal value (endless loop) - (happens in browser at the moment) * - * - * * TODO - Checksum for marker needs to be verified on the server side as well. ** @@ -198,8 +196,6 @@ function Objects() { this.links = {}; // Stores all IOPoints. These points are used to keep the state of an object and process its data. this.nodes = {}; - // The arrangement of nodes for crafting. - this.logic = {}; } /** @@ -242,7 +238,7 @@ function Node() { // the name of each link. It is used in the Reality Editor to show the IO name. this.name = ""; // the actual data of the node - this.item = [new Data(), {}, {}, {}]; // todo maybe value + this.data = new Data(); // Reality Editor: This is used to possition the UI element within its x axis in 3D Space. Relative to Marker origin. this.x = 0; // Reality Editor: This is used to possition the UI element within its y axis in 3D Space. Relative to Marker origin. @@ -253,8 +249,7 @@ function Node() { this.matrix = []; // defines the nodeInterface that is used to process data of this type. It also defines the visual representation // in the Reality Editor. Such data points interfaces can be found in the nodeInterface folder. - // todo appearance should be removed eventually as there is only one kind of appearance - this.appearance = "node"; + this.type = "node"; // defines the origin Hardware interface of the IO Point. For example if this is arduinoYun the Server associates // this IO Point with the Arduino Yun hardware interface. //this.type = "arduinoYun"; // todo "arduinoYun", "virtual", "edison", ... make sure to define yours in your internal_module file @@ -270,7 +265,7 @@ function Node() { function Logic() { this.name = ""; // data for logic blocks. depending on the blockSize which one is used. - this.item = [new Data(), new Data(), new Data(), new Data()]; + this.data = new Data(); // Reality Editor: This is used to possition the UI element within its x axis in 3D Space. Relative to Marker origin. this.x = 0; // Reality Editor: This is used to possition the UI element within its y axis in 3D Space. Relative to Marker origin. @@ -291,15 +286,7 @@ function Logic() { this.nameOutput = ["", "", "", ""]; // the array of possible connections within the logicBlock. // if a block is set, a new Node instance is coppied in to the spot. - /* this.block = [ - [[null, 0], [null, 0], [null, 0], [null, 0]], - [[null, 0], [null, 0], [null, 0], [null, 0]], - [[null, 0], [null, 0], [null, 0], [null, 0]], - [[null, 0], [null, 0], [null, 0], [null, 0]] - ];*/ - - this.appearance = "logic"; - + this.type = "logic"; this.links = {}; this.blocks = {}; } @@ -311,13 +298,13 @@ function Logic() { function BlockLink() { // origin block UUID - this.blockA = null; + this.nodeA = null; // item in that block - this.itemA = 0; + this.logicA = 0; // destination block UUID - this.blockB = null; + this.nodeB = null; // item in that block - this.itemB = 0; + this.logicB = 0; // check if the links are looped. this.loop = false; // Will be used to test if a link is still able to find its destination. @@ -348,7 +335,7 @@ function Block() { // the checksum should be identical with the checksum for the persistent package files of the reference block design. this.checksum = null; // checksum of the files for the program // data for logic blocks. depending on the blockSize which one is used. - this.item = [new Data(), new Data(), new Data(), new Data()]; + this.data = [new Data(), new Data(), new Data(), new Data()]; // experimental. This are objects for data storage. Maybe it makes sense to store data in the general object // this would allow the the packages to be persistent. // todo discuss usability with Ben. this.privateData = {}; @@ -369,16 +356,31 @@ function Block() { // indicates how much calls per second is happening on this block this.stress = 0; // this is just a compatibility with the original engine. Maybe its here to stay - this.appearance = "default"; + this.type = "default"; +} + +/** + * @desc Constructor used to define special blocks that are connecting the logic crafting with the outside system. + **/ + +function BlockDummy() { + // name of the block + this.name = ""; + // data for logic blocks. depending on the blockSize which one is used. + this.data = [new Data(), new Data(), new Data(), new Data()]; + // indicates how much calls per second is happening on this block + this.stress = 0; + this.type = "default"; } + /** * @desc Definition for Values that are sent around. **/ function Data() { // storing the numerical content send between nodes. Range is between 0 and 1. - this.number = 0; + this.value = 0; // Defines the kind of data send. At this point we have 3 active data modes and one future possibility. // (f) defines floating point values between 0 and 1. This is the default value. // (d) defines a digital value exactly 0 or 1. @@ -435,29 +437,25 @@ function EditorSocket(socketID, object) { function Protocols() { this.R1 = { - send: function (object, node, item) { - return JSON.stringify({object: object, node: node, item: item}) + send: function (object, node, data) { + return JSON.stringify({object: object, node: node, data: data}) }, receive: function (message) { if (!message) return null; var msgContent = JSON.parse(message); if (!msgContent.object) return null; if (!msgContent.node) return null; - if (!msgContent.item) return null; + if (!msgContent.data) return null; if (msgContent.object in objects) { if (msgContent.node in objects[msgContent.object].nodes) { - var objectItem = objects[msgContent.object].nodes[msgContent.node].item; + var objectData = objects[msgContent.object].nodes[msgContent.node].data; - for (var i = 0; i < msgContent.item.length; i++) { - if(objectItem.length === i) objectItem[i] = {}; - for (var key in msgContent.item[i]) { - objectItem[i][key] = msgContent.item[i][key]; + for (var key in msgContent.data) { + objectData[key] = msgContent.data[key]; } - } - - return {object:msgContent.object, node:msgContent.node, item: objectItem}; + return {object:msgContent.object, node:msgContent.node, data: objectData}; } } @@ -466,8 +464,8 @@ return null } }; this.R0 = { - send: function (object, node, item) { - return JSON.stringify({obj: object, pos: node, value: item[0].number, mode: item[0].mode})}, + send: function (object, node, data) { + return JSON.stringify({obj: object, pos: node, value: data.value, mode: data.mode})}, receive: function (message) { if (!message) return null; var msgContent = JSON.parse(message); @@ -479,12 +477,12 @@ return null if (msgContent.obj in objects) { if (msgContent.pos in objects[msgContent.obj].nodes) { - var objectItem = objects[msgContent.obj].nodes[msgContent.pos].item; + var objectData = objects[msgContent.obj].nodes[msgContent.pos].data; - objectItem[0].number = msgContent.value; - objectItem[0].mode = msgContent.mode; + objectData.value = msgContent.value; + objectData.mode = msgContent.mode; - return {object:msgContent.obj, node:msgContent.pos, item: objectItem}; + return {object:msgContent.obj, node:msgContent.pos, data: objectData}; } } @@ -499,14 +497,14 @@ return null // This variable will hold the entire tree of all objects and their sub objects. var objects = {}; -var nodeAppearanceModules = {}; // Will hold all available data point interfaces +var nodeTypeModules = {}; // Will hold all available data point interfaces var blockModules = {}; // Will hold all available data point interfaces var hardwareInterfaceModules = {}; // Will hold all available hardware interfaces. // A list of all objects known and their IPs in the network. The objects are found via the udp heart beat. // If a new link is linking to another objects, this knownObjects list is used to establish the connection. // This list is also used to keep track of the actual IP of an object. If the IP of an object in a network changes, // It has no influance on the connectivity, as it is referenced by the object UUID through the entire time. -var protocols = new Protocols() +var protocols = new Protocols(); var knownObjects = {}; // A lookup table used to process faster through the objects. var objectLookup = {}; @@ -547,7 +545,7 @@ while (nodeFolderList[0][0] === ".") { // Create a objects list with all IO-Points code. for (var i = 0; i < nodeFolderList.length; i++) { - nodeAppearanceModules[nodeFolderList[i]] = require(nodePath + '/' + nodeFolderList[i] + "/index.js"); + nodeTypeModules[nodeFolderList[i]] = require(nodePath + '/' + nodeFolderList[i] + "/index.js"); } @@ -575,7 +573,7 @@ for (var i = 0; i < blockFolderList.length; i++) { cout("Initialize System: "); cout("Loading Hardware interfaces"); // set all the initial states for the Hardware Interfaces in order to run with the Server. -hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeAppearanceModules, blockModules, function (objectKey, nodeKey, item, objects, nodeAppearanceModules) { +hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeTypeModules, blockModules, function (objectKey, nodeKey, data, objects, nodeTypeModules) { //these are the calls that come from the objects before they get processed by the object engine. // send the saved value before it is processed @@ -583,9 +581,9 @@ hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeAppeara sendMessagetoEditors({ object: objectKey, node: nodeKey, - item: item + data: data }); - objectEngine(objectKey, nodeKey, null, objects, nodeAppearanceModules); + objectEngine(objectKey, nodeKey, null, objects, nodeTypeModules); }, Node); cout("Done"); @@ -598,7 +596,7 @@ cout("Done"); startSystem(); cout("started"); -// get the directory names of all available souappearancerces for the 3D-UI +// get the directory names of all available soutyperces for the 3D-UI var hardwareAPIFolderList = fs.readdirSync(hardwarePath).filter(function (file) { return fs.statSync(hardwarePath + '/' + file).isDirectory(); }); @@ -607,7 +605,7 @@ while (hardwareAPIFolderList[0][0] === ".") { hardwareAPIFolderList.splice(0, 1); } -// add all appearances to the nodeAppearanceModules object. Iterate backwards because splice works inplace +// add all types to the nodeTypeModules object. Iterate backwards because splice works inplace for (var i = hardwareAPIFolderList.length - 1; i >= 0; i--) { //check if hardwareInterface is enabled, if it is, add it to the hardwareInterfaceModules if (require(hardwarePath + "/" + hardwareAPIFolderList[i] + "/index.js").enabled) { @@ -675,12 +673,12 @@ function loadObjects() { // this is for transforming old lists to new lists - if(objects[tempFolderName].objectValues) + if(typeof objects[tempFolderName].objectValues !== "undefined") { objects[tempFolderName].nodes = objects[tempFolderName].objectValues; delete objects[tempFolderName].objectValues; } - if(objects[tempFolderName].objectLinks) + if(typeof objects[tempFolderName].objectLinks !== "undefined") { objects[tempFolderName].links = objects[tempFolderName].objectLinks; delete objects[tempFolderName].objectLinks; @@ -690,10 +688,9 @@ function loadObjects() { for (var nodeKey in objects[tempFolderName].nodes) { - if(!objects[tempFolderName].nodes[nodeKey].item[3]){ + if(typeof objects[tempFolderName].nodes[nodeKey].item !== "undefined"){ var tempItem = objects[tempFolderName].nodes[nodeKey].item; - objects[tempFolderName].nodes[nodeKey].item = []; - objects[tempFolderName].nodes[nodeKey].item = [tempItem, {}, {}, {}]; + objects[tempFolderName].nodes[nodeKey].data = tempItem[0]; } } @@ -1182,7 +1179,7 @@ function objectWebServer() { // todo the first link in a chain should carry a UUID that propagates through the entire chain each time a change is done to the chain. // todo endless loops should be checked by the time of creation of a new loop and not in the Engine - if (thisObject.blockA === thisObject.blockB && thisObject.itemA === thisObject.itemB) { + if (thisObject.nodeA === thisObject.nodeB && thisObject.logicA === thisObject.logicB) { thisObject.loop = true; } @@ -1229,8 +1226,8 @@ function objectWebServer() { var breakPoint = false; - if (thisMessage.appearance in blockFolderList) { - thisModule = blockModules[thisMessage.appearance]; + if (thisMessage.type in blockFolderList) { + thisModule = blockModules[thisMessage.type]; for (var thisKey in thisMessage.publicData) { if (typeof thisMessage.publicData[thisKey] !== typeof thisModule.publicData[thisKey]) { @@ -1253,8 +1250,8 @@ function objectWebServer() { thisBlocks[req.params[2]] = req.body; // todo this can be removed once the system runs smoothly - if(typeof thisBlocks[req.params[2]].appearance === "undefined"){ - thisBlocks[req.params[2]].appearance = "default"; + if(typeof thisBlocks[req.params[2]].type === "undefined"){ + thisBlocks[req.params[2]].type = "default"; } for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ @@ -1284,7 +1281,7 @@ for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ var thisLinks = objects[req.params[0]].nodes[req.params[1]].links; // Make sure that no links are connected to deleted objects for (var subCheckerKey in thisLinks) { - if (thisLinks[subCheckerKey].blockA === thisLinkId || thisLinks[subCheckerKey].blockB === thisLinkId) { + if (thisLinks[subCheckerKey].nodeA === thisLinkId || thisLinks[subCheckerKey].nodeB === thisLinkId) { delete objects[req.params[0]].nodes[req.params[1]].links[subCheckerKey]; } } @@ -1338,18 +1335,18 @@ for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ objects[req.params[0]].nodes[req.params[1]] = req.body; - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn0"] = new Block(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn1"] = new Block(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn2"] = new Block(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn3"] = new Block(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn0"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn1"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn2"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn3"] = new BlockDummy(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut0"] = new Block(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut1"] = new Block(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut2"] = new Block(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut3"] = new Block(); -console.log("added tons of nodes ----------") + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut0"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut1"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut2"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut3"] = new BlockDummy(); +console.log("added tons of nodes ----------"); - objects[req.params[0]].nodes[req.params[1]].appearance = "logic"; + objects[req.params[0]].nodes[req.params[1]].type = "logic"; // call an action that asks all devices to reload their links, once the links are changed. actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); @@ -1444,8 +1441,8 @@ var blockList = {} for (var key in thisBlock) { blockList[blockFolderList[i]][key] = thisBlock[key]; } - // this makes sure that the appearance of the block is set. - blockList[blockFolderList[i]].appearance = blockFolderList[i]; + // this makes sure that the type of the block is set. + blockList[blockFolderList[i]].type = blockFolderList[i]; } res.json(blockList); @@ -2183,6 +2180,7 @@ function socketServer() { }); socket.on('object', function (msg) { + console.log(msg); var msgContent = protocols[protocol].receive(msg); if(msgContent === null){ @@ -2190,14 +2188,14 @@ function socketServer() { } if(msgContent !== null){ - hardwareAPI.readCall(msgContent.object, msgContent.node, msgContent.item); + hardwareAPI.readCall(msgContent.object, msgContent.node, msgContent.data); sendMessagetoEditors({ object: msgContent.object, node: msgContent.node, - item: msgContent.item + data: msgContent.data }); - objectEngine(msgContent.object, msgContent.node, null, objects, nodeAppearanceModules); + objectEngine(msgContent.object, msgContent.node, null, objects, nodeTypeModules); } }); @@ -2254,7 +2252,7 @@ function messagetoSend(msgContent, socketID) { io.sockets.connected[socketID].emit('object', JSON.stringify({ object: msgContent.object, node: msgContent.node, - item: objects[msgContent.object].nodes[msgContent.node].item + data: objects[msgContent.object].nodes[msgContent.node].data }));// socket.emit('object', msgToSend); } } @@ -2291,29 +2289,33 @@ function messagetoSend(msgContent, socketID) { * All links that use the id will fire up the engine to process the link. **/ -// dependencies afterAppearanceProcessing +// dependencies aftertypeProcessing -function objectEngine(object, node, logic, objects, nodeAppearanceModules) { +function objectEngine(object, node, routingKey, objects, nodeTypeModules) { //console.log(objects[object].links); + + var thisLink; + for (var linkKey in objects[object].links) { + thisLink = objects[object].links[linkKey]; - if (objects[object].links[linkKey].nodeA === node) { + if (thisLink.nodeA === node) { - // console.log(object + " "+ node +" "+ logic); + if(routingKey === null || thisLink.logicA === routingKey) { - var thisNode = objects[object].nodes[node]; + // console.log(object + " "+ node +" "+ logic); + var thisNode = objects[object].nodes[node]; - var thisLink = objects[object].links[linkKey]; + // console.log(node + " : "+thisNode.type); + if ((thisNode.type in nodeTypeModules)) { - if ((thisNode.appearance in nodeAppearanceModules)) { + nodeTypeModules[thisNode.type].render(object, linkKey, thisNode.data, function (object, link, processedData) { - nodeAppearanceModules[thisNode.appearance].render(object, linkKey, thisNode.item, function (object, link, processedData) { enginePostProcessing(object, link, processedData); }); - - + } } } } @@ -2333,12 +2335,13 @@ function objectEngine(object, node, logic, objects, nodeAppearanceModules) { } /** - * @desc This has to be the callback for the processed appearances. The appearance should give back a processed object. + * @desc This has to be the callback for the processed types. The type should give back a processed object. * @param {Object} processedValue Any kind of object simple or complex * @param {String} IDinLinkArray Id to search for in the Link Array. **/ function enginePostProcessing(object, link, processedData) { + var thisLink = objects[object].links[link]; if (!(thisLink.objectB in objects)) { @@ -2349,17 +2352,15 @@ function enginePostProcessing(object, link, processedData) { var objSend = objects[thisLink.objectB].nodes[thisLink.nodeB]; if(typeof thisLink.logicB !== "number") { - for (var i = 0; i < processedData.length; i++) { - if (objSend.item.length === i) objSend.item[i] = {}; - for (var key in processedData[i]) { - objSend.item[i][key] = processedData[i][key]; + + for (var key in processedData) { + objSend.data[key] = processedData[key]; } - } - hardwareAPI.readCall(thisLink.objectB, thisLink.nodeB, objSend.item); + hardwareAPI.readCall(thisLink.objectB, thisLink.nodeB, objSend.data); - sendMessagetoEditors({object: thisLink.objectB, node: thisLink.nodeB, item: objSend.item}); - objectEngine(thisLink.objectB, thisLink.nodeB, null, objects, nodeAppearanceModules); + sendMessagetoEditors({object: thisLink.objectB, node: thisLink.nodeB, data: objSend.data}); + objectEngine(thisLink.objectB, thisLink.nodeB, null, objects, nodeTypeModules); } else { @@ -2368,8 +2369,8 @@ function enginePostProcessing(object, link, processedData) { var objSend = objects[thisLink.objectB].nodes[thisLink.nodeB].blocks[thisString]; - for (var key in processedData[0]) { - objSend.item[0][key] = processedData[0][key]; + for (var key in processedData) { + objSend.data[0][key] = processedData[key]; } logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objects, blockModules) @@ -2406,7 +2407,7 @@ function enginePostProcessing(object, link, processedData) { * All links that use the id will fire up the engine to process the link. **/ -// dependencies afterAppearanceProcessing +// dependencies aftertypeProcessing function logicEngine(object, logic, block, item, objects, blockModules) { if(object in objects) { @@ -2421,19 +2422,19 @@ function logicEngine(object, logic, block, item, objects, blockModules) { // console.log(thisLogic.links[linkKey]); - if (thisLogic.links[linkKey].blockA === block && thisLogic.links[linkKey].itemA === item) { + if (thisLogic.links[linkKey].nodeA === block && thisLogic.links[linkKey].logicA === item) { var thisBlock = thisLogic.blocks[block]; // console.log(block); - // console.log(thisBlock.appearance); + // console.log(thisBlock.type); - if ((thisBlock.appearance in blockModules)) { + if ((thisBlock.type in blockModules)) { - blockModules[thisBlock.appearance].render(object, logic, linkKey, item, thisBlock.item, function (object, logic, link, processedData) { + blockModules[thisBlock.type].render(object, logic, linkKey, item, thisBlock.data, function (object, logic, link, processedData) { logicEnginePostProcessing(object, logic, link, processedData); }); @@ -2445,7 +2446,7 @@ function logicEngine(object, logic, block, item, objects, blockModules) { } /** - * @desc This has to be the callback for the processed appearances. The appearance should give back a processed object. + * @desc This has to be the callback for the processed types. The type should give back a processed object. * @param {Object} processedValue Any kind of object simple or complex * @param {String} IDinLinkArray Id to search for in the Link Array. **/ @@ -2455,47 +2456,38 @@ function logicEnginePostProcessing(object, logic, link, processedData) { var thisLink = objects[object].nodes[logic].links[link]; var thisLogic = objects[object].nodes[logic]; - - - for (var key in thisLogic.blocks) { - // console.log(key); - } - //logicEngine(thisLink.objectB, thisLink.nodeB, thisString, 0, objects, blockModules) - if(thisLink.blockB === "edgePlaceholderOut0" || thisLink.blockB === "edgePlaceholderOut1" || thisLink.blockB === "edgePlaceholderOut2" || thisLink.blockB === "edgePlaceholderOut3") - { + var routingKey = null; + if(thisLink.nodeB === "edgePlaceholderOut0") routingKey = 0; + else if(thisLink.nodeB === "edgePlaceholderOut1") routingKey = 1; + else if(thisLink.nodeB === "edgePlaceholderOut2") routingKey = 2; + else if(thisLink.nodeB === "edgePlaceholderOut3") routingKey = 3; + + if(routingKey !== null) { var objSend = objects[object].nodes[logic]; - for (var key in processedData[0]) { - objSend.item[0][key] = processedData[0][key]; + for (var key in processedData[thisLink.logicA]) { + objSend.data[key] = processedData[thisLink.logicA][key]; + thisLogic.blocks[thisLink.nodeB].data[thisLink.logicB][key] = processedData[thisLink.logicA][key]; } - - - // console.log(object +" "+ logic); - - objectEngine(object, logic, null, objects, nodeAppearanceModules); + objectEngine(object, logic, routingKey, objects, nodeTypeModules); + logicEngine(object, logic, thisLink.nodeB , thisLink.logicB, objects, blockModules); } else { - var objSend = thisLogic.blocks[thisLink.blockB]; - for (var key in processedData[thisLink.itemA]) { - objSend.item[thisLink.itemB][key] = processedData[thisLink.itemA][key]; + var objSend = thisLogic.blocks[thisLink.nodeB]; + for (var key in processedData[thisLink.logicA]) { + objSend.data[thisLink.logicB][key] = processedData[thisLink.logicA][key]; } - - logicEngine(object, logic, thisLink.blockB , thisLink.itemB, objects, blockModules); + logicEngine(object, logic, thisLink.nodeB , thisLink.logicB, objects, blockModules); } - - - - // maybe: var re = /^(in|out)\d$/; re.test(blockId)  // or  /^out(0|1|2|3)$/ - } @@ -2518,7 +2510,7 @@ function logicEnginePostProcessing(object, logic, link, processedData) { * @desc Sends processedValue to the responding Object using the data saved in the LinkArray located by IDinLinkArray **/ -function socketSender(object, link, item) { +function socketSender(object, link, data) { var thisLink = objects[object].links[link]; var msg = ""; @@ -2527,13 +2519,13 @@ function socketSender(object, link, item) { if (knownObjects[thisLink.objectB].protocol){ var thisProtocol = knownObjects[thisLink.objectB].protocol; if(thisProtocol in protocols){ - msg = protocols[thisProtocol].send(thisLink.objectB, thisLink.nodeB, item); + msg = protocols[thisProtocol].send(thisLink.objectB, thisLink.nodeB, data); } else { - msg = protocols["R0"].send(thisLink.objectB, thisLink.nodeB, item); + msg = protocols["R0"].send(thisLink.objectB, thisLink.nodeB, data); } } else { - msg = protocols["R0"].send(thisLink.objectB, thisLink.nodeB, item); + msg = protocols["R0"].send(thisLink.objectB, thisLink.nodeB, data); } try { diff --git a/temp b/temp index 4952db1..4e885c6 100644 --- a/temp +++ b/temp @@ -1,12 +1,12 @@ function BlockLink() { // origin block UUID - this.blockA = null; + this.nodeA = null; // item in that block - this.itemA = 0; + this.logicA = 0; // destination block UUID - this.blockB = null; + this.nodeB = null; // item in that block - this.itemB = 0; + this.logicB = 0; // check if the links are looped. this.loop = false; // Will be used to test if a link is still able to find its destination. diff --git a/tempJson b/tempJson index dc103dd..f4d5f02 100644 --- a/tempJson +++ b/tempJson @@ -6,30 +6,30 @@ "blockSize": 1, "globalId": null, "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, @@ -74,30 +74,30 @@ "blockSize": 1, "globalId": null, "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, @@ -144,30 +144,30 @@ "blockSize": 1, "globalId": null, "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, @@ -216,30 +216,30 @@ "blockSize": 1, "globalId": null, "checksum": null, - "item": [ + "data": [ { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, "unitMax": 1 }, { - "number": 0, + "value": 0, "mode": "f", "unit": "", "unitMin": 0, From 8faaf4ef7071c97a9f982e1eba57a6856618b838 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Sat, 3 Dec 2016 11:25:16 -0500 Subject: [PATCH 204/266] removed log --- server.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server.js b/server.js index 0194eb5..9c8bc0d 100644 --- a/server.js +++ b/server.js @@ -2180,8 +2180,7 @@ function socketServer() { }); socket.on('object', function (msg) { - console.log(msg); - + var msgContent = protocols[protocol].receive(msg); if(msgContent === null){ msgContent = protocols["R0"].receive(msg); From 72d03cfe513bed83c7adc683588b7468807125f9 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Sat, 3 Dec 2016 11:34:32 -0500 Subject: [PATCH 205/266] edgeblock --- server.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/server.js b/server.js index 9c8bc0d..147375e 100644 --- a/server.js +++ b/server.js @@ -363,7 +363,7 @@ function Block() { * @desc Constructor used to define special blocks that are connecting the logic crafting with the outside system. **/ -function BlockDummy() { +function EdgeBlock() { // name of the block this.name = ""; // data for logic blocks. depending on the blockSize which one is used. @@ -1335,15 +1335,15 @@ for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ objects[req.params[0]].nodes[req.params[1]] = req.body; - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn0"] = new BlockDummy(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn1"] = new BlockDummy(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn2"] = new BlockDummy(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn3"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn0"] = new EdgeBlock(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn1"] = new EdgeBlock(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn2"] = new EdgeBlock(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderIn3"] = new EdgeBlock(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut0"] = new BlockDummy(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut1"] = new BlockDummy(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut2"] = new BlockDummy(); - objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut3"] = new BlockDummy(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut0"] = new EdgeBlock(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut1"] = new EdgeBlock(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut2"] = new EdgeBlock(); + objects[req.params[0]].nodes[req.params[1]].blocks["edgePlaceholderOut3"] = new EdgeBlock(); console.log("added tons of nodes ----------"); objects[req.params[0]].nodes[req.params[1]].type = "logic"; @@ -2180,7 +2180,7 @@ function socketServer() { }); socket.on('object', function (msg) { - + var msgContent = protocols[protocol].receive(msg); if(msgContent === null){ msgContent = protocols["R0"].receive(msg); From bf2729313f431282e46a80306d20f6bdb775942e Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Mon, 5 Dec 2016 15:17:19 -0500 Subject: [PATCH 206/266] bugfix, new feature and format change -> actions --- hardwareInterfaces/referenceExample/index.js | 6 ++ libraries/hardwareInterfaces.js | 20 ++++++- libraries/logicInterfaces.js | 1 + libraries/utilities.js | 2 +- objects/obj45/object.json | 61 +++++++++++++++----- server.js | 35 ++++++----- 6 files changed, 94 insertions(+), 31 deletions(-) diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index 144b041..c2baa80 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -79,4 +79,10 @@ if (exports.enabled) { }, 300); + /* setInterval(function () { + + server.advertiseConnection("obj45","one"); + + }, 2000); */ + } diff --git a/libraries/hardwareInterfaces.js b/libraries/hardwareInterfaces.js index 5410fee..f208135 100644 --- a/libraries/hardwareInterfaces.js +++ b/libraries/hardwareInterfaces.js @@ -30,6 +30,7 @@ var nodeTypeModules; var blockModules; var callback; var Node; +var actionCallback; var hardwareObjects = {}; var callBacks = new Objects(); var _this = this; @@ -188,7 +189,7 @@ exports.getDebug = function () { /** * @desc setup() DO NOT call this in your hardware interface. setup() is only called from server.js to pass through some global variables. **/ -exports.setup = function (objExp, objLookup, glblVars, dir, types, blocks, cb, objValue) { +exports.setup = function (objExp, objLookup, glblVars, dir, types, blocks, cb, objValue, actionCallBack) { objects = objExp; objectLookup = objLookup; globalVariables = glblVars; @@ -197,6 +198,7 @@ exports.setup = function (objExp, objLookup, glblVars, dir, types, blocks, cb, o blockModules = blocks; callback = cb; Node = objValue; + actionCallback = actionCallBack; }; exports.reset = function (){ @@ -257,6 +259,22 @@ exports.addEventListener = function (option, callBack){ }; +exports.advertiseConnection = function (object, node, logic){ + if(typeof logic === "undefined") { + logic = false; + } + var objectID = utilities.readObject(objectLookup, object); + var nodeID = objectID+node; + + var message = {advertiseConnection:{ + object: objectID, + node: nodeID, + logic: logic, + names: [object, node], + }}; + actionCallback(message); +}; + exports.shutdown = function (){ cout("call shutdowns"); diff --git a/libraries/logicInterfaces.js b/libraries/logicInterfaces.js index 9c84807..11f5cb3 100644 --- a/libraries/logicInterfaces.js +++ b/libraries/logicInterfaces.js @@ -1,5 +1,6 @@  +// Todo this are just some thoughts about the API exports.writePublicData = function () { }; exports.writePrivateData = function () { }; diff --git a/libraries/utilities.js b/libraries/utilities.js index f186243..bf907c2 100644 --- a/libraries/utilities.js +++ b/libraries/utilities.js @@ -143,7 +143,7 @@ exports.getObjectIdFromTarget = function (folderName, dirnameO) { /** * Saves the HybridObject as "object.json" * - * @param {Object[]} objects - The array of objects + * @param {object} objects - The array of objects * @param {string} object - The key used to look up the object in the objects array * @param {string} dirnameO - The base directory name in which an "objects" directory resides. **/ diff --git a/objects/obj45/object.json b/objects/obj45/object.json index 350390f..ea75042 100644 --- a/objects/obj45/object.json +++ b/objects/obj45/object.json @@ -5,8 +5,8 @@ "version": "1.7.0", "protocol": "R1", "tcs": "bsyBi", - "x": 6.540397205447789, - "y": 14.340756814513725, + "x": 59.86856807983639, + "y": -81.53133283114366, "scale": 1, "matrix": [], "visible": false, @@ -14,19 +14,54 @@ "visibleEditing": false, "developer": true, "memory": {}, - "links": {}, + "links": { + "BYPuoxvx": { + "objectA": "obj45y4gk159d097q", + "objectB": "obj45y4gk159d097q", + "nodeA": "obj45y4gk159d097qtwo", + "nodeB": "obj45y4gk159d097qone", + "logicA": false, + "logicB": false, + "namesA": [ + "obj45", + "two" + ], + "namesB": [ + "obj45", + "one" + ], + "loop": false + }, + "wE15gvxp": { + "objectA": "obj45y4gk159d097q", + "objectB": "obj45y4gk159d097q", + "nodeA": "obj45y4gk159d097qone", + "nodeB": "Qo966kd20sef", + "logicA": false, + "logicB": 1, + "namesA": [ + "obj45", + "one" + ], + "namesB": [ + "obj45", + "LOGIC0:GREEN" + ], + "loop": false + } + }, "nodes": { "obj45y4gk159d097qone": { "name": "one", "data": { - "value": 0.39398801210336387, + "value": 0.2733582246582955, "mode": "f", "unit": false, "unitMin": 0, "unitMax": 1 }, - "x": 181.90691087361097, - "y": -174.9234043863276, + "x": 151.6234213156731, + "y": -100.2787920711396, "scale": 1, "matrix": [], "type": "node", @@ -71,8 +106,8 @@ "unitMin": 0, "unitMax": 1 }, - "x": -85.39778523068719, - "y": -154.2941278777979, + "x": -146.6539902381098, + "y": -155.289457667732, "scale": 1, "matrix": [], "type": "node", @@ -114,7 +149,7 @@ ], "x": 8.814827430186721, "y": 100.35300355264084, - "scale": 0.5, + "scale": 1, "matrix": [], "visible": false, "visibleEditing": false, @@ -267,7 +302,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.8428350035101175, + "value": 0.2733582246582955, "mode": "f", "unit": false, "unitMin": 0, @@ -428,7 +463,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.8428350035101175, + "value": 0.2733582246582955, "mode": "f", "unit": false, "unitMin": 0, @@ -601,7 +636,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.8428350035101175, + "value": 0.2733582246582955, "mode": "f", "unit": false, "unitMin": 0, @@ -700,7 +735,7 @@ ], "x": 172.2095748908892, "y": 240.84733298518915, - "scale": 0.5, + "scale": 1, "matrix": [], "visible": false, "visibleEditing": false, diff --git a/server.js b/server.js index 147375e..7efd54c 100644 --- a/server.js +++ b/server.js @@ -88,6 +88,7 @@ var globalVariables = { const serverPort = 8080; const socketPort = serverPort; // server and socket port are always identical const beatPort = 52316; // this is the port for UDP broadcasting so that the objects find each other. +const timeToLive = 2; // the amount of routers a UDP broadcast can jump. For a local network 2 is enough. const beatInterval = 5000; // how often is the heartbeat sent const socketUpdateInterval = 2000; // how often the system checks if the socket connections are still up and running. const version = "1.7.0"; // the version of this server @@ -585,7 +586,9 @@ hardwareAPI.setup(objects, objectLookup, globalVariables, __dirname, nodeTypeMod }); objectEngine(objectKey, nodeKey, null, objects, nodeTypeModules); -}, Node); +}, Node, function(thisAction){ + actionSender(thisAction); +}); cout("Done"); cout("Loading Objects"); @@ -825,8 +828,8 @@ function objectBeatSender(PORT, thisId, thisIp, oneTimeOnly) { var client = dgram.createSocket('udp4'); client.bind(function () { client.setBroadcast(true); - client.setTTL(2); - client.setMulticastTTL(2); + client.setTTL(timeToLive); + client.setMulticastTTL(timeToLive); }); if (!oneTimeOnly) { @@ -902,8 +905,8 @@ function actionSender(action) { var client = dgram.createSocket('udp4'); client.bind(function () { client.setBroadcast(true); - client.setTTL(64); - client.setMulticastTTL(64); + client.setTTL(timeToLive); + client.setMulticastTTL(timeToLive); }); // send the datagram client.send(message, 0, message.length, beatPort, HOST, function (err) { @@ -1157,7 +1160,7 @@ function objectWebServer() { delete objects[req.params[0]].nodes[req.params[1]].links[thisLinkId]; cout("deleted link: " + thisLinkId); // cout(objects[req.params[0]].links); - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send("deleted: " + thisLinkId + " in logic "+ req.params[1] +" for object: " + req.params[0]); @@ -1185,7 +1188,7 @@ function objectWebServer() { if (!thisObject.loop) { // call an action that asks all devices to reload their links, once the links are changed. - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); updateStatus = "added"; cout("added link: " + req.params[2]); // check if there are new connections associated with the new link. @@ -1259,7 +1262,7 @@ for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ } // call an action that asks all devices to reload their links, once the links are changed. - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); updateStatus = "added"; cout("added block: " + req.params[2]); utilities.writeObjectToFile(objects, req.params[0], __dirname); @@ -1286,7 +1289,7 @@ for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ } } - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send("deleted: " + thisLinkId + " in blocks for object: " + req.params[0]); }); @@ -1313,7 +1316,7 @@ for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ utilities.writeObjectToFile(objects, req.params[0], __dirname); - actionSender(JSON.stringify({reloadObject: {id: thisObject, ip: objects[thisObject].ip}})); + actionSender({reloadObject: {object: thisObject}}); updateStatus = "ok"; res.send(updateStatus); } else @@ -1349,7 +1352,7 @@ console.log("added tons of nodes ----------"); objects[req.params[0]].nodes[req.params[1]].type = "logic"; // call an action that asks all devices to reload their links, once the links are changed. - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); updateStatus = "added"; cout("added logic node: " + req.params[1]); utilities.writeObjectToFile(objects, req.params[0], __dirname); @@ -1376,7 +1379,7 @@ console.log("added tons of nodes ----------"); } } - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send("deleted: " + req.params[1] + " in object: " + req.params[0]); @@ -1415,7 +1418,7 @@ console.log("added tons of nodes ----------"); if ((typeof req.body.x === "number" && typeof req.body.y === "number" && typeof req.body.scale === "number") || (typeof req.body.matrix === "object" )) { utilities.writeObjectToFile(objects, req.params[0], __dirname); - actionSender(JSON.stringify({reloadObject: {id: thisObject, ip: objects[thisObject].ip}})); + actionSender({reloadObject: {object: thisObject}}); updateStatus = "ok"; } @@ -1465,7 +1468,7 @@ var blockList = {} delete objects[req.params[0]].links[thisLinkId]; cout("deleted link: " + thisLinkId); // cout(objects[req.params[0]].links); - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send("deleted: " + thisLinkId + " in object: " + req.params[0]); @@ -1508,7 +1511,7 @@ var blockList = {} if (!thisObject.loop) { // call an action that asks all devices to reload their links, once the links are changed. - actionSender(JSON.stringify({reloadLink: {id: req.params[0], ip: objects[req.params[0]].ip}})); + actionSender({reloadLink: {object: req.params[0]}}); updateStatus = "added"; cout("added link: " + req.params[1]); // check if there are new connections associated with the new link. @@ -1564,7 +1567,7 @@ var blockList = {} if ((typeof req.body.x === "number" && typeof req.body.y === "number" && typeof req.body.scale === "number") || (typeof req.body.matrix === "object" )) { utilities.writeObjectToFile(objects, req.params[0], __dirname); - actionSender(JSON.stringify({reloadObject: {id: thisObject, ip: objects[thisObject].ip}})); + actionSender({reloadObject: {object: thisObject}}); updateStatus = "added object"; } From b79886e1485236373d2a3c4b2bf9f938612731f0 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Mon, 5 Dec 2016 21:48:20 -0500 Subject: [PATCH 207/266] update instant connection --- hardwareInterfaces/referenceExample/index.js | 8 +++- objects/obj45/object.json | 45 +++----------------- objects/obj47/object.json | 32 +++++++------- 3 files changed, 26 insertions(+), 59 deletions(-) diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index c2baa80..a447a9e 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -79,10 +79,14 @@ if (exports.enabled) { }, 300); - /* setInterval(function () { + setInterval(function () { server.advertiseConnection("obj45","one"); - }, 2000); */ + setTimeout(function() { + server.advertiseConnection("obj47", "hans"); + }, 4000); + + }, 8000); } diff --git a/objects/obj45/object.json b/objects/obj45/object.json index ea75042..8d9a74d 100644 --- a/objects/obj45/object.json +++ b/objects/obj45/object.json @@ -14,47 +14,12 @@ "visibleEditing": false, "developer": true, "memory": {}, - "links": { - "BYPuoxvx": { - "objectA": "obj45y4gk159d097q", - "objectB": "obj45y4gk159d097q", - "nodeA": "obj45y4gk159d097qtwo", - "nodeB": "obj45y4gk159d097qone", - "logicA": false, - "logicB": false, - "namesA": [ - "obj45", - "two" - ], - "namesB": [ - "obj45", - "one" - ], - "loop": false - }, - "wE15gvxp": { - "objectA": "obj45y4gk159d097q", - "objectB": "obj45y4gk159d097q", - "nodeA": "obj45y4gk159d097qone", - "nodeB": "Qo966kd20sef", - "logicA": false, - "logicB": 1, - "namesA": [ - "obj45", - "one" - ], - "namesB": [ - "obj45", - "LOGIC0:GREEN" - ], - "loop": false - } - }, + "links": {}, "nodes": { "obj45y4gk159d097qone": { "name": "one", "data": { - "value": 0.2733582246582955, + "value": 0.7402313724160194, "mode": "f", "unit": false, "unitMin": 0, @@ -302,7 +267,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.2733582246582955, + "value": 0.8209046344272792, "mode": "f", "unit": false, "unitMin": 0, @@ -463,7 +428,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.2733582246582955, + "value": 0.8209046344272792, "mode": "f", "unit": false, "unitMin": 0, @@ -636,7 +601,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.2733582246582955, + "value": 0.8209046344272792, "mode": "f", "unit": false, "unitMin": 0, diff --git a/objects/obj47/object.json b/objects/obj47/object.json index ea19c5d..9b1d13b 100644 --- a/objects/obj47/object.json +++ b/objects/obj47/object.json @@ -1,7 +1,7 @@ { "objectId": "obj47n32vbg5gk3he", "name": "obj47", - "ip": "10.0.1.3", + "ip": "10.0.1.4", "version": "1.7.0", "protocol": "R1", "tcs": "4o9q5c", @@ -18,14 +18,13 @@ "nodes": { "obj47n32vbg5gk3hehans": { "name": "hans", - "data": - { - "value": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, + "data": { + "value": 0.0047300278674811125, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, "x": -16.694259005844287, "y": 156.85004682175247, "scale": 1, @@ -37,14 +36,13 @@ }, "obj47n32vbg5gk3hepeter": { "name": "peter", - "data": - { - "value": 0, - "mode": "f", - "unit": "", - "unitMin": 0, - "unitMax": 1 - }, + "data": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, "x": -23.743537815460286, "y": -103.19668796408882, "scale": 1, From 702da19f61479eeff2ad2d58d488df078113f9e2 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Wed, 7 Dec 2016 14:57:18 -0500 Subject: [PATCH 208/266] advertisement, text->type --- .../AdvertismentExample/index.js | 182 ++++++++++++++++++ hardwareInterfaces/referenceExample/index.js | 15 +- libraries/logicBlocks/default/index.js | 2 +- libraries/logicBlocks/delay/index.js | 2 +- libraries/logicBlocks/switch/index.js | 2 +- libraries/logicBlocks/threshold/index.js | 2 +- objects/obj47/object.json | 128 +++++++++++- server.js | 1 - test.js | 2 +- 9 files changed, 322 insertions(+), 14 deletions(-) create mode 100755 hardwareInterfaces/AdvertismentExample/index.js diff --git a/hardwareInterfaces/AdvertismentExample/index.js b/hardwareInterfaces/AdvertismentExample/index.js new file mode 100755 index 0000000..ac4ca71 --- /dev/null +++ b/hardwareInterfaces/AdvertismentExample/index.js @@ -0,0 +1,182 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * Modified by Carsten on 12/06/15. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * Set to true to enable the hardware interface + **/ +exports.enabled = false; + +if (exports.enabled) { + + var server = require(__dirname + '/../../libraries/hardwareInterfaces'); + + server.enableDeveloperUI(true); + + server.addNode("obj47", "light1", "node"); + server.addNode("obj47", "light2", "node"); + + server.addNode("obj47", "light3", "node"); + server.addNode("obj47", "switch", "node"); + + + server.addNode("obj45", "one", "node"); + server.addNode("obj45", "two", "node"); + + var _serialport = require("serialport"); + + const serialBaudRate = 9600; // baud rate for connection to arudino + const serialSource = "/dev/cu.usbmodem1411"; // this is pointing to the arduino + + //initialisation of the socket connection + var SerialP = _serialport.SerialPort; // localize object constructor + var serialPort = new SerialP(serialSource, { + parser: _serialport.parsers.readline("\r\n"), + baudrate: serialBaudRate + }, false); + + serialPort.on('error', function (err) { + console.error("Serial port error", err); + }); + + serialPort.open(); + serialPort.on("open", function () { + + serialPort.on('data', function (data) { + + if(data === "on"){ + server.write("obj47", "switch", 1, "f"); + } + else if(data === "off"){ + server.write("obj47", "switch", 0, "f"); + } + else if(data === "2") { + server.advertiseConnection("obj47","light1"); + console.log("advertise light1"); + } + else if(data === "1") { + server.advertiseConnection("obj47","light2"); + console.log("advertise light2"); + } + else if(data === "0") { + server.advertiseConnection("obj47","light3"); + console.log("advertise light3"); + } + else if(data === "3") { + server.advertiseConnection("obj47", "switch"); + console.log("advertise switch"); + } + + + console.log("this: "+data); + + }); + }); + + +/* + setInterval(function () { + + serialPort.write("0\n"); + setTimeout(function() { + serialPort.write("1\n"); + }, 1000); + + + }, 3000); +*/ + + + + server.addReadListener("obj47", "light1", function (data) { + if(data.value >0){ + serialPort.write("1\n"); + } else { + serialPort.write("0\n"); + } + }); + server.addReadListener("obj47", "light2", function (data) { + if(data.value >0){ + serialPort.write("3\n"); + } else { + serialPort.write("2\n"); + } + }); + server.addReadListener("obj47", "light3", function (data) { + if(data.value >0){ + serialPort.write("5\n"); + } else { + serialPort.write("4\n"); + } + }); + + + + server.addEventListener("reset", function () { + + }); + + server.addEventListener("shutdown", function () { + + }); + + setInterval(function () { + + server.write("obj45", "one", Math.random(), "f"); + + }, 300); + + /* + setInterval(function () { + + server.advertiseConnection("obj45","one"); + + setTimeout(function() { + server.advertiseConnection("obj47", "hans"); + }, 4000); + + }, 8000);*/ + +} diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index a447a9e..798a2d1 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -50,20 +50,22 @@ exports.enabled = true; if (exports.enabled) { + var server = require(__dirname + '/../../libraries/hardwareInterfaces'); server.enableDeveloperUI(true); - server.addNode("obj47", "hans", "node"); - server.addNode("obj47", "peter", "node"); + server.addNode("obj47", "light1", "node"); + server.addNode("obj47", "light2", "node"); + + server.addNode("obj47", "light3", "node"); + server.addNode("obj47", "switch", "node"); + server.addNode("obj45", "one", "node"); server.addNode("obj45", "two", "node"); - server.addReadListener("obj45", "two", function (item) { - //console.log(item.number); - }); server.addEventListener("reset", function () { @@ -79,6 +81,7 @@ if (exports.enabled) { }, 300); + /* setInterval(function () { server.advertiseConnection("obj45","one"); @@ -87,6 +90,6 @@ if (exports.enabled) { server.advertiseConnection("obj47", "hans"); }, 4000); - }, 8000); + }, 8000);*/ } diff --git a/libraries/logicBlocks/default/index.js b/libraries/logicBlocks/default/index.js index 6783cc4..7c2fd3e 100755 --- a/libraries/logicBlocks/default/index.js +++ b/libraries/logicBlocks/default/index.js @@ -63,7 +63,7 @@ var properties = { iconImage : "icon.png", nameInput : ["in", "", "", ""], nameOutput : ["out", "", "", ""], - text : "default" + type : "default" }; exports.properties = properties; diff --git a/libraries/logicBlocks/delay/index.js b/libraries/logicBlocks/delay/index.js index 3c437c3..9a653ce 100755 --- a/libraries/logicBlocks/delay/index.js +++ b/libraries/logicBlocks/delay/index.js @@ -63,7 +63,7 @@ var properties = { iconImage : "icon.png", nameInput : ["in", "", "", ""], nameOutput : ["out", "", "", ""], - text : "delay" + type : "delay" }; exports.properties = properties; diff --git a/libraries/logicBlocks/switch/index.js b/libraries/logicBlocks/switch/index.js index 32460b8..1a6b723 100755 --- a/libraries/logicBlocks/switch/index.js +++ b/libraries/logicBlocks/switch/index.js @@ -63,7 +63,7 @@ var properties = { iconImage : "icon.png", nameInput : ["in", "stream in", "", ""], nameOutput : ["out", "stream out", "", ""], - text : "switch" + type : "switch" }; exports.properties = properties; diff --git a/libraries/logicBlocks/threshold/index.js b/libraries/logicBlocks/threshold/index.js index 0d95f28..534ae54 100755 --- a/libraries/logicBlocks/threshold/index.js +++ b/libraries/logicBlocks/threshold/index.js @@ -63,7 +63,7 @@ var properties = { iconImage : "icon.png", nameInput : ["stream in", "", "", ""], nameOutput : ["stream out", "", "", ""], - text : "threshold" + type : "threshold" }; exports.properties = properties; diff --git a/objects/obj47/object.json b/objects/obj47/object.json index 9b1d13b..9580208 100644 --- a/objects/obj47/object.json +++ b/objects/obj47/object.json @@ -1,7 +1,7 @@ { "objectId": "obj47n32vbg5gk3he", "name": "obj47", - "ip": "10.0.1.4", + "ip": "192.168.1.6", "version": "1.7.0", "protocol": "R1", "tcs": "4o9q5c", @@ -14,7 +14,59 @@ "visibleEditing": false, "developer": true, "memory": {}, - "links": {}, + "links": { + "bfb3wgfh": { + "objectA": "obj47n32vbg5gk3he", + "objectB": "obj47n32vbg5gk3he", + "nodeA": "obj47n32vbg5gk3heswitch", + "nodeB": "obj47n32vbg5gk3helight3", + "logicA": false, + "logicB": false, + "namesA": [ + "obj47", + "switch" + ], + "namesB": [ + "obj47", + "light3" + ], + "loop": false + }, + "jG8vl4tx": { + "objectA": "obj47n32vbg5gk3he", + "objectB": "obj47n32vbg5gk3he", + "nodeA": "obj47n32vbg5gk3heswitch", + "nodeB": "obj47n32vbg5gk3helight2", + "logicA": false, + "logicB": false, + "namesA": [ + "obj47", + "switch" + ], + "namesB": [ + "obj47", + "light2" + ], + "loop": false + }, + "8I1gd5ud": { + "objectA": "obj47n32vbg5gk3he", + "objectB": "obj47n32vbg5gk3he", + "nodeA": "obj47n32vbg5gk3heswitch", + "nodeB": "obj47n32vbg5gk3helight1", + "logicA": false, + "logicB": false, + "namesA": [ + "obj47", + "switch" + ], + "namesB": [ + "obj47", + "light1" + ], + "loop": false + } + }, "nodes": { "obj47n32vbg5gk3hehans": { "name": "hans", @@ -51,6 +103,78 @@ "stress": 0, "frameSizeX": 100, "frameSizeY": 100 + }, + "obj47n32vbg5gk3helight1": { + "name": "light1", + "data": { + "value": 0, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -83, + "y": -37, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "obj47n32vbg5gk3helight2": { + "name": "light2", + "data": { + "value": 1, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -54, + "y": -7, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "obj47n32vbg5gk3helight3": { + "name": "light3", + "data": { + "value": 1, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -76, + "y": -89, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 + }, + "obj47n32vbg5gk3heswitch": { + "name": "switch", + "data": { + "value": 1, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -24, + "y": 48, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100 } }, "logic": {} diff --git a/server.js b/server.js index 7efd54c..b8c897e 100644 --- a/server.js +++ b/server.js @@ -353,7 +353,6 @@ function Block() { // A specific icon for the node, png or jpg. this.iconImage = null; // Text within the node, if no icon is available. - this.text = ""; // indicates how much calls per second is happening on this block this.stress = 0; // this is just a compatibility with the original engine. Maybe its here to stay diff --git a/test.js b/test.js index f9be125..9f51a01 100644 --- a/test.js +++ b/test.js @@ -26,4 +26,4 @@ if (module.parent == undefined) { // node dirTree.js ~/foo/bar var util = require('util'); console.log(util.inspect(dirTree(process.argv[2]), false, null)); -} \ No newline at end of file +} From e31b06292d31a6abcb34d47e94b763b899b94a61 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Thu, 8 Dec 2016 19:03:12 -0500 Subject: [PATCH 209/266] settings menu works --- hardwareInterfaces/referenceExample/index.js | 8 +- libraries/logicBlocks/default/index.js | 16 +- libraries/logicBlocks/delay/gui/index.html | 6 + libraries/logicBlocks/delay/index.js | 18 +- libraries/logicBlocks/switch/index.js | 31 +- libraries/logicBlocks/threshold/index.js | 26 +- libraries/objectDefaultFiles/object.js | 38 +- libraries/utilities.js | 1 + objects/lamp2/object.json | 32 +- objects/obj45/object.json | 504 ++++++++++++++++++- server.js | 99 +++- 11 files changed, 691 insertions(+), 88 deletions(-) diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index 798a2d1..4f39f81 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -75,9 +75,13 @@ if (exports.enabled) { }); + var counter = 0; setInterval(function () { - - server.write("obj45", "one", Math.random(), "f"); +counter++; + server.write("obj45", "one", counter/100, "f"); + if(counter >= 100){ + counter = 0; + } }, 300); diff --git a/libraries/logicBlocks/default/index.js b/libraries/logicBlocks/default/index.js index 7c2fd3e..ce77bf7 100755 --- a/libraries/logicBlocks/default/index.js +++ b/libraries/logicBlocks/default/index.js @@ -53,7 +53,7 @@ * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var properties = { +var generalProperties = { name : "default", blockSize : 1, privateData : {}, @@ -66,16 +66,22 @@ var properties = { type : "default" }; -exports.properties = properties; +exports.properties = generalProperties; + +exports.setup = function (object,logic, block, activeBlockProperties){ +// add code here that should be executed once. + +}; + //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { +exports.render = function (objectID, logicID, linkID, activeBlockProperties, callback) { var outputData = [{},{},{},{}]; var key; - for (key in inputData[0]) { - outputData[0][key] = inputData[0][key]; + for (key in activeBlockProperties.data[0]) { + outputData[0][key] = activeBlockProperties.data[0][key]; } callback(objectID, logicID, linkID, outputData); }; \ No newline at end of file diff --git a/libraries/logicBlocks/delay/gui/index.html b/libraries/logicBlocks/delay/gui/index.html index a88afbf..ce4809f 100644 --- a/libraries/logicBlocks/delay/gui/index.html +++ b/libraries/logicBlocks/delay/gui/index.html @@ -28,6 +28,12 @@ }, false); + logic.addReadPublicDataListener("delayTime",function (delayValue){ + console.log(delayValue); + writeNumber(delayValue); + slider.value = delayValue; + }); + function writeNumber(value){ if(value>=1000){ number.innerHTML = (value/1000).toFixed(2)+" sec"; diff --git a/libraries/logicBlocks/delay/index.js b/libraries/logicBlocks/delay/index.js index 9a653ce..6265380 100755 --- a/libraries/logicBlocks/delay/index.js +++ b/libraries/logicBlocks/delay/index.js @@ -53,7 +53,7 @@ * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var properties = { +var generalProperties = { name : "delay", blockSize : 1, privateData : {}, @@ -66,21 +66,27 @@ var properties = { type : "delay" }; -exports.properties = properties; +exports.properties = generalProperties; + +exports.setup = function (object,logic, block, activeBlockProperties){ +// add code here that should be executed once. + +}; + //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { +exports.render = function (objectID, logicID, linkID, activeBlockProperties, callback) { var outputData = [{},{},{},{}]; var key; - for (key in inputData[0]) { - outputData[0][key] = inputData[0][key]; + for (key in activeBlockProperties.data[0]) { + outputData[0][key] = activeBlockProperties.data[0][key]; } setTimeout(function() { callback(objectID, logicID, linkID, outputData); - }, blockObject.publicData.delayTime); + }, activeBlockProperties.publicData.delayTime); }; \ No newline at end of file diff --git a/libraries/logicBlocks/switch/index.js b/libraries/logicBlocks/switch/index.js index 1a6b723..78caa33 100755 --- a/libraries/logicBlocks/switch/index.js +++ b/libraries/logicBlocks/switch/index.js @@ -53,7 +53,7 @@ * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var properties = { +var generalProperties = { name : "switch", blockSize : 2, privateData : {}, @@ -66,37 +66,42 @@ var properties = { type : "switch" }; -exports.properties = properties; +exports.properties = generalProperties; -//var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); +exports.setup = function (object,logic, block, activeBlockProperties){ +// add code here that should be executed once. + +}; -exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { +//var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); + +exports.render = function (objectID, logicID, linkID, activeBlockProperties, callback) { var outputData = [{},{},{},{}]; var key; - if(inputData[0].value && blockObject.publicData.toggle === false) + if(inputData[0].value && activeBlockProperties.publicData.toggle === false) { - blockObject.publicData.toggle = true; + activeBlockProperties.publicData.toggle = true; // toggle the value - blockObject.publicData.switch = !blockObject.publicData.switch; + activeBlockProperties.publicData.switch = !activeBlockProperties.publicData.switch; // todo we need to test how it behaves when I have a stream and a single data point that changes when switched - for (key in inputData[0]) { - outputData[0][key] = inputData[0][key]; + for (key in activeBlockProperties.data[0]) { + outputData[0][key] = activeBlockProperties.data[0][key]; } callback(objectID, linkID, outputData); } else { - blockObject.publicData.toggle = false; + activeBlockProperties.publicData.toggle = false; } // in case the switch is on, the data will be routed through // todo again we have to test how we can handle an on and off switch that only has one data point but then also handle the stream - if(blockObject.publicData.switch){ - for (key in inputData[1]) { - outputData[1][key] = inputData[1][key]; + if(activeBlockProperties.publicData.switch){ + for (key in activeBlockProperties.data[1]) { + outputData[1][key] = activeBlockProperties.data[1][key]; } callback(objectID, logicID, linkID, outputData); } diff --git a/libraries/logicBlocks/threshold/index.js b/libraries/logicBlocks/threshold/index.js index 534ae54..2b4b373 100755 --- a/libraries/logicBlocks/threshold/index.js +++ b/libraries/logicBlocks/threshold/index.js @@ -53,7 +53,7 @@ * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData **/ -var properties = { +var generalProperties = { name : "threshold", blockSize : 1, privateData : {}, @@ -66,22 +66,28 @@ var properties = { type : "threshold" }; -exports.properties = properties; +exports.properties = generalProperties; + +exports.setup = function (object,logic, block, activeBlockProperties){ +// add code here that should be executed once. + +}; + //var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); -exports.render = function (objectID, logicID, linkID, blockObject, inputData, callback) { +exports.render = function (objectID, logicID, linkID, activeBlockProperties, callback) { // check orientations and calculate if threshold is meet. var pass = false; - if(blockObject.publicData.direction = ">") + if(activeBlockProperties.publicData.direction = ">") { - if(inputData[0][value] > blockObject.publicData.threshold){ + if(activeBlockProperties.data[0][value] > activeBlockProperties.publicData.threshold){ pass = true; } - } else if(blockObject.publicData.direction = "<") + } else if(activeBlockProperties.publicData.direction = "<") { - if(inputData[0][value] < blockObject.publicData.threshold){ + if(activeBlockProperties.data[0][value] < activeBlockProperties.publicData.threshold){ pass = true; } } @@ -89,13 +95,13 @@ exports.render = function (objectID, logicID, linkID, blockObject, inputData, ca var outputData = [{},{},{},{}]; var key; - for (key in inputData[0]) { - outputData[0][key] = inputData[0][key]; + for (key in activeBlockProperties.data[0]) { + outputData[0][key] = activeBlockProperties.data[0][key]; } // calculate final output if(pass){ - if(blockObject.publicData.digital){ + if(activeBlockProperties.publicData.digital){ outputData[0][value] = 1; } } else { diff --git a/libraries/objectDefaultFiles/object.js b/libraries/objectDefaultFiles/object.js index f8df9c6..78421cf 100644 --- a/libraries/objectDefaultFiles/object.js +++ b/libraries/objectDefaultFiles/object.js @@ -99,6 +99,9 @@ window.addEventListener("message", function (MSG) { realityObject.messageCallBacks.mainCall = function (msgContent) { + console.log("------------------------------"); + console.log(msgContent); + if (typeof msgContent.node !== "undefined") { if (realityObject.sendFullScreen === false) { @@ -126,6 +129,7 @@ realityObject.messageCallBacks.mainCall = function (msgContent) { } else if (typeof msgContent.logic !== "undefined") { + parent.postMessage(JSON.stringify( { version: realityObject.version, @@ -393,7 +397,7 @@ function HybridObject() { this.sendEealityEditorSubscribe = setInterval(function () { if (realityObject.object) { - _this.ioObject.emit('/subscribe/realityEditor', JSON.stringify({object: realityObject.object})); + _this.ioObject.emit('/subscribe/realityEditor', JSON.stringify({object: realityObject.object, protocol: realityObject.protocol})); clearInterval(_this.sendEealityEditorSubscribe); } }, 10); @@ -507,6 +511,28 @@ function HybridObject() { function HybridLogic() { this.publicData = realityObject.publicData; + this.addReadPublicDataListener = function (valueName, callback) { + + realityObject.messageCallBacks.updateLogicGUI = function (msgContent) { + if (typeof msgContent.publicData !== "undefined") { + if (typeof msgContent.publicData[valueName] !== "undefined") { + callback(msgContent.publicData[valueName]); + } + } + } + + /* + _this.ioObject.on("object", function (msg) { + var thisMsg = JSON.parse(msg); + if (typeof thisMsg.node !== "undefined") { + if (thisMsg.node === realityObject.object+node) { + if (typeof thisMsg.data !== "undefined") + callback(thisMsg.data.value); + } + } + });*/ + }; + this.readPublicData = function (valueName, value) { if (!value) value = 0; @@ -524,6 +550,13 @@ function HybridLogic() { this.ioObject = io.connect(); this.oldValueList = {}; + this.sendEealityEditorSubscribe = setInterval(function () { + if (realityObject.object) { + _this.ioObject.emit('/subscribe/realityEditorBlock', JSON.stringify({object: realityObject.object})); + clearInterval(_this.sendEealityEditorSubscribe); + } + }, 10); + /** ************************************************************ */ @@ -547,8 +580,7 @@ function HybridLogic() { object: realityObject.object, publicData: realityObject.publicData } - )); - + ), "*"); }; this.writePrivateData = function (valueName, value) { diff --git a/libraries/utilities.js b/libraries/utilities.js index bf907c2..ed682bc 100644 --- a/libraries/utilities.js +++ b/libraries/utilities.js @@ -148,6 +148,7 @@ exports.getObjectIdFromTarget = function (folderName, dirnameO) { * @param {string} dirnameO - The base directory name in which an "objects" directory resides. **/ exports.writeObjectToFile = function (objects, object, dirnameO) { + var outputFilename = dirnameO + '/objects/' + objects[object].name + '/object.json'; fs.writeFile(outputFilename, JSON.stringify(objects[object], null, '\t'), function (err) { if (err) { diff --git a/objects/lamp2/object.json b/objects/lamp2/object.json index a5e545b..874b685 100644 --- a/objects/lamp2/object.json +++ b/objects/lamp2/object.json @@ -1,7 +1,7 @@ { "objectId": "lamp2CH73qpztykp3", "name": "lamp2", - "ip": "192.168.1.7", + "ip": "192.168.1.6", "version": "1.7.0", "protocol": "R1", "tcs": "3iH5gn", @@ -36,14 +36,13 @@ "nodes": { "lamp2CH73qpztykp3brightness": { "name": "brightness", - "data": - { - "value": 0, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 - }, + "data": { + "value": 0, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, "x": -10.354941865472092, "y": 92.41661442215243, "scale": 0.7281970424811749, @@ -55,14 +54,13 @@ }, "lamp2CH73qpztykp3button": { "name": "button", - "data": - { - "value": 0, - "mode": "f", - "unit": false, - "unitMin": 0, - "unitMax": 1 - }, + "data": { + "value": 0, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, "x": 1.1061751000886915, "y": -106.88911817163942, "scale": 0.7511266180581064, diff --git a/objects/obj45/object.json b/objects/obj45/object.json index 8d9a74d..f90bdbf 100644 --- a/objects/obj45/object.json +++ b/objects/obj45/object.json @@ -1,7 +1,7 @@ { "objectId": "obj45y4gk159d097q", "name": "obj45", - "ip": "10.0.1.4", + "ip": "192.168.1.6", "version": "1.7.0", "protocol": "R1", "tcs": "bsyBi", @@ -14,12 +14,47 @@ "visibleEditing": false, "developer": true, "memory": {}, - "links": {}, + "links": { + "mg2w5wi2": { + "objectA": "obj45y4gk159d097q", + "objectB": "obj45y4gk159d097q", + "nodeA": "24fyrm6piim0", + "nodeB": "obj45y4gk159d097qtwo", + "logicA": 1, + "logicB": false, + "namesA": [ + "obj45", + "LOGIC2:GREEN" + ], + "namesB": [ + "obj45", + "two" + ], + "loop": false + }, + "Ub1bjj40": { + "objectA": "obj45y4gk159d097q", + "objectB": "obj45y4gk159d097q", + "nodeA": "obj45y4gk159d097qone", + "nodeB": "24fyrm6piim0", + "logicA": false, + "logicB": 0, + "namesA": [ + "obj45", + "one" + ], + "namesB": [ + "obj45", + "LOGIC2:BLUE" + ], + "loop": false + } + }, "nodes": { "obj45y4gk159d097qone": { "name": "one", "data": { - "value": 0.7402313724160194, + "value": 0.04, "mode": "f", "unit": false, "unitMin": 0, @@ -65,7 +100,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.8428350035101175, + "value": 0.3, "mode": "f", "unit": false, "unitMin": 0, @@ -135,7 +170,7 @@ ], "type": "logic", "links": { - "blockLinkVla969nyct20": { + "blockLink3lee1v77kdkm": { "nodeA": "blockxib52r3em54i", "logicA": 0, "nodeB": "edgePlaceholderOut0", @@ -145,7 +180,7 @@ "ballAnimationCount": 0, "route": null }, - "blockLink3Jf2v4k2zosu": { + "blockLinkMVd0fc369bjq": { "nodeA": "edgePlaceholderIn1", "logicA": 0, "nodeB": "blockxib52r3em54i", @@ -267,7 +302,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.8209046344272792, + "value": 0.06, "mode": "f", "unit": false, "unitMin": 0, @@ -428,7 +463,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.8209046344272792, + "value": 0.06, "mode": "f", "unit": false, "unitMin": 0, @@ -601,7 +636,7 @@ "unitMin": 0, "unitMax": 1 }, - "value": 0.8209046344272792, + "value": 0.06, "mode": "f", "unit": false, "unitMin": 0, @@ -1057,6 +1092,457 @@ "type": "default" } } + }, + "24fyrm6piim0": { + "name": "LOGIC2", + "data": { + "value": 0.3, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -178.32149952271402, + "y": 84.9768888693028, + "scale": 0.5, + "matrix": [], + "visible": false, + "visibleEditing": false, + "lastSetting": false, + "lastSettingBlock": "", + "iconImage": null, + "nameInput": [ + "", + "", + "", + "" + ], + "nameOutput": [ + "", + "", + "", + "" + ], + "type": "logic", + "links": { + "blockLink8Lflsk39083z": { + "nodeA": "edgePlaceholderIn1", + "logicA": 0, + "nodeB": "blockIu3nog4h1hgw", + "logicB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0, + "route": null + }, + "blockLinkNE5q48sj06fr": { + "nodeA": "blockIu3nog4h1hgw", + "logicA": 0, + "nodeB": "edgePlaceholderOut1", + "logicB": 0, + "loop": false, + "health": 0, + "ballAnimationCount": 0, + "route": null + } + }, + "loaded": false, + "animationScale": 0, + "begin": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], + "temp": [ + 763.1560757742241, + 618.84674516544, + 0.115188967416, + 0.112908, + -615.184423656016, + 768.31416297504, + -0.071283554144, + -0.069872, + 59.788834804656, + 6.46191676416, + -2.035902868776, + -1.995588, + -7924.023648881631, + -19003.86697420992, + 1182.5945248445123, + 1357.196656 + ], + "screenX": 136.5400812188854, + "screenY": 111.86884148406887, + "screenZ": 1155.9964007877145, + "screenLinearZ": 10.37285609232218, + "fullScreen": false, + "blocks": { + "edgePlaceholderIn0": { + "name": "", + "data": [ + { + "value": 0.04, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "edgePlaceholderIn1": { + "name": "", + "data": [ + { + "value": 0.3, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "edgePlaceholderIn2": { + "name": "", + "data": [ + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "edgePlaceholderIn3": { + "name": "", + "data": [ + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "edgePlaceholderOut0": { + "name": "", + "data": [ + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "edgePlaceholderOut1": { + "name": "", + "data": [ + { + "value": 0.3, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "edgePlaceholderOut2": { + "name": "", + "data": [ + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "edgePlaceholderOut3": { + "name": "", + "data": [ + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "stress": 0, + "type": "default" + }, + "blockIu3nog4h1hgw": { + "name": "delay", + "x": 1, + "y": 1, + "blockSize": 1, + "globalId": "blockIu3nog4h1hgw", + "checksum": null, + "data": [ + { + "value": 0.3, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + } + ], + "privateData": {}, + "publicData": { + "delayTime": "1954" + }, + "activeInputs": [ + true, + false, + false, + false + ], + "activeOutputs": [ + true, + false, + false, + false + ], + "nameInput": [ + "in", + "", + "", + "" + ], + "nameOutput": [ + "out", + "", + "", + "" + ], + "iconImage": null, + "text": "delay", + "stress": 0, + "isTempBlock": false, + "isPortBlock": false, + "type": "delay" + } + } } } } \ No newline at end of file diff --git a/server.js b/server.js index b8c897e..8c29b2d 100644 --- a/server.js +++ b/server.js @@ -513,6 +513,7 @@ var objectLookup = {}; var socketArray = {}; // all socket connections that are kept alive var realityEditorSocketArray = {}; // all socket connections that are kept alive +var realityEditorBlockSocketArray = {}; // all socket connections that are kept alive // counter for the socket connections // this counter is used for the Web Developer Interface to reflect the state of the server socket connections. @@ -1253,7 +1254,7 @@ function objectWebServer() { // todo this can be removed once the system runs smoothly if(typeof thisBlocks[req.params[2]].type === "undefined"){ - thisBlocks[req.params[2]].type = "default"; + thisBlocks[req.params[2]].type = thisBlocks[req.params[2]].name; } for( var k in objects[req.params[0]].nodes[req.params[1]].blocks){ @@ -2167,7 +2168,7 @@ function socketServer() { var msgContent = JSON.parse(msg); var thisProtocol = "R1"; - if(!msgContent.object){ + if (!msgContent.object) { msgContent.object = msgContent.obj; thisProtocol = "R0"; } @@ -2181,40 +2182,79 @@ function socketServer() { } }); + socket.on('/subscribe/realityEditorBlock', function (msg) { + var msgContent = JSON.parse(msg); + + if (objects.hasOwnProperty(msgContent.object)) { + cout("reality editor block: " + msgContent.object); + cout("the latest socket has the ID: " + socket.id); + + realityEditorBlockSocketArray[socket.id] = {object: msgContent.object}; + cout(realityEditorBlockSocketArray); + } + }); + + socket.on('object', function (msg) { var msgContent = protocols[protocol].receive(msg); - if(msgContent === null){ + if (msgContent === null) { msgContent = protocols["R0"].receive(msg); } - if(msgContent !== null){ - hardwareAPI.readCall(msgContent.object, msgContent.node, msgContent.data); + if (msgContent !== null) { + hardwareAPI.readCall(msgContent.object, msgContent.node, msgContent.data); - sendMessagetoEditors({ - object: msgContent.object, - node: msgContent.node, - data: msgContent.data - }); - objectEngine(msgContent.object, msgContent.node, null, objects, nodeTypeModules); - } + sendMessagetoEditors({ + object: msgContent.object, + node: msgContent.node, + data: msgContent.data + }); + objectEngine(msgContent.object, msgContent.node, null, objects, nodeTypeModules); + } }); // todo do this stuff tomorrrow - socket.on('block/publicData', function (msg) { + socket.on('block/setup', function (_msg) { + var msg = JSON.parse(_msg); + + if (typeof msg.object !== "undefined" && typeof msg.logic !== "undefined" && typeof msg.block !== "undefined") { + if (msg.object in objects) { + if (msg.logic in objects[msg.object].nodes) { + if (msg.block in objects[msg.object].nodes[msg.logic].blocks) { + if (typeof objects[msg.object].nodes[msg.logic].blocks[msg.block].publicData !== "undefined") { + + var thisPublicData = objects[msg.object].nodes[msg.logic].blocks[msg.block]; + blockModules[thisPublicData.type].setup(msg.object, msg.logic, msg.block, thisPublicData); + + } + + } + } + } + + } + }); + - if (msg.object !== null && msg.logic !== null && msg.block !== null) { + socket.on('block/publicData', function (_msg) { + var msg = JSON.parse(_msg); +console.log(msg); + if (typeof msg.object !== "undefined" && typeof msg.logic !== "undefined" && typeof msg.block !== "undefined") { if (msg.object in objects) { - if (msg.logic in objects[msg.object].logic) { + if (msg.logic in objects[msg.object].nodes) { if (msg.block in objects[msg.object].nodes[msg.logic].blocks) { - var thisPublicData = objects[msg.object].nodes[msg.logic].blocks[msg.block].publicData; + if(typeof objects[msg.object].nodes[msg.logic].blocks[msg.block].publicData !== "undefined"){ - // write data in to the block data of the object - for (var key in msg.publicData) { - thisPublicData[key] = msg.publicData[key]; + var thisPublicData = objects[msg.object].nodes[msg.logic].blocks[msg.block].publicData; + + for (var key in msg.publicData) { + thisPublicData[key] = msg.publicData[key]; + } } } + } } } @@ -2228,8 +2268,22 @@ function socketServer() { }); socket.on('disconnect', function () { - console.log(socket.id + " has disconnected"); - delete realityEditorSocketArray[socket.id]; + + + if(socket.id in realityEditorSocketArray) { + delete realityEditorSocketArray[socket.id]; + console.log("GUI for "+ socket.id + " has disconnected"); + } + + if(socket.id in realityEditorBlockSocketArray) { + utilities.writeObjectToFile(objects, realityEditorBlockSocketArray[socket.id].object, __dirname); + actionSender({reloadObject: {object: realityEditorBlockSocketArray[socket.id].object}}); + delete realityEditorBlockSocketArray[socket.id]; + console.log("Settings for "+ socket.id + " has disconnected"); + } + + //utilities.writeObjectToFile(objects, req.params[0], __dirname); + }); }); this.io = io; @@ -2434,8 +2488,7 @@ function logicEngine(object, logic, block, item, objects, blockModules) { if ((thisBlock.type in blockModules)) { - - blockModules[thisBlock.type].render(object, logic, linkKey, item, thisBlock.data, function (object, logic, link, processedData) { + blockModules[thisBlock.type].render(object, logic, linkKey, thisBlock, function (object, logic, link, processedData) { logicEnginePostProcessing(object, logic, link, processedData); }); From f5e1e1c8ccb3bb5377b3a800437d956173f96f48 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Thu, 8 Dec 2016 19:21:38 -0500 Subject: [PATCH 210/266] update object from Server Only! --- libraries/objectDefaultFiles/object.js | 54 +++++++++++++++----------- objects/obj45/object.json | 6 +-- server.js | 7 ++++ 3 files changed, 42 insertions(+), 25 deletions(-) diff --git a/libraries/objectDefaultFiles/object.js b/libraries/objectDefaultFiles/object.js index 78421cf..bf57360 100644 --- a/libraries/objectDefaultFiles/object.js +++ b/libraries/objectDefaultFiles/object.js @@ -511,27 +511,7 @@ function HybridObject() { function HybridLogic() { this.publicData = realityObject.publicData; - this.addReadPublicDataListener = function (valueName, callback) { - realityObject.messageCallBacks.updateLogicGUI = function (msgContent) { - if (typeof msgContent.publicData !== "undefined") { - if (typeof msgContent.publicData[valueName] !== "undefined") { - callback(msgContent.publicData[valueName]); - } - } - } - - /* - _this.ioObject.on("object", function (msg) { - var thisMsg = JSON.parse(msg); - if (typeof thisMsg.node !== "undefined") { - if (thisMsg.node === realityObject.object+node) { - if (typeof thisMsg.data !== "undefined") - callback(thisMsg.data.value); - } - } - });*/ - }; this.readPublicData = function (valueName, value) { if (!value) value = 0; @@ -542,7 +522,7 @@ function HybridLogic() { } else { return realityObject.publicData[valueName]; } - } + }; if (typeof io !== "undefined") { var _this = this; @@ -550,9 +530,28 @@ function HybridLogic() { this.ioObject = io.connect(); this.oldValueList = {}; + this.addReadPublicDataListener = function (valueName, callback) { + + _this.ioObject.on("block", function (msg) { + var thisMsg = JSON.parse(msg); + if (typeof thisMsg.publicData !== "undefined") { + if (typeof thisMsg.publicData[valueName] !== "undefined") { + callback(thisMsg.publicData[valueName]); + } + } + }); + }; + + + this.sendEealityEditorSubscribe = setInterval(function () { if (realityObject.object) { - _this.ioObject.emit('/subscribe/realityEditorBlock', JSON.stringify({object: realityObject.object})); + _this.ioObject.emit('/subscribe/realityEditorBlock', JSON.stringify( + { + object: realityObject.object, + logic:realityObject.logic, + block: realityObject.block + })); clearInterval(_this.sendEealityEditorSubscribe); } }, 10); @@ -600,6 +599,17 @@ function HybridLogic() { } else { + this.addReadPublicDataListener = function (valueName, callback) { + + realityObject.messageCallBacks.updateLogicGUI = function (msgContent) { + if (typeof msgContent.publicData !== "undefined") { + if (typeof msgContent.publicData[valueName] !== "undefined") { + callback(msgContent.publicData[valueName]); + } + } + }; + }; + /** ************************************************************ */ diff --git a/objects/obj45/object.json b/objects/obj45/object.json index f90bdbf..df2e805 100644 --- a/objects/obj45/object.json +++ b/objects/obj45/object.json @@ -54,7 +54,7 @@ "obj45y4gk159d097qone": { "name": "one", "data": { - "value": 0.04, + "value": 0.17, "mode": "f", "unit": false, "unitMin": 0, @@ -1194,7 +1194,7 @@ "name": "", "data": [ { - "value": 0.04, + "value": 0.17, "mode": "f", "unit": false, "unitMin": 0, @@ -1509,7 +1509,7 @@ ], "privateData": {}, "publicData": { - "delayTime": "1954" + "delayTime": "870" }, "activeInputs": [ true, diff --git a/server.js b/server.js index 8c29b2d..ccdee54 100644 --- a/server.js +++ b/server.js @@ -2192,6 +2192,13 @@ function socketServer() { realityEditorBlockSocketArray[socket.id] = {object: msgContent.object}; cout(realityEditorBlockSocketArray); } + + io.sockets.connected[socket.id].emit('block', JSON.stringify({ + object: msgContent.object, + node: msgContent.node, + block: msgContent.block, + publicData: objects[msgContent.object].nodes[msgContent.logic].blocks[msgContent.block].publicData + }));// socket.emit('object', msgToSend); }); From 3243a266d0372ba7cd6030b3f757ae73d2311932 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Sat, 10 Dec 2016 16:39:35 -0500 Subject: [PATCH 211/266] working state --- hardwareInterfaces/referenceExample/index.js | 4 +- libraries/logicBlocks/delay/gui/index.html | 8 +- libraries/logicBlocks/delay/gui/style.css | 2 +- libraries/logicBlocks/switch/gui/index.html | 15 + libraries/logicBlocks/switch/index.js | 50 +- .../logicBlocks/threshold/gui/index.html | 4 +- libraries/logicBlocks/threshold/gui/style.css | 12 +- libraries/logicBlocks/threshold/index.js | 13 +- libraries/webFrontend.js | 18 +- objects/obj45/object.json | 1274 ++++------------- objects/obj47/object.json | 54 +- server.js | 67 +- 12 files changed, 388 insertions(+), 1133 deletions(-) diff --git a/hardwareInterfaces/referenceExample/index.js b/hardwareInterfaces/referenceExample/index.js index 4f39f81..7a02899 100755 --- a/hardwareInterfaces/referenceExample/index.js +++ b/hardwareInterfaces/referenceExample/index.js @@ -64,6 +64,8 @@ if (exports.enabled) { server.addNode("obj45", "one", "node"); server.addNode("obj45", "two", "node"); + server.addNode("obj45", "three", "node"); + server.addNode("obj45", "four", "node"); @@ -83,7 +85,7 @@ counter++; counter = 0; } - }, 300); + }, 50); /* setInterval(function () { diff --git a/libraries/logicBlocks/delay/gui/index.html b/libraries/logicBlocks/delay/gui/index.html index ce4809f..d619b7d 100644 --- a/libraries/logicBlocks/delay/gui/index.html +++ b/libraries/logicBlocks/delay/gui/index.html @@ -7,8 +7,11 @@ -
    0 ms
    +
    + + + + + + diff --git a/libraries/logicBlocks/invert/gui/label.svg b/libraries/logicBlocks/invert/gui/label.svg new file mode 100644 index 0000000..3c83249 --- /dev/null +++ b/libraries/logicBlocks/invert/gui/label.svg @@ -0,0 +1,19 @@ + + + + +label + + + + + + + + diff --git a/libraries/logicBlocks/invert/gui/style.css b/libraries/logicBlocks/invert/gui/style.css new file mode 100644 index 0000000..e69de29 diff --git a/libraries/logicBlocks/invert/index.js b/libraries/logicBlocks/invert/index.js new file mode 100755 index 0000000..a7b033f --- /dev/null +++ b/libraries/logicBlocks/invert/index.js @@ -0,0 +1,87 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkID the id of the link that is related to the call + * @param {object} inputData the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ + +var generalProperties = { + name : "invert", + blockSize : 1, + privateData : {}, + publicData : {}, + activeInputs : [true, false, false, false], + activeOutputs : [true, false, false, false], + iconImage : "icon.png", + nameInput : ["in", "", "", ""], + nameOutput : ["out", "", "", ""], + type : "default" +}; + +exports.properties = generalProperties; + +exports.setup = function (object,logic, block, activeBlockProperties){ +// add code here that should be executed once. + +}; +//var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); + +exports.render = function (object, node, block, index, thisBlock, callback) { + + for (var key in thisBlock.data[index]) { + if(key === "value"){ + thisBlock.processedData[index].value = 1-thisBlock.data[index].value; + } else { + thisBlock.processedData[index][key] = thisBlock.data[index][key]; + } + } + callback(object, node, block, index, thisBlock); +}; \ No newline at end of file diff --git a/libraries/logicBlocks/motor/gui/icon.svg b/libraries/logicBlocks/motor/gui/icon.svg new file mode 100644 index 0000000..9b99790 --- /dev/null +++ b/libraries/logicBlocks/motor/gui/icon.svg @@ -0,0 +1 @@ +icon \ No newline at end of file diff --git a/libraries/logicBlocks/motor/gui/index.html b/libraries/logicBlocks/motor/gui/index.html new file mode 100644 index 0000000..d169a20 --- /dev/null +++ b/libraries/logicBlocks/motor/gui/index.html @@ -0,0 +1,58 @@ + + + + + Setup Slider + + + + +
    + + + + + + + diff --git a/libraries/logicBlocks/motor/gui/label.svg b/libraries/logicBlocks/motor/gui/label.svg new file mode 100644 index 0000000..0088ed3 --- /dev/null +++ b/libraries/logicBlocks/motor/gui/label.svg @@ -0,0 +1 @@ +label \ No newline at end of file diff --git a/libraries/logicBlocks/motor/gui/style.css b/libraries/logicBlocks/motor/gui/style.css new file mode 100644 index 0000000..f9dcf3b --- /dev/null +++ b/libraries/logicBlocks/motor/gui/style.css @@ -0,0 +1,88 @@ +body { + background-color: dimgray; +} +input[type=range] { + background-color: transparent; + -webkit-appearance: none; + +} + +input[type=range]::-webkit-slider-runnable-track { + -webkit-appearance: none; + height: 68px; /* Must add six because this width includes the border */ + background-color: rgba(255, 255, 255, 0); + -webkit-backdrop-filter: blur(4px); + border: solid 4px #00edff; + border-radius: 8px; + padding: 5px; +} + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 50px; + width: 50px; + border-radius: 2px; + background: #00edff; +} + +.range-slider input[type="range"]:after { + height: 2px; + background: #fff; + content: ' '; + width: 5px; + top: 50%; + margin-top: -1px; + left: -5px; + z-index: 1; + position: absolute; +} + +input[type=range]:focus { + outline: none; +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: xx-large; + font-weight: 700; + color: #00ffff; + align: center; + text-align: center; + position: relative; + top:50px; +} + +/* HTML5 Boilerplate radio-one hidden styles */ +[type="radio"] { + border: 0; + height: 1px; margin: -1px; + padding: 0; + position: absolute; + width: 1px; + display: none; +} + +/* One radio button per line */ +label { + display: block; + cursor: pointer; /*hand view when on hover*/ + line-height: 2.5; + font-size: 1.5em; +} + +/* the basic, unchecked style */ +[type="radio"] + span:before { + content: ''; + display: inline-block; + width: 1em; + height: 1em; + vertical-align: -0.25em; + border-radius: 1em; /*hard border*/ + border: 0.125em solid #00ffff; + margin-right: 0.75em; +} + +/* the checked style using the :checked pseudo class */ +[type="radio"]:checked + span:before { + background: #00ffff; +} diff --git a/libraries/logicBlocks/motor/index.js b/libraries/logicBlocks/motor/index.js new file mode 100755 index 0000000..df818b4 --- /dev/null +++ b/libraries/logicBlocks/motor/index.js @@ -0,0 +1,98 @@ +/** + * @preserve + * + * .,,,;;,'''.. + * .'','... ..',,,. + * .,,,,,,',,',;;:;,. .,l, + * .,',. ... ,;, :l. + * ':;. .'.:do;;. .c ol;'. + * ';;' ;.; ', .dkl';, .c :; .'.',::,,'''. + * ',,;;;,. ; .,' .'''. .'. .d;''.''''. + * .oxddl;::,,. ', .'''. .... .'. ,:;.. + * .'cOX0OOkdoc. .,'. .. ..... 'lc. + * .:;,,::co0XOko' ....''..'.'''''''. + * .dxk0KKdc:cdOXKl............. .. ..,c.... + * .',lxOOxl:'':xkl,',......'.... ,'. + * .';:oo:... . + * .cd, ╔═╗┌─┐┬─┐┬ ┬┌─┐┬─┐ . + * .l; ╚═╗├┤ ├┬┘└┐┌┘├┤ ├┬┘ ' + * 'l. ╚═╝└─┘┴└─ └┘ └─┘┴└─ '. + * .o. ... + * .''''','.;:''......... + * .' .l + * .:. l' + * .:. .l. + * .x: :k;,. + * cxlc; cdc,,;;. + * 'l :.. .c , + * o. + * ., + * + * ╦ ╦┬ ┬┌┐ ┬─┐┬┌┬┐ ╔═╗┌┐ ┬┌─┐┌─┐┌┬┐┌─┐ + * ╠═╣└┬┘├┴┐├┬┘│ ││ ║ ║├┴┐ │├┤ │ │ └─┐ + * ╩ ╩ ┴ └─┘┴└─┴─┴┘ ╚═╝└─┘└┘└─┘└─┘ ┴ └─┘ + * + * Created by Valentin on 10/22/14. + * + * Copyright (c) 2015 Valentin Heun + * + * All ascii characters above must be included in any redistribution. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @desc prototype for a plugin. This prototype is called when a value should be changed. + * It defines how this value should be transformed before sending it to the destination. + * @param {object} objectID Origin object in which the related link is saved. + * @param {string} linkID the id of the link that is related to the call + * @param {object} inputData the data that needs to be processed + * @param {function} callback the function that is called for when the process is rendered. + * @note the callback has the same structure then the initial prototype, however inputData has changed to outputData + **/ + +var generalProperties = { + name : "motor", + blockSize : 2, + privateData : {}, + publicData : {}, + activeInputs : [true, true, false, false], + activeOutputs : [true, true, false, false], + iconImage : "icon.png", + nameInput : ["in", "stream in", "", ""], + nameOutput : ["out", "stream out", "", ""], + type : "switch" +}; + +var switchValue = 0; + +exports.properties = generalProperties; + +exports.setup = function (object,logic, block, activeBlockProperties){ +// add code here that should be executed once. + +}; + +//var logicAPI = require(__dirname + '/../../libraries/logicInterfaces'); + +exports.render = function (object, node, block, index, thisBlock, callback) { + + for (var key in thisBlock.data[index]) { + if(key === "value"){ + if(index === 0){ + thisBlock.processedData[0].value = Math.round(((1-thisBlock.data[index].value)/2)*1000)/1000; + } + + if(index === 1){ + thisBlock.processedData[0].value = Math.round((((thisBlock.data[index].value)/2)+0.5)*1000)/1000; + } + + } else { + thisBlock.processedData[index][key] = thisBlock.data[index][key]; + } + } + + callback(object, node, block, index, thisBlock); +}; \ No newline at end of file diff --git a/libraries/logicBlocks/switch/gui/icon.png b/libraries/logicBlocks/switch/gui/icon.png deleted file mode 100644 index 37adaf482b9c5a1597859a7bf40da79b6e38f4a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18795 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 \ No newline at end of file +icon \ No newline at end of file diff --git a/libraries/logicBlocks/switch/gui/label.svg b/libraries/logicBlocks/switch/gui/label.svg new file mode 100644 index 0000000..2ee6b6f --- /dev/null +++ b/libraries/logicBlocks/switch/gui/label.svg @@ -0,0 +1 @@ +label \ No newline at end of file diff --git a/libraries/logicBlocks/threshold/gui/icon.png b/libraries/logicBlocks/threshold/gui/icon.png deleted file mode 100644 index 712def1c66449ebc296befb515bcbfac0be169aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17709 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 diff --git a/libraries/logicBlocks/threshold/gui/icon.svg b/libraries/logicBlocks/threshold/gui/icon.svg index bc1dc3f..f2fb274 100644 --- a/libraries/logicBlocks/threshold/gui/icon.svg +++ b/libraries/logicBlocks/threshold/gui/icon.svg @@ -1 +1 @@ -treshold \ No newline at end of file +icon \ No newline at end of file diff --git a/libraries/logicBlocks/threshold/gui/label.svg b/libraries/logicBlocks/threshold/gui/label.svg new file mode 100644 index 0000000..ca20e1d --- /dev/null +++ b/libraries/logicBlocks/threshold/gui/label.svg @@ -0,0 +1 @@ +label \ No newline at end of file diff --git a/server.js b/server.js index 8205b79..c36aebb 100644 --- a/server.js +++ b/server.js @@ -2461,22 +2461,23 @@ var engine = { } else { this.blockKey = "in" + this.link.logicB; - if (this.objects[this.link.objectB].nodes[this.link.nodeB]) { - this.internalObjectDestination = this.objects[this.link.objectB].nodes[this.link.nodeB].blocks[this.blockKey]; - var key; - for (key in thisNode.processedData) { - this.internalObjectDestination.data[0][key] = thisNode.processedData[key]; - } + if (this.objects[this.link.objectB].nodes[this.link.nodeB] && this.blockKey) { + if (this.objects[this.link.objectB].nodes[this.link.nodeB].blocks) { + this.internalObjectDestination = this.objects[this.link.objectB].nodes[this.link.nodeB].blocks[this.blockKey]; - this.nextLogic = this.objects[this.link.objectB].nodes[this.link.nodeB]; - // this needs to be at the beginning; - if (!this.nextLogic.routeBuffer) - this.nextLogic.routeBuffer = [0, 0, 0, 0]; + for (var key in thisNode.processedData) { + this.internalObjectDestination.data[0][key] = thisNode.processedData[key]; + } - this.nextLogic.routeBuffer[this.link.logicB] = thisNode.processedData.value; + this.nextLogic = this.objects[this.link.objectB].nodes[this.link.nodeB]; + // this needs to be at the beginning; + if (!this.nextLogic.routeBuffer) + this.nextLogic.routeBuffer = [0, 0, 0, 0]; - this.blockTrigger(this.link.objectB, this.link.nodeB, this.blockKey, this.link.logicB, this.internalObjectDestination); + this.nextLogic.routeBuffer[this.link.logicB] = thisNode.processedData.value; + this.blockTrigger(this.link.objectB, this.link.nodeB, this.blockKey, 0, this.internalObjectDestination); + } } } From 6935ea8eb30588ba4ba2a532433b3406d3068534 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Sun, 22 Jan 2017 13:50:27 -0500 Subject: [PATCH 219/266] remove all listeners on disconnect + update wedo2 => 1.5.6 --- hardwareInterfaces/wedo2/index.js | 5 ++++- libraries/hardwareInterfaces.js | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/hardwareInterfaces/wedo2/index.js b/hardwareInterfaces/wedo2/index.js index 72fd663..caffca7 100755 --- a/hardwareInterfaces/wedo2/index.js +++ b/hardwareInterfaces/wedo2/index.js @@ -52,8 +52,9 @@ exports.enabled = true; if (exports.enabled) { var names = {}; + var Wedo = require('WeDo2'); + var wedo = new Wedo("lego"); - var wedo = require('WeDo2'); var server = require(__dirname + '/../../libraries/hardwareInterfaces'); server.enableDeveloperUI(true); @@ -143,6 +144,8 @@ if (exports.enabled) { server.renameNode(names[uuid].name, "none 2", " "); names[uuid].py2 = "none 2"; + server.removeReadListeners(names[uuid].name); + resetNode(uuid,1); resetNode(uuid,2); } diff --git a/libraries/hardwareInterfaces.js b/libraries/hardwareInterfaces.js index c6706a4..35ed3f2 100644 --- a/libraries/hardwareInterfaces.js +++ b/libraries/hardwareInterfaces.js @@ -294,6 +294,12 @@ exports.addReadListener = function (objectName, nodeName, callBack) { } }; +exports.removeReadListeners = function (objectName){ + var objectID = utilities.readObject(objectLookup, objectName); + if(callBacks[objectID]) + delete callBacks[objectID]; +}; + exports.map = function (x, in_min, in_max, out_min, out_max) { if (x > in_max) x = in_max; if (x < in_min) x = in_min; From d386581d45ac1e3c6096390d23e977e631589994 Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Sun, 22 Jan 2017 22:32:05 -0500 Subject: [PATCH 220/266] added uuid for latest change. This is done for collaboration purposes, so that all other except the origin editors are updated. The uuid is temporary for each app start and can not be traced back to a particular device or user. --- server.js | 54 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/server.js b/server.js index c36aebb..ff488e1 100644 --- a/server.js +++ b/server.js @@ -917,6 +917,7 @@ function objectBeatSender(PORT, thisId, thisIp, oneTimeOnly) { **/ function actionSender(action) { + console.log(action); var HOST = '255.255.255.255'; var message; @@ -1174,7 +1175,7 @@ function objectWebServer() { // delete a logic link. *1 is the object *2 is the logic *3 is the link id // **************************************************************************************************************** - webServer.delete('/logic/*/*/link/*/', function (req, res) { + webServer.delete('/logic/*/*/link/*/lastEditor/*/', function (req, res) { var thisLinkId = req.params[2]; var fullEntry = objects[req.params[0]].nodes[req.params[1]].links[thisLinkId]; @@ -1183,7 +1184,7 @@ function objectWebServer() { delete objects[req.params[0]].nodes[req.params[1]].links[thisLinkId]; cout("deleted link: " + thisLinkId); // cout(objects[req.params[0]].links); - actionSender({reloadLink: {object: req.params[0]}}); + actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.params[3]}); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send("deleted: " + thisLinkId + " in logic "+ req.params[1] +" for object: " + req.params[0]); @@ -1211,7 +1212,7 @@ function objectWebServer() { if (!thisObject.loop) { // call an action that asks all devices to reload their links, once the links are changed. - actionSender({reloadLink: {object: req.params[0]}}); + actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.body.lastEditor}); updateStatus = "added"; cout("added link: " + req.params[2]); // check if there are new connections associated with the new link. @@ -1285,7 +1286,7 @@ function objectWebServer() { } // call an action that asks all devices to reload their links, once the links are changed. - actionSender({reloadLink: {object: req.params[0]}}); + actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.body.lastEditor}); updateStatus = "added"; cout("added block: " + req.params[2]); utilities.writeObjectToFile(objects, req.params[0], __dirname); @@ -1295,7 +1296,7 @@ function objectWebServer() { // delete a block from the logic. *1 is the object *2 is the logic *3 is the link id // **************************************************************************************************************** - webServer.delete('/logic/*/*/block/*/', function (req, res) { + webServer.delete('/logic/*/*/block/*/lastEditor/*/', function (req, res) { var thisLinkId = req.params[2]; var fullEntry = objects[req.params[0]].nodes[req.params[1]].blocks[thisLinkId]; @@ -1312,7 +1313,7 @@ function objectWebServer() { } } - actionSender({reloadLink: {object: req.params[0]}}); + actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.params[3]}); utilities.writeObjectToFile(objects, req.params[0], __dirname); res.send("deleted: " + thisLinkId + " in blocks for object: " + req.params[0]); }); @@ -1338,8 +1339,7 @@ function objectWebServer() { tempObject.y = req.body.y; utilities.writeObjectToFile(objects, req.params[0], __dirname); - - actionSender({reloadObject: {object: thisObject}}); + actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.body.lastEditor}); updateStatus = "ok"; res.send(updateStatus); } else @@ -1351,7 +1351,7 @@ function objectWebServer() { * Logic Nodes **/ - // adding a new block to an object. *1 is the object *2 is the logic *3 is the link id + // adding a new logic node block to an object. *1 is the object *2 is the logic *3 is the link id // **************************************************************************************************************** webServer.post('/logic/*/*/node/', function (req, res) { @@ -1375,17 +1375,20 @@ function objectWebServer() { objects[req.params[0]].nodes[req.params[1]].type = "logic"; // call an action that asks all devices to reload their links, once the links are changed. - actionSender({reloadLink: {object: req.params[0]}}); updateStatus = "added"; cout("added logic node: " + req.params[1]); utilities.writeObjectToFile(objects, req.params[0], __dirname); + + console.log(objects[req.params[0]].nodes[req.params[1]]); + actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.body.lastEditor}); + res.send(updateStatus); } }); // delete a block from the logic. *1 is the object *2 is the logic *3 is the link id // **************************************************************************************************************** - webServer.delete('/logic/*/*/node/', function (req, res) { + webServer.delete('/logic/*/*/node/lastEditor/*/', function (req, res) { var fullEntry = objects[req.params[0]].nodes[req.params[1]]; @@ -1401,9 +1404,8 @@ function objectWebServer() { delete objects[req.params[0]].links[subCheckerKey]; } } - - actionSender({reloadLink: {object: req.params[0]}}); utilities.writeObjectToFile(objects, req.params[0], __dirname); + actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.params[2]}); res.send("deleted: " + req.params[1] + " in object: " + req.params[0]); }); @@ -1441,7 +1443,8 @@ function objectWebServer() { if ((typeof req.body.x === "number" && typeof req.body.y === "number" && typeof req.body.scale === "number") || (typeof req.body.matrix === "object" )) { utilities.writeObjectToFile(objects, req.params[0], __dirname); - actionSender({reloadObject: {object: thisObject}}); + // actionSender({reloadObject: {object: thisObject}}); + actionSender({reloadObject: {object: req.params[0], node: req.params[1]}, lastEditor: req.body.lastEditor}); updateStatus = "ok"; } @@ -1482,7 +1485,7 @@ function objectWebServer() { // delete a link. *1 is the object *2 is the link id // **************************************************************************************************************** - webServer.delete('/object/*/link/*/', function (req, res) { + webServer.delete('/object/*/link/*/lastEditor/*/', function (req, res) { var thisLinkId = req.params[1]; var fullEntry = objects[req.params[0]].links[thisLinkId]; @@ -1491,8 +1494,8 @@ function objectWebServer() { delete objects[req.params[0]].links[thisLinkId]; cout("deleted link: " + thisLinkId); // cout(objects[req.params[0]].links); - actionSender({reloadLink: {object: req.params[0]}}); utilities.writeObjectToFile(objects, req.params[0], __dirname); + actionSender({reloadLink: {object: req.params[0]}, lastEditor: req.params[2]}); res.send("deleted: " + thisLinkId + " in object: " + req.params[0]); var checkIfIpIsUsed = false; @@ -1533,8 +1536,6 @@ function objectWebServer() { } if (!thisObject.loop) { - // call an action that asks all devices to reload their links, once the links are changed. - actionSender({reloadLink: {object: req.params[0]}}); updateStatus = "added"; cout("added link: " + req.params[1]); // check if there are new connections associated with the new link. @@ -1542,6 +1543,8 @@ function objectWebServer() { // write the object state to the permanent storage. utilities.writeObjectToFile(objects, req.params[0], __dirname); + // call an action that asks all devices to reload their links, once the links are changed. + actionSender({reloadLink: {object: req.params[0]}, lastEditor: req.body.lastEditor}); } else { updateStatus = "found endless Loop"; } @@ -1645,7 +1648,8 @@ function objectWebServer() { if ((typeof req.body.x === "number" && typeof req.body.y === "number" && typeof req.body.scale === "number") || (typeof req.body.matrix === "object" )) { utilities.writeObjectToFile(objects, req.params[0], __dirname); - actionSender({reloadObject: {object: thisObject}}); + actionSender({reloadObject: {object: thisObject}, lastEditor: req.body.lastEditor}); + // actionSender({reloadNode: {object: req.params[0], node: req.params[1]}, lastEditor: req.body.lastEditor}); updateStatus = "added object"; } @@ -1773,7 +1777,15 @@ function objectWebServer() { zip.finalize(); }); - // sends json object for a specific hybrid object. * is the object name + // sends json object for a specific hybrid object. * is the object name + // ths is the most relevant for + // **************************************************************************************************************** + webServer.get('/object/:object/node/:node/', function (req, res) { + // cout("get 7"); + res.json(objects[req.params.object].nodes[req.params.node]); + }); + + // sends json object for a specific hybrid object. * is the object name // ths is the most relevant for // **************************************************************************************************************** webServer.get('/object/*/', function (req, res) { @@ -1781,6 +1793,8 @@ function objectWebServer() { res.json(objects[req.params[0]]); }); + + // **************************************************************************************************************** // post interfaces // **************************************************************************************************************** From 01301b9e6ec5ed6045e25439df4304e8bef3180c Mon Sep 17 00:00:00 2001 From: Valentin Heun Date: Mon, 23 Jan 2017 15:13:38 -0500 Subject: [PATCH 221/266] lego objects --- .gitignore | 2 +- hardwareInterfaces/testExample/index.js | 8 ++ hardwareInterfaces/wedo2/index.js | 55 +++++---- objects/lego1/bird.png | Bin 0 -> 16296 bytes objects/lego1/index.html | 12 ++ objects/lego1/memory/memory.jpg | Bin 0 -> 24536 bytes objects/lego1/memory/memoryThumbnail.jpg | Bin 0 -> 2681 bytes objects/lego1/object.json | 135 +++++++++++++++++++++ objects/lego1/target/target.dat | Bin 0 -> 170680 bytes objects/lego1/target/target.jpg | Bin 0 -> 164482 bytes objects/lego1/target/target.xml | 6 + objects/lego2/bird.png | Bin 0 -> 16296 bytes objects/lego2/index.html | 12 ++ objects/lego2/memory/memory.jpg | Bin 0 -> 26487 bytes objects/lego2/memory/memoryThumbnail.jpg | Bin 0 -> 2794 bytes objects/lego2/object.json | 135 +++++++++++++++++++++ objects/lego2/target/target.dat | Bin 0 -> 101230 bytes objects/lego2/target/target.jpg | Bin 0 -> 132930 bytes objects/lego2/target/target.xml | 6 + objects/lego3/bird.png | Bin 0 -> 16296 bytes objects/lego3/index.html | 12 ++ objects/lego3/memory/memory.jpg | Bin 0 -> 26558 bytes objects/lego3/memory/memoryThumbnail.jpg | Bin 0 -> 2566 bytes objects/lego3/object.json | 142 +++++++++++++++++++++++ objects/lego3/target/target.dat | Bin 0 -> 205465 bytes objects/lego3/target/target.jpg | Bin 0 -> 176808 bytes objects/lego3/target/target.xml | 6 + objects/lego4/bird.png | Bin 0 -> 16296 bytes objects/lego4/index.html | 12 ++ objects/lego4/memory/memory.jpg | Bin 0 -> 26261 bytes objects/lego4/memory/memoryThumbnail.jpg | Bin 0 -> 2559 bytes objects/lego4/object.json | 128 ++++++++++++++++++++ objects/lego4/target/target.dat | Bin 0 -> 183419 bytes objects/lego4/target/target.jpg | Bin 0 -> 174137 bytes objects/lego4/target/target.xml | 6 + objects/lego5/bird.png | Bin 0 -> 16296 bytes objects/lego5/index.html | 12 ++ objects/lego5/memory/memory.jpg | Bin 0 -> 56543 bytes objects/lego5/memory/memoryThumbnail.jpg | Bin 0 -> 2779 bytes objects/lego5/object.json | 135 +++++++++++++++++++++ objects/lego5/target/target.dat | Bin 0 -> 159232 bytes objects/lego5/target/target.jpg | Bin 0 -> 150474 bytes objects/lego5/target/target.xml | 6 + server.js | 1 + 44 files changed, 805 insertions(+), 26 deletions(-) create mode 100644 objects/lego1/bird.png create mode 100644 objects/lego1/index.html create mode 100644 objects/lego1/memory/memory.jpg create mode 100644 objects/lego1/memory/memoryThumbnail.jpg create mode 100644 objects/lego1/object.json create mode 100644 objects/lego1/target/target.dat create mode 100644 objects/lego1/target/target.jpg create mode 100644 objects/lego1/target/target.xml create mode 100644 objects/lego2/bird.png create mode 100644 objects/lego2/index.html create mode 100644 objects/lego2/memory/memory.jpg create mode 100644 objects/lego2/memory/memoryThumbnail.jpg create mode 100644 objects/lego2/object.json create mode 100644 objects/lego2/target/target.dat create mode 100644 objects/lego2/target/target.jpg create mode 100644 objects/lego2/target/target.xml create mode 100644 objects/lego3/bird.png create mode 100644 objects/lego3/index.html create mode 100644 objects/lego3/memory/memory.jpg create mode 100644 objects/lego3/memory/memoryThumbnail.jpg create mode 100644 objects/lego3/object.json create mode 100644 objects/lego3/target/target.dat create mode 100644 objects/lego3/target/target.jpg create mode 100644 objects/lego3/target/target.xml create mode 100644 objects/lego4/bird.png create mode 100644 objects/lego4/index.html create mode 100644 objects/lego4/memory/memory.jpg create mode 100644 objects/lego4/memory/memoryThumbnail.jpg create mode 100644 objects/lego4/object.json create mode 100644 objects/lego4/target/target.dat create mode 100644 objects/lego4/target/target.jpg create mode 100644 objects/lego4/target/target.xml create mode 100644 objects/lego5/bird.png create mode 100644 objects/lego5/index.html create mode 100644 objects/lego5/memory/memory.jpg create mode 100644 objects/lego5/memory/memoryThumbnail.jpg create mode 100644 objects/lego5/object.json create mode 100644 objects/lego5/target/target.dat create mode 100644 objects/lego5/target/target.jpg create mode 100644 objects/lego5/target/target.xml diff --git a/.gitignore b/.gitignore index 10ce942..aee1f9c 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,7 @@ lib-cov .DS_Store # ignore personal objects in the object folder. -objects/* +# objects/* # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release diff --git a/hardwareInterfaces/testExample/index.js b/hardwareInterfaces/testExample/index.js index cbc8903..34eb0e0 100755 --- a/hardwareInterfaces/testExample/index.js +++ b/hardwareInterfaces/testExample/index.js @@ -51,4 +51,12 @@ exports.enabled = false; if (exports.enabled) { + var server = require(__dirname + '/../../libraries/hardwareInterfaces'); + + server.enableDeveloperUI(true); + server.addNode("lego1", "light1", "node"); + server.addNode("lego2", "light2", "node"); + server.addNode("lego3", "light1", "node"); + server.addNode("lego4", "light2", "node"); + server.addNode("lego5", "light1", "node"); } \ No newline at end of file diff --git a/hardwareInterfaces/wedo2/index.js b/hardwareInterfaces/wedo2/index.js index caffca7..85fbd33 100755 --- a/hardwareInterfaces/wedo2/index.js +++ b/hardwareInterfaces/wedo2/index.js @@ -66,23 +66,25 @@ if (exports.enabled) { // todo make nodes invisible on command if (wedo.wedo[uuid]) { - names[uuid] = {px1 : "port 1", px2 : "port 2",py1 : "none 1", py2 : "none 2"}; + names[uuid] = {px1 : "port 1", px2 : "port 2"}; names[uuid].name = wedo.wedo[uuid].name; if(wedo.wedo[uuid].name) { var thisWedo = wedo.wedo[uuid].name; server.addNode(thisWedo, "port 1", "node"); - server.addNode(thisWedo, "none 1", "node"); + // server.addNode(thisWedo, "none 1", "node"); server.addNode(thisWedo, "port 2", "node"); - server.addNode(thisWedo, "none 2", "node"); + // server.addNode(thisWedo, "none 2", "node"); server.addNode(thisWedo, "button", "node"); - server.renameNode(names[uuid].name, "port 1", "x1"); - server.renameNode(names[uuid].name, "none 1", "y1"); - server.renameNode(names[uuid].name, "port 2", "x2"); - server.renameNode(names[uuid].name, "none 2", "y2"); + server.addNode(thisWedo, "light", "node"); + + server.renameNode(names[uuid].name, "port 1", "port 1"); + // server.renameNode(names[uuid].name, "none 1", "y1"); + server.renameNode(names[uuid].name, "port 2", "port 2"); + // server.renameNode(names[uuid].name, "none 2", "y2"); server.activate(thisWedo); @@ -99,7 +101,12 @@ if (exports.enabled) { // console.log(server.map(data.value,0,1,-100,100)); wedo.setMotor(server.map(data.value, 0, 1, -100, 100), 2, uuid); } + }.bind(this, names, wedo, uuid)); + + server.addReadListener(names[uuid].name, "light", function (names, wedo, uuid, data) { + var color = parseInt(data.value*255); + wedo.setLedColor(color,color,color, uuid); }.bind(this, names, wedo, uuid)); /* server.addReadListener(names[uuid].name, "port2", function (names,wedo,uuid, data){ @@ -118,10 +125,6 @@ if (exports.enabled) { }); } - - - - } }.bind(this)); @@ -139,10 +142,10 @@ if (exports.enabled) { server.renameNode(names[uuid].name, "port 2", " "); names[uuid].px2 = "port 2"; - server.renameNode(names[uuid].name, "none 1", " "); - names[uuid].py1 = "none 1"; - server.renameNode(names[uuid].name, "none 2", " "); - names[uuid].py2 = "none 2"; + // server.renameNode(names[uuid].name, "none 1", " "); + //names[uuid].py1 = "none 1"; + //server.renameNode(names[uuid].name, "none 2", " "); + //names[uuid].py2 = "none 2"; server.removeReadListeners(names[uuid].name); @@ -163,7 +166,7 @@ if (exports.enabled) { if(uuid in names) { Math.round( 20.49); server.write(names[uuid].name, "port "+port, Math.round(server.map(x,-45,45,0,1)*100)/100, "f"); - server.write(names[uuid].name, "none "+port, Math.round(server.map(y,-45,45,0,1)*100)/100, "f"); + // server.write(names[uuid].name, "none "+port, Math.round(server.map(y,-45,45,0,1)*100)/100, "f"); } }); @@ -182,44 +185,46 @@ if (exports.enabled) { x = "motor"; } if(type==="tiltSensor"){ - x = "x"; - y = "y"; + x = "motion"; + // y = "y"; } var thisWedo = wedo.wedo[uuid].name; if (port === 1 && connected) { server.renameNode(thisWedo, "port 1", x); names[uuid].px1 = x + " 1"; - if(y === " "){ + /* if(y === " "){ server.renameNode(thisWedo, "none 1"," "); } else { server.renameNode(thisWedo, "none 1", y); } names[uuid].py1 = y + " 1"; + */ } if (port === 2 && connected) { server.renameNode(thisWedo, "port 2", x); names[uuid].px2 = x + " 2"; - if(y === " ") { + /* if(y === " ") { server.renameNode(thisWedo, "none 2"," "); } else { server.renameNode(thisWedo, "none 2", y); } names[uuid].py2 = y + " 2"; + */ } if (port === 1 && !connected) { server.renameNode(thisWedo, "port 1", " "); names[uuid].px1 = "port 1"; - server.renameNode(thisWedo, "none 1", " "); - names[uuid].py1 = "none 1"; + // server.renameNode(thisWedo, "none 1", " "); + // names[uuid].py1 = "none 1"; resetNode(uuid,1); } if (port === 2 && !connected) { server.renameNode(thisWedo, "port 2", " "); names[uuid].px2 = "port 2"; - server.renameNode(thisWedo, "none 2", " "); - names[uuid].py2 = "none 2"; + // server.renameNode(thisWedo, "none 2", " "); + // names[uuid].py2 = "none 2"; resetNode(uuid,2); } @@ -230,6 +235,6 @@ if (exports.enabled) { function resetNode (uuid, port){ server.write(names[uuid].name, "port "+port, 0, "f"); - server.write(names[uuid].name, "none "+port, 0, "f"); + // server.write(names[uuid].name, "none "+port, 0, "f"); } \ No newline at end of file diff --git a/objects/lego1/bird.png b/objects/lego1/bird.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5a9be97a2be272a9b2d8993a635d44dd123e18 GIT binary patch literal 16296 zcmeI3e{2(F7{?E191IZ?NJL5ISrE|B-d%svOIz&L%}wZ7wju)+cDugoPTITk?#8;s zM1&YMXbi)|-$TUn?Q0GA-`gebhmP!yk&QUk_7ay>69IggN5hJYuZQ((B1JGX zp^33Q>WZ5k(gVp}x?Rx#9qIcUZe*(GI>E|I1kI@a!jpE-RJ}5 zB5P*qsc{uBeLz=6H4(t(%W4aC?10r3N85l<#||JHHKpL3;e~4TpB76w>Zq12fKH1H z$buZ~M~4i!ngG-h#ZdGSrB0WnZ~YpNp;6M;b37YxMNK!mAEEw7-WY`3f% zf-HiftOR9!0Y4WGa;!VR4Gp>dKnS{r*wC;W3=5$k5QFTRP{@{cq*qBNfF|t#=}t|_ z6;`n-XgV-gRMcfJsnW794z;i*d8xW4e}W6e10go#Z;zWpjkkr{Iy!v`Uq@S8yVuJ_ zn5xurJy1Mih0`@4TFTtNDLYcj$~FeaP^)KdgC@a^OUPcs4Aziv6k*MBm!untHty)( z9JjfB^n=GLy>=igH8?S)>48r=FNo&G6w?Jbxh8jquUwRsVRmFSs4=IFt+T51`hARz z06Avv)NVHH_WDv>i08s^vv#w7o@MP)3$5yl=*qA$CTJj@fe%~EIvRTIoq}#}H;;mV zCqS=C3Zf*N8^}Gja%F1$F2oT*&VY1`u@h|vni65m>B~x$vuAlLC)Hkv)r-J<&iQr? z2yk(v6eZi}kkGVpZDmD}5DZWxz6KtQDTv$aSlbZGmNH|GdIeT5%U&%L)?xm^W3#&v>(1}f>5;%X^>LkeX0;piCrLiFUNnZ@wyQd;clOTuqc@204oyD93* zEWA!r)F?|)GlTHM)R!shHf3_#@lJ}m@nCl%p2~lF;dK1bj|LY%_2tre(#kiM|Fvy@ z4=?Th^KjGNAN#MWr*3G~n%=sr|G>S^$?G((X~X*~!mkOBuUteu6QNuScYfML|6$$Q zSBwjW)I|S*1Jjo`O@99gBV_p1EAmsP&OCDR=M#5c-FJTG%9AfO|8{t^b?t(QrDs?5 zeB9c6_Sh`#?5d(msE1b3n5(f`(N>O;*|+w!gaWM(YBb=oM{#khKKbtSWqIq)r?*Uf zeQy0bUhY`@%EKkbc6avGp{6lKt^o;s;YU5YGzOejArdj=F^8BG+KKLR)HLs|i^y^bm z!$npO<$qfWChEVBe)swOi$6Sg>iI)!_g#4N%(~OB+_Gohi8JF5Y@EvHADY~Adwzf5 zv#FbZx|D3a@BExw$EidswYS;2wXYagAvC!93Anq>&Nfj?U%Y#+aqi+SXj0uBJ&E_) H26z1fb7I|% literal 0 HcmV?d00001 diff --git a/objects/lego1/index.html b/objects/lego1/index.html new file mode 100644 index 0000000..b581f8f --- /dev/null +++ b/objects/lego1/index.html @@ -0,0 +1,12 @@ + + + + +Default UI + + + + + + + diff --git a/objects/lego1/memory/memory.jpg b/objects/lego1/memory/memory.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43d94ff56a70a354877f0678345a3c8968819d60 GIT binary patch literal 24536 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 UahTiiqM}ptaB;;HSXV#)*-mfWApigX literal 0 HcmV?d00001 diff --git a/objects/lego1/memory/memoryThumbnail.jpg b/objects/lego1/memory/memoryThumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6c189d5fd128530c6ab4624b3d1d6f6ff9d6d47 GIT binary patch literal 2681 zcmbW!XHe4%5&-ajdLc?NQA!e8Fo4Q~5K0JL2~9;LRC%Bx2q;Jqj6tJ-6p@Zdks|Vt zB4t2|;DMkJiULX%!pjR?1O?PkR33+SH}7Wd)7|aPe%hU#{mpK_+ZF&~Rt!r900Myk zi=70vdB9-+35O%#FeCzjK%tOm40abrLBY2(**(` z|786o`wy4+jtdNhLZFDBE)e+2PC>+>FnJBQgo!QUOyC{`N;nd0no>~RhEmi#xq>?z z^cKCBM4ePx{Ym?W?7xFW{9m%aVE=ZF0~iQs=XnruzzF#K*n8dM2IP6Af$HRmm$UNB zfPDk^#h6JL5TT!K?yeczPmHM}Io*8H1rbdTBM$4LH<)zuf^9%L%CfJOQW!6t>GwVc z(c(L(l*W}5m%YRhdKMz@JC=U%?Taiuwe$M<3Da0^WRlj62w(VowdKO32yQZ2o_bi?m`5N(!sd;VRn^}E# ze(AT;Kkt?e6%+iAY0th{N!I)l(0aMkbtLirl*pE0NUBP{N*C?rFVl|tmnPrq)25`T zJR0A7+KiqrQ^WpR891Y=t<#&>Sf2Y^rEg`{g8D|M^(ywlrK&N~ay;tI#jG3LQg;^a zlH!G=-G6klb2r&51nA@+x5C*fpbKsY*rg8pl0n$?aA4qJQPtCv~Y)ULts3 z=iB9h>BG+BMregwc*V-4*}r*ChqD1jx557zwD@D@v_GypS5Q~JtmkJDV*a>_Q}*J3%iCzepaMpC&Q@dGBVxuBQK%z zd4&y8?0l&Ks00g>xliN^Ny_UwD9M>;p!^DYYQM?GnbU7J@(f(IFxn2Qnzu=Ke?`dV zXj5m&c&~`QL}C27)50oJU91T5+vxXazOK%p-~|CJ#U$5Zp0k>l6taikVtb;cJ*8`Lq_*N0@8)T=BsV8)>sLseaNO&Z-`qtAb}Q@fuR51CZX`?czFB~H;m)MTUj@q!8-*70KZcW7E@Mm#{)-4V!K^)1iSfPqYvnq zDe5lU!~-IwYf{3JnsSc6Xh|vQWEnOHK_=D$1zGeIGt$M*_|;{zePGiM95-Xa>W_tT zbO?>yY~G`MXyb(BT*{Hy&XvmkwiIh{?~T1j!XuQS39Uiq#JUc!sK}<{DZ$gXzL78ydcw_gHb;)1Fm99tF1%7UlGtTrGO*waJ&y(yTpl zTT>=59z0xfM#kE@Vs}f59VehLW!a{AXjkswo`9A>+U`~`r!FC@(EHO~`uArnHAT-v zRJ03UJXbKEpPA6C2R@+VevfsrGQR4dmon5xro=Ux)(0}oTy!m}iqn#DI%4bgz*xO7 z)btC_KxI^VYk2KW7;I*W!Toxccl(F;?3F#>f<*K@%cs@g(G302wdo~#;O*2UDmIcecY+zHr{UOxM+s}=Cp=pZ)H)W;4V~Fr>c;OZKq!Yh?VA$b}i52~m_UjVw^pn`9 zjb76k?6*gC$#T<+W`G5unIh^N48Zp-U%?Iz2oy{Y!8oG5U$GgOaCUx=uqhKKCWTw_Ew09haV% z4uH<-N^S;Q?UGYM+o@fJ6cBnDQsI5m=SDZ-q81(xJ*!oF-PzSl4$OtQV{#z`+@oP G*xvyHD60ej literal 0 HcmV?d00001 diff --git a/objects/lego1/object.json b/objects/lego1/object.json new file mode 100644 index 0000000..bb3c0cd --- /dev/null +++ b/objects/lego1/object.json @@ -0,0 +1,135 @@ +{ + "objectId": "lego1Mih8ul6sqsow", + "name": "lego1", + "ip": "192.168.1.5", + "version": "1.7.0", + "deactivated": false, + "protocol": "R1", + "tcs": "41SIxV", + "x": 0, + "y": 0, + "scale": 1, + "matrix": [], + "visible": false, + "visibleText": false, + "visibleEditing": false, + "developer": true, + "memory": { + "matrix": [ + -0.9944484233856201, + -0.0680159255862236, + -0.09198922663927078, + 0, + -0.08941574394702911, + 1.15974497795105, + 0.4827709794044495, + 0, + 0.05547261238098145, + 0.6500707864761353, + -0.8709020018577576, + 0, + 217.40771484375, + -23.5766544342041, + 1346.669921875, + 1 + ] + }, + "links": {}, + "nodes": { + "lego1Mih8ul6sqsowport 1": { + "name": "port 1", + "data": { + "value": 0, + "mode": "f", + "unit": "", + "unitMin": 0, + "unitMax": 1 + }, + "x": 131.69264806859064, + "y": 143.73935275443364, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100, + "text": "x1" + }, + "lego1Mih8ul6sqsowport 2": { + "name": "port 2", + "data": { + "value": 1, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -121.99635393283825, + "y": 146.77284211906954, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100, + "text": "x2", + "processedData": { + "value": 1, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + } + }, + "lego1Mih8ul6sqsowbutton": { + "name": "button", + "data": { + "value": 0, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -1.5721425158644706, + "y": -279.68752849282464, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100, + "processedData": { + "value": 0, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + } + }, + "lego1Mih8ul6sqsowlight": { + "name": "light", + "data": { + "value": 1, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + }, + "x": -1.0741697439761992, + "y": -505.98239159127115, + "scale": 1, + "matrix": [], + "type": "node", + "stress": 0, + "frameSizeX": 100, + "frameSizeY": 100, + "processedData": { + "value": 1, + "mode": "f", + "unit": false, + "unitMin": 0, + "unitMax": 1 + } + } + } +} \ No newline at end of file diff --git a/objects/lego1/target/target.dat b/objects/lego1/target/target.dat new file mode 100644 index 0000000000000000000000000000000000000000..7b08ce6e0c610b357c7dfb9da71173cfd8254713 GIT binary patch literal 170680 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
    " + infoCount + "" + thisHtmlNode.name + "" + thisHtmlNode.item.number + "
    " + infoCount + "" + thisHtmlNode.name + "" + thisHtmlNode.item[0].number + "
    ' + subKey + '' + uploadInfoTexttempArray[subKey].nameA + '' + uploadInfoTexttempArray[subKey].nodeA + '' + uploadInfoTexttempArray[subKey].nameB + '' + uploadInfoTexttempArray[subKey].nodeB + '
    ' + subKey + '' + uploadInfoTexttempArray[subKey].namesA[0] + '' + uploadInfoTexttempArray[subKey].namesA[1] + '' + uploadInfoTexttempArray[subKey].namesB[0] + '' + uploadInfoTexttempArray[subKey].namesB[1] + '
    ' + subKey + '' + uploadInfoTexttempArray[subKey].objectA + '' + uploadInfoTexttempArray[subKey].nodeA + '' + uploadInfoTexttempArray[subKey].objectB + '' + uploadInfoTexttempArray[subKey].nodeB + '
    " + infoCount + "" + thisHtmlNode.name + "" + thisHtmlNode.item[0].number + "
    " + infoCount + "" + thisHtmlNode.name + "" + thisHtmlNode.item[0].number + "
    " + infoCount + "" + thisHtmlNode.name + "" + thisHtmlNode.data.value + "